{"version":3,"sources":["webpack:///./node_modules/echarts/lib/chart/parallel/ParallelSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseView.js","webpack:///./node_modules/echarts/lib/component/tooltip.js","webpack:///./node_modules/echarts/lib/chart/funnel/FunnelSeries.js","webpack:///./node_modules/echarts/lib/coord/geo/prepareCustom.js","webpack:///./node_modules/echarts/lib/coord/geo/Geo.js","webpack:///./node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js","webpack:///./node_modules/echarts/lib/component/gridSimple.js","webpack:///./node_modules/echarts/lib/component/helper/roamHelper.js","webpack:///./node_modules/echarts/lib/component/dataset.js","webpack:///./node_modules/zrender/lib/core/timsort.js","webpack:///./node_modules/zrender/lib/contain/polygon.js","webpack:///./node_modules/zrender/lib/animation/Animator.js","webpack:///./node_modules/echarts/lib/data/Tree.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipContent.js","webpack:///./node_modules/echarts/lib/chart/gauge.js","webpack:///./node_modules/echarts/lib/chart/parallel.js","webpack:///./src/components/PagedTableView/index.vue?bce5","webpack:///./src/components/PagedTableView/index.vue?18c1","webpack:///./src/components/PagedTableView/index.vue?ca9e","webpack:///./src/components/PagedTableView/index.vue","webpack:///./node_modules/echarts/lib/chart/candlestick.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineAxis.js","webpack:///./node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","webpack:///./node_modules/echarts/lib/component/dataZoom.js","webpack:///./node_modules/zrender/lib/core/GestureMgr.js","webpack:///./node_modules/echarts/lib/component/legendScroll.js","webpack:///./node_modules/zrender/lib/core/arrayDiff2.js","webpack:///./node_modules/echarts/lib/component/helper/MapDraw.js","webpack:///./node_modules/zrender/lib/mixin/Transformable.js","webpack:///./node_modules/zrender/lib/graphic/Image.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyVisual.js","webpack:///./node_modules/echarts/lib/component/legend/ScrollableLegendView.js","webpack:///./node_modules/echarts/lib/coord/parallel/ParallelAxis.js","webpack:///./node_modules/echarts/lib/data/helper/sourceHelper.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectLine.js","webpack:///./node_modules/echarts/lib/component/brush/visualEncoding.js","webpack:///./node_modules/echarts/lib/chart/effectScatter.js","webpack:///./node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js","webpack:///./node_modules/echarts/lib/chart/helper/Symbol.js","webpack:///./node_modules/echarts/lib/chart/radar/RadarView.js","webpack:///./node_modules/echarts/lib/component/axis/RadiusAxisView.js","webpack:///./node_modules/echarts/lib/helper.js","webpack:///./node_modules/echarts/lib/chart/scatter.js","webpack:///./node_modules/zrender/lib/core/matrix.js","webpack:///./node_modules/echarts/lib/coord/radar/RadarModel.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/textCoord.js","webpack:///./node_modules/echarts/lib/chart/bar/BarSeries.js","webpack:///./node_modules/echarts/lib/component/axisPointer/globalListener.js","webpack:///./node_modules/echarts/lib/scale/Ordinal.js","webpack:///./node_modules/echarts/lib/component/marker/MarkLineModel.js","webpack:///./node_modules/echarts/lib/chart/candlestick/CandlestickView.js","webpack:///./node_modules/zrender/lib/graphic/Displayable.js","webpack:///./node_modules/echarts/lib/chart/pie/PieView.js","webpack:///./node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js","webpack:///./node_modules/echarts/lib/coord/polar/polarCreator.js","webpack:///./node_modules/echarts/lib/layout/barPolar.js","webpack:///./node_modules/echarts/lib/chart/gauge/PointerPath.js","webpack:///./node_modules/echarts/lib/coord/geo/GeoModel.js","webpack:///./node_modules/zrender/lib/mixin/Eventful.js","webpack:///./node_modules/echarts/lib/coord/axisModelCommonMixin.js","webpack:///./node_modules/echarts/lib/CoordinateSystem.js","webpack:///./node_modules/zrender/lib/core/PathProxy.js","webpack:///./node_modules/echarts/lib/component/toolbox/featureManager.js","webpack:///./node_modules/echarts/lib/chart/tree/TreeSeries.js","webpack:///./node_modules/echarts/lib/scale/Time.js","webpack:///./node_modules/echarts/lib/chart/line/LineSeries.js","webpack:///./node_modules/echarts/lib/coord/parallel/ParallelModel.js","webpack:///./node_modules/zrender/lib/core/env.js","webpack:///./node_modules/echarts/lib/chart/tree/layoutHelper.js","webpack:///./node_modules/echarts/lib/util/graphic.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SliderZoomView.js","webpack:///./node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js","webpack:///./node_modules/echarts/lib/coord/radar/Radar.js","webpack:///./node_modules/echarts/lib/chart/graph.js","webpack:///./node_modules/echarts/lib/component/marker/MarkerModel.js","webpack:///./node_modules/echarts/lib/chart/funnel/funnelLayout.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js","webpack:///./node_modules/echarts/lib/preprocessor/helper/compatStyle.js","webpack:///./node_modules/echarts/lib/model/mixin/makeStyleMapper.js","webpack:///./node_modules/echarts/lib/chart/pie/pieLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/categoryVisual.js","webpack:///./node_modules/echarts/lib/lang.js","webpack:///./node_modules/echarts/lib/component/visualMapPiecewise.js","webpack:///./node_modules/echarts/lib/data/helper/dataProvider.js","webpack:///./node_modules/zrender/lib/graphic/Style.js","webpack:///./node_modules/echarts/lib/visual/visualSolution.js","webpack:///./node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js","webpack:///./node_modules/zrender/lib/config.js","webpack:///./node_modules/echarts/lib/component/singleAxis.js","webpack:///./node_modules/echarts/lib/component/brush.js","webpack:///./node_modules/echarts/lib/data/helper/dimensionHelper.js","webpack:///./node_modules/echarts/lib/component/polar.js","webpack:///./node_modules/echarts/lib/chart/boxplot/boxplotVisual.js","webpack:///./node_modules/echarts/lib/chart/bar/BaseBarSeries.js","webpack:///./node_modules/zrender/lib/tool/parseSVG.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousModel.js","webpack:///./node_modules/echarts/lib/coord/single/prepareCustom.js","webpack:///./node_modules/echarts/lib/component/marker/MarkLineView.js","webpack:///./node_modules/zrender/lib/animation/Animation.js","webpack:///./node_modules/echarts/lib/chart/sankey.js","webpack:///./node_modules/echarts/map/js/china.js","webpack:///./node_modules/echarts/index.js","webpack:///./node_modules/echarts/lib/data/helper/linkList.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/nanhai.js","webpack:///./node_modules/echarts/lib/component/dataZoom/InsideZoomView.js","webpack:///./node_modules/echarts/lib/chart/helper/createListFromArray.js","webpack:///./node_modules/echarts/lib/chart/bar/PictorialBarView.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstView.js","webpack:///./node_modules/zrender/lib/tool/path.js","webpack:///./node_modules/echarts/lib/component/timeline/SliderTimelineView.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SliderZoomModel.js","webpack:///./node_modules/echarts/lib/util/number.js","webpack:///./node_modules/echarts/lib/model/mixin/dataFormat.js","webpack:///./node_modules/echarts/lib/model/mixin/lineStyle.js","webpack:///./node_modules/zrender/lib/graphic/IncrementalDisplayable.js","webpack:///./node_modules/echarts/lib/component/timeline/timelineAction.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js","webpack:///./node_modules/echarts/lib/component/dataZoom/DataZoomModel.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousView.js","webpack:///./node_modules/echarts/lib/echarts.js","webpack:///./node_modules/zrender/lib/svg/graphic.js","webpack:///./node_modules/zrender/lib/core/vector.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js","webpack:///./node_modules/zrender/lib/tool/color.js","webpack:///./node_modules/zrender/lib/graphic/Gradient.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipView.js","webpack:///./node_modules/echarts/lib/model/Model.js","webpack:///./node_modules/echarts/lib/coord/single/singleCreator.js","webpack:///./node_modules/echarts/lib/component/marker/MarkAreaModel.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapAction.js","webpack:///./node_modules/zrender/lib/animation/Clip.js","webpack:///./node_modules/echarts/lib/chart/sunburst/sunburstAction.js","webpack:///./node_modules/echarts/lib/chart/helper/Polyline.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ring.js","webpack:///./node_modules/echarts/lib/component/legend/legendAction.js","webpack:///./node_modules/echarts/lib/coord/calendar/prepareCustom.js","webpack:///./node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapView.js","webpack:///./node_modules/echarts/lib/chart/graph/adjustEdge.js","webpack:///./node_modules/zrender/lib/graphic/LinearGradient.js","webpack:///./node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js","webpack:///./node_modules/echarts/lib/coord/cartesian/AxisModel.js","webpack:///./node_modules/zrender/lib/core/log.js","webpack:///./node_modules/echarts/lib/action/geoRoam.js","webpack:///./node_modules/echarts/lib/component/helper/RoamController.js","webpack:///./node_modules/zrender/lib/core/curve.js","webpack:///./node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js","webpack:///./node_modules/zrender/lib/graphic/shape/Sector.js","webpack:///./node_modules/zrender/lib/svg/helper/Definable.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SelectZoomView.js","webpack:///./node_modules/echarts/lib/coord/single/Single.js","webpack:///./node_modules/echarts/lib/coord/geo/geoJSONLoader.js","webpack:///./node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","webpack:///./node_modules/echarts/lib/chart/funnel/FunnelView.js","webpack:///./node_modules/echarts/lib/chart/gauge/GaugeSeries.js","webpack:///./node_modules/echarts/lib/config.js","webpack:///./node_modules/echarts/lib/chart/map/MapSeries.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstPiece.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack:///./node_modules/echarts/lib/model/Series.js","webpack:///./node_modules/zrender/lib/graphic/helper/poly.js","webpack:///./node_modules/echarts/lib/component/dataZoom/helper.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/graphHelper.js","webpack:///./node_modules/echarts/lib/component/visualMap.js","webpack:///./node_modules/echarts/lib/chart/map/mapVisual.js","webpack:///./node_modules/echarts/lib/model/mixin/itemStyle.js","webpack:///./node_modules/echarts/lib/component/radar.js","webpack:///./node_modules/echarts/lib/component/dataZoom/roams.js","webpack:///./node_modules/echarts/lib/chart/helper/treeHelper.js","webpack:///./node_modules/echarts/lib/data/DataDimensionInfo.js","webpack:///./node_modules/zrender/lib/graphic/helper/roundRect.js","webpack:///./node_modules/echarts/lib/chart/graph/forceLayout.js","webpack:///./node_modules/echarts/lib/component/axis/axisSplitHelper.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Grid.js","webpack:///./node_modules/echarts/lib/chart/sankey/SankeyView.js","webpack:///./node_modules/echarts/lib/coord/geo/geoSourceManager.js","webpack:///./node_modules/echarts/lib/chart/heatmap.js","webpack:///./node_modules/zrender/lib/Layer.js","webpack:///./node_modules/zrender/lib/graphic/helper/image.js","webpack:///./node_modules/echarts/lib/component/legend/LegendView.js","webpack:///./node_modules/echarts/lib/visual/VisualMapping.js","webpack:///./node_modules/zrender/lib/core/event.js","webpack:///./node_modules/echarts/lib/chart/parallel/ParallelView.js","webpack:///./node_modules/echarts/lib/visual/visualDefault.js","webpack:///./node_modules/echarts/lib/data/List.js","webpack:///./node_modules/zrender/lib/graphic/helper/smoothSpline.js","webpack:///./node_modules/echarts/lib/util/clazz.js","webpack:///./node_modules/echarts/lib/component/title.js","webpack:///./node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js","webpack:///./node_modules/echarts/lib/chart/lines/linesLayout.js","webpack:///./node_modules/zrender/lib/core/dom.js","webpack:///./node_modules/echarts/lib/component/axis/AxisView.js","webpack:///./node_modules/echarts/lib/component/timeline/preprocessor.js","webpack:///./node_modules/echarts/lib/coord/single/SingleAxis.js","webpack:///./node_modules/echarts/lib/chart/graph/categoryFilter.js","webpack:///./node_modules/echarts/lib/chart/map.js","webpack:///./node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","webpack:///./node_modules/echarts/lib/chart/bar/BarView.js","webpack:///./node_modules/zrender/lib/contain/quadratic.js","webpack:///./node_modules/echarts/lib/component/dataZoom/typeDefaulter.js","webpack:///./node_modules/echarts/lib/coord/axisHelper.js","webpack:///./node_modules/zrender/lib/zrender.js","webpack:///./node_modules/echarts/lib/stream/Scheduler.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectPolyline.js","webpack:///./node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/geoCoord.js","webpack:///./node_modules/echarts/lib/component/radar/RadarView.js","webpack:///./node_modules/echarts/lib/chart/themeRiver.js","webpack:///./node_modules/echarts/lib/model/Component.js","webpack:///./node_modules/echarts/lib/coord/View.js","webpack:///./node_modules/echarts/lib/chart/tree/TreeView.js","webpack:///./node_modules/zrender/lib/core/util.js","webpack:///./node_modules/echarts/lib/chart/tree/traversalHelper.js","webpack:///./node_modules/echarts/lib/component/dataZoom/history.js","webpack:///./node_modules/echarts/lib/component/helper/selectableMixin.js","webpack:///./node_modules/echarts/lib/coord/axisDefault.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/themeRiverVisual.js","webpack:///./node_modules/echarts/lib/chart/lines/LinesSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapView.js","webpack:///./node_modules/echarts/lib/data/Graph.js","webpack:///./node_modules/echarts/lib/chart/helper/LineDraw.js","webpack:///./node_modules/echarts/lib/component/visualMapContinuous.js","webpack:///./node_modules/zrender/lib/animation/easing.js","webpack:///./node_modules/echarts/lib/component/geo/GeoView.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/DataView.js","webpack:///./node_modules/zrender/lib/graphic/Text.js","webpack:///./node_modules/echarts/lib/action/createDataSelectAction.js","webpack:///./node_modules/echarts/lib/coord/radar/IndicatorAxis.js","webpack:///./node_modules/echarts/lib/chart/radar/backwardCompat.js","webpack:///./node_modules/echarts/lib/coord/polar/PolarModel.js","webpack:///./node_modules/echarts/lib/component/helper/listComponent.js","webpack:///./node_modules/echarts/lib/component/radiusAxis.js","webpack:///./node_modules/echarts/lib/chart/graph/createView.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","webpack:///./node_modules/zrender/lib/graphic/helper/fixShadow.js","webpack:///./node_modules/echarts/lib/component/dataZoom/DataZoomView.js","webpack:///./node_modules/echarts/lib/component/markArea.js","webpack:///./node_modules/echarts/lib/chart/helper/Line.js","webpack:///./node_modules/echarts/lib/model/Global.js","webpack:///./node_modules/echarts/lib/component/graphic.js","webpack:///./node_modules/echarts/lib/component/dataZoomInside.js","webpack:///./node_modules/echarts/lib/chart/helper/LinePath.js","webpack:///./node_modules/echarts/lib/visual/symbol.js","webpack:///./node_modules/echarts/lib/data/DataDiffer.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyLayout.js","webpack:///./node_modules/zrender/lib/graphic/constant.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","webpack:///./node_modules/echarts/lib/component/marker/MarkPointView.js","webpack:///./node_modules/echarts/lib/coord/calendar/CalendarModel.js","webpack:///./node_modules/echarts/lib/ExtensionAPI.js","webpack:///./node_modules/echarts/lib/component/axis/parallelAxisAction.js","webpack:///./node_modules/echarts/lib/coord/parallel/parallelCreator.js","webpack:///./node_modules/echarts/lib/coord/Axis.js","webpack:///./node_modules/echarts/lib/component/legend/LegendModel.js","webpack:///./node_modules/zrender/lib/core/fourPointsTransform.js","webpack:///./node_modules/zrender/lib/contain/util.js","webpack:///./node_modules/echarts/lib/data/helper/completeDimensions.js","webpack:///./node_modules/echarts/lib/chart/radar/radarLayout.js","webpack:///./node_modules/zrender/lib/svg/core.js","webpack:///./node_modules/zrender/lib/contain/windingLine.js","webpack:///./node_modules/echarts/lib/chart/graph/GraphSeries.js","webpack:///./node_modules/zrender/lib/graphic/shape/Polygon.js","webpack:///./node_modules/echarts/lib/layout/points.js","webpack:///./node_modules/echarts/lib/util/throttle.js","webpack:///./node_modules/echarts/lib/component/marker/MarkerView.js","webpack:///./node_modules/echarts/lib/util/component.js","webpack:///./node_modules/echarts/lib/model/globalDefault.js","webpack:///./node_modules/zrender/lib/graphic/helper/fixClipWithShadow.js","webpack:///./node_modules/echarts/lib/scale/Interval.js","webpack:///./node_modules/echarts/lib/model/referHelper.js","webpack:///./node_modules/echarts/lib/scale/Log.js","webpack:///./node_modules/zrender/lib/graphic/shape/Arc.js","webpack:///./node_modules/echarts/lib/chart/radar.js","webpack:///./node_modules/echarts/lib/data/OrdinalMeta.js","webpack:///./node_modules/echarts/lib/component/marker/MarkAreaView.js","webpack:///./node_modules/echarts/lib/component/toolbox/ToolboxModel.js","webpack:///./node_modules/echarts/lib/coord/cartesian/GridModel.js","webpack:///./node_modules/zrender/lib/svg/svg.js","webpack:///./node_modules/echarts/lib/component/legend/legendFilter.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapVisual.js","webpack:///./node_modules/echarts/lib/component/marker/markerHelper.js","webpack:///./node_modules/echarts/lib/coord/polar/RadiusAxis.js","webpack:///./node_modules/echarts/lib/chart/treemap/TreemapSeries.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineView.js","webpack:///./node_modules/echarts/lib/component/calendar.js","webpack:///./node_modules/echarts/lib/data/helper/sourceType.js","webpack:///./src/views/dashboard/index.vue?49c6","webpack:///./src/components/Dashboard/DashboardCountBoard.vue?a9e8","webpack:///./src/components/Dashboard/DashboardCountBoard.vue?4b0f","webpack:///./src/components/Dashboard/DashboardCountBoard.vue?3d27","webpack:///./src/components/Dashboard/DashboardCountBoard.vue","webpack:///./src/views/dashboard/index.vue?35f3","webpack:///./src/views/dashboard/index.vue?f9e4","webpack:///./src/views/dashboard/index.vue","webpack:///./node_modules/echarts/lib/chart/map/backwardCompat.js","webpack:///./node_modules/echarts/lib/scale/helper.js","webpack:///./node_modules/echarts/lib/chart/bar.js","webpack:///./node_modules/echarts/lib/chart/graph/circularLayoutHelper.js","webpack:///./node_modules/echarts/lib/component/markLine.js","webpack:///./node_modules/zrender/lib/contain/line.js","webpack:///./node_modules/echarts/lib/chart/graph/GraphView.js","webpack:///./node_modules/zrender/lib/core/BoundingRect.js","webpack:///./node_modules/zrender/lib/animation/requestAnimationFrame.js","webpack:///./node_modules/echarts/lib/visual/dataColor.js","webpack:///./node_modules/echarts/lib/loading/default.js","webpack:///./node_modules/echarts/lib/model/mixin/areaStyle.js","webpack:///./node_modules/zrender/lib/graphic/helper/smoothBezier.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapLayout.js","webpack:///./node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","webpack:///./node_modules/echarts/lib/layout/barGrid.js","webpack:///./node_modules/zrender/lib/graphic/mixin/RectText.js","webpack:///./node_modules/echarts/lib/coord/axisModelCreator.js","webpack:///./node_modules/echarts/lib/component/dataZoom/dataZoomAction.js","webpack:///./node_modules/zrender/lib/contain/arc.js","webpack:///./node_modules/echarts/lib/chart/line/helper.js","webpack:///./node_modules/zrender/lib/svg/helper/ClippathManager.js","webpack:///./node_modules/echarts/lib/chart/radar/RadarSeries.js","webpack:///./node_modules/echarts/lib/component/timeline/typeDefaulter.js","webpack:///./node_modules/echarts/lib/util/symbol.js","webpack:///./node_modules/echarts/lib/component/dataZoom/InsideZoomModel.js","webpack:///./node_modules/echarts/lib/chart/helper/LargeLineDraw.js","webpack:///./node_modules/echarts/lib/chart/funnel.js","webpack:///./node_modules/echarts/lib/component/helper/interactionMutex.js","webpack:///./node_modules/echarts/lib/chart/map/MapView.js","webpack:///./node_modules/zrender/lib/graphic/helper/text.js","webpack:///./node_modules/echarts/lib/chart/gauge/GaugeView.js","webpack:///./node_modules/echarts/lib/chart/lines.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js","webpack:///./node_modules/zrender/lib/vml/graphic.js","webpack:///./node_modules/echarts/lib/component/brush/selector.js","webpack:///./node_modules/echarts/lib/component/marker/MarkPointModel.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipModel.js","webpack:///./node_modules/echarts/lib/coord/polar/AngleAxis.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstSeries.js","webpack:///./node_modules/echarts/lib/coord/cartesian/prepareCustom.js","webpack:///./node_modules/echarts/lib/chart/pictorialBar.js","webpack:///./node_modules/echarts/lib/component/visualMap/visualEncoding.js","webpack:///./node_modules/echarts/lib/chart/parallel/parallelVisual.js","webpack:///./node_modules/echarts/lib/chart/scatter/ScatterView.js","webpack:///./node_modules/zrender/lib/graphic/shape/BezierCurve.js","webpack:///./node_modules/echarts/lib/chart/graph/circularLayout.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js","webpack:///./node_modules/echarts/lib/chart/lines/LinesView.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ellipse.js","webpack:///./node_modules/echarts/lib/component/brush/preprocessor.js","webpack:///./node_modules/echarts/lib/component/axis.js","webpack:///./src/views/dashboard/index.vue?e757","webpack:///./node_modules/zrender/lib/Storage.js","webpack:///./node_modules/echarts/lib/component/axis/ParallelAxisView.js","webpack:///./node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js","webpack:///./node_modules/echarts/lib/component/toolbox.js","webpack:///./node_modules/echarts/lib/view/Component.js","webpack:///./node_modules/zrender/lib/svg/helper/GradientManager.js","webpack:///./node_modules/echarts/lib/data/helper/createDimensions.js","webpack:///./node_modules/echarts/lib/component/visualMap/preprocessor.js","webpack:///./node_modules/echarts/lib/chart/treemap/TreemapView.js","webpack:///./node_modules/echarts/lib/component/axis/AngleAxisView.js","webpack:///./node_modules/echarts/lib/chart/bar/barItemStyle.js","webpack:///./node_modules/echarts/lib/export.js","webpack:///./node_modules/echarts/lib/visual/aria.js","webpack:///./node_modules/echarts/lib/component/brush/brushAction.js","webpack:///./node_modules/echarts/lib/chart/pie/labelLayout.js","webpack:///./node_modules/echarts/lib/component/visualMap/typeDefaulter.js","webpack:///./node_modules/zrender/lib/svg/helper/ShadowManager.js","webpack:///./node_modules/echarts/lib/component/axis/SingleAxisView.js","webpack:///./node_modules/zrender/lib/mixin/Animatable.js","webpack:///./node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js","webpack:///./node_modules/echarts/lib/component/helper/BrushTargetManager.js","webpack:///./node_modules/echarts/lib/coord/geo/parseGeoJson.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyAction.js","webpack:///./node_modules/echarts/lib/chart/tree/treeAction.js","webpack:///./node_modules/echarts/lib/chart/pie.js","webpack:///./node_modules/echarts/lib/util/shape/sausage.js","webpack:///./node_modules/echarts/lib/component/brush/BrushView.js","webpack:///./node_modules/echarts/lib/visual/LegendVisualProvider.js","webpack:///./node_modules/echarts/lib/component/parallelAxis.js","webpack:///./node_modules/echarts/lib/component/helper/cursorHelper.js","webpack:///./node_modules/echarts/lib/theme/light.js","webpack:///./node_modules/echarts/lib/coord/single/AxisModel.js","webpack:///./node_modules/echarts/lib/chart/helper/labelHelper.js","webpack:///./node_modules/zrender/lib/graphic/shape/Rect.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectSymbol.js","webpack:///./node_modules/echarts/lib/coord/geo/geoSVGLoader.js","webpack:///./node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js","webpack:///./node_modules/echarts/lib/chart/tree/treeLayout.js","webpack:///./node_modules/echarts/lib/model/OptionManager.js","webpack:///./node_modules/zrender/lib/graphic/shape/Line.js","webpack:///./node_modules/echarts/lib/chart/scatter/ScatterSeries.js","webpack:///./node_modules/zrender/lib/mixin/Draggable.js","webpack:///./node_modules/echarts/lib/chart/sunburst/sunburstLayout.js","webpack:///./node_modules/echarts/lib/component/axisPointer.js","webpack:///./node_modules/echarts/lib/component/visualMap/helper.js","webpack:///./node_modules/zrender/lib/graphic/Path.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Cartesian2D.js","webpack:///./node_modules/echarts/lib/component/dataZoom/AxisProxy.js","webpack:///./node_modules/echarts/lib/chart/helper/createRenderPlanner.js","webpack:///./node_modules/echarts/lib/component/grid.js","webpack:///./node_modules/echarts/lib/component/axisPointer/modelHelper.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js","webpack:///./node_modules/zrender/lib/dom/HandlerProxy.js","webpack:///./src/components/Dashboard/DashboardCountBoard.vue?26d3","webpack:///./node_modules/echarts/lib/chart/map/mapSymbolLayout.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Cartesian.js","webpack:///./node_modules/echarts/lib/chart/sankey/SankeySeries.js","webpack:///./node_modules/echarts/lib/component/geo.js","webpack:///./node_modules/echarts/lib/coord/calendar/Calendar.js","webpack:///./node_modules/echarts/lib/processor/dataStack.js","webpack:///./node_modules/echarts/lib/component/legend.js","webpack:///./node_modules/echarts/lib/chart/helper/focusNodeAdjacencyAction.js","webpack:///./node_modules/zrender/lib/Handler.js","webpack:///./node_modules/echarts/lib/chart/graph/simpleLayout.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/MagicType.js","webpack:///./node_modules/zrender/lib/vml/core.js","webpack:///./node_modules/echarts/lib/processor/dataFilter.js","webpack:///./node_modules/zrender/lib/graphic/shape/Polyline.js","webpack:///./node_modules/echarts/lib/component/axisPointer/AxisPointerView.js","webpack:///./node_modules/zrender/lib/graphic/CompoundPath.js","webpack:///./node_modules/echarts/lib/chart/line/poly.js","webpack:///./node_modules/zrender/lib/core/LRU.js","webpack:///./node_modules/zrender/lib/Element.js","webpack:///./node_modules/echarts/lib/chart/bar/PictorialBarSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/visualMapAction.js","webpack:///./node_modules/echarts/lib/chart/sunburst.js","webpack:///./node_modules/echarts/lib/chart/graph/graphAction.js","webpack:///./node_modules/echarts/lib/action/roamHelper.js","webpack:///./node_modules/zrender/lib/contain/path.js","webpack:///./node_modules/echarts/lib/coord/parallel/Parallel.js","webpack:///./node_modules/echarts/lib/coord/polar/AxisModel.js","webpack:///./node_modules/zrender/lib/graphic/shape/Circle.js","webpack:///./node_modules/echarts/lib/chart/treemap.js","webpack:///./node_modules/echarts/lib/component/markPoint.js","webpack:///./node_modules/echarts/lib/component/toolbox/ToolboxView.js","webpack:///./node_modules/zrender/lib/svg/Painter.js","webpack:///./node_modules/zrender/lib/graphic/Pattern.js","webpack:///./node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js","webpack:///./node_modules/echarts/lib/chart/boxplot/BoxplotView.js","webpack:///./node_modules/echarts/lib/component/dataZoomSelect.js","webpack:///./node_modules/echarts/lib/component/timeline/SliderTimelineModel.js","webpack:///./node_modules/zrender/lib/graphic/RadialGradient.js","webpack:///./node_modules/zrender/lib/core/guid.js","webpack:///./node_modules/echarts/lib/model/mixin/boxLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/edgeVisual.js","webpack:///./node_modules/echarts/lib/coord/parallel/AxisModel.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/Restore.js","webpack:///./src/components/Dashboard/DashboardCountBoard.vue?8397","webpack:///./node_modules/echarts/lib/chart/custom.js","webpack:///./node_modules/echarts/lib/coord/axisTickLabelBuilder.js","webpack:///./node_modules/echarts/lib/util/model.js","webpack:///./node_modules/echarts/lib/scale/Scale.js","webpack:///./node_modules/zrender/lib/container/Group.js","webpack:///./node_modules/zrender/lib/core/bbox.js","webpack:///./node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js","webpack:///./node_modules/echarts/lib/chart/helper/createListSimply.js","webpack:///./node_modules/echarts/lib/model/mixin/colorPalette.js","webpack:///./node_modules/echarts/lib/component/dataZoomSlider.js","webpack:///./node_modules/echarts/lib/util/animation.js","webpack:///./node_modules/echarts/lib/chart/bar/helper.js","webpack:///./node_modules/zrender/lib/contain/cubic.js","webpack:///./node_modules/zrender/lib/contain/text.js","webpack:///./node_modules/echarts/lib/view/Chart.js","webpack:///./node_modules/zrender/lib/vml/Painter.js","webpack:///./node_modules/echarts/lib/chart/candlestick/preprocessor.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapModel.js","webpack:///./node_modules/echarts/lib/coord/polar/prepareCustom.js","webpack:///./node_modules/echarts/lib/component/axisPointer/axisTrigger.js","webpack:///./node_modules/echarts/lib/component/legend/scrollableLegendAction.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Axis2D.js","webpack:///./node_modules/echarts/lib/coord/geo/mapDataStorage.js","webpack:///./node_modules/echarts/lib/data/Source.js","webpack:///./node_modules/echarts/lib/chart/boxplot/boxplotLayout.js","webpack:///./node_modules/zrender/lib/Painter.js","webpack:///./node_modules/echarts/lib/util/format.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineModel.js","webpack:///./node_modules/echarts/lib/coord/single/singleAxisHelper.js","webpack:///./node_modules/echarts/lib/data/helper/dataStackHelper.js","webpack:///./node_modules/echarts/lib/component/calendar/CalendarView.js","webpack:///./node_modules/zrender/lib/tool/transformPath.js","webpack:///./node_modules/echarts/lib/component/timeline.js","webpack:///./node_modules/echarts/lib/chart/lines/linesVisual.js","webpack:///./node_modules/echarts/lib/coord/geo/geoCreator.js","webpack:///./node_modules/echarts/lib/chart/graph/forceHelper.js","webpack:///./node_modules/echarts/lib/component/helper/sliderMove.js","webpack:///./node_modules/echarts/lib/chart/line.js","webpack:///./node_modules/echarts/lib/chart/tree.js","webpack:///./node_modules/echarts/lib/chart/line/lineAnimationDiff.js","webpack:///./node_modules/echarts/lib/component/axisPointer/SingleAxisPointer.js","webpack:///./node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","webpack:///./node_modules/zrender/lib/vml/vml.js","webpack:///./node_modules/echarts/lib/chart/line/LineView.js","webpack:///./node_modules/echarts/lib/theme/dark.js","webpack:///./node_modules/echarts/lib/component/axis/CartesianAxisView.js","webpack:///./node_modules/echarts/lib/coord/geo/Region.js","webpack:///./node_modules/echarts/lib/component/parallel.js","webpack:///./node_modules/echarts/lib/component/brush/BrushModel.js","webpack:///./node_modules/echarts/lib/stream/task.js","webpack:///./node_modules/echarts/lib/component/helper/brushHelper.js","webpack:///./src/views/dashboard/index.vue?b4bf","webpack:///./node_modules/echarts/lib/component/angleAxis.js","webpack:///./node_modules/echarts/lib/chart/treemap/Breadcrumb.js","webpack:///./node_modules/echarts/lib/chart/map/mapDataStatistic.js","webpack:///./node_modules/echarts/lib/chart/helper/SymbolDraw.js","webpack:///./node_modules/echarts/lib/chart/pie/PieSeries.js","webpack:///./node_modules/echarts/lib/util/layout.js","webpack:///./node_modules/echarts/lib/chart/boxplot.js","webpack:///./node_modules/echarts/lib/component/axis/AxisBuilder.js","webpack:///./node_modules/echarts/lib/preprocessor/backwardCompat.js","webpack:///./node_modules/echarts/lib/component/helper/BrushController.js","webpack:///./node_modules/echarts/lib/coord/polar/Polar.js","webpack:///./node_modules/echarts/lib/visual/seriesColor.js","webpack:///./node_modules/echarts/lib/processor/dataSample.js","webpack:///./node_modules/echarts/lib/model/mixin/textStyle.js","webpack:///./node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/Brush.js","webpack:///./node_modules/echarts/lib/component/axisPointer/viewHelper.js"],"names":["_util","each","createHashMap","SeriesModel","createListFromArray","_default","extend","type","dependencies","visualColorAccessPath","getInitialData","option","ecModel","source","this","getSource","setEncodeAndDimensions","getRawIndicesByActiveState","activeState","coordSys","coordinateSystem","data","getData","indices","eachActiveState","theActiveState","dataIndex","push","getRawIndex","defaultOption","zlevel","z","parallelIndex","label","show","inactiveOpacity","activeOpacity","lineStyle","width","opacity","emphasis","progressive","smooth","animationEasing","seriesModel","encodeDefine","parallelModel","getComponent","get","dimensions","axisDim","dataDimIndex","convertDimNameToNumber","set","dimName","replace","module","exports","zrUtil","VisualMapView","graphic","_symbol","createSymbol","layout","helper","PiecewiseVisualMapView","doRender","thisGroup","group","removeAll","visualMapModel","textGap","textStyleModel","textFont","getFont","textFill","getTextColor","itemAlign","_getItemAlign","itemSize","viewData","_getViewData","endsText","showLabel","retrieve","renderItem","item","piece","itemGroup","Group","onclick","bind","_onItemClick","_enableHoverLink","indexInModelPieceList","representValue","getRepresentValue","_createItemSymbol","visualState","getValueState","add","Text","style","x","y","text","textVerticalAlign","textAlign","_renderEndsText","viewPieceList","box","renderBackground","positionGroup","pieceIndex","onHoverLink","method","hoverLink","api","dispatchAction","batch","makeHighDownBatch","findTargetDataIndices","on","modelOption","orient","getItemAlign","align","map","getPieceList","index","inverse","reverse","slice","shapeParam","getControllerVisual","selected","clone","newKey","getSelectedMapKey","selectedMode","o","key","from","uid","visualMapId","id","echarts","registerAction","event","update","createListSimply","_model","defaultEmphasis","_sourceHelper","makeSeriesEncodeForNameBased","LegendVisualProvider","FunnelSeries","extendSeriesModel","init","superApply","arguments","legendVisualProvider","getRawData","_defaultLabelLine","coordDimensions","encodeDefaulter","curry","labelLineNormalOpt","labelLine","labelLineEmphasisOpt","getDataParams","params","superCall","valueDim","mapDimension","sum","getSum","percent","toFixed","$vars","legendHoverLink","left","top","right","bottom","minSize","maxSize","sort","gap","funnelAlign","position","length","itemStyle","borderColor","borderWidth","dataToCoordSize","dataSize","dataItem","dimIdx","val","halfSize","p1","p2","Math","abs","dataToPoint","rect","getBoundingRect","height","zoom","getZoom","coord","size","BoundingRect","View","geoSourceManager","Geo","name","nameMap","invertLongitute","call","load","_nameCoordMap","nameCoordMap","_regionsMap","regionsMap","_invertLongitute","regions","_rect","boundingRect","doConvert","methodName","finder","value","geoModel","getReferringComponents","prototype","constructor","containCoord","i","contain","transformTo","rawTransformable","_rawTransformable","transform","calculateTransform","decomposeTransform","scale","updateTransform","_updateTransform","getRegion","getRegionByCoord","addGeoCoord","geoCoord","getGeoCoord","noRoam","out","convertToPixel","convertFromPixel","mixin","gridModel","axisModel","opt","grid","axis","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","dim","getRect","rectBound","idx","onZero","axisOffset","posBound","onZeroCoord","toGlobalCoord","dataToCoord","max","min","rotation","PI","dirMap","labelDirection","tickDirection","nameDirection","labelOffset","labelInside","labelRotate","z2","extendComponentView","render","Rect","shape","defaults","fill","getItemStyle","silent","registerPreprocessor","xAxis","yAxis","updateViewOnPan","controllerHost","dx","dy","target","pos","dirty","updateViewOnZoom","zoomDelta","zoomX","zoomY","zoomLimit","newZoom","zoomMin","zoomMax","Infinity","zoomScale","ComponentModel","ComponentView","detectSourceFormat","_sourceType","SERIES_LAYOUT_BY_COLUMN","seriesLayoutBy","sourceHeader","optionUpdated","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","r","makeAscendingRun","array","lo","hi","compare","runHi","reverseRun","t","binaryInsertionSort","start","mid","pivot","gallopLeft","hint","lastOffset","maxOffset","offset","tmp","m","gallopRight","TimSort","runStart","runLength","minGallop","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","k","mergeLow","mergeHigh","cursor1","cursor2","dest","count1","count2","exit","_minGallop","Error","customCursor","customDest","remaining","ts","minRun","force","windingLine","EPSILON","isAroundEqual","a","b","points","w","p","p0","Clip","color","isArrayLike","arraySlice","Array","defaultGetter","defaultSetter","interpolateNumber","interpolateString","interpolateArray","arrDim","len","len2","j","fillArr","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","isNaN","isArraySame","catmullRomInterpolateArray","p3","t2","t3","catmullRomInterpolate","v0","v1","cloneValue","ret","rgba2String","rgba","floor","join","getArrayDim","keyframes","lastValue","createTrackClip","animator","easing","oneTrackDone","propName","forceAnimate","getter","_getter","setter","_setter","useSpline","trackLen","trackMaxTime","firstVal","isValueArray","isValueColor","isValueString","time","kfPercents","kfValues","prevValue","isAllValueEqual","colorArray","parse","_target","lastFrame","lastFramePercent","onframe","frame","range","clip","life","loop","_loop","delay","_delay","ondestroy","Animator","_tracks","_clipCount","_doneList","_onframeList","_clipList","when","props","tracks","hasOwnProperty","during","callback","pause","_paused","resume","isPaused","_doneCallback","doneList","lastClip","self","clipCount","animation","addClip","oldOnFrame","stop","forwardToLast","clipList","removeClip","done","cb","getClips","Model","linkList","List","createDimensions","TreeNode","hostTree","depth","parentNode","children","viewChildren","Tree","hostModel","levelOptions","root","_nodes","levelModels","levelDefine","addChild","child","node","isRemoved","eachNode","options","context","isString","order","suppressVisitSub","attr","updateDepthAndHeight","getNodeById","getId","res","contains","getAncestors","includeSelf","ancestors","getValue","dimension","getDimension","setLayout","merge","setItemLayout","getLayout","getItemLayout","getModel","path","itemModel","getItemModel","levelModel","getLevelModel","setVisual","setItemVisual","getVisual","ignoreParent","getItemVisual","isAncestorOf","parent","isDescendantOf","getNodeByDataIndex","rawIndex","getNodeByName","nodes","count","clearLayouts","clearItemLayouts","createTree","dataRoot","treeOptions","beforeLink","tree","levels","listData","dimMax","buildHierarchy","dataNode","isArray","dimensionsInfo","dimensionsCount","list","initData","mainData","struct","structAttr","_config","__DEV__","VisualMapModel","VisualMapping","visualDefault","_number","reformIntervals","PiecewiseModel","minOpen","maxOpen","itemWidth","itemHeight","itemSymbol","pieceList","categories","splitNumber","itemGap","newOption","isInit","_pieceList","resetExtent","mode","_mode","_determineMode","resetMethods","_resetSelected","resetVisual","mappingOption","state","mappingMethod","dataExtent","getExtent","visual","completeVisualOption","visualTypesInPieces","visualTypes","listVisualTypes","isCategory","has","obj","visualType","isObject","pieces","v","exists","stateList","apply","thisOption","hasSel","setSelected","findPieceIndex","result","eachTargetSeries","dataIndices","getDataDimension","pIdx","seriesId","pieceInterval","interval","getVisualMeta","getColorVisual","stops","outerColors","edge","unshift","curr","setStop","valueState","precision","parseInt","splitStep","close","formatValueText","cate","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","lg","names","retrieveVisuals","edgeSymbols","zrColor","eventUtil","domUtil","env","formatUtil","toCamelCase","vendors","gCssText","assembleTransition","duration","transitionCurve","transitionText","vendorPrefix","assembleFont","cssText","fontSize","round","assembleCssText","tooltipModel","transitionDuration","backgroundColor","padding","canvasSupported","toHex","borderName","camelCase","normalizeCssArray","makeStyleCoord","zr","appendToBody","zrX","zrY","zrPainter","painter","zrViewportRoot","getViewportRoot","transformLocalCoord","document","body","viewportRootOffset","getViewportRootOffset","offsetLeft","offsetTop","TooltipContent","container","wxa","el","createElement","domBelongToZr","_zr","getZr","_appendToBody","_styleCoord","getWidth","getHeight","appendChild","_container","_show","_hideTimeout","onmouseenter","_enterable","clearTimeout","_inContent","onmousemove","e","window","handler","normalizeEvent","dispatch","onmouseleave","hideLater","_hideDelay","stl","currentStyle","defaultView","getComputedStyle","domStyle","styleCoord","display","innerHTML","pointerEvents","setContent","content","setEnterable","enterable","getSize","clientWidth","clientHeight","moveTo","hide","setTimeout","isShow","dispose","removeChild","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","parallelVisual","registerVisual","_vm","_h","$createElement","_c","_self","staticClass","directives","rawName","hiddenQueryForm","expression","attrs","nativeOn","$event","preventDefault","model","$$v","queryForm","_t","handleSearch","_v","handleResetSearch","_s","totalMoneyTitle","_f","totalMoney","_e","table","tableItems","handleSelectionChange","page","pageSizeChoose","pageSize","totalCount","$set","handleSizeChange","current_change","detailTitle","showDetail","onCloseDetail","staticRenderFns","listLoading","sorting","newValue","fetchData","$bus","$on","selection","$emit","console","log","pageParameter","skipCount","maxResultCount","fetchResult","searchFunction","Object","assign","then","items","resetForm","excludeResetKeys","indexOf","undefined","refreshData","prop","$router","indexRouteName","pageSizes","$route","meta","title","required","default","component","preprocessor","candlestickVisual","candlestickLayout","registerLayout","Axis","TimelineAxis","coordExtent","axisType","getLabelModel","isHorizontal","inherits","_graphic","subPixelOptimize","createRenderPlanner","parsePercent","retrieve2","LargeArr","Float32Array","seriesType","plan","reset","candleWidth","calculateCandleWidth","cDimIdx","vDimIdx","coordDims","cDim","vDims","openDim","closeDim","lowestDim","highestDim","isSimpleBox","progress","pipelineContext","large","largeProgress","normalProgress","next","axisDimVal","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","getPoint","ocHighPoint","lowestPoint","highestPoint","ends","addBodyEnd","subPixelOptimizePoint","sign","getSign","initBaseline","brushRect","makeBrushRect","NaN","point","point1","point2","pmin","pmax","tmpIn","tmpOut","extent","baseAxis","getBaseAxis","bandWidth","getBandWidth","barMaxWidth","barMinWidth","barWidth","GestureMgr","_track","dist","pointPair","sqrt","center","recognize","_doTrack","_recognize","clear","touches","trackItem","touch","clientToLocal","eventName","recognizers","gestureInfo","pinch","track","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","Diff","buildValues","diff","components","newArr","oldArr","componentPos","componentLen","newPos","oldPos","removed","added","clonePath","equals","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","pushComponent","last","commonCount","tokenize","arrayDiff","RoamController","roamHelper","_cursorHelper","onIrrelevantElement","_component","getUID","Transformable","getFixedItemStyle","areaColor","updateMapSelectHandler","mapDraw","mapOrGeoModel","regionsGroup","fromView","off","_mouseDownFlag","__regions","action","mainType","region","updateMapSelected","eachChild","otherRegionEl","trigger","isSelected","MapDraw","updateGroup","_controller","_controllerHost","_updateGroup","_mapName","_initialized","_regionsGroup","_backgroundGroup","draw","payload","isGeo","eachComponent","subType","mapSeries","getHostGeoModel","geo","_updateBackground","targetScale","transformInfo","getTransformInfo","isFirstDraw","childAt","roamTransform","updateProps","rawScale","rawPosition","itemStyleAccessPath","hoverItemStyleAccessPath","labelAccessPath","hoverLabelAccessPath","regionGroup","compoundPath","CompoundPath","segmentIgnoreThreshold","paths","dataIdx","regionModel","getRegionModel","itemStyleModel","hoverItemStyleModel","hoverItemStyle","labelModel","hoverLabelModel","indexOfName","visualColor","transformPoint","geometries","geometry","exterior","Polygon","interiors","interior","setStyle","strokeNoScale","culling","hoverShowLabel","isDataNaN","itemLayout","labelFetcher","query","textEl","setLabelStyle","hoverStyle","labelDataIndex","defaultText","useInsideStyle","textScale","setItemGraphicEl","eventData","componentType","componentIndex","geoIndex","groupRegions","highDownSilentOnTouch","setHoverStyle","_updateController","remove","removeGraphic","mapName","makeGraphic","controller","enable","makeActionBase","originX","originY","traverse","setPointerChecker","getViewRectAfterRoam","matrix","vector","mIdentity","identity","isNotAroundZero","opts","origin","transformableProto","needLocalTransform","scaleTmp","parentHasTransform","create","getLocalTransform","mul","copy","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","invert","setTransform","ctx","dpr","restoreTransform","tmpTransform","originTransform","setLocalTransform","atan2","transformCoordToLocal","v2","applyTransform","transformCoordToGlobal","rotate","Displayable","imageHelper","ZImage","brush","prevEl","src","image","_image","createOrUpdateImage","onload","isImageReady","aspect","sWidth","sHeight","drawImage","drawRectText","eachSeriesByType","graph","getGraph","minValue","maxValue","nodeValue","mapping","mapValueToColor","mapValueToVisual","customColor","layoutUtil","LegendView","WH","XY","ScrollableLegendView","newlineDisabled","_currentIndex","_containerGroup","getContentGroup","_controllerGroup","_showController","resetInner","removeClipPath","__rectSize","renderInner","legendModel","selector","selectorPosition","me","controllerGroup","pageIconSize","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","icon","createIcon","getOrient","_pageGo","font","layoutInner","isFirstRender","selectorGroup","getSelectorGroup","orientIdx","wh","xy","hw","yx","selectorButtonGap","selectorRect","selectorPos","processMaxSize","mainRect","_layoutContentAndController","contentGroup","containerGroup","contentRect","controllerRect","showController","contentPos","containerPos","controllerPos","pageButtonGap","pageButtonPosition","clipShape","setClipPath","invisible","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","to","scrollDataIndex","legendId","canJump","childOfName","cursor","pageText","pageFormatter","current","total","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","s","winStartItemInfo","winEndItemInfo","currItemInfo","intersect","itemRect","__legendDataIndex","itemInfo","winStart","targetDataIndex","defaultIndex","legendDataIdx","ParallelAxis","axisIndex","makeInner","getDataItemValue","isTypedArray","Source","assert","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_UNKNOWN","SOURCE_FORMAT_TYPED_ARRAY","SERIES_LAYOUT_BY_ROW","BE_ORDINAL","Must","Might","Not","inner","datasetModel","sourceFormat","resetSourceDefaulter","datasetMap","prepareSource","seriesOption","fromDataset","dimensionsDefine","getDatasetModel","datasetOption","completeResult","completeBySourceData","startIndex","dimensionsDetectCount","encode","normalizeDimensionsDefine","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","value0","displayName","exist","maxLoop","firstIndex","makeSeriesEncodeForAxisCoordSys","baseCategoryDimIndex","categoryWayValueDimStart","encodeItemName","encodeSeriesName","coordDimInfo","coordDimIdx","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","coordDimName","itemName","seriesName","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","datasetIndex","guessOrdinal","dimIndex","dimType","dimDefItem","sample","detectValue","row","beStr","Line","vec2","curveUtil","EffectLine","lineData","seriesScope","createLine","_updateEffectSymbol","effectLineProto","effectModel","symbolType","symbol","_symbolType","setColor","_symbolScale","_updateEffectAnimation","period","constantSpeed","delayExpr","isDelayFunc","ignore","updateAnimationPoints","getLineLength","_period","stopAnimation","__t","animate","updateSymbolPosition","__p1","__cp1","__p2","updateData","cp1","lastPos","quadraticAt","quadraticDerivativeAt","tx","ty","__lastT","scaleY","updateLayout","visualSolution","throttleUtil","BrushTargetManager","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","PRIORITY","VISUAL","BRUSH","layoutCovers","brushModel","brushTargetManager","setInputRanges","areas","throttleType","throttleDelay","brushSelected","doDispatch","fn","createOrUpdate","isDisposed","checkInRange","selectorsByBrushType","rangeInfoList","area","brushType","selectors","getSelectorsByBrushType","brushSelector","sels","selectorsByElementType","isFunction","bSelector","sel","brushModelNotControll","seriesIndex","seriesIndices","bindSelector","selFn","elType","setBrushOption","brushOption","brushIndex","thisBrushSelected","brushId","brushName","brushLink","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","boundingRectBuilders","visualMappings","createVisualMappings","linkOthers","brushed","stepAParallel","hasAxisBrushed","stepAOthers","controlSeries","eachSeries","seriesBrushSelected","applyVisual","lineX","noop","lineY","getBoundingRectFromMinMax","polygon","minMax","rg","visualSymbol","layoutPoints","modelUtil","getSeriesByIndex","queryDataIndex","getItemGraphicEl","getTooltipPosition","getValues","_labelHelper","getDefaultLabel","SymbolClz","symbolProto","getSymbolSize","symbolSize","getScale","driftSymbol","drift","_createSymbol","keepAspect","symbolPath","stopSymbolAnimation","toLastFrame","getSymbolPath","highlight","downplay","setZ","setDraggable","draggable","_updateCommon","fadeIn","initProps","_seriesModel","normalStyleAccessPath","emphasisStyleAccessPath","normalLabelAccessPath","emphasisLabelAccessPath","highDownOnUpdate","fromState","toState","incremental","useHoverLayer","__symbolOriginalScale","ratio","emphasisOpt","animateTo","useStyle","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","symbolOffset","hoverAnimation","cursorStyle","hasItemOption","getShallow","elStyle","symbolRotate","symbolInnerColor","liftZ","z2Origin","__z2Origin","useNameLabel","getLabelDefaultText","getName","isRectText","autoColor","isAnimationEnabled","fadeOut","keepLabel","symbolUtil","normalizeSymbolSize","extendChartView","polar","oldData","_data","updateSymbols","oldPoints","newPoints","symbolGroup","__dimIdx","getInitialPoints","pt","cx","cy","polyline","Polyline","newIdx","oldIdx","execute","eachItemGraphicEl","getLineStyle","stroke","areaStyleModel","hoverAreaStyleModel","polygonIgnore","isEmpty","parentModel","hoverPolygonIgnore","getAreaStyle","itemHoverStyle","labelHoverModel","labelDimIndex","AxisBuilder","AxisView","axisBuilderAttrs","selfBuilderAttrs","axisPointerClass","radiusAxisModel","radiusAxis","angleAxis","getAngleAxis","ticksCoords","getTicksCoords","minorTicksCoords","getMinorTicksCoords","axisAngle","radiusExtent","layoutAxis","axisBuilder","getGroup","isBlank","_splitLine","splitLineModel","lineStyleModel","lineColors","lineCount","splitLines","colorIndex","Circle","mergePath","_minorSplitLine","minorSplitLineModel","lines","_splitArea","splitAreaModel","areaColors","splitAreas","prevRadius","Sector","r0","startAngle","endAngle","axisHelper","axisModelCommonMixin","_layout","getLayoutRect","_dataStackHelper","enableDataStack","isDimensionStacked","getStackedDimension","_completeDimensions","completeDimensions","_createDimensions","createList","dataStack","createScale","isInstance","createScaleByModel","setExtent","niceScaleExtent","mixinAxisModelCommonMethods","ArrayCtor","m1","m2","out0","out1","out2","out3","out4","out5","translate","rad","aa","ac","atx","ab","ad","aty","st","sin","ct","cos","vx","vy","det","axisDefault","valueAxisDefault","valueAxis","defaultsShow","RadarModel","extendComponentModel","boundaryGap","axisLine","axisTick","axisLabel","nameTextStyle","showName","nameFormatter","nameGap","triggerEvent","indicatorModels","indicatorOpt","iNameTextStyle","nameLocation","indName","getIndicatorModels","radius","splitLine","splitArea","indicator","coordsOffsetMap","mapType","coordFix","cp","BaseBarSeries","getProgressive","getProgressiveThreshold","progressiveThreshold","largeThreshold","roundCap","showBackground","backgroundStyle","borderType","borderRadius","register","records","initGlobalListeners","record","useHandler","eventType","dis","makeDispatchAction","dispatchTooltipFinally","pendings","initialized","doEnter","onLeave","actuallyPayload","showLen","showTip","hideLen","hideTip","currTrigger","pendingList","unregister","Scale","OrdinalMeta","scaleProto","OrdinalScale","ordinalMeta","_ordinalMeta","_extent","getOrdinal","rank","normalize","getTicks","ticks","getLabel","unionExtentFromData","unionExtent","getApproximateExtent","getOrdinalMeta","niceTicks","niceExtent","MarkerModel","tooltip","distance","ChartView","Path","_createClipPathFromCoordSys","createClipPath","NORMAL_ITEM_STYLE_PATH","EMPHASIS_ITEM_STYLE_PATH","SKIP_PROPS","CandlestickView","_updateDrawMode","_isLargeDraw","_renderLarge","_renderNormal","incrementalPrepareRender","_clear","incrementalRender","_incrementalRenderLarge","_incrementalRenderNormal","isLargeDraw","needsClip","clipArea","getArea","hasValue","isNormalBoxClipped","createNormalBox","setBoxCommon","createLarge","clipPath","NormalBoxPath","buildPath","__simpleBox","lineTo","closePath","transInit","clipped","normalItemStyleModel","LargeBoxPath","__sign","largePoints","elP","elN","setLargeStyle","suffix","Style","Element","RectText","__clipPaths","__dirty","dragging","rectHover","beforeBrush","afterBrush","rectContain","__dirtyText","__zr","refresh","animateStyle","attrKV","calculateTextPosition","updateDataSelected","hasAnimation","selectedOffset","toggleItemSelected","midAngle","PiePiece","sector","piePieceProto","firstCreate","labelText","sectorShape","animationTypeUpdate","setShape","animationType","lineJoin","withAnimation","_updateLabel","hoverIgnore","normalIgnore","labelLayout","targetLineShape","linePoints","targetTextStyle","labelLineModel","labelLineHoverModel","inside","verticalAlign","PieView","sectorGroup","_sectorGroup","onSectorClick","piePiece","_createClipPath","clockwise","initOrUpdate","containPoint","simpleLayout","simpleLayoutEdge","eachEdge","curveness","node1","node2","Polar","_axisHelper","CoordinateSystem","resizePolar","polarModel","getRadiusAxis","updatePolarScale","onBand","setAxis","polarCreator","polarList","findAxisModel","angleAxisModel","queryComponents","getSeriesStackId","getAxisKey","barLayoutPolar","lastStackCoords","barWidthAndOffset","calRadialBar","filter","getSeriesByType","isSeriesFiltered","axisKey","stackId","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","barMinAngle","baseDim","stacked","clampLayout","valueAxisStart","baseValue","baseCoord","radiusSpan","dataToRadius","angle","dataToAngle","angleSpan","barSeries","columnsMap","axisExtent","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","stacks","maxWidth","barGap","barCategoryGap","coordSysName","barGapPercent","autoWidth","column","stack","lastColumn","widthSum","mathCos","mathSin","selectableMixin","geoCreator","GeoModel","layoutMode","getFilledRegions","_optionModelMap","reduce","optionModelMap","regionOpt","updateSelectedMap","aspectScale","boundingCoords","scaleLimit","getFormattedLabel","status","formatter","setZoom","setCenter","arrySlice","Eventful","eventProcessor","_$handlers","_$eventProcessor","normalizeQuery","host","eventful","isOnce","h","wrap","one","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","newList","l","args","argLen","hItem","afterTrigger","triggerWithContext","getMin","rangeStart","eqNaN","getMax","rangeEnd","getNeedCrossZero","getCoordSysModel","setRange","resetRange","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","coordinateSystems","creater","concat","getCoordinateSystems","coordinateSystemCreator","curve","bbox","devicePixelRatio","CMD","M","L","C","Q","A","Z","R","min2","max2","mathMin","mathMax","mathSqrt","mathAbs","hasTypedArray","PathProxy","notSaveData","_saveData","_ctx","_xi","_yi","_x0","_y0","_ux","_uy","_len","_lineDash","_dashOffset","_dashIdx","_dashSum","setScale","getContext","beginPath","addData","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","x1","y1","x2","y2","x3","y3","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","anticlockwise","arcTo","x0","y0","toStatic","setLineDash","lineDash","lineDashSum","setLineDashOffset","setData","appendPath","appendSize","appendPathData","cmd","_expandData","_prevCmd","newData","dash","dashSum","nDash","cubicAt","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","fromLine","fromCubic","fromQuadratic","rx","ry","fromArc","rebuildPath","d","ux","uy","theta","dTheta","psi","fs","scaleX","isEllipse","features","ctor","_format","encodeHTML","layoutInfo","leaves","leavesModel","nodeData","wrapMethod","isExpand","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","getRawDataItem","collapsed","formatTooltip","realRoot","edgeShape","edgeForkPosition","roam","nodeScaleRatio","animationDuration","animationDurationUpdate","numberUtil","scaleHelper","IntervalScale","intervalScaleProto","mathCeil","ceil","mathFloor","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","bisect","TimeScale","stepLvl","_stepLvl","date","Date","formatTime","getSetting","getFullYear","getMonth","getDate","minInterval","maxInterval","_interval","fixMin","fixMax","approxTickNum","span","approxInterval","scaleLevelsLen","scaleLevels","level","yearSpan","yearStep","nice","timezoneOffset","getTimezoneOffset","fixExtent","_niceExtent","parseDate","useUTC","useEncodeDefaulter","step","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","hoverLayerThreshold","Component","parallelAxisIndex","axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","parallelAxisDefault","mergeOption","_initDimensions","setAxisExpand","axisModels","dependentModels","parallelAxis","wx","getSystemInfoSync","browser","os","svgSupported","touchEventsSupported","domSupported","worker","navigator","detect","userAgent","ua","firefox","match","ie","weChat","test","version","SVGRect","pointerEventsSupported","hierNode","defaultAncestor","ancestor","prelim","modifier","change","shift","thread","pop","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","radialCoor","getViewRect","getBoxLayoutParams","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","pathTool","colorTool","Image","Ring","BezierCurve","Arc","LinearGradient","RadialGradient","IncrementalDisplayable","subPixelOptimizeUtil","EMPTY_OBJ","Z2_EMPHASIS_LIFT","CACHED_LABEL_STYLE_PROPERTIES","textBorderColor","textBorderWidth","EMPHASIS","NORMAL","_highlightNextDigit","_highlightKeyMap","_customShapeMap","extendShape","extendPath","pathData","extendFromString","registerShape","ShapeClass","getShapeClass","makePath","createFromString","centerGraphic","resizePath","makeImage","imageUrl","img","pathRect","subPixelOptimizeLine","param","subPixelOptimizeRect","hasFillOrStroke","fillOrStroke","liftedColorMap","liftedColorCount","liftColor","liftedColor","lift","cacheElementStl","__hoverStlDirty","__hoverStl","normalStyle","__cachedNormalStl","__cachedNormalZ2","singleEnterEmphasis","hoverStl","__highlighted","isGroup","elTarget","targetStyle","addHover","rollbackDefaultTextStyle","extendFrom","setDefaultHoverFillStroke","applyDefaultTextStyle","singleEnterNormal","highlighted","removeHover","normalStl","normalZ2","traverseUpdate","updater","commonParam","__highDownOnUpdate","setElementHoverStyle","onElementMouseOver","shouldSilent","__highByOuter","onElementMouseOut","onElementEmphasisEvent","highlightDigit","onElementNormalEvent","__highDownSilentOnTouch","zrByTouch","setAsHighDownDispatcher","asDispatcher","disable","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","emphasisStyle","normalModel","emphasisModel","normalSpecified","emphasisSpecified","baseText","labelProp","showNormal","showEmphasis","normalStyleText","emphasisStyleText","setTextStyle","modifyLabelStyle","normalStyleProps","emphasisStyleProps","textStyle","specifiedTextStyle","isEmphasis","setTextStyleCommon","setText","defaultColor","textPosition","getTextPosition","textOffset","textRotation","textDistance","richResult","globalTextStyle","richItemNames","getRichItemNames","richTextStyle","setTokenTextStyle","rich","forceRich","richItemNameMap","isBlock","getAutoColor","textStroke","textStrokeWidth","insideRollbackOpt","fontStyle","fontWeight","fontFamily","textLineHeight","textWidth","textHeight","textTag","disableBox","textBackgroundColor","textPadding","textBorderRadius","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","insideRollback","useInsideStyleCache","useAutoColorCache","gTextStyleModel","trim","animateOrSetProps","isUpdate","animatableModel","animationEnabled","postfix","animationDelay","getAnimationDelayParams","getTransform","mat","transformDirection","direction","hBase","vBase","vertex","groupTransition","g1","g2","elMap1","getElMap","anid","oldEl","newProp","getAnimatableProps","g","elMap","clipPointsByRect","clipRectByRect","targetRect","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","q","eventTool","throttle","DataZoomView","sliderMove","linearMap","asc","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","SliderZoomView","_displayables","_orient","_range","_handleEnds","_size","_handleWidth","_handleHeight","_location","_dragging","_dataShadowInfo","dataZoomModel","_buildView","_updateView","_resetLocation","_resetInterval","barGroup","_renderBackground","_renderHandle","_renderDataShadow","_positionGroup","coordRect","_findCoordRect","ecSize","positionInfo","layoutParams","getLayoutParams","layoutRect","location","targetAxisModel","getFirstTargetAxisModel","otherAxisInverse","_getViewExtent","_onClickPanelClick","info","_prepareDataShadowInfo","series","otherDim","getShadowDim","otherDataExtent","getDataExtent","otherOffset","lastIsEmpty","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","otherCoord","showDataShadow","eachTargetAxis","dimNames","seriesModels","getAxisProxy","getTargetSeriesModels","thisAxis","getOtherDim","thisDim","displaybles","handles","handleLabels","filler","getCursor","_onDragMove","ondragstart","_showDataInfo","ondragend","_onDragEnd","onmouseover","onmouseout","lineWidth","handleIndex","bRect","handleColor","getPercentRange","viewExtent","_updateInterval","delta","handleEnds","viewExtend","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","percentExtent","minSpan","maxSpan","lastRange","nonRealtime","handleInterval","handle","handleHeight","_updateDataInfo","labelTexts","axisProxy","getAxisModel","dataInterval","calculateDataWindow","end","valueWindow","getDataValueWindow","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelFormatter","labelPrecision","getPixelPrecision","valueStr","showOrHide","changed","realtime","_dispatchZoomAction","localPoint","offsetX","offsetY","dataZoomId","getTargetCoordInfo","coordInfoList","Graph","edges","directed","addNode","linkNameList","validEdges","linkCount","link","addEdge","coordSysCtor","dimensionNames","edgeData","datas","datasAttr","IndicatorAxis","getScaleExtent","LogScale","Radar","radarModel","_indicatorAxes","indicatorModel","indicatorAxis","resize","getIndicatorAxes","indicatorIndex","coordToPoint","pointToData","closestAxis","radian","minRadianDiff","closestAxisIdx","coordToData","viewWidth","viewHeight","viewSize","indicatorAxes","radarSeries","increaseInterval","exp10","pow","LN10","f","rawExtent","fixedMin","fixedMax","getInterval","setInterval","nicedSplitNumber","radarList","radar","categoryFilter","categoryVisual","edgeVisual","circularLayout","forceLayout","createView","registerProcessor","POST_CHART_LAYOUT","registerCoordinateSystem","dataFormatMixin","addCommas","fillLabel","mergeDefaultAndTheme","_mergeOption","hostSeries","__hostSeries","newOpt","createdBySelf","modelPropName","markerOpt","markerModel","getRawValue","formattedValue","html","getSortedIndices","valueArr","mapArray","isAscending","textX","textY","labelPosition","isLabelInside","labelLineLen","viewRect","sizeExtent","getLinePoints","offY","nextIdx","_poly","DataDiffer","_layers","layerSeries","getLayerSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","process","oldLayersGroups","points0","points1","textLayout","margin","layerGroup","stackedOnPoints","stackedOnSmooth","smoothConstraint","createGridClipShape","rectEl","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","styleName","normalItemStyleOpt","normal","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","TEXT_STYLE_OPTIONS","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","links","mpData","mlData","breadcrumb","toArr","toObj","isTheme","axes","axisName","axisOpt","axisPointer","parallel","parallelOpt","calendar","calendarOpt","radarOpt","geoOpt","regionObj","timeline","timelineOpt","toolbox","toolboxOpt","feature","featureOpt","properties","excludes","includes","PI2","RADIAN","minAngle","validDataCount","unitRadian","roseType","stillShowZeroSum","restAngle","valueSumLargerThanMinAngle","currentAngle","dir","paletteScope","categoriesData","getCategoriesData","categoryNameIdxMap","getColorFromPalette","itemStyleList","category","legend","all","keep","dataView","lang","dataZoom","back","magicType","line","bar","tiled","restore","saveAsImage","typeNames","pie","scatter","effectScatter","treemap","boxplot","candlestick","heatmap","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","middle","allData","partialData","isDataItemOption","DefaultDataProvider","dimSize","seriesDataToSource","_source","_offset","_dimSize","methods","providerMethods","providerProto","pure","persistent","getItem","appendData","appendDataSimply","countSimply","getItemSimply","col","dims","newCol","oldCol","clean","rawValueGetters","arrayRows","getRawValueSimply","objectRows","keyedColumns","original","typedArray","defaultDimValueGetters","getDimValueSimply","converDataValue","_dimensionInfos","_rawData","dimInfo","parseAndCollect","retrieveRawValue","getProvider","getDimensionInfo","retrieveRawAttr","fixShadow","_constant","ContextCachedBy","STYLE_COMMON_PROPS","createLinearGradient","global","canvasGradient","createRadialGradient","fillOpacity","strokeOpacity","lineDashOffset","textRect","transformText","textOrigin","truncate","blend","prevStyle","notCheckCache","__attrCachedBy","STYLE_BIND","fillStyle","strokeStyle","globalAlpha","globalCompositeOperation","hasStroke","getLineScale","hasFill","otherStyle","overwrite","newStyle","getGradient","colorStops","addColorStop","styleProto","hasKeys","supplementVisualOption","mappings","createMappings","visualData","isValidType","__hidden","__alphaForOpacity","Creater","replaceVisualOption","keys","scope","visualTypesMap","eachItem","valueOrIndex","rawDataItem","visualMap","prepareVisualTypes","incrementalApplyVisual","getTargetSeries","seriesModelMap","modifyOutputEnd","overallReset","filterData","percentRange","getDataPercentWindow","valueRange","setCalculatedRange","startValue","endValue","debugMode","OTHER_DIMENSIONS","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","userOutput","dimItem","coordDim","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","encodeArr","otherDims","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","barPolar","borderColorQuery","globalColors","eachRawSeriesByType","defaulColor","legendSymbol","getMarkerPosition","clampData","offsetIndex","progressiveChunkMode","Ellipse","_path","DILIMITER_REG","parseXML","svg","parser","DOMParser","parseFromString","nodeType","firstChild","nodeName","toLowerCase","nextSibling","SVGParser","_defs","_root","_isDefine","_isText","xml","viewBox","getAttribute","parseFloat","parseAttributes","viewBoxRect","viewBoxTransform","_parseNode","viewBoxArr","split","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","defineParsers","def","nodeParsers","_parseText","_textX","_textY","textContent","inheritStyle","circle","ellipse","parsePoints","gradient","_parseGradientColorStops","stopColor","__inheritedStyle","pointsString","attributesMap","defs","onlyInlineStyle","zrStyle","isTextEl","parseTransformAttribute","parseStyleAttribute","svgAttrName","attrValue","elFillProp","elStrokeProp","getPaint","elPropName","textBaseline","urlRegex","str","urlMatch","url","transformRegex","transformOps","warn","styleRegex","styleRegResult","styleList","exec","viewBoxScale","viewBoxPosition","parseSVG","DEFAULT_BAR_BOUND","ContinuousModel","calculable","hoverLinkDataSize","hoverLinkOnHandle","_resetRange","resetItemSize","auto","getSelected","oVals","getColorStopValues","iVals","iIdx","oIdx","iLen","oLen","first","stopsLen","stopValues","getAxis","markerHelper","LineDraw","MarkerView","markLineTransform","mlModel","mlType","axisInfo","getAxisInfo","valueDataDim","numCalculate","valueIndex","baseIndex","mlFrom","mlTo","dataTransform","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","containData","markLineFilter","dataFilter","updateSingleMarkerEndLayout","isFrom","xPx","yPx","markLineModel","fromData","__from","toData","__to","markerGroupMap","renderSeries","seriesData","lineDrawMap","lineDraw","updateDataVisualAndLayout","lineColor","dataModel","__keep","coordDimsInfos","optData","dimValueGetter","util","_event","Dispatcher","requestAnimationFrame","Animation","stage","_clips","_running","_time","_pausedTime","_pauseStart","addAnimator","clips","removeAnimator","_update","getTime","deferredEvents","deferredClips","_needsRemove","fire","_startLoop","isFinished","sankeyLayout","sankeyVisual","factory","msg","error","registerMap","_echarts","_export","DATAS","MAIN_DATA","main","linkAll","TRANSFERABLE_METHODS","transferInjection","cloneShallowInjection","CHANGABLE_METHODS","changeInjection","dataType","isMainData","linkSingle","cloneShallow","getLinkedData","Region","roams","InsideZoomView","allCoordIds","coordInfo","generateCoordId","coordModel","getRange","roamHandlers","coordId","containsPoint","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","pixel","pan","makeMover","oldX","oldY","newX","newY","scrollMove","scrollDelta","getPercentDelta","percentDelta","oldPoint","newPoint","angleExtent","pointToCoord","singleAxis","_dimensionHelper","_referHelper","getCoordSysInfoBySeries","coordSysDimDefs","registeredCoordSys","coordSysInfo","coordSysDims","axisMap","getDimensionsInfo","firstCategoryDimIndex","hasNameEncode","dimInfoList","generateCoord","categoryAxisModel","categoryAxisMap","stackCalculationInfo","setCalculationInfo","isNeedCompleteOrdinalData","itemOpt","defaultDimValueGetter","sampleItem","firstDataNotNull","isNumeric","_helper","BAR_BORDER_WIDTH_QUERY","LAYOUT_ATTRS","posDesc","pathForLineWidth","BarView","cartesian","coordSysRect","coordSysExtent","categoryDim","symbolMeta","getSymbolMeta","createBar","updateCommon","newIndex","oldIndex","pictorialShapeStr","getShapeStr","__pictorialShapeStr","updateBar","__pictorialSymbolMeta","removeBar","animationModel","symbolRepeat","symbolClip","symbolPosition","symbolPatternSize","symbolRepeatDirection","prepareBarLength","prepareSymbolSize","boundingLength","pxSign","prepareLineWidth","symbolScale","prepareLayoutInfo","valueLineWidth","repeatCutLength","output","symbolBoundingData","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","categorySize","unitLength","pathLen","absBoundingLength","symbolMargin","hasEndGap","lastIndexOf","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","createPath","createOrUpdateRepeatSymbols","bundle","__pictorialBundle","unit","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","updateHoverAnimation","onMouseOver","onMouseOut","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","rectShape","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","labelRect","pathes","immediateAttrs","animationAttrs","barRectHoverStyle","barPositionOutside","times","roundedTimes","SunburstPiece","windowOpen","ROOT_TO_NODE_ACTION","SunburstView","that","virtualRoot","newRoot","getViewRoot","renderLabelForZeroData","newChildren","oldChildren","_oldChildren","dualTravel","renderRollUp","highlightPolicy","onEmphasis","unhighlight","virtualPiece","onNormal","getKey","processNode","newId","oldId","newNode","oldNode","doRenderNode","removeNode","viewRoot","_onclickEvent","_rootToNode","_initEvents","targetFound","nodeClick","linkTarget","targetNode","treeRoot","transformPath","vMag","vRatio","u","vAngle","acos","processArc","fa","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","prevCmd","cpx","cpy","subpathX","subpathY","cmdList","cmdText","cmdStr","charAt","pLen","ctlPtx","ctlPty","createPathOptions","pathProxy","pathEls","pathList","pathEl","createPathProxy","__dirtyPath","pathBundle","TimelineView","_axis","_viewRect","_timer","_currentPointer","_mainGroup","_labelGroup","timelineModel","mainGroup","_createGroup","labelGroup","_createAxis","_renderAxisLabel","_position","_doPlayStop","_clearTimer","labelPosOpt","horizontal","vertical","playPosition","prevBtnPosition","nextBtnPosition","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","labelRotation","controlPosition","showPlayBtn","showPrevBtn","showNextBtn","xLeft","xRight","labelAlign","labelBaseline","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","setOrigin","targetGroup","fromPos","boundIdx","newGroup","_renderAxisLine","lineCap","_renderAxisTick","tickCoord","hoverStyleModel","symbolOpt","_changeTimeline","giveSymbol","labels","getViewLabels","labelItem","tickValue","normalLabelModel","formattedLabel","_renderControl","playState","getPlayState","makeBtn","iconPath","willRotate","btn","makeIcon","_handlePlayClick","_renderCurrentPointer","currentIndex","getCurrentIndex","pointerModel","onCreate","pointer","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","_toAxisCoord","_findNearestTick","handleFrame","trans","axisCoord","nextIndex","objPath","noAnimation","DataZoomModel","SliderZoomModel","dataBackground","areaStyle","fillerColor","handleIcon","handleSize","handleStyle","zoomLock","RADIAN_EPSILON","_trim","domain","clamp","subDomain","subRange","returnStr","arr","getPrecision","getPrecisionSafe","toString","eIndex","dotIndex","pixelExtent","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","remainder","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","hour","toUpperCase","UTC","quantity","quantityExponent","exp","nf","exponent","quantile","ascArr","H","littleThan","currClose","_dataProvider","getTooltipMarker","formatTpl","getTooltipRenderMode","DIMENSION_LABEL_REG","rawValue","rawDataIndex","renderModeOption","renderMode","isSeries","componentSubType","marker","dimensionIndex","makeStyleMapper","getLineDash","lineType","dotSize","dashSize","Displayble","IncrementalDisplayble","_temporaryDisplayables","_cursor","notClear","clearDisplaybles","addDisplayable","displayable","notPersistent","addDisplayables","displayables","eachPendingDisplayable","childRect","union","localPos","setCurrentIndex","isIndexMax","setPlayState","resetOption","preventIncremental","coordSysCreator","blurSize","pointSize","maxOpacity","minOpacity","AxisProxy","eachAxisDim","xAxisIndex","yAxisIndex","filterMode","minValueSpan","maxValueSpan","rangeMode","_dataIntervalByAxis","_dataInfo","_axisProxies","_autoThrottle","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","doInit","_setDefaultThrottle","updateRangeUse","_resetTarget","_giveAxisProxies","axisProxies","__dzAxisProxy","autoMode","_judgeAutoMode","axisIndexName","normalizeToArray","_autoSetAxisIndex","_autoSetOrient","hasIndexSpecified","autoAxisIndex","singleAxisModel","singleAxisIndex","axisIndices","_isSeriesHasAllAxesTypeOf","axisId","is","seriesAxisIndex","globalOption","firstAxisModel","setRawRange","getValueRange","axisDimName","hostedBy","getRangePropMode","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_useHandle","_hoverLinkDataIndices","_hovering","_renderBar","dataRangeText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","_applyTransform","shapes","useHandle","_createBarGroup","outOfRange","createPolygon","inRange","_dragHandle","getTextRect","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","createHandlePoints","handleLabel","handleLabelPoint","indicatorLabel","indicatorLabelPoint","isEnd","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","forceState","convertOpacityToAlpha","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","sampleNumber","currValue","_showIndicator","cursorValue","textValue","rangeSymbol","halfHoverLinkSize","createIndicatorPoints","_hoverLinkFromSeriesMouseOver","_hideIndicator","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","compressBatches","_dispatchHighDown","isTargetSeries","element","isRange","extentMax","zrender","timsort","GlobalModel","ExtensionAPI","OptionManager","backwardCompat","_throttle","seriesColor","loadingDefault","Scheduler","lightTheme","darkTheme","mapDataStorage","parseClassType","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_BRUSH","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","COMPONENT","IN_MAIN_PROCESS","OPTION_UPDATED","ACTION_REG","createRegisterEventWithLowercaseName","ignoreDisposed","_disposed","disposedWarning","MessageCenter","ECharts","dom","theme","themeStorage","_dom","defaultRenderer","renderer","_throttledZrFlush","flush","_theme","_chartsViews","_chartsMap","_componentsViews","_componentsMap","_coordSysMgr","_api","createExtensionAPI","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_ecEventProcessor","EventProcessor","_messageCenter","_pendingActions","_onframe","bindRenderedEvent","setAsPrimitive","echartsProto","doConvertPixel","coordSysList","parseFinder","scheduler","prepare","updateMethods","flushPendingActions","triggerUpdatedEvent","unfinished","remainTime","startTime","performSeriesTasks","performDataProcessorTasks","updateStreamModes","performVisualTasks","getDom","setOption","notMerge","lazyUpdate","optionManager","optionPreprocessorFuncs","setTheme","getOption","getDevicePixelRatio","getRenderedCanvas","pixelRatio","getSvgDataURL","storage","getDisplayList","toDataURL","getDataURL","excludeComponents","excludesComponentViews","view","__viewId","getType","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","canvasList","instances","chart","canvas","getSvgDom","getBoundingClientRect","targetCanvas","createCanvas","getSvgRoot","connectedBackgroundColor","setBackgroundColor","refreshImmediately","containPixel","models","defaultMainType","dataIndexInside","indexOfRawIndex","getViewOfComponentModel","componentModel","getViewOfSeriesModel","prepareAndUpdate","coordSysMgr","restoreData","clearColorPalette","colorArr","stringify","performPostUpdateFuncs","ecIns","componentDirtyList","componentView","__alive","seriesDirtyMap","chartView","setDirty","dirtyMap","updateView","markUpdateMethod","updateVisual","restorePipelines","prepareStageTasks","prepareView","updateDirectly","condition","excludeSeriesId","callView","__model","chartsMap","doDispatchAction","payloadType","escapeConnect","actionWrap","actions","actionInfo","cptType","updateMethod","payloads","batched","eventObj","eventObjBatch","isHighDown","batchItem","sub","pendingActions","isComponent","viewList","viewMap","doPrepare","viewId","classType","Clazz","getClass","__id","__ecComponentInfo","renderTask","renderComponents","dirtyList","updateZ","updatePayload","perform","getPerformArgs","updateBlend","updateHoverLayerStatus","postUpdateFuncs","func","_loadingFX","optionChanged","showLoading","cfg","hideLoading","loadingEffects","makeActionFromEvent","eventActionMap","MOUSE_EVENT_NAMES","elCount","preventUsingHoverLayer","blendMode","ecInstance","getComponentByElement","modelInfo","eventInfo","eveName","isGlobalOut","targetEl","packedEvent","actionType","setAttribute","DOM_ATTRIBUTE_KEY","cptQuery","dataQuery","otherQuery","condCptType","suffixes","dataKeys","reserved","propSuffix","suffixPos","check","filterForExposedEvent","propOnHost","idBase","groupIdBase","enableConnect","STATUS_PENDING","STATUS_UPDATING","STATUS_UPDATED","STATUS_KEY","updateConnectedChartsStatus","charts","otherChart","otherCharts","existInstance","getInstanceByDom","connect","disConnect","disconnect","getInstanceById","registerTheme","preprocessorFunc","priority","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","getCoordinateSystemDimensions","layoutTask","visualTask","targetList","defaultPriority","stageHandler","wrapStageHandler","__raw","registerLoading","loadingFx","setCanvasCreator","creator","$override","geoJson","specialAreas","getMap","retrieveMap","geoJSON","dataTool","___ec_export","_core","textContain","textHelper","arrayJoin","NONE","mathRound","degree","round4","isAroundZero","pathHasFill","isText","pathHasStroke","svgEl","attrXLink","setAttributeNS","bindStyle","strokeWidth","strokeScale","miterLimit","pathDataToString","dataLength","nData","dThetaPositive","isCircle","unifiedTheta","svgPath","__svgEl","pathStr","svgTextDrawRectText","removeOldTextNode","svgImage","HTMLImageElement","dw","dh","__imageSrc","svgText","_tmpTextHostRect","_tmpTextBoxPos","_tmpTextTransform","TEXT_ALIGN_TO_ANCHRO","hostRect","elTransform","needTransformTextByHostEl","normalizeTextStyle","needDrawText","textSvgEl","__textSvgEl","textSvgElStyle","DEFAULT_FONT","computedFont","__computedFont","__styleFont","contentBlock","__textCotentBlock","parsePlainText","outerHeight","lineHeight","getBoxPosition","baseX","baseY","setTextTransform","boxY","adjustTextY","getTextXForPadding","canCacheByTextString","tspanList","__tspanList","tspanOriginLen","__canCacheByTextString","__text","updateTextLocation","textLines","nTextLines","tspan","singleLineText","__zrText","createTextNode","scaleAndAdd","lenSquare","lengthSquare","div","dot","distanceSquare","distSquare","negate","lerp","LRU","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","parseCssInt","parseCssFloat","cssHueToRgb","lerpNumber","setRgba","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","put","cached","op","ep","fname","substr","alpha","hsla2rgba","iv","hsla","rgba2hsla","S","G","B","vMin","vMax","deltaR","deltaG","deltaB","fastLerp","normalizedValue","colors","leftIndex","rightIndex","leftColor","rightColor","dv","fastMapToColor","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","Gradient","TooltipRichContent","findPointFromSeries","globalListener","axisPointerViewHelper","proxyRect","tooltipContent","_renderMode","_newLine","_tooltipContent","_tooltipModel","_ecModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","triggerOn","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","_ticket","dataByCoordSys","tooltipOption","_manuallyAxisShowTip","pointInfo","findHover","manuallyHideTip","coordSysAxesInfo","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","globalTooltipModel","singleDefaultHTML","singleParamsList","singleTooltipModel","newLine","markers","itemCoordSys","dataByAxis","axisValue","seriesDefaultHTML","valueLabel","getValueLabel","seriesDataIndices","valueLabelOpt","idxItem","dataParams","getAxisRawValue","axisValueLabel","seriesTooltip","newMarkers","firstLine","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","random","tooltipTrigger","defaultHtml","asyncTicket","tooltipOpt","subTooltipModel","cbTicket","contentSize","vAlign","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","lastItem","indexAxis","thisItem","lastIndices","newIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","_clazz","enableClassExtend","enableClassCheck","lineStyleMixin","areaStyleMixin","textStyleMixin","itemStyleMixin","doGet","pathArr","getParent","getParentMethod","parsePath","thisParentModel","Ctor","setReadOnly","customizeGetParent","Single","singles","actionTypes","handleRootToNode","types","targetInfo","retrieveTargetInfo","originViewRoot","aboveViewRoot","resetViewRoot","easingFuncs","_life","onrestart","globalTime","deltaTime","_startTime","easingFunc","schedule","restart","arg","HIGHLIGHT_ACTION","handleHighlight","UNHIGHLIGHT_ACTION","handleUnhighlight","_createPolyline","polylineProto","_updateCommonStl","hoverLineStyle","legendSelectActionHandler","selectedMap","isToggleSelect","legendData","isItemSelected","rangeInfo","getRangeInfo","cellWidth","getCellWidth","cellHeight","getCellHeight","weeks","dayCount","allDay","SymbolDraw","EffectSymbol","pointsLayout","_symbolDraw","effectSymbolDraw","_updateGroupTransform","getRoamTransform","HeatmapLayer","getIsInPiecewiseRange","dataSpan","getIsInContinuousRange","isGeoCoordSys","visualMapOfThisSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","_renderOnGeo","itemStyleQuery","hoverItemStyleQuery","labelQuery","hoverLabelQuery","coordSysType","dataDims","dataToRect","contentShape","inRangeVisuals","targetVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","isInRange","getNormalizer","getColorMapper","curveTool","_graphHelper","v3","v2DistSquare","intersectCurveCircle","curvePoints","radiusSquare","nextDiff","tmp0","quadraticSubdivide","pts","pts2","fromSymbol","toSymbol","__original","originalPoints","globalCoord","AxisPointerModel","snap","triggerTooltip","shadowStyle","axisModelCreator","AxisModel","gridIndex","gridId","getAxisType","extraOption","logError","_roamHelper","updateCenterAndZoom","seriesGroup","interactionMutex","pointerChecker","_opt","mousedownHandler","mousedown","mousemoveHandler","mousemove","mouseupHandler","mouseup","mousewheelHandler","mousewheel","pinchHandler","controlType","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","isPinching","_pinching","isMiddleOrRightButtonOnMouseUpDown","_x","_y","isAvailableBehavior","gestureEvent","isTaken","shouldZoom","shouldMove","wheelDelta","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","behaviorToCheck","contollerEvent","settings","setting","_vector","v2Create","mathPow","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","onet","cubicDerivativeAt","cubicRootAt","roots","c","t1","disc","K","discSqrt","Y1","Y2","T","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","prev","d1","d2","quadraticRootAt","quadraticExtremum","divider","quadraticProjectPoint","BaseAxisPointer","viewHelper","cartesianAxisHelper","CartesianAxisPointer","makeElOption","elOption","axisPointerModel","axisPointerType","otherExtent","getCartesian","getGlobalExtent","pixelValue","buildElStyle","pointerOption","pointerShapeBuilder","graphicKey","buildCartesianSingleLabelElOption","getHandleTransform","labelMargin","getTransformedPosition","updateHandleTransform","currPosition","cursorOtherValue","cursorPoint","tooltipOptions","targetShape","makeLineShape","getAxisDimIndex","shadow","makeRectShape","registerAxisPointerClass","fixClipWithShadow","unitX","unitY","ZText","MARK_UNUSED","MARK_USED","Definable","zrId","svgRoot","tagNames","markLabel","domName","_zrId","_svgRoot","_tagNames","_markLabel","_domName","nextId","getDefs","isForceCreating","getElementsByTagName","insertBefore","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","markUsed","removeUnused","getSvgProxy","getTextSvgElement","getSvgElement","SingleAxis","_init","axisPointerEnabled","_adjustAxis","_updateAxisTransform","coordBase","extentSum","toLocalCoord","getAxes","getTooltipAxes","baseAxes","parseGeoJson","fixNanhai","fixTextCoord","fixGeoCoord","fixDiaoyuIsland","mapRecord","nameProperty","parsed","message","regionName","specialArea","regionRect","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","performRawSeries","colorP","getColor","colorN","borderColorP","getBorderColor","borderColorN","isLargeRender","FunnelPiece","funnelPieceProto","opacityAccessPath","FunnelView","funnelPiece","GaugeSeries","offsetCenter","detail","dev","dataSelectableMixin","MapSeries","needsDrawMap","dataNameMap","selectTargetList","toAppendNames","geoSource","getMapType","appendValues","seriesNames","otherIndex","originalData","showLegendSymbol","dataRangeHoverLink","NodeHighlightPolicy","DESCENDANT","ANCESTOR","SELF","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPieceProto","getNodeColor","fillDefaultColor","stateStyle","isNodeHighlighted","onHighlight","onDownplay","getLabelAttr","labelMinAngle","labelPadding","rotateType","stateAttr","visualMetaList","getRootId","activeNode","policy","featureManager","saveAsImageLang","SaveAsImage","unusable","proto","MouseEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","charCodeAt","blob","Blob","tab","open","write","$a","download","href","evt","bubbles","cancelable","dispatchEvent","colorPaletteMixin","mergeLayoutParam","_task","createTask","visualBorderColorAccessPath","extraOpt","dataTask","dataTaskCount","dataTaskReset","wrapData","dataBeforeProcessed","autoSeriesName","inputPositionParams","themeSubType","hasClass","getTheme","getDefaultOption","fillDataTextStyle","newSeriesOption","task","getCurrentTask","setOutputEnd","outputData","multipleSeries","isRichText","markerId","formatArrayValue","vertially","setEachItem","markName","dimHead","dimHeadStr","valStr","tooltipDims","formatSingleValue","tooltipDimLen","isValueArr","colorEl","isNameSpecified","requestColorNum","coordDimToDataDim","getAxisTooltipData","pipeTask","getSeriesAutoName","nameArr","dataDim","dataTaskProgress","onDataSelfChange","pipeline","getPipeline","currentTask","agentStubMap","smoothSpline","smoothBezier","controlPoints","cp2","AXIS_DIMS","COORDS","isCoordSupported","coordType","createNameEach","capitalNames","capitalFirst","capitalAttrs","nameObj","capital","createLinkedNodesFinder","forEachNode","forEachEdgeType","edgeIdGetter","sourceNode","existsLink","edgeType","absorb","processSingleNode","isNodeAbsorded","isLinked","hasLink","edgeId","themeRiverLayout","baseY0","timeDim","layerPoints","singleLayer","base","computeBaseline","baseLine","ky","layerIndex","layerNum","pointNum","sums","temp","getNodeGlobalScale","groupScale","groupZoom","roamZoom","nodeScale","colorList","getBorderLineDash","ATTR","dataZoomInfo","store","giveStore","theDataZoomId","theCoordId","dataZoomInfos","cleanStore","createController","controllerParams","mergeControllerParams","newRecord","typePriority","oneType","validPayloadTypes","targetNodeId","getPathToRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","DataDimensionInfo","r1","r2","r3","r4","_forceHelper","_simpleLayoutHelper","_circularLayoutHelper","graphSeries","preservedPoints","forceModel","initLayout","nodeDataExtent","edgeDataExtent","repulsion","edgeLength","rep","fixed","getEdgeByIndex","edgeModel","n1","n2","ignoreForceLayout","forceInstance","gravity","friction","oldStep","getNodeByIndex","stopped","rectCoordAxisBuildSplitArea","axisView","axisGroup","gridRect","tickModel","areaColorsLen","lastSplitAreaColors","__splitAreaColors","newSplitAreaColors","cIndex","rectCoordAxisHandleRemove","ifAxisCrossZero","estimateLabelUnionRect","Cartesian2D","Axis2D","isAxisUsedInTheGrid","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","gridProto","fixAxisOnZero","axesMap","otherAxisDim","onZeroRecords","otherAxes","onZeroAxisIndex","canOnZeroToAxis","getOnZeroRecordKey","updateAxisTransform","axisExtentSum","_updateScale","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","axesMapOnDim","coordList","getCartesians","_findConvertTarget","xAxisModel","yAxisModel","coordsList","axisPositionUsed","axesCount","createAxisCreator","addAxis","isCartesian2D","axesModels","findAxesModels","otherAxis","axesTypes","grids","nodeOpacityPath","hoverNodeOpacityPath","lineOpacityPath","hoverLineOpacityPath","getItemOpacity","opacityPath","fadeOutItem","opacityRatio","getGraphicEl","fadeInItem","SankeyShape","cpx1","cpy1","cpx2","cpy2","_focusAdjacencyDisabled","sankeyView","curvature","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","dragX","dragY","localX","localY","focusNodeAdjHandler","unfocusNodeAdjHandler","_dispatchUnfocus","edgeDataIndex","_unfocusDelayTimer","focusNodeAdjacency","focusNodeAdj","outEdges","inEdges","unfocusNodeAdjacency","geoJSONLoader","geoSVGLoader","loaders","mapRecords","singleSource","makeInvoker","hostKey","results","Pattern","returnFalse","createDom","newDom","newDomStyle","Layer","onselectstart","domBack","ctxBack","config","clearColor","motionBlur","lastFrameAlpha","__used","__drawIndex","__startIndex","__endIndex","getElementCount","initContext","createBackBuffer","clearAll","clearColorGradientOrPattern","haveMotionBLur","clearRect","__canvasGradient","getCanvasPattern","save","fillRect","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","hostEl","cbPayload","__zrImageSrc","pendingWrap","pending","onerror","imageOnLoad","__cachedImgObj","_listComponent","makeBackground","_contentGroup","_backgroundEl","_selectorGroup","_isFirstRender","viewportSize","legendDrawnMap","selectMode","eachRawSeries","getSeriesByName","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","provider","containName","newline","_createSelector","createSelectorButton","selectorItem","emphasisLabelModel","inactiveColor","inactiveBorderColor","symbolKeepAspect","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","formatterParams","legendIndex","dataName","CATEGORY_DEFAULT_VISUAL_INDEX","_normalizeData","normalizers","visualHandler","visualHandlers","_doMap","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","normalized","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","parsedVisual","linear","piecewise","getSpecifiedVisual","doMapFixed","colorHue","makePartialColorVisualHandler","colorSaturation","colorLightness","colorAlpha","makeDoMap","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","visualArr","setVisualToOption","doNotNeedPair","applyValue","sourceExtent","addVisualHandler","eachVisual","mapVisual","isPrimary","newVisual","newVal","hasVisual","type1","type2","dependsOn","visualType1","visualType2","findClosestWhenOutside","possibleI","pieceValue","updatePossible","newAbs","isCanvasEl","transformCoordWithViewport","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut","calculate","calculateZrXY","layerX","layerY","ex","clientX","ey","clientY","getNativeEvent","isTouch","targetTouches","changedTouches","zrDelta","button","which","attachEvent","removeEventListener","detachEvent","stopPropagation","cancelBubble","returnValue","notLeftMouse","DEFAULT_SMOOTH","ParallelView","_dataGroup","dataGroup","makeSeriesScope","newDataIndex","addEl","updateElCommon","oldDataIndex","createLinePoints","taskParams","isEmptyValue","active","inactive","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","getIndicesCtor","_rawCount","cloneChunk","originalChunk","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","transferProperties","__wrappedMethods","_calculationInfo","dimensionInfos","invertedIndicesMap","dimensionInfo","dimensionName","createInvertedIndices","_indices","_count","_storage","_nameList","_idList","_optionModels","_visual","_itemVisuals","hasItemVisual","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_approximateExtent","_dimensionsSummary","_invertedIndicesMap","listProto","prepareChunks","chunkSize","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","prepareInvertedIndex","invertedIndices","getRawValueFromStore","chunkIndex","chunkOffset","chunk","getRawIndexWithoutIndices","getRawIndexWithIndices","_idDimIdx","normalizeDimensions","cloneListForMapAndSample","excludeDimensions","allDimensions","originalStorage","cloneDimStore","getInitialExtent","originalDimStore","newDimStore","getDimensionsOnCoord","dimensionsSummary","nameList","notProvider","_nameRepeatCount","_dimValueGetter","_dimValueGetterArrayRows","_initDataFromProvider","rawData","values","dimLen","originalChunkCount","emptyDataItem","sourceIdx","dimRawExtent","nameDimIdx","dimensionInfoMap","idList","nameRepeatCount","_nameDimIdx","itemId","dimStorage","nameDim","nameDimChunk","getIndices","thisCount","buffer","chunkStore","getByRawIndex","rawIdx","dimStore","_getFast","dimData","initialExtent","dimExtent","currEnd","useRaw","setApproximateExtent","getCalculationInfo","getMedian","dimDataArray","sortedDimDataArray","rawIndexOf","indicesOfNearest","maxDistance","nearestIndices","minDist","minDiff","nearestIndicesLen","contextCompat","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","rate","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","itemVisual","clearAllVisual","setItemDataAndSeriesIndex","dimensionInfoList","injectFunction","originalMethod","v2Distance","interpolate","isLoop","segs","w2","w3","TYPE_DELIMITER","IS_CONTAINER","checkClassType","RootClass","mandatoryMethods","$constructor","superClass","ExtendedClass","classBase","Clz","classAttr","enableClassManagement","entity","makeContainer","registerClass","componentMainType","throwWhenNotFound","getClassesByMainType","getAllClassMainTypes","hasSubTypes","registerWhenExtend","originalExtend","ignoreSize","subtext","subtarget","subtextStyle","titleModel","subtextStyleModel","subText","subTextEl","sublink","groupRect","layoutOption","alignStyle","createParallelIfNeeded","mergeAxisOptionFromParallel","hasParallelSeries","axisOption","parallelOption","isPolyline","isLarge","lineCoords","segCount","totalCoordsCount","getLineCoordsCount","getLineCoords","_fourPointsTransform","buildTransformer","EVENT_SAVED_PROP","elFrom","inX","inY","saved","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","idxLR","idxTB","transformerName","oldSrcCoords","srcCoords","oldCoordTheSame","destCoords","ii","axisPointerModelHelper","_axisPointer","fixValue","updateAxisPointer","disposeAxisPointer","forceRender","getAxisPointerClass","getAxisPointerModel","axisPointerClazz","clazz","compatibleEC2","ec2Types","transferItem","controlStyle","itemStyleEmphasis","labelNormal","excludeLabelAttr","legendModels","findComponents","categoryNames","mapSymbolLayout","mapDataStatistic","createDataSelectAction","effectType","showEffectOn","rippleEffect","barItemStyle","Sausage","_eventPos","getClipArea","coordSysClipArea","expandWidth","coordinateSystemType","isHorizontalOrRadial","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","getBarItemStyle","isClipped","elementCreator","updateStyle","createBackgroundShape","removeRect","removeSector","bgGroup","_removeBackground","cartesian2d","coordSysBoundingRect","signWidth","signHeight","animateProperty","animateTarget","isRadial","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","largeDataIndices","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","valueDimIdx","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","coordLayout","ElementClz","_curve","containStroke","_l","registerSubTypeDefaulter","_barGrid","prepareLayoutBarSeries","makeColumnLayout","retrieveColumnLayout","axisDataLen","scaleType","originalExtent","getCategories","setBlank","isBaseAxisAndHasBarSeries","barSeriesModels","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","extentInfo","makeLabelFormatter","categoryTickStart","tpl","tick","realNumberScaleTicks","tickCount","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","rotateRadians","boundingBox","plain","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","guid","Handler","Storage","Painter","HandlerProxy","useVML","painterCtors","ZRender","getInstance","registerPainter","delInstance","rendererType","vml","handerProxy","_needsRefresh","oldDelFromStorage","delFromStorage","oldAddToStorage","addToStorage","removeSelfFromZr","addSelfToZr","addRoot","delRoot","configLayer","zLevel","_needsRefreshHover","triggerRendered","refreshHoverImmediately","elMirror","refreshHover","clearHover","clearAnimation","pathToImage","setCursorStyle","eventHandler","dataProcessorHandlers","_dataProcessorHandlers","_visualHandlers","_allHandlers","_stageTaskMap","performStageTasks","stageHandlers","needSetDirty","__pipeline","stageHandlerRecord","seriesTaskMap","overallTask","overallNeedDirty","stub","performArgs","block","pipelineId","skip","taskRecord","_pipelineMap","pCtx","progressiveEnabled","progressiveRender","__idxInPipeline","blockIndex","modDataCount","modBy","dataLen","threshold","pipelineMap","head","tail","pipe","stageTaskMap","createSeriesStageTask","createOverallStageTask","__block","getUpstream","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","createOnAllSeries","removeKey","overallTaskReset","overallProgress","createStub","stubReset","onDirty","stubOnDirty","agent","getSeries","upstreamContext","stubProgress","getDownstream","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","dataEach","detectSeriseType","legacyFunc","ecModelMock","apiMock","mockMethods","cond","EffectPolyline","_lastFrame","_lastFramePercent","effectPolylineProto","_points","accLenArr","_offsets","_length","offsets","PolarAxisPointer","animationThreshold","coordValue","labelPos","getLabelPosition","buildLabelElOption","innerTextLayout","makeSectorShape","geoCoordMap","_buildAxes","_buildSplitLineAndArea","axisBuilders","showSplitLine","showSplitArea","splitLineColors","splitAreaColors","ticksRadius","getColorIndex","realSplitNumber","axesTicksPoints","prevPoints","areaOrLine","areaOrLineColorList","themeRiverVisual","componentUtil","boxLayoutMixin","themeModel","newCptOption","fields","optList","Class","getDependencies","deps","enableSubTypeDefaulter","enableTopologicalTravel","v2ApplyTransform","TransformDummy","_roamTransformable","_center","_zoom","setBoundingRect","setViewRect","rawTransform","centerCoord","_updateCenterAndZoom","getDefaultCenter","rawRect","getCenter","rawTransformMatrix","defaultCenter","roamTransformable","_rawTransform","_layoutHelper","TreeShape","parentPoint","childPoints","forkPosition","childLen","firstChildPos","lastChildPos","forkDim","tmpPoint","_oldTree","_updateViewCoordSys","symbolNeedsDraw","updateNode","symbolEl","_nodeScaleRatio","_updateNodeAndLinkScale","fromPoints","oldMin","_min","oldMax","_max","viewCoordSys","_viewCoordSys","_getNodeGlobalScale","invScale","getTreeNodeStyle","sourceSymbolEl","sourceLayout","sourceOldLayout","rawX","__radialOldRawX","rawY","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","isLeft","rootLayout","labelRotateRadian","drawEdge","__edge","getEdgeShape","childLayout","sourceEdge","radialCoor1","radialCoor2","radialCoor3","radialCoor4","BUILTIN_OBJECT","TYPED_ARRAY","objToString","arrayProto","nativeForEach","forEach","nativeFilter","nativeSlice","nativeMap","nativeReduce","typeStr","isPrimitive","isDom","targetProp","sourceProp","isBuiltInObject","mergeAll","targetAndSources","overlay","baseClazz","clazzPrototype","F","memo","find","ownerDocument","value1","retrieve3","value2","Function","primitiveKey","HashMap","isArr","thisMap","visit","concatArray","newArray","eachAfter","eachBefore","newSnapshot","snapshot","_targetList","_selectTargetMap","targetMap","select","unSelect","toggleSelected","nameRotate","nameTruncate","ellipsis","placeholder","showMinLabel","showMaxLabel","categoryAxis","deduplication","alignWithLabel","minorTick","minorSplitLine","timeAxis","logAxis","logBase","idxMap","Uint32Arr","Float64Arr","compatEc2","coords","fromName","toName","LinesSeries","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","_getCoordsFromItemModel","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","effect","trailLength","autoPositionValues","targetValue","visualCluster","visualObj","controllerVisuals","visualMapping","positionElement","generateNodeKey","_directed","_nodesMap","_edgesMap","graphProto","Node","hostGraph","Edge","isDirected","nodesMap","edgesMap","getEdge","breadthFirstTraverse","startNode","__visited","queue","currentNode","otherNode","inDegree","outDegree","createGraphDataProxyMixin","hostName","LineGroup","_ctor","lineDrawProto","doAdd","lineNeedsDraw","doUpdate","oldLineData","newLineData","itemEl","isEffectObject","animators","isPointNaN","isPersistent","_lineData","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","updateIncrementalAndHover","_clearIncremental","_incremental","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","_mapDraw","dataViewLang","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","other","assembleSeriesWithCategoryAxis","tables","valueAxisDim","headers","columns","assembleOtherSeries","vals","getContentFromModel","isTSVFormat","itemSplitRegex","RegExp","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","tryMergeDataOption","readOnly","optionToContent","contentToOption","textColor","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","viewMain","textarea","htmlOrDom","buttonContainer","buttonStyle","closeButton","refreshButton","newSeriesOptList","renderText","getStroke","actionInfos","polarOptArr","polarNotRadar","polarOpt","polarIndex","radarIndex","foundAxisModel","layoutBox","boxLayoutParams","positions","bbWidth","bbHeight","BrushController","history","dataZoomLang","DATA_ZOOM_ID_BASE","DataZoom","_brushController","_onBrush","mount","_isZoomActive","featureModel","updateZoomBtnStatus","updateBackBtnStatus","handlers","unmount","nextActive","dataZoomSelectActive","retrieveAxisSetting","setIconStatus","zoomActive","include","setPanels","makePanelOpts","xAxisDeclared","yAxisDeclared","enableBrush","brushStyle","updateCovers","matchOutputRanges","coordRange","setBatch","findDataZoom","found","dzModel","dataZoomOpts","dataZoomOpt","addForAxis","axisIndicesName","givenAxisIndices","forEachComponent","$fromToolbox","SHADOW_PROPS","coordSysLists","coordIndex","LinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","setLinePoints","updateSymbolAndLabelBeforeLineUpdate","lineGroup","symbolFrom","symbolTo","pointAt","toPos","tangent","tangentAt","__labelDistance","distanceX","distanceY","halfPercent","__position","__verticalAlign","__textAlign","_createLine","lineProto","beforeUpdate","lineLabelOriginalOpacity","visualOpacity","defaultLabelColor","rawVal","normalText","emphasisText","labelStyle","linePath","globalDefault","OPTION_INNER_KEY","_optionManager","baseOption","mountOption","initBase","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","newCptTypes","visitComponent","newCptOptionList","mapResult","mappingToExists","makeIdAndName","keyInfo","determineSubType","getComponentsByTypes","resultItem","ComponentModelClass","createSeriesIndices","componentOption","topologicalTravel","_seriesIndicesMap","_seriesIndices","isIdInner","cpts","isIdArray","cpt","isNameArray","filterBySubType","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","queryResult","oneSeries","getSeriesCount","assertSeriesInitialized","rawSeriesIndex","getCurrentSeriesIndices","filterSeries","filteredSeries","componentTypes","isNotTargetSeries","seiresIndex","mergeTheme","notMergeColorLayer","colorLayer","themeItem","existComponent","graphicUtil","_nonShapeGraphicElements","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","existList","flattenedList","_flatten","mappingResult","elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","els","createEl","targetElParent","graphicType","__ecGraphicId","removeEl","existEl","existElParent","getCleanedElOption","LOCATION_PARAMS","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","copyLayoutParams","existItem","hv","setEventData","graphicModel","_elMap","_lastGraphicModel","_updateElements","_relocate","rootGroup","elOptionStyle","elOptionCleaned","__ecGraphicWidthOption","__ecGraphicHeightOption","elOptions","apiWidth","apiHeight","parentEl","isParentRoot","__ecGraphicWidth","__ecGraphicHeight","containerInfo","boundingMode","bounding","straightLineProto","bezierCurveProto","isLine","_buildPathLine","_buildPathCurve","_pointAtLine","_pointAtCurve","_tangentAtCurve","defaultSymbolType","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","defaultKeyGetter","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","initIndexMap","keyArr","keyGetterName","existence","_add","_remove","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","groupData","nodeWidth","nodeGap","computeNodeValues","filteredNodes","iterations","nodeAlign","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","getEdgeValue","nodeRawValue","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","kx","maxNodeDepth","isItemDepth","edgeIdx","indexEdge","nodeIndex","maxDepth","adjustNodeWithNodeAlign","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","nodeHeight","skNodeHeight","moveSinksRight","nodeDepth","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","buckets","minKy","nodeDy","edgeDy","nodeDyAttr","weightedTarget","centerTarget","nodeY","weightedSource","centerSource","PLAIN_TEXT","WILL_BE_RESTORED","markerRich","startId","endId","updateMarkerLayout","markPointModel","mpModel","symbolDrawMap","symbolDraw","isFnSymbol","isFnSymbolSize","dataOpt","sizeCalculable","CalendarModel","cellSize","dayLabel","firstDay","monthLabel","yearLabel","mergeAndNormalizeLayoutParams","raw","hvIdx","echartsAPIList","chartInstance","parallelAxisModel","setActiveIntervals","intervals","Parallel","_axisTickLabelBuilder","createAxisTicks","createAxisLabels","calculateCategoryInterval","NORMALIZED_EXTENT","fixExtentWithBands","nTick","fixOnBandTicksCoords","ticksLen","diffSize","crossLen","ticksItem","getTickModel","minorTickModel","minorTicks","getMinorTicks","minorTicksGroup","getRotate","langSelector","defaultSelectorOption","LegendModel","_updateSelector","_updateData","hasSelected","potentialData","availableNames","isPotential","getAllNames","_availableNames","allSelect","inverseSelect","selectorLabel","selectorItemGap","LN2","determinant","rows","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","subRowMask","subRowStart","colLocalIdx","colTag","mA","vh","srcPointX","srcPointY","pk","normalizeRadian","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","userDimName","encodeDef","validDataDims","resultDimIdx","applyDim","availDimIdx","sysDimItem","sysDimIndex","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItemDimsDefItem","generateCoordCount","fromZero","extra","genName","optDimCount","isValidPoint","getValueMissingPoint","firstPoint","svgURI","createElementNS","x_","createGraphFromNodeEdge","GraphSeries","_categoriesData","_updateCategoriesData","categoriesModels","_categoriesModels","categoryIdx","categoryModel","edgeLabelModel","fakeSeriesModel","emphasisEdgeLabelModel","emphasisFakeSeriesModel","edgeGetParent","getEdgeData","sourceName","targetName","circular","rotateLabel","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","polyHelper","stackResultDim","ORIGIN_METHOD","RATE","THROTTLE_TYPE","debounce","currCall","debounceNextCall","lastCall","lastExec","timer","thisDelay","thisDebounce","debounceDelay","fnAttr","originFn","lastThrottleType","lastRate","markerModelKey","subTypeDefaulters","defaulter","componentTypeMain","dependencyGetter","makeDepndencyGraph","fullNameList","noEntryList","createDependencyGraphItem","originalDeps","availableDeps","getAvailableDependencies","entryCount","dependentName","predecessor","thatItem","successor","dep","targetNameList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","removeEdgeAndAdd","removeEdge","succComponentType","platform","gradientColor","animationEasingUpdate","shadowTemp","orignalBrush","modified","clipPaths","roundNumber","_intervalPrecision","thisExtent","getIntervalPrecision","expandToNicedExtent","niceTickExtent","intervalPrecision","safeLimit","lastNiceTick","nextTick","prevTick","minorInterval","intervalScaleNiceTicks","expandSize","CoordSysInfo","fetch","fetchers","roundingErrorFix","mathLog","_originalScale","originalScale","powVal","__fixMin","fixRoundingError","__fixMax","err","originalVal","dataColor","radarLayout","_needCollect","needCollect","_deduplication","_map","createByAxisModel","dedplication","getOrCreateMap","colorUtil","markAreaTransform","maModel","lt","rb","ltCoord","rbCoord","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","areaData","markAreaModel","areaGroupMap","polygonGroup","__data","ToolboxModel","featureName","Feature","showTitle","iconStyle","containLabel","_zrender","ITEM_STYLE_NORMAL","seriesItemStyleModel","levelItemStyles","travelTree","designatedVisual","viewRootAncestors","nodeModel","nodeLayout","isInView","thisNodeColor","nodeItemStyleModel","levelItemStyle","visuals","buildVisuals","borderColorSaturation","calculateColor","calculateBorderColor","buildVisualMapping","childVisual","visualName","getValueVisualDefine","rangeVisual","getRangeVisual","visualMin","visualMax","colorMappingBy","__drColorMappingBy","childVisuals","mappingType","mapIdToIndex","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","coordArrValue","markerTypeCalculator","average","baseDataDim","dataDimToCoordDim","RadiusAxis","radiusToData","_treeHelper","_viewRoot","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","emptyItemWidth","upperLabel","gapWidth","visualDimension","visibleMin","childrenVisibleMin","completeTreeValue","setDefault","setLayoutInfo","idIndexMap","_idIndexMap","_idIndexMapCount","childValue","thisValue","globalColorList","hasColorDefine","modelColor","level0","getTotalIncomeByYear","scopedSlots","_u","ref","amount","totalIncomeByYear","getNewFundByYear","newFundByYear","getNewProjectByYear","newProjectByYear","getNewVolunteerByYear","newVolunteerByYear","slot","rankingThisMonth","rankingThisYear","changeRankTime","yearRanking","staticStyle","changeFundType","fundType","class","fundName","moneyTotal","projectName","activityCount","volunteerCount","applyCount","changeLineTime","yearLine","handleYearChange","year","unitName","activeName","yearView","totalIncomeYear","newFundYear","newProjectYear","newVolunteerYear","rankingStart","rankingEnd","incomingList","appropriateList","balanceList","fundProjectIncomeList","lineStart","lineEnd","projectTypeList","unitTypeList","microData","queryData","projectType","yearData","projectCounts","activityCounts","actualBeneficiaryCounts","actualExpenses","totalBudgets","townCounts","pcCount","mobileCount","wechatCount","fundTypes","optionProject","avoidLabelOverlap","getMicrocosmics","String","initDefaultData","month","startOf","format","endOf","getFundIncomeRecordRank","getFundAppropriateRecordRank","getFundBalanceRecordRank","getFundProjectIncomeRank","getActivityApplyCountByCurrentMonth","getNewVolunteerByCurrentMonth","getNewPublishedActivityCountByCurrentMonth","getPieData","getLineData","dashboard","getNewFundProjectByYear","getProjectCategoryChart","echartProject","$refs","getAccessRecord","pcData","dateArray","countArray","mobileData","wechatData","myChart","echartGeo","dataDictionary","getDataDictionaryListByKey","enumService","typeName","workflowStepList","PagedTableView","DashboardCountBoard","filters","formatWorkflowStep","mapLocation","largeLayout","_symbolRadiansHalf","basedOn","_layoutNodesBasedOn","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","halfRemainRadian","_a","_b","adjustEdge","FOCUS_ADJACENCY","UNFOCUS_ADJACENCY","opct","_lineDraw","_firstRender","graphView","groupNewProp","_layoutTimeout","_startForceLayoutIteration","warmUp","_layouting","setFixed","setUnfixed","circularRotateLabel","adjacentEdge","lb","rt","maxX","maxY","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","seiresModelMap","__paletteScope","dataAll","filteredIdx","singleDataColor","singleDataBorderColor","maskColor","showSpinner","spinnerRadius","mask","animateShape","v2Min","v2Max","v2Scale","v2Add","v2Clone","v2Sub","constraint","prevPoint","nextPoint","cps","d0","cp0","retrieveValue","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","ecWidth","ecHeight","containerWidth","containerHeight","rootRect","viewAbovePath","rootSize","estimateRootSize","viewRootLayout","squarify","upperHeight","calculateRootPosition","prunning","hideChildren","thisLayout","halfGapWidth","upperLabelHeight","getUpperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","score","worst","orderBy","overLeafDepth","statistic","filterByThreshold","isLeafRoot","orderedChildren","deletePoint","areaMax","areaMin","squareArea","idx0WhenH","idx1WhenH","rowOtherLength","rowLen","wh1","remain","modWH","wh0","currNode","defaultSize","viewArea","currNodeValue","defaultPosition","targetCenter","clipRect","nodeInViewAbovePath","isAboveViewRoot","childClipRect","outputShape","inputShape","originWidth","originHeight","positiveOrNegative","doubledPosition","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","getLayoutOnAxis","widthAndOffsets","doCalBarWidthAndOffset","isOnCartesian","isInLargeMode","getValueAxesMinGaps","axisValues","cnt","axisMinGaps","valuesInAxis","seriesInfoList","minGap","extentSpan","scaleSpan","seriesInfo","minWidth","finalWidth","lastStackCoordsOrigin","isValueAxisH","getValueAxisStart","valueAxisHorizontal","largeBackgroundPoints","valuePair","pointsOffset","idxOffset","backgroundStart","tmpRect","AXIS_TYPES","BaseAxisModelClass","axisTypeDefaulter","extraDefaultOption","__ordinalMeta","linkedNodesFinder","effectedModels","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","baseDataOffset","dataDimsForPoint","stackedOverDimension","getStackedOnPoint","dataCoordInfo","stackedData","ClippathManager","updateDom","clipPathEl","svgProxy","cloneNode","_textDom","RadarSeries","_text","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","diamond","pin","arrow","triangle","symbolShapeMakers","symbolBuildProxies","inBundle","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","symbolShape","__isEmptyBrush","disabled","lineContain","quadraticContain","LargeLineShape","findDataIndex","LargeLineDraw","largeLineProto","lineEl","_setCommon","isIncremental","funnelLayout","take","resourceKey","userKey","getStore","release","uKey","HIGH_DOWN_PROP","RECORD_VERSION_PROP","mapModel","_renderSymbols","originalDataIndex","fullData","mainSeries","fullIndex","highDownRecord","recordVersion","onRegionHighDown","enterRegionHighDown","toHighOrDown","__mapOriginalZ2","roundRectHelper","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","SHADOW_STYLE_COMMON_PROPS","_tmpTextPositionResult","_tmpBoxPositionResult","normalizeStyle","makeFont","renderRichText","renderPlainText","needDrawBg","needDrawBackground","checkCache","cachedByMe","styleFont","boxPos","applyTextRotation","outerWidth","boxX","adjustTextX","propItem","styleProp","ctxProp","textStrokeWidthPrev","strokeWidthChanged","strokeChanged","getFill","strokeText","fillText","parseRichText","drawRichText","contentWidth","lineTop","token","tokens","tokenCount","usedWidth","lineXLeft","lineXRight","placeToken","tokenStyle","isLineHolder","setCtx","isPlainBg","originalGlobalAlpha","onBgImageLoaded","PointerPath","parsePosition","formatLabel","GaugeView","posInfo","_renderMain","axisLineModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","tickLineStyle","tickLine","valueExtent","detailModel","linesLayout","linesVisual","vmlCore","comma","imageTransformPrefix","Z2","ZLEVEL_BASE","Z_BASE","initRootElStyle","coordsize","coordorigin","encodeHtmlAttribute","rgb2Str","append","getZIndex","setColorAndOpacity","getColorAndAlpha","updateFillNode","zrEl","gradientType","focus","expansion","cs1","cs2","colorAndAlphaList","colorAndAlpha","color1","color2","opacity1","opacity2","focusposition","updateStrokeNode","dashstyle","updateFillAndStroke","vmlEl","isFill","createNode","nPoint","brushVML","vmlRoot","_vmlEl","needTransform","strokeEl","weight","zIndex","removeRectText","onRemove","onAdd","appendRectText","isImage","ow","oh","_imageSrc","_imageWidth","_imageHeight","imageRuntimeStyle","runtimeStyle","oldRuntimeWidth","oldRuntimeHeight","sw","sh","hasCrop","doc","vmlElStyle","hasRotation","transformFilter","imageEl","_imageEl","cropEl","_cropEl","imageELStyle","tmpImage","overflow","cropElStyle","filterStr","textMeasureEl","DEFAULT_STYLE_NORMAL","fontStyleCache","fontStyleCacheCount","MAX_FONT_CACHE_SIZE","fontEl","getFontStyle","fontString","variant","fontVariant","family","offsetWidth","fromTextEl","textLine","textPathEl","skewEl","textVmlEl","_textVmlEl","textpathok","textVmlElStyle","string","polygonContain","getLineSelectors","xyIndex","inLineRange","layoutRange","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","extraCssText","crossStyle","AngleAxis","angleToData","ordinalScale","ordinalExtent","unitSpan","unitH","maxH","cache","lastAutoInterval","lastTickCount","treeOption","percentPrecision","VISUAL_PRIORITY","resultVisual","visualMeta","concreteDim","opacityMap","itemOpacity","LargeSymbolDraw","_updateSymbolDraw","_getClipShape","_finished","someVectorAt","isTangent","DATA_NAME_INDEX","ThemeRiverSeries","fixData","rawDataLength","layData","dataList","largestLayer","timeValue","keyIndex","lenCount","indexArr","index1","index2","nestestValue","nearestIdx","theValue","htmlName","htmlValue","_updateLineDraw","getLayer","_lastZlevel","_showEffect","_clearLayer","hasEffect","_hasEffet","_isPolyline","ox","oy","DEFAULT_TOOLBOX_BTNS","isNew","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","removeDuplicate","flag","shapeCompareFunc","_roots","_displayList","_displayListLen","includeIgnore","updateDisplayList","displayList","_updateAndAddDisplayable","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","_children","__storage","addChildrenToStorage","delChildrenFromStorage","_renderList","displayableSortFunc","brushHelper","elementList","fromAxisAreaSelect","oldAxisGroup","_axisGroup","coordSysModel","areaSelectStyle","getAreaSelectStyle","areaWidth","axisLayout","getAxisLayout","builderOpt","strokeContainThreshold","_refreshBrushController","extentLen","enableGlobalPan","panelId","makeRectPanelClipPath","isTargetByCursor","makeRectIsTargetByCursor","getLinearBrushOtherExtent","makeLinearBrushOtherExtent","removeOnClick","getCoverInfoList","coverInfoList","coverInfo","parallelAxisId","activeIntervals","createGridClipPath","createPolarClipPath","sectorArea","clazzUtil","componentProto","GradientManager","addWithoutUpdate","svgElement","hex","splitList","Breadcrumb","animationUtil","DRAG_THRESHOLD","PATH_LABEL_NOAMAL","PATH_LABEL_EMPHASIS","PATH_UPPERLABEL_NORMAL","PATH_UPPERLABEL_EMPHASIS","Z_BG","Z_CONTENT","getItemStyleEmphasis","getItemStyleNormal","createStorage","_breadcrumb","_state","thisStorage","reRoot","rootNodeGroup","nodeGroup","_giveContainerGroup","renderResult","_doRender","renderFinally","_doAnimation","_resetController","_renderBreadcrumb","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","renderNode","willDeleteEls","clearStorage","thisViewChildren","oldViewChildren","sameTree","thisNode","storageName","delEls","__tmWillDelete","animationWrap","createWrap","__tmNodeWidth","__tmNodeHeight","targetX","targetY","old","fadein","_onPan","_onZoom","_clearController","mouseX","mouseY","findTarget","_zoomToNode","onSelect","background","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","isParent","itemStyleNormalModel","itemStyleEmphasisModel","giveGraphic","bg","renderContent","useUpperLabel","processInvisible","visualBorderColor","emphasisBorderColor","upperLabelWidth","prepareText","contentHeight","upperLabelRect","addDrillDownIcon","minChar","iconChar","lasts","prepareAnimationWhenHasOld","calculateZ","__tmDepth","__tmStorageName","prepareAnimationWhenNoOld","lastCfg","parentOldX","parentOldY","parentOldBg","zInLevel","zb","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","ticksAngles","minorTickAngles","_axisLine","rId","r0Id","_axisTick","tickAngleItem","_minorTick","tickAngles","_axisLabel","rawCategoryData","commonLabelModel","labelTextAlign","labelTextVerticalAlign","isLabelSilent","makeAxisEventDataBase","targetType","rawLabel","prevAngle","number","ecHelper","parseGeoJSON","_List","_Model","_Axis","_env","ecUtil","ariaModel","seriesCnt","ariaLabel","maxDataCnt","maxSeriesCnt","displaySeriesCnt","getTitle","getConfig","seriesLabels","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","userConfig","setAreas","adjustSingleSide","viewLeft","viewTop","farthestX","shiftDown","shiftUp","changeX","isDownList","lastDeltaX","labelAlignTo","deltaY","deltaX","lastY","upList","downList","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","targetTextWidth","isAlignToEdge","realTextWidth","labelDistance","bleedMargin","truncateText","hasLabelRotate","minShowLabelRadian","labelLineLen2","ShadowManager","hasShadow","_shadowDom","_shadowDomId","domChild","blur","stdDx","stdDy","stdDeviation","singleAxisHelper","_axisSplitHelper","SingleAxisView","Animatable","animatable","animateToShallow","objShallow","propertyCount","setAttrByPath","animatingShape","pathSplitted","animateFrom","_whiskerBoxCommon","seriesModelMixin","CandlestickSeries","defaultValueDimensions","color0","borderColor0","animationUpdate","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","targetInfoList","_targetInfoList","foundCpts","targetInfoBuilders","builder","formatMinMax","includeMainTypes","setOutputRanges","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","rangeOffset","getScales","getDefaultBrushType","getPanelRect","defaultBrushType","areaPanelId","targetInfoMatchers","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","cartesians","panelRectBuilder","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","decode","json","UTF8Encoding","encodeScale","UTF8Scale","coordinates","encodeOffsets","coordinate","decodePolygon","c2","prevX","prevY","featureObj","setNodePosition","pieLayout","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","_visualEncoding","updateController","modelId","$from","getDataWithEncodedVisual","dataWithEncodedVisual","IRRELEVANT_EXCLUDES","targetCoordSysModel","topTarget","colorAll","labelDims","_subPixelOptimize","subPixelOptimizeOutputShape","EFFECT_RIPPLE_NUMBER","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","effectSymbolProto","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","_parseSVG","originRoot","buildGraphic","field","rootMap","originRootHostKey","svgXML","svgWidth","svgHeight","BOOST_SIZE_THRESHOLD","LargeSymbolPath","symbolProxy","softClipShape","symbolProxyShape","canBoost","largeSymbolProto","endIndex","byteOffset","extrudeShadow","_traversalHelper","sep","commonLayout","coorX","coorY","finalCoor","QUERY_REG","_timelineOptions","_mediaList","_mediaDefault","_currentMediaIndices","_optionBackup","_newBaseOption","parseRawOption","rawOption","mediaDefault","timelineOptions","mediaList","media","singleMedia","preProcess","applyMediaQuery","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indicesEquals","indices1","indices2","oldOption","newCptOpt","oldCptOpt","oldOptionBackup","newParsedOption","isRecreate","optionBackup","Draggable","_dragStart","_drag","_dragEnd","draggingTarget","_draggingTarget","dispatchToElement","dropTarget","lastDropTarget","_dropTarget","rootDepth","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle","isAsc","sortOrder","axisTrigger","collect","realIndex","paramsSet","reals","fakeValue","layoutInput","rParam","pathContain","pathProxyForDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","_fillGradient","_strokeGradient","ctxLineDash","shapeCfg","needsUpdateRect","rectWithStroke","_rectWithStroke","lineScale","dirtyPath","__clipTarget","Sub","defaultShape","thisShape","Cartesian","getAxesByScale","axisX","axisY","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","yExtent","_dimName","_axisIndex","_valueWindow","_percentWindow","_dataExtent","_minMaxSpan","_dataZoomModel","calculateDataExtent","seriesExtent","fixExtentByAxis","isCategoryAxis","setAxisModel","isRestore","percentWindow","useOrigin","setMinMaxSpan","percentSpan","valueSpan","getOtherAxisModel","coordSysIndexName","foundOtherAxisModel","isCartesian","otherAxisModel","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","dataWindow","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","originalLarge","originalProgressive","axesInfo","seriesInvolved","coordSysMap","collectAxesInfo","collectSeriesInfo","globalAxisPointerModel","linksOption","linkGroups","coordSysKey","makeKey","axesInfoInCoordSys","baseTooltipModel","saveTooltipAxisInfo","triggerAxis","cross","tooltipAxes","fromTooltip","axisPointerShow","isHandleTrigger","makeAxisPointerModel","involveSeries","groupIndex","getLinkGroupIndex","linkGroup","mapper","tooltipAxisPointerModel","volatileOption","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","GRADIENT_LEVELS","Heatmap","_gradientPixels","colorFunc","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","globalNativeListenerNames","eventNameFix","isPointerFromTouch","pointerType","setTouchTimer","touching","touchTimer","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","painterRoot","currentTarget","fakeGlobalEventProto","stopImmediatePropagation","localDOMHandlers","_mayPointerCapture","downPoint","togglePointerCapture","mouseout","_pointerCapturing","zrEventControl","toElement","relatedTarget","zrIsToLocalDOM","touchstart","_lastTouchMoment","processGesture","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","isPointerCapturing","globalHandlerScope","_globalHandlerScope","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","handlerDomProxyProto","setCursor","processedMapType","mapSymbolOffsets","subMapSeries","dimAxisMapper","_axes","_dimList","_dataCoordConvert","input","dimList","SankeySeries","localPosition","rawDataOpt","layoutIterations","makeAction","PROXIMATE_ONE_DAY","Calendar","calendarModel","_rangeInfo","_sw","_sh","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","day","getDay","formatedDate","getNextNDay","setDate","_lineWidth","_getRangeInfo","_initRangeOption","whNames","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","setMonth","reversed","startDateNum","endDateNum","dateNum","fweek","lweek","nthDay","calendarList","calendarSeries","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","stackedDimension","stackedByDimension","isStackedByIndex","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","targetData","byValue","stackedDataRawIndex","stackedOver","legendFilter","SILENT","makeEventPacket","eveType","stopEvent","EmptyProxy","handlerNames","proxy","_hovered","_gestureMgr","setHandlerProxy","isHover","isOutsideBoundary","handlerInstance","isOutside","lastHovered","lastHoveredTarget","hovered","hoveredTarget","eventControl","eventArgs","eventPacket","eachOtherLayer","layer","exclude","hoverCheckResult","gestureMgr","_downEl","_downPoint","_upEl","magicTypeLang","INNER_STACK_KEYWORD","MagicType","getIcons","availableIcons","icons","seriesOptGenreator","isStack","radioTypes","newTitle","generateNewSeriesTypes","newSeriesOpt","radio","currentType","doCreateNode","urn","win","vmlInited","namespaces","zrvml","initVML","styleSheets","createStyleSheet","addRule","AxisPointerView","_updatePathDirty","vec2Min","vec2Max","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawMono","drawNonMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","stackedOnBBox","LinkedList","linkedListProto","insert","entry","Entry","insertEntry","_list","_maxSize","_lastRemovedEntry","LRUProto","leastUsedEntry","PictorialBarSeries","sunburstLayout","previousZoom","fixX","fixY","cubic","quadratic","swapExtrema","windingCubic","nRoots","y0_","y1_","nExtrema","windingQuadratic","y_","windingArc","containPath","isStroke","_axesLayout","restrict","layoutAxisWithoutExpand","layoutLength","axisCount","axisNameAvailableWidth","axisLabelShow","layoutAxisWithExpand","nameTruncateMaxWidth","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","axisExpandWindow","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","_layoutAxes","winSize","layoutExtent","positionTable","rotationTable","axisCoordToPoint","dataDimensions","hasActiveSet","lenj","getActiveState","getSlidedAxisExpandWindow","behavior","pointCoord","triggerArea","useJump","PolarAxisModel","polarId","polarAxisDefaultExtendedOption","treemapVisual","treemapLayout","listComponentHelper","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","titleText","__title","needPutOnTop","topOffset","oldName","isUserFeatureName","createIconPaths","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","titles","defaultTextPosition","parseInt10","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","_opts","svgDom","bgRoot","gradientManager","clipPathManager","shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","createMethodNotSupport","viewportRoot","_paintList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","textSvgElement","_getDefs","_getSize","_width","_height","viewportStyle","whIdx","cwh","plt","prb","encodeURIComponent","outerHTML","repeat","createPattern","moveAnimation","propsEqual","lastProp","lastProps","newProps","updateLabelShowHide","labelEl","getHandleTransProps","updateMandatoryProps","_group","_lastGraphicKey","_handle","_lastValue","_lastStatus","_payloadInfo","_axisModel","_axisPointerModel","_moveAnimation","determineAnimation","doUpdateProps","updatePointerEl","updateLabelEl","createPointerEl","createLabelEl","useSnap","pointerEl","handleModel","onmousedown","_onHandleDragMove","_onHandleDragEnd","includeStyles","_moveHandleToValue","_doDispatchAxisPointer","payloadInfo","doClear","buildLabel","xDimIndex","BoxplotView","constDim","updateNormalBoxData","BoxPath","TimelineModel","SliderTimelineModel","checkpointStyle","playIcon","stopIcon","nextIcon","prevIcon","idStart","colorQuery","opacityQuery","restoreLang","Restore","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","ITEM_STYLE_NORMAL_PATH","ITEM_STYLE_EMPHASIS_PATH","LABEL_NORMAL","LABEL_EMPHASIS","GROUP_DIFF_PREFIX","prepareCustoms","getPathData","__customPathData","__customImagePath","__customText","__customGraphicType","updateEl","isRoot","transitionProps","prepareStyleTransition","targetOpacity","styleEmphasis","oldElStyle","makeRenderItem","customSeries","prepareResult","currDataIndexInside","currItemModel","currLabelNormalModel","currLabelEmphasisModel","currVisualColor","userAPI","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDirty","updateCache","applyExtraBefore","applyExtraAfter","doCreateOrUpdate","simplyRemove","elOptionType","elOptionShape","hasOwnPathData","hasOwn","mergeChildren","$mergeChildren","byName","diffChildrenByName","diffGroupChildren","processAddUpdate","processRemove","childOption","dummyModel","stylePropName","useTransform","setIncrementalAndHoverLayer","elementName","makeCategoryLabels","makeRealNumberLabels","makeCategoryTicks","makeCategoryLabelsActually","labelCategoryInterval","numericLabelInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","tickCategoryInterval","ticksCache","optionTickInterval","labelsResult","autoInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","unitW","maxW","axisExtend0","axisExtend1","categoryInterval","onlyTick","startTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tVal","DUMMY_COMPONENT_NAME_PREFIX","subOpts","subOptName","newCptOptions","cptOption","idMap","existCpt","idNum","batchA","batchB","mapA","mapB","makeMap","mapToArray","sourceBatch","otherMap","otherDataIndices","isData","innerUniqueIndex","hostObj","parsedKey","queryType","queryParam","_setting","_isBlank","childCount","_doAdd","addBefore","includeChildren","tmpMat","extremity","xDim","yDim","_baseAxisDim","addOrdinal","xAxisType","yAxisType","baseAxisDimIndex","baseAxisType","otherAxisType","newOptionData","newItem","getNearestColorPalette","paletteNum","colorIdx","colorNameMap","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","doneCallback","elExistsMap","fixPosition","textWidthCache","textWidthCacheCounter","TEXT_CACHE_MAX","STYLE_REG","measureText","getRichTextRect","getPlainTextRect","halfHeight","adjustTextPositionOnRect","dummyStyle","prepareTruncateOptions","truncateSingleLine","maxIterations","cnCharWidth","ascCharWidth","ellipsisWidth","subLength","estimateLength","charCode","getLineHeight","truncOuterHeight","truncOuterWidth","matchedIndex","pushTokens","substring","stlPadding","truncateWidth","truncateHeight","tokenHeight","tokenWidth","tokenWidthNotSpecified","percentWidth","bgImg","paddingW","remianTruncWidth","isEmptyStr","strs","tokensLen","renderPlanner","Chart","renderTaskPlan","renderTaskReset","toggleHighlight","chartProto","elSetState","progressMethodMap","forceFirstProgress","VMLPainter","vmlViewport","_vmlRoot","_vmlViewport","_firstPaint","__alreadyNotVisible","_getWidth","_getHeight","vmlViewportStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","seriesItem","replacableOptionKeys","dataBound","contentColor","getTargetSeriesIndices","optionSeriesIndex","isMinMax","optDim","listDimensions","isCalculationCoord","completeSingle","defa","completeInactive","stateExist","stateAbsent","optExist","optAbsent","completeController","symbolExists","symbolSizeExists","modelHelper","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputFinder","showValueMap","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","dontSnap","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","outputAxesInfo","valItem","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","setScrollDataIndex","rawGeoJson","rawSpecialAreas","parsers","JSON","groupSeriesByAxis","groupItem","calculateBase","layoutSingleSeries","boxOffsetList","boxWidthList","axisList","boundList","maxDataCount","boxWidthBound","availableWidth","boxGap","boxWidth","halfWidth","median","end1","end2","end4","end5","layEndLine","endCenter","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","isLayerValid","__builtin__","isDisplayableCulled","isClipPathChanged","prevClipPaths","doClip","createRoot","domRoot","singleCanvas","_singleCanvas","rootStyle","zlevelList","_zlevelList","layers","_layerConfig","_needsManuallyCompositing","mainLayer","_domRoot","_hoverlayer","_hoverElements","isSingleCanvas","paintAll","_redrawId","_backgroundColor","__hoverMir","hoverElements","hoverLayer","originalEl","_doPaintEl","getHoverLayer","redrawId","_updateLayerStatus","finished","_doPaintList","_compositeManually","eachBuiltinLayer","virtual","layerList","zi","useTimer","now","firstEl","dTime","prevElClipPaths","currentLayer","forcePaint","insertLayer","layersMap","prevLayer","prevDom","eachLayer","getLayers","updatePrevLayer","prevZlevel","incrementalLayerCount","layerConfig","_zlevel","delLayer","_progressiveLayers","clearLayer","imageLayer","renderToCanvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","ImageShape","imgShape","upperCaseFirst","group1","replaceReg","replaceMap","'","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","paramsList","seriesLen","alias","formatTplSimple","pad","isUTC","utc","getTextBoundingRect","blank","opener","autoPlay","rewind","playInterval","_names","_initData","dataArr","idxArr","positionMap","directionMap","stackedByDimInfo","stackedDimInfo","byIndex","stackedCoordDimension","mayStack","stackedDimCoordDim","stackedDimType","stackedDimCoordIndex","stackedDim","targetDim","MONTH_TEXT","EN","CN","WEEK_TEXT","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","tmpD","_formatterLabel","_yearTextPositionControl","aligns","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","termPoints","firstDayPoints","yyyy","yy","MM","monthText","_weekTextPositionControl","isStart","firstDayOfWeek","weekText","mathAtan2","resizeGeo","leftTop","rightBottom","boxLayoutOption","useCenterAndSize","setGeoCoords","geoList","mapModelGroupBySeries","nameMapList","singleMapSeries","originRegionArr","regionsArr","pp","initialFriction","v12","nLen","repFact","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","dataSample","treeLayout","diffData","diffResult","idx1","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","SingleAxisPointer","getPointDimIndex","ScrollableLegendModel","pageButtonItemGap","pageIcons","pageIconColor","pageIconInactiveColor","pageTextStyle","_bbox","lineAnimationDiff","isPointsSame","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","stepPoints","stepPt","stepPt2","getVisualGradient","stopLen","tinyExtent","minCoord","maxCoord","coordSpan","getIsIgnoreFunc","isAuto","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","createLineClipPath","_lineGroup","isCoordSysPolar","prevCoordSys","_coordSys","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolygon","isIgnore","_stackedOnPoints","_updateAnimation","_newPolyline","stackedOnSeries","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","contrastColor","axisCommon","CartesianAxisView","loopGeo","newRegion","parallelPreprocessor","CLICK_THRESHOLD","_handlers","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","brushMode","transformable","inBrush","outOfBrush","generateBrushOption","define","Task","_reset","_plan","_onDirty","_dirty","taskProto","planResult","upTask","_upstream","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","_dueEnd","_outputDueEnd","_progress","_dueIndex","doProgress","outputDueEnd","_settedOutputEnd","iterator","winCount","it","sStep","sCount","modNext","sequentialNext","taskIns","_callingProgress","downstream","_downstream","downTask","normalizeRect","localPoints","specifiedXYIndex","brushWidth","targetModel","localCursorPoint","TEXT_PADDING","ITEM_GAP","ARRAY_LENGTH","makeItemPoints","packEventData","itemNode","selfType","normalStyleModel","layoutParam","totalWidth","renderList","_prepare","_renderContent","lastX","availableSize","getAvailableSize","dataStatistics","statisticType","mapKey","seriesGroups","hostGeoModel","seriesList","symbolCtor","_symbolCtor","symbolDrawProto","normalizeUpdateOpt","SymbolCtor","enableAnimation","PieSeries","_createSelectableList","minShowLabelAngle","hoverOffset","alignTo","distanceToLabelLine","HV_NAMES","boxLayout","maxHeight","currentLineMaxSize","nextX","nextY","nextChild","nextChildRect","moveX","moveY","vbox","hbox","containerRect","verticalMargin","horizontalMargin","elPos","targetOption","hResult","vResult","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","boxplotVisual","boxplotLayout","matrixUtil","dumbGroup","_transform","_dumbGroup","hasBuilder","builders","pt1","pt2","arrows","arrowSize","arrowOffset","symbolWidth","symbolHeight","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","nameRotation","endTextLayout","truncateOpt","truncatedText","__fullText","__truncatedText","axisRotation","rotationDiff","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","aniid","tickEl","minorTickLineStyle","minorTicksEls","itemLabelModel","compatStyle","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","clipOverflow","clockWise","pointerColor","dataRange","componentName","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","nw","se","DEFAULT_BRUSH_OPT","baseUID","_brushType","_brushOption","_panels","_covers","_creatingCover","_creatingPanel","_enableGlobalPan","_uid","pointerHandlers","doEnableBrush","mountHandlers","doDisableBrush","unmountHandlers","createCover","cover","coverRenderers","__brushOption","endCreating","creatingCover","coverRenderer","getCoverRenderer","updateCoverShape","updateCoverAfterCreation","getPanelByPoint","panel","panels","pn","getPanelByCover","clearCovers","covers","originalLength","shouldShowCover","getTrackEnds","createBaseRectCover","doDrift","edgeNames","makeStyle","updateBaseRect","localRange","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection","pointsToRect","clipByPanel","formatRectRange","localDirection","inverseMap","driftRect","toRectRange","fromRectRange","rectRange","localDelta","toLocalDelta","namePart","ind","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","eventParams","thisBrushOption","determineBrushType","coverBrushOption","getCreatingRange","panelOpts","eachCover","brushOptionList","tmpIdPrefix","oldCovers","newCovers","oldGetKey","addOrUpdate","newBrushOption","handleDragEnd","getLineRenderer","localTrack","_radiusAxis","_angleAxis","maxAngle","colorAccessPath","colorCallback","borderColorAccessPath","samplers","nearest","indexSampler","sampler","PATH_COLOR","BoxplotSeries","brushLang","Brush","_brushMode","isBrushed","command","styleModel","paddings","confineInContainer","bgColor","axisDimension"],"mappings":"gGAoBA,IAAIA,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KACbC,EAAgBF,EAAME,cAEtBC,EAAc,EAAQ,QAEtBC,EAAsB,EAAQ,QAoB9BC,EAAWF,EAAYG,OAAO,CAChCC,KAAM,kBACNC,aAAc,CAAC,YACfC,sBAAuB,kBACvBC,eAAgB,SAAUC,EAAQC,GAChC,IAAIC,EAASC,KAAKC,YAElB,OADAC,EAAuBH,EAAQC,MACxBV,EAAoBS,EAAQC,OAUrCG,2BAA4B,SAAUC,GACpC,IAAIC,EAAWL,KAAKM,iBAChBC,EAAOP,KAAKQ,UACZC,EAAU,GAMd,OALAJ,EAASK,gBAAgBH,GAAM,SAAUI,EAAgBC,GACnDR,IAAgBO,GAClBF,EAAQI,KAAKN,EAAKO,YAAYF,OAG3BH,GAETM,cAAe,CACbC,OAAQ,EAERC,EAAG,EAEHX,iBAAkB,WAClBY,cAAe,EACfC,MAAO,CACLC,MAAM,GAERC,gBAAiB,IACjBC,cAAe,EACfC,UAAW,CACTC,MAAO,EACPC,QAAS,IACThC,KAAM,SAERiC,SAAU,CACRP,MAAO,CACLC,MAAM,IAGVO,YAAa,IACbC,QAAQ,EAERC,gBAAiB,YAIrB,SAAS3B,EAAuBH,EAAQ+B,GAOtC,IAAI/B,EAAOgC,aAAX,CAIA,IAAIC,EAAgBF,EAAYhC,QAAQmC,aAAa,WAAYH,EAAYI,IAAI,kBAEjF,GAAKF,EAAL,CAIA,IAAID,EAAehC,EAAOgC,aAAe3C,IACzCD,EAAK6C,EAAcG,YAAY,SAAUC,GACvC,IAAIC,EAAeC,EAAuBF,GAC1CL,EAAaQ,IAAIH,EAASC,QAI9B,SAASC,EAAuBE,GAC9B,OAAQA,EAAQC,QAAQ,MAAO,IAGjCC,EAAOC,QAAUpD,G,uBChHjB,IAAIqD,EAAS,EAAQ,QAEjBC,EAAgB,EAAQ,QAExBC,EAAU,EAAQ,QAElBC,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBC,EAAS,EAAQ,QAEjBC,EAAS,EAAQ,QAoBjBC,EAAyBN,EAAcrD,OAAO,CAChDC,KAAM,sBAMN2D,SAAU,WACR,IAAIC,EAAYrD,KAAKsD,MACrBD,EAAUE,YACV,IAAIC,EAAiBxD,KAAKwD,eACtBC,EAAUD,EAAetB,IAAI,WAC7BwB,EAAiBF,EAAeE,eAChCC,EAAWD,EAAeE,UAC1BC,EAAWH,EAAeI,eAE1BC,EAAY/D,KAAKgE,gBAEjBC,EAAWT,EAAeS,SAE1BC,EAAWlE,KAAKmE,eAEhBC,EAAWF,EAASE,SACpBC,EAAYzB,EAAO0B,SAASd,EAAetB,IAAI,aAAa,IAAQkC,GAQxE,SAASG,EAAWC,GAClB,IAAIC,EAAQD,EAAKC,MACbC,EAAY,IAAI5B,EAAQ6B,MAC5BD,EAAUE,QAAUhC,EAAOiC,KAAK7E,KAAK8E,aAAc9E,KAAMyE,GAEzDzE,KAAK+E,iBAAiBL,EAAWF,EAAKQ,uBAEtC,IAAIC,EAAiBzB,EAAe0B,kBAAkBT,GAItD,GAFAzE,KAAKmF,kBAAkBT,EAAWO,EAAgB,CAAC,EAAG,EAAGhB,EAAS,GAAIA,EAAS,KAE3EI,EAAW,CACb,IAAIe,EAAcpF,KAAKwD,eAAe6B,cAAcJ,GACpDP,EAAUY,IAAI,IAAIxC,EAAQyC,KAAK,CAC7BC,MAAO,CACLC,EAAiB,UAAd1B,GAAyBN,EAAUQ,EAAS,GAAKR,EACpDiC,EAAGzB,EAAS,GAAK,EACjB0B,KAAMlB,EAAMkB,KACZC,kBAAmB,SACnBC,UAAW9B,EACXJ,SAAUA,EACVE,SAAUA,EACVpC,QAAyB,eAAhB2D,EAA+B,GAAM,MAKpD/B,EAAUiC,IAAIZ,GAlChBN,GAAYpE,KAAK8F,gBAAgBzC,EAAWe,EAAS,GAAIH,EAAUI,EAAWN,GAC9EnB,EAAOzD,KAAK+E,EAAS6B,cAAexB,EAAYvE,MAChDoE,GAAYpE,KAAK8F,gBAAgBzC,EAAWe,EAAS,GAAIH,EAAUI,EAAWN,GAC9Ed,EAAO+C,IAAIxC,EAAetB,IAAI,UAAWmB,EAAWG,EAAetB,IAAI,YACvElC,KAAKiG,iBAAiB5C,GACtBrD,KAAKkG,cAAc7C,IAoCrB0B,iBAAkB,SAAUL,EAAWyB,GAGrC,SAASC,EAAYC,GACnB,IAAI7C,EAAiBxD,KAAKwD,eAC1BA,EAAe3D,OAAOyG,WAAatG,KAAKuG,IAAIC,eAAe,CACzD/G,KAAM4G,EACNI,MAAOvD,EAAOwD,kBAAkBlD,EAAemD,sBAAsBR,GAAa3C,KANtFkB,EAAUkC,GAAG,YAAahE,EAAOiC,KAAKuB,EAAapG,KAAM,cAAc4G,GAAG,WAAYhE,EAAOiC,KAAKuB,EAAapG,KAAM,cAcvHgE,cAAe,WACb,IAAIR,EAAiBxD,KAAKwD,eACtBqD,EAAcrD,EAAe3D,OAEjC,GAA2B,aAAvBgH,EAAYC,OACd,OAAO5D,EAAO6D,aAAavD,EAAgBxD,KAAKuG,IAAK/C,EAAeS,UAGpE,IAAI+C,EAAQH,EAAYG,MAMxB,OAJKA,GAAmB,SAAVA,IACZA,EAAQ,QAGHA,GAOXlB,gBAAiB,SAAUxC,EAAOqC,EAAM1B,EAAUI,EAAWN,GAC3D,GAAK4B,EAAL,CAIA,IAAIjB,EAAY,IAAI5B,EAAQ6B,MACxBjB,EAAiB1D,KAAKwD,eAAeE,eACzCgB,EAAUY,IAAI,IAAIxC,EAAQyC,KAAK,CAC7BC,MAAO,CACLC,EAAGpB,EAA0B,UAAdN,EAAwBE,EAAS,GAAK,EAAIA,EAAS,GAAK,EACvEyB,EAAGzB,EAAS,GAAK,EACjB2B,kBAAmB,SACnBC,UAAWxB,EAAYN,EAAY,SACnC4B,KAAMA,EACNhC,SAAUD,EAAeE,UACzBC,SAAUH,EAAeI,mBAG7BR,EAAMgC,IAAIZ,KAOZP,aAAc,WACZ,IAAIX,EAAiBxD,KAAKwD,eACtBuC,EAAgBnD,EAAOqE,IAAIzD,EAAe0D,gBAAgB,SAAUzC,EAAO0C,GAC7E,MAAO,CACL1C,MAAOA,EACPO,sBAAuBmC,MAGvB/C,EAAWZ,EAAetB,IAAI,QAE9B4E,EAAStD,EAAetB,IAAI,UAC5BkF,EAAU5D,EAAetB,IAAI,WASjC,OAPe,eAAX4E,EAA0BM,GAAWA,GACvCrB,EAAcsB,UAEPjD,IACLA,EAAWA,EAASkD,QAAQD,WAGzB,CACLtB,cAAeA,EACf3B,SAAUA,IAOde,kBAAmB,SAAU7B,EAAO2B,EAAgBsC,GAClDjE,EAAMgC,IAAItC,EAAahD,KAAKwH,oBAAoBvC,EAAgB,UAAWsC,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIvH,KAAKwH,oBAAoBvC,EAAgB,YAMlLH,aAAc,SAAUL,GACtB,IAAIjB,EAAiBxD,KAAKwD,eACtB3D,EAAS2D,EAAe3D,OACxB4H,EAAW7E,EAAO8E,MAAM7H,EAAO4H,UAC/BE,EAASnE,EAAeoE,kBAAkBnD,GAElB,WAAxB5E,EAAOgI,cACTJ,EAASE,IAAU,EACnB/E,EAAOzD,KAAKsI,GAAU,SAAUK,EAAGC,GACjCN,EAASM,GAAOA,IAAQJ,MAG1BF,EAASE,IAAWF,EAASE,GAG/B3H,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,kBACNuI,KAAMhI,KAAKiI,IACXC,YAAalI,KAAKwD,eAAe2E,GACjCV,SAAUA,OAIZlI,EAAW4D,EACfT,EAAOC,QAAUpD,G,uBC1NjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QA8BRA,EAAQC,eAAe,CACrB5I,KAAM,UACN6I,MAAO,UACPC,OAAQ,4BAEV,eACAH,EAAQC,eAAe,CACrB5I,KAAM,UACN6I,MAAO,UACPC,OAAQ,4BAEV,gB,uBC/CA,IAAIH,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB4F,EAAmB,EAAQ,QAE3BC,EAAS,EAAQ,QAEjBC,EAAkBD,EAAOC,gBAEzBC,EAAgB,EAAQ,QAExBC,EAA+BD,EAAcC,6BAE7CC,EAAuB,EAAQ,QAoB/BC,EAAeV,EAAQW,kBAAkB,CAC3CtJ,KAAM,gBACNuJ,KAAM,SAAUnJ,GACdiJ,EAAaG,WAAWjJ,KAAM,OAAQkJ,WAGtClJ,KAAKmJ,qBAAuB,IAAIN,EAAqBjG,EAAOiC,KAAK7E,KAAKQ,QAASR,MAAO4C,EAAOiC,KAAK7E,KAAKoJ,WAAYpJ,OAEnHA,KAAKqJ,kBAAkBxJ,IAEzBD,eAAgB,SAAUC,EAAQC,GAChC,OAAO0I,EAAiBxI,KAAM,CAC5BsJ,gBAAiB,CAAC,SAClBC,gBAAiB3G,EAAO4G,MAAMZ,EAA8B5I,SAGhEqJ,kBAAmB,SAAUxJ,GAE3B6I,EAAgB7I,EAAQ,YAAa,CAAC,SACtC,IAAI4J,EAAqB5J,EAAO6J,UAC5BC,EAAuB9J,EAAO6B,SAASgI,UAE3CD,EAAmBrI,KAAOqI,EAAmBrI,MAAQvB,EAAOsB,MAAMC,KAClEuI,EAAqBvI,KAAOuI,EAAqBvI,MAAQvB,EAAO6B,SAASP,MAAMC,MAGjFwI,cAAe,SAAUhJ,GACvB,IAAIL,EAAOP,KAAKQ,UACZqJ,EAASf,EAAagB,UAAU9J,KAAM,gBAAiBY,GACvDmJ,EAAWxJ,EAAKyJ,aAAa,SAC7BC,EAAM1J,EAAK2J,OAAOH,GAItB,OAFAF,EAAOM,QAAWF,IAAY1J,EAAK2B,IAAI6H,EAAUnJ,GAAaqJ,EAAM,KAAKG,QAAQ,GAAzD,EACxBP,EAAOQ,MAAMxJ,KAAK,WACXgJ,GAET9I,cAAe,CACbC,OAAQ,EAERC,EAAG,EAEHqJ,iBAAiB,EACjBC,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,OAAQ,GAMRC,QAAS,KACTC,QAAS,OACTC,KAAM,aAENC,IAAK,EACLC,YAAa,SACb5J,MAAO,CACLC,MAAM,EACN4J,SAAU,SAGZtB,UAAW,CACTtI,MAAM,EACN6J,OAAQ,GACR1J,UAAW,CAETC,MAAO,EACP/B,KAAM,UAGVyL,UAAW,CAETC,YAAa,OACbC,YAAa,GAEf1J,SAAU,CACRP,MAAO,CACLC,MAAM,OAKV7B,EAAWuJ,EACfpG,EAAOC,QAAUpD,G,uBCtHjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASyI,EAAgBC,EAAUC,GAEjC,OADAA,EAAWA,GAAY,CAAC,EAAG,GACpB3I,EAAOqE,IAAI,CAAC,EAAG,IAAI,SAAUuE,GAClC,IAAIC,EAAMF,EAASC,GACfE,EAAWJ,EAASE,GAAU,EAC9BG,EAAK,GACLC,EAAK,GAIT,OAHAD,EAAGH,GAAUC,EAAMC,EACnBE,EAAGJ,GAAUC,EAAMC,EACnBC,EAAG,EAAIH,GAAUI,EAAG,EAAIJ,GAAUD,EAAS,EAAIC,GACxCK,KAAKC,IAAI9L,KAAK+L,YAAYJ,GAAIH,GAAUxL,KAAK+L,YAAYH,GAAIJ,MACnExL,MAGL,SAAST,EAASc,GAChB,IAAI2L,EAAO3L,EAAS4L,kBACpB,MAAO,CACL5L,SAAU,CACRZ,KAAM,MACNgG,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,OACbC,KAAM9L,EAAS+L,WAEjB7F,IAAK,CACH8F,MAAO,SAAU9L,GAIf,OAAOF,EAAS0L,YAAYxL,IAE9B+L,KAAM1J,EAAOiC,KAAKwG,EAAiBhL,KAKzCqC,EAAOC,QAAUpD,G,uBCzDjB,IAAIqD,EAAS,EAAQ,QAEjB2J,EAAe,EAAQ,QAEvBC,EAAO,EAAQ,QAEfC,EAAmB,EAAQ,QAiC/B,SAASC,EAAIC,EAAM1F,EAAK2F,EAASC,GAC/BL,EAAKM,KAAK9M,KAAM2M,GAMhB3M,KAAKiH,IAAMA,EACX,IAAIlH,EAAS0M,EAAiBM,KAAK9F,EAAK2F,GACxC5M,KAAKgN,cAAgBjN,EAAOkN,aAC5BjN,KAAKkN,YAAcnN,EAAOoN,WAC1BnN,KAAKoN,iBAAsC,MAAnBP,GAAiCA,EAKzD7M,KAAKqN,QAAUtN,EAAOsN,QAKtBrN,KAAKsN,MAAQvN,EAAOwN,aAgItB,SAASC,EAAUC,EAAY3N,EAAS4N,EAAQC,GAC9C,IAAIC,EAAWF,EAAOE,SAClB9L,EAAc4L,EAAO5L,YACrBzB,EAAWuN,EAAWA,EAAStN,iBAAmBwB,EAAcA,EAAYxB,mBAC5EwB,EAAY+L,uBAAuB,OAAO,IAAM,IAAIvN,iBAAmB,KAC3E,OAAOD,IAAaL,KAAOK,EAASoN,GAAYE,GAAS,KAlI3DjB,EAAIoB,UAAY,CACdC,YAAarB,EACbjN,KAAM,MAMN0C,WAAY,CAAC,MAAO,OAOpB6L,aAAc,SAAU3B,GAGtB,IAFA,IAAIgB,EAAUrN,KAAKqN,QAEVY,EAAI,EAAGA,EAAIZ,EAAQpC,OAAQgD,IAClC,GAAIZ,EAAQY,GAAGC,QAAQ7B,GACrB,OAAO,EAIX,OAAO,GAMT8B,YAAa,SAAU1I,EAAGC,EAAGlE,EAAO0K,GAClC,IAAIF,EAAOhM,KAAKiM,kBACZY,EAAkB7M,KAAKoN,iBAC3BpB,EAAOA,EAAKtE,QAERmF,IAEFb,EAAKtG,GAAKsG,EAAKtG,EAAIsG,EAAKE,QAG1B,IAAIkC,EAAmBpO,KAAKqO,kBAI5B,GAHAD,EAAiBE,UAAYtC,EAAKuC,mBAAmB,IAAIhC,EAAa9G,EAAGC,EAAGlE,EAAO0K,IACnFkC,EAAiBI,qBAEb3B,EAAiB,CACnB,IAAI4B,EAAQL,EAAiBK,MAC7BA,EAAM,IAAMA,EAAM,GAGpBL,EAAiBM,kBAEjB1O,KAAK2O,oBAOPC,UAAW,SAAUjC,GACnB,OAAO3M,KAAKkN,YAAYhL,IAAIyK,IAE9BkC,iBAAkB,SAAUxC,GAG1B,IAFA,IAAIgB,EAAUrN,KAAKqN,QAEVY,EAAI,EAAGA,EAAIZ,EAAQpC,OAAQgD,IAClC,GAAIZ,EAAQY,GAAGC,QAAQ7B,GACrB,OAAOgB,EAAQY,IAUrBa,YAAa,SAAUnC,EAAMoC,GAC3B/O,KAAKgN,cAAczK,IAAIoK,EAAMoC,IAQ/BC,YAAa,SAAUrC,GACrB,OAAO3M,KAAKgN,cAAc9K,IAAIyK,IAMhCV,gBAAiB,WACf,OAAOjM,KAAKsN,OASdvB,YAAa,SAAUxL,EAAM0O,EAAQC,GAMnC,GALoB,kBAAT3O,IAETA,EAAOP,KAAKgP,YAAYzO,IAGtBA,EACF,OAAOiM,EAAKsB,UAAU/B,YAAYe,KAAK9M,KAAMO,EAAM0O,EAAQC,IAO/DC,eAAgBvM,EAAO4G,MAAMgE,EAAW,eAKxC4B,iBAAkBxM,EAAO4G,MAAMgE,EAAW,gBAE5C5K,EAAOyM,MAAM3C,EAAKF,GAUlB,IAAIjN,EAAWmN,EACfhK,EAAOC,QAAUpD,G,uBCrMjB,IAAIqD,EAAS,EAAQ,QA+BrB,SAASK,EAAOqM,EAAWC,EAAWC,GACpCA,EAAMA,GAAO,GACb,IAAIC,EAAOH,EAAUhP,iBACjBoP,EAAOH,EAAUG,KACjBzM,EAAS,GACT0M,EAAoBD,EAAKE,kBAAkB,GAC3CC,EAAkBH,EAAK1E,SACvB8E,EAAeH,EAAoB,SAAWE,EAC9CzN,EAAUsN,EAAKK,IACf/D,EAAOyD,EAAKO,UACZC,EAAY,CAACjE,EAAKvG,EAAGuG,EAAKvG,EAAIuG,EAAKxK,MAAOwK,EAAKtG,EAAGsG,EAAKtG,EAAIsG,EAAKE,QAChEgE,EAAM,CACR3F,KAAM,EACNE,MAAO,EACPD,IAAK,EACLE,OAAQ,EACRyF,OAAQ,GAENC,EAAab,EAAUrN,IAAI,WAAa,EACxCmO,EAAuB,MAAZjO,EAAkB,CAAC6N,EAAU,GAAKG,EAAYH,EAAU,GAAKG,GAAc,CAACH,EAAU,GAAKG,EAAYH,EAAU,GAAKG,GAErI,GAAIT,EAAmB,CACrB,IAAIW,EAAcX,EAAkBY,cAAcZ,EAAkBa,YAAY,IAChFH,EAASH,EAAIC,QAAUtE,KAAK4E,IAAI5E,KAAK6E,IAAIJ,EAAaD,EAAS,IAAKA,EAAS,IAI/EpN,EAAO+H,SAAW,CAAa,MAAZ5I,EAAkBiO,EAASH,EAAIJ,IAAiBG,EAAU,GAAgB,MAAZ7N,EAAkBiO,EAASH,EAAIJ,IAAiBG,EAAU,IAE3IhN,EAAO0N,SAAW9E,KAAK+E,GAAK,GAAiB,MAAZxO,EAAkB,EAAI,GAEvD,IAAIyO,EAAS,CACXrG,KAAM,EACNE,OAAQ,EACRH,MAAO,EACPE,MAAO,GAETxH,EAAO6N,eAAiB7N,EAAO8N,cAAgB9N,EAAO+N,cAAgBH,EAAOhB,GAC7E5M,EAAOgO,YAActB,EAAoBU,EAASH,EAAIL,IAAoBQ,EAASH,EAAIC,QAAU,EAE7FZ,EAAUrN,IAAI,qBAChBe,EAAO8N,eAAiB9N,EAAO8N,eAG7BnO,EAAO0B,SAASkL,EAAI0B,YAAa3B,EAAUrN,IAAI,uBACjDe,EAAO6N,gBAAkB7N,EAAO6N,gBAIlC,IAAIK,EAAc5B,EAAUrN,IAAI,oBAIhC,OAHAe,EAAOkO,YAA+B,QAAjBrB,GAA0BqB,EAAcA,EAE7DlO,EAAOmO,GAAK,EACLnO,EAGTN,EAAQM,OAASA,G,uBCvFjB,IAAImF,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAqBRsF,EAAQiJ,oBAAoB,CAC1B5R,KAAM,OACN6R,OAAQ,SAAUhC,EAAWxP,GAC3BE,KAAKsD,MAAMC,YAEP+L,EAAUpN,IAAI,SAChBlC,KAAKsD,MAAMgC,IAAI,IAAIxC,EAAQyO,KAAK,CAC9BC,MAAOlC,EAAUhP,iBAAiB0P,UAClCxK,MAAO5C,EAAO6O,SAAS,CACrBC,KAAMpC,EAAUpN,IAAI,oBACnBoN,EAAUqC,gBACbC,QAAQ,EACRR,IAAK,QAKbhJ,EAAQyJ,sBAAqB,SAAUhS,GAEjCA,EAAOiS,OAASjS,EAAOkS,QAAUlS,EAAO4P,OAC1C5P,EAAO4P,KAAO,Q,qBCxBlB,SAASuC,EAAgBC,EAAgBC,EAAIC,GAC3C,IAAIC,EAASH,EAAeG,OACxBC,EAAMD,EAAOpH,SACjBqH,EAAI,IAAMH,EACVG,EAAI,IAAMF,EACVC,EAAOE,QAYT,SAASC,EAAiBN,EAAgBO,EAAWC,EAAOC,GAC1D,IAAIN,EAASH,EAAeG,OACxBO,EAAYV,EAAeU,UAC3BN,EAAMD,EAAOpH,SACbyD,EAAQ2D,EAAO3D,MACfmE,EAAUX,EAAe9F,KAAO8F,EAAe9F,MAAQ,EAG3D,GAFAyG,GAAWJ,EAEPG,EAAW,CACb,IAAIE,EAAUF,EAAUjC,KAAO,EAC3BoC,EAAUH,EAAUlC,KAAOsC,IAC/BH,EAAU/G,KAAK4E,IAAI5E,KAAK6E,IAAIoC,EAASF,GAAUC,GAGjD,IAAIG,EAAYJ,EAAUX,EAAe9F,KACzC8F,EAAe9F,KAAOyG,EAEtBP,EAAI,KAAOI,EAAQJ,EAAI,KAAOW,EAAY,GAC1CX,EAAI,KAAOK,EAAQL,EAAI,KAAOW,EAAY,GAC1CvE,EAAM,IAAMuE,EACZvE,EAAM,IAAMuE,EACZZ,EAAOE,QAGT3P,EAAQqP,gBAAkBA,EAC1BrP,EAAQ4P,iBAAmBA,G,uBCnE3B,IAAIU,EAAiB,EAAQ,QAEzBC,EAAgB,EAAQ,QAExBvK,EAAgB,EAAQ,QAExBwK,EAAqBxK,EAAcwK,mBAEnCC,EAAc,EAAQ,QAEtBC,EAA0BD,EAAYC,wBA6B1CJ,EAAezT,OAAO,CACpBC,KAAM,UAKNsB,cAAe,CAEbuS,eAAgBD,EAEhBE,aAAc,KACdpR,WAAY,KACZpC,OAAQ,MAEVyT,cAAe,WACbL,EAAmBnT,SAGvBkT,EAAc1T,OAAO,CACnBC,KAAM,a,qBC7ER,IAAIgU,EAAoB,GACpBC,EAAwB,EAG5B,SAASC,EAAaC,GACpB,IAAIC,EAAI,EAER,MAAOD,GAAKH,EACVI,GAAS,EAAJD,EACLA,IAAM,EAGR,OAAOA,EAAIC,EAGb,SAASC,EAAiBC,EAAOC,EAAIC,EAAIC,GACvC,IAAIC,EAAQH,EAAK,EAEjB,GAAIG,IAAUF,EACZ,OAAO,EAGT,GAAIC,EAAQH,EAAMI,KAAUJ,EAAMC,IAAO,EAAG,CAC1C,MAAOG,EAAQF,GAAMC,EAAQH,EAAMI,GAAQJ,EAAMI,EAAQ,IAAM,EAC7DA,IAGFC,EAAWL,EAAOC,EAAIG,QAEtB,MAAOA,EAAQF,GAAMC,EAAQH,EAAMI,GAAQJ,EAAMI,EAAQ,KAAO,EAC9DA,IAIJ,OAAOA,EAAQH,EAGjB,SAASI,EAAWL,EAAOC,EAAIC,GAC7BA,IAEA,MAAOD,EAAKC,EAAI,CACd,IAAII,EAAIN,EAAMC,GACdD,EAAMC,KAAQD,EAAME,GACpBF,EAAME,KAAQI,GAIlB,SAASC,EAAoBP,EAAOC,EAAIC,EAAIM,EAAOL,GAKjD,IAJIK,IAAUP,GACZO,IAGKA,EAAQN,EAAIM,IAAS,CAC1B,IAGIC,EAHAC,EAAQV,EAAMQ,GACdhK,EAAOyJ,EACPvJ,EAAQ8J,EAGZ,MAAOhK,EAAOE,EACZ+J,EAAMjK,EAAOE,IAAU,EAEnByJ,EAAQO,EAAOV,EAAMS,IAAQ,EAC/B/J,EAAQ+J,EAERjK,EAAOiK,EAAM,EAIjB,IAAIZ,EAAIW,EAAQhK,EAEhB,OAAQqJ,GACN,KAAK,EACHG,EAAMxJ,EAAO,GAAKwJ,EAAMxJ,EAAO,GAEjC,KAAK,EACHwJ,EAAMxJ,EAAO,GAAKwJ,EAAMxJ,EAAO,GAEjC,KAAK,EACHwJ,EAAMxJ,EAAO,GAAKwJ,EAAMxJ,GACxB,MAEF,QACE,MAAOqJ,EAAI,EACTG,EAAMxJ,EAAOqJ,GAAKG,EAAMxJ,EAAOqJ,EAAI,GACnCA,IAKNG,EAAMxJ,GAAQkK,GAIlB,SAASC,EAAW/G,EAAOoG,EAAOQ,EAAOtJ,EAAQ0J,EAAMT,GACrD,IAAIU,EAAa,EACbC,EAAY,EACZC,EAAS,EAEb,GAAIZ,EAAQvG,EAAOoG,EAAMQ,EAAQI,IAAS,EAAG,CAC3CE,EAAY5J,EAAS0J,EAErB,MAAOG,EAASD,GAAaX,EAAQvG,EAAOoG,EAAMQ,EAAQI,EAAOG,IAAW,EAC1EF,EAAaE,EACbA,EAAyB,GAAfA,GAAU,GAEhBA,GAAU,IACZA,EAASD,GAITC,EAASD,IACXC,EAASD,GAGXD,GAAcD,EACdG,GAAUH,MACL,CACLE,EAAYF,EAAO,EAEnB,MAAOG,EAASD,GAAaX,EAAQvG,EAAOoG,EAAMQ,EAAQI,EAAOG,KAAY,EAC3EF,EAAaE,EACbA,EAAyB,GAAfA,GAAU,GAEhBA,GAAU,IACZA,EAASD,GAITC,EAASD,IACXC,EAASD,GAGX,IAAIE,EAAMH,EACVA,EAAaD,EAAOG,EACpBA,EAASH,EAAOI,EAGlBH,IAEA,MAAOA,EAAaE,EAAQ,CAC1B,IAAIE,EAAIJ,GAAcE,EAASF,IAAe,GAE1CV,EAAQvG,EAAOoG,EAAMQ,EAAQS,IAAM,EACrCJ,EAAaI,EAAI,EAEjBF,EAASE,EAIb,OAAOF,EAGT,SAASG,EAAYtH,EAAOoG,EAAOQ,EAAOtJ,EAAQ0J,EAAMT,GACtD,IAAIU,EAAa,EACbC,EAAY,EACZC,EAAS,EAEb,GAAIZ,EAAQvG,EAAOoG,EAAMQ,EAAQI,IAAS,EAAG,CAC3CE,EAAYF,EAAO,EAEnB,MAAOG,EAASD,GAAaX,EAAQvG,EAAOoG,EAAMQ,EAAQI,EAAOG,IAAW,EAC1EF,EAAaE,EACbA,EAAyB,GAAfA,GAAU,GAEhBA,GAAU,IACZA,EAASD,GAITC,EAASD,IACXC,EAASD,GAGX,IAAIE,EAAMH,EACVA,EAAaD,EAAOG,EACpBA,EAASH,EAAOI,MACX,CACLF,EAAY5J,EAAS0J,EAErB,MAAOG,EAASD,GAAaX,EAAQvG,EAAOoG,EAAMQ,EAAQI,EAAOG,KAAY,EAC3EF,EAAaE,EACbA,EAAyB,GAAfA,GAAU,GAEhBA,GAAU,IACZA,EAASD,GAITC,EAASD,IACXC,EAASD,GAGXD,GAAcD,EACdG,GAAUH,EAGZC,IAEA,MAAOA,EAAaE,EAAQ,CAC1B,IAAIE,EAAIJ,GAAcE,EAASF,IAAe,GAE1CV,EAAQvG,EAAOoG,EAAMQ,EAAQS,IAAM,EACrCF,EAASE,EAETJ,EAAaI,EAAI,EAIrB,OAAOF,EAGT,SAASI,EAAQnB,EAAOG,GACtB,IAIIiB,EACAC,EALAC,EAAY3B,EACZzI,EAAS,EAKTqK,EAAY,EAChBrK,EAAS8I,EAAM9I,OAMf,IAAI8J,EAAM,GAKV,SAASQ,EAAQC,EAAWC,GAC1BN,EAASG,GAAaE,EACtBJ,EAAUE,GAAaG,EACvBH,GAAa,EAGf,SAASI,IACP,MAAOJ,EAAY,EAAG,CACpB,IAAI1B,EAAI0B,EAAY,EAEpB,GAAI1B,GAAK,GAAKwB,EAAUxB,EAAI,IAAMwB,EAAUxB,GAAKwB,EAAUxB,EAAI,IAAMA,GAAK,GAAKwB,EAAUxB,EAAI,IAAMwB,EAAUxB,GAAKwB,EAAUxB,EAAI,GAC1HwB,EAAUxB,EAAI,GAAKwB,EAAUxB,EAAI,IACnCA,SAEG,GAAIwB,EAAUxB,GAAKwB,EAAUxB,EAAI,GACtC,MAGF+B,EAAQ/B,IAIZ,SAASgC,IACP,MAAON,EAAY,EAAG,CACpB,IAAI1B,EAAI0B,EAAY,EAEhB1B,EAAI,GAAKwB,EAAUxB,EAAI,GAAKwB,EAAUxB,EAAI,IAC5CA,IAGF+B,EAAQ/B,IAIZ,SAAS+B,EAAQ1H,GACf,IAAI4H,EAASV,EAASlH,GAClB6H,EAAUV,EAAUnH,GACpB8H,EAASZ,EAASlH,EAAI,GACtB+H,EAAUZ,EAAUnH,EAAI,GAC5BmH,EAAUnH,GAAK6H,EAAUE,EAErB/H,IAAMqH,EAAY,IACpBH,EAASlH,EAAI,GAAKkH,EAASlH,EAAI,GAC/BmH,EAAUnH,EAAI,GAAKmH,EAAUnH,EAAI,IAGnCqH,IACA,IAAIW,EAAIhB,EAAYlB,EAAMgC,GAAShC,EAAO8B,EAAQC,EAAS,EAAG5B,GAC9D2B,GAAUI,EACVH,GAAWG,EAEK,IAAZH,IAIJE,EAAUtB,EAAWX,EAAM8B,EAASC,EAAU,GAAI/B,EAAOgC,EAAQC,EAASA,EAAU,EAAG9B,GAEvE,IAAZ8B,IAIAF,GAAWE,EACbE,EAASL,EAAQC,EAASC,EAAQC,GAElCG,EAAUN,EAAQC,EAASC,EAAQC,KAIvC,SAASE,EAASL,EAAQC,EAASC,EAAQC,GACzC,IAAI/H,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAI6H,EAAS7H,IACvB8G,EAAI9G,GAAK8F,EAAM8B,EAAS5H,GAG1B,IAAImI,EAAU,EACVC,EAAUN,EACVO,EAAOT,EAGX,GAFA9B,EAAMuC,KAAUvC,EAAMsC,KAEJ,MAAZL,EAQN,GAAgB,IAAZF,EAAJ,CASA,IACIS,EACAC,EACAC,EAHAC,EAAarB,EAKjB,MAAO,EAAG,CACRkB,EAAS,EACTC,EAAS,EACTC,GAAO,EAEP,GACE,GAAIvC,EAAQH,EAAMsC,GAAUtB,EAAIqB,IAAY,GAK1C,GAJArC,EAAMuC,KAAUvC,EAAMsC,KACtBG,IACAD,EAAS,EAES,MAAZP,EAAe,CACnBS,GAAO,EACP,YAOF,GAJA1C,EAAMuC,KAAUvB,EAAIqB,KACpBG,IACAC,EAAS,EAES,MAAZV,EAAe,CACnBW,GAAO,EACP,cAGIF,EAASC,GAAUE,GAE7B,GAAID,EACF,MAGF,EAAG,CAGD,GAFAF,EAAStB,EAAYlB,EAAMsC,GAAUtB,EAAKqB,EAASN,EAAS,EAAG5B,GAEhD,IAAXqC,EAAc,CAChB,IAAKtI,EAAI,EAAGA,EAAIsI,EAAQtI,IACtB8F,EAAMuC,EAAOrI,GAAK8G,EAAIqB,EAAUnI,GAOlC,GAJAqI,GAAQC,EACRH,GAAWG,EACXT,GAAWS,EAEPT,GAAW,EAAG,CAChBW,GAAO,EACP,OAMJ,GAFA1C,EAAMuC,KAAUvC,EAAMsC,KAEJ,MAAZL,EAAe,CACnBS,GAAO,EACP,MAKF,GAFAD,EAAS9B,EAAWK,EAAIqB,GAAUrC,EAAOsC,EAASL,EAAS,EAAG9B,GAE/C,IAAXsC,EAAc,CAChB,IAAKvI,EAAI,EAAGA,EAAIuI,EAAQvI,IACtB8F,EAAMuC,EAAOrI,GAAK8F,EAAMsC,EAAUpI,GAOpC,GAJAqI,GAAQE,EACRH,GAAWG,EACXR,GAAWQ,EAEK,IAAZR,EAAe,CACjBS,GAAO,EACP,OAMJ,GAFA1C,EAAMuC,KAAUvB,EAAIqB,KAEF,MAAZN,EAAe,CACnBW,GAAO,EACP,MAGFC,UACOH,GAAU7C,GAAyB8C,GAAU9C,GAEtD,GAAI+C,EACF,MAGEC,EAAa,IACfA,EAAa,GAGfA,GAAc,EAMhB,GAHArB,EAAYqB,EACZrB,EAAY,IAAMA,EAAY,GAEd,IAAZS,EAAe,CACjB,IAAK7H,EAAI,EAAGA,EAAI+H,EAAS/H,IACvB8F,EAAMuC,EAAOrI,GAAK8F,EAAMsC,EAAUpI,GAGpC8F,EAAMuC,EAAON,GAAWjB,EAAIqB,OACvB,IAAgB,IAAZN,EACT,MAAM,IAAIa,MAEV,IAAK1I,EAAI,EAAGA,EAAI6H,EAAS7H,IACvB8F,EAAMuC,EAAOrI,GAAK8G,EAAIqB,EAAUnI,QAzHpC,CACE,IAAKA,EAAI,EAAGA,EAAI+H,EAAS/H,IACvB8F,EAAMuC,EAAOrI,GAAK8F,EAAMsC,EAAUpI,GAGpC8F,EAAMuC,EAAON,GAAWjB,EAAIqB,QAZ5B,IAAKnI,EAAI,EAAGA,EAAI6H,EAAS7H,IACvB8F,EAAMuC,EAAOrI,GAAK8G,EAAIqB,EAAUnI,GAoItC,SAASkI,EAAUN,EAAQC,EAASC,EAAQC,GAC1C,IAAI/H,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAI+H,EAAS/H,IACvB8G,EAAI9G,GAAK8F,EAAMgC,EAAS9H,GAG1B,IAAImI,EAAUP,EAASC,EAAU,EAC7BO,EAAUL,EAAU,EACpBM,EAAOP,EAASC,EAAU,EAC1BY,EAAe,EACfC,EAAa,EAGjB,GAFA9C,EAAMuC,KAAUvC,EAAMqC,KAEJ,MAAZN,EAUN,GAAgB,IAAZE,EAAJ,CAcA,IAAIU,EAAarB,EAEjB,MAAO,EAAM,CACX,IAAIkB,EAAS,EACTC,EAAS,EACTC,GAAO,EAEX,GACE,GAAIvC,EAAQa,EAAIsB,GAAUtC,EAAMqC,IAAY,GAK1C,GAJArC,EAAMuC,KAAUvC,EAAMqC,KACtBG,IACAC,EAAS,EAES,MAAZV,EAAe,CACnBW,GAAO,EACP,YAOF,GAJA1C,EAAMuC,KAAUvB,EAAIsB,KACpBG,IACAD,EAAS,EAES,MAAZP,EAAe,CACnBS,GAAO,EACP,cAGIF,EAASC,GAAUE,GAE7B,GAAID,EACF,MAGF,EAAG,CAGD,GAFAF,EAAST,EAAUb,EAAYF,EAAIsB,GAAUtC,EAAO8B,EAAQC,EAASA,EAAU,EAAG5B,GAEnE,IAAXqC,EAAc,CAOhB,IANAD,GAAQC,EACRH,GAAWG,EACXT,GAAWS,EACXM,EAAaP,EAAO,EACpBM,EAAeR,EAAU,EAEpBnI,EAAIsI,EAAS,EAAGtI,GAAK,EAAGA,IAC3B8F,EAAM8C,EAAa5I,GAAK8F,EAAM6C,EAAe3I,GAG/C,GAAgB,IAAZ6H,EAAe,CACjBW,GAAO,EACP,OAMJ,GAFA1C,EAAMuC,KAAUvB,EAAIsB,KAEF,MAAZL,EAAe,CACnBS,GAAO,EACP,MAKF,GAFAD,EAASR,EAAUtB,EAAWX,EAAMqC,GAAUrB,EAAK,EAAGiB,EAASA,EAAU,EAAG9B,GAE7D,IAAXsC,EAAc,CAOhB,IANAF,GAAQE,EACRH,GAAWG,EACXR,GAAWQ,EACXK,EAAaP,EAAO,EACpBM,EAAeP,EAAU,EAEpBpI,EAAI,EAAGA,EAAIuI,EAAQvI,IACtB8F,EAAM8C,EAAa5I,GAAK8G,EAAI6B,EAAe3I,GAG7C,GAAI+H,GAAW,EAAG,CAChBS,GAAO,EACP,OAMJ,GAFA1C,EAAMuC,KAAUvC,EAAMqC,KAEJ,MAAZN,EAAe,CACnBW,GAAO,EACP,MAGFC,UACOH,GAAU7C,GAAyB8C,GAAU9C,GAEtD,GAAI+C,EACF,MAGEC,EAAa,IACfA,EAAa,GAGfA,GAAc,EAShB,GANArB,EAAYqB,EAERrB,EAAY,IACdA,EAAY,GAGE,IAAZW,EAAe,CAMjB,IALAM,GAAQR,EACRM,GAAWN,EACXe,EAAaP,EAAO,EACpBM,EAAeR,EAAU,EAEpBnI,EAAI6H,EAAU,EAAG7H,GAAK,EAAGA,IAC5B8F,EAAM8C,EAAa5I,GAAK8F,EAAM6C,EAAe3I,GAG/C8F,EAAMuC,GAAQvB,EAAIsB,OACb,IAAgB,IAAZL,EACT,MAAM,IAAIW,MAIV,IAFAC,EAAeN,GAAQN,EAAU,GAE5B/H,EAAI,EAAGA,EAAI+H,EAAS/H,IACvB8F,EAAM6C,EAAe3I,GAAK8G,EAAI9G,QAzIlC,CAME,IALAqI,GAAQR,EACRM,GAAWN,EACXe,EAAaP,EAAO,EACpBM,EAAeR,EAAU,EAEpBnI,EAAI6H,EAAU,EAAG7H,GAAK,EAAGA,IAC5B8F,EAAM8C,EAAa5I,GAAK8F,EAAM6C,EAAe3I,GAG/C8F,EAAMuC,GAAQvB,EAAIsB,QAjBlB,IAFAO,EAAeN,GAAQN,EAAU,GAE5B/H,EAAI,EAAGA,EAAI+H,EAAS/H,IACvB8F,EAAM6C,EAAe3I,GAAK8G,EAAI9G,GA3OpCkH,EAAW,GACXC,EAAY,GA8XZpV,KAAK0V,UAAYA,EACjB1V,KAAK4V,eAAiBA,EACtB5V,KAAKuV,QAAUA,EAGjB,SAAS1K,EAAKkJ,EAAOG,EAASF,EAAIC,GAC3BD,IACHA,EAAK,GAGFC,IACHA,EAAKF,EAAM9I,QAGb,IAAI6L,EAAY7C,EAAKD,EAErB,KAAI8C,EAAY,GAAhB,CAIA,IAAI1B,EAAY,EAEhB,GAAI0B,EAAYrD,EAGd,OAFA2B,EAAYtB,EAAiBC,EAAOC,EAAIC,EAAIC,QAC5CI,EAAoBP,EAAOC,EAAIC,EAAID,EAAKoB,EAAWlB,GAIrD,IAAI6C,EAAK,IAAI7B,EAAQnB,EAAOG,GACxB8C,EAASrD,EAAamD,GAE1B,EAAG,CAGD,GAFA1B,EAAYtB,EAAiBC,EAAOC,EAAIC,EAAIC,GAExCkB,EAAY4B,EAAQ,CACtB,IAAIC,EAAQH,EAERG,EAAQD,IACVC,EAAQD,GAGV1C,EAAoBP,EAAOC,EAAIA,EAAKiD,EAAOjD,EAAKoB,EAAWlB,GAC3DkB,EAAY6B,EAGdF,EAAGxB,QAAQvB,EAAIoB,GACf2B,EAAGrB,YACHoB,GAAa1B,EACbpB,GAAMoB,QACe,IAAd0B,GAETC,EAAGnB,kBAGLlT,EAAOC,QAAUkI,G,uBCzpBjB,IAAIqM,EAAc,EAAQ,QAEtBC,EAAU,KAEd,SAASC,EAAcC,EAAGC,GACxB,OAAOzL,KAAKC,IAAIuL,EAAIC,GAAKH,EAG3B,SAASjJ,EAAQqJ,EAAQ9R,EAAGC,GAC1B,IAAI8R,EAAI,EACJC,EAAIF,EAAO,GAEf,IAAKE,EACH,OAAO,EAGT,IAAK,IAAIxJ,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAQgD,IAAK,CACtC,IAAIrC,EAAK2L,EAAOtJ,GAChBuJ,GAAKN,EAAYO,EAAE,GAAIA,EAAE,GAAI7L,EAAG,GAAIA,EAAG,GAAInG,EAAGC,GAC9C+R,EAAI7L,EAIN,IAAI8L,EAAKH,EAAO,GAMhB,OAJKH,EAAcK,EAAE,GAAIC,EAAG,KAAQN,EAAcK,EAAE,GAAIC,EAAG,MACzDF,GAAKN,EAAYO,EAAE,GAAIA,EAAE,GAAIC,EAAG,GAAIA,EAAG,GAAIjS,EAAGC,IAGnC,IAAN8R,EAGT7U,EAAQuL,QAAUA,G,uBChClB,IAAIyJ,EAAO,EAAQ,QAEfC,EAAQ,EAAQ,QAEhB1Y,EAAQ,EAAQ,QAEhB2Y,EAAc3Y,EAAM2Y,YAKpBC,EAAaC,MAAMjK,UAAUxG,MAEjC,SAAS0Q,EAAc5F,EAAQrK,GAC7B,OAAOqK,EAAOrK,GAGhB,SAASkQ,EAAc7F,EAAQrK,EAAK4F,GAClCyE,EAAOrK,GAAO4F,EAUhB,SAASuK,EAAkBR,EAAI/L,EAAIxB,GACjC,OAAQwB,EAAK+L,GAAMvN,EAAUuN,EAU/B,SAASS,EAAkBT,EAAI/L,EAAIxB,GACjC,OAAOA,EAAU,GAAMwB,EAAK+L,EAW9B,SAASU,EAAiBV,EAAI/L,EAAIxB,EAAS+E,EAAKmJ,GAC9C,IAAIC,EAAMZ,EAAGzM,OAEb,GAAe,IAAXoN,EACF,IAAK,IAAIpK,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBiB,EAAIjB,GAAKiK,EAAkBR,EAAGzJ,GAAItC,EAAGsC,GAAI9D,OAG3C,KAAIoO,EAAOD,GAAOZ,EAAG,GAAGzM,OAExB,IAASgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvB,IAAK,IAAIuK,EAAI,EAAGA,EAAID,EAAMC,IACxBtJ,EAAIjB,GAAGuK,GAAKN,EAAkBR,EAAGzJ,GAAGuK,GAAI7M,EAAGsC,GAAGuK,GAAIrO,IAQ1D,SAASsO,EAAQC,EAAMC,EAAMN,GAC3B,IAAIO,EAAUF,EAAKzN,OACf4N,EAAUF,EAAK1N,OAEnB,GAAI2N,IAAYC,EAAS,CAEvB,IAAIC,EAAmBF,EAAUC,EAEjC,GAAIC,EAEFJ,EAAKzN,OAAS4N,OAGd,IAAK,IAAI5K,EAAI2K,EAAS3K,EAAI4K,EAAS5K,IACjCyK,EAAK7X,KAAgB,IAAXwX,EAAeM,EAAK1K,GAAK6J,EAAWhL,KAAK6L,EAAK1K,KAM9D,IAAIsK,EAAOG,EAAK,IAAMA,EAAK,GAAGzN,OAE9B,IAASgD,EAAI,EAAGA,EAAIyK,EAAKzN,OAAQgD,IAC/B,GAAe,IAAXoK,EACEU,MAAML,EAAKzK,MACbyK,EAAKzK,GAAK0K,EAAK1K,SAGjB,IAAK,IAAIuK,EAAI,EAAGA,EAAID,EAAMC,IACpBO,MAAML,EAAKzK,GAAGuK,MAChBE,EAAKzK,GAAGuK,GAAKG,EAAK1K,GAAGuK,IAc/B,SAASQ,EAAYN,EAAMC,EAAMN,GAC/B,GAAIK,IAASC,EACX,OAAO,EAGT,IAAIL,EAAMI,EAAKzN,OAEf,GAAIqN,IAAQK,EAAK1N,OACf,OAAO,EAGT,GAAe,IAAXoN,GACF,IAAK,IAAIpK,EAAI,EAAGA,EAAIqK,EAAKrK,IACvB,GAAIyK,EAAKzK,KAAO0K,EAAK1K,GACnB,OAAO,MAIX,KAAIsK,EAAOG,EAAK,GAAGzN,OAEnB,IAASgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvB,IAAK,IAAIuK,EAAI,EAAGA,EAAID,EAAMC,IACxB,GAAIE,EAAKzK,GAAGuK,KAAOG,EAAK1K,GAAGuK,GACzB,OAAO,EAMf,OAAO,EAgBT,SAASS,EAA2BvB,EAAI/L,EAAIC,EAAIsN,EAAI7E,EAAG8E,EAAIC,EAAIlK,EAAKmJ,GAClE,IAAIC,EAAMZ,EAAGzM,OAEb,GAAe,IAAXoN,EACF,IAAK,IAAIpK,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBiB,EAAIjB,GAAKoL,EAAsB3B,EAAGzJ,GAAItC,EAAGsC,GAAIrC,EAAGqC,GAAIiL,EAAGjL,GAAIoG,EAAG8E,EAAIC,OAGpE,KAAIb,EAAOb,EAAG,GAAGzM,OAEjB,IAASgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvB,IAAK,IAAIuK,EAAI,EAAGA,EAAID,EAAMC,IACxBtJ,EAAIjB,GAAGuK,GAAKa,EAAsB3B,EAAGzJ,GAAGuK,GAAI7M,EAAGsC,GAAGuK,GAAI5M,EAAGqC,GAAGuK,GAAIU,EAAGjL,GAAGuK,GAAInE,EAAG8E,EAAIC,IAkBzF,SAASC,EAAsB3B,EAAI/L,EAAIC,EAAIsN,EAAI7E,EAAG8E,EAAIC,GACpD,IAAIE,EAAiB,IAAX1N,EAAK8L,GACX6B,EAAiB,IAAXL,EAAKvN,GACf,OAAQ,GAAKA,EAAKC,GAAM0N,EAAKC,GAAMH,IAAO,GAAKzN,EAAKC,GAAM,EAAI0N,EAAKC,GAAMJ,EAAKG,EAAKjF,EAAI1I,EAGzF,SAAS6N,EAAW7L,GAClB,GAAIkK,EAAYlK,GAAQ,CACtB,IAAI2K,EAAM3K,EAAM1C,OAEhB,GAAI4M,EAAYlK,EAAM,IAAK,CAGzB,IAFA,IAAI8L,EAAM,GAEDxL,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBwL,EAAI5Y,KAAKiX,EAAWhL,KAAKa,EAAMM,KAGjC,OAAOwL,EAGT,OAAO3B,EAAWhL,KAAKa,GAGzB,OAAOA,EAGT,SAAS+L,EAAYC,GAInB,OAHAA,EAAK,GAAK9N,KAAK+N,MAAMD,EAAK,IAC1BA,EAAK,GAAK9N,KAAK+N,MAAMD,EAAK,IAC1BA,EAAK,GAAK9N,KAAK+N,MAAMD,EAAK,IACnB,QAAUA,EAAKE,KAAK,KAAO,IAGpC,SAASC,EAAYC,GACnB,IAAIC,EAAYD,EAAUA,EAAU9O,OAAS,GAAG0C,MAChD,OAAOkK,EAAYmC,GAAaA,EAAU,IAAM,EAAI,EAGtD,SAASC,EAAgBC,EAAUC,EAAQC,EAAcL,EAAWM,EAAUC,GAC5E,IAAIC,EAASL,EAASM,QAClBC,EAASP,EAASQ,QAClBC,EAAuB,WAAXR,EACZS,EAAWb,EAAU9O,OAEzB,GAAK2P,EAAL,CAKA,IAMIC,EANAC,EAAWf,EAAU,GAAGpM,MACxBoN,EAAelD,EAAYiD,GAC3BE,GAAe,EACfC,GAAgB,EAEhB5C,EAAS0C,EAAejB,EAAYC,GAAa,EAGrDA,EAAUlP,MAAK,SAAUwM,EAAGC,GAC1B,OAAOD,EAAE6D,KAAO5D,EAAE4D,QAEpBL,EAAed,EAAUa,EAAW,GAAGM,KAQvC,IANA,IAAIC,EAAa,GAEbC,EAAW,GACXC,EAAYtB,EAAU,GAAGpM,MACzB2N,GAAkB,EAEbrN,EAAI,EAAGA,EAAI2M,EAAU3M,IAAK,CACjCkN,EAAWta,KAAKkZ,EAAU9L,GAAGiN,KAAOL,GAEpC,IAAIlN,EAAQoM,EAAU9L,GAAGN,MAQzB,GANMoN,GAAgB/B,EAAYrL,EAAO0N,EAAWhD,KAAY0C,GAAgBpN,IAAU0N,IACxFC,GAAkB,GAGpBD,EAAY1N,EAES,kBAAVA,EAAoB,CAC7B,IAAI4N,EAAa3D,EAAM4D,MAAM7N,GAEzB4N,GACF5N,EAAQ4N,EACRP,GAAe,GAEfC,GAAgB,EAIpBG,EAASva,KAAK8M,GAGhB,GAAK2M,IAAgBgB,EAArB,CAIA,IAAItB,EAAYoB,EAASR,EAAW,GAEpC,IAAS3M,EAAI,EAAGA,EAAI2M,EAAW,EAAG3M,IAC5B8M,EACFtC,EAAQ2C,EAASnN,GAAI+L,EAAW3B,IAE5BU,MAAMqC,EAASnN,KAAQ8K,MAAMiB,IAAeiB,GAAkBD,IAChEI,EAASnN,GAAK+L,GAKpBe,GAAgBtC,EAAQ8B,EAAOL,EAASuB,QAASpB,GAAWL,EAAW3B,GAGvE,IAEI9D,EACAiD,EACAE,EACA/L,EACAC,EACAsN,EAPAwC,EAAY,EACZC,EAAmB,EAQvB,GAAIX,EACF,IAAIrB,EAAO,CAAC,EAAG,EAAG,EAAG,GAGvB,IAAIiC,EAAU,SAAUxJ,EAAQjI,GAI9B,IAAI0R,EAEJ,GAAI1R,EAAU,EACZ0R,EAAQ,OACH,GAAI1R,EAAUwR,EAAkB,CAKrC,IAFApH,EAAQ1I,KAAK6E,IAAIgL,EAAY,EAAGd,EAAW,GAEtCiB,EAAQtH,EAAOsH,GAAS,EAAGA,IAC9B,GAAIV,EAAWU,IAAU1R,EACvB,MAKJ0R,EAAQhQ,KAAK6E,IAAImL,EAAOjB,EAAW,OAC9B,CACL,IAAKiB,EAAQH,EAAWG,EAAQjB,EAAUiB,IACxC,GAAIV,EAAWU,GAAS1R,EACtB,MAIJ0R,EAAQhQ,KAAK6E,IAAImL,EAAQ,EAAGjB,EAAW,GAGzCc,EAAYG,EACZF,EAAmBxR,EACnB,IAAI2R,EAAQX,EAAWU,EAAQ,GAAKV,EAAWU,GAE/C,GAAc,IAAVC,EAMJ,GAHEtE,GAAKrN,EAAUgR,EAAWU,IAAUC,EAGlCnB,EAMF,GALAhP,EAAKyP,EAASS,GACdnE,EAAK0D,EAAmB,IAAVS,EAAcA,EAAQA,EAAQ,GAC5CjQ,EAAKwP,EAASS,EAAQjB,EAAW,EAAIA,EAAW,EAAIiB,EAAQ,GAC5D3C,EAAKkC,EAASS,EAAQjB,EAAW,EAAIA,EAAW,EAAIiB,EAAQ,GAExDd,EACF9B,EAA2BvB,EAAI/L,EAAIC,EAAIsN,EAAI1B,EAAGA,EAAIA,EAAGA,EAAIA,EAAIA,EAAG+C,EAAOnI,EAAQiI,GAAWhC,OACrF,CAGL,GAAI2C,EACFrN,EAAQsL,EAA2BvB,EAAI/L,EAAIC,EAAIsN,EAAI1B,EAAGA,EAAIA,EAAGA,EAAIA,EAAIA,EAAGmC,EAAM,GAC9EhM,EAAQ+L,EAAYC,OACf,IAAIsB,EAET,OAAO9C,EAAkBxM,EAAIC,EAAI4L,GAEjC7J,EAAQ0L,EAAsB3B,EAAI/L,EAAIC,EAAIsN,EAAI1B,EAAGA,EAAIA,EAAGA,EAAIA,EAAIA,GAGlEiD,EAAOrI,EAAQiI,EAAU1M,QAG3B,GAAIoN,EACF3C,EAAiBgD,EAASS,GAAQT,EAASS,EAAQ,GAAIrE,EAAG+C,EAAOnI,EAAQiI,GAAWhC,OAC/E,CACL,IAAI1K,EAEJ,GAAIqN,EACF5C,EAAiBgD,EAASS,GAAQT,EAASS,EAAQ,GAAIrE,EAAGmC,EAAM,GAChEhM,EAAQ+L,EAAYC,OACf,IAAIsB,EAET,OAAO9C,EAAkBiD,EAASS,GAAQT,EAASS,EAAQ,GAAIrE,GAE/D7J,EAAQuK,EAAkBkD,EAASS,GAAQT,EAASS,EAAQ,GAAIrE,GAGlEiD,EAAOrI,EAAQiI,EAAU1M,KAK3BoO,EAAO,IAAIpE,EAAK,CAClBvF,OAAQ8H,EAASuB,QACjBO,KAAMnB,EACNoB,KAAM/B,EAASgC,MACfC,MAAOjC,EAASkC,OAChBR,QAASA,EACTS,UAAWjC,IAOb,OAJID,GAAqB,WAAXA,IACZ4B,EAAK5B,OAASA,GAGT4B,IAYT,IAAIO,EAAW,SAAUlK,EAAQ6J,EAAM1B,EAAQE,GAC7Cza,KAAKuc,QAAU,GACfvc,KAAKyb,QAAUrJ,EACfpS,KAAKkc,MAAQD,IAAQ,EACrBjc,KAAKwa,QAAUD,GAAUvC,EACzBhY,KAAK0a,QAAUD,GAAUxC,EACzBjY,KAAKwc,WAAa,EAClBxc,KAAKoc,OAAS,EACdpc,KAAKyc,UAAY,GACjBzc,KAAK0c,aAAe,GACpB1c,KAAK2c,UAAY,IAGnBL,EAASxO,UAAY,CAOnB8O,KAAM,SAAU1B,EAEd2B,GACA,IAAIC,EAAS9c,KAAKuc,QAElB,IAAK,IAAIlC,KAAYwC,EACnB,GAAKA,EAAME,eAAe1C,GAA1B,CAIA,IAAKyC,EAAOzC,GAAW,CACrByC,EAAOzC,GAAY,GAEnB,IAAI1M,EAAQ3N,KAAKwa,QAAQxa,KAAKyb,QAASpB,GAEvC,GAAa,MAAT1M,EAEF,SAOW,IAATuN,GACF4B,EAAOzC,GAAUxZ,KAAK,CACpBqa,KAAM,EACNvN,MAAO6L,EAAW7L,KAKxBmP,EAAOzC,GAAUxZ,KAAK,CACpBqa,KAAMA,EACNvN,MAAOkP,EAAMxC,KAIjB,OAAOra,MAQTgd,OAAQ,SAAUC,GAGhB,OAFAjd,KAAK0c,aAAa7b,KAAKoc,GAEhBjd,MAETkd,MAAO,WACL,IAAK,IAAIjP,EAAI,EAAGA,EAAIjO,KAAK2c,UAAU1R,OAAQgD,IACzCjO,KAAK2c,UAAU1O,GAAGiP,QAGpBld,KAAKmd,SAAU,GAEjBC,OAAQ,WACN,IAAK,IAAInP,EAAI,EAAGA,EAAIjO,KAAK2c,UAAU1R,OAAQgD,IACzCjO,KAAK2c,UAAU1O,GAAGmP,SAGpBpd,KAAKmd,SAAU,GAEjBE,SAAU,WACR,QAASrd,KAAKmd,SAEhBG,cAAe,WAEbtd,KAAKuc,QAAU,GAEfvc,KAAK2c,UAAU1R,OAAS,EAIxB,IAHA,IAAIsS,EAAWvd,KAAKyc,UAChBnE,EAAMiF,EAAStS,OAEVgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBsP,EAAStP,GAAGnB,KAAK9M,OAWrBuU,MAAO,SAAU4F,EAAQG,GACvB,IAWIkD,EAXAC,EAAOzd,KACP0d,EAAY,EAEZtD,EAAe,WACjBsD,IAEKA,GACHD,EAAKH,iBAMT,IAAK,IAAIjD,KAAYra,KAAKuc,QACxB,GAAKvc,KAAKuc,QAAQQ,eAAe1C,GAAjC,CAIA,IAAI0B,EAAO9B,EAAgBja,KAAMma,EAAQC,EAAcpa,KAAKuc,QAAQlC,GAAWA,EAAUC,GAErFyB,IACF/b,KAAK2c,UAAU9b,KAAKkb,GAEpB2B,IAEI1d,KAAK2d,WACP3d,KAAK2d,UAAUC,QAAQ7B,GAGzByB,EAAWzB,GAKf,GAAIyB,EAAU,CACZ,IAAIK,EAAaL,EAAS5B,QAE1B4B,EAAS5B,QAAU,SAAUxJ,EAAQjI,GACnC0T,EAAWzL,EAAQjI,GAEnB,IAAK,IAAI8D,EAAI,EAAGA,EAAIwP,EAAKf,aAAazR,OAAQgD,IAC5CwP,EAAKf,aAAazO,GAAGmE,EAAQjI,IAYnC,OAJKuT,GACH1d,KAAKsd,gBAGAtd,MAOT8d,KAAM,SAAUC,GAId,IAHA,IAAIC,EAAWhe,KAAK2c,UAChBgB,EAAY3d,KAAK2d,UAEZ1P,EAAI,EAAGA,EAAI+P,EAAS/S,OAAQgD,IAAK,CACxC,IAAI8N,EAAOiC,EAAS/P,GAEhB8P,GAEFhC,EAAKH,QAAQ5b,KAAKyb,QAAS,GAG7BkC,GAAaA,EAAUM,WAAWlC,GAGpCiC,EAAS/S,OAAS,GAQpBkR,MAAO,SAAUjB,GAEf,OADAlb,KAAKoc,OAASlB,EACPlb,MAQTke,KAAM,SAAUC,GAKd,OAJIA,GACFne,KAAKyc,UAAU5b,KAAKsd,GAGfne,MAMToe,SAAU,WACR,OAAOpe,KAAK2c,YAGhB,IAAIpd,EAAW+c,EACf5Z,EAAOC,QAAUpD,G,uBC/mBjB,IAAIqD,EAAS,EAAQ,QAEjByb,EAAQ,EAAQ,QAEhBC,EAAW,EAAQ,QAEnBC,EAAO,EAAQ,QAEfC,EAAmB,EAAQ,QAgC3BC,EAAW,SAAU9R,EAAM+R,GAI7B1e,KAAK2M,KAAOA,GAAQ,GAQpB3M,KAAK2e,MAAQ,EAOb3e,KAAKkM,OAAS,EAMdlM,KAAK4e,WAAa,KAYlB5e,KAAKY,WAAa,EAMlBZ,KAAK6e,SAAW,GAMhB7e,KAAK8e,aAAe,GAMpB9e,KAAK0e,SAAWA,GAiQlB,SAASK,EAAKC,EAAWC,GAKvBjf,KAAKkf,KAMLlf,KAAKO,KAOLP,KAAKmf,OAAS,GAOdnf,KAAKgf,UAAYA,EAOjBhf,KAAKof,YAAcxc,EAAOqE,IAAIgY,GAAgB,IAAI,SAAUI,GAC1D,OAAO,IAAIhB,EAAMgB,EAAaL,EAAWA,EAAUlf,YA6IvD,SAASwf,EAASC,EAAOC,GACvB,IAAIX,EAAWW,EAAKX,SAEhBU,EAAMX,aAAeY,IAIzBX,EAAShe,KAAK0e,GACdA,EAAMX,WAAaY,GApbrBf,EAAS3Q,UAAY,CACnBC,YAAa0Q,EAMbgB,UAAW,WACT,OAAOzf,KAAKY,UAAY,GAqB1B8e,SAAU,SAAUC,EAASxB,EAAIyB,GACR,oBAAZD,IACTC,EAAUzB,EACVA,EAAKwB,EACLA,EAAU,MAGZA,EAAUA,GAAW,GAEjB/c,EAAOid,SAASF,KAClBA,EAAU,CACRG,MAAOH,IAIX,IAEII,EAFAD,EAAQH,EAAQG,OAAS,WACzBjB,EAAW7e,KAAK2f,EAAQK,MAAQ,YAE1B,aAAVF,IAAyBC,EAAmB5B,EAAGrR,KAAK8S,EAAS5f,OAE7D,IAAK,IAAIiO,EAAI,GAAI8R,GAAoB9R,EAAI4Q,EAAS5T,OAAQgD,IACxD4Q,EAAS5Q,GAAGyR,SAASC,EAASxB,EAAIyB,GAG1B,cAAVE,GAAyB3B,EAAGrR,KAAK8S,EAAS5f,OAQ5CigB,qBAAsB,SAAUtB,GAC9B,IAAIzS,EAAS,EACblM,KAAK2e,MAAQA,EAEb,IAAK,IAAI1Q,EAAI,EAAGA,EAAIjO,KAAK6e,SAAS5T,OAAQgD,IAAK,CAC7C,IAAIsR,EAAQvf,KAAK6e,SAAS5Q,GAC1BsR,EAAMU,qBAAqBtB,EAAQ,GAE/BY,EAAMrT,OAASA,IACjBA,EAASqT,EAAMrT,QAInBlM,KAAKkM,OAASA,EAAS,GAOzBgU,YAAa,SAAU/X,GACrB,GAAInI,KAAKmgB,UAAYhY,EACnB,OAAOnI,KAGT,IAAK,IAAIiO,EAAI,EAAG4Q,EAAW7e,KAAK6e,SAAUvG,EAAMuG,EAAS5T,OAAQgD,EAAIqK,EAAKrK,IAAK,CAC7E,IAAImS,EAAMvB,EAAS5Q,GAAGiS,YAAY/X,GAElC,GAAIiY,EACF,OAAOA,IASbC,SAAU,SAAUb,GAClB,GAAIA,IAASxf,KACX,OAAO,EAGT,IAAK,IAAIiO,EAAI,EAAG4Q,EAAW7e,KAAK6e,SAAUvG,EAAMuG,EAAS5T,OAAQgD,EAAIqK,EAAKrK,IAAK,CAC7E,IAAImS,EAAMvB,EAAS5Q,GAAGoS,SAASb,GAE/B,GAAIY,EACF,OAAOA,IASbE,aAAc,SAAUC,GACtB,IAAIC,EAAY,GACZhB,EAAOe,EAAcvgB,KAAOA,KAAK4e,WAErC,MAAOY,EACLgB,EAAU3f,KAAK2e,GACfA,EAAOA,EAAKZ,WAId,OADA4B,EAAUnZ,UACHmZ,GAOTC,SAAU,SAAUC,GAClB,IAAIngB,EAAOP,KAAK0e,SAASne,KACzB,OAAOA,EAAK2B,IAAI3B,EAAKogB,aAAaD,GAAa,SAAU1gB,KAAKY,YAOhEggB,UAAW,SAAU3d,EAAQ4d,GAC3B7gB,KAAKY,WAAa,GAAKZ,KAAK0e,SAASne,KAAKugB,cAAc9gB,KAAKY,UAAWqC,EAAQ4d,IAMlFE,UAAW,WACT,OAAO/gB,KAAK0e,SAASne,KAAKygB,cAAchhB,KAAKY,YAO/CqgB,SAAU,SAAUC,GAClB,KAAIlhB,KAAKY,UAAY,GAArB,CAIA,IAAI8d,EAAW1e,KAAK0e,SAChByC,EAAYzC,EAASne,KAAK6gB,aAAaphB,KAAKY,WAC5CygB,EAAarhB,KAAKshB,gBAEtB,OAAID,EACKF,EAAUF,SAASC,EAAMG,EAAWJ,SAASC,IAE7CC,EAAUF,SAASC,KAO9BI,cAAe,WACb,OAAQthB,KAAK0e,SAASU,aAAe,IAAIpf,KAAK2e,QAUhD4C,UAAW,SAAUxZ,EAAK4F,GACxB3N,KAAKY,WAAa,GAAKZ,KAAK0e,SAASne,KAAKihB,cAAcxhB,KAAKY,UAAWmH,EAAK4F,IAM/E8T,UAAW,SAAU1Z,EAAK2Z,GACxB,OAAO1hB,KAAK0e,SAASne,KAAKohB,cAAc3hB,KAAKY,UAAWmH,EAAK2Z,IAO/D5gB,YAAa,WACX,OAAOd,KAAK0e,SAASne,KAAKO,YAAYd,KAAKY,YAO7Cuf,MAAO,WACL,OAAOngB,KAAK0e,SAASne,KAAK4f,MAAMngB,KAAKY,YAUvCghB,aAAc,SAAUpC,GACtB,IAAIqC,EAASrC,EAAKZ,WAElB,MAAOiD,EAAQ,CACb,GAAIA,IAAW7hB,KACb,OAAO,EAGT6hB,EAASA,EAAOjD,WAGlB,OAAO,GAUTkD,eAAgB,SAAUtC,GACxB,OAAOA,IAASxf,MAAQwf,EAAKoC,aAAa5hB,QA+C9C+e,EAAKjR,UAAY,CACfC,YAAagR,EACbtf,KAAM,OAmBNigB,SAAU,SAAUC,EAASxB,EAAIyB,GAC/B5f,KAAKkf,KAAKQ,SAASC,EAASxB,EAAIyB,IAOlCmC,mBAAoB,SAAUnhB,GAC5B,IAAIohB,EAAWhiB,KAAKO,KAAKO,YAAYF,GACrC,OAAOZ,KAAKmf,OAAO6C,IAOrBC,cAAe,SAAUtV,GACvB,OAAO3M,KAAKkf,KAAK+C,cAActV,IAOjCpE,OAAQ,WAIN,IAHA,IAAIhI,EAAOP,KAAKO,KACZ2hB,EAAQliB,KAAKmf,OAERlR,EAAI,EAAGqK,EAAM4J,EAAMjX,OAAQgD,EAAIqK,EAAKrK,IAC3CiU,EAAMjU,GAAGrN,WAAa,EAGxB,IAASqN,EAAI,EAAGqK,EAAM/X,EAAK4hB,QAASlU,EAAIqK,EAAKrK,IAC3CiU,EAAM3hB,EAAKO,YAAYmN,IAAIrN,UAAYqN,GAO3CmU,aAAc,WACZpiB,KAAKO,KAAK8hB,qBA0BdtD,EAAKuD,WAAa,SAAUC,EAAUvD,EAAWwD,EAAaC,GAC5D,IAAIC,EAAO,IAAI3D,EAAKC,EAAWwD,GAAeA,EAAYG,QACtDC,EAAW,GACXC,EAAS,EAGb,SAASC,EAAeC,EAAUnE,GAChC,IAAIjR,EAAQoV,EAASpV,MACrBkV,EAAShX,KAAK4E,IAAIoS,EAAQjgB,EAAOogB,QAAQrV,GAASA,EAAM1C,OAAS,GACjE2X,EAAS/hB,KAAKkiB,GACd,IAAIvD,EAAO,IAAIf,EAASsE,EAASpW,KAAM+V,GACvC9D,EAAaU,EAASE,EAAMZ,GAAc8D,EAAKxD,KAAOM,EAEtDkD,EAAKvD,OAAOte,KAAK2e,GAEjB,IAAIX,EAAWkE,EAASlE,SAExB,GAAIA,EACF,IAAK,IAAI5Q,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IACnC6U,EAAejE,EAAS5Q,GAAIuR,GAflCsD,EAAeP,GAoBfG,EAAKxD,KAAKe,qBAAqB,GAC/B,IAAIgD,EAAiBzE,EAAiBoE,EAAU,CAC9CtZ,gBAAiB,CAAC,SAClB4Z,gBAAiBL,IAEfM,EAAO,IAAI5E,EAAK0E,EAAgBjE,GASpC,OARAmE,EAAKC,SAASR,GACdH,GAAcA,EAAWU,GACzB7E,EAAS,CACP+E,SAAUF,EACVG,OAAQZ,EACRa,WAAY,SAEdb,EAAKna,SACEma,GAqBT,IAAInjB,EAAWwf,EACfrc,EAAOC,QAAUpD,G,uBC1hBjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBC,EAAiB,EAAQ,QAEzBC,EAAgB,EAAQ,QAExBC,EAAgB,EAAQ,QAExBC,EAAU,EAAQ,QAElBC,EAAkBD,EAAQC,gBAoB1BC,EAAiBL,EAAelkB,OAAO,CACzCC,KAAM,sBAyBNsB,cAAe,CACb0G,SAAU,KAKVuc,SAAS,EAETC,SAAS,EAETjd,MAAO,OAEPkd,UAAW,GAGXC,WAAY,GAGZC,WAAY,YACZC,UAAW,KAMXC,WAAY,KAGZC,YAAa,EAKb1c,aAAc,WAEd2c,QAAS,GAETle,WAAW,EAEXjC,UAAW,MAQbmP,cAAe,SAAUiR,EAAWC,GAClCX,EAAe9a,WAAWjJ,KAAM,gBAAiBkJ,WAQjDlJ,KAAK2kB,WAAa,GAClB3kB,KAAK4kB,cAML,IAAIC,EAAO7kB,KAAK8kB,MAAQ9kB,KAAK+kB,iBAE7BC,EAAahlB,KAAK8kB,OAAOhY,KAAK9M,MAE9BA,KAAKilB,eAAeR,EAAWC,GAE/B,IAAIJ,EAAatkB,KAAKH,OAAOykB,WAC7BtkB,KAAKklB,aAAY,SAAUC,EAAeC,GAC3B,eAATP,GACFM,EAAcE,cAAgB,WAC9BF,EAAcb,WAAa1hB,EAAO8E,MAAM4c,KAExCa,EAAcG,WAAatlB,KAAKulB,YAChCJ,EAAcE,cAAgB,YAC9BF,EAAcd,UAAYzhB,EAAOqE,IAAIjH,KAAK2kB,YAAY,SAAUlgB,GAC1DA,EAAQ7B,EAAO8E,MAAMjD,GAQzB,MANc,YAAV2gB,IAGF3gB,EAAM+gB,OAAS,MAGV/gB,UAUfghB,qBAAsB,WAQpB,IAAI5lB,EAASG,KAAKH,OACd6lB,EAAsB,GACtBC,EAAchC,EAAciC,kBAC5BC,EAAa7lB,KAAK6lB,aAkBtB,SAASC,EAAIC,EAAKX,EAAOY,GACvB,OAAOD,GAAOA,EAAIX,KAAWxiB,EAAOqjB,SAASF,EAAIX,IAAUW,EAAIX,GAAOrI,eAAeiJ,GAAcD,EAAIX,KAAWY,GAlBpHpjB,EAAOzD,KAAKU,EAAOqmB,QAAQ,SAAUzhB,GACnC7B,EAAOzD,KAAKwmB,GAAa,SAAUK,GAC7BvhB,EAAMsY,eAAeiJ,KACvBN,EAAoBM,GAAc,SAIxCpjB,EAAOzD,KAAKumB,GAAqB,SAAUS,EAAGH,GAC5C,IAAII,EAAS,EACbxjB,EAAOzD,KAAKa,KAAKqmB,WAAW,SAAUjB,GACpCgB,GAAUN,EAAIjmB,EAAQulB,EAAOY,IAAeF,EAAIjmB,EAAOuS,OAAQgT,EAAOY,KACrEhmB,OACFomB,GAAUxjB,EAAOzD,KAAKa,KAAKqmB,WAAW,SAAUjB,IAC9CvlB,EAAOulB,KAAWvlB,EAAOulB,GAAS,KAAKY,GAAcpC,EAAc1hB,IAAI8jB,EAAsB,YAAVZ,EAAsB,SAAW,WAAYS,QAElI7lB,MAOH0jB,EAAe5V,UAAU2X,qBAAqBa,MAAMtmB,KAAMkJ,YAE5D+b,eAAgB,SAAUR,EAAWC,GACnC,IAAI6B,EAAavmB,KAAKH,OAClBwkB,EAAYrkB,KAAK2kB,WAEjBld,GAAYid,EAAS6B,EAAa9B,GAAWhd,UAAY,GAW7D,GAVA8e,EAAW9e,SAAWA,EAEtB7E,EAAOzD,KAAKklB,GAAW,SAAU5f,EAAO0C,GACtC,IAAIY,EAAM/H,KAAK4H,kBAAkBnD,GAE5BgD,EAASsV,eAAehV,KAC3BN,EAASM,IAAO,KAEjB/H,MAE6B,WAA5BumB,EAAW1e,aAA2B,CAExC,IAAI2e,GAAS,EACb5jB,EAAOzD,KAAKklB,GAAW,SAAU5f,EAAO0C,GACtC,IAAIY,EAAM/H,KAAK4H,kBAAkBnD,GAE7BgD,EAASM,KACXye,EAAS/e,EAASM,IAAO,EAAQye,GAAS,KAE3CxmB,QAQP4H,kBAAmB,SAAUnD,GAC3B,MAAsB,eAAfzE,KAAK8kB,MAAyBrgB,EAAMkJ,MAAQ,GAAKlJ,EAAM0C,MAAQ,IAMxED,aAAc,WACZ,OAAOlH,KAAK2kB,YAOdI,eAAgB,WACd,IAAIllB,EAASG,KAAKH,OAClB,OAAOA,EAAOqmB,QAAUrmB,EAAOqmB,OAAOjb,OAAS,EAAI,SAAWjL,KAAKH,OAAOykB,WAAa,aAAe,eAOxGmC,YAAa,SAAUhf,GACrBzH,KAAKH,OAAO4H,SAAW7E,EAAO8E,MAAMD,IAOtCpC,cAAe,SAAUsI,GACvB,IAAIxG,EAAQwc,EAAc+C,eAAe/Y,EAAO3N,KAAK2kB,YACrD,OAAgB,MAATxd,GAAgBnH,KAAKH,OAAO4H,SAASzH,KAAK4H,kBAAkB5H,KAAK2kB,WAAWxd,KAAW,UAA2B,cAQ3HR,sBAAuB,SAAUR,GAC/B,IAAIwgB,EAAS,GAcb,OAbA3mB,KAAK4mB,kBAAiB,SAAU9kB,GAC9B,IAAI+kB,EAAc,GACdtmB,EAAOuB,EAAYtB,UACvBD,EAAKpB,KAAKa,KAAK8mB,iBAAiBvmB,IAAO,SAAUoN,EAAO/M,GAEtD,IAAImmB,EAAOpD,EAAc+C,eAAe/Y,EAAO3N,KAAK2kB,YACpDoC,IAAS5gB,GAAc0gB,EAAYhmB,KAAKD,KACvCZ,MACH2mB,EAAO9lB,KAAK,CACVmmB,SAAUllB,EAAYqG,GACtBvH,UAAWimB,MAEZ7mB,MACI2mB,GAQTzhB,kBAAmB,SAAUT,GAC3B,IAAIQ,EAEJ,GAAIjF,KAAK6lB,aACP5gB,EAAiBR,EAAMkJ,WAEvB,GAAmB,MAAflJ,EAAMkJ,MACR1I,EAAiBR,EAAMkJ,UAClB,CACL,IAAIsZ,EAAgBxiB,EAAMyiB,UAAY,GACtCjiB,EAAiBgiB,EAAc,MAAQlU,KAAYkU,EAAc,KAAOlU,IAAW,GAAKkU,EAAc,GAAKA,EAAc,IAAM,EAInI,OAAOhiB,GAETkiB,cAAe,SAAUC,GAEvB,IAAIpnB,KAAK6lB,aAAT,CAIA,IAAIwB,EAAQ,GACRC,EAAc,GACd9jB,EAAiBxD,KA6BjBqkB,EAAYrkB,KAAK2kB,WAAWrd,QAEhC,GAAK+c,EAAUpZ,OAIR,CACL,IAAIsc,EAAOlD,EAAU,GAAG6C,SAAS,GACjCK,KAAUxU,KAAYsR,EAAUmD,QAAQ,CACtCN,SAAU,EAAEnU,IAAUwU,KAExBA,EAAOlD,EAAUA,EAAUpZ,OAAS,GAAGic,SAAS,GAChDK,IAASxU,KAAYsR,EAAUxjB,KAAK,CAClCqmB,SAAU,CAACK,EAAMxU,YAVnBsR,EAAUxjB,KAAK,CACbqmB,SAAU,EAAEnU,IAAUA,OAa1B,IAAI0U,GAAQ1U,IAWZ,OAVAnQ,EAAOzD,KAAKklB,GAAW,SAAU5f,GAC/B,IAAIyiB,EAAWziB,EAAMyiB,SAEjBA,IAEFA,EAAS,GAAKO,GAAQC,EAAQ,CAACD,EAAMP,EAAS,IAAK,cACnDQ,EAAQR,EAAS5f,SACjBmgB,EAAOP,EAAS,MAEjBlnB,MACI,CACLqnB,MAAOA,EACPC,YAAaA,GAzDf,SAASI,EAAQR,EAAUS,GACzB,IAAI1iB,EAAiBzB,EAAe0B,kBAAkB,CACpDgiB,SAAUA,IAGPS,IACHA,EAAankB,EAAe6B,cAAcJ,IAG5C,IAAI2S,EAAQwP,EAAeniB,EAAgB0iB,GAEvCT,EAAS,MAAQnU,IACnBuU,EAAY,GAAK1P,EACRsP,EAAS,KAAOnU,IACzBuU,EAAY,GAAK1P,EAEjByP,EAAMxmB,KAAK,CACT8M,MAAOuZ,EAAS,GAChBtP,MAAOA,GACN,CACDjK,MAAOuZ,EAAS,GAChBtP,MAAOA,QA8CboN,EAAe,CACjBT,YAAa,WACX,IAAIgC,EAAavmB,KAAKH,OAClBwkB,EAAYrkB,KAAK2kB,WACjBiD,EAAY/b,KAAK6E,IAAI6V,EAAWqB,UAAW,IAC3CtC,EAAatlB,KAAKulB,YAClBhB,EAAcgC,EAAWhC,YAC7BA,EAAc1Y,KAAK4E,IAAIoX,SAAStD,EAAa,IAAK,GAClDgC,EAAWhC,YAAcA,EACzB,IAAIuD,GAAaxC,EAAW,GAAKA,EAAW,IAAMf,EAElD,OAAQuD,EAAU1d,QAAQwd,KAAeE,GAAaF,EAAY,EAChEA,IAGFrB,EAAWqB,UAAYA,EACvBE,GAAaA,EAAU1d,QAAQwd,GAE3BrB,EAAWvC,SACbK,EAAUxjB,KAAK,CACbqmB,SAAU,EAAEnU,IAAUuS,EAAW,IACjCyC,MAAO,CAAC,EAAG,KAIf,IAAK,IAAI5gB,EAAQ,EAAGsgB,EAAOnC,EAAW,GAAIne,EAAQod,EAAakD,GAAQK,EAAW3gB,IAAS,CACzF,IAAIsJ,EAAMtJ,IAAUod,EAAc,EAAIe,EAAW,GAAKmC,EAAOK,EAC7DzD,EAAUxjB,KAAK,CACbqmB,SAAU,CAACO,EAAMhX,GACjBsX,MAAO,CAAC,EAAG,KAIXxB,EAAWtC,SACbI,EAAUxjB,KAAK,CACbqmB,SAAU,CAAC5B,EAAW,GAAIvS,KAC1BgV,MAAO,CAAC,EAAG,KAIfjE,EAAgBO,GAChBzhB,EAAOzD,KAAKklB,GAAW,SAAU5f,EAAO0C,GACtC1C,EAAM0C,MAAQA,EACd1C,EAAMkB,KAAO3F,KAAKgoB,gBAAgBvjB,EAAMyiB,YACvClnB,OAELskB,WAAY,WACV,IAAIiC,EAAavmB,KAAKH,OACtB+C,EAAOzD,KAAKonB,EAAWjC,YAAY,SAAU2D,GAG3CjoB,KAAK2kB,WAAW9jB,KAAK,CACnB8E,KAAM3F,KAAKgoB,gBAAgBC,GAAM,GACjCta,MAAOsa,MAERjoB,MAEHkoB,EAAiB3B,EAAYvmB,KAAK2kB,aAEpCuB,OAAQ,WACN,IAAIK,EAAavmB,KAAKH,OAClBwkB,EAAYrkB,KAAK2kB,WACrB/hB,EAAOzD,KAAKonB,EAAWL,QAAQ,SAAUiC,EAAehhB,GACjDvE,EAAOqjB,SAASkC,KACnBA,EAAgB,CACdxa,MAAOwa,IAIX,IAAI3jB,EAAO,CACTmB,KAAM,GACNwB,MAAOA,GAOT,GAJ2B,MAAvBghB,EAAchnB,QAChBqD,EAAKmB,KAAOwiB,EAAchnB,OAGxBgnB,EAAcpL,eAAe,SAAU,CACzC,IAAIpP,EAAQnJ,EAAKmJ,MAAQwa,EAAcxa,MACvCnJ,EAAK0iB,SAAW,CAACvZ,EAAOA,GACxBnJ,EAAKujB,MAAQ,CAAC,EAAG,OACZ,CASL,IANA,IAAIb,EAAW1iB,EAAK0iB,SAAW,GAC3Ba,EAAQvjB,EAAKujB,MAAQ,CAAC,EAAG,GACzBK,EAAY,CAAC,EAAG,EAAG,GACnBC,EAAe,EAAEtV,IAAUA,KAC3BuV,EAAY,GAEPC,EAAK,EAAGA,EAAK,EAAGA,IAAM,CAG7B,IAFA,IAAIC,EAAQ,CAAC,CAAC,MAAO,KAAM,OAAQ,CAAC,MAAO,KAAM,QAAQD,GAEhDta,EAAI,EAAGA,EAAI,GAAqB,MAAhBiZ,EAASqB,GAAata,IAC7CiZ,EAASqB,GAAMJ,EAAcK,EAAMva,IACnC8Z,EAAMQ,GAAMH,EAAUna,GACtBqa,EAAUC,GAAY,IAANta,EAGF,MAAhBiZ,EAASqB,KAAgBrB,EAASqB,GAAMF,EAAaE,IAGvDD,EAAU,IAAMpB,EAAS,KAAOnU,MAAagV,EAAM,GAAK,GACxDO,EAAU,IAAMpB,EAAS,MAAQnU,MAAagV,EAAM,GAAK,GAErDb,EAAS,KAAOA,EAAS,IAAMa,EAAM,IAAMA,EAAM,KAGnDvjB,EAAKmJ,MAAQuZ,EAAS,IAI1B1iB,EAAKghB,OAAS7B,EAAc8E,gBAAgBN,GAC5C9D,EAAUxjB,KAAK2D,KACdxE,MAEHkoB,EAAiB3B,EAAYlC,GAE7BP,EAAgBO,GAChBzhB,EAAOzD,KAAKklB,GAAW,SAAU5f,GAC/B,IAAIsjB,EAAQtjB,EAAMsjB,MACdW,EAAc,CAAC,CAAC,IAAK,KAAKX,EAAM,IAAK,CAAC,IAAK,KAAKA,EAAM,KAC1DtjB,EAAMkB,KAAOlB,EAAMkB,MAAQ3F,KAAKgoB,gBAA+B,MAAfvjB,EAAMkJ,MAAgBlJ,EAAMkJ,MAAQlJ,EAAMyiB,UAAU,EAAOwB,KAC1G1oB,QAIP,SAASkoB,EAAiB3B,EAAYlC,GACpC,IAAIjd,EAAUmf,EAAWnf,SAEC,aAAtBmf,EAAWzf,QAAyBM,EAAUA,IAChDid,EAAUhd,UAId,IAAI9H,EAAWwkB,EACfrhB,EAAOC,QAAUpD,G,uBCvgBjB,IAAIqD,EAAS,EAAQ,QAEjB+lB,EAAU,EAAQ,QAElBC,EAAY,EAAQ,QAEpBC,EAAU,EAAQ,QAElBC,EAAM,EAAQ,QAEdC,EAAa,EAAQ,QAoBrB5pB,EAAOyD,EAAOzD,KACd6pB,EAAcD,EAAWC,YACzBC,EAAU,CAAC,GAAI,WAAY,QAAS,OACpCC,EAAW,yFAOf,SAASC,EAAmBC,GAC1B,IAAIC,EAAkB,iCAClBC,EAAiB,QAAUF,EAAW,KAAOC,EAAkB,QAAeD,EAAW,KAAOC,EACpG,OAAOzmB,EAAOqE,IAAIgiB,GAAS,SAAUM,GACnC,OAAOA,EAAe,cAAgBD,KACrCzP,KAAK,KASV,SAAS2P,EAAa9lB,GACpB,IAAI+lB,EAAU,GACVC,EAAWhmB,EAAexB,IAAI,YAC9B0V,EAAQlU,EAAeI,eAQ3B,OAPA8T,GAAS6R,EAAQ5oB,KAAK,SAAW+W,GACjC6R,EAAQ5oB,KAAK,QAAU6C,EAAeE,WACtC8lB,GAAYD,EAAQ5oB,KAAK,eAAiBgL,KAAK8d,MAAiB,EAAXD,EAAe,GAAK,MACzEvqB,EAAK,CAAC,aAAc,UAAU,SAAUwN,GACtC,IAAIlB,EAAM/H,EAAexB,IAAIyK,GAC7BlB,GAAOge,EAAQ5oB,KAAK,QAAU8L,EAAO,IAAMlB,MAEtCge,EAAQ5P,KAAK,KAStB,SAAS+P,EAAgBC,GACvB,IAAIJ,EAAU,GACVK,EAAqBD,EAAa3nB,IAAI,sBACtC6nB,EAAkBF,EAAa3nB,IAAI,mBACnCwB,EAAiBmmB,EAAa5I,SAAS,aACvC+I,EAAUH,EAAa3nB,IAAI,WA4B/B,OA1BA4nB,GAAsBL,EAAQ5oB,KAAKsoB,EAAmBW,IAElDC,IACEjB,EAAImB,gBACNR,EAAQ5oB,KAAK,oBAAsBkpB,IAGnCN,EAAQ5oB,KAAK,qBAAuB8nB,EAAQuB,MAAMH,IAClDN,EAAQ5oB,KAAK,8BAKjB1B,EAAK,CAAC,QAAS,QAAS,WAAW,SAAUwN,GAC3C,IAAIwd,EAAa,UAAYxd,EACzByd,EAAYpB,EAAYmB,GACxB1e,EAAMoe,EAAa3nB,IAAIkoB,GACpB,MAAP3e,GAAege,EAAQ5oB,KAAKspB,EAAa,IAAM1e,GAAgB,UAATkB,EAAmB,GAAK,UAGhF8c,EAAQ5oB,KAAK2oB,EAAa9lB,IAEX,MAAXsmB,GACFP,EAAQ5oB,KAAK,WAAakoB,EAAWsB,kBAAkBL,GAASnQ,KAAK,OAAS,MAGzE4P,EAAQ5P,KAAK,KAAO,IAI7B,SAASyQ,EAAepb,EAAKqb,EAAIC,EAAcC,EAAKC,GAClD,IAAIC,EAAYJ,GAAMA,EAAGK,QAEzB,GAAIJ,EAAc,CAChB,IAAIK,EAAiBF,GAAaA,EAAUG,kBAExCD,GAEFhC,EAAQkC,oBAAoB7b,EAAK2b,EAAgBG,SAASC,KAAMR,EAAKC,OAElE,CACLxb,EAAI,GAAKub,EACTvb,EAAI,GAAKwb,EAIT,IAAIQ,EAAqBP,GAAaA,EAAUQ,wBAE5CD,IACFhc,EAAI,IAAMgc,EAAmBE,WAC7Blc,EAAI,IAAMgc,EAAmBG,YAiBnC,SAASC,EAAeC,EAAWhlB,EAAKiJ,GACtC,GAAIsZ,EAAI0C,IACN,OAAO,KAGT,IAAIC,EAAKT,SAASU,cAAc,OAChCD,EAAGE,eAAgB,EACnB3rB,KAAKyrB,GAAKA,EACV,IAAIlB,EAAKvqB,KAAK4rB,IAAMrlB,EAAIslB,QACpBrB,EAAexqB,KAAK8rB,cAAgBtc,GAAOA,EAAIgb,aACnDxqB,KAAK+rB,YAAc,CAAC,EAAG,GACvBzB,EAAetqB,KAAK+rB,YAAaxB,EAAIC,EAAcjkB,EAAIylB,WAAa,EAAGzlB,EAAI0lB,YAAc,GAErFzB,EACFQ,SAASC,KAAKiB,YAAYT,GAE1BF,EAAUW,YAAYT,GAGxBzrB,KAAKmsB,WAAaZ,EAClBvrB,KAAKosB,OAAQ,EAKbpsB,KAAKqsB,aAIL,IAAI5O,EAAOzd,KAEXyrB,EAAGa,aAAe,WAEZ7O,EAAK8O,aACPC,aAAa/O,EAAK4O,cAClB5O,EAAK2O,OAAQ,GAGf3O,EAAKgP,YAAa,GAGpBhB,EAAGiB,YAAc,SAAUC,GAGzB,GAFAA,EAAIA,GAAKC,OAAOtkB,OAEXmV,EAAK8O,WAAY,CAOpB,IAAIM,EAAUtC,EAAGsC,QACbhC,EAAiBN,EAAGK,QAAQE,kBAChClC,EAAUkE,eAAejC,EAAgB8B,GAAG,GAC5CE,EAAQE,SAAS,YAAaJ,KAIlClB,EAAGuB,aAAe,WACZvP,EAAK8O,YACH9O,EAAK2O,OACP3O,EAAKwP,UAAUxP,EAAKyP,YAIxBzP,EAAKgP,YAAa,GAItBnB,EAAexd,UAAY,CACzBC,YAAaud,EAMbiB,YAAY,EAKZhkB,OAAQ,WAGN,IAAIgjB,EAAYvrB,KAAKmsB,WACjBgB,EAAM5B,EAAU6B,cAAgBpC,SAASqC,YAAYC,iBAAiB/B,GACtEgC,EAAWhC,EAAU/lB,MAEC,aAAtB+nB,EAASviB,UAA4C,aAAjBmiB,EAAIniB,WAC1CuiB,EAASviB,SAAW,aAMxB5J,KAAM,SAAUyoB,GACd2C,aAAaxsB,KAAKqsB,cAClB,IAAIZ,EAAKzrB,KAAKyrB,GACV+B,EAAaxtB,KAAK+rB,YACtBN,EAAGjmB,MAAMikB,QAAUP,EAAWU,EAAgBC,GAG5C,SAAW2D,EAAW,GAAK,UAAYA,EAAW,GAAK,OAAS3D,EAAa3nB,IAAI,iBAAmB,IACtGupB,EAAGjmB,MAAMioB,QAAUhC,EAAGiC,UAAY,QAAU,OAM5CjC,EAAGjmB,MAAMmoB,cAAgB3tB,KAAKusB,WAAa,OAAS,OACpDvsB,KAAKosB,OAAQ,GAEfwB,WAAY,SAAUC,GACpB7tB,KAAKyrB,GAAGiC,UAAuB,MAAXG,EAAkB,GAAKA,GAE7CC,aAAc,SAAUC,GACtB/tB,KAAKusB,WAAawB,GAEpBC,QAAS,WACP,IAAIvC,EAAKzrB,KAAKyrB,GACd,MAAO,CAACA,EAAGwC,YAAaxC,EAAGyC,eAE7BC,OAAQ,SAAU1D,EAAKC,GACrB,IAAI8C,EAAaxtB,KAAK+rB,YACtBzB,EAAekD,EAAYxtB,KAAK4rB,IAAK5rB,KAAK8rB,cAAerB,EAAKC,GAC9D,IAAIllB,EAAQxF,KAAKyrB,GAAGjmB,MACpBA,EAAM+E,KAAOijB,EAAW,GAAK,KAC7BhoB,EAAMgF,IAAMgjB,EAAW,GAAK,MAE9BY,KAAM,WACJpuB,KAAKyrB,GAAGjmB,MAAMioB,QAAU,OACxBztB,KAAKosB,OAAQ,GAEfa,UAAW,SAAU/R,IACflb,KAAKosB,OAAWpsB,KAAKysB,YAAczsB,KAAKusB,aACtCrR,GACFlb,KAAKktB,WAAahS,EAElBlb,KAAKosB,OAAQ,EACbpsB,KAAKqsB,aAAegC,WAAWzrB,EAAOiC,KAAK7E,KAAKouB,KAAMpuB,MAAOkb,IAE7Dlb,KAAKouB,SAIXE,OAAQ,WACN,OAAOtuB,KAAKosB,OAEdmC,QAAS,WACPvuB,KAAKyrB,GAAG7M,WAAW4P,YAAYxuB,KAAKyrB,KAEtCgD,aAAc,WACZ,IAAIjtB,EAAQxB,KAAKyrB,GAAGwC,YAChB/hB,EAASlM,KAAKyrB,GAAGyC,aAGrB,GAAIlD,SAASqC,aAAerC,SAASqC,YAAYC,iBAAkB,CACjE,IAAIH,EAAMnC,SAASqC,YAAYC,iBAAiBttB,KAAKyrB,IAEjD0B,IACF3rB,GAASqmB,SAASsF,EAAIuB,gBAAiB,IAAM7G,SAASsF,EAAIwB,iBAAkB,IAC5EziB,GAAU2b,SAASsF,EAAIyB,eAAgB,IAAM/G,SAASsF,EAAI0B,kBAAmB,KAIjF,MAAO,CACLrtB,MAAOA,EACP0K,OAAQA,KAId,IAAI3M,EAAW+rB,EACf5oB,EAAOC,QAAUpD,G,uBChUjB,EAAQ,QAER,EAAQ,S,uBCFR,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI0mB,EAAiB,EAAQ,QAoB7B1mB,EAAQ2mB,eAAeD,I,oCChDvB,IAAIxd,EAAS,WAAa,IAAI0d,EAAIhvB,KAASivB,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,SAAS,CAACG,WAAW,CAAC,CAAC3iB,KAAK,OAAO4iB,QAAQ,SAAS5hB,OAAQqhB,EAAIQ,gBAAiBC,WAAW,qBAAqBJ,YAAY,SAASK,MAAM,CAAC,QAAU,iBAAiB,CAACP,EAAG,UAAU,CAACE,YAAY,aAAaK,MAAM,CAAC,QAAS,GAAMC,SAAS,CAAC,OAAS,SAASC,GAAQA,EAAOC,mBAAoBC,MAAM,CAACniB,MAAOqhB,EAAa,UAAE/R,SAAS,SAAU8S,GAAMf,EAAIgB,UAAUD,GAAKN,WAAW,cAAc,CAACT,EAAIiB,GAAG,aAAad,EAAG,YAAY,CAACE,YAAY,mBAAmBK,MAAM,CAAC,KAAO,WAAW9oB,GAAG,CAAC,MAAQooB,EAAIkB,eAAe,CAACf,EAAG,IAAI,CAACE,YAAY,mBAAmBL,EAAImB,GAAG,SAAShB,EAAG,YAAY,CAACE,YAAY,mBAAmBK,MAAM,CAAC,KAAO,WAAW9oB,GAAG,CAAC,MAAQooB,EAAIoB,oBAAoB,CAACjB,EAAG,IAAI,CAACE,YAAY,oBAAoBL,EAAImB,GAAG,WAAWnB,EAAIiB,GAAG,kBAAkB,IAAI,GAAGjB,EAAIiB,GAAG,WAAYjB,EAAkB,eAAEG,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACL,EAAImB,GAAGnB,EAAIqB,GAAGrB,EAAIsB,iBAAiB,IAAItB,EAAIqB,GAAGrB,EAAIuB,GAAG,cAAPvB,CAAsBA,EAAIwB,aAAa,OAAOxB,EAAIyB,KAAKtB,EAAG,WAAW,CAACG,WAAW,CAAC,CAAC3iB,KAAK,UAAU4iB,QAAQ,YAAY5hB,MAAOqhB,EAAI0B,MAAiB,YAAEjB,WAAW,sBAAsBC,MAAM,CAAC,KAAOV,EAAI2B,WAAW,uBAAuB,aAAa,OAAS,GAAG,OAAS,GAAG,IAAM,GAAG,wBAAwB,IAAI/pB,GAAG,CAAC,cAAcooB,EAAInkB,KAAK,mBAAmBmkB,EAAI4B,wBAAwB,CAAC5B,EAAIiB,GAAG,UAAU,GAAGd,EAAG,gBAAgB,CAACO,MAAM,CAAC,eAAeV,EAAI0B,MAAMG,KAAK,aAAa7B,EAAI8B,eAAe,YAAY9B,EAAI0B,MAAMK,SAAS,OAAS,iCAAiC,MAAQ/B,EAAI0B,MAAMM,YAAYpqB,GAAG,CAAC,qBAAqB,SAASgpB,GAAQ,OAAOZ,EAAIiC,KAAKjC,EAAI0B,MAAO,OAAQd,IAAS,sBAAsB,SAASA,GAAQ,OAAOZ,EAAIiC,KAAKjC,EAAI0B,MAAO,OAAQd,IAAS,cAAcZ,EAAIkC,iBAAiB,iBAAiBlC,EAAImC,kBAAkBhC,EAAG,YAAY,CAACO,MAAM,CAAC,MAAQV,EAAIoC,YAAY,QAAUpC,EAAIqC,WAAW,eAAerC,EAAIsC,eAAe1qB,GAAG,CAAC,iBAAiB,SAASgpB,GAAQZ,EAAIqC,WAAWzB,KAAU,CAACT,EAAG,gBAAgB,IAAI,IAC/gEoC,EAAkB,G,oHC0DD,EAArB,yG,0BA2CE,EAAAF,YAAsB,EAatB,EAAAV,WAAkB,GAClB,EAAAD,MAAa,CACXc,aAAa,EACbX,KAAM,EACNG,WAAY,EACZD,SAAU,EACVU,QAAS,IA9Db,kEA8CmBC,GAEb1xB,KAAKqxB,aADHK,IA/CR,gCAkES,WACL1xB,KAAK0wB,MAAMK,SAAW/wB,KAAK+wB,SAC3B/wB,KAAK2xB,YAEL,IAAIC,EAAQ5xB,KAAa4xB,KACrBA,IACFA,EAAKC,IAAI,gBAAgB,kBAAM,EAAKF,eACpCC,EAAKC,IAAI,gBAAgB,kBAAM,EAAKF,eACpCC,EAAKC,IAAI,gBAAgB,kBAAM,EAAKF,eACpCC,EAAKC,IAAI,wBAAwB,kBAAM,EAAKF,kBA3ElD,4CA+EwBG,GACpB9xB,KAAK+xB,MAAM,gBAAiBD,KAhFhC,oCAoFIE,QAAQC,IAAI,8BACZjyB,KAAK0wB,MAAMG,KAAO,EAClB7wB,KAAK2xB,cAtFT,kCA0FW,WACDO,EAAuC,CAC3CC,WAAYnyB,KAAK0wB,MAAMG,KAAO,GAAK7wB,KAAK0wB,MAAMK,SAC9CqB,eAAgBpyB,KAAK0wB,MAAMK,SAC3BU,QAASzxB,KAAK0wB,MAAMe,SAEtBzxB,KAAK0wB,MAAMc,aAAc,EAEzB,IAAMa,EAAcryB,KAAKsyB,eACvBC,OAAOC,OAAO,GAAIxyB,KAAKgwB,UAAWkC,IAWpC,OATAG,EAAYI,MAAK,SAACrS,GAChB,EAAKsQ,MAAMc,aAAc,EACzB,EAAKb,WAAavQ,EAAIsS,MACtB,EAAKhC,MAAMM,WAAa5Q,EAAI4Q,WACxB,EAAKN,MAAMM,YACb,EAAKe,MAAM,gBAAiB,EAAKpB,eAI9B0B,IA9GX,qCAmHIryB,KAAK0wB,MAAMG,KAAO,EAClB7wB,KAAK2xB,cApHT,0CAwHI,GAAuB,OAAnB3xB,KAAK2yB,WAAgD,oBAAnB3yB,KAAK2yB,UACzC3yB,KAAK2yB,iBAEL,GAAI3yB,KAAKgwB,UACP,IAAK,IAAIjoB,KAAO/H,KAAKgwB,WAEhBhwB,KAAK4yB,mBACoC,IAAxC5yB,KAAK4yB,iBAAiBC,QAAQ9qB,KAC/B/H,KAAK4yB,oBAEN5yB,KAAKgwB,UAAUjoB,QAAO+qB,GAI9B9yB,KAAK+yB,gBAtIT,gGA0IuBpG,GA1IvB,wFA2II3sB,KAAK0wB,MAAMG,KAAOlE,EA3ItB,SA4IU3sB,KAAK2xB,YA5If,gMAgJahF,GAhJb,iFAiJIqF,QAAQC,IAAI,UAAWtF,GACnBA,EAAEqG,MAAQrG,EAAE7M,QACd9f,KAAK0wB,MAAMe,QAAX,UAAwB9E,EAAEqG,KAA1B,YAAkCrG,EAAE7M,QAEtC9f,KAAK2xB,YArJT,iJAyJmBhF,GACf3sB,KAAK0wB,MAAMK,SAAWpE,EACtB3sB,KAAK2xB,cA3JT,sCA+JI3xB,KAAKqxB,YAAa,EAClBrxB,KAAK+xB,MAAM,gBACX/xB,KAAKizB,QAAQpyB,KAAK,CAChB8L,KAAM3M,KAAKkzB,mBAlKjB,qCAoCI,OAAIlzB,KAAKmzB,WAAanzB,KAAKmzB,UAAUloB,OAC5BjL,KAAKmzB,UAEL,CAAC,GAAI,GAAI,GAAI,OAvC1B,kCAwKI,OAAKnzB,KAAaozB,OAAOC,KAAKC,MACpBtzB,KAAaozB,OAAOC,KAAKC,MAE1B,SA3Kb,GAA4C,QAE1C,gBADC,kB,gCAID,gBADC,eAAK,CAACC,UAAU,K,qCAIjB,gBADC,eAAK,K,gCAIN,gBADC,eAAK,CAACA,UAAU,EAAOC,QAAS,M,+BAIjC,gBADC,eAAK,CAACD,UAAU,EAAOC,QAAS,K,qCAGjC,gBADC,eAAK,CAACD,UAAU,EAAOC,QAAS,K,iCAGjC,gBADC,eAAK,CAACD,UAAU,EAAOC,QAAS,Q,sCAIjC,gBADC,kB,gCAID,gBADC,eAAK,CAACD,UAAU,K,uCAIjB,gBADC,eAAK,CAACA,UAAU,EAAOC,SAAS,K,sCAIjC,gBADC,eAAK,CAACD,UAAU,EAAOC,QAAS,M,qCAIjC,gBADC,eAAK,CAACD,UAAU,EAAOC,QAAS,K,+BAcjC,gBADC,eAAM,a,+BAON,MApDkB,EAAc,gBADlC,eAAU,CAAC7mB,KAAM,oBACG,WC3D6X,I,YCO9Y8mB,EAAY,eACd,EACAniB,EACAigB,GACA,EACA,KACA,WACA,MAIa,OAAAkC,E,gCCEf,IAAIrrB,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAIsrB,EAAe,EAAQ,QAEvBC,EAAoB,EAAQ,QAE5BC,EAAoB,EAAQ,QAoBhCxrB,EAAQyJ,qBAAqB6hB,GAC7BtrB,EAAQ2mB,eAAe4E,GACvBvrB,EAAQyrB,eAAeD,I,uBChCvB,IAAIhxB,EAAS,EAAQ,QAEjBkxB,EAAO,EAAQ,QA+BfC,EAAe,SAAUhkB,EAAKtB,EAAOulB,EAAaC,GACpDH,EAAKhnB,KAAK9M,KAAM+P,EAAKtB,EAAOulB,GAU5Bh0B,KAAKP,KAAOw0B,GAAY,QAMxBj0B,KAAK8vB,MAAQ,MAGfiE,EAAajmB,UAAY,CACvBC,YAAagmB,EAKbG,cAAe,WACb,OAAOl0B,KAAK8vB,MAAM7O,SAAS,UAM7BkT,aAAc,WACZ,MAAoC,eAA7Bn0B,KAAK8vB,MAAM5tB,IAAI,YAG1BU,EAAOwxB,SAASL,EAAcD,GAC9B,IAAIv0B,EAAWw0B,EACfrxB,EAAOC,QAAUpD,G,uBCxEjB,IAAI80B,EAAW,EAAQ,QAEnBC,EAAmBD,EAASC,iBAE5BC,EAAsB,EAAQ,QAE9B1Q,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvBt1B,EAAQ,EAAQ,QAEhBu1B,EAAYv1B,EAAMu1B,UAsBlBC,EAAmC,qBAAjBC,aAA+BA,aAAe5c,MAChExY,EAAW,CACbq1B,WAAY,cACZC,KAAMN,IACNO,MAAO,SAAUhzB,GACf,IAAIzB,EAAWyB,EAAYxB,iBACvBC,EAAOuB,EAAYtB,UACnBu0B,EAAcC,EAAqBlzB,EAAavB,GAChD00B,EAAU,EACVC,EAAU,EACVC,EAAY,CAAC,IAAK,KAClBC,EAAO70B,EAAKyJ,aAAamrB,EAAUF,IACnCI,EAAQ90B,EAAKyJ,aAAamrB,EAAUD,IAAU,GAC9CI,EAAUD,EAAM,GAChBE,EAAWF,EAAM,GACjBG,EAAYH,EAAM,GAClBI,EAAaJ,EAAM,GAOvB,GANA90B,EAAKqgB,UAAU,CACbmU,YAAaA,EAEbW,YAAaX,GAAe,QAGlB,MAARK,GAAgBC,EAAMpqB,OAAS,GAInC,MAAO,CACL0qB,SAAU7zB,EAAY8zB,gBAAgBC,MAAQC,EAAgBC,GAGhE,SAASA,EAAelsB,EAAQtJ,GAC9B,IAAIK,EAEJ,MAAsC,OAA9BA,EAAYiJ,EAAOmsB,QAAiB,CAC1C,IAAIC,EAAa11B,EAAK2B,IAAIkzB,EAAMx0B,GAC5Bs1B,EAAU31B,EAAK2B,IAAIozB,EAAS10B,GAC5Bu1B,EAAW51B,EAAK2B,IAAIqzB,EAAU30B,GAC9Bw1B,EAAY71B,EAAK2B,IAAIszB,EAAW50B,GAChCy1B,EAAa91B,EAAK2B,IAAIuzB,EAAY70B,GAClC01B,EAAQzqB,KAAK6E,IAAIwlB,EAASC,GAC1BI,EAAS1qB,KAAK4E,IAAIylB,EAASC,GAC3BK,EAAaC,EAASH,EAAOL,GAC7BS,EAAcD,EAASF,EAAQN,GAC/BU,EAAcF,EAASL,EAAWH,GAClCW,EAAeH,EAASJ,EAAYJ,GACpCY,EAAO,GACXC,EAAWD,EAAMH,EAAa,GAC9BI,EAAWD,EAAML,EAAY,GAC7BK,EAAKh2B,KAAKk2B,EAAsBH,GAAeG,EAAsBL,GAAcK,EAAsBJ,GAAcI,EAAsBP,IAC7Ij2B,EAAKugB,cAAclgB,EAAW,CAC5Bo2B,KAAMC,EAAQ12B,EAAMK,EAAWs1B,EAASC,EAAUZ,GAClD2B,aAAchB,EAAUC,EAAWO,EAAYxB,GAAWsB,EAAWtB,GAErE2B,KAAMA,EACNM,UAAWC,EAAchB,EAAWC,EAAYJ,KAIpD,SAASQ,EAAShrB,EAAKwqB,GACrB,IAAIxe,EAAI,GAGR,OAFAA,EAAEwd,GAAWgB,EACbxe,EAAEyd,GAAWzpB,EACNsN,MAAMkd,IAAeld,MAAMtN,GAAO,CAAC4rB,IAAKA,KAAOh3B,EAAS0L,YAAY0L,GAG7E,SAASqf,EAAWD,EAAMS,EAAO/iB,GAC/B,IAAIgjB,EAASD,EAAMhwB,QACfkwB,EAASF,EAAMhwB,QACnBiwB,EAAOtC,GAAWX,EAAiBiD,EAAOtC,GAAWF,EAAc,EAAG,GAAG,GACzEyC,EAAOvC,GAAWX,EAAiBkD,EAAOvC,GAAWF,EAAc,EAAG,GAAG,GACzExgB,EAAQsiB,EAAKh2B,KAAK02B,EAAQC,GAAUX,EAAKh2B,KAAK22B,EAAQD,GAGxD,SAASH,EAAchB,EAAWC,EAAYJ,GAC5C,IAAIwB,EAAOhB,EAASL,EAAWH,GAC3ByB,EAAOjB,EAASJ,EAAYJ,GAGhC,OAFAwB,EAAKxC,IAAYF,EAAc,EAC/B2C,EAAKzC,IAAYF,EAAc,EACxB,CACLtvB,EAAGgyB,EAAK,GACR/xB,EAAG+xB,EAAK,GACRj2B,MAAO0zB,EAAUH,EAAc2C,EAAK,GAAKD,EAAK,GAC9CvrB,OAAQgpB,EAAUwC,EAAK,GAAKD,EAAK,GAAK1C,GAI1C,SAASgC,EAAsBO,GAE7B,OADAA,EAAMrC,GAAWX,EAAiBgD,EAAMrC,GAAU,GAC3CqC,GAIX,SAASxB,EAAcjsB,EAAQtJ,GAE7B,IAEI+2B,EAGA12B,EALA2W,EAAS,IAAImd,EAAwB,EAAf7qB,EAAOsY,OAC7BrN,EAAS,EAET6iB,EAAQ,GACRC,EAAS,GAGb,MAAsC,OAA9Bh3B,EAAYiJ,EAAOmsB,QAAiB,CAC1C,IAAIC,EAAa11B,EAAK2B,IAAIkzB,EAAMx0B,GAC5Bs1B,EAAU31B,EAAK2B,IAAIozB,EAAS10B,GAC5Bu1B,EAAW51B,EAAK2B,IAAIqzB,EAAU30B,GAC9Bw1B,EAAY71B,EAAK2B,IAAIszB,EAAW50B,GAChCy1B,EAAa91B,EAAK2B,IAAIuzB,EAAY70B,GAElCmY,MAAMkd,IAAeld,MAAMqd,IAAcrd,MAAMsd,IACjD9e,EAAOzC,KAAYuiB,IACnBviB,GAAU,IAIZyC,EAAOzC,KAAYmiB,EAAQ12B,EAAMK,EAAWs1B,EAASC,EAAUZ,GAC/DoC,EAAM1C,GAAWgB,EACjB0B,EAAMzC,GAAWkB,EACjBkB,EAAQj3B,EAAS0L,YAAY4rB,EAAO,KAAMC,GAC1CrgB,EAAOzC,KAAYwiB,EAAQA,EAAM,GAAKD,IACtC9f,EAAOzC,KAAYwiB,EAAQA,EAAM,GAAKD,IACtCM,EAAMzC,GAAWmB,EACjBiB,EAAQj3B,EAAS0L,YAAY4rB,EAAO,KAAMC,GAC1CrgB,EAAOzC,KAAYwiB,EAAQA,EAAM,GAAKD,KAGxC92B,EAAKqgB,UAAU,cAAerJ,MAKpC,SAAS0f,EAAQ12B,EAAMK,EAAWs1B,EAASC,EAAUZ,GACnD,IAAIyB,EAYJ,OATEA,EADEd,EAAUC,GACJ,EACCD,EAAUC,EACZ,EAEAv1B,EAAY,EACjBL,EAAK2B,IAAIqzB,EAAU30B,EAAY,IAAMu1B,EAAW,GAAK,EACvD,EAGKa,EAGT,SAAShC,EAAqBlzB,EAAavB,GACzC,IACIs3B,EADAC,EAAWh2B,EAAYi2B,cAEvBC,EAA8B,aAAlBF,EAASr4B,KAAsBq4B,EAASG,gBAAkBJ,EAASC,EAASvS,YAAa1Z,KAAKC,IAAI+rB,EAAO,GAAKA,EAAO,IAAMt3B,EAAK4hB,SAC5I+V,EAAc1D,EAAaC,EAAU3yB,EAAYI,IAAI,eAAgB81B,GAAYA,GACjFG,EAAc3D,EAAaC,EAAU3yB,EAAYI,IAAI,eAAgB,GAAI81B,GACzEI,EAAWt2B,EAAYI,IAAI,YAC/B,OAAmB,MAAZk2B,EAAmB5D,EAAa4D,EAAUJ,GAC/CnsB,KAAK4E,IAAI5E,KAAK6E,IAAIsnB,EAAY,EAAGE,GAAcC,GAGnDz1B,EAAOC,QAAUpD,G,uBChMjB,EAAQ,QAER,EAAQ,S,uBCtBR,IAAIqpB,EAAY,EAAQ,QAKpByP,EAAa,WAKfr4B,KAAKs4B,OAAS,IAkDhB,SAASC,EAAKC,GACZ,IAAItmB,EAAKsmB,EAAU,GAAG,GAAKA,EAAU,GAAG,GACpCrmB,EAAKqmB,EAAU,GAAG,GAAKA,EAAU,GAAG,GACxC,OAAO3sB,KAAK4sB,KAAKvmB,EAAKA,EAAKC,EAAKA,GAGlC,SAASumB,EAAOF,GACd,MAAO,EAAEA,EAAU,GAAG,GAAKA,EAAU,GAAG,IAAM,GAAIA,EAAU,GAAG,GAAKA,EAAU,GAAG,IAAM,GAtDzFH,EAAWvqB,UAAY,CACrBC,YAAasqB,EACbM,UAAW,SAAUrwB,EAAO8J,EAAQ8M,GAGlC,OAFAlf,KAAK44B,SAAStwB,EAAO8J,EAAQ8M,GAEtBlf,KAAK64B,WAAWvwB,IAEzBwwB,MAAO,WAEL,OADA94B,KAAKs4B,OAAOrtB,OAAS,EACdjL,MAET44B,SAAU,SAAUtwB,EAAO8J,EAAQ8M,GACjC,IAAI6Z,EAAUzwB,EAAMywB,QAEpB,GAAKA,EAAL,CAWA,IAPA,IAAIC,EAAY,CACdzhB,OAAQ,GACRwhB,QAAS,GACT3mB,OAAQA,EACR9J,MAAOA,GAGA2F,EAAI,EAAGqK,EAAMygB,EAAQ9tB,OAAQgD,EAAIqK,EAAKrK,IAAK,CAClD,IAAIgrB,EAAQF,EAAQ9qB,GAChBoE,EAAMuW,EAAUsQ,cAAcha,EAAM+Z,EAAO,IAC/CD,EAAUzhB,OAAO1W,KAAK,CAACwR,EAAIoY,IAAKpY,EAAIqY,MACpCsO,EAAUD,QAAQl4B,KAAKo4B,GAGzBj5B,KAAKs4B,OAAOz3B,KAAKm4B,KAEnBH,WAAY,SAAUvwB,GACpB,IAAK,IAAI6wB,KAAaC,EACpB,GAAIA,EAAYrc,eAAeoc,GAAY,CACzC,IAAIE,EAAcD,EAAYD,GAAWn5B,KAAKs4B,OAAQhwB,GAEtD,GAAI+wB,EACF,OAAOA,KAiBjB,IAAID,EAAc,CAChBE,MAAO,SAAUC,EAAOjxB,GACtB,IAAIsS,EAAW2e,EAAMtuB,OAErB,GAAK2P,EAAL,CAIA,IAAI4e,GAAYD,EAAM3e,EAAW,IAAM,IAAIrD,OACvCkiB,GAAYF,EAAM3e,EAAW,IAAM,IAAIrD,QAAUiiB,EAErD,GAAIC,GAAYA,EAASxuB,OAAS,GAAKuuB,GAAYA,EAASvuB,OAAS,EAAG,CACtE,IAAIyuB,EAAanB,EAAKiB,GAAYjB,EAAKkB,IACtCE,SAASD,KAAgBA,EAAa,GACvCpxB,EAAMoxB,WAAaA,EACnB,IAAIE,EAAclB,EAAOc,GAGzB,OAFAlxB,EAAMuxB,OAASD,EAAY,GAC3BtxB,EAAMwxB,OAASF,EAAY,GACpB,CACLn6B,KAAM,QACN2S,OAAQmnB,EAAM,GAAGnnB,OACjB9J,MAAOA,OAMX/I,EAAW84B,EACf31B,EAAOC,QAAUpD,G,uBC9EjB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCxBR,SAASw6B,KAiJT,SAASC,EAAYC,EAAMC,EAAYC,EAAQC,GAM7C,IALA,IAAIC,EAAe,EACfC,EAAeJ,EAAWjvB,OAC1BsvB,EAAS,EACTC,EAAS,EAENH,EAAeC,EAAcD,IAAgB,CAClD,IAAI5G,EAAYyG,EAAWG,GAE3B,GAAK5G,EAAUgH,QAaR,CAGL,IAFIh6B,EAAU,GAELwN,EAAIusB,EAAQvsB,EAAIusB,EAAS/G,EAAUtR,MAAOlU,IACjDxN,EAAQI,KAAKoN,GAGfwlB,EAAUhzB,QAAUA,EACpB+5B,GAAU/G,EAAUtR,UArBE,CAGtB,IAFA,IAAI1hB,EAAU,GAELwN,EAAIssB,EAAQtsB,EAAIssB,EAAS9G,EAAUtR,MAAOlU,IACjDxN,EAAQI,KAAKoN,GAGfwlB,EAAUhzB,QAAUA,EACpB85B,GAAU9G,EAAUtR,MAEfsR,EAAUiH,QACbF,GAAU/G,EAAUtR,QAc1B,OAAO+X,EAGT,SAASS,EAAUzZ,GACjB,MAAO,CACLqZ,OAAQrZ,EAAKqZ,OACbL,WAAYhZ,EAAKgZ,WAAW5yB,MAAM,IAvLtCyyB,EAAKjsB,UAAY,CACfmsB,KAAM,SAAUG,EAAQD,EAAQS,GACzBA,IACHA,EAAS,SAAUvjB,EAAGC,GACpB,OAAOD,IAAMC,IAIjBtX,KAAK46B,OAASA,EACd,IAAInd,EAAOzd,KACXo6B,EAASA,EAAO9yB,QAChB6yB,EAASA,EAAO7yB,QAEhB,IAAIuzB,EAASV,EAAOlvB,OAChB6vB,EAASV,EAAOnvB,OAChB8vB,EAAa,EACbC,EAAgBH,EAASC,EACzBG,EAAW,CAAC,CACdV,QAAS,EACTL,WAAY,KAGVM,EAASx6B,KAAKk7B,cAAcD,EAAS,GAAId,EAAQC,EAAQ,GAE7D,GAAIa,EAAS,GAAGV,OAAS,GAAKM,GAAUL,EAAS,GAAKM,EAAQ,CAG5D,IAFA,IAAIr6B,EAAU,GAELwN,EAAI,EAAGA,EAAIksB,EAAOlvB,OAAQgD,IACjCxN,EAAQI,KAAKoN,GAIf,MAAO,CAAC,CACNxN,QAASA,EACT0hB,MAAOgY,EAAOlvB,SAKlB,SAASkwB,IACP,IAAK,IAAIC,GAAgB,EAAIL,EAAYK,GAAgBL,EAAYK,GAAgB,EAAG,CACtF,IAAIC,EACAC,EAAUL,EAASG,EAAe,GAClCG,EAAaN,EAASG,EAAe,GACrCZ,GAAUe,EAAaA,EAAWhB,OAAS,GAAKa,EAEhDE,IAEFL,EAASG,EAAe,QAAKtI,GAG/B,IAAI0I,EAASF,GAAWA,EAAQf,OAAS,EAAIM,EACzCY,EAAYF,GAAc,GAAKf,GAAUA,EAASM,EAEtD,GAAKU,GAAWC,EAAhB,CAqBA,IAZKD,GAAUC,GAAaH,EAAQf,OAASgB,EAAWhB,QACtDc,EAAWV,EAAUY,GACrB9d,EAAKie,cAAcL,EAASnB,gBAAYpH,GAAW,KAEnDuI,EAAWC,EAEXD,EAASd,SACT9c,EAAKie,cAAcL,EAASnB,YAAY,OAAMpH,IAGhD0H,EAAS/c,EAAKyd,cAAcG,EAAUlB,EAAQC,EAAQgB,GAElDC,EAASd,OAAS,GAAKM,GAAUL,EAAS,GAAKM,EACjD,OAAOd,EAAYvc,EAAM4d,EAASnB,WAAYC,EAAQC,GAGtDa,EAASG,GAAgBC,OAvBzBJ,EAASG,QAAgBtI,EA2B7BiI,IAGF,MAAOA,GAAcC,EAAe,CAClC,IAAIvhB,EAAM0hB,IAEV,GAAI1hB,EACF,OAAOA,IAIbiiB,cAAe,SAAUxB,EAAYQ,EAAOD,GAC1C,IAAIkB,EAAOzB,EAAWA,EAAWjvB,OAAS,GAEtC0wB,GAAQA,EAAKjB,QAAUA,GAASiB,EAAKlB,UAAYA,EAGnDP,EAAWA,EAAWjvB,OAAS,GAAK,CAClCkX,MAAOwZ,EAAKxZ,MAAQ,EACpBuY,MAAOA,EACPD,QAASA,GAGXP,EAAWr5B,KAAK,CACdshB,MAAO,EACPuY,MAAOA,EACPD,QAASA,KAIfS,cAAe,SAAUG,EAAUlB,EAAQC,EAAQgB,GACjD,IAAIP,EAASV,EAAOlvB,OAChB6vB,EAASV,EAAOnvB,OAChBsvB,EAASc,EAASd,OAClBC,EAASD,EAASa,EAClBQ,EAAc,EAElB,MAAOrB,EAAS,EAAIM,GAAUL,EAAS,EAAIM,GAAU96B,KAAK46B,OAAOT,EAAOI,EAAS,GAAIH,EAAOI,EAAS,IACnGD,IACAC,IACAoB,IAUF,OAPIA,GACFP,EAASnB,WAAWr5B,KAAK,CACvBshB,MAAOyZ,IAIXP,EAASd,OAASA,EACXC,GAETqB,SAAU,SAAUluB,GAClB,OAAOA,EAAMrG,SAEfuS,KAAM,SAAUlM,GACd,OAAOA,EAAMrG,UAgDjB,IAAIw0B,EAAY,IAAI/B,EAEpB,SAASx6B,EAAS66B,EAAQD,EAAQld,GAChC,OAAO6e,EAAU7B,KAAKG,EAAQD,EAAQld,GAGxCva,EAAOC,QAAUpD,G,uBCjLjB,IAAIqD,EAAS,EAAQ,QAEjBm5B,EAAiB,EAAQ,QAEzBC,EAAa,EAAQ,QAErBC,EAAgB,EAAQ,QAExBC,EAAsBD,EAAcC,oBAEpCp5B,EAAU,EAAQ,QAElB2J,EAAmB,EAAQ,QAE3B0vB,EAAa,EAAQ,QAErBC,EAASD,EAAWC,OAEpBC,EAAgB,EAAQ,QAoB5B,SAASC,EAAkBxM,GACzB,IAAI5kB,EAAY4kB,EAAMne,eAClB4qB,EAAYzM,EAAM5tB,IAAI,aAO1B,OAJiB,MAAbq6B,IACFrxB,EAAUwG,KAAO6qB,GAGZrxB,EAGT,SAASsxB,EAAuBC,EAASC,EAAeC,EAAcp2B,EAAKq2B,GACzED,EAAaE,IAAI,SACjBF,EAAaE,IAAI,aAEbH,EAAcx6B,IAAI,kBACpBy6B,EAAa/1B,GAAG,aAAa,WAC3B61B,EAAQK,gBAAiB,KAE3BH,EAAa/1B,GAAG,SAAS,SAAU+lB,GACjC,GAAK8P,EAAQK,eAAb,CAIAL,EAAQK,gBAAiB,EACzB,IAAIrR,EAAKkB,EAAEva,OAEX,OAAQqZ,EAAGsR,UACTtR,EAAKA,EAAG5J,OAGV,GAAK4J,EAAL,CAIA,IAAIuR,EAAS,CACXv9B,MAAkC,QAA3Bi9B,EAAcO,SAAqB,MAAQ,OAAS,eAC3Dx2B,MAAO7D,EAAOqE,IAAIwkB,EAAGsR,WAAW,SAAUG,GACxC,MAAO,CACLvwB,KAAMuwB,EAAOvwB,KACb3E,KAAM40B,EAAS30B,SAIrB+0B,EAAON,EAAcO,SAAW,MAAQP,EAAcv0B,GACtD5B,EAAIC,eAAew2B,GACnBG,EAAkBT,EAAeC,SAKvC,SAASQ,EAAkBT,EAAeC,GAExCA,EAAaS,WAAU,SAAUC,GAC/Bz6B,EAAOzD,KAAKk+B,EAAcN,WAAW,SAAUG,GAC7CG,EAAcC,QAAQZ,EAAca,WAAWL,EAAOvwB,MAAQ,WAAa,gBAWjF,SAAS6wB,EAAQj3B,EAAKk3B,GACpB,IAAIn6B,EAAQ,IAAIR,EAAQ6B,MAMxB3E,KAAKiI,IAAMm0B,EAAO,eAMlBp8B,KAAK09B,YAAc,IAAI3B,EAAex1B,EAAIslB,SAM1C7rB,KAAK29B,gBAAkB,CACrBvrB,OAAQqrB,EAAcn6B,EAAQ,MAOhCtD,KAAKsD,MAAQA,EAMbtD,KAAK49B,aAAeH,EAQpBz9B,KAAK88B,eAKL98B,KAAK69B,SAKL79B,KAAK89B,aAKLx6B,EAAMgC,IAAItF,KAAK+9B,cAAgB,IAAIj7B,EAAQ6B,OAK3CrB,EAAMgC,IAAItF,KAAKg+B,iBAAmB,IAAIl7B,EAAQ6B,OAGhD64B,EAAQ1vB,UAAY,CAClBC,YAAayvB,EACbS,KAAM,SAAUvB,EAAe58B,EAASyG,EAAKq2B,EAAUsB,GACrD,IAAIC,EAAmC,QAA3BzB,EAAcO,SAGtB18B,EAAOm8B,EAAcl8B,SAAWk8B,EAAcl8B,UAClD29B,GAASr+B,EAAQs+B,cAAc,CAC7BnB,SAAU,SACVoB,QAAS,QACR,SAAUC,GACN/9B,GAAQ+9B,EAAUC,oBAAsB7B,IAC3Cn8B,EAAO+9B,EAAU99B,cAGrB,IAAIg+B,EAAM9B,EAAcp8B,iBAExBN,KAAKy+B,kBAAkBD,GAEvB,IAKIE,EALA/B,EAAe38B,KAAK+9B,cACpBz6B,EAAQtD,KAAKsD,MACbq7B,EAAgBH,EAAII,mBAEpBC,GAAelC,EAAamC,QAAQ,IAAMZ,EAG9C,GAAIW,EACFv7B,EAAMgL,UAAYqwB,EAAcI,cAChCz7B,EAAMkL,qBACNlL,EAAMgP,YACD,CACL,IAAIF,EAAS,IAAIiqB,EACjBjqB,EAAO9D,UAAYqwB,EAAcI,cACjC3sB,EAAO5D,qBACP,IAAIqO,EAAQ,CACVpO,MAAO2D,EAAO3D,MACdzD,SAAUoH,EAAOpH,UAEnB0zB,EAActsB,EAAO3D,MACrB3L,EAAQk8B,YAAY17B,EAAOuZ,EAAO6f,GAGpC,IAAIjuB,EAAQkwB,EAAcM,SACtBj0B,EAAW2zB,EAAcO,YAC7BvC,EAAap5B,YACb,IAAI47B,EAAsB,CAAC,aACvBC,EAA2B,CAAC,WAAY,aACxCC,EAAkB,CAAC,SACnBC,EAAuB,CAAC,WAAY,SACpC1yB,EAAUhK,EAAOxD,gBACrBwD,EAAOzD,KAAKq/B,EAAInxB,SAAS,SAAU6vB,GAMjC,IAAIqC,EAAc3yB,EAAQ1K,IAAIg7B,EAAOvwB,OAASC,EAAQrK,IAAI26B,EAAOvwB,KAAM,IAAI7J,EAAQ6B,OAC/E66B,EAAe,IAAI18B,EAAQ28B,aAAa,CAC1CC,uBAAwB,EACxBluB,MAAO,CACLmuB,MAAO,MAGXJ,EAAYj6B,IAAIk6B,GAChB,IAOII,EAPAC,EAAcnD,EAAcoD,eAAe5C,EAAOvwB,OAAS+vB,EAC3DqD,EAAiBF,EAAY5e,SAASke,GACtCa,EAAsBH,EAAY5e,SAASme,GAC3Cl0B,EAAYoxB,EAAkByD,GAC9BE,EAAiB3D,EAAkB0D,GACnCE,EAAaL,EAAY5e,SAASoe,GAClCc,EAAkBN,EAAY5e,SAASqe,GAG3C,GAAI/+B,EAAM,CACRq/B,EAAUr/B,EAAK6/B,YAAYlD,EAAOvwB,MAKlC,IAAI0zB,EAAc9/B,EAAKohB,cAAcie,EAAS,SAAS,GAEnDS,IACFn1B,EAAUwG,KAAO2uB,GAIrB,IAAIC,EAAiB,SAAUhJ,GAC7B,MAAO,CAACA,EAAM,GAAK7oB,EAAM,GAAKzD,EAAS,GAAIssB,EAAM,GAAK7oB,EAAM,GAAKzD,EAAS,KAG5EpI,EAAOzD,KAAK+9B,EAAOqD,YAAY,SAAUC,GACvC,GAAsB,YAAlBA,EAAS/gC,KAAb,CAMA,IAFA,IAAI8X,EAAS,GAEJtJ,EAAI,EAAGA,EAAIuyB,EAASC,SAASx1B,SAAUgD,EAC9CsJ,EAAO1W,KAAKy/B,EAAeE,EAASC,SAASxyB,KAG/CuxB,EAAahuB,MAAMmuB,MAAM9+B,KAAK,IAAIiC,EAAQ49B,QAAQ,CAChDhB,uBAAwB,EACxBluB,MAAO,CACL+F,OAAQA,MAIZ,IAAStJ,EAAI,EAAGA,GAAKuyB,EAASG,UAAYH,EAASG,UAAU11B,OAAS,KAAMgD,EAAG,CAI7E,IAHA,IAAI2yB,EAAWJ,EAASG,UAAU1yB,GAGzBuK,GAFLjB,EAAS,GAEA,GAAGiB,EAAIooB,EAAS31B,SAAUuN,EACrCjB,EAAO1W,KAAKy/B,EAAeM,EAASpoB,KAGtCgnB,EAAahuB,MAAMmuB,MAAM9+B,KAAK,IAAIiC,EAAQ49B,QAAQ,CAChDhB,uBAAwB,EACxBluB,MAAO,CACL+F,OAAQA,WAKhBioB,EAAaqB,SAAS31B,GACtBs0B,EAAah6B,MAAMs7B,eAAgB,EACnCtB,EAAauB,SAAU,EAEvB,IAAI18B,EAAY67B,EAAWh+B,IAAI,QAC3B8+B,EAAiBb,EAAgBj+B,IAAI,QACrC++B,EAAY1gC,GAAQwY,MAAMxY,EAAK2B,IAAI3B,EAAKyJ,aAAa,SAAU41B,IAC/DsB,EAAa3gC,GAAQA,EAAKygB,cAAc4e,GAK5C,GAAIzB,GAAS8C,IAAc58B,GAAa28B,IAAmBE,GAAcA,EAAW78B,UAAW,CAC7F,IACI88B,EADAC,EAASjD,EAAkBjB,EAAOvwB,KAAjBizB,IAGhBr/B,GAAQq/B,GAAW,KACtBuB,EAAezE,GAGjB,IAAI2E,EAAS,IAAIv+B,EAAQyC,KAAK,CAC5ByF,SAAUs1B,EAAepD,EAAOxE,OAAOpxB,SAKvCmH,MAAO,CAAC,EAAInL,EAAMmL,MAAM,GAAI,EAAInL,EAAMmL,MAAM,IAC5C2C,GAAI,GACJQ,QAAQ,IAYV,GAVA9O,EAAQw+B,cAAcD,EAAO77B,MAAO67B,EAAOE,WAAa,GAAIrB,EAAYC,EAAiB,CACvFgB,aAAcA,EACdK,eAAgBJ,EAChBK,YAAavE,EAAOvwB,KACpB+0B,gBAAgB,GACf,CACD77B,UAAW,SACXD,kBAAmB,YAGhBi5B,EAAa,CAEhB,IAAI8C,EAAY,CAAC,EAAIjD,EAAY,GAAI,EAAIA,EAAY,IACrD57B,EAAQk8B,YAAYqC,EAAQ,CAC1B5yB,MAAOkzB,GACNjF,GAGL6C,EAAYj6B,IAAI+7B,GAKlB,GAAI9gC,EACFA,EAAKqhC,iBAAiBhC,EAASL,OAC1B,CACDM,EAAcnD,EAAcoD,eAAe5C,EAAOvwB,MAEtD6yB,EAAaqC,UAAY,CACvBC,cAAe,MACfC,eAAgBrF,EAAcqF,eAC9BC,SAAUtF,EAAcqF,eACxBp1B,KAAMuwB,EAAOvwB,KACbuwB,OAAQ2C,GAAeA,EAAYhgC,QAAU,IAIjD,IAAIoiC,EAAe1C,EAAYxC,YAAcwC,EAAYxC,UAAY,IACrEkF,EAAaphC,KAAKq8B,GAClBqC,EAAY2C,wBAA0BxF,EAAcx6B,IAAI,gBACxDY,EAAQq/B,cAAc5C,EAAaU,GACnCtD,EAAar3B,IAAIi6B,MAGnBv/B,KAAKoiC,kBAAkB1F,EAAe58B,EAASyG,GAE/Ci2B,EAAuBx8B,KAAM08B,EAAeC,EAAcp2B,EAAKq2B,GAC/DO,EAAkBT,EAAeC,IAEnC0F,OAAQ,WACNriC,KAAK+9B,cAAcx6B,YAEnBvD,KAAKg+B,iBAAiBz6B,YAEtBvD,KAAK09B,YAAYnP,UAEjBvuB,KAAK69B,UAAYpxB,EAAiB61B,cAActiC,KAAK69B,SAAU79B,KAAKiI,KACpEjI,KAAK69B,SAAW,KAChB79B,KAAK29B,gBAAkB,IAEzBc,kBAAmB,SAAUD,GAC3B,IAAI+D,EAAU/D,EAAIv3B,IAEdjH,KAAK69B,WAAa0E,GACpB3/B,EAAOzD,KAAKsN,EAAiB+1B,YAAYD,EAASviC,KAAKiI,MAAM,SAAUiX,GACrElf,KAAKg+B,iBAAiB14B,IAAI4Z,KACzBlf,MAGLA,KAAK69B,SAAW0E,GAElBH,kBAAmB,SAAU1F,EAAe58B,EAASyG,GACnD,IAAIi4B,EAAM9B,EAAcp8B,iBACpBmiC,EAAaziC,KAAK09B,YAClBzrB,EAAiBjS,KAAK29B,gBAC1B1rB,EAAeU,UAAY+pB,EAAcx6B,IAAI,cAC7C+P,EAAe9F,KAAOqyB,EAAIpyB,UAE1Bq2B,EAAWC,OAAOhG,EAAcx6B,IAAI,UAAW,GAC/C,IAAI+6B,EAAWP,EAAcO,SAE7B,SAAS0F,IACP,IAAI3F,EAAS,CACXv9B,KAAM,UACNqiC,cAAe7E,GAGjB,OADAD,EAAOC,EAAW,MAAQP,EAAcv0B,GACjC60B,EAGTyF,EAAW5F,IAAI,OAAOj2B,GAAG,OAAO,SAAU+lB,GACxC3sB,KAAK88B,gBAAiB,EACtBd,EAAWhqB,gBAAgBC,EAAgB0a,EAAEza,GAAIya,EAAExa,IACnD5L,EAAIC,eAAe5D,EAAOpD,OAAOmjC,IAAkB,CACjDzwB,GAAIya,EAAEza,GACNC,GAAIwa,EAAExa,QAEPnS,MACHyiC,EAAW5F,IAAI,QAAQj2B,GAAG,QAAQ,SAAU+lB,GAS1C,GARA3sB,KAAK88B,gBAAiB,EACtBd,EAAWzpB,iBAAiBN,EAAgB0a,EAAEle,MAAOke,EAAEiW,QAASjW,EAAEkW,SAClEt8B,EAAIC,eAAe5D,EAAOpD,OAAOmjC,IAAkB,CACjDx2B,KAAMwgB,EAAEle,MACRm0B,QAASjW,EAAEiW,QACXC,QAASlW,EAAEkW,WAGT7iC,KAAK49B,aAAc,CACrB,IAAInvB,EAAQzO,KAAKsD,MAAMmL,MAEvBzO,KAAK+9B,cAAc+E,UAAS,SAAUrX,GACpB,SAAZA,EAAGhsB,MACLgsB,EAAGzL,KAAK,QAAS,CAAC,EAAIvR,EAAM,GAAI,EAAIA,EAAM,WAI/CzO,MACHyiC,EAAWM,mBAAkB,SAAUpW,EAAGlnB,EAAGC,GAC3C,OAAO84B,EAAIwE,uBAAuB90B,QAAQzI,EAAGC,KAAOw2B,EAAoBvP,EAAGpmB,EAAKm2B,QAItF,IAAIn9B,EAAWi+B,EACf96B,EAAOC,QAAUpD,G,uBCldjB,IAAI0jC,EAAS,EAAQ,QAEjBC,EAAS,EAAQ,QAOjBC,EAAYF,EAAOG,SACnBjsB,EAAU,KAEd,SAASksB,EAAgB53B,GACvB,OAAOA,EAAM0L,GAAW1L,GAAO0L,EAQjC,IAAIklB,EAAgB,SAAUiH,GAC5BA,EAAOA,GAAQ,GAEVA,EAAKt4B,WAMRhL,KAAKgL,SAAW,CAAC,EAAG,IAGD,MAAjBs4B,EAAK3yB,WAMP3Q,KAAK2Q,SAAW,GAGb2yB,EAAK70B,QAMRzO,KAAKyO,MAAQ,CAAC,EAAG,IASnBzO,KAAKujC,OAASvjC,KAAKujC,QAAU,MAG3BC,EAAqBnH,EAAcvuB,UACvC01B,EAAmBl1B,UAAY,KAM/Bk1B,EAAmBC,mBAAqB,WACtC,OAAOJ,EAAgBrjC,KAAK2Q,WAAa0yB,EAAgBrjC,KAAKgL,SAAS,KAAOq4B,EAAgBrjC,KAAKgL,SAAS,KAAOq4B,EAAgBrjC,KAAKyO,MAAM,GAAK,IAAM40B,EAAgBrjC,KAAKyO,MAAM,GAAK,IAG3L,IAAIi1B,EAAW,GAEfF,EAAmB90B,gBAAkB,WACnC,IAAImT,EAAS7hB,KAAK6hB,OACd8hB,EAAqB9hB,GAAUA,EAAOvT,UACtCm1B,EAAqBzjC,KAAKyjC,qBAC1BzuB,EAAIhV,KAAKsO,UAEb,GAAMm1B,GAAsBE,EAA5B,CAKA3uB,EAAIA,GAAKiuB,EAAOW,SAEZH,EACFzjC,KAAK6jC,kBAAkB7uB,GAEvBmuB,EAAUnuB,GAIR2uB,IACEF,EACFR,EAAOa,IAAI9uB,EAAG6M,EAAOvT,UAAW0G,GAEhCiuB,EAAOc,KAAK/uB,EAAG6M,EAAOvT,YAK1BtO,KAAKsO,UAAY0G,EACjB,IAAIgvB,EAAmBhkC,KAAKgkC,iBAE5B,GAAwB,MAApBA,GAAiD,IAArBA,EAAwB,CACtDhkC,KAAKikC,eAAeP,GACpB,IAAIQ,EAAOR,EAAS,GAAK,GAAK,EAAI,EAC9BS,EAAOT,EAAS,GAAK,GAAK,EAAI,EAC9BU,IAAOV,EAAS,GAAKQ,GAAQF,EAAmBE,GAAQR,EAAS,IAAM,EACvEW,IAAOX,EAAS,GAAKS,GAAQH,EAAmBG,GAAQT,EAAS,IAAM,EAC3E1uB,EAAE,IAAMovB,EACRpvB,EAAE,IAAMovB,EACRpvB,EAAE,IAAMqvB,EACRrvB,EAAE,IAAMqvB,EAGVrkC,KAAKskC,aAAetkC,KAAKskC,cAAgBrB,EAAOW,SAChDX,EAAOsB,OAAOvkC,KAAKskC,aAActvB,QAtC/BA,GAAKmuB,EAAUnuB,IAyCnBwuB,EAAmBK,kBAAoB,SAAU7uB,GAC/C,OAAOqnB,EAAcwH,kBAAkB7jC,KAAMgV,IAQ/CwuB,EAAmBgB,aAAe,SAAUC,GAC1C,IAAIzvB,EAAIhV,KAAKsO,UACTo2B,EAAMD,EAAIC,KAAO,EAEjB1vB,EACFyvB,EAAID,aAAaE,EAAM1vB,EAAE,GAAI0vB,EAAM1vB,EAAE,GAAI0vB,EAAM1vB,EAAE,GAAI0vB,EAAM1vB,EAAE,GAAI0vB,EAAM1vB,EAAE,GAAI0vB,EAAM1vB,EAAE,IAErFyvB,EAAID,aAAaE,EAAK,EAAG,EAAGA,EAAK,EAAG,IAIxClB,EAAmBmB,iBAAmB,SAAUF,GAC9C,IAAIC,EAAMD,EAAIC,KAAO,EACrBD,EAAID,aAAaE,EAAK,EAAG,EAAGA,EAAK,EAAG,IAGtC,IAAIE,EAAe,GACfC,EAAkB5B,EAAOW,SAE7BJ,EAAmBsB,kBAAoB,SAAU9vB,GAC/C,GAAKA,EAAL,CAKA,IAAIovB,EAAKpvB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAC5BqvB,EAAKrvB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAC5BhK,EAAWhL,KAAKgL,SAChByD,EAAQzO,KAAKyO,MAEb40B,EAAgBe,EAAK,KACvBA,EAAKv4B,KAAK4sB,KAAK2L,IAGbf,EAAgBgB,EAAK,KACvBA,EAAKx4B,KAAK4sB,KAAK4L,IAGbrvB,EAAE,GAAK,IACTovB,GAAMA,GAGJpvB,EAAE,GAAK,IACTqvB,GAAMA,GAGRr5B,EAAS,GAAKgK,EAAE,GAChBhK,EAAS,GAAKgK,EAAE,GAChBvG,EAAM,GAAK21B,EACX31B,EAAM,GAAK41B,EACXrkC,KAAK2Q,SAAW9E,KAAKk5B,OAAO/vB,EAAE,GAAKqvB,EAAIrvB,EAAE,GAAKovB,KAOhDZ,EAAmBh1B,mBAAqB,WACtC,GAAKxO,KAAKsO,UAAV,CAIA,IAAIuT,EAAS7hB,KAAK6hB,OACd7M,EAAIhV,KAAKsO,UAETuT,GAAUA,EAAOvT,YAEnB20B,EAAOa,IAAIc,EAAc/iB,EAAOyiB,aAActvB,GAC9CA,EAAI4vB,GAGN,IAAIrB,EAASvjC,KAAKujC,OAEdA,IAAWA,EAAO,IAAMA,EAAO,MACjCsB,EAAgB,GAAKtB,EAAO,GAC5BsB,EAAgB,GAAKtB,EAAO,GAC5BN,EAAOa,IAAIc,EAAc5vB,EAAG6vB,GAC5BD,EAAa,IAAMrB,EAAO,GAC1BqB,EAAa,IAAMrB,EAAO,GAC1BvuB,EAAI4vB,GAGN5kC,KAAK8kC,kBAAkB9vB,KAQzBwuB,EAAmBS,eAAiB,SAAU/0B,GAC5C,IAAI8F,EAAIhV,KAAKsO,UAGb,OAFAY,EAAMA,GAAO,GAER8F,GAML9F,EAAI,GAAKrD,KAAK4sB,KAAKzjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAC1C9F,EAAI,GAAKrD,KAAK4sB,KAAKzjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAEtCA,EAAE,GAAK,IACT9F,EAAI,IAAMA,EAAI,IAGZ8F,EAAE,GAAK,IACT9F,EAAI,IAAMA,EAAI,IAGTA,IAhBLA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,IAyBXs0B,EAAmBwB,sBAAwB,SAAUv/B,EAAGC,GACtD,IAAIu/B,EAAK,CAACx/B,EAAGC,GACT4+B,EAAetkC,KAAKskC,aAMxB,OAJIA,GACFpB,EAAOgC,eAAeD,EAAIA,EAAIX,GAGzBW,GAWTzB,EAAmB2B,uBAAyB,SAAU1/B,EAAGC,GACvD,IAAIu/B,EAAK,CAACx/B,EAAGC,GACT4I,EAAYtO,KAAKsO,UAMrB,OAJIA,GACF40B,EAAOgC,eAAeD,EAAIA,EAAI32B,GAGzB22B,GAYT5I,EAAcwH,kBAAoB,SAAUzxB,EAAQ4C,GAClDA,EAAIA,GAAK,GACTmuB,EAAUnuB,GACV,IAAIuuB,EAASnxB,EAAOmxB,OAChB90B,EAAQ2D,EAAO3D,OAAS,CAAC,EAAG,GAC5BkC,EAAWyB,EAAOzB,UAAY,EAC9B3F,EAAWoH,EAAOpH,UAAY,CAAC,EAAG,GAsBtC,OApBIu4B,IAEFvuB,EAAE,IAAMuuB,EAAO,GACfvuB,EAAE,IAAMuuB,EAAO,IAGjBN,EAAOx0B,MAAMuG,EAAGA,EAAGvG,GAEfkC,GACFsyB,EAAOmC,OAAOpwB,EAAGA,EAAGrE,GAGlB4yB,IAEFvuB,EAAE,IAAMuuB,EAAO,GACfvuB,EAAE,IAAMuuB,EAAO,IAGjBvuB,EAAE,IAAMhK,EAAS,GACjBgK,EAAE,IAAMhK,EAAS,GACVgK,GAGT,IAAIzV,EAAW88B,EACf35B,EAAOC,QAAUpD,G,uBCnUjB,IAAI8lC,EAAc,EAAQ,QAEtB94B,EAAe,EAAQ,QAEvB3J,EAAS,EAAQ,QAEjB0iC,EAAc,EAAQ,QAQ1B,SAASC,EAAOjC,GACd+B,EAAYv4B,KAAK9M,KAAMsjC,GAGzBiC,EAAOz3B,UAAY,CACjBC,YAAaw3B,EACb9lC,KAAM,QACN+lC,MAAO,SAAUf,EAAKgB,GACpB,IAAIjgC,EAAQxF,KAAKwF,MACbkgC,EAAMlgC,EAAMmgC,MAEhBngC,EAAMX,KAAK4/B,EAAKzkC,KAAMylC,GACtB,IAAIE,EAAQ3lC,KAAK4lC,OAASN,EAAYO,oBAAoBH,EAAK1lC,KAAK4lC,OAAQ5lC,KAAMA,KAAK8lC,QAEvF,GAAKH,GAAUL,EAAYS,aAAaJ,GAAxC,CAWA,IAAIlgC,EAAID,EAAMC,GAAK,EACfC,EAAIF,EAAME,GAAK,EACflE,EAAQgE,EAAMhE,MACd0K,EAAS1G,EAAM0G,OACf85B,EAASL,EAAMnkC,MAAQmkC,EAAMz5B,OAejC,GAba,MAAT1K,GAA2B,MAAV0K,EAEnB1K,EAAQ0K,EAAS85B,EACE,MAAV95B,GAA2B,MAAT1K,EAC3B0K,EAAS1K,EAAQwkC,EACC,MAATxkC,GAA2B,MAAV0K,IAC1B1K,EAAQmkC,EAAMnkC,MACd0K,EAASy5B,EAAMz5B,QAIjBlM,KAAKwkC,aAAaC,GAEdj/B,EAAMygC,QAAUzgC,EAAM0gC,QAAS,CACjC,IAAI9B,EAAK5+B,EAAM4+B,IAAM,EACjBC,EAAK7+B,EAAM6+B,IAAM,EACrBI,EAAI0B,UAAUR,EAAOvB,EAAIC,EAAI7+B,EAAMygC,OAAQzgC,EAAM0gC,QAASzgC,EAAGC,EAAGlE,EAAO0K,QAClE,GAAI1G,EAAM4+B,IAAM5+B,EAAM6+B,GAAI,CAC3BD,EAAK5+B,EAAM4+B,GACXC,EAAK7+B,EAAM6+B,GADf,IAEI4B,EAASzkC,EAAQ4iC,EACjB8B,EAAUh6B,EAASm4B,EACvBI,EAAI0B,UAAUR,EAAOvB,EAAIC,EAAI4B,EAAQC,EAASzgC,EAAGC,EAAGlE,EAAO0K,QAE3Du4B,EAAI0B,UAAUR,EAAOlgC,EAAGC,EAAGlE,EAAO0K,GAIlB,MAAd1G,EAAMG,OAER3F,KAAK2kC,iBAAiBF,GACtBzkC,KAAKomC,aAAa3B,EAAKzkC,KAAKiM,sBAGhCA,gBAAiB,WACf,IAAIzG,EAAQxF,KAAKwF,MAMjB,OAJKxF,KAAKsN,QACRtN,KAAKsN,MAAQ,IAAIf,EAAa/G,EAAMC,GAAK,EAAGD,EAAME,GAAK,EAAGF,EAAMhE,OAAS,EAAGgE,EAAM0G,QAAU,IAGvFlM,KAAKsN,QAGhB1K,EAAOwxB,SAASmR,EAAQF,GACxB,IAAI9lC,EAAWgmC,EACf7iC,EAAOC,QAAUpD,G,uBCvEjB,IAAIokB,EAAgB,EAAQ,QAExB/gB,EAAS,EAAQ,QAoBrB,SAASrD,EAASO,EAASo+B,GACzBp+B,EAAQumC,iBAAiB,UAAU,SAAUvkC,GAC3C,IAAIwkC,EAAQxkC,EAAYykC,WACpBrkB,EAAQokB,EAAMpkB,MAElB,GAAIA,EAAMjX,OAAQ,CAChB,IAAIu7B,EAAWzzB,IACX0zB,GAAY1zB,IAChBnQ,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,IAAIknB,EAAYlnB,EAAKuB,YAAYpT,MAE7B+4B,EAAYF,IACdA,EAAWE,GAGTA,EAAYD,IACdA,EAAWC,MAGf9jC,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,IAAImnB,EAAU,IAAIhjB,EAAc,CAC9BlkB,KAAM,QACN4lB,cAAe,SACfC,WAAY,CAACkhB,EAAUC,GACvBjhB,OAAQ1jB,EAAYI,IAAI,WAEtB0kC,EAAkBD,EAAQE,iBAAiBrnB,EAAKuB,YAAYpT,OAC5Dm5B,EAActnB,EAAKyB,WAAW/e,IAAI,mBACvB,MAAf4kC,EAAsBtnB,EAAK+B,UAAU,QAASulB,GAAetnB,EAAK+B,UAAU,QAASqlB,UAM7FlkC,EAAOC,QAAUpD,G,uBCxDjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElBikC,EAAa,EAAQ,QAErBC,EAAa,EAAQ,QAwBrBriC,EAAQ7B,EAAQ6B,MAChBsiC,EAAK,CAAC,QAAS,UACfC,EAAK,CAAC,IAAK,KACXC,EAAuBH,EAAWxnC,OAAO,CAC3CC,KAAM,gBACN2nC,iBAAiB,EACjBp+B,KAAM,WACJm+B,EAAqBr9B,UAAU9J,KAAM,QAMrCA,KAAKqnC,cAAgB,EAMrBrnC,KAAKsD,MAAMgC,IAAItF,KAAKsnC,gBAAkB,IAAI3iC,GAE1C3E,KAAKsnC,gBAAgBhiC,IAAItF,KAAKunC,mBAO9BvnC,KAAKsD,MAAMgC,IAAItF,KAAKwnC,iBAAmB,IAAI7iC,GAM3C3E,KAAKynC,iBAMPC,WAAY,WACVP,EAAqBr9B,UAAU9J,KAAM,cAErCA,KAAKwnC,iBAAiBjkC,YAEtBvD,KAAKsnC,gBAAgBK,iBAErB3nC,KAAKsnC,gBAAgBM,WAAa,MAMpCC,YAAa,SAAU9jC,EAAW+jC,EAAahoC,EAASyG,EAAKwhC,EAAUjhC,EAAQkhC,GAC7E,IAAIC,EAAKjoC,KAETmnC,EAAqBr9B,UAAU9J,KAAM,cAAe+D,EAAW+jC,EAAahoC,EAASyG,EAAKwhC,EAAUjhC,EAAQkhC,GAC5G,IAAIE,EAAkBloC,KAAKwnC,iBAGvBW,EAAeL,EAAY5lC,IAAI,gBAAgB,GAE9CU,EAAOogB,QAAQmlB,KAClBA,EAAe,CAACA,EAAcA,IAGhCC,EAAiB,WAAY,GAC7B,IAAIC,EAAqBP,EAAY7mB,SAAS,iBAa9C,SAASmnB,EAAiBz7B,EAAM27B,GAC9B,IAAIC,EAAoB57B,EAAO,YAC3B67B,EAAO1lC,EAAQ2lC,WAAWX,EAAY5lC,IAAI,aAAa,GAAM4lC,EAAYY,YAAY/7B,MAAM27B,GAAU,CAGvG1jC,QAAShC,EAAOiC,KAAKojC,EAAGU,QAASV,EAAIM,EAAmBT,EAAavhC,IACpE,CACDd,GAAI0iC,EAAa,GAAK,EACtBziC,GAAIyiC,EAAa,GAAK,EACtB3mC,MAAO2mC,EAAa,GACpBj8B,OAAQi8B,EAAa,KAEvBK,EAAK77B,KAAOA,EACZu7B,EAAgB5iC,IAAIkjC,GAzBtBN,EAAgB5iC,IAAI,IAAIxC,EAAQyC,KAAK,CACnCoH,KAAM,WACNnH,MAAO,CACL3B,SAAUwkC,EAAmBvkC,eAC7B8kC,KAAMP,EAAmBzkC,UACzBgC,kBAAmB,SACnBC,UAAW,UAEb+L,QAAQ,KAEVw2B,EAAiB,WAAY,IAsB/BS,YAAa,SAAUf,EAAa/jC,EAAW6G,EAASk+B,EAAef,EAAUC,GAC/E,IAAIe,EAAgB/oC,KAAKgpC,mBACrBC,EAAYnB,EAAYY,YAAYvhC,MACpC+hC,EAAKjC,EAAGgC,GACRE,EAAKjC,EAAG+B,GACRG,EAAKnC,EAAG,EAAIgC,GACZI,EAAKnC,EAAG,EAAI+B,GAChBlB,GAAYhB,EAAW/gC,IACvB,aAAc+iC,EAAejB,EAAY5lC,IAAI,mBAAmB,IAChE,IAAIonC,EAAoBxB,EAAY5lC,IAAI,qBAAqB,GACzDqnC,EAAeR,EAAc98B,kBAC7Bu9B,EAAc,EAAED,EAAa9jC,GAAI8jC,EAAa7jC,GAC9C+jC,EAAiB7mC,EAAO8E,MAAMkD,GAClCm9B,IAAa0B,EAAeP,GAAMt+B,EAAQs+B,GAAMK,EAAaL,GAAMI,GAEnE,IAAII,EAAW1pC,KAAK2pC,4BAA4B7B,EAAagB,EAAeW,EAAgBR,EAAWC,EAAIE,EAAIC,GAE/G,GAAItB,EAAU,CACZ,GAAyB,QAArBC,EACFwB,EAAYP,IAAcS,EAASR,GAAMI,MACpC,CACL,IAAIx0B,EAASy0B,EAAaL,GAAMI,EAChCE,EAAYP,IAAcn0B,EAC1B40B,EAASP,IAAOr0B,EAGlB40B,EAASR,IAAOK,EAAaL,GAAMI,EACnCE,EAAY,EAAIP,IAAcS,EAASL,GAAMK,EAASN,GAAM,EAAIG,EAAaH,GAAM,EACnFM,EAASN,GAAMv9B,KAAK4E,IAAIi5B,EAASN,GAAKG,EAAaH,IACnDM,EAASL,GAAMx9B,KAAK6E,IAAIg5B,EAASL,GAAKE,EAAaF,GAAMG,EAAY,EAAIP,IACzEF,EAAc/oB,KAAK,WAAYwpB,GAGjC,OAAOE,GAETC,4BAA6B,SAAU7B,EAAagB,EAAel+B,EAASq+B,EAAWC,EAAIE,EAAIC,GAC7F,IAAIO,EAAe5pC,KAAKunC,kBACpBsC,EAAiB7pC,KAAKsnC,gBACtBY,EAAkBloC,KAAKwnC,iBAE3BT,EAAW/gC,IAAI8hC,EAAY5lC,IAAI,UAAW0nC,EAAc9B,EAAY5lC,IAAI,WAAa+mC,EAAmBr+B,EAAQpJ,MAAf,KAAsBynC,EAAY,KAAOr+B,EAAQsB,QAClJ66B,EAAW/gC,IACX,aAAckiC,EAAiBJ,EAAY5lC,IAAI,qBAAqB,IACpE,IAAI4nC,EAAcF,EAAa39B,kBAC3B89B,EAAiB7B,EAAgBj8B,kBACjC+9B,EAAiBhqC,KAAKynC,gBAAkBqC,EAAYZ,GAAMt+B,EAAQs+B,GAClEe,EAAa,EAAEH,EAAYrkC,GAAIqkC,EAAYpkC,GAI1CojC,IACHmB,EAAWhB,GAAaW,EAAa5+B,SAASi+B,IAIhD,IAAIiB,EAAe,CAAC,EAAG,GACnBC,EAAgB,EAAEJ,EAAetkC,GAAIskC,EAAerkC,GACpD0kC,EAAgBxnC,EAAO6xB,UAAUqT,EAAY5lC,IAAI,iBAAiB,GAAO4lC,EAAY5lC,IAAI,WAAW,IAExG,GAAI8nC,EAAgB,CAClB,IAAIK,EAAqBvC,EAAY5lC,IAAI,sBAAsB,GAEpC,QAAvBmoC,EACFF,EAAclB,IAAcr+B,EAAQs+B,GAAMa,EAAeb,GAGvDgB,EAAajB,IAAcc,EAAeb,GAAMkB,EAKtDD,EAAc,EAAIlB,IAAca,EAAYV,GAAM,EAAIW,EAAeX,GAAM,EAC3EQ,EAAa5pB,KAAK,WAAYiqB,GAC9BJ,EAAe7pB,KAAK,WAAYkqB,GAChChC,EAAgBloB,KAAK,WAAYmqB,GAIjC,IAAIT,EAAW,CACbjkC,EAAG,EACHC,EAAG,GASL,GANAgkC,EAASR,GAAMc,EAAiBp/B,EAAQs+B,GAAMY,EAAYZ,GAC1DQ,EAASN,GAAMv9B,KAAK4E,IAAIq5B,EAAYV,GAAKW,EAAeX,IAExDM,EAASL,GAAMx9B,KAAK6E,IAAI,EAAGq5B,EAAeV,GAAMc,EAAc,EAAIlB,IAClEY,EAAejC,WAAah9B,EAAQs+B,GAEhCc,EAAgB,CAClB,IAAIM,EAAY,CACd7kC,EAAG,EACHC,EAAG,GAEL4kC,EAAUpB,GAAMr9B,KAAK4E,IAAI7F,EAAQs+B,GAAMa,EAAeb,GAAMkB,EAAe,GAC3EE,EAAUlB,GAAMM,EAASN,GACzBS,EAAeU,YAAY,IAAIznC,EAAQyO,KAAK,CAC1CC,MAAO84B,KAITT,EAAejC,WAAa0C,EAAUpB,QAGtChB,EAAgB9K,WAAU,SAAU7d,GAClCA,EAAMS,KAAK,CACTwqB,WAAW,EACX54B,QAAQ,OAMd,IAAI64B,EAAWzqC,KAAK0qC,aAAa5C,GAUjC,OARsB,MAAtB2C,EAASE,WAAqB7nC,EAAQk8B,YAAY4K,EAAc,CAC9D5+B,SAAUy/B,EAASG,mBAGrBZ,GAAiBlC,GAEjB9nC,KAAK6qC,oBAAoB/C,EAAa2C,GAE/Bf,GAETf,QAAS,SAAUmC,EAAIhD,EAAavhC,GAClC,IAAIwkC,EAAkB/qC,KAAK0qC,aAAa5C,GAAagD,GAElC,MAAnBC,GAA2BxkC,EAAIC,eAAe,CAC5C/G,KAAM,eACNsrC,gBAAiBA,EACjBC,SAAUlD,EAAY3/B,MAG1B0iC,oBAAqB,SAAU/C,EAAa2C,GAC1C,IAAIvC,EAAkBloC,KAAKwnC,iBAC3B5kC,EAAOzD,KAAK,CAAC,WAAY,aAAa,SAAUwN,GAC9C,IAAIs+B,EAA0C,MAAhCR,EAAS99B,EAAO,aAC1B67B,EAAON,EAAgBgD,YAAYv+B,GAEnC67B,IACFA,EAAK3H,SAAS,OAAQoK,EAAUnD,EAAY5lC,IAAI,iBAAiB,GAAQ4lC,EAAY5lC,IAAI,yBAAyB,IAClHsmC,EAAK2C,OAASF,EAAU,UAAY,cAGxC,IAAIG,EAAWlD,EAAgBgD,YAAY,YACvCG,EAAgBvD,EAAY5lC,IAAI,iBAChCyoC,EAAYF,EAASE,UACrBW,EAAuB,MAAbX,EAAoBA,EAAY,EAAI,EAC9CY,EAAQd,EAASe,UACrBJ,GAAYC,GAAiBD,EAASvK,SAAS,OAAQj+B,EAAOid,SAASwrB,GAAiBA,EAAc5oC,QAAQ,YAAa6oC,GAAS7oC,QAAQ,UAAW8oC,GAASF,EAAc,CAC5KC,QAASA,EACTC,MAAOA,MAcXb,aAAc,SAAU5C,GACtB,IAAIiD,EAAkBjD,EAAY5lC,IAAI,mBAAmB,GACrD0nC,EAAe5pC,KAAKunC,kBACpBkE,EAAoBzrC,KAAKsnC,gBAAgBM,WACzCqB,EAAYnB,EAAYY,YAAYvhC,MACpC+hC,EAAKjC,EAAGgC,GACRE,EAAKjC,EAAG+B,GAERyC,EAAkB1rC,KAAK2rC,qBAAqBZ,GAE5ClsB,EAAW+qB,EAAa/qB,WACxB+sB,EAAa/sB,EAAS6sB,GACtBG,EAAYhtB,EAAS5T,OACrB6gC,EAAUD,EAAgB,EAAJ,EACtBllB,EAAS,CACXikB,gBAAiBhB,EAAa5+B,SAAS1D,QACvCkkC,UAAWM,EACXnB,UAAWmB,EAAS,EACpBC,kBAAmB,KACnBC,kBAAmB,MAGrB,IAAKJ,EACH,OAAOjlB,EAGT,IAAIslB,EAAiBC,EAAYN,GACjCjlB,EAAOikB,gBAAgB3B,IAAcgD,EAAeE,EAYpD,IAAK,IAAIl+B,EAAIy9B,EAAkB,EAAGU,EAAmBH,EAAgBI,EAAiBJ,EAAgBK,EAAe,KAAMr+B,GAAK49B,IAAa59B,EAC3Iq+B,EAAeJ,EAAYrtB,EAAS5Q,MAGnCq+B,GAAgBD,EAAe1f,EAAIyf,EAAiBD,EAAIV,GAEzDa,IAAiBC,EAAUD,EAAcF,EAAiBD,MAEtDC,EADEC,EAAep+B,EAAIm+B,EAAiBn+B,EACnBo+B,EAGAC,EAGjBF,IAC8B,MAA5BzlB,EAAOqlB,oBACTrlB,EAAOqlB,kBAAoBI,EAAiBn+B,KAG5C0Y,EAAO6kB,YAIba,EAAiBC,EAGnB,IAASr+B,EAAIy9B,EAAkB,EAAGU,EAAmBH,EAAgBI,EAAiBJ,EAAgBK,EAAe,KAAMr+B,IAAM,IAAKA,EACpIq+B,EAAeJ,EAAYrtB,EAAS5Q,IAIlCq+B,GAAiBC,EAAUF,EAAgBC,EAAaH,MAC1DC,EAAiBn+B,EAAIo+B,EAAep+B,KAClCo+B,EAAiBD,EAEe,MAA5BzlB,EAAOolB,oBACTplB,EAAOolB,kBAAoBK,EAAiBn+B,KAG5C0Y,EAAO6kB,YACP7kB,EAAOgkB,WAGXyB,EAAmBE,EAGrB,OAAO3lB,EAEP,SAASulB,EAAYzgB,GACnB,GAAIA,EAAI,CACN,IAAI+gB,EAAW/gB,EAAGxf,kBACdsI,EAAQi4B,EAASrD,GAAM1d,EAAGzgB,SAASi+B,GACvC,MAAO,CACLkD,EAAG53B,EACHoY,EAAGpY,EAAQi4B,EAAStD,GACpBj7B,EAAGwd,EAAGghB,oBAKZ,SAASF,EAAUG,EAAUC,GAC3B,OAAOD,EAAS/f,GAAKggB,GAAYD,EAASP,GAAKQ,EAAWlB,IAG9DE,qBAAsB,SAAUiB,GAC9B,IAAK5sC,KAAKynC,gBACR,OAAO,EAGT,IAAItgC,EAEA0lC,EADAjD,EAAe5pC,KAAKunC,kBAiBxB,OAfAqC,EAAaxM,WAAU,SAAU7d,EAAOrP,GACtC,IAAI48B,EAAgBvtB,EAAMktB,kBAMN,MAAhBI,GAAyC,MAAjBC,IAC1BD,EAAe38B,GAGb48B,IAAkBF,IACpBzlC,EAAQ+I,MAGI,MAAT/I,EAAgBA,EAAQ0lC,KAG/BttC,EAAW4nC,EACfzkC,EAAOC,QAAUpD,G,uBC1ajB,IAAIqD,EAAS,EAAQ,QAEjBkxB,EAAO,EAAQ,QA6BfiZ,EAAe,SAAUh9B,EAAKtB,EAAOulB,EAAaC,EAAU+Y,GAC9DlZ,EAAKhnB,KAAK9M,KAAM+P,EAAKtB,EAAOulB,GAU5Bh0B,KAAKP,KAAOw0B,GAAY,QAMxBj0B,KAAKgtC,UAAYA,GAGnBD,EAAaj/B,UAAY,CACvBC,YAAag/B,EAMbjd,MAAO,KAKPqE,aAAc,WACZ,MAA0D,eAAnDn0B,KAAKM,iBAAiB2gB,WAAW/e,IAAI,YAGhDU,EAAOwxB,SAAS2Y,EAAcjZ,GAC9B,IAAIv0B,EAAWwtC,EACfrqC,EAAOC,QAAUpD,G,uBCrEjB,IAAIikB,EAAU,EAAQ,QAIlB/a,GAFU+a,EAAQC,QAET,EAAQ,SAEjBwpB,EAAYxkC,EAAOwkC,UACnBC,EAAmBzkC,EAAOykC,iBAE1BhuC,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cACtBD,EAAOD,EAAMC,KACb8H,EAAM/H,EAAM+H,IACZ+b,EAAU9jB,EAAM8jB,QAChBnD,EAAW3gB,EAAM2gB,SACjBoG,EAAW/mB,EAAM+mB,SACjBknB,EAAejuC,EAAMiuC,aACrBt1B,EAAc3Y,EAAM2Y,YACpBrY,EAASN,EAAMM,OAGf4tC,GAFSluC,EAAMmuC,OAEN,EAAQ,SAEjBj6B,EAAc,EAAQ,QAEtBk6B,EAAyBl6B,EAAYk6B,uBACrCC,EAA2Bn6B,EAAYm6B,yBACvCC,EAA4Bp6B,EAAYo6B,0BACxCC,EAA8Br6B,EAAYq6B,4BAC1CC,EAAwBt6B,EAAYs6B,sBACpCC,EAA4Bv6B,EAAYu6B,0BACxCC,EAAuBx6B,EAAYw6B,qBAqBnCC,EAAa,CACfC,KAAM,EAENC,MAAO,EAEPC,IAAK,GAGHC,EAAQhB,IAOZ,SAAS95B,EAAmB+6B,GAC1B,IAAI3tC,EAAO2tC,EAAaruC,OAAOE,OAC3BouC,EAAeT,EAEnB,GAAIP,EAAa5sC,GACf4tC,EAAeR,OACV,GAAI3qB,EAAQziB,GAAO,CAEJ,IAAhBA,EAAK0K,SACPkjC,EAAeZ,GAGjB,IAAK,IAAIt/B,EAAI,EAAGqK,EAAM/X,EAAK0K,OAAQgD,EAAIqK,EAAKrK,IAAK,CAC/C,IAAIzJ,EAAOjE,EAAK0N,GAEhB,GAAY,MAARzJ,EAAJ,CAEO,GAAIwe,EAAQxe,GAAO,CACxB2pC,EAAeZ,EACf,MACK,GAAItnB,EAASzhB,GAAO,CACzB2pC,EAAeX,EACf,cAGC,GAAIvnB,EAAS1lB,IAClB,IAAK,IAAIwH,KAAOxH,EACd,GAAIA,EAAKwc,eAAehV,IAAQ8P,EAAYtX,EAAKwH,IAAO,CACtDomC,EAAeV,EACf,YAGC,GAAY,MAARltC,EACT,MAAM,IAAIoW,MAAM,gBAGlBs3B,EAAMC,GAAcC,aAAeA,EA2BrC,SAASluC,EAAU6B,GACjB,OAAOmsC,EAAMnsC,GAAa/B,OAQ5B,SAASquC,EAAqBtuC,GAE5BmuC,EAAMnuC,GAASuuC,WAAajvC,IAoB9B,SAASkvC,EAAcxsC,GACrB,IAAIysC,EAAezsC,EAAYjC,OAC3BU,EAAOguC,EAAahuC,KACpB4tC,EAAehB,EAAa5sC,GAAQotC,EAA4BL,EAChEkB,GAAc,EACdl7B,EAAiBi7B,EAAaj7B,eAC9BC,EAAeg7B,EAAah7B,aAC5Bk7B,EAAmBF,EAAapsC,WAChC+rC,EAAeQ,EAAgB5sC,GAEnC,GAAIosC,EAAc,CAChB,IAAIS,EAAgBT,EAAaruC,OACjCU,EAAOouC,EAAc5uC,OACrBouC,EAAeF,EAAMC,GAAcC,aACnCK,GAAc,EAEdl7B,EAAiBA,GAAkBq7B,EAAcr7B,eACjC,MAAhBC,IAAyBA,EAAeo7B,EAAcp7B,cACtDk7B,EAAmBA,GAAoBE,EAAcxsC,WAGvD,IAAIysC,EAAiBC,EAAqBtuC,EAAM4tC,EAAc76B,EAAgBC,EAAck7B,GAC5FR,EAAMnsC,GAAa/B,OAAS,IAAIqtC,EAAO,CACrC7sC,KAAMA,EACNiuC,YAAaA,EACbl7B,eAAgBA,EAChB66B,aAAcA,EACdM,iBAAkBG,EAAeH,iBACjCK,WAAYF,EAAeE,WAC3BC,sBAAuBH,EAAeG,sBAEtChtC,aAAcwsC,EAAaS,SAK/B,SAASH,EAAqBtuC,EAAM4tC,EAAc76B,EAAgBC,EAAck7B,GAC9E,IAAKluC,EACH,MAAO,CACLkuC,iBAAkBQ,EAA0BR,IAIhD,IAAIM,EACAD,EAEJ,GAAIX,IAAiBZ,EAKE,SAAjBh6B,GAA2C,MAAhBA,EAC7B27B,GAAqB,SAAUzjC,GAElB,MAAPA,GAAuB,MAARA,IACboU,EAASpU,GACG,MAAdqjC,IAAuBA,EAAa,GAEpCA,EAAa,KAIhBx7B,EAAgB/S,EAAM,IAEzBuuC,EAAav7B,EAAe,EAAI,EAG7Bk7B,GAAmC,IAAfK,IACvBL,EAAmB,GACnBS,GAAqB,SAAUzjC,EAAKtE,GAClCsnC,EAAiBtnC,GAAgB,MAAPsE,EAAcA,EAAM,KAC7C6H,EAAgB/S,IAGrBwuC,EAAwBN,EAAmBA,EAAiBxjC,OAASqI,IAAmBs6B,EAAuBrtC,EAAK0K,OAAS1K,EAAK,GAAKA,EAAK,GAAG0K,OAAS,UACnJ,GAAIkjC,IAAiBX,EACrBiB,IACHA,EAAmBU,EAA4B5uC,SAE5C,GAAI4tC,IAAiBV,EACrBgB,IACHA,EAAmB,GACnBtvC,EAAKoB,GAAM,SAAU6uC,EAAQrnC,GAC3B0mC,EAAiB5tC,KAAKkH,YAGrB,GAAIomC,IAAiBb,EAAwB,CAClD,IAAI+B,EAASnC,EAAiB3sC,EAAK,IACnCwuC,EAAwB/rB,EAAQqsB,IAAWA,EAAOpkC,QAAU,EAG9D,MAAO,CACL6jC,WAAYA,EACZL,iBAAkBQ,EAA0BR,GAC5CM,sBAAuBA,GAO3B,SAASE,EAA0BR,GACjC,GAAKA,EAAL,CAKA,IAAI7hC,EAAUxN,IACd,OAAO6H,EAAIwnC,GAAkB,SAAUjqC,EAAM2C,GAO3C,GANA3C,EAAOhF,EAAO,GAAIymB,EAASzhB,GAAQA,EAAO,CACxCmI,KAAMnI,IAKS,MAAbA,EAAKmI,KACP,OAAOnI,EAITA,EAAKmI,MAAQ,GAMW,MAApBnI,EAAK8qC,cACP9qC,EAAK8qC,YAAc9qC,EAAKmI,MAG1B,IAAI4iC,EAAQ3iC,EAAQ1K,IAAIsC,EAAKmI,MAU7B,OARK4iC,EAKH/qC,EAAKmI,MAAQ,IAAM4iC,EAAMptB,QAJzBvV,EAAQrK,IAAIiC,EAAKmI,KAAM,CACrBwV,MAAO,IAMJ3d,MAIX,SAAS0qC,EAAqB/wB,EAAI7K,EAAgB/S,EAAMivC,GAGtD,GAFW,MAAXA,IAAoBA,EAAUz8B,KAE1BO,IAAmBs6B,EACrB,IAAK,IAAI3/B,EAAI,EAAGA,EAAI1N,EAAK0K,QAAUgD,EAAIuhC,EAASvhC,IAC9CkQ,EAAG5d,EAAK0N,GAAK1N,EAAK0N,GAAG,GAAK,KAAMA,OAGlC,KAAIohC,EAAS9uC,EAAK,IAAM,GAExB,IAAS0N,EAAI,EAAGA,EAAIohC,EAAOpkC,QAAUgD,EAAIuhC,EAASvhC,IAChDkQ,EAAGkxB,EAAOphC,GAAIA,IAKpB,SAASkhC,EAA4B5uC,GACnC,IACIwlB,EADA0pB,EAAa,EAGjB,MAAOA,EAAalvC,EAAK0K,UAAY8a,EAAMxlB,EAAKkvC,OAGhD,GAAI1pB,EAAK,CACP,IAAI5jB,EAAa,GAIjB,OAHAhD,EAAK4mB,GAAK,SAAUpY,EAAO5F,GACzB5F,EAAWtB,KAAKkH,MAEX5F,GAuBX,SAASutC,EAAgCpmC,EAAiBxH,EAAa/B,GACrE,IAAIivC,EAAS,GACTd,EAAeQ,EAAgB5sC,GAEnC,IAAKosC,IAAiB5kC,EACpB,OAAO0lC,EAGT,IAKIW,EACAC,EANAC,EAAiB,GACjBC,EAAmB,GACnBhwC,EAAUgC,EAAYhC,QACtBuuC,EAAaJ,EAAMnuC,GAASuuC,WAC5BtmC,EAAMmmC,EAAajmC,IAAM,IAAMlI,EAAOuT,eAG1ChK,EAAkBA,EAAgBhC,QAClCnI,EAAKmK,GAAiB,SAAUymC,EAAcC,IAC3C/pB,EAAS8pB,KAAkBzmC,EAAgB0mC,GAAe,CACzDrjC,KAAMojC,IAGkB,YAAtBA,EAAatwC,MAA8C,MAAxBkwC,IACrCA,EAAuBK,EACvBJ,EAA2BK,EAA0B3mC,EAAgB0mC,KAGvEhB,EAAOe,EAAapjC,MAAQ,MAE9B,IAAIujC,EAAgB7B,EAAWnsC,IAAI6F,IAAQsmC,EAAW9rC,IAAIwF,EAAK,CAC7DooC,eAAgBP,EAChBQ,YAAa,IA+Bf,SAASC,EAAQC,EAAWC,EAASC,GACnC,IAAK,IAAIviC,EAAI,EAAGA,EAAIuiC,EAAUviC,IAC5BqiC,EAAUzvC,KAAK0vC,EAAUtiC,GAI7B,SAASgiC,EAA0BF,GACjC,IAAIU,EAAUV,EAAaU,QAC3B,OAAOA,EAAUA,EAAQxlC,OAAS,EAKpC,OAxCA9L,EAAKmK,GAAiB,SAAUymC,EAAcC,GAC5C,IAAIU,EAAeX,EAAapjC,KAC5BwV,EAAQ8tB,EAA0BF,GAEtC,GAA4B,MAAxBJ,EAA8B,CAChC,IAAIp7B,EAAQ27B,EAAcE,YAC1BC,EAAQrB,EAAO0B,GAAen8B,EAAO4N,GACrCkuB,EAAQP,EAAkBv7B,EAAO4N,GACjC+tB,EAAcE,aAAejuB,OAO1B,GAAIwtB,IAAyBK,EAC9BK,EAAQrB,EAAO0B,GAAe,EAAGvuB,GACjCkuB,EAAQR,EAAgB,EAAG1tB,OAExB,CACG5N,EAAQ27B,EAAcC,eAC1BE,EAAQrB,EAAO0B,GAAen8B,EAAO4N,GACrCkuB,EAAQP,EAAkBv7B,EAAO4N,GACjC+tB,EAAcC,gBAAkBhuB,MAexC0tB,EAAe5kC,SAAW+jC,EAAO2B,SAAWd,GAC5CC,EAAiB7kC,SAAW+jC,EAAO4B,WAAad,GACzCd,EAWT,SAASpmC,EAA6B9G,EAAa/B,EAAQ8wC,GACzD,IAAI7B,EAAS,GACTd,EAAeQ,EAAgB5sC,GAEnC,IAAKosC,EACH,OAAOc,EAGT,IAEI8B,EAFA3C,EAAepuC,EAAOouC,aACtBM,EAAmB1uC,EAAO0uC,iBAG1BN,IAAiBX,GAA6BW,IAAiBV,GACjEtuC,EAAKsvC,GAAkB,SAAU1+B,EAAKG,GACK,UAApC+V,EAASlW,GAAOA,EAAIpD,KAAOoD,KAC9B+gC,EAAwB5gC,MAM9B,IAAI6gC,EAAY,WAKd,IAJA,IAAIC,EAAU,GACVC,EAAU,GACVC,EAAe,GAEVjjC,EAAI,EAAGqK,EAAMzM,KAAK6E,IAAI,EAAGmgC,GAAW5iC,EAAIqK,EAAKrK,IAAK,CACzD,IAAIkjC,EAAcC,EAAerxC,EAAOQ,KAAM4tC,EAAcpuC,EAAOuT,eAAgBm7B,EAAkB1uC,EAAO+uC,WAAY7gC,GACxHijC,EAAarwC,KAAKswC,GAClB,IAAIE,EAAeF,IAAgBtD,EAAWG,IAY9C,GARIqD,GAA6B,MAAbL,EAAQ7qB,GAAalY,IAAM6iC,IAC7CE,EAAQ7qB,EAAIlY,IAGG,MAAb+iC,EAAQp9B,GAAao9B,EAAQp9B,IAAMo9B,EAAQ7qB,IAAMkrB,GAAgBH,EAAaF,EAAQp9B,KAAOi6B,EAAWG,OAC1GgD,EAAQp9B,EAAI3F,GAGVqjC,EAAUN,IAAYE,EAAaF,EAAQp9B,KAAOi6B,EAAWG,IAC/D,OAAOgD,EASJK,IACCF,IAAgBtD,EAAWE,OAAsB,MAAbkD,EAAQ9qB,GAAalY,IAAM6iC,IACjEG,EAAQ9qB,EAAIlY,GAGG,MAAbgjC,EAAQr9B,GAAaq9B,EAAQr9B,IAAMq9B,EAAQ9qB,IAC7C8qB,EAAQr9B,EAAI3F,IAKlB,SAASqjC,EAAUP,GACjB,OAAsB,MAAfA,EAAU5qB,GAA4B,MAAf4qB,EAAUn9B,EAG1C,OAAO09B,EAAUN,GAAWA,EAAUM,EAAUL,GAAWA,EAAU,KA7CvD,GAgDhB,GAAIF,EAAW,CACb/B,EAAOrhC,MAAQojC,EAAU5qB,EAEzB,IAAIorB,EAAwC,MAAzBT,EAAgCA,EAAwBC,EAAUn9B,EAGrFo7B,EAAO2B,SAAW,CAACY,GACnBvC,EAAO4B,WAAa,CAACW,GAGvB,OAAOvC,EAOT,SAASN,EAAgB5sC,GACvB,IAAIjC,EAASiC,EAAYjC,OAMrB2xC,EAAW3xC,EAAOU,KAEtB,IAAKixC,EACH,OAAO1vC,EAAYhC,QAAQmC,aAAa,UAAWpC,EAAO4xC,cAAgB,GAc9E,SAASC,EAAa3xC,EAAQ4xC,GAC5B,OAAOP,EAAerxC,EAAOQ,KAAMR,EAAOouC,aAAcpuC,EAAOuT,eAAgBvT,EAAO0uC,iBAAkB1uC,EAAO+uC,WAAY6C,GAK7H,SAASP,EAAe7wC,EAAM4tC,EAAc76B,EAAgBm7B,EAAkBK,EAAY6C,GACxF,IAAIhrB,EAUAnkB,EACAovC,EATApC,EAAU,EAEd,GAAIrC,EAAa5sC,GACf,OAAOstC,EAAWG,IAQpB,GAAIS,EAAkB,CACpB,IAAIoD,EAAapD,EAAiBkD,GAE9B1rB,EAAS4rB,IACXrvC,EAAUqvC,EAAWllC,KACrBilC,EAAUC,EAAWpyC,MACZogB,EAASgyB,KAClBrvC,EAAUqvC,GAId,GAAe,MAAXD,EACF,MAAmB,YAAZA,EAAwB/D,EAAWC,KAAOD,EAAWG,IAG9D,GAAIG,IAAiBZ,EACnB,GAAIj6B,IAAmBs6B,GAGrB,IAFA,IAAIkE,EAASvxC,EAAKoxC,GAET1jC,EAAI,EAAGA,GAAK6jC,GAAU,IAAI7mC,QAAUgD,EAAIuhC,EAASvhC,IACxD,GAAsD,OAAjD0Y,EAASorB,EAAYD,EAAOhD,EAAa7gC,KAC5C,OAAO0Y,OAIX,IAAS1Y,EAAI,EAAGA,EAAI1N,EAAK0K,QAAUgD,EAAIuhC,EAASvhC,IAAK,CACnD,IAAI+jC,EAAMzxC,EAAKuuC,EAAa7gC,GAE5B,GAAI+jC,GAAgD,OAAxCrrB,EAASorB,EAAYC,EAAIL,KACnC,OAAOhrB,OAIR,GAAIwnB,IAAiBX,EAA2B,CACrD,IAAKhrC,EACH,OAAOqrC,EAAWG,IAGpB,IAAS//B,EAAI,EAAGA,EAAI1N,EAAK0K,QAAUgD,EAAIuhC,EAASvhC,IAAK,CACnD,IAAIzJ,EAAOjE,EAAK0N,GAEhB,GAAIzJ,GAAiD,OAAxCmiB,EAASorB,EAAYvtC,EAAKhC,KACrC,OAAOmkB,QAGN,GAAIwnB,IAAiBV,EAA6B,CACvD,IAAKjrC,EACH,OAAOqrC,EAAWG,IAGhB8D,EAASvxC,EAAKiC,GAElB,IAAKsvC,GAAU3E,EAAa2E,GAC1B,OAAOjE,EAAWG,IAGpB,IAAS//B,EAAI,EAAGA,EAAI6jC,EAAO7mC,QAAUgD,EAAIuhC,EAASvhC,IAChD,GAAyC,OAApC0Y,EAASorB,EAAYD,EAAO7jC,KAC/B,OAAO0Y,OAGN,GAAIwnB,IAAiBb,EAC1B,IAASr/B,EAAI,EAAGA,EAAI1N,EAAK0K,QAAUgD,EAAIuhC,EAASvhC,IAAK,CAC/CzJ,EAAOjE,EAAK0N,GAAhB,IACIxC,EAAMyhC,EAAiB1oC,GAE3B,IAAKwe,EAAQvX,GACX,OAAOoiC,EAAWG,IAGpB,GAA6C,OAAxCrnB,EAASorB,EAAYtmC,EAAIkmC,KAC5B,OAAOhrB,EAKb,SAASorB,EAAYtmC,GACnB,IAAIwmC,EAAQpyB,EAASpU,GAGrB,OAAW,MAAPA,GAAekuB,SAASluB,IAAgB,KAARA,EAC3BwmC,EAAQpE,EAAWE,MAAQF,EAAWG,IACpCiE,GAAiB,MAARxmC,EACXoiC,EAAWC,UADb,EAKT,OAAOD,EAAWG,IAGpBrrC,EAAQkrC,WAAaA,EACrBlrC,EAAQwQ,mBAAqBA,EAC7BxQ,EAAQ1C,UAAYA,EACpB0C,EAAQyrC,qBAAuBA,EAC/BzrC,EAAQ2rC,cAAgBA,EACxB3rC,EAAQ+sC,gCAAkCA,EAC1C/sC,EAAQiG,6BAA+BA,EACvCjG,EAAQ+uC,aAAeA,G,uBC7pBvB,IAAI5uC,EAAU,EAAQ,QAElBovC,EAAO,EAAQ,QAEftvC,EAAS,EAAQ,QAEjBG,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBmvC,EAAO,EAAQ,QAEfC,EAAY,EAAQ,QA+BxB,SAASC,EAAWC,EAAUpiC,EAAKqiC,GACjCzvC,EAAQ6B,MAAMmI,KAAK9M,MACnBA,KAAKsF,IAAItF,KAAKwyC,WAAWF,EAAUpiC,EAAKqiC,IAExCvyC,KAAKyyC,oBAAoBH,EAAUpiC,GAGrC,IAAIwiC,EAAkBL,EAAWvkC,UAEjC4kC,EAAgBF,WAAa,SAAUF,EAAUpiC,EAAKqiC,GACpD,OAAO,IAAIL,EAAKI,EAAUpiC,EAAKqiC,IAGjCG,EAAgBD,oBAAsB,SAAUH,EAAUpiC,GACxD,IAAIiR,EAAYmxB,EAASlxB,aAAalR,GAClCyiC,EAAcxxB,EAAUF,SAAS,UACjC3U,EAAOqmC,EAAYzwC,IAAI,cACvB0wC,EAAaD,EAAYzwC,IAAI,UAE5BU,EAAOogB,QAAQ1W,KAClBA,EAAO,CAACA,EAAMA,IAGhB,IAAIsL,EAAQ+6B,EAAYzwC,IAAI,UAAYowC,EAAS3wB,cAAczR,EAAK,SAChE2iC,EAAS7yC,KAAK8+B,QAAQ,GAEtB9+B,KAAK8yC,cAAgBF,IAEvB5yC,KAAKqiC,OAAOwQ,GACZA,EAAS7vC,EAAa4vC,GAAa,IAAM,GAAK,EAAG,EAAGh7B,GACpDi7B,EAAOzhC,GAAK,IACZyhC,EAAO9R,SAAU,EACjB/gC,KAAKsF,IAAIutC,IAINA,IAKLA,EAAOhS,SAAS,cAAejpB,GAC/Bi7B,EAAOhS,SAAS8R,EAAYhhC,aAAa,CAAC,WAC1CkhC,EAAO7yB,KAAK,QAAS1T,GACrBumC,EAAOE,SAASn7B,GAChBi7B,EAAO7yB,KAAK,QAAS1T,GACrBtM,KAAK8yC,YAAcF,EACnB5yC,KAAKgzC,aAAe1mC,EAEpBtM,KAAKizC,uBAAuBX,EAAUK,EAAaziC,KAGrDwiC,EAAgBO,uBAAyB,SAAUX,EAAUK,EAAaziC,GACxE,IAAI2iC,EAAS7yC,KAAK8+B,QAAQ,GAE1B,GAAK+T,EAAL,CAIA,IAAIp1B,EAAOzd,KACPuX,EAAS+6B,EAAStxB,cAAc9Q,GAChCgjC,EAAqC,IAA5BP,EAAYzwC,IAAI,UACzB+Z,EAAO02B,EAAYzwC,IAAI,QACvBixC,EAAgBR,EAAYzwC,IAAI,iBAChCkxC,EAAYxwC,EAAO0B,SAASquC,EAAYzwC,IAAI,UAAU,SAAUgO,GAClE,OAAOA,EAAMoiC,EAASnwB,QAAU+wB,EAAS,KAEvCG,EAAmC,oBAAdD,EASzB,GAPAP,EAAOS,QAAS,EAChBtzC,KAAKuzC,sBAAsBV,EAAQt7B,GAE/B47B,EAAgB,IAClBD,EAASlzC,KAAKwzC,cAAcX,GAAUM,EAAgB,KAGpDD,IAAWlzC,KAAKyzC,SAAWx3B,IAASjc,KAAKkc,MAAO,CAClD22B,EAAOa,gBACP,IAAIv3B,EAAQi3B,EAERC,IACFl3B,EAAQi3B,EAAUljC,IAGhB2iC,EAAOc,IAAM,IACfx3B,GAAS+2B,EAASL,EAAOc,KAG3Bd,EAAOc,IAAM,EACb,IAAIz5B,EAAW24B,EAAOe,QAAQ,GAAI33B,GAAMW,KAAKs2B,EAAQ,CACnDS,IAAK,IACJx3B,MAAMA,GAAOa,QAAO,WACrBS,EAAKo2B,qBAAqBhB,MAGvB52B,GACH/B,EAASgE,MAAK,WACZT,EAAK4kB,OAAOwQ,MAIhB34B,EAAS3F,QAGXvU,KAAKyzC,QAAUP,EACflzC,KAAKkc,MAAQD,IAGfy2B,EAAgBc,cAAgB,SAAUX,GAExC,OAAOV,EAAK5Z,KAAKsa,EAAOiB,KAAMjB,EAAOkB,OAAS5B,EAAK5Z,KAAKsa,EAAOkB,MAAOlB,EAAOmB,OAG/EtB,EAAgBa,sBAAwB,SAAUV,EAAQt7B,GACxDs7B,EAAOiB,KAAOv8B,EAAO,GACrBs7B,EAAOmB,KAAOz8B,EAAO,GACrBs7B,EAAOkB,MAAQx8B,EAAO,IAAM,EAAEA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,GAAIA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,IAGlGm7B,EAAgBuB,WAAa,SAAU3B,EAAUpiC,EAAKqiC,GACpDvyC,KAAK8+B,QAAQ,GAAGmV,WAAW3B,EAAUpiC,EAAKqiC,GAE1CvyC,KAAKyyC,oBAAoBH,EAAUpiC,IAGrCwiC,EAAgBmB,qBAAuB,SAAUhB,GAC/C,IAAIlnC,EAAKknC,EAAOiB,KACZloC,EAAKinC,EAAOmB,KACZE,EAAMrB,EAAOkB,MACb1/B,EAAIw+B,EAAOc,IACXthC,EAAMwgC,EAAO7nC,SACbmpC,EAAU,CAAC9hC,EAAI,GAAIA,EAAI,IACvB+hC,EAAchC,EAAUgC,YACxBC,EAAwBjC,EAAUiC,sBACtChiC,EAAI,GAAK+hC,EAAYzoC,EAAG,GAAIuoC,EAAI,GAAItoC,EAAG,GAAIyI,GAC3ChC,EAAI,GAAK+hC,EAAYzoC,EAAG,GAAIuoC,EAAI,GAAItoC,EAAG,GAAIyI,GAE3C,IAAIigC,EAAKD,EAAsB1oC,EAAG,GAAIuoC,EAAI,GAAItoC,EAAG,GAAIyI,GACjDkgC,EAAKF,EAAsB1oC,EAAG,GAAIuoC,EAAI,GAAItoC,EAAG,GAAIyI,GAGrD,GAFAw+B,EAAOliC,UAAY9E,KAAKk5B,MAAMwP,EAAID,GAAMzoC,KAAK+E,GAAK,EAEzB,SAArB5Q,KAAK8yC,aAA+C,SAArB9yC,KAAK8yC,aAA+C,cAArB9yC,KAAK8yC,YACrE,QAAuBhgB,IAAnB+f,EAAO2B,SAAyB3B,EAAO2B,QAAU3B,EAAOc,IAAK,CAC/D,IAAIc,EAAmC,KAA1BtC,EAAK5Z,KAAK4b,EAAS9hC,GAChCwgC,EAAO7yB,KAAK,QAAS,CAAC6yB,EAAOpkC,MAAM,GAAIgmC,IAE7B,IAANpgC,IACFhC,EAAI,GAAK8hC,EAAQ,IAAM9hC,EAAI,GAAK8hC,EAAQ,IAAM,EAC9C9hC,EAAI,GAAK8hC,EAAQ,IAAM9hC,EAAI,GAAK8hC,EAAQ,IAAM,QAE3C,GAAuB,IAAnBtB,EAAO2B,QAAe,CAE3BC,EAAS,EAAItC,EAAK5Z,KAAK5sB,EAAI0G,GAC/BwgC,EAAO7yB,KAAK,QAAS,CAAC6yB,EAAOpkC,MAAM,GAAIgmC,SAEvC5B,EAAO7yB,KAAK,QAAShgB,KAAKgzC,cAI9BH,EAAO2B,QAAU3B,EAAOc,IACxBd,EAAOS,QAAS,GAGlBZ,EAAgBgC,aAAe,SAAUpC,EAAUpiC,GACjDlQ,KAAK8+B,QAAQ,GAAG4V,aAAapC,EAAUpiC,GACvC,IAAIyiC,EAAcL,EAASlxB,aAAalR,GAAK+Q,SAAS,UAEtDjhB,KAAKizC,uBAAuBX,EAAUK,EAAaziC,IAGrDtN,EAAOwxB,SAASie,EAAYvvC,EAAQ6B,OACpC,IAAIpF,EAAW8yC,EACf3vC,EAAOC,QAAUpD,G,uBCvNjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB2J,EAAe,EAAQ,QAEvBooC,EAAiB,EAAQ,QAEzB5M,EAAW,EAAQ,QAEnB6M,EAAe,EAAQ,QAEvBC,EAAqB,EAAQ,QAoB7BC,EAAa,CAAC,UAAW,cACzBC,EAAkB,kBAClBC,EAAgB,yBAChBC,EAAiB7sC,EAAQ8sC,SAASC,OAAOC,MAgB7C,SAASC,EAAav1C,GACpBA,EAAQs+B,cAAc,CACpBnB,SAAU,UACT,SAAUqY,GACX,IAAIC,EAAqBD,EAAWC,mBAAqB,IAAIV,EAAmBS,EAAWz1C,OAAQC,GACnGy1C,EAAmBC,eAAeF,EAAWG,MAAO31C,MAwIxD,SAAS0G,EAAeD,EAAKmvC,EAAcC,EAAeC,EAAe1X,GASvE,GAAKA,EAAL,CAIA,IAAI3T,EAAKhkB,EAAIslB,QAEb,IAAItB,EAAGyqB,GAAP,CAIKzqB,EAAGwqB,KACNxqB,EAAGwqB,GAAmBc,GAGxB,IAAIC,EAAKlB,EAAamB,eAAexrB,EAAIwqB,EAAiBY,EAAeD,GACzEI,EAAGvvC,EAAKqvC,KAGV,SAASC,EAAWtvC,EAAKqvC,GACvB,IAAKrvC,EAAIyvC,aAAc,CACrB,IAAIzrB,EAAKhkB,EAAIslB,QACbtB,EAAGyqB,IAAiB,EACpBzuC,EAAIC,eAAe,CACjB/G,KAAM,cACNgH,MAAOmvC,IAETrrB,EAAGyqB,IAAiB,GAIxB,SAASiB,EAAaC,EAAsBC,EAAe51C,EAAMK,GAC/D,IAAK,IAAIqN,EAAI,EAAGqK,EAAM69B,EAAclrC,OAAQgD,EAAIqK,EAAKrK,IAAK,CACxD,IAAImoC,EAAOD,EAAcloC,GAEzB,GAAIioC,EAAqBE,EAAKC,WAAWz1C,EAAWL,EAAM61C,EAAKE,UAAWF,GACxE,OAAO,GAKb,SAASG,EAAwBz0C,GAC/B,IAAI00C,EAAgB10C,EAAY00C,cAEhC,GAAI5zC,EAAOid,SAAS22B,GAAgB,CAClC,IAAIC,EAAO,GAOX,OANA7zC,EAAOzD,KAAK4oC,GAAU,SAAU2O,EAAwBL,GACtDI,EAAKJ,GAAa,SAAUz1C,EAAWL,EAAM+1C,EAAWF,GACtD,IAAIlV,EAAa3gC,EAAKygB,cAAcpgB,GACpC,OAAO81C,EAAuBF,GAAetV,EAAYoV,EAAWF,OAGjEK,EACF,GAAI7zC,EAAO+zC,WAAWH,GAAgB,CAC3C,IAAII,EAAY,GAIhB,OAHAh0C,EAAOzD,KAAK4oC,GAAU,SAAU8O,EAAKR,GACnCO,EAAUP,GAAaG,KAElBI,EAGT,OAAOJ,EAGT,SAASM,EAAsBxB,EAAYyB,GACzC,IAAIC,EAAgB1B,EAAWz1C,OAAOk3C,YACtC,OAAwB,MAAjBC,GAA2C,QAAlBA,IAA4Bp0C,EAAOogB,QAAQg0B,GAAiBp0C,EAAOiwB,QAAQmkB,EAAeD,GAAe,EAAIA,IAAgBC,GAG/J,SAASC,EAAab,GACpB,IAAIE,EAAYF,EAAKE,UAAY,GAOjC,OANA1zC,EAAOzD,KAAK4oC,EAASqO,EAAKC,YAAY,SAAUa,EAAOC,GAErDb,EAAUa,GAAU,SAAUjW,GAC5B,OAAOgW,EAAMhW,EAAYoV,EAAWF,OAGjCA,EA7OThuC,EAAQyrB,eAAeohB,GAAgB,SAAUn1C,EAASyG,EAAK23B,GAC7Dp+B,EAAQs+B,cAAc,CACpBnB,SAAU,UACT,SAAUqY,GACXpX,GAA4B,qBAAjBA,EAAQz+B,MAA+B61C,EAAW8B,eAA+B,UAAhBlZ,EAAQn2B,IAAkBm2B,EAAQmZ,YAAc,CAC1HhB,WAAW,OAGfhB,EAAav1C,MAgBfsI,EAAQ2mB,eAAekmB,GAAgB,SAAUn1C,EAASyG,EAAK23B,GAC7D,IACIwX,EACAC,EAFAC,EAAgB,GAGpB91C,EAAQs+B,cAAc,CACpBnB,SAAU,UACT,SAAUqY,EAAYgC,GACvB,IAAIC,EAAoB,CACtBC,QAASlC,EAAWntC,GACpBmvC,WAAYA,EACZG,UAAWnC,EAAW3oC,KACtB8oC,MAAO7yC,EAAO8E,MAAM4tC,EAAWG,OAC/BhuC,SAAU,IAIZmuC,EAAc/0C,KAAK02C,GACnB,IAAIF,EAAc/B,EAAWz1C,OACzB63C,EAAYL,EAAYK,UACxBC,EAAkB,GAClBC,EAA2B,GAC3BC,EAAoB,GACpBC,EAAiB,EAEhBR,IAEH5B,EAAe2B,EAAY3B,aAC3BC,EAAgB0B,EAAY1B,eAI9B,IAAIF,EAAQ7yC,EAAOqE,IAAIquC,EAAWG,OAAO,SAAUW,GACjD,OAAOa,EAAar0C,EAAO6O,SAAS,CAClClE,aAAcwqC,EAAqB3B,EAAKC,WAAWD,IAClDA,OAED4B,EAAiBrD,EAAesD,qBAAqB3C,EAAWz1C,OAAQi1C,GAAY,SAAU3vB,GAChGA,EAAcE,cAAgB,WAMhC,SAAS6yB,EAAWnB,GAClB,MAAqB,QAAdW,GAAuBC,EAAgBZ,GAKhD,SAASoB,EAAQhC,GACf,QAASA,EAAclrC,OAsBzB,SAASmtC,EAAct2C,EAAai1C,GAClC,IAAI12C,EAAWyB,EAAYxB,iBAC3Bw3C,GAAkBz3C,EAASg4C,iBAC3BH,EAAWnB,IAAgB12C,EAASK,gBAAgBoB,EAAYtB,WAAW,SAAUJ,EAAaQ,GAChF,WAAhBR,IAA6Bw3C,EAAyBh3C,GAAa,MAIvE,SAAS03C,EAAYx2C,EAAai1C,EAAaZ,GAC7C,IAAID,EAAuBK,EAAwBz0C,GAEnD,GAAKo0C,IAAwBY,EAAsBxB,EAAYyB,KAI/Dn0C,EAAOzD,KAAKs2C,GAAO,SAAUW,GAC3BF,EAAqBE,EAAKC,YAAcf,EAAWC,mBAAmBgD,cAAcnC,EAAMt0C,EAAahC,IAAYq2C,EAAct1C,KAAKu1C,GACtI0B,GAAkBK,EAAQhC,MAGxB+B,EAAWnB,IAAgBoB,EAAQhC,IAAgB,CACrD,IAAI51C,EAAOuB,EAAYtB,UACvBD,EAAKpB,MAAK,SAAUyB,GACdq1C,EAAaC,EAAsBC,EAAe51C,EAAMK,KAC1Dg3C,EAAyBh3C,GAAa,OAzD9CgC,EAAOogB,QAAQ00B,IAAc90C,EAAOzD,KAAKu4C,GAAW,SAAUX,GAC5DY,EAAgBZ,GAAe,KA2BjCj3C,EAAQ04C,YAAW,SAAU12C,EAAai1C,GACxC,IAAIZ,EAAgB0B,EAAkBd,GAAe,GAC7B,aAAxBj1C,EAAYu8B,QAAyB+Z,EAAct2C,EAAai1C,EAAaZ,GAAiBmC,EAAYx2C,EAAai1C,EAAaZ,MAkCtIr2C,EAAQ04C,YAAW,SAAU12C,EAAai1C,GACxC,IAAI0B,EAAsB,CACxBzxB,SAAUllB,EAAYqG,GACtB4uC,YAAaA,EACbnG,WAAY9uC,EAAY6K,KACxB/L,UAAW,IAIb22C,EAAkB9vC,SAAS5G,KAAK43C,GAChC,IAAIvC,EAAuBK,EAAwBz0C,GAC/Cq0C,EAAgB0B,EAAkBd,GAClCx2C,EAAOuB,EAAYtB,UACnB6E,EAAgB6yC,EAAWnB,GAAe,SAAUn2C,GACtD,OAAOg3C,EAAyBh3C,IAAc63C,EAAoB73C,UAAUC,KAAKN,EAAKO,YAAYF,IAAa,WAAa,cAC1H,SAAUA,GACZ,OAAOq1C,EAAaC,EAAsBC,EAAe51C,EAAMK,IAAc63C,EAAoB73C,UAAUC,KAAKN,EAAKO,YAAYF,IAAa,WAAa,eAG5Js3C,EAAWnB,GAAee,EAAiBK,EAAQhC,KAAmBxB,EAAe+D,YAAY5D,EAAYkD,EAAgBz3C,EAAM8E,SAGxImB,EAAeD,EAAKmvC,EAAcC,EAAeC,EAAe1X,MA2FlE,IAAI6Z,EAAuB,CACzBY,MAAO/1C,EAAOg2C,KACdC,MAAOj2C,EAAOg2C,KACd5sC,KAAM,SAAUoqC,GACd,OAAO0C,EAA0B1C,EAAKt6B,QAExCi9B,QAAS,SAAU3C,GAIjB,IAHA,IAAI4C,EACAl9B,EAAQs6B,EAAKt6B,MAER7N,EAAI,EAAGqK,EAAMwD,EAAM7Q,OAAQgD,EAAIqK,EAAKrK,IAAK,CAChD+qC,EAASA,GAAU,CAAC,CAACjmC,KAAWA,KAAW,CAACA,KAAWA,MACvD,IAAIkmC,EAAKn9B,EAAM7N,GACfgrC,EAAG,GAAKD,EAAO,GAAG,KAAOA,EAAO,GAAG,GAAKC,EAAG,IAC3CA,EAAG,GAAKD,EAAO,GAAG,KAAOA,EAAO,GAAG,GAAKC,EAAG,IAC3CA,EAAG,GAAKD,EAAO,GAAG,KAAOA,EAAO,GAAG,GAAKC,EAAG,IAC3CA,EAAG,GAAKD,EAAO,GAAG,KAAOA,EAAO,GAAG,GAAKC,EAAG,IAG7C,OAAOD,GAAUF,EAA0BE,KAI/C,SAASF,EAA0BE,GACjC,OAAO,IAAIzsC,EAAaysC,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAG5Gr2C,EAAQ0yC,aAAeA,G,qBCnTvB,IAAIjtC,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAI8wC,EAAe,EAAQ,QAEvBC,EAAe,EAAQ,QAoB3B/wC,EAAQ2mB,eAAemqB,EAAa,gBAAiB,WACrD9wC,EAAQyrB,eAAeslB,EAAa,mB,uBC7BpC,IAAIv2C,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QA0BxB,SAAS75C,EAASmO,EAAQ5N,GACxB,IAEIgC,EAFAw1B,EAAQ,GACRyf,EAAcrpC,EAAOqpC,YAGzB,GAAmB,MAAfA,KAAyBj1C,EAAchC,EAAQu5C,iBAAiBtC,IAClE,MAAO,CACLzf,MAAO,IAIX,IAAI/2B,EAAOuB,EAAYtB,UACnBI,EAAYw4C,EAAUE,eAAe/4C,EAAMmN,GAE/C,GAAiB,MAAb9M,GAAqBA,EAAY,GAAKgC,EAAOogB,QAAQpiB,GACvD,MAAO,CACL02B,MAAO,IAIX,IAAI7L,EAAKlrB,EAAKg5C,iBAAiB34C,GAC3BP,EAAWyB,EAAYxB,iBAE3B,GAAIwB,EAAY03C,mBACdliB,EAAQx1B,EAAY03C,mBAAmB54C,IAAc,QAChD,GAAIP,GAAYA,EAAS0L,YAC9BurB,EAAQj3B,EAAS0L,YAAYxL,EAAKk5C,UAAU72C,EAAOqE,IAAI5G,EAAS8B,YAAY,SAAU4N,GACpF,OAAOxP,EAAKyJ,aAAa+F,MACvBnP,GAAW,KAAU,QACpB,GAAI6qB,EAAI,CAEb,IAAIzf,EAAOyf,EAAGxf,kBAAkBvE,QAChCsE,EAAKk5B,eAAezZ,EAAGnd,WACvBgpB,EAAQ,CAACtrB,EAAKvG,EAAIuG,EAAKxK,MAAQ,EAAGwK,EAAKtG,EAAIsG,EAAKE,OAAS,GAG3D,MAAO,CACLorB,MAAOA,EACP7L,GAAIA,GAIR/oB,EAAOC,QAAUpD,G,qBCtEjB,IAAIqD,EAAS,EAAQ,QAEjBG,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBF,EAAU,EAAQ,QAElB+gB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvBklB,EAAe,EAAQ,QAEvBC,EAAkBD,EAAaC,gBAgCnC,SAASC,EAAUr5C,EAAM2P,EAAKqiC,GAC5BzvC,EAAQ6B,MAAMmI,KAAK9M,MACnBA,KAAKi0C,WAAW1zC,EAAM2P,EAAKqiC,GAG7B,IAAIsH,EAAcD,EAAU9rC,UASxBgsC,EAAgBF,EAAUE,cAAgB,SAAUv5C,EAAM2P,GAC5D,IAAI6pC,EAAax5C,EAAKohB,cAAczR,EAAK,cACzC,OAAO6pC,aAAsBhiC,MAAQgiC,EAAWzyC,QAAU,EAAEyyC,GAAaA,IAG3E,SAASC,EAASD,GAChB,MAAO,CAACA,EAAW,GAAK,EAAGA,EAAW,GAAK,GAG7C,SAASE,EAAY/nC,EAAIC,GACvBnS,KAAK6hB,OAAOq4B,MAAMhoC,EAAIC,GAGxB0nC,EAAYM,cAAgB,SAAUvH,EAAYryC,EAAM2P,EAAK6pC,EAAYK,GAEvEp6C,KAAKuD,YACL,IAAIqU,EAAQrX,EAAKohB,cAAczR,EAAK,SAOhCmqC,EAAar3C,EAAa4vC,GAAa,GAAI,EAAG,EAAG,EAAGh7B,EAAOwiC,GAC/DC,EAAWr6B,KAAK,CACd5O,GAAI,IACJ2vB,SAAS,EACTtyB,MAAOurC,EAASD,KAGlBM,EAAWH,MAAQD,EACnBj6C,KAAK8yC,YAAcF,EACnB5yC,KAAKsF,IAAI+0C,IAQXR,EAAYS,oBAAsB,SAAUC,GAC1Cv6C,KAAK8+B,QAAQ,GAAG4U,cAAc6G,IAahCV,EAAYW,cAAgB,WAC1B,OAAOx6C,KAAK8+B,QAAQ,IAQtB+a,EAAYG,SAAW,WACrB,OAAOh6C,KAAK8+B,QAAQ,GAAGrwB,OAOzBorC,EAAYY,UAAY,WACtBz6C,KAAK8+B,QAAQ,GAAGxB,QAAQ,aAO1Buc,EAAYa,SAAW,WACrB16C,KAAK8+B,QAAQ,GAAGxB,QAAQ,WAQ1Buc,EAAYc,KAAO,SAAU35C,EAAQC,GACnC,IAAIo5C,EAAar6C,KAAK8+B,QAAQ,GAC9Bub,EAAWr5C,OAASA,EACpBq5C,EAAWp5C,EAAIA,GAGjB44C,EAAYe,aAAe,SAAUC,GACnC,IAAIR,EAAar6C,KAAK8+B,QAAQ,GAC9Bub,EAAWQ,UAAYA,EACvBR,EAAWlP,OAAS0P,EAAY,OAASR,EAAWlP,QAqBtD0O,EAAY5F,WAAa,SAAU1zC,EAAM2P,EAAKqiC,GAC5CvyC,KAAK4R,QAAS,EACd,IAAIghC,EAAaryC,EAAKohB,cAAczR,EAAK,WAAa,SAClDpO,EAAcvB,EAAKye,UACnB+6B,EAAaD,EAAcv5C,EAAM2P,GACjCwU,EAASkuB,IAAe5yC,KAAK8yC,YAEjC,GAAIpuB,EAAQ,CACV,IAAI01B,EAAa75C,EAAKohB,cAAczR,EAAK,oBAEzClQ,KAAKm6C,cAAcvH,EAAYryC,EAAM2P,EAAK6pC,EAAYK,OACjD,CACL,IAAIC,EAAar6C,KAAK8+B,QAAQ,GAC9Bub,EAAWzoC,QAAS,EACpB9O,EAAQk8B,YAAYqb,EAAY,CAC9B5rC,MAAOurC,EAASD,IACfj4C,EAAaoO,GAKlB,GAFAlQ,KAAK86C,cAAcv6C,EAAM2P,EAAK6pC,EAAYxH,GAEtC7tB,EAAQ,CACN21B,EAAar6C,KAAK8+B,QAAQ,GAA9B,IACIic,EAASxI,GAAeA,EAAYwI,OACpC3oC,EAAS,CACX3D,MAAO4rC,EAAW5rC,MAAMnH,SAE1ByzC,IAAW3oC,EAAO5M,MAAQ,CACxB/D,QAAS44C,EAAW70C,MAAM/D,UAE5B44C,EAAW5rC,MAAQ,CAAC,EAAG,GACvBssC,IAAWV,EAAW70C,MAAM/D,QAAU,GACtCqB,EAAQk4C,UAAUX,EAAYjoC,EAAQtQ,EAAaoO,GAGrDlQ,KAAKi7C,aAAen5C,GAItB,IAAIo5C,EAAwB,CAAC,aACzBC,EAA0B,CAAC,WAAY,aACvCC,EAAwB,CAAC,SACzBC,EAA0B,CAAC,WAAY,SAoG3C,SAASC,EAAiBC,EAAWC,GAGnC,IAAIx7C,KAAKy7C,cAAez7C,KAAK07C,cAI7B,GAAgB,aAAZF,EAAwB,CAC1B,IAAI/sC,EAAQzO,KAAK27C,sBACbC,EAAQntC,EAAM,GAAKA,EAAM,GACzBotC,EAAc,CAChBptC,MAAO,CAAC5C,KAAK4E,IAAe,IAAXhC,EAAM,GAAUA,EAAM,GAAK,GAAI5C,KAAK4E,IAAe,IAAXhC,EAAM,GAAUA,EAAM,GAAK,EAAImtC,KAM1F57C,KAAK87C,UAAUD,EAAa,IAAK,kBACZ,WAAZL,GACTx7C,KAAK87C,UAAU,CACbrtC,MAAOzO,KAAK27C,uBACX,IAAK,cAjHZ9B,EAAYiB,cAAgB,SAAUv6C,EAAM2P,EAAK6pC,EAAYxH,GAC3D,IAAI8H,EAAar6C,KAAK8+B,QAAQ,GAC1Bh9B,EAAcvB,EAAKye,UACnBpH,EAAQrX,EAAKohB,cAAczR,EAAK,SAEZ,UAApBmqC,EAAW56C,KACb46C,EAAW0B,SAAS,CAClBjb,eAAe,IAGjBuZ,EAAWxZ,SAAS,CAClBp/B,QAAS,KACTu6C,WAAY,KACZC,cAAe,KACfC,cAAe,KACfC,YAAa,OAIjB,IAAIjxC,EAAYqnC,GAAeA,EAAYrnC,UACvC+0B,EAAiBsS,GAAeA,EAAYtS,eAC5Cmc,EAAe7J,GAAeA,EAAY6J,aAC1Clc,EAAaqS,GAAeA,EAAYrS,WACxCC,EAAkBoS,GAAeA,EAAYpS,gBAC7Ckc,EAAiB9J,GAAeA,EAAY8J,eAC5CC,EAAc/J,GAAeA,EAAY+J,YAE7C,IAAK/J,GAAehyC,EAAKg8C,cAAe,CACtC,IAAIp7B,EAAYoxB,GAAeA,EAAYpxB,UAAYoxB,EAAYpxB,UAAY5gB,EAAK6gB,aAAalR,GAGjGhF,EAAYiW,EAAUF,SAASi6B,GAAuBvpC,aAAa,CAAC,UACpEsuB,EAAiB9e,EAAUF,SAASk6B,GAAyBxpC,eAC7DyqC,EAAej7B,EAAUq7B,WAAW,gBACpCtc,EAAa/e,EAAUF,SAASm6B,GAChCjb,EAAkBhf,EAAUF,SAASo6B,GACrCgB,EAAiBl7B,EAAUq7B,WAAW,kBACtCF,EAAcn7B,EAAUq7B,WAAW,eAEnCvc,EAAiBr9B,EAAOpD,OAAO,GAAIygC,GAGrC,IAAIwc,EAAUpC,EAAW70C,MACrBk3C,EAAen8C,EAAKohB,cAAczR,EAAK,gBAC3CmqC,EAAWr6B,KAAK,YAAa08B,GAAgB,GAAK7wC,KAAK+E,GAAK,KAAO,GAE/DwrC,GACF/B,EAAWr6B,KAAK,WAAY,CAACwU,EAAa4nB,EAAa,GAAIrC,EAAW,IAAKvlB,EAAa4nB,EAAa,GAAIrC,EAAW,MAGtHuC,GAAejC,EAAWr6B,KAAK,SAAUs8B,GAEzCjC,EAAWtH,SAASn7B,EAAO26B,GAAeA,EAAYoK,kBACtDtC,EAAWxZ,SAAS31B,GACpB,IAAIzJ,EAAUlB,EAAKohB,cAAczR,EAAK,WAEvB,MAAXzO,IACFg7C,EAAQh7C,QAAUA,GAGpB,IAAIm7C,EAAQr8C,EAAKohB,cAAczR,EAAK,SAChC2sC,EAAWxC,EAAWyC,WAEb,MAATF,EACc,MAAZC,IACFxC,EAAWyC,WAAazC,EAAWjpC,GACnCipC,EAAWjpC,IAAMwrC,GAEE,MAAZC,IACTxC,EAAWjpC,GAAKyrC,EAChBxC,EAAWyC,WAAa,MAG1B,IAAIC,EAAexK,GAAeA,EAAYwK,aAS9C,SAASC,EAAoB9sC,EAAKV,GAChC,OAAOutC,EAAex8C,EAAK08C,QAAQ/sC,GAAOypC,EAAgBp5C,EAAM2P,GATlEpN,EAAQw+B,cAAcmb,EAASxc,EAAgBC,EAAYC,EAAiB,CAC1EgB,aAAcr/B,EACd0/B,eAAgBtxB,EAChBuxB,YAAaub,EACbE,YAAY,EACZC,UAAWvlC,IAObyiC,EAAWsB,sBAAwB3B,EAASD,GAC5CM,EAAW9Y,WAAatB,EACxBoa,EAAWiB,iBAAmBe,GAAkBv6C,EAAYs7C,qBAAuB9B,EAAmB,KACtGx4C,EAAQq/B,cAAckY,IAkCxBR,EAAYwD,QAAU,SAAUl/B,EAAI3O,GAClC,IAAI6qC,EAAar6C,KAAK8+B,QAAQ,GAE9B9+B,KAAK4R,OAASyoC,EAAWzoC,QAAS,IAEhCpC,IAAOA,EAAI8tC,aAAejD,EAAW70C,MAAMG,KAAO,MACpD7C,EAAQk8B,YAAYqb,EAAY,CAC9B70C,MAAO,CACL/D,QAAS,GAEXgN,MAAO,CAAC,EAAG,IACVzO,KAAKi7C,aAAcj7C,KAAKY,UAAWud,IAGxCvb,EAAOwxB,SAASwlB,EAAW92C,EAAQ6B,OACnC,IAAIpF,EAAWq6C,EACfl3C,EAAOC,QAAUpD,G,qBC/WjB,IAAI6I,EAAU,EAAQ,QAElBtF,EAAU,EAAQ,QAElBF,EAAS,EAAQ,QAEjB26C,EAAa,EAAQ,QAoBzB,SAASC,EAAoBzD,GAK3B,OAJKn3C,EAAOogB,QAAQ+2B,KAClBA,EAAa,EAAEA,GAAaA,IAGvBA,EAGT,IAAIx6C,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,QACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIm3C,EAAQ57C,EAAYxB,iBACpBgD,EAAQtD,KAAKsD,MACb/C,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MAEnB,SAAS56C,EAAazC,EAAM2P,GAC1B,IAAI0iC,EAAaryC,EAAKohB,cAAczR,EAAK,WAAa,SAClD0H,EAAQrX,EAAKohB,cAAczR,EAAK,SAEpC,GAAmB,SAAf0iC,EAAJ,CAIA,IAAImH,EAAayD,EAAoBj9C,EAAKohB,cAAczR,EAAK,eACzDmqC,EAAakD,EAAWv6C,aAAa4vC,GAAa,GAAI,EAAG,EAAG,EAAGh7B,GAQnE,OAPAyiC,EAAWr6B,KAAK,CACdxa,MAAO,CACLs7B,eAAe,GAEjB1vB,GAAI,IACJ3C,MAAO,CAACsrC,EAAW,GAAK,EAAGA,EAAW,GAAK,KAEtCM,GAGT,SAASwD,EAAcC,EAAWC,EAAWC,EAAaz9C,EAAM2P,EAAKwU,GAEnEs5B,EAAYz6C,YAEZ,IAAK,IAAI0K,EAAI,EAAGA,EAAI8vC,EAAU9yC,OAAS,EAAGgD,IAAK,CAC7C,IAAIosC,EAAar3C,EAAazC,EAAM2P,GAEhCmqC,IACFA,EAAW4D,SAAWhwC,EAElB6vC,EAAU7vC,IACZosC,EAAWr6B,KAAK,WAAY89B,EAAU7vC,IACtCnL,EAAQ4hB,EAAS,YAAc,eAAe21B,EAAY,CACxDrvC,SAAU+yC,EAAU9vC,IACnBnM,EAAaoO,IAEhBmqC,EAAWr6B,KAAK,WAAY+9B,EAAU9vC,IAGxC+vC,EAAY14C,IAAI+0C,KAKtB,SAAS6D,EAAiB3mC,GACxB,OAAO3U,EAAOqE,IAAIsQ,GAAQ,SAAU4mC,GAClC,MAAO,CAACT,EAAMU,GAAIV,EAAMW,OAI5B99C,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAU4K,GAC/B,IAAIqH,EAAShX,EAAKygB,cAAc9Q,GAEhC,GAAKqH,EAAL,CAIA,IAAIwhC,EAAU,IAAIj2C,EAAQ49B,QACtB4d,EAAW,IAAIx7C,EAAQy7C,SACvBnsC,EAAS,CACXZ,MAAO,CACL+F,OAAQA,IAGZwhC,EAAQvnC,MAAM+F,OAAS2mC,EAAiB3mC,GACxC+mC,EAAS9sC,MAAM+F,OAAS2mC,EAAiB3mC,GACzCzU,EAAQk4C,UAAUjC,EAAS3mC,EAAQtQ,EAAaoO,GAChDpN,EAAQk4C,UAAUsD,EAAUlsC,EAAQtQ,EAAaoO,GACjD,IAAIxL,EAAY,IAAI5B,EAAQ6B,MACxBq5C,EAAc,IAAIl7C,EAAQ6B,MAC9BD,EAAUY,IAAIg5C,GACd55C,EAAUY,IAAIyzC,GACdr0C,EAAUY,IAAI04C,GACdH,EAAcS,EAAS9sC,MAAM+F,OAAQA,EAAQymC,EAAaz9C,EAAM2P,GAAK,GACrE3P,EAAKqhC,iBAAiB1xB,EAAKxL,OAC1B6D,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI/5C,EAAYi5C,EAAQpE,iBAAiBkF,GACrCH,EAAW55C,EAAUo6B,QAAQ,GAC7Bia,EAAUr0C,EAAUo6B,QAAQ,GAC5Bkf,EAAct5C,EAAUo6B,QAAQ,GAChC1sB,EAAS,CACXZ,MAAO,CACL+F,OAAQhX,EAAKygB,cAAcw9B,KAI1BpsC,EAAOZ,MAAM+F,SAIlBsmC,EAAcS,EAAS9sC,MAAM+F,OAAQnF,EAAOZ,MAAM+F,OAAQymC,EAAaz9C,EAAMi+C,GAAQ,GACrF17C,EAAQk8B,YAAYsf,EAAUlsC,EAAQtQ,GACtCgB,EAAQk8B,YAAY+Z,EAAS3mC,EAAQtQ,GACrCvB,EAAKqhC,iBAAiB4c,EAAQ95C,OAC7B29B,QAAO,SAAUnyB,GAClB5M,EAAM++B,OAAOsb,EAAQpE,iBAAiBrpC,OACrCwuC,UACHn+C,EAAKo+C,mBAAkB,SAAUj6C,EAAWwL,GAC1C,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAC9BouC,EAAW55C,EAAUo6B,QAAQ,GAC7Bia,EAAUr0C,EAAUo6B,QAAQ,GAC5Bkf,EAAct5C,EAAUo6B,QAAQ,GAChClnB,EAAQrX,EAAKohB,cAAczR,EAAK,SACpC5M,EAAMgC,IAAIZ,GACV45C,EAASvC,SAASn5C,EAAO6O,SAAS0P,EAAUF,SAAS,aAAa29B,eAAgB,CAChFltC,KAAM,OACNmtC,OAAQjnC,KAEV0mC,EAAS/c,WAAapgB,EAAUF,SAAS,sBAAsB29B,eAC/D,IAAIE,EAAiB39B,EAAUF,SAAS,aACpC89B,EAAsB59B,EAAUF,SAAS,sBACzC+9B,EAAgBF,EAAeG,WAAaH,EAAeI,YAAYD,UACvEE,EAAqBJ,EAAoBE,WAAaF,EAAoBG,YAAYD,UAC1FE,EAAqBA,GAAsBH,EAC3CjG,EAAQzF,OAAS0L,EACjBjG,EAAQgD,SAASn5C,EAAO6O,SAASqtC,EAAeM,eAAgB,CAC9D1tC,KAAMkG,EACNnW,QAAS,MAEXs3C,EAAQxX,WAAawd,EAAoBK,eACzC,IAAIl0C,EAAYiW,EAAUF,SAAS,aAAatP,aAAa,CAAC,UAC1D0tC,EAAiBl+B,EAAUF,SAAS,sBAAsBtP,eAC1DuuB,EAAa/e,EAAUF,SAAS,SAChCq+B,EAAkBn+B,EAAUF,SAAS,kBACzC+8B,EAAY5gB,WAAU,SAAUid,GAC9BA,EAAWxZ,SAAS31B,GACpBmvC,EAAW9Y,WAAa3+B,EAAO8E,MAAM23C,GACrC,IAAI5d,EAAclhC,EAAK2B,IAAI3B,EAAK4B,WAAWk4C,EAAW4D,UAAW/tC,IACjD,MAAfuxB,GAAuB1oB,MAAM0oB,MAAkBA,EAAc,IAC9D3+B,EAAQw+B,cAAc+Y,EAAW70C,MAAO60C,EAAW9Y,WAAYrB,EAAYof,EAAiB,CAC1Fne,aAAc5gC,EAAKye,UACnBwiB,eAAgBtxB,EAChBqvC,cAAelF,EAAW4D,SAC1Bxc,YAAaA,EACb0b,UAAWvlC,EACXslC,YAAY,OAIhBx4C,EAAU42C,iBAAmB,SAAUC,EAAWC,GAChDzC,EAAQ/4B,KAAK,SAAsB,aAAZw7B,EAAyB2D,EAAqBH,IAGvEl8C,EAAQq/B,cAAcz9B,MAExB1E,KAAK49C,MAAQr9C,GAEf8hC,OAAQ,WACNriC,KAAKsD,MAAMC,YACXvD,KAAK49C,MAAQ,MAEfrvB,QAAS,eAGX7rB,EAAOC,QAAUpD,G,uBCpMjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB08C,EAAc,EAAQ,QAEtBC,EAAW,EAAQ,QAoBnBC,EAAmB,CAAC,WAAY,gBAAiB,YACjDC,EAAmB,CAAC,YAAa,YAAa,kBAE9CpgD,EAAWkgD,EAASjgD,OAAO,CAC7BC,KAAM,aACNmgD,iBAAkB,mBAClBtuC,OAAQ,SAAUuuC,EAAiB//C,GAGjC,GAFAE,KAAKsD,MAAMC,YAENs8C,EAAgB39C,IAAI,QAAzB,CAIA,IAAI49C,EAAaD,EAAgBnwC,KAC7BguC,EAAQoC,EAAWpC,MACnBqC,EAAYrC,EAAMsC,eAClBC,EAAcH,EAAWI,iBACzBC,EAAmBL,EAAWM,sBAC9BC,EAAYN,EAAUx6B,YAAY,GAClC+6B,EAAeR,EAAWv6B,YAC1BtiB,EAASs9C,EAAW7C,EAAOmC,EAAiBQ,GAC5CG,EAAc,IAAIhB,EAAYK,EAAiB58C,GACnDL,EAAOzD,KAAKugD,EAAkBc,EAAYl7C,IAAKk7C,GAC/CxgD,KAAKsD,MAAMgC,IAAIk7C,EAAYC,YAC3B79C,EAAOzD,KAAKwgD,GAAkB,SAAUhzC,GAClCkzC,EAAgB39C,IAAIyK,EAAO,WAAamzC,EAAWrxC,MAAMiyC,WAC3D1gD,KAAK,IAAM2M,GAAMkzC,EAAiBnC,EAAO2C,EAAWC,EAAcL,EAAaE,KAEhFngD,QAML2gD,WAAY,SAAUd,EAAiBnC,EAAO2C,EAAWC,EAAcL,GACrE,IAAIW,EAAiBf,EAAgB5+B,SAAS,aAC1C4/B,EAAiBD,EAAe3/B,SAAS,aACzC6/B,EAAaD,EAAe3+C,IAAI,SAChC6+C,EAAY,EAChBD,EAAaA,aAAsB/oC,MAAQ+oC,EAAa,CAACA,GAGzD,IAFA,IAAIE,EAAa,GAER/yC,EAAI,EAAGA,EAAIgyC,EAAYh1C,OAAQgD,IAAK,CAC3C,IAAIgzC,EAAaF,IAAcD,EAAW71C,OAC1C+1C,EAAWC,GAAcD,EAAWC,IAAe,GACnDD,EAAWC,GAAYpgD,KAAK,IAAIiC,EAAQo+C,OAAO,CAC7C1vC,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVxqC,EAAGosC,EAAYhyC,GAAG5B,UAOxB,IAAS4B,EAAI,EAAGA,EAAI+yC,EAAW/1C,OAAQgD,IACrCjO,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUH,EAAW/yC,GAAI,CAC9CzI,MAAO5C,EAAO6O,SAAS,CACrBotC,OAAQiC,EAAW7yC,EAAI6yC,EAAW71C,QAClCyG,KAAM,MACLmvC,EAAejC,gBAClBhtC,QAAQ,MAQdwvC,gBAAiB,SAAUvB,EAAiBnC,EAAO2C,EAAWC,EAAcL,EAAaE,GACvF,GAAKA,EAAiBl1C,OAAtB,CAQA,IAJA,IAAIo2C,EAAsBxB,EAAgB5+B,SAAS,kBAC/C4/B,EAAiBQ,EAAoBpgC,SAAS,aAC9CqgC,EAAQ,GAEHrzC,EAAI,EAAGA,EAAIkyC,EAAiBl1C,OAAQgD,IAC3C,IAAK,IAAIgI,EAAI,EAAGA,EAAIkqC,EAAiBlyC,GAAGhD,OAAQgL,IAC9CqrC,EAAMzgD,KAAK,IAAIiC,EAAQo+C,OAAO,CAC5B1vC,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVxqC,EAAGssC,EAAiBlyC,GAAGgI,GAAG5J,UAMlCrM,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUG,EAAO,CACtC97C,MAAO5C,EAAO6O,SAAS,CACrBC,KAAM,MACLmvC,EAAejC,gBAClBhtC,QAAQ,OAOZ2vC,WAAY,SAAU1B,EAAiBnC,EAAO2C,EAAWC,EAAcL,GACrE,GAAKA,EAAYh1C,OAAjB,CAIA,IAAIu2C,EAAiB3B,EAAgB5+B,SAAS,aAC1C69B,EAAiB0C,EAAevgC,SAAS,aACzCwgC,EAAa3C,EAAe58C,IAAI,SAChC6+C,EAAY,EAChBU,EAAaA,aAAsB1pC,MAAQ0pC,EAAa,CAACA,GAIzD,IAHA,IAAIC,EAAa,GACbC,EAAa1B,EAAY,GAAG5zC,MAEvB4B,EAAI,EAAGA,EAAIgyC,EAAYh1C,OAAQgD,IAAK,CAC3C,IAAIgzC,EAAaF,IAAcU,EAAWx2C,OAC1Cy2C,EAAWT,GAAcS,EAAWT,IAAe,GACnDS,EAAWT,GAAYpgD,KAAK,IAAIiC,EAAQ8+C,OAAO,CAC7CpwC,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVwD,GAAIF,EACJ9tC,EAAGosC,EAAYhyC,GAAG5B,MAClBy1C,WAAY,EACZC,SAAoB,EAAVl2C,KAAK+E,IAEjBgB,QAAQ,KAEV+vC,EAAa1B,EAAYhyC,GAAG5B,MAK9B,IAAS4B,EAAI,EAAGA,EAAIyzC,EAAWz2C,OAAQgD,IACrCjO,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUO,EAAWzzC,GAAI,CAC9CzI,MAAO5C,EAAO6O,SAAS,CACrBC,KAAM+vC,EAAWxzC,EAAIwzC,EAAWx2C,SAC/B6zC,EAAeM,gBAClBxtC,QAAQ,SAUhB,SAAS2uC,EAAW7C,EAAOmC,EAAiBQ,GAC1C,MAAO,CACLr1C,SAAU,CAAC0yC,EAAMU,GAAIV,EAAMW,IAC3B1tC,SAAU0vC,EAAY,IAAMx0C,KAAK+E,GACjCE,gBAAiB,EACjBC,eAAgB,EAChBC,cAAe,EACfG,YAAa0uC,EAAgB5+B,SAAS,aAAa/e,IAAI,UAEvDkP,GAAI,GAIR1O,EAAOC,QAAUpD,G,qBC5LjB,IAAIqD,EAAS,EAAQ,QAEjBtD,EAAsB,EAAQ,QAE9B0iD,EAAa,EAAQ,QAErBC,EAAuB,EAAQ,QAE/B5jC,EAAQ,EAAQ,QAEhB6jC,EAAU,EAAQ,QAEFA,EAAQC,cAC5Bx/C,EAAQw/C,cAAgBD,EAAQC,cAEhC,IAAIC,EAAmB,EAAQ,QAE3BC,EAAkBD,EAAiBC,gBACnCC,EAAqBF,EAAiBE,mBACtCC,EAAsBH,EAAiBG,oBAEvCC,EAAsB,EAAQ,QAElC7/C,EAAQ8/C,mBAAqBD,EAE7B,IAAIE,EAAoB,EAAQ,QAEhC//C,EAAQ6b,iBAAmBkkC,EAE3B,IAAI3/C,EAAU,EAAQ,QA6BtB,SAAS4/C,EAAW7gD,GAClB,OAAOxC,EAAoBwC,EAAY7B,YAAa6B,GA5BtDa,EAAQK,aAAeD,EAAQC,aAoC/B,IAAI4/C,EAAY,CACdN,mBAAoBA,EACpBD,gBAAiBA,EACjBE,oBAAqBA,GAiBvB,SAASM,EAAYv9B,EAAYzlB,GAC/B,IAAI0P,EAAY1P,EAEXwe,EAAMykC,WAAWjjD,KACpB0P,EAAY,IAAI8O,EAAMxe,GACtB+C,EAAOyM,MAAME,EAAW0yC,IAG1B,IAAIxzC,EAAQuzC,EAAWe,mBAAmBxzC,GAG1C,OAFAd,EAAMu0C,UAAU19B,EAAW,GAAIA,EAAW,IAC1C08B,EAAWiB,gBAAgBx0C,EAAOc,GAC3Bd,EAgBT,SAASy0C,EAA4B7kC,GACnCzb,EAAOyM,MAAMgP,EAAO4jC,GAGtBt/C,EAAQggD,WAAaA,EACrBhgD,EAAQigD,UAAYA,EACpBjgD,EAAQkgD,YAAcA,EACtBlgD,EAAQugD,4BAA8BA,G,uBCzHtC,IAAI96C,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAI8wC,EAAe,EAAQ,QAEvBC,EAAe,EAAQ,QAE3B,EAAQ,QAsBR/wC,EAAQ2mB,eAAemqB,EAAa,UAAW,WAC/C9wC,EAAQyrB,eAAeslB,EAAa,a,mBC/CpC,IAAIgK,EAAoC,qBAAjBxuB,aAA+B5c,MAAQ4c,aAM9D,SAASiP,IACP,IAAI10B,EAAM,IAAIi0C,EAAU,GAExB,OADA/f,EAASl0B,GACFA,EAQT,SAASk0B,EAASl0B,GAOhB,OANAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,EAST,SAAS60B,EAAK70B,EAAK8F,GAOjB,OANA9F,EAAI,GAAK8F,EAAE,GACX9F,EAAI,GAAK8F,EAAE,GACX9F,EAAI,GAAK8F,EAAE,GACX9F,EAAI,GAAK8F,EAAE,GACX9F,EAAI,GAAK8F,EAAE,GACX9F,EAAI,GAAK8F,EAAE,GACJ9F,EAUT,SAAS40B,EAAI50B,EAAKk0C,EAAIC,GAIpB,IAAIC,EAAOF,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAClCE,EAAOH,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAClCG,EAAOJ,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAClCI,EAAOL,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAClCK,EAAON,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAC1CO,EAAOP,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAO9C,OANAl0C,EAAI,GAAKo0C,EACTp0C,EAAI,GAAKq0C,EACTr0C,EAAI,GAAKs0C,EACTt0C,EAAI,GAAKu0C,EACTv0C,EAAI,GAAKw0C,EACTx0C,EAAI,GAAKy0C,EACFz0C,EAUT,SAAS00C,EAAU10C,EAAKmI,EAAG8O,GAOzB,OANAjX,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GAAK8O,EAAE,GAClBjX,EAAI,GAAKmI,EAAE,GAAK8O,EAAE,GACXjX,EAUT,SAASk2B,EAAOl2B,EAAKmI,EAAGwsC,GACtB,IAAIC,EAAKzsC,EAAE,GACP0sC,EAAK1sC,EAAE,GACP2sC,EAAM3sC,EAAE,GACR4sC,EAAK5sC,EAAE,GACP6sC,EAAK7sC,EAAE,GACP8sC,EAAM9sC,EAAE,GACR+sC,EAAKv4C,KAAKw4C,IAAIR,GACdS,EAAKz4C,KAAK04C,IAAIV,GAOlB,OANA30C,EAAI,GAAK40C,EAAKQ,EAAKL,EAAKG,EACxBl1C,EAAI,IAAM40C,EAAKM,EAAKH,EAAKK,EACzBp1C,EAAI,GAAK60C,EAAKO,EAAKJ,EAAKE,EACxBl1C,EAAI,IAAM60C,EAAKK,EAAKE,EAAKJ,EACzBh1C,EAAI,GAAKo1C,EAAKN,EAAMI,EAAKD,EACzBj1C,EAAI,GAAKo1C,EAAKH,EAAMC,EAAKJ,EAClB90C,EAUT,SAAST,EAAMS,EAAKmI,EAAG8O,GACrB,IAAIq+B,EAAKr+B,EAAE,GACPs+B,EAAKt+B,EAAE,GAOX,OANAjX,EAAI,GAAKmI,EAAE,GAAKmtC,EAChBt1C,EAAI,GAAKmI,EAAE,GAAKotC,EAChBv1C,EAAI,GAAKmI,EAAE,GAAKmtC,EAChBt1C,EAAI,GAAKmI,EAAE,GAAKotC,EAChBv1C,EAAI,GAAKmI,EAAE,GAAKmtC,EAChBt1C,EAAI,GAAKmI,EAAE,GAAKotC,EACTv1C,EAST,SAASq1B,EAAOr1B,EAAKmI,GACnB,IAAIysC,EAAKzsC,EAAE,GACP0sC,EAAK1sC,EAAE,GACP2sC,EAAM3sC,EAAE,GACR4sC,EAAK5sC,EAAE,GACP6sC,EAAK7sC,EAAE,GACP8sC,EAAM9sC,EAAE,GACRqtC,EAAMZ,EAAKI,EAAKD,EAAKF,EAEzB,OAAKW,GAILA,EAAM,EAAMA,EACZx1C,EAAI,GAAKg1C,EAAKQ,EACdx1C,EAAI,IAAM+0C,EAAKS,EACfx1C,EAAI,IAAM60C,EAAKW,EACfx1C,EAAI,GAAK40C,EAAKY,EACdx1C,EAAI,IAAM60C,EAAKI,EAAMD,EAAKF,GAAOU,EACjCx1C,EAAI,IAAM+0C,EAAKD,EAAMF,EAAKK,GAAOO,EAC1Bx1C,GAVE,KAkBX,SAASxH,EAAM2P,GACb,IAAIC,EAAIssB,IAER,OADAG,EAAKzsB,EAAGD,GACDC,EAGT3U,EAAQihC,OAASA,EACjBjhC,EAAQygC,SAAWA,EACnBzgC,EAAQohC,KAAOA,EACfphC,EAAQmhC,IAAMA,EACdnhC,EAAQihD,UAAYA,EACpBjhD,EAAQyiC,OAASA,EACjBziC,EAAQ8L,MAAQA,EAChB9L,EAAQ4hC,OAASA,EACjB5hC,EAAQ+E,MAAQA,G,qBCpKhB,IAAIU,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB+hD,EAAc,EAAQ,QAEtBtmC,EAAQ,EAAQ,QAEhB4jC,EAAuB,EAAQ,QAoB/B2C,EAAmBD,EAAYE,UAEnC,SAASC,EAAat1C,EAAKpO,GACzB,OAAOwB,EAAO6O,SAAS,CACrBrQ,KAAMA,GACLoO,GAGL,IAAIu1C,EAAa38C,EAAQ48C,qBAAqB,CAC5CvlD,KAAM,QACN+T,cAAe,WACb,IAAIyxC,EAAcjlD,KAAKkC,IAAI,eACvBqiB,EAAcvkB,KAAKkC,IAAI,eACvBuM,EAAQzO,KAAKkC,IAAI,SACjBgjD,EAAWllD,KAAKkC,IAAI,YACpBijD,EAAWnlD,KAAKkC,IAAI,YACpB+xB,EAAWj0B,KAAKkC,IAAI,YACpBkjD,EAAYplD,KAAKkC,IAAI,aACrBmjD,EAAgBrlD,KAAKkC,IAAI,QACzBojD,EAAWtlD,KAAKkC,IAAI,aACpBqjD,EAAgBvlD,KAAKkC,IAAI,kBACzBsjD,EAAUxlD,KAAKkC,IAAI,WACnBujD,EAAezlD,KAAKkC,IAAI,gBACxBwjD,EAAkB9iD,EAAOqE,IAAIjH,KAAKkC,IAAI,cAAgB,IAAI,SAAUyjD,GAE9C,MAApBA,EAAal1C,KAAek1C,EAAal1C,IAAM,IAAMk1C,EAAaj1C,IACpEi1C,EAAaj1C,IAAM,EACU,MAApBi1C,EAAaj1C,KAAei1C,EAAaj1C,IAAM,IAAMi1C,EAAal1C,MAC3Ek1C,EAAal1C,IAAM,GAGrB,IAAIm1C,EAAiBP,EA8BrB,GA5B0B,MAAtBM,EAAa/tC,QACfguC,EAAiBhjD,EAAO6O,SAAS,CAC/BmG,MAAO+tC,EAAa/tC,OACnBytC,IAILM,EAAe/iD,EAAOie,MAAMje,EAAO8E,MAAMi+C,GAAe,CACtDV,YAAaA,EACb1gC,YAAaA,EACb9V,MAAOA,EACPy2C,SAAUA,EACVC,SAAUA,EACVlxB,SAAUA,EACVmxB,UAAWA,EAEXz4C,KAAMg5C,EAAahgD,KACnBkgD,aAAc,MACdL,QAASA,EAETH,cAAeO,EACfH,aAAcA,IACb,GAEEH,IACHK,EAAah5C,KAAO,IAGO,kBAAlB44C,EAA4B,CACrC,IAAIO,EAAUH,EAAah5C,KAC3Bg5C,EAAah5C,KAAO44C,EAAc9iD,QAAQ,UAAsB,MAAXqjD,EAAkBA,EAAU,QAC/C,oBAAlBP,IAChBI,EAAah5C,KAAO44C,EAAcI,EAAah5C,KAAMg5C,IAGvD,IAAI71B,EAAQltB,EAAOpD,OAAO,IAAI6e,EAAMsnC,EAAc,KAAM3lD,KAAKF,SAAUmiD,GAIvE,OAFAnyB,EAAMmN,SAAW,QACjBnN,EAAMiS,eAAiB/hC,KAAK+hC,eACrBjS,IACN9vB,MAEHA,KAAK+lD,mBAAqB,WACxB,OAAOL,IAGX3kD,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHy3B,OAAQ,CAAC,MAAO,OAChBstB,OAAQ,MACRlE,WAAY,GACZn1C,KAAM,CACJvL,MAAM,GAIR6jD,YAAa,CAAC,EAAG,GACjB1gC,YAAa,EACbihC,QAAS,GACT/2C,OAAO,EAEP+C,MAAO,UACP0zC,SAAUtiD,EAAOie,MAAM,CACrBtf,UAAW,CACTqW,MAAO,SAERgtC,EAAiBM,UACpBE,UAAWN,EAAaF,EAAiBQ,WAAW,GACpDD,SAAUL,EAAaF,EAAiBO,UAAU,GAClDlxB,SAAU,WACVgyB,UAAWnB,EAAaF,EAAiBqB,WAAW,GACpDC,UAAWpB,EAAaF,EAAiBsB,WAAW,GAEpDC,UAAW,MAGX5mD,EAAWwlD,EACfriD,EAAOC,QAAUpD,G,mBCzHjB,IAAI6mD,EAAkB,CACpB,OAAQ,CAAC,GAAI,IAEb,KAAM,CAAC,GAAI,IACX,KAAM,CAAC,GAAI,GACX,KAAM,EAAE,GAAI,IAEZ,KAAM,CAAC,EAAG,IAGZ,SAAS7mD,EAAS8mD,EAASnpB,GACzB,GAAgB,UAAZmpB,EAAqB,CACvB,IAAIC,EAAWF,EAAgBlpB,EAAOvwB,MAEtC,GAAI25C,EAAU,CACZ,IAAIC,EAAKrpB,EAAOxE,OAChB6tB,EAAG,IAAMD,EAAS,GAAK,KACvBC,EAAG,KAAOD,EAAS,GAAK,KAK9B5jD,EAAOC,QAAUpD,G,uBCxCjB,IAAIinD,EAAgB,EAAQ,QAoBxBjnD,EAAWinD,EAAchnD,OAAO,CAClCC,KAAM,aACNC,aAAc,CAAC,OAAQ,SACvB82C,cAAe,OAKfiQ,eAAgB,WAEd,QAAOzmD,KAAKkC,IAAI,UAAWlC,KAAKkC,IAAI,gBAMtCwkD,wBAAyB,WAEvB,IAAIC,EAAuB3mD,KAAKkC,IAAI,wBAChC0kD,EAAiB5mD,KAAKkC,IAAI,kBAM9B,OAJI0kD,EAAiBD,IACnBA,EAAuBC,GAGlBD,GAET5lD,cAAe,CAGbgb,MAAM,EAGN8qC,UAAU,EACVC,gBAAgB,EAChBC,gBAAiB,CACfnvC,MAAO,2BACPzM,YAAa,KACbC,YAAa,EACb47C,WAAY,QACZC,aAAc,EACdjL,WAAY,EACZG,YAAa,KACbF,cAAe,EACfC,cAAe,EACfz6C,QAAS,MAKfiB,EAAOC,QAAUpD,G,uBCtEjB,IAAIqD,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAEdrgB,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAoBnBgB,EAAQhB,IACR9tC,EAAOyD,EAAOzD,KASlB,SAAS+nD,EAASn/C,EAAKxB,EAAKsmB,GAC1B,IAAI/D,EAAItJ,KAAR,CAIA,IAAI+K,EAAKhkB,EAAIslB,QACboiB,EAAM1jB,GAAI48B,UAAYlZ,EAAM1jB,GAAI48B,QAAU,IAC1CC,EAAoB78B,EAAIhkB,GACxB,IAAI8gD,EAASpZ,EAAM1jB,GAAI48B,QAAQp/C,KAASkmC,EAAM1jB,GAAI48B,QAAQp/C,GAAO,IACjEs/C,EAAOx6B,QAAUA,GAGnB,SAASu6B,EAAoB78B,EAAIhkB,GAW/B,SAAS+gD,EAAWC,EAAWppC,GAC7BoM,EAAG3jB,GAAG2gD,GAAW,SAAU56B,GACzB,IAAI66B,EAAMC,EAAmBlhD,GAC7BpH,EAAK8uC,EAAM1jB,GAAI48B,SAAS,SAAUE,GAChCA,GAAUlpC,EAAGkpC,EAAQ16B,EAAG66B,EAAIhhD,mBAE9BkhD,EAAuBF,EAAIG,SAAUphD,MAhBrC0nC,EAAM1jB,GAAIq9B,cAId3Z,EAAM1jB,GAAIq9B,aAAc,EACxBN,EAAW,QAAS1kD,EAAO4G,MAAMq+C,EAAS,UAC1CP,EAAW,YAAa1kD,EAAO4G,MAAMq+C,EAAS,cAE9CP,EAAW,YAAaQ,IAa1B,SAASJ,EAAuBC,EAAUphD,GACxC,IAEIwhD,EAFAC,EAAUL,EAASM,QAAQh9C,OAC3Bi9C,EAAUP,EAASQ,QAAQl9C,OAG3B+8C,EACFD,EAAkBJ,EAASM,QAAQD,EAAU,GACpCE,IACTH,EAAkBJ,EAASQ,QAAQD,EAAU,IAG3CH,IACFA,EAAgBvhD,eAAiB,KACjCD,EAAIC,eAAeuhD,IAIvB,SAASD,EAAQT,EAAQ16B,EAAGnmB,GAC1B6gD,EAAOx6B,QAAQ,QAAS,KAAMrmB,GAGhC,SAASqhD,EAAQO,EAAaf,EAAQ16B,EAAGnmB,GACvC6gD,EAAOx6B,QAAQu7B,EAAaz7B,EAAGnmB,GAGjC,SAASihD,EAAmBlhD,GAC1B,IAAIohD,EAAW,CACbM,QAAS,GACTE,QAAS,IAOP3hD,EAAiB,SAAU03B,GAC7B,IAAImqB,EAAcV,EAASzpB,EAAQz+B,MAE/B4oD,EACFA,EAAYxnD,KAAKq9B,IAEjBA,EAAQ13B,eAAiBA,EACzBD,EAAIC,eAAe03B,KAIvB,MAAO,CACL13B,eAAgBA,EAChBmhD,SAAUA,GASd,SAASW,EAAWvgD,EAAKxB,GACvB,IAAIuiB,EAAItJ,KAAR,CAIA,IAAI+K,EAAKhkB,EAAIslB,QACTw7B,GAAUpZ,EAAM1jB,GAAI48B,SAAW,IAAIp/C,GAEnCs/C,IACFpZ,EAAM1jB,GAAI48B,QAAQp/C,GAAO,OAI7BpF,EAAQukD,SAAWA,EACnBvkD,EAAQ2lD,WAAaA,G,uBC7IrB,IAAI1lD,EAAS,EAAQ,QAEjB2lD,EAAQ,EAAQ,QAEhBC,EAAc,EAAQ,QA4BtBC,EAAaF,EAAMz6C,UACnB46C,EAAeH,EAAM/oD,OAAO,CAC9BC,KAAM,UAKNuJ,KAAM,SAAU2/C,EAAa9wB,GAGtB8wB,IAAe/lD,EAAOogB,QAAQ2lC,KACjCA,EAAc,IAAIH,EAAY,CAC5BlkC,WAAYqkC,KAIhB3oD,KAAK4oD,aAAeD,EACpB3oD,KAAK6oD,QAAUhxB,GAAU,CAAC,EAAG8wB,EAAYrkC,WAAWrZ,OAAS,IAE/DuQ,MAAO,SAAU/P,GACf,MAAsB,kBAARA,EAAmBzL,KAAK4oD,aAAaE,WAAWr9C,GAC5DI,KAAK8d,MAAMle,IAEfyC,QAAS,SAAU66C,GAEjB,OADAA,EAAO/oD,KAAKwb,MAAMutC,GACXN,EAAWv6C,QAAQpB,KAAK9M,KAAM+oD,IAA+C,MAAtC/oD,KAAK4oD,aAAatkC,WAAWykC,IAQ7EC,UAAW,SAAUv9C,GACnB,OAAOg9C,EAAWO,UAAUl8C,KAAK9M,KAAMA,KAAKwb,MAAM/P,KAEpDgD,MAAO,SAAUhD,GACf,OAAOI,KAAK8d,MAAM8+B,EAAWh6C,MAAM3B,KAAK9M,KAAMyL,KAMhDw9C,SAAU,WACR,IAAIC,EAAQ,GACRrxB,EAAS73B,KAAK6oD,QACdE,EAAOlxB,EAAO,GAElB,MAAOkxB,GAAQlxB,EAAO,GACpBqxB,EAAMroD,KAAKkoD,GACXA,IAGF,OAAOG,GAQTC,SAAU,SAAUv1C,GAClB,IAAK5T,KAAK0gD,UAER,OAAO1gD,KAAK4oD,aAAatkC,WAAW1Q,IAOxCuO,MAAO,WACL,OAAOniB,KAAK6oD,QAAQ,GAAK7oD,KAAK6oD,QAAQ,GAAK,GAM7CO,oBAAqB,SAAU7oD,EAAMwP,GACnC/P,KAAKqpD,YAAY9oD,EAAK+oD,qBAAqBv5C,KAE7Cw5C,eAAgB,WACd,OAAOvpD,KAAK4oD,cAEdY,UAAW5mD,EAAOg2C,KAClB6Q,WAAY7mD,EAAOg2C,OAMrB8P,EAAa9kB,OAAS,WACpB,OAAO,IAAI8kB,GAGb,IAAInpD,EAAWmpD,EACfhmD,EAAOC,QAAUpD,G,qBChIjB,IAAImqD,EAAc,EAAQ,QAoBtBnqD,EAAWmqD,EAAYlqD,OAAO,CAChCC,KAAM,WACNsB,cAAe,CACbC,OAAQ,EACRC,EAAG,EACH4xC,OAAQ,CAAC,SAAU,SACnBkH,WAAY,CAAC,EAAG,IAEhBnyB,UAAW,EACX+hC,QAAS,CACPrsB,QAAS,QAEXn8B,MAAO,CACLC,MAAM,EACN4J,SAAU,MACV4+C,SAAU,GAEZroD,UAAW,CACT9B,KAAM,UAERiC,SAAU,CACRP,MAAO,CACLC,MAAM,GAERG,UAAW,CACTC,MAAO,IAGXK,gBAAiB,YAIrBa,EAAOC,QAAUpD,G,uBCpDjB,IAAIqD,EAAS,EAAQ,QAEjBinD,EAAY,EAAQ,QAEpB/mD,EAAU,EAAQ,QAElBgnD,EAAO,EAAQ,QAEfC,EAA8B,EAAQ,QAEtCC,EAAiBD,EAA4BC,eAoB7CC,EAAyB,CAAC,aAC1BC,EAA2B,CAAC,WAAY,aACxCC,EAAa,CAAC,QAAS,SAAU,cAAe,gBAChDC,EAAkBP,EAAUrqD,OAAO,CACrCC,KAAM,cACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GAEtCvG,KAAKsD,MAAMqkC,iBAEX3nC,KAAKqqD,gBAAgBvoD,GAErB9B,KAAKsqD,aAAetqD,KAAKuqD,aAAazoD,GAAe9B,KAAKwqD,cAAc1oD,IAE1E2oD,yBAA0B,SAAU3oD,EAAahC,EAASyG,GACxDvG,KAAK0qD,SAEL1qD,KAAKqqD,gBAAgBvoD,IAEvB6oD,kBAAmB,SAAU9gD,EAAQ/H,EAAahC,EAASyG,GACzDvG,KAAKsqD,aAAetqD,KAAK4qD,wBAAwB/gD,EAAQ/H,GAAe9B,KAAK6qD,yBAAyBhhD,EAAQ/H,IAEhHuoD,gBAAiB,SAAUvoD,GACzB,IAAIgpD,EAAchpD,EAAY8zB,gBAAgBC,OAErB,MAArB71B,KAAKsqD,cAAwBQ,EAAc9qD,KAAKsqD,gBAClDtqD,KAAKsqD,aAAeQ,EAEpB9qD,KAAK0qD,WAGTF,cAAe,SAAU1oD,GACvB,IAAIvB,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MACft6C,EAAQtD,KAAKsD,MACboyB,EAAcn1B,EAAKwgB,UAAU,eAC7BgqC,EAAYjpD,EAAYI,IAAI,QAAQ,GACpCmK,EAAQvK,EAAYxB,iBACpB0qD,EAAW3+C,EAAM4+C,SAAW5+C,EAAM4+C,UAGjCjrD,KAAK49C,OACRt6C,EAAMC,YAGRhD,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAUk5C,GAC/B,GAAIj+C,EAAK2qD,SAAS1M,GAAS,CACzB,IAAI/yB,EACAyV,EAAa3gC,EAAKygB,cAAcw9B,GAEpC,GAAIuM,GAAaI,EAAmBH,EAAU9pB,GAC5C,OAGFzV,EAAK2/B,EAAgBlqB,EAAYsd,GAAQ,GACzC17C,EAAQk4C,UAAUvvB,EAAI,CACpBja,MAAO,CACL+F,OAAQ2pB,EAAWrK,OAEpB/0B,EAAa08C,GAChB6M,EAAa5/B,EAAIlrB,EAAMi+C,EAAQ9oB,GAC/BpyB,EAAMgC,IAAImmB,GACVlrB,EAAKqhC,iBAAiB4c,EAAQ/yB,OAE/BljB,QAAO,SAAUi2C,EAAQC,GAC1B,IAAIhzB,EAAKkyB,EAAQpE,iBAAiBkF,GAElC,GAAKl+C,EAAK2qD,SAAS1M,GAAnB,CAKA,IAAItd,EAAa3gC,EAAKygB,cAAcw9B,GAEhCuM,GAAaI,EAAmBH,EAAU9pB,GAC5C59B,EAAM++B,OAAO5W,IAIVA,EAGH3oB,EAAQk8B,YAAYvT,EAAI,CACtBja,MAAO,CACL+F,OAAQ2pB,EAAWrK,OAEpB/0B,EAAa08C,GANhB/yB,EAAK2/B,EAAgBlqB,EAAYsd,GASnC6M,EAAa5/B,EAAIlrB,EAAMi+C,EAAQ9oB,GAC/BpyB,EAAMgC,IAAImmB,GACVlrB,EAAKqhC,iBAAiB4c,EAAQ/yB,SAvB5BnoB,EAAM++B,OAAO5W,MAwBd4W,QAAO,SAAUoc,GAClB,IAAIhzB,EAAKkyB,EAAQpE,iBAAiBkF,GAClChzB,GAAMnoB,EAAM++B,OAAO5W,MAClBizB,UACH1+C,KAAK49C,MAAQr9C,GAEfgqD,aAAc,SAAUzoD,GACtB9B,KAAK0qD,SAELY,EAAYxpD,EAAa9B,KAAKsD,OAC9B,IAAIioD,EAAWzpD,EAAYI,IAAI,QAAQ,GAAQ8nD,EAAeloD,EAAYxB,kBAAkB,EAAOwB,GAAe,KAE9GypD,EACFvrD,KAAKsD,MAAMinC,YAAYghB,GAEvBvrD,KAAKsD,MAAMqkC,kBAGfkjB,yBAA0B,SAAUhhD,EAAQ/H,GAC1C,IAEIlB,EAFAL,EAAOuB,EAAYtB,UACnBk1B,EAAcn1B,EAAKwgB,UAAU,eAGjC,MAAsC,OAA9BngB,EAAYiJ,EAAOmsB,QAAiB,CAC1C,IAAIvK,EACAyV,EAAa3gC,EAAKygB,cAAcpgB,GACpC6qB,EAAK2/B,EAAgBlqB,EAAYtgC,GACjCyqD,EAAa5/B,EAAIlrB,EAAMK,EAAW80B,GAClCjK,EAAGgwB,aAAc,EACjBz7C,KAAKsD,MAAMgC,IAAImmB,KAGnBm/B,wBAAyB,SAAU/gD,EAAQ/H,GACzCwpD,EAAYxpD,EAAa9B,KAAKsD,OAAO,IAEvC++B,OAAQ,SAAUviC,GAChBE,KAAK0qD,UAEPA,OAAQ,WACN1qD,KAAKsD,MAAMC,YACXvD,KAAK49C,MAAQ,MAEfrvB,QAAS3rB,EAAOg2C,OAEd4S,EAAgB1B,EAAKtqD,OAAO,CAC9BC,KAAM,uBACN+R,MAAO,GACPi6C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAIqlB,EAAOrlB,EAAM+F,OAEbvX,KAAK0rD,aACPjnB,EAAItW,OAAO0I,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAIknB,OAAO90B,EAAK,GAAG,GAAIA,EAAK,GAAG,MAE/B4N,EAAItW,OAAO0I,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAIknB,OAAO90B,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAIknB,OAAO90B,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAIknB,OAAO90B,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAImnB,YACJnnB,EAAItW,OAAO0I,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAIknB,OAAO90B,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAItW,OAAO0I,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC/B4N,EAAIknB,OAAO90B,EAAK,GAAG,GAAIA,EAAK,GAAG,QAKrC,SAASu0B,EAAgBlqB,EAAYtgC,EAAW8jB,GAC9C,IAAImS,EAAOqK,EAAWrK,KACtB,OAAO,IAAI20B,EAAc,CACvBh6C,MAAO,CACL+F,OAAQmN,EAASmnC,EAAUh1B,EAAMqK,GAAcrK,GAEjDzlB,GAAI,MAIR,SAAS+5C,EAAmBH,EAAU9pB,GAGpC,IAFA,IAAI4qB,GAAU,EAEL79C,EAAI,EAAGA,EAAIizB,EAAWrK,KAAK5rB,OAAQgD,IAE1C,GAAI+8C,EAAS98C,QAAQgzB,EAAWrK,KAAK5oB,GAAG,GAAIizB,EAAWrK,KAAK5oB,GAAG,IAAK,CAClE69C,GAAU,EACV,MAIJ,OAAOA,EAGT,SAAST,EAAa5/B,EAAIlrB,EAAMK,EAAW80B,GACzC,IAAIvU,EAAY5gB,EAAK6gB,aAAaxgB,GAC9BmrD,EAAuB5qC,EAAUF,SAASgpC,GAC1CryC,EAAQrX,EAAKohB,cAAc/gB,EAAW,SACtCuK,EAAc5K,EAAKohB,cAAc/gB,EAAW,gBAAkBgX,EAG9D1M,EAAY6gD,EAAqBp6C,aAAaw4C,GAClD1+B,EAAGswB,SAAS7wC,GACZugB,EAAGjmB,MAAMs7B,eAAgB,EACzBrV,EAAGjmB,MAAMkM,KAAOkG,EAChB6T,EAAGjmB,MAAMq5C,OAAS1zC,EAClBsgB,EAAGigC,YAAch2B,EACjB,IAAI6L,EAAapgB,EAAUF,SAASipC,GAA0Bv4C,eAC9D7O,EAAQq/B,cAAc1W,EAAI8V,GAG5B,SAASsqB,EAAUt0C,EAAQ2pB,GACzB,OAAOt+B,EAAOqE,IAAIsQ,GAAQ,SAAU+f,GAGlC,OAFAA,EAAQA,EAAMhwB,QACdgwB,EAAM,GAAK4J,EAAWhK,aACfI,KAIX,IAAI00B,EAAelC,EAAKtqD,OAAO,CAC7BC,KAAM,sBACN+R,MAAO,GACPi6C,UAAW,SAAUhnB,EAAKjzB,GAKxB,IAFA,IAAI+F,EAAS/F,EAAM+F,OAEVtJ,EAAI,EAAGA,EAAIsJ,EAAOtM,QACzB,GAAIjL,KAAKisD,SAAW10C,EAAOtJ,KAAM,CAC/B,IAAIxI,EAAI8R,EAAOtJ,KACfw2B,EAAItW,OAAO1oB,EAAG8R,EAAOtJ,MACrBw2B,EAAIknB,OAAOlmD,EAAG8R,EAAOtJ,WAErBA,GAAK,KAMb,SAASq9C,EAAYxpD,EAAawB,EAAOm4C,GACvC,IAAIl7C,EAAOuB,EAAYtB,UACnB0rD,EAAc3rD,EAAKwgB,UAAU,eAC7BorC,EAAM,IAAIH,EAAa,CACzBx6C,MAAO,CACL+F,OAAQ20C,GAEVD,OAAQ,IAEV3oD,EAAMgC,IAAI6mD,GACV,IAAIC,EAAM,IAAIJ,EAAa,CACzBx6C,MAAO,CACL+F,OAAQ20C,GAEVD,QAAS,IAEX3oD,EAAMgC,IAAI8mD,GACVC,EAAc,EAAGF,EAAKrqD,EAAavB,GACnC8rD,GAAe,EAAGD,EAAKtqD,EAAavB,GAEhCk7C,IACF0Q,EAAI1Q,aAAc,EAClB2Q,EAAI3Q,aAAc,GAItB,SAAS4Q,EAAcr1B,EAAMvL,EAAI3pB,EAAavB,GAC5C,IAAI+rD,EAASt1B,EAAO,EAAI,IAAM,IAC1B7rB,EAAc5K,EAAKkhB,UAAU,cAAgB6qC,IAAW/rD,EAAKkhB,UAAU,QAAU6qC,GAGjFphD,EAAYpJ,EAAYmf,SAASgpC,GAAwBt4C,aAAaw4C,GAC1E1+B,EAAGswB,SAAS7wC,GACZugB,EAAGjmB,MAAMkM,KAAO,KAChB+Z,EAAGjmB,MAAMq5C,OAAS1zC,EAIpB,IAAI5L,EAAW6qD,EACf1nD,EAAOC,QAAUpD,G,uBC5TjB,IAAIqD,EAAS,EAAQ,QAEjB2pD,EAAQ,EAAQ,QAEhBC,EAAU,EAAQ,QAElBC,EAAW,EAAQ,QAYvB,SAASpnB,EAAY/B,GAInB,IAAK,IAAI32B,KAHT22B,EAAOA,GAAQ,GACfkpB,EAAQ1/C,KAAK9M,KAAMsjC,GAEFA,EACXA,EAAKvmB,eAAepQ,IAAkB,UAATA,IAC/B3M,KAAK2M,GAAQ22B,EAAK32B,IAQtB3M,KAAKwF,MAAQ,IAAI+mD,EAAMjpB,EAAK99B,MAAOxF,MACnCA,KAAKsN,MAAQ,KAIbtN,KAAK0sD,YAAc,KAIrBrnB,EAAYv3B,UAAY,CACtBC,YAAas3B,EACb5lC,KAAM,cAONktD,SAAS,EASTniB,WAAW,EAOXvpC,EAAG,EAOHmQ,GAAI,EAQJpQ,OAAQ,EAQR65C,WAAW,EAQX+R,UAAU,EAQVh7C,QAAQ,EAORmvB,SAAS,EAOToK,OAAQ,UAOR0hB,WAAW,EAOXlrD,aAAa,EAKb85C,aAAa,EAMbzX,iBAAkB,EAClB8oB,YAAa,SAAUroB,KACvBsoB,WAAY,SAAUtoB,KAOtBe,MAAO,SAAUf,EAAKgB,KAOtBx5B,gBAAiB,aAQjBiC,QAAS,SAAUzI,EAAGC,GACpB,OAAO1F,KAAKgtD,YAAYvnD,EAAGC,IAO7Bo9B,SAAU,SAAU3kB,EAAIyB,GACtBzB,EAAGrR,KAAK8S,EAAS5f,OASnBgtD,YAAa,SAAUvnD,EAAGC,GACxB,IAAI2G,EAAQrM,KAAKglC,sBAAsBv/B,EAAGC,GACtCsG,EAAOhM,KAAKiM,kBAChB,OAAOD,EAAKkC,QAAQ7B,EAAM,GAAIA,EAAM,KAMtCiG,MAAO,WACLtS,KAAK2sD,QAAU3sD,KAAKitD,aAAc,EAClCjtD,KAAKsN,MAAQ,KACbtN,KAAKktD,MAAQltD,KAAKktD,KAAKC,WAsBzBC,aAAc,SAAUnxC,GACtB,OAAOjc,KAAK4zC,QAAQ,QAAS33B,IAE/BoxC,OAAQ,SAAUtlD,EAAK4F,GACT,UAAR5F,EACFykD,EAAQ1+C,UAAUu/C,OAAOvgD,KAAK9M,KAAM+H,EAAK4F,GAEzC3N,KAAKwF,MAAMjD,IAAIoL,IAQnBkzB,SAAU,SAAU94B,EAAK4F,GAGvB,OAFA3N,KAAKwF,MAAMjD,IAAIwF,EAAK4F,GACpB3N,KAAKsS,OAAM,GACJtS,MAOT+7C,SAAU,SAAUh2B,GAGlB,OAFA/lB,KAAKwF,MAAQ,IAAI+mD,EAAMxmC,EAAK/lB,MAC5BA,KAAKsS,OAAM,GACJtS,MAsBTstD,sBAAuB,MAEzB1qD,EAAOwxB,SAASiR,EAAamnB,GAC7B5pD,EAAOyM,MAAMg2B,EAAaonB,GAE1B,IAAIltD,EAAW8lC,EACf3iC,EAAOC,QAAUpD,G,uBChQjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB+mD,EAAY,EAAQ,QA0BxB,SAAS0D,EAAmBtlD,EAAKnG,EAAa0rD,EAAcjnD,GAC1D,IAAIhG,EAAOuB,EAAYtB,UACnBI,EAAYZ,KAAKY,UACjB+L,EAAOpM,EAAK08C,QAAQr8C,GACpB6sD,EAAiB3rD,EAAYI,IAAI,kBACrCqE,EAAIC,eAAe,CACjB/G,KAAM,kBACNuI,KAAMC,EACN0E,KAAMA,EACNqa,SAAUllB,EAAYqG,KAExB5H,EAAKpB,MAAK,SAAU+Q,GAClBw9C,EAAmBntD,EAAKg5C,iBAAiBrpC,GAAM3P,EAAKygB,cAAc9Q,GAAMpO,EAAYy7B,WAAWh9B,EAAK08C,QAAQ/sC,IAAOu9C,EAAgBD,MAavI,SAASE,EAAmBjiC,EAAIxoB,EAAQs6B,EAAYkwB,EAAgBD,GAClE,IAAIG,GAAY1qD,EAAO6+C,WAAa7+C,EAAO8+C,UAAY,EACnD7vC,EAAKrG,KAAK04C,IAAIoJ,GACdx7C,EAAKtG,KAAKw4C,IAAIsJ,GACd74C,EAASyoB,EAAakwB,EAAiB,EACvCziD,EAAW,CAACkH,EAAK4C,EAAQ3C,EAAK2C,GAClC04C,EACE/hC,EAAGmoB,UAAUh3B,KAAK,IAAK,CACvB5R,SAAUA,IACTuJ,MAAM,aAAekX,EAAGzL,KAAK,WAAYhV,GAS9C,SAAS4iD,EAASrtD,EAAM2P,GACtBpN,EAAQ6B,MAAMmI,KAAK9M,MACnB,IAAI6tD,EAAS,IAAI/qD,EAAQ8+C,OAAO,CAC9BxwC,GAAI,IAEFktC,EAAW,IAAIx7C,EAAQy7C,SACvB54C,EAAO,IAAI7C,EAAQyC,KACvBvF,KAAKsF,IAAIuoD,GACT7tD,KAAKsF,IAAIg5C,GACTt+C,KAAKsF,IAAIK,GACT3F,KAAKi0C,WAAW1zC,EAAM2P,GAAK,GAG7B,IAAI49C,EAAgBF,EAAS9/C,UAE7BggD,EAAc7Z,WAAa,SAAU1zC,EAAM2P,EAAK69C,GAC9C,IAAIF,EAAS7tD,KAAK8+B,QAAQ,GACtBp1B,EAAY1J,KAAK8+B,QAAQ,GACzBkvB,EAAYhuD,KAAK8+B,QAAQ,GACzBh9B,EAAcvB,EAAKye,UACnBmC,EAAY5gB,EAAK6gB,aAAalR,GAC9BjN,EAAS1C,EAAKygB,cAAc9Q,GAC5B+9C,EAAcrrD,EAAOpD,OAAO,GAAIyD,GACpCgrD,EAAY9sD,MAAQ,KACpB,IAAI+sD,EAAsBpsD,EAAY06C,WAAW,uBAEjD,GAAIuR,EAAa,CACfF,EAAOM,SAASF,GAChB,IAAIG,EAAgBtsD,EAAY06C,WAAW,iBAErB,UAAlB4R,GACFP,EAAOr8C,MAAMqC,EAAI5Q,EAAO4+C,GACxB/+C,EAAQk4C,UAAU6S,EAAQ,CACxBr8C,MAAO,CACLqC,EAAG5Q,EAAO4Q,IAEX/R,EAAaoO,KAGd29C,EAAOr8C,MAAMuwC,SAAW9+C,EAAO6+C,WAC/Bh/C,EAAQk8B,YAAY6uB,EAAQ,CAC1Br8C,MAAO,CACLuwC,SAAU9+C,EAAO8+C,WAElBjgD,EAAaoO,QAGQ,cAAxBg+C,EAEFL,EAAOM,SAASF,GAGhBnrD,EAAQk8B,YAAY6uB,EAAQ,CAC1Br8C,MAAOy8C,GACNnsD,EAAaoO,GAKpB,IAAImwB,EAAc9/B,EAAKohB,cAAczR,EAAK,SAC1C29C,EAAO9R,SAASn5C,EAAO6O,SAAS,CAC9B48C,SAAU,QACV38C,KAAM2uB,GACLlf,EAAUF,SAAS,aAAatP,iBACnCk8C,EAAOtsB,WAAapgB,EAAUF,SAAS,sBAAsBtP,eAC7D,IAAI2qC,EAAcn7B,EAAUq7B,WAAW,UACvCF,GAAeuR,EAAO7tC,KAAK,SAAUs8B,GAErCoR,EAAmB1tD,KAAMO,EAAKygB,cAAc9Q,GAAMpO,EAAYy7B,WAAWh9B,EAAK08C,QAAQ/sC,IAAOpO,EAAYI,IAAI,kBAAmBJ,EAAYI,IAAI,cAEhJ,IAAIosD,GAAiBP,GAAuC,eAAxBG,EAEpCluD,KAAKuuD,aAAahuD,EAAM2P,EAAKo+C,GAE7BtuD,KAAKs7C,iBAAoBx5C,EAAYI,IAAI,UA6BrC,KA7BiD,SAAUq5C,EAAWC,GACxE,IAAIgS,EAAe1rD,EAAYs7C,sBAAwBj8B,EAAUjf,IAAI,kBAErD,aAAZs5C,GACF9xC,EAAU4pC,OAAS5pC,EAAU8kD,YAC7BR,EAAU1a,OAAS0a,EAAUQ,YAGzBhB,IACFK,EAAOna,eAAc,GACrBma,EAAO/R,UAAU,CACftqC,MAAO,CACLqC,EAAG5Q,EAAO4Q,EAAI/R,EAAYI,IAAI,iBAE/B,IAAK,iBAGVwH,EAAU4pC,OAAS5pC,EAAU+kD,aAC7BT,EAAU1a,OAAS0a,EAAUS,aAEzBjB,IACFK,EAAOna,eAAc,GACrBma,EAAO/R,UAAU,CACftqC,MAAO,CACLqC,EAAG5Q,EAAO4Q,IAEX,IAAK,iBAId/Q,EAAQq/B,cAAcniC,OAGxB8tD,EAAcS,aAAe,SAAUhuD,EAAM2P,EAAKo+C,GAChD,IAAI5kD,EAAY1J,KAAK8+B,QAAQ,GACzBkvB,EAAYhuD,KAAK8+B,QAAQ,GACzBh9B,EAAcvB,EAAKye,UACnBmC,EAAY5gB,EAAK6gB,aAAalR,GAC9BjN,EAAS1C,EAAKygB,cAAc9Q,GAC5Bw+C,EAAczrD,EAAO9B,MACrBk/B,EAAc9/B,EAAKohB,cAAczR,EAAK,SAE1C,IAAKw+C,GAAe31C,MAAM21C,EAAYjpD,IAAMsT,MAAM21C,EAAYhpD,GAC5DsoD,EAAU1a,OAAS0a,EAAUS,aAAeT,EAAUQ,YAAc9kD,EAAU4pC,OAAS5pC,EAAU+kD,aAAe/kD,EAAU8kD,aAAc,MAD1I,CAKA,IAAIG,EAAkB,CACpBp3C,OAAQm3C,EAAYE,YAAc,CAAC,CAACF,EAAYjpD,EAAGipD,EAAYhpD,GAAI,CAACgpD,EAAYjpD,EAAGipD,EAAYhpD,GAAI,CAACgpD,EAAYjpD,EAAGipD,EAAYhpD,KAE7HmpD,EAAkB,CACpBppD,EAAGipD,EAAYjpD,EACfC,EAAGgpD,EAAYhpD,GAGb4oD,GACFxrD,EAAQk8B,YAAYt1B,EAAW,CAC7B8H,MAAOm9C,GACN7sD,EAAaoO,GAChBpN,EAAQk8B,YAAYgvB,EAAW,CAC7BxoD,MAAOqpD,GACN/sD,EAAaoO,KAEhBxG,EAAUsW,KAAK,CACbxO,MAAOm9C,IAETX,EAAUhuC,KAAK,CACbxa,MAAOqpD,KAIXb,EAAUhuC,KAAK,CACbrP,SAAU+9C,EAAY/9C,SACtB4yB,OAAQ,CAACmrB,EAAYjpD,EAAGipD,EAAYhpD,GACpC0L,GAAI,KAEN,IAAI8uB,EAAa/e,EAAUF,SAAS,SAChCq+B,EAAkBn+B,EAAUF,SAAS,kBACrC6tC,EAAiB3tC,EAAUF,SAAS,aACpC8tC,EAAsB5tC,EAAUF,SAAS,sBACzCof,EAAc9/B,EAAKohB,cAAczR,EAAK,SAC1CpN,EAAQw+B,cAAc0sB,EAAUxoD,MAAOwoD,EAAUzsB,WAAa,GAAIrB,EAAYof,EAAiB,CAC7Fne,aAAc5gC,EAAKye,UACnBwiB,eAAgBtxB,EAChBuxB,YAAaitB,EAAY/oD,KACzBw3C,UAAW9c,EACXqB,iBAAkBgtB,EAAYM,QAC7B,CACDnpD,UAAW6oD,EAAY7oD,UACvBD,kBAAmB8oD,EAAYO,cAC/BxtD,QAASlB,EAAKohB,cAAczR,EAAK,aAEnC89C,EAAU1a,OAAS0a,EAAUS,cAAgBvuB,EAAWh+B,IAAI,QAC5D8rD,EAAUQ,aAAelP,EAAgBp9C,IAAI,QAC7CwH,EAAU4pC,OAAS5pC,EAAU+kD,cAAgBK,EAAe5sD,IAAI,QAChEwH,EAAU8kD,aAAeO,EAAoB7sD,IAAI,QAEjDwH,EAAUm3B,SAAS,CACjBge,OAAQxe,EACR5+B,QAASlB,EAAKohB,cAAczR,EAAK,aAEnCxG,EAAUm3B,SAASiuB,EAAe7tC,SAAS,aAAa29B,gBACxDl1C,EAAU63B,WAAawtB,EAAoB9tC,SAAS,aAAa29B,eACjE,IAAIh9C,EAASktD,EAAe5sD,IAAI,UAE5BN,IAAqB,IAAXA,IACZA,EAAS,IAGX8H,EAAUykD,SAAS,CACjBvsD,OAAQA,MAIZgB,EAAOwxB,SAASw5B,EAAU9qD,EAAQ6B,OAElC,IAAIuqD,EAAUrF,EAAUrqD,OAAO,CAC7BC,KAAM,MACNuJ,KAAM,WACJ,IAAImmD,EAAc,IAAIrsD,EAAQ6B,MAC9B3E,KAAKovD,aAAeD,GAEtB79C,OAAQ,SAAUxP,EAAahC,EAASyG,EAAK23B,GAC3C,IAAIA,GAAWA,EAAQl2B,OAAShI,KAAKiI,IAArC,CAIA,IAAI1H,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MACft6C,EAAQtD,KAAKsD,MACbkqD,EAAe1tD,EAAQoC,IAAI,aAC3B4mC,GAAiB6U,EACjByQ,EAAgBtsD,EAAYI,IAAI,iBAChCgsD,EAAsBpsD,EAAYI,IAAI,uBACtCmtD,EAAgBzsD,EAAO4G,MAAM+jD,EAAoBvtD,KAAKiI,IAAKnG,EAAa0rD,EAAcjnD,GACtFsB,EAAe/F,EAAYI,IAAI,gBAgCnC,GA/BA3B,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAU4K,GAC/B,IAAIo/C,EAAW,IAAI1B,EAASrtD,EAAM2P,GAE9B44B,GAAmC,UAAlBslB,GACnBkB,EAASlyB,WAAU,SAAU7d,GAC3BA,EAAMm0B,eAAc,MAIxB7rC,GAAgBynD,EAAS1oD,GAAG,QAASyoD,GACrC9uD,EAAKqhC,iBAAiB1xB,EAAKo/C,GAC3BhsD,EAAMgC,IAAIgqD,MACT/mD,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI6Q,EAAW3R,EAAQpE,iBAAiBkF,GAEnC3V,GAAyC,eAAxBolB,GACpBoB,EAASlyB,WAAU,SAAU7d,GAC3BA,EAAMm0B,eAAc,MAIxB4b,EAASrb,WAAW1zC,EAAMi+C,GAC1B8Q,EAASzyB,IAAI,SACbh1B,GAAgBynD,EAAS1oD,GAAG,QAASyoD,GACrC/rD,EAAMgC,IAAIgqD,GACV/uD,EAAKqhC,iBAAiB4c,EAAQ8Q,MAC7BjtB,QAAO,SAAUnyB,GAClB,IAAIo/C,EAAW3R,EAAQpE,iBAAiBrpC,GACxC5M,EAAM++B,OAAOitB,MACZ5Q,UAEC8O,GAAgBjtD,EAAK4hB,QAAU,IAAM2mB,EAAkC,UAAlBslB,EAAoD,eAAxBF,GAAuC,CAG1H,IAFA,IAAI18C,EAAQjR,EAAKygB,cAAc,GAEtBmrB,EAAI,EAAGpzB,MAAMvH,EAAMswC,aAAe3V,EAAI5rC,EAAK4hB,UAAWgqB,EAC7D36B,EAAQjR,EAAKygB,cAAcmrB,GAG7B,IAAIt4B,EAAIhI,KAAK4E,IAAIlK,EAAIylB,WAAYzlB,EAAI0lB,aAAe,EAChD0b,EAAiB/kC,EAAOiC,KAAKvB,EAAMqkC,eAAgBrkC,GACvDA,EAAMinC,YAAYvqC,KAAKuvD,gBAAgB/9C,EAAM4sC,GAAI5sC,EAAM6sC,GAAIxqC,EAAGrC,EAAMswC,WAAYtwC,EAAMg+C,UAAW7nB,EAAgB7lC,EAAagnC,SAG9HxlC,EAAMqkC,iBAGR3nC,KAAK49C,MAAQr9C,IAEfguB,QAAS,aACTghC,gBAAiB,SAAUnR,EAAIC,EAAIxqC,EAAGiuC,EAAY0N,EAAWrxC,EAAIrc,EAAagnC,GAC5E,IAAIyiB,EAAW,IAAIzoD,EAAQ8+C,OAAO,CAChCpwC,MAAO,CACL4sC,GAAIA,EACJC,GAAIA,EACJwD,GAAI,EACJhuC,EAAGA,EACHiuC,WAAYA,EACZC,SAAUD,EACV0N,UAAWA,KAGXC,EAAe3mB,EAAgBhmC,EAAQk4C,UAAYl4C,EAAQk8B,YAM/D,OALAywB,EAAalE,EAAU,CACrB/5C,MAAO,CACLuwC,SAAUD,GAAc0N,EAAY,GAAK,GAAK3jD,KAAK+E,GAAK,IAEzD9O,EAAaqc,GACTotC,GAMTmE,aAAc,SAAUp4B,EAAOx1B,GAC7B,IAAIvB,EAAOuB,EAAYtB,UACnB0gC,EAAa3gC,EAAKygB,cAAc,GAEpC,GAAIkgB,EAAY,CACd,IAAIhvB,EAAKolB,EAAM,GAAK4J,EAAWkd,GAC3BjsC,EAAKmlB,EAAM,GAAK4J,EAAWmd,GAC3B2H,EAASn6C,KAAK4sB,KAAKvmB,EAAKA,EAAKC,EAAKA,GACtC,OAAO6zC,GAAU9kB,EAAWrtB,GAAKmyC,GAAU9kB,EAAW2gB,OAIxDtiD,EAAW2vD,EACfxsD,EAAOC,QAAUpD,G,uBCjXjB,IAAI4yC,EAAO,EAAQ,QAoBnB,SAASwd,EAAa7tD,GACpB,IAAIzB,EAAWyB,EAAYxB,iBAE3B,IAAID,GAA8B,SAAlBA,EAASZ,KAAzB,CAIA,IAAI6mC,EAAQxkC,EAAYykC,WACxBD,EAAM5mB,UAAS,SAAUF,GACvB,IAAIsQ,EAAQtQ,EAAKyB,WACjBzB,EAAKoB,UAAU,EAAEkP,EAAM5tB,IAAI,MAAO4tB,EAAM5tB,IAAI,UAE9C0tD,EAAiBtpB,IAGnB,SAASspB,EAAiBtpB,GACxBA,EAAMupB,UAAS,SAAUtoC,GACvB,IAAIuoC,EAAYvoC,EAAKtG,WAAW/e,IAAI,wBAA0B,EAC1DyJ,EAAKwmC,EAAKzqC,MAAM6f,EAAKwoC,MAAMhvC,aAC3BnV,EAAKumC,EAAKzqC,MAAM6f,EAAKyoC,MAAMjvC,aAC3BxJ,EAAS,CAAC5L,EAAIC,IAEbkkD,GACHv4C,EAAO1W,KAAK,EAAE8K,EAAG,GAAKC,EAAG,IAAM,GAAKD,EAAG,GAAKC,EAAG,IAAMkkD,GAAYnkD,EAAG,GAAKC,EAAG,IAAM,GAAKA,EAAG,GAAKD,EAAG,IAAMmkD,IAG1GvoC,EAAK3G,UAAUrJ,MAInB5U,EAAQgtD,aAAeA,EACvBhtD,EAAQitD,iBAAmBA,G,uBCnD3B,IAAIpsC,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBwsC,EAAQ,EAAQ,QAEhBpsC,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvB07B,EAAc,EAAQ,QAEtBnN,EAAqBmN,EAAYnN,mBACjCE,EAAkBiN,EAAYjN,gBAE9BkN,EAAmB,EAAQ,QAE3B/N,EAAmB,EAAQ,QAE3BG,EAAsBH,EAAiBG,oBA6B3C,SAAS6N,EAAY1S,EAAO2S,EAAY9pD,GACtC,IAAImyB,EAAS23B,EAAWnuD,IAAI,UACxBV,EAAQ+E,EAAIylB,WACZ9f,EAAS3F,EAAI0lB,YACjByxB,EAAMU,GAAK5pB,EAAakE,EAAO,GAAIl3B,GACnCk8C,EAAMW,GAAK7pB,EAAakE,EAAO,GAAIxsB,GACnC,IAAI4zC,EAAapC,EAAM4S,gBACnBhkD,EAAOT,KAAK6E,IAAIlP,EAAO0K,GAAU,EACjC85C,EAASqK,EAAWnuD,IAAI,UAEd,MAAV8jD,EACFA,EAAS,CAAC,EAAG,QACHpjD,EAAOogB,QAAQgjC,KAEzBA,EAAS,CAAC,EAAGA,IAGfA,EAAS,CAACxxB,EAAawxB,EAAO,GAAI15C,GAAOkoB,EAAawxB,EAAO,GAAI15C,IACjEwzC,EAAW14C,QAAU04C,EAAWkD,UAAUgD,EAAO,GAAIA,EAAO,IAAMlG,EAAWkD,UAAUgD,EAAO,GAAIA,EAAO,IAO3G,SAASuK,EAAiBzwD,EAASyG,GACjC,IAAIm3C,EAAQ19C,KACR+/C,EAAYrC,EAAMsC,eAClBF,EAAapC,EAAM4S,gBAkBvB,GAhBAvQ,EAAUtxC,MAAMu0C,UAAUjwC,KAAWA,KACrC+sC,EAAWrxC,MAAMu0C,UAAUjwC,KAAWA,KACtCjT,EAAQ04C,YAAW,SAAU12C,GAC3B,GAAIA,EAAYxB,mBAAqBo9C,EAAO,CAC1C,IAAIn9C,EAAOuB,EAAYtB,UACvBoC,EAAOzD,KAAKoB,EAAKyJ,aAAa,UAAU,IAAO,SAAU+F,GACvD+vC,EAAWrxC,MAAM26C,oBAAoB7oD,EAAMgiD,EAAoBhiD,EAAMwP,OAEvEnN,EAAOzD,KAAKoB,EAAKyJ,aAAa,SAAS,IAAO,SAAU+F,GACtDgwC,EAAUtxC,MAAM26C,oBAAoB7oD,EAAMgiD,EAAoBhiD,EAAMwP,WAI1EkzC,EAAgBlD,EAAUtxC,MAAOsxC,EAAUjwB,OAC3CmzB,EAAgBnD,EAAWrxC,MAAOqxC,EAAWhwB,OAEtB,aAAnBiwB,EAAUtgD,OAAwBsgD,EAAUyQ,OAAQ,CACtD,IAAI34B,EAASkoB,EAAUx6B,YACnB0U,EAAO,IAAM8lB,EAAUtxC,MAAM0T,QACjC49B,EAAU34C,QAAUywB,EAAO,IAAMoC,EAAOpC,EAAO,IAAMoC,EACrD8lB,EAAUiD,UAAUnrB,EAAO,GAAIA,EAAO,KAW1C,SAAS44B,EAAQ/gD,EAAMH,GAMrB,GALAG,EAAKjQ,KAAO8P,EAAUrN,IAAI,QAC1BwN,EAAKjB,MAAQs0C,EAAmBxzC,GAChCG,EAAK8gD,OAASjhD,EAAUrN,IAAI,gBAAgC,aAAdwN,EAAKjQ,KACnDiQ,EAAKtI,QAAUmI,EAAUrN,IAAI,WAEF,cAAvBqN,EAAU0tB,SAA0B,CACtCvtB,EAAKtI,SAAWmI,EAAUrN,IAAI,aAC9B,IAAI4/C,EAAavyC,EAAUrN,IAAI,cAC/BwN,EAAKszC,UAAUlB,EAAYA,GAAcpyC,EAAKtI,SAAW,IAAM,MAIjEmI,EAAUG,KAAOA,EACjBA,EAAKogB,MAAQvgB,EAtGf,EAAQ,QAyGR,IAAImhD,EAAe,CACjBvuD,WAAY8tD,EAAMniD,UAAU3L,WAC5ByhC,OAAQ,SAAU9jC,EAASyG,GACzB,IAAIoqD,EAAY,GA2BhB,OA1BA7wD,EAAQs+B,cAAc,SAAS,SAAUiyB,EAAYngD,GACnD,IAAIwtC,EAAQ,IAAIuS,EAAM//C,GAEtBwtC,EAAMn1C,OAASgoD,EACf,IAAIzQ,EAAapC,EAAM4S,gBACnBvQ,EAAYrC,EAAMsC,eAClBH,EAAkBwQ,EAAWO,cAAc,cAC3CC,EAAiBR,EAAWO,cAAc,aAC9CH,EAAQ3Q,EAAYD,GACpB4Q,EAAQ1Q,EAAW8Q,GACnBT,EAAY1S,EAAO2S,EAAY9pD,GAC/BoqD,EAAU9vD,KAAK68C,GACf2S,EAAW/vD,iBAAmBo9C,EAC9BA,EAAM5tB,MAAQugC,KAGhBvwD,EAAQ04C,YAAW,SAAU12C,GAC3B,GAA4C,UAAxCA,EAAYI,IAAI,oBAAiC,CACnD,IAAImuD,EAAavwD,EAAQgxD,gBAAgB,CACvC7zB,SAAU,QACV91B,MAAOrF,EAAYI,IAAI,cACvBiG,GAAIrG,EAAYI,IAAI,aACnB,GACHJ,EAAYxB,iBAAmB+vD,EAAW/vD,qBAGvCqwD,IAGXR,EAAiBjJ,SAAS,QAASwJ,I,uBCjKnC,IAAI9tD,EAAS,EAAQ,QAEjBihB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvB4tB,EAAmB,EAAQ,QAE3BE,EAAqBF,EAAiBE,mBAoB1C,SAASyO,EAAiBjvD,GACxB,OAAOA,EAAYI,IAAI,UAAY,cAAgBJ,EAAYi1C,YAGjE,SAASia,EAAWtT,EAAOhuC,GACzB,OAAOA,EAAKK,IAAM2tC,EAAM5tB,MAAMiS,eAShC,SAASkvB,EAAer8B,EAAY90B,EAASyG,GAC3C,IAAI2qD,EAAkB,GAClBC,EAAoBC,EAAaxuD,EAAOyuD,OAAOvxD,EAAQwxD,gBAAgB18B,IAAa,SAAU9yB,GAChG,OAAQhC,EAAQyxD,iBAAiBzvD,IAAgBA,EAAYxB,kBAA0D,UAAtCwB,EAAYxB,iBAAiBb,SAEhHK,EAAQumC,iBAAiBzR,GAAY,SAAU9yB,GAE7C,GAA0C,UAAtCA,EAAYxB,iBAAiBb,KAAjC,CAIA,IAAIc,EAAOuB,EAAYtB,UACnBk9C,EAAQ57C,EAAYxB,iBACpBw3B,EAAW4lB,EAAM3lB,cACjBy5B,EAAUR,EAAWtT,EAAO5lB,GAC5B25B,EAAUV,EAAiBjvD,GAC3B4vD,EAAmBP,EAAkBK,GAASC,GAC9CE,EAAeD,EAAiB58C,OAChC88C,EAAcF,EAAiBlwD,MAC/BqjD,EAAYnH,EAAMmU,aAAa/5B,GAC/BsmB,EAAKt8C,EAAYxB,iBAAiB89C,GAClCC,EAAKv8C,EAAYxB,iBAAiB+9C,GAClCyT,EAAehwD,EAAYI,IAAI,iBAAmB,EAClD6vD,EAAcjwD,EAAYI,IAAI,gBAAkB,EACpDgvD,EAAgBO,GAAWP,EAAgBO,IAAY,GASvD,IARA,IAAI1nD,EAAWxJ,EAAKyJ,aAAa66C,EAAU90C,KACvCiiD,EAAUzxD,EAAKyJ,aAAa8tB,EAAS/nB,KACrCkiD,EAAU3P,EAAmB/hD,EAAMwJ,GAGnCmoD,EAA+B,WAAjBp6B,EAAS/nB,MAAqBjO,EAAYI,IAAI,YAAY,GACxEiwD,EAAiBtN,EAAUt/B,YAAY,GAElCrV,EAAM,EAAGoI,EAAM/X,EAAK4hB,QAASjS,EAAMoI,EAAKpI,IAAO,CACtD,IAqBI2xC,EACAhuC,EACAiuC,EACAC,EAxBAp0C,EAAQpN,EAAK2B,IAAI6H,EAAUmG,GAC3BkiD,EAAY7xD,EAAK2B,IAAI8vD,EAAS9hD,GAC9B8mB,EAAOrpB,GAAS,EAAI,IAAM,IAC1B0kD,EAAYF,EAuBhB,GAnBIF,IACGf,EAAgBO,GAASW,KAC5BlB,EAAgBO,GAASW,GAAa,CACpC36C,EAAG06C,EAEHv+C,EAAGu+C,IAMPE,EAAYnB,EAAgBO,GAASW,GAAWp7B,IAQ5B,WAAlB6tB,EAAU90C,IAAkB,CAC9B,IAAIuiD,EAAazN,EAAU0N,aAAa5kD,GAASwkD,EAC7CK,EAAQ16B,EAAS26B,YAAYL,GAE7BvmD,KAAKC,IAAIwmD,GAAcR,IACzBQ,GAAcA,EAAa,GAAK,EAAI,GAAKR,GAG3CjQ,EAAKwQ,EACLx+C,EAAIw+C,EAAYC,EAChBxQ,EAAa0Q,EAAQb,EACrB5P,EAAWD,EAAa8P,EACxBK,IAAYf,EAAgBO,GAASW,GAAWp7B,GAAQnjB,OAErD,CACD,IAAI6+C,EAAY7N,EAAU4N,YAAY9kD,EAAOukD,GAAeC,EACxDnM,EAASluB,EAASy6B,aAAaH,GAE/BvmD,KAAKC,IAAI4mD,GAAaX,IACxBW,GAAaA,EAAY,GAAK,EAAI,GAAKX,GAGzClQ,EAAKmE,EAAS2L,EACd99C,EAAIguC,EAAK+P,EACT9P,EAAauQ,EACbtQ,EAAWsQ,EAAYK,EAWvBT,IAAYf,EAAgBO,GAASW,GAAWp7B,GAAQ+qB,GAG5DxhD,EAAKugB,cAAc5Q,EAAK,CACtBkuC,GAAIA,EACJC,GAAIA,EACJwD,GAAIA,EACJhuC,EAAGA,EAGHiuC,YAAaA,EAAaj2C,KAAK+E,GAAK,IACpCmxC,UAAWA,EAAWl2C,KAAK+E,GAAK,UAGnC5Q,MAOL,SAASoxD,EAAauB,EAAWpsD,GAE/B,IAAIqsD,EAAa,GACjBhwD,EAAOzD,KAAKwzD,GAAW,SAAU7wD,EAAaoO,GAC5C,IAAI3P,EAAOuB,EAAYtB,UACnBk9C,EAAQ57C,EAAYxB,iBACpBw3B,EAAW4lB,EAAM3lB,cACjBy5B,EAAUR,EAAWtT,EAAO5lB,GAC5B+6B,EAAa/6B,EAASvS,YACtByS,EAA8B,aAAlBF,EAASr4B,KAAsBq4B,EAASG,eAAiBpsB,KAAKC,IAAI+mD,EAAW,GAAKA,EAAW,IAAMtyD,EAAK4hB,QACpH2wC,EAAgBF,EAAWpB,IAAY,CACzCx5B,UAAWA,EACX+6B,cAAe/6B,EACfg7B,eAAgB,EAChBC,YAAa,MACbnoD,IAAK,MACLooD,OAAQ,IAENA,EAASJ,EAAcI,OAC3BN,EAAWpB,GAAWsB,EACtB,IAAIrB,EAAUV,EAAiBjvD,GAE1BoxD,EAAOzB,IACVqB,EAAcE,iBAGhBE,EAAOzB,GAAWyB,EAAOzB,IAAY,CACnCjwD,MAAO,EACP2xD,SAAU,GAEZ,IAAI/6B,EAAW5D,EAAa1yB,EAAYI,IAAI,YAAa81B,GACrDE,EAAc1D,EAAa1yB,EAAYI,IAAI,eAAgB81B,GAC3Do7B,EAAStxD,EAAYI,IAAI,UACzBmxD,EAAiBvxD,EAAYI,IAAI,kBAEjCk2B,IAAa86B,EAAOzB,GAASjwD,QAC/B42B,EAAWvsB,KAAK6E,IAAIoiD,EAAcC,cAAe36B,GACjD86B,EAAOzB,GAASjwD,MAAQ42B,EACxB06B,EAAcC,eAAiB36B,GAGjCF,IAAgBg7B,EAAOzB,GAAS0B,SAAWj7B,GACjC,MAAVk7B,IAAmBN,EAAchoD,IAAMsoD,GACrB,MAAlBC,IAA2BP,EAAcG,YAAcI,MAEzD,IAAI1sC,EAAS,GAsDb,OArDA/jB,EAAOzD,KAAKyzD,GAAY,SAAUE,EAAeQ,GAC/C3sC,EAAO2sC,GAAgB,GACvB,IAAIJ,EAASJ,EAAcI,OACvBl7B,EAAY86B,EAAc96B,UAC1Bi7B,EAAcz+B,EAAas+B,EAAcG,YAAaj7B,GACtDu7B,EAAgB/+B,EAAas+B,EAAchoD,IAAK,GAChDioD,EAAgBD,EAAcC,cAC9BC,EAAiBF,EAAcE,eAC/BQ,GAAaT,EAAgBE,IAAgBD,GAAkBA,EAAiB,GAAKO,GACzFC,EAAY3nD,KAAK4E,IAAI+iD,EAAW,GAEhC5wD,EAAOzD,KAAK+zD,GAAQ,SAAUO,EAAQC,GACpC,IAAIP,EAAWM,EAAON,SAElBA,GAAYA,EAAWK,IACzBL,EAAWtnD,KAAK6E,IAAIyiD,EAAUJ,GAE1BU,EAAOjyD,QACT2xD,EAAWtnD,KAAK6E,IAAIyiD,EAAUM,EAAOjyD,QAGvCuxD,GAAiBI,EACjBM,EAAOjyD,MAAQ2xD,EACfH,QAIJQ,GAAaT,EAAgBE,IAAgBD,GAAkBA,EAAiB,GAAKO,GACrFC,EAAY3nD,KAAK4E,IAAI+iD,EAAW,GAChC,IACIG,EADAC,EAAW,EAEfhxD,EAAOzD,KAAK+zD,GAAQ,SAAUO,EAAQvjD,GAC/BujD,EAAOjyD,QACViyD,EAAOjyD,MAAQgyD,GAGjBG,EAAaF,EACbG,GAAYH,EAAOjyD,OAAS,EAAI+xD,MAG9BI,IACFC,GAAYD,EAAWnyD,MAAQ+xD,GAGjC,IAAIz+C,GAAU8+C,EAAW,EACzBhxD,EAAOzD,KAAK+zD,GAAQ,SAAUO,EAAQhC,GACpC9qC,EAAO2sC,GAAc7B,GAAW9qC,EAAO2sC,GAAc7B,IAAY,CAC/D38C,OAAQA,EACRtT,MAAOiyD,EAAOjyD,OAEhBsT,GAAU2+C,EAAOjyD,OAAS,EAAI+xD,SAG3B5sC,EAGT,IAAIpnB,EAAW0xD,EACfvuD,EAAOC,QAAUpD,G,uBCtQjB,IAAIuqD,EAAO,EAAQ,QAoBfvqD,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,sBACN+R,MAAO,CACLghD,MAAO,EACPhxD,MAAO,GACPqS,EAAG,GACHpO,EAAG,EACHC,EAAG,GAEL+lD,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAIqiD,EAAUhoD,KAAK04C,IACfuP,EAAUjoD,KAAKw4C,IACfxwC,EAAIrC,EAAMqC,EACVrS,EAAQgQ,EAAMhQ,MACdgxD,EAAQhhD,EAAMghD,MACd/sD,EAAI+L,EAAM/L,EAAIouD,EAAQrB,GAAShxD,GAASA,GAASqS,EAAI,EAAI,EAAI,GAC7DnO,EAAI8L,EAAM9L,EAAIouD,EAAQtB,GAAShxD,GAASA,GAASqS,EAAI,EAAI,EAAI,GACjE2+C,EAAQhhD,EAAMghD,MAAQ3mD,KAAK+E,GAAK,EAChC6zB,EAAItW,OAAO1oB,EAAGC,GACd++B,EAAIknB,OAAOn6C,EAAM/L,EAAIouD,EAAQrB,GAAShxD,EAAOgQ,EAAM9L,EAAIouD,EAAQtB,GAAShxD,GACxEijC,EAAIknB,OAAOn6C,EAAM/L,EAAIouD,EAAQriD,EAAMghD,OAAS3+C,EAAGrC,EAAM9L,EAAIouD,EAAQtiD,EAAMghD,OAAS3+C,GAChF4wB,EAAIknB,OAAOn6C,EAAM/L,EAAIouD,EAAQrB,GAAShxD,EAAOgQ,EAAM9L,EAAIouD,EAAQtB,GAAShxD,GACxEijC,EAAIknB,OAAOlmD,EAAGC,MAKlBhD,EAAOC,QAAUpD,G,uBC/CjB,IAAIqD,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QAEpBnmC,EAAiB,EAAQ,QAEzBoL,EAAQ,EAAQ,QAEhB01C,EAAkB,EAAQ,QAE1BC,EAAa,EAAQ,QAoBrBC,EAAWhhD,EAAezT,OAAO,CACnCC,KAAM,MAKNa,iBAAkB,KAClB4zD,WAAY,MACZlrD,KAAM,SAAUnJ,GACdoT,EAAenF,UAAU9E,KAAKsd,MAAMtmB,KAAMkJ,WAE1CkwC,EAAU1wC,gBAAgB7I,EAAQ,QAAS,CAAC,UAE9C2T,cAAe,WACb,IAAI3T,EAASG,KAAKH,OACd4d,EAAOzd,KACXH,EAAOwN,QAAU2mD,EAAWG,iBAAiBt0D,EAAOwN,QAASxN,EAAOoH,IAAKpH,EAAO+M,SAChF5M,KAAKo0D,gBAAkBxxD,EAAOyxD,OAAOx0D,EAAOwN,SAAW,IAAI,SAAUinD,EAAgBC,GAKnF,OAJIA,EAAU5nD,MACZ2nD,EAAe/xD,IAAIgyD,EAAU5nD,KAAM,IAAI0R,EAAMk2C,EAAW92C,IAGnD62C,IACN1xD,EAAOxD,iBACVY,KAAKw0D,kBAAkB30D,EAAOwN,UAEhCtM,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHG,MAAM,EACNmJ,KAAM,SACNC,IAAK,SASLiqD,YAAa,KAMb7iD,QAAQ,EAER3K,IAAK,GAGLytD,eAAgB,KAEhBh8B,OAAQ,KACRvsB,KAAM,EACNwoD,WAAY,KAEZxzD,MAAO,CACLC,MAAM,EACNwW,MAAO,QAET1M,UAAW,CAETE,YAAa,GACbD,YAAa,OACbyM,MAAO,QAETlW,SAAU,CACRP,MAAO,CACLC,MAAM,EACNwW,MAAO,gBAET1M,UAAW,CACT0M,MAAO,wBAGXvK,QAAS,IAQXyyB,eAAgB,SAAUnzB,GACxB,OAAO3M,KAAKo0D,gBAAgBlyD,IAAIyK,IAAS,IAAI0R,EAAM,KAAMre,KAAMA,KAAKF,UAStE80D,kBAAmB,SAAUjoD,EAAMkoD,GACjC,IAAIh1B,EAAc7/B,KAAK8/B,eAAenzB,GAClCmoD,EAAYj1B,EAAY39B,IAAI,SAAsB,WAAX2yD,EAAsB,IAAMA,EAAS,KAAO,aACnFhrD,EAAS,CACX8C,KAAMA,GAGR,MAAyB,oBAAdmoD,GACTjrD,EAAOgrD,OAASA,EACTC,EAAUjrD,IACa,kBAAdirD,EACTA,EAAUryD,QAAQ,MAAe,MAARkK,EAAeA,EAAO,SADjD,GAITooD,QAAS,SAAU5oD,GACjBnM,KAAKH,OAAOsM,KAAOA,GAErB6oD,UAAW,SAAUt8B,GACnB14B,KAAKH,OAAO64B,OAASA,KAGzB91B,EAAOyM,MAAM4kD,EAAUF,GACvB,IAAIx0D,EAAW00D,EACfvxD,EAAOC,QAAUpD,G,qBCjKjB,IAAI01D,EAAYl9C,MAAMjK,UAAUxG,MAoB5B4tD,EAAW,SAAUC,GACvBn1D,KAAKo1D,WAAa,GAClBp1D,KAAKq1D,iBAAmBF,GA4M1B,SAASG,EAAeC,EAAMn0B,GAC5B,IAAI+zB,EAAiBI,EAAKF,iBAM1B,OAJa,MAATj0B,GAAiB+zB,GAAkBA,EAAeG,iBACpDl0B,EAAQ+zB,EAAeG,eAAel0B,IAGjCA,EAGT,SAASx6B,EAAG4uD,EAAUltD,EAAO84B,EAAOvU,EAASjN,EAAS61C,GACpD,IAAIxmC,EAAKumC,EAASJ,WAQlB,GANqB,oBAAVh0B,IACTxhB,EAAUiN,EACVA,EAAUuU,EACVA,EAAQ,OAGLvU,IAAYvkB,EACf,OAAOktD,EAGTp0B,EAAQk0B,EAAeE,EAAUp0B,GAE5BnS,EAAG3mB,KACN2mB,EAAG3mB,GAAS,IAGd,IAAK,IAAI2F,EAAI,EAAGA,EAAIghB,EAAG3mB,GAAO2C,OAAQgD,IACpC,GAAIghB,EAAG3mB,GAAO2F,GAAGynD,IAAM7oC,EACrB,OAAO2oC,EAIX,IAAIG,EAAO,CACTD,EAAG7oC,EACH+oC,IAAKH,EACLr0B,MAAOA,EACPqD,IAAK7kB,GAAW41C,EAGhBK,WAAYhpC,EAAQipC,sBAElBC,EAAY9mC,EAAG3mB,GAAO2C,OAAS,EAC/B+qD,EAAW/mC,EAAG3mB,GAAOytD,GAEzB,OADAC,GAAYA,EAASH,WAAa5mC,EAAG3mB,GAAO2tD,OAAOF,EAAW,EAAGJ,GAAQ1mC,EAAG3mB,GAAOzH,KAAK80D,GACjFH,EAxPTN,EAASpnD,UAAY,CACnBC,YAAamnD,EAUbU,IAAK,SAAUttD,EAAO84B,EAAOvU,EAASjN,GACpC,OAAOhZ,EAAG5G,KAAMsI,EAAO84B,EAAOvU,EAASjN,GAAS,IAWlDhZ,GAAI,SAAU0B,EAAO84B,EAAOvU,EAASjN,GACnC,OAAOhZ,EAAG5G,KAAMsI,EAAO84B,EAAOvU,EAASjN,GAAS,IASlDs2C,SAAU,SAAU5tD,GAClB,IAAI2mB,EAAKjvB,KAAKo1D,WACd,OAAQnmC,EAAG3mB,KAAW2mB,EAAG3mB,GAAO2C,QAWlC4xB,IAAK,SAAUv0B,EAAOukB,GACpB,IAAIoC,EAAKjvB,KAAKo1D,WAEd,IAAK9sD,EAEH,OADAtI,KAAKo1D,WAAa,GACXp1D,KAGT,GAAI6sB,EAAS,CACX,GAAIoC,EAAG3mB,GAAQ,CAGb,IAFA,IAAI6tD,EAAU,GAELloD,EAAI,EAAGmoD,EAAInnC,EAAG3mB,GAAO2C,OAAQgD,EAAImoD,EAAGnoD,IACvCghB,EAAG3mB,GAAO2F,GAAGynD,IAAM7oC,GACrBspC,EAAQt1D,KAAKouB,EAAG3mB,GAAO2F,IAI3BghB,EAAG3mB,GAAS6tD,EAGVlnC,EAAG3mB,IAA+B,IAArB2mB,EAAG3mB,GAAO2C,eAClBgkB,EAAG3mB,eAGL2mB,EAAG3mB,GAGZ,OAAOtI,MAQTs9B,QAAS,SAAU79B,GACjB,IAAIwvB,EAAKjvB,KAAKo1D,WAAW31D,GACrB01D,EAAiBn1D,KAAKq1D,iBAE1B,GAAIpmC,EAAI,CACN,IAAIonC,EAAOntD,UACPotD,EAASD,EAAKprD,OAEdqrD,EAAS,IACXD,EAAOpB,EAAUnoD,KAAKupD,EAAM,IAK9B,IAFA,IAAI/9C,EAAM2W,EAAGhkB,OAEJgD,EAAI,EAAGA,EAAIqK,GAAM,CACxB,IAAIi+C,EAAQtnC,EAAGhhB,GAEf,GAAIknD,GAAkBA,EAAe9D,QAAyB,MAAfkF,EAAMn1B,QAAkB+zB,EAAe9D,OAAO5xD,EAAM82D,EAAMn1B,OACvGnzB,QADF,CAMA,OAAQqoD,GACN,KAAK,EACHC,EAAMb,EAAE5oD,KAAKypD,EAAM9xB,KACnB,MAEF,KAAK,EACH8xB,EAAMb,EAAE5oD,KAAKypD,EAAM9xB,IAAK4xB,EAAK,IAC7B,MAEF,KAAK,EACHE,EAAMb,EAAE5oD,KAAKypD,EAAM9xB,IAAK4xB,EAAK,GAAIA,EAAK,IACtC,MAEF,QAEEE,EAAMb,EAAEpvC,MAAMiwC,EAAM9xB,IAAK4xB,GACzB,MAGAE,EAAMX,KACR3mC,EAAGgnC,OAAOhoD,EAAG,GAEbqK,KAEArK,MAMN,OADAknD,GAAkBA,EAAeqB,cAAgBrB,EAAeqB,aAAa/2D,GACtEO,MAQTy2D,mBAAoB,SAAUh3D,GAC5B,IAAIwvB,EAAKjvB,KAAKo1D,WAAW31D,GACrB01D,EAAiBn1D,KAAKq1D,iBAE1B,GAAIpmC,EAAI,CACN,IAAIonC,EAAOntD,UACPotD,EAASD,EAAKprD,OAEdqrD,EAAS,IACXD,EAAOpB,EAAUnoD,KAAKupD,EAAM,EAAGA,EAAKprD,OAAS,IAM/C,IAHA,IAAIw5B,EAAM4xB,EAAKA,EAAKprD,OAAS,GACzBqN,EAAM2W,EAAGhkB,OAEJgD,EAAI,EAAGA,EAAIqK,GAAM,CACxB,IAAIi+C,EAAQtnC,EAAGhhB,GAEf,GAAIknD,GAAkBA,EAAe9D,QAAyB,MAAfkF,EAAMn1B,QAAkB+zB,EAAe9D,OAAO5xD,EAAM82D,EAAMn1B,OACvGnzB,QADF,CAMA,OAAQqoD,GACN,KAAK,EACHC,EAAMb,EAAE5oD,KAAK23B,GACb,MAEF,KAAK,EACH8xB,EAAMb,EAAE5oD,KAAK23B,EAAK4xB,EAAK,IACvB,MAEF,KAAK,EACHE,EAAMb,EAAE5oD,KAAK23B,EAAK4xB,EAAK,GAAIA,EAAK,IAChC,MAEF,QAEEE,EAAMb,EAAEpvC,MAAMme,EAAK4xB,GACnB,MAGAE,EAAMX,KACR3mC,EAAGgnC,OAAOhoD,EAAG,GAEbqK,KAEArK,MAMN,OADAknD,GAAkBA,EAAeqB,cAAgBrB,EAAeqB,aAAa/2D,GACtEO,OA6IX,IAAIT,EAAW21D,EACfxyD,EAAOC,QAAUpD,G,qBC9VjB,IAAIqD,EAAS,EAAQ,QAqBjBrD,EAAW,CAKbm3D,OAAQ,SAAUnzB,GAChB,IAAI1jC,EAASG,KAAKH,OACd6Q,EAAO6yB,GAA+B,MAArB1jC,EAAO82D,WAAyC92D,EAAO6Q,IAA3B7Q,EAAO82D,WAMxD,OAJI32D,KAAK0P,MAAe,MAAPgB,GAAuB,YAARA,GAAoC,oBAARA,IAAuB9N,EAAOg0D,MAAMlmD,KAC9FA,EAAM1Q,KAAK0P,KAAKjB,MAAM+M,MAAM9K,IAGvBA,GAOTmmD,OAAQ,SAAUtzB,GAChB,IAAI1jC,EAASG,KAAKH,OACd4Q,EAAO8yB,GAA6B,MAAnB1jC,EAAOi3D,SAAqCj3D,EAAO4Q,IAAzB5Q,EAAOi3D,SAMtD,OAJI92D,KAAK0P,MAAe,MAAPe,GAAuB,YAARA,GAAoC,oBAARA,IAAuB7N,EAAOg0D,MAAMnmD,KAC9FA,EAAMzQ,KAAK0P,KAAKjB,MAAM+M,MAAM/K,IAGvBA,GAMTsmD,iBAAkB,WAChB,IAAIl3D,EAASG,KAAKH,OAClB,OAA4B,MAArBA,EAAO82D,YAAyC,MAAnB92D,EAAOi3D,WAA4Bj3D,EAAO4O,OAOhFuoD,iBAAkBp0D,EAAOg2C,KAMzBqe,SAAU,SAAUN,EAAYG,GAC9B92D,KAAKH,OAAO82D,WAAaA,EACzB32D,KAAKH,OAAOi3D,SAAWA,GAMzBI,WAAY,WAEVl3D,KAAKH,OAAO82D,WAAa32D,KAAKH,OAAOi3D,SAAW,OAGpDp0D,EAAOC,QAAUpD,G,qBCnFjB,IAAIqD,EAAS,EAAQ,QAoBjBu0D,EAA2B,GAE/B,SAASC,IACPp3D,KAAKq3D,mBAAqB,GAG5BD,EAAwBtpD,UAAY,CAClCC,YAAaqpD,EACbxzB,OAAQ,SAAU9jC,EAASyG,GACzB,IAAI+wD,EAAoB,GACxB10D,EAAOzD,KAAKg4D,GAA0B,SAAUI,EAAS93D,GACvD,IAAI0jB,EAAOo0C,EAAQ3zB,OAAO9jC,EAASyG,GACnC+wD,EAAoBA,EAAkBE,OAAOr0C,GAAQ,OAEvDnjB,KAAKq3D,mBAAqBC,GAE5B/uD,OAAQ,SAAUzI,EAASyG,GACzB3D,EAAOzD,KAAKa,KAAKq3D,oBAAoB,SAAUh3D,GAC7CA,EAASkI,QAAUlI,EAASkI,OAAOzI,EAASyG,OAGhDkxD,qBAAsB,WACpB,OAAOz3D,KAAKq3D,mBAAmB/vD,UAInC8vD,EAAwBlQ,SAAW,SAAUznD,EAAMi4D,GACjDP,EAAyB13D,GAAQi4D,GAGnCN,EAAwBl1D,IAAM,SAAUzC,GACtC,OAAO03D,EAAyB13D,IAGlC,IAAIF,EAAW63D,EACf10D,EAAOC,QAAUpD,G,uBC3EjB,IAAIo4D,EAAQ,EAAQ,QAEhBxlB,EAAO,EAAQ,QAEfylB,EAAO,EAAQ,QAEfrrD,EAAe,EAAQ,QAEvBiX,EAAU,EAAQ,SAElBkhB,EAAMlhB,EAAQq0C,iBAYdC,EAAM,CACRC,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,EACHC,EAAG,EAEHC,EAAG,GAWD3nD,EAAM,GACND,EAAM,GACN6nD,EAAO,GACPC,EAAO,GACPC,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IACfojD,EAAUhoD,KAAK04C,IACfuP,EAAUjoD,KAAKw4C,IACfqU,EAAW7sD,KAAK4sB,KAChBkgC,EAAU9sD,KAAKC,IACf8sD,EAAwC,qBAAjBjkC,aAMvBkkC,EAAY,SAAUC,GACxB94D,KAAK+4D,WAAcD,EAEf94D,KAAK+4D,YAKP/4D,KAAKO,KAAO,IAGdP,KAAKg5D,KAAO,MAQdH,EAAU/qD,UAAY,CACpBC,YAAa8qD,EACbI,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EAELC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,UAAW,KACXC,YAAa,EACbC,SAAU,EACVC,SAAU,EAKVC,SAAU,SAAUx1B,EAAIC,EAAI3E,GAE1BA,EAAyBA,GAA0B,EACnD1/B,KAAKq5D,IAAMV,EAAQj5B,EAAyBgF,EAAMN,IAAO,EACzDpkC,KAAKs5D,IAAMX,EAAQj5B,EAAyBgF,EAAML,IAAO,GAE3Dw1B,WAAY,WACV,OAAO75D,KAAKg5D,MAOdc,UAAW,SAAUr1B,GAcnB,OAbAzkC,KAAKg5D,KAAOv0B,EACZA,GAAOA,EAAIq1B,YACXr1B,IAAQzkC,KAAK0kC,IAAMD,EAAIC,KAEnB1kC,KAAK+4D,YACP/4D,KAAKu5D,KAAO,GAGVv5D,KAAKw5D,YACPx5D,KAAKw5D,UAAY,KACjBx5D,KAAKy5D,YAAc,GAGdz5D,MAQTmuB,OAAQ,SAAU1oB,EAAGC,GAWnB,OAVA1F,KAAK+5D,QAAQjC,EAAIC,EAAGtyD,EAAGC,GACvB1F,KAAKg5D,MAAQh5D,KAAKg5D,KAAK7qC,OAAO1oB,EAAGC,GAKjC1F,KAAKm5D,IAAM1zD,EACXzF,KAAKo5D,IAAM1zD,EACX1F,KAAKi5D,IAAMxzD,EACXzF,KAAKk5D,IAAMxzD,EACJ1F,MAQT2rD,OAAQ,SAAUlmD,EAAGC,GACnB,IAAIs0D,EAAarB,EAAQlzD,EAAIzF,KAAKi5D,KAAOj5D,KAAKq5D,KAAOV,EAAQjzD,EAAI1F,KAAKk5D,KAAOl5D,KAAKs5D,KAC/Et5D,KAAKu5D,KAAO,EAYf,OAXAv5D,KAAK+5D,QAAQjC,EAAIE,EAAGvyD,EAAGC,GAEnB1F,KAAKg5D,MAAQgB,IACfh6D,KAAKi6D,aAAej6D,KAAKk6D,cAAcz0D,EAAGC,GAAK1F,KAAKg5D,KAAKrN,OAAOlmD,EAAGC,IAGjEs0D,IACFh6D,KAAKi5D,IAAMxzD,EACXzF,KAAKk5D,IAAMxzD,GAGN1F,MAYTm6D,cAAe,SAAUC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAS3C,OARAz6D,KAAK+5D,QAAQjC,EAAIG,EAAGmC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAEpCz6D,KAAKg5D,OACPh5D,KAAKi6D,aAAej6D,KAAK06D,gBAAgBN,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAMz6D,KAAKg5D,KAAKmB,cAAcC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,IAGjHz6D,KAAKi5D,IAAMuB,EACXx6D,KAAKk5D,IAAMuB,EACJz6D,MAUT26D,iBAAkB,SAAUP,EAAIC,EAAIC,EAAIC,GAStC,OARAv6D,KAAK+5D,QAAQjC,EAAII,EAAGkC,EAAIC,EAAIC,EAAIC,GAE5Bv6D,KAAKg5D,OACPh5D,KAAKi6D,aAAej6D,KAAK46D,mBAAmBR,EAAIC,EAAIC,EAAIC,GAAMv6D,KAAKg5D,KAAK2B,iBAAiBP,EAAIC,EAAIC,EAAIC,IAGvGv6D,KAAKi5D,IAAMqB,EACXt6D,KAAKk5D,IAAMqB,EACJv6D,MAYT66D,IAAK,SAAUzc,EAAIC,EAAIxqC,EAAGiuC,EAAYC,EAAU+Y,GAK9C,OAJA96D,KAAK+5D,QAAQjC,EAAIK,EAAG/Z,EAAIC,EAAIxqC,EAAGA,EAAGiuC,EAAYC,EAAWD,EAAY,EAAGgZ,EAAgB,EAAI,GAC5F96D,KAAKg5D,MAAQh5D,KAAKg5D,KAAK6B,IAAIzc,EAAIC,EAAIxqC,EAAGiuC,EAAYC,EAAU+Y,GAC5D96D,KAAKi5D,IAAMpF,EAAQ9R,GAAYluC,EAAIuqC,EACnCp+C,KAAKk5D,IAAMpF,EAAQ/R,GAAYluC,EAAIwqC,EAC5Br+C,MAGT+6D,MAAO,SAAUX,EAAIC,EAAIC,EAAIC,EAAIvU,GAK/B,OAJIhmD,KAAKg5D,MACPh5D,KAAKg5D,KAAK+B,MAAMX,EAAIC,EAAIC,EAAIC,EAAIvU,GAG3BhmD,MAGTgM,KAAM,SAAUvG,EAAGC,EAAG8R,EAAGk+C,GAGvB,OAFA11D,KAAKg5D,MAAQh5D,KAAKg5D,KAAKhtD,KAAKvG,EAAGC,EAAG8R,EAAGk+C,GACrC11D,KAAK+5D,QAAQjC,EAAIO,EAAG5yD,EAAGC,EAAG8R,EAAGk+C,GACtB11D,MAMT4rD,UAAW,WACT5rD,KAAK+5D,QAAQjC,EAAIM,GACjB,IAAI3zB,EAAMzkC,KAAKg5D,KACXgC,EAAKh7D,KAAKm5D,IACV8B,EAAKj7D,KAAKo5D,IASd,OAPI30B,IACFzkC,KAAKi6D,cAAgBj6D,KAAKk6D,cAAcc,EAAIC,GAC5Cx2B,EAAImnB,aAGN5rD,KAAKi5D,IAAM+B,EACXh7D,KAAKk5D,IAAM+B,EACJj7D,MAST0R,KAAM,SAAU+yB,GACdA,GAAOA,EAAI/yB,OACX1R,KAAKk7D,YAOPrc,OAAQ,SAAUpa,GAChBA,GAAOA,EAAIoa,SACX7+C,KAAKk7D,YAQPC,YAAa,SAAUC,GACrB,GAAIA,aAAoBrjD,MAAO,CAC7B/X,KAAKw5D,UAAY4B,EACjBp7D,KAAK05D,SAAW,EAGhB,IAFA,IAAI2B,EAAc,EAETptD,EAAI,EAAGA,EAAImtD,EAASnwD,OAAQgD,IACnCotD,GAAeD,EAASntD,GAG1BjO,KAAK25D,SAAW0B,EAGlB,OAAOr7D,MAQTs7D,kBAAmB,SAAUxmD,GAE3B,OADA9U,KAAKy5D,YAAc3kD,EACZ9U,MAOTsY,IAAK,WACH,OAAOtY,KAAKu5D,MAMdgC,QAAS,SAAUh7D,GACjB,IAAI+X,EAAM/X,EAAK0K,OAETjL,KAAKO,MAAQP,KAAKO,KAAK0K,SAAWqN,IAAQsgD,IAC9C54D,KAAKO,KAAO,IAAIo0B,aAAarc,IAG/B,IAAK,IAAIrK,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBjO,KAAKO,KAAK0N,GAAK1N,EAAK0N,GAGtBjO,KAAKu5D,KAAOjhD,GAOdkjD,WAAY,SAAUt6C,GACdA,aAAgBnJ,QACpBmJ,EAAO,CAACA,IAOV,IAJA,IAAI5I,EAAM4I,EAAKjW,OACXwwD,EAAa,EACb3mD,EAAS9U,KAAKu5D,KAETtrD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBwtD,GAAcv6C,EAAKjT,GAAGqK,MAGpBsgD,GAAiB54D,KAAKO,gBAAgBo0B,eACxC30B,KAAKO,KAAO,IAAIo0B,aAAa7f,EAAS2mD,IAGxC,IAASxtD,EAAI,EAAGA,EAAIqK,EAAKrK,IAGvB,IAFA,IAAIytD,EAAiBx6C,EAAKjT,GAAG1N,KAEpB0V,EAAI,EAAGA,EAAIylD,EAAezwD,OAAQgL,IACzCjW,KAAKO,KAAKuU,KAAY4mD,EAAezlD,GAIzCjW,KAAKu5D,KAAOzkD,GAOdilD,QAAS,SAAU4B,GACjB,GAAK37D,KAAK+4D,UAAV,CAIA,IAAIx4D,EAAOP,KAAKO,KAEZP,KAAKu5D,KAAOrwD,UAAU+B,OAAS1K,EAAK0K,SAGtCjL,KAAK47D,cAELr7D,EAAOP,KAAKO,MAGd,IAAK,IAAI0N,EAAI,EAAGA,EAAI/E,UAAU+B,OAAQgD,IACpC1N,EAAKP,KAAKu5D,QAAUrwD,UAAU+E,GAGhCjO,KAAK67D,SAAWF,IAElBC,YAAa,WAEX,KAAM57D,KAAKO,gBAAgBwX,OAAQ,CAGjC,IAFA,IAAI+jD,EAAU,GAEL7tD,EAAI,EAAGA,EAAIjO,KAAKu5D,KAAMtrD,IAC7B6tD,EAAQ7tD,GAAKjO,KAAKO,KAAK0N,GAGzBjO,KAAKO,KAAOu7D,IAShB7B,WAAY,WACV,OAAOj6D,KAAKw5D,WAEdU,cAAe,SAAUE,EAAIC,GAC3B,IAWI0B,EAEA7rD,EAbA8rD,EAAUh8D,KAAK25D,SACf7kD,EAAS9U,KAAKy5D,YACd2B,EAAWp7D,KAAKw5D,UAChB/0B,EAAMzkC,KAAKg5D,KACXgC,EAAKh7D,KAAKi5D,IACVgC,EAAKj7D,KAAKk5D,IACVhnD,EAAKkoD,EAAKY,EACV7oD,EAAKkoD,EAAKY,EACV1iC,EAAOmgC,EAASxmD,EAAKA,EAAKC,EAAKA,GAC/B1M,EAAIu1D,EACJt1D,EAAIu1D,EAEJgB,EAAQb,EAASnwD,OAErBiH,GAAMqmB,EACNpmB,GAAMomB,EAEFzjB,EAAS,IAEXA,EAASknD,EAAUlnD,GAGrBA,GAAUknD,EACVv2D,GAAKqP,EAAS5C,EACdxM,GAAKoP,EAAS3C,EAEd,MAAOD,EAAK,GAAKzM,GAAK20D,GAAMloD,EAAK,GAAKzM,GAAK20D,GAAa,IAAPloD,IAAaC,EAAK,GAAKzM,GAAK20D,GAAMloD,EAAK,GAAKzM,GAAK20D,GAChGnqD,EAAMlQ,KAAK05D,SACXqC,EAAOX,EAASlrD,GAChBzK,GAAKyM,EAAK6pD,EACVr2D,GAAKyM,EAAK4pD,EACV/7D,KAAK05D,UAAYxpD,EAAM,GAAK+rD,EAExB/pD,EAAK,GAAKzM,EAAIu1D,GAAM9oD,EAAK,GAAKzM,EAAIu1D,GAAM7oD,EAAK,GAAKzM,EAAIu1D,GAAM9oD,EAAK,GAAKzM,EAAIu1D,GAI9Ex2B,EAAIv0B,EAAM,EAAI,SAAW,UAAUgC,GAAM,EAAIsmD,EAAQ/yD,EAAG20D,GAAM3B,EAAQhzD,EAAG20D,GAAKjoD,GAAM,EAAIqmD,EAAQ9yD,EAAG20D,GAAM5B,EAAQ/yD,EAAG20D,IAItHnoD,EAAKzM,EAAI20D,EACTjoD,EAAKzM,EAAI20D,EACTr6D,KAAKy5D,aAAef,EAASxmD,EAAKA,EAAKC,EAAKA,IAG9CuoD,gBAAiB,SAAUN,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC7C,IAMIpmD,EACAnC,EACAC,EAKA1M,EACAC,EAdAs2D,EAAUh8D,KAAK25D,SACf7kD,EAAS9U,KAAKy5D,YACd2B,EAAWp7D,KAAKw5D,UAChB/0B,EAAMzkC,KAAKg5D,KACXgC,EAAKh7D,KAAKi5D,IACVgC,EAAKj7D,KAAKk5D,IAIVgD,EAAUvE,EAAMuE,QAChBC,EAAY,EACZjsD,EAAMlQ,KAAK05D,SACXuC,EAAQb,EAASnwD,OAGjBmxD,EAAS,EASb,IAPItnD,EAAS,IAEXA,EAASknD,EAAUlnD,GAGrBA,GAAUknD,EAEL3nD,EAAI,EAAGA,EAAI,EAAGA,GAAK,GACtBnC,EAAKgqD,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAInmD,EAAI,IAAO6nD,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAInmD,GAChElC,EAAK+pD,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIpmD,EAAI,IAAO6nD,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIpmD,GAChE8nD,GAAazD,EAASxmD,EAAKA,EAAKC,EAAKA,GAIvC,KAAOjC,EAAM+rD,EAAO/rD,IAGlB,GAFAksD,GAAUhB,EAASlrD,GAEfksD,EAAStnD,EACX,MAIJT,GAAK+nD,EAAStnD,GAAUqnD,EAExB,MAAO9nD,GAAK,EACV5O,EAAIy2D,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAInmD,GAC5B3O,EAAIw2D,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIpmD,GAG5BnE,EAAM,EAAIu0B,EAAItW,OAAO1oB,EAAGC,GAAK++B,EAAIknB,OAAOlmD,EAAGC,GAC3C2O,GAAK+mD,EAASlrD,GAAOisD,EACrBjsD,GAAOA,EAAM,GAAK+rD,EAIpB/rD,EAAM,IAAM,GAAKu0B,EAAIknB,OAAO6O,EAAIC,GAChCvoD,EAAKsoD,EAAK/0D,EACV0M,EAAKsoD,EAAK/0D,EACV1F,KAAKy5D,aAAef,EAASxmD,EAAKA,EAAKC,EAAKA,IAE9CyoD,mBAAoB,SAAUR,EAAIC,EAAIC,EAAIC,GAExC,IAAIC,EAAKF,EACLG,EAAKF,EACTD,GAAMA,EAAK,EAAIF,GAAM,EACrBG,GAAMA,EAAK,EAAIF,GAAM,EACrBD,GAAMp6D,KAAKi5D,IAAM,EAAImB,GAAM,EAC3BC,GAAMr6D,KAAKk5D,IAAM,EAAImB,GAAM,EAE3Br6D,KAAK06D,gBAAgBN,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,IAO3CS,SAAU,WACR,IAAI36D,EAAOP,KAAKO,KAEZA,aAAgBwX,QAClBxX,EAAK0K,OAASjL,KAAKu5D,KAEfX,IACF54D,KAAKO,KAAO,IAAIo0B,aAAap0B,MAQnC0L,gBAAiB,WACfyE,EAAI,GAAKA,EAAI,GAAK4nD,EAAK,GAAKA,EAAK,GAAK+D,OAAOC,UAC7C7rD,EAAI,GAAKA,EAAI,GAAK8nD,EAAK,GAAKA,EAAK,IAAM8D,OAAOC,UAO9C,IANA,IAAI/7D,EAAOP,KAAKO,KACZg8D,EAAK,EACLC,EAAK,EACLxB,EAAK,EACLC,EAAK,EAEAhtD,EAAI,EAAGA,EAAI1N,EAAK0K,QAAS,CAChC,IAAI0wD,EAAMp7D,EAAK0N,KAaf,OAXU,IAANA,IAKFsuD,EAAKh8D,EAAK0N,GACVuuD,EAAKj8D,EAAK0N,EAAI,GACd+sD,EAAKuB,EACLtB,EAAKuB,GAGCb,GACN,KAAK7D,EAAIC,EAGPiD,EAAKz6D,EAAK0N,KACVgtD,EAAK16D,EAAK0N,KACVsuD,EAAKvB,EACLwB,EAAKvB,EACL3C,EAAK,GAAK0C,EACV1C,EAAK,GAAK2C,EACV1C,EAAK,GAAKyC,EACVzC,EAAK,GAAK0C,EACV,MAEF,KAAKnD,EAAIE,EACPJ,EAAK6E,SAASF,EAAIC,EAAIj8D,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIqqD,EAAMC,GAClDgE,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACV,MAEF,KAAK6pD,EAAIG,EACPL,EAAK8E,UAAUH,EAAIC,EAAIj8D,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIqqD,EAAMC,GAC/FgE,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACV,MAEF,KAAK6pD,EAAII,EACPN,EAAK+E,cAAcJ,EAAIC,EAAIj8D,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIqqD,EAAMC,GAC7EgE,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACV,MAEF,KAAK6pD,EAAIK,EAEP,IAAI/Z,EAAK79C,EAAK0N,KACVowC,EAAK99C,EAAK0N,KACV2uD,EAAKr8D,EAAK0N,KACV4uD,EAAKt8D,EAAK0N,KACV6zC,EAAavhD,EAAK0N,KAClB8zC,EAAWxhD,EAAK0N,KAAO6zC,EAE3B7zC,GAAK,EACL,IAAI6sD,EAAgB,EAAIv6D,EAAK0N,KAEnB,IAANA,IAGF+sD,EAAKnH,EAAQ/R,GAAc8a,EAAKxe,EAChC6c,EAAKnH,EAAQhS,GAAc+a,EAAKxe,GAGlCuZ,EAAKkF,QAAQ1e,EAAIC,EAAIue,EAAIC,EAAI/a,EAAYC,EAAU+Y,EAAexC,EAAMC,GACxEgE,EAAK1I,EAAQ9R,GAAY6a,EAAKxe,EAC9Boe,EAAK1I,EAAQ/R,GAAY8a,EAAKxe,EAC9B,MAEF,KAAKyZ,EAAIO,EACP2C,EAAKuB,EAAKh8D,EAAK0N,KACfgtD,EAAKuB,EAAKj8D,EAAK0N,KACf,IAAIzM,EAAQjB,EAAK0N,KACb/B,EAAS3L,EAAK0N,KAElB2pD,EAAK6E,SAASzB,EAAIC,EAAID,EAAKx5D,EAAOy5D,EAAK/uD,EAAQosD,EAAMC,GACrD,MAEF,KAAKT,EAAIM,EACPmE,EAAKvB,EACLwB,EAAKvB,EACL,MAIJ9oB,EAAKzhC,IAAIA,EAAKA,EAAK4nD,GACnBnmB,EAAK1hC,IAAIA,EAAKA,EAAK8nD,GAQrB,OAJU,IAANtqD,IACFyC,EAAI,GAAKA,EAAI,GAAKD,EAAI,GAAKA,EAAI,GAAK,GAG/B,IAAIlE,EAAamE,EAAI,GAAIA,EAAI,GAAID,EAAI,GAAKC,EAAI,GAAID,EAAI,GAAKC,EAAI,KAQxEqsD,YAAa,SAAUt4B,GAYrB,IAXA,IACIu2B,EACAC,EACAsB,EACAC,EACA/2D,EACAC,EANAs3D,EAAIh9D,KAAKO,KAOT08D,EAAKj9D,KAAKq5D,IACV6D,EAAKl9D,KAAKs5D,IACVhhD,EAAMtY,KAAKu5D,KAENtrD,EAAI,EAAGA,EAAIqK,GAAM,CACxB,IAAIqjD,EAAMqB,EAAE/uD,KAaZ,OAXU,IAANA,IAKFsuD,EAAKS,EAAE/uD,GACPuuD,EAAKQ,EAAE/uD,EAAI,GACX+sD,EAAKuB,EACLtB,EAAKuB,GAGCb,GACN,KAAK7D,EAAIC,EACPiD,EAAKuB,EAAKS,EAAE/uD,KACZgtD,EAAKuB,EAAKQ,EAAE/uD,KACZw2B,EAAItW,OAAOouC,EAAIC,GACf,MAEF,KAAK1E,EAAIE,EACPvyD,EAAIu3D,EAAE/uD,KACNvI,EAAIs3D,EAAE/uD,MAEF0qD,EAAQlzD,EAAI82D,GAAMU,GAAMtE,EAAQjzD,EAAI82D,GAAMU,GAAMjvD,IAAMqK,EAAM,KAC9DmsB,EAAIknB,OAAOlmD,EAAGC,GACd62D,EAAK92D,EACL+2D,EAAK92D,GAGP,MAEF,KAAKoyD,EAAIG,EACPxzB,EAAI01B,cAAc6C,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,MAC5DsuD,EAAKS,EAAE/uD,EAAI,GACXuuD,EAAKQ,EAAE/uD,EAAI,GACX,MAEF,KAAK6pD,EAAII,EACPzzB,EAAIk2B,iBAAiBqC,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,MAC/CsuD,EAAKS,EAAE/uD,EAAI,GACXuuD,EAAKQ,EAAE/uD,EAAI,GACX,MAEF,KAAK6pD,EAAIK,EACP,IAAI/Z,EAAK4e,EAAE/uD,KACPowC,EAAK2e,EAAE/uD,KACP2uD,EAAKI,EAAE/uD,KACP4uD,EAAKG,EAAE/uD,KACPkvD,EAAQH,EAAE/uD,KACVmvD,EAASJ,EAAE/uD,KACXovD,EAAML,EAAE/uD,KACRqvD,EAAKN,EAAE/uD,KACP4F,EAAI+oD,EAAKC,EAAKD,EAAKC,EACnBU,EAASX,EAAKC,EAAK,EAAID,EAAKC,EAC5BpoB,EAASmoB,EAAKC,EAAKA,EAAKD,EAAK,EAC7BY,EAAY3xD,KAAKC,IAAI8wD,EAAKC,GAAM,KAChC9a,EAAWob,EAAQC,EAEnBI,GACF/4B,EAAImf,UAAUxF,EAAIC,GAClB5Z,EAAIW,OAAOi4B,GACX54B,EAAIh2B,MAAM8uD,EAAQ9oB,GAClBhQ,EAAIo2B,IAAI,EAAG,EAAGhnD,EAAGspD,EAAOpb,EAAU,EAAIub,GACtC74B,EAAIh2B,MAAM,EAAI8uD,EAAQ,EAAI9oB,GAC1BhQ,EAAIW,QAAQi4B,GACZ54B,EAAImf,WAAWxF,GAAKC,IAEpB5Z,EAAIo2B,IAAIzc,EAAIC,EAAIxqC,EAAGspD,EAAOpb,EAAU,EAAIub,GAGhC,IAANrvD,IAGF+sD,EAAKnH,EAAQsJ,GAASP,EAAKxe,EAC3B6c,EAAKnH,EAAQqJ,GAASN,EAAKxe,GAG7Bke,EAAK1I,EAAQ9R,GAAY6a,EAAKxe,EAC9Boe,EAAK1I,EAAQ/R,GAAY8a,EAAKxe,EAC9B,MAEF,KAAKyZ,EAAIO,EACP2C,EAAKuB,EAAKS,EAAE/uD,GACZgtD,EAAKuB,EAAKQ,EAAE/uD,EAAI,GAChBw2B,EAAIz4B,KAAKgxD,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,KAAM+uD,EAAE/uD,MACnC,MAEF,KAAK6pD,EAAIM,EACP3zB,EAAImnB,YACJ2Q,EAAKvB,EACLwB,EAAKvB,MAKfpC,EAAUf,IAAMA,EAChB,IAAIv4D,EAAWs5D,EACfn2D,EAAOC,QAAUpD,G,mBC3tBjB,IAAIk+D,EAAW,GAEf,SAASvW,EAASv6C,EAAM+wD,GACtBD,EAAS9wD,GAAQ+wD,EAGnB,SAASx7D,EAAIyK,GACX,OAAO8wD,EAAS9wD,GAGlBhK,EAAQukD,SAAWA,EACnBvkD,EAAQT,IAAMA,G,qBC7Bd,IAAI7C,EAAc,EAAQ,QAEtB0f,EAAO,EAAQ,QAEf4+C,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAErBv/C,EAAQ,EAAQ,QAoBhB9e,EAAWF,EAAYG,OAAO,CAChCC,KAAM,cACNo+D,WAAY,KAGZ3J,WAAY,MAOZt0D,eAAgB,SAAUC,GAExB,IAAIqf,EAAO,CACTvS,KAAM9M,EAAO8M,KACbkS,SAAUhf,EAAOU,MAEfu9D,EAASj+D,EAAOi+D,QAAU,GAC1BC,EAAc,IAAI1/C,EAAMy/C,EAAQ99D,KAAMA,KAAKF,SAC3C4iB,EAAO3D,EAAKuD,WAAWpD,EAAMlf,KAAM,GAAIyiB,GAE3C,SAASA,EAAWu7C,GAClBA,EAASC,WAAW,gBAAgB,SAAUnuC,EAAO5f,GACnD,IAAIsP,EAAOkD,EAAKX,mBAAmB7R,GAMnC,OAJKsP,EAAKX,SAAS5T,QAAWuU,EAAK0+C,WACjCpuC,EAAMovB,YAAc6e,GAGfjuC,KAIX,IAAIquC,EAAY,EAChBz7C,EAAKhD,SAAS,YAAY,SAAUF,GAC9BA,EAAKb,MAAQw/C,IACfA,EAAY3+C,EAAKb,UAGrB,IAAIy/C,EAAoBv+D,EAAOu+D,kBAC3BC,EAAkBD,GAAqBv+D,EAAOy+D,kBAAoB,EAAIz+D,EAAOy+D,iBAAmBH,EAMpG,OALAz7C,EAAKxD,KAAKQ,SAAS,YAAY,SAAUF,GACvC,IAAIhb,EAAOgb,EAAKd,SAASne,KAAKg+D,eAAe/+C,EAAK5e,WAElD4e,EAAK0+C,SAAW15D,GAA0B,MAAlBA,EAAKg6D,WAAqBh6D,EAAKg6D,UAAYh/C,EAAKb,OAAS0/C,KAE5E37C,EAAKniB,MAOdmoC,UAAW,WACT,IAAI5hC,EAAS9G,KAAKkC,IAAI,UAQtB,MANe,eAAX4E,EACFA,EAAS,KACW,aAAXA,IACTA,EAAS,MAGJA,GAETiuD,QAAS,SAAU5oD,GACjBnM,KAAKH,OAAOsM,KAAOA,GAErB6oD,UAAW,SAAUt8B,GACnB14B,KAAKH,OAAO64B,OAASA,GAOvB+lC,cAAe,SAAU79D,GACvB,IAAI8hB,EAAO1iB,KAAKQ,UAAUkiB,KACtBg8C,EAAWh8C,EAAKxD,KAAKL,SAAS,GAC9BW,EAAOkD,EAAKX,mBAAmBnhB,GAC/B+M,EAAQ6R,EAAKiB,WACb9T,EAAO6S,EAAK7S,KAEhB,MAAO6S,GAAQA,IAASk/C,EACtB/xD,EAAO6S,EAAKZ,WAAWjS,KAAO,IAAMA,EACpC6S,EAAOA,EAAKZ,WAGd,OAAOg/C,EAAWjxD,GAAQoM,MAAMpL,IAAmB,MAATA,EAAgB,GAAK,MAAQA,KAEzE5M,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,OAElBiK,KAAM,MACNC,IAAK,MACLC,MAAO,MACPC,OAAQ,MAERzH,OAAQ,aAER07D,UAAW,QACXC,iBAAkB,MAElBC,MAAM,EAENC,eAAgB,GAEhBpmC,OAAQ,KACRvsB,KAAM,EAGNrF,OAAQ,KACR+rC,OAAQ,cACRkH,WAAY,EACZqkB,mBAAmB,EACnBE,iBAAkB,EAClB/8D,UAAW,CACTqW,MAAO,OACPpW,MAAO,IACPsuD,UAAW,IAEb5kD,UAAW,CACT0M,MAAO,iBACPzM,YAAa,UACbC,YAAa,KAEfjK,MAAO,CACLC,MAAM,EACNwW,MAAO,QAETkmD,OAAQ,CACN38D,MAAO,CACLC,MAAM,IAGVS,gBAAiB,SACjBk9D,kBAAmB,IACnBC,wBAAyB,OAI7Bt8D,EAAOC,QAAUpD,G,uBC3KjB,IAAIqD,EAAS,EAAQ,QAEjBq8D,EAAa,EAAQ,QAErBl2C,EAAa,EAAQ,QAErBm2C,EAAc,EAAQ,QAEtBC,EAAgB,EAAQ,QAuCxBC,EAAqBD,EAAcrxD,UACnCuxD,EAAWxzD,KAAKyzD,KAChBC,EAAY1zD,KAAK+N,MACjB4lD,EAAa,IACbC,EAA0B,GAAbD,EACbE,EAAwB,GAAbD,EACXE,EAAqB,GAAXD,EAEVE,EAAS,SAAUvoD,EAAG5R,EAAGuO,EAAIC,GAC/B,MAAOD,EAAKC,EAAI,CACd,IAAIO,EAAMR,EAAKC,IAAO,EAElBoD,EAAE7C,GAAK,GAAK/O,EACduO,EAAKQ,EAAM,EAEXP,EAAKO,EAIT,OAAOR,GAQL6rD,EAAYV,EAAc3/D,OAAO,CACnCC,KAAM,OAKN0pD,SAAU,SAAU19C,GAClB,IAAIq0D,EAAU9/D,KAAK+/D,SACfC,EAAO,IAAIC,KAAKx0D,GACpB,OAAOsd,EAAWm3C,WAAWJ,EAAQ,GAAIE,EAAMhgE,KAAKmgE,WAAW,YAMjE1W,WAAY,SAAUj6C,GACpB,IAAIqoB,EAAS73B,KAAK6oD,QASlB,GAPIhxB,EAAO,KAAOA,EAAO,KAEvBA,EAAO,IAAM8nC,EACb9nC,EAAO,IAAM8nC,GAIX9nC,EAAO,MAAQ9kB,KAAY8kB,EAAO,KAAO9kB,IAAU,CACrD,IAAIiqD,EAAI,IAAIiD,KACZpoC,EAAO,IAAM,IAAIooC,KAAKjD,EAAEoD,cAAepD,EAAEqD,WAAYrD,EAAEsD,WACvDzoC,EAAO,GAAKA,EAAO,GAAK8nC,EAG1B3/D,KAAKwpD,UAAUh6C,EAAI+U,YAAa/U,EAAI+wD,YAAa/wD,EAAIgxD,aAErD,IAAIt5C,EAAWlnB,KAAKygE,UAEfjxD,EAAIkxD,SACP7oC,EAAO,GAAKonC,EAAWt1C,MAAM41C,EAAU1nC,EAAO,GAAK3Q,GAAYA,IAG5D1X,EAAImxD,SACP9oC,EAAO,GAAKonC,EAAWt1C,MAAM01C,EAASxnC,EAAO,GAAK3Q,GAAYA,KAOlEsiC,UAAW,SAAUoX,EAAeL,EAAaC,GAC/CI,EAAgBA,GAAiB,GACjC,IAAI/oC,EAAS73B,KAAK6oD,QACdgY,EAAOhpC,EAAO,GAAKA,EAAO,GAC1BipC,EAAiBD,EAAOD,EAET,MAAfL,GAAuBO,EAAiBP,IAC1CO,EAAiBP,GAGA,MAAfC,GAAuBM,EAAiBN,IAC1CM,EAAiBN,GAGnB,IAAIO,EAAiBC,EAAY/1D,OAC7BiF,EAAM0vD,EAAOoB,EAAaF,EAAgB,EAAGC,GAC7CE,EAAQD,EAAYn1D,KAAK6E,IAAIR,EAAK6wD,EAAiB,IACnD75C,EAAW+5C,EAAM,GAErB,GAAiB,SAAbA,EAAM,GAAe,CACvB,IAAIC,EAAWL,EAAO35C,EAGlBi6C,EAAWlC,EAAWmC,KAAKF,EAAWN,GAAe,GACzD15C,GAAYi6C,EAGd,IAAIE,EAAiBrhE,KAAKmgE,WAAW,UAAY,EAA6D,GAAzD,IAAIF,MAAMpoC,EAAO,KAAOA,EAAO,IAAIypC,oBAA2B,IAC/G7X,EAAa,CAAC59C,KAAK8d,MAAM01C,GAAUxnC,EAAO,GAAKwpC,GAAkBn6C,GAAYA,EAAWm6C,GAAiBx1D,KAAK8d,MAAM41C,GAAW1nC,EAAO,GAAKwpC,GAAkBn6C,GAAYA,EAAWm6C,IACxLnC,EAAYqC,UAAU9X,EAAY5xB,GAClC73B,KAAK+/D,SAAWkB,EAEhBjhE,KAAKygE,UAAYv5C,EACjBlnB,KAAKwhE,YAAc/X,GAErBjuC,MAAO,SAAU/P,GAEf,OAAQwzD,EAAWwC,UAAUh2D,MAGjC7I,EAAOzD,KAAK,CAAC,UAAW,cAAc,SAAUsO,GAC9CoyD,EAAU/xD,UAAUL,GAAc,SAAUhC,GAC1C,OAAO2zD,EAAmB3xD,GAAYX,KAAK9M,KAAMA,KAAKwb,MAAM/P,QAUhE,IAAIu1D,EAAc,CAClB,CAAC,WAAYxB,GACb,CAAC,WAAyB,EAAbA,GACb,CAAC,WAAyB,GAAbA,GACb,CAAC,WAAyB,GAAbA,GACb,CAAC,WAAyB,GAAbA,GACb,CAAC,eAAgBC,GACjB,CAAC,eAA6B,EAAbA,GACjB,CAAC,eAA6B,GAAbA,GACjB,CAAC,eAA6B,GAAbA,GACjB,CAAC,eAA6B,GAAbA,GACjB,CAAC,eAAgBC,GACjB,CAAC,eAA2B,EAAXA,GACjB,CAAC,eAA2B,EAAXA,GACjB,CAAC,eAA2B,GAAXA,GACjB,CAAC,cAAeC,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,OAAkB,EAAVA,GACT,CAAC,cAAyB,GAAVA,GAChB,CAAC,OAAkB,GAAVA,GACT,CAAC,OAAkB,GAAVA,GACT,CAAC,QAAmB,GAAVA,GACV,CAAC,OAAkB,GAAVA,GACT,CAAC,QAAmB,GAAVA,GACV,CAAC,OAAkB,GAAVA,GACT,CAAC,UAAqB,GAAVA,GACZ,CAAC,QAAmB,GAAVA,EAAe,GACzB,CAAC,QAAmB,GAAVA,EAAe,GACzB,CAAC,YAAuB,IAAVA,EAAgB,GAC9B,CAAC,QAAmB,GAAVA,EAAe,GACzB,CAAC,QAAmB,GAAVA,EAAe,IACzB,CAAC,OAAkB,IAAVA,IAOTE,EAAUj8B,OAAS,SAAU9T,GAC3B,OAAO,IAAI+vC,EAAU,CACnB6B,OAAQ5xC,EAAMhwB,QAAQoC,IAAI,aAI9B,IAAI3C,EAAWsgE,EACfn9D,EAAOC,QAAUpD,G,uBC9NjB,IAAIikB,EAAU,EAAQ,QAIlBlkB,GAFUkkB,EAAQC,QAEI,EAAQ,SAE9BpkB,EAAc,EAAQ,QAoBtBE,EAAWF,EAAYG,OAAO,CAChCC,KAAM,cACNC,aAAc,CAAC,OAAQ,SACvBE,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBU,KAAKC,YAAaD,KAAM,CACjD2hE,oBAAoB,KAGxB5gE,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,cAClBgK,iBAAiB,EACjB+xC,gBAAgB,EAMhBtgC,MAAM,EAEN5a,MAAO,CACL6J,SAAU,OAIZzJ,UAAW,CACTC,MAAO,EACP/B,KAAM,SAURmiE,MAAM,EAENhgE,QAAQ,EACRigE,eAAgB,KAChBhvB,OAAQ,cACRkH,WAAY,EACZ2C,aAAc,KACdolB,YAAY,EAKZC,cAAe,OAEfC,cAAc,EAEdC,SAAU,OACVpgE,gBAAiB,SAEjBF,YAAa,EACbugE,oBAAqBnvD,OAIzBrQ,EAAOC,QAAUpD,G,uBCxFjB,IAAIqD,EAAS,EAAQ,QAEjBu/D,EAAY,EAAQ,QAExB,EAAQ,QAoBR,IAAI5iE,EAAW4iE,EAAU3iE,OAAO,CAC9BC,KAAM,WACNC,aAAc,CAAC,gBAKfY,iBAAkB,KAOlB6B,WAAY,KAOZigE,kBAAmB,KACnBlO,WAAY,MACZnzD,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHsJ,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,OAAQ,GAGRzH,OAAQ,aAIRo/D,gBAAgB,EAChBC,iBAAkB,KAClBC,gBAAiB,EACjBC,gBAAiB,GAEjBC,eAAgB,GAChBC,mBAAoB,GAGpBC,2BAA4B,EAAE,IAAM,IAAM,IAC1CC,oBAAqB,QAErBC,oBAAqB,MAMvB75D,KAAM,WACJm5D,EAAUr0D,UAAU9E,KAAKsd,MAAMtmB,KAAMkJ,WACrClJ,KAAK8iE,YAAY,KAMnBA,YAAa,SAAUr+C,GACrB,IAAI8B,EAAavmB,KAAKH,OACtB4kB,GAAa7hB,EAAOie,MAAM0F,EAAY9B,GAAW,GAEjDzkB,KAAK+iE,mBAQP1iD,SAAU,SAAUyP,EAAOhwB,GACzB,IAAIoB,EAAgB4uB,EAAM5tB,IAAI,iBAC9B,OAAwB,MAAjBhB,GAAyBpB,EAAQmC,aAAa,WAAYf,KAAmBlB,MAEtFgjE,cAAe,SAAUxzD,GACvB5M,EAAOzD,KAAK,CAAC,iBAAkB,mBAAoB,kBAAmB,kBAAmB,qBAAqB,SAAUwN,GAClH6C,EAAIuN,eAAepQ,KACrB3M,KAAKH,OAAO8M,GAAQ6C,EAAI7C,MAEzB3M,OAML+iE,gBAAiB,WACf,IAAI5gE,EAAanC,KAAKmC,WAAa,GAC/BigE,EAAoBpiE,KAAKoiE,kBAAoB,GAC7Ca,EAAargE,EAAOyuD,OAAOrxD,KAAKkjE,gBAAgBC,cAAc,SAAU5zD,GAG1E,OAAQA,EAAUrN,IAAI,kBAAoB,KAAOlC,KAAK+hC,iBACrD/hC,MACH4C,EAAOzD,KAAK8jE,GAAY,SAAU1zD,GAChCpN,EAAWtB,KAAK,MAAQ0O,EAAUrN,IAAI,QACtCkgE,EAAkBvhE,KAAK0O,EAAUwyB,sBAKvCr/B,EAAOC,QAAUpD,G,qBC3IjB,IAAIupB,EAAM,GAIRA,EAFgB,kBAAPs6C,IAAmD,oBAAzBA,GAAGC,kBAEhC,CACJC,QAAS,GACTC,GAAI,GACJ/jD,MAAM,EACNgM,KAAK,EAELvB,iBAAiB,EACjBu5C,cAAc,EACdC,sBAAsB,EACtBC,cAAc,GAEa,qBAAb14C,UAA4C,qBAATvN,KAE7C,CACJ6lD,QAAS,GACTC,GAAI,GACJ/jD,MAAM,EACNmkD,QAAQ,EACR15C,iBAAiB,EACjBy5C,cAAc,GAEc,qBAAdE,UAEV,CACJN,QAAS,GACTC,GAAI,GACJ/jD,MAAM,EACNmkD,QAAQ,EAER15C,iBAAiB,EACjBu5C,cAAc,EACdE,cAAc,GAGVG,EAAOD,UAAUE,WAGzB,IAAIvkE,EAAWupB,EAIf,SAAS+6C,EAAOE,GACd,IAAIR,EAAK,GACLD,EAAU,GAeVU,EAAUD,EAAGE,MAAM,qBAGnBC,EAAKH,EAAGE,MAAM,mBACfF,EAAGE,MAAM,6BACR18C,EAAOw8C,EAAGE,MAAM,kBAEhBE,EAAS,kBAAkBC,KAAKL,GAiDpC,OA5BIC,IACFV,EAAQU,SAAU,EAClBV,EAAQe,QAAUL,EAAQ,IAKxBE,IACFZ,EAAQY,IAAK,EACbZ,EAAQe,QAAUH,EAAG,IAGnB38C,IACF+7C,EAAQ/7C,MAAO,EACf+7C,EAAQe,QAAU98C,EAAK,IAKrB48C,IACFb,EAAQa,QAAS,GAQZ,CACLb,QAASA,EACTC,GAAIA,EACJ/jD,MAAM,EAGNyK,kBAAmBe,SAASU,cAAc,UAAUmuC,WACpD2J,aAAiC,qBAAZc,QAIrBb,qBAAsB,iBAAkB72C,SAAW02C,EAAQY,KAAOZ,EAAQ/7C,KAE1Eg9C,uBAQA,kBAAmB33C,SAAW02C,EAAQ/7C,MAAQ+7C,EAAQY,IAAMZ,EAAQe,SAAW,IAE/EX,aAAkC,qBAAb14C,UAmBzBtoB,EAAOC,QAAUpD,G,uBCrJjB,IAAI0D,EAAS,EAAQ,QA0CrB,SAAS+F,EAAKkW,GACZA,EAAKslD,SAAW,CACdC,gBAAiB,KACjBC,SAAUxlD,EACVylD,OAAQ,EACRC,SAAU,EACVC,OAAQ,EACRC,MAAO,EACP72D,EAAG,EACH82D,OAAQ,MAEV,IACIvlD,EACAX,EAFAqD,EAAQ,CAAChD,GAIb,MAAOM,EAAO0C,EAAM8iD,MAIlB,GAFAnmD,EAAWW,EAAKX,SAEZW,EAAK0+C,UAAYr/C,EAAS5T,OAG5B,IAFA,IAAI2I,EAAIiL,EAAS5T,OAERgD,EAAI2F,EAAI,EAAG3F,GAAK,EAAGA,IAAK,CAC/B,IAAIsR,EAAQV,EAAS5Q,GACrBsR,EAAMilD,SAAW,CACfC,gBAAiB,KACjBC,SAAUnlD,EACVolD,OAAQ,EACRC,SAAU,EACVC,OAAQ,EACRC,MAAO,EACP72D,EAAGA,EACH82D,OAAQ,MAEV7iD,EAAMrhB,KAAK0e,IAqBnB,SAAS0lD,EAAUzlD,EAAM0lD,GACvB,IAAIrmD,EAAWW,EAAK0+C,SAAW1+C,EAAKX,SAAW,GAC3CsmD,EAAW3lD,EAAKZ,WAAWC,SAC3BumD,EAAW5lD,EAAKglD,SAASv2D,EAAIk3D,EAAS3lD,EAAKglD,SAASv2D,EAAI,GAAK,KAEjE,GAAI4Q,EAAS5T,OAAQ,CACnBo6D,EAAc7lD,GACd,IAAI8lD,GAAYzmD,EAAS,GAAG2lD,SAASG,OAAS9lD,EAASA,EAAS5T,OAAS,GAAGu5D,SAASG,QAAU,EAE3FS,GACF5lD,EAAKglD,SAASG,OAASS,EAASZ,SAASG,OAASO,EAAW1lD,EAAM4lD,GACnE5lD,EAAKglD,SAASI,SAAWplD,EAAKglD,SAASG,OAASW,GAEhD9lD,EAAKglD,SAASG,OAASW,OAEhBF,IACT5lD,EAAKglD,SAASG,OAASS,EAASZ,SAASG,OAASO,EAAW1lD,EAAM4lD,IAGrE5lD,EAAKZ,WAAW4lD,SAASC,gBAAkBc,EAAU/lD,EAAM4lD,EAAU5lD,EAAKZ,WAAW4lD,SAASC,iBAAmBU,EAAS,GAAID,GAchI,SAASM,EAAWhmD,GAClB,IAAIimD,EAAQjmD,EAAKglD,SAASG,OAASnlD,EAAKZ,WAAW4lD,SAASI,SAC5DplD,EAAKoB,UAAU,CACbnb,EAAGggE,IACF,GACHjmD,EAAKglD,SAASI,UAAYplD,EAAKZ,WAAW4lD,SAASI,SAGrD,SAASM,EAAW/mD,GAClB,OAAOjV,UAAU+B,OAASkT,EAAKunD,EAWjC,SAASC,EAAiBlgE,EAAGC,GAC3B,IAAIkgE,EAAa,GAIjB,OAHAngE,GAAKoG,KAAK+E,GAAK,EACfg1D,EAAWngE,EAAIC,EAAImG,KAAK04C,IAAI9+C,GAC5BmgE,EAAWlgE,EAAIA,EAAImG,KAAKw4C,IAAI5+C,GACrBmgE,EAWT,SAASC,EAAY/jE,EAAayE,GAChC,OAAOtD,EAAOk/C,cAAcrgD,EAAYgkE,qBAAsB,CAC5DtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAgBhB,SAASo5C,EAAc7lD,GACrB,IAAIX,EAAWW,EAAKX,SAChBjL,EAAIiL,EAAS5T,OACb65D,EAAQ,EACRD,EAAS,EAEb,QAASjxD,GAAK,EAAG,CACf,IAAI2L,EAAQV,EAASjL,GACrB2L,EAAMilD,SAASG,QAAUG,EACzBvlD,EAAMilD,SAASI,UAAYE,EAC3BD,GAAUtlD,EAAMilD,SAASK,OACzBC,GAASvlD,EAAMilD,SAASM,MAAQD,GAyBpC,SAASU,EAAUQ,EAAUX,EAAUV,EAAUQ,GAC/C,GAAIE,EAAU,CACZ,IAAIY,EAAeD,EACfE,EAAcF,EACdG,EAAcD,EAAYrnD,WAAWC,SAAS,GAC9CsnD,EAAaf,EACbgB,EAAcJ,EAAaxB,SAASI,SACpCyB,EAAaJ,EAAYzB,SAASI,SAClC0B,EAAaJ,EAAY1B,SAASI,SAClC2B,EAAYJ,EAAW3B,SAASI,SAEpC,MAAOuB,EAAaK,EAAUL,GAAaF,EAAcQ,EAASR,GAAcE,GAAcF,EAAa,CACzGD,EAAeQ,EAAUR,GACzBE,EAAcO,EAASP,GACvBF,EAAaxB,SAASE,SAAWqB,EACjC,IAAIjB,EAAQqB,EAAW3B,SAASG,OAAS4B,EAAYN,EAAYzB,SAASG,OAAS0B,EAAanB,EAAWiB,EAAYF,GAEnHnB,EAAQ,IACV4B,EAAYC,EAAaR,EAAYJ,EAAUrB,GAAWqB,EAAUjB,GACpEuB,GAAcvB,EACdsB,GAAetB,GAGjByB,GAAaJ,EAAW3B,SAASI,SACjCyB,GAAcJ,EAAYzB,SAASI,SACnCwB,GAAeJ,EAAaxB,SAASI,SACrC0B,GAAcJ,EAAY1B,SAASI,SAGjCuB,IAAeK,EAAUR,KAC3BA,EAAaxB,SAASO,OAASoB,EAC/BH,EAAaxB,SAASI,UAAY2B,EAAYH,GAG5CH,IAAgBQ,EAASP,KAC3BA,EAAY1B,SAASO,OAASkB,EAC9BC,EAAY1B,SAASI,UAAYyB,EAAaC,EAC9C5B,EAAWqB,GAIf,OAAOrB,EAYT,SAAS8B,EAAUhnD,GACjB,IAAIX,EAAWW,EAAKX,SACpB,OAAOA,EAAS5T,QAAUuU,EAAK0+C,SAAWr/C,EAASA,EAAS5T,OAAS,GAAKuU,EAAKglD,SAASO,OAY1F,SAAS0B,EAASjnD,GAChB,IAAIX,EAAWW,EAAKX,SACpB,OAAOA,EAAS5T,QAAUuU,EAAK0+C,SAAWr/C,EAAS,GAAKW,EAAKglD,SAASO,OAaxE,SAAS4B,EAAaR,EAAY3mD,EAAMklD,GACtC,OAAOyB,EAAW3B,SAASE,SAAS9lD,aAAeY,EAAKZ,WAAaunD,EAAW3B,SAASE,SAAWA,EAiBtG,SAASgC,EAAYE,EAAIC,EAAI/B,GAC3B,IAAID,EAASC,GAAS+B,EAAGrC,SAASv2D,EAAI24D,EAAGpC,SAASv2D,GAClD44D,EAAGrC,SAASK,QAAUA,EACtBgC,EAAGrC,SAASM,OAASA,EACrB+B,EAAGrC,SAASI,UAAYE,EACxB+B,EAAGrC,SAASG,QAAUG,EACtB8B,EAAGpC,SAASK,QAAUA,EAUxB,SAASa,EAAkB3V,EAAOC,GAChC,OAAOD,EAAMnxC,aAAeoxC,EAAMpxC,WAAa,EAAI,EAGrDjc,EAAQqG,KAAOA,EACfrG,EAAQsiE,UAAYA,EACpBtiE,EAAQ6iE,WAAaA,EACrB7iE,EAAQuiE,WAAaA,EACrBviE,EAAQgjE,iBAAmBA,EAC3BhjE,EAAQkjE,YAAcA,G,qBC1VtB,IAAIjjE,EAAS,EAAQ,QAEjBkkE,EAAW,EAAQ,QAEnBC,EAAY,EAAQ,QAEpB9jC,EAAS,EAAQ,QAEjBC,EAAS,EAAQ,QAEjB4mB,EAAO,EAAQ,QAEfztB,EAAgB,EAAQ,QAExBkJ,EAAS,EAAQ,QAErB5iC,EAAQqkE,MAAQzhC,EAEhB,IAAI5gC,EAAQ,EAAQ,QAEpBhC,EAAQgC,MAAQA,EAEhB,IAAIY,EAAO,EAAQ,QAEnB5C,EAAQ4C,KAAOA,EAEf,IAAI27C,EAAS,EAAQ,QAErBv+C,EAAQu+C,OAASA,EAEjB,IAAIU,EAAS,EAAQ,QAErBj/C,EAAQi/C,OAASA,EAEjB,IAAIqlB,EAAO,EAAQ,QAEnBtkE,EAAQskE,KAAOA,EAEf,IAAIvmC,EAAU,EAAQ,QAEtB/9B,EAAQ+9B,QAAUA,EAElB,IAAI6d,EAAW,EAAQ,QAEvB57C,EAAQ47C,SAAWA,EAEnB,IAAIhtC,EAAO,EAAQ,QAEnB5O,EAAQ4O,KAAOA,EAEf,IAAI2gC,EAAO,EAAQ,QAEnBvvC,EAAQuvC,KAAOA,EAEf,IAAIg1B,EAAc,EAAQ,QAE1BvkE,EAAQukE,YAAcA,EAEtB,IAAIC,EAAM,EAAQ,QAElBxkE,EAAQwkE,IAAMA,EAEd,IAAI1nC,EAAe,EAAQ,QAE3B98B,EAAQ88B,aAAeA,EAEvB,IAAI2nC,EAAiB,EAAQ,QAE7BzkE,EAAQykE,eAAiBA,EAEzB,IAAIC,EAAiB,EAAQ,QAE7B1kE,EAAQ0kE,eAAiBA,EAEzB,IAAI96D,EAAe,EAAQ,QAE3B5J,EAAQ4J,aAAeA,EAEvB,IAAI+6D,EAAyB,EAAQ,QAErC3kE,EAAQ2kE,uBAAyBA,EAEjC,IAAIC,EAAuB,EAAQ,QAoB/B9O,EAAU5sD,KAAK4E,IACf+nD,EAAU3sD,KAAK6E,IACf82D,EAAY,GACZC,EAAmB,EAEnBC,EAAgC,CAClC9vD,MAAO,WACP+vD,gBAAiB,aACjBC,gBAAiB,mBAEfC,EAAW,WACXC,EAAS,SAETC,EAAsB,EACtBC,EAAmB,GACnBC,EAAkB,GAKtB,SAASC,EAAY5kC,GACnB,OAAOwmB,EAAKtqD,OAAO8jC,GAOrB,SAAS6kC,EAAWC,EAAU9kC,GAC5B,OAAOwjC,EAASuB,iBAAiBD,EAAU9kC,GAe7C,SAASglC,EAAc37D,EAAM47D,GAC3BN,EAAgBt7D,GAAQ47D,EA+B1B,SAASC,EAAc77D,GACrB,GAAIs7D,EAAgBlrD,eAAepQ,GACjC,OAAOs7D,EAAgBt7D,GAY3B,SAAS87D,EAASL,EAAU9kC,EAAMt3B,EAAM/I,GACtC,IAAIie,EAAO4lD,EAAS4B,iBAAiBN,EAAU9kC,GAU/C,OARIt3B,IACa,WAAX/I,IACF+I,EAAO28D,EAAc38D,EAAMkV,EAAKjV,oBAGlC28D,EAAW1nD,EAAMlV,IAGZkV,EAWT,SAAS2nD,EAAUC,EAAU98D,EAAM/I,GACjC,IAAIie,EAAO,IAAIqkB,EAAO,CACpB//B,MAAO,CACLmgC,MAAOmjC,EACPrjE,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,QAEf45B,OAAQ,SAAUijC,GAChB,GAAe,WAAX9lE,EAAqB,CACvB,IAAIsK,EAAe,CACjB/L,MAAOunE,EAAIvnE,MACX0K,OAAQ68D,EAAI78D,QAEdgV,EAAK2f,SAAS8nC,EAAc38D,EAAMuB,QAIxC,OAAO2T,EAWT,SAASynD,EAAc38D,EAAMuB,GAE3B,IAEIrB,EAFA85B,EAASz4B,EAAa/L,MAAQ+L,EAAarB,OAC3C1K,EAAQwK,EAAKE,OAAS85B,EAGtBxkC,GAASwK,EAAKxK,MAChB0K,EAASF,EAAKE,QAEd1K,EAAQwK,EAAKxK,MACb0K,EAAS1K,EAAQwkC,GAGnB,IAAIoY,EAAKpyC,EAAKvG,EAAIuG,EAAKxK,MAAQ,EAC3B68C,EAAKryC,EAAKtG,EAAIsG,EAAKE,OAAS,EAChC,MAAO,CACLzG,EAAG24C,EAAK58C,EAAQ,EAChBkE,EAAG24C,EAAKnyC,EAAS,EACjB1K,MAAOA,EACP0K,OAAQA,GAIZ,IAAIi1C,EAAY2lB,EAAS3lB,UAOzB,SAASynB,EAAW1nD,EAAMlV,GACxB,GAAKkV,EAAKgkB,eAAV,CAIA,IAAI8jC,EAAW9nD,EAAKjV,kBAChB+I,EAAIg0D,EAASz6D,mBAAmBvC,GACpCkV,EAAKgkB,eAAelwB,IAiBtB,SAASi0D,EAAqBC,GAE5B,OADA3B,EAAqB0B,qBAAqBC,EAAM13D,MAAO03D,EAAM13D,MAAO03D,EAAM1jE,OACnE0jE,EAiBT,SAASC,EAAqBD,GAE5B,OADA3B,EAAqB4B,qBAAqBD,EAAM13D,MAAO03D,EAAM13D,MAAO03D,EAAM1jE,OACnE0jE,EAYT,IAAI50C,EAAmBizC,EAAqBjzC,iBAE5C,SAAS80C,EAAgBC,GACvB,OAAuB,MAAhBA,GAAyC,SAAjBA,EAIjC,IAAIC,EAAiB1mE,EAAOxD,gBACxBmqE,EAAmB,EAEvB,SAASC,EAAU5xD,GACjB,GAAqB,kBAAVA,EACT,OAAOA,EAGT,IAAI6xD,EAAcH,EAAepnE,IAAI0V,GAWrC,OATK6xD,IACHA,EAAc1C,EAAU2C,KAAK9xD,GAAQ,IAEjC2xD,EAAmB,MACrBD,EAAe/mE,IAAIqV,EAAO6xD,GAC1BF,MAIGE,EAGT,SAASE,GAAgBl+C,GACvB,GAAKA,EAAGm+C,gBAAR,CAIAn+C,EAAGm+C,iBAAkB,EACrB,IAAIroC,EAAa9V,EAAGo+C,WAEpB,GAAKtoC,EAAL,CAKA,IAAIuoC,EAAcr+C,EAAGs+C,kBAAoB,GACzCt+C,EAAGu+C,iBAAmBv+C,EAAGra,GACzB,IAAIqrC,EAAUhxB,EAAGjmB,MAEjB,IAAK,IAAImH,KAAQ40B,EAES,MAApBA,EAAW50B,KACbm9D,EAAYn9D,GAAQ8vC,EAAQ9vC,IAKhCm9D,EAAYp4D,KAAO+qC,EAAQ/qC,KAC3Bo4D,EAAYjrB,OAASpC,EAAQoC,YAjB3BpzB,EAAGs+C,kBAAoBt+C,EAAGu+C,iBAAmB,MAoBjD,SAASC,GAAoBx+C,GAC3B,IAAIy+C,EAAWz+C,EAAGo+C,WAElB,GAAKK,IAAYz+C,EAAG0+C,cAApB,CAIA,IAAI5/C,EAAKkB,EAAGyhC,KACRxR,EAAgBjwB,EAAGiwB,eAAiBnxB,GAA0B,WAApBA,EAAGK,QAAQnrB,KAGzD,GAFAgsB,EAAG0+C,cAAgBzuB,EAAgB,QAAU,UAEzCjwB,EAAG2+C,UAAY7/C,GAAMkB,EAAGiwB,eAA5B,CAIA,IAAI2uB,EAAW5+C,EACX6+C,EAAc7+C,EAAGjmB,MAEjBk2C,IACF2uB,EAAW9/C,EAAGggD,SAAS9+C,GACvB6+C,EAAcD,EAAS7kE,OAGzBglE,GAAyBF,GAEpB5uB,GACHiuB,GAAgBU,GA0BlBC,EAAYG,WAAWP,GACvBQ,GAA0BJ,EAAaJ,EAAU,QACjDQ,GAA0BJ,EAAaJ,EAAU,UACjDS,GAAsBL,GAEjB5uB,IACHjwB,EAAGnZ,OAAM,GACTmZ,EAAGra,IAAMq2D,KAIb,SAASiD,GAA0BJ,EAAa/oC,EAAYvO,IACrDo2C,EAAgB7nC,EAAWvO,KAAUo2C,EAAgBkB,EAAYt3C,MACpEs3C,EAAYt3C,GAAQw2C,EAAUc,EAAYt3C,KAI9C,SAAS43C,GAAkBn/C,GACzB,IAAIo/C,EAAcp/C,EAAG0+C,cAErB,GAAKU,IAILp/C,EAAG0+C,eAAgB,GAEf1+C,EAAG2+C,SAIP,GAAoB,UAAhBS,EACFp/C,EAAGyhC,MAAQzhC,EAAGyhC,KAAK4d,YAAYr/C,OAC1B,CACL,IAAIjmB,EAAQimB,EAAGjmB,MACXulE,EAAYt/C,EAAGs+C,kBAEfgB,IACFP,GAAyBhlE,GACzBimB,EAAGoV,SAASkqC,GACZJ,GAAsBnlE,IAMxB,IAAIwlE,EAAWv/C,EAAGu+C,iBAEF,MAAZgB,GAAoBv/C,EAAGra,GAAK45D,IAAavD,IAC3Ch8C,EAAGra,GAAK45D,IAKd,SAASC,GAAex/C,EAAIy/C,EAASC,GAEnC,IAEI7tC,EAFAie,EAAYusB,EACZtsB,EAAUssB,EAGdr8C,EAAG0+C,gBAAkB5uB,EAAYssB,EAAUvqC,GAAU,GACrD4tC,EAAQz/C,EAAI0/C,GACZ1/C,EAAG0+C,gBAAkB3uB,EAAUqsB,EAAUvqC,GAAU,GACnD7R,EAAG2+C,SAAW3+C,EAAGqX,UAAS,SAAUvjB,IACjCA,EAAM6qD,SAAWc,EAAQ3rD,EAAO4rD,MAEnC7tC,GAAW7R,EAAG2/C,oBAAsB3/C,EAAG2/C,mBAAmB7vB,EAAWC,GAoBvE,SAAS6vB,GAAqB5/C,EAAIy+C,GAGhCA,EAAWz+C,EAAGo+C,YAA0B,IAAbK,IAAuBz+C,EAAG8V,YAAc2oC,GAAY,IAC/Ez+C,EAAGm+C,iBAAkB,EAOjBn+C,EAAG0+C,gBAKL1+C,EAAGs+C,kBAAoB,KAKvBa,GAAkBn/C,GAClBw+C,GAAoBx+C,IAIxB,SAAS6/C,GAAmB3+C,IACzB4+C,GAAavrE,KAAM2sB,KAChB3sB,KAAKwrE,eAAiBP,GAAejrE,KAAMiqE,IAGjD,SAASwB,GAAkB9+C,IACxB4+C,GAAavrE,KAAM2sB,KAChB3sB,KAAKwrE,eAAiBP,GAAejrE,KAAM4qE,IAGjD,SAASc,GAAuBC,GAC9B3rE,KAAKwrE,eAAiB,IAAMG,GAAkB,GAC9CV,GAAejrE,KAAMiqE,IAGvB,SAAS2B,GAAqBD,KAC1B3rE,KAAKwrE,iBAAmB,IAAMG,GAAkB,MAAQV,GAAejrE,KAAM4qE,IAGjF,SAASW,GAAa9/C,EAAIkB,GACxB,OAAOlB,EAAGogD,yBAA2Bl/C,EAAEm/C,UAyCzC,SAAS3pC,GAAc1W,EAAI8V,GACzBwqC,GAAwBtgD,GAAI,GAC5Bw/C,GAAex/C,EAAI4/C,GAAsB9pC,GAsC3C,SAASwqC,GAAwBtgD,EAAIugD,GACnC,IAAIC,GAA2B,IAAjBD,EAOd,GAJAvgD,EAAGogD,wBAA0BpgD,EAAGyW,sBAChCzW,EAAG2/C,mBAAqB3/C,EAAG6vB,kBAGtB2wB,GAAWxgD,EAAGygD,qBAAsB,CACvC,IAAI7lE,EAAS4lE,EAAU,MAAQ,KAE/BxgD,EAAGplB,GAAQ,YAAailE,IAAoBjlE,GAAQ,WAAYolE,IAEhEhgD,EAAGplB,GAAQ,WAAYqlE,IAAwBrlE,GAAQ,SAAUulE,IAEjEngD,EAAG+/C,cAAgB//C,EAAG+/C,eAAiB,EACvC//C,EAAGygD,sBAAwBD,GAS/B,SAASE,GAAqB1gD,GAC5B,SAAUA,IAAMA,EAAGygD,sBAYrB,SAASE,GAAkBC,GACzB,IAAIV,EAAiB3D,EAAiBqE,GAMtC,OAJsB,MAAlBV,GAA0B5D,GAAuB,KACnD4D,EAAiB3D,EAAiBqE,GAAgBtE,KAG7C4D,EAuBT,SAASrqC,GAAcwoC,EAAawC,EAAeC,EAAaC,EAAeh9D,EAAKi9D,EAAiBC,GACnGl9D,EAAMA,GAAOg4D,EACb,IAWImF,EAXAxrC,EAAe3xB,EAAI2xB,aACnBK,EAAiBhyB,EAAIgyB,eACrB+d,EAAgB/vC,EAAI+vC,cACpBqtB,EAAYp9D,EAAIo9D,UAGhBC,EAAaN,EAAY/vB,WAAW,QACpCswB,EAAeN,EAAchwB,WAAW,SAMxCqwB,GAAcC,KACZ3rC,IACFwrC,EAAWxrC,EAAayzB,kBAAkBpzB,EAAgB,SAAU,KAAM+d,EAAeqtB,IAG3E,MAAZD,IACFA,EAAW/pE,EAAO+zC,WAAWnnC,EAAIiyB,aAAejyB,EAAIiyB,YAAYD,EAAgBhyB,GAAOA,EAAIiyB,cAI/F,IAAIsrC,EAAkBF,EAAaF,EAAW,KAC1CK,EAAoBF,EAAelqE,EAAO6xB,UAAU0M,EAAeA,EAAayzB,kBAAkBpzB,EAAgB,WAAY,KAAM+d,EAAeqtB,GAAa,KAAMD,GAAY,KAE/J,MAAnBI,GAAgD,MAArBC,IAO7BC,GAAanD,EAAayC,EAAaE,EAAiBj9D,GACxDy9D,GAAaX,EAAeE,EAAeE,EAAmBl9D,GAAK,IAGrEs6D,EAAYnkE,KAAOonE,EACnBT,EAAc3mE,KAAOqnE,EAYvB,SAASE,GAAiBzhD,EAAI0hD,EAAkBC,GAC9C,IAAI3wB,EAAUhxB,EAAGjmB,MAEb2nE,IACF3C,GAAyB/tB,GACzBhxB,EAAGoV,SAASssC,GACZxC,GAAsBluB,IAGxBA,EAAUhxB,EAAGo+C,WAETuD,GAAsB3wB,IACxB+tB,GAAyB/tB,GACzB75C,EAAOpD,OAAOi9C,EAAS2wB,GACvBzC,GAAsBluB,IAc1B,SAASwwB,GAAaI,EAAW3pE,EAAgB4pE,EAAoB99D,EAAK+9D,GAIxE,OAHAC,GAAmBH,EAAW3pE,EAAgB8L,EAAK+9D,GACnDD,GAAsB1qE,EAAOpD,OAAO6tE,EAAWC,GAExCD,EAaT,SAASI,GAAQJ,EAAWntC,EAAYwtC,GACtC,IAGIH,EAHA/9D,EAAM,CACR0tC,YAAY,IAIO,IAAjBwwB,EACFH,GAAa,EAGb/9D,EAAI2tC,UAAYuwB,EAGlBF,GAAmBH,EAAWntC,EAAY1wB,EAAK+9D,GAoCjD,SAASC,GAAmBH,EAAW3pE,EAAgB8L,EAAK+9D,GAI1D,GAFA/9D,EAAMA,GAAOg4D,EAETh4D,EAAI0tC,WAAY,CAClB,IAAIywB,EAEAn+D,EAAIo+D,gBACND,EAAen+D,EAAIo+D,gBAAgBlqE,EAAgB6pE,IAEnDI,EAAejqE,EAAe84C,WAAW,cAAgB+wB,EAAa,KAAO,UAG5D,YAAjBI,IAA+BA,EAAe,QAGhDN,EAAUM,aAAeA,EACzBN,EAAUQ,WAAanqE,EAAe84C,WAAW,UACjD,IAAIrrC,EAAczN,EAAe84C,WAAW,UAC7B,MAAfrrC,IAAwBA,GAAetF,KAAK+E,GAAK,KACjDy8D,EAAUS,aAAe38D,EACzBk8D,EAAUU,aAAenrE,EAAO6xB,UAAU/wB,EAAe84C,WAAW,YAAa+wB,EAAa,KAAO,GAGvG,IAiBIS,EAjBAluE,EAAU4D,EAAe5D,QACzBmuE,EAAkBnuE,GAAWA,EAAQD,OAAOwtE,UAe5Ca,EAAgBC,GAAiBzqE,GAGrC,GAAIwqE,EAGF,IAAK,IAAIvhE,KAFTqhE,EAAa,GAEIE,EACf,GAAIA,EAAcnxD,eAAepQ,GAAO,CAEtC,IAAIyhE,EAAgB1qE,EAAeud,SAAS,CAAC,OAAQtU,IAMrD0hE,GAAkBL,EAAWrhE,GAAQ,GAAIyhE,EAAeH,EAAiBz+D,EAAK+9D,GAYpF,OAPAF,EAAUiB,KAAON,EACjBK,GAAkBhB,EAAW3pE,EAAgBuqE,EAAiBz+D,EAAK+9D,GAAY,GAE3E/9D,EAAI++D,YAAc/+D,EAAI69D,YACxB79D,EAAI69D,UAAY,IAGXA,EAiBT,SAASc,GAAiBzqE,GAExB,IAAI8qE,EAEJ,MAAO9qE,GAAkBA,IAAmBA,EAAe5D,QAAS,CAClE,IAAIwuE,GAAQ5qE,EAAe7D,QAAU2nE,GAAW8G,KAEhD,GAAIA,EAGF,IAAK,IAAI3hE,KAFT6hE,EAAkBA,GAAmB,GAEpBF,EACXA,EAAKvxD,eAAepQ,KACtB6hE,EAAgB7hE,GAAQ,GAK9BjJ,EAAiBA,EAAew7C,YAGlC,OAAOsvB,EAGT,SAASH,GAAkBhB,EAAW3pE,EAAgBuqE,EAAiBz+D,EAAK+9D,EAAYkB,GAEtFR,GAAmBV,GAAcU,GAAmBzG,EACpD6F,EAAUxpE,SAAW6qE,GAAahrE,EAAe84C,WAAW,SAAUhtC,IAAQy+D,EAAgBr2D,MAC9Fy1D,EAAUsB,WAAaD,GAAahrE,EAAe84C,WAAW,mBAAoBhtC,IAAQy+D,EAAgBtG,gBAC1G0F,EAAUuB,gBAAkBhsE,EAAO6xB,UAAU/wB,EAAe84C,WAAW,mBAAoByxB,EAAgBrG,iBAEtG2F,IACCkB,IACFpB,EAAUwB,kBAAoBr/D,EAC9Bm7D,GAAsB0C,IAIE,MAAtBA,EAAUxpE,WACZwpE,EAAUxpE,SAAW2L,EAAI2tC,YAO7BkwB,EAAUyB,UAAYprE,EAAe84C,WAAW,cAAgByxB,EAAgBa,UAChFzB,EAAU0B,WAAarrE,EAAe84C,WAAW,eAAiByxB,EAAgBc,WAClF1B,EAAU3jD,SAAWhmB,EAAe84C,WAAW,aAAeyxB,EAAgBvkD,SAC9E2jD,EAAU2B,WAAatrE,EAAe84C,WAAW,eAAiByxB,EAAgBe,WAClF3B,EAAUxnE,UAAYnC,EAAe84C,WAAW,SAChD6wB,EAAUznE,kBAAoBlC,EAAe84C,WAAW,kBAAoB94C,EAAe84C,WAAW,YACtG6wB,EAAU4B,eAAiBvrE,EAAe84C,WAAW,cACrD6wB,EAAU6B,UAAYxrE,EAAe84C,WAAW,SAChD6wB,EAAU8B,WAAazrE,EAAe84C,WAAW,UACjD6wB,EAAU+B,QAAU1rE,EAAe84C,WAAW,OAEzCiyB,GAAYj/D,EAAI6/D,aACnBhC,EAAUiC,oBAAsBZ,GAAahrE,EAAe84C,WAAW,mBAAoBhtC,GAC3F69D,EAAUkC,YAAc7rE,EAAe84C,WAAW,WAClD6wB,EAAU1F,gBAAkB+G,GAAahrE,EAAe84C,WAAW,eAAgBhtC,GACnF69D,EAAUzF,gBAAkBlkE,EAAe84C,WAAW,eACtD6wB,EAAUmC,iBAAmB9rE,EAAe84C,WAAW,gBACvD6wB,EAAUoC,mBAAqB/rE,EAAe84C,WAAW,eACzD6wB,EAAUqC,kBAAoBhsE,EAAe84C,WAAW,cACxD6wB,EAAUsC,qBAAuBjsE,EAAe84C,WAAW,iBAC3D6wB,EAAUuC,qBAAuBlsE,EAAe84C,WAAW,kBAG7D6wB,EAAUwC,gBAAkBnsE,EAAe84C,WAAW,oBAAsByxB,EAAgB4B,gBAC5FxC,EAAUyC,eAAiBpsE,EAAe84C,WAAW,mBAAqByxB,EAAgB6B,eAC1FzC,EAAU0C,kBAAoBrsE,EAAe84C,WAAW,sBAAwByxB,EAAgB8B,kBAChG1C,EAAU2C,kBAAoBtsE,EAAe84C,WAAW,sBAAwByxB,EAAgB+B,kBAGlG,SAAStB,GAAa92D,EAAOpI,GAC3B,MAAiB,SAAVoI,EAAmBA,EAAQpI,GAAOA,EAAI2tC,UAAY3tC,EAAI2tC,UAAY,KAqB3E,SAASwtB,GAAsB0C,GAC7B,IAEI4C,EAFAtC,EAAeN,EAAUM,aACzBn+D,EAAM69D,EAAUwB,kBAGpB,GAAIr/D,GAA6B,MAAtB69D,EAAUxpE,SAAkB,CACrC,IAAIs5C,EAAY3tC,EAAI2tC,UAChBD,EAAa1tC,EAAI0tC,WACjBxb,EAAiBlyB,EAAIkyB,eACrBwuC,GAAyC,IAAnBxuC,KAAgD,IAAnBA,GAA2Bwb,GAAcywB,GACrE,kBAAjBA,GAA6BA,EAAa96C,QAAQ,WAAa,GACrEs9C,GAAqBD,GAAoC,MAAb/yB,GAE5C+yB,GAAuBC,KACzBF,EAAiB,CACfpsE,SAAUwpE,EAAUxpE,SACpB8qE,WAAYtB,EAAUsB,WACtBC,gBAAiBvB,EAAUuB,kBAI3BsB,IACF7C,EAAUxpE,SAAW,OAEO,MAAxBwpE,EAAUsB,aACZtB,EAAUsB,WAAaxxB,EACM,MAA7BkwB,EAAUuB,kBAA4BvB,EAAUuB,gBAAkB,KAIlEuB,IACF9C,EAAUxpE,SAAWs5C,GAKzBkwB,EAAU4C,eAAiBA,EAc7B,SAASzF,GAAyBhlE,GAChC,IAAIyqE,EAAiBzqE,EAAMyqE,eAEvBA,IAEFzqE,EAAM3B,SAAWosE,EAAepsE,SAChC2B,EAAMmpE,WAAasB,EAAetB,WAClCnpE,EAAMopE,gBAAkBqB,EAAerB,gBACvCppE,EAAMyqE,eAAiB,MAI3B,SAASrsE,GAAQ4L,EAAK1P,GACpB,IAAIswE,EAAkBtwE,GAAWA,EAAQmhB,SAAS,aAClD,OAAOre,EAAOytE,KAAK,CACnB7gE,EAAIs/D,WAAasB,GAAmBA,EAAgB5zB,WAAW,cAAgB,GAAIhtC,EAAIu/D,YAAcqB,GAAmBA,EAAgB5zB,WAAW,eAAiB,IAAKhtC,EAAIka,UAAY0mD,GAAmBA,EAAgB5zB,WAAW,aAAe,IAAM,KAAMhtC,EAAIw/D,YAAcoB,GAAmBA,EAAgB5zB,WAAW,eAAiB,cAAc3iC,KAAK,MAGxW,SAASy2D,GAAkBC,EAAU9kD,EAAI5O,EAAO2zD,EAAiB5vE,EAAWud,GACjD,oBAAdvd,IACTud,EAAKvd,EACLA,EAAY,MAMd,IAAI6vE,EAAmBD,GAAmBA,EAAgBpzB,qBAE1D,GAAIqzB,EAAkB,CACpB,IAAIC,EAAUH,EAAW,SAAW,GAChCnnD,EAAWonD,EAAgBh0B,WAAW,oBAAsBk0B,GAC5D7uE,EAAkB2uE,EAAgBh0B,WAAW,kBAAoBk0B,GACjEC,EAAiBH,EAAgBh0B,WAAW,iBAAmBk0B,GAErC,oBAAnBC,IACTA,EAAiBA,EAAe/vE,EAAW4vE,EAAgBI,wBAA0BJ,EAAgBI,wBAAwBnlD,EAAI7qB,GAAa,OAGxH,oBAAbwoB,IACTA,EAAWA,EAASxoB,IAGtBwoB,EAAW,EAAIqC,EAAGqwB,UAAUj/B,EAAOuM,EAAUunD,GAAkB,EAAG9uE,EAAiBsc,IAAMA,IAAOsN,EAAGioB,gBAAiBjoB,EAAGzL,KAAKnD,GAAQsB,GAAMA,UAE1IsN,EAAGioB,gBACHjoB,EAAGzL,KAAKnD,GACRsB,GAAMA,IA2BV,SAAS6gB,GAAYvT,EAAI5O,EAAO2zD,EAAiB5vE,EAAWud,GAC1DmyD,IAAkB,EAAM7kD,EAAI5O,EAAO2zD,EAAiB5vE,EAAWud,GAkBjE,SAAS68B,GAAUvvB,EAAI5O,EAAO2zD,EAAiB5vE,EAAWud,GACxDmyD,IAAkB,EAAO7kD,EAAI5O,EAAO2zD,EAAiB5vE,EAAWud,GAWlE,SAAS0yD,GAAaz+D,EAAQsyD,GAC5B,IAAIoM,EAAM7tC,EAAOG,SAAS,IAE1B,MAAOhxB,GAAUA,IAAWsyD,EAC1BzhC,EAAOa,IAAIgtC,EAAK1+D,EAAOyxB,oBAAqBitC,GAC5C1+D,EAASA,EAAOyP,OAGlB,OAAOivD,EAaT,SAAS5rC,GAAe9yB,EAAQ9D,EAAWi2B,GASzC,OARIj2B,IAAc1L,EAAOiV,YAAYvJ,KACnCA,EAAY+tB,EAAcwH,kBAAkBv1B,IAG1Ci2B,IACFj2B,EAAY20B,EAAOsB,OAAO,GAAIj2B,IAGzB40B,EAAOgC,eAAe,GAAI9yB,EAAQ9D,GAU3C,SAASyiE,GAAmBC,EAAW1iE,EAAWi2B,GAEhD,IAAI0sC,EAAyB,IAAjB3iE,EAAU,IAA6B,IAAjBA,EAAU,IAA6B,IAAjBA,EAAU,GAAW,EAAIzC,KAAKC,IAAI,EAAIwC,EAAU,GAAKA,EAAU,IACnH4iE,EAAyB,IAAjB5iE,EAAU,IAA6B,IAAjBA,EAAU,IAA6B,IAAjBA,EAAU,GAAW,EAAIzC,KAAKC,IAAI,EAAIwC,EAAU,GAAKA,EAAU,IACnH6iE,EAAS,CAAe,SAAdH,GAAwBC,EAAsB,UAAdD,EAAwBC,EAAQ,EAAiB,QAAdD,GAAuBE,EAAsB,WAAdF,EAAyBE,EAAQ,GAEjJ,OADAC,EAASjsC,GAAeisC,EAAQ7iE,EAAWi2B,GACpC14B,KAAKC,IAAIqlE,EAAO,IAAMtlE,KAAKC,IAAIqlE,EAAO,IAAMA,EAAO,GAAK,EAAI,QAAU,OAASA,EAAO,GAAK,EAAI,SAAW,MAQnH,SAASC,GAAgBC,EAAIC,EAAId,EAAiBryD,GAChD,GAAKkzD,GAAOC,EAAZ,CA2BA,IAAIC,EAASC,EAASH,GACtBC,EAAGxuC,UAAS,SAAUrX,GACpB,IAAKA,EAAG2+C,SAAW3+C,EAAGgmD,KAAM,CAC1B,IAAIC,EAAQH,EAAO9lD,EAAGgmD,MAEtB,GAAIC,EAAO,CACT,IAAIC,EAAUC,EAAmBnmD,GACjCA,EAAGzL,KAAK4xD,EAAmBF,IAC3B1yC,GAAYvT,EAAIkmD,EAASnB,EAAiB/kD,EAAG7qB,gBA/BnD,SAAS4wE,EAASK,GAChB,IAAIC,EAAQ,GAMZ,OALAD,EAAE/uC,UAAS,SAAUrX,IACdA,EAAG2+C,SAAW3+C,EAAGgmD,OACpBK,EAAMrmD,EAAGgmD,MAAQhmD,MAGdqmD,EAGT,SAASF,EAAmBnmD,GAC1B,IAAI1F,EAAM,CACR/a,SAAUk4B,EAAOx7B,MAAM+jB,EAAGzgB,UAC1B2F,SAAU8a,EAAG9a,UAOf,OAJI8a,EAAGja,QACLuU,EAAIvU,MAAQ5O,EAAOpD,OAAO,GAAIisB,EAAGja,QAG5BuU,GA4BX,SAASgsD,GAAiBx6D,EAAQvL,GAGhC,OAAOpJ,EAAOqE,IAAIsQ,GAAQ,SAAU+f,GAClC,IAAI7xB,EAAI6xB,EAAM,GACd7xB,EAAIgzD,EAAQhzD,EAAGuG,EAAKvG,GACpBA,EAAI+yD,EAAQ/yD,EAAGuG,EAAKvG,EAAIuG,EAAKxK,OAC7B,IAAIkE,EAAI4xB,EAAM,GAGd,OAFA5xB,EAAI+yD,EAAQ/yD,EAAGsG,EAAKtG,GACpBA,EAAI8yD,EAAQ9yD,EAAGsG,EAAKtG,EAAIsG,EAAKE,QACtB,CAACzG,EAAGC,MAUf,SAASssE,GAAeC,EAAYjmE,GAClC,IAAIvG,EAAIgzD,EAAQwZ,EAAWxsE,EAAGuG,EAAKvG,GAC/B60D,EAAK9B,EAAQyZ,EAAWxsE,EAAIwsE,EAAWzwE,MAAOwK,EAAKvG,EAAIuG,EAAKxK,OAC5DkE,EAAI+yD,EAAQwZ,EAAWvsE,EAAGsG,EAAKtG,GAC/B60D,EAAK/B,EAAQyZ,EAAWvsE,EAAIusE,EAAW/lE,OAAQF,EAAKtG,EAAIsG,EAAKE,QAGjE,GAAIouD,GAAM70D,GAAK80D,GAAM70D,EACnB,MAAO,CACLD,EAAGA,EACHC,EAAGA,EACHlE,MAAO84D,EAAK70D,EACZyG,OAAQquD,EAAK70D,GAYnB,SAAS+iC,GAAWypC,EAAS1iE,EAAKxD,GAChCwD,EAAM5M,EAAOpD,OAAO,CAClBqtD,WAAW,GACVr9C,GACH,IAAIhK,EAAQgK,EAAIhK,MAAQ,CACtBs7B,eAAe,GASjB,GAPA90B,EAAOA,GAAQ,CACbvG,GAAI,EACJC,GAAI,EACJlE,MAAO,EACP0K,OAAQ,GAGNgmE,EACF,OAAuC,IAAhCA,EAAQr/C,QAAQ,aAAqBrtB,EAAMmgC,MAAQusC,EAAQ5qE,MAAM,GAAI1E,EAAO6O,SAASjM,EAAOwG,GAAO,IAAIu5B,EAAO/1B,IAAQi5D,EAASyJ,EAAQzvE,QAAQ,UAAW,IAAK+M,EAAKxD,EAAM,UAkBrL,SAASmmE,GAAqBC,EAAKC,EAAKC,EAAKC,EAAKh7D,GAChD,IAAK,IAAItJ,EAAI,EAAGrC,EAAK2L,EAAOA,EAAOtM,OAAS,GAAIgD,EAAIsJ,EAAOtM,OAAQgD,IAAK,CACtE,IAAIwJ,EAAIF,EAAOtJ,GAEf,GAAIukE,GAAkBJ,EAAKC,EAAKC,EAAKC,EAAK96D,EAAE,GAAIA,EAAE,GAAI7L,EAAG,GAAIA,EAAG,IAC9D,OAAO,EAGTA,EAAK6L,GAqBT,SAAS+6D,GAAkBJ,EAAKC,EAAKC,EAAKC,EAAKE,EAAKC,EAAKC,EAAKC,GAE5D,IAAIC,EAAKP,EAAMF,EACXU,EAAKP,EAAMF,EACXU,EAAKJ,EAAMF,EACXO,EAAKJ,EAAMF,EAGXO,EAAiBC,GAAeH,EAAIC,EAAIH,EAAIC,GAEhD,GAAIK,GAASF,GACX,OAAO,EAOT,IAAIG,EAAQhB,EAAMK,EACdY,EAAQhB,EAAMK,EACdY,EAAIJ,GAAeE,EAAOC,EAAOR,EAAIC,GAAMG,EAE/C,GAAIK,EAAI,GAAKA,EAAI,EACf,OAAO,EAGT,IAAI77D,EAAIy7D,GAAeE,EAAOC,EAAON,EAAIC,GAAMC,EAE/C,QAAIx7D,EAAI,GAAKA,EAAI,GAWnB,SAASy7D,GAAe9Y,EAAIC,EAAIC,EAAIC,GAClC,OAAOH,EAAKG,EAAKD,EAAKD,EAGxB,SAAS8Y,GAAS1nE,GAChB,OAAOA,GAAO,MAAQA,IAAQ,KAKhC68D,EAAc,SAAUpnB,GACxBonB,EAAc,SAAU1mB,GACxB0mB,EAAc,OAAQrB,GACtBqB,EAAc,UAAW5nC,GACzB4nC,EAAc,WAAY/pB,GAC1B+pB,EAAc,OAAQ/2D,GACtB+2D,EAAc,OAAQp2B,GACtBo2B,EAAc,cAAepB,GAC7BoB,EAAc,MAAOnB,GACrBxkE,EAAQ8kE,iBAAmBA,EAC3B9kE,EAAQ+kE,8BAAgCA,EACxC/kE,EAAQulE,YAAcA,EACtBvlE,EAAQwlE,WAAaA,EACrBxlE,EAAQ2lE,cAAgBA,EACxB3lE,EAAQ6lE,cAAgBA,EACxB7lE,EAAQ8lE,SAAWA,EACnB9lE,EAAQkmE,UAAYA,EACpBlmE,EAAQw+C,UAAYA,EACpBx+C,EAAQimE,WAAaA,EACrBjmE,EAAQsmE,qBAAuBA,EAC/BtmE,EAAQwmE,qBAAuBA,EAC/BxmE,EAAQ2xB,iBAAmBA,EAC3B3xB,EAAQ0oE,qBAAuBA,GAC/B1oE,EAAQw/B,cAAgBA,GACxBx/B,EAAQopE,wBAA0BA,GAClCppE,EAAQwpE,qBAAuBA,GAC/BxpE,EAAQypE,kBAAoBA,GAC5BzpE,EAAQ2+B,cAAgBA,GACxB3+B,EAAQuqE,iBAAmBA,GAC3BvqE,EAAQsqE,aAAeA,GACvBtqE,EAAQ8qE,QAAUA,GAClB9qE,EAAQiB,QAAUA,GAClBjB,EAAQq8B,YAAcA,GACtBr8B,EAAQq4C,UAAYA,GACpBr4C,EAAQkuE,aAAeA,GACvBluE,EAAQuiC,eAAiBA,GACzBviC,EAAQouE,mBAAqBA,GAC7BpuE,EAAQyuE,gBAAkBA,GAC1BzuE,EAAQovE,iBAAmBA,GAC3BpvE,EAAQqvE,eAAiBA,GACzBrvE,EAAQ8lC,WAAaA,GACrB9lC,EAAQwvE,qBAAuBA,GAC/BxvE,EAAQ6vE,kBAAoBA,I,qBCl+C5B,IAAI5vE,EAAS,EAAQ,QAEjB2wE,EAAY,EAAQ,QAEpBzwE,EAAU,EAAQ,QAElB0wE,EAAW,EAAQ,QAEnBC,EAAe,EAAQ,QAEvBxU,EAAa,EAAQ,QAErBh8D,EAAS,EAAQ,QAEjBywE,EAAa,EAAQ,QAoBrBniE,EAAOzO,EAAQyO,KACfoiE,EAAY1U,EAAW0U,UACvBC,EAAM3U,EAAW2U,IACjB/uE,EAAOjC,EAAOiC,KACd1F,EAAOyD,EAAOzD,KAEd00E,EAA4B,EAC5BC,EAA6B,EAC7BC,EAAsB,GACtBC,EAAa,aACbC,EAAW,WACXC,EAAY,EACZC,EAA+B,CAAC,OAAQ,MAAO,cAAe,WAC9DC,EAAiBX,EAAaj0E,OAAO,CACvCC,KAAM,kBACNuJ,KAAM,SAAUlJ,EAASyG,GAKvBvG,KAAKq0E,cAAgB,GAMrBr0E,KAAKs0E,QAMLt0E,KAAKu0E,OAMLv0E,KAAKw0E,YAOLx0E,KAAKy0E,MAMLz0E,KAAK00E,aAML10E,KAAK20E,cAKL30E,KAAK40E,UAKL50E,KAAK60E,UAKL70E,KAAK80E,gBACL90E,KAAKuG,IAAMA,GAMb+K,OAAQ,SAAUyjE,EAAej1E,EAASyG,EAAK23B,GAC7Ck2C,EAAenrE,WAAWjJ,KAAM,SAAUkJ,WAC1CsqE,EAASz9B,eAAe/1C,KAAM,sBAAuBA,KAAK+0E,cAAc7yE,IAAI,YAAa,WACzFlC,KAAKs0E,QAAUS,EAAc7yE,IAAI,WAEM,IAAnClC,KAAK+0E,cAAc7yE,IAAI,SAQtBg8B,GAA4B,aAAjBA,EAAQz+B,MAAuBy+B,EAAQl2B,OAAShI,KAAKiI,KACnEjI,KAAKg1E,aAGPh1E,KAAKi1E,eAXHj1E,KAAKsD,MAAMC,aAiBf8+B,OAAQ,WACN+xC,EAAenrE,WAAWjJ,KAAM,SAAUkJ,WAC1CsqE,EAAS16C,MAAM94B,KAAM,wBAMvBuuB,QAAS,WACP6lD,EAAenrE,WAAWjJ,KAAM,UAAWkJ,WAC3CsqE,EAAS16C,MAAM94B,KAAM,wBAEvBg1E,WAAY,WACV,IAAI3xE,EAAYrD,KAAKsD,MACrBD,EAAUE,YAEVvD,KAAKk1E,iBAELl1E,KAAKm1E,iBAEL,IAAIC,EAAWp1E,KAAKq0E,cAAce,SAAW,IAAItyE,EAAQ6B,MAEzD3E,KAAKq1E,oBAELr1E,KAAKs1E,gBAELt1E,KAAKu1E,oBAELlyE,EAAUiC,IAAI8vE,GAEdp1E,KAAKw1E,kBAMPN,eAAgB,WACd,IAAIH,EAAgB/0E,KAAK+0E,cACrBxuE,EAAMvG,KAAKuG,IAGXkvE,EAAYz1E,KAAK01E,iBAEjBC,EAAS,CACXn0E,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAGV2pD,EAAe51E,KAAKs0E,UAAYN,EAAa,CAG/CvpE,MAAOkrE,EAAOn0E,MAAQi0E,EAAUhwE,EAAIgwE,EAAUj0E,MAC9CgJ,IAAKmrE,EAAOzpE,OAAS6nE,EAAsBF,EAC3CryE,MAAOi0E,EAAUj0E,MACjB0K,OAAQ6nE,GACN,CAEFtpE,MAAOopE,EACPrpE,IAAKirE,EAAU/vE,EACflE,MAAOuyE,EACP7nE,OAAQupE,EAAUvpE,QAIhB2pE,EAAe5yE,EAAO6yE,gBAAgBf,EAAcl1E,QAExD+C,EAAOzD,KAAK,CAAC,QAAS,MAAO,QAAS,WAAW,SAAUwN,GAC9B,OAAvBkpE,EAAalpE,KACfkpE,EAAalpE,GAAQipE,EAAajpE,OAGtC,IAAIopE,EAAa9yE,EAAOk/C,cAAc0zB,EAAcF,EAAQZ,EAAc/qD,SAC1EhqB,KAAK40E,UAAY,CACfnvE,EAAGswE,EAAWtwE,EACdC,EAAGqwE,EAAWrwE,GAEhB1F,KAAKy0E,MAAQ,CAACsB,EAAWv0E,MAAOu0E,EAAW7pE,QAC3ClM,KAAKs0E,UAAYL,GAAYj0E,KAAKy0E,MAAMptE,WAM1CmuE,eAAgB,WACd,IAAInyE,EAAYrD,KAAKsD,MACjB0yE,EAAWh2E,KAAK40E,UAChB9tE,EAAS9G,KAAKs0E,QAEd2B,EAAkBj2E,KAAK+0E,cAAcmB,0BACrC9uE,EAAU6uE,GAAmBA,EAAgB/zE,IAAI,WACjDkzE,EAAWp1E,KAAKq0E,cAAce,SAC9Be,GAAoBn2E,KAAK80E,iBAAmB,IAAIqB,iBAEpDf,EAASp1D,KAAKlZ,IAAWktE,GAAe5sE,EAEpCN,IAAWktE,GAAc5sE,EAAU,CACrCqH,MAAO0nE,EAAmB,EAAE,EAAG,GAAK,EAAE,GAAI,IACxCrvE,IAAWmtE,GAAa7sE,EAIxB,CACFqH,MAAO0nE,EAAmB,EAAE,GAAI,GAAK,EAAE,EAAG,GAC1CxlE,SAAU9E,KAAK+E,GAAK,GANgB,CACpCnC,MAAO0nE,EAAmB,CAAC,GAAI,GAAK,CAAC,EAAG,GACxCxlE,SAAU9E,KAAK+E,GAAK,GAN4B,CAChDnC,MAAO0nE,EAAmB,CAAC,EAAG,GAAK,CAAC,GAAI,KAY1C,IAAInqE,EAAO3I,EAAU4I,gBAAgB,CAACmpE,IACtC/xE,EAAU2c,KAAK,WAAY,CAACg2D,EAASvwE,EAAIuG,EAAKvG,EAAGuwE,EAAStwE,EAAIsG,EAAKtG,KAMrE0wE,eAAgB,WACd,MAAO,CAAC,EAAGp2E,KAAKy0E,MAAM,KAExBY,kBAAmB,WACjB,IAAIN,EAAgB/0E,KAAK+0E,cACrBzoE,EAAOtM,KAAKy0E,MACZW,EAAWp1E,KAAKq0E,cAAce,SAClCA,EAAS9vE,IAAI,IAAIiM,EAAK,CACpBK,QAAQ,EACRJ,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAO8K,EAAK,GACZJ,OAAQI,EAAK,IAEf9G,MAAO,CACLkM,KAAMqjE,EAAc7yE,IAAI,oBAE1BkP,IAAK,MAGPgkE,EAAS9vE,IAAI,IAAIiM,EAAK,CACpBC,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAO8K,EAAK,GACZJ,OAAQI,EAAK,IAEf9G,MAAO,CACLkM,KAAM,eAERN,GAAI,EACJxM,QAAShC,EAAOiC,KAAK7E,KAAKq2E,mBAAoBr2E,UAGlDu1E,kBAAmB,WACjB,IAAIe,EAAOt2E,KAAK80E,gBAAkB90E,KAAKu2E,yBAEvC,GAAKD,EAAL,CAIA,IAAIhqE,EAAOtM,KAAKy0E,MACZ3yE,EAAcw0E,EAAKE,OACnBj2E,EAAOuB,EAAYsH,aACnBqtE,EAAW30E,EAAY40E,aAAe50E,EAAY40E,eACpDJ,EAAKG,SAEP,GAAgB,MAAZA,EAAJ,CAIA,IAAIE,EAAkBp2E,EAAKq2E,cAAcH,GAErCI,EAA0D,IAA3CF,EAAgB,GAAKA,EAAgB,IACxDA,EAAkB,CAACA,EAAgB,GAAKE,EAAaF,EAAgB,GAAKE,GAC1E,IAQIC,EARAC,EAAoB,CAAC,EAAGzqE,EAAK,IAC7B0qE,EAAmB,CAAC,EAAG1qE,EAAK,IAC5B2qE,EAAa,CAAC,CAAC3qE,EAAK,GAAI,GAAI,CAAC,EAAG,IAChCsiD,EAAa,GACbgT,EAAOoV,EAAiB,IAAMz2E,EAAK4hB,QAAU,GAC7C+0D,EAAY,EAEZC,EAAStrE,KAAK8d,MAAMppB,EAAK4hB,QAAU7V,EAAK,IAE5C/L,EAAKpB,KAAK,CAACs3E,IAAW,SAAU9oE,EAAOxG,GACrC,GAAIgwE,EAAS,GAAKhwE,EAAQgwE,EACxBD,GAAatV,MADf,CASA,IAAI3iB,EAAmB,MAATtxC,GAAiBoL,MAAMpL,IAAoB,KAAVA,EAE3CypE,EAAan4B,EAAU,EAAI00B,EAAUhmE,EAAOgpE,EAAiBI,GAAmB,GAEhF93B,IAAY63B,GAAe3vE,GAC7B8vE,EAAWp2E,KAAK,CAACo2E,EAAWA,EAAWhsE,OAAS,GAAG,GAAI,IACvD2jD,EAAW/tD,KAAK,CAAC+tD,EAAWA,EAAW3jD,OAAS,GAAG,GAAI,MAC7Cg0C,GAAW63B,IACrBG,EAAWp2E,KAAK,CAACq2E,EAAW,IAC5BtoB,EAAW/tD,KAAK,CAACq2E,EAAW,KAG9BD,EAAWp2E,KAAK,CAACq2E,EAAWE,IAC5BxoB,EAAW/tD,KAAK,CAACq2E,EAAWE,IAC5BF,GAAatV,EACbkV,EAAc73B,MAEhB,IAAI81B,EAAgB/0E,KAAK+0E,cAEzB/0E,KAAKq0E,cAAce,SAAS9vE,IAAI,IAAIxC,EAAQ49B,QAAQ,CAClDlvB,MAAO,CACL+F,OAAQ0/D,GAEVzxE,MAAO5C,EAAO6O,SAAS,CACrBC,KAAMqjE,EAAc7yE,IAAI,wBACvB6yE,EAAc9zD,SAAS,4BAA4Bm+B,gBACtDxtC,QAAQ,EACRR,IAAK,MAGPpR,KAAKq0E,cAAce,SAAS9vE,IAAI,IAAIxC,EAAQy7C,SAAS,CACnD/sC,MAAO,CACL+F,OAAQq3C,GAEVppD,MAAOuvE,EAAc9zD,SAAS,4BAA4B29B,eAC1DhtC,QAAQ,EACRR,IAAK,SAGTmlE,uBAAwB,WACtB,IAAIxB,EAAgB/0E,KAAK+0E,cACrBsC,EAAiBtC,EAAc7yE,IAAI,kBAEvC,IAAuB,IAAnBm1E,EAAJ,CAKA,IAAI1wD,EACA7mB,EAAUE,KAAKF,QA+BnB,OA9BAi1E,EAAcuC,gBAAe,SAAUC,EAAUvqC,GAC/C,IAAIwqC,EAAezC,EAAc0C,aAAaF,EAAS5qE,KAAMqgC,GAAW0qC,wBACxE90E,EAAOzD,KAAKq4E,GAAc,SAAU11E,GAClC,IAAI6kB,MAImB,IAAnB0wD,GAA2Bz0E,EAAOiwB,QAAQshD,EAA8BryE,EAAYI,IAAI,SAAW,GAAvG,CAIA,IAEIi0E,EAFAwB,EAAW73E,EAAQmC,aAAas1E,EAAS7nE,KAAMs9B,GAAWt9B,KAC1D+mE,EAAWmB,EAAYL,EAAS5qE,MAEhCtM,EAAWyB,EAAYxB,iBAEX,MAAZm2E,GAAoBp2E,EAASwxD,eAC/BskB,EAAmB91E,EAASwxD,aAAa8lB,GAAUvwE,SAGrDqvE,EAAW30E,EAAYtB,UAAUwJ,aAAaysE,GAC9C9vD,EAAS,CACPgxD,SAAUA,EACVnB,OAAQ10E,EACR+1E,QAASN,EAAS5qE,KAClB8pE,SAAUA,EACVN,iBAAkBA,MAEnBn2E,QACFA,MACI2mB,IAET2uD,cAAe,WACb,IAAIwC,EAAc93E,KAAKq0E,cACnB0D,EAAUD,EAAYC,QAAU,GAChCC,EAAeF,EAAYE,aAAe,GAC1C5C,EAAWp1E,KAAKq0E,cAAce,SAC9B9oE,EAAOtM,KAAKy0E,MACZM,EAAgB/0E,KAAK+0E,cACzBK,EAAS9vE,IAAIwyE,EAAYG,OAAS,IAAI1mE,EAAK,CACzCspC,WAAW,EACX1P,OAAQ+sC,EAAUl4E,KAAKs0E,SACvBp6B,MAAOr1C,EAAK7E,KAAKm4E,YAAan4E,KAAM,OACpCo4E,YAAavzE,EAAK7E,KAAKq4E,cAAer4E,MAAM,GAC5Cs4E,UAAWzzE,EAAK7E,KAAKu4E,WAAYv4E,MACjCw4E,YAAa3zE,EAAK7E,KAAKq4E,cAAer4E,MAAM,GAC5Cy4E,WAAY5zE,EAAK7E,KAAKq4E,cAAer4E,MAAM,GAC3CwF,MAAO,CACLkM,KAAMqjE,EAAc7yE,IAAI,eACxByrE,aAAc,aAIlByH,EAAS9vE,IAAI,IAAIiM,EAAK,CACpBK,QAAQ,EACR0iB,kBAAkB,EAClB9iB,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAO8K,EAAK,GACZJ,OAAQI,EAAK,IAEf9G,MAAO,CACLq5C,OAAQk2B,EAAc7yE,IAAI,wBAA0B6yE,EAAc7yE,IAAI,eACtEw2E,UAAW5E,EACXpiE,KAAM,oBAGVvS,EAAK,CAAC,EAAG,IAAI,SAAUw5E,GACrB,IAAIz3D,EAAOpe,EAAQ2lC,WAAWssC,EAAc7yE,IAAI,cAAe,CAC7DipC,OAAQ+sC,EAAUl4E,KAAKs0E,SACvBz5B,WAAW,EACXX,MAAOr1C,EAAK7E,KAAKm4E,YAAan4E,KAAM24E,GACpCL,UAAWzzE,EAAK7E,KAAKu4E,WAAYv4E,MACjCw4E,YAAa3zE,EAAK7E,KAAKq4E,cAAer4E,MAAM,GAC5Cy4E,WAAY5zE,EAAK7E,KAAKq4E,cAAer4E,MAAM,IAC1C,CACDyF,GAAI,EACJC,EAAG,EACHlE,MAAO,EACP0K,OAAQ,IAEN0sE,EAAQ13D,EAAKjV,kBACjBjM,KAAK20E,cAAgB1V,EAAWzqC,aAAaugD,EAAc7yE,IAAI,cAAelC,KAAKy0E,MAAM,IACzFz0E,KAAK00E,aAAekE,EAAMp3E,MAAQo3E,EAAM1sE,OAASlM,KAAK20E,cACtDzzD,EAAK2f,SAASk0C,EAAc9zD,SAAS,eAAetP,gBACpD,IAAIknE,EAAc9D,EAAc7yE,IAAI,eAEjB,MAAf22E,IACF33D,EAAK1b,MAAMkM,KAAOmnE,GAGpBzD,EAAS9vE,IAAIyyE,EAAQY,GAAez3D,GACpC,IAAIxd,EAAiBqxE,EAAcrxE,eACnC1D,KAAKsD,MAAMgC,IAAI0yE,EAAaW,GAAe,IAAI71E,EAAQyC,KAAK,CAC1DqM,QAAQ,EACR44B,WAAW,EACXhlC,MAAO,CACLC,EAAG,EACHC,EAAG,EACHC,KAAM,GACNC,kBAAmB,SACnBC,UAAW,SACXhC,SAAUH,EAAeI,eACzBH,SAAUD,EAAeE,WAE3BwN,GAAI,QAELpR,OAMLm1E,eAAgB,WACd,IAAIr5D,EAAQ9b,KAAKu0E,OAASv0E,KAAK+0E,cAAc+D,kBAEzCC,EAAa/4E,KAAKo2E,iBAEtBp2E,KAAKw0E,YAAc,CAACb,EAAU73D,EAAM,GAAI,CAAC,EAAG,KAAMi9D,GAAY,GAAOpF,EAAU73D,EAAM,GAAI,CAAC,EAAG,KAAMi9D,GAAY,KASjHC,gBAAiB,SAAUL,EAAaM,GACtC,IAAIlE,EAAgB/0E,KAAK+0E,cACrBmE,EAAal5E,KAAKw0E,YAElB2E,EAAan5E,KAAKo2E,iBAElBgD,EAAarE,EAAcsE,8BAA8BC,gBACzDC,EAAgB,CAAC,EAAG,KACxB7F,EAAWuF,EAAOC,EAAYC,EAAYpE,EAAc7yE,IAAI,YAAc,MAAQy2E,EAAmC,MAAtBS,EAAWI,QAAkB7F,EAAUyF,EAAWI,QAASD,EAAeJ,GAAY,GAAQ,KAA4B,MAAtBC,EAAWK,QAAkB9F,EAAUyF,EAAWK,QAASF,EAAeJ,GAAY,GAAQ,MACjS,IAAIO,EAAY15E,KAAKu0E,OACjBz4D,EAAQ9b,KAAKu0E,OAASX,EAAI,CAACD,EAAUuF,EAAW,GAAIC,EAAYI,GAAe,GAAO5F,EAAUuF,EAAW,GAAIC,EAAYI,GAAe,KAC9I,OAAQG,GAAaA,EAAU,KAAO59D,EAAM,IAAM49D,EAAU,KAAO59D,EAAM,IAM3Em5D,YAAa,SAAU0E,GACrB,IAAI7B,EAAc93E,KAAKq0E,cACnB6E,EAAal5E,KAAKw0E,YAClBoF,EAAiBhG,EAAIsF,EAAW5xE,SAChCgF,EAAOtM,KAAKy0E,MAChBt1E,EAAK,CAAC,EAAG,IAAI,SAAUw5E,GAErB,IAAIkB,EAAS/B,EAAYC,QAAQY,GAC7BmB,EAAe95E,KAAK20E,cACxBkF,EAAO75D,KAAK,CACVvR,MAAO,CAACqrE,EAAe,EAAGA,EAAe,GACzC9uE,SAAU,CAACkuE,EAAWP,GAAcrsE,EAAK,GAAK,EAAIwtE,EAAe,OAElE95E,MAEH83E,EAAYG,OAAO9pB,SAAS,CAC1B1oD,EAAGm0E,EAAe,GAClBl0E,EAAG,EACHlE,MAAOo4E,EAAe,GAAKA,EAAe,GAC1C1tE,OAAQI,EAAK,KAGftM,KAAK+5E,gBAAgBJ,IAMvBI,gBAAiB,SAAUJ,GACzB,IAAI5E,EAAgB/0E,KAAK+0E,cACrB+C,EAAc93E,KAAKq0E,cACnB2D,EAAeF,EAAYE,aAC3BlxE,EAAS9G,KAAKs0E,QACd0F,EAAa,CAAC,GAAI,IAGtB,GAAIjF,EAAc7yE,IAAI,cAAe,CACnC,IAAI+3E,EAAYlF,EAAcsE,8BAE9B,GAAIY,EAAW,CACb,IAAIvqE,EAAOuqE,EAAUC,eAAexqE,KAChCoM,EAAQ9b,KAAKu0E,OACb4F,EAAeR,EACjBM,EAAUG,oBAAoB,CAC9B7lE,MAAOuH,EAAM,GACbu+D,IAAKv+D,EAAM,KACVw+D,YAAcL,EAAUM,qBAC3BP,EAAa,CAACh6E,KAAKw6E,aAAaL,EAAa,GAAIzqE,GAAO1P,KAAKw6E,aAAaL,EAAa,GAAIzqE,KAI/F,IAAI+qE,EAAoB7G,EAAI5zE,KAAKw0E,YAAYltE,SAI7C,SAASozE,EAAS/B,GAIhB,IAAIgC,EAAe73E,EAAQ+tE,aAAaiH,EAAYC,QAAQY,GAAa92D,OAAQ7hB,KAAKsD,OAClF0tE,EAAYluE,EAAQiuE,mBAAmC,IAAhB4H,EAAoB,QAAU,OAAQgC,GAC7E7lE,EAAS9U,KAAK00E,aAAe,EAAIR,EACjC0G,EAAY93E,EAAQoiC,eAAe,CAACu1C,EAAkB9B,IAAgC,IAAhBA,GAAqB7jE,EAASA,GAAS9U,KAAKy0E,MAAM,GAAK,GAAIkG,GACrI3C,EAAaW,GAAa93C,SAAS,CACjCp7B,EAAGm1E,EAAU,GACbl1E,EAAGk1E,EAAU,GACbh1E,kBAAmBkB,IAAWktE,EAAa,SAAWhD,EACtDnrE,UAAWiB,IAAWktE,EAAahD,EAAY,SAC/CrrE,KAAMq0E,EAAWrB,KAhBrB+B,EAAS5tE,KAAK9M,KAAM,GACpB06E,EAAS5tE,KAAK9M,KAAM,IAuBtBw6E,aAAc,SAAU7sE,EAAO+B,GAC7B,IAAIqlE,EAAgB/0E,KAAK+0E,cACrB8F,EAAiB9F,EAAc7yE,IAAI,kBACnC44E,EAAiB/F,EAAc7yE,IAAI,kBAEjB,MAAlB44E,GAA6C,SAAnBA,IAC5BA,EAAiBprE,EAAKqrE,qBAGxB,IAAIC,EAAoB,MAATrtE,GAAiBoL,MAAMpL,GAAS,GAC/B,aAAd+B,EAAKjQ,MAAqC,SAAdiQ,EAAKjQ,KAAkBiQ,EAAKjB,MAAM06C,SAASt9C,KAAK8d,MAAMhc,IAClFA,EAAMvD,QAAQyB,KAAK6E,IAAIoqE,EAAgB,KACzC,OAAOl4E,EAAO+zC,WAAWkkC,GAAkBA,EAAeltE,EAAOqtE,GAAYp4E,EAAOid,SAASg7D,GAAkBA,EAAep4E,QAAQ,UAAWu4E,GAAYA,GAO/J3C,cAAe,SAAU4C,GAEvBA,EAAaj7E,KAAK60E,WAAaoG,EAC/B,IAAIjD,EAAeh4E,KAAKq0E,cAAc2D,aACtCA,EAAa,GAAGh4D,KAAK,aAAci7D,GACnCjD,EAAa,GAAGh4D,KAAK,aAAci7D,IAErC9C,YAAa,SAAUQ,EAAazmE,EAAIC,EAAI7J,GAC1CtI,KAAK60E,WAAY,EAEjBtB,EAAUz1D,KAAKxV,EAAMA,OAErB,IAAIqyE,EAAe36E,KAAKq0E,cAAce,SAASvxC,oBAE3CstC,EAASruE,EAAQoiC,eAAe,CAAChzB,EAAIC,GAAKwoE,GAAc,GAExDO,EAAUl7E,KAAKg5E,gBAAgBL,EAAaxH,EAAO,IAEnDgK,EAAWn7E,KAAK+0E,cAAc7yE,IAAI,YAEtClC,KAAKi1E,aAAakG,GAIlBD,GAAWC,GAAYn7E,KAAKo7E,uBAE9B7C,WAAY,WACVv4E,KAAK60E,WAAY,EAEjB70E,KAAKq4E,eAAc,GAInB,IAAI8C,EAAWn7E,KAAK+0E,cAAc7yE,IAAI,aACrCi5E,GAAYn7E,KAAKo7E,uBAEpB/E,mBAAoB,SAAU1pD,GAC5B,IAAIrgB,EAAOtM,KAAKy0E,MAEZ4G,EAAar7E,KAAKq0E,cAAce,SAASpwC,sBAAsBrY,EAAE2uD,QAAS3uD,EAAE4uD,SAEhF,KAAIF,EAAW,GAAK,GAAKA,EAAW,GAAK/uE,EAAK,IAAM+uE,EAAW,GAAK,GAAKA,EAAW,GAAK/uE,EAAK,IAA9F,CAIA,IAAI4sE,EAAal5E,KAAKw0E,YAClB97C,GAAUwgD,EAAW,GAAKA,EAAW,IAAM,EAE3CgC,EAAUl7E,KAAKg5E,gBAAgB,MAAOqC,EAAW,GAAK3iD,GAE1D14B,KAAKi1E,cAELiG,GAAWl7E,KAAKo7E,wBAOlBA,oBAAqB,WACnB,IAAIt/D,EAAQ9b,KAAKu0E,OACjBv0E,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,WACNuI,KAAMhI,KAAKiI,IACXuzE,WAAYx7E,KAAK+0E,cAAc5sE,GAC/BoM,MAAOuH,EAAM,GACbu+D,IAAKv+D,EAAM,MAOf45D,eAAgB,WAEd,IAAI1pE,EAQJ,GAPA7M,EAAKa,KAAKy7E,sBAAsB,SAAUC,GACxC,IAAK1vE,GAAQ0vE,EAAczwE,OAAQ,CACjC,IAAI5K,EAAWq7E,EAAc,GAAG5rD,MAAMxvB,iBACtC0L,EAAO3L,EAAS2P,SAAW3P,EAAS2P,eAInChE,EAAM,CACT,IAAIxK,EAAQxB,KAAKuG,IAAIylB,WACjB9f,EAASlM,KAAKuG,IAAI0lB,YACtBjgB,EAAO,CACLvG,EAAW,GAARjE,EACHkE,EAAY,GAATwG,EACH1K,MAAe,GAARA,EACP0K,OAAiB,GAATA,GAIZ,OAAOF,KAIX,SAAS4rE,EAAYC,GAGnB,IAAI5wE,EAAM,CACRxB,EAAG,IACHC,EAAG,IACHsgD,OAAQ,QACRwM,MAAO,UAET,OAAOvrD,EAAI4wE,GAGb,SAASK,EAAUpxE,GACjB,MAAkB,aAAXA,EAAwB,YAAc,YAG/C,IAAIvH,EAAW60E,EACf1xE,EAAOC,QAAUpD,G,uBCztBjB,IAAIqD,EAAS,EAAQ,QAEjB2b,EAAO,EAAQ,QAEfo9D,EAAQ,EAAQ,QAEhBr9D,EAAW,EAAQ,QAEnBE,EAAmB,EAAQ,QAE3B2xC,EAAmB,EAAQ,QAE3B7wD,EAAsB,EAAQ,QAoBlC,SAASC,EAAS2iB,EAAO05D,EAAO95E,EAAa+5E,EAAUp5D,GAKrD,IAFA,IAAI6jB,EAAQ,IAAIq1C,EAAME,GAEb5tE,EAAI,EAAGA,EAAIiU,EAAMjX,OAAQgD,IAChCq4B,EAAMw1C,QAAQl5E,EAAO0B,SACrB4d,EAAMjU,GAAG9F,GAAI+Z,EAAMjU,GAAGtB,KAAMsB,GAAIA,GAGlC,IAAI8tE,EAAe,GACfC,EAAa,GACbC,EAAY,EAEhB,IAAShuE,EAAI,EAAGA,EAAI2tE,EAAM3wE,OAAQgD,IAAK,CACrC,IAAIiuE,EAAON,EAAM3tE,GACblO,EAASm8E,EAAKn8E,OACdqS,EAAS8pE,EAAK9pE,OAEdk0B,EAAM61C,QAAQp8E,EAAQqS,EAAQ6pE,KAChCD,EAAWn7E,KAAKq7E,GAChBH,EAAal7E,KAAK+B,EAAO0B,SAAS43E,EAAK/zE,GAAIpI,EAAS,MAAQqS,IAC5D6pE,KAIJ,IACIje,EADA39D,EAAWyB,EAAYI,IAAI,oBAG/B,GAAiB,gBAAb7B,GAA2C,UAAbA,EAChC29D,EAAW1+D,EAAoB4iB,EAAOpgB,OACjC,CACL,IAAIs6E,EAAejsB,EAAiBjuD,IAAI7B,GACpCiJ,EAAkB8yE,GAAsC,SAAtBA,EAAa38E,MAAkB28E,EAAaj6E,YAAmB,GAIjGS,EAAOiwB,QAAQvpB,EAAiB,SAAW,GAC7CA,EAAgBkuD,OAAO,CAAC,UAG1B,IAAI6kB,EAAiB79D,EAAiB0D,EAAO,CAC3C5Y,gBAAiBA,IAEnB00D,EAAW,IAAIz/C,EAAK89D,EAAgBv6E,GACpCk8D,EAAS56C,SAASlB,GAGpB,IAAIo6D,EAAW,IAAI/9D,EAAK,CAAC,SAAUzc,GAkBnC,OAjBAw6E,EAASl5D,SAAS44D,EAAYD,GAC9Bt5D,GAAcA,EAAWu7C,EAAUse,GACnCh+D,EAAS,CACP+E,SAAU26C,EACV16C,OAAQgjB,EACR/iB,WAAY,QACZg5D,MAAO,CACL/8D,KAAMw+C,EACNz2C,KAAM+0D,GAERE,UAAW,CACTh9D,KAAM,OACN+H,KAAM,cAIV+e,EAAM/9B,SACC+9B,EAGT5jC,EAAOC,QAAUpD,G,uBCrGjB,IAAIqD,EAAS,EAAQ,QAEjB65E,EAAgB,EAAQ,QAExBtd,EAAgB,EAAQ,QAExBF,EAAa,EAAQ,QAErB/O,EAAc,EAAQ,QAEtBwsB,EAAiBxsB,EAAYwsB,eAC7Bz5B,EAAkBiN,EAAYjN,gBAE9BkN,EAAmB,EAAQ,QAE3BwsB,EAAW,EAAQ,QAqBvB,SAASC,EAAMC,EAAY/8E,EAASyG,GAClCvG,KAAKyI,OAASo0E,EAMd78E,KAAKmC,WAAa,GAClBnC,KAAK88E,eAAiBl6E,EAAOqE,IAAI41E,EAAW92B,sBAAsB,SAAUg3B,EAAgB7sE,GAC1F,IAAIH,EAAM,aAAeG,EACrB8sE,EAAgB,IAAIP,EAAc1sE,EAAwC,QAAnCgtE,EAAe76E,IAAI,YAAwB,IAAIy6E,EAAa,IAAIxd,GAM3G,OALA6d,EAAcrwE,KAAOowE,EAAe76E,IAAI,QAExC86E,EAAcltD,MAAQitD,EACtBA,EAAertE,KAAOstE,EACtBh9E,KAAKmC,WAAWtB,KAAKkP,GACditE,IACNh9E,MACHA,KAAKi9E,OAAOJ,EAAYt2E,GAMxBvG,KAAKo+C,GAMLp+C,KAAKq+C,GAMLr+C,KAAK6T,EAML7T,KAAK6hD,GAML7hD,KAAK8hD,WAGP86B,EAAM9uE,UAAUovE,iBAAmB,WACjC,OAAOl9E,KAAK88E,gBAGdF,EAAM9uE,UAAU/B,YAAc,SAAU4B,EAAOwvE,GAC7C,IAAIH,EAAgBh9E,KAAK88E,eAAeK,GACxC,OAAOn9E,KAAKo9E,aAAaJ,EAAcxsE,YAAY7C,GAAQwvE,IAG7DP,EAAM9uE,UAAUsvE,aAAe,SAAU/wE,EAAO8wE,GAC9C,IAAIH,EAAgBh9E,KAAK88E,eAAeK,GACpC3qB,EAAQwqB,EAAcxqB,MACtB/sD,EAAIzF,KAAKo+C,GAAK/xC,EAAQR,KAAK04C,IAAIiO,GAC/B9sD,EAAI1F,KAAKq+C,GAAKhyC,EAAQR,KAAKw4C,IAAImO,GACnC,MAAO,CAAC/sD,EAAGC,IAGbk3E,EAAM9uE,UAAUuvE,YAAc,SAAUl/B,GACtC,IAAIjsC,EAAKisC,EAAG,GAAKn+C,KAAKo+C,GAClBjsC,EAAKgsC,EAAG,GAAKn+C,KAAKq+C,GAClB2H,EAASn6C,KAAK4sB,KAAKvmB,EAAKA,EAAKC,EAAKA,GACtCD,GAAM8zC,EACN7zC,GAAM6zC,EAQN,IAPA,IAIIs3B,EAJAC,EAAS1xE,KAAKk5B,OAAO5yB,EAAID,GAGzBsrE,EAAgBzqE,IAEhB0qE,GAAkB,EAEbxvE,EAAI,EAAGA,EAAIjO,KAAK88E,eAAe7xE,OAAQgD,IAAK,CACnD,IAAI+uE,EAAgBh9E,KAAK88E,eAAe7uE,GACpCgsB,EAAOpuB,KAAKC,IAAIyxE,EAASP,EAAcxqB,OAEvCv4B,EAAOujD,IACTF,EAAcN,EACdS,EAAiBxvE,EACjBuvE,EAAgBvjD,GAIpB,MAAO,CAACwjD,IAAkBH,GAAeA,EAAYI,YAAY13B,MAGnE42B,EAAM9uE,UAAUmvE,OAAS,SAAUJ,EAAYt2E,GAC7C,IAAImyB,EAASmkD,EAAW36E,IAAI,UACxBy7E,EAAYp3E,EAAIylB,WAChB4xD,EAAar3E,EAAI0lB,YACjB4xD,EAAWhyE,KAAK6E,IAAIitE,EAAWC,GAAc,EACjD59E,KAAKo+C,GAAK6gB,EAAWzqC,aAAakE,EAAO,GAAIilD,GAC7C39E,KAAKq+C,GAAK4gB,EAAWzqC,aAAakE,EAAO,GAAIklD,GAC7C59E,KAAK8hD,WAAa+6B,EAAW36E,IAAI,cAAgB2J,KAAK+E,GAAK,IAE3D,IAAIo1C,EAAS62B,EAAW36E,IAAI,UAEN,kBAAX8jD,GAAyC,kBAAXA,IACvCA,EAAS,CAAC,EAAGA,IAGfhmD,KAAK6hD,GAAKod,EAAWzqC,aAAawxB,EAAO,GAAI63B,GAC7C79E,KAAK6T,EAAIorD,EAAWzqC,aAAawxB,EAAO,GAAI63B,GAC5Cj7E,EAAOzD,KAAKa,KAAK88E,gBAAgB,SAAUE,EAAe9sE,GACxD8sE,EAAch6B,UAAUhjD,KAAK6hD,GAAI7hD,KAAK6T,GACtC,IAAI2+C,EAAQxyD,KAAK8hD,WAAa5xC,EAAMrE,KAAK+E,GAAK,EAAI5Q,KAAK88E,eAAe7xE,OAEtEunD,EAAQ3mD,KAAKk5B,MAAMl5B,KAAKw4C,IAAImO,GAAQ3mD,KAAK04C,IAAIiO,IAC7CwqB,EAAcxqB,MAAQA,IACrBxyD,OAGL48E,EAAM9uE,UAAUvF,OAAS,SAAUzI,EAASyG,GAC1C,IAAIu3E,EAAgB99E,KAAK88E,eACrBD,EAAa78E,KAAKyI,OACtB7F,EAAOzD,KAAK2+E,GAAe,SAAUd,GACnCA,EAAcvuE,MAAMu0C,UAAUjwC,KAAWA,QAE3CjT,EAAQumC,iBAAiB,SAAS,SAAU03C,EAAa7tE,GACvD,GAA4C,UAAxC6tE,EAAY77E,IAAI,qBAAmCpC,EAAQmC,aAAa,QAAS87E,EAAY77E,IAAI,iBAAmB26E,EAAxH,CAIA,IAAIt8E,EAAOw9E,EAAYv9E,UACvBoC,EAAOzD,KAAK2+E,GAAe,SAAUd,GACnCA,EAAcvuE,MAAM26C,oBAAoB7oD,EAAMA,EAAKyJ,aAAagzE,EAAcjtE,YAE/E/P,MACH,IAAIukB,EAAcs4D,EAAW36E,IAAI,eAEjC,SAAS87E,EAAiB92D,GACxB,IAAI+2D,EAAQpyE,KAAKqyE,IAAI,GAAIryE,KAAK+N,MAAM/N,KAAKomB,IAAI/K,GAAYrb,KAAKsyE,OAE1DC,EAAIl3D,EAAW+2D,EASnB,OAPU,IAANG,EACFA,EAAI,EAGJA,GAAK,EAGAA,EAAIH,EAIbr7E,EAAOzD,KAAK2+E,GAAe,SAAUd,EAAe9sE,GAClD,IAAImuE,EAAY3B,EAAeM,EAAcvuE,MAAOuuE,EAAcltD,OAAO+H,OACzEorB,EAAgB+5B,EAAcvuE,MAAOuuE,EAAcltD,OACnD,IAAIvgB,EAAYytE,EAAcltD,MAC1BrhB,EAAQuuE,EAAcvuE,MACtB6vE,EAAW/uE,EAAUmnD,SACrB6nB,EAAWhvE,EAAUsnD,SACrB3vC,EAAWzY,EAAM+vE,cAErB,GAAgB,MAAZF,GAAgC,MAAZC,EAEtB9vE,EAAMu0C,WAAWs7B,GAAWC,GAC5B9vE,EAAMgwE,aAAaF,EAAWD,GAAY/5D,QACrC,GAAgB,MAAZ+5D,EAAkB,CAG3B,GACE7tE,EAAM6tE,EAAWp3D,EAAW3C,EAC5B9V,EAAMu0C,WAAWs7B,EAAU7tE,GAG3BhC,EAAMgwE,YAAYv3D,GAClBA,EAAW82D,EAAiB92D,SACrBzW,EAAM4tE,EAAU,IAAM1kD,SAASlpB,IAAQkpB,SAAS0kD,EAAU,UAC9D,GAAgB,MAAZE,EAAkB,CAG3B,GACE7tE,EAAM6tE,EAAWr3D,EAAW3C,EAC5B9V,EAAMu0C,UAAUtyC,GAAM6tE,GACtB9vE,EAAMgwE,YAAYv3D,GAClBA,EAAW82D,EAAiB92D,SACrBxW,EAAM2tE,EAAU,IAAM1kD,SAASjpB,IAAQipB,SAAS0kD,EAAU,SAC9D,CACL,IAAIK,EAAmBjwE,EAAMw6C,WAAWh+C,OAAS,EAE7CyzE,EAAmBn6D,IACrB2C,EAAW82D,EAAiB92D,IAI9B,IAAIzW,EAAM5E,KAAKyzD,KAAK+e,EAAU,GAAKn3D,GAAYA,EAC3CxW,EAAMuuD,EAAWt1C,MAAMlZ,EAAMyW,EAAW3C,GAC5C9V,EAAMu0C,UAAUtyC,EAAKD,GACrBhC,EAAMgwE,YAAYv3D,QAUxB01D,EAAMz6E,WAAa,GAEnBy6E,EAAMh5C,OAAS,SAAU9jC,EAASyG,GAChC,IAAIo4E,EAAY,GAYhB,OAXA7+E,EAAQs+B,cAAc,SAAS,SAAUy+C,GACvC,IAAI+B,EAAQ,IAAIhC,EAAMC,EAAY/8E,EAASyG,GAC3Co4E,EAAU99E,KAAK+9E,GACf/B,EAAWv8E,iBAAmBs+E,KAEhC9+E,EAAQumC,iBAAiB,SAAS,SAAU03C,GACE,UAAxCA,EAAY77E,IAAI,sBAElB67E,EAAYz9E,iBAAmBq+E,EAAUZ,EAAY77E,IAAI,eAAiB,OAGvEy8E,GAGTxuB,EAAiBjJ,SAAS,QAAS01B,GACnC,IAAIr9E,EAAWq9E,EACfl6E,EAAOC,QAAUpD,G,uBCzQjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAIy2E,EAAiB,EAAQ,QAEzB3lC,EAAe,EAAQ,QAEvB4lC,EAAiB,EAAQ,QAEzBC,EAAa,EAAQ,QAErBpvB,EAAe,EAAQ,QAEvBqvB,EAAiB,EAAQ,QAEzBC,EAAc,EAAQ,QAEtBC,EAAa,EAAQ,QAoBzB92E,EAAQ+2E,kBAAkBN,GAC1Bz2E,EAAQ2mB,eAAemqB,EAAa,QAAS,SAAU,OACvD9wC,EAAQ2mB,eAAe+vD,GACvB12E,EAAQ2mB,eAAegwD,GACvB32E,EAAQyrB,eAAe87B,GACvBvnD,EAAQyrB,eAAezrB,EAAQ8sC,SAASC,OAAOiqC,kBAAmBJ,GAClE52E,EAAQyrB,eAAeorD,GAEvB72E,EAAQi3E,yBAAyB,YAAa,CAC5Cz7C,OAAQs7C,K,qBCnDV,IAAI17D,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAEdswB,EAAY,EAAQ,QAEpBrwB,EAAa,EAAQ,QAErBu2D,EAAkB,EAAQ,QAoB1BC,EAAYx2D,EAAWw2D,UACvB3hB,EAAa70C,EAAW60C,WAE5B,SAAS4hB,EAAUhwE,GACjB4pC,EAAU1wC,gBAAgB8G,EAAK,QAAS,CAAC,SAG3C,IAAIk6C,EAActhD,EAAQ48C,qBAAqB,CAC7CvlD,KAAM,SACNC,aAAc,CAAC,SAAU,OAAQ,QAAS,OAK1CsJ,KAAM,SAAUnJ,EAAQq/C,EAAap/C,GACnCE,KAAKy/E,qBAAqB5/E,EAAQC,GAElCE,KAAK0/E,aAAa7/E,EAAQC,GAAS,GAAO,IAM5Cs9C,mBAAoB,WAClB,GAAIt0B,EAAItJ,KACN,OAAO,EAGT,IAAImgE,EAAa3/E,KAAK4/E,aACtB,OAAO5/E,KAAKw8C,WAAW,cAAgBmjC,GAAcA,EAAWviC,sBAMlE0lB,YAAa,SAAU+c,EAAQ//E,GAC7BE,KAAK0/E,aAAaG,EAAQ//E,GAAS,GAAO,IAE5C4/E,aAAc,SAAUG,EAAQ//E,EAASggF,EAAep7D,GACtD,IAAIglC,EAAc1pD,KAAK+N,YACnBgyE,EAAgB//E,KAAKi9B,SAAW,QAE/B6iD,GACHhgF,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIk+E,EAAYl+E,EAAYI,IAAIlC,KAAKi9B,UAAU,GAC3CgjD,EAAcn+E,EAAYi+E,GAEzBC,GAAcA,EAAUz/E,MAKxB0/E,EAyBHA,EAAYP,aAAaM,EAAWlgF,GAAS,IAxBzC4kB,GAEF86D,EAAUQ,GAGZp9E,EAAOzD,KAAK6gF,EAAUz/E,MAAM,SAAUiE,GAEhCA,aAAgBuT,OAClBynE,EAAUh7E,EAAK,IACfg7E,EAAUh7E,EAAK,KAEfg7E,EAAUh7E,MAGdy7E,EAAc,IAAIv2B,EAAYs2B,EAAWhgF,KAAMF,GAC/C8C,EAAOpD,OAAOygF,EAAa,CACzBhjD,SAAUj9B,KAAKi9B,SAEf8Z,YAAaj1C,EAAYi1C,YACzBpqC,KAAM7K,EAAY6K,KAClBmzE,eAAe,IAEjBG,EAAYL,aAAe99E,GAK7BA,EAAYi+E,GAAiBE,GAhC3Bn+E,EAAYi+E,GAAiB,OAiC9B//E,OAGPy+D,cAAe,SAAU79D,GACvB,IAAIL,EAAOP,KAAKQ,UACZmN,EAAQ3N,KAAKkgF,YAAYt/E,GACzBu/E,EAAiBv9E,EAAOogB,QAAQrV,GAAS/K,EAAOqE,IAAI0G,EAAO4xE,GAAW1lE,KAAK,MAAQ0lE,EAAU5xE,GAC7FhB,EAAOpM,EAAK08C,QAAQr8C,GACpBw/E,EAAOxiB,EAAW59D,KAAK2M,MAkB3B,OAhBa,MAATgB,GAAiBhB,KACnByzE,GAAQ,UAGNzzE,IACFyzE,GAAQxiB,EAAWjxD,GAEN,MAATgB,IACFyyE,GAAQ,QAIC,MAATzyE,IACFyyE,GAAQxiB,EAAWuiB,IAGdC,GAET5/E,QAAS,WACP,OAAOR,KAAK49C,OAEd2d,QAAS,SAAUh7D,GACjBP,KAAK49C,MAAQr9C,KAGjBqC,EAAOyM,MAAMq6C,EAAa41B,GAC1B,IAAI//E,EAAWmqD,EACfhnD,EAAOC,QAAUpD,G,uBCxJjB,IAAI0D,EAAS,EAAQ,QAEjB4gB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aACvBm/C,EAAY9vD,EAAQ8vD,UAoBxB,SAAS9N,EAAY/jE,EAAayE,GAChC,OAAOtD,EAAOk/C,cAAcrgD,EAAYgkE,qBAAsB,CAC5DtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAIhB,SAASo0D,EAAiB9/E,EAAMsK,GAQ9B,IAPA,IAAId,EAAWxJ,EAAKyJ,aAAa,SAC7Bs2E,EAAW//E,EAAKggF,SAASx2E,GAAU,SAAU0B,GAC/C,OAAOA,KAELhL,EAAU,GACV+/E,EAAuB,cAAT31E,EAEToD,EAAI,EAAGqK,EAAM/X,EAAK4hB,QAASlU,EAAIqK,EAAKrK,IAC3CxN,EAAQwN,GAAKA,EAYf,MARoB,oBAATpD,EACTpK,EAAQoK,KAAKA,GACK,SAATA,GACTpK,EAAQoK,MAAK,SAAUwM,EAAGC,GACxB,OAAOkpE,EAAcF,EAASjpE,GAAKipE,EAAShpE,GAAKgpE,EAAShpE,GAAKgpE,EAASjpE,MAIrE5W,EAGT,SAASiuD,EAAYnuD,GACnBA,EAAKpB,MAAK,SAAU+Q,GAClB,IAOIrK,EACA46E,EACAC,EACA9xB,EAVAztC,EAAY5gB,EAAK6gB,aAAalR,GAC9BgwB,EAAa/e,EAAUF,SAAS,SAChC0/D,EAAgBzgD,EAAWh+B,IAAI,YAC/B4sD,EAAiB3tC,EAAUF,SAAS,aACpChe,EAAS1C,EAAKygB,cAAc9Q,GAC5BqH,EAAStU,EAAOsU,OAChBqpE,EAAkC,UAAlBD,GAA+C,WAAlBA,GAAgD,WAAlBA,GAAgD,eAAlBA,GAAoD,gBAAlBA,EAM/I,GAAIC,EACoB,eAAlBD,GACFF,GAASlpE,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EAAI,EAC5CmpE,GAASnpE,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACxC1R,EAAY,QACe,gBAAlB86E,GACTF,GAASlpE,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EAAI,EAC5CmpE,GAASnpE,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACxC1R,EAAY,UAEZ46E,GAASlpE,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACtEmpE,GAASnpE,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACtE1R,EAAY,UAGd+oD,EAAa,CAAC,CAAC6xB,EAAOC,GAAQ,CAACD,EAAOC,QACjC,CACL,IAAItmB,EACAC,EACAC,EACAumB,EAAe/xB,EAAe5sD,IAAI,UAEhB,SAAlBy+E,GAEFvmB,GAAM7iD,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC8iD,GAAM9iD,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,SACe,UAAlB86E,GAETvmB,GAAM7iD,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC8iD,GAAM9iD,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,QACe,aAAlB86E,GAETvmB,EAAK7iD,EAAO,GAAG,GACf8iD,EAAK9iD,EAAO,GAAG,GACf+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,OACe,gBAAlB86E,GAETvmB,EAAK7iD,EAAO,GAAG,GACf8iD,EAAK9iD,EAAO,GAAG,GACf+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,UACe,YAAlB86E,GAETvmB,EAAK7iD,EAAO,GAAG,GACf8iD,EAAK9iD,EAAO,GAAG,GACf+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,SACe,eAAlB86E,GAETvmB,EAAK7iD,EAAO,GAAG,GACf8iD,EAAK9iD,EAAO,GAAG,GACf+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,UAGZu0D,GAAM7iD,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC8iD,GAAM9iD,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC+iD,EAAKF,EAAKymB,EACVJ,EAAQnmB,EAAK,EACbz0D,EAAY,QAGd,IAAI00D,EAAKF,EACTzL,EAAa,CAAC,CAACwL,EAAIC,GAAK,CAACC,EAAIC,IAC7BmmB,EAAQnmB,EAGVt3D,EAAO9B,MAAQ,CACbytD,WAAYA,EACZnpD,EAAGg7E,EACH/6E,EAAGg7E,EACHzxB,cAAe,SACfppD,UAAWA,EACXmpD,OAAQ4xB,MAKd,SAASrhF,EAASO,EAASyG,EAAK23B,GAC9Bp+B,EAAQumC,iBAAiB,UAAU,SAAUvkC,GAC3C,IAAIvB,EAAOuB,EAAYtB,UACnBuJ,EAAWxJ,EAAKyJ,aAAa,SAC7Ba,EAAO/I,EAAYI,IAAI,QACvB4+E,EAAWjb,EAAY/jE,EAAayE,GACpC9F,EAAU4/E,EAAiB9/E,EAAMsK,GACjCk2E,EAAa,CAACvsD,EAAa1yB,EAAYI,IAAI,WAAY4+E,EAASt/E,OAAQgzB,EAAa1yB,EAAYI,IAAI,WAAY4+E,EAASt/E,QAC1H8jB,EAAa/kB,EAAKq2E,cAAc7sE,GAChC2G,EAAM5O,EAAYI,IAAI,OACtBuO,EAAM3O,EAAYI,IAAI,OAEf,MAAPwO,IACFA,EAAM7E,KAAK6E,IAAI4U,EAAW,GAAI,IAGrB,MAAP7U,IACFA,EAAM6U,EAAW,IAGnB,IAAIva,EAAcjJ,EAAYI,IAAI,eAC9B4I,EAAMhJ,EAAYI,IAAI,OACtBiiB,GAAc28D,EAAS50E,OAASpB,GAAOvK,EAAK4hB,QAAU,IAAM5hB,EAAK4hB,QACjEzc,EAAIo7E,EAASp7E,EAEbs7E,EAAgB,SAAU9wE,EAAK+wE,GAEjC,IAEIjmB,EAFAvvD,EAAMlL,EAAK2B,IAAI6H,EAAUmG,IAAQ,EACjCgU,EAAYyvD,EAAUloE,EAAK,CAACiF,EAAKD,GAAMswE,GAAY,GAGvD,OAAQh2E,GACN,IAAK,OACHiwD,EAAK8lB,EAASr7E,EACd,MAEF,IAAK,SACHu1D,EAAK8lB,EAASr7E,GAAKq7E,EAASt/E,MAAQ0iB,GAAa,EACjD,MAEF,IAAK,QACH82C,EAAK8lB,EAASr7E,EAAIq7E,EAASt/E,MAAQ0iB,EACnC,MAGJ,MAAO,CAAC,CAAC82C,EAAIimB,GAAO,CAACjmB,EAAK92C,EAAW+8D,KAG1B,cAATp2E,IAEFsZ,GAAcA,EACdrZ,GAAOA,EACPpF,GAAKo7E,EAAS50E,OACdzL,EAAUA,EAAQ4G,WAGpB,IAAK,IAAI4G,EAAI,EAAGA,EAAIxN,EAAQwK,OAAQgD,IAAK,CACvC,IAAIiC,EAAMzP,EAAQwN,GACdizE,EAAUzgF,EAAQwN,EAAI,GACtBkT,EAAY5gB,EAAK6gB,aAAalR,GAC9BhE,EAASiV,EAAUjf,IAAI,oBAEb,MAAVgK,EACFA,EAASiY,GAETjY,EAASsoB,EAAatoB,EAAQ40E,EAAS50E,QAE1B,cAATrB,IACFqB,GAAUA,IAId,IAAIqI,EAAQysE,EAAc9wE,EAAKxK,GAC3B20E,EAAM2G,EAAcE,EAASx7E,EAAIwG,GACrCxG,GAAKwG,EAASpB,EACdvK,EAAKugB,cAAc5Q,EAAK,CACtBqH,OAAQhD,EAAMijD,OAAO6iB,EAAI/yE,QAAQD,aAIrCqnD,EAAYnuD,MAIhBmC,EAAOC,QAAUpD,G,uBCnPjB,IAAI6I,EAAU,EAAQ,QAElB+4E,EAAQ,EAAQ,QAEhBzgD,EAAUygD,EAAMzgD,QAEhB59B,EAAU,EAAQ,QAElB5D,EAAQ,EAAQ,QAEhB2F,EAAO3F,EAAM2F,KACbrF,EAASN,EAAMM,OAEf4hF,EAAa,EAAQ,QAoBrB7hF,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,aACNuJ,KAAM,WACJhJ,KAAKqhF,QAAU,IAEjB/vE,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIhG,EAAOuB,EAAYtB,UACnB8C,EAAQtD,KAAKsD,MACbg+E,EAAcx/E,EAAYy/E,iBAC1B1jB,EAAat9D,EAAKwgB,UAAU,cAC5B/U,EAAO6xD,EAAW7xD,KAClBi5C,EAAc4Y,EAAW5Y,YAG7B,SAASu8B,EAAUh9E,GACjB,OAAOA,EAAKmI,KAHdrJ,EAAM0c,KAAK,WAAY,CAAC,EAAGhU,EAAKtG,EAAIu/C,EAAY,KAMhD,IAAIw8B,EAAa,IAAIL,EAAWphF,KAAK0hF,eAAiB,GAAIJ,EAAaE,EAAWA,GAC9EG,EAAkB,GAGtB,SAASC,EAAQ/sB,EAAQ3kD,EAAKuuC,GAC5B,IAAIojC,EAAkB7hF,KAAKqhF,QAE3B,GAAe,WAAXxsB,EAAJ,CAUA,IALA,IAEIj9C,EAaAmhC,EACApzC,EAhBAm8E,EAAU,GACVC,EAAU,GAEVthF,EAAU6gF,EAAYpxE,GAAKzP,QAEtB+X,EAAI,EAAGA,EAAI/X,EAAQwK,OAAQuN,IAAK,CACvC,IAAIvV,EAAS1C,EAAKygB,cAAcvgB,EAAQ+X,IACpC/S,EAAIxC,EAAOwC,EACXw1D,EAAKh4D,EAAOg4D,GACZv1D,EAAIzC,EAAOyC,EACfo8E,EAAQjhF,KAAK,CAAC4E,EAAGw1D,IACjB8mB,EAAQlhF,KAAK,CAAC4E,EAAGw1D,EAAKv1D,IACtBkS,EAAQrX,EAAKohB,cAAclhB,EAAQ+X,GAAI,SAKzC,IAAIwpE,EAAazhF,EAAKygB,cAAcvgB,EAAQ,IACxC0gB,EAAY5gB,EAAK6gB,aAAa3gB,EAAQ+X,EAAI,IAC1C0nB,EAAa/e,EAAUF,SAAS,SAChCghE,EAAS/hD,EAAWh+B,IAAI,UAE5B,GAAe,QAAX2yD,EAAkB,CACpB,IAAIqtB,EAAaP,EAAgBzxE,GAAO,IAAIpN,EAAQ6B,MACpDo0C,EAAU,IAAIrY,EAAQ,CACpBlvB,MAAO,CACL+F,OAAQuqE,EACRK,gBAAiBJ,EACjBngF,OAAQ,GACRwgF,gBAAiB,GACjBC,kBAAkB,GAEpBjxE,GAAI,IAENzL,EAAO,IAAI7C,EAAQyC,KAAK,CACtBC,MAAO,CACLC,EAAGu8E,EAAWv8E,EAAIw8E,EAClBv8E,EAAGs8E,EAAW/mB,GAAK+mB,EAAWt8E,EAAI,KAGtCw8E,EAAW58E,IAAIyzC,GACfmpC,EAAW58E,IAAIK,GACfrC,EAAMgC,IAAI48E,GACVnpC,EAAQxO,YAAY+3C,EAAoBvpC,EAAQ9sC,kBAAmBnK,GAAa,WAC9Ei3C,EAAQpR,yBAEL,CACDu6C,EAAaL,EAAgBpjC,GACjC1F,EAAUmpC,EAAWpjD,QAAQ,GAC7Bn5B,EAAOu8E,EAAWpjD,QAAQ,GAC1Bx7B,EAAMgC,IAAI48E,GACVP,EAAgBzxE,GAAOgyE,EACvBp/E,EAAQk8B,YAAY+Z,EAAS,CAC3BvnC,MAAO,CACL+F,OAAQuqE,EACRK,gBAAiBJ,IAElBjgF,GACHgB,EAAQk8B,YAAYr5B,EAAM,CACxBH,MAAO,CACLC,EAAGu8E,EAAWv8E,EAAIw8E,EAClBv8E,EAAGs8E,EAAW/mB,GAAK+mB,EAAWt8E,EAAI,IAEnC5D,GAGL,IAAIk+B,EAAsB7e,EAAUF,SAAS,sBACzC8e,EAAiB5e,EAAUF,SAAS,aACxCne,EAAQmqE,aAAatnE,EAAKH,MAAO06B,EAAY,CAC3Cv6B,KAAMu6B,EAAWh+B,IAAI,QAAUJ,EAAY8yD,kBAAkBn0D,EAAQ+X,EAAI,GAAI,WAAajY,EAAK08C,QAAQx8C,EAAQ+X,EAAI,IAAM,KACzH5S,kBAAmB,WAErBmzC,EAAQlY,SAASrhC,EAAO,CACtBkS,KAAMkG,GACLmoB,EAAepuB,aAAa,CAAC,YAChC7O,EAAQq/B,cAAc4W,EAAS/Y,EAAoBruB,qBA/EjDrO,EAAM++B,OAAOw/C,EAAgB3xE,IANjCuxE,EAAWn8E,IAAIT,EAAK+8E,EAAS5hF,KAAM,QAAQuI,OAAO1D,EAAK+8E,EAAS5hF,KAAM,WAAWqiC,OAAOx9B,EAAK+8E,EAAS5hF,KAAM,WAAW0+C,UAwFvH1+C,KAAK0hF,cAAgBJ,EACrBthF,KAAKqhF,QAAUM,GAEjBpzD,QAAS,eAIX,SAAS+zD,EAAoBt2E,EAAMlK,EAAaqc,GAC9C,IAAIokE,EAAS,IAAIz/E,EAAQyO,KAAK,CAC5BC,MAAO,CACL/L,EAAGuG,EAAKvG,EAAI,GACZC,EAAGsG,EAAKtG,EAAI,GACZlE,MAAO,EACP0K,OAAQF,EAAKE,OAAS,MAS1B,OANApJ,EAAQk4C,UAAUunC,EAAQ,CACxB/wE,MAAO,CACLhQ,MAAOwK,EAAKxK,MAAQ,GACpB0K,OAAQF,EAAKE,OAAS,KAEvBpK,EAAaqc,GACTokE,EAGT7/E,EAAOC,QAAUpD,G,uBCtKjB,IAAIqD,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QAoBpBj6C,EAAOyD,EAAOzD,KACd8mB,EAAWrjB,EAAOqjB,SAClBu8D,EAAkB,CAAC,YAAa,YAAa,YAAa,YAAa,aAAc,QAAS,aAElG,SAASC,EAAmBjzE,GAC1B,IAAIkzE,EAAelzE,GAAOA,EAAItE,UAE9B,GAAKw3E,EAIL,IAAK,IAAIz0E,EAAI,EAAGqK,EAAMkqE,EAAgBv3E,OAAQgD,EAAIqK,EAAKrK,IAAK,CAC1D,IAAI00E,EAAYH,EAAgBv0E,GAC5B20E,EAAqBF,EAAaG,OAClCC,EAAuBJ,EAAahhF,SAEpCkhF,GAAsBA,EAAmBD,KAC3CnzE,EAAImzE,GAAanzE,EAAImzE,IAAc,GAE9BnzE,EAAImzE,GAAWE,OAGlBjgF,EAAOie,MAAMrR,EAAImzE,GAAWE,OAAQD,EAAmBD,IAFvDnzE,EAAImzE,GAAWE,OAASD,EAAmBD,GAK7CC,EAAmBD,GAAa,MAG9BG,GAAwBA,EAAqBH,KAC/CnzE,EAAImzE,GAAanzE,EAAImzE,IAAc,GAE9BnzE,EAAImzE,GAAWjhF,SAGlBkB,EAAOie,MAAMrR,EAAImzE,GAAWjhF,SAAUohF,EAAqBH,IAF3DnzE,EAAImzE,GAAWjhF,SAAWohF,EAAqBH,GAKjDG,EAAqBH,GAAa,OAKxC,SAASI,EAAsBvzE,EAAKwzE,EAASC,GAC3C,GAAIzzE,GAAOA,EAAIwzE,KAAaxzE,EAAIwzE,GAASH,QAAUrzE,EAAIwzE,GAASthF,UAAW,CACzE,IAAIwhF,EAAY1zE,EAAIwzE,GAASH,OACzBhnC,EAAcrsC,EAAIwzE,GAASthF,SAE3BwhF,IAEED,GACFzzE,EAAIwzE,GAASH,OAASrzE,EAAIwzE,GAASthF,SAAW,KAC9CkB,EAAO6O,SAASjC,EAAIwzE,GAAUE,IAE9B1zE,EAAIwzE,GAAWE,GAIfrnC,IACFrsC,EAAI9N,SAAW8N,EAAI9N,UAAY,GAC/B8N,EAAI9N,SAASshF,GAAWnnC,IAK9B,SAASsnC,EAAsB3zE,GAC7BuzE,EAAsBvzE,EAAK,aAC3BuzE,EAAsBvzE,EAAK,aAC3BuzE,EAAsBvzE,EAAK,aAC3BuzE,EAAsBvzE,EAAK,SAC3BuzE,EAAsBvzE,EAAK,aAE3BuzE,EAAsBvzE,EAAK,cAE3BuzE,EAAsBvzE,EAAK,aAG7B,SAAS4zE,EAAgB5zE,EAAK6K,GAE5B,IAAIgpE,EAAiBp9D,EAASzW,IAAQA,EAAI6K,GACtCgzD,EAAYpnD,EAASo9D,IAAmBA,EAAehW,UAE3D,GAAIA,EACF,IAAK,IAAIp/D,EAAI,EAAGqK,EAAM8gC,EAAUkqC,mBAAmBr4E,OAAQgD,EAAIqK,EAAKrK,IAAK,CACnEoM,EAAW++B,EAAUkqC,mBAAmBr1E,GAExCo/D,EAAUtwD,eAAe1C,KAC3BgpE,EAAehpE,GAAYgzD,EAAUhzD,KAM7C,SAASkpE,EAAsB/zE,GACzBA,IACF2zE,EAAsB3zE,GACtB4zE,EAAgB5zE,EAAK,SACrBA,EAAI9N,UAAY0hF,EAAgB5zE,EAAI9N,SAAU,UAIlD,SAAS8hF,EAAcC,GACrB,GAAKx9D,EAASw9D,GAAd,CAIAhB,EAAmBgB,GACnBN,EAAsBM,GACtBL,EAAgBK,EAAW,SAE3BL,EAAgBK,EAAW,cAE3BL,EAAgBK,EAAW,aAEvBA,EAAU/hF,WACZ0hF,EAAgBK,EAAU/hF,SAAU,SAEpC0hF,EAAgBK,EAAU/hF,SAAU,cAEpC0hF,EAAgBK,EAAU/hF,SAAU,cAGtC,IAAIgiF,EAAYD,EAAUC,UAEtBA,IACFjB,EAAmBiB,GACnBH,EAAsBG,IAGxB,IAAIC,EAAWF,EAAUE,SAErBA,IACFlB,EAAmBkB,GACnBJ,EAAsBI,IAGxB,IAAIC,EAAWH,EAAUG,SAErBA,GACFL,EAAsBK,GAGxB,IAAIrjF,EAAOkjF,EAAUljF,KAGrB,GAAuB,UAAnBkjF,EAAUhkF,KAAkB,CAC9Bc,EAAOA,GAAQkjF,EAAUvhE,MACzB,IAAIo6D,EAAWmH,EAAUI,OAASJ,EAAU7H,MAE5C,GAAIU,IAAa15E,EAAOuqC,aAAamvC,GACnC,IAAK,IAAIruE,EAAI,EAAGA,EAAIquE,EAASrxE,OAAQgD,IACnCs1E,EAAsBjH,EAASruE,IAInCrL,EAAOzD,KAAKskF,EAAUn/D,YAAY,SAAU9U,GAC1C2zE,EAAsB3zE,MAI1B,GAAIjP,IAASqC,EAAOuqC,aAAa5sC,GAC/B,IAAS0N,EAAI,EAAGA,EAAI1N,EAAK0K,OAAQgD,IAC/Bs1E,EAAsBhjF,EAAK0N,IAK3By1E,EAAYD,EAAUC,UAE1B,GAAIA,GAAaA,EAAUnjF,KACzB,KAAIujF,EAASJ,EAAUnjF,KAEvB,IAAS0N,EAAI,EAAGA,EAAI61E,EAAO74E,OAAQgD,IACjCs1E,EAAsBO,EAAO71E,IAK7B01E,EAAWF,EAAUE,SAEzB,GAAIA,GAAYA,EAASpjF,KACvB,KAAIwjF,EAASJ,EAASpjF,KAEtB,IAAS0N,EAAI,EAAGA,EAAI81E,EAAO94E,OAAQgD,IAC7BrL,EAAOogB,QAAQ+gE,EAAO91E,KACxBs1E,EAAsBQ,EAAO91E,GAAG,IAChCs1E,EAAsBQ,EAAO91E,GAAG,KAEhCs1E,EAAsBQ,EAAO91E,IAMZ,UAAnBw1E,EAAUhkF,MACZ2jF,EAAgBK,EAAW,aAC3BL,EAAgBK,EAAW,SAC3BL,EAAgBK,EAAW,WACC,YAAnBA,EAAUhkF,MACnBsjF,EAAsBU,EAAUO,WAAY,aAC5CphF,EAAOzD,KAAKskF,EAAU9gE,QAAQ,SAAUnT,GACtC2zE,EAAsB3zE,OAEI,SAAnBi0E,EAAUhkF,MACnB0jF,EAAsBM,EAAU3lB,SAKpC,SAASmmB,EAAMn8E,GACb,OAAOlF,EAAOogB,QAAQlb,GAAKA,EAAIA,EAAI,CAACA,GAAK,GAG3C,SAASo8E,EAAMp8E,GACb,OAAQlF,EAAOogB,QAAQlb,GAAKA,EAAE,GAAKA,IAAM,GAG3C,SAASvI,EAASM,EAAQskF,GACxBhlF,EAAK8kF,EAAMpkF,EAAO22E,SAAS,SAAUiN,GACnCx9D,EAASw9D,IAAcD,EAAcC,MAEvC,IAAIW,EAAO,CAAC,QAAS,QAAS,aAAc,YAAa,aAAc,eAAgB,SACvFD,GAAWC,EAAKvjF,KAAK,YAAa,eAAgB,UAAW,YAC7D1B,EAAKilF,GAAM,SAAUC,GACnBllF,EAAK8kF,EAAMpkF,EAAOwkF,KAAY,SAAUC,GAClCA,IACFlB,EAAgBkB,EAAS,aACzBlB,EAAgBkB,EAAQC,YAAa,gBAI3CplF,EAAK8kF,EAAMpkF,EAAO2kF,WAAW,SAAUC,GACrC,IAAI5hB,EAAsB4hB,GAAeA,EAAY5hB,oBACrDugB,EAAgBvgB,EAAqB,aACrCugB,EAAgBvgB,GAAuBA,EAAoB0hB,YAAa,YAE1EplF,EAAK8kF,EAAMpkF,EAAO6kF,WAAW,SAAUC,GACrC5B,EAAsB4B,EAAa,aACnCvB,EAAgBuB,EAAa,YAC7BvB,EAAgBuB,EAAa,cAC7BvB,EAAgBuB,EAAa,gBAG/BxlF,EAAK8kF,EAAMpkF,EAAO++E,QAAQ,SAAUgG,GAClCxB,EAAgBwB,EAAU,WAE5BzlF,EAAK8kF,EAAMpkF,EAAO2+B,MAAM,SAAUqmD,GAC5B5+D,EAAS4+D,KACXtB,EAAsBsB,GACtB1lF,EAAK8kF,EAAMY,EAAOx3E,UAAU,SAAUy3E,GACpCvB,EAAsBuB,UAI5B3lF,EAAK8kF,EAAMpkF,EAAOklF,WAAW,SAAUC,GACrCzB,EAAsByB,GACtBjC,EAAsBiC,EAAa,SACnCjC,EAAsBiC,EAAa,aACnCjC,EAAsBiC,EAAa,gBAAgB,GACnD,IAAIzkF,EAAOykF,EAAYzkF,KACvBqC,EAAOogB,QAAQziB,IAASqC,EAAOzD,KAAKoB,GAAM,SAAUiE,GAC9C5B,EAAOqjB,SAASzhB,KAClBu+E,EAAsBv+E,EAAM,SAC5Bu+E,EAAsBv+E,EAAM,oBAIlCrF,EAAK8kF,EAAMpkF,EAAOolF,UAAU,SAAUC,GACpCnC,EAAsBmC,EAAY,aAClC/lF,EAAK+lF,EAAWC,SAAS,SAAUC,GACjCrC,EAAsBqC,EAAY,mBAGtChC,EAAgBc,EAAMrkF,EAAO0kF,aAAc,SAC3CnB,EAAgBc,EAAMrkF,EAAO8pD,SAAS46B,YAAa,SAGrD7hF,EAAOC,QAAUpD,G,uBC1SjB,IAAIqD,EAAS,EAAQ,QAsBrB,SAASrD,EAAS8lF,GAEhB,IAAK,IAAIp3E,EAAI,EAAGA,EAAIo3E,EAAWp6E,OAAQgD,IAChCo3E,EAAWp3E,GAAG,KACjBo3E,EAAWp3E,GAAG,GAAKo3E,EAAWp3E,GAAG,IAIrC,OAAO,SAAU6hB,EAAOw1D,EAAUC,GAGhC,IAFA,IAAI//E,EAAQ,GAEHyI,EAAI,EAAGA,EAAIo3E,EAAWp6E,OAAQgD,IAAK,CAC1C,IAAIoM,EAAWgrE,EAAWp3E,GAAG,GAE7B,KAAIq3E,GAAY1iF,EAAOiwB,QAAQyyD,EAAUjrE,IAAa,GAAKkrE,GAAY3iF,EAAOiwB,QAAQ0yD,EAAUlrE,GAAY,GAA5G,CAIA,IAAI5O,EAAMqkB,EAAM0sB,WAAWniC,GAEhB,MAAP5O,IACFjG,EAAM6/E,EAAWp3E,GAAG,IAAMxC,IAI9B,OAAOjG,GAIX9C,EAAOC,QAAUpD,G,uBCnDjB,IAAIskB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aACvBm/C,EAAY9vD,EAAQ8vD,UAEpB1wE,EAAS,EAAQ,QAEjByrD,EAAc,EAAQ,QAEtB9rD,EAAS,EAAQ,QAoBjB4iF,EAAgB,EAAV35E,KAAK+E,GACX60E,EAAS55E,KAAK+E,GAAK,IAEvB,SAASi1D,EAAY/jE,EAAayE,GAChC,OAAOtD,EAAOk/C,cAAcrgD,EAAYgkE,qBAAsB,CAC5DtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAIhB,SAAS1sB,EAASq1B,EAAY90B,EAASyG,EAAK23B,GAC1Cp+B,EAAQumC,iBAAiBzR,GAAY,SAAU9yB,GAC7C,IAAIvB,EAAOuB,EAAYtB,UACnBuJ,EAAWxJ,EAAKyJ,aAAa,SAC7B82E,EAAWjb,EAAY/jE,EAAayE,GACpCmyB,EAAS52B,EAAYI,IAAI,UACzB8jD,EAASlkD,EAAYI,IAAI,UAExBU,EAAOogB,QAAQgjC,KAClBA,EAAS,CAAC,EAAGA,IAGVpjD,EAAOogB,QAAQ0V,KAClBA,EAAS,CAACA,EAAQA,IAGpB,IAAIl3B,EAAQgzB,EAAassD,EAASt/E,MAAO+E,EAAIylB,YACzC9f,EAASsoB,EAAassD,EAAS50E,OAAQ3F,EAAI0lB,aAC3C3f,EAAOT,KAAK6E,IAAIlP,EAAO0K,GACvBkyC,EAAK5pB,EAAakE,EAAO,GAAIl3B,GAASs/E,EAASr7E,EAC/C44C,EAAK7pB,EAAakE,EAAO,GAAIxsB,GAAU40E,EAASp7E,EAChDm8C,EAAKrtB,EAAawxB,EAAO,GAAI15C,EAAO,GACpCuH,EAAI2gB,EAAawxB,EAAO,GAAI15C,EAAO,GACnCw1C,GAAchgD,EAAYI,IAAI,cAAgBujF,EAC9CC,EAAW5jF,EAAYI,IAAI,YAAcujF,EACzCE,EAAiB,EACrBplF,EAAKpB,KAAK4K,GAAU,SAAU4D,IAC3BoL,MAAMpL,IAAUg4E,OAEnB,IAAI17E,EAAM1J,EAAK2J,OAAOH,GAElB67E,EAAa/5E,KAAK+E,IAAM3G,GAAO07E,GAAkB,EACjDn2B,EAAY1tD,EAAYI,IAAI,aAC5B2jF,EAAW/jF,EAAYI,IAAI,YAC3B4jF,EAAmBhkF,EAAYI,IAAI,oBAEnC21B,EAASt3B,EAAKq2E,cAAc7sE,GAChC8tB,EAAO,GAAK,EAEZ,IAAIkuD,EAAYP,EACZQ,EAA6B,EAC7BC,EAAenkC,EACfokC,EAAM12B,EAAY,GAAK,EAiD3B,GAhDAjvD,EAAKpB,KAAK4K,GAAU,SAAU4D,EAAOuC,GACnC,IAAIsiD,EAEJ,GAAIz5C,MAAMpL,GACRpN,EAAKugB,cAAc5Q,EAAK,CACtBsiD,MAAOn7B,IACPyqB,WAAYzqB,IACZ0qB,SAAU1qB,IACVm4B,UAAWA,EACXpR,GAAIA,EACJC,GAAIA,EACJwD,GAAIA,EACJhuC,EAAGgyE,EAAWxuD,IAAMxjB,EACpBitE,SAAUA,QAVd,CAiBEtuB,EADe,SAAbqzB,EACc,IAAR57E,GAAa67E,EAAmBF,EAAaj4E,EAAQi4E,EAErDJ,EAAMG,EAGZnzB,EAAQkzB,GACVlzB,EAAQkzB,EACRK,GAAaL,GAEbM,GAA8Br4E,EAGhC,IAAIo0C,EAAWkkC,EAAeC,EAAM1zB,EACpCjyD,EAAKugB,cAAc5Q,EAAK,CACtBsiD,MAAOA,EACP1Q,WAAYmkC,EACZlkC,SAAUA,EACVyN,UAAWA,EACXpR,GAAIA,EACJC,GAAIA,EACJwD,GAAIA,EACJhuC,EAAGgyE,EAAWlS,EAAUhmE,EAAOkqB,EAAQ,CAACgqB,EAAIhuC,IAAMA,EAClDitE,SAAUA,IAEZmF,EAAelkC,MAIbgkC,EAAYP,GAAOG,EAGrB,GAAII,GAAa,KAAM,CACrB,IAAIvzB,EAAQgzB,EAAMG,EAClBplF,EAAKpB,KAAK4K,GAAU,SAAU4D,EAAOuC,GACnC,IAAK6I,MAAMpL,GAAQ,CACjB,IAAI1K,EAAS1C,EAAKygB,cAAc9Q,GAChCjN,EAAOuvD,MAAQA,EACfvvD,EAAO6+C,WAAaA,EAAaokC,EAAMh2E,EAAMsiD,EAC7CvvD,EAAO8+C,SAAWD,EAAaokC,GAAOh2E,EAAM,GAAKsiD,WAIrDozB,EAAaG,EAAYC,EACzBC,EAAenkC,EACfvhD,EAAKpB,KAAK4K,GAAU,SAAU4D,EAAOuC,GACnC,IAAK6I,MAAMpL,GAAQ,CACjB,IAAI1K,EAAS1C,EAAKygB,cAAc9Q,GAC5BsiD,EAAQvvD,EAAOuvD,QAAUkzB,EAAWA,EAAW/3E,EAAQi4E,EAC3D3iF,EAAO6+C,WAAamkC,EACpBhjF,EAAO8+C,SAAWkkC,EAAeC,EAAM1zB,EACvCyzB,GAAgBC,EAAM1zB,MAM9B9D,EAAY5sD,EAAa+R,EAAGitE,EAASt/E,MAAOs/E,EAAS50E,OAAQ40E,EAASr7E,EAAGq7E,EAASp7E,MAItFhD,EAAOC,QAAUpD,G,mBChJjB,SAASA,EAASO,GAChB,IAAIqmF,EAAe,GACnBrmF,EAAQumC,iBAAiB,SAAS,SAAUvkC,GAC1C,IAAIskF,EAAiBtkF,EAAYukF,oBAC7B9lF,EAAOuB,EAAYtB,UACnB8lF,EAAqB,GACzBF,EAAejnF,MAAK,SAAU+Q,GAC5B,IAAIvD,EAAOy5E,EAAenpC,QAAQ/sC,GAElCo2E,EAAmB,MAAQ35E,GAAQuD,EACnC,IAAIiR,EAAYilE,EAAehlE,aAAalR,GACxC0H,EAAQuJ,EAAUjf,IAAI,oBAAsBJ,EAAYykF,oBAAoB55E,EAAMw5E,GACtFC,EAAe5kE,cAActR,EAAK,QAAS0H,GAG3C,IAFA,IAAI4uE,EAAgB,CAAC,UAAW,SAAU,aAAc,oBAE/Cv4E,EAAI,EAAGA,EAAIu4E,EAAcv7E,OAAQgD,IAAK,CAC7C,IAAI/C,EAAYiW,EAAUq7B,WAAWgqC,EAAcv4E,IAAI,GAEtC,MAAb/C,GACFk7E,EAAe5kE,cAActR,EAAKs2E,EAAcv4E,GAAI/C,OAKtDk7E,EAAejkE,SACjB5hB,EAAKpB,MAAK,SAAU+Q,GAClB,IAAI4f,EAAQvvB,EAAK6gB,aAAalR,GAC1Bu2E,EAAW32D,EAAM0sB,WAAW,YAEhC,GAAgB,MAAZiqC,EAAkB,CACI,kBAAbA,IACTA,EAAWH,EAAmB,MAAQG,IAKxC,IAFA,IAAID,EAAgB,CAAC,QAAS,UAAW,SAAU,aAAc,oBAExDv4E,EAAI,EAAGA,EAAIu4E,EAAcv7E,OAAQgD,IACe,MAAnD1N,EAAKohB,cAAczR,EAAKs2E,EAAcv4E,IAAI,IAC5C1N,EAAKihB,cAActR,EAAKs2E,EAAcv4E,GAAIm4E,EAAezkE,cAAc8kE,EAAUD,EAAcv4E,YAS7GvL,EAAOC,QAAUpD,G,qBC3CjB,IAAIA,EAAW,CACbmnF,OAAQ,CACN3+C,SAAU,CACR4+C,IAAK,KACLv/E,QAAS,OAGb69E,QAAS,CACPz/C,MAAO,CACLlS,MAAO,CACLtnB,KAAM,OACN+sC,QAAS,KACTJ,MAAO,OACPE,MAAO,OACP+tC,KAAM,OACN9tD,MAAO,SAGX+tD,SAAU,CACRvzD,MAAO,OACPwzD,KAAM,CAAC,OAAQ,KAAM,OAEvBC,SAAU,CACRzzD,MAAO,CACLnnB,KAAM,OACN66E,KAAM,WAGVC,UAAW,CACT3zD,MAAO,CACL4zD,KAAM,SACNC,IAAK,SACLzzB,MAAO,QACP0zB,MAAO,UAGXC,QAAS,CACP/zD,MAAO,MAETg0D,YAAa,CACXh0D,MAAO,QACPwzD,KAAM,CAAC,aAGXtQ,OAAQ,CACN+Q,UAAW,CACTC,IAAK,KACLL,IAAK,MACLD,KAAM,MACNO,QAAS,MACTC,cAAe,QACf9I,MAAO,MACPl8D,KAAM,KACNilE,QAAS,OACTC,QAAS,MACTC,YAAa,MACb5xE,EAAG,MACH6xE,QAAS,MACT7gF,IAAK,KACLu9E,SAAU,QACVljC,MAAO,KACPhb,MAAO,MACPyhD,OAAQ,MACRC,OAAQ,MACRC,MAAO,OACPC,aAAc,OACdC,WAAY,QACZC,SAAU,QAGdC,KAAM,CACJC,QAAS,CACPC,UAAW,sBACXC,aAAc,WAEhBhS,OAAQ,CACNiS,OAAQ,CACNC,OAAQ,GACRC,SAAU,oCACVC,YAAa,sBAEfC,SAAU,CACRH,OAAQ,0BACRC,SAAU,gDACVC,YAAa,iCACbE,UAAW,CACTC,OAAQ,IACR1O,IAAK,OAIX95E,KAAM,CACJyoF,QAAS,SACTC,YAAa,uBACbN,SAAU,oBACVC,YAAa,UACbE,UAAW,CACTC,OAAQ,IACR1O,IAAK,OAKb33E,EAAOC,QAAUpD,G,uBC7HjB,IAAI6I,EAAU,EAAQ,QAElBsrB,EAAe,EAAQ,QAE3B,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAwBRtrB,EAAQyJ,qBAAqB6hB,I,uBCpC7B,IAAIlQ,EAAU,EAAQ,QAIlBtkB,GAFUskB,EAAQC,QAEV,EAAQ,SAGhBjkB,GADeN,EAAMiuC,aACZjuC,EAAMM,QAEfL,GADSD,EAAMmuC,OACRnuC,EAAMC,MACb8mB,EAAW/mB,EAAM+mB,SAEjBxd,EAAS,EAAQ,QAEjBykC,EAAmBzkC,EAAOykC,iBAC1Bg8C,EAAmBzgF,EAAOygF,iBAE1BrlE,EAAU,EAAQ,QAElB49C,EAAY59C,EAAQ49C,UAEpBr0B,EAAS,EAAQ,QAEjBh6B,EAAc,EAAQ,QAEtBu6B,EAA4Bv6B,EAAYu6B,0BACxCJ,EAA2Bn6B,EAAYm6B,yBACvCD,EAAyBl6B,EAAYk6B,uBACrCE,EAA4Bp6B,EAAYo6B,0BA4B5C,SAAS27C,EAAoBppF,EAAQqpF,GAC9Bh8C,EAAO0V,WAAW/iD,KACrBA,EAASqtC,EAAOi8C,mBAAmBtpF,IAGrCC,KAAKspF,QAAUvpF,EACf,IAAIQ,EAAOP,KAAK49C,MAAQ79C,EAAOQ,KAC3B4tC,EAAepuC,EAAOouC,aAEtBA,IAAiBR,IACnB3tC,KAAKupF,QAAU,EACfvpF,KAAKwpF,SAAWJ,EAChBppF,KAAK49C,MAAQr9C,GAGf,IAAIkpF,EAAUC,EAAgBv7C,IAAiBZ,EAA2BY,EAAe,IAAMpuC,EAAOuT,eAAiB66B,GACvH3uC,EAAOQ,KAAMypF,GAGf,IAAIE,EAAgBR,EAAoBr7E,UAExC67E,EAAcC,MAAO,EAErBD,EAAcE,YAAa,EAE3BF,EAAc1pF,UAAY,WACxB,OAAOD,KAAKspF,SAGd,IAAII,EAAkB,CACpB,iBAAoB,CAClBE,MAAM,EACNznE,MAAO,WACL,OAAOtW,KAAK4E,IAAI,EAAGzQ,KAAK49C,MAAM3yC,OAASjL,KAAKspF,QAAQx6C,aAEtDg7C,QAAS,SAAU55E,GACjB,OAAOlQ,KAAK49C,MAAM1tC,EAAMlQ,KAAKspF,QAAQx6C,aAEvCi7C,WAAYC,GAEd,cAAiB,CACfJ,MAAM,EACNznE,MAAO,WACL,IAAI6vB,EAAMhyC,KAAK49C,MAAM,GACrB,OAAO5L,EAAMnmC,KAAK4E,IAAI,EAAGuhC,EAAI/mC,OAASjL,KAAKspF,QAAQx6C,YAAc,GAEnEg7C,QAAS,SAAU55E,GACjBA,GAAOlQ,KAAKspF,QAAQx6C,WAIpB,IAHA,IAAItqC,EAAO,GACPjE,EAAOP,KAAK49C,MAEP3vC,EAAI,EAAGA,EAAI1N,EAAK0K,OAAQgD,IAAK,CACpC,IAAI+jC,EAAMzxC,EAAK0N,GACfzJ,EAAK3D,KAAKmxC,EAAMA,EAAI9hC,GAAO,MAG7B,OAAO1L,GAETulF,WAAY,WACV,MAAM,IAAIpzE,MAAM,+DAGpB,WAAc,CACZizE,MAAM,EACNznE,MAAO8nE,EACPH,QAASI,EACTH,WAAYC,GAEd,aAAgB,CACdJ,MAAM,EACNznE,MAAO,WACL,IAAI3f,EAAUxC,KAAKspF,QAAQ76C,iBAAiB,GAAG9hC,KAC3Cw9E,EAAMnqF,KAAK49C,MAAMp7C,GACrB,OAAO2nF,EAAMA,EAAIl/E,OAAS,GAE5B6+E,QAAS,SAAU55E,GAIjB,IAHA,IAAI1L,EAAO,GACP4lF,EAAOpqF,KAAKspF,QAAQ76C,iBAEfxgC,EAAI,EAAGA,EAAIm8E,EAAKn/E,OAAQgD,IAAK,CACpC,IAAIk8E,EAAMnqF,KAAK49C,MAAMwsC,EAAKn8E,GAAGtB,MAC7BnI,EAAK3D,KAAKspF,EAAMA,EAAIj6E,GAAO,MAG7B,OAAO1L,GAETulF,WAAY,SAAUjuB,GACpB,IAAIv7D,EAAOP,KAAK49C,MAChBz+C,EAAK28D,GAAS,SAAUuuB,EAAQtiF,GAG9B,IAFA,IAAIuiF,EAAS/pF,EAAKwH,KAASxH,EAAKwH,GAAO,IAE9BkG,EAAI,EAAGA,GAAKo8E,GAAU,IAAIp/E,OAAQgD,IACzCq8E,EAAOzpF,KAAKwpF,EAAOp8E,SAK3B,SAAY,CACVkU,MAAO8nE,EACPH,QAASI,EACTH,WAAYC,GAEd,WAAc,CACZH,YAAY,EACZD,MAAM,EACNznE,MAAO,WACL,OAAOniB,KAAK49C,MAAQ59C,KAAK49C,MAAM3yC,OAASjL,KAAKwpF,SAAW,GAE1DM,QAAS,SAAU55E,EAAKhB,GACtBgB,GAAYlQ,KAAKupF,QACjBr6E,EAAMA,GAAO,GAGb,IAFA,IAAI4F,EAAS9U,KAAKwpF,SAAWt5E,EAEpBjC,EAAI,EAAGA,EAAIjO,KAAKwpF,SAAUv7E,IACjCiB,EAAIjB,GAAKjO,KAAK49C,MAAM9oC,EAAS7G,GAG/B,OAAOiB,GAET66E,WAAY,SAAUjuB,GACpB97D,KAAK49C,MAAQke,GAGfyuB,MAAO,WAELvqF,KAAKupF,SAAWvpF,KAAKmiB,QACrBniB,KAAK49C,MAAQ,QAKnB,SAASqsC,IACP,OAAOjqF,KAAK49C,MAAM3yC,OAGpB,SAASi/E,EAAch6E,GACrB,OAAOlQ,KAAK49C,MAAM1tC,GAGpB,SAAS85E,EAAiBluB,GACxB,IAAK,IAAI7tD,EAAI,EAAGA,EAAI6tD,EAAQ7wD,OAAQgD,IAClCjO,KAAK49C,MAAM/8C,KAAKi7D,EAAQ7tD,IAI5B,IAAIu8E,EAAkB,CACpBC,UAAWC,EACXC,WAAY,SAAUp/E,EAAU3K,EAAW+wC,EAAUnvC,GACnD,OAAmB,MAAZmvC,EAAmBpmC,EAAS/I,GAAW+I,GAEhDq/E,aAAcF,EACdG,SAAU,SAAUt/E,EAAU3K,EAAW+wC,EAAUnvC,GAIjD,IAAImL,EAAQu/B,EAAiB3hC,GAC7B,OAAmB,MAAZomC,GAAsBhkC,aAAiBoK,MAAiBpK,EAAMgkC,GAAdhkC,GAEzDm9E,WAAYJ,GAGd,SAASA,EAAkBn/E,EAAU3K,EAAW+wC,EAAUnvC,GACxD,OAAmB,MAAZmvC,EAAmBpmC,EAASomC,GAAYpmC,EAGjD,IAAIw/E,EAAyB,CAC3BN,UAAWO,EACXL,WAAY,SAAUp/E,EAAU/I,EAAS5B,EAAW+wC,GAClD,OAAOs5C,EAAgB1/E,EAAS/I,GAAUxC,KAAKkrF,gBAAgB1oF,KAEjEooF,aAAcI,EACdH,SAAU,SAAUt/E,EAAU/I,EAAS5B,EAAW+wC,GAKhD,IAAIhkC,EAAQpC,IAA+B,MAAlBA,EAASoC,MAAgBpC,EAAWA,EAASoC,OAMtE,OAJK3N,KAAKmrF,SAASvB,MAAQV,EAAiB39E,KAC1CvL,KAAKu8C,eAAgB,GAGhB0uC,EAAgBt9E,aAAiBoK,MAAQpK,EAAMgkC,GACpDhkC,EAAO3N,KAAKkrF,gBAAgB1oF,KAEhCsoF,WAAY,SAAUv/E,EAAU/I,EAAS5B,EAAW+wC,GAClD,OAAOpmC,EAASomC,KAIpB,SAASq5C,EAAkBz/E,EAAU/I,EAAS5B,EAAW+wC,GACvD,OAAOs5C,EAAgB1/E,EAASomC,GAAW3xC,KAAKkrF,gBAAgB1oF,IAUlE,SAASyoF,EAAgBt9E,EAAOy9E,GAE9B,IAAIx5C,EAAUw5C,GAAWA,EAAQ3rF,KAEjC,GAAgB,YAAZmyC,EAAuB,CAEzB,IAAI+W,EAAcyiC,GAAWA,EAAQziC,YACrC,OAAOA,EAAcA,EAAY0iC,gBAAgB19E,GAASA,EAW5D,MARgB,SAAZikC,GACgB,kBAAVjkC,GAA+B,MAATA,GAA2B,MAAVA,IAC/CA,GAAS8zD,EAAU9zD,IAML,MAATA,GAA2B,KAAVA,EAAe0pB,KAEpC1pB,EAiBL,SAAS29E,EAAiB/qF,EAAMK,EAAWmP,GACzC,GAAKxP,EAAL,CAKA,IAAIgL,EAAWhL,EAAKg+D,eAAe39D,GAEnC,GAAgB,MAAZ2K,EAAJ,CAIA,IACI/I,EACAmvC,EAFAxD,EAAe5tC,EAAKgrF,cAActrF,YAAYkuC,aAG9Ci9C,EAAU7qF,EAAKirF,iBAAiBz7E,GAOpC,OALIq7E,IACF5oF,EAAU4oF,EAAQz+E,KAClBglC,EAAWy5C,EAAQjkF,OAGdqjF,EAAgBr8C,GAAc5iC,EAAU3K,EAAW+wC,EAAUnvC,KAgBtE,SAASipF,EAAgBlrF,EAAMK,EAAWof,GACxC,GAAKzf,EAAL,CAIA,IAAI4tC,EAAe5tC,EAAKgrF,cAActrF,YAAYkuC,aAElD,GAAIA,IAAiBb,GAA0Ba,IAAiBX,EAAhE,CAIA,IAAIjiC,EAAWhL,EAAKg+D,eAAe39D,GAMnC,OAJIutC,IAAiBb,GAA2BrnB,EAAS1a,KACvDA,EAAW,MAGTA,EACKA,EAASyU,QADlB,IAKFrd,EAAQwmF,oBAAsBA,EAC9BxmF,EAAQooF,uBAAyBA,EACjCpoF,EAAQ2oF,iBAAmBA,EAC3B3oF,EAAQ8oF,gBAAkBA,G,uBCzX1B,IAAIC,EAAY,EAAQ,QAEpBC,EAAY,EAAQ,QAEpBC,EAAkBD,EAAUC,gBAC5BC,EAAqB,CAAC,CAAC,aAAc,GAAI,CAAC,gBAAiB,GAAI,CAAC,gBAAiB,GAAI,CAAC,cAAe,QAAS,CAAC,UAAW,QAAS,CAAC,WAAY,SAAU,CAAC,aAAc,KAGzKt/B,EAAQ,SAAUjpB,GACpBtjC,KAAKyqE,WAAWnnC,GAAM,IAGxB,SAASwoD,EAAqBrnD,EAAK1e,EAAK/Z,GACtC,IAAIvG,EAAa,MAATsgB,EAAItgB,EAAY,EAAIsgB,EAAItgB,EAC5B60D,EAAe,MAAVv0C,EAAIu0C,GAAa,EAAIv0C,EAAIu0C,GAC9B50D,EAAa,MAATqgB,EAAIrgB,EAAY,EAAIqgB,EAAIrgB,EAC5B60D,EAAe,MAAVx0C,EAAIw0C,GAAa,EAAIx0C,EAAIw0C,GAE7Bx0C,EAAIgmE,SACPtmF,EAAIA,EAAIuG,EAAKxK,MAAQwK,EAAKvG,EAC1B60D,EAAKA,EAAKtuD,EAAKxK,MAAQwK,EAAKvG,EAC5BC,EAAIA,EAAIsG,EAAKE,OAASF,EAAKtG,EAC3B60D,EAAKA,EAAKvuD,EAAKE,OAASF,EAAKtG,GAI/BD,EAAIsT,MAAMtT,GAAK,EAAIA,EACnB60D,EAAKvhD,MAAMuhD,GAAM,EAAIA,EACrB50D,EAAIqT,MAAMrT,GAAK,EAAIA,EACnB60D,EAAKxhD,MAAMwhD,GAAM,EAAIA,EACrB,IAAIyxB,EAAiBvnD,EAAIqnD,qBAAqBrmF,EAAGC,EAAG40D,EAAIC,GACxD,OAAOyxB,EAGT,SAASC,EAAqBxnD,EAAK1e,EAAK/Z,GACtC,IAAIxK,EAAQwK,EAAKxK,MACb0K,EAASF,EAAKE,OACdwE,EAAM7E,KAAK6E,IAAIlP,EAAO0K,GACtBzG,EAAa,MAATsgB,EAAItgB,EAAY,GAAMsgB,EAAItgB,EAC9BC,EAAa,MAATqgB,EAAIrgB,EAAY,GAAMqgB,EAAIrgB,EAC9BmO,EAAa,MAATkS,EAAIlS,EAAY,GAAMkS,EAAIlS,EAE7BkS,EAAIgmE,SACPtmF,EAAIA,EAAIjE,EAAQwK,EAAKvG,EACrBC,EAAIA,EAAIwG,EAASF,EAAKtG,EACtBmO,GAAQnD,GAGV,IAAIs7E,EAAiBvnD,EAAIwnD,qBAAqBxmF,EAAGC,EAAG,EAAGD,EAAGC,EAAGmO,GAC7D,OAAOm4E,EAGTz/B,EAAMz+C,UAAY,CAChBC,YAAaw+C,EAKb76C,KAAM,OAKNmtC,OAAQ,KAKRp9C,QAAS,EAKTyqF,YAAa,KAKbC,cAAe,KAUf/wB,SAAU,KAKVgxB,eAAgB,EAKhBpwC,WAAY,EAKZC,cAAe,EAKfC,cAAe,EAKfw8B,UAAW,EAMX53C,eAAe,EAOfn7B,KAAM,KASNijC,KAAM,KAONjlC,SAAU,KAMVmrE,UAAW,KAMXC,WAAY,KAOZrlD,SAAU,KAMVslD,WAAY,KAMZI,QAAS,KAKTvrE,SAAU,OAKV8qE,WAAY,KAKZO,UAAW,KAMXC,WAAY,KASZP,gBAAiB,EAKjBK,eAAgB,KAShBtB,aAAc,SAMd0e,SAAU,KAMVxe,WAAY,KAKZhoE,UAAW,KAKXD,kBAAmB,KAKnBmoE,aAAc,EAKd8B,gBAAiB,cAKjBC,eAAgB,EAKhBC,kBAAmB,EAKnBC,kBAAmB,EAKnBP,mBAAoB,cAKpBC,kBAAmB,EAKnBC,qBAAsB,EAKtBC,qBAAsB,EAQtB0c,eAAe,EAQfxe,aAAc,EAedye,WAAY,KAKZjd,oBAAqB,KAKrB3H,gBAAiB,KAKjBC,gBAAiB,EAKjB4H,iBAAkB,EAMlBD,YAAa,KAMbjB,KAAM,KAMNke,SAAU,KAMVC,MAAO,KAKP5nF,KAAM,SAAU4/B,EAAKhZ,EAAIga,GACvB,IAAIjgC,EAAQxF,KACR0sF,EAAYjnD,GAAUA,EAAOjgC,MAG7BmnF,GAAiBD,GAAajoD,EAAImoD,iBAAmBhB,EAAgBiB,WACzEpoD,EAAImoD,eAAiBhB,EAAgBiB,WAErC,IAAK,IAAI5+E,EAAI,EAAGA,EAAI49E,EAAmB5gF,OAAQgD,IAAK,CAClD,IAAI+kB,EAAO64D,EAAmB59E,GAC1B00E,EAAY3vD,EAAK,IAEjB25D,GAAiBnnF,EAAMm9E,KAAe+J,EAAU/J,MAElDl+C,EAAIk+C,GAAa+I,EAAUjnD,EAAKk+C,EAAWn9E,EAAMm9E,IAAc3vD,EAAK,KAoBxE,IAhBI25D,GAAiBnnF,EAAMkM,OAASg7E,EAAUh7E,QAC5C+yB,EAAIqoD,UAAYtnF,EAAMkM,OAGpBi7E,GAAiBnnF,EAAMq5C,SAAW6tC,EAAU7tC,UAC9Cpa,EAAIsoD,YAAcvnF,EAAMq5C,SAGtB8tC,GAAiBnnF,EAAM/D,UAAYirF,EAAUjrF,WAC/CgjC,EAAIuoD,YAA+B,MAAjBxnF,EAAM/D,QAAkB,EAAI+D,EAAM/D,UAGlDkrF,GAAiBnnF,EAAMinF,QAAUC,EAAUD,SAC7ChoD,EAAIwoD,yBAA2BznF,EAAMinF,OAAS,eAG5CzsF,KAAKktF,YAAa,CACpB,IAAIxU,EAAYlzE,EAAMkzE,UACtBj0C,EAAIi0C,UAAYA,GAAa14E,KAAK8gC,eAAiBrV,GAAMA,EAAG0hE,aAAe1hE,EAAG0hE,eAAiB,KAGnGC,QAAS,WACP,IAAI17E,EAAO1R,KAAK0R,KAChB,OAAe,MAARA,GAAyB,SAATA,GAEzBw7E,UAAW,WACT,IAAIruC,EAAS7+C,KAAK6+C,OAClB,OAAiB,MAAVA,GAA6B,SAAXA,GAAqB7+C,KAAK04E,UAAY,GAUjEjO,WAAY,SAAU4iB,EAAYC,GAChC,GAAID,EACF,IAAK,IAAI1gF,KAAQ0gF,GACXA,EAAWtwE,eAAepQ,KAAwB,IAAd2gF,KAAqC,IAAdA,EAAuBttF,KAAK+c,eAAepQ,GAA4B,MAApB0gF,EAAW1gF,MAC3H3M,KAAK2M,GAAQ0gF,EAAW1gF,KAWhCpK,IAAK,SAAUwjB,EAAKpY,GACC,kBAARoY,EACT/lB,KAAK+lB,GAAOpY,EAEZ3N,KAAKyqE,WAAW1kD,GAAK,IAQzBre,MAAO,WACL,IAAI6lF,EAAW,IAAIvtF,KAAK+N,YAExB,OADAw/E,EAAS9iB,WAAWzqE,MAAM,GACnButF,GAETC,YAAa,SAAU/oD,EAAK1e,EAAK/Z,GAK/B,IAJA,IAAI3F,EAAsB,WAAb0f,EAAItmB,KAAoBwsF,EAAuBH,EACxDE,EAAiB3lF,EAAOo+B,EAAK1e,EAAK/Z,GAClCyhF,EAAa1nE,EAAI0nE,WAEZx/E,EAAI,EAAGA,EAAIw/E,EAAWxiF,OAAQgD,IACrC+9E,EAAe0B,aAAaD,EAAWx/E,GAAG6G,OAAQ24E,EAAWx/E,GAAG2J,OAGlE,OAAOo0E,IAKX,IAFA,IAAI2B,EAAaphC,EAAMz+C,UAEdG,EAAI,EAAGA,EAAI49E,EAAmB5gF,OAAQgD,IAAK,CAClD,IAAI+kB,EAAO64D,EAAmB59E,GAExB+kB,EAAK,KAAM26D,IACfA,EAAW36D,EAAK,IAAMA,EAAK,IAK/Bu5B,EAAMihC,YAAcG,EAAWH,YAC/B,IAAIjuF,EAAWgtD,EACf7pD,EAAOC,QAAUpD,G,uBCxcjB,IAAIqD,EAAS,EAAQ,QAEjB+gB,EAAgB,EAAQ,QAwBxBxkB,EAAOyD,EAAOzD,KAElB,SAASyuF,EAAQ7nE,GACf,GAAIA,EACF,IAAK,IAAIpZ,KAAQoZ,EACf,GAAIA,EAAIhJ,eAAepQ,GACrB,OAAO,EAaf,SAASsrC,EAAqBp4C,EAAQwmB,EAAWwnE,GAC/C,IAAI71C,EAAiB,GAuBrB,OAtBA74C,EAAKknB,GAAW,SAAUjB,GACxB,IAAI0oE,EAAW91C,EAAe5yB,GAAS2oE,IACvC5uF,EAAKU,EAAOulB,IAAQ,SAAU4oE,EAAYhoE,GACxC,GAAKrC,EAAcsqE,YAAYjoE,GAA/B,CAIA,IAAIb,EAAgB,CAClB1lB,KAAMumB,EACNR,OAAQwoE,GAEVH,GAA0BA,EAAuB1oE,EAAeC,GAChE0oE,EAAS9nE,GAAc,IAAIrC,EAAcwB,GAGtB,YAAfa,IACFb,EAAgBviB,EAAO8E,MAAMyd,GAC7BA,EAAc1lB,KAAO,aACrBquF,EAASI,SAASC,kBAAoB,IAAIxqE,EAAcwB,WAIvD6yB,EAEP,SAAS+1C,IACP,IAAIK,EAAU,aAIdA,EAAQtgF,UAAUogF,SAAWE,EAAQtgF,UACrC,IAAIiY,EAAM,IAAIqoE,EACd,OAAOroE,GAUX,SAASsoE,EAAoB9nE,EAAY9B,EAAW6pE,GAKlD,IAAIxoE,EACJljB,EAAOzD,KAAKmvF,GAAM,SAAUvmF,GACtB0c,EAAU1H,eAAehV,IAAQ6lF,EAAQnpE,EAAU1c,MACrD+d,GAAM,MAGVA,GAAOljB,EAAOzD,KAAKmvF,GAAM,SAAUvmF,GAC7B0c,EAAU1H,eAAehV,IAAQ6lF,EAAQnpE,EAAU1c,IACrDwe,EAAWxe,GAAOnF,EAAO8E,MAAM+c,EAAU1c,WAElCwe,EAAWxe,MAexB,SAAS2wC,EAAYryB,EAAW2xB,EAAgBz3C,EAAM8E,EAAekpF,EAAO7tE,GAC1E,IAKI9f,EALA4tF,EAAiB,GAOrB,SAAS/sE,EAAU1Z,GACjB,OAAOxH,EAAKohB,cAAc/gB,EAAWmH,GAGvC,SAASwZ,EAAUxZ,EAAK4F,GACtBpN,EAAKihB,cAAc5gB,EAAWmH,EAAK4F,GASrC,SAAS8gF,EAASC,EAAcvnF,GAC9BvG,EAAyB,MAAb8f,EAAoBguE,EAAevnF,EAC/C,IAAIwnF,EAAcpuF,EAAKg+D,eAAe39D,GAEtC,IAAI+tF,IAAyC,IAA1BA,EAAYC,UAQ/B,IAJA,IAAIjnE,EAAatiB,EAAcyH,KAAKyhF,EAAOG,GACvCZ,EAAW91C,EAAerwB,GAC1BhC,EAAc6oE,EAAe7mE,GAExB1Z,EAAI,EAAGqK,EAAMqN,EAAY1a,OAAQgD,EAAIqK,EAAKrK,IAAK,CACtD,IAAIxO,EAAOkmB,EAAY1X,GACvB6/E,EAASruF,IAASquF,EAASruF,GAAMi5C,YAAYg2C,EAAcjtE,EAAWF,IAlC1E3e,EAAOzD,KAAKknB,GAAW,SAAUjB,GAC/B,IAAIO,EAAchC,EAAckrE,mBAAmB72C,EAAe5yB,IAClEopE,EAAeppE,GAASO,KAYT,MAAbjF,EACFngB,EAAKpB,KAAKsvF,GAEVluF,EAAKpB,KAAK,CAACuhB,GAAY+tE,GA8B3B,SAASK,EAAuBzoE,EAAW2xB,EAAgB3yC,EAAe0K,GACxE,IAAIy+E,EAAiB,GAMrB,SAAS74D,EAAS9rB,EAAQtJ,GAKxB,SAASkhB,EAAU1Z,GACjB,OAAOxH,EAAKohB,cAAc/gB,EAAWmH,GAGvC,SAASwZ,EAAUxZ,EAAK4F,GACtBpN,EAAKihB,cAAc5gB,EAAWmH,EAAK4F,GAGrC,IAAI/M,EAZO,MAAPmP,IACFA,EAAMxP,EAAKogB,aAAa5Q,IAa1B,MAAsC,OAA9BnP,EAAYiJ,EAAOmsB,QAAiB,CAC1C,IAAI24D,EAAcpuF,EAAKg+D,eAAe39D,GAEtC,IAAI+tF,IAAyC,IAA1BA,EAAYC,UAS/B,IALA,IAAIjhF,EAAe,MAAPoC,EAAcxP,EAAK2B,IAAI6N,EAAKnP,GAAW,GAAQA,EACvD+mB,EAAatiB,EAAcsI,GAC3BmgF,EAAW91C,EAAerwB,GAC1BhC,EAAc6oE,EAAe7mE,GAExB1Z,EAAI,EAAGqK,EAAMqN,EAAY1a,OAAQgD,EAAIqK,EAAKrK,IAAK,CACtD,IAAIxO,EAAOkmB,EAAY1X,GACvB6/E,EAASruF,IAASquF,EAASruF,GAAMi5C,YAAY/qC,EAAO8T,EAAWF,KAKrE,OAvCA3e,EAAOzD,KAAKknB,GAAW,SAAUjB,GAC/B,IAAIO,EAAchC,EAAckrE,mBAAmB72C,EAAe5yB,IAClEopE,EAAeppE,GAASO,KAqCnB,CACLgQ,SAAUA,GAIdhzB,EAAQs1C,qBAAuBA,EAC/Bt1C,EAAQ0rF,oBAAsBA,EAC9B1rF,EAAQ+1C,YAAcA,EACtB/1C,EAAQmsF,uBAAyBA,G,uBCxNjC,IAAI1mF,EAAU,EAAQ,QAElBlJ,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cACtBD,EAAOD,EAAMC,KAoBjBiJ,EAAQ+2E,kBAAkB,CAIxB4P,gBAAiB,SAAUjvF,GACzB,IAAIkvF,EAAiB5vF,IASrB,OARAU,EAAQs+B,cAAc,YAAY,SAAU22C,GAC1CA,EAAcuC,gBAAe,SAAUC,EAAUvqC,EAAW+nC,GAC1D,IAAIkF,EAAYlF,EAAc0C,aAAaF,EAAS5qE,KAAMqgC,GAC1D7tC,EAAK86E,EAAUvC,yBAAyB,SAAU51E,GAChDktF,EAAezsF,IAAIT,EAAYmG,IAAKnG,YAInCktF,GAETC,iBAAiB,EAIjBC,aAAc,SAAUpvF,EAASyG,GAC/BzG,EAAQs+B,cAAc,YAAY,SAAU22C,GAI1CA,EAAcuC,gBAAe,SAAUC,EAAUvqC,EAAW+nC,GAC1DA,EAAc0C,aAAaF,EAAS5qE,KAAMqgC,GAAWlY,MAAMigD,EAAexuE,MAgB5EwuE,EAAcuC,gBAAe,SAAUC,EAAUvqC,EAAW+nC,GAC1DA,EAAc0C,aAAaF,EAAS5qE,KAAMqgC,GAAWmiD,WAAWpa,EAAexuE,SAGnFzG,EAAQs+B,cAAc,YAAY,SAAU22C,GAG1C,IAAIkF,EAAYlF,EAAcsE,8BAC1B+V,EAAenV,EAAUoV,uBACzBC,EAAarV,EAAUM,qBAC3BxF,EAAcwa,mBAAmB,CAC/Bh7E,MAAO66E,EAAa,GACpB/U,IAAK+U,EAAa,GAClBI,WAAYF,EAAW,GACvBG,SAAUH,EAAW,Y,sBCrG7B,IAAI5qD,EAAM,EAEY,qBAAX9X,SACT8X,EAAM74B,KAAK4E,IAAImc,OAAOirC,kBAAoB,EAAG,IAe/C,IAAI63B,EAAY,EAEZ73B,EAAmBnzB,EACvB/hC,EAAQ+sF,UAAYA,EACpB/sF,EAAQk1D,iBAAmBA,G,uBCF3B,IAAIzvD,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAoBRA,EAAQiJ,oBAAoB,CAC1B5R,KAAM,Y,uBC/BR,IAAI2I,EAAU,EAAQ,QAElBsrB,EAAe,EAAQ,QAE3B,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAwBRtrB,EAAQyJ,qBAAqB6hB,I,uBCpC7B,IAAIx0B,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KACbC,EAAgBF,EAAME,cAGtBokB,GAFStkB,EAAMmuC,OAEL,EAAQ,SAsBlBsiD,GApBUnsE,EAAQC,QAoBCrkB,EAAc,CAAC,UAAW,QAAS,WAAY,SAAU,gBAEhF,SAASwwF,EAAoBrvF,GAC3B,IAAIsvF,EAAU,GACV7gD,EAAS6gD,EAAQ7gD,OAAS,GAC1B8gD,EAAsB1wF,IACtB2wF,EAAiB,GACjBC,EAAmB,GAEnBC,EAAaJ,EAAQI,WAAa,CACpC5T,eAAgB97E,EAAK4B,WAAWmF,QAChC0nC,OAAQ,IAEV7vC,EAAKoB,EAAK4B,YAAY,SAAUK,GAC9B,IAAI0tF,EAAU3vF,EAAKirF,iBAAiBhpF,GAChC2tF,EAAWD,EAAQC,SAEvB,GAAIA,EAAU,CACZ,IAAIC,EAAgBF,EAAQE,cAC5BC,EAAqBrhD,EAAQmhD,GAAUC,GAAiB5tF,EAEnD0tF,EAAQI,eACXR,EAAoBvtF,IAAI4tF,EAAU,GAK9BI,EAAgBL,EAAQzwF,QAC1BswF,EAAe,GAAKvtF,GAKtB6tF,EAAqBJ,EAAWjhD,OAAQmhD,GAAUC,GAAiBF,EAAQ/oF,OAGzE+oF,EAAQM,gBACVR,EAAiBnvF,KAAK2B,GAI1BmtF,EAAiBxwF,MAAK,SAAUgnB,EAAGswD,GACjC,IAAIga,EAAYJ,EAAqBrhD,EAAQynC,GACzC9kC,EAAWu+C,EAAQQ,UAAUja,GAEjB,MAAZ9kC,IAAiC,IAAbA,IACtB8+C,EAAU9+C,GAAYu+C,EAAQvjF,YAIpC,IAAIgkF,EAAkB,GAClBC,EAAyB,GAC7Bd,EAAoB3wF,MAAK,SAAUgnB,EAAGgqE,GACpC,IAAIU,EAAS7hD,EAAOmhD,GAIpBS,EAAuBT,GAAYU,EAAO,GAG1CF,EAAkBA,EAAgBn5B,OAAOq5B,MAE3ChB,EAAQc,gBAAkBA,EAC1Bd,EAAQe,uBAAyBA,EACjC,IAAIE,EAAc9hD,EAAO7tC,MAGrB2vF,GAAeA,EAAY7lF,SAC7B8kF,EAAiBe,EAAYxpF,SAG/B,IAAIypF,EAAgB/hD,EAAO2a,QAU3B,OARIonC,GAAiBA,EAAc9lF,OACjC+kF,EAAmBe,EAAczpF,QACvB0oF,EAAiB/kF,SAC3B+kF,EAAmBD,EAAezoF,SAGpC0nC,EAAO+gD,eAAiBA,EACxB/gD,EAAOghD,iBAAmBA,EACnBH,EAGT,SAASQ,EAAqBrhD,EAAQj/B,GAKpC,OAJKi/B,EAAOjyB,eAAehN,KACzBi/B,EAAOj/B,GAAO,IAGTi/B,EAAOj/B,GAGhB,SAASihF,EAAuB/8D,GAC9B,MAAoB,aAAbA,EAA0B,UAAyB,SAAbA,EAAsB,OAAS,QAG9E,SAASs8D,EAAgB3+C,GAGvB,QAAqB,YAAZA,GAAqC,SAAZA,GAepCjvC,EAAQgtF,iBAAmBA,EAC3BhtF,EAAQitF,oBAAsBA,EAC9BjtF,EAAQquF,uBAAyBA,G,uBChJjC,IAAI5oF,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBquF,EAAW,EAAQ,QAEvB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAqBR7oF,EAAQyrB,eAAejxB,EAAO4G,MAAMynF,EAAU,QAE9C7oF,EAAQiJ,oBAAoB,CAC1B5R,KAAM,W,qBCpBR,IAAIyxF,EAAmB,CAAC,YAAa,eAErC,SAAS3xF,EAASO,EAASyG,GACzB,IAAI4qF,EAAerxF,EAAQoC,IAAI,SAC/BpC,EAAQsxF,oBAAoB,WAAW,SAAUtvF,GAC/C,IAAIuvF,EAAcF,EAAarvF,EAAYi1C,YAAco6C,EAAalmF,QAClE1K,EAAOuB,EAAYtB,UACvBD,EAAKghB,UAAU,CACb+vE,aAAc,YAGd15E,MAAO9V,EAAYI,IAAIgvF,IAAqBG,IAGzCvxF,EAAQyxD,iBAAiBzvD,IAC5BvB,EAAKpB,MAAK,SAAU+Q,GAClB,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAClC3P,EAAKihB,cAActR,EAAK,CACtB0H,MAAOuJ,EAAUjf,IAAIgvF,GAAkB,WAOjDxuF,EAAOC,QAAUpD,G,qBC3CjB,IAAIF,EAAc,EAAQ,QAEtBC,EAAsB,EAAQ,QAoB9BC,EAAWF,EAAYG,OAAO,CAChCC,KAAM,sBACNG,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBU,KAAKC,YAAaD,KAAM,CACjD2hE,oBAAoB,KAGxB4vB,kBAAmB,SAAU5jF,GAC3B,IAAItN,EAAWL,KAAKM,iBAEpB,GAAID,EAAU,CAEZ,IAAI89C,EAAK99C,EAAS0L,YAAY1L,EAASmxF,UAAU7jF,IAC7CpN,EAAOP,KAAKQ,UACZsU,EAASvU,EAAKwgB,UAAU,UACxBzU,EAAO/L,EAAKwgB,UAAU,QACtB0wE,EAAcpxF,EAAS03B,cAAc5D,eAAiB,EAAI,EAE9D,OADAgqB,EAAGszC,IAAgB38E,EAASxI,EAAO,EAC5B6xC,EAGT,MAAO,CAAC9mB,IAAKA,MAEft2B,cAAe,CACbC,OAAQ,EAERC,EAAG,EAEHX,iBAAkB,cAClBgK,iBAAiB,EAMjBwnD,aAAc,EAEdC,YAAa,EAEbl8B,OAAO,EACP+wB,eAAgB,IAChBjlD,YAAa,IACb+vF,qBAAsB,MAatBxmF,UAAW,GACXxJ,SAAU,MAIdgB,EAAOC,QAAUpD,G,qBCtGjB,IAAIoF,EAAQ,EAAQ,QAEhB4gC,EAAS,EAAQ,QAEjBhgC,EAAO,EAAQ,QAEf27C,EAAS,EAAQ,QAEjB3vC,EAAO,EAAQ,QAEfogF,EAAU,EAAQ,QAElBz/C,EAAO,EAAQ,QAEf4X,EAAO,EAAQ,QAEfppB,EAAU,EAAQ,QAElB6d,EAAW,EAAQ,QAEnB6oB,EAAiB,EAAQ,QAEzB7a,EAAQ,EAAQ,QAEhBtpB,EAAS,EAAQ,QAEjB2uD,EAAQ,EAAQ,QAEhBlpB,EAAmBkpB,EAAMlpB,iBAEzBxpE,EAAQ,EAAQ,QAEhB2gB,EAAW3gB,EAAM2gB,SACjBrgB,EAASN,EAAMM,OACfiS,EAAWvS,EAAMuS,SACjB4+D,EAAOnxE,EAAMmxE,KACblxE,EAAOD,EAAMC,KAKb0yF,EAAgB,SAQpB,SAASC,EAASC,GAChB,GAAIlyE,EAASkyE,GAAM,CACjB,IAAIC,EAAS,IAAIC,UACjBF,EAAMC,EAAOE,gBAAgBH,EAAK,YAIf,IAAjBA,EAAII,WACNJ,EAAMA,EAAIK,YAIZ,MAAsC,QAA/BL,EAAIM,SAASC,eAA4C,IAAjBP,EAAII,SACjDJ,EAAMA,EAAIQ,YAGZ,OAAOR,EAGT,SAASS,IACPxyF,KAAKyyF,MAAQ,GACbzyF,KAAK0yF,MAAQ,KACb1yF,KAAK2yF,WAAY,EACjB3yF,KAAK4yF,SAAU,EAGjBJ,EAAU1kF,UAAU0N,MAAQ,SAAUq3E,EAAKrjF,GACzCA,EAAMA,GAAO,GACb,IAAIuiF,EAAMD,EAASe,GAEnB,IAAKd,EACH,MAAM,IAAIp7E,MAAM,eAGlB,IAAIuI,EAAO,IAAIva,EACf3E,KAAK0yF,MAAQxzE,EAEb,IAAI4zE,EAAUf,EAAIgB,aAAa,YAAc,GAGzCvxF,EAAQwxF,WAAWjB,EAAIgB,aAAa,UAAYvjF,EAAIhO,OACpD0K,EAAS8mF,WAAWjB,EAAIgB,aAAa,WAAavjF,EAAItD,QAE1D6M,MAAMvX,KAAWA,EAAQ,MACzBuX,MAAM7M,KAAYA,EAAS,MAE3B+mF,EAAgBlB,EAAK7yE,EAAM,MAAM,GACjC,IAQIg0E,EACAC,EATA5zE,EAAQwyE,EAAIK,WAEhB,MAAO7yE,EACLvf,KAAKozF,WAAW7zE,EAAOL,GAEvBK,EAAQA,EAAMgzE,YAMhB,GAAIO,EAAS,CACX,IAAIO,EAAahjB,EAAKyiB,GAASQ,MAAMzB,GAEjCwB,EAAWpoF,QAAU,IACvBioF,EAAc,CACZztF,EAAGutF,WAAWK,EAAW,IAAM,GAC/B3tF,EAAGstF,WAAWK,EAAW,IAAM,GAC/B7xF,MAAOwxF,WAAWK,EAAW,IAC7BnnF,OAAQ8mF,WAAWK,EAAW,MAKpC,GAAIH,GAAwB,MAAT1xF,GAA2B,MAAV0K,IAClCinF,EAAmBI,EAAqBL,EAAa1xF,EAAO0K,IAEvDsD,EAAIgkF,eAAe,CAOtB,IAAIC,EAASv0E,EACbA,EAAO,IAAIva,EACXua,EAAK5Z,IAAImuF,GACTA,EAAOhlF,MAAQ0kF,EAAiB1kF,MAAMnH,QACtCmsF,EAAOzoF,SAAWmoF,EAAiBnoF,SAAS1D,QAkBhD,OAZKkI,EAAIkkF,gBAA2B,MAATlyF,GAA2B,MAAV0K,GAC1CgT,EAAKqrB,YAAY,IAAIh5B,EAAK,CACxBC,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAOA,EACP0K,OAAQA,MAMP,CACLgT,KAAMA,EACN1d,MAAOA,EACP0K,OAAQA,EACRgnF,YAAaA,EACbC,iBAAkBA,IAItBX,EAAU1kF,UAAUslF,WAAa,SAAUO,EAASC,GAClD,IAWInoE,EAXA4mE,EAAWsB,EAAQtB,SAASC,cAahC,GATiB,SAAbD,EAEFryF,KAAK2yF,WAAY,EACK,SAAbN,IACTryF,KAAK4yF,SAAU,GAKb5yF,KAAK2yF,UAAW,CAClB,IAAIX,EAAS6B,EAAcxB,GAE3B,GAAIL,EAAQ,CACV,IAAI8B,EAAM9B,EAAOllF,KAAK9M,KAAM2zF,GACxBxrF,EAAKwrF,EAAQZ,aAAa,MAE1B5qF,IACFnI,KAAKyyF,MAAMtqF,GAAM2rF,QAGhB,CACD9B,EAAS+B,EAAY1B,GAErBL,IACFvmE,EAAKumE,EAAOllF,KAAK9M,KAAM2zF,EAASC,GAChCA,EAAYtuF,IAAImmB,IAIpB,IAAIlM,EAAQo0E,EAAQvB,WAEpB,MAAO7yE,EACkB,IAAnBA,EAAM4yE,UACRnyF,KAAKozF,WAAW7zE,EAAOkM,GAIF,IAAnBlM,EAAM4yE,UAAkBnyF,KAAK4yF,SAC/B5yF,KAAKg0F,WAAWz0E,EAAOkM,GAGzBlM,EAAQA,EAAMgzE,YAIC,SAAbF,EACFryF,KAAK2yF,WAAY,EACK,SAAbN,IACTryF,KAAK4yF,SAAU,IAInBJ,EAAU1kF,UAAUkmF,WAAa,SAAUL,EAASC,GAClD,GAAyB,IAArBD,EAAQxB,SAAgB,CAC1B,IAAIjgF,EAAKyhF,EAAQZ,aAAa,OAAS,EACnC5gF,EAAKwhF,EAAQZ,aAAa,OAAS,EACvC/yF,KAAKi0F,QAAUjB,WAAW9gF,GAC1BlS,KAAKk0F,QAAUlB,WAAW7gF,GAG5B,IAAIxM,EAAO,IAAIJ,EAAK,CAClBC,MAAO,CACLG,KAAMguF,EAAQQ,YACd7H,eAAe,GAEjBthF,SAAU,CAAChL,KAAKi0F,QAAU,EAAGj0F,KAAKk0F,QAAU,KAE9CE,EAAaR,EAAajuF,GAC1BstF,EAAgBU,EAAShuF,EAAM3F,KAAKyyF,OACpC,IAAI/oE,EAAW/jB,EAAKH,MAAMkkB,SAEtBA,GAAYA,EAAW,IAEzB/jB,EAAKH,MAAMkkB,SAAW,EACtB/jB,EAAK8I,MAAQ9I,EAAK8I,OAAS,CAAC,EAAG,GAC/B9I,EAAK8I,MAAM,IAAMib,EAAW,EAC5B/jB,EAAK8I,MAAM,IAAMib,EAAW,GAG9B,IAAI1d,EAAOrG,EAAKsG,kBAGhB,OAFAjM,KAAKi0F,QAAUjoF,EAAKxK,MACpBoyF,EAAYtuF,IAAIK,GACTA,GAGT,IAAIouF,EAAc,CAChB,EAAK,SAAUJ,EAASC,GACtB,IAAI/hB,EAAI,IAAIltE,EAGZ,OAFAyvF,EAAaR,EAAa/hB,GAC1BohB,EAAgBU,EAAS9hB,EAAG7xE,KAAKyyF,OAC1B5gB,GAET,KAAQ,SAAU8hB,EAASC,GACzB,IAAI5nF,EAAO,IAAIuF,EAWf,OAVA6iF,EAAaR,EAAa5nF,GAC1BinF,EAAgBU,EAAS3nF,EAAMhM,KAAKyyF,OACpCzmF,EAAKmiD,SAAS,CACZ1oD,EAAGutF,WAAWW,EAAQZ,aAAa,MAAQ,GAC3CrtF,EAAGstF,WAAWW,EAAQZ,aAAa,MAAQ,GAC3CvxF,MAAOwxF,WAAWW,EAAQZ,aAAa,UAAY,GACnD7mF,OAAQ8mF,WAAWW,EAAQZ,aAAa,WAAa,KAIhD/mF,GAET,OAAU,SAAU2nF,EAASC,GAC3B,IAAIS,EAAS,IAAInzC,EAQjB,OAPAkzC,EAAaR,EAAaS,GAC1BpB,EAAgBU,EAASU,EAAQr0F,KAAKyyF,OACtC4B,EAAOlmC,SAAS,CACd/P,GAAI40C,WAAWW,EAAQZ,aAAa,OAAS,GAC7C10C,GAAI20C,WAAWW,EAAQZ,aAAa,OAAS,GAC7Cl/E,EAAGm/E,WAAWW,EAAQZ,aAAa,MAAQ,KAEtCsB,GAET,KAAQ,SAAUV,EAASC,GACzB,IAAI1M,EAAO,IAAIh1C,EASf,OARAkiD,EAAaR,EAAa1M,GAC1B+L,EAAgBU,EAASzM,EAAMlnF,KAAKyyF,OACpCvL,EAAK/4B,SAAS,CACZiM,GAAI44B,WAAWW,EAAQZ,aAAa,OAAS,GAC7C14B,GAAI24B,WAAWW,EAAQZ,aAAa,OAAS,GAC7Cz4B,GAAI04B,WAAWW,EAAQZ,aAAa,OAAS,GAC7Cx4B,GAAIy4B,WAAWW,EAAQZ,aAAa,OAAS,KAExC7L,GAET,QAAW,SAAUyM,EAASC,GAC5B,IAAIU,EAAU,IAAI3C,EASlB,OARAyC,EAAaR,EAAaU,GAC1BrB,EAAgBU,EAASW,EAASt0F,KAAKyyF,OACvC6B,EAAQnmC,SAAS,CACf/P,GAAI40C,WAAWW,EAAQZ,aAAa,OAAS,GAC7C10C,GAAI20C,WAAWW,EAAQZ,aAAa,OAAS,GAC7Cn2B,GAAIo2B,WAAWW,EAAQZ,aAAa,OAAS,GAC7Cl2B,GAAIm2B,WAAWW,EAAQZ,aAAa,OAAS,KAExCuB,GAET,QAAW,SAAUX,EAASC,GAC5B,IAAIr8E,EAASo8E,EAAQZ,aAAa,UAE9Bx7E,IACFA,EAASg9E,EAAYh9E,IAGvB,IAAIwhC,EAAU,IAAIrY,EAAQ,CACxBlvB,MAAO,CACL+F,OAAQA,GAAU,MAKtB,OAFA68E,EAAaR,EAAa76C,GAC1Bk6C,EAAgBU,EAAS56C,EAAS/4C,KAAKyyF,OAChC15C,GAET,SAAY,SAAU46C,EAASC,GAC7B,IAAI1yE,EAAO,IAAI4oC,EACfsqC,EAAaR,EAAa1yE,GAC1B+xE,EAAgBU,EAASzyE,EAAMlhB,KAAKyyF,OACpC,IAAIl7E,EAASo8E,EAAQZ,aAAa,UAE9Bx7E,IACFA,EAASg9E,EAAYh9E,IAGvB,IAAI+mC,EAAW,IAAIC,EAAS,CAC1B/sC,MAAO,CACL+F,OAAQA,GAAU,MAGtB,OAAO+mC,GAET,MAAS,SAAUq1C,EAASC,GAC1B,IAAI7qB,EAAM,IAAIxjC,EAUd,OATA6uD,EAAaR,EAAa7qB,GAC1BkqB,EAAgBU,EAAS5qB,EAAK/oE,KAAKyyF,OACnC1pB,EAAIloC,SAAS,CACX8E,MAAOguD,EAAQZ,aAAa,cAC5BttF,EAAGkuF,EAAQZ,aAAa,KACxBrtF,EAAGiuF,EAAQZ,aAAa,KACxBvxF,MAAOmyF,EAAQZ,aAAa,SAC5B7mF,OAAQynF,EAAQZ,aAAa,YAExBhqB,GAET,KAAQ,SAAU4qB,EAASC,GACzB,IAAInuF,EAAIkuF,EAAQZ,aAAa,MAAQ,EACjCrtF,EAAIiuF,EAAQZ,aAAa,MAAQ,EACjC7gF,EAAKyhF,EAAQZ,aAAa,OAAS,EACnC5gF,EAAKwhF,EAAQZ,aAAa,OAAS,EACvC/yF,KAAKi0F,OAASjB,WAAWvtF,GAAKutF,WAAW9gF,GACzClS,KAAKk0F,OAASlB,WAAWttF,GAAKstF,WAAW7gF,GACzC,IAAI0/D,EAAI,IAAIltE,EAGZ,OAFAyvF,EAAaR,EAAa/hB,GAC1BohB,EAAgBU,EAAS9hB,EAAG7xE,KAAKyyF,OAC1B5gB,GAET,MAAS,SAAU8hB,EAASC,GAC1B,IAAInuF,EAAIkuF,EAAQZ,aAAa,KACzBrtF,EAAIiuF,EAAQZ,aAAa,KAEpB,MAALttF,IAEFzF,KAAKi0F,OAASjB,WAAWvtF,IAGlB,MAALC,IAEF1F,KAAKk0F,OAASlB,WAAWttF,IAG3B,IAAIwM,EAAKyhF,EAAQZ,aAAa,OAAS,EACnC5gF,EAAKwhF,EAAQZ,aAAa,OAAS,EACnClhB,EAAI,IAAIltE,EAKZ,OAJAyvF,EAAaR,EAAa/hB,GAC1BohB,EAAgBU,EAAS9hB,EAAG7xE,KAAKyyF,OACjCzyF,KAAKi0F,QAAU/hF,EACflS,KAAKk0F,QAAU/hF,EACR0/D,GAET,KAAQ,SAAU8hB,EAASC,GAIzB,IAAI52B,EAAI22B,EAAQZ,aAAa,MAAQ,GAEjC7xE,EAAOwnD,EAAiB1L,GAG5B,OAFAo3B,EAAaR,EAAa1yE,GAC1B+xE,EAAgBU,EAASzyE,EAAMlhB,KAAKyyF,OAC7BvxE,IAGP2yE,EAAgB,CAClB,eAAkB,SAAUF,GAC1B,IAAIv5B,EAAKvyC,SAAS8rE,EAAQZ,aAAa,OAAS,EAAG,IAC/C14B,EAAKxyC,SAAS8rE,EAAQZ,aAAa,OAAS,EAAG,IAC/Cz4B,EAAKzyC,SAAS8rE,EAAQZ,aAAa,OAAS,GAAI,IAChDx4B,EAAK1yC,SAAS8rE,EAAQZ,aAAa,OAAS,EAAG,IAC/CyB,EAAW,IAAIptB,EAAehN,EAAIC,EAAIC,EAAIC,GAI9C,OAFAk6B,EAAyBd,EAASa,GAE3BA,GAET,eAAkB,SAAUb,MAG9B,SAASc,EAAyBd,EAASa,GACzC,IAAI12E,EAAO61E,EAAQvB,WAEnB,MAAOt0E,EAAM,CACX,GAAsB,IAAlBA,EAAKq0E,SAAgB,CACvB,IAAIr9E,EAASgJ,EAAKi1E,aAAa,UAI7Bj+E,EAFEA,EAAO+d,QAAQ,KAAO,EAEfhL,SAAS/S,EAAQ,IAAM,IACvBA,EAEAk+E,WAAWl+E,GAEX,EAGX,IAAI4/E,EAAY52E,EAAKi1E,aAAa,eAAiB,UACnDyB,EAAS9G,aAAa54E,EAAQ4/E,GAGhC52E,EAAOA,EAAKy0E,aAIhB,SAAS6B,EAAavyE,EAAQtC,GACxBsC,GAAUA,EAAO8yE,mBACdp1E,EAAMo1E,mBACTp1E,EAAMo1E,iBAAmB,IAG3BljF,EAAS8N,EAAMo1E,iBAAkB9yE,EAAO8yE,mBAI5C,SAASJ,EAAYK,GAInB,IAHA,IAAIzxE,EAAOktD,EAAKukB,GAActB,MAAMzB,GAChCt6E,EAAS,GAEJtJ,EAAI,EAAGA,EAAIkV,EAAKlY,OAAQgD,GAAK,EAAG,CACvC,IAAIxI,EAAIutF,WAAW7vE,EAAKlV,IACpBvI,EAAIstF,WAAW7vE,EAAKlV,EAAI,IAC5BsJ,EAAO1W,KAAK,CAAC4E,EAAGC,IAGlB,OAAO6R,EAGT,IAAIs9E,EAAgB,CAClB,KAAQ,OACR,OAAU,SACV,eAAgB,YAChB,QAAW,UACX,eAAgB,cAChB,iBAAkB,gBAClB,mBAAoB,WACpB,oBAAqB,iBACrB,iBAAkB,UAClB,kBAAmB,WACnB,oBAAqB,aACrB,cAAe,aACf,YAAa,WACb,aAAc,YACd,cAAe,aACf,aAAc,YACd,qBAAsB,gBAGxB,SAAS5B,EAAgBU,EAASloE,EAAIqpE,EAAMC,GAC1C,IAAIC,EAAUvpE,EAAGkpE,kBAAoB,GACjCM,EAAuB,SAAZxpE,EAAGhsB,KAElB,GAAyB,IAArBk0F,EAAQxB,WACV+C,EAAwBvB,EAASloE,GACjCjsB,EAAOw1F,EAASG,EAAoBxB,KAE/BoB,GACH,IAAK,IAAIK,KAAeP,EACtB,GAAIA,EAAc93E,eAAeq4E,GAAc,CAC7C,IAAIC,EAAY1B,EAAQZ,aAAaqC,GAEpB,MAAbC,IACFL,EAAQH,EAAcO,IAAgBC,GAOhD,IAAIC,EAAaL,EAAW,WAAa,OACrCM,EAAeN,EAAW,aAAe,SAC7CxpE,EAAGjmB,MAAQimB,EAAGjmB,OAAS,IAAI+mD,EAC3B,IAAI9P,EAAUhxB,EAAGjmB,MACD,MAAhBwvF,EAAQtjF,MAAgB+qC,EAAQl6C,IAAI+yF,EAAYE,EAASR,EAAQtjF,KAAMojF,IACrD,MAAlBE,EAAQn2C,QAAkBpC,EAAQl6C,IAAIgzF,EAAcC,EAASR,EAAQn2C,OAAQi2C,IAC7E31F,EAAK,CAAC,YAAa,UAAW,cAAe,gBAAiB,aAAc,aAAa,SAAUkb,GACjG,IAAIo7E,EAA0B,cAAbp7E,GAA4B46E,EAAW,kBAAoB56E,EACvD,MAArB26E,EAAQ36E,IAAqBoiC,EAAQl6C,IAAIkzF,EAAYzC,WAAWgC,EAAQ36E,QAGrE26E,EAAQU,cAAyC,SAAzBV,EAAQU,eACnCV,EAAQU,aAAe,cAGI,eAAzBV,EAAQU,eACVV,EAAQU,aAAe,UAGC,UAAtBV,EAAQnvF,YACVmvF,EAAQnvF,UAAY,QAGI,QAAtBmvF,EAAQnvF,YACVmvF,EAAQnvF,UAAY,SAGtB1G,EAAK,CAAC,iBAAkB,UAAW,WAAY,aAAc,aAAc,YAAa,YAAa,iBAAiB,SAAUkb,GACzG,MAArB26E,EAAQ36E,IAAqBoiC,EAAQl6C,IAAI8X,EAAU26E,EAAQ36E,OAGzD26E,EAAQ55B,WACV3vC,EAAGjmB,MAAM41D,SAAWiV,EAAK2kB,EAAQ55B,UAAUk4B,MAAMzB,IAG/Cp1C,EAAQ84C,IAA2C,SAA1B94C,EAAQ84C,KAEnC9pE,EAAG8pE,IAAgB,GAGrB9pE,EAAGkpE,iBAAmBK,EAGxB,IAAIW,EAAW,mBAEf,SAASH,EAASI,EAAKd,GAIrB,IAAIe,EAAWf,GAAQc,GAAOA,EAAI3xB,MAAM0xB,GAExC,GAAIE,EAAU,CACZ,IAAIC,EAAMzlB,EAAKwlB,EAAS,IACpB/B,EAAMgB,EAAKgB,GACf,OAAOhC,EAGT,OAAO8B,EAGT,IAAIG,EAAiB,mEAErB,SAASb,EAAwBvB,EAASn0E,GACxC,IAAIlR,EAAYqlF,EAAQZ,aAAa,aAErC,GAAIzkF,EAAW,CACbA,EAAYA,EAAU7L,QAAQ,KAAM,KACpC,IAAIuS,EAAI,KACJghF,EAAe,GACnB1nF,EAAU7L,QAAQszF,GAAgB,SAAUH,EAAKn2F,EAAMkO,GACrDqoF,EAAan1F,KAAKpB,EAAMkO,MAG1B,IAAK,IAAIM,EAAI+nF,EAAa/qF,OAAS,EAAGgD,EAAI,EAAGA,GAAK,EAAG,CACnD,IAAIN,EAAQqoF,EAAa/nF,GACrBxO,EAAOu2F,EAAa/nF,EAAI,GAG5B,OAFA+G,EAAIA,GAAKiuB,EAAOW,SAERnkC,GACN,IAAK,YACHkO,EAAQ0iE,EAAK1iE,GAAO2lF,MAAMzB,GAC1B5uD,EAAO2gB,UAAU5uC,EAAGA,EAAG,CAACg+E,WAAWrlF,EAAM,IAAKqlF,WAAWrlF,EAAM,IAAM,KACrE,MAEF,IAAK,QACHA,EAAQ0iE,EAAK1iE,GAAO2lF,MAAMzB,GAC1B5uD,EAAOx0B,MAAMuG,EAAGA,EAAG,CAACg+E,WAAWrlF,EAAM,IAAKqlF,WAAWrlF,EAAM,IAAMA,EAAM,MACvE,MAEF,IAAK,SACHA,EAAQ0iE,EAAK1iE,GAAO2lF,MAAMzB,GAC1B5uD,EAAOmC,OAAOpwB,EAAGA,EAAGg+E,WAAWrlF,EAAM,KACrC,MAEF,IAAK,OACHA,EAAQ0iE,EAAK1iE,GAAO2lF,MAAMzB,GAC1B7/D,QAAQikE,KAAK,uCACb,MAEF,IAAK,SACCtoF,EAAQ0iE,EAAK1iE,GAAO2lF,MAAMzB,GAC9B78E,EAAE,GAAKg+E,WAAWrlF,EAAM,IACxBqH,EAAE,GAAKg+E,WAAWrlF,EAAM,IACxBqH,EAAE,GAAKg+E,WAAWrlF,EAAM,IACxBqH,EAAE,GAAKg+E,WAAWrlF,EAAM,IACxBqH,EAAE,GAAKg+E,WAAWrlF,EAAM,IACxBqH,EAAE,GAAKg+E,WAAWrlF,EAAM,IACxB,OAIN6R,EAAKslB,kBAAkB9vB,IAK3B,IAAIkhF,EAAa,6BAEjB,SAASf,EAAoBxB,GAC3B,IAAInuF,EAAQmuF,EAAQZ,aAAa,SAC7BpsE,EAAS,GAEb,IAAKnhB,EACH,OAAOmhB,EAGT,IAEIwvE,EAFAC,EAAY,GAChBF,EAAWngC,UAAY,EAGvB,MAAoD,OAA5CogC,EAAiBD,EAAWG,KAAK7wF,IACvC4wF,EAAUD,EAAe,IAAMA,EAAe,GAGhD,IAAK,IAAIf,KAAeP,EAClBA,EAAc93E,eAAeq4E,IAA0C,MAA1BgB,EAAUhB,KACzDzuE,EAAOkuE,EAAcO,IAAgBgB,EAAUhB,IAInD,OAAOzuE,EAUT,SAAS4sE,EAAqBL,EAAa1xF,EAAO0K,GAChD,IAAIqxD,EAAS/7D,EAAQ0xF,EAAY1xF,MAC7BizC,EAASvoC,EAASgnF,EAAYhnF,OAC9BuC,EAAQ5C,KAAK6E,IAAI6sD,EAAQ9oB,GAEzB6hD,EAAe,CAAC7nF,EAAOA,GACvB8nF,EAAkB,GAAGrD,EAAYztF,EAAIytF,EAAY1xF,MAAQ,GAAKiN,EAAQjN,EAAQ,IAAK0xF,EAAYxtF,EAAIwtF,EAAYhnF,OAAS,GAAKuC,EAAQvC,EAAS,GAClJ,MAAO,CACLuC,MAAO6nF,EACPtrF,SAAUurF,GAqBd,SAASC,EAAS3D,EAAKrjF,GACrB,IAAIwiF,EAAS,IAAIQ,EACjB,OAAOR,EAAOx2E,MAAMq3E,EAAKrjF,GAG3B7M,EAAQmvF,SAAWA,EACnBnvF,EAAQ4wF,qBAAuBA,EAC/B5wF,EAAQ6zF,SAAWA,G,wBC/pBnB,IAAI5zF,EAAS,EAAQ,QAEjB8gB,EAAiB,EAAQ,QAEzBu7C,EAAa,EAAQ,QAqBrBw3B,EAAoB,CAAC,GAAI,KACzBC,EAAkBhzE,EAAelkB,OAAO,CAC1CC,KAAM,uBAKNsB,cAAe,CACbiG,MAAO,OAEP2vF,YAAY,EAGZ76E,MAAO,KAIPq/D,UAAU,EAEVh3D,WAAY,KAEZD,UAAW,KAEX5d,WAAW,EAEXswF,kBAAmB,KAEnBC,kBAAmB,MAQrBrjF,cAAe,SAAUiR,EAAWC,GAClCgyE,EAAgBztF,WAAWjJ,KAAM,gBAAiBkJ,WAClDlJ,KAAK4kB,cACL5kB,KAAKklB,aAAY,SAAUC,GACzBA,EAAcE,cAAgB,SAC9BF,EAAcG,WAAatlB,KAAKulB,eAGlCvlB,KAAK82F,eAOPC,cAAe,WACbL,EAAgBztF,WAAWjJ,KAAM,gBAAiBkJ,WAClD,IAAIjF,EAAWjE,KAAKiE,SACH,eAAjBjE,KAAKs0E,SAA4BrwE,EAASoD,WAC1B,MAAfpD,EAAS,IAAc8U,MAAM9U,EAAS,OAASA,EAAS,GAAKwyF,EAAkB,KAChE,MAAfxyF,EAAS,IAAc8U,MAAM9U,EAAS,OAASA,EAAS,GAAKwyF,EAAkB,KAMlFK,YAAa,WACX,IAAIxxE,EAAatlB,KAAKulB,YAClBzJ,EAAQ9b,KAAKH,OAAOic,OAEnBA,GAASA,EAAMk7E,MAGlB1xE,EAAW0xE,KAAO,EAClBh3F,KAAKH,OAAOic,MAAQwJ,GACX1iB,EAAOogB,QAAQlH,KACpBA,EAAM,GAAKA,EAAM,IACnBA,EAAMzU,UAGRyU,EAAM,GAAKjQ,KAAK4E,IAAIqL,EAAM,GAAIwJ,EAAW,IACzCxJ,EAAM,GAAKjQ,KAAK6E,IAAIoL,EAAM,GAAIwJ,EAAW,MAQ7CG,qBAAsB,WACpB/B,EAAe5V,UAAU2X,qBAAqBa,MAAMtmB,KAAMkJ,WAC1DtG,EAAOzD,KAAKa,KAAKqmB,WAAW,SAAUjB,GACpC,IAAI20B,EAAa/5C,KAAKH,OAAO4iC,WAAWrd,GAAO20B,WAE3CA,GAAcA,EAAW,KAAOA,EAAW,KAC7CA,EAAW,GAAK,KAEjB/5C,OAMLymB,YAAa,SAAUhf,GACrBzH,KAAKH,OAAOic,MAAQrU,EAASH,QAE7BtH,KAAK82F,eAMPG,YAAa,WACX,IAAI3xE,EAAatlB,KAAKulB,YAClB40D,EAAelb,EAAW2U,KAAK5zE,KAAKkC,IAAI,UAAY,IAAIoF,SAM5D,OAJA6yE,EAAa,GAAK70D,EAAW,KAAO60D,EAAa,GAAK70D,EAAW,IACjE60D,EAAa,GAAK70D,EAAW,KAAO60D,EAAa,GAAK70D,EAAW,IACjE60D,EAAa,GAAK70D,EAAW,KAAO60D,EAAa,GAAK70D,EAAW,IACjE60D,EAAa,GAAK70D,EAAW,KAAO60D,EAAa,GAAK70D,EAAW,IAC1D60D,GAMT90E,cAAe,SAAUsI,GACvB,IAAImO,EAAQ9b,KAAKH,OAAOic,MACpBwJ,EAAatlB,KAAKulB,YAGtB,OAAQzJ,EAAM,IAAMwJ,EAAW,IAAMxJ,EAAM,IAAMnO,KAAWmO,EAAM,IAAMwJ,EAAW,IAAM3X,GAASmO,EAAM,IAAM,UAAY,cAO5HnV,sBAAuB,SAAUmV,GAC/B,IAAI6K,EAAS,GAYb,OAXA3mB,KAAK4mB,kBAAiB,SAAU9kB,GAC9B,IAAI+kB,EAAc,GACdtmB,EAAOuB,EAAYtB,UACvBD,EAAKpB,KAAKa,KAAK8mB,iBAAiBvmB,IAAO,SAAUoN,EAAO/M,GACtDkb,EAAM,IAAMnO,GAASA,GAASmO,EAAM,IAAM+K,EAAYhmB,KAAKD,KAC1DZ,MACH2mB,EAAO9lB,KAAK,CACVmmB,SAAUllB,EAAYqG,GACtBvH,UAAWimB,MAEZ7mB,MACI2mB,GAMTQ,cAAe,SAAUC,GACvB,IAAI8vE,EAAQC,EAAmBn3F,KAAM,aAAcA,KAAKulB,aACpD6xE,EAAQD,EAAmBn3F,KAAM,UAAWA,KAAKH,OAAOic,MAAMxU,SAC9D+f,EAAQ,GAEZ,SAASK,EAAQ/Z,EAAOga,GACtBN,EAAMxmB,KAAK,CACT8M,MAAOA,EACPiK,MAAOwP,EAAezZ,EAAOga,KAUjC,IALA,IAAI0vE,EAAO,EACPC,EAAO,EACPC,EAAOH,EAAMnsF,OACbusF,EAAON,EAAMjsF,OAEVqsF,EAAOE,KAAUJ,EAAMnsF,QAAUisF,EAAMI,IAASF,EAAM,IAAKE,IAE5DJ,EAAMI,GAAQF,EAAMC,IACtB3vE,EAAQwvE,EAAMI,GAAO,cAIzB,IAAK,IAAIG,EAAQ,EAAGJ,EAAOE,EAAMF,IAAQI,EAAQ,EAG/CA,GAASpwE,EAAMpc,QAAUyc,EAAQ0vE,EAAMC,GAAO,cAC9C3vE,EAAQ0vE,EAAMC,GAAO,WAGvB,IAASI,EAAQ,EAAGH,EAAOE,EAAMF,MAC1BF,EAAMnsF,QAAUmsF,EAAMA,EAAMnsF,OAAS,GAAKisF,EAAMI,MAE/CG,IACFpwE,EAAMpc,QAAUyc,EAAQL,EAAMA,EAAMpc,OAAS,GAAG0C,MAAO,cACvD8pF,EAAQ,GAGV/vE,EAAQwvE,EAAMI,GAAO,eAIzB,IAAII,EAAWrwE,EAAMpc,OACrB,MAAO,CACLoc,MAAOA,EACPC,YAAa,CAACowE,EAAWrwE,EAAM,GAAGzP,MAAQ,cAAe8/E,EAAWrwE,EAAMqwE,EAAW,GAAG9/E,MAAQ,mBAKtG,SAASu/E,EAAmB3zF,EAAgBmkB,EAAYrC,GACtD,GAAIA,EAAW,KAAOA,EAAW,GAC/B,OAAOA,EAAWhe,QAYpB,IALA,IAAI6a,EAAQ,IACRy/C,GAAQt8C,EAAW,GAAKA,EAAW,IAAMnD,EACzCxU,EAAQ2X,EAAW,GACnBqyE,EAAa,GAER1pF,EAAI,EAAGA,GAAKkU,GAASxU,EAAQ2X,EAAW,GAAIrX,IACnD0pF,EAAW92F,KAAK8M,GAChBA,GAASi0D,EAIX,OADA+1B,EAAW92F,KAAKykB,EAAW,IACpBqyE,EAGT,IAAIp4F,EAAWm3F,EACfh0F,EAAOC,QAAUpD,G,uBC7PjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASyI,EAAgBC,EAAUC,GAEjC,IAAImE,EAAO1P,KAAK43F,UACZnsF,EAAMF,aAAoBwM,MAAQxM,EAAS,GAAKA,EAChDG,GAAYJ,aAAoByM,MAAQzM,EAAS,GAAKA,GAAY,EACtE,MAAqB,aAAdoE,EAAKjQ,KAAsBiQ,EAAKuoB,eAAiBpsB,KAAKC,IAAI4D,EAAKc,YAAY/E,EAAMC,GAAYgE,EAAKc,YAAY/E,EAAMC,IAG7H,SAASnM,EAASc,GAChB,IAAI2L,EAAO3L,EAAS2P,UACpB,MAAO,CACL3P,SAAU,CACRZ,KAAM,aACNgG,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,QAEf3F,IAAK,CACH8F,MAAO,SAAUZ,GAEf,OAAOpL,EAAS0L,YAAYN,IAE9Ba,KAAM1J,EAAOiC,KAAKwG,EAAiBhL,KAKzCqC,EAAOC,QAAUpD,G,uBChDjB,IAAIqD,EAAS,EAAQ,QAEjB2b,EAAO,EAAQ,QAEf0gD,EAAa,EAAQ,QAErB44B,EAAe,EAAQ,QAEvBC,EAAW,EAAQ,QAEnBC,EAAa,EAAQ,QAErB31C,EAAmB,EAAQ,QAE3BG,EAAsBH,EAAiBG,oBAoBvCy1C,EAAoB,SAAUl2F,EAAazB,EAAU43F,EAASzzF,GAChE,IAAIjE,EAAOuB,EAAYtB,UAEnB03F,EAAS1zF,EAAK/E,KAElB,IAAKmD,EAAOogB,QAAQxe,KAAqB,QAAX0zF,GAA+B,QAAXA,GAA+B,YAAXA,GAAmC,WAAXA,GAI7E,MAAd1zF,EAAKsN,OAA+B,MAAdtN,EAAKuN,OAAgB,CAC5C,IAAI8yC,EACAl3C,EAEJ,GAAkB,MAAdnJ,EAAKuN,OAA+B,MAAdvN,EAAKsN,MAC7B+yC,EAAYxkD,EAASu3F,QAAsB,MAAdpzF,EAAKuN,MAAgB,IAAM,KACxDpE,EAAQ/K,EAAO0B,SAASE,EAAKuN,MAAOvN,EAAKsN,WACpC,CACL,IAAIqmF,EAAWN,EAAaO,YAAY5zF,EAAMjE,EAAMF,EAAUyB,GAC9D+iD,EAAYszC,EAAStzC,UACrB,IAAIwzC,EAAe91C,EAAoBhiD,EAAM43F,EAASE,cACtD1qF,EAAQkqF,EAAaS,aAAa/3F,EAAM83F,EAAcH,GAGxD,IAAIK,EAA+B,MAAlB1zC,EAAU90C,IAAc,EAAI,EACzCyoF,EAAY,EAAID,EAChBE,EAAS71F,EAAO8E,MAAMlD,GACtBk0F,EAAO,GACXD,EAAOh5F,KAAO,KACdg5F,EAAOpsF,MAAQ,GACfqsF,EAAKrsF,MAAQ,GACbosF,EAAOpsF,MAAMmsF,IAAczlF,IAC3B2lF,EAAKrsF,MAAMmsF,GAAazlF,IACxB,IAAI6U,EAAYqwE,EAAQ/1F,IAAI,aAExB0lB,GAAa,GAAsB,kBAAVja,IAC3BA,GAASA,EAAMvD,QAAQyB,KAAK6E,IAAIkX,EAAW,MAG7C6wE,EAAOpsF,MAAMksF,GAAcG,EAAKrsF,MAAMksF,GAAc5qF,EACpDnJ,EAAO,CAACi0F,EAAQC,EAAM,CAEpBj5F,KAAMy4F,EACNK,WAAY/zF,EAAK+zF,WAEjB5qF,MAAOA,IAUX,OANAnJ,EAAO,CAACqzF,EAAac,cAAc72F,EAAa0C,EAAK,IAAKqzF,EAAac,cAAc72F,EAAa0C,EAAK,IAAK5B,EAAOpD,OAAO,GAAIgF,EAAK,KAEnIA,EAAK,GAAG/E,KAAO+E,EAAK,GAAG/E,MAAQ,GAE/BmD,EAAOie,MAAMrc,EAAK,GAAIA,EAAK,IAC3B5B,EAAOie,MAAMrc,EAAK,GAAIA,EAAK,IACpBA,GAGT,SAASo0F,EAAYntF,GACnB,OAAQsN,MAAMtN,KAASkuB,SAASluB,GAIlC,SAASotF,EAAqBlnD,EAAUmnD,EAAWC,EAAS14F,GAC1D,IAAI24F,EAAgB,EAAIrnD,EACpBnvC,EAAUnC,EAAS8B,WAAWwvC,GAClC,OAAOinD,EAAYE,EAAUE,KAAmBJ,EAAYG,EAAQC,KAAmBF,EAAUnnD,KAAconD,EAAQpnD,IAAatxC,EAASu3F,QAAQp1F,GAASy2F,YAAYH,EAAUnnD,IAGtL,SAASunD,EAAe74F,EAAUmE,GAChC,GAAsB,gBAAlBnE,EAASZ,KAAwB,CACnC,IAAIq5F,EAAYt0F,EAAK,GAAG6H,MACpB0sF,EAAUv0F,EAAK,GAAG6H,MAOtB,GAAIysF,GAAaC,IAAYF,EAAqB,EAAGC,EAAWC,EAAS14F,IAAaw4F,EAAqB,EAAGC,EAAWC,EAAS14F,IAChI,OAAO,EAIX,OAAOw3F,EAAasB,WAAW94F,EAAUmE,EAAK,KAAOqzF,EAAasB,WAAW94F,EAAUmE,EAAK,IAG9F,SAAS40F,EAA4B74F,EAAM2P,EAAKmpF,EAAQv3F,EAAayE,GACnE,IAEI+wB,EAFAj3B,EAAWyB,EAAYxB,iBACvB6gB,EAAY5gB,EAAK6gB,aAAalR,GAE9BopF,EAAMr6B,EAAWzqC,aAAarT,EAAUjf,IAAI,KAAMqE,EAAIylB,YACtDutE,EAAMt6B,EAAWzqC,aAAarT,EAAUjf,IAAI,KAAMqE,EAAI0lB,aAE1D,GAAKlT,MAAMugF,IAASvgF,MAAMwgF,GAEnB,CAEL,GAAIz3F,EAAYyvF,kBAEdj6D,EAAQx1B,EAAYyvF,kBAAkBhxF,EAAKk5C,UAAUl5C,EAAK4B,WAAY+N,QACjE,CACL,IAAIk6E,EAAO/pF,EAAS8B,WAChBsD,EAAIlF,EAAK2B,IAAIkoF,EAAK,GAAIl6E,GACtBxK,EAAInF,EAAK2B,IAAIkoF,EAAK,GAAIl6E,GAC1BonB,EAAQj3B,EAAS0L,YAAY,CAACtG,EAAGC,IAYnC,GAAsB,gBAAlBrF,EAASZ,KAAwB,CACnC,IAAIqS,EAAQzR,EAASu3F,QAAQ,KACzB7lF,EAAQ1R,EAASu3F,QAAQ,KACzBxN,EAAO/pF,EAAS8B,WAEhBy2F,EAAYr4F,EAAK2B,IAAIkoF,EAAK,GAAIl6E,IAChConB,EAAM,GAAKxlB,EAAMvB,cAAcuB,EAAMyT,YAAY8zE,EAAS,EAAI,IACrDT,EAAYr4F,EAAK2B,IAAIkoF,EAAK,GAAIl6E,MACvConB,EAAM,GAAKvlB,EAAMxB,cAAcwB,EAAMwT,YAAY8zE,EAAS,EAAI,KAK7DtgF,MAAMugF,KACThiE,EAAM,GAAKgiE,GAGRvgF,MAAMwgF,KACTjiE,EAAM,GAAKiiE,QAxCbjiE,EAAQ,CAACgiE,EAAKC,GA4ChBh5F,EAAKugB,cAAc5Q,EAAKonB,GAG1B,IAAI/3B,EAAWw4F,EAAWv4F,OAAO,CAC/BC,KAAM,WAwBNiP,gBAAiB,SAAU8qF,EAAe15F,EAASyG,GACjDzG,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIm2F,EAAUn2F,EAAY03F,cAE1B,GAAIvB,EAAS,CACX,IAAIlU,EAASkU,EAAQz3F,UACjBi5F,EAAWxB,EAAQyB,OACnBC,EAAS1B,EAAQ2B,KAErBH,EAASt6F,MAAK,SAAU+Q,GACtBkpF,EAA4BK,EAAUvpF,GAAK,EAAMpO,EAAayE,GAC9D6yF,EAA4BO,EAAQzpF,GAAK,EAAOpO,EAAayE,MAG/Dw9E,EAAO5kF,MAAK,SAAU+Q,GACpB6zE,EAAOjjE,cAAc5Q,EAAK,CAACupF,EAASz4E,cAAc9Q,GAAMypF,EAAO34E,cAAc9Q,QAE/ElQ,KAAK65F,eAAe33F,IAAIJ,EAAYqG,IAAIusC,kBAEzC10C,OAEL85F,aAAc,SAAUh4F,EAAam2F,EAASn4F,EAASyG,GACrD,IAAIlG,EAAWyB,EAAYxB,iBACvB0mB,EAAWllB,EAAYqG,GACvB4xF,EAAaj4F,EAAYtB,UACzBw5F,EAAch6F,KAAK65F,eACnBI,EAAWD,EAAY93F,IAAI8kB,IAAagzE,EAAYz3F,IAAIykB,EAAU,IAAI8wE,GAC1E93F,KAAKsD,MAAMgC,IAAI20F,EAAS32F,OACxB,IAAIygF,EAASphC,EAAWtiD,EAAUyB,EAAam2F,GAC3CwB,EAAW1V,EAAO/7E,KAClB2xF,EAAS5V,EAAOj5C,GAChBwH,EAAWyxC,EAAOmD,KACtB+Q,EAAQyB,OAASD,EACjBxB,EAAQ2B,KAAOD,EAEf1B,EAAQ18B,QAAQjpB,GAChB,IAAIM,EAAaqlD,EAAQ/1F,IAAI,UACzB63C,EAAak+C,EAAQ/1F,IAAI,cAsC7B,SAASg4F,EAA0B35F,EAAM2P,EAAKmpF,GAC5C,IAAIl4E,EAAY5gB,EAAK6gB,aAAalR,GAClCkpF,EAA4B74F,EAAM2P,EAAKmpF,EAAQv3F,EAAayE,GAC5DhG,EAAKihB,cAActR,EAAK,CACtB6pC,WAAY54B,EAAUjf,IAAI,eAAiB63C,EAAWs/C,EAAS,EAAI,GACnExmD,OAAQ1xB,EAAUjf,IAAI,UAAU,IAAS0wC,EAAWymD,EAAS,EAAI,GACjEzhF,MAAOuJ,EAAUjf,IAAI,oBAAsB63F,EAAWt4E,UAAU,WA1C/D7e,EAAOogB,QAAQ4vB,KAClBA,EAAa,CAACA,EAAYA,IAGF,kBAAfmH,IACTA,EAAa,CAACA,EAAYA,IAI5BgqC,EAAO/7E,KAAK7I,MAAK,SAAU+Q,GACzBgqF,EAA0BT,EAAUvpF,GAAK,GACzCgqF,EAA0BP,EAAQzpF,GAAK,MAGzCoiC,EAASnzC,MAAK,SAAU+Q,GACtB,IAAIiqF,EAAY7nD,EAASlxB,aAAalR,GAAKhO,IAAI,mBAC/CowC,EAAS9wB,cAActR,EAAK,CAC1B0H,MAAOuiF,GAAaV,EAAS93E,cAAczR,EAAK,WAElDoiC,EAASxxB,cAAc5Q,EAAK,CAACupF,EAASz4E,cAAc9Q,GAAMypF,EAAO34E,cAAc9Q,KAC/EoiC,EAAS9wB,cAActR,EAAK,CAC1B,eAAkBupF,EAAS93E,cAAczR,EAAK,cAC9C,WAAcupF,EAAS93E,cAAczR,EAAK,UAC1C,aAAgBypF,EAAOh4E,cAAczR,EAAK,cAC1C,SAAYypF,EAAOh4E,cAAczR,EAAK,eAG1C+pF,EAAShmD,WAAW3B,GAGpByxC,EAAOmD,KAAKvoC,mBAAkB,SAAUlzB,EAAIvb,GAC1Cub,EAAGqX,UAAS,SAAUvjB,GACpBA,EAAM66E,UAAYnC,QActBgC,EAASI,QAAS,EAClBJ,EAAS32F,MAAMsO,OAASqmF,EAAQ/1F,IAAI,WAAaJ,EAAYI,IAAI,aAWrE,SAASygD,EAAWtiD,EAAUyB,EAAam2F,GACzC,IAAIqC,EAGFA,EADEj6F,EACeuC,EAAOqE,IAAI5G,GAAYA,EAAS8B,YAAY,SAAUguF,GACrE,IAAI7Z,EAAOx0E,EAAYtB,UAAUgrF,iBAAiB1pF,EAAYtB,UAAUwJ,aAAammF,KAAc,GAEnG,OAAOvtF,EAAO6O,SAAS,CACrB9E,KAAMwjF,GACL7Z,MAGY,CAAC,CAChB3pE,KAAM,QACNlN,KAAM,UAIV,IAAIg6F,EAAW,IAAIl7E,EAAK+7E,EAAgBrC,GACpC0B,EAAS,IAAIp7E,EAAK+7E,EAAgBrC,GAElC3lD,EAAW,IAAI/zB,EAAK,GAAI05E,GACxBsC,EAAU33F,EAAOqE,IAAIgxF,EAAQ/1F,IAAI,QAASU,EAAO4G,MAAMwuF,EAAmBl2F,EAAazB,EAAU43F,IAEjG53F,IACFk6F,EAAU33F,EAAOyuD,OAAOkpC,EAAS33F,EAAO4G,MAAM0vF,EAAgB74F,KAGhE,IAAIm6F,EAAiBn6F,EAAWw3F,EAAa2C,eAAiB,SAAUh2F,GACtE,OAAOA,EAAKmJ,OAYd,OAVA8rF,EAASr2E,SAASxgB,EAAOqE,IAAIszF,GAAS,SAAU/1F,GAC9C,OAAOA,EAAK,MACV,KAAMg2F,GACVb,EAAOv2E,SAASxgB,EAAOqE,IAAIszF,GAAS,SAAU/1F,GAC5C,OAAOA,EAAK,MACV,KAAMg2F,GACVloD,EAASlvB,SAASxgB,EAAOqE,IAAIszF,GAAS,SAAU/1F,GAC9C,OAAOA,EAAK,OAEd8tC,EAASiK,eAAgB,EAClB,CACLv0C,KAAMyxF,EACN3uD,GAAI6uD,EACJzS,KAAM50C,GAIV5vC,EAAOC,QAAUpD,G,uBC7WjB,IAAIk7F,EAAO,EAAQ,QAEfC,EAAS,EAAQ,QAEjBC,EAAaD,EAAOC,WAEpBC,EAAwB,EAAQ,QAEhCt+E,EAAW,EAAQ,QAwCnBu+E,EAAY,SAAUl7E,GACxBA,EAAUA,GAAW,GACrB3f,KAAK86F,MAAQn7E,EAAQm7E,OAAS,GAE9B96F,KAAK4b,QAAU+D,EAAQ/D,SAAW,aAGlC5b,KAAK+6F,OAAS,GACd/6F,KAAKg7F,UAAW,EAChBh7F,KAAKi7F,MACLj7F,KAAKk7F,YACLl7F,KAAKm7F,YACLn7F,KAAKmd,SAAU,EACfw9E,EAAW7tF,KAAK9M,OAGlB66F,EAAU/sF,UAAY,CACpBC,YAAa8sF,EAMbj9E,QAAS,SAAU7B,GACjB/b,KAAK+6F,OAAOl6F,KAAKkb,IAOnBq/E,YAAa,SAAUlhF,GACrBA,EAASyD,UAAY3d,KAGrB,IAFA,IAAIq7F,EAAQnhF,EAASkE,WAEZnQ,EAAI,EAAGA,EAAIotF,EAAMpwF,OAAQgD,IAChCjO,KAAK4d,QAAQy9E,EAAMptF,KAQvBgQ,WAAY,SAAUlC,GACpB,IAAI7L,EAAMuqF,EAAK5nE,QAAQ7yB,KAAK+6F,OAAQh/E,GAEhC7L,GAAO,GACTlQ,KAAK+6F,OAAO9kC,OAAO/lD,EAAK,IAQ5BorF,eAAgB,SAAUphF,GAGxB,IAFA,IAAImhF,EAAQnhF,EAASkE,WAEZnQ,EAAI,EAAGA,EAAIotF,EAAMpwF,OAAQgD,IAChCjO,KAAKie,WAAWo9E,EAAMptF,IAGxBiM,EAASyD,UAAY,MAEvB49E,QAAS,WASP,IARA,IAAIrgF,GAAO,IAAI+kD,MAAOu7B,UAAYx7F,KAAKk7F,YAEnCjiB,EAAQ/9D,EAAOlb,KAAKi7F,MACpBI,EAAQr7F,KAAK+6F,OACbziF,EAAM+iF,EAAMpwF,OACZwwF,EAAiB,GACjBC,EAAgB,GAEXztF,EAAI,EAAGA,EAAIqK,EAAKrK,IAAK,CAC5B,IAAI8N,EAAOs/E,EAAMptF,GACb0e,EAAI5Q,EAAK6lD,KAAK1mD,EAAM+9D,GAGpBtsD,IACF8uE,EAAe56F,KAAK8rB,GACpB+uE,EAAc76F,KAAKkb,IAKvB,IAAS9N,EAAI,EAAGA,EAAIqK,GACd+iF,EAAMptF,GAAG0tF,cACXN,EAAMptF,GAAKotF,EAAM/iF,EAAM,GACvB+iF,EAAMr2B,MACN1sD,KAEArK,IAIJqK,EAAMmjF,EAAexwF,OAErB,IAASgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBytF,EAAcztF,GAAG2tF,KAAKH,EAAextF,IAGvCjO,KAAKi7F,MAAQ//E,EACblb,KAAK4b,QAAQq9D,GAIbj5E,KAAKs9B,QAAQ,QAAS27C,GAElBj5E,KAAK86F,MAAMvyF,QACbvI,KAAK86F,MAAMvyF,UAGfszF,WAAY,WACV,IAAIp+E,EAAOzd,KAGX,SAAS4hE,IACHnkD,EAAKu9E,WACPJ,EAAsBh5B,IACrBnkD,EAAKN,SAAWM,EAAK89E,WAL1Bv7F,KAAKg7F,UAAW,EAShBJ,EAAsBh5B,IAMxBrtD,MAAO,WACLvU,KAAKi7F,OAAQ,IAAIh7B,MAAOu7B,UACxBx7F,KAAKk7F,YAAc,EAEnBl7F,KAAK67F,cAMP/9E,KAAM,WACJ9d,KAAKg7F,UAAW,GAMlB99E,MAAO,WACAld,KAAKmd,UACRnd,KAAKm7F,aAAc,IAAIl7B,MAAOu7B,UAC9Bx7F,KAAKmd,SAAU,IAOnBC,OAAQ,WACFpd,KAAKmd,UACPnd,KAAKk7F,cAAe,IAAIj7B,MAAOu7B,UAAYx7F,KAAKm7F,YAChDn7F,KAAKmd,SAAU,IAOnB2b,MAAO,WACL94B,KAAK+6F,OAAS,IAMhBe,WAAY,WACV,OAAQ97F,KAAK+6F,OAAO9vF,QActB2oC,QAAS,SAAUxhC,EAAQuN,GACzBA,EAAUA,GAAW,GACrB,IAAIzF,EAAW,IAAIoC,EAASlK,EAAQuN,EAAQ1D,KAAM0D,EAAQpF,OAAQoF,EAAQlF,QAE1E,OADAza,KAAKo7F,YAAYlhF,GACVA,IAGXugF,EAAKprF,MAAMwrF,EAAWF,GACtB,IAAIp7F,EAAWs7F,EACfn4F,EAAOC,QAAUpD,G,uBClOjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI2zF,EAAe,EAAQ,QAEvBC,EAAe,EAAQ,QAoB3B5zF,EAAQyrB,eAAekoE,GACvB3zF,EAAQ2mB,eAAeitE,I,qBCnDvB,WAmBC,SAAU98E,EAAM+8E,GAGT,EAAO,CAAC,EAAW,WAAY,EAAF,EAAS,kEAH9C,CAWEj8F,GAAM,SAAU2C,EAASyF,GACvB,IAAI6pB,EAAM,SAAUiqE,GACO,qBAAZlqE,SACPA,SAAWA,QAAQmqE,OAASnqE,QAAQmqE,MAAMD,IAG7C9zF,EAIAA,EAAQg0F,YAIbh0F,EAAQg0F,YAAY,QAAS,CAAC,KAAO,oBAAoB,SAAW,CAAC,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,UAAU,CAAC,+GAA+G,CAAC,qBAAqB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,UAAU,CAAC,oBAAoB,CAAC,iBAAiB,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,oEAAoE,CAAC,cAAc,CAAC,2tCAA2tC,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,wmBAAwmB,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,MAAM,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,q5EAAq5E,cAAgB,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,IAAI,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,kBAAkB,CAAC,87BAA87B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,SAAS,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,6qCAA6qC,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,MAAM,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,0hDAA0hD,cAAgB,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,2oBAA2oB,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,IAAI,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,eAAe,CAAC,kBAAkB,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,uBAAuB,CAAC,YAAY,CAAC,wBAAwB,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,whBAAwhB,CAAC,iBAAiB,CAAC,qCAAqC,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,UAAU,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,21BAA21B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,IAAI,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,6BAA6B,CAAC,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,ixBAAixB,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,gwBAAgwB,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,IAAI,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,o1BAAo1B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,m5BAAm5B,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,w8BAAw8B,cAAgB,CAAC,CAAC,CAAC,OAAO,OAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,UAAU,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,YAAY,CAAC,oHAAoH,CAAC,22BAA22B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,IAAI,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,CAAC,UAAU,CAAC,kCAAkC,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,YAAY,CAAC,UAAU,CAAC,s2BAAs2B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,UAAU,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,cAAc,CAAC,07BAA07B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,UAAU,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,uHAAuH,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,UAAU,CAAC,2lDAA2lD,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,u+BAAu+B,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,y9CAAy9C,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,UAAU,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,ivDAAivD,cAAgB,CAAC,CAAC,MAAM,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,u9BAAu9B,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,UAAU,CAAC,ysDAAysD,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,UAAU,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,UAAU,CAAC,63CAA63C,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,UAAU,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,0gBAA0gB,CAAC,qBAAqB,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,UAAU,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,2hDAA2hD,cAAgB,CAAC,CAAC,MAAM,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,qQAAqQ,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,+PAA+P,cAAgB,CAAC,CAAC,OAAO,UAAU,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,uFAAuF,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,o3BAAo3B,CAAC,aAAa,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,WAAW,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,eAAe,YAAc,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,gHAAgH,CAAC,iBAAiB,cAAgB,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,KAAO,UAAU,GAAK,SAAS,WAAa,CAAC,GAAK,SAAS,GAAK,CAAC,UAAU,WAAW,KAAO,KAAK,SAAW,GAAG,SAAW,CAAC,KAAO,UAAU,YAAc,CAAC,cAAc,cAAgB,CAAC,CAAC,OAAO,WAAW,cAAe,IAHxpzCnqE,EAAI,6BAJJA,EAAI,6B,uBCjBZ,IAAIoqE,EAAW,EAAQ,SAEvB,WACE,IAAK,IAAIt0F,KAAOs0F,EAAU,CACxB,GAAgB,MAAZA,IAAqBA,EAASt/E,eAAehV,IAAgB,YAARA,GAA6B,eAARA,EAAsB,OACpGpF,EAAQoF,GAAOs0F,EAASt0F,KAH5B,GAOA,IAAIu0F,EAAU,EAAQ,SAEtB,WACE,IAAK,IAAIv0F,KAAOu0F,EAAS,CACvB,GAAe,MAAXA,IAAoBA,EAAQv/E,eAAehV,IAAgB,YAARA,GAA6B,eAARA,EAAsB,OAClGpF,EAAQoF,GAAOu0F,EAAQv0F,KAH3B,GAOA,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,SAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,SAER,EAAQ,SAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,S,uBClHR,IAAInF,EAAS,EAAQ,QAwBjBzD,EAAOyD,EAAOzD,KACdo9F,EAAQ,iBACRC,EAAY,oBAmBhB,SAASl+E,EAAS9O,GAChB,IAAI6T,EAAW7T,EAAI6T,SACfk5D,EAAQ/sE,EAAI+sE,MAEXA,IACHA,EAAQ,CACNkgB,KAAMp5E,GAER7T,EAAIgtE,UAAY,CACdigB,KAAM,SAIVjtF,EAAI+sE,MAAQ/sE,EAAI6T,SAAW,KAC3Bq5E,EAAQr5E,EAAUk5D,EAAO/sE,GAEzBrQ,EAAKo9E,GAAO,SAAUh8E,GACpBpB,EAAKkkB,EAASs5E,sBAAsB,SAAUlvF,GAC5ClN,EAAK09D,WAAWxwD,EAAY7K,EAAO4G,MAAMozF,EAAmBptF,UAIhE6T,EAAS46C,WAAW,eAAgBr7D,EAAO4G,MAAMqzF,EAAuBrtF,IAGxErQ,EAAKkkB,EAASy5E,mBAAmB,SAAUrvF,GACzC4V,EAAS46C,WAAWxwD,EAAY7K,EAAO4G,MAAMuzF,EAAiBvtF,OAGhE5M,EAAOyqC,OAAOkvC,EAAMl5D,EAAS25E,YAAc35E,GAG7C,SAASu5E,EAAkBptF,EAAK4Q,GAC9B,GAAI68E,EAAWj9F,MAAO,CAEpB,IAAIu8E,EAAQ35E,EAAOpD,OAAO,GAAIQ,KAAKu8F,IACnChgB,EAAMv8E,KAAKg9F,UAAY58E,EACvBs8E,EAAQt8E,EAAKm8D,EAAO/sE,QAGpB0tF,EAAW98E,EAAKpgB,KAAKg9F,SAAUh9F,KAAKw8F,GAAYhtF,GAGlD,OAAO4Q,EAGT,SAAS28E,EAAgBvtF,EAAK4Q,GAE5B,OADA5Q,EAAI8T,QAAU9T,EAAI8T,OAAO/a,OAAOvI,MACzBogB,EAGT,SAASy8E,EAAsBrtF,EAAK4Q,GAQlC,OAHAjhB,EAAKihB,EAAIm8E,IAAQ,SAAUh8F,EAAMy8F,GAC/Bz8F,IAAS6f,GAAO88E,EAAW38F,EAAK48F,eAAgBH,EAAU58E,EAAK5Q,MAE1D4Q,EAWT,SAASg9E,EAAcJ,GACrB,IAAI35E,EAAWrjB,KAAKw8F,GACpB,OAAmB,MAAZQ,GAAgC,MAAZ35E,EAAmBA,EAAWA,EAASk5E,GAAOS,GAG3E,SAASC,EAAW18F,GAClB,OAAOA,EAAKi8F,KAAej8F,EAG7B,SAASm8F,EAAQr5E,EAAUk5D,EAAO/sE,GAChC6T,EAASk5E,GAAS,GAClBp9F,EAAKo9E,GAAO,SAAUh8E,EAAMy8F,GAC1BE,EAAW38F,EAAMy8F,EAAU35E,EAAU7T,MAIzC,SAAS0tF,EAAW38F,EAAMy8F,EAAU35E,EAAU7T,GAC5C6T,EAASk5E,GAAOS,GAAYz8F,EAC5BA,EAAKi8F,GAAan5E,EAClB9iB,EAAKy8F,SAAWA,EAEZxtF,EAAI8T,SACN/iB,EAAKiP,EAAI+T,YAAc/T,EAAI8T,OAC3B9T,EAAI8T,OAAO9T,EAAIgtE,UAAUwgB,IAAaz8F,GAIxCA,EAAK68F,cAAgBA,EAGvB,IAAI79F,EAAW+e,EACf5b,EAAOC,QAAUpD,G,uBCxHjB,IA1BA,IAAIqD,EAAS,EAAQ,QAEjBy6F,EAAS,EAAQ,QAqBjBtuF,EAAW,CAAC,IAAK,IACjBwI,EAAS,CAAC,CAAC,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,GAAI,CAAC,GAAI,IAAM,CAAC,GAAI,IAAM,CAAC,GAAI,KAAM,CAAC,GAAI,IAAM,CAAC,GAAI,IAAM,CAAC,GAAI,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,MAAO,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,EAAG,MAAO,CAAC,EAAG,IAAK,CAAC,EAAG,IAAK,CAAC,EAAG,MAAO,CAAC,EAAG,OAAQ,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,GAAI,IAAK,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,IAAK,CAAC,GAAI,KAAM,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,GAAI,OAAQ,CAAC,CAAC,EAAG,KAAM,CAAC,EAAG,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,MAAO,CAAC,EAAG,MAAO,CAAC,EAAG,KAAM,CAAC,EAAG,OAEnzBtJ,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAQgD,IACjC,IAAK,IAAIgI,EAAI,EAAGA,EAAIsB,EAAOtJ,GAAGhD,OAAQgL,IACpCsB,EAAOtJ,GAAGgI,GAAG,IAAM,KACnBsB,EAAOtJ,GAAGgI,GAAG,KAAM,GACnBsB,EAAOtJ,GAAGgI,GAAG,IAAMlH,EAAS,GAC5BwI,EAAOtJ,GAAGgI,GAAG,IAAMlH,EAAS,GAIhC,SAASxP,EAAS8mD,EAASh5C,GACT,UAAZg5C,GACFh5C,EAAQxM,KAAK,IAAIw8F,EAAO,OAAQz6F,EAAOqE,IAAIsQ,GAAQ,SAAUkpB,GAC3D,MAAO,CACLhhC,KAAM,UACNghC,SAAUA,MAEV1xB,IAIRrM,EAAOC,QAAUpD,G,uBC9CjB,IAAIqD,EAAS,EAAQ,QAEjB6wE,EAAe,EAAQ,QAEvBC,EAAa,EAAQ,QAErB4pB,EAAQ,EAAQ,QAoBhBz4F,EAAOjC,EAAOiC,KACd04F,EAAiB9pB,EAAaj0E,OAAO,CACvCC,KAAM,kBAKNuJ,KAAM,SAAUlJ,EAASyG,GAOvBvG,KAAKu0E,QAMPjjE,OAAQ,SAAUyjE,EAAej1E,EAASyG,EAAK23B,GAC7Cq/D,EAAet0F,WAAWjJ,KAAM,SAAUkJ,WAI1ClJ,KAAKu0E,OAASQ,EAAc+D,kBAE5Bl2E,EAAOzD,KAAKa,KAAKy7E,sBAAsB,SAAUC,EAAepoB,GAC9D,IAAIkqC,EAAc56F,EAAOqE,IAAIy0E,GAAe,SAAU+hB,GACpD,OAAOH,EAAMI,gBAAgBD,EAAU3tE,UAEzCltB,EAAOzD,KAAKu8E,GAAe,SAAU+hB,GACnC,IAAIE,EAAaF,EAAU3tE,MACvB8tE,EAAW,GACfh7F,EAAOzD,KAAK,CAAC,MAAO,OAAQ,eAAe,SAAUg6B,GACnDykE,EAASzkE,GAAat0B,EAAKg5F,EAAa1kE,GAAYn5B,KAAMy9F,EAAWnqC,KACpEtzD,MACHs9F,EAAMp2C,SAAS3gD,EAAK,CAClBu3F,QAASR,EAAMI,gBAAgBC,GAC/BH,YAAaA,EACbO,cAAe,SAAUpxE,EAAGlnB,EAAGC,GAC7B,OAAOi4F,EAAWr9F,iBAAiBovD,aAAa,CAACjqD,EAAGC,KAEtD81E,WAAYzG,EAAc5sE,GAC1B4sE,cAAeA,EACf6oB,SAAUA,MAEX59F,QACFA,OAMLuuB,QAAS,WACP+uE,EAAMh1C,WAAWtoD,KAAKuG,IAAKvG,KAAK+0E,cAAc5sE,IAC9Co1F,EAAet0F,WAAWjJ,KAAM,UAAWkJ,WAC3ClJ,KAAKu0E,OAAS,QAGdspB,EAAe,CAIjB1xF,KAAM,SAAUsxF,EAAWnqC,EAAc7wB,EAAY9V,GACnD,IAAI+sD,EAAY15E,KAAKu0E,OACjBz4D,EAAQ49D,EAAUpyE,QAElBiI,EAAYkuF,EAAUx6B,WAAW,GAErC,GAAK1zD,EAAL,CAIA,IAAIyuF,EAAgBC,EAAiB3qC,GAAc,KAAM,CAAC3mC,EAAEiW,QAASjW,EAAEkW,SAAUtzB,EAAWkzB,EAAYg7D,GACpGS,GAAgBF,EAAcG,OAAS,EAAIH,EAAcI,WAAaJ,EAAcK,YAAcL,EAAcM,MAAQN,EAAcM,MAAQN,EAAcI,YAAcJ,EAAcK,aAAeviF,EAAM,GAAKA,EAAM,IAAMA,EAAM,GACpOrN,EAAQ5C,KAAK4E,IAAI,EAAIkc,EAAEle,MAAO,GAClCqN,EAAM,IAAMA,EAAM,GAAKoiF,GAAgBzvF,EAAQyvF,EAC/CpiF,EAAM,IAAMA,EAAM,GAAKoiF,GAAgBzvF,EAAQyvF,EAE/C,IAAI9kB,EAAap5E,KAAK+0E,cAAcsE,8BAA8BC,gBAIlE,OAHA5F,EAAW,EAAG53D,EAAO,CAAC,EAAG,KAAM,EAAGs9D,EAAWI,QAASJ,EAAWK,SACjEz5E,KAAKu0E,OAASz4D,EAEV49D,EAAU,KAAO59D,EAAM,IAAM49D,EAAU,KAAO59D,EAAM,GAC/CA,OADT,IAQFyiF,IAAKC,GAAU,SAAU1iF,EAAOvM,EAAWkuF,EAAWnqC,EAAc7wB,EAAY9V,GAC9E,IAAIqxE,EAAgBC,EAAiB3qC,GAAc,CAAC3mC,EAAE8xE,KAAM9xE,EAAE+xE,MAAO,CAAC/xE,EAAEgyE,KAAMhyE,EAAEiyE,MAAOrvF,EAAWkzB,EAAYg7D,GAC9G,OAAOO,EAAcG,QAAUriF,EAAM,GAAKA,EAAM,IAAMkiF,EAAcM,MAAQN,EAAcK,eAM5FQ,WAAYL,GAAU,SAAU1iF,EAAOvM,EAAWkuF,EAAWnqC,EAAc7wB,EAAY9V,GACrF,IAAIqxE,EAAgBC,EAAiB3qC,GAAc,CAAC,EAAG,GAAI,CAAC3mC,EAAEmyE,YAAanyE,EAAEmyE,aAAcvvF,EAAWkzB,EAAYg7D,GAClH,OAAOO,EAAcG,QAAUriF,EAAM,GAAKA,EAAM,IAAM6Q,EAAEmyE,gBAI5D,SAASN,EAAUO,GACjB,OAAO,SAAUtB,EAAWnqC,EAAc7wB,EAAY9V,GACpD,IAAI+sD,EAAY15E,KAAKu0E,OACjBz4D,EAAQ49D,EAAUpyE,QAElBiI,EAAYkuF,EAAUx6B,WAAW,GAErC,GAAK1zD,EAAL,CAIA,IAAIyvF,EAAeD,EAAgBjjF,EAAOvM,EAAWkuF,EAAWnqC,EAAc7wB,EAAY9V,GAI1F,OAHA+mD,EAAWsrB,EAAcljF,EAAO,CAAC,EAAG,KAAM,OAC1C9b,KAAKu0E,OAASz4D,EAEV49D,EAAU,KAAO59D,EAAM,IAAM49D,EAAU,KAAO59D,EAAM,GAC/CA,OADT,IAMJ,IAAImiF,EAAmB,CACrBxuF,KAAM,SAAUwvF,EAAUC,EAAU3vF,EAAWkzB,EAAYg7D,GACzD,IAAI/tF,EAAOH,EAAUG,KACjB+J,EAAM,GACNzN,EAAOyxF,EAAU3tE,MAAMxvB,iBAAiB0P,UAgB5C,OAfAivF,EAAWA,GAAY,CAAC,EAAG,GAEV,MAAbvvF,EAAKK,KACP0J,EAAI6kF,MAAQY,EAAS,GAAKD,EAAS,GACnCxlF,EAAI4kF,YAAcryF,EAAKxK,MACvBiY,EAAI2kF,WAAapyF,EAAKvG,EACtBgU,EAAI0kF,OAASzuF,EAAKtI,QAAU,GAAK,IAGjCqS,EAAI6kF,MAAQY,EAAS,GAAKD,EAAS,GACnCxlF,EAAI4kF,YAAcryF,EAAKE,OACvBuN,EAAI2kF,WAAapyF,EAAKtG,EACtB+T,EAAI0kF,OAASzuF,EAAKtI,SAAW,EAAI,GAG5BqS,GAETikC,MAAO,SAAUuhD,EAAUC,EAAU3vF,EAAWkzB,EAAYg7D,GAC1D,IAAI/tF,EAAOH,EAAUG,KACjB+J,EAAM,GACNikC,EAAQ+/C,EAAU3tE,MAAMxvB,iBACxBggD,EAAe5C,EAAM4S,gBAAgB/qC,YACrC45E,EAAczhD,EAAMsC,eAAez6B,YAqBvC,OApBA05E,EAAWA,EAAWvhD,EAAM0hD,aAAaH,GAAY,CAAC,EAAG,GACzDC,EAAWxhD,EAAM0hD,aAAaF,GAEH,eAAvB3vF,EAAU0tB,UACZxjB,EAAI6kF,MAAQY,EAAS,GAAKD,EAAS,GAGnCxlF,EAAI4kF,YAAc/9C,EAAa,GAAKA,EAAa,GACjD7mC,EAAI2kF,WAAa99C,EAAa,GAC9B7mC,EAAI0kF,OAASzuF,EAAKtI,QAAU,GAAK,IAGjCqS,EAAI6kF,MAAQY,EAAS,GAAKD,EAAS,GAGnCxlF,EAAI4kF,YAAcc,EAAY,GAAKA,EAAY,GAC/C1lF,EAAI2kF,WAAae,EAAY,GAC7B1lF,EAAI0kF,OAASzuF,EAAKtI,SAAW,EAAI,GAG5BqS,GAET4lF,WAAY,SAAUJ,EAAUC,EAAU3vF,EAAWkzB,EAAYg7D,GAC/D,IAAI/tF,EAAOH,EAAUG,KACjB1D,EAAOyxF,EAAU3tE,MAAMxvB,iBAAiB0P,UACxCyJ,EAAM,GAgBV,OAfAwlF,EAAWA,GAAY,CAAC,EAAG,GAEP,eAAhBvvF,EAAK5I,QACP2S,EAAI6kF,MAAQY,EAAS,GAAKD,EAAS,GACnCxlF,EAAI4kF,YAAcryF,EAAKxK,MACvBiY,EAAI2kF,WAAapyF,EAAKvG,EACtBgU,EAAI0kF,OAASzuF,EAAKtI,QAAU,GAAK,IAGjCqS,EAAI6kF,MAAQY,EAAS,GAAKD,EAAS,GACnCxlF,EAAI4kF,YAAcryF,EAAKE,OACvBuN,EAAI2kF,WAAapyF,EAAKtG,EACtB+T,EAAI0kF,OAASzuF,EAAKtI,SAAW,EAAI,GAG5BqS,IAGPla,EAAWg+F,EACf76F,EAAOC,QAAUpD,G,qBClOjB,IAAIqD,EAAS,EAAQ,QAEjB2b,EAAO,EAAQ,QAEfC,EAAmB,EAAQ,QAE3BpL,EAAc,EAAQ,QAEtBk6B,EAAyBl6B,EAAYk6B,uBAErCgyD,EAAmB,EAAQ,QAE3BtO,EAAyBsO,EAAiBtO,uBAE1CvoF,EAAS,EAAQ,QAEjBykC,EAAmBzkC,EAAOykC,iBAE1BijB,EAAmB,EAAQ,QAE3BovC,EAAe,EAAQ,QAEvBC,EAA0BD,EAAaC,wBAEvCpyD,EAAS,EAAQ,QAEjBgV,EAAmB,EAAQ,QAE3BC,EAAkBD,EAAiBC,gBAEnC15C,EAAgB,EAAQ,QAExB+mC,EAAkC/mC,EAAc+mC,gCA4BpD,SAASpwC,EAAoBS,EAAQ+B,EAAa0N,GAChDA,EAAMA,GAAO,GAER49B,EAAO0V,WAAW/iD,KACrBA,EAASqtC,EAAOi8C,mBAAmBtpF,IAGrC,IAGI0/F,EAHAnsC,EAAexxD,EAAYI,IAAI,oBAC/Bw9F,EAAqBvvC,EAAiBjuD,IAAIoxD,GAC1CqsC,EAAeH,EAAwB19F,GAGvC69F,IACFF,EAAkB78F,EAAOqE,IAAI04F,EAAaC,cAAc,SAAU7vF,GAChE,IAAIq7E,EAAU,CACZz+E,KAAMoD,GAEJR,EAAYowF,EAAaE,QAAQ39F,IAAI6N,GAEzC,GAAIR,EAAW,CACb,IAAI0kB,EAAW1kB,EAAUrN,IAAI,QAC7BkpF,EAAQ3rF,KAAOuxF,EAAuB/8D,GAGxC,OAAOm3D,MAINqU,IAEHA,EAAkBC,IAAuBA,EAAmBI,kBAAoBJ,EAAmBI,oBAAsBJ,EAAmBv9F,WAAWmF,UAAY,CAAC,IAAK,MAG3K,IAKIy4F,EACAC,EANAC,EAAczhF,EAAiBze,EAAQ,CACzCuJ,gBAAiBm2F,EACjBS,cAAe1wF,EAAI0wF,cACnB32F,gBAAiBiG,EAAImyD,mBAAqB/+D,EAAO4G,MAAMkmC,EAAiC+vD,EAAiB39F,GAAe,OAI1H69F,GAAgB/8F,EAAOzD,KAAK8gG,GAAa,SAAU7U,EAASz5C,GAC1D,IAAIw+C,EAAW/E,EAAQ+E,SACnBgQ,EAAoBR,EAAaS,gBAAgBl+F,IAAIiuF,GAErDgQ,IAC2B,MAAzBJ,IACFA,EAAwBpuD,GAG1By5C,EAAQziC,YAAcw3C,EAAkB52C,kBAGR,MAA9B6hC,EAAQsF,UAAU//C,WACpBqvD,GAAgB,MAIfA,GAA0C,MAAzBD,IACpBE,EAAYF,GAAuBrP,UAAU//C,SAAW,GAG1D,IAAI0vD,EAAuBh+C,EAAgBvgD,EAAam+F,GACpD98E,EAAO,IAAI5E,EAAK0hF,EAAan+F,GACjCqhB,EAAKm9E,mBAAmBD,GACxB,IAAI7F,EAA0C,MAAzBuF,GAAiCQ,EAA0BxgG,GAAU,SAAUygG,EAASh+F,EAAS5B,EAAW+wC,GAE/H,OAAOA,IAAaouD,EAAwBn/F,EAAYZ,KAAKygG,sBAAsBD,EAASh+F,EAAS5B,EAAW+wC,IAC9G,KAGJ,OAFAxuB,EAAKo5B,eAAgB,EACrBp5B,EAAKC,SAASrjB,EAAQ,KAAMy6F,GACrBr3E,EAGT,SAASo9E,EAA0BxgG,GACjC,GAAIA,EAAOouC,eAAiBb,EAAwB,CAClD,IAAIozD,EAAaC,EAAiB5gG,EAAOQ,MAAQ,IACjD,OAAqB,MAAdmgG,IAAuB99F,EAAOogB,QAAQkqB,EAAiBwzD,KAIlE,SAASC,EAAiBpgG,GACxB,IAAI0N,EAAI,EAER,MAAOA,EAAI1N,EAAK0K,QAAqB,MAAX1K,EAAK0N,GAC7BA,IAGF,OAAO1N,EAAK0N,GAGd,IAAI1O,EAAWD,EACfoD,EAAOC,QAAUpD,G,qBCvJjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElBC,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvB6gB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aACvBosE,EAAY/8E,EAAQ+8E,UAEpBC,EAAU,EAAQ,QAElBnmB,EAAWmmB,EAAQnmB,SAoBnBomB,EAAyB,CAAC,YAAa,eAEvCC,EAAe,CAAC,CAClB53D,GAAI,IACJD,GAAI,QACJ/hC,MAAO,EACP65F,QAAS,CAAC,OAAQ,UACjB,CACD73D,GAAI,IACJD,GAAI,SACJ/hC,MAAO,EACP65F,QAAS,CAAC,MAAO,YAEfC,EAAmB,IAAIn+F,EAAQo+C,OAC/BggD,EAAU94F,EAAQq1C,gBAAgB,CACpCh+C,KAAM,eACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIjD,EAAQtD,KAAKsD,MACb/C,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MACfujD,EAAYr/F,EAAYxB,iBACxBw3B,EAAWqpE,EAAUppE,cACrB5D,IAAiB2D,EAAS3D,eAC1BitE,EAAeD,EAAU1xF,KAAKO,UAC9BR,EAAM,CACRmmE,OAAQ,CACNn0E,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAEdnqB,YAAaA,EACbzB,SAAU8gG,EACVE,eAAgB,CAAC,CAACD,EAAa37F,EAAG27F,EAAa37F,EAAI27F,EAAa5/F,OAAQ,CAAC4/F,EAAa17F,EAAG07F,EAAa17F,EAAI07F,EAAal1F,SACvHioB,aAAcA,EACdpqB,SAAUg3F,GAAc5sE,GACxBmtE,YAAaP,EAAa,EAAI5sE,IA+ChC,OA7CA5zB,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAU1E,GAC/B,GAAKL,EAAK2qD,SAAStqD,GAAnB,CAIA,IAAIugB,EAAYC,EAAa7gB,EAAMK,GAC/B2gG,EAAaC,EAAcjhG,EAAMK,EAAWugB,EAAW3R,GACvD23E,EAAMsa,EAAUlhG,EAAMiP,EAAK+xF,GAC/BhhG,EAAKqhC,iBAAiBhhC,EAAWumF,GACjC7jF,EAAMgC,IAAI6hF,GACVua,EAAava,EAAK33E,EAAK+xF,OACtBh5F,QAAO,SAAUo5F,EAAUC,GAC5B,IAAIza,EAAMxpC,EAAQpE,iBAAiBqoD,GAEnC,GAAKrhG,EAAK2qD,SAASy2C,GAAnB,CAKA,IAAIxgF,EAAYC,EAAa7gB,EAAMohG,GAC/BJ,EAAaC,EAAcjhG,EAAMohG,EAAUxgF,EAAW3R,GACtDqyF,EAAoBC,EAAYvhG,EAAMghG,GAEtCpa,GAAO0a,IAAsB1a,EAAI4a,sBACnCz+F,EAAM++B,OAAO8kD,GACb5mF,EAAKqhC,iBAAiB+/D,EAAU,MAChCxa,EAAM,MAGJA,EACF6a,EAAU7a,EAAK33E,EAAK+xF,GAEpBpa,EAAMsa,EAAUlhG,EAAMiP,EAAK+xF,GAAY,GAGzChhG,EAAKqhC,iBAAiB+/D,EAAUxa,GAChCA,EAAI8a,sBAAwBV,EAE5Bj+F,EAAMgC,IAAI6hF,GACVua,EAAava,EAAK33E,EAAK+xF,QAxBrBj+F,EAAM++B,OAAO8kD,MAyBd9kD,QAAO,SAAUzhC,GAClB,IAAIumF,EAAMxpC,EAAQpE,iBAAiB34C,GACnCumF,GAAO+a,EAAUvkD,EAAS/8C,EAAWumF,EAAI8a,sBAAsBE,eAAgBhb,MAC9EzoC,UACH1+C,KAAK49C,MAAQr9C,EACNP,KAAKsD,OAEdirB,QAAS3rB,EAAOg2C,KAChBvW,OAAQ,SAAUviC,EAASyG,GACzB,IAAIjD,EAAQtD,KAAKsD,MACb/C,EAAOP,KAAK49C,MAEZ99C,EAAQoC,IAAI,aACV3B,GACFA,EAAKo+C,mBAAkB,SAAUwoC,GAC/B+a,EAAU3hG,EAAM4mF,EAAIvmF,UAAWd,EAASqnF,MAI5C7jF,EAAMC,eAKZ,SAASi+F,EAAcjhG,EAAMK,EAAWugB,EAAW3R,GACjD,IAAIvM,EAAS1C,EAAKygB,cAAcpgB,GAC5BwhG,EAAejhF,EAAUjf,IAAI,gBAC7BmgG,EAAalhF,EAAUjf,IAAI,cAC3BogG,EAAiBnhF,EAAUjf,IAAI,mBAAqB,QACpDw6C,EAAev7B,EAAUjf,IAAI,gBAC7ByO,GAAY+rC,GAAgB,GAAK7wC,KAAK+E,GAAK,KAAO,EAClD2xF,EAAoBphF,EAAUjf,IAAI,sBAAwB,EAC1Dk7C,EAAqBj8B,EAAUi8B,qBAC/BmkD,EAAa,CACf3gG,UAAWA,EACXqC,OAAQA,EACRke,UAAWA,EACXyxB,WAAYryC,EAAKohB,cAAc/gB,EAAW,WAAa,SACvDgX,MAAOrX,EAAKohB,cAAc/gB,EAAW,SACrCyhG,WAAYA,EACZD,aAAcA,EACdI,sBAAuBrhF,EAAUjf,IAAI,yBACrCqgG,kBAAmBA,EACnB5xF,SAAUA,EACVwxF,eAAgB/kD,EAAqBj8B,EAAY,KACjDk7B,eAAgBe,GAAsBj8B,EAAUjf,IAAI,kBACpDkP,GAAI+P,EAAUq7B,WAAW,KAAK,IAAS,GAEzCimD,EAAiBthF,EAAWihF,EAAcn/F,EAAQuM,EAAK+xF,GACvDmB,EAAkBniG,EAAMK,EAAWqC,EAAQm/F,EAAcC,EAAYd,EAAWoB,eAAgBpB,EAAWqB,OAAQL,EAAmB/yF,EAAK+xF,GAC3IsB,EAAiB1hF,EAAWogF,EAAWuB,YAAanyF,EAAUnB,EAAK+xF,GACnE,IAAIxnD,EAAawnD,EAAWxnD,WACxBqC,EAAej7B,EAAUjf,IAAI,gBAOjC,OALIU,EAAOogB,QAAQo5B,KACjBA,EAAe,CAAC5nB,EAAa4nB,EAAa,GAAIrC,EAAW,IAAKvlB,EAAa4nB,EAAa,GAAIrC,EAAW,MAGzGgpD,EAAkB5hF,EAAW44B,EAAY92C,EAAQm/F,EAAcC,EAAYjmD,EAAckmD,EAAgBf,EAAWyB,eAAgBzB,EAAWoB,eAAgBpB,EAAW0B,gBAAiBzzF,EAAK+xF,GACzLA,EAIT,SAASkB,EAAiBthF,EAAWihF,EAAcn/F,EAAQuM,EAAK0zF,GAC9D,IAKIP,EALA54F,EAAWyF,EAAIzF,SACfo5F,EAAqBhiF,EAAUjf,IAAI,sBACnC2iD,EAAYr1C,EAAInP,SAASwxD,aAAariD,EAAInP,SAAS03B,eACnDqrE,EAASv+C,EAAUt0C,cAAcs0C,EAAUr0C,YAAY,IACvD6yF,EAAY,IAAMpgG,EAAO8G,EAASm/B,KAAO,GAG7C,GAAItmC,EAAOogB,QAAQmgF,GAAqB,CACtC,IAAIG,EAAuB,CAACC,EAAqB1+C,EAAWs+C,EAAmB,IAAMC,EAAQG,EAAqB1+C,EAAWs+C,EAAmB,IAAMC,GACtJE,EAAqB,GAAKA,EAAqB,IAAMA,EAAqBj8F,UAC1Es7F,EAAiBW,EAAqBD,QAEtCV,EAD+B,MAAtBQ,EACQI,EAAqB1+C,EAAWs+C,GAAsBC,EAC9DhB,EACQ5yF,EAAI6xF,eAAet3F,EAAS5C,OAAOk8F,GAAaD,EAEhDngG,EAAO8G,EAASm/B,IAGnCg6D,EAAOP,eAAiBA,EAEpBP,IACFc,EAAOD,gBAAkBhgG,EAAO8G,EAASm/B,KAG3Cg6D,EAAON,OAASD,EAAiB,EAAI,EAAIA,EAAiB,GAAK,EAAI,EAGrE,SAASY,EAAqB7zF,EAAM/B,GAClC,OAAO+B,EAAKa,cAAcb,EAAKc,YAAYd,EAAKjB,MAAM+M,MAAM7N,KAI9D,SAAS+0F,EAAkBniG,EAAMK,EAAWqC,EAAQm/F,EAAcC,EAAYM,EAAgBC,EAAQL,EAAmB/yF,EAAK0zF,GAC5H,IAAIn5F,EAAWyF,EAAIzF,SACfu3F,EAAc9xF,EAAI8xF,YAClBkC,EAAe33F,KAAKC,IAAI7I,EAAOq+F,EAAYp4D,KAC3C6Q,EAAax5C,EAAKohB,cAAc/gB,EAAW,cAE3CgC,EAAOogB,QAAQ+2B,GACjBA,EAAaA,EAAWzyC,SAEN,MAAdyyC,IACFA,EAAa,QAGfA,EAAa,CAACA,EAAYA,IAO5BA,EAAWunD,EAAYn6F,OAASqtB,EAAaulB,EAAWunD,EAAYn6F,OAAQq8F,GAC5EzpD,EAAWhwC,EAAS5C,OAASqtB,EAAaulB,EAAWhwC,EAAS5C,OAAQi7F,EAAeoB,EAAe33F,KAAKC,IAAI62F,IAC7GO,EAAOnpD,WAAaA,EAEpB,IAAI+oD,EAAcI,EAAOJ,YAAc,CAAC/oD,EAAW,GAAKwoD,EAAmBxoD,EAAW,GAAKwoD,GAE3FO,EAAY/4F,EAAS5C,SAAWqI,EAAI2kB,cAAgB,EAAI,GAAKyuE,EAG/D,SAASC,EAAiB1hF,EAAW2hF,EAAanyF,EAAUnB,EAAK0zF,GAI/D,IAAIF,EAAiB7hF,EAAUjf,IAAI4+F,IAA2B,EAE1DkC,IACF/B,EAAiBjhF,KAAK,CACpBvR,MAAOq0F,EAAYx7F,QACnBqJ,SAAUA,IAEZswF,EAAiBvyF,kBACjBs0F,GAAkB/B,EAAiB9T,eACnC6V,GAAkBF,EAAYtzF,EAAIzF,SAAS5C,QAG7C+7F,EAAOF,eAAiBA,EAG1B,SAASD,EAAkB5hF,EAAW44B,EAAY92C,EAAQm/F,EAAcC,EAAYjmD,EAAckmD,EAAgBU,EAAgBL,EAAgBM,EAAiBzzF,EAAK0zF,GACtK,IAAI5B,EAAc9xF,EAAI8xF,YAClBv3F,EAAWyF,EAAIzF,SACf64F,EAASM,EAAON,OAChBa,EAAa53F,KAAK4E,IAAIspC,EAAWhwC,EAAS5C,OAAS67F,EAAgB,GACnEU,EAAUD,EAId,GAAIrB,EAAc,CAChB,IAAIuB,EAAoB93F,KAAKC,IAAI62F,GAC7BiB,EAAehhG,EAAO0B,SAAS6c,EAAUjf,IAAI,gBAAiB,OAAS,GACvE2hG,GAAY,EAEZD,EAAaE,YAAY,OAASF,EAAa34F,OAAS,IAC1D44F,GAAY,EACZD,EAAeA,EAAat8F,MAAM,EAAGs8F,EAAa34F,OAAS,IAG7D24F,EAAepvE,EAAaovE,EAAc7pD,EAAWhwC,EAAS5C,QAC9D,IAAI48F,EAAiBl4F,KAAK4E,IAAIgzF,EAA4B,EAAfG,EAAkB,GAGzDI,EAASH,EAAY,EAAmB,EAAfD,EAGzBK,EAAkBrD,EAAUwB,GAC5B8B,EAAcD,EAAkB7B,EAAe+B,GAAYR,EAAoBK,GAAUD,GAGzFK,EAAQT,EAAoBO,EAAcT,EAC9CG,EAAeQ,EAAQ,GAAKP,EAAYK,EAAcA,EAAc,GACpEH,EAAiBN,EAA4B,EAAfG,EAC9BI,EAASH,EAAY,EAAmB,EAAfD,EAEpBK,GAAoC,UAAjB7B,IACtB8B,EAAcjB,EAAkBkB,GAAYt4F,KAAKC,IAAIm3F,GAAmBe,GAAUD,GAAkB,GAGtGL,EAAUQ,EAAcH,EAAiBC,EACzCd,EAAOgB,YAAcA,EACrBhB,EAAOU,aAAeA,EAGxB,IAAIS,EAAUzB,GAAUc,EAAU,GAC9BY,EAAepB,EAAOoB,aAAe,GACzCA,EAAahD,EAAYn6F,OAASlE,EAAOq+F,EAAYp4D,IAAM,EAC3Do7D,EAAav6F,EAAS5C,OAA4B,UAAnBm7F,EAA6B+B,EAA6B,QAAnB/B,EAA2BK,EAAiB0B,EAAU1B,EAAiB,EAEzIvmD,IACFkoD,EAAa,IAAMloD,EAAa,GAChCkoD,EAAa,IAAMloD,EAAa,IAGlC,IAAImoD,EAAiBrB,EAAOqB,eAAiB,GAC7CA,EAAejD,EAAYn6F,OAASlE,EAAOq+F,EAAYn4D,IACvDo7D,EAAex6F,EAAS5C,OAASlE,EAAO8G,EAASo/B,IACjD,IAAIq7D,EAAetB,EAAOsB,aAAe5hG,EAAOpD,OAAO,GAAIyD,GAC3DuhG,EAAaz6F,EAASm/B,IAAM05D,EAAS/2F,KAAK4E,IAAI5E,KAAKC,IAAI7I,EAAO8G,EAASm/B,KAAMr9B,KAAKC,IAAIw4F,EAAav6F,EAAS5C,OAASk9F,IACrHG,EAAalD,EAAYp4D,IAAMjmC,EAAOq+F,EAAYp4D,IAClD,IAAIoB,EAAY44D,EAAO54D,UAAY,GAEnCA,EAAUg3D,EAAYn4D,KAAOlmC,EAAOq+F,EAAYn4D,IAChDmB,EAAUg3D,EAAYp4D,IAAM15B,EAAImmE,OAAO2rB,EAAYp4D,IACnDoB,EAAUvgC,EAASo/B,IAAM,EACzBmB,EAAUvgC,EAASm/B,IAAMjmC,EAAO8G,EAASm/B,IAG3C,SAASu7D,EAAWlD,GAClB,IAAIgB,EAAoBhB,EAAWgB,kBAC/BrhF,EAAOle,EACXu+F,EAAW3uD,YAAa2vD,EAAoB,GAAIA,EAAoB,EAAGA,EAAmBA,EAAmBhB,EAAW3pF,OAOxH,OANAsJ,EAAKlB,KAAK,CACR+gB,SAAS,IAEG,UAAd7f,EAAKzhB,MAAoByhB,EAAK2f,SAAS,CACrCC,eAAe,IAEV5f,EAGT,SAASwjF,EAA4Bvd,EAAK33E,EAAK+xF,EAAYhxB,GACzD,IAAIo0B,EAASxd,EAAIyd,kBACb7qD,EAAawnD,EAAWxnD,WACxBipD,EAAiBzB,EAAWyB,eAC5BsB,EAAe/C,EAAW+C,aAC1Bv6F,EAAWyF,EAAIzF,SACfm6F,EAAc3C,EAAW2C,aAAe,EACxC/8F,EAAQ,EACR09F,EAAO9qD,EAAWvqC,EAAIzF,SAAS5C,OAAS67F,EAA2C,EAA1BzB,EAAWqC,aAmBxE,IAlBAkB,EAAS3d,GAAK,SAAUjmE,GACtBA,EAAK6jF,0BAA4B59F,EACjC+Z,EAAK8jF,uBAAyBd,EAE1B/8F,EAAQ+8F,EACVe,EAAW/jF,EAAM,KAAMgkF,EAAW/9F,GAAQo6F,EAAYhxB,GAEtD00B,EAAW/jF,EAAM,KAAM,CACrBzS,MAAO,CAAC,EAAG,IACV8yF,EAAYhxB,GAAU,WACvBo0B,EAAOtiE,OAAOnhB,MAIlBikF,EAAqBjkF,EAAMqgF,GAC3Bp6F,OAGKA,EAAQ+8F,EAAa/8F,IAAS,CACnC,IAAI+Z,EAAOujF,EAAWlD,GACtBrgF,EAAK6jF,0BAA4B59F,EACjC+Z,EAAK8jF,uBAAyBd,EAC9BS,EAAOr/F,IAAI4b,GACX,IAAI9O,EAAS8yF,EAAW/9F,GACxB89F,EAAW/jF,EAAM,CACflW,SAAUoH,EAAOpH,SACjByD,MAAO,CAAC,EAAG,IACV,CACDA,MAAO2D,EAAO3D,MACdkC,SAAUyB,EAAOzB,UAChB4wF,EAAYhxB,GAGfrvD,EAAKta,GAAG,YAAaw+F,GAAax+F,GAAG,WAAYy+F,GACjDF,EAAqBjkF,EAAMqgF,GAG7B,SAAS2D,EAAW/9F,GAClB,IAAI6D,EAAWs5F,EAAah9F,QAGxBs7F,EAASrB,EAAWqB,OACpB30F,EAAI9G,EAOR,OALyC,UAArCo6F,EAAWiB,sBAAoCI,EAAS,EAAIA,EAAS,KACvE30F,EAAIi2F,EAAc,EAAI/8F,GAGxB6D,EAASjB,EAAS5C,OAAS09F,GAAQ52F,EAAIi2F,EAAc,EAAI,IAAOI,EAAav6F,EAAS5C,OAC/E,CACL6D,SAAUA,EACVyD,MAAO8yF,EAAWuB,YAAYx7F,QAC9BqJ,SAAU4wF,EAAW5wF,UAIzB,SAASy0F,IACPN,EAAS3d,GAAK,SAAUjmE,GACtBA,EAAKoc,QAAQ,eAIjB,SAAS+nE,IACPP,EAAS3d,GAAK,SAAUjmE,GACtBA,EAAKoc,QAAQ,cAKnB,SAASgoE,EAA2Bne,EAAK33E,EAAK+xF,EAAYhxB,GACxD,IAAIo0B,EAASxd,EAAIyd,kBACbW,EAAWpe,EAAIqe,oBAuBnB,SAASJ,IACPplG,KAAKs9B,QAAQ,YAGf,SAAS+nE,IACPrlG,KAAKs9B,QAAQ,UA1BVioE,EAYHN,EAAWM,EAAU,KAAM,CACzBv6F,SAAUu2F,EAAW+C,aAAah9F,QAClCmH,MAAO8yF,EAAWuB,YAAYx7F,QAC9BqJ,SAAU4wF,EAAW5wF,UACpB4wF,EAAYhxB,IAffg1B,EAAWpe,EAAIqe,oBAAsBf,EAAWlD,GAChDoD,EAAOr/F,IAAIigG,GACXN,EAAWM,EAAU,CACnBv6F,SAAUu2F,EAAW+C,aAAah9F,QAClCmH,MAAO,CAAC,EAAG,GACXkC,SAAU4wF,EAAW5wF,UACpB,CACDlC,MAAO8yF,EAAWuB,YAAYx7F,SAC7Bi6F,EAAYhxB,GACfg1B,EAAS3+F,GAAG,YAAaw+F,GAAax+F,GAAG,WAAYy+F,IASvDF,EAAqBI,EAAUhE,GAYjC,SAASkE,EAAsBte,EAAKoa,EAAYhxB,GAC9C,IAAIm1B,EAAY9iG,EAAOpD,OAAO,GAAI+hG,EAAWiD,cACzCmB,EAAUxe,EAAIye,mBAEbD,EAaHV,EAAWU,EAAS,KAAM,CACxBn0F,MAAOk0F,GACNnE,EAAYhxB,IAdfo1B,EAAUxe,EAAIye,mBAAqB,IAAI9iG,EAAQyO,KAAK,CAClDH,GAAI,EACJI,MAAOk0F,EACP9zF,QAAQ,EACRpM,MAAO,CACLq5C,OAAQ,cACRntC,KAAM,cACNgnE,UAAW,KAGfyO,EAAI7hF,IAAIqgG,IAQZ,SAASE,EAAmB1e,EAAK33E,EAAK+xF,EAAYhxB,GAEhD,GAAIgxB,EAAWc,WAAY,CACzB,IAAI92C,EAAW47B,EAAI2e,oBACfx7D,EAAY1nC,EAAOpD,OAAO,GAAI+hG,EAAWj3D,WACzCvgC,EAAWyF,EAAIzF,SACfo4F,EAAiBZ,EAAWY,eAC5BvhG,EAAY2gG,EAAW3gG,UAE3B,GAAI2qD,EACFzoD,EAAQk8B,YAAYusB,EAAU,CAC5B/5C,MAAO84B,GACN63D,EAAgBvhG,OACd,CACL0pC,EAAUvgC,EAASm/B,IAAM,EACzBqiB,EAAW,IAAIzoD,EAAQyO,KAAK,CAC1BC,MAAO84B,IAGT68C,EAAIyd,kBAAkBr6D,YAAYghB,GAElC47B,EAAI2e,oBAAsBv6C,EAC1B,IAAIn5C,EAAS,GACbA,EAAOrI,EAASm/B,IAAMq4D,EAAWj3D,UAAUvgC,EAASm/B,IACpDpmC,EAAQytE,EAAW,cAAgB,aAAahlB,EAAU,CACxD/5C,MAAOY,GACN+vF,EAAgBvhG,KAKzB,SAASwgB,EAAa7gB,EAAMK,GAC1B,IAAIugB,EAAY5gB,EAAK6gB,aAAaxgB,GAGlC,OAFAugB,EAAUyvD,wBAA0BA,EACpCzvD,EAAUi8B,mBAAqBA,EACxBj8B,EAGT,SAASyvD,EAAwB1vD,GAE/B,MAAO,CACL/Z,MAAO+Z,EAAK6jF,0BACZ5iF,MAAOjB,EAAK8jF,wBAIhB,SAAS5nD,IAEP,OAAOp9C,KAAKk/C,YAAY9B,wBAA0Bp9C,KAAKw8C,WAAW,aAGpE,SAAS2oD,EAAqBjkF,EAAMqgF,GAClCrgF,EAAK2b,IAAI,YAAYA,IAAI,UACzB,IAAIpuB,EAAQ8yF,EAAWuB,YAAYx7F,QACnCi6F,EAAWllD,gBAAkBn7B,EAAKta,GAAG,YAAY,WAC/C5G,KAAK87C,UAAU,CACbrtC,MAAO,CAAY,IAAXA,EAAM,GAAqB,IAAXA,EAAM,KAC7B,IAAK,iBACP7H,GAAG,UAAU,WACd5G,KAAK87C,UAAU,CACbrtC,MAAOA,EAAMnH,SACZ,IAAK,iBAIZ,SAASm6F,EAAUlhG,EAAMiP,EAAK+xF,EAAYhxB,GAExC,IAAI4W,EAAM,IAAIrkF,EAAQ6B,MAElBggG,EAAS,IAAI7hG,EAAQ6B,MAezB,OAdAwiF,EAAI7hF,IAAIq/F,GACRxd,EAAIyd,kBAAoBD,EACxBA,EAAO3kF,KAAK,WAAYuhF,EAAWgD,eAAej9F,SAE9Ci6F,EAAWa,aACbsC,EAA4Bvd,EAAK33E,EAAK+xF,GAEtC+D,EAA2Bne,EAAK33E,EAAK+xF,GAGvCkE,EAAsBte,EAAKoa,EAAYhxB,GACvCs1B,EAAmB1e,EAAK33E,EAAK+xF,EAAYhxB,GACzC4W,EAAI4a,oBAAsBD,EAAYvhG,EAAMghG,GAC5Cpa,EAAI8a,sBAAwBV,EACrBpa,EAGT,SAAS6a,EAAU7a,EAAK33E,EAAK+xF,GAC3B,IAAIY,EAAiBZ,EAAWY,eAC5BvhG,EAAY2gG,EAAW3gG,UACvB+jG,EAASxd,EAAIyd,kBACjB9hG,EAAQk8B,YAAY2lE,EAAQ,CAC1B35F,SAAUu2F,EAAWgD,eAAej9F,SACnC66F,EAAgBvhG,GAEf2gG,EAAWa,aACbsC,EAA4Bvd,EAAK33E,EAAK+xF,GAAY,GAElD+D,EAA2Bne,EAAK33E,EAAK+xF,GAAY,GAGnDkE,EAAsBte,EAAKoa,GAAY,GACvCsE,EAAmB1e,EAAK33E,EAAK+xF,GAAY,GAG3C,SAASW,EAAU3hG,EAAMK,EAAWuhG,EAAgBhb,GAElD,IAAI4e,EAAY5e,EAAIye,mBACpBG,IAAcA,EAAUvgG,MAAMG,KAAO,MACrC,IAAIqgG,EAAS,GACblB,EAAS3d,GAAK,SAAUjmE,GACtB8kF,EAAOnlG,KAAKqgB,MAEdimE,EAAIqe,qBAAuBQ,EAAOnlG,KAAKsmF,EAAIqe,qBAE3Cre,EAAI2e,sBAAwB3D,EAAiB,MAC7Cv/F,EAAOzD,KAAK6mG,GAAQ,SAAU9kF,GAC5Bpe,EAAQk8B,YAAY9d,EAAM,CACxBzS,MAAO,CAAC,EAAG,IACV0zF,EAAgBvhG,GAAW,WAC5BumF,EAAItlE,QAAUslE,EAAItlE,OAAOwgB,OAAO8kD,SAGpC5mF,EAAKqhC,iBAAiBhhC,EAAW,MAGnC,SAASkhG,EAAYvhG,EAAMghG,GACzB,MAAO,CAAChhG,EAAKohB,cAAc4/E,EAAW3gG,UAAW,WAAa,SAAU2gG,EAAWa,eAAgBb,EAAWc,YAAYxoF,KAAK,KAGjI,SAASirF,EAAS3d,EAAKhpE,EAAIyB,GAEzBhd,EAAOzD,KAAKgoF,EAAIyd,kBAAkB/lF,YAAY,SAAU4M,GACtDA,IAAO07D,EAAIye,oBAAsBznF,EAAGrR,KAAK8S,EAAS6L,MAItD,SAASw5E,EAAWx5E,EAAIw6E,EAAgBC,EAAgB3E,EAAYhxB,EAAUpyD,GAC5E8nF,GAAkBx6E,EAAGzL,KAAKimF,GAEtB1E,EAAWc,aAAe9xB,EAC5B21B,GAAkBz6E,EAAGzL,KAAKkmF,GAE1BA,GAAkBpjG,EAAQytE,EAAW,cAAgB,aAAa9kD,EAAIy6E,EAAgB3E,EAAWY,eAAgBZ,EAAW3gG,UAAWud,GAI3I,SAASujF,EAAava,EAAK33E,EAAK+xF,GAC9B,IAAI3pF,EAAQ2pF,EAAW3pF,MACnBhX,EAAY2gG,EAAW3gG,UACvBugB,EAAYogF,EAAWpgF,UAGvB2oD,EAAc3oD,EAAUF,SAAS,aAAatP,aAAa,CAAC,UAC5D4vB,EAAapgB,EAAUF,SAAS,sBAAsBtP,eACtD2qC,EAAcn7B,EAAUq7B,WAAW,UACvCsoD,EAAS3d,GAAK,SAAUjmE,GAEtBA,EAAK6xB,SAASn7B,GACdsJ,EAAK2f,SAASj+B,EAAO6O,SAAS,CAC5BC,KAAMkG,EACNnW,QAAS8/F,EAAW9/F,SACnBqoE,IACHhnE,EAAQq/B,cAAcjhB,EAAMqgB,GAC5B+a,IAAgBp7B,EAAKiqB,OAASmR,GAC9Bp7B,EAAK9P,GAAKmwF,EAAWnwF,MAEvB,IAAI+0F,EAAoB,GACpBC,EAAqB52F,EAAIzF,SAASi3F,UAAUO,EAAWoB,eAAiB,IACxEgD,EAAUxe,EAAIye,mBAClBlrB,EAASirB,EAAQngG,MAAO2gG,EAAmBhlF,EAAWvJ,EAAOpI,EAAI1N,YAAalB,EAAWwlG,GACzFtjG,EAAQq/B,cAAcwjE,EAASQ,GAGjC,SAAShC,EAAWkC,GAClB,IAAIC,EAAez6F,KAAK8d,MAAM08E,GAE9B,OAAOx6F,KAAKC,IAAIu6F,EAAQC,GAAgB,KAAOA,EAAez6F,KAAKyzD,KAAK+mC,GAG1E,IAAI9mG,EAAW2hG,EACfx+F,EAAOC,QAAUpD,G,uBChpBjB,IAAIqD,EAAS,EAAQ,QAEjBinD,EAAY,EAAQ,QAEpB08C,EAAgB,EAAQ,QAExBnlB,EAAa,EAAQ,QAErBzjB,EAAU,EAAQ,QAElB6oC,EAAa7oC,EAAQ6oC,WAoBrBC,EAAsB,qBACtBC,EAAe78C,EAAUrqD,OAAO,CAClCC,KAAM,WACNuJ,KAAM,aACNsI,OAAQ,SAAUxP,EAAahC,EAASyG,EAAK23B,GAC3C,IAAIyoE,EAAO3mG,KACXA,KAAK8B,YAAcA,EACnB9B,KAAKuG,IAAMA,EACXvG,KAAKF,QAAUA,EACf,IAAIS,EAAOuB,EAAYtB,UACnBomG,EAAcrmG,EAAKmiB,KAAKxD,KACxB2nF,EAAU/kG,EAAYglG,cACtBxjG,EAAQtD,KAAKsD,MACbyjG,EAAyBjlG,EAAYI,IAAI,0BACzC8kG,EAAc,GAClBH,EAAQnnF,UAAS,SAAUF,GACzBwnF,EAAYnmG,KAAK2e,MAEnB,IAAIynF,EAAcjnG,KAAKknG,cAAgB,GAIvC,GAHAC,EAAWH,EAAaC,GACxBG,EAAaR,EAAaC,GAEtB3oE,GAAWA,EAAQuc,WAAavc,EAAQuc,UAAUh2C,MAAO,CAC3D,IAAI4iG,EAAkBvlG,EAAY06C,WAAW,mBAC7Cte,EAAQuc,UAAUh2C,MAAM6iG,WAAWD,QAC9B,GAAInpE,GAAWA,EAAQqpE,YAAa,CACzC,IAAI9iG,EAAQzE,KAAKwnG,cAEZ/iG,GAASmiG,EAAY/nF,SAAS5T,SACjCxG,EAAQmiG,EAAY/nF,SAAS,GAAGpa,OAG9BA,GACFA,EAAMgjG,WAQV,SAASN,EAAWH,EAAaC,GAO/B,SAASS,EAAOloF,GACd,OAAOA,EAAKW,QAGd,SAASwnF,EAAYC,EAAOC,GAC1B,IAAIC,EAAmB,MAATF,EAAgB,KAAOZ,EAAYY,GAC7CG,EAAmB,MAATF,EAAgB,KAAOZ,EAAYY,GACjDG,EAAaF,EAASC,GAbG,IAAvBf,EAAY/7F,QAAuC,IAAvBg8F,EAAYh8F,QAI5C,IAAIm2E,EAAW6lB,EAAaD,EAAaU,EAAQA,GAAQpiG,IAAIqiG,GAAap/F,OAAOo/F,GAAatlE,OAAOz/B,EAAO4G,MAAMm+F,EAAa,OAAOjpD,UAaxI,SAASspD,EAAaF,EAASC,GAM7B,GALKhB,IAA0Be,GAAYA,EAAQrnF,aAEjDqnF,EAAU,MAGRA,IAAYlB,GAAemB,IAAYnB,EACzC,GAAImB,GAAWA,EAAQtjG,MACjBqjG,GAEFC,EAAQtjG,MAAMwvC,YAAW,EAAO6zD,EAAS,SAAUhmG,EAAahC,GAEhES,EAAKqhC,iBAAiBkmE,EAAQlnG,UAAWmnG,EAAQtjG,QAGjDwjG,EAAWF,QAER,GAAID,EAAS,CAElB,IAAIrjG,EAAQ,IAAI8hG,EAAcuB,EAAShmG,EAAahC,GACpDwD,EAAMgC,IAAIb,GAEVlE,EAAKqhC,iBAAiBkmE,EAAQlnG,UAAW6D,IAK/C,SAASwjG,EAAWzoF,GACbA,GAIDA,EAAK/a,QACPnB,EAAM++B,OAAO7iB,EAAK/a,OAClB+a,EAAK/a,MAAQ,MAIjB,SAAS2iG,EAAaR,EAAasB,GACjC,GAAIA,EAASvpF,MAAQ,EAAG,CAElBgoF,EAAKa,aAEPb,EAAKa,aAAavzD,YAAW,EAAO2yD,EAAa,SAAU9kG,EAAahC,IAGxE6mG,EAAKa,aAAe,IAAIjB,EAAcK,EAAa9kG,EAAahC,GAChEwD,EAAMgC,IAAIqhG,EAAKa,eAGbU,EAASzjG,MAAM0jG,eACjBD,EAASzjG,MAAMo4B,IAAI,QAASqrE,EAASzjG,MAAM0jG,eAG7C,IAAI7/F,EAAQ,SAAUqkB,GACpBg6E,EAAKyB,YAAYF,EAAStpF,aAG5BspF,EAASzjG,MAAM0jG,cAAgB7/F,EAC/Bq+F,EAAKa,aAAa5gG,GAAG,QAAS0B,QACrBq+F,EAAKa,eAEdlkG,EAAM++B,OAAOskE,EAAKa,cAClBb,EAAKa,aAAe,MArFxBxnG,KAAKqoG,cAELroG,KAAKknG,aAAeF,GAuFtBz4E,QAAS,aAKT85E,YAAa,WACX,IAAI1B,EAAO3mG,KAEPsI,EAAQ,SAAUqkB,GACpB,IAAI27E,GAAc,EACdJ,EAAWvB,EAAK7kG,YAAYglG,cAChCoB,EAASxoF,UAAS,SAAUF,GAC1B,IAAK8oF,GAAe9oF,EAAK/a,OAAS+a,EAAK/a,MAAMq6B,QAAQ,KAAOnS,EAAEva,OAAQ,CACpE,IAAIm2F,EAAY/oF,EAAKyB,WAAW/e,IAAI,aAEpC,GAAkB,eAAdqmG,EACF5B,EAAKyB,YAAY5oF,QACZ,GAAkB,SAAd+oF,EAAsB,CAC/B,IAAIpnF,EAAY3B,EAAKyB,WACjBi7D,EAAO/6D,EAAUjf,IAAI,QAEzB,GAAIg6E,EAAM,CACR,IAAIssB,EAAarnF,EAAUjf,IAAI,UAAU,IAAS,SAClDskG,EAAWtqB,EAAMssB,IAIrBF,GAAc,OAKhBtoG,KAAKsD,MAAM6kG,eACbnoG,KAAKsD,MAAMu5B,IAAI,QAAS78B,KAAKsD,MAAM6kG,eAGrCnoG,KAAKsD,MAAMsD,GAAG,QAAS0B,GACvBtI,KAAKsD,MAAM6kG,cAAgB7/F,GAM7B8/F,YAAa,SAAU5oF,GACjBA,IAASxf,KAAK8B,YAAYglG,eAC5B9mG,KAAKuG,IAAIC,eAAe,CACtB/G,KAAMgnG,EACNz+F,KAAMhI,KAAKiI,IACX+e,SAAUhnB,KAAK8B,YAAYqG,GAC3BsgG,WAAYjpF,KAQlBkwC,aAAc,SAAUp4B,EAAOx1B,GAC7B,IAAI4mG,EAAW5mG,EAAYtB,UACvB0gC,EAAawnE,EAAS1nF,cAAc,GAExC,GAAIkgB,EAAY,CACd,IAAIhvB,EAAKolB,EAAM,GAAK4J,EAAWkd,GAC3BjsC,EAAKmlB,EAAM,GAAK4J,EAAWmd,GAC3B2H,EAASn6C,KAAK4sB,KAAKvmB,EAAKA,EAAKC,EAAKA,GACtC,OAAO6zC,GAAU9kB,EAAWrtB,GAAKmyC,GAAU9kB,EAAW2gB,OAIxDtiD,EAAWmnG,EACfhkG,EAAOC,QAAUpD,G,uBCtPjB,IAAIuqD,EAAO,EAAQ,QAEf+O,EAAY,EAAQ,QAEpB8vC,EAAgB,EAAQ,QAOxBjwC,EAAW7sD,KAAK4sB,KAChBq7B,EAAUjoD,KAAKw4C,IACfwP,EAAUhoD,KAAK04C,IACf3zC,EAAK/E,KAAK+E,GAEVg4F,EAAO,SAAUziF,GACnB,OAAOta,KAAK4sB,KAAKtS,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,KAGtC0iF,EAAS,SAAUC,EAAG3iF,GACxB,OAAQ2iF,EAAE,GAAK3iF,EAAE,GAAK2iF,EAAE,GAAK3iF,EAAE,KAAOyiF,EAAKE,GAAKF,EAAKziF,KAGnD4iF,EAAS,SAAUD,EAAG3iF,GACxB,OAAQ2iF,EAAE,GAAK3iF,EAAE,GAAK2iF,EAAE,GAAK3iF,EAAE,IAAM,EAAI,GAAKta,KAAKm9F,KAAKH,EAAOC,EAAG3iF,KAGpE,SAAS8iF,EAAW7uC,EAAIC,EAAIC,EAAIC,EAAI2uC,EAAI5rC,EAAIV,EAAIC,EAAIssC,EAAQxtC,EAAKz6C,GAC/D,IAAIm8C,EAAM8rC,GAAUv4F,EAAK,KACrBw4F,EAAKv1C,EAAQwJ,IAAQjD,EAAKE,GAAM,EAAMxG,EAAQuJ,IAAQhD,EAAKE,GAAM,EACjE8uC,GAAM,EAAIv1C,EAAQuJ,IAAQjD,EAAKE,GAAM,EAAMzG,EAAQwJ,IAAQhD,EAAKE,GAAM,EACtE+uC,EAASF,EAAKA,GAAMxsC,EAAKA,GAAMysC,EAAKA,GAAMxsC,EAAKA,GAE/CysC,EAAS,IACX1sC,GAAMlE,EAAS4wC,GACfzsC,GAAMnE,EAAS4wC,IAGjB,IAAIlrB,GAAK8qB,IAAO5rC,GAAM,EAAI,GAAK5E,GAAUkE,EAAKA,GAAMC,EAAKA,GAAMD,EAAKA,GAAMysC,EAAKA,GAAMxsC,EAAKA,GAAMusC,EAAKA,KAAQxsC,EAAKA,GAAMysC,EAAKA,GAAMxsC,EAAKA,GAAMusC,EAAKA,MAAS,EACxJG,EAAMnrB,EAAIxhB,EAAKysC,EAAKxsC,EACpB2sC,EAAMprB,GAAKvhB,EAAKusC,EAAKxsC,EACrBxe,GAAMgc,EAAKE,GAAM,EAAMzG,EAAQwJ,GAAOksC,EAAMz1C,EAAQuJ,GAAOmsC,EAC3DnrD,GAAMgc,EAAKE,GAAM,EAAMzG,EAAQuJ,GAAOksC,EAAM11C,EAAQwJ,GAAOmsC,EAC3DrsC,EAAQ4rC,EAAO,CAAC,EAAG,GAAI,EAAEK,EAAKG,GAAO3sC,GAAKysC,EAAKG,GAAO3sC,IACtDisC,EAAI,EAAEM,EAAKG,GAAO3sC,GAAKysC,EAAKG,GAAO3sC,GACnC12C,EAAI,GAAG,EAAIijF,EAAKG,GAAO3sC,IAAM,EAAIysC,EAAKG,GAAO3sC,GAC7CO,EAAS2rC,EAAOD,EAAG3iF,GAEnB0iF,EAAOC,EAAG3iF,KAAO,IACnBi3C,EAASxsD,GAGPi4F,EAAOC,EAAG3iF,IAAM,IAClBi3C,EAAS,GAGA,IAAPE,GAAYF,EAAS,IACvBA,GAAkB,EAAIxsD,GAGb,IAAP0sD,GAAYF,EAAS,IACvBA,GAAkB,EAAIxsD,GAGxBsQ,EAAK64C,QAAQ4B,EAAKvd,EAAIC,EAAIue,EAAIC,EAAIM,EAAOC,EAAQC,EAAKC,GAGxD,IAAImsC,EAAa,mCAObC,EAAY,sCAEhB,SAASC,EAA0BppG,GACjC,IAAKA,EACH,OAAO,IAAIs4D,EA8Bb,IAdA,IAII+wC,EAJAC,EAAM,EACNC,EAAM,EACNC,EAAWF,EACXG,EAAWF,EAEX5oF,EAAO,IAAI23C,EACXf,EAAMe,EAAUf,IAMhBmyC,EAAU1pG,EAAK0jE,MAAMwlC,GAEhBrzC,EAAI,EAAGA,EAAI6zC,EAAQh/F,OAAQmrD,IAAK,CAevC,IAdA,IAEIuF,EAFAuuC,EAAUD,EAAQ7zC,GAClB+zC,EAASD,EAAQE,OAAO,GAUxB3yF,EAAIyyF,EAAQjmC,MAAMylC,IAAc,GAChCW,EAAO5yF,EAAExM,OAEJgD,EAAI,EAAGA,EAAIo8F,EAAMp8F,IACxBwJ,EAAExJ,GAAK+kF,WAAWv7E,EAAExJ,IAGtB,IAAI4uB,EAAM,EAEV,MAAOA,EAAMwtE,EAAM,CACjB,IAAIC,EACAC,EACA3tC,EACAC,EACAQ,EACA6rC,EACA5rC,EACAlD,EAAKyvC,EACLxvC,EAAKyvC,EAET,OAAQK,GACN,IAAK,IACHN,GAAOpyF,EAAEolB,KACTitE,GAAOryF,EAAEolB,KACT8+B,EAAM7D,EAAIE,EACV92C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvB,MAEF,IAAK,IACHD,EAAMpyF,EAAEolB,KACRitE,EAAMryF,EAAEolB,KACR8+B,EAAM7D,EAAIE,EACV92C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvB,MAEF,IAAK,IACHD,GAAOpyF,EAAEolB,KACTitE,GAAOryF,EAAEolB,KACT8+B,EAAM7D,EAAIC,EACV72C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvBC,EAAWF,EACXG,EAAWF,EACXK,EAAS,IACT,MAEF,IAAK,IACHN,EAAMpyF,EAAEolB,KACRitE,EAAMryF,EAAEolB,KACR8+B,EAAM7D,EAAIC,EACV72C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvBC,EAAWF,EACXG,EAAWF,EACXK,EAAS,IACT,MAEF,IAAK,IACHN,GAAOpyF,EAAEolB,KACT8+B,EAAM7D,EAAIE,EACV92C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvB,MAEF,IAAK,IACHD,EAAMpyF,EAAEolB,KACR8+B,EAAM7D,EAAIE,EACV92C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvB,MAEF,IAAK,IACHA,GAAOryF,EAAEolB,KACT8+B,EAAM7D,EAAIE,EACV92C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvB,MAEF,IAAK,IACHA,EAAMryF,EAAEolB,KACR8+B,EAAM7D,EAAIE,EACV92C,EAAK64C,QAAQ4B,EAAKkuC,EAAKC,GACvB,MAEF,IAAK,IACHnuC,EAAM7D,EAAIG,EACV/2C,EAAK64C,QAAQ4B,EAAKlkD,EAAEolB,KAAQplB,EAAEolB,KAAQplB,EAAEolB,KAAQplB,EAAEolB,KAAQplB,EAAEolB,KAAQplB,EAAEolB,MACtEgtE,EAAMpyF,EAAEolB,EAAM,GACditE,EAAMryF,EAAEolB,EAAM,GACd,MAEF,IAAK,IACH8+B,EAAM7D,EAAIG,EACV/2C,EAAK64C,QAAQ4B,EAAKlkD,EAAEolB,KAASgtE,EAAKpyF,EAAEolB,KAASitE,EAAKryF,EAAEolB,KAASgtE,EAAKpyF,EAAEolB,KAASitE,EAAKryF,EAAEolB,KAASgtE,EAAKpyF,EAAEolB,KAASitE,GAC7GD,GAAOpyF,EAAEolB,EAAM,GACfitE,GAAOryF,EAAEolB,EAAM,GACf,MAEF,IAAK,IACHytE,EAAST,EACTU,EAAST,EACT,IAAIxxF,EAAM4I,EAAK5I,MACX8vD,EAAWlnD,EAAK3gB,KAEhBqpG,IAAY9xC,EAAIG,IAClBqyC,GAAUT,EAAMzhC,EAAS9vD,EAAM,GAC/BiyF,GAAUT,EAAM1hC,EAAS9vD,EAAM,IAGjCqjD,EAAM7D,EAAIG,EACVmC,EAAK3iD,EAAEolB,KACPw9B,EAAK5iD,EAAEolB,KACPgtE,EAAMpyF,EAAEolB,KACRitE,EAAMryF,EAAEolB,KACR3b,EAAK64C,QAAQ4B,EAAK2uC,EAAQC,EAAQnwC,EAAIC,EAAIwvC,EAAKC,GAC/C,MAEF,IAAK,IACHQ,EAAST,EACTU,EAAST,EACLxxF,EAAM4I,EAAK5I,MACX8vD,EAAWlnD,EAAK3gB,KAEhBqpG,IAAY9xC,EAAIG,IAClBqyC,GAAUT,EAAMzhC,EAAS9vD,EAAM,GAC/BiyF,GAAUT,EAAM1hC,EAAS9vD,EAAM,IAGjCqjD,EAAM7D,EAAIG,EACVmC,EAAKyvC,EAAMpyF,EAAEolB,KACbw9B,EAAKyvC,EAAMryF,EAAEolB,KACbgtE,GAAOpyF,EAAEolB,KACTitE,GAAOryF,EAAEolB,KACT3b,EAAK64C,QAAQ4B,EAAK2uC,EAAQC,EAAQnwC,EAAIC,EAAIwvC,EAAKC,GAC/C,MAEF,IAAK,IACH1vC,EAAK3iD,EAAEolB,KACPw9B,EAAK5iD,EAAEolB,KACPgtE,EAAMpyF,EAAEolB,KACRitE,EAAMryF,EAAEolB,KACR8+B,EAAM7D,EAAII,EACVh3C,EAAK64C,QAAQ4B,EAAKvB,EAAIC,EAAIwvC,EAAKC,GAC/B,MAEF,IAAK,IACH1vC,EAAK3iD,EAAEolB,KAASgtE,EAChBxvC,EAAK5iD,EAAEolB,KAASitE,EAChBD,GAAOpyF,EAAEolB,KACTitE,GAAOryF,EAAEolB,KACT8+B,EAAM7D,EAAII,EACVh3C,EAAK64C,QAAQ4B,EAAKvB,EAAIC,EAAIwvC,EAAKC,GAC/B,MAEF,IAAK,IACHQ,EAAST,EACTU,EAAST,EACLxxF,EAAM4I,EAAK5I,MACX8vD,EAAWlnD,EAAK3gB,KAEhBqpG,IAAY9xC,EAAII,IAClBoyC,GAAUT,EAAMzhC,EAAS9vD,EAAM,GAC/BiyF,GAAUT,EAAM1hC,EAAS9vD,EAAM,IAGjCuxF,EAAMpyF,EAAEolB,KACRitE,EAAMryF,EAAEolB,KACR8+B,EAAM7D,EAAII,EACVh3C,EAAK64C,QAAQ4B,EAAK2uC,EAAQC,EAAQV,EAAKC,GACvC,MAEF,IAAK,IACHQ,EAAST,EACTU,EAAST,EACLxxF,EAAM4I,EAAK5I,MACX8vD,EAAWlnD,EAAK3gB,KAEhBqpG,IAAY9xC,EAAII,IAClBoyC,GAAUT,EAAMzhC,EAAS9vD,EAAM,GAC/BiyF,GAAUT,EAAM1hC,EAAS9vD,EAAM,IAGjCuxF,GAAOpyF,EAAEolB,KACTitE,GAAOryF,EAAEolB,KACT8+B,EAAM7D,EAAII,EACVh3C,EAAK64C,QAAQ4B,EAAK2uC,EAAQC,EAAQV,EAAKC,GACvC,MAEF,IAAK,IACHltC,EAAKnlD,EAAEolB,KACPggC,EAAKplD,EAAEolB,KACPwgC,EAAM5lD,EAAEolB,KACRqsE,EAAKzxF,EAAEolB,KACPygC,EAAK7lD,EAAEolB,KACPu9B,EAAKyvC,EAAKxvC,EAAKyvC,EACfD,EAAMpyF,EAAEolB,KACRitE,EAAMryF,EAAEolB,KACR8+B,EAAM7D,EAAIK,EACV8wC,EAAW7uC,EAAIC,EAAIwvC,EAAKC,EAAKZ,EAAI5rC,EAAIV,EAAIC,EAAIQ,EAAK1B,EAAKz6C,GACvD,MAEF,IAAK,IACH07C,EAAKnlD,EAAEolB,KACPggC,EAAKplD,EAAEolB,KACPwgC,EAAM5lD,EAAEolB,KACRqsE,EAAKzxF,EAAEolB,KACPygC,EAAK7lD,EAAEolB,KACPu9B,EAAKyvC,EAAKxvC,EAAKyvC,EACfD,GAAOpyF,EAAEolB,KACTitE,GAAOryF,EAAEolB,KACT8+B,EAAM7D,EAAIK,EACV8wC,EAAW7uC,EAAIC,EAAIwvC,EAAKC,EAAKZ,EAAI5rC,EAAIV,EAAIC,EAAIQ,EAAK1B,EAAKz6C,GACvD,OAIS,MAAXipF,GAA6B,MAAXA,IACpBxuC,EAAM7D,EAAIM,EACVl3C,EAAK64C,QAAQ4B,GAEbkuC,EAAME,EACND,EAAME,GAGRJ,EAAUjuC,EAIZ,OADAz6C,EAAKg6C,WACEh6C,EAIT,SAASspF,EAAkB5U,EAAKtyD,GAC9B,IAAImnE,EAAYd,EAA0B/T,GAuB1C,OAtBAtyD,EAAOA,GAAQ,GAEfA,EAAKmoB,UAAY,SAAUvqC,GACzB,GAAIA,EAAKq6C,QAAS,CAChBr6C,EAAKq6C,QAAQkvC,EAAUlqG,MAEvB,IAAIkkC,EAAMvjB,EAAK24C,aAEXp1B,GACFvjB,EAAK67C,YAAYt4B,OAEd,CACDA,EAAMvjB,EACVupF,EAAU1tC,YAAYt4B,KAI1BnB,EAAK4B,eAAiB,SAAUlwB,GAC9B2zF,EAAc8B,EAAWz1F,GACzBhV,KAAKsS,OAAM,IAGNgxB,EAST,SAASolC,EAAiBktB,EAAKtyD,GAC7B,OAAO,IAAIwmB,EAAK0gD,EAAkB5U,EAAKtyD,IASzC,SAAS+kC,EAAiButB,EAAKtyD,GAC7B,OAAOwmB,EAAKtqD,OAAOgrG,EAAkB5U,EAAKtyD,IAU5C,SAAS6d,EAAUupD,EAASpnE,GAI1B,IAHA,IAAIqnE,EAAW,GACXryF,EAAMoyF,EAAQz/F,OAETgD,EAAI,EAAGA,EAAIqK,EAAKrK,IAAK,CAC5B,IAAI28F,EAASF,EAAQz8F,GAEhB28F,EAAO1pF,MACV0pF,EAAOC,kBAGLD,EAAOE,aACTF,EAAOn/C,UAAUm/C,EAAO1pF,KAAM0pF,EAAOp5F,OAAO,GAG9Cm5F,EAAS9pG,KAAK+pG,EAAO1pF,MAGvB,IAAI6pF,EAAa,IAAIjhD,EAAKxmB,GAc1B,OAZAynE,EAAWF,kBAEXE,EAAWt/C,UAAY,SAAUvqC,GAC/BA,EAAKs6C,WAAWmvC,GAEhB,IAAIlmE,EAAMvjB,EAAK24C,aAEXp1B,GACFvjB,EAAK67C,YAAYt4B,IAIdsmE,EAGTpoG,EAAQ+lE,iBAAmBA,EAC3B/lE,EAAQ0lE,iBAAmBA,EAC3B1lE,EAAQw+C,UAAYA,G,uBCnapB,IAAIv+C,EAAS,EAAQ,QAEjB2J,EAAe,EAAQ,QAEvB02B,EAAS,EAAQ,QAEjBngC,EAAU,EAAQ,QAElBG,EAAS,EAAQ,QAEjB+nG,EAAe,EAAQ,QAEvBj3E,EAAe,EAAQ,QAEvBhxB,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBg/C,EAAa,EAAQ,QAErBid,EAAa,EAAQ,QAErBtB,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAoBrB/4D,EAAOjC,EAAOiC,KACd1F,EAAOyD,EAAOzD,KACdyR,EAAK/E,KAAK+E,GAEVrR,EAAWyrG,EAAaxrG,OAAO,CACjCC,KAAM,kBACNuJ,KAAM,SAAUlJ,EAASyG,GACvBvG,KAAKuG,IAAMA,EAMXvG,KAAKirG,MAMLjrG,KAAKkrG,UAKLlrG,KAAKmrG,OAKLnrG,KAAKorG,gBAKLprG,KAAKqrG,WAKLrrG,KAAKsrG,aAMPh6F,OAAQ,SAAUi6F,EAAezrG,EAASyG,EAAK23B,GAM7C,GALAl+B,KAAK8vB,MAAQy7E,EACbvrG,KAAKuG,IAAMA,EACXvG,KAAKF,QAAUA,EACfE,KAAKsD,MAAMC,YAEPgoG,EAAcrpG,IAAI,QAAQ,GAAO,CACnC,IAAI27D,EAAa79D,KAAKkiD,QAAQqpD,EAAehlG,GAEzCilG,EAAYxrG,KAAKyrG,aAAa,aAE9BC,EAAa1rG,KAAKyrG,aAAa,cAO/B/7F,EAAO1P,KAAKirG,MAAQjrG,KAAK2rG,YAAY9tC,EAAY0tC,GAErDA,EAAc9sC,cAAgB,SAAU79D,GACtC,OAAOg9D,EAAWluD,EAAKjB,MAAM06C,SAASvoD,KAGxCzB,EAAK,CAAC,WAAY,WAAY,UAAW,mBAAmB,SAAUwN,GACpE3M,KAAK,UAAY2M,GAAMkxD,EAAY2tC,EAAW97F,EAAM67F,KACnDvrG,MAEHA,KAAK4rG,iBAAiB/tC,EAAY6tC,EAAYh8F,EAAM67F,GAEpDvrG,KAAK6rG,UAAUhuC,EAAY0tC,GAG7BvrG,KAAK8rG,eAMPzpE,OAAQ,WACNriC,KAAK+rG,cAEL/rG,KAAKsD,MAAMC,aAMbgrB,QAAS,WACPvuB,KAAK+rG,eAEP7pD,QAAS,SAAUqpD,EAAehlG,GAChC,IAAIylG,EAAcT,EAAcrpG,IAAI,kBAChC4E,EAASykG,EAAcrpG,IAAI,UAC3B4+E,EAAWjb,EAAY0lC,EAAehlG,GAEvB,MAAfylG,GAAuC,SAAhBA,EACzBA,EAAyB,eAAXllG,EAA0Bg6E,EAASp7E,EAAIo7E,EAAS50E,OAAS,EAAI3F,EAAI0lB,YAAc,EAAI,IAAM,IAAM60D,EAASr7E,EAAIq7E,EAASt/E,MAAQ,EAAI+E,EAAIylB,WAAa,EAAI,IAAM,IACjKjT,MAAMizF,KACfA,EAAc,CACZC,WAAY,CACVzhG,IAAK,IACLE,OAAQ,KAEVwhG,SAAU,CACR3hG,KAAM,IACNE,MAAO,MAET3D,GAAQklG,IAGZ,IAuBIG,EACAC,EACAC,EACAx5C,EA1BAy5C,EAAgB,CAClBL,WAAY,SACZC,SAAUF,GAAe,GAAqB,MAAhBA,EAAsB,OAAS,SAE3DO,EAAmB,CACrBN,WAAYD,GAAe,GAAqB,MAAhBA,EAAsB,MAAQ,SAC9DE,SAAU,UAERM,EAAc,CAChBP,WAAY,EACZC,SAAUt7F,EAAK,GAGb67F,EAAwB,aAAX3lG,EAAwBg6E,EAAS50E,OAAS40E,EAASt/E,MAChEkrG,EAAenB,EAActqF,SAAS,gBACtC0rF,EAAcD,EAAaxqG,IAAI,QAAQ,GACvC0qG,EAAcD,EAAcD,EAAaxqG,IAAI,YAAc,EAC3D2qG,EAAaF,EAAcD,EAAaxqG,IAAI,WAAa,EACzD4qG,EAAcF,EAAcC,EAE5BE,EAAgBxB,EAAcrpG,IAAI,iBAAmB,EACzD6qG,EAAgBA,EAAgBn8F,EAAK,IAMrC,IAAIo8F,EAAkBN,EAAaxqG,IAAI,YAAY,GAC/C+qG,EAAcN,GAAeD,EAAaxqG,IAAI,eAAe,GAC7DgrG,EAAcP,GAAeD,EAAaxqG,IAAI,eAAe,GAC7DirG,EAAcR,GAAeD,EAAaxqG,IAAI,eAAe,GAC7DkrG,EAAQ,EACRC,EAASZ,EAmBb,MAjBwB,SAApBO,GAAkD,WAApBA,GAChCC,IAAgBd,EAAe,CAAC,EAAG,GAAIiB,GAASN,GAChDI,IAAgBd,EAAkB,CAACgB,EAAO,GAAIA,GAASN,GACvDK,IAAgBd,EAAkB,CAACgB,EAAST,EAAa,GAAIS,GAAUP,KAGvEG,IAAgBd,EAAe,CAACkB,EAAST,EAAa,GAAIS,GAAUP,GACpEI,IAAgBd,EAAkB,CAAC,EAAG,GAAIgB,GAASN,GACnDK,IAAgBd,EAAkB,CAACgB,EAAST,EAAa,GAAIS,GAAUP,IAGzEj6C,EAAa,CAACu6C,EAAOC,GAEjB9B,EAAcrpG,IAAI,YACpB2wD,EAAWxrD,UAGN,CACLy5E,SAAUA,EACV2rB,WAAYA,EACZ3lG,OAAQA,EACR6J,SAAU67F,EAAY1lG,GACtBimG,cAAeA,EACff,YAAaA,EACbsB,WAAY/B,EAAcrpG,IAAI,gBAAkBoqG,EAAcxlG,GAC9DymG,cAAehC,EAAcrpG,IAAI,wBAA0BqpG,EAAcrpG,IAAI,mBAAqBqqG,EAAiBzlG,GAEnHqlG,aAAcA,EACdC,gBAAiBA,EACjBC,gBAAiBA,EACjBx5C,WAAYA,EACZ+5C,YAAaA,EACbC,WAAYA,IAGhBhB,UAAW,SAAUhuC,EAAY0tC,GAM/B,IAAIC,EAAYxrG,KAAKqrG,WACjBK,EAAa1rG,KAAKsrG,YAClBxqB,EAAWjjB,EAAWijB,SAE1B,GAA0B,aAAtBjjB,EAAW/2D,OAAuB,CAEpC,IAAIkO,EAAIiuB,EAAOW,SACX4pE,EAAgB1sB,EAASr7E,EACzBgoG,EAAgB3sB,EAASp7E,EAAIo7E,EAAS50E,OAC1C+2B,EAAO2gB,UAAU5uC,EAAGA,EAAG,EAAEw4F,GAAgBC,IACzCxqE,EAAOmC,OAAOpwB,EAAGA,GAAIpE,EAAK,GAC1BqyB,EAAO2gB,UAAU5uC,EAAGA,EAAG,CAACw4F,EAAeC,IACvC3sB,EAAWA,EAASp5E,QACpBo5E,EAAS57C,eAAelwB,GAG1B,IAAI04F,EAAYC,EAAS7sB,GACrB8sB,EAAYD,EAASnC,EAAUv/F,mBAC/B4hG,EAAaF,EAASjC,EAAWz/F,mBACjC6hG,EAAetC,EAAUxgG,SACzB+iG,EAAiBrC,EAAW1gG,SAChC+iG,EAAe,GAAKD,EAAa,GAAKJ,EAAU,GAAG,GACnD,IAAI1B,EAAcnuC,EAAWmuC,YAE7B,GAAIjzF,MAAMizF,GAAc,CAEtB,IAAIgC,EAA+B,MAAhBhC,EAAsB,EAAI,EAC7CiC,EAAQH,EAAcF,EAAWF,EAAW,EAAGM,GAC/CC,EAAQF,EAAgBF,EAAYH,EAAW,EAAG,EAAIM,OACjD,CACDA,EAAehC,GAAe,EAAI,EAAI,EAC1CiC,EAAQH,EAAcF,EAAWF,EAAW,EAAGM,GAC/CD,EAAe,GAAKD,EAAa,GAAK9B,EASxC,SAASkC,EAAUC,GACjB,IAAI97F,EAAM87F,EAAYnjG,SACtBmjG,EAAY5qE,OAAS,CAACmqE,EAAU,GAAG,GAAKr7F,EAAI,GAAIq7F,EAAU,GAAG,GAAKr7F,EAAI,IAGxE,SAASs7F,EAAS3hG,GAEhB,MAAO,CAAC,CAACA,EAAKvG,EAAGuG,EAAKvG,EAAIuG,EAAKxK,OAAQ,CAACwK,EAAKtG,EAAGsG,EAAKtG,EAAIsG,EAAKE,SAGhE,SAAS+hG,EAAQG,EAASpmG,EAAM8iC,EAAIt/B,EAAQ6iG,GAC1CD,EAAQ5iG,IAAWs/B,EAAGt/B,GAAQ6iG,GAAYrmG,EAAKwD,GAAQ6iG,GAjBzD7C,EAAUxrF,KAAK,WAAY8tF,GAC3BpC,EAAW1rF,KAAK,WAAY+tF,GAC5BvC,EAAU76F,SAAW+6F,EAAW/6F,SAAWktD,EAAWltD,SACtDu9F,EAAU1C,GACV0C,EAAUxC,IAgBZC,YAAa,SAAU9tC,EAAY0tC,GACjC,IAAIhrG,EAAOgrG,EAAc/qG,UACrByzB,EAAWs3E,EAAcrpG,IAAI,YAC7BuM,EAAQuzC,EAAWe,mBAAmBwoD,EAAet3E,GAEzDxlB,EAAMw6C,SAAW,WACf,OAAO1oD,EAAKggF,SAAS,CAAC,UAAU,SAAU5yE,GACxC,OAAOA,MAIX,IAAI2X,EAAa/kB,EAAKq2E,cAAc,SACpCnoE,EAAMu0C,UAAU19B,EAAW,GAAIA,EAAW,IAC1C7W,EAAM+6C,YACN,IAAI95C,EAAO,IAAIqkB,EAAa,QAAStlB,EAAOovD,EAAWhL,WAAY5+B,GAEnE,OADAvkB,EAAKogB,MAAQy7E,EACN77F,GAET+7F,aAAc,SAAU9+F,GACtB,IAAI2hG,EAAWtuG,KAAK,IAAM2M,GAAQ,IAAI7J,EAAQ6B,MAE9C,OADA3E,KAAKsD,MAAMgC,IAAIgpG,GACRA,GAETC,gBAAiB,SAAU1wC,EAAYv6D,EAAOoM,EAAM67F,GAClD,IAAI14C,EAAanjD,EAAK6V,YAEjBgmF,EAAcrpG,IAAI,mBAIvBoB,EAAMgC,IAAI,IAAIxC,EAAQovC,KAAK,CACzB1gC,MAAO,CACL4oD,GAAIvH,EAAW,GACfwH,GAAI,EACJC,GAAIzH,EAAW,GACf0H,GAAI,GAEN/0D,MAAO5C,EAAOpD,OAAO,CACnBgvG,QAAS,SACRjD,EAActqF,SAAS,aAAa29B,gBACvChtC,QAAQ,EACRR,GAAI,MAORq9F,gBAAiB,SAAU5wC,EAAYv6D,EAAOoM,EAAM67F,GAClD,IAAIhrG,EAAOgrG,EAAc/qG,UAErB0oD,EAAQx5C,EAAKjB,MAAMw6C,WAEvB9pD,EAAK+pD,GAAO,SAAUv7C,GACpB,IAAI+gG,EAAYh/F,EAAKc,YAAY7C,GAC7BwT,EAAY5gB,EAAK6gB,aAAazT,GAC9BoyB,EAAiB5e,EAAUF,SAAS,aACpC0tF,EAAkBxtF,EAAUF,SAAS,sBACrC2tF,EAAY,CACd5jG,SAAU,CAAC0jG,EAAW,GACtB9pG,QAASC,EAAK7E,KAAK6uG,gBAAiB7uG,KAAM2N,IAExC8d,EAAKqjF,EAAW3tF,EAAW4e,EAAgBz8B,EAAOsrG,GACtD9rG,EAAQq/B,cAAc1W,EAAIkjF,EAAgBh9F,gBAEtCwP,EAAUjf,IAAI,YAChBupB,EAAG7qB,UAAY+M,EACf8d,EAAG2uE,UAAYmR,GAEf9/E,EAAG7qB,UAAY6qB,EAAG2uE,UAAY,OAE/Bp6F,OAML4rG,iBAAkB,SAAU/tC,EAAYv6D,EAAOoM,EAAM67F,GACnD,IAAIrrE,EAAaxwB,EAAKwkB,gBAEtB,GAAKgM,EAAWh+B,IAAI,QAApB,CAIA,IAAI3B,EAAOgrG,EAAc/qG,UACrBuuG,EAASr/F,EAAKs/F,gBAClB7vG,EAAK4vG,GAAQ,SAAUE,GAErB,IAAIruG,EAAYquG,EAAUC,UACtB/tF,EAAY5gB,EAAK6gB,aAAaxgB,GAC9BuuG,EAAmBhuF,EAAUF,SAAS,SACtCkf,EAAkBhf,EAAUF,SAAS,kBACrCytF,EAAYh/F,EAAKc,YAAYy+F,EAAUC,WACvC7tE,EAAS,IAAIv+B,EAAQyC,KAAK,CAC5ByF,SAAU,CAAC0jG,EAAW,GACtB/9F,SAAUktD,EAAWkvC,cAAgBlvC,EAAWltD,SAChD/L,QAASC,EAAK7E,KAAK6uG,gBAAiB7uG,KAAMY,GAC1CgR,QAAQ,IAEV9O,EAAQmqE,aAAa5rC,EAAO77B,MAAO2pG,EAAkB,CACnDxpG,KAAMspG,EAAUG,eAChBvpG,UAAWg4D,EAAWyvC,WACtB1nG,kBAAmBi4D,EAAW0vC,gBAEhCjqG,EAAMgC,IAAI+7B,GACVv+B,EAAQq/B,cAAcd,EAAQv+B,EAAQmqE,aAAa,GAAI9sC,MACtDngC,QAMLqvG,eAAgB,SAAUxxC,EAAYv6D,EAAOoM,EAAM67F,GACjD,IAAIqB,EAAc/uC,EAAW+uC,YACzBj8F,EAAWktD,EAAWltD,SACtBzF,EAAYqgG,EAActqF,SAAS,gBAAgBtP,eACnD4vB,EAAagqE,EAActqF,SAAS,yBAAyBtP,eAC7D3F,EAAO,CAAC,GAAI4gG,EAAc,EAAGA,EAAaA,GAC1C0C,EAAY/D,EAAcgE,eAC1BnoG,EAAUmkG,EAAcrpG,IAAI,WAAW,GAK3C,SAASstG,EAAQxkG,EAAUykG,EAAU7qG,EAAS8qG,GAC5C,GAAK1kG,EAAL,CAIA,IAAIwE,EAAM,CACRxE,SAAUA,EACVu4B,OAAQ,CAACqpE,EAAc,EAAG,GAC1Bj8F,SAAU++F,GAAc/+F,EAAW,EACnCk8C,WAAW,EACXrnD,MAAO0F,EACPtG,QAASA,GAEP+qG,EAAMC,EAASrE,EAAekE,EAAUzjG,EAAMwD,GAClDlM,EAAMgC,IAAIqqG,GACV7sG,EAAQq/B,cAAcwtE,EAAKpuE,IAnB7BiuE,EAAQ3xC,EAAWwuC,gBAAiB,wBAAyBxnG,EAAK7E,KAAK6uG,gBAAiB7uG,KAAMoH,EAAU,IAAM,MAC9GooG,EAAQ3xC,EAAWuuC,gBAAiB,wBAAyBvnG,EAAK7E,KAAK6uG,gBAAiB7uG,KAAMoH,EAAU,IAAM,MAC9GooG,EAAQ3xC,EAAWsuC,aAAc,iBAAmBmD,EAAY,WAAa,YAAazqG,EAAK7E,KAAK6vG,iBAAkB7vG,MAAOsvG,IAAY,IAoB3IQ,sBAAuB,SAAUjyC,EAAYv6D,EAAOoM,EAAM67F,GACxD,IAAIhrG,EAAOgrG,EAAc/qG,UACrBuvG,EAAexE,EAAcyE,kBAC7BC,EAAe1vG,EAAK6gB,aAAa2uF,GAAc9uF,SAAS,mBACxDgnB,EAAKjoC,KACLid,EAAW,CACbizF,SAAU,SAAUC,GAClBA,EAAQt1D,WAAY,EACpBs1D,EAAQj2D,MAAQr1C,EAAKojC,EAAGmoE,mBAAoBnoE,GAC5CkoE,EAAQ73B,UAAYzzE,EAAKojC,EAAGooE,sBAAuBpoE,GACnDqoE,EAAcH,EAASJ,EAAcrgG,EAAM67F,GAAe,IAE5DgF,SAAU,SAAUJ,GAClBG,EAAcH,EAASJ,EAAcrgG,EAAM67F,KAI/CvrG,KAAKorG,gBAAkB0D,EAAWmB,EAAcA,EAAcjwG,KAAKqrG,WAAY,GAAIrrG,KAAKorG,gBAAiBnuF,IAE3G4yF,iBAAkB,SAAUW,GAC1BxwG,KAAK+rG,cAEL/rG,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,qBACN6vG,UAAWkB,EACXxoG,KAAMhI,KAAKiI,OAGfmoG,mBAAoB,SAAUl+F,EAAIC,EAAIwa,GACpC3sB,KAAK+rG,cAEL/rG,KAAKywG,uBAAuB,CAAC9jF,EAAE2uD,QAAS3uD,EAAE4uD,WAE5C80B,sBAAuB,SAAU1jF,GAC/B3sB,KAAKywG,uBAAuB,CAAC9jF,EAAE2uD,QAAS3uD,EAAE4uD,UAAU,IAEtDk1B,uBAAwB,SAAUC,EAAUpzE,GAC1C,IAAIy7D,EAAU/4F,KAAK2wG,aAAaD,GAAU,GAEtChhG,EAAO1P,KAAKirG,MACZp4C,EAAaoM,EAAW2U,IAAIlkE,EAAK6V,YAAYje,SACjDyxF,EAAUlmC,EAAW,KAAOkmC,EAAUlmC,EAAW,IACjDkmC,EAAUlmC,EAAW,KAAOkmC,EAAUlmC,EAAW,IACjD7yD,KAAKorG,gBAAgBpgG,SAAS,GAAK+tF,EAEnC/4F,KAAKorG,gBAAgB94F,QAErB,IAAIs6B,EAAkB5sC,KAAK4wG,iBAAiB7X,GAExCwS,EAAgBvrG,KAAK8vB,OAErBwN,GAAWsP,IAAoB2+D,EAAcyE,mBAAqBzE,EAAcrpG,IAAI,cACtFlC,KAAK6uG,gBAAgBjiE,IAGzBk/D,YAAa,WAOX,SAAS+E,IAEP,IAAItF,EAAgBvrG,KAAK8vB,MAEzB9vB,KAAK6uG,gBAAgBtD,EAAcyE,mBAAqBzE,EAAcrpG,IAAI,UAAU,IAAS,EAAI,IAVnGlC,KAAK+rG,cAED/rG,KAAK8vB,MAAMy/E,iBACbvvG,KAAKmrG,OAAS98E,WAAWxpB,EAAKgsG,EAAa7wG,MAAOA,KAAK8vB,MAAM5tB,IAAI,mBAUrEyuG,aAAc,SAAUx/B,GACtB,IAAI2/B,EAAQ9wG,KAAKqrG,WAAWxnE,oBAE5B,OAAO/gC,EAAQoiC,eAAeisC,EAAQ2/B,GAAO,IAE/CF,iBAAkB,SAAUG,GAC1B,IAEInkE,EAFArsC,EAAOP,KAAK8vB,MAAMtvB,UAClB+3B,EAAOxlB,IAEPrD,EAAO1P,KAAKirG,MAUhB,OATA1qG,EAAKpB,KAAK,CAAC,UAAU,SAAUwO,EAAO/M,GACpC,IAAIyL,EAAQqD,EAAKc,YAAY7C,GACzBqvD,EAAInxD,KAAKC,IAAIO,EAAQ0kG,GAErB/zC,EAAIzkC,IACNA,EAAOykC,EACPpwB,EAAkBhsC,MAGfgsC,GAETm/D,YAAa,WACP/rG,KAAKmrG,SACP3+E,aAAaxsB,KAAKmrG,QAClBnrG,KAAKmrG,OAAS,OAGlB0D,gBAAiB,SAAUmC,GACzB,IAAIjB,EAAe/vG,KAAK8vB,MAAMkgF,kBAEZ,MAAdgB,EACFA,EAAYjB,EAAe,EACJ,MAAdiB,IACTA,EAAYjB,EAAe,GAG7B/vG,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,iBACNswG,aAAciB,EACdhpG,KAAMhI,KAAKiI,SAKjB,SAAS49D,EAAY/1C,EAAOvpB,GAC1B,OAAOtD,EAAOk/C,cAAcryB,EAAMg2C,qBAAsB,CACtDtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aACX6D,EAAM5tB,IAAI,YAGf,SAAS0tG,EAASrE,EAAe0F,EAASjlG,EAAMs3B,GAC9C,IAAIkF,EAAO1lC,EAAQ2lE,SAAS8iC,EAAcrpG,IAAI+uG,GAASxuG,QAAQ,aAAc,IAAKG,EAAO8E,MAAM47B,GAAQ,IAAK,IAAI/2B,EAAaP,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAAK,UAClK,OAAOw8B,EAQT,SAASsmE,EAAW9vF,EAAW+gB,EAAgBz8B,EAAOkM,EAAKqjC,EAAQ51B,GACjE,IAAIrF,EAAQmoB,EAAe79B,IAAI,SAE/B,GAAK2wC,EAOHA,EAAOE,SAASn7B,GAChBtU,EAAMgC,IAAIutC,GAEV51B,GAAYA,EAASszF,SAAS19D,OAVnB,CACX,IAAID,EAAa5zB,EAAU9c,IAAI,UAC/B2wC,EAAS7vC,EAAa4vC,GAAa,GAAI,EAAG,EAAG,EAAGh7B,GAChDi7B,EAAOhS,SAAS,iBAAiB,GACjCv9B,EAAMgC,IAAIutC,GACV51B,GAAYA,EAASizF,SAASr9D,GAShC,IAAI3nC,EAAY60B,EAAepuB,aAAa,CAAC,QAAS,SAAU,eAChEkhC,EAAOhS,SAAS31B,GAEhBsE,EAAM5M,EAAOie,MAAM,CACjBgsC,WAAW,EACXz7C,GAAI,KACH5B,GAAK,GACR,IAAIuqC,EAAa/6B,EAAU9c,IAAI,cAC/B63C,EAAaA,aAAsBhiC,MAAQgiC,EAAWzyC,QAAU,EAAEyyC,GAAaA,GAC/EA,EAAW,IAAM,EACjBA,EAAW,IAAM,EACjBvqC,EAAIf,MAAQsrC,EACZ,IAAIqC,EAAep9B,EAAU9c,IAAI,gBAEjC,GAAIk6C,EAAc,CAChB,IAAI/pC,EAAM7C,EAAIxE,SAAWwE,EAAIxE,UAAY,CAAC,EAAG,GAC7CqH,EAAI,IAAM4sD,EAAWzqC,aAAa4nB,EAAa,GAAIrC,EAAW,IAC9D1nC,EAAI,IAAM4sD,EAAWzqC,aAAa4nB,EAAa,GAAIrC,EAAW,IAGhE,IAAI2C,EAAe19B,EAAU9c,IAAI,gBAUjC,OATAsN,EAAImB,UAAY+rC,GAAgB,GAAK7wC,KAAK+E,GAAK,KAAO,EACtDiiC,EAAO7yB,KAAKxQ,GAOZqjC,EAAOnkC,kBACAmkC,EAGT,SAASy9D,EAAcH,EAASvvG,EAAW8O,EAAM67F,EAAe2F,GAC9D,IAAIf,EAAQvjD,SAAZ,CAIA,IAAIqjD,EAAe1E,EAActqF,SAAS,mBACtC83E,EAAUrpF,EAAKc,YAAY+6F,EAAc/qG,UAAU0B,IAAI,CAAC,SAAUtB,IAElEswG,IAAgBjB,EAAa/tG,IAAI,aAAa,GAChDiuG,EAAQnwF,KAAK,CACXhV,SAAU,CAAC+tF,EAAS,MAGtBoX,EAAQz8D,eAAc,GACtBy8D,EAAQr0D,UAAU,CAChB9wC,SAAU,CAAC+tF,EAAS,IACnBkX,EAAa/tG,IAAI,qBAAqB,GAAO+tG,EAAa/tG,IAAI,mBAAmB,MAIxFQ,EAAOC,QAAUpD,G,qBCxnBjB,IAAI4xG,EAAgB,EAAQ,QAoBxBC,EAAkBD,EAAc3xG,OAAO,CACzCC,KAAM,kBACNy0D,WAAY,MAKZnzD,cAAe,CACbK,MAAM,EAGNqJ,MAAO,KAEPD,IAAK,KAELhJ,MAAO,KAEP0K,OAAQ,KAER3B,KAAM,KAENG,OAAQ,KAERqf,gBAAiB,mBAKjBsnF,eAAgB,CACd9vG,UAAW,CACTqW,MAAO,UACPpW,MAAO,GACPC,QAAS,IAEX6vG,UAAW,CACT15F,MAAO,qBACPnW,QAAS,KAGb0J,YAAa,OAIbomG,YAAa,wBAMbC,WAAY,0HAIZC,WAAY,OACZC,YAAa,CACX95F,MAAO,WAETkjE,eAAgB,KAChBD,eAAgB,KAChBxpD,YAAY,EACZgmD,eAAgB,OAEhB8D,UAAU,EACVw2B,UAAU,EAEVtkC,UAAW,CACTz1D,MAAO,WAITrY,EAAW6xG,EACf1uG,EAAOC,QAAUpD,G,qBC3FjB,IAAIqD,EAAS,EAAQ,QA6BjBgvG,EAAiB,KAErB,SAASC,EAAMjc,GACb,OAAOA,EAAInzF,QAAQ,aAAc,IAanC,SAASkxE,EAAUloE,EAAKqmG,EAAQh2F,EAAOi2F,GACrC,IAAIC,EAAYF,EAAO,GAAKA,EAAO,GAC/BG,EAAWn2F,EAAM,GAAKA,EAAM,GAEhC,GAAkB,IAAdk2F,EACF,OAAoB,IAAbC,EAAiBn2F,EAAM,IAAMA,EAAM,GAAKA,EAAM,IAAM,EAQ7D,GAAIi2F,EACF,GAAIC,EAAY,EAAG,CACjB,GAAIvmG,GAAOqmG,EAAO,GAChB,OAAOh2F,EAAM,GACR,GAAIrQ,GAAOqmG,EAAO,GACvB,OAAOh2F,EAAM,OAEV,CACL,GAAIrQ,GAAOqmG,EAAO,GAChB,OAAOh2F,EAAM,GACR,GAAIrQ,GAAOqmG,EAAO,GACvB,OAAOh2F,EAAM,OAGZ,CACL,GAAIrQ,IAAQqmG,EAAO,GACjB,OAAOh2F,EAAM,GAGf,GAAIrQ,IAAQqmG,EAAO,GACjB,OAAOh2F,EAAM,GAIjB,OAAQrQ,EAAMqmG,EAAO,IAAME,EAAYC,EAAWn2F,EAAM,GAY1D,SAAS0Y,EAAarqB,EAASw8E,GAC7B,OAAQx8E,GACN,IAAK,SACL,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,OACL,IAAK,MACHA,EAAU,KACV,MAEF,IAAK,QACL,IAAK,SACHA,EAAU,OACV,MAGJ,MAAuB,kBAAZA,EACL0nG,EAAM1nG,GAAS85D,MAAM,MAChB+uB,WAAW7oF,GAAW,IAAMw8E,EAG9BqM,WAAW7oF,GAGF,MAAXA,EAAkBktB,KAAOltB,EAalC,SAASwf,EAAMlkB,EAAGmiB,EAAWsqF,GAQ3B,OAPiB,MAAbtqF,IACFA,EAAY,IAIdA,EAAY/b,KAAK6E,IAAI7E,KAAK4E,IAAI,EAAGmX,GAAY,IAC7CniB,IAAMA,GAAG2E,QAAQwd,GACVsqF,EAAYzsG,GAAKA,EAW1B,SAASmuE,EAAIu+B,GAIX,OAHAA,EAAItnG,MAAK,SAAUwM,EAAGC,GACpB,OAAOD,EAAIC,KAEN66F,EAQT,SAASC,EAAa3mG,GAGpB,GAFAA,GAAOA,EAEHsN,MAAMtN,GACR,OAAO,EAOT,IAAIkhB,EAAI,EACJxK,EAAQ,EAEZ,MAAOtW,KAAK8d,MAAMle,EAAMkhB,GAAKA,IAAMlhB,EACjCkhB,GAAK,GACLxK,IAGF,OAAOA,EAQT,SAASkwF,EAAiB5mG,GACxB,IAAImqF,EAAMnqF,EAAI6mG,WAEVC,EAAS3c,EAAI/iE,QAAQ,KAEzB,GAAI0/E,EAAS,EAAG,CACd,IAAI3qF,GAAaguE,EAAItuF,MAAMirG,EAAS,GACpC,OAAO3qF,EAAY,GAAKA,EAAY,EAEpC,IAAI4qF,EAAW5c,EAAI/iE,QAAQ,KAC3B,OAAO2/E,EAAW,EAAI,EAAI5c,EAAI3qF,OAAS,EAAIunG,EAY/C,SAASz3B,EAAkBz1D,EAAYmtF,GACrC,IAAIxgF,EAAMpmB,KAAKomB,IACXksD,EAAOtyE,KAAKsyE,KACZu0B,EAAe7mG,KAAK+N,MAAMqY,EAAI3M,EAAW,GAAKA,EAAW,IAAM64D,GAC/Dw0B,EAAe9mG,KAAK8d,MAAMsI,EAAIpmB,KAAKC,IAAI2mG,EAAY,GAAKA,EAAY,KAAOt0B,GAE3Ev2D,EAAY/b,KAAK6E,IAAI7E,KAAK4E,KAAKiiG,EAAeC,EAAc,GAAI,IACpE,OAAQh5E,SAAS/R,GAAkBA,EAAL,GAehC,SAASgrF,EAAwBC,EAAW3iG,EAAK0X,GAC/C,IAAKirF,EAAU3iG,GACb,OAAO,EAGT,IAAIjG,EAAMrH,EAAOyxD,OAAOw+C,GAAW,SAAUC,EAAKrnG,GAChD,OAAOqnG,GAAO/5F,MAAMtN,GAAO,EAAIA,KAC9B,GAEH,GAAY,IAARxB,EACF,OAAO,EAGT,IAAI8oG,EAASlnG,KAAKqyE,IAAI,GAAIt2D,GACtBorF,EAAgBpwG,EAAOqE,IAAI4rG,GAAW,SAAUpnG,GAClD,OAAQsN,MAAMtN,GAAO,EAAIA,GAAOxB,EAAM8oG,EAAS,OAE7CE,EAAuB,IAATF,EACdG,EAAQtwG,EAAOqE,IAAI+rG,GAAe,SAAUG,GAE9C,OAAOtnG,KAAK+N,MAAMu5F,MAEhBC,EAAaxwG,EAAOyxD,OAAO6+C,GAAO,SAAUJ,EAAKrnG,GACnD,OAAOqnG,EAAMrnG,IACZ,GACC4nG,EAAYzwG,EAAOqE,IAAI+rG,GAAe,SAAUG,EAAOjjG,GACzD,OAAOijG,EAAQD,EAAMhjG,MAGvB,MAAOkjG,EAAaH,EAAa,CAK/B,IAHA,IAAIxiG,EAAM4rD,OAAOi3C,kBACbC,EAAQ,KAEHtlG,EAAI,EAAGqK,EAAM+6F,EAAUpoG,OAAQgD,EAAIqK,IAAOrK,EAC7ColG,EAAUplG,GAAKwC,IACjBA,EAAM4iG,EAAUplG,GAChBslG,EAAQtlG,KAKVilG,EAAMK,GACRF,EAAUE,GAAS,IACjBH,EAGJ,OAAOF,EAAMhjG,GAAO6iG,EAItB,IAAIS,EAAmB,iBAOvB,SAASC,EAAUl2B,GACjB,IAAIm2B,EAAgB,EAAV7nG,KAAK+E,GACf,OAAQ2sE,EAASm2B,EAAMA,GAAOA,EAQhC,SAASC,EAAmBloG,GAC1B,OAAOA,GAAOmmG,GAAkBnmG,EAAMmmG,EAKxC,IAAIgC,EAAW,oIAoBf,SAASnyC,EAAU9zD,GACjB,GAAIA,aAAiBsyD,KACnB,OAAOtyD,EACF,GAAqB,kBAAVA,EAAoB,CAMpC,IAAIs2D,EAAQ2vC,EAASvd,KAAK1oF,GAE1B,IAAKs2D,EAEH,OAAO,IAAIhE,KAAK5oC,KAIlB,GAAK4sC,EAAM,GAWN,CACD,IAAI4vC,GAAQ5vC,EAAM,IAAM,EAMxB,MAJ+B,MAA3BA,EAAM,GAAG6vC,gBACXD,GAAQ5vC,EAAM,GAAG38D,MAAM,EAAG,IAGrB,IAAI24D,KAAKA,KAAK8zC,KAAK9vC,EAAM,KAAMA,EAAM,IAAM,GAAK,GAAIA,EAAM,IAAM,EAAG4vC,IAAQ5vC,EAAM,IAAM,IAAKA,EAAM,IAAM,GAAIA,EAAM,IAAM,IAfjI,OAAO,IAAIhE,MAAMgE,EAAM,KAAMA,EAAM,IAAM,GAAK,GAAIA,EAAM,IAAM,GAAIA,EAAM,IAAM,IAAKA,EAAM,IAAM,IAAKA,EAAM,IAAM,GAAIA,EAAM,IAAM,GAiB7H,OAAa,MAATt2D,EACF,IAAIsyD,KAAK5oC,KAGX,IAAI4oC,KAAKp0D,KAAK8d,MAAMhc,IAU7B,SAASqmG,EAASvoG,GAChB,OAAOI,KAAKqyE,IAAI,GAAI+1B,EAAiBxoG,IAWvC,SAASwoG,EAAiBxoG,GACxB,GAAY,IAARA,EACF,OAAO,EAGT,IAAIyoG,EAAMroG,KAAK+N,MAAM/N,KAAKomB,IAAIxmB,GAAOI,KAAKsyE,MAW1C,OAJI1yE,EAAMI,KAAKqyE,IAAI,GAAIg2B,IAAQ,IAC7BA,IAGKA,EAeT,SAAS9yC,EAAK31D,EAAKke,GACjB,IAIIwqF,EAJAC,EAAWH,EAAiBxoG,GAC5BwyE,EAAQpyE,KAAKqyE,IAAI,GAAIk2B,GACrBh2B,EAAI3yE,EAAMwyE,EAiCd,OA3BIk2B,EAFAxqF,EACEy0D,EAAI,IACD,EACIA,EAAI,IACR,EACIA,EAAI,EACR,EACIA,EAAI,EACR,EAEA,GAGHA,EAAI,EACD,EACIA,EAAI,EACR,EACIA,EAAI,EACR,EACIA,EAAI,EACR,EAEA,GAIT3yE,EAAM0oG,EAAKl2B,EAGJm2B,IAAa,IAAM3oG,EAAIrB,QAAQgqG,EAAW,GAAKA,EAAW,GAAK3oG,EAUxE,SAAS4oG,EAASC,EAAQ78F,GACxB,IAAI88F,GAAKD,EAAOrpG,OAAS,GAAKwM,EAAI,EAC9Bi+C,EAAI7pD,KAAK+N,MAAM26F,GACfpuF,GAAKmuF,EAAO5+C,EAAI,GAChB/oC,EAAI4nF,EAAI7+C,EACZ,OAAO/oC,EAAIxG,EAAIwG,GAAK2nF,EAAO5+C,GAAKvvC,GAAKA,EA0BvC,SAASrC,EAAgBX,GACvBA,EAAKtY,MAAK,SAAUwM,EAAGC,GACrB,OAAOk9F,EAAWn9F,EAAGC,EAAG,IAAM,EAAI,KAKpC,IAHA,IAAImQ,GAAQ1U,IACR0hG,EAAY,EAEPxmG,EAAI,EAAGA,EAAIkV,EAAKlY,QAAS,CAIhC,IAHA,IAAIic,EAAW/D,EAAKlV,GAAGiZ,SACnBa,EAAQ5E,EAAKlV,GAAG8Z,MAEXQ,EAAK,EAAGA,EAAK,EAAGA,IACnBrB,EAASqB,IAAOd,IAClBP,EAASqB,GAAMd,EACfM,EAAMQ,GAAOA,EAAqB,EAAhB,EAAIksF,GAGxBhtF,EAAOP,EAASqB,GAChBksF,EAAY1sF,EAAMQ,GAGhBrB,EAAS,KAAOA,EAAS,IAAMa,EAAM,GAAKA,EAAM,KAAO,EACzD5E,EAAK8yC,OAAOhoD,EAAG,GAEfA,IAIJ,OAAOkV,EAEP,SAASqxF,EAAWn9F,EAAGC,EAAGiR,GACxB,OAAOlR,EAAE6P,SAASqB,GAAMjR,EAAE4P,SAASqB,IAAOlR,EAAE6P,SAASqB,KAAQjR,EAAE4P,SAASqB,KAAQlR,EAAE0Q,MAAMQ,GAAMjR,EAAEyQ,MAAMQ,MAAUA,GAAU,EAAL,KAAYA,GAAMisF,EAAWn9F,EAAGC,EAAG,KAa5J,SAASspF,EAAUz6E,GACjB,OAAOA,EAAI6sE,WAAW7sE,IAAM,EAG9BxjB,EAAQgxE,UAAYA,EACpBhxE,EAAQ6xB,aAAeA,EACvB7xB,EAAQgnB,MAAQA,EAChBhnB,EAAQixE,IAAMA,EACdjxE,EAAQyvG,aAAeA,EACvBzvG,EAAQ0vG,iBAAmBA,EAC3B1vG,EAAQo4E,kBAAoBA,EAC5Bp4E,EAAQiwG,wBAA0BA,EAClCjwG,EAAQ6wG,iBAAmBA,EAC3B7wG,EAAQ8wG,UAAYA,EACpB9wG,EAAQgxG,mBAAqBA,EAC7BhxG,EAAQ8+D,UAAYA,EACpB9+D,EAAQqxG,SAAWA,EACnBrxG,EAAQsxG,iBAAmBA,EAC3BtxG,EAAQy+D,KAAOA,EACfz+D,EAAQ0xG,SAAWA,EACnB1xG,EAAQmhB,gBAAkBA,EAC1BnhB,EAAQi+F,UAAYA,G,uBCrjBpB,IAAI8T,EAAgB,EAAQ,QAExBppB,EAAmBopB,EAAcppB,iBAEjC3tB,EAAU,EAAQ,QAElBg3C,EAAmBh3C,EAAQg3C,iBAC3BC,EAAYj3C,EAAQi3C,UAEpBnsG,EAAS,EAAQ,QAEjBosG,EAAuBpsG,EAAOosG,qBAoB9BC,EAAsB,cAEtBv1G,EAAW,CAObqK,cAAe,SAAUhJ,EAAWo8F,GAClC,IAAIz8F,EAAOP,KAAKQ,QAAQw8F,GACpB+X,EAAW/0G,KAAKkgF,YAAYt/E,EAAWo8F,GACvCgY,EAAez0G,EAAKO,YAAYF,GAChC+L,EAAOpM,EAAK08C,QAAQr8C,GACpB4/F,EAAUjgG,EAAKg+D,eAAe39D,GAC9BgX,EAAQrX,EAAKohB,cAAc/gB,EAAW,SACtCuK,EAAc5K,EAAKohB,cAAc/gB,EAAW,eAC5CipB,EAAe7pB,KAAKF,QAAQmC,aAAa,WACzCgzG,EAAmBprF,GAAgBA,EAAa3nB,IAAI,cACpDgzG,EAAaL,EAAqBI,GAClCh4E,EAAWj9B,KAAKi9B,SAChBk4E,EAAwB,WAAbl4E,EACXgzD,EAAa1vF,EAAK0vF,WACtB,MAAO,CACLnuD,cAAe7E,EACfm4E,iBAAkBp1G,KAAKq+B,QACvB0D,eAAgB/hC,KAAK+hC,eACrBnN,WAAYugF,EAAWn1G,KAAKq+B,QAAU,KACtC0Y,YAAa/2C,KAAK+2C,YAClB/vB,SAAUmuF,EAAWn1G,KAAKmI,GAAK,KAC/ByoC,WAAYukE,EAAWn1G,KAAK2M,KAAO,KACnCA,KAAMA,EACN/L,UAAWo0G,EACXz0G,KAAMigG,EACNxD,SAAUA,EACVrvF,MAAOonG,EACPn9F,MAAOA,EACPzM,YAAaA,EACbkxE,eAAgB4T,EAAaA,EAAW5T,eAAiB,KACzDrtC,OAAQihD,EAAaA,EAAWjhD,OAAS,KACzCqmE,OAAQV,EAAiB,CACvB/8F,MAAOA,EACPs9F,WAAYA,IAGd7qG,MAAO,CAAC,aAAc,OAAQ,WAclCuqD,kBAAmB,SAAUh0D,EAAWi0D,EAAQmoC,EAAUrrD,EAAUi7B,GAClE/X,EAASA,GAAU,SACnB,IAAIt0D,EAAOP,KAAKQ,QAAQw8F,GACpB77E,EAAY5gB,EAAK6gB,aAAaxgB,GAC9BiJ,EAAS7J,KAAK4J,cAAchJ,EAAWo8F,GAE3B,MAAZrrD,GAAoB9nC,EAAO8D,iBAAiBoK,QAC9ClO,EAAO8D,MAAQ9D,EAAO8D,MAAMgkC,IAG9B,IAAImjB,EAAY3zC,EAAUjf,IAAe,WAAX2yD,EAAsB,CAAC+X,GAAa,QAAS,aAAe,CAAC/X,EAAQ+X,GAAa,QAAS,cAEzH,GAAyB,oBAAd9X,EAGT,OAFAjrD,EAAOgrD,OAASA,EAChBhrD,EAAOyrG,eAAiB3jE,EACjBmjB,EAAUjrD,GACZ,GAAyB,kBAAdirD,EAAwB,CACxC,IAAI8gC,EAAMgf,EAAU9/C,EAAWjrD,GAG/B,OAAO+rF,EAAInzF,QAAQqyG,GAAqB,SAAUvxE,EAAQxzB,GACxD,IAAIuI,EAAMvI,EAAI9E,OAMd,MAJsB,MAAlB8E,EAAIq6F,OAAO,IAAsC,MAAxBr6F,EAAIq6F,OAAO9xF,EAAM,KAC5CvI,GAAOA,EAAIzI,MAAM,EAAGgR,EAAM,IAGrBgzE,EAAiB/qF,EAAMK,EAAWmP,QAW/CmwE,YAAa,SAAUhwE,EAAK8sF,GAC1B,OAAO1R,EAAiBtrF,KAAKQ,QAAQw8F,GAAW9sF,IAUlDuuD,cAAe,cAGjB/7D,EAAOC,QAAUpD,G,qBC9IjB,IAAIg2G,EAAkB,EAAQ,QAoB1B32D,EAAe22D,EAAgB,CAAC,CAAC,YAAa,SAAU,CAAC,SAAU,SAAU,CAAC,WAAY,CAAC,cAAe,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,iBACjJh2G,EAAW,CACbq/C,aAAc,SAAU0mC,GACtB,IAAI9/E,EAAQo5C,EAAa5+C,KAAMslF,GAI/B,OADA9/E,EAAM41D,SAAWp7D,KAAKw1G,YAAYhwG,EAAMkzE,WACjClzE,GAETgwG,YAAa,SAAU98B,GACJ,MAAbA,IACFA,EAAY,GAGd,IAAI+8B,EAAWz1G,KAAKkC,IAAI,QACpBwzG,EAAU7pG,KAAK4E,IAAIioE,EAAW,GAC9Bi9B,EAAuB,EAAZj9B,EACf,MAAoB,UAAb+8B,GAAoC,MAAZA,IAKV,WAAbA,EAAwB,CAACE,EAAUA,GAAY,CAACD,EAASA,MAGrEhzG,EAAOC,QAAUpD,G,uBCjEjB,IAAIL,EAAQ,EAAQ,QAEhBk1B,EAAWl1B,EAAMk1B,SAEjBwhF,EAAa,EAAQ,QAErBrpG,EAAe,EAAQ,QAU3B,SAASspG,EAAsBvyE,GAC7BsyE,EAAW9oG,KAAK9M,KAAMsjC,GACtBtjC,KAAKq0E,cAAgB,GACrBr0E,KAAK81G,uBAAyB,GAC9B91G,KAAK+1G,QAAU,EACf/1G,KAAKg2G,UAAW,EAGlBH,EAAsB/nG,UAAU2tC,aAAc,EAE9Co6D,EAAsB/nG,UAAUmoG,iBAAmB,WACjDj2G,KAAKq0E,cAAgB,GACrBr0E,KAAK81G,uBAAyB,GAC9B91G,KAAK+1G,QAAU,EACf/1G,KAAKsS,QACLtS,KAAKg2G,UAAW,GAGlBH,EAAsB/nG,UAAUooG,eAAiB,SAAUC,EAAaC,GAClEA,EACFp2G,KAAK81G,uBAAuBj1G,KAAKs1G,GAEjCn2G,KAAKq0E,cAAcxzE,KAAKs1G,GAG1Bn2G,KAAKsS,SAGPujG,EAAsB/nG,UAAUuoG,gBAAkB,SAAUC,EAAcF,GACxEA,EAAgBA,IAAiB,EAEjC,IAAK,IAAInoG,EAAI,EAAGA,EAAIqoG,EAAarrG,OAAQgD,IACvCjO,KAAKk2G,eAAeI,EAAaroG,GAAImoG,IAIzCP,EAAsB/nG,UAAUyoG,uBAAyB,SAAUp4F,GACjE,IAAK,IAAIlQ,EAAIjO,KAAK+1G,QAAS9nG,EAAIjO,KAAKq0E,cAAcppE,OAAQgD,IACxDkQ,GAAMA,EAAGne,KAAKq0E,cAAcpmE,IAG9B,IAASA,EAAI,EAAGA,EAAIjO,KAAK81G,uBAAuB7qG,OAAQgD,IACtDkQ,GAAMA,EAAGne,KAAK81G,uBAAuB7nG,KAIzC4nG,EAAsB/nG,UAAUvF,OAAS,WACvCvI,KAAK0O,kBAEL,IAAK,IAAIT,EAAIjO,KAAK+1G,QAAS9nG,EAAIjO,KAAKq0E,cAAcppE,OAAQgD,IAAK,CAC7D,IAAIkoG,EAAcn2G,KAAKq0E,cAAcpmE,GAErCkoG,EAAYt0F,OAAS7hB,KACrBm2G,EAAY5tG,SACZ4tG,EAAYt0F,OAAS,KAGvB,IAAS5T,EAAI,EAAGA,EAAIjO,KAAK81G,uBAAuB7qG,OAAQgD,IAAK,CACvDkoG,EAAcn2G,KAAK81G,uBAAuB7nG,GAE9CkoG,EAAYt0F,OAAS7hB,KACrBm2G,EAAY5tG,SACZ4tG,EAAYt0F,OAAS,OAIzBg0F,EAAsB/nG,UAAU03B,MAAQ,SAAUf,EAAKgB,GAErD,IAAK,IAAIx3B,EAAIjO,KAAK+1G,QAAS9nG,EAAIjO,KAAKq0E,cAAcppE,OAAQgD,IAAK,CAC7D,IAAIkoG,EAAcn2G,KAAKq0E,cAAcpmE,GACrCkoG,EAAYrpD,aAAeqpD,EAAYrpD,YAAYroB,GACnD0xE,EAAY3wE,MAAMf,EAAKx2B,IAAMjO,KAAK+1G,QAAU,KAAO/1G,KAAKq0E,cAAcpmE,EAAI,IAC1EkoG,EAAYppD,YAAcopD,EAAYppD,WAAWtoB,GAGnDzkC,KAAK+1G,QAAU9nG,EAEf,IAASA,EAAI,EAAGA,EAAIjO,KAAK81G,uBAAuB7qG,OAAQgD,IAAK,CACvDkoG,EAAcn2G,KAAK81G,uBAAuB7nG,GAC9CkoG,EAAYrpD,aAAeqpD,EAAYrpD,YAAYroB,GACnD0xE,EAAY3wE,MAAMf,EAAW,IAANx2B,EAAU,KAAOjO,KAAK81G,uBAAuB7nG,EAAI,IACxEkoG,EAAYppD,YAAcopD,EAAYppD,WAAWtoB,GAGnDzkC,KAAK81G,uBAAyB,GAC9B91G,KAAKg2G,UAAW,GAGlB,IAAIhhG,EAAI,GAER6gG,EAAsB/nG,UAAU7B,gBAAkB,WAChD,IAAKjM,KAAKsN,MAAO,CAGf,IAFA,IAAItB,EAAO,IAAIO,EAAawG,IAAUA,KAAWA,KAAWA,KAEnD9E,EAAI,EAAGA,EAAIjO,KAAKq0E,cAAcppE,OAAQgD,IAAK,CAClD,IAAIkoG,EAAcn2G,KAAKq0E,cAAcpmE,GACjCuoG,EAAYL,EAAYlqG,kBAAkBvE,QAE1CyuG,EAAY1yE,sBACd+yE,EAAUtxE,eAAeixE,EAAYtyE,kBAAkB7uB,IAGzDhJ,EAAKyqG,MAAMD,GAGbx2G,KAAKsN,MAAQtB,EAGf,OAAOhM,KAAKsN,OAGduoG,EAAsB/nG,UAAUI,QAAU,SAAUzI,EAAGC,GACrD,IAAIgxG,EAAW12G,KAAKglC,sBAAsBv/B,EAAGC,GACzCsG,EAAOhM,KAAKiM,kBAEhB,GAAID,EAAKkC,QAAQwoG,EAAS,GAAIA,EAAS,IACrC,IAAK,IAAIzoG,EAAI,EAAGA,EAAIjO,KAAKq0E,cAAcppE,OAAQgD,IAAK,CAClD,IAAIkoG,EAAcn2G,KAAKq0E,cAAcpmE,GAErC,GAAIkoG,EAAYjoG,QAAQzI,EAAGC,GACzB,OAAO,EAKb,OAAO,GAGT0uB,EAASyhF,EAAuBD,GAChC,IAAIr2G,EAAWs2G,EACfnzG,EAAOC,QAAUpD,G,qBC9HjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAoBrBwF,EAAQC,eAAe,CACrB5I,KAAM,iBACN6I,MAAO,kBACPC,OAAQ,qBACP,SAAU21B,EAASp+B,GACpB,IAAIyrG,EAAgBzrG,EAAQmC,aAAa,YAYzC,OAVIspG,GAAyC,MAAxBrtE,EAAQ6xE,eAC3BxE,EAAcoL,gBAAgBz4E,EAAQ6xE,eAEjCxE,EAAcrpG,IAAI,QAAQ,IAASqpG,EAAcqL,cACpDrL,EAAcsL,cAAa,IAK/B/2G,EAAQg3G,YAAY,YACbl0G,EAAO6O,SAAS,CACrBs+F,aAAcxE,EAAc1rG,OAAOkwG,cAClC7xE,MAEL91B,EAAQC,eAAe,CACrB5I,KAAM,qBACN6I,MAAO,sBACPC,OAAQ,WACP,SAAU21B,EAASp+B,GACpB,IAAIyrG,EAAgBzrG,EAAQmC,aAAa,YAErCspG,GAAsC,MAArBrtE,EAAQoxE,WAC3B/D,EAAcsL,aAAa34E,EAAQoxE,e,qBCnDvC,IAAIjwG,EAAc,EAAQ,QAEtBC,EAAsB,EAAQ,QAE9B6wD,EAAmB,EAAQ,QAoB3B5wD,EAAWF,EAAYG,OAAO,CAChCC,KAAM,iBACNG,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBU,KAAKC,YAAaD,KAAM,CACjDkgG,cAAe,WAGnB6W,mBAAoB,WAClB,IAAIC,EAAkB7mD,EAAiBjuD,IAAIlC,KAAKkC,IAAI,qBAEpD,GAAI80G,GAAmBA,EAAgB70G,WACrC,MAAyC,QAAlC60G,EAAgB70G,WAAW,IAAkD,QAAlC60G,EAAgB70G,WAAW,IAGjFpB,cAAe,CAEbT,iBAAkB,cAClBU,OAAQ,EACRC,EAAG,EAKH+gC,SAAU,EACVi1E,SAAU,GACVC,UAAW,GACXC,WAAY,EACZC,WAAY,KAIhB10G,EAAOC,QAAUpD,G,uBCvDjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAEdswB,EAAY,EAAQ,QAEpBl2C,EAAS,EAAQ,QAEjBm0G,EAAY,EAAQ,QAoBpBl4G,EAAOyD,EAAOzD,KACdm4G,EAAcp0G,EAAOo0G,YACrBnG,EAAgB/oG,EAAQ48C,qBAAqB,CAC/CvlD,KAAM,WACNC,aAAc,CAAC,QAAS,QAAS,QAAS,aAAc,YAAa,aAAc,UAKnFqB,cAAe,CACbC,OAAQ,EACRC,EAAG,EAEH6F,OAAQ,KAERywG,WAAY,KAEZC,WAAY,KAEZC,WAAY,SAgBZjkC,SAAU,KAKVj/D,MAAO,EAEP8lE,IAAK,IAELmV,WAAY,KAEZC,SAAU,KAEVjW,QAAS,KAETC,QAAS,KAETi+B,aAAc,KAEdC,aAAc,KAEdC,UAAW,MAOb5uG,KAAM,SAAUnJ,EAAQq/C,EAAap/C,GAMnCE,KAAK63G,oBAAsB,GAK3B73G,KAAK83G,UAAY,GAMjB93G,KAAK+3G,aAAe,GAKpB/3G,KAAK0D,eAKL1D,KAAKg4G,eAAgB,EAoBrBh4G,KAAKi4G,eAAiB,CAAC,UAAW,WAClC,IAAIC,EAAiBC,EAAkBt4G,GAyBvCG,KAAKo4G,cAAgBF,EACrBl4G,KAAKy/E,qBAAqB5/E,EAAQC,GAClCE,KAAKq4G,OAAOH,IAMdp1C,YAAa,SAAUr+C,GACrB,IAAIyzF,EAAiBC,EAAkB1zF,GAEvC7hB,EAAOie,MAAM7gB,KAAKH,OAAQ4kB,GAAW,GACrC7hB,EAAOie,MAAM7gB,KAAKo4G,cAAeF,GAAgB,GACjDl4G,KAAKq4G,OAAOH,IAMdG,OAAQ,SAAUH,GAChB,IAAI3xF,EAAavmB,KAAKH,OAEjBipB,EAAImB,kBACP1D,EAAW40D,UAAW,GAGxBn7E,KAAKs4G,oBAAoBJ,GAEzBK,EAAev4G,KAAMk4G,GACrB,IAAIE,EAAgBp4G,KAAKo4G,cACzBj5G,EAAK,CAAC,CAAC,QAAS,cAAe,CAAC,MAAO,cAAc,SAAUqpB,EAAOrhB,GAIjC,UAA/BnH,KAAKi4G,eAAe9wG,KACtBof,EAAWiC,EAAM,IAAM4vF,EAAc5vF,EAAM,IAAM,QAGlDxoB,MACHA,KAAK0D,eAAiB1D,KAAKihB,SAAS,aAEpCjhB,KAAKw4G,eAELx4G,KAAKy4G,oBAMPA,iBAAkB,WAChB,IAAIC,EAAc14G,KAAK+3G,aACvB/3G,KAAKs3E,gBAAe,SAAUC,EAAUvqC,EAAW+nC,EAAej1E,GAChE,IAAIyP,EAAYvP,KAAKkjE,gBAAgBqU,EAAS7nE,MAAMs9B,GAEhDitC,EAAY1qE,EAAUopG,gBAC1BppG,EAAUopG,cAAgB,IAAItB,EAAU9/B,EAAS5qE,KAAMqgC,EAAWhtC,KAAMF,IAGxE44G,EAAYnhC,EAAS5qE,KAAO,IAAMqgC,GAAaitC,IAC9Cj6E,OAMLw4G,aAAc,WACZ,IAAIjyF,EAAavmB,KAAKH,OAElB+4G,EAAW54G,KAAK64G,iBAEpBvB,GAAY,SAAU//B,GACpB,IAAIuhC,EAAgBvhC,EAASvqC,UAC7BzmB,EAAWuyF,GAAiB1/D,EAAU2/D,iBAAiBxyF,EAAWuyF,MACjE94G,MAEc,cAAb44G,EACF54G,KAAKg5G,oBACiB,WAAbJ,GACT54G,KAAKi5G,kBAOTJ,eAAgB,WAId,IAAItyF,EAAavmB,KAAKH,OAClBq5G,GAAoB,EACxB5B,GAAY,SAAU//B,GAIkB,MAAlChxD,EAAWgxD,EAASvqC,aACtBksE,GAAoB,KAErBl5G,MACH,IAAI8G,EAASyf,EAAWzf,OAExB,OAAc,MAAVA,GAAkBoyG,EACb,SACGA,OAAL,GACS,MAAVpyG,IACFyf,EAAWzf,OAAS,cAGf,cAOXkyG,kBAAmB,WACjB,IAAIG,GAAgB,EAChBryG,EAAS9G,KAAKkC,IAAI,UAAU,GAC5BqkB,EAAavmB,KAAKH,OAClBqjE,EAAkBljE,KAAKkjE,gBAE3B,GAAIi2C,EAAe,CAEjB,IAAI32G,EAAqB,aAAXsE,EAAwB,IAAM,IAExCo8D,EAAgB1gE,EAAU,QAAQyI,QACpCsb,EAAW/jB,EAAU,aAAe,CAAC,GACrC22G,GAAgB,GAEhBh6G,EAAK+jE,EAAgBm8B,YAAY,SAAU+Z,GACrCD,GAAiBC,EAAgBl3G,IAAI,UAAU,KAAU4E,IAC3Dyf,EAAW8yF,gBAAkB,CAACD,EAAgBr3E,gBAC9Co3E,GAAgB,MAMpBA,GAEF7B,GAAY,SAAU//B,GACpB,GAAK4hC,EAAL,CAIA,IAAIG,EAAc,GACdr2C,EAAajjE,KAAKkjE,gBAAgBqU,EAAS7nE,MAE/C,GAAIuzD,EAAWh4D,SAAWquG,EAAYruG,OACpC,IAAK,IAAIgD,EAAI,EAAGqK,EAAM2qD,EAAWh4D,OAAQgD,EAAIqK,EAAKrK,IACd,aAA9Bg1D,EAAWh1D,GAAG/L,IAAI,SACpBo3G,EAAYz4G,KAAKoN,GAKvBsY,EAAWgxD,EAASvqC,WAAassE,EAE7BA,EAAYruG,SACdkuG,GAAgB,MAEjBn5G,MAGDm5G,GAOFn5G,KAAKF,QAAQ04C,YAAW,SAAU12C,GAC5B9B,KAAKu5G,0BAA0Bz3G,EAAa,UAC9Cw1G,GAAY,SAAU//B,GACpB,IAAI+hC,EAAc/yF,EAAWgxD,EAASvqC,WAClCA,EAAYlrC,EAAYI,IAAIq1E,EAASvqC,WACrCwsE,EAAS13G,EAAYI,IAAIq1E,EAASiiC,QAClCjqG,EAAYzN,EAAYhC,QAAQgxD,gBAAgB,CAClD7zB,SAAUs6C,EAAS7nE,KACnBvI,MAAO6lC,EACP7kC,GAAIqxG,IACH,GACHxsE,EAAYz9B,EAAUwyB,eAElBn/B,EAAOiwB,QAAQymF,EAAatsE,GAAa,GAC3CssE,EAAYz4G,KAAKmsC,QAItBhtC,OAOPi5G,eAAgB,WACd,IAAIlpG,EAEJ/P,KAAKs3E,gBAAe,SAAUC,IAC3BxnE,IAAQA,EAAMwnE,EAAS5qE,QACvB3M,MACHA,KAAKH,OAAOiH,OAAiB,MAARiJ,EAAc,WAAa,cAMlDwpG,0BAA2B,SAAUz3G,EAAamyB,GAIhD,IAAIwlF,GAAK,EAST,OARAnC,GAAY,SAAU//B,GACpB,IAAImiC,EAAkB53G,EAAYI,IAAIq1E,EAASvqC,WAC3Cz9B,EAAYvP,KAAKkjE,gBAAgBqU,EAAS7nE,MAAMgqG,GAE/CnqG,GAAaA,EAAUrN,IAAI,UAAY+xB,IAC1CwlF,GAAK,KAENz5G,MACIy5G,GAMTnB,oBAAqB,SAAUJ,GAM7B,GAJIA,EAAen7F,eAAe,cAChC/c,KAAKg4G,eAAgB,GAGnBh4G,KAAKg4G,cAAe,CACtB,IAAI2B,EAAe35G,KAAKF,QAAQD,OAChCG,KAAKH,OAAO2zE,SAAWmmC,EAAah8F,WAAag8F,EAAa36C,wBAA0B,EAAI,IAAM,KAOtGkX,wBAAyB,WACvB,IAAI0jC,EAUJ,OATAtC,GAAY,SAAU//B,GACpB,GAAsB,MAAlBqiC,EAAwB,CAC1B,IAAIn5G,EAAUT,KAAKkC,IAAIq1E,EAASvqC,WAE5BvsC,EAAQwK,SACV2uG,EAAiB55G,KAAKkjE,gBAAgBqU,EAAS7nE,MAAMjP,EAAQ,QAGhET,MACI45G,GAOTtiC,eAAgB,SAAUr6D,EAAU2C,GAClC,IAAI9f,EAAUE,KAAKF,QACnBw3G,GAAY,SAAU//B,GACpBp4E,EAAKa,KAAKkC,IAAIq1E,EAASvqC,YAAY,SAAUA,GAC3C/vB,EAASnQ,KAAK8S,EAAS23D,EAAUvqC,EAAWhtC,KAAMF,KACjDE,QACFA,OAQLy3E,aAAc,SAAUj1E,EAASwqC,GAC/B,OAAOhtC,KAAK+3G,aAAav1G,EAAU,IAAMwqC,IAQ3CktC,aAAc,SAAU13E,EAASwqC,GAC/B,IAAIitC,EAAYj6E,KAAKy3E,aAAaj1E,EAASwqC,GAC3C,OAAOitC,GAAaA,EAAUC,gBAahC2/B,YAAa,SAAUrqG,GACrB,IAAI+W,EAAavmB,KAAKH,OAClBu4G,EAAgBp4G,KAAKo4G,cACzBj5G,EAAK,CAAC,CAAC,QAAS,cAAe,CAAC,MAAO,cAAc,SAAUqpB,GAUxC,MAAjBhZ,EAAIgZ,EAAM,KAAgC,MAAjBhZ,EAAIgZ,EAAM,MACrCjC,EAAWiC,EAAM,IAAM4vF,EAAc5vF,EAAM,IAAMhZ,EAAIgZ,EAAM,IAC3DjC,EAAWiC,EAAM,IAAM4vF,EAAc5vF,EAAM,IAAMhZ,EAAIgZ,EAAM,OAE5DxoB,MACHu4G,EAAev4G,KAAMwP,IAWvB+/E,mBAAoB,SAAU//E,GAC5B,IAAI3P,EAASG,KAAKH,OAClBV,EAAK,CAAC,QAAS,aAAc,MAAO,aAAa,SAAUwN,GACzD9M,EAAO8M,GAAQ6C,EAAI7C,OAQvBmsE,gBAAiB,WACf,IAAImB,EAAYj6E,KAAKq5E,8BAErB,GAAIY,EACF,OAAOA,EAAUoV,wBAYrByqB,cAAe,SAAUC,EAAa/sE,GACpC,GAAmB,MAAf+sE,GAAoC,MAAb/sE,EAOzB,OAAOhtC,KAAKy3E,aAAasiC,EAAa/sE,GAAWutC,qBANjD,IAAIN,EAAYj6E,KAAKq5E,8BAErB,OAAIY,EACKA,EAAUM,0BADnB,GAcJlB,4BAA6B,SAAU9pE,GACrC,GAAIA,EACF,OAAOA,EAAUopG,cAInB,IAAID,EAAc14G,KAAK+3G,aAEvB,IAAK,IAAIhwG,KAAO2wG,EACd,GAAIA,EAAY37F,eAAehV,IAAQ2wG,EAAY3wG,GAAKiyG,SAASh6G,MAC/D,OAAO04G,EAAY3wG,GASvB,IAAK,IAAIA,KAAO2wG,EACd,GAAIA,EAAY37F,eAAehV,KAAS2wG,EAAY3wG,GAAKiyG,SAASh6G,MAChE,OAAO04G,EAAY3wG,IAQzBkyG,iBAAkB,WAChB,OAAOj6G,KAAKi4G,eAAe3wG,WAS/B,SAAS6wG,EAAkBt4G,GACzB,IAAI4Z,EAAM,GAIV,OAHAta,EAAK,CAAC,QAAS,MAAO,aAAc,WAAY,aAAa,SAAUwN,GACrE9M,EAAOkd,eAAepQ,KAAU8M,EAAI9M,GAAQ9M,EAAO8M,OAE9C8M,EAGT,SAAS8+F,EAAexjC,EAAemjC,GACrC,IAAIgC,EAAgBnlC,EAAckjC,eAC9BkC,EAAoBplC,EAAc7yE,IAAI,aAC1C/C,EAAK,CAAC,CAAC,QAAS,cAAe,CAAC,MAAO,cAAc,SAAUqpB,EAAOrhB,GACpE,IAAIizG,EAA+C,MAA5BlC,EAAe1vF,EAAM,IACxC6xF,EAA6C,MAA5BnC,EAAe1vF,EAAM,IAEtC4xF,IAAqBC,EACvBH,EAAc/yG,GAAS,WACbizG,GAAoBC,EAC9BH,EAAc/yG,GAAS,QACdgzG,EACTD,EAAc/yG,GAASgzG,EAAkBhzG,GAChCizG,IAETF,EAAc/yG,GAAS,cAM7B,IAAI5H,EAAW4xG,EACfzuG,EAAOC,QAAUpD,G,uBCnmBjB,IAAIqD,EAAS,EAAQ,QAEjBwkE,EAAiB,EAAQ,QAEzBmM,EAAY,EAAQ,QAEpB1wE,EAAgB,EAAQ,QAExBC,EAAU,EAAQ,QAElBm8D,EAAa,EAAQ,QAErByU,EAAa,EAAQ,QAErBxwE,EAAS,EAAQ,QAEjBk2C,EAAY,EAAQ,QAoBpBu6B,EAAY1U,EAAW0U,UACvBx0E,EAAOyD,EAAOzD,KACdq5D,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IAEf6pG,EAAkB,GAClBC,EAAiB,EAQjBC,EAAiB33G,EAAcrD,OAAO,CACxCC,KAAM,uBAKNuJ,KAAM,WACJwxG,EAAevxG,WAAWjJ,KAAM,OAAQkJ,WAKxClJ,KAAKy6G,QAAU,GAKfz6G,KAAK06G,cAAgB,GAKrB16G,KAAKw0E,YAAc,GAKnBx0E,KAAKs0E,QAKLt0E,KAAK26G,WAKL36G,KAAK46G,sBAAwB,GAK7B56G,KAAK60E,UAKL70E,KAAK66G,WAOPz3G,SAAU,SAAUI,EAAgB1D,EAASyG,EAAK23B,GAC3CA,GAA4B,oBAAjBA,EAAQz+B,MAA8By+B,EAAQl2B,OAAShI,KAAKiI,KAC1EjI,KAAKg1E,cAOTA,WAAY,WACVh1E,KAAKsD,MAAMC,YACX,IAAIC,EAAiBxD,KAAKwD,eACtBH,EAAYrD,KAAKsD,MACrBtD,KAAKs0E,QAAU9wE,EAAetB,IAAI,UAClClC,KAAK26G,WAAan3G,EAAetB,IAAI,cAErClC,KAAKm1E,iBAELn1E,KAAK86G,WAAWz3G,GAEhB,IAAI03G,EAAgBv3G,EAAetB,IAAI,QAEvClC,KAAK8F,gBAAgBzC,EAAW03G,EAAe,GAE/C/6G,KAAK8F,gBAAgBzC,EAAW03G,EAAe,GAG/C/6G,KAAKi1E,aAAY,GAIjBj1E,KAAKiG,iBAAiB5C,GAEtBrD,KAAKi1E,cAELj1E,KAAKg7G,2BAELh7G,KAAKi7G,6BAELj7G,KAAKkG,cAAc7C,IAMrByC,gBAAiB,SAAUxC,EAAOy3G,EAAeG,GAC/C,GAAKH,EAAL,CAKA,IAAIp1G,EAAOo1G,EAAc,EAAIG,GAC7Bv1G,EAAe,MAARA,EAAeA,EAAO,GAAK,GAClC,IAAInC,EAAiBxD,KAAKwD,eACtBC,EAAUD,EAAetB,IAAI,WAC7B+B,EAAWT,EAAeS,SAC1BmxE,EAAWp1E,KAAKy6G,QAAQrlC,SAExBpqE,EAAWhL,KAAKm7G,gBAAgB,CAACl3G,EAAS,GAAK,EAAiB,IAAdi3G,GAAmBz3G,EAAUQ,EAAS,GAAKR,GAAU2xE,GAEvGpuE,EAAQhH,KAAKm7G,gBAA8B,IAAdD,EAAkB,SAAW,MAAO9lC,GAEjEtuE,EAAS9G,KAAKs0E,QACd5wE,EAAiB1D,KAAKwD,eAAeE,eACzC1D,KAAKsD,MAAMgC,IAAI,IAAIxC,EAAQyC,KAAK,CAC9BC,MAAO,CACLC,EAAGuF,EAAS,GACZtF,EAAGsF,EAAS,GACZpF,kBAA8B,eAAXkB,EAA0B,SAAWE,EACxDnB,UAAsB,eAAXiB,EAA0BE,EAAQ,SAC7CrB,KAAMA,EACNhC,SAAUD,EAAeE,UACzBC,SAAUH,EAAeI,qBAQ/Bg3G,WAAY,SAAU3M,GACpB,IAAI3qG,EAAiBxD,KAAKwD,eACtB43G,EAASp7G,KAAKy6G,QACdx2G,EAAWT,EAAeS,SAC1B6C,EAAS9G,KAAKs0E,QACd+mC,EAAYr7G,KAAK26G,WACjB52G,EAAYb,EAAO6D,aAAavD,EAAgBxD,KAAKuG,IAAKtC,GAE1DmxE,EAAWgmC,EAAOhmC,SAAWp1E,KAAKs7G,gBAAgBv3G,GAGtDqxE,EAAS9vE,IAAI81G,EAAOG,WAAaC,KACjCpmC,EAAS9vE,IAAI81G,EAAOK,QAAUD,EAAc,KAAMH,EAAYnjC,EAAUl4E,KAAKs0E,SAAW,KAAM1xE,EAAOiC,KAAK7E,KAAK07G,YAAa17G,KAAM,OAAO,GAAQ4C,EAAOiC,KAAK7E,KAAK07G,YAAa17G,KAAM,OAAO,KAC5L,IAAIqsF,EAAW7oF,EAAeE,eAAei4G,YAAY,KACrDC,EAAWnjD,EAAQ4zB,EAAS7qF,MAAO6qF,EAASngF,QAE5CmvG,IACFD,EAAOS,aAAe,GACtBT,EAAOpjC,aAAe,GACtBojC,EAAOU,kBAAoB,GAE3B97G,KAAK+7G,cAAc3mC,EAAU,EAAGnxE,EAAU23G,EAAU90G,EAAQ/C,GAE5D/D,KAAK+7G,cAAc3mC,EAAU,EAAGnxE,EAAU23G,EAAU90G,EAAQ/C,IAG9D/D,KAAKg8G,iBAAiB5mC,EAAUnxE,EAAU23G,EAAU90G,GAEpDqnG,EAAY7oG,IAAI8vE,IAMlB2mC,cAAe,SAAU3mC,EAAUuD,EAAa10E,EAAU23G,EAAU90G,GAClE,IAAIm1G,EAAUr5G,EAAOiC,KAAK7E,KAAK07G,YAAa17G,KAAM24E,GAAa,GAC3DujC,EAAYt5G,EAAOiC,KAAK7E,KAAK07G,YAAa17G,KAAM24E,GAAa,GAC7DwjC,EAAcX,EAAcY,EAAmBzjC,EAAaijC,GAAW1jC,EAAUl4E,KAAKs0E,SAAU2nC,EAASC,GAC7GC,EAAYnxG,SAAS,GAAK/G,EAAS,GACnCmxE,EAAS9vE,IAAI62G,GAKb,IAAIz4G,EAAiB1D,KAAKwD,eAAeE,eACrC24G,EAAc,IAAIv5G,EAAQyC,KAAK,CACjCs1C,WAAW,EACXX,MAAO+hE,EACPvvF,YAAa,SAAUC,GAErB4mD,EAAUz1D,KAAK6O,EAAErkB,QAEnBgwE,UAAW4jC,EACX12G,MAAO,CACLC,EAAG,EACHC,EAAG,EACHC,KAAM,GACNhC,SAAUD,EAAeE,UACzBC,SAAUH,EAAeI,kBAG7B9D,KAAKsD,MAAMgC,IAAI+2G,GACf,IAAIC,EAAmB,CAAY,eAAXx1G,EAA0B80G,EAAW,EAAe,IAAXA,EAA2B,eAAX90G,EAA0C,IAAhB6xE,GAAiC,IAAXijC,EAA6B,IAAXA,EAAiC,IAAhBjjC,GAAqBijC,EAAW,EAAIA,EAAW,GAC/MR,EAASp7G,KAAKy6G,QAClBW,EAAOS,aAAaljC,GAAewjC,EACnCf,EAAOU,kBAAkBnjC,GAAe2jC,EACxClB,EAAOpjC,aAAaW,GAAe0jC,GAMrCL,iBAAkB,SAAU5mC,EAAUnxE,EAAU23G,EAAU90G,GACxD,IAAIq/C,EAAYq1D,EAAc,CAAC,CAAC,EAAG,IAAK,QACxCr1D,EAAUn7C,SAAS,GAAK/G,EAAS,GACjCkiD,EAAUnmC,KAAK,CACbwqB,WAAW,EACX54B,QAAQ,IAEVwjE,EAAS9vE,IAAI6gD,GACb,IAAIziD,EAAiB1D,KAAKwD,eAAeE,eACrC64G,EAAiB,IAAIz5G,EAAQyC,KAAK,CACpCqM,QAAQ,EACR44B,WAAW,EACXhlC,MAAO,CACLC,EAAG,EACHC,EAAG,EACHC,KAAM,GACNhC,SAAUD,EAAeE,UACzBC,SAAUH,EAAeI,kBAG7B9D,KAAKsD,MAAMgC,IAAIi3G,GACf,IAAIC,EAAsB,CAAY,eAAX11G,EAA0B80G,EAAW,EAAIrB,EAAiB,EAAG,GACpFa,EAASp7G,KAAKy6G,QAClBW,EAAOj1D,UAAYA,EACnBi1D,EAAOmB,eAAiBA,EACxBnB,EAAOoB,oBAAsBA,GAM/Bd,YAAa,SAAU/iC,EAAa8jC,EAAOvqG,EAAIC,GAC7C,GAAKnS,KAAK26G,WAAV,CAMA,GAFA36G,KAAK60E,WAAa4nC,GAEbA,EAAO,CAEV,IAAItrC,EAASnxE,KAAKm7G,gBAAgB,CAACjpG,EAAIC,GAAKnS,KAAKy6G,QAAQrlC,UAAU,GAEnEp1E,KAAKg5E,gBAAgBL,EAAaxH,EAAO,IAIzCnxE,KAAKi1E,cAIHwnC,KAAWz8G,KAAKwD,eAAetB,IAAI,aAErClC,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,kBACNuI,KAAMhI,KAAKiI,IACXC,YAAalI,KAAKwD,eAAe2E,GACjCV,SAAUzH,KAAK06G,cAAcpzG,UAI7Bm1G,GACDz8G,KAAK66G,WAAa76G,KAAK08G,0BACfC,EAAqB38G,KAAKwD,iBACnCxD,KAAK48G,qBAAqB58G,KAAKw0E,YAAYmE,IAAc,KAO7DxD,eAAgB,WACd,IAAI3xE,EAAiBxD,KAAKwD,eACtB22E,EAAen6E,KAAK06G,cAAgBl3G,EAAeyzF,cACnD3xE,EAAa9hB,EAAe+hB,YAC5Bw7D,EAAa,CAAC,EAAGv9E,EAAeS,SAAS,IAC7CjE,KAAKw0E,YAAc,CAACb,EAAUwG,EAAa,GAAI70D,EAAYy7D,GAAY,GAAOpN,EAAUwG,EAAa,GAAI70D,EAAYy7D,GAAY,KASnI/H,gBAAiB,SAAUL,EAAaM,GACtCA,EAAQA,GAAS,EACjB,IAAIz1E,EAAiBxD,KAAKwD,eACtB01E,EAAal5E,KAAKw0E,YAClBuM,EAAa,CAAC,EAAGv9E,EAAeS,SAAS,IAC7CyvE,EAAWuF,EAAOC,EAAY6H,EAAYpI,EAC1C,GACA,IAAIrzD,EAAa9hB,EAAe+hB,YAEhCvlB,KAAK06G,cAAgB,CAAC/mC,EAAUuF,EAAW,GAAI6H,EAAYz7D,GAAY,GAAOquD,EAAUuF,EAAW,GAAI6H,EAAYz7D,GAAY,KAMjI2vD,YAAa,SAAU4nC,GACrB,IAAIr5G,EAAiBxD,KAAKwD,eACtB8hB,EAAa9hB,EAAe+hB,YAC5B61F,EAASp7G,KAAKy6G,QACdqC,EAAuB,CAAC,EAAGt5G,EAAeS,SAAS,IACnD84G,EAAoBF,EAAYC,EAAuB98G,KAAKw0E,YAE5DwoC,EAAgBh9G,KAAKi9G,iBAAiBj9G,KAAK06G,cAAep1F,EAAYy3F,EAAmB,WAEzFG,EAAmBl9G,KAAKi9G,iBAAiB33F,EAAYA,EAAYw3F,EAAsB,cAE3F1B,EAAOK,QAAQ56E,SAAS,CACtBnvB,KAAMsrG,EAAcG,SACpB17G,QAASu7G,EAAcv7G,UACtB0sD,SAAS,SAAU6uD,EAAcI,WACpChC,EAAOG,WAAW16E,SAAS,CACzBnvB,KAAMwrG,EAAiBC,SACvB17G,QAASy7G,EAAiBz7G,UACzB0sD,SAAS,SAAU+uD,EAAiBE,WAEvCp9G,KAAKq9G,cAAcN,EAAmBC,IAMxCC,iBAAkB,SAAU9iC,EAAc70D,EAAY4zD,EAAYokC,GAChE,IAAIh6E,EAAO,CACTg6E,WAAYA,EACZC,uBAAuB,GAGrB9vB,EAAaztF,KAAKw9G,mBAAmBrjC,EAAc72C,GAEnDm6E,EAAc,CAACz9G,KAAKwH,oBAAoB2yE,EAAa,GAAI,aAAc72C,GAAOtjC,KAAKwH,oBAAoB2yE,EAAa,GAAI,aAAc72C,IAEtI85E,EAAYp9G,KAAK09G,iBAAiBxkC,EAAYukC,GAElD,MAAO,CACLN,SAAU,IAAI/1C,EAAe,EAAG,EAAG,EAAG,EAAGqmB,GACzC2vB,UAAWA,EACXO,aAAc,CAAClwB,EAAW,GAAG71E,MAAO61E,EAAWA,EAAWxiF,OAAS,GAAG2M,SAO1E4lG,mBAAoB,SAAUrjC,EAAc72C,GAI1C,IAAIs6E,EAAe,IAEfnwB,EAAa,GACb7rB,GAAQuY,EAAa,GAAKA,EAAa,IAAMyjC,EACjDnwB,EAAW5sF,KAAK,CACd+W,MAAO5X,KAAKwH,oBAAoB2yE,EAAa,GAAI,QAAS72C,GAC1DxuB,OAAQ,IAGV,IAAK,IAAI7G,EAAI,EAAGA,EAAI2vG,EAAc3vG,IAAK,CACrC,IAAI4vG,EAAY1jC,EAAa,GAAKvY,EAAO3zD,EAEzC,GAAI4vG,EAAY1jC,EAAa,GAC3B,MAGFsT,EAAW5sF,KAAK,CACd+W,MAAO5X,KAAKwH,oBAAoBq2G,EAAW,QAASv6E,GACpDxuB,OAAQ7G,EAAI2vG,IAQhB,OAJAnwB,EAAW5sF,KAAK,CACd+W,MAAO5X,KAAKwH,oBAAoB2yE,EAAa,GAAI,QAAS72C,GAC1DxuB,OAAQ,IAEH24E,GAMTiwB,iBAAkB,SAAUxkC,EAAYukC,GACtC,IAAIx5G,EAAWjE,KAAKwD,eAAeS,SACnC,MAAO,CAAC,CAACA,EAAS,GAAKw5G,EAAY,GAAIvkC,EAAW,IAAK,CAACj1E,EAAS,GAAIi1E,EAAW,IAAK,CAACj1E,EAAS,GAAIi1E,EAAW,IAAK,CAACj1E,EAAS,GAAKw5G,EAAY,GAAIvkC,EAAW,MAM/JoiC,gBAAiB,SAAUv3G,GACzB,IAAI+C,EAAS9G,KAAKs0E,QACdltE,EAAUpH,KAAKwD,eAAetB,IAAI,WACtC,OAAO,IAAIY,EAAQ6B,MAAiB,eAAXmC,GAA4BM,EAGtC,eAAXN,GAA2BM,EAAU,CACvCqH,MAAqB,WAAd1K,EAAyB,EAAE,EAAG,GAAK,CAAC,EAAG,GAC9C4M,UAAW9E,KAAK+E,GAAK,GACR,aAAX9J,GAA0BM,EAE1B,CACFqH,MAAqB,SAAd1K,EAAuB,CAAC,EAAG,GAAK,EAAE,EAAG,IAHN,CACtC0K,MAAqB,SAAd1K,EAAuB,CAAC,GAAI,GAAK,EAAE,GAAI,IAPe,CAC7D0K,MAAqB,WAAd1K,EAAyB,CAAC,EAAG,GAAK,EAAE,EAAG,GAC9C4M,SAAU9E,KAAK+E,GAAK,KAcxBysG,cAAe,SAAUnkC,EAAY8jC,GACnC,GAAKh9G,KAAK26G,WAAV,CAIA,IAAIS,EAASp7G,KAAKy6G,QACdj3G,EAAiBxD,KAAKwD,eACtBq4G,EAAeT,EAAOS,aACtB7jC,EAAeojC,EAAOpjC,aAC1B74E,EAAK,CAAC,EAAG,IAAI,SAAUw5E,GACrB,IAAIwjC,EAAcN,EAAaljC,GAC/BwjC,EAAYt7E,SAAS,OAAQm8E,EAAcW,aAAahlC,IACxDwjC,EAAYnxG,SAAS,GAAKkuE,EAAWP,GAErC,IAAIiC,EAAY93E,EAAQoiC,eAAek2E,EAAOU,kBAAkBnjC,GAAc71E,EAAQ+tE,aAAasrC,EAAan8G,KAAKsD,QACrH00E,EAAaW,GAAa93C,SAAS,CACjCp7B,EAAGm1E,EAAU,GACbl1E,EAAGk1E,EAAU,GACbj1E,KAAMnC,EAAewkB,gBAAgBhoB,KAAK06G,cAAc/hC,IACxD/yE,kBAAmB,SACnBC,UAAW7F,KAAKm7G,gBAAiC,eAAjBn7G,KAAKs0E,QAA2C,IAAhBqE,EAAoB,SAAW,MAAQ,OAAQyiC,EAAOhmC,cAEvHp1E,QAUL89G,eAAgB,SAAUC,EAAaC,EAAWC,EAAaC,GAC7D,IAAI16G,EAAiBxD,KAAKwD,eACtB8hB,EAAa9hB,EAAe+hB,YAC5BthB,EAAWT,EAAeS,SAC1B88E,EAAa,CAAC,EAAG98E,EAAS,IAC1BoO,EAAMshE,EAAUoqC,EAAaz4F,EAAYy7D,GAAY,GACrDq6B,EAASp7G,KAAKy6G,QACdt0D,EAAYi1D,EAAOj1D,UAEvB,GAAKA,EAAL,CAIAA,EAAUn7C,SAAS,GAAKqH,EACxB8zC,EAAUnmC,KAAK,aAAa,GAC5BmmC,EAAUgI,SAAS,SAAUgwD,IAAwBF,EAAaC,EAAmB7rG,EAAKpO,EAAS,KACnG,IAAIq/B,EAAO,CACTi6E,uBAAuB,GAErB3lG,EAAQ5X,KAAKwH,oBAAoBu2G,EAAa,QAASz6E,GAC3D6iB,EAAUtlB,SAAS,OAAQjpB,GAE3B,IAAIgjE,EAAY93E,EAAQoiC,eAAek2E,EAAOoB,oBAAqB15G,EAAQ+tE,aAAa1qB,EAAWnmD,KAAKsD,QACpGi5G,EAAiBnB,EAAOmB,eAC5BA,EAAev8F,KAAK,aAAa,GAEjC,IAAIhZ,EAAQhH,KAAKm7G,gBAAgB,OAAQC,EAAOhmC,UAE5CtuE,EAAS9G,KAAKs0E,QAClBioC,EAAe17E,SAAS,CACtBl7B,MAAOs4G,GAA4B,IAAMz6G,EAAewkB,gBAAgBg2F,GACxEp4G,kBAA8B,eAAXkB,EAA0BE,EAAQ,SACrDnB,UAAsB,eAAXiB,EAA0B,SAAWE,EAChDvB,EAAGm1E,EAAU,GACbl1E,EAAGk1E,EAAU,OAOjBogC,yBAA0B,WACxB,IAAIv9F,EAAOzd,KAEXA,KAAKy6G,QAAQrlC,SAASxuE,GAAG,aAAa,SAAU+lB,GAG9C,GAFAlP,EAAKo9F,WAAY,GAEZp9F,EAAKo3D,UAAW,CACnB,IAAI5wE,EAAWwZ,EAAKja,eAAeS,SAE/BoO,EAAMoL,EAAK09F,gBAAgB,CAACxuF,EAAE2uD,QAAS3uD,EAAE4uD,SAAU99D,EAAKg9F,QAAQrlC,UAAU,GAAM,GAIpF/iE,EAAI,GAAKmmD,EAAQC,EAAQ,EAAGpmD,EAAI,IAAKpO,EAAS,IAE9CwZ,EAAKm/F,qBAAqBvqG,EAAI,GAAI,GAAKA,EAAI,IAAMA,EAAI,IAAMpO,EAAS,QAErE2C,GAAG,YAAY,WAGhB6W,EAAKo9F,WAAY,GAChBp9F,EAAKo3D,WAAap3D,EAAKi/F,8BAO5BzB,2BAA4B,WAC1B,IAAI1wF,EAAKvqB,KAAKuG,IAAIslB,QAEd7rB,KAAKwD,eAAe3D,OAAOyG,WAC7BikB,EAAG3jB,GAAG,YAAa5G,KAAKo+G,8BAA+Bp+G,MACvDuqB,EAAG3jB,GAAG,WAAY5G,KAAKq+G,eAAgBr+G,OAEvCA,KAAKs+G,6BAOT1B,qBAAsB,SAAU2B,EAAWC,GACzC,IAAIh7G,EAAiBxD,KAAKwD,eACtBS,EAAWT,EAAeS,SAE9B,GAAKT,EAAe3D,OAAOyG,UAA3B,CAIA,IAAIy6E,EAAa,CAAC,EAAG98E,EAAS,IAC1BqhB,EAAa9hB,EAAe+hB,YAEhCg5F,EAAY/lD,EAAQC,EAAQsoB,EAAW,GAAIw9B,GAAYx9B,EAAW,IAClE,IAAIm9B,EAAoBO,EAAqBj7G,EAAgB8hB,EAAYy7D,GACrE29B,EAAa,CAACH,EAAYL,EAAmBK,EAAYL,GACzDH,EAAcpqC,EAAU4qC,EAAWx9B,EAAYz7D,GAAY,GAC3DgqE,EAAa,CAAC3b,EAAU+qC,EAAW,GAAI39B,EAAYz7D,GAAY,GAAOquD,EAAU+qC,EAAW,GAAI39B,EAAYz7D,GAAY,IAG3Ho5F,EAAW,GAAK39B,EAAW,KAAOuO,EAAW,IAAMv8E,KACnD2rG,EAAW,GAAK39B,EAAW,KAAOuO,EAAW,GAAKv8E,KAG9CyrG,IACElvB,EAAW,MAAQv8E,IACrB/S,KAAK89G,eAAeC,EAAazuB,EAAW,GAAI,KAAM4uB,GAC7C5uB,EAAW,KAAOv8E,IAC3B/S,KAAK89G,eAAeC,EAAazuB,EAAW,GAAI,KAAM4uB,GAEtDl+G,KAAK89G,eAAeC,EAAaA,EAAa,KAAMG,IAUxD,IAAIS,EAAW3+G,KAAK46G,sBAChBgE,EAAW,IAEXJ,GAAc7B,EAAqBn5G,MACrCo7G,EAAW5+G,KAAK46G,sBAAwBp3G,EAAemD,sBAAsB2oF,IAG/E,IAAIuvB,EAAgBzlE,EAAU0lE,gBAAgBH,EAAUC,GAExD5+G,KAAK++G,kBAAkB,WAAY77G,EAAOwD,kBAAkBm4G,EAAc,GAAIr7G,IAE9ExD,KAAK++G,kBAAkB,YAAa77G,EAAOwD,kBAAkBm4G,EAAc,GAAIr7G,MAMjF46G,8BAA+B,SAAUzxF,GACvC,IAAIlB,EAAKkB,EAAEva,OACP5O,EAAiBxD,KAAKwD,eAE1B,GAAKioB,GAAsB,MAAhBA,EAAG7qB,UAAd,CAIA,IAAIw5F,EAAYp6F,KAAKF,QAAQu5C,iBAAiB5tB,EAAGsrB,aAEjD,GAAKvzC,EAAew7G,eAAe5kB,GAAnC,CAIA,IAAI75F,EAAO65F,EAAU55F,QAAQirB,EAAGuxE,UAC5BrvF,EAAQpN,EAAK2B,IAAIsB,EAAesjB,iBAAiBvmB,GAAOkrB,EAAG7qB,WAAW,GAErEmY,MAAMpL,IACT3N,KAAK89G,eAAenwG,EAAOA,MAO/B0wG,eAAgB,WACd,IAAIjD,EAASp7G,KAAKy6G,QAClBW,EAAOj1D,WAAai1D,EAAOj1D,UAAUnmC,KAAK,aAAa,GACvDo7F,EAAOmB,gBAAkBnB,EAAOmB,eAAev8F,KAAK,aAAa,IAMnE08F,wBAAyB,WACvB18G,KAAKq+G,iBAEL,IAAI59G,EAAUT,KAAK46G,sBAEnB56G,KAAK++G,kBAAkB,WAAY77G,EAAOwD,kBAAkBjG,EAAST,KAAKwD,iBAE1E/C,EAAQwK,OAAS,GAMnBqzG,0BAA2B,WACzBt+G,KAAKq+G,iBAEL,IAAI9zF,EAAKvqB,KAAKuG,IAAIslB,QAClBtB,EAAGsS,IAAI,YAAa78B,KAAKo+G,+BACzB7zF,EAAGsS,IAAI,WAAY78B,KAAKq+G,iBAM1BlD,gBAAiB,SAAUhqC,EAAQ8tC,EAAS73G,EAAS2kF,GACnD,IAAIz9E,EAAYxL,EAAQ+tE,aAAaouC,EAASlzB,EAAS,KAAO/rF,KAAKsD,OACnE,OAAOR,EAAQF,EAAOogB,QAAQmuD,GAAU,iBAAmB,sBAAsBA,EAAQ7iE,EAAWlH,IAMtG23G,kBAAmB,SAAUt/G,EAAMgH,GACjCA,GAASA,EAAMwE,QAAUjL,KAAKuG,IAAIC,eAAe,CAC/C/G,KAAMA,EACNgH,MAAOA,KAOX8nB,QAAS,WACPvuB,KAAKs+G,4BAELt+G,KAAK08G,2BAMPr6E,OAAQ,WACNriC,KAAKs+G,4BAELt+G,KAAK08G,6BAIT,SAASlB,EAAcjkG,EAAQ4zB,EAAQ8wE,EAASC,GAC9C,OAAO,IAAIp5G,EAAQ49B,QAAQ,CACzBlvB,MAAO,CACL+F,OAAQA,GAEVsjC,YAAaohE,EACb9wE,OAAQA,EACR+O,MAAO+hE,EACPvvF,YAAa,SAAUC,GAErB4mD,EAAUz1D,KAAK6O,EAAErkB,QAEnBgwE,UAAW4jC,IAIf,SAASE,EAAmBzjC,EAAaijC,GACvC,OAAuB,IAAhBjjC,EAAoB,CAAC,CAAC,EAAG,GAAI,CAACijC,EAAU,GAAI,CAACA,GAAWA,IAAa,CAAC,CAAC,EAAG,GAAI,CAACA,EAAU,GAAI,CAACA,EAAUA,IAGjH,SAASuC,EAAsBe,EAAShB,EAAmB7rG,EAAK8sG,GAC9D,OAAOD,EAAU,CACjB,CAAC,GAAI1mD,EAAQ0lD,EAAmBzlD,EAAQpmD,EAAK,KAAM,CAACkoG,EAAgB,GAAI,CAAC,EAAG/hD,EAAQ0lD,EAAmBzlD,EAAQ0mD,EAAY9sG,EAAK,MAAQ,CACxI,CAAC,EAAG,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,IAGvB,SAASosG,EAAqBj7G,EAAgB8hB,EAAYy7D,GACxD,IAAIm9B,EAAoB5D,EAAkB,EACtC1jB,EAAoBpzF,EAAetB,IAAI,qBAM3C,OAJI00F,IACFsnB,EAAoBvqC,EAAUijB,EAAmBtxE,EAAYy7D,GAAY,GAAQ,GAG5Em9B,EAGT,SAASvB,EAAqBn5G,GAC5B,IAAIqzF,EAAoBrzF,EAAetB,IAAI,qBAC3C,SAA+B,MAArB20F,EAA4BrzF,EAAetB,IAAI,YAAc20F,GAGzE,SAAS3e,EAAUpxE,GACjB,MAAkB,aAAXA,EAAwB,YAAc,YAG/C,IAAIvH,EAAWi7G,EACf93G,EAAOC,QAAUpD,G,uBCvwBjB,IAAIikB,EAAU,EAAQ,QAIlB47F,GAFU57F,EAAQC,QAER,EAAQ,UAElB7gB,EAAS,EAAQ,QAEjBmkE,EAAY,EAAQ,QAEpBj+C,EAAM,EAAQ,QAEdu2F,EAAU,EAAQ,QAElBnqD,EAAW,EAAQ,QAEnBoqD,EAAc,EAAQ,QAEtBC,EAAe,EAAQ,QAEvBnoD,EAA0B,EAAQ,QAElCooD,EAAgB,EAAQ,QAExBC,EAAiB,EAAQ,QAEzB78D,EAAY,EAAQ,QAEpB3vC,EAAiB,EAAQ,QAEzB5T,EAAc,EAAQ,QAEtB6T,EAAgB,EAAQ,QAExB22C,EAAY,EAAQ,QAEpB/mD,EAAU,EAAQ,QAElBs2C,EAAY,EAAQ,QAEpBsmE,EAAY,EAAQ,QAEpBlsC,EAAWksC,EAAUlsC,SAErBmsC,EAAc,EAAQ,QAEtBt3B,EAAO,EAAQ,QAEfu3B,EAAiB,EAAQ,QAEzBC,EAAY,EAAQ,QAEpBC,EAAa,EAAQ,QAErBC,EAAY,EAAQ,QAExB,EAAQ,QAER,IAAIC,EAAiB,EAAQ,QAoBzB3yE,EAASzqC,EAAOyqC,OAChBluC,EAAOyD,EAAOzD,KACdw3C,EAAa/zC,EAAO+zC,WACpB1wB,EAAWrjB,EAAOqjB,SAClBg6F,EAAiBhtG,EAAegtG,eAChC57C,EAAU,QACV3kE,EAAe,CACjB0/G,QAAS,SAEPc,EAAyB,EACzBC,EAA4B,IAC5BC,EAAmC,IACnCC,EAA+B,IAC/BC,EAA+B,IAC/BC,EAAyB,IACzBC,EAAqC,KACrCC,EAAyB,IACzBC,EAAwB,IACxBC,EAAoC,KACpCC,EAA4B,IAG5BC,EAAwB,IACxB3rE,EAAW,CACb4rE,UAAW,CACTC,OAAQZ,EACRa,cAAeZ,EACfa,UAAWX,GAEbnrE,OAAQ,CACN+rE,OAAQX,EACRY,mBAAoBX,EACpBY,OAAQX,EACRY,MAAOX,EACPthC,kBAAmBuhC,EACnBW,UAAWV,EACXxrE,MAAOyrE,IAQPU,EAAkB,sBAClBC,EAAiB,kBACjBC,EAAa,kBAEjB,SAASC,GAAqCr7G,EAAQs7G,GACpD,OAAO,SAAUxoF,EAAWtM,EAASjN,GAC9B+hG,IAAkB3hH,KAAK4hH,WAM5BzoF,EAAYA,GAAaA,EAAUm5D,cACnCp9B,EAASpnD,UAAUzH,GAAQyG,KAAK9M,KAAMm5B,EAAWtM,EAASjN,IANxDiiG,GAAgB7hH,KAAKmI,KAc3B,SAAS25G,KACP5sD,EAASpoD,KAAK9M,MAWhB,SAAS+hH,GAAQC,EAAKC,EAAO3+E,GAC3BA,EAAOA,GAAQ,GAEM,kBAAV2+E,IACTA,EAAQC,GAAaD,IAOvBjiH,KAAKmI,GAMLnI,KAAKsD,MAMLtD,KAAKmiH,KAAOH,EACZ,IAAII,EAAkB,SAMlB73F,EAAKvqB,KAAK4rB,IAAMwzF,EAAQp2G,KAAKg5G,EAAK,CACpCK,SAAU/+E,EAAK++E,UAAYD,EAC3BvqD,iBAAkBv0B,EAAKu0B,iBACvBr2D,MAAO8hC,EAAK9hC,MACZ0K,OAAQo3B,EAAKp3B,SAQflM,KAAKsiH,kBAAoB9uC,EAAS5wE,EAAOiC,KAAK0lB,EAAGg4F,MAAOh4F,GAAK,IACzD03F,EAAQr/G,EAAO8E,MAAMu6G,GACzBA,GAASxC,EAAewC,GAAO,GAM/BjiH,KAAKwiH,OAASP,EAMdjiH,KAAKyiH,aAAe,GAMpBziH,KAAK0iH,WAAa,GAMlB1iH,KAAK2iH,iBAAmB,GAMxB3iH,KAAK4iH,eAAiB,GAMtB5iH,KAAK6iH,aAAe,IAAIzrD,EAMxB,IAAI7wD,EAAMvG,KAAK8iH,KAAOC,GAAmB/iH,MAEzC,SAASgjH,EAAiB3rG,EAAGC,GAC3B,OAAOD,EAAE4rG,OAAS3rG,EAAE2rG,OAGtB5D,EAAQ6D,GAAaF,GACrB3D,EAAQ8D,GAAoBH,GAK5BhjH,KAAKojH,WAAa,IAAIvD,EAAU7/G,KAAMuG,EAAK48G,GAAoBD,IAC/DhuD,EAASpoD,KAAK9M,KAAMA,KAAKqjH,kBAAoB,IAAIC,IAMjDtjH,KAAKujH,eAAiB,IAAIzB,GAE1B9hH,KAAKqoG,cAGLroG,KAAKi9E,OAASr6E,EAAOiC,KAAK7E,KAAKi9E,OAAQj9E,MAEvCA,KAAKwjH,gBAAkB,GACvBj5F,EAAG5M,UAAU/W,GAAG,QAAS5G,KAAKyjH,SAAUzjH,MACxC0jH,GAAkBn5F,EAAIvqB,MAEtB4C,EAAO+gH,eAAe3jH,MA5HxB8hH,GAAch0G,UAAUlH,GAAK86G,GAAqC,MAAM,GACxEI,GAAch0G,UAAU+uB,IAAM6kF,GAAqC,OAAO,GAC1EI,GAAch0G,UAAU8nD,IAAM8rD,GAAqC,OAAO,GAC1E9+G,EAAOyM,MAAMyyG,GAAe5sD,GA4H5B,IAAI0uD,GAAe7B,GAAQj0G,UA0Z3B,SAAS+1G,GAAep2G,EAAYC,EAAQC,GAC1C,GAAI3N,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,QADvB,CAKA,IAIIwe,EAJA7mB,EAAUE,KAAKyI,OAEfq7G,EAAe9jH,KAAK6iH,aAAaprD,uBAGrC/pD,EAAS0rC,EAAU2qE,YAAYjkH,EAAS4N,GAExC,IAAK,IAAIO,EAAI,EAAGA,EAAI61G,EAAa74G,OAAQgD,IAAK,CAC5C,IAAI5N,EAAWyjH,EAAa71G,GAE5B,GAAI5N,EAASoN,IAA0E,OAA1DkZ,EAAStmB,EAASoN,GAAY3N,EAAS4N,EAAQC,IAC1E,OAAOgZ,IAzabi9F,GAAaH,SAAW,WACtB,IAAIzjH,KAAK4hH,UAAT,CAIA,IAAIoC,EAAYhkH,KAAKojH,WAErB,GAAIpjH,KAAKwhH,GAAiB,CACxB,IAAI5vG,EAAS5R,KAAKwhH,GAAgB5vG,OAClC5R,KAAKuhH,IAAmB,EACxB0C,GAAQjkH,MACRkkH,GAAc37G,OAAOuE,KAAK9M,MAC1BA,KAAKuhH,IAAmB,EACxBvhH,KAAKwhH,IAAkB,EACvB2C,GAAoBr3G,KAAK9M,KAAM4R,GAC/BwyG,GAAoBt3G,KAAK9M,KAAM4R,QAE5B,GAAIoyG,EAAUK,WAAY,CAE3B,IAAIC,EAAapE,EACbpgH,EAAUE,KAAKyI,OACflC,EAAMvG,KAAK8iH,KACfkB,EAAUK,YAAa,EAEvB,EAAG,CACD,IAAIE,GAAa,IAAItkD,KACrB+jD,EAAUQ,mBAAmB1kH,GAE7BkkH,EAAUS,0BAA0B3kH,GACpC4kH,GAAkB1kH,KAAMF,GAOxBkkH,EAAUW,mBAAmB7kH,GAC7Bg6F,GAAa95F,KAAMA,KAAKyI,OAAQlC,EAAK,UACrC+9G,IAAe,IAAIrkD,KAASskD,QACrBD,EAAa,GAAKN,EAAUK,YAGhCL,EAAUK,YACbrkH,KAAK4rB,IAAI22F,WAWjBqB,GAAagB,OAAS,WACpB,OAAO5kH,KAAKmiH,MAOdyB,GAAa/3F,MAAQ,WACnB,OAAO7rB,KAAK4rB,KAkBdg4F,GAAaiB,UAAY,SAAUhlH,EAAQilH,EAAUC,GACnD,GAAI/kH,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,QADvB,CAKA,IAAIyJ,EAUJ,GARIqU,EAAS6+F,KACXC,EAAaD,EAASC,WACtBnzG,EAASkzG,EAASlzG,OAClBkzG,EAAWA,EAASA,UAGtB9kH,KAAKuhH,IAAmB,GAEnBvhH,KAAKyI,QAAUq8G,EAAU,CAC5B,IAAIE,EAAgB,IAAIxF,EAAcx/G,KAAK8iH,MACvCb,EAAQjiH,KAAKwiH,OACb1iH,EAAUE,KAAKyI,OAAS,IAAI62G,EAChCx/G,EAAQkkH,UAAYhkH,KAAKojH,WACzBtjH,EAAQkJ,KAAK,KAAM,KAAMi5G,EAAO+C,GAGlChlH,KAAKyI,OAAOo8G,UAAUhlH,EAAQolH,IAE1BF,GACF/kH,KAAKwhH,GAAkB,CACrB5vG,OAAQA,GAEV5R,KAAKuhH,IAAmB,IAExB0C,GAAQjkH,MACRkkH,GAAc37G,OAAOuE,KAAK9M,MAG1BA,KAAK4rB,IAAI22F,QAETviH,KAAKwhH,IAAkB,EACvBxhH,KAAKuhH,IAAmB,EACxB4C,GAAoBr3G,KAAK9M,KAAM4R,GAC/BwyG,GAAoBt3G,KAAK9M,KAAM4R,MAQnCgyG,GAAasB,SAAW,WACtBlzF,QAAQmqE,MAAM,oDAOhBynB,GAAa3iG,SAAW,WACtB,OAAOjhB,KAAKyI,QAOdm7G,GAAauB,UAAY,WACvB,OAAOnlH,KAAKyI,QAAUzI,KAAKyI,OAAO08G,aAOpCvB,GAAa53F,SAAW,WACtB,OAAOhsB,KAAK4rB,IAAII,YAOlB43F,GAAa33F,UAAY,WACvB,OAAOjsB,KAAK4rB,IAAIK,aAOlB23F,GAAawB,oBAAsB,WACjC,OAAOplH,KAAK4rB,IAAIhB,QAAQ8Z,KAAO9X,OAAOirC,kBAAoB,GAU5D+rD,GAAayB,kBAAoB,SAAU/hF,GACzC,GAAKxa,EAAImB,gBAAT,CAIAqZ,EAAOA,GAAQ,GACfA,EAAKgiF,WAAahiF,EAAKgiF,YAAc,EACrChiF,EAAKvZ,gBAAkBuZ,EAAKvZ,iBAAmB/pB,KAAKyI,OAAOvG,IAAI,mBAC/D,IAAIqoB,EAAKvqB,KAAK4rB,IAOd,OAAOrB,EAAGK,QAAQy6F,kBAAkB/hF,KAQtCsgF,GAAa2B,cAAgB,WAC3B,GAAKz8F,EAAI06C,aAAT,CAIA,IAAIj5C,EAAKvqB,KAAK4rB,IACVzI,EAAOoH,EAAGi7F,QAAQC,iBAKtB,OAHA7iH,EAAOzD,KAAKgkB,GAAM,SAAUsI,GAC1BA,EAAGioB,eAAc,MAEZnpB,EAAGK,QAAQ86F,cAYpB9B,GAAa+B,WAAa,SAAUriF,GAClC,IAAItjC,KAAK4hH,UAAT,CAKAt+E,EAAOA,GAAQ,GACf,IAAIsiF,EAAoBtiF,EAAKsiF,kBACzB9lH,EAAUE,KAAKyI,OACfo9G,EAAyB,GACzBpoG,EAAOzd,KACXb,EAAKymH,GAAmB,SAAU9jF,GAChChiC,EAAQs+B,cAAc,CACpBnB,SAAU6E,IACT,SAAUrO,GACX,IAAIqyF,EAAOroG,EAAKmlG,eAAenvF,EAAUsyF,UAEpCD,EAAKxiH,MAAMgwC,SACduyE,EAAuBhlH,KAAKilH,GAC5BA,EAAKxiH,MAAMgwC,QAAS,SAI1B,IAAIwiD,EAAqC,QAA/B91F,KAAK4rB,IAAIhB,QAAQo7F,UAAsBhmH,KAAKulH,gBAAkBvlH,KAAKqlH,kBAAkB/hF,GAAMoiF,UAAU,UAAYpiF,GAAQA,EAAK7jC,MAAQ,QAIhJ,OAHAN,EAAK0mH,GAAwB,SAAUC,GACrCA,EAAKxiH,MAAMgwC,QAAS,KAEfwiD,EAzBL+rB,GAAgB7hH,KAAKmI,KAoCzBy7G,GAAaqC,oBAAsB,SAAU3iF,GAC3C,GAAItjC,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,SAIvB,GAAK2gB,EAAImB,gBAAT,CAIA,IAAIi8F,EAAsB,QAAd5iF,EAAK7jC,KACb0mH,EAAUnmH,KAAKsD,MACfk1D,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IACf21G,EAAarzG,IAEjB,GAAIszG,GAAgBF,GAAU,CAC5B,IAAI57G,EAAO67G,EACP57G,EAAM47G,EACN37G,GAAS27G,EACT17G,GAAU07G,EACVE,EAAa,GACb5hF,EAAMpB,GAAQA,EAAKgiF,YAAc,EACrC1iH,EAAOzD,KAAKonH,IAAW,SAAUC,EAAOr+G,GACtC,GAAIq+G,EAAMljH,QAAU6iH,EAAS,CAC3B,IAAIM,EAASP,EAAQM,EAAM36F,QAAQjB,QAAQ87F,YAAYh5F,UAAY84F,EAAMnB,kBAAkBziH,EAAO8E,MAAM47B,IACpG/1B,EAAei5G,EAAM5B,SAAS+B,wBAClCp8G,EAAOiuD,EAAQjrD,EAAahD,KAAMA,GAClCC,EAAMguD,EAAQjrD,EAAa/C,IAAKA,GAChCC,EAAQguD,EAAQlrD,EAAa9C,MAAOA,GACpCC,EAAS+tD,EAAQlrD,EAAa7C,OAAQA,GACtC47G,EAAWzlH,KAAK,CACdmhH,IAAKyE,EACLl8G,KAAMgD,EAAahD,KACnBC,IAAK+C,EAAa/C,UAIxBD,GAAQm6B,EACRl6B,GAAOk6B,EACPj6B,GAASi6B,EACTh6B,GAAUg6B,EACV,IAAIljC,EAAQiJ,EAAQF,EAChB2B,EAASxB,EAASF,EAClBo8G,EAAehkH,EAAOikH,eACtBt8F,EAAK60F,EAAQp2G,KAAK49G,EAAc,CAClCvE,SAAU6D,EAAQ,MAAQ,WAO5B,GALA37F,EAAG0yD,OAAO,CACRz7E,MAAOA,EACP0K,OAAQA,IAGNg6G,EAAO,CACT,IAAIr4F,EAAU,GAad,OAZA1uB,EAAKmnH,GAAY,SAAU9hH,GACzB,IAAIiB,EAAIjB,EAAK+F,KAAOA,EAChB7E,EAAIlB,EAAKgG,IAAMA,EACnBqjB,GAAW,2BAA6BpoB,EAAI,IAAMC,EAAI,MAAQlB,EAAKw9G,IAAM,UAE3Ez3F,EAAGK,QAAQk8F,aAAap5F,UAAYG,EAEhCyV,EAAKyjF,0BACPx8F,EAAGK,QAAQo8F,mBAAmB1jF,EAAKyjF,0BAGrCx8F,EAAG08F,qBACI18F,EAAGK,QAAQ86F,YA4BlB,OAzBIpiF,EAAKyjF,0BACPx8F,EAAGjlB,IAAI,IAAIxC,EAAQyO,KAAK,CACtBC,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAOA,EACP0K,OAAQA,GAEV1G,MAAO,CACLkM,KAAM4xB,EAAKyjF,6BAKjB5nH,EAAKmnH,GAAY,SAAU9hH,GACzB,IAAIukE,EAAM,IAAIjmE,EAAQkkE,MAAM,CAC1BxhE,MAAO,CACLC,EAAGjB,EAAK+F,KAAOm6B,EAAMn6B,EACrB7E,EAAGlB,EAAKgG,IAAMk6B,EAAMl6B,EACpBm7B,MAAOnhC,EAAKw9G,OAGhBz3F,EAAGjlB,IAAIyjE,MAETx+C,EAAG08F,qBACIL,EAAalB,UAAU,UAAYpiF,GAAQA,EAAK7jC,MAAQ,QAGjE,OAAOO,KAAK2lH,WAAWriF,KAuB3BsgF,GAAaz0G,eAAiBvM,EAAO4G,MAAMq6G,GAAgB,kBAoB3DD,GAAax0G,iBAAmBxM,EAAO4G,MAAMq6G,GAAgB,oBA0C7DD,GAAasD,aAAe,SAAUx5G,EAAQC,GAC5C,IAAI3N,KAAK4hH,UAAT,CAKA,IACIj7F,EADA7mB,EAAUE,KAAKyI,OAkBnB,OAhBAiF,EAAS0rC,EAAU2qE,YAAYjkH,EAAS4N,GACxC9K,EAAOzD,KAAKuO,GAAQ,SAAUy5G,EAAQp/G,GACpCA,EAAI8qB,QAAQ,WAAa,GAAKjwB,EAAOzD,KAAKgoH,GAAQ,SAAUr3F,GAC1D,IAAIzvB,EAAWyvB,EAAMxvB,iBAErB,GAAID,GAAYA,EAASqvD,aACvB/oC,KAAYtmB,EAASqvD,aAAa/hD,QAC7B,GAAY,iBAAR5F,EAAwB,CACjC,IAAI+9G,EAAO9lH,KAAK0iH,WAAW5yF,EAAMi2F,UAE7BD,GAAQA,EAAKp2D,eACf/oC,GAAUm/F,EAAKp2D,aAAa/hD,EAAOmiB,OAGtC9vB,QACFA,QACM2mB,EAtBPk7F,GAAgB7hH,KAAKmI,KAyCzBy7G,GAAaniG,UAAY,SAAU/T,EAAQsY,GACzC,IAAIlmB,EAAUE,KAAKyI,OACnBiF,EAAS0rC,EAAU2qE,YAAYjkH,EAAS4N,EAAQ,CAC9C05G,gBAAiB,WAEnB,IAAItlH,EAAc4L,EAAO5L,YACrBvB,EAAOuB,EAAYtB,UACnB6mH,EAAkB35G,EAAOqP,eAAe,mBAAqBrP,EAAO25G,gBAAkB35G,EAAOqP,eAAe,aAAexc,EAAK+mH,gBAAgB55G,EAAO9M,WAAa,KACxK,OAA0B,MAAnBymH,EAA0B9mH,EAAKohB,cAAc0lG,EAAiBrhG,GAAczlB,EAAKkhB,UAAUuE,IASpG49F,GAAa2D,wBAA0B,SAAUC,GAC/C,OAAOxnH,KAAK4iH,eAAe4E,EAAezB,WAS5CnC,GAAa6D,qBAAuB,SAAU3lH,GAC5C,OAAO9B,KAAK0iH,WAAW5gH,EAAYikH,WAGrC,IAAI7B,GAAgB,CAClBwD,iBAAkB,SAAUxpF,GAC1B+lF,GAAQjkH,MACRkkH,GAAc37G,OAAOuE,KAAK9M,KAAMk+B,IAOlC31B,OAAQ,SAAU21B,GAEhB,IAAIp+B,EAAUE,KAAKyI,OACflC,EAAMvG,KAAK8iH,KACXv4F,EAAKvqB,KAAK4rB,IACV+7F,EAAc3nH,KAAK6iH,aACnBmB,EAAYhkH,KAAKojH,WAErB,GAAKtjH,EAAL,CAIAkkH,EAAU4D,YAAY9nH,EAASo+B,GAC/B8lF,EAAUQ,mBAAmB1kH,GAM7B6nH,EAAY/jF,OAAO9jC,EAASyG,GAC5By9G,EAAUS,0BAA0B3kH,EAASo+B,GAI7CwmF,GAAkB1kH,KAAMF,GAKxB6nH,EAAYp/G,OAAOzI,EAASyG,GAC5BshH,GAAkB/nH,GAClBkkH,EAAUW,mBAAmB7kH,EAASo+B,GACtC5sB,GAAOtR,KAAMF,EAASyG,EAAK23B,GAE3B,IAAInU,EAAkBjqB,EAAQoC,IAAI,oBAAsB,cAExD,GAAK4mB,EAAImB,gBAQPM,EAAGy8F,mBAAmBj9F,OARE,CACxB,IAAI+9F,EAAW/gD,EAAUvrD,MAAMuO,GAC/BA,EAAkBg9C,EAAUghD,UAAUD,EAAU,OAE5B,IAAhBA,EAAS,KACX/9F,EAAkB,eAMtBi+F,GAAuBloH,EAASyG,KAOlCmI,gBAAiB,SAAUwvB,GACzB,IAAIp+B,EAAUE,KAAKyI,OACfw/G,EAAQjoH,KACRuG,EAAMvG,KAAK8iH,KAEf,GAAKhjH,EAAL,CAKA,IAAIooH,EAAqB,GACzBpoH,EAAQs+B,eAAc,SAAU0D,EAAe0lF,GAC7C,IAAIW,EAAgBF,EAAMV,wBAAwBC,GAElD,GAAIW,GAAiBA,EAAcC,QACjC,GAAID,EAAcz5G,gBAAiB,CACjC,IAAIiY,EAASwhG,EAAcz5G,gBAAgB84G,EAAgB1nH,EAASyG,EAAK23B,GACzEvX,GAAUA,EAAOpe,QAAU2/G,EAAmBrnH,KAAKsnH,QAEnDD,EAAmBrnH,KAAKsnH,MAI9B,IAAIE,EAAiBzlH,EAAOxD,gBAC5BU,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIwmH,EAAYL,EAAMvF,WAAW5gH,EAAYikH,UAE7C,GAAIuC,EAAU55G,gBAAiB,CAC7B,IAAIiY,EAAS2hG,EAAU55G,gBAAgB5M,EAAahC,EAASyG,EAAK23B,GAClEvX,GAAUA,EAAOpe,QAAU8/G,EAAe9lH,IAAIT,EAAYmG,IAAK,QAE/DogH,EAAe9lH,IAAIT,EAAYmG,IAAK,MAGxC4/G,GAAkB/nH,GAGlBE,KAAKojH,WAAWuB,mBAAmB7kH,EAASo+B,EAAS,CACnDqqF,UAAU,EACVC,SAAUH,IAKZvuB,GAAamuB,EAAOnoH,EAASyG,EAAK23B,EAASmqF,GAC3CL,GAAuBloH,EAASE,KAAK8iH,QAOvC2F,WAAY,SAAUvqF,GACpB,IAAIp+B,EAAUE,KAAKyI,OAEd3I,IAIL+pD,EAAU6+D,iBAAiBxqF,EAAS,cACpC2pF,GAAkB/nH,GAElBE,KAAKojH,WAAWuB,mBAAmB7kH,EAASo+B,EAAS,CACnDqqF,UAAU,IAGZj3G,GAAOtR,KAAMA,KAAKyI,OAAQzI,KAAK8iH,KAAM5kF,GACrC8pF,GAAuBloH,EAASE,KAAK8iH,QAOvC6F,aAAc,SAAUzqF,GACtBgmF,GAAc37G,OAAOuE,KAAK9M,KAAMk+B,IAiBlCwW,aAAc,SAAUxW,GACtBgmF,GAAc37G,OAAOuE,KAAK9M,KAAMk+B,KAcpC,SAAS+lF,GAAQgE,GACf,IAAInoH,EAAUmoH,EAAMx/G,OAChBu7G,EAAYiE,EAAM7E,WACtBY,EAAU4E,iBAAiB9oH,GAC3BkkH,EAAU6E,oBACVC,GAAYb,EAAO,YAAanoH,EAASkkH,GACzC8E,GAAYb,EAAO,QAASnoH,EAASkkH,GACrCA,EAAUnvF,OAOZ,SAASk0F,GAAed,EAAO5hH,EAAQ63B,EAASjB,EAAUoB,GACxD,IAAIv+B,EAAUmoH,EAAMx/G,OAEpB,GAAKw0B,EAAL,CAQA,IAAImE,EAAQ,GACZA,EAAMnE,EAAW,MAAQiB,EAAQjB,EAAW,MAC5CmE,EAAMnE,EAAW,SAAWiB,EAAQjB,EAAW,SAC/CmE,EAAMnE,EAAW,QAAUiB,EAAQjB,EAAW,QAC9C,IAAI+rF,EAAY,CACd/rF,SAAUA,EACVmE,MAAOA,GAET/C,IAAY2qF,EAAU3qF,QAAUA,GAEhC,IAAI4qF,EAAkB/qF,EAAQ+qF,gBAEP,MAAnBA,IACFA,EAAkBrmH,EAAOxD,cAAcg6C,EAAU2/D,iBAAiBkQ,KAIpEnpH,GAAWA,EAAQs+B,cAAc4qF,GAAW,SAAUl5F,GAC/Cm5F,GAAoD,MAAjCA,EAAgB/mH,IAAI4tB,EAAM3nB,KAChD+gH,EAASjB,EAAmB,WAAbhrF,EAAwB,aAAe,kBAAkBnN,EAAMi2F,aAE/EkC,QAzBD9oH,EAAK8oH,EAAMtF,iBAAiBnrD,OAAOywD,EAAMxF,cAAeyG,GA2B1D,SAASA,EAASpD,GAChBA,GAAQA,EAAKsC,SAAWtC,EAAKz/G,IAAWy/G,EAAKz/G,GAAQy/G,EAAKqD,QAASrpH,EAASmoH,EAAMnF,KAAM5kF,IAsC5F,SAASwmF,GAAkBuD,EAAOnoH,GAChC,IAAIspH,EAAYnB,EAAMvF,WAClBsB,EAAYiE,EAAM7E,WACtBtjH,EAAQ04C,YAAW,SAAU12C,GAC3BkiH,EAAUU,kBAAkB5iH,EAAasnH,EAAUtnH,EAAYikH,cAqHnE,SAASsD,GAAiBnrF,EAAStsB,GACjC,IAAI03G,EAAcprF,EAAQz+B,KACtB8pH,EAAgBrrF,EAAQqrF,cACxBC,EAAaC,GAAQH,GACrBI,EAAaF,EAAWE,WACxBC,GAAWD,EAAWnhH,QAAU,UAAU+qF,MAAM,KAChDs2B,EAAeD,EAAQ3kD,MAC3B2kD,EAAwB,MAAdA,EAAQ,IAAc1J,EAAe0J,EAAQ,IACvD3pH,KAAKuhH,IAAmB,EACxB,IAAIsI,EAAW,CAAC3rF,GACZ4rF,GAAU,EAEV5rF,EAAQz3B,QACVqjH,GAAU,EACVD,EAAWjnH,EAAOqE,IAAIi3B,EAAQz3B,OAAO,SAAUjC,GAG7C,OAFAA,EAAO5B,EAAO6O,SAAS7O,EAAOpD,OAAO,GAAIgF,GAAO05B,GAChD15B,EAAKiC,MAAQ,KACNjC,MAIX,IACIulH,EADAC,EAAgB,GAEhBC,EAA6B,cAAhBX,GAA+C,aAAhBA,EAChDnqH,EAAK0qH,GAAU,SAAUK,GAEvBH,EAAWP,EAAWxsF,OAAOktF,EAAWlqH,KAAKyI,OAAQzI,KAAK8iH,MAE1DiH,EAAWA,GAAYnnH,EAAOpD,OAAO,GAAI0qH,GAEzCH,EAAStqH,KAAOiqH,EAAWphH,OAASyhH,EAAStqH,KAC7CuqH,EAAcnpH,KAAKkpH,GAEfE,EAEFlB,GAAe/oH,KAAM4pH,EAAcM,EAAW,UACrCP,GACTZ,GAAe/oH,KAAM4pH,EAAcM,EAAWP,EAAQltB,KAAMktB,EAAQQ,OAErEnqH,MAEkB,SAAjB4pH,GAA4BK,GAAeN,IAEzC3pH,KAAKwhH,IAEPyC,GAAQjkH,MACRkkH,GAAc37G,OAAOuE,KAAK9M,KAAMk+B,GAChCl+B,KAAKwhH,IAAkB,GAEvB0C,GAAc0F,GAAc98G,KAAK9M,KAAMk+B,IAMzC6rF,EADED,EACS,CACTrqH,KAAMiqH,EAAWphH,OAASghH,EAC1BC,cAAeA,EACf9iH,MAAOujH,GAGEA,EAAc,GAG3BhqH,KAAKuhH,IAAmB,GACvB3vG,GAAU5R,KAAKujH,eAAejmF,QAAQysF,EAAStqH,KAAMsqH,GAGxD,SAAS5F,GAAoBvyG,GAC3B,IAAIw4G,EAAiBpqH,KAAKwjH,gBAE1B,MAAO4G,EAAen/G,OAAQ,CAC5B,IAAIizB,EAAUksF,EAAetlD,QAC7BukD,GAAiBv8G,KAAK9M,KAAMk+B,EAAStsB,IAIzC,SAASwyG,GAAoBxyG,IAC1BA,GAAU5R,KAAKs9B,QAAQ,WAgB1B,SAASomF,GAAkBn5F,EAAI09F,GAC7B19F,EAAG3jB,GAAG,YAAY,WAChBqhH,EAAM3qF,QAAQ,aAQd/S,EAAG5M,UAAUm+E,cAAiBmsB,EAAMzG,IAAoByG,EAAM7E,WAAWiB,YAAe4D,EAAMzE,gBAAgBv4G,QAC5Gg9G,EAAM3qF,QAAQ,eA6CpB,SAASwrF,GAAYb,EAAOxoH,EAAMK,EAASkkH,GAOzC,IANA,IAAIqG,EAAuB,cAAT5qH,EACd6qH,EAAWD,EAAcpC,EAAMtF,iBAAmBsF,EAAMxF,aACxD8H,EAAUF,EAAcpC,EAAMrF,eAAiBqF,EAAMvF,WACrDn4F,EAAK09F,EAAMr8F,IACXrlB,EAAM0hH,EAAMnF,KAEP70G,EAAI,EAAGA,EAAIq8G,EAASr/G,OAAQgD,IACnCq8G,EAASr8G,GAAGm6G,SAAU,EAOxB,SAASoC,EAAU16F,GAEjB,IAAI26F,EAAS,OAAS36F,EAAM3nB,GAAK,IAAM2nB,EAAMrwB,KACzCqmH,EAAOyE,EAAQE,GAEnB,IAAK3E,EAAM,CACT,IAAI4E,EAAYzK,EAAenwF,EAAMrwB,MACjCkrH,EAAQN,EAAcn3G,EAAc03G,SAASF,EAAUjuB,KAAMiuB,EAAUP,KAAOtgE,EAAU+gE,SAASF,EAAUP,KAC/GrE,EAAO,IAAI6E,EACX7E,EAAK98G,KAAKlJ,EAASyG,GACnBgkH,EAAQE,GAAU3E,EAClBwE,EAASzpH,KAAKilH,GACdv7F,EAAGjlB,IAAIwgH,EAAKxiH,OAGdwsB,EAAMi2F,SAAWD,EAAK+E,KAAOJ,EAC7B3E,EAAKsC,SAAU,EACftC,EAAKqD,QAAUr5F,EACfg2F,EAAKxiH,MAAMwnH,kBAAoB,CAC7B7tF,SAAUnN,EAAMmN,SAChB91B,MAAO2oB,EAAMiS,iBAEdsoF,GAAerG,EAAU8E,YAAYhD,EAAMh2F,EAAOhwB,EAASyG,GA1B9D8jH,EAAcvqH,EAAQs+B,eAAc,SAAU0D,EAAehS,GACzC,WAAlBgS,GAA8B0oF,EAAU16F,MACrChwB,EAAQ04C,WAAWgyE,GA2BxB,IAASv8G,EAAI,EAAGA,EAAIq8G,EAASr/G,QAAS,CACpC,IAAI66G,EAAOwE,EAASr8G,GAEf63G,EAAKsC,QAQRn6G,MAPCo8G,GAAevE,EAAKiF,WAAWx8F,UAChChE,EAAG8X,OAAOyjF,EAAKxiH,OACfwiH,EAAKv3F,QAAQzuB,EAASyG,GACtB+jH,EAASr0D,OAAOhoD,EAAG,UACZs8G,EAAQzE,EAAK+E,MACpB/E,EAAK+E,KAAO/E,EAAKxiH,MAAMwnH,kBAAoB,OA6BjD,SAASjD,GAAkB/nH,GACzBA,EAAQ+nH,oBACR/nH,EAAQ04C,YAAW,SAAU12C,GAC3BA,EAAY+lH,uBAIhB,SAASv2G,GAAO22G,EAAOnoH,EAASyG,EAAK23B,GACnC8sF,GAAiB/C,EAAOnoH,EAASyG,EAAK23B,GACtC/+B,EAAK8oH,EAAMxF,cAAc,SAAU+D,GACjCA,EAAM4B,SAAU,KAElBtuB,GAAamuB,EAAOnoH,EAASyG,EAAK23B,GAElC/+B,EAAK8oH,EAAMxF,cAAc,SAAU+D,GAC5BA,EAAM4B,SACT5B,EAAMnkF,OAAOviC,EAASyG,MAK5B,SAASykH,GAAiB/C,EAAOnoH,EAASyG,EAAK23B,EAAS+sF,GACtD9rH,EAAK8rH,GAAahD,EAAMtF,kBAAkB,SAAUwF,GAClD,IAAIX,EAAiBW,EAAcgB,QACnChB,EAAc72G,OAAOk2G,EAAgB1nH,EAASyG,EAAK23B,GACnDgtF,GAAQ1D,EAAgBW,MAS5B,SAASruB,GAAamuB,EAAOnoH,EAASyG,EAAK23B,EAASsqF,GAElD,IACInE,EADAL,EAAYiE,EAAM7E,WAEtBtjH,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIwmH,EAAYL,EAAMvF,WAAW5gH,EAAYikH,UAC7CuC,EAAUF,SAAU,EACpB,IAAI2C,EAAazC,EAAUyC,WAC3B/G,EAAUmH,cAAcJ,EAAY7sF,GAEhCsqF,GAAYA,EAAStmH,IAAIJ,EAAYmG,MACvC8iH,EAAWz4G,QAGb+xG,GAAc0G,EAAWK,QAAQpH,EAAUqH,eAAeN,IAC1DzC,EAAUhlH,MAAMsO,SAAW9P,EAAYI,IAAI,UAC3CgpH,GAAQppH,EAAawmH,GACrBgD,GAAYxpH,EAAawmH,MAE3BtE,EAAUK,YAAcA,EAExBkH,GAAuBtD,EAAOnoH,GAE9BuoF,EAAK4/B,EAAMr8F,IAAIo2F,IAAKliH,GAGtB,SAASkoH,GAAuBloH,EAASyG,GACvCpH,EAAKqsH,IAAiB,SAAUC,GAC9BA,EAAK3rH,EAASyG,MArblBq9G,GAAa3mC,OAAS,SAAU35C,GAC9B,GAAItjC,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,QADvB,CAKAnI,KAAK4rB,IAAIqxD,OAAO35C,GAEhB,IAAIxjC,EAAUE,KAAKyI,OAInB,GAFAzI,KAAK0rH,YAAc1rH,KAAK0rH,WAAWzuC,SAE9Bn9E,EAAL,CAIA,IAAI6rH,EAAgB7rH,EAAQg3G,YAAY,SACpCllG,EAAS0xB,GAAQA,EAAK1xB,OAC1B5R,KAAKuhH,IAAmB,EACxBoK,GAAiB1H,GAAQjkH,MACzBkkH,GAAc37G,OAAOuE,KAAK9M,MAC1BA,KAAKuhH,IAAmB,EACxB4C,GAAoBr3G,KAAK9M,KAAM4R,GAC/BwyG,GAAoBt3G,KAAK9M,KAAM4R,MAiBjCgyG,GAAagI,YAAc,SAAUj/G,EAAMk/G,GACzC,GAAI7rH,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,SAYvB,GARI8d,EAAStZ,KACXk/G,EAAMl/G,EACNA,EAAO,IAGTA,EAAOA,GAAQ,UACf3M,KAAK8rH,cAEAC,GAAep/G,GAApB,CAIA,IAAI8e,EAAKsgG,GAAep/G,GAAM3M,KAAK8iH,KAAM+I,GACrCthG,EAAKvqB,KAAK4rB,IACd5rB,KAAK0rH,WAAajgG,EAClBlB,EAAGjlB,IAAImmB,KAOTm4F,GAAakI,YAAc,WACrB9rH,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,KAIvBnI,KAAK0rH,YAAc1rH,KAAK4rB,IAAIyW,OAAOriC,KAAK0rH,YACxC1rH,KAAK0rH,WAAa,OAQpB9H,GAAaoI,oBAAsB,SAAUjC,GAC3C,IAAI7rF,EAAUt7B,EAAOpD,OAAO,GAAIuqH,GAEhC,OADA7rF,EAAQz+B,KAAOwsH,GAAelC,EAAStqH,MAChCy+B,GAgBT0lF,GAAap9G,eAAiB,SAAU03B,EAAS1uB,GAC3CxP,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,KAIlB8d,EAASzW,KACZA,EAAM,CACJoC,SAAUpC,IAITi6G,GAAQvrF,EAAQz+B,OAKhBO,KAAKyI,SAKNzI,KAAKuhH,GACPvhH,KAAKwjH,gBAAgB3iH,KAAKq9B,IAK5BmrF,GAAiBv8G,KAAK9M,KAAMk+B,EAAS1uB,EAAIoC,QAErCpC,EAAI+yG,MACNviH,KAAK4rB,IAAI22F,OAAM,IACQ,IAAd/yG,EAAI+yG,OAAmBz5F,EAAIw6C,QAAQa,QAM5CnkE,KAAKsiH,oBAGP6B,GAAoBr3G,KAAK9M,KAAMwP,EAAIoC,QACnCwyG,GAAoBt3G,KAAK9M,KAAMwP,EAAIoC,YAuHrCgyG,GAAa75B,WAAa,SAAUlgF,GAClC,GAAI7J,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,QADvB,CAKA,IAAI4uC,EAAcltC,EAAOktC,YACrBj3C,EAAUE,KAAKihB,WACfnf,EAAchC,EAAQu5C,iBAAiBtC,GAC3Cj1C,EAAYioF,WAAWlgF,GAQvB7J,KAAKojH,WAAWiB,YAAa,IAQ/BT,GAAah9G,GAAK86G,GAAqC,MAAM,GAC7DkC,GAAa/mF,IAAM6kF,GAAqC,OAAO,GAC/DkC,GAAahuD,IAAM8rD,GAAqC,OAAO,GAuJ/D,IAAIwK,GAAoB,CAAC,QAAS,WAAY,YAAa,WAAY,YAAa,YAAa,UAAW,YAAa,eA4HzH,SAASrK,GAAgB15G,IAEzB,SAASojH,GAAuBtD,EAAOnoH,GACrC,IAAIyqB,EAAK09F,EAAMr8F,IACX45F,EAAUj7F,EAAGi7F,QACb2G,EAAU,EACd3G,EAAQ1iF,UAAS,SAAUrX,GACzB0gG,OAGEA,EAAUrsH,EAAQoC,IAAI,yBAA2B4mB,EAAItJ,MACvD1f,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIA,EAAYsqH,uBAAhB,CAIA,IAAI9D,EAAYL,EAAMvF,WAAW5gH,EAAYikH,UAEzCuC,EAAUF,SACZE,EAAUhlH,MAAMw/B,UAAS,SAAUrX,GAEjCA,EAAGiwB,eAAgB,SAa7B,SAAS4vE,GAAYxpH,EAAawmH,GAChC,IAAI+D,EAAYvqH,EAAYI,IAAI,cAAgB,KAChDomH,EAAUhlH,MAAMw/B,UAAS,SAAUrX,GAE5BA,EAAG2+C,SAEF3+C,EAAGjmB,MAAMinF,QAAU4/B,GACrB5gG,EAAGoV,SAAS,QAASwrF,GAIrB5gG,EAAG8qF,wBACL9qF,EAAG8qF,wBAAuB,SAAUJ,GAClCA,EAAYt1E,SAAS,QAASwrF,SAWtC,SAASnB,GAAQp7F,EAAOg2F,GACtB,IAAI7kH,EAAI6uB,EAAM5tB,IAAI,KACdlB,EAAS8uB,EAAM5tB,IAAI,UAEvB4jH,EAAKxiH,MAAMw/B,UAAS,SAAUrX,GACZ,UAAZA,EAAGhsB,OACA,MAALwB,IAAcwqB,EAAGxqB,EAAIA,GACX,MAAVD,IAAmByqB,EAAGzqB,OAASA,OAKrC,SAAS+hH,GAAmBuJ,GAC1B,IAAI3E,EAAc2E,EAAWzJ,aAC7B,OAAOjgH,EAAOpD,OAAO,IAAI+/G,EAAa+M,GAAa,CAEjD70D,qBAAsB70D,EAAOiC,KAAK8iH,EAAYlwD,qBAAsBkwD,GACpE4E,sBAAuB,SAAU9gG,GAC/B,MAAOA,EAAI,CACT,IAAI+gG,EAAY/gG,EAAGq/F,kBAEnB,GAAiB,MAAb0B,EACF,OAAOF,EAAW7jH,OAAOxG,aAAauqH,EAAUvvF,SAAUuvF,EAAUrlH,OAGtEskB,EAAKA,EAAG5J,WAyBhB,SAASyhG,KAEPtjH,KAAKysH,UArOP7I,GAAavb,YAAc,WACzBlpG,EAAK+sH,IAAmB,SAAUQ,GAChC,IAAI7/F,EAAU,SAAUF,GACtB,IAEI9iB,EAFA/J,EAAUE,KAAKihB,WACfwK,EAAKkB,EAAEva,OAEPu6G,EAA0B,cAAZD,EAElB,GAAIC,EACF9iH,EAAS,QACJ,GAAI4hB,GAAsB,MAAhBA,EAAG7qB,UAAmB,CACrC,IAAIw5F,EAAY3uE,EAAG2uE,WAAat6F,EAAQu5C,iBAAiB5tB,EAAGsrB,aAC5DltC,EAASuwF,GAAaA,EAAUxwF,cAAc6hB,EAAG7qB,UAAW6qB,EAAGuxE,SAAUvxE,IAAO,QAEzEA,GAAMA,EAAGoW,YACdh4B,EAASjH,EAAOpD,OAAO,GAAIisB,EAAGoW,YAUlC,GAAIh4B,EAAQ,CACV,IAAIi4B,EAAgBj4B,EAAOi4B,cACvBC,EAAiBl4B,EAAOk4B,eAMN,aAAlBD,GAAkD,cAAlBA,GAAmD,aAAlBA,IACnEA,EAAgB,SAChBC,EAAiBl4B,EAAOktC,aAG1B,IAAIjnB,EAAQgS,GAAmC,MAAlBC,GAA0BjiC,EAAQmC,aAAa6/B,EAAeC,GACvF+jF,EAAOh2F,GAAS9vB,KAAwB,WAAnB8vB,EAAMmN,SAAwB,aAAe,kBAAkBnN,EAAMi2F,UAC9Fl8G,EAAOvB,MAAQqkB,EACf9iB,EAAOpK,KAAOitH,EACd1sH,KAAKqjH,kBAAkBoJ,UAAY,CACjCG,SAAUnhG,EACVohG,YAAahjH,EACbimB,MAAOA,EACPg2F,KAAMA,GAER9lH,KAAKs9B,QAAQovF,EAAS7iH,KAS1BgjB,EAAQipC,sBAAuB,EAE/B91D,KAAK4rB,IAAIhlB,GAAG8lH,EAAS7/F,EAAS7sB,QAC7BA,MACHb,EAAK8sH,IAAgB,SAAUa,EAAYvlE,GACzCvnD,KAAKujH,eAAe38G,GAAG2gD,GAAW,SAAUj/C,GAC1CtI,KAAKs9B,QAAQiqB,EAAWj/C,KACvBtI,QACFA,OAOL4jH,GAAa5tE,WAAa,WACxB,OAAOh2C,KAAK4hH,WAOdgC,GAAa9qF,MAAQ,WACf94B,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,IAIvBnI,KAAK6kH,UAAU,CACbruC,OAAQ,KACP,IAOLotC,GAAar1F,QAAU,WACrB,GAAIvuB,KAAK4hH,UACPC,GAAgB7hH,KAAKmI,QADvB,CAKAnI,KAAK4hH,WAAY,EACjBxoE,EAAU2zE,aAAa/sH,KAAK4kH,SAAUoI,GAAmB,IACzD,IAAIzmH,EAAMvG,KAAK8iH,KACXhjH,EAAUE,KAAKyI,OACnBtJ,EAAKa,KAAK2iH,kBAAkB,SAAUlvF,GACpCA,EAAUlF,QAAQzuB,EAASyG,MAE7BpH,EAAKa,KAAKyiH,cAAc,SAAU+D,GAChCA,EAAMj4F,QAAQzuB,EAASyG,MAGzBvG,KAAK4rB,IAAI2C,iBAEFg4F,GAAUvmH,KAAKmI,MAGxBvF,EAAOyM,MAAM0yG,GAAS7sD,GAmHtBouD,GAAex1G,UAAY,CACzBC,YAAau1G,GACbhuD,eAAgB,SAAUl0B,GACxB,IAAI6rF,EAAW,GACXC,EAAY,GACZC,EAAa,GAEjB,GAAIvqH,EAAOid,SAASuhB,GAAQ,CAC1B,IAAIgsF,EAAcnN,EAAe7+E,GAEjC6rF,EAAShwF,SAAWmwF,EAAY3wB,MAAQ,KACxCwwB,EAAS5uF,QAAU+uF,EAAYjD,KAAO,SAEnC,CAGD,IAAIkD,EAAW,CAAC,QAAS,OAAQ,MAC7BC,EAAW,CACb3gH,KAAM,EACN/L,UAAW,EACXo8F,SAAU,GAEZp6F,EAAOzD,KAAKiiC,GAAO,SAAU31B,EAAK1D,GAGhC,IAFA,IAAIwlH,GAAW,EAENt/G,EAAI,EAAGA,EAAIo/G,EAASpiH,OAAQgD,IAAK,CACxC,IAAIu/G,EAAaH,EAASp/G,GACtBw/G,EAAY1lH,EAAI+7F,YAAY0pB,GAEhC,GAAIC,EAAY,GAAKA,IAAc1lH,EAAIkD,OAASuiH,EAAWviH,OAAQ,CACjE,IAAIgyB,EAAWl1B,EAAIT,MAAM,EAAGmmH,GAEX,SAAbxwF,IACFgwF,EAAShwF,SAAWA,EACpBgwF,EAASO,EAAWl7B,eAAiB7mF,EACrC8hH,GAAW,IAKbD,EAASvwG,eAAehV,KAC1BmlH,EAAUnlH,GAAO0D,EACjB8hH,GAAW,GAGRA,IACHJ,EAAWplH,GAAO0D,MAK1B,MAAO,CACLwhH,SAAUA,EACVC,UAAWA,EACXC,WAAYA,IAGhB97D,OAAQ,SAAU9J,EAAWnmB,EAAOi1B,GAElC,IAAIo2D,EAAYzsH,KAAKysH,UAErB,IAAKA,EACH,OAAO,EAGT,IAAIG,EAAWH,EAAUG,SACrBC,EAAcJ,EAAUI,YACxB/8F,EAAQ28F,EAAU38F,MAClBg2F,EAAO2G,EAAU3G,KAErB,IAAKh2F,IAAUg2F,EACb,OAAO,EAGT,IAAImH,EAAW7rF,EAAM6rF,SACjBC,EAAY9rF,EAAM8rF,UACtB,OAAOQ,EAAMT,EAAUn9F,EAAO,aAAe49F,EAAMT,EAAUn9F,EAAO,YAAc49F,EAAMT,EAAUn9F,EAAO,QAAS,mBAAqB49F,EAAMT,EAAUn9F,EAAO,SAAW49F,EAAMT,EAAUn9F,EAAO,OAAS49F,EAAMR,EAAWL,EAAa,SAAWa,EAAMR,EAAWL,EAAa,cAAgBa,EAAMR,EAAWL,EAAa,eAAiB/G,EAAK6H,uBAAyB7H,EAAK6H,sBAAsBpmE,EAAWnmB,EAAM+rF,WAAYP,EAAUC,IAE/a,SAASa,EAAMtsF,EAAOm0B,EAAMviC,EAAM46F,GAChC,OAAsB,MAAfxsF,EAAMpO,IAAiBuiC,EAAKq4D,GAAc56F,KAAUoO,EAAMpO,KAGrEwjC,aAAc,WAEZx2D,KAAKysH,UAAY,OAQrB,IAAIhD,GAAU,GAMVwC,GAAiB,GAOjB9I,GAAqB,GAMrB8B,GAA0B,GAM1BuG,GAAkB,GAMlBtI,GAAc,GAMdhB,GAAe,GAKf6J,GAAiB,GACjBxF,GAAY,GACZF,GAAkB,GAClBwH,GAAS,IAAI5tD,KAAS,EACtB6tD,GAAc,IAAI7tD,KAAS,EAC3B+sD,GAAoB,qBAExB,SAASe,GAAcvH,GACrB,IAAIwH,EAAiB,EACjBC,EAAkB,EAClBC,EAAiB,EACjBC,EAAa,wBAEjB,SAASC,EAA4BC,EAAQx5D,GAC3C,IAAK,IAAI5mD,EAAI,EAAGA,EAAIogH,EAAOpjH,OAAQgD,IAAK,CACtC,IAAIqgH,EAAaD,EAAOpgH,GACxBqgH,EAAWH,GAAct5D,GAI7B11D,EAAK8sH,IAAgB,SAAUa,EAAYvlE,GACzCi/D,EAAMjD,eAAe38G,GAAG2gD,GAAW,SAAUj/C,GAC3C,GAAI+9G,GAAgBG,EAAMljH,QAAUkjH,EAAM2H,KAAgBH,EAAgB,CACxE,GAAI1lH,GAASA,EAAMihH,cACjB,OAGF,IAAIvsF,EAASwpF,EAAMwF,oBAAoB1jH,GACnCimH,EAAc,GAClBpvH,EAAKonH,IAAW,SAAU+H,GACpBA,IAAe9H,GAAS8H,EAAWhrH,QAAUkjH,EAAMljH,OACrDirH,EAAY1tH,KAAKytH,MAGrBF,EAA4BG,EAAaP,GACzC7uH,EAAKovH,GAAa,SAAUD,GACtBA,EAAWH,KAAgBF,GAC7BK,EAAW9nH,eAAew2B,MAG9BoxF,EAA4BG,EAAaL,UAkBjD,SAASllH,GAAKg5G,EAAKC,EAAO3+E,GACxB,IAAIkrF,EAAgBC,GAAiBzM,GAErC,GAAIwM,EACF,OAAOA,EAGT,IAAIhI,EAAQ,IAAIzE,GAAQC,EAAKC,EAAO3+E,GAKpC,OAJAkjF,EAAMr+G,GAAK,MAAQ0lH,KACnBtH,GAAUC,EAAMr+G,IAAMq+G,EACtBptE,EAAU2zE,aAAa/K,EAAKgL,GAAmBxG,EAAMr+G,IACrD4lH,GAAcvH,GACPA,EAOT,SAASkI,GAAQvI,GAEf,GAAIvjH,EAAOogB,QAAQmjG,GAAU,CAC3B,IAAIkI,EAASlI,EACbA,EAAU,KAEVhnH,EAAKkvH,GAAQ,SAAU7H,GACF,MAAfA,EAAMljH,QACR6iH,EAAUK,EAAMljH,UAGpB6iH,EAAUA,GAAW,KAAO2H,KAC5B3uH,EAAKkvH,GAAQ,SAAU7H,GACrBA,EAAMljH,MAAQ6iH,KAKlB,OADAE,GAAgBF,IAAW,EACpBA,EAQT,SAASwI,GAAWxI,GAClBE,GAAgBF,IAAW,EAO7B,IAAIyI,GAAaD,GAMjB,SAASpgG,GAAQi4F,GACM,kBAAVA,EACTA,EAAQD,GAAUC,GACPA,aAAiBzE,KAE5ByE,EAAQiI,GAAiBjI,IAGvBA,aAAiBzE,KAAYyE,EAAMxwE,cACrCwwE,EAAMj4F,UASV,SAASkgG,GAAiBzM,GACxB,OAAOuE,GAAUntE,EAAU25C,aAAaivB,EAAKgL,KAQ/C,SAAS6B,GAAgB9mH,GACvB,OAAOw+G,GAAUx+G,GAOnB,SAAS+mH,GAAcniH,EAAMs1G,GAC3BC,GAAav1G,GAAQs1G,EAQvB,SAASpwG,GAAqBk9G,GAC5B9J,GAAwBpkH,KAAKkuH,GAQ/B,SAAS5vC,GAAkB6vC,EAAUC,GACnCC,GAAkB/L,GAAoB6L,EAAUC,EAAW9O,GAQ7D,SAASgP,GAAmBC,GAC1B5D,GAAgB3qH,KAAKuuH,GAoBvB,SAAS/mH,GAAeqhH,EAAYvwF,EAAW6D,GACpB,oBAAd7D,IACT6D,EAAS7D,EACTA,EAAY,IAGd,IAAI2zF,EAAa7mG,EAASyjG,GAAcA,EAAWjqH,KAAO,CAACiqH,EAAYA,EAAa,CAClFphH,MAAO6wB,IACN,GAEHuwF,EAAWphH,OAASohH,EAAWphH,OAASwkH,GAAYx6B,cACpDn5D,EAAYuwF,EAAWphH,MAEvB+kC,EAAOo0E,EAAWr9C,KAAK0oD,IAAerL,EAAWr9C,KAAKjrC,IAEjDswF,GAAQqD,KACXrD,GAAQqD,GAAc,CACpB9vF,OAAQA,EACR0sF,WAAYA,IAIhBuC,GAAe9yF,GAAa2zF,EAQ9B,SAASztC,GAAyB5/E,EAAM0wD,GACtCiH,EAAwBlQ,SAASznD,EAAM0wD,GASzC,SAASk/D,GAA8B5vH,GACrC,IAAIu3G,EAAkB5/C,EAAwBl1D,IAAIzC,GAElD,GAAIu3G,EACF,OAAOA,EAAgBlX,kBAAoBkX,EAAgBlX,oBAAsBkX,EAAgB70G,WAAWmF,QAahH,SAASusB,GAAem7F,EAAUM,GAChCJ,GAAkBhM,GAAa8L,EAAUM,EAAY/O,EAAwB,UAQ/E,SAASxxF,GAAeigG,EAAUO,GAChCL,GAAkBhM,GAAa8L,EAAUO,EAAY7O,EAAuB,UAO9E,SAASwO,GAAkBM,EAAYR,EAAUl5E,EAAI25E,EAAiBzpG,IAChE2wB,EAAWq4E,IAAa/oG,EAAS+oG,MACnCl5E,EAAKk5E,EACLA,EAAWS,GAGb,IAAIC,EAAe7P,EAAU8P,iBAAiB75E,EAAI9vB,GAIlD,OAHA0pG,EAAazM,OAAS+L,EACtBU,EAAaE,MAAQ95E,EACrB05E,EAAW3uH,KAAK6uH,GACTA,EAOT,SAASG,GAAgBljH,EAAMmjH,GAC7B/D,GAAep/G,GAAQmjH,EAQzB,SAAS9qE,GAAqB1hB,GAQ5B,OAAOrwB,EAAezT,OAAO8jC,GAQ/B,SAASjyB,GAAoBiyB,GAQ3B,OAAOpwB,EAAc1T,OAAO8jC,GAQ9B,SAASv6B,GAAkBu6B,GASzB,OAAOjkC,EAAYG,OAAO8jC,GAQ5B,SAASma,GAAgBna,GASvB,OAAOumB,EAAUrqD,OAAO8jC,GAoB1B,SAASysF,GAAiBC,GACxBptH,EAAOqtH,UAAU,eAAgBD,GA8BnC,SAAS5zB,GAAY75D,EAAS2tF,EAASC,GACrCnQ,EAAe5jB,YAAY75D,EAAS2tF,EAASC,GAQ/C,SAASC,GAAO7tF,GAEd,IAAI4kB,EAAU64D,EAAeqQ,YAAY9tF,GACzC,OAAO4kB,GAAWA,EAAQ,IAAM,CAC9B+oE,QAAS/oE,EAAQ,GAAGmpE,QACpBH,aAAchpE,EAAQ,GAAGgpE,cAI7BphG,GAAe0xF,EAAwBd,GACvC9tG,GAAqB4tG,GACrBtgC,GAAkBkhC,EAA8Bz9D,GAChDitE,GAAgB,UAAWjQ,GAE3Bv3G,GAAe,CACb5I,KAAM,YACN6I,MAAO,YACPC,OAAQ,aACP3F,EAAOg2C,MACVvwC,GAAe,CACb5I,KAAM,WACN6I,MAAO,WACPC,OAAQ,YACP3F,EAAOg2C,MAEVk2E,GAAc,QAAShP,GACvBgP,GAAc,OAAQ/O,GAGtB,IAAIwQ,GAAW,GACf5tH,EAAQ0hE,QAAUA,EAClB1hE,EAAQjD,aAAeA,EACvBiD,EAAQuyC,SAAWA,EACnBvyC,EAAQqG,KAAOA,GACfrG,EAAQ+rH,QAAUA,GAClB/rH,EAAQgsH,WAAaA,GACrBhsH,EAAQisH,WAAaA,GACrBjsH,EAAQ4rB,QAAUA,GAClB5rB,EAAQ8rH,iBAAmBA,GAC3B9rH,EAAQksH,gBAAkBA,GAC1BlsH,EAAQmsH,cAAgBA,GACxBnsH,EAAQkP,qBAAuBA,GAC/BlP,EAAQw8E,kBAAoBA,GAC5Bx8E,EAAQwsH,mBAAqBA,GAC7BxsH,EAAQ0F,eAAiBA,GACzB1F,EAAQ08E,yBAA2BA,GACnC18E,EAAQ0sH,8BAAgCA,GACxC1sH,EAAQkxB,eAAiBA,GACzBlxB,EAAQosB,eAAiBA,GACzBpsB,EAAQktH,gBAAkBA,GAC1BltH,EAAQqiD,qBAAuBA,GAC/BriD,EAAQ0O,oBAAsBA,GAC9B1O,EAAQoG,kBAAoBA,GAC5BpG,EAAQ86C,gBAAkBA,GAC1B96C,EAAQotH,iBAAmBA,GAC3BptH,EAAQy5F,YAAcA,GACtBz5F,EAAQytH,OAASA,GACjBztH,EAAQ4tH,SAAWA,GACnB,IAAIC,GAAe,EAAQ,SAC3B,WACI,IAAK,IAAIzoH,KAAOyoH,GACRA,GAAazzG,eAAehV,KAC5BpF,EAAQoF,GAAOyoH,GAAazoH,KAHxC,I,uBCnyEA,IAAI0oH,EAAQ,EAAQ,QAEhB/kG,EAAgB+kG,EAAM/kG,cAEtBmtC,EAAY,EAAQ,QAEpBtsD,EAAe,EAAQ,QAEvB02B,EAAS,EAAQ,QAEjBytF,EAAc,EAAQ,QAEtBC,EAAa,EAAQ,QAErBprH,EAAO,EAAQ,QAKfuyD,EAAMe,EAAUf,IAChB84D,EAAY74G,MAAMjK,UAAU+L,KAC5Bg3G,EAAO,OACPC,EAAYjlH,KAAK8d,MACjBmqC,EAAUjoD,KAAKw4C,IACfwP,EAAUhoD,KAAK04C,IACf3zC,EAAK/E,KAAK+E,GACV40E,EAAgB,EAAV35E,KAAK+E,GACXmgH,EAAS,IAAMngH,EACfuG,EAAU,KAEd,SAAS65G,EAAOvlH,GACd,OAAOqlH,EAAgB,IAANrlH,GAAa,IAGhC,SAASwlH,EAAaxlH,GACpB,OAAOA,EAAM0L,GAAW1L,GAAO0L,EAGjC,SAAS+5G,EAAY1rH,EAAO2rH,GAC1B,IAAIz/G,EAAOy/G,EAAS3rH,EAAM3B,SAAW2B,EAAMkM,KAC3C,OAAe,MAARA,GAAgBA,IAASm/G,EAGlC,SAASO,EAAc5rH,EAAO2rH,GAC5B,IAAItyE,EAASsyE,EAAS3rH,EAAMmpE,WAAanpE,EAAMq5C,OAC/C,OAAiB,MAAVA,GAAkBA,IAAWgyE,EAGtC,SAASrsF,EAAa6sF,EAAOr8G,GACvBA,GACFgL,EAAKqxG,EAAO,YAAa,UAAYT,EAAU9jH,KAAKkI,EAAG,KAAO,KAIlE,SAASgL,EAAKyL,EAAI1jB,EAAK0D,KAChBA,GAAoB,WAAbA,EAAIhM,MAAkC,WAAbgM,EAAIhM,OAEvCgsB,EAAGshG,aAAahlH,EAAK0D,GAIzB,SAAS6lH,EAAU7lG,EAAI1jB,EAAK0D,GAC1BggB,EAAG8lG,eAAe,+BAAgCxpH,EAAK0D,GAGzD,SAAS+lH,EAAUH,EAAO7rH,EAAO2rH,EAAQ1lG,GACvC,GAAIylG,EAAY1rH,EAAO2rH,GAAS,CAC9B,IAAIz/G,EAAOy/G,EAAS3rH,EAAM3B,SAAW2B,EAAMkM,KAC3CA,EAAgB,gBAATA,EAAyBm/G,EAAOn/G,EACvCsO,EAAKqxG,EAAO,OAAQ3/G,GACpBsO,EAAKqxG,EAAO,eAAqC,MAArB7rH,EAAM0mF,YAAsB1mF,EAAM0mF,YAAc1mF,EAAM/D,QAAU+D,EAAM/D,cAElGue,EAAKqxG,EAAO,OAAQR,GAGtB,GAAIO,EAAc5rH,EAAO2rH,GAAS,CAChC,IAAItyE,EAASsyE,EAAS3rH,EAAMmpE,WAAanpE,EAAMq5C,OAC/CA,EAAoB,gBAAXA,EAA2BgyE,EAAOhyE,EAC3C7+B,EAAKqxG,EAAO,SAAUxyE,GACtB,IAAI4yE,EAAcN,EAAS3rH,EAAMopE,gBAAkBppE,EAAMkzE,UACrDg5C,GAAeP,GAAU3rH,EAAMs7B,cAAgBrV,EAAG0hE,eAAiB,EACvEntE,EAAKqxG,EAAO,eAAgBI,EAAcC,GAE1C1xG,EAAKqxG,EAAO,cAAeF,EAAS,SAAW,QAC/CnxG,EAAKqxG,EAAO,iBAAyC,MAAvB7rH,EAAM2mF,cAAwB3mF,EAAM2mF,cAAgB3mF,EAAM/D,SACxF,IAAI25D,EAAW51D,EAAM41D,SAEjBA,GACFp7C,EAAKqxG,EAAO,mBAAoB7rH,EAAM41D,SAASvhD,KAAK,MACpDmG,EAAKqxG,EAAO,oBAAqBP,EAAUtrH,EAAM4mF,gBAAkB,KAEnEpsE,EAAKqxG,EAAO,mBAAoB,IAIlC7rH,EAAMgpG,SAAWxuF,EAAKqxG,EAAO,iBAAkB7rH,EAAMgpG,SACrDhpG,EAAM6oD,UAAYruC,EAAKqxG,EAAO,kBAAmB7rH,EAAM6oD,UACvD7oD,EAAMmsH,YAAc3xG,EAAKqxG,EAAO,oBAAqB7rH,EAAMmsH,iBAE3D3xG,EAAKqxG,EAAO,SAAUR,GAQ1B,SAASe,EAAiB1wG,GAKxB,IAJA,IAAI00E,EAAM,GACNr1F,EAAO2gB,EAAK3gB,KACZsxH,EAAa3wG,EAAK5I,MAEbrK,EAAI,EAAGA,EAAI4jH,GAAa,CAC/B,IAAIl2D,EAAMp7D,EAAK0N,KACXk8F,EAAS,GACT2nB,EAAQ,EAEZ,OAAQn2D,GACN,KAAK7D,EAAIC,EACPoyC,EAAS,IACT2nB,EAAQ,EACR,MAEF,KAAKh6D,EAAIE,EACPmyC,EAAS,IACT2nB,EAAQ,EACR,MAEF,KAAKh6D,EAAII,EACPiyC,EAAS,IACT2nB,EAAQ,EACR,MAEF,KAAKh6D,EAAIG,EACPkyC,EAAS,IACT2nB,EAAQ,EACR,MAEF,KAAKh6D,EAAIK,EACP,IAAI/Z,EAAK79C,EAAK0N,KACVowC,EAAK99C,EAAK0N,KACV2uD,EAAKr8D,EAAK0N,KACV4uD,EAAKt8D,EAAK0N,KACVkvD,EAAQ58D,EAAK0N,KACbmvD,EAAS78D,EAAK0N,KACdovD,EAAM98D,EAAK0N,KACXuhD,EAAYjvD,EAAK0N,KACjB8jH,EAAiBlmH,KAAKC,IAAIsxD,GAC1B40D,EAAWf,EAAac,EAAiBvsC,KAASh2B,EAAY4N,GAAUooB,GAAOpoB,GAAUooB,GAEzFysC,EAAe70D,EAAS,EAAIA,EAASooB,EAAMpoB,EAASooB,EAAMA,EAC1D3vD,GAAQ,EAGVA,IADEm8F,IAEOf,EAAac,IAGdE,GAAgBrhH,MAAS4+C,EAGnC,IAAIwL,EAAKg2D,EAAO5yE,EAAKwe,EAAK/I,EAAQsJ,IAC9BlC,EAAK+1D,EAAO3yE,EAAKwe,EAAK/I,EAAQqJ,IAI9B60D,IAEA50D,EADE5N,EACOg2B,EAAM,KAEC,KAANA,EAGZ3vD,GAAQ,EAEE,IAAN5nB,GAMF2nF,EAAI/0F,KAAK,IAAKm6D,EAAIC,IAItB,IAAIx1D,EAAIurH,EAAO5yE,EAAKwe,EAAK/I,EAAQsJ,EAAQC,IACrC13D,EAAIsrH,EAAO3yE,EAAKwe,EAAK/I,EAAQqJ,EAAQC,IAEzCw4B,EAAI/0F,KAAK,IAAKmwH,EAAOp0D,GAAKo0D,EAAOn0D,GAAKi0D,EAAUzzD,EAAM0zD,IAAUl7F,GAAQ25B,EAAW/pD,EAAGC,GACtF,MAEF,KAAKoyD,EAAIM,EACP+xC,EAAS,IACT,MAEF,KAAKryC,EAAIO,EACH5yD,EAAIurH,EAAOzwH,EAAK0N,MAChBvI,EAAIsrH,EAAOzwH,EAAK0N,MADpB,IAEIuJ,EAAIw5G,EAAOzwH,EAAK0N,MAChBynD,EAAIs7D,EAAOzwH,EAAK0N,MACpB2nF,EAAI/0F,KAAK,IAAK4E,EAAGC,EAAG,IAAKD,EAAI+R,EAAG9R,EAAG,IAAKD,EAAI+R,EAAG9R,EAAIgwD,EAAG,IAAKjwD,EAAGC,EAAIgwD,EAAG,IAAKjwD,EAAGC,GAC7E,MAGJykG,GAAUvU,EAAI/0F,KAAKspG,GAEnB,IAAK,IAAI3xF,EAAI,EAAGA,EAAIs5G,EAAOt5G,IAEzBo9E,EAAI/0F,KAAKmwH,EAAOzwH,EAAK0N,OAIzB,OAAO2nF,EAAI/7E,KAAK,KAGlB,IAAIq4G,EAAU,CAEd,MAAgB,SAAUzmG,GACxB,IAAIjmB,EAAQimB,EAAGjmB,MACX6rH,EAAQ5lG,EAAG0mG,QAEVd,IACHA,EAAQ3lG,EAAc,QACtBD,EAAG0mG,QAAUd,GAGV5lG,EAAGvK,MACNuK,EAAGo/E,kBAGL,IAAI3pF,EAAOuK,EAAGvK,KAEd,GAAIuK,EAAGq/E,YAAa,CAClB5pF,EAAK44C,YACL54C,EAAKoT,kBAAmB,EACxB7I,EAAGggC,UAAUvqC,EAAMuK,EAAGja,OACtBia,EAAGq/E,aAAc,EACjB,IAAIsnB,EAAUR,EAAiB1wG,GAE3BkxG,EAAQv/F,QAAQ,OAAS,GAG3B7S,EAAKqxG,EAAO,IAAKe,GAIrBZ,EAAUH,EAAO7rH,GAAO,EAAOimB,GAC/B+Y,EAAa6sF,EAAO5lG,EAAGnd,WAEL,MAAd9I,EAAMG,KACR0sH,EAAoB5mG,EAAIA,EAAGxf,mBAE3BqmH,EAAkB7mG,KAQlB8mG,EAAW,CAEf,MAAiB,SAAU9mG,GACzB,IAAIjmB,EAAQimB,EAAGjmB,MACXmgC,EAAQngC,EAAMmgC,MAElB,GAAIA,aAAiB6sF,iBAAkB,CACrC,IAAI9sF,EAAMC,EAAMD,IAChBC,EAAQD,EAGV,GAAKC,EAAL,CAIA,IAAIlgC,EAAID,EAAMC,GAAK,EACfC,EAAIF,EAAME,GAAK,EACf+sH,EAAKjtH,EAAMhE,MACXkxH,EAAKltH,EAAM0G,OACXmlH,EAAQ5lG,EAAG0mG,QAEVd,IACHA,EAAQ3lG,EAAc,SACtBD,EAAG0mG,QAAUd,GAGX1rF,IAAUla,EAAGknG,aACfrB,EAAUD,EAAO,OAAQ1rF,GAEzBla,EAAGknG,WAAahtF,GAGlB3lB,EAAKqxG,EAAO,QAASoB,GACrBzyG,EAAKqxG,EAAO,SAAUqB,GACtB1yG,EAAKqxG,EAAO,IAAK5rH,GACjBua,EAAKqxG,EAAO,IAAK3rH,GACjB8+B,EAAa6sF,EAAO5lG,EAAGnd,WAEL,MAAd9I,EAAMG,KACR0sH,EAAoB5mG,EAAIA,EAAGxf,mBAE3BqmH,EAAkB7mG,MAQlBmnG,EAAU,GAEVC,EAAmB,IAAItmH,EAEvBumH,EAAiB,GACjBC,EAAoB,GACpBC,EAAuB,CACzBzoH,KAAM,QACNE,MAAO,MACPiuB,OAAQ,SACRqwD,OAAQ,UAQNspC,EAAsB,SAAU5mG,EAAIwnG,GACtC,IAAIztH,EAAQimB,EAAGjmB,MACX0tH,EAAcznG,EAAGnd,UACjB6kH,EAA4B1nG,aAAclmB,GAAQC,EAAM8mF,cAC5D7gE,EAAGkhC,SAAWgkE,EAAWyC,mBAAmB5tH,GAAO,GACnD,IAAIG,EAAOH,EAAMG,KAIjB,GAFQ,MAARA,IAAiBA,GAAQ,IAEpBgrH,EAAW0C,aAAa1tH,EAAMH,GAAnC,CAKQ,MAARG,IAAiBA,EAAO,KAGnBwtH,GAA6BD,IAChCL,EAAiB9uF,KAAKkvF,GAEtBJ,EAAiB3tF,eAAeguF,GAEhCD,EAAWJ,GAGb,IAAIS,EAAY7nG,EAAG8nG,YAEdD,IACHA,EAAY5nG,EAAc,QAC1BD,EAAG8nG,YAAcD,GAInB,IAAIE,EAAiBF,EAAU9tH,MAC3BojC,EAAOpjC,EAAMojC,MAAQ8nF,EAAY+C,aACjCC,EAAeJ,EAAUK,eAEzB/qF,IAAS0qF,EAAUM,cACrBJ,EAAe5qF,KAAO0qF,EAAUM,YAAchrF,EAE9C8qF,EAAeJ,EAAUK,eAAiBH,EAAe5qF,MAG3D,IAAI2mC,EAAc/pE,EAAM+pE,YACpBN,EAAiBzpE,EAAMypE,eACvB4kD,EAAepoG,EAAGqoG,kBAEjBD,IAAgBpoG,EAAGwhC,cACtB4mE,EAAepoG,EAAGqoG,kBAAoBpD,EAAYqD,eAAepuH,EAAM+tH,EAAcnkD,EAAaN,EAAgBzpE,EAAMgnF,WAG1H,IAAIwnC,EAAcH,EAAaG,YAC3BC,EAAaJ,EAAaI,WAC9BtD,EAAWuD,eAAepB,EAAgBrnG,EAAIjmB,EAAOytH,GACrD,IAAIkB,EAAQrB,EAAeqB,MACvBC,EAAQtB,EAAesB,MACvBvuH,EAAYitH,EAAejtH,WAAa,OACxCD,EAAoBktH,EAAeltH,kBACvCyuH,EAAiBf,EAAWH,EAA2BD,EAAa1tH,EAAOytH,EAAUkB,EAAOC,GAC5F,IAAIE,EAAO5D,EAAY6D,YAAYH,EAAOJ,EAAapuH,GACnD66E,EAAQ0zC,EACRzzC,EAAQ4zC,EAER/kD,IACFkR,EAAQ+zC,EAAmBL,EAAOtuH,EAAW0pE,GAC7CmR,GAASnR,EAAY,IAIvBmR,GAASuzC,EAAa,EACtBzC,EAAU8B,EAAW9tH,GAAO,EAAMimB,GAKlC,IAAIgpG,EAAuBZ,EAAaY,qBACpCC,EAAYjpG,EAAGkpG,cAAgBlpG,EAAGkpG,YAAc,IAChDC,EAAiBF,EAAUzpH,OAE/B,GAAIwpH,GAAwBhpG,EAAGopG,wBAA0BppG,EAAGqpG,SAAWnvH,GACrE,GAAI8lB,EAAGwhC,aAAe2nE,EACpB,IAAK,IAAI1kH,EAAM,EAAGA,EAAM0kH,IAAkB1kH,EACxC6kH,EAAmBL,EAAUxkH,GAAMrK,EAAW46E,EAAOC,EAAQxwE,EAAM+jH,OAGlE,CACLxoG,EAAGqpG,OAASnvH,EACZ8lB,EAAGopG,uBAAyBJ,EAC5B,IAAIO,EAAYnB,EAAavyE,MACzB2zE,EAAaD,EAAU/pH,OAG3B,IAFIiF,EAAM,EAEHA,EAAM+kH,EAAY/kH,IAAO,CAE9B,IAAIglH,EAAQR,EAAUxkH,GAClBilH,EAAiBH,EAAU9kH,GAE1BglH,EAIMA,EAAME,WAAaD,IAC5BD,EAAMxnG,UAAY,GAClBwnG,EAAMhpG,YAAYlB,SAASqqG,eAAeF,MAL1CD,EAAQR,EAAUxkH,GAAOwb,EAAc,SACvC4nG,EAAUpnG,YAAYgpG,GACtBA,EAAMhpG,YAAYlB,SAASqqG,eAAeF,KAM5CJ,EAAmBG,EAAOrvH,EAAW46E,EAAOC,EAAQxwE,EAAM+jH,GAI5D,GAAIW,EAAiBK,EAAY,CAC/B,KAAO/kH,EAAM0kH,EAAgB1kH,IAC3BojH,EAAU9kG,YAAYkmG,EAAUxkH,IAGlCwkH,EAAUzpH,OAASgqH,MAKzB,SAASZ,EAAiBf,EAAWH,EAA2BD,EAAa1tH,EAAOytH,EAAUkB,EAAOC,GACnGnxF,EAAOG,SAAS2vF,GAEZI,GAA6BD,GAC/BjwF,EAAOc,KAAKgvF,EAAmBG,GAIjC,IAAIplD,EAAetoE,EAAMsoE,aAEzB,GAAImlD,GAAYnlD,EAAc,CAC5B,IAAIvqC,EAAS/9B,EAAM+mF,WAEJ,WAAXhpD,GACF4wF,EAAQlB,EAASzxH,MAAQ,EAAIyxH,EAASxtH,EACtC2uH,EAAQnB,EAAS/mH,OAAS,EAAI+mH,EAASvtH,GAC9B69B,IACT4wF,EAAQ5wF,EAAO,GAAK0vF,EAASxtH,EAC7B2uH,EAAQ7wF,EAAO,GAAK0vF,EAASvtH,GAG/BqtH,EAAkB,IAAMoB,EACxBpB,EAAkB,IAAMqB,EAExBnxF,EAAOmC,OAAO2tF,EAAmBA,EAAmBjlD,GACpDilD,EAAkB,IAAMoB,EACxBpB,EAAkB,IAAMqB,EAK1B5vF,EAAa8uF,EAAWP,GAI1B,SAASyB,EAAmB/uH,EAAGI,EAAW0pE,GACxC,MAAqB,UAAd1pE,EAAwBJ,EAAI8pE,EAAY,GAAmB,WAAd1pE,EAAyBJ,EAAI8pE,EAAY,GAAK,EAAIA,EAAY,GAAK,EAAI9pE,EAAI8pE,EAAY,GAG7I,SAASwlD,EAAmBG,EAAOrvH,EAAWJ,EAAGC,GAG/Csa,EAAKk1G,EAAO,oBAAqB,UACjCl1G,EAAKk1G,EAAO,cAAelC,EAAqBntH,IAChDma,EAAKk1G,EAAO,IAAKzvH,GACjBua,EAAKk1G,EAAO,IAAKxvH,GAGnB,SAAS4sH,EAAkB7mG,GACrBA,GAAMA,EAAG8nG,cAEP9nG,EAAG8nG,YAAY30G,YACjB6M,EAAG8nG,YAAY30G,WAAW4P,YAAY/C,EAAG8nG,aAG3C9nG,EAAG8nG,YAAc,KACjB9nG,EAAGkpG,YAAc,GACjBlpG,EAAGqpG,OAAS,MAIhBlC,EAAQxsF,aAAeisF,EAEvBO,EAAQptF,MAAQ,SAAU/Z,GACxB,IAAIjmB,EAAQimB,EAAGjmB,MAEG,MAAdA,EAAMG,KACR0sH,EAAoB5mG,GAAI,GAExB6mG,EAAkB7mG,IAItB9oB,EAAQue,KAAOgxG,EACfvvH,EAAQgjC,MAAQ4sF,EAChB5vH,EAAQgD,KAAOitH,G,qBCzgBf,IAAIzvE,EAAoC,qBAAjBxuB,aAA+B5c,MAAQ4c,aAQ9D,SAASiP,EAAOn+B,EAAGC,GACjB,IAAIwJ,EAAM,IAAIi0C,EAAU,GAYxB,OAVS,MAAL19C,IACFA,EAAI,GAGG,MAALC,IACFA,EAAI,GAGNwJ,EAAI,GAAKzJ,EACTyJ,EAAI,GAAKxJ,EACFwJ,EAUT,SAAS60B,EAAK70B,EAAKiX,GAGjB,OAFAjX,EAAI,GAAKiX,EAAE,GACXjX,EAAI,GAAKiX,EAAE,GACJjX,EAST,SAASxH,EAAMye,GACb,IAAIjX,EAAM,IAAIi0C,EAAU,GAGxB,OAFAj0C,EAAI,GAAKiX,EAAE,GACXjX,EAAI,GAAKiX,EAAE,GACJjX,EAWT,SAAS3M,EAAI2M,EAAKmI,EAAGC,GAGnB,OAFApI,EAAI,GAAKmI,EACTnI,EAAI,GAAKoI,EACFpI,EAUT,SAAS5J,EAAI4J,EAAKqK,EAAI0rB,GAGpB,OAFA/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACpB/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACb/1B,EAWT,SAASomH,EAAYpmH,EAAKqK,EAAI0rB,EAAI5tB,GAGhC,OAFAnI,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GAAK5tB,EACzBnI,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GAAK5tB,EAClBnI,EAUT,SAASi7G,EAAIj7G,EAAKqK,EAAI0rB,GAGpB,OAFA/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACpB/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACb/1B,EAST,SAASoJ,EAAI6N,GACX,OAAOta,KAAK4sB,KAAK88F,EAAUpvG,IAG7B,IAAIlb,EAASqN,EAQb,SAASi9G,EAAUpvG,GACjB,OAAOA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAGhC,IAAIqvG,EAAeD,EAQnB,SAASzxF,EAAI50B,EAAKqK,EAAI0rB,GAGpB,OAFA/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACpB/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACb/1B,EAUT,SAASumH,EAAIvmH,EAAKqK,EAAI0rB,GAGpB,OAFA/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACpB/1B,EAAI,GAAKqK,EAAG,GAAK0rB,EAAG,GACb/1B,EAUT,SAASwmH,EAAIn8G,EAAI0rB,GACf,OAAO1rB,EAAG,GAAK0rB,EAAG,GAAK1rB,EAAG,GAAK0rB,EAAG,GAUpC,SAASx2B,EAAMS,EAAKiX,EAAGgmB,GAGrB,OAFAj9B,EAAI,GAAKiX,EAAE,GAAKgmB,EAChBj9B,EAAI,GAAKiX,EAAE,GAAKgmB,EACTj9B,EAST,SAAS85C,EAAU95C,EAAKiX,GACtB,IAAI62C,EAAI1kD,EAAI6N,GAUZ,OARU,IAAN62C,GACF9tD,EAAI,GAAK,EACTA,EAAI,GAAK,IAETA,EAAI,GAAKiX,EAAE,GAAK62C,EAChB9tD,EAAI,GAAKiX,EAAE,GAAK62C,GAGX9tD,EAUT,SAAS06C,EAASrwC,EAAI0rB,GACpB,OAAOp5B,KAAK4sB,MAAMlf,EAAG,GAAK0rB,EAAG,KAAO1rB,EAAG,GAAK0rB,EAAG,KAAO1rB,EAAG,GAAK0rB,EAAG,KAAO1rB,EAAG,GAAK0rB,EAAG,KAGrF,IAAI1M,EAAOqxB,EAQX,SAAS+rE,EAAep8G,EAAI0rB,GAC1B,OAAQ1rB,EAAG,GAAK0rB,EAAG,KAAO1rB,EAAG,GAAK0rB,EAAG,KAAO1rB,EAAG,GAAK0rB,EAAG,KAAO1rB,EAAG,GAAK0rB,EAAG,IAG3E,IAAI2wF,EAAaD,EAOjB,SAASE,EAAO3mH,EAAKiX,GAGnB,OAFAjX,EAAI,IAAMiX,EAAE,GACZjX,EAAI,IAAMiX,EAAE,GACLjX,EAWT,SAAS4mH,EAAK5mH,EAAKqK,EAAI0rB,EAAI5wB,GAGzB,OAFAnF,EAAI,GAAKqK,EAAG,GAAKlF,GAAK4wB,EAAG,GAAK1rB,EAAG,IACjCrK,EAAI,GAAKqK,EAAG,GAAKlF,GAAK4wB,EAAG,GAAK1rB,EAAG,IAC1BrK,EAUT,SAASg2B,EAAeh2B,EAAKiX,EAAGnR,GAC9B,IAAIvP,EAAI0gB,EAAE,GACNzgB,EAAIygB,EAAE,GAGV,OAFAjX,EAAI,GAAK8F,EAAE,GAAKvP,EAAIuP,EAAE,GAAKtP,EAAIsP,EAAE,GACjC9F,EAAI,GAAK8F,EAAE,GAAKvP,EAAIuP,EAAE,GAAKtP,EAAIsP,EAAE,GAC1B9F,EAUT,SAASwB,EAAIxB,EAAKqK,EAAI0rB,GAGpB,OAFA/1B,EAAI,GAAKrD,KAAK6E,IAAI6I,EAAG,GAAI0rB,EAAG,IAC5B/1B,EAAI,GAAKrD,KAAK6E,IAAI6I,EAAG,GAAI0rB,EAAG,IACrB/1B,EAUT,SAASuB,EAAIvB,EAAKqK,EAAI0rB,GAGpB,OAFA/1B,EAAI,GAAKrD,KAAK4E,IAAI8I,EAAG,GAAI0rB,EAAG,IAC5B/1B,EAAI,GAAKrD,KAAK4E,IAAI8I,EAAG,GAAI0rB,EAAG,IACrB/1B,EAGTvM,EAAQihC,OAASA,EACjBjhC,EAAQohC,KAAOA,EACfphC,EAAQ+E,MAAQA,EAChB/E,EAAQJ,IAAMA,EACdI,EAAQ2C,IAAMA,EACd3C,EAAQ2yH,YAAcA,EACtB3yH,EAAQwnH,IAAMA,EACdxnH,EAAQ2V,IAAMA,EACd3V,EAAQsI,OAASA,EACjBtI,EAAQ4yH,UAAYA,EACpB5yH,EAAQ6yH,aAAeA,EACvB7yH,EAAQmhC,IAAMA,EACdnhC,EAAQ8yH,IAAMA,EACd9yH,EAAQ+yH,IAAMA,EACd/yH,EAAQ8L,MAAQA,EAChB9L,EAAQqmD,UAAYA,EACpBrmD,EAAQinD,SAAWA,EACnBjnD,EAAQ41B,KAAOA,EACf51B,EAAQgzH,eAAiBA,EACzBhzH,EAAQizH,WAAaA,EACrBjzH,EAAQkzH,OAASA,EACjBlzH,EAAQmzH,KAAOA,EACfnzH,EAAQuiC,eAAiBA,EACzBviC,EAAQ+N,IAAMA,EACd/N,EAAQ8N,IAAMA,G,uBCrSd,IAAI0gG,EAAgB,EAAQ,QAoBxB5xG,EAAW4xG,EAAc3xG,OAAO,CAClCC,KAAM,oBAGRiD,EAAOC,QAAUpD,G,uBC5CjB,IAAIw2H,EAAM,EAAQ,QAEdC,EAAiB,CACnB,YAAe,CAAC,EAAG,EAAG,EAAG,GACzB,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,aAAgB,CAAC,IAAK,IAAK,IAAK,GAChC,KAAQ,CAAC,EAAG,IAAK,IAAK,GACtB,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,OAAU,CAAC,IAAK,IAAK,IAAK,GAC1B,MAAS,CAAC,EAAG,EAAG,EAAG,GACnB,eAAkB,CAAC,IAAK,IAAK,IAAK,GAClC,KAAQ,CAAC,EAAG,EAAG,IAAK,GACpB,WAAc,CAAC,IAAK,GAAI,IAAK,GAC7B,MAAS,CAAC,IAAK,GAAI,GAAI,GACvB,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,UAAa,CAAC,GAAI,IAAK,IAAK,GAC5B,WAAc,CAAC,IAAK,IAAK,EAAG,GAC5B,UAAa,CAAC,IAAK,IAAK,GAAI,GAC5B,MAAS,CAAC,IAAK,IAAK,GAAI,GACxB,eAAkB,CAAC,IAAK,IAAK,IAAK,GAClC,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,QAAW,CAAC,IAAK,GAAI,GAAI,GACzB,KAAQ,CAAC,EAAG,IAAK,IAAK,GACtB,SAAY,CAAC,EAAG,EAAG,IAAK,GACxB,SAAY,CAAC,EAAG,IAAK,IAAK,GAC1B,cAAiB,CAAC,IAAK,IAAK,GAAI,GAChC,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,UAAa,CAAC,EAAG,IAAK,EAAG,GACzB,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,YAAe,CAAC,IAAK,EAAG,IAAK,GAC7B,eAAkB,CAAC,GAAI,IAAK,GAAI,GAChC,WAAc,CAAC,IAAK,IAAK,EAAG,GAC5B,WAAc,CAAC,IAAK,GAAI,IAAK,GAC7B,QAAW,CAAC,IAAK,EAAG,EAAG,GACvB,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,aAAgB,CAAC,IAAK,IAAK,IAAK,GAChC,cAAiB,CAAC,GAAI,GAAI,IAAK,GAC/B,cAAiB,CAAC,GAAI,GAAI,GAAI,GAC9B,cAAiB,CAAC,GAAI,GAAI,GAAI,GAC9B,cAAiB,CAAC,EAAG,IAAK,IAAK,GAC/B,WAAc,CAAC,IAAK,EAAG,IAAK,GAC5B,SAAY,CAAC,IAAK,GAAI,IAAK,GAC3B,YAAe,CAAC,EAAG,IAAK,IAAK,GAC7B,QAAW,CAAC,IAAK,IAAK,IAAK,GAC3B,QAAW,CAAC,IAAK,IAAK,IAAK,GAC3B,WAAc,CAAC,GAAI,IAAK,IAAK,GAC7B,UAAa,CAAC,IAAK,GAAI,GAAI,GAC3B,YAAe,CAAC,IAAK,IAAK,IAAK,GAC/B,YAAe,CAAC,GAAI,IAAK,GAAI,GAC7B,QAAW,CAAC,IAAK,EAAG,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,KAAQ,CAAC,IAAK,IAAK,EAAG,GACtB,UAAa,CAAC,IAAK,IAAK,GAAI,GAC5B,KAAQ,CAAC,IAAK,IAAK,IAAK,GACxB,MAAS,CAAC,EAAG,IAAK,EAAG,GACrB,YAAe,CAAC,IAAK,IAAK,GAAI,GAC9B,KAAQ,CAAC,IAAK,IAAK,IAAK,GACxB,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,QAAW,CAAC,IAAK,IAAK,IAAK,GAC3B,UAAa,CAAC,IAAK,GAAI,GAAI,GAC3B,OAAU,CAAC,GAAI,EAAG,IAAK,GACvB,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,cAAiB,CAAC,IAAK,IAAK,IAAK,GACjC,UAAa,CAAC,IAAK,IAAK,EAAG,GAC3B,aAAgB,CAAC,IAAK,IAAK,IAAK,GAChC,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,qBAAwB,CAAC,IAAK,IAAK,IAAK,GACxC,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,YAAe,CAAC,IAAK,IAAK,IAAK,GAC/B,cAAiB,CAAC,GAAI,IAAK,IAAK,GAChC,aAAgB,CAAC,IAAK,IAAK,IAAK,GAChC,eAAkB,CAAC,IAAK,IAAK,IAAK,GAClC,eAAkB,CAAC,IAAK,IAAK,IAAK,GAClC,eAAkB,CAAC,IAAK,IAAK,IAAK,GAClC,YAAe,CAAC,IAAK,IAAK,IAAK,GAC/B,KAAQ,CAAC,EAAG,IAAK,EAAG,GACpB,UAAa,CAAC,GAAI,IAAK,GAAI,GAC3B,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,QAAW,CAAC,IAAK,EAAG,IAAK,GACzB,OAAU,CAAC,IAAK,EAAG,EAAG,GACtB,iBAAoB,CAAC,IAAK,IAAK,IAAK,GACpC,WAAc,CAAC,EAAG,EAAG,IAAK,GAC1B,aAAgB,CAAC,IAAK,GAAI,IAAK,GAC/B,aAAgB,CAAC,IAAK,IAAK,IAAK,GAChC,eAAkB,CAAC,GAAI,IAAK,IAAK,GACjC,gBAAmB,CAAC,IAAK,IAAK,IAAK,GACnC,kBAAqB,CAAC,EAAG,IAAK,IAAK,GACnC,gBAAmB,CAAC,GAAI,IAAK,IAAK,GAClC,gBAAmB,CAAC,IAAK,GAAI,IAAK,GAClC,aAAgB,CAAC,GAAI,GAAI,IAAK,GAC9B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,YAAe,CAAC,IAAK,IAAK,IAAK,GAC/B,KAAQ,CAAC,EAAG,EAAG,IAAK,GACpB,QAAW,CAAC,IAAK,IAAK,IAAK,GAC3B,MAAS,CAAC,IAAK,IAAK,EAAG,GACvB,UAAa,CAAC,IAAK,IAAK,GAAI,GAC5B,OAAU,CAAC,IAAK,IAAK,EAAG,GACxB,UAAa,CAAC,IAAK,GAAI,EAAG,GAC1B,OAAU,CAAC,IAAK,IAAK,IAAK,GAC1B,cAAiB,CAAC,IAAK,IAAK,IAAK,GACjC,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,cAAiB,CAAC,IAAK,IAAK,IAAK,GACjC,cAAiB,CAAC,IAAK,IAAK,IAAK,GACjC,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,KAAQ,CAAC,IAAK,IAAK,GAAI,GACvB,KAAQ,CAAC,IAAK,IAAK,IAAK,GACxB,KAAQ,CAAC,IAAK,IAAK,IAAK,GACxB,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,OAAU,CAAC,IAAK,EAAG,IAAK,GACxB,IAAO,CAAC,IAAK,EAAG,EAAG,GACnB,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,UAAa,CAAC,GAAI,IAAK,IAAK,GAC5B,YAAe,CAAC,IAAK,GAAI,GAAI,GAC7B,OAAU,CAAC,IAAK,IAAK,IAAK,GAC1B,WAAc,CAAC,IAAK,IAAK,GAAI,GAC7B,SAAY,CAAC,GAAI,IAAK,GAAI,GAC1B,SAAY,CAAC,IAAK,IAAK,IAAK,GAC5B,OAAU,CAAC,IAAK,GAAI,GAAI,GACxB,OAAU,CAAC,IAAK,IAAK,IAAK,GAC1B,QAAW,CAAC,IAAK,IAAK,IAAK,GAC3B,UAAa,CAAC,IAAK,GAAI,IAAK,GAC5B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,UAAa,CAAC,IAAK,IAAK,IAAK,GAC7B,KAAQ,CAAC,IAAK,IAAK,IAAK,GACxB,YAAe,CAAC,EAAG,IAAK,IAAK,GAC7B,UAAa,CAAC,GAAI,IAAK,IAAK,GAC5B,IAAO,CAAC,IAAK,IAAK,IAAK,GACvB,KAAQ,CAAC,EAAG,IAAK,IAAK,GACtB,QAAW,CAAC,IAAK,IAAK,IAAK,GAC3B,OAAU,CAAC,IAAK,GAAI,GAAI,GACxB,UAAa,CAAC,GAAI,IAAK,IAAK,GAC5B,OAAU,CAAC,IAAK,IAAK,IAAK,GAC1B,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,MAAS,CAAC,IAAK,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,IAAK,IAAK,GAC9B,OAAU,CAAC,IAAK,IAAK,EAAG,GACxB,YAAe,CAAC,IAAK,IAAK,GAAI,IAGhC,SAASC,EAAahoH,GAIpB,OAFAA,EAAIpC,KAAK8d,MAAM1b,GAERA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,EAGrC,SAASioH,EAAcjoH,GAIrB,OAFAA,EAAIpC,KAAK8d,MAAM1b,GAERA,EAAI,EAAI,EAAIA,EAAI,IAAM,IAAMA,EAGrC,SAASkoH,EAAc/3C,GAErB,OAAOA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,EAGjC,SAASg4C,EAAYxgC,GAEnB,OAAIA,EAAI3qF,QAAyC,MAA/B2qF,EAAIwU,OAAOxU,EAAI3qF,OAAS,GACjCgrH,EAAajjC,WAAW4C,GAAO,IAAM,KAGvCqgC,EAAapuG,SAAS+tE,EAAK,KAGpC,SAASygC,EAAczgC,GAErB,OAAIA,EAAI3qF,QAAyC,MAA/B2qF,EAAIwU,OAAOxU,EAAI3qF,OAAS,GACjCkrH,EAAcnjC,WAAW4C,GAAO,KAGlCugC,EAAcnjC,WAAW4C,IAGlC,SAAS0gC,EAAYlzE,EAAIC,EAAIqS,GAO3B,OANIA,EAAI,EACNA,GAAK,EACIA,EAAI,IACbA,GAAK,GAGC,EAAJA,EAAQ,EACHtS,GAAMC,EAAKD,GAAMsS,EAAI,EAGtB,EAAJA,EAAQ,EACHrS,EAGD,EAAJqS,EAAQ,EACHtS,GAAMC,EAAKD,IAAO,EAAI,EAAIsS,GAAK,EAGjCtS,EAGT,SAASmzE,EAAWl/G,EAAGC,EAAGG,GACxB,OAAOJ,GAAKC,EAAID,GAAKI,EAGvB,SAAS++G,EAAQtnH,EAAK2E,EAAGg+D,EAAGv6D,EAAGD,GAK7B,OAJAnI,EAAI,GAAK2E,EACT3E,EAAI,GAAK2iE,EACT3iE,EAAI,GAAKoI,EACTpI,EAAI,GAAKmI,EACFnI,EAGT,SAASunH,EAASvnH,EAAKmI,GAKrB,OAJAnI,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GACXnI,EAAI,GAAKmI,EAAE,GACJnI,EAGT,IAAIwnH,EAAa,IAAIX,EAAI,IACrBY,EAAiB,KAErB,SAASC,EAAWC,EAAUC,GAExBH,GACFF,EAASE,EAAgBG,GAG3BH,EAAiBD,EAAWK,IAAIF,EAAUF,GAAkBG,EAAQxvH,SAUtE,SAASkU,EAAMq7G,EAAUC,GACvB,GAAKD,EAAL,CAIAC,EAAUA,GAAW,GACrB,IAAIE,EAASN,EAAWx0H,IAAI20H,GAE5B,GAAIG,EACF,OAAOP,EAASK,EAASE,GAI3BH,GAAsB,GAEtB,IAAIjhC,EAAMihC,EAASp0H,QAAQ,KAAM,IAAI6vF,cAErC,GAAIsD,KAAOogC,EAGT,OAFAS,EAASK,EAASd,EAAepgC,IACjCghC,EAAWC,EAAUC,GACdA,EAIT,GAAsB,MAAlBlhC,EAAIwU,OAAO,GAAf,CA4BA,IAAI6sB,EAAKrhC,EAAI/iE,QAAQ,KACjBqkG,EAAKthC,EAAI/iE,QAAQ,KAErB,IAAY,IAARokG,GAAaC,EAAK,IAAMthC,EAAI3qF,OAAQ,CACtC,IAAIksH,EAAQvhC,EAAIwhC,OAAO,EAAGH,GACtBptH,EAAS+rF,EAAIwhC,OAAOH,EAAK,EAAGC,GAAMD,EAAK,IAAI3jC,MAAM,KACjD+jC,EAAQ,EAEZ,OAAQF,GACN,IAAK,OACH,GAAsB,IAAlBttH,EAAOoB,OAET,YADAurH,EAAQM,EAAS,EAAG,EAAG,EAAG,GAI5BO,EAAQhB,EAAcxsH,EAAOm7D,OAI/B,IAAK,MACH,OAAsB,IAAlBn7D,EAAOoB,YACTurH,EAAQM,EAAS,EAAG,EAAG,EAAG,IAI5BN,EAAQM,EAASV,EAAYvsH,EAAO,IAAKusH,EAAYvsH,EAAO,IAAKusH,EAAYvsH,EAAO,IAAKwtH,GACzFT,EAAWC,EAAUC,GACdA,GAET,IAAK,OACH,OAAsB,IAAlBjtH,EAAOoB,YACTurH,EAAQM,EAAS,EAAG,EAAG,EAAG,IAI5BjtH,EAAO,GAAKwsH,EAAcxsH,EAAO,IACjCytH,EAAUztH,EAAQitH,GAClBF,EAAWC,EAAUC,GACdA,GAET,IAAK,MACH,OAAsB,IAAlBjtH,EAAOoB,YACTurH,EAAQM,EAAS,EAAG,EAAG,EAAG,IAI5BQ,EAAUztH,EAAQitH,GAClBF,EAAWC,EAAUC,GACdA,GAET,QACE,QAINN,EAAQM,EAAS,EAAG,EAAG,EAAG,OAnF1B,CACE,GAAmB,IAAflhC,EAAI3qF,OAAc,CACpB,IAAIssH,EAAK1vG,SAAS+tE,EAAIwhC,OAAO,GAAI,IAEjC,OAAMG,GAAM,GAAKA,GAAM,MAKvBf,EAAQM,GAAe,KAALS,IAAe,GAAU,KAALA,IAAe,EAAQ,IAALA,GAAkB,IAALA,IAAc,EAAQ,GAALA,GAAiB,GAALA,IAAa,EAAG,GAClHX,EAAWC,EAAUC,GACdA,QANLN,EAAQM,EAAS,EAAG,EAAG,EAAG,GAOvB,GAAmB,IAAflhC,EAAI3qF,OAAc,CACvBssH,EAAK1vG,SAAS+tE,EAAIwhC,OAAO,GAAI,IAEjC,OAAMG,GAAM,GAAKA,GAAM,UAKvBf,EAAQM,GAAe,SAALS,IAAkB,IAAU,MAALA,IAAgB,EAAQ,IAALA,EAAW,GACvEX,EAAWC,EAAUC,GACdA,QANLN,EAAQM,EAAS,EAAG,EAAG,EAAG,MA6ElC,SAASQ,EAAUE,EAAM79G,GACvB,IAAI+7C,GAAKs9B,WAAWwkC,EAAK,IAAM,IAAM,KAAO,IAAM,IAI9CrrF,EAAIkqF,EAAcmB,EAAK,IACvBphE,EAAIigE,EAAcmB,EAAK,IACvBn0E,EAAK+S,GAAK,GAAMA,GAAKjqB,EAAI,GAAKiqB,EAAIjqB,EAAIiqB,EAAIjqB,EAC1CiX,EAAS,EAAJgT,EAAQ/S,EAQjB,OAPA1pC,EAAOA,GAAQ,GACf68G,EAAQ78G,EAAMs8G,EAA8C,IAAjCK,EAAYlzE,EAAIC,EAAIqS,EAAI,EAAI,IAAWugE,EAAsC,IAAzBK,EAAYlzE,EAAIC,EAAIqS,IAAWugE,EAA8C,IAAjCK,EAAYlzE,EAAIC,EAAIqS,EAAI,EAAI,IAAW,GAE9I,IAAhB8hE,EAAKvsH,SACP0O,EAAK,GAAK69G,EAAK,IAGV79G,EAQT,SAAS89G,EAAU99G,GACjB,GAAKA,EAAL,CAKA,IAUI46F,EACAmjB,EAXAr/D,EAAI1+C,EAAK,GAAK,IACdg+G,EAAIh+G,EAAK,GAAK,IACdi+G,EAAIj+G,EAAK,GAAK,IACdk+G,EAAOhsH,KAAK6E,IAAI2nD,EAAGs/D,EAAGC,GAEtBE,EAAOjsH,KAAK4E,IAAI4nD,EAAGs/D,EAAGC,GAEtB3+C,EAAQ6+C,EAAOD,EAEf7/D,GAAK8/D,EAAOD,GAAQ,EAIxB,GAAc,IAAV5+C,EACFs7B,EAAI,EACJmjB,EAAI,MACC,CAEHA,EADE1/D,EAAI,GACFihB,GAAS6+C,EAAOD,GAEhB5+C,GAAS,EAAI6+C,EAAOD,GAG1B,IAAIE,IAAWD,EAAOz/D,GAAK,EAAI4gB,EAAQ,GAAKA,EACxC++C,IAAWF,EAAOH,GAAK,EAAI1+C,EAAQ,GAAKA,EACxCg/C,IAAWH,EAAOF,GAAK,EAAI3+C,EAAQ,GAAKA,EAExC5gB,IAAMy/D,EACRvjB,EAAI0jB,EAASD,EACJL,IAAMG,EACfvjB,EAAI,EAAI,EAAIwjB,EAASE,EACZL,IAAME,IACfvjB,EAAI,EAAI,EAAIyjB,EAASD,GAGnBxjB,EAAI,IACNA,GAAK,GAGHA,EAAI,IACNA,GAAK,GAIT,IAAIijB,EAAO,CAAK,IAAJjjB,EAASmjB,EAAG1/D,GAMxB,OAJe,MAAXr+C,EAAK,IACP69G,EAAK32H,KAAK8Y,EAAK,IAGV69G,GAUT,SAAS9tD,EAAK9xD,EAAOqpD,GACnB,IAAI6mD,EAAWtsG,EAAM5D,GAErB,GAAIkwG,EAAU,CACZ,IAAK,IAAI75G,EAAI,EAAGA,EAAI,EAAGA,IAEnB65G,EAAS75G,GADPgzD,EAAQ,EACI6mD,EAAS75G,IAAM,EAAIgzD,GAAS,GAE3B,IAAM6mD,EAAS75G,IAAMgzD,EAAQ6mD,EAAS75G,GAAK,EAGxD65G,EAAS75G,GAAK,IAChB65G,EAAS75G,GAAK,IACL2J,EAAM3J,GAAK,IACpB65G,EAAS75G,GAAK,GAIlB,OAAO85G,EAAUD,EAA8B,IAApBA,EAAS78G,OAAe,OAAS,QAUhE,SAASif,EAAMtS,GACb,IAAIkwG,EAAWtsG,EAAM5D,GAErB,GAAIkwG,EACF,QAAS,GAAK,KAAOA,EAAS,IAAM,KAAOA,EAAS,IAAM,KAAMA,EAAS,IAAIxV,SAAS,IAAIhrG,MAAM,GAYpG,SAAS4wH,EAASC,EAAiBC,EAAQlpH,GACzC,GAAMkpH,GAAUA,EAAOntH,QAAaktH,GAAmB,GAAKA,GAAmB,EAA/E,CAIAjpH,EAAMA,GAAO,GACb,IAAIvB,EAAQwqH,GAAmBC,EAAOntH,OAAS,GAC3CotH,EAAYxsH,KAAK+N,MAAMjM,GACvB2qH,EAAazsH,KAAKyzD,KAAK3xD,GACvB4qH,EAAYH,EAAOC,GACnBG,EAAaJ,EAAOE,GACpBG,EAAK9qH,EAAQ0qH,EAKjB,OAJAnpH,EAAI,GAAK+mH,EAAaM,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IAC9DvpH,EAAI,GAAK+mH,EAAaM,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IAC9DvpH,EAAI,GAAK+mH,EAAaM,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IAC9DvpH,EAAI,GAAKinH,EAAcI,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IACxDvpH,GAOT,IAAIwpH,EAAiBR,EAUrB,SAASpC,EAAKqC,EAAiBC,EAAQO,GACrC,GAAMP,GAAUA,EAAOntH,QAAaktH,GAAmB,GAAKA,GAAmB,EAA/E,CAIA,IAAIxqH,EAAQwqH,GAAmBC,EAAOntH,OAAS,GAC3CotH,EAAYxsH,KAAK+N,MAAMjM,GACvB2qH,EAAazsH,KAAKyzD,KAAK3xD,GACvB4qH,EAAY/8G,EAAM48G,EAAOC,IACzBG,EAAah9G,EAAM48G,EAAOE,IAC1BG,EAAK9qH,EAAQ0qH,EACbzgH,EAAQmwG,EAAU,CAACkO,EAAaM,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IAAMxC,EAAaM,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IAAMxC,EAAaM,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,IAAMtC,EAAcI,EAAWgC,EAAU,GAAIC,EAAW,GAAIC,KAAO,QACrQ,OAAOE,EAAa,CAClB/gH,MAAOA,EACPygH,UAAWA,EACXC,WAAYA,EACZ3qH,MAAOA,GACLiK,GAON,IAAIghH,EAAa9C,EAUjB,SAAS+C,EAAUjhH,EAAO89C,EAAGvpB,EAAGiqB,GAG9B,GAFAx+C,EAAQ4D,EAAM5D,GAEVA,EAKF,OAJAA,EAAQ6/G,EAAU7/G,GACb,MAAL89C,IAAc99C,EAAM,GAAKs+G,EAAcxgE,IAClC,MAALvpB,IAAcv0B,EAAM,GAAKy+G,EAAclqF,IAClC,MAALiqB,IAAcx+C,EAAM,GAAKy+G,EAAcjgE,IAChC2xD,EAAUuP,EAAU1/G,GAAQ,QAWvC,SAASkhH,EAAYlhH,EAAOy/G,GAG1B,GAFAz/G,EAAQ4D,EAAM5D,GAEVA,GAAkB,MAATy/G,EAEX,OADAz/G,EAAM,GAAKu+G,EAAckB,GAClBtP,EAAUnwG,EAAO,QAU5B,SAASmwG,EAAUgR,EAAUt5H,GAC3B,GAAKs5H,GAAaA,EAAS9tH,OAA3B,CAIA,IAAI4rH,EAAWkC,EAAS,GAAK,IAAMA,EAAS,GAAK,IAAMA,EAAS,GAMhE,MAJa,SAATt5H,GAA4B,SAATA,GAA4B,SAATA,IACxCo3H,GAAY,IAAMkC,EAAS,IAGtBt5H,EAAO,IAAMo3H,EAAW,KAGjCl0H,EAAQ6Y,MAAQA,EAChB7Y,EAAQ+mE,KAAOA,EACf/mE,EAAQunB,MAAQA,EAChBvnB,EAAQu1H,SAAWA,EACnBv1H,EAAQ+1H,eAAiBA,EACzB/1H,EAAQmzH,KAAOA,EACfnzH,EAAQi2H,WAAaA,EACrBj2H,EAAQk2H,UAAYA,EACpBl2H,EAAQm2H,YAAcA,EACtBn2H,EAAQolH,UAAYA,G,qBC/mBpB,IAAIiR,EAAW,SAAUvrC,GACvBztF,KAAKytF,WAAaA,GAAc,IAGlCurC,EAASlrH,UAAY,CACnBC,YAAairH,EACbtrC,aAAc,SAAU54E,EAAQ8C,GAC9B5X,KAAKytF,WAAW5sF,KAAK,CACnBiU,OAAQA,EACR8C,MAAOA,MAIb,IAAIrY,EAAWy5H,EACft2H,EAAOC,QAAUpD,G,uBCGjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAEdwC,EAAiB,EAAQ,QAEzB2tG,EAAqB,EAAQ,QAE7BlwG,EAAa,EAAQ,QAErBk2C,EAAa,EAAQ,QAErBn8D,EAAU,EAAQ,QAElBo2H,EAAsB,EAAQ,QAE9BnyF,EAAa,EAAQ,QAErB1oB,EAAQ,EAAQ,QAEhB86G,EAAiB,EAAQ,QAEzBn3E,EAAa,EAAQ,QAErBo3E,EAAwB,EAAQ,QAEhC3wH,EAAS,EAAQ,QAEjBosG,EAAuBpsG,EAAOosG,qBAoB9BhwG,EAAOjC,EAAOiC,KACd1F,EAAOyD,EAAOzD,KACdq1B,EAAeyqC,EAAWzqC,aAC1B6kG,EAAY,IAAIv2H,EAAQyO,KAAK,CAC/BC,MAAO,CACL/L,GAAI,EACJC,GAAI,EACJlE,MAAO,EACP0K,OAAQ,KAIR3M,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,UACNuJ,KAAM,SAAUlJ,EAASyG,GACvB,IAAIuiB,EAAItJ,KAAR,CAIA,IAGI85G,EAHAzvG,EAAe/pB,EAAQmC,aAAa,WACpCizG,EAAarrF,EAAa3nB,IAAI,cAClClC,KAAKu5H,YAAc1kB,EAAqBK,GAGf,SAArBl1G,KAAKu5H,aACPD,EAAiB,IAAIhuG,EAAe/kB,EAAIq+G,SAAUr+G,EAAK,CACrDikB,aAAcX,EAAa3nB,IAAI,gBAAgB,KAEjDlC,KAAKw5H,SAAW,UAEhBF,EAAiB,IAAIL,EAAmB1yH,GACxCvG,KAAKw5H,SAAW,MAGlBx5H,KAAKy5H,gBAAkBH,IAEzBhoH,OAAQ,SAAUuY,EAAc/pB,EAASyG,GACvC,IAAIuiB,EAAItJ,KAAR,CAKAxf,KAAKsD,MAAMC,YAMXvD,KAAK05H,cAAgB7vG,EAMrB7pB,KAAK25H,SAAW75H,EAMhBE,KAAK8iH,KAAOv8G,EAOZvG,KAAK45H,oBAAsB,KAM3B55H,KAAK65H,mBAAqBhwG,EAAa3nB,IAAI,qBAC3C,IAAIo3H,EAAiBt5H,KAAKy5H,gBAC1BH,EAAe/wH,SACf+wH,EAAexrG,aAAajE,EAAa3nB,IAAI,cAE7ClC,KAAK85H,sBAEL95H,KAAK+5H,cAEPD,oBAAqB,WACnB,IAAIjwG,EAAe7pB,KAAK05H,cACpBM,EAAYnwG,EAAa3nB,IAAI,aACjCi3H,EAAejyE,SAAS,cAAelnD,KAAK8iH,KAAMj+G,GAAK,SAAUujD,EAAaz7B,EAAGnmB,GAE7D,SAAdwzH,IACEA,EAAUnnG,QAAQu1B,IAAgB,EACpCpoD,KAAKi6H,SAASttG,EAAGnmB,GACQ,UAAhB4hD,GACTpoD,KAAKk6H,MAAM1zH,MAGdxG,QAEL+5H,UAAW,WACT,IAAIlwG,EAAe7pB,KAAK05H,cACpB55H,EAAUE,KAAK25H,SACfpzH,EAAMvG,KAAK8iH,KAEf,GAAmB,MAAf9iH,KAAKm6H,QAAiC,MAAfn6H,KAAKo6H,QAGK,SAAlCvwG,EAAa3nB,IAAI,aAAyB,CAC3C,IAAIub,EAAOzd,KACXwsB,aAAaxsB,KAAKq6H,uBAClBr6H,KAAKq6H,sBAAwBhsG,YAAW,YAIrC9nB,EAAIyvC,cAAgBv4B,EAAK68G,gBAAgBzwG,EAAc/pB,EAASyG,EAAK,CACpEd,EAAGgY,EAAK08G,OACRz0H,EAAG+X,EAAK28G,cAsBhBE,gBAAiB,SAAUzwG,EAAc/pB,EAASyG,EAAK23B,GACrD,GAAIA,EAAQl2B,OAAShI,KAAKiI,MAAO6gB,EAAItJ,KAArC,CAIA,IAAIhZ,EAAiBihD,EAAmBvpB,EAAS33B,GAEjDvG,KAAKu6H,QAAU,GAEf,IAAIC,EAAiBt8F,EAAQs8F,eAE7B,GAAIt8F,EAAQyrB,SAAwB,MAAbzrB,EAAQz4B,GAA0B,MAAby4B,EAAQx4B,EAAW,CAC7D,IAAI+lB,EAAK4tG,EACT5tG,EAAGzgB,SAAW,CAACkzB,EAAQz4B,EAAGy4B,EAAQx4B,GAClC+lB,EAAGljB,SACHkjB,EAAGk+B,QAAUzrB,EAAQyrB,QAErB3pD,KAAKi6H,SAAS,CACZ3+C,QAASp9C,EAAQz4B,EACjB81E,QAASr9C,EAAQx4B,EACjB0M,OAAQqZ,GACPjlB,QACE,GAAIg0H,EACTx6H,KAAKi6H,SAAS,CACZ3+C,QAASp9C,EAAQz4B,EACjB81E,QAASr9C,EAAQx4B,EACjBsF,SAAUkzB,EAAQlzB,SAClBwvH,eAAgBt8F,EAAQs8F,eACxBC,cAAev8F,EAAQu8F,eACtBj0H,QACE,GAA2B,MAAvB03B,EAAQ6Y,YAAqB,CACtC,GAAI/2C,KAAK06H,qBAAqB7wG,EAAc/pB,EAASyG,EAAK23B,GACxD,OAGF,IAAIy8F,EAAYzB,EAAoBh7F,EAASp+B,GACzCs+C,EAAKu8E,EAAUrjG,MAAM,GACrB+mB,EAAKs8E,EAAUrjG,MAAM,GAEf,MAAN8mB,GAAoB,MAANC,GAChBr+C,KAAKi6H,SAAS,CACZ3+C,QAASl9B,EACTm9B,QAASl9B,EACTrzC,SAAUkzB,EAAQlzB,SAClBoH,OAAQuoH,EAAUlvG,IACjBjlB,QAEiB,MAAb03B,EAAQz4B,GAA0B,MAAby4B,EAAQx4B,IAGtCa,EAAIC,eAAe,CACjB/G,KAAM,oBACNgG,EAAGy4B,EAAQz4B,EACXC,EAAGw4B,EAAQx4B,IAGb1F,KAAKi6H,SAAS,CACZ3+C,QAASp9C,EAAQz4B,EACjB81E,QAASr9C,EAAQx4B,EACjBsF,SAAUkzB,EAAQlzB,SAClBoH,OAAQ7L,EAAIslB,QAAQ+uG,UAAU18F,EAAQz4B,EAAGy4B,EAAQx4B,GAAG0M,QACnD5L,MAGPq0H,gBAAiB,SAAUhxG,EAAc/pB,EAASyG,EAAK23B,GACrD,IAAIo7F,EAAiBt5H,KAAKy5H,iBAErBz5H,KAAK65H,oBAAsB75H,KAAK05H,eACnCJ,EAAersG,UAAUjtB,KAAK05H,cAAcx3H,IAAI,cAGlDlC,KAAKm6H,OAASn6H,KAAKo6H,OAAS,KAExBl8F,EAAQl2B,OAAShI,KAAKiI,KACxBjI,KAAKk6H,MAAMzyE,EAAmBvpB,EAAS33B,KAM3Cm0H,qBAAsB,SAAU7wG,EAAc/pB,EAASyG,EAAK23B,GAC1D,IAAI6Y,EAAc7Y,EAAQ6Y,YACtBn2C,EAAYs9B,EAAQt9B,UACpBk6H,EAAmBh7H,EAAQmC,aAAa,eAAe64H,iBAE3D,GAAmB,MAAf/jF,GAAoC,MAAbn2C,GAAyC,MAApBk6H,EAAhD,CAIA,IAAIh5H,EAAchC,EAAQu5C,iBAAiBtC,GAE3C,GAAKj1C,EAAL,CAIA,IAAIvB,EAAOuB,EAAYtB,UACnBqpB,EAAekxG,EAAkB,CAACx6H,EAAK6gB,aAAaxgB,GAAYkB,GAAcA,EAAYxB,kBAAoB,IAAIwvB,MAAOjG,IAE7H,GAAoC,SAAhCA,EAAa3nB,IAAI,WAUrB,OANAqE,EAAIC,eAAe,CACjB/G,KAAM,oBACNs3C,YAAaA,EACbn2C,UAAWA,EACXoK,SAAUkzB,EAAQlzB,YAEb,KAETivH,SAAU,SAAUttG,EAAGnmB,GACrB,IAAIilB,EAAKkB,EAAEva,OACPyX,EAAe7pB,KAAK05H,cAExB,GAAK7vG,EAAL,CAKA7pB,KAAKm6H,OAASxtG,EAAE2uD,QAChBt7E,KAAKo6H,OAASztG,EAAE4uD,QAChB,IAAIi/C,EAAiB7tG,EAAE6tG,eAEnBA,GAAkBA,EAAevvH,OACnCjL,KAAKg7H,iBAAiBR,EAAgB7tG,GAE/BlB,GAAsB,MAAhBA,EAAG7qB,WACdZ,KAAK45H,oBAAsB,KAE3B55H,KAAKi7H,uBAAuBtuG,EAAGlB,EAAIjlB,IAE5BilB,GAAMA,EAAGk+B,SACd3pD,KAAK45H,oBAAsB,KAE3B55H,KAAKk7H,0BAA0BvuG,EAAGlB,EAAIjlB,KAEtCxG,KAAK45H,oBAAsB,KAE3B55H,KAAKk6H,MAAM1zH,MAGnB20H,YAAa,SAAUtxG,EAAc1L,GAKnC,IAAIhC,EAAQ0N,EAAa3nB,IAAI,aAC7Bic,EAAKvb,EAAOiC,KAAKsZ,EAAIne,MACrBwsB,aAAaxsB,KAAKo7H,aAClBj/G,EAAQ,EAAInc,KAAKo7H,YAAc/sG,WAAWlQ,EAAIhC,GAASgC,KAEzD68G,iBAAkB,SAAUR,EAAgB7tG,GAC1C,IAAI7sB,EAAUE,KAAK25H,SACf0B,EAAqBr7H,KAAK05H,cAC1BpiG,EAAQ,CAAC3K,EAAE2uD,QAAS3uD,EAAE4uD,SACtB+/C,EAAoB,GACpBC,EAAmB,GACnBC,EAAqBT,EAAkB,CAACpuG,EAAE8tG,cAAeY,IACzDnmB,EAAal1G,KAAKu5H,YAClBkC,EAAUz7H,KAAKw5H,SACfkC,EAAU,GACdv8H,EAAKq7H,GAAgB,SAAUmB,GAW7Bx8H,EAAKw8H,EAAaC,YAAY,SAAUp3H,GACtC,IAAI+K,EAAYzP,EAAQmC,aAAauC,EAAKpC,QAAU,OAAQoC,EAAKwoC,WAC7D6uF,EAAYr3H,EAAKmJ,MACjBmuH,EAAoB,GAExB,GAAKvsH,GAA0B,MAAbssH,EAAlB,CAIA,IAAIE,EAAa3C,EAAsB4C,cAAcH,EAAWtsH,EAAUG,KAAM5P,EAAS0E,EAAKy3H,kBAAmBz3H,EAAK03H,eACtHt5H,EAAOzD,KAAKqF,EAAKy3H,mBAAmB,SAAUE,GAC5C,IAAI3lD,EAAS12E,EAAQu5C,iBAAiB8iF,EAAQplF,aAC1Cn2C,EAAYu7H,EAAQ9U,gBACpB+U,EAAa5lD,GAAUA,EAAO5sE,cAAchJ,GAQhD,GAPAw7H,EAAWh6H,QAAUoC,EAAKpC,QAC1Bg6H,EAAWpvF,UAAYxoC,EAAKwoC,UAC5BovF,EAAWnoG,SAAWzvB,EAAKyvB,SAC3BmoG,EAAW5iB,OAASh1G,EAAKg1G,OACzB4iB,EAAWP,UAAY75E,EAAWq6E,gBAAgB9sH,EAAUG,KAAMmsH,GAClEO,EAAWE,eAAiBP,EAExBK,EAAY,CACdb,EAAiB16H,KAAKu7H,GACtB,IACIh8C,EADAm8C,EAAgB/lD,EAAO/X,cAAc79D,GAAW,EAAM,KAAMs0G,GAGhE,GAAItyG,EAAOqjB,SAASs2G,GAAgB,CAClCn8C,EAAOm8C,EAAcn8C,KACrB,IAAIo8C,EAAaD,EAAcb,QAC/B94H,EAAOie,MAAM66G,EAASc,QAEtBp8C,EAAOm8C,EAGTT,EAAkBj7H,KAAKu/E,OAO3B,IAAIq8C,EAAYV,EAEG,SAAf7mB,EACFomB,EAAkBz6H,KAAKi7H,EAAkBjiH,KAAK4hH,IAE9CH,EAAkBz6H,MAAM47H,EAAY1zG,EAAW60C,WAAW6+D,GAAahB,EAAU,IAAMK,EAAkBjiH,KAAK4hH,UAGjHz7H,MAEHs7H,EAAkBj0H,UAClBi0H,EAAoBA,EAAkBzhH,KAAK7Z,KAAKw5H,SAAWx5H,KAAKw5H,UAChE,IAAIkD,EAAe/vG,EAAE3hB,SAErBhL,KAAKm7H,YAAYK,GAAoB,WAC/Bx7H,KAAK28H,+BAA+BnC,GACtCx6H,KAAK48H,gBAAgBpB,EAAoBkB,EAAcplG,EAAM,GAAIA,EAAM,GAAIt3B,KAAKy5H,gBAAiB8B,GAEjGv7H,KAAK68H,oBAAoBrB,EAAoBF,EAAmBC,EAAkB1vH,KAAKixH,SAAUxlG,EAAM,GAAIA,EAAM,GAAIolG,OAAc5pG,EAAW4oG,OAMpJT,uBAAwB,SAAUtuG,EAAGlB,EAAIjlB,GACvC,IAAI1G,EAAUE,KAAK25H,SAIf5iF,EAActrB,EAAGsrB,YACjBj1C,EAAchC,EAAQu5C,iBAAiBtC,GAEvCqjD,EAAY3uE,EAAG2uE,WAAat4F,EAC5BlB,EAAY6qB,EAAG7qB,UACfo8F,EAAWvxE,EAAGuxE,SACdz8F,EAAO65F,EAAU55F,QAAQw8F,GACzBnzE,EAAekxG,EAAkB,CAACx6H,EAAK6gB,aAAaxgB,GAAYw5F,EAAWt4F,IAAgBA,EAAYxB,kBAAoB,IAAIwvB,MAAO9vB,KAAK05H,gBAC3IqD,EAAiBlzG,EAAa3nB,IAAI,WAEtC,GAAsB,MAAlB66H,GAA6C,SAAnBA,EAA9B,CAIA,IAEIC,EACAtB,EAHA7xH,EAASuwF,EAAUxwF,cAAchJ,EAAWo8F,GAC5Cu/B,EAAgBniC,EAAU37B,cAAc79D,GAAW,EAAOo8F,EAAUh9F,KAAKu5H,aAIzE32H,EAAOqjB,SAASs2G,IAClBS,EAAcT,EAAcn8C,KAC5Bs7C,EAAUa,EAAcb,UAExBsB,EAAcT,EACdb,EAAU,MAGZ,IAAIuB,EAAc,QAAU7iC,EAAUztF,KAAO,IAAM/L,EAEnDZ,KAAKm7H,YAAYtxG,GAAc,WAC7B7pB,KAAK68H,oBAAoBhzG,EAAcmzG,EAAanzH,EAAQozH,EAAatwG,EAAE2uD,QAAS3uD,EAAE4uD,QAAS5uD,EAAE3hB,SAAU2hB,EAAEva,OAAQspH,MAKvHl1H,EAAe,CACb/G,KAAM,UACN4nH,gBAAiBzmH,EACjBA,UAAWL,EAAKO,YAAYF,GAC5Bm2C,YAAaA,EACb/uC,KAAMhI,KAAKiI,QAGfizH,0BAA2B,SAAUvuG,EAAGlB,EAAIjlB,GAC1C,IAAI02H,EAAazxG,EAAGk+B,QAEpB,GAA0B,kBAAfuzE,EAAyB,CAClC,IAAIrvG,EAAUqvG,EACdA,EAAa,CACXrvG,QAASA,EAETinC,UAAWjnC,GAIf,IAAIsvG,EAAkB,IAAI9+G,EAAM6+G,EAAYl9H,KAAK05H,cAAe15H,KAAK25H,UACjEqD,EAAcG,EAAgBj7H,IAAI,WAClC+6H,EAAcpxH,KAAKixH,SAIvB98H,KAAKm7H,YAAYgC,GAAiB,WAChCn9H,KAAK68H,oBAAoBM,EAAiBH,EAAaG,EAAgBj7H,IAAI,oBAAsB,GAAI+6H,EAAatwG,EAAE2uD,QAAS3uD,EAAE4uD,QAAS5uD,EAAE3hB,SAAUygB,MAItJjlB,EAAe,CACb/G,KAAM,UACNuI,KAAMhI,KAAKiI,OAGf40H,oBAAqB,SAAUhzG,EAAcmzG,EAAanzH,EAAQozH,EAAax3H,EAAGC,EAAGg3H,EAAcjxG,EAAIiwG,GAIrG,GAFA17H,KAAKu6H,QAAU,GAEV1wG,EAAa3nB,IAAI,gBAAmB2nB,EAAa3nB,IAAI,QAA1D,CAIA,IAAIo3H,EAAiBt5H,KAAKy5H,gBACtB3kE,EAAYjrC,EAAa3nB,IAAI,aACjCw6H,EAAeA,GAAgB7yG,EAAa3nB,IAAI,YAChD,IAAIk+E,EAAO48C,EAEX,GAAIloE,GAAkC,kBAAdA,EACtBsrB,EAAOr3D,EAAW6rF,UAAU9/C,EAAWjrD,GAAQ,QAC1C,GAAyB,oBAAdirD,EAA0B,CAC1C,IAAI73C,EAAWpY,GAAK,SAAUu4H,EAAUh9C,GAClCg9C,IAAap9H,KAAKu6H,UACpBjB,EAAe1rG,WAAWwyD,EAAMs7C,EAAS7xG,GAEzC7pB,KAAK48H,gBAAgB/yG,EAAc6yG,EAAcj3H,EAAGC,EAAG4zH,EAAgBzvH,EAAQ4hB,MAEhFzrB,MACHA,KAAKu6H,QAAU0C,EACf78C,EAAOtrB,EAAUjrD,EAAQozH,EAAahgH,GAGxCq8G,EAAe1rG,WAAWwyD,EAAMs7C,EAAS7xG,GACzCyvG,EAAel4H,KAAKyoB,GAEpB7pB,KAAK48H,gBAAgB/yG,EAAc6yG,EAAcj3H,EAAGC,EAAG4zH,EAAgBzvH,EAAQ4hB,KAajFmxG,gBAAiB,SAAU/yG,EAAc6yG,EAAcj3H,EAAGC,EAAGmoB,EAAShkB,EAAQ4hB,GAC5E,IAAIkyD,EAAY39E,KAAK8iH,KAAK92F,WAEtB4xD,EAAa59E,KAAK8iH,KAAK72F,YAE3BywG,EAAeA,GAAgB7yG,EAAa3nB,IAAI,YAChD,IAAIm7H,EAAcxvG,EAAQG,UACtBhnB,EAAQ6iB,EAAa3nB,IAAI,SACzBo7H,EAASzzG,EAAa3nB,IAAI,iBAC1B8J,EAAOyf,GAAMA,EAAGxf,kBAAkBvE,QAWtC,GAVA+jB,GAAMzf,EAAKk5B,eAAezZ,EAAGnd,WAED,oBAAjBouH,IAETA,EAAeA,EAAa,CAACj3H,EAAGC,GAAImE,EAAQgkB,EAAQpC,GAAIzf,EAAM,CAC5D6xE,SAAU,CAACF,EAAWC,GACtBy/C,YAAaA,EAAY/1H,WAIzB1E,EAAOogB,QAAQ05G,GACjBj3H,EAAI+uB,EAAakoG,EAAa,GAAI/+C,GAClCj4E,EAAI8uB,EAAakoG,EAAa,GAAI9+C,QAC7B,GAAIh7E,EAAOqjB,SAASy2G,GAAe,CACxCA,EAAal7H,MAAQ67H,EAAY,GACjCX,EAAaxwH,OAASmxH,EAAY,GAClC,IAAItnD,EAAahvC,EAAWob,cAAcu6E,EAAc,CACtDl7H,MAAOm8E,EACPzxE,OAAQ0xE,IAEVn4E,EAAIswE,EAAWtwE,EACfC,EAAIqwE,EAAWrwE,EACfsB,EAAQ,KAGRs2H,EAAS,UAEN,GAA4B,kBAAjBZ,GAA6BjxG,EAAI,CAC7C,IAAIpZ,EAAMkrH,EAAoBb,EAAc1wH,EAAMqxH,GAClD53H,EAAI4M,EAAI,GACR3M,EAAI2M,EAAI,OACH,CACDA,EAAMmrH,EAAqB/3H,EAAGC,EAAGmoB,EAAS8vD,EAAWC,EAAY52E,EAAQ,KAAO,GAAIs2H,EAAS,KAAO,IACxG73H,EAAI4M,EAAI,GACR3M,EAAI2M,EAAI,GAMZ,GAHArL,IAAUvB,GAAKg4H,EAAcz2H,GAASq2H,EAAY,GAAK,EAAc,UAAVr2H,EAAoBq2H,EAAY,GAAK,GAChGC,IAAW53H,GAAK+3H,EAAcH,GAAUD,EAAY,GAAK,EAAe,WAAXC,EAAsBD,EAAY,GAAK,GAEhGxzG,EAAa3nB,IAAI,WAAY,CAC3BmQ,EAAMqrH,EAAuBj4H,EAAGC,EAAGmoB,EAAS8vD,EAAWC,GAC3Dn4E,EAAI4M,EAAI,GACR3M,EAAI2M,EAAI,GAGVwb,EAAQM,OAAO1oB,EAAGC,IAIpBi3H,+BAAgC,SAAUnC,GACxC,IAAImD,EAAe39H,KAAK45H,oBACpBgE,IAAsBD,GAAgBA,EAAa1yH,SAAWuvH,EAAevvH,OAkBjF,OAjBA2yH,GAAqBz+H,EAAKw+H,GAAc,SAAUE,EAAkBC,GAClE,IAAIC,EAAiBF,EAAiBjC,YAAc,GAChDoC,EAAmBxD,EAAesD,IAAkB,GACpDG,EAAiBD,EAAiBpC,YAAc,GACpDgC,GAAqBG,EAAe9yH,SAAWgzH,EAAehzH,OAC9D2yH,GAAqBz+H,EAAK4+H,GAAgB,SAAUG,EAAUC,GAC5D,IAAIC,EAAWH,EAAeE,IAAc,GACxCE,EAAcH,EAASjC,mBAAqB,GAC5CqC,EAAaF,EAASnC,mBAAqB,GAC/C2B,GAAqBM,EAASvwH,QAAUywH,EAASzwH,OAASuwH,EAASjqG,WAAamqG,EAASnqG,UAAYiqG,EAAS1kB,SAAW4kB,EAAS5kB,QAAU6kB,EAAYpzH,SAAWqzH,EAAWrzH,OAC9K2yH,GAAqBz+H,EAAKk/H,GAAa,SAAUE,EAAa/lH,GAC5D,IAAIgmH,EAAaF,EAAW9lH,GAC5BolH,GAAqBW,EAAYxnF,cAAgBynF,EAAWznF,aAAewnF,EAAY39H,YAAc49H,EAAW59H,mBAItHZ,KAAK45H,oBAAsBY,IAClBoD,GAEX1D,MAAO,SAAU1zH,GAKfxG,KAAK45H,oBAAsB,KAC3BpzH,EAAe,CACb/G,KAAM,UACNuI,KAAMhI,KAAKiI,OAGfsmB,QAAS,SAAUzuB,EAASyG,GACtBuiB,EAAItJ,OAIRxf,KAAKy5H,gBAAgBlrG,UAErB4qG,EAAe7wE,WAAW,cAAe/hD,OAS7C,SAASw0H,EAAkB0D,GACzB,IAAIC,EAAcD,EAAaz5D,MAE/B,MAAOy5D,EAAaxzH,OAAQ,CAC1B,IAAIiyH,EAAauB,EAAaz5D,MAE1Bk4D,IACE7+G,EAAMykC,WAAWo6E,KACnBA,EAAaA,EAAWh7H,IAAI,WAAW,IAQf,kBAAfg7H,IACTA,EAAa,CACXpoE,UAAWooE,IAIfwB,EAAc,IAAIrgH,EAAM6+G,EAAYwB,EAAaA,EAAY5+H,UAIjE,OAAO4+H,EAGT,SAASj3E,EAAmBvpB,EAAS33B,GACnC,OAAO23B,EAAQ13B,gBAAkB5D,EAAOiC,KAAK0B,EAAIC,eAAgBD,GAGnE,SAASi3H,EAAqB/3H,EAAGC,EAAGmoB,EAAS8vD,EAAWC,EAAY+gD,EAAMC,GACxE,IAAItyH,EAAOuhB,EAAQY,eACfjtB,EAAQ8K,EAAK9K,MACb0K,EAASI,EAAKJ,OAkBlB,OAhBY,MAARyyH,IACEl5H,EAAIjE,EAAQm9H,EAAOhhD,EACrBl4E,GAAKjE,EAAQm9H,EAEbl5H,GAAKk5H,GAIG,MAARC,IACEl5H,EAAIwG,EAAS0yH,EAAOhhD,EACtBl4E,GAAKwG,EAAS0yH,EAEdl5H,GAAKk5H,GAIF,CAACn5H,EAAGC,GAGb,SAASg4H,EAAuBj4H,EAAGC,EAAGmoB,EAAS8vD,EAAWC,GACxD,IAAItxE,EAAOuhB,EAAQY,eACfjtB,EAAQ8K,EAAK9K,MACb0K,EAASI,EAAKJ,OAKlB,OAJAzG,EAAIoG,KAAK6E,IAAIjL,EAAIjE,EAAOm8E,GAAan8E,EACrCkE,EAAImG,KAAK6E,IAAIhL,EAAIwG,EAAQ0xE,GAAc1xE,EACvCzG,EAAIoG,KAAK4E,IAAIhL,EAAG,GAChBC,EAAImG,KAAK4E,IAAI/K,EAAG,GACT,CAACD,EAAGC,GAGb,SAAS63H,EAAoBvyH,EAAUgB,EAAMqxH,GAC3C,IAAIwB,EAAWxB,EAAY,GACvByB,EAAYzB,EAAY,GACxBvyH,EAAM,EACNrF,EAAI,EACJC,EAAI,EACJq5H,EAAY/yH,EAAKxK,MACjBw9H,EAAahzH,EAAKE,OAEtB,OAAQlB,GACN,IAAK,SACHvF,EAAIuG,EAAKvG,EAAIs5H,EAAY,EAAIF,EAAW,EACxCn5H,EAAIsG,EAAKtG,EAAIs5H,EAAa,EAAIF,EAAY,EAC1C,MAEF,IAAK,MACHr5H,EAAIuG,EAAKvG,EAAIs5H,EAAY,EAAIF,EAAW,EACxCn5H,EAAIsG,EAAKtG,EAAIo5H,EAAYh0H,EACzB,MAEF,IAAK,SACHrF,EAAIuG,EAAKvG,EAAIs5H,EAAY,EAAIF,EAAW,EACxCn5H,EAAIsG,EAAKtG,EAAIs5H,EAAal0H,EAC1B,MAEF,IAAK,OACHrF,EAAIuG,EAAKvG,EAAIo5H,EAAW/zH,EACxBpF,EAAIsG,EAAKtG,EAAIs5H,EAAa,EAAIF,EAAY,EAC1C,MAEF,IAAK,QACHr5H,EAAIuG,EAAKvG,EAAIs5H,EAAYj0H,EACzBpF,EAAIsG,EAAKtG,EAAIs5H,EAAa,EAAIF,EAAY,EAG9C,MAAO,CAACr5H,EAAGC,GAGb,SAAS+3H,EAAcz2H,GACrB,MAAiB,WAAVA,GAAgC,WAAVA,EAG/BtE,EAAOC,QAAUpD,G,qBCxvBjB,IAAIqD,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAEdrgB,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAEnBgyF,EAAS,EAAQ,QAEjBC,EAAoBD,EAAOC,kBAC3BC,EAAmBF,EAAOE,iBAE1BC,EAAiB,EAAQ,QAEzBC,EAAiB,EAAQ,QAEzBC,EAAiB,EAAQ,QAEzBC,EAAiB,EAAQ,QAwBzBlwH,EAAQzM,EAAOyM,MACf4+B,EAAQhB,IASZ,SAAS5uB,EAAMxe,EAAQq/C,EAAap/C,GAKlCE,KAAKk/C,YAAcA,EAMnBl/C,KAAKF,QAAUA,EAMfE,KAAKH,OAASA,EA+GhB,SAAS2/H,EAAMz5G,EAAK05G,EAASvgF,GAC3B,IAAK,IAAIjxC,EAAI,EAAGA,EAAIwxH,EAAQx0H,OAAQgD,IAElC,GAAKwxH,EAAQxxH,KAKb8X,EAAMA,GAAsB,kBAARA,EAAmBA,EAAI05G,EAAQxxH,IAAM,KAE9C,MAAP8X,GACF,MAQJ,OAJW,MAAPA,GAAem5B,IACjBn5B,EAAMm5B,EAAYh9C,IAAIu9H,IAGjB15G,EAIT,SAAS25G,EAAU5vG,EAAO5O,GACxB,IAAIy+G,EAAkB1xF,EAAMne,GAAO4vG,UACnC,OAAOC,EAAkBA,EAAgB7yH,KAAKgjB,EAAO5O,GAAQ4O,EAAMovB,YA7HrE7gC,EAAMvQ,UAAY,CAChBC,YAAasQ,EAMbrV,KAAM,KAKN85D,YAAa,SAAUjjE,GACrB+C,EAAOie,MAAM7gB,KAAKH,OAAQA,GAAQ,IAQpCqC,IAAK,SAAUgf,EAAMQ,GACnB,OAAY,MAARR,EACKlhB,KAAKH,OAGP2/H,EAAMx/H,KAAKH,OAAQG,KAAK4/H,UAAU1+G,IAAQQ,GAAgBg+G,EAAU1/H,KAAMkhB,KAQnFs7B,WAAY,SAAUz0C,EAAK2Z,GACzB,IAAI7hB,EAASG,KAAKH,OACd4L,EAAgB,MAAV5L,EAAiBA,EAASA,EAAOkI,GACvCm3C,GAAex9B,GAAgBg+G,EAAU1/H,KAAM+H,GAMnD,OAJW,MAAP0D,GAAeyzC,IACjBzzC,EAAMyzC,EAAY1C,WAAWz0C,IAGxB0D,GAQTwV,SAAU,SAAUC,EAAMg+B,GACxB,IACI2gF,EADA95G,EAAc,MAAR7E,EAAelhB,KAAKH,OAAS2/H,EAAMx/H,KAAKH,OAAQqhB,EAAOlhB,KAAK4/H,UAAU1+G,IAGhF,OADAg+B,EAAcA,IAAgB2gF,EAAkBH,EAAU1/H,KAAMkhB,KAAU2+G,EAAgB5+G,SAASC,GAC5F,IAAI7C,EAAM0H,EAAKm5B,EAAal/C,KAAKF,UAM1Cm/C,QAAS,WACP,OAAsB,MAAfj/C,KAAKH,QAEd+nH,YAAa,aAEblgH,MAAO,WACL,IAAIo4H,EAAO9/H,KAAK+N,YAChB,OAAO,IAAI+xH,EAAKl9H,EAAO8E,MAAM1H,KAAKH,UAEpCkgI,YAAa,SAAU16C,KAGvBu6C,UAAW,SAAU1+G,GAKnB,MAJoB,kBAATA,IACTA,EAAOA,EAAKoyE,MAAM,MAGbpyE,GAQT8+G,mBAAoB,SAAUL,GAC5B1xF,EAAMjuC,MAAM0/H,UAAYC,GAE1BviF,mBAAoB,WAClB,IAAKt0B,EAAItJ,KAAM,CACb,GAA6B,MAAzBxf,KAAKH,OAAO8d,UACd,QAAS3d,KAAKH,OAAO8d,UAChB,GAAI3d,KAAKk/C,YACd,OAAOl/C,KAAKk/C,YAAY9B,wBAmChC8hF,EAAkB7gH,GAClB8gH,EAAiB9gH,GACjBhP,EAAMgP,EAAO+gH,GACb/vH,EAAMgP,EAAOghH,GACbhwH,EAAMgP,EAAOihH,GACbjwH,EAAMgP,EAAOkhH,GACb,IAAIhgI,EAAW8e,EACf3b,EAAOC,QAAUpD,G,qBCzNjB,IAAI0gI,EAAS,EAAQ,QAEjB9vE,EAAmB,EAAQ,QAgC/B,SAASvsB,EAAO9jC,EAASyG,GACvB,IAAI25H,EAAU,GAkBd,OAjBApgI,EAAQs+B,cAAc,cAAc,SAAU7uB,EAAWW,GACvD,IAAIu4E,EAAS,IAAIw3C,EAAO1wH,EAAWzP,EAASyG,GAC5CkiF,EAAO97E,KAAO,UAAYuD,EAC1Bu4E,EAAOxL,OAAO1tE,EAAWhJ,GACzBgJ,EAAUjP,iBAAmBmoF,EAC7By3C,EAAQr/H,KAAK4nF,MAEf3oF,EAAQ04C,YAAW,SAAU12C,GAC3B,GAA4C,eAAxCA,EAAYI,IAAI,oBAAsC,CACxD,IAAIk3G,EAAkBt5G,EAAQgxD,gBAAgB,CAC5C7zB,SAAU,aACV91B,MAAOrF,EAAYI,IAAI,mBACvBiG,GAAIrG,EAAYI,IAAI,kBACnB,GACHJ,EAAYxB,iBAAmB84G,GAAmBA,EAAgB94G,qBAG/D4/H,EAGT/vE,EAAiBjJ,SAAS,SAAU,CAClCtjB,OAAQA,EACRzhC,WAAY89H,EAAOnyH,UAAU3L,c,uBC1D/B,IAAIunD,EAAc,EAAQ,QAoBtBnqD,EAAWmqD,EAAYlqD,OAAO,CAChCC,KAAM,WACNsB,cAAe,CACbC,OAAQ,EAERC,EAAG,EACH0oD,QAAS,CACPrsB,QAAS,QAGX3f,WAAW,EACXxc,MAAO,CACLC,MAAM,EACN4J,SAAU,OAEZE,UAAW,CAITE,YAAa,GAEf1J,SAAU,CACRP,MAAO,CACLC,MAAM,EACN4J,SAAU,WAMlBtI,EAAOC,QAAUpD,G,qBCpBjB,IA9BA,IAAI6I,EAAU,EAAQ,QAElBlF,EAAS,EAAQ,QAwBjB01C,EAAO,aAEPunF,EAAc,CAAC,oBAAqB,gBAAiB,eAEhDlyH,EAAI,EAAGA,EAAIkyH,EAAYl1H,OAAQgD,IACtC7F,EAAQC,eAAe,CACrB5I,KAAM0gI,EAAYlyH,GAClB1F,OAAQ,cACPqwC,GAGLxwC,EAAQC,eAAe,CACrB5I,KAAM,oBACN8I,OAAQ,eACP,SAAU21B,EAASp+B,GAOpB,SAASsgI,EAAiBtwG,EAAO3oB,GAC/B,IAAIk5H,EAAQ,CAAC,oBAAqB,qBAC9BC,EAAap9H,EAAOq9H,mBAAmBriG,EAASmiG,EAAOvwG,GAE3D,GAAIwwG,EAAY,CACd,IAAIE,EAAiB1wG,EAAMg3E,cAEvB05B,IACFtiG,EAAQ8yC,UAAY9tE,EAAOu9H,cAAcD,EAAgBF,EAAW9gH,MAAQ,SAAW,aAGzFsQ,EAAM4wG,cAAcJ,EAAW9gH,OAjBnC1f,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,UACT+C,MAAOlD,GACNkiG,O,qBCjEL,IAAIO,EAAc,EAAQ,QAgB1B,SAAShpH,EAAKgI,GACZ3f,KAAKyb,QAAUkE,EAAQvN,OAEvBpS,KAAK4gI,MAAQjhH,EAAQ3D,MAAQ,IAE7Bhc,KAAKoc,OAASuD,EAAQxD,OAAS,EAG/Bnc,KAAK89B,cAAe,EAEpB99B,KAAKic,KAAuB,MAAhB0D,EAAQ1D,MAAuB0D,EAAQ1D,KACnDjc,KAAK8K,IAAM6U,EAAQ7U,KAAO,EAC1B9K,KAAKma,OAASwF,EAAQxF,QAAU,SAChCna,KAAK4b,QAAU+D,EAAQ/D,QACvB5b,KAAKqc,UAAYsD,EAAQtD,UACzBrc,KAAK6gI,UAAYlhH,EAAQkhH,UACzB7gI,KAAKk7F,YAAc,EACnBl7F,KAAKmd,SAAU,EAGjBxF,EAAK7J,UAAY,CACfC,YAAa4J,EACbiqD,KAAM,SAAUk/D,EAAYC,GAQ1B,GALK/gI,KAAK89B,eACR99B,KAAKghI,WAAaF,EAAa9gI,KAAKoc,OACpCpc,KAAK89B,cAAe,GAGlB99B,KAAKmd,QACPnd,KAAKk7F,aAAe6lC,MADtB,CAKA,IAAI52H,GAAW22H,EAAa9gI,KAAKghI,WAAahhI,KAAKk7F,aAAel7F,KAAK4gI,MAEvE,KAAIz2H,EAAU,GAAd,CAIAA,EAAU0B,KAAK6E,IAAIvG,EAAS,GAC5B,IAAIgQ,EAASna,KAAKma,OACd8mH,EAA+B,kBAAX9mH,EAAsBwmH,EAAYxmH,GAAUA,EAChE+mH,EAAiC,oBAAfD,EAA4BA,EAAW92H,GAAWA,EAGxE,OAFAnK,KAAK47F,KAAK,QAASslC,GAEH,IAAZ/2H,EACEnK,KAAKic,MACPjc,KAAKmhI,QAAQL,GAGN,YAKT9gI,KAAK27F,cAAe,EACb,WAGF,QAETwlC,QAAS,SAAUL,GACjB,IAAIztB,GAAaytB,EAAa9gI,KAAKghI,WAAahhI,KAAKk7F,aAAel7F,KAAK4gI,MACzE5gI,KAAKghI,WAAaF,EAAaztB,EAAYrzG,KAAK8K,IAChD9K,KAAKk7F,YAAc,EACnBl7F,KAAK27F,cAAe,GAEtBC,KAAM,SAAUr0C,EAAW65E,GACzB75E,EAAY,KAAOA,EAEfvnD,KAAKunD,IACPvnD,KAAKunD,GAAWvnD,KAAKyb,QAAS2lH,IAGlClkH,MAAO,WACLld,KAAKmd,SAAU,GAEjBC,OAAQ,WACNpd,KAAKmd,SAAU,IAGnB,IAAI5d,EAAWoY,EACfjV,EAAOC,QAAUpD,G,uBChFjB,IAAI6I,EAAU,EAAQ,QAElBlF,EAAS,EAAQ,QAwBjBujG,EAAsB,qBAC1Br+F,EAAQC,eAAe,CACrB5I,KAAMgnG,EACNl+F,OAAQ,eACP,SAAU21B,EAASp+B,GAOpB,SAASsgI,EAAiBtwG,EAAO3oB,GAC/B,IAAIm5H,EAAap9H,EAAOq9H,mBAAmBriG,EAAS,CAACuoE,GAAsB32E,GAE3E,GAAIwwG,EAAY,CACd,IAAIE,EAAiB1wG,EAAMg3E,cAEvB05B,IACFtiG,EAAQ8yC,UAAY9tE,EAAOu9H,cAAcD,EAAgBF,EAAW9gH,MAAQ,SAAW,aAGzFsQ,EAAM4wG,cAAcJ,EAAW9gH,OAhBnC1f,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,WACT+C,MAAOlD,GACNkiG,MAgBL,IAAIiB,EAAmB,oBACvBj5H,EAAQC,eAAe,CACrB5I,KAAM4hI,EACN94H,OAAQ,eACP,SAAU21B,EAASp+B,GAOpB,SAASwhI,EAAgBxxG,EAAO3oB,GAC9B,IAAIm5H,EAAap9H,EAAOq9H,mBAAmBriG,EAAS,CAACmjG,GAAmBvxG,GAEpEwwG,IACFpiG,EAAQuc,UAAY6lF,EAAW9gH,MAVnC1f,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,WACT+C,MAAOlD,GACNojG,MAUL,IAAIC,EAAqB,sBACzBn5H,EAAQC,eAAe,CACrB5I,KAAM8hI,EACNh5H,OAAQ,eACP,SAAU21B,EAASp+B,GAOpB,SAAS0hI,EAAkB1xG,EAAO3oB,GAChC+2B,EAAQqpE,aAAc,EAPxBznG,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,WACT+C,MAAOlD,GACNsjG,O,qBC/EL,IAAI1+H,EAAU,EAAQ,QAElBF,EAAS,EAAQ,QA8BrB,SAAS27C,EAASjM,EAAUpiC,EAAKqiC,GAC/BzvC,EAAQ6B,MAAMmI,KAAK9M,MAEnBA,KAAKyhI,gBAAgBnvF,EAAUpiC,EAAKqiC,GAGtC,IAAImvF,EAAgBnjF,EAASzwC,UAE7B4zH,EAAcD,gBAAkB,SAAUnvF,EAAUpiC,EAAKqiC,GAEvD,IAAIh7B,EAAS+6B,EAAStxB,cAAc9Q,GAChCg3E,EAAO,IAAIpkF,EAAQy7C,SAAS,CAC9B/sC,MAAO,CACL+F,OAAQA,KAGZvX,KAAKsF,IAAI4hF,GAETlnF,KAAK2hI,iBAAiBrvF,EAAUpiC,EAAKqiC,IAGvCmvF,EAAcztF,WAAa,SAAU3B,EAAUpiC,EAAKqiC,GAClD,IAAIzwC,EAAcwwC,EAAStzB,UACvBkoE,EAAOlnF,KAAK8+B,QAAQ,GACpB1sB,EAAS,CACXZ,MAAO,CACL+F,OAAQ+6B,EAAStxB,cAAc9Q,KAGnCpN,EAAQk8B,YAAYkoD,EAAM90E,EAAQtQ,EAAaoO,GAE/ClQ,KAAK2hI,iBAAiBrvF,EAAUpiC,EAAKqiC,IAGvCmvF,EAAcC,iBAAmB,SAAUrvF,EAAUpiC,EAAKqiC,GACxD,IAAI20C,EAAOlnF,KAAK8+B,QAAQ,GACpB3d,EAAYmxB,EAASlxB,aAAalR,GAClCmwB,EAAciS,EAAS3wB,cAAczR,EAAK,SAC1C3O,EAAYgxC,GAAeA,EAAYhxC,UACvCqgI,EAAiBrvF,GAAeA,EAAYqvF,eAE3CrvF,IAAeD,EAASiK,gBAC3Bh7C,EAAY4f,EAAUF,SAAS,aAAa29B,eAC5CgjF,EAAiBzgH,EAAUF,SAAS,sBAAsB29B,gBAG5DsoC,EAAKnrC,SAASn5C,EAAO6O,SAAS,CAC5BqvB,eAAe,EACfpvB,KAAM,OACNmtC,OAAQxe,GACP9+B,IACH2lF,EAAK3lD,WAAaqgG,EAClB9+H,EAAQq/B,cAAcniC,OAGxB0hI,EAAchtF,aAAe,SAAUpC,EAAUpiC,GAC/C,IAAIouC,EAAWt+C,KAAK8+B,QAAQ,GAC5Bwf,EAAS6P,SAAS,SAAU7b,EAAStxB,cAAc9Q,KAGrDtN,EAAOwxB,SAASmqB,EAAUz7C,EAAQ6B,OAClC,IAAIpF,EAAWg/C,EACf77C,EAAOC,QAAUpD,G,qBClHjB,IAAIuqD,EAAO,EAAQ,QAMfvqD,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,OACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJxqC,EAAG,EACHguC,GAAI,GAEN4J,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI/L,EAAI+L,EAAM4sC,GACV14C,EAAI8L,EAAM6sC,GACVmnC,EAAgB,EAAV35E,KAAK+E,GACf6zB,EAAItW,OAAO1oB,EAAI+L,EAAMqC,EAAGnO,GACxB++B,EAAIo2B,IAAIp1D,EAAGC,EAAG8L,EAAMqC,EAAG,EAAG2xE,GAAK,GAC/B/gD,EAAItW,OAAO1oB,EAAI+L,EAAMqwC,GAAIn8C,GACzB++B,EAAIo2B,IAAIp1D,EAAGC,EAAG8L,EAAMqwC,GAAI,EAAG2jC,GAAK,MAIpC9iF,EAAOC,QAAUpD,G,qBCLjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAoBrB,SAASi/H,EAA0Bp0H,EAAYywB,EAASp+B,GACtD,IAEIy9B,EAFAukG,EAAc,GACdC,EAAgC,mBAAft0H,EAoCrB,OAjCA3N,EAAQs+B,cAAc,UAAU,SAAU0J,GACpCi6F,GAAgC,MAAdxkG,EAKpBuK,EAAYvK,EAAa,SAAW,YAAYW,EAAQvxB,MAChC,cAAfc,GAA6C,kBAAfA,EACvCq6B,EAAYr6B,MAEZq6B,EAAYr6B,GAAYywB,EAAQvxB,MAChC4wB,EAAauK,EAAYvK,WAAWW,EAAQvxB,OAG9C,IAAIq1H,EAAal6F,EAAYtnC,UAC7BoC,EAAOzD,KAAK6iI,GAAY,SAAUlyG,GAChC,IAAInjB,EAAOmjB,EAAM5tB,IAAI,QAErB,GAAa,OAATyK,GAA0B,KAATA,EAArB,CAIA,IAAIs1H,EAAiBn6F,EAAYvK,WAAW5wB,GAExCm1H,EAAY/kH,eAAepQ,GAE7Bm1H,EAAYn1H,GAAQm1H,EAAYn1H,IAASs1H,EAEzCH,EAAYn1H,GAAQs1H,SAKJ,cAAfx0H,GAA6C,kBAAfA,EAAiC,CACpEhG,SAAUq6H,GACR,CACFn1H,KAAMuxB,EAAQvxB,KACdlF,SAAUq6H,GAYd15H,EAAQC,eAAe,qBAAsB,sBAAuBzF,EAAO4G,MAAMq4H,EAA2B,mBAC5Gz5H,EAAQC,eAAe,kBAAmB,kBAAmBzF,EAAO4G,MAAMq4H,EAA2B,cACrGz5H,EAAQC,eAAe,sBAAuB,sBAAuBzF,EAAO4G,MAAMq4H,EAA2B,kBAQ7Gz5H,EAAQC,eAAe,eAAgB,iBAAkBzF,EAAO4G,MAAMq4H,EAA2B,WAQjGz5H,EAAQC,eAAe,iBAAkB,mBAAoBzF,EAAO4G,MAAMq4H,EAA2B,c,qBC5ErG,SAAStiI,EAASc,GAChB,IAAI2L,EAAO3L,EAAS2P,UAChBkyH,EAAY7hI,EAAS8hI,eACzB,MAAO,CACL9hI,SAAU,CACRZ,KAAM,WACNgG,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,OACbk2H,UAAW/hI,EAASgiI,eACpBC,WAAYjiI,EAASkiI,gBACrBL,UAAW,CACT3tH,MAAO2tH,EAAU3tH,MACjB8lE,IAAK6nD,EAAU7nD,IACfmoD,MAAON,EAAUM,MACjBC,SAAUP,EAAUQ,SAGxBn8H,IAAK,CACH8F,MAAO,SAAU9L,EAAMwxG,GACrB,OAAO1xG,EAAS0L,YAAYxL,EAAMwxG,MAM1CrvG,EAAOC,QAAUpD,G,qBC7CjB,IAAI6I,EAAU,EAAQ,QAElBu6H,EAAa,EAAQ,QAErBC,EAAe,EAAQ,QAEvB3/F,EAAS,EAAQ,QAEjB4/F,EAAe,EAAQ,QAoBvBtjI,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,gBACNuJ,KAAM,WACJhJ,KAAK8iI,YAAc,IAAIH,EAAWC,IAEpCtxH,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIhG,EAAOuB,EAAYtB,UACnBuiI,EAAmB/iI,KAAK8iI,YAC5BC,EAAiB9uF,WAAW1zC,GAC5BP,KAAKsD,MAAMgC,IAAIy9H,EAAiBz/H,QAElCoL,gBAAiB,SAAU5M,EAAahC,EAASyG,GAC/C,IAAIhG,EAAOuB,EAAYtB,UACvBR,KAAKsD,MAAMgP,QACX,IAAI8N,EAAMyiH,IAAe/tG,MAAMhzB,GAE3Bse,EAAIuV,UACNvV,EAAIuV,SAAS,CACXphB,MAAO,EACP8lE,IAAK95E,EAAK4hB,SACT5hB,GAGLP,KAAK8iI,YAAYpuF,aAAan0C,IAEhCyiI,sBAAuB,SAAUlhI,GAC/B,IAAIzB,EAAWyB,EAAYxB,iBAEvBD,GAAYA,EAAS4iI,mBACvBjjI,KAAKsD,MAAMgL,UAAY20B,EAAOv7B,MAAMrH,EAAS4iI,oBAC7CjjI,KAAKsD,MAAMkL,uBAGf6zB,OAAQ,SAAUviC,EAASyG,GACzBvG,KAAK8iI,aAAe9iI,KAAK8iI,YAAYzgG,OAAO97B,IAE9CgoB,QAAS,eAGX7rB,EAAOC,QAAUpD,G,uBCnEjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB3gB,EAAU,EAAQ,QAElBogI,EAAe,EAAQ,QAEvBtgI,EAAS,EAAQ,QAoBrB,SAASugI,EAAsB79G,EAAYjB,EAAW5c,GACpD,IAAI27H,EAAW99G,EAAW,GAAKA,EAAW,GAC1CjB,EAAYzhB,EAAOqE,IAAIod,GAAW,SAAU5f,GAC1C,MAAO,CACLyiB,SAAU,EAAEziB,EAAMyiB,SAAS,GAAK5B,EAAW,IAAM89G,GAAW3+H,EAAMyiB,SAAS,GAAK5B,EAAW,IAAM89G,OAGrG,IAAI9qH,EAAM+L,EAAUpZ,OAChB8qD,EAAY,EAChB,OAAO,SAAUtqD,GAEf,IAAK,IAAIwC,EAAI8nD,EAAW9nD,EAAIqK,EAAKrK,IAAK,CACpC,IAAIiZ,EAAW7C,EAAUpW,GAAGiZ,SAE5B,GAAIA,EAAS,IAAMzb,GAAOA,GAAOyb,EAAS,GAAI,CAC5C6uC,EAAY9nD,EACZ,OAIJ,GAAIA,IAAMqK,EAER,IAASrK,EAAI8nD,EAAY,EAAG9nD,GAAK,EAAGA,IAAK,CACnCiZ,EAAW7C,EAAUpW,GAAGiZ,SAE5B,GAAIA,EAAS,IAAMzb,GAAOA,GAAOyb,EAAS,GAAI,CAC5C6uC,EAAY9nD,EACZ,OAKN,OAAOA,GAAK,GAAKA,EAAIqK,GAAO7Q,EAASwG,IAIzC,SAASo1H,EAAuB/9G,EAAYxJ,GAC1C,IAAIsnH,EAAW99G,EAAW,GAAKA,EAAW,GAE1C,OADAxJ,EAAQ,EAAEA,EAAM,GAAKwJ,EAAW,IAAM89G,GAAWtnH,EAAM,GAAKwJ,EAAW,IAAM89G,GACtE,SAAU33H,GACf,OAAOA,GAAOqQ,EAAM,IAAMrQ,GAAOqQ,EAAM,IAI3C,SAASwnH,EAAcjjI,GACrB,IAAI8B,EAAa9B,EAAS8B,WAE1B,MAAyB,QAAlBA,EAAW,IAAkC,QAAlBA,EAAW,GAG/C,IAAI5C,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,UACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIg9H,EACJzjI,EAAQs+B,cAAc,aAAa,SAAUwwD,GAC3CA,EAAUhoE,kBAAiB,SAAU48G,GAC/BA,IAAiB1hI,IACnByhI,EAAwB30C,SAI9B5uF,KAAKsD,MAAMC,YACXvD,KAAKyjI,wBAA0B,KAC/B,IAAIpjI,EAAWyB,EAAYxB,iBAEL,gBAAlBD,EAASZ,MAA4C,aAAlBY,EAASZ,KAC9CO,KAAK0jI,8BAA8B5hI,EAAayE,EAAK,EAAGzE,EAAYtB,UAAU2hB,SACrEmhH,EAAcjjI,IACvBL,KAAK2jI,aAAatjI,EAAUyB,EAAayhI,EAAuBh9H,IAGpEkkD,yBAA0B,SAAU3oD,EAAahC,EAASyG,GACxDvG,KAAKsD,MAAMC,aAEbonD,kBAAmB,SAAU9gD,EAAQ/H,EAAahC,EAASyG,GACzD,IAAIlG,EAAWyB,EAAYxB,iBAEvBD,GACFL,KAAK0jI,8BAA8B5hI,EAAayE,EAAKsD,EAAO0K,MAAO1K,EAAOwwE,KAAK,IAGnFqpD,8BAA+B,SAAU5hI,EAAayE,EAAKgO,EAAO8lE,EAAK5+B,GACrE,IACIj6C,EACA0K,EAFA7L,EAAWyB,EAAYxB,iBAI3B,GAAsB,gBAAlBD,EAASZ,KAAwB,CACnC,IAAIqS,EAAQzR,EAASu3F,QAAQ,KACzB7lF,EAAQ1R,EAASu3F,QAAQ,KAC7Bp2F,EAAQsQ,EAAMmmB,eACd/rB,EAAS6F,EAAMkmB,eAgBjB,IAbA,IAAI30B,EAAQtD,KAAKsD,MACb/C,EAAOuB,EAAYtB,UACnBojI,EAAiB,YACjBC,EAAsB,qBACtBC,EAAa,QACbC,EAAkB,iBAClBv+H,EAAQ1D,EAAYmf,SAAS2iH,GAAgBjyH,aAAa,CAAC,UAC3Du4D,EAAWpoE,EAAYmf,SAAS4iH,GAAqBlyH,eACrDuuB,EAAap+B,EAAYmf,SAAS6iH,GAClC3jG,EAAkBr+B,EAAYmf,SAAS8iH,GACvCC,EAAe3jI,EAASZ,KACxBwkI,EAA4B,gBAAjBD,EAAiC,CAACzjI,EAAKyJ,aAAa,KAAMzJ,EAAKyJ,aAAa,KAAMzJ,EAAKyJ,aAAa,UAAY,CAACzJ,EAAKyJ,aAAa,QAASzJ,EAAKyJ,aAAa,UAEpKkG,EAAMqE,EAAOrE,EAAMmqE,EAAKnqE,IAAO,CACtC,IAAIlE,EAEJ,GAAqB,gBAAjBg4H,EAAgC,CAElC,GAAIjrH,MAAMxY,EAAK2B,IAAI+hI,EAAS,GAAI/zH,IAC9B,SAGF,IAAIonB,EAAQj3B,EAAS0L,YAAY,CAACxL,EAAK2B,IAAI+hI,EAAS,GAAI/zH,GAAM3P,EAAK2B,IAAI+hI,EAAS,GAAI/zH,KACpFlE,EAAO,IAAIlJ,EAAQyO,KAAK,CACtBC,MAAO,CACL/L,EAAGoG,KAAK+N,MAAM/N,KAAK8d,MAAM2N,EAAM,IAAM91B,EAAQ,GAC7CkE,EAAGmG,KAAK+N,MAAM/N,KAAK8d,MAAM2N,EAAM,IAAMprB,EAAS,GAC9C1K,MAAOqK,KAAKyzD,KAAK99D,GACjB0K,OAAQL,KAAKyzD,KAAKpzD,IAEpB1G,MAAO,CACLkM,KAAMnR,EAAKohB,cAAczR,EAAK,SAC9BzO,QAASlB,EAAKohB,cAAczR,EAAK,kBAGhC,CAEL,GAAI6I,MAAMxY,EAAK2B,IAAI+hI,EAAS,GAAI/zH,IAC9B,SAGFlE,EAAO,IAAIlJ,EAAQyO,KAAK,CACtBH,GAAI,EACJI,MAAOnR,EAAS6jI,WAAW,CAAC3jI,EAAK2B,IAAI+hI,EAAS,GAAI/zH,KAAOi0H,aACzD3+H,MAAO,CACLkM,KAAMnR,EAAKohB,cAAczR,EAAK,SAC9BzO,QAASlB,EAAKohB,cAAczR,EAAK,cAKvC,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAE9B3P,EAAKg8C,gBACP/2C,EAAQ2b,EAAUF,SAAS2iH,GAAgBjyH,aAAa,CAAC,UACzDu4D,EAAW/oD,EAAUF,SAAS4iH,GAAqBlyH,eACnDuuB,EAAa/e,EAAUF,SAAS6iH,GAChC3jG,EAAkBhf,EAAUF,SAAS8iH,IAGvC,IAAIhvB,EAAWjzG,EAAYo+E,YAAYhwE,GACnCuxB,EAAc,IAEdszE,GAA2B,MAAfA,EAAS,KACvBtzE,EAAcszE,EAAS,IAGzBjyG,EAAQw+B,cAAc97B,EAAO0kE,EAAUhqC,EAAYC,EAAiB,CAClEgB,aAAcr/B,EACd0/B,eAAgBtxB,EAChBuxB,YAAaA,EACbyb,YAAY,IAEdlxC,EAAK60B,SAASr7B,GACd1C,EAAQq/B,cAAcn2B,EAAMzL,EAAKg8C,cAAgB2tB,EAAWtnE,EAAOpD,OAAO,GAAI0qE,IAC9El+D,EAAKyvC,YAAcA,EAEfA,IAEFzvC,EAAK0vC,eAAgB,GAGvBp4C,EAAMgC,IAAI0G,GACVzL,EAAKqhC,iBAAiB1xB,EAAKlE,KAG/B23H,aAAc,SAAUnlG,EAAK18B,EAAa0B,EAAgB+C,GACxD,IAAI69H,EAAiB5gI,EAAe6gI,cAAc5oB,QAC9C6oB,EAAoB9gI,EAAe6gI,cAAc9oB,WAIjDh7G,EAAOuB,EAAYtB,UACnB+jI,EAAUvkI,KAAKwkI,UAAYxkI,KAAKwkI,UAAY,IAAItB,EACpDqB,EAAQttB,SAAWn1G,EAAYI,IAAI,YACnCqiI,EAAQrtB,UAAYp1G,EAAYI,IAAI,aACpCqiI,EAAQntB,WAAat1G,EAAYI,IAAI,cACrCqiI,EAAQptB,WAAar1G,EAAYI,IAAI,cACrC,IAAI8J,EAAOwyB,EAAIqnC,cAAcn+D,QACzBq3B,EAAgBP,EAAIykG,mBACxBj3H,EAAKk5B,eAAenG,GAEpB,IAAIt5B,EAAIoG,KAAK4E,IAAIzE,EAAKvG,EAAG,GACrBC,EAAImG,KAAK4E,IAAIzE,EAAKtG,EAAG,GACrB40D,EAAKzuD,KAAK6E,IAAI1E,EAAKxK,MAAQwK,EAAKvG,EAAGc,EAAIylB,YACvCuuC,EAAK1uD,KAAK6E,IAAI1E,EAAKE,OAASF,EAAKtG,EAAGa,EAAI0lB,aACxCzqB,EAAQ84D,EAAK70D,EACbyG,EAASquD,EAAK70D,EACd0kF,EAAO,CAAC7pF,EAAKyJ,aAAa,OAAQzJ,EAAKyJ,aAAa,OAAQzJ,EAAKyJ,aAAa,UAC9EuN,EAAShX,EAAKggF,SAAS6J,GAAM,SAAUq6C,EAAKC,EAAK/2H,GACnD,IAAIwwC,EAAK3f,EAAIzyB,YAAY,CAAC04H,EAAKC,IAI/B,OAHAvmF,EAAG,IAAM14C,EACT04C,EAAG,IAAMz4C,EACTy4C,EAAGt9C,KAAK8M,GACDwwC,KAEL74B,EAAa9hB,EAAe+hB,YAC5Bo/G,EAAoC,yBAAxBnhI,EAAe/D,KAAkC4jI,EAAuB/9G,EAAY9hB,EAAe3D,OAAOic,OAASqnH,EAAsB79G,EAAY9hB,EAAe0D,eAAgB1D,EAAe3D,OAAO4H,UAC1N88H,EAAQh8H,OAAOgP,EAAQ/V,EAAO0K,EAAQk4H,EAAexsH,MAAMgtH,gBAAiB,CAC1EnpB,QAAS2oB,EAAexsH,MAAMitH,iBAC9BtpB,WAAY+oB,EAAkB1sH,MAAMitH,kBACnCF,GACH,IAAI57D,EAAM,IAAIjmE,EAAQkkE,MAAM,CAC1BxhE,MAAO,CACLhE,MAAOA,EACP0K,OAAQA,EACRzG,EAAGA,EACHC,EAAGA,EACHigC,MAAO4+F,EAAQ9d,QAEjB70G,QAAQ,IAEV5R,KAAKsD,MAAMgC,IAAIyjE,IAEjBx6C,QAAS,eAGX7rB,EAAOC,QAAUpD,G,uBCpQjB,IAAIulI,EAAY,EAAQ,QAEpB3yF,EAAO,EAAQ,QAEf4yF,EAAe,EAAQ,QAEvBjrF,EAAgBirF,EAAajrF,cAoB7BvgC,EAAK,GACL0rB,EAAK,GACL+/F,EAAK,GACL5wF,EAAc0wF,EAAU1wF,YACxB6wF,EAAe9yF,EAAKyjF,WACpBj9D,EAAU9sD,KAAKC,IAEnB,SAASo5H,EAAqBC,EAAazsG,EAAQstB,GASjD,IARA,IAII3xC,EAJAqD,EAAKytH,EAAY,GACjBx5H,EAAKw5H,EAAY,GACjBv5H,EAAKu5H,EAAY,GACjBnoE,EAAIjqD,IAEJqyH,EAAep/E,EAASA,EACxB9+B,EAAW,GAEN+I,EAAK,GAAKA,GAAM,GAAKA,GAAM,GAAK,CACvC1W,EAAG,GAAK66B,EAAY18B,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIqkB,GACzC1W,EAAG,GAAK66B,EAAY18B,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIqkB,GACzC,IAAIgK,EAAO0+B,EAAQssE,EAAa1rH,EAAImf,GAAU0sG,GAE1CnrG,EAAO+iC,IACTA,EAAI/iC,EACJ5lB,EAAI4b,GAMR,IAAK,IAAIhiB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAE3B,IAAI+nB,EAAO3hB,EAAI6S,EAGf+d,EAAG,GAAKmP,EAAY18B,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIyI,GACzC4wB,EAAG,GAAKmP,EAAY18B,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIyI,GACzC2wH,EAAG,GAAK5wF,EAAY18B,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIoqB,GACzCgvG,EAAG,GAAK5wF,EAAY18B,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIoqB,GACrCiE,EAAOgrG,EAAahgG,EAAIvM,GAAU0sG,EAEtC,GAAIzsE,EAAQ1+B,GAAQ,IAClB,MAIF,IAAIorG,EAAWJ,EAAaD,EAAItsG,GAAU0sG,EAC1Cl+G,GAAY,EAER+S,EAAO,EACLorG,GAAY,EACdhxH,GAAQ6S,EAER7S,GAAQ6S,EAGNm+G,GAAY,EACdhxH,GAAQ6S,EAER7S,GAAQ6S,EAKd,OAAO7S,EAIT,SAAS9U,EAAS+mC,EAAO73B,GACvB,IAAI62H,EAAO,GACPC,EAAqBT,EAAUS,mBAC/BC,EAAM,CAAC,GAAI,GAAI,IACfC,EAAO,CAAC,GAAI,IACZt/G,EAAI,GACR1X,GAAS,EACT63B,EAAMupB,UAAS,SAAUtoC,EAAMrX,GAC7B,IAAI0+C,EAAarnC,EAAKxG,YAClB2kH,EAAan+G,EAAK9F,UAAU,cAC5BkkH,EAAWp+G,EAAK9F,UAAU,YAEzBmtC,EAAWg3E,aACdh3E,EAAWg3E,WAAa,CAACzzF,EAAKzqC,MAAMknD,EAAW,IAAKzc,EAAKzqC,MAAMknD,EAAW,KAEtEA,EAAW,IACbA,EAAWg3E,WAAW/kI,KAAKsxC,EAAKzqC,MAAMknD,EAAW,MAIrD,IAAIi3E,EAAiBj3E,EAAWg3E,WAEhC,GAAqB,MAAjBh3E,EAAW,GAAY,CAKzB,GAJAzc,EAAKpO,KAAKyhG,EAAI,GAAIK,EAAe,IACjC1zF,EAAKpO,KAAKyhG,EAAI,GAAIK,EAAe,IACjC1zF,EAAKpO,KAAKyhG,EAAI,GAAIK,EAAe,IAE7BH,GAA6B,SAAfA,EAAuB,CACvC,IAAI3rF,EAAaD,EAAcvyB,EAAKwoC,OAChC17C,EAAI6wH,EAAqBM,EAAKK,EAAe,GAAI9rF,EAAatrC,GAElE82H,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAInxH,EAAGixH,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,GACjBC,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAInxH,EAAGixH,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,GAGnB,GAAIK,GAAyB,SAAbA,EAAqB,CAC/B5rF,EAAaD,EAAcvyB,EAAKyoC,OAChC37C,EAAI6wH,EAAqBM,EAAKK,EAAe,GAAI9rF,EAAatrC,GAElE82H,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAInxH,EAAGixH,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,GACjBC,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAInxH,EAAGixH,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,GAInBnzF,EAAKpO,KAAK6qB,EAAW,GAAI42E,EAAI,IAC7BrzF,EAAKpO,KAAK6qB,EAAW,GAAI42E,EAAI,IAC7BrzF,EAAKpO,KAAK6qB,EAAW,GAAI42E,EAAI,QAE1B,CAMD,GALArzF,EAAKpO,KAAK0hG,EAAK,GAAII,EAAe,IAClC1zF,EAAKpO,KAAK0hG,EAAK,GAAII,EAAe,IAClC1zF,EAAKg4E,IAAIhkG,EAAGs/G,EAAK,GAAIA,EAAK,IAC1BtzF,EAAK6W,UAAU7iC,EAAGA,GAEdu/G,GAA6B,SAAfA,EAAuB,CACnC3rF,EAAaD,EAAcvyB,EAAKwoC,OACpC5d,EAAKmjF,YAAYmQ,EAAK,GAAIA,EAAK,GAAIt/G,EAAG4zB,EAAatrC,GAGrD,GAAIk3H,GAAyB,SAAbA,EAAqB,CAC/B5rF,EAAaD,EAAcvyB,EAAKyoC,OACpC7d,EAAKmjF,YAAYmQ,EAAK,GAAIA,EAAK,GAAIt/G,GAAI4zB,EAAatrC,GAGtD0jC,EAAKpO,KAAK6qB,EAAW,GAAI62E,EAAK,IAC9BtzF,EAAKpO,KAAK6qB,EAAW,GAAI62E,EAAK,QAKtC/iI,EAAOC,QAAUpD,G,uBC/LjB,IAAIqD,EAAS,EAAQ,QAEjBo2H,EAAW,EAAQ,QAWnB5xD,EAAiB,SAAU3hE,EAAGC,EAAG40D,EAAIC,EAAIkzB,EAAYq4C,GAIvD9lI,KAAKyF,EAAS,MAALA,EAAY,EAAIA,EACzBzF,KAAK0F,EAAS,MAALA,EAAY,EAAIA,EACzB1F,KAAKs6D,GAAW,MAANA,EAAa,EAAIA,EAC3Bt6D,KAAKu6D,GAAW,MAANA,EAAa,EAAIA,EAE3Bv6D,KAAKP,KAAO,SAEZO,KAAK+rF,OAAS+5C,IAAe,EAC7B9M,EAASlsH,KAAK9M,KAAMytF,IAGtBrmB,EAAet5D,UAAY,CACzBC,YAAaq5D,GAEfxkE,EAAOwxB,SAASgzC,EAAgB4xD,GAChC,IAAIz5H,EAAW6nE,EACf1kE,EAAOC,QAAUpD,G,uBCbjB,IAAI6I,EAAU,EAAQ,QAoBlB29H,EAAmB39H,EAAQ48C,qBAAqB,CAClDvlD,KAAM,cACNq7H,iBAAkB,KAClB/5H,cAAe,CAEbK,KAAM,OAEN44H,UAAW,KAEXh5H,OAAQ,EACRC,EAAG,GACHxB,KAAM,OAINumI,MAAM,EACNC,gBAAgB,EAChBt4H,MAAO,KACPknD,OAAQ,KAaRqnB,KAAM,GAGNv+D,UAAW,KACXqhD,wBAAyB,IACzBz9D,UAAW,CACTqW,MAAO,OACPpW,MAAO,EACP/B,KAAM,SAERymI,YAAa,CACXtuH,MAAO,yBAETzW,MAAO,CACLC,MAAM,EACN0zD,UAAW,KAEXltC,UAAW,OAEXq6D,OAAQ,EACRrqE,MAAO,OACPoS,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBD,gBAAiB,OAEjB5e,YAAa,KACbC,YAAa,EACb4wC,WAAY,EACZG,YAAa,QAMf09B,OAAQ,CACNz4E,MAAM,EAGNonC,KAAM,2MAINl8B,KAAM,GAEN21E,OAAQ,GAGRrqE,MAAO,OACPokC,WAAY,EACZG,YAAa,OACbF,cAAe,EACfC,cAAe,EAEfs3B,SAAU,OAIZj0E,EAAWwmI,EACfrjI,EAAOC,QAAUpD,G,uBC5GjB,IAAIqD,EAAS,EAAQ,QAEjBqQ,EAAiB,EAAQ,QAEzBkzH,EAAmB,EAAQ,QAE3BlkF,EAAuB,EAAQ,QAoB/BmkF,EAAYnzH,EAAezT,OAAO,CACpCC,KAAM,kBAKNiQ,KAAM,KAKN1G,KAAM,WACJo9H,EAAUn9H,WAAWjJ,KAAM,OAAQkJ,WACnClJ,KAAKk3D,cAMP4L,YAAa,WACXsjE,EAAUn9H,WAAWjJ,KAAM,cAAekJ,WAC1ClJ,KAAKk3D,cAMP0wD,YAAa,WACXwe,EAAUn9H,WAAWjJ,KAAM,cAAekJ,WAC1ClJ,KAAKk3D,cAOPF,iBAAkB,WAChB,OAAOh3D,KAAKF,QAAQgxD,gBAAgB,CAClC7zB,SAAU,OACV91B,MAAOnH,KAAKH,OAAOwmI,UACnBl+H,GAAInI,KAAKH,OAAOymI,SACf,MAIP,SAASC,EAAYnkI,EAASvC,GAE5B,OAAOA,EAAOJ,OAASI,EAAOU,KAAO,WAAa,SAGpDqC,EAAOie,MAAMulH,EAAUt4H,UAAWm0C,GAClC,IAAIukF,EAAc,CAIhB1xH,OAAQ,GAEVqxH,EAAiB,IAAKC,EAAWG,EAAaC,GAC9CL,EAAiB,IAAKC,EAAWG,EAAaC,GAC9C,IAAIjnI,EAAW6mI,EACf1jI,EAAOC,QAAUpD,G,qBC1GjB,IAAIikB,EAAU,EAAQ,SAElBksE,EAAYlsE,EAAQksE,UAEpB+2C,EAAW,aAEG,IAAd/2C,IACF+2C,EAAWz0G,QAAQmqE,OAGrB,IAAI58F,EAAWknI,EACf/jI,EAAOC,QAAUpD,G,uBCSjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB8jI,EAAc,EAAQ,QAEtBC,EAAsBD,EAAYC,oBA8BtCv+H,EAAQC,eAAe,CACrB5I,KAAM,UACN6I,MAAO,UACPC,OAAQ,oBACP,SAAU21B,EAASp+B,GACpB,IAAIgiC,EAAgB5D,EAAQ4D,eAAiB,SAC7ChiC,EAAQs+B,cAAc,CACpBnB,SAAU6E,EACVV,MAAOlD,IACN,SAAUspF,GACX,IAAIhpF,EAAMgpF,EAAelnH,iBAEzB,GAAiB,QAAbk+B,EAAI/+B,KAAR,CAIA,IAAI2gB,EAAMumH,EAAoBnoG,EAAKN,EAASspF,EAAetlH,IAAI,eAC/DslH,EAAexyD,WAAawyD,EAAexyD,UAAU50C,EAAIsY,QACzD8uF,EAAezyD,SAAWyyD,EAAezyD,QAAQ30C,EAAIjU,MAG/B,WAAlB21B,GACFl/B,EAAOzD,KAAKqoH,EAAeof,aAAa,SAAU9kI,GAChDA,EAAYkzD,UAAU50C,EAAIsY,QAC1B52B,EAAYizD,QAAQ30C,EAAIjU,iB,uBC5DhC,IAAIvJ,EAAS,EAAQ,QAEjBsyD,EAAW,EAAQ,QAEnBqe,EAAY,EAAQ,QAEpBszD,EAAmB,EAAQ,QA4B/B,SAAS9qG,EAAexR,GAItBvqB,KAAK8mI,eAKL9mI,KAAK4rB,IAAMrB,EAKXvqB,KAAK+mI,KAAO,GAEZ,IAAIliI,EAAOjC,EAAOiC,KACdmiI,EAAmBniI,EAAKoiI,EAAWjnI,MACnCknI,EAAmBriI,EAAKsiI,EAAWnnI,MACnConI,EAAiBviI,EAAKwiI,EAASrnI,MAC/BsnI,EAAoBziI,EAAK0iI,EAAYvnI,MACrCwnI,EAAe3iI,EAAKy0B,EAAOt5B,MAC/Bk1D,EAASpoD,KAAK9M,MAOdA,KAAK+iC,kBAAoB,SAAU+jG,GACjC9mI,KAAK8mI,eAAiBA,GAkBxB9mI,KAAK0iC,OAAS,SAAU+kG,EAAaj4H,GAEnCxP,KAAKisE,UACLjsE,KAAK+mI,KAAOnkI,EAAO6O,SAAS7O,EAAO8E,MAAM8H,IAAQ,GAAI,CACnDk4H,kBAAkB,EAClBC,iBAAiB,EAEjBC,kBAAkB,EAClBC,yBAAyB,IAGR,MAAfJ,IACFA,GAAc,IAGI,IAAhBA,GAAwC,SAAhBA,GAA0C,QAAhBA,IACpDl9G,EAAG3jB,GAAG,YAAaogI,GACnBz8G,EAAG3jB,GAAG,YAAasgI,GACnB38G,EAAG3jB,GAAG,UAAWwgI,KAGC,IAAhBK,GAAwC,UAAhBA,GAA2C,SAAhBA,IACrDl9G,EAAG3jB,GAAG,aAAc0gI,GACpB/8G,EAAG3jB,GAAG,QAAS4gI,KAInBxnI,KAAKisE,QAAU,WACb1hD,EAAGsS,IAAI,YAAamqG,GACpBz8G,EAAGsS,IAAI,YAAaqqG,GACpB38G,EAAGsS,IAAI,UAAWuqG,GAClB78G,EAAGsS,IAAI,aAAcyqG,GACrB/8G,EAAGsS,IAAI,QAAS2qG,IAGlBxnI,KAAKuuB,QAAUvuB,KAAKisE,QAEpBjsE,KAAK8nI,WAAa,WAChB,OAAO9nI,KAAK60E,WAGd70E,KAAK+nI,WAAa,WAChB,OAAO/nI,KAAKgoI,WAMhB,SAASf,EAAUt6G,GACjB,KAAI4mD,EAAU00D,mCAAmCt7G,IAAMA,EAAEva,QAAUua,EAAEva,OAAOyoC,WAA5E,CAIA,IAAIp1C,EAAIknB,EAAE2uD,QACN51E,EAAIinB,EAAE4uD,QAGNv7E,KAAK8mI,gBAAkB9mI,KAAK8mI,eAAen6G,EAAGlnB,EAAGC,KACnD1F,KAAKkoI,GAAKziI,EACVzF,KAAKmoI,GAAKziI,EACV1F,KAAK60E,WAAY,IAIrB,SAASsyD,EAAUx6G,GACjB,GAAK3sB,KAAK60E,WAAcuzD,EAAoB,kBAAmBz7G,EAAG3sB,KAAK+mI,OAA4B,UAAnBp6G,EAAE07G,eAA4BxB,EAAiByB,QAAQtoI,KAAK4rB,IAAK,aAAjJ,CAIA,IAAInmB,EAAIknB,EAAE2uD,QACN51E,EAAIinB,EAAE4uD,QACNkjB,EAAOz+F,KAAKkoI,GACZxpC,EAAO1+F,KAAKmoI,GACZj2H,EAAKzM,EAAIg5F,EACTtsF,EAAKzM,EAAIg5F,EACb1+F,KAAKkoI,GAAKziI,EACVzF,KAAKmoI,GAAKziI,EACV1F,KAAK+mI,KAAKc,yBAA2Bt0D,EAAUz1D,KAAK6O,EAAErkB,OACtDg1B,EAAQt9B,KAAM,MAAO,kBAAmB2sB,EAAG,CACzCza,GAAIA,EACJC,GAAIA,EACJssF,KAAMA,EACNC,KAAMA,EACNC,KAAMl5F,EACNm5F,KAAMl5F,KAIV,SAAS2hI,EAAQ16G,GACV4mD,EAAU00D,mCAAmCt7G,KAChD3sB,KAAK60E,WAAY,GAIrB,SAAS0yD,EAAW56G,GAClB,IAAI47G,EAAaH,EAAoB,mBAAoBz7G,EAAG3sB,KAAK+mI,MAC7DyB,EAAaJ,EAAoB,mBAAoBz7G,EAAG3sB,KAAK+mI,MAC7D0B,EAAa97G,EAAE87G,WACfC,EAAqB78H,KAAKC,IAAI28H,GAC9B7lG,EAAUjW,EAAE2uD,QACZz4C,EAAUlW,EAAE4uD,QAEhB,GAAmB,IAAfktD,IAAqBF,GAAeC,GAAxC,CAOA,GAAID,EAAY,CASd,IAAII,EAASD,EAAqB,EAAI,IAAMA,EAAqB,EAAI,IAAM,IACvEj6H,EAAQg6H,EAAa,EAAIE,EAAS,EAAIA,EAC1CC,EAAuB5oI,KAAM,OAAQ,mBAAoB2sB,EAAG,CAC1Dle,MAAOA,EACPm0B,QAASA,EACTC,QAASA,IAIb,GAAI2lG,EAAY,CAEd,IAAIK,EAAWh9H,KAAKC,IAAI28H,GAEpB3pC,GAAe2pC,EAAa,EAAI,GAAK,IAAMI,EAAW,EAAI,GAAMA,EAAW,EAAI,IAAO,KAC1FD,EAAuB5oI,KAAM,aAAc,mBAAoB2sB,EAAG,CAChEmyE,YAAaA,EACbl8D,QAASA,EACTC,QAASA,MAKf,SAASvJ,EAAM3M,GACb,IAAIk6G,EAAiByB,QAAQtoI,KAAK4rB,IAAK,aAAvC,CAIA,IAAInd,EAAQke,EAAE+M,WAAa,EAAI,IAAM,EAAI,IACzCkvG,EAAuB5oI,KAAM,OAAQ,KAAM2sB,EAAG,CAC5Cle,MAAOA,EACPm0B,QAASjW,EAAEkN,OACXgJ,QAASlW,EAAEmN,UAIf,SAAS8uG,EAAuBnmG,EAAYtJ,EAAW2vG,EAAiBn8G,EAAGo8G,GACrEtmG,EAAWqkG,gBAAkBrkG,EAAWqkG,eAAen6G,EAAGo8G,EAAenmG,QAASmmG,EAAelmG,WAInG0wC,EAAUz1D,KAAK6O,EAAErkB,OACjBg1B,EAAQmF,EAAYtJ,EAAW2vG,EAAiBn8G,EAAGo8G,IAIvD,SAASzrG,EAAQmF,EAAYtJ,EAAW2vG,EAAiBn8G,EAAGo8G,GAG1DA,EAAeX,oBAAsBxlI,EAAOiC,KAAKujI,EAAqB,KAAMU,EAAiBn8G,GAC7F8V,EAAWnF,QAAQnE,EAAW4vG,GAShC,SAASX,EAAoBU,EAAiBn8G,EAAGq8G,GAC/C,IAAIC,EAAUD,EAASF,GACvB,OAAQA,GAAmBG,KAAarmI,EAAOid,SAASopH,IAAYt8G,EAAErkB,MAAM2gI,EAAU,QApIxFrmI,EAAOyM,MAAM0sB,EAAgBm5B,GAuI7B,IAAI31D,EAAWw8B,EACfr5B,EAAOC,QAAUpD,G,uBC5RjB,IAAI2pI,EAAU,EAAQ,QAElBC,EAAWD,EAAQtlG,OACnBqhG,EAAeiE,EAAQtT,WAOvBwT,EAAUv9H,KAAKqyE,IACfxlB,EAAW7sD,KAAK4sB,KAChBthB,EAAU,KACVkyH,EAAkB,KAClBC,EAAa5wE,EAAS,GACtB6wE,EAAY,EAAI,EAEhBC,EAAML,IAENM,EAAMN,IAENO,EAAMP,IAEV,SAASlY,EAAaxlH,GACpB,OAAOA,GAAO0L,GAAW1L,EAAM0L,EAGjC,SAASksB,EAAgB53B,GACvB,OAAOA,EAAM0L,GAAW1L,GAAO0L,EAcjC,SAAS+kD,EAAQxkD,EAAI/L,EAAIC,EAAIsN,EAAI7E,GAC/B,IAAIs1H,EAAO,EAAIt1H,EACf,OAAOs1H,EAAOA,GAAQA,EAAOjyH,EAAK,EAAIrD,EAAI1I,GAAM0I,EAAIA,GAAKA,EAAI6E,EAAK,EAAIywH,EAAO/9H,GAc/E,SAASg+H,EAAkBlyH,EAAI/L,EAAIC,EAAIsN,EAAI7E,GACzC,IAAIs1H,EAAO,EAAIt1H,EACf,OAAO,KAAO1I,EAAK+L,GAAMiyH,EAAO,GAAK/9H,EAAKD,GAAM0I,GAAKs1H,GAAQzwH,EAAKtN,GAAMyI,EAAIA,GAe9E,SAASw1H,EAAYnyH,EAAI/L,EAAIC,EAAIsN,EAAIzN,EAAKq+H,GAExC,IAAIzyH,EAAI6B,EAAK,GAAKvN,EAAKC,GAAM8L,EACzBJ,EAAI,GAAK1L,EAAU,EAALD,EAAS+L,GACvBqyH,EAAI,GAAKp+H,EAAK+L,GACdslD,EAAItlD,EAAKjM,EACT0sD,EAAI7gD,EAAIA,EAAI,EAAID,EAAI0yH,EACpBnS,EAAItgH,EAAIyyH,EAAI,EAAI1yH,EAAI2lD,EACpB/E,EAAI8xE,EAAIA,EAAI,EAAIzyH,EAAI0lD,EACpBppD,EAAI,EAER,GAAIq9G,EAAa94D,IAAM84D,EAAa2G,GAClC,GAAI3G,EAAa35G,GACfwyH,EAAM,GAAK,MACN,CACL,IAAIE,GAAMD,EAAIzyH,EAEV0yH,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,OAGZ,CACL,IAAIC,EAAOrS,EAAIA,EAAI,EAAIz/D,EAAIF,EAE3B,GAAIg5D,EAAagZ,GAAO,CACtB,IAAIC,EAAItS,EAAIz/D,EAGRh/C,GAFA6wH,GAAM1yH,EAAID,EAAI6yH,GAERA,EAAI,GAEVF,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,GAGX7wH,GAAM,GAAKA,GAAM,IACnB2wH,EAAMl2H,KAAOuF,QAEV,GAAI8wH,EAAO,EAAG,CACnB,IAAIE,EAAWzxE,EAASuxE,GACpBG,EAAKjyE,EAAI7gD,EAAI,IAAMD,IAAMugH,EAAIuS,GAC7BE,EAAKlyE,EAAI7gD,EAAI,IAAMD,IAAMugH,EAAIuS,GAG/BC,EADEA,EAAK,GACDhB,GAASgB,EAAIb,GAEdH,EAAQgB,EAAIb,GAIjBc,EADEA,EAAK,GACDjB,GAASiB,EAAId,GAEdH,EAAQiB,EAAId,GAGfS,IAAO1yH,GAAK8yH,EAAKC,KAAQ,EAAIhzH,GAE7B2yH,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,OAEV,CACL,IAAIM,GAAK,EAAInyE,EAAI7gD,EAAI,EAAID,EAAIugH,IAAM,EAAIl/D,EAASP,EAAIA,EAAIA,IACpDgF,EAAQtxD,KAAKm9F,KAAKshC,GAAK,EACvBC,EAAQ7xE,EAASP,GACjBpjD,EAAMlJ,KAAK04C,IAAI4Y,GAGf/jD,GAFA4wH,IAAO1yH,EAAI,EAAIizH,EAAQx1H,IAAQ,EAAIsC,GACnC8B,IAAO7B,EAAIizH,GAASx1H,EAAMu0H,EAAaz9H,KAAKw4C,IAAI8Y,MAAY,EAAI9lD,KACzDC,EAAIizH,GAASx1H,EAAMu0H,EAAaz9H,KAAKw4C,IAAI8Y,MAAY,EAAI9lD,IAEhE2yH,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,GAGX7wH,GAAM,GAAKA,GAAM,IACnB2wH,EAAMl2H,KAAOuF,GAGXC,GAAM,GAAKA,GAAM,IACnB0wH,EAAMl2H,KAAOwF,IAKnB,OAAOxF,EAcT,SAAS42H,EAAa9yH,EAAI/L,EAAIC,EAAIsN,EAAIuxH,GACpC,IAAInzH,EAAI,EAAI1L,EAAK,GAAKD,EAAK,EAAI+L,EAC3BL,EAAI,EAAI1L,EAAK,EAAIuN,EAAK,EAAIxB,EAAK,EAAI9L,EACnCm+H,EAAI,EAAIp+H,EAAK,EAAI+L,EACjB9D,EAAI,EAER,GAAIq9G,EAAa55G,IACf,GAAIgsB,EAAgB/rB,GAAI,CACtB,IAAI0yH,GAAMD,EAAIzyH,EAEV0yH,GAAM,GAAKA,GAAM,IACnBS,EAAQ72H,KAAOo2H,QAGd,CACL,IAAIC,EAAO3yH,EAAIA,EAAI,EAAID,EAAI0yH,EAE3B,GAAI9Y,EAAagZ,GACfQ,EAAQ,IAAMnzH,GAAK,EAAID,QAClB,GAAI4yH,EAAO,EAAG,CACnB,IAAIE,EAAWzxE,EAASuxE,GAEpB9wH,GADA6wH,IAAO1yH,EAAI6yH,IAAa,EAAI9yH,KACrBC,EAAI6yH,IAAa,EAAI9yH,IAE5B2yH,GAAM,GAAKA,GAAM,IACnBS,EAAQ72H,KAAOo2H,GAGb7wH,GAAM,GAAKA,GAAM,IACnBsxH,EAAQ72H,KAAOuF,IAKrB,OAAOvF,EAcT,SAAS82H,EAAehzH,EAAI/L,EAAIC,EAAIsN,EAAI7E,EAAGnF,GACzC,IAAIy7H,GAAOh/H,EAAK+L,GAAMrD,EAAIqD,EACtBkzH,GAAOh/H,EAAKD,GAAM0I,EAAI1I,EACtBk/H,GAAO3xH,EAAKtN,GAAMyI,EAAIzI,EACtBk/H,GAAQF,EAAMD,GAAOt2H,EAAIs2H,EACzBI,GAAQF,EAAMD,GAAOv2H,EAAIu2H,EACzBI,GAASD,EAAOD,GAAQz2H,EAAIy2H,EAEhC57H,EAAI,GAAKwI,EACTxI,EAAI,GAAKy7H,EACTz7H,EAAI,GAAK47H,EACT57H,EAAI,GAAK87H,EAET97H,EAAI,GAAK87H,EACT97H,EAAI,GAAK67H,EACT77H,EAAI,GAAK27H,EACT37H,EAAI,GAAKgK,EAoBX,SAAS+xH,EAAkBjwE,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIh1D,EAAGC,EAAGwJ,GAE/D,IAAImF,EAGA62H,EACAl1G,EACAm1G,EACAC,EALAlkH,EAAW,KACX81C,EAAIjqD,IAKRy2H,EAAI,GAAK/jI,EACT+jI,EAAI,GAAK9jI,EAGT,IAAK,IAAIuqB,EAAK,EAAGA,EAAK,EAAGA,GAAM,IAC7Bw5G,EAAI,GAAKvtE,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAIvqC,GACjCw5G,EAAI,GAAKvtE,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIxqC,GACjCk7G,EAAKlG,EAAauE,EAAKC,GAEnB0B,EAAKnuE,IACP3oD,EAAI4b,EACJ+sC,EAAImuE,GAIRnuE,EAAIjqD,IAEJ,IAAK,IAAI9E,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,GAAIiZ,EAAWmiH,EACb,MAGF6B,EAAO72H,EAAI6S,EACX8O,EAAO3hB,EAAI6S,EAEXuiH,EAAI,GAAKvtE,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAI0wE,GACjCzB,EAAI,GAAKvtE,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIywE,GACjCC,EAAKlG,EAAawE,EAAKD,GAEnB0B,GAAQ,GAAKC,EAAKnuE,GACpB3oD,EAAI62H,EACJluE,EAAImuE,IAGJzB,EAAI,GAAKxtE,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAIxkC,GACjC0zG,EAAI,GAAKxtE,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIzkC,GACjCo1G,EAAKnG,EAAayE,EAAKF,GAEnBxzG,GAAQ,GAAKo1G,EAAKpuE,GACpB3oD,EAAI2hB,EACJgnC,EAAIouE,GAEJlkH,GAAY,IAYlB,OANIhY,IACFA,EAAI,GAAKgtD,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAInmD,GACjCnF,EAAI,GAAKgtD,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIpmD,IAI5BqkD,EAASsE,GAYlB,SAAS5oB,EAAY18B,EAAI/L,EAAIC,EAAIyI,GAC/B,IAAIs1H,EAAO,EAAIt1H,EACf,OAAOs1H,GAAQA,EAAOjyH,EAAK,EAAIrD,EAAI1I,GAAM0I,EAAIA,EAAIzI,EAYnD,SAASyoC,EAAsB38B,EAAI/L,EAAIC,EAAIyI,GACzC,OAAO,IAAM,EAAIA,IAAM1I,EAAK+L,GAAMrD,GAAKzI,EAAKD,IAa9C,SAAS0/H,EAAgB3zH,EAAI/L,EAAIC,EAAIH,EAAKq+H,GACxC,IAAIzyH,EAAIK,EAAK,EAAI/L,EAAKC,EAClB0L,EAAI,GAAK3L,EAAK+L,GACdqyH,EAAIryH,EAAKjM,EACTmI,EAAI,EAER,GAAIq9G,EAAa55G,IACf,GAAIgsB,EAAgB/rB,GAAI,CACtB,IAAI0yH,GAAMD,EAAIzyH,EAEV0yH,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,QAGZ,CACL,IAAIC,EAAO3yH,EAAIA,EAAI,EAAID,EAAI0yH,EAE3B,GAAI9Y,EAAagZ,GAAO,CAClBD,GAAM1yH,GAAK,EAAID,GAEf2yH,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,QAEV,GAAIC,EAAO,EAAG,CACnB,IAAIE,EAAWzxE,EAASuxE,GAEpB9wH,GADA6wH,IAAO1yH,EAAI6yH,IAAa,EAAI9yH,KACrBC,EAAI6yH,IAAa,EAAI9yH,IAE5B2yH,GAAM,GAAKA,GAAM,IACnBF,EAAMl2H,KAAOo2H,GAGX7wH,GAAM,GAAKA,GAAM,IACnB2wH,EAAMl2H,KAAOuF,IAKnB,OAAOvF,EAYT,SAAS03H,EAAkB5zH,EAAI/L,EAAIC,GACjC,IAAI2/H,EAAU7zH,EAAK9L,EAAK,EAAID,EAE5B,OAAgB,IAAZ4/H,EAEK,IAEC7zH,EAAK/L,GAAM4/H,EAcvB,SAAShG,EAAmB7tH,EAAI/L,EAAIC,EAAIyI,EAAGnF,GACzC,IAAIy7H,GAAOh/H,EAAK+L,GAAMrD,EAAIqD,EACtBkzH,GAAOh/H,EAAKD,GAAM0I,EAAI1I,EACtBm/H,GAAQF,EAAMD,GAAOt2H,EAAIs2H,EAE7Bz7H,EAAI,GAAKwI,EACTxI,EAAI,GAAKy7H,EACTz7H,EAAI,GAAK47H,EAET57H,EAAI,GAAK47H,EACT57H,EAAI,GAAK07H,EACT17H,EAAI,GAAKtD,EAkBX,SAAS4/H,EAAsBxwE,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAI90D,EAAGC,EAAGwJ,GAE3D,IAAImF,EACA6S,EAAW,KACX81C,EAAIjqD,IACRy2H,EAAI,GAAK/jI,EACT+jI,EAAI,GAAK9jI,EAGT,IAAK,IAAIuqB,EAAK,EAAGA,EAAK,EAAGA,GAAM,IAAM,CACnCw5G,EAAI,GAAKr1F,EAAY4mB,EAAIZ,EAAIE,EAAIrqC,GACjCw5G,EAAI,GAAKr1F,EAAY6mB,EAAIZ,EAAIE,EAAItqC,GACjC,IAAIk7G,EAAKlG,EAAauE,EAAKC,GAEvB0B,EAAKnuE,IACP3oD,EAAI4b,EACJ+sC,EAAImuE,GAIRnuE,EAAIjqD,IAEJ,IAAK,IAAI9E,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,GAAIiZ,EAAWmiH,EACb,MAGF,IAAI6B,EAAO72H,EAAI6S,EACX8O,EAAO3hB,EAAI6S,EAEfuiH,EAAI,GAAKr1F,EAAY4mB,EAAIZ,EAAIE,EAAI4wE,GACjCzB,EAAI,GAAKr1F,EAAY6mB,EAAIZ,EAAIE,EAAI2wE,GAC7BC,EAAKlG,EAAawE,EAAKD,GAE3B,GAAI0B,GAAQ,GAAKC,EAAKnuE,EACpB3oD,EAAI62H,EACJluE,EAAImuE,MACC,CAELzB,EAAI,GAAKt1F,EAAY4mB,EAAIZ,EAAIE,EAAItkC,GACjC0zG,EAAI,GAAKt1F,EAAY6mB,EAAIZ,EAAIE,EAAIvkC,GACjC,IAAIo1G,EAAKnG,EAAayE,EAAKF,GAEvBxzG,GAAQ,GAAKo1G,EAAKpuE,GACpB3oD,EAAI2hB,EACJgnC,EAAIouE,GAEJlkH,GAAY,IAYlB,OANIhY,IACFA,EAAI,GAAKklC,EAAY4mB,EAAIZ,EAAIE,EAAIjmD,GACjCnF,EAAI,GAAKklC,EAAY6mB,EAAIZ,EAAIE,EAAIlmD,IAI5BqkD,EAASsE,GAGlBr6D,EAAQu5D,QAAUA,EAClBv5D,EAAQinI,kBAAoBA,EAC5BjnI,EAAQknI,YAAcA,EACtBlnI,EAAQ6nI,aAAeA,EACvB7nI,EAAQ+nI,eAAiBA,EACzB/nI,EAAQsoI,kBAAoBA,EAC5BtoI,EAAQyxC,YAAcA,EACtBzxC,EAAQ0xC,sBAAwBA,EAChC1xC,EAAQ0oI,gBAAkBA,EAC1B1oI,EAAQ2oI,kBAAoBA,EAC5B3oI,EAAQ4iI,mBAAqBA,EAC7B5iI,EAAQ6oI,sBAAwBA,G,uBC/fhC,IAAIC,EAAkB,EAAQ,QAE1BC,EAAa,EAAQ,QAErBC,EAAsB,EAAQ,QAE9BlsF,EAAW,EAAQ,QAoBnBmsF,EAAuBH,EAAgBjsI,OAAO,CAIhDqsI,aAAc,SAAUC,EAAUn+H,EAAO4B,EAAWw8H,EAAkBxlI,GACpE,IAAImJ,EAAOH,EAAUG,KACjBD,EAAOC,EAAKD,KACZu8H,EAAkBD,EAAiB7pI,IAAI,QACvC+pI,EAAcC,EAAaz8H,EAAMC,GAAMmiD,aAAaniD,GAAMy8H,kBAC1DC,EAAa18H,EAAKa,cAAcb,EAAKc,YAAY7C,GAAO,IAE5D,GAAIq+H,GAAuC,SAApBA,EAA4B,CACjD,IAAIvvF,EAAUivF,EAAWW,aAAaN,GAClCO,EAAgBC,EAAoBP,GAAiBt8H,EAAM08H,EAAYH,GAC3EK,EAAc9mI,MAAQi3C,EACtBqvF,EAASU,WAAaF,EAAc7sI,KACpCqsI,EAAS37B,QAAUm8B,EAGrB,IAAIzuE,EAAa8tE,EAAoB1oI,OAAOwM,EAAKqgB,MAAOvgB,GACxDm8H,EAAWe,kCAAkC9+H,EAAOm+H,EAAUjuE,EAAYtuD,EAAWw8H,EAAkBxlI,IAMzGmmI,mBAAoB,SAAU/+H,EAAO4B,EAAWw8H,GAC9C,IAAIluE,EAAa8tE,EAAoB1oI,OAAOsM,EAAUG,KAAKD,KAAKqgB,MAAOvgB,EAAW,CAChF2B,aAAa,IAGf,OADA2sD,EAAW8uE,YAAcZ,EAAiB7pI,IAAI,iBACvC,CACL8I,SAAU0gI,EAAWkB,uBAAuBr9H,EAAUG,KAAM/B,EAAOkwD,GACnEltD,SAAUktD,EAAWltD,UAAYktD,EAAW/sD,eAAiB,EAAIjF,KAAK+E,GAAK,KAO/Ei8H,sBAAuB,SAAUv+H,EAAW2qE,EAAO1pE,EAAWw8H,GAC5D,IAAIr8H,EAAOH,EAAUG,KACjBD,EAAOC,EAAKD,KACZojD,EAAanjD,EAAKy8H,iBAAgB,GAClCF,EAAcC,EAAaz8H,EAAMC,GAAMmiD,aAAaniD,GAAMy8H,kBAC1Dx6F,EAAwB,MAAbjiC,EAAKK,IAAc,EAAI,EAClC+8H,EAAex+H,EAAUtD,SAC7B8hI,EAAan7F,IAAasnC,EAAMtnC,GAChCm7F,EAAan7F,GAAY9lC,KAAK6E,IAAImiD,EAAW,GAAIi6E,EAAan7F,IAC9Dm7F,EAAan7F,GAAY9lC,KAAK4E,IAAIoiD,EAAW,GAAIi6E,EAAan7F,IAC9D,IAAIo7F,GAAoBd,EAAY,GAAKA,EAAY,IAAM,EACvDe,EAAc,CAACD,EAAkBA,GACrCC,EAAYr7F,GAAYm7F,EAAan7F,GAErC,IAAIs7F,EAAiB,CAAC,CACpBh+E,cAAe,UACd,CACDjoD,MAAO,WAET,MAAO,CACLgE,SAAU8hI,EACVn8H,SAAUrC,EAAUqC,SACpBq8H,YAAaA,EACbvS,cAAewS,EAAet7F,OAKpC,SAASu6F,EAAaz8H,EAAMC,GAC1B,IAAIF,EAAM,GAEV,OADAA,EAAIE,EAAKK,IAAM,aAAeL,EAAKvI,MAC5BsI,EAAKy8H,aAAa18H,GAG3B,IAAI+8H,EAAsB,CACxBrlD,KAAM,SAAUx3E,EAAM08H,EAAYH,GAChC,IAAIiB,EAAcxB,EAAWyB,cAAc,CAACf,EAAYH,EAAY,IAAK,CAACG,EAAYH,EAAY,IAAKmB,EAAgB19H,IACvH,MAAO,CACLjQ,KAAM,OACN60B,kBAAkB,EAClB9iB,MAAO07H,IAGXG,OAAQ,SAAU39H,EAAM08H,EAAYH,GAClC,IAAIj0G,EAAYnsB,KAAK4E,IAAI,EAAGf,EAAKuoB,gBAC7B4oC,EAAOorE,EAAY,GAAKA,EAAY,GACxC,MAAO,CACLxsI,KAAM,OACN+R,MAAOk6H,EAAW4B,cAAc,CAAClB,EAAap0G,EAAY,EAAGi0G,EAAY,IAAK,CAACj0G,EAAW6oC,GAAOusE,EAAgB19H,OAKvH,SAAS09H,EAAgB19H,GACvB,MAAoB,MAAbA,EAAKK,IAAc,EAAI,EAGhC0vC,EAAS8tF,yBAAyB,uBAAwB3B,GAC1D,IAAIrsI,EAAWqsI,EACflpI,EAAOC,QAAUpD,G,uBCjJjB,IAAIuqD,EAAO,EAAQ,QAEf0jF,EAAoB,EAAQ,QAM5BjuI,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,SACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJwD,GAAI,EACJhuC,EAAG,EACHiuC,WAAY,EACZC,SAAoB,EAAVl2C,KAAK+E,GACf4+C,WAAW,GAEbhqB,MAAOgoG,EAAkB1jF,EAAKh8C,UAAU03B,OACxCimB,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI/L,EAAI+L,EAAM4sC,GACV14C,EAAI8L,EAAM6sC,GACVwD,EAAKh2C,KAAK4E,IAAIe,EAAMqwC,IAAM,EAAG,GAC7BhuC,EAAIhI,KAAK4E,IAAIe,EAAMqC,EAAG,GACtBiuC,EAAatwC,EAAMswC,WACnBC,EAAWvwC,EAAMuwC,SACjByN,EAAYh+C,EAAMg+C,UAClBi+E,EAAQ5hI,KAAK04C,IAAIzC,GACjB4rF,EAAQ7hI,KAAKw4C,IAAIvC,GACrBrd,EAAItW,OAAOs/G,EAAQ5rF,EAAKp8C,EAAGioI,EAAQ7rF,EAAKn8C,GACxC++B,EAAIknB,OAAO8hF,EAAQ55H,EAAIpO,EAAGioI,EAAQ75H,EAAInO,GACtC++B,EAAIo2B,IAAIp1D,EAAGC,EAAGmO,EAAGiuC,EAAYC,GAAWyN,GACxC/qB,EAAIknB,OAAO9/C,KAAK04C,IAAIxC,GAAYF,EAAKp8C,EAAGoG,KAAKw4C,IAAItC,GAAYF,EAAKn8C,GAEvD,IAAPm8C,GACFpd,EAAIo2B,IAAIp1D,EAAGC,EAAGm8C,EAAIE,EAAUD,EAAY0N,GAG1C/qB,EAAImnB,eAIRlpD,EAAOC,QAAUpD,G,uBC3CjB,IAAIkxH,EAAQ,EAAQ,QAEhB/kG,EAAgB+kG,EAAM/kG,cAEtB9oB,EAAS,EAAQ,QAEjBknD,EAAO,EAAQ,QAEfvkB,EAAS,EAAQ,QAEjBooG,EAAQ,EAAQ,QAEhBt5G,EAAW,EAAQ,QAEnB69F,EAAU79F,EAASnT,KACnBqxG,EAAWl+F,EAASsR,MACpBitF,EAAUv+F,EAAS1uB,KAOnBioI,EAAc,IACdC,EAAY,IAahB,SAASC,EAAUC,EAAMC,EAASC,EAAUC,EAAWC,GACrDnuI,KAAKouI,MAAQL,EACb/tI,KAAKquI,SAAWL,EAChBhuI,KAAKsuI,UAAgC,kBAAbL,EAAwB,CAACA,GAAYA,EAC7DjuI,KAAKuuI,WAAaL,EAClBluI,KAAKwuI,SAAWL,GAAW,OAC3BnuI,KAAKyuI,OAAS,EAGhBX,EAAUhgI,UAAU4d,cAAgBA,EASpCoiH,EAAUhgI,UAAU4gI,QAAU,SAAUC,GACtC,IAAIX,EAAUhuI,KAAKquI,SAEfv5C,EAAO90F,KAAKquI,SAASO,qBAAqB,QAE9C,OAAoB,IAAhB95C,EAAK7pF,OAEH0jI,GACF75C,EAAOk5C,EAAQa,aAAa7uI,KAAK0rB,cAAc,QAC/CsiH,EAAQ57C,YAGH0C,EAAKz0E,WAERy0E,EAAKz0E,SAAW,SAAUoL,GACxB,IAAI5M,EAAWi2E,EAAKj2E,SAEpB,IAAKA,EACH,OAAO,EAGT,IAAK,IAAI5Q,EAAI4Q,EAAS5T,OAAS,EAAGgD,GAAK,IAAKA,EAC1C,GAAI4Q,EAAS5Q,KAAOwd,EAClB,OAAO,EAIX,OAAO,IAIJqpE,GAEA,KAGFA,EAAK,IAYhBg5C,EAAUhgI,UAAUvF,OAAS,SAAU02G,EAAS1O,GAC9C,GAAK0O,EAAL,CAIA,IAAInqB,EAAO90F,KAAK0uI,SAAQ,GAExB,GAAIzvB,EAAQj/G,KAAKwuI,WAAa15C,EAAKz0E,SAAS4+F,EAAQj/G,KAAKwuI,WAE/B,oBAAbj+B,GACTA,EAAS0O,OAEN,CAEL,IAAI+C,EAAMhiH,KAAKsF,IAAI25G,GAEf+C,IACF/C,EAAQj/G,KAAKwuI,UAAYxsB,MAW/B8rB,EAAUhgI,UAAUghI,OAAS,SAAU9sB,GACrC,IAAIltB,EAAO90F,KAAK0uI,SAAQ,GACxB55C,EAAK5oE,YAAY81F,IASnB8rB,EAAUhgI,UAAUihI,UAAY,SAAU9vB,GACxC,IAAInqB,EAAO90F,KAAK0uI,SAAQ,GAEpB55C,GAAQmqB,EAAQj/G,KAAKwuI,YACvB15C,EAAKtmE,YAAYywF,EAAQj/G,KAAKwuI,WAC9BvvB,EAAQj/G,KAAKwuI,UAAY,OAU7BV,EAAUhgI,UAAUkhI,QAAU,WAC5B,IAAIl6C,EAAO90F,KAAK0uI,SAAQ,GAExB,IAAK55C,EAEH,MAAO,GAGT,IAAIm6C,EAAO,GAQX,OAPArsI,EAAOzD,KAAKa,KAAKsuI,WAAW,SAAUY,GACpC,IAAIC,EAAOr6C,EAAK85C,qBAAqBM,GAIrCD,EAAOA,EAAKz3E,OAAO,GAAGlwD,MAAMwF,KAAKqiI,OAE5BF,GAQTnB,EAAUhgI,UAAUshI,cAAgB,WAClC,IAAIH,EAAOjvI,KAAKgvI,UACZroC,EAAO3mG,KACX4C,EAAOzD,KAAK8vI,GAAM,SAAUjtB,GAC1BA,EAAIrb,EAAK4nC,YAAcX,MAU3BE,EAAUhgI,UAAUuhI,SAAW,SAAUrtB,GACnCA,IACFA,EAAIhiH,KAAKuuI,YAAcV,IAQ3BC,EAAUhgI,UAAUwhI,aAAe,WACjC,IAAIx6C,EAAO90F,KAAK0uI,SAAQ,GAExB,GAAK55C,EAAL,CAKA,IAAIm6C,EAAOjvI,KAAKgvI,UACZroC,EAAO3mG,KACX4C,EAAOzD,KAAK8vI,GAAM,SAAUjtB,GACtBA,EAAIrb,EAAK4nC,cAAgBV,GAE3B/4C,EAAKtmE,YAAYwzF,QAYvB8rB,EAAUhgI,UAAUyhI,YAAc,SAAUp5B,GAC1C,OAAIA,aAAuBrsD,EAClBooE,EACE/b,aAAuB5wE,EACzBgtF,EACEpc,aAAuBw3B,EACzB/a,EAEAV,GAWX4b,EAAUhgI,UAAU0hI,kBAAoB,SAAUr5B,GAChD,OAAOA,EAAYod,aAUrBua,EAAUhgI,UAAU2hI,cAAgB,SAAUt5B,GAC5C,OAAOA,EAAYgc,SAGrB,IAAI5yH,EAAWuuI,EACfprI,EAAOC,QAAUpD,G,uBCrPjB,IAAIk0E,EAAe,EAAQ,QAoBvBl0E,EAAWk0E,EAAaj0E,OAAO,CACjCC,KAAM,oBAGRiD,EAAOC,QAAUpD,G,uBCxBjB,IAAImwI,EAAa,EAAQ,QAErB1tF,EAAa,EAAQ,QAErBE,EAAU,EAAQ,QAElBC,EAAgBD,EAAQC,cAExBjjD,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KAgCjB,SAAS8gI,EAAO1wH,EAAWzP,EAASyG,GAKlCvG,KAAK0gB,UAAY,SAQjB1gB,KAAKmC,WAAa,CAAC,UAMnBnC,KAAKirG,MAAQ,KAMbjrG,KAAKsN,MAELtN,KAAK2vI,MAAMpgI,EAAWzP,EAASyG,GAM/BvG,KAAK8vB,MAAQvgB,EAGf0wH,EAAOnyH,UAAY,CACjBrO,KAAM,aACNmwI,oBAAoB,EACpB7hI,YAAakyH,EAUb0P,MAAO,SAAUpgI,EAAWzP,EAASyG,GACnC,IAAIwJ,EAAM/P,KAAK0gB,UACXhR,EAAO,IAAIggI,EAAW3/H,EAAKiyC,EAAWe,mBAAmBxzC,GAAY,CAAC,EAAG,GAAIA,EAAUrN,IAAI,QAASqN,EAAUrN,IAAI,aAClH2jB,EAA2B,aAAdnW,EAAKjQ,KACtBiQ,EAAK8gD,OAAS3qC,GAActW,EAAUrN,IAAI,eAC1CwN,EAAKtI,QAAUmI,EAAUrN,IAAI,WAC7BwN,EAAK5I,OAASyI,EAAUrN,IAAI,UAC5BqN,EAAUG,KAAOA,EACjBA,EAAKogB,MAAQvgB,EACbG,EAAKpP,iBAAmBN,KACxBA,KAAKirG,MAAQv7F,GAQfnH,OAAQ,SAAUzI,EAASyG,GACzBzG,EAAQ04C,YAAW,SAAU12C,GAC3B,GAAIA,EAAYxB,mBAAqBN,KAAM,CACzC,IAAIO,EAAOuB,EAAYtB,UACvBrB,EAAKoB,EAAKyJ,aAAahK,KAAK0gB,WAAW,IAAO,SAAU3Q,GACtD/P,KAAKirG,MAAMx8F,MAAM26C,oBAAoB7oD,EAAMwP,KAC1C/P,MACHgiD,EAAWiB,gBAAgBjjD,KAAKirG,MAAMx8F,MAAOzO,KAAKirG,MAAMn7E,UAEzD9vB,OASLi9E,OAAQ,SAAU1tE,EAAWhJ,GAC3BvG,KAAKsN,MAAQ60C,EAAc,CACzB53C,KAAMgF,EAAUrN,IAAI,QACpBsI,IAAK+E,EAAUrN,IAAI,OACnBuI,MAAO8E,EAAUrN,IAAI,SACrBwI,OAAQ6E,EAAUrN,IAAI,UACtBV,MAAO+N,EAAUrN,IAAI,SACrBgK,OAAQqD,EAAUrN,IAAI,WACrB,CACDV,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAGdjsB,KAAK6vI,eAMP7/H,QAAS,WACP,OAAOhQ,KAAKsN,OAMduiI,YAAa,WACX,IAAI7jI,EAAOhM,KAAKsN,MACZoC,EAAO1P,KAAKirG,MACZ92E,EAAezkB,EAAKykB,eACpB0D,EAAS1D,EAAe,CAAC,EAAGnoB,EAAKxK,OAAS,CAAC,EAAGwK,EAAKE,QACnDgE,EAAMR,EAAKrI,QAAU,EAAI,EAC7BqI,EAAKszC,UAAUnrB,EAAO3nB,GAAM2nB,EAAO,EAAI3nB,IAEvClQ,KAAK8vI,qBAAqBpgI,EAAMykB,EAAenoB,EAAKvG,EAAIuG,EAAKtG,IAO/DoqI,qBAAsB,SAAUpgI,EAAMqgI,GACpC,IAAIl9E,EAAanjD,EAAK6V,YAClByqH,EAAYn9E,EAAW,GAAKA,EAAW,GACvC1+B,EAAezkB,EAAKykB,eACxBzkB,EAAKa,cAAgB4jB,EAAe,SAAU9nB,GAC5C,OAAOA,EAAQ0jI,GACb,SAAU1jI,GACZ,OAAO2jI,EAAY3jI,EAAQ0jI,GAE7BrgI,EAAKugI,aAAe97G,EAAe,SAAU9nB,GAC3C,OAAOA,EAAQ0jI,GACb,SAAU1jI,GACZ,OAAO2jI,EAAY3jI,EAAQ0jI,IAS/Bn4C,QAAS,WACP,OAAO53F,KAAKirG,OAQdlzE,YAAa,WACX,OAAO/3B,KAAKirG,OAMdilC,QAAS,WACP,MAAO,CAAClwI,KAAKirG,QAMfklC,eAAgB,WACd,MAAO,CACLC,SAAU,CAACpwI,KAAK43F,aAUpBloC,aAAc,SAAUp4B,GACtB,IAAItrB,EAAOhM,KAAKgQ,UACZN,EAAO1P,KAAK43F,UACZ9wF,EAAS4I,EAAK5I,OAElB,MAAe,eAAXA,EACK4I,EAAKxB,QAAQwB,EAAKugI,aAAa34G,EAAM,MAAQA,EAAM,IAAMtrB,EAAKtG,GAAK4xB,EAAM,IAAMtrB,EAAKtG,EAAIsG,EAAKE,OAE7FwD,EAAKxB,QAAQwB,EAAKugI,aAAa34G,EAAM,MAAQA,EAAM,IAAMtrB,EAAKtG,GAAK4xB,EAAM,IAAMtrB,EAAKtG,EAAIsG,EAAKE,QAQxGmxE,YAAa,SAAU/lD,GACrB,IAAI5nB,EAAO1P,KAAK43F,UAChB,MAAO,CAACloF,EAAKguE,YAAYhuE,EAAKugI,aAAa34G,EAAsB,eAAhB5nB,EAAK5I,OAA0B,EAAI,OAStFiF,YAAa,SAAUN,GACrB,IAAIiE,EAAO1P,KAAK43F,UACZ5rF,EAAOhM,KAAKgQ,UACZmuC,EAAK,GACLjuC,EAAsB,eAAhBR,EAAK5I,OAA0B,EAAI,EAQ7C,OANI2E,aAAesM,QACjBtM,EAAMA,EAAI,IAGZ0yC,EAAGjuC,GAAOR,EAAKa,cAAcb,EAAKc,aAAa/E,IAC/C0yC,EAAG,EAAIjuC,GAAe,IAARA,EAAYlE,EAAKtG,EAAIsG,EAAKE,OAAS,EAAIF,EAAKvG,EAAIuG,EAAKxK,MAAQ,EACpE28C,IAGX,IAAI5+C,EAAW0gI,EACfv9H,EAAOC,QAAUpD,G,uBC3QjB,IAAIL,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KAEbkxI,EAAe,EAAQ,QAEvB5nI,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAEnBqjG,EAAY,EAAQ,QAEpBC,EAAe,EAAQ,QAEvBC,EAAc,EAAQ,QAEtBC,EAAkB,EAAQ,QAqB1BxiG,EAAQhB,IACR1tC,EAAW,CAObwN,KAAM,SAAUw1B,EAASmuG,EAAWC,GAClC,IAAIC,EAAS3iG,EAAMyiG,GAAWE,OAE9B,GAAIA,EACF,OAAOA,EAGT,IAEIvjI,EAFA8iH,EAAeugB,EAAUvgB,cAAgB,GACzCG,EAAUogB,EAAUpgB,QAGxB,IACEjjH,EAAUijH,EAAU+f,EAAa/f,EAASqgB,GAAgB,GAC1D,MAAOhkH,GACP,MAAM,IAAIhW,MAAM,2BAA6BgW,EAAEkkH,SAiBjD,OAdAP,EAAU/tG,EAASl1B,GACnBlO,EAAKkO,GAAS,SAAU6vB,GACtB,IAAI4zG,EAAa5zG,EAAOvwB,KACxB4jI,EAAahuG,EAASrF,GACtBszG,EAAYjuG,EAASrF,GACrBuzG,EAAgBluG,EAASrF,GAGzB,IAAI6zG,EAAc5gB,EAAa2gB,GAE3BC,GACF7zG,EAAO/uB,YAAY4iI,EAAYxmI,KAAMwmI,EAAYvmI,IAAKumI,EAAYvvI,MAAOuvI,EAAY7kI,WAGlF+hC,EAAMyiG,GAAWE,OAAS,CAC/BvjI,QAASA,EACTE,aAActB,EAAgBoB,MAKpC,SAASpB,EAAgBoB,GAGvB,IAFA,IAAIrB,EAEKiC,EAAI,EAAGA,EAAIZ,EAAQpC,OAAQgD,IAAK,CACvC,IAAI+iI,EAAa3jI,EAAQY,GAAGhC,kBAC5BD,EAAOA,GAAQglI,EAAWtpI,QAC1BsE,EAAKyqG,MAAMu6B,GAGb,OAAOhlI,EAGTtJ,EAAOC,QAAUpD,G,uBC/FjB,IAAIg1B,EAAsB,EAAQ,QAoB9B08G,EAA2B,CAAC,YAAa,eACzCC,EAA2B,CAAC,YAAa,gBACzCC,EAAqB,CAAC,YAAa,SACnCC,EAAqB,CAAC,YAAa,UACnC7xI,EAAW,CACbq1B,WAAY,cACZC,KAAMN,IAEN88G,kBAAkB,EAClBv8G,MAAO,SAAUhzB,EAAahC,GAC5B,IAAIS,EAAOuB,EAAYtB,UASvB,GARAD,EAAKghB,UAAU,CACb+vE,aAAc,YACdggD,OAAQC,EAAS,EAAGzvI,GACpB0vI,OAAQD,GAAU,EAAGzvI,GACrB2vI,aAAcC,EAAe,EAAG5vI,GAChC6vI,aAAcD,GAAgB,EAAG5vI,MAG/BhC,EAAQyxD,iBAAiBzvD,GAA7B,CAIA,IAAI8vI,EAAgB9vI,EAAY8zB,gBAAgBC,MAChD,OAAQ+7G,GAAiB,CACvBj8G,SAAUA,GAGZ,SAASA,EAAS9rB,EAAQtJ,GACxB,IAAIK,EAEJ,MAAsC,OAA9BA,EAAYiJ,EAAOmsB,QAAiB,CAC1C,IAAI7U,EAAY5gB,EAAK6gB,aAAaxgB,GAC9Bo2B,EAAOz2B,EAAKygB,cAAcpgB,GAAWo2B,KACzCz2B,EAAKihB,cAAc5gB,EAAW,CAC5BgX,MAAO25H,EAASv6G,EAAM7V,GACtBhW,YAAaumI,EAAe16G,EAAM7V,MAKxC,SAASowH,EAASv6G,EAAMlH,GACtB,OAAOA,EAAM5tB,IAAI80B,EAAO,EAAIm6G,EAAqBC,GAGnD,SAASM,EAAe16G,EAAMlH,GAC5B,OAAOA,EAAM5tB,IAAI80B,EAAO,EAAIi6G,EAA2BC,MAI7DxuI,EAAOC,QAAUpD,G,uBCtEjB,IAAIuD,EAAU,EAAQ,QAElBF,EAAS,EAAQ,QAEjBinD,EAAY,EAAQ,QA0BxB,SAASgoF,EAAYtxI,EAAM2P,GACzBpN,EAAQ6B,MAAMmI,KAAK9M,MACnB,IAAI+4C,EAAU,IAAIj2C,EAAQ49B,QACtBh3B,EAAY,IAAI5G,EAAQy7C,SACxB54C,EAAO,IAAI7C,EAAQyC,KACvBvF,KAAKsF,IAAIyzC,GACT/4C,KAAKsF,IAAIoE,GACT1J,KAAKsF,IAAIK,GAET3F,KAAKs7C,iBAAmB,SAAUC,EAAWC,GAC3B,aAAZA,GACF9xC,EAAU4pC,OAAS5pC,EAAU8kD,YAC7B7oD,EAAK2tC,OAAS3tC,EAAK6oD,cAEnB9kD,EAAU4pC,OAAS5pC,EAAU+kD,aAC7B9oD,EAAK2tC,OAAS3tC,EAAK8oD,eAIvBzuD,KAAKi0C,WAAW1zC,EAAM2P,GAAK,GAG7B,IAAI4hI,EAAmBD,EAAY/jI,UAC/BikI,EAAoB,CAAC,YAAa,WAEtCD,EAAiB79F,WAAa,SAAU1zC,EAAM2P,EAAK69C,GACjD,IAAIhV,EAAU/4C,KAAK8+B,QAAQ,GACvBh9B,EAAcvB,EAAKye,UACnBmC,EAAY5gB,EAAK6gB,aAAalR,GAC9BjN,EAAS1C,EAAKygB,cAAc9Q,GAC5BzO,EAAUlB,EAAK6gB,aAAalR,GAAKhO,IAAI6vI,GACzCtwI,EAAqB,MAAXA,EAAkB,EAAIA,EAEhCs3C,EAAQgD,SAAS,IAEbgS,GACFhV,EAAQoV,SAAS,CACf52C,OAAQtU,EAAOsU,SAEjBwhC,EAAQlY,SAAS,CACfp/B,QAAS,IAEXqB,EAAQk4C,UAAUjC,EAAS,CACzBvzC,MAAO,CACL/D,QAASA,IAEVK,EAAaoO,IAEhBpN,EAAQk8B,YAAY+Z,EAAS,CAC3BvzC,MAAO,CACL/D,QAASA,GAEX+P,MAAO,CACL+F,OAAQtU,EAAOsU,SAEhBzV,EAAaoO,GAIlB,IAAI6vB,EAAiB5e,EAAUF,SAAS,aACpCof,EAAc9/B,EAAKohB,cAAczR,EAAK,SAC1C6oC,EAAQlY,SAASj+B,EAAO6O,SAAS,CAC/B48C,SAAU,QACV38C,KAAM2uB,GACLN,EAAepuB,aAAa,CAAC,cAChConC,EAAQxX,WAAaxB,EAAe9e,SAAS,YAAYtP,eAEzD3R,KAAKuuD,aAAahuD,EAAM2P,GAExBpN,EAAQq/B,cAAcniC,OAGxB8xI,EAAiBvjF,aAAe,SAAUhuD,EAAM2P,GAC9C,IAAIxG,EAAY1J,KAAK8+B,QAAQ,GACzBkvB,EAAYhuD,KAAK8+B,QAAQ,GACzBh9B,EAAcvB,EAAKye,UACnBmC,EAAY5gB,EAAK6gB,aAAalR,GAC9BjN,EAAS1C,EAAKygB,cAAc9Q,GAC5Bw+C,EAAczrD,EAAO9B,MACrBk/B,EAAc9/B,EAAKohB,cAAczR,EAAK,SAC1CpN,EAAQk8B,YAAYt1B,EAAW,CAC7B8H,MAAO,CACL+F,OAAQm3C,EAAYE,YAAcF,EAAYE,aAE/C9sD,EAAaoO,GAChBpN,EAAQk8B,YAAYgvB,EAAW,CAC7BxoD,MAAO,CACLC,EAAGipD,EAAYjpD,EACfC,EAAGgpD,EAAYhpD,IAEhB5D,EAAaoO,GAChB89C,EAAUhuC,KAAK,CACbrP,SAAU+9C,EAAY/9C,SACtB4yB,OAAQ,CAACmrB,EAAYjpD,EAAGipD,EAAYhpD,GACpC0L,GAAI,KAEN,IAAI8uB,EAAa/e,EAAUF,SAAS,SAChCq+B,EAAkBn+B,EAAUF,SAAS,kBACrC6tC,EAAiB3tC,EAAUF,SAAS,aACpC8tC,EAAsB5tC,EAAUF,SAAS,sBACzCof,EAAc9/B,EAAKohB,cAAczR,EAAK,SAC1CpN,EAAQw+B,cAAc0sB,EAAUxoD,MAAOwoD,EAAUzsB,WAAa,GAAIrB,EAAYof,EAAiB,CAC7Fne,aAAc5gC,EAAKye,UACnBwiB,eAAgBtxB,EAChBuxB,YAAalhC,EAAK08C,QAAQ/sC,GAC1BitC,UAAW9c,EACXqB,iBAAkBgtB,EAAYM,QAC7B,CACDnpD,UAAW6oD,EAAY7oD,UACvBD,kBAAmB8oD,EAAYO,gBAEjCjB,EAAU1a,OAAS0a,EAAUS,cAAgBvuB,EAAWh+B,IAAI,QAC5D8rD,EAAUQ,aAAelP,EAAgBp9C,IAAI,QAC7CwH,EAAU4pC,OAAS5pC,EAAU+kD,cAAgBK,EAAe5sD,IAAI,QAChEwH,EAAU8kD,aAAeO,EAAoB7sD,IAAI,QAEjDwH,EAAUm3B,SAAS,CACjBge,OAAQxe,IAEV32B,EAAUm3B,SAASiuB,EAAe7tC,SAAS,aAAa29B,gBACxDl1C,EAAU63B,WAAawtB,EAAoB9tC,SAAS,aAAa29B,gBAGnEh8C,EAAOwxB,SAASy9G,EAAa/uI,EAAQ6B,OACrC,IAAIqtI,EAAanoF,EAAUrqD,OAAO,CAChCC,KAAM,SACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIhG,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MACft6C,EAAQtD,KAAKsD,MACjB/C,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAU4K,GAC/B,IAAI+hI,EAAc,IAAIJ,EAAYtxI,EAAM2P,GACxC3P,EAAKqhC,iBAAiB1xB,EAAK+hI,GAC3B3uI,EAAMgC,IAAI2sI,MACT1pI,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI6Q,EAAW3R,EAAQpE,iBAAiBkF,GACxC6Q,EAASrb,WAAW1zC,EAAMi+C,GAC1Bl7C,EAAMgC,IAAIgqD,GACV/uD,EAAKqhC,iBAAiB4c,EAAQ8Q,MAC7BjtB,QAAO,SAAUnyB,GAClB,IAAIo/C,EAAW3R,EAAQpE,iBAAiBrpC,GACxC5M,EAAM++B,OAAOitB,MACZ5Q,UACH1+C,KAAK49C,MAAQr9C,GAEf8hC,OAAQ,WACNriC,KAAKsD,MAAMC,YACXvD,KAAK49C,MAAQ,MAEfrvB,QAAS,eAEPhvB,EAAWyyI,EACftvI,EAAOC,QAAUpD,G,uBCtLjB,IAAIiJ,EAAmB,EAAQ,QAE3BnJ,EAAc,EAAQ,QAoBtB6yI,EAAc7yI,EAAYG,OAAO,CACnCC,KAAM,eACNG,eAAgB,SAAUC,EAAQC,GAChC,OAAO0I,EAAiBxI,KAAM,CAAC,WAEjCe,cAAe,CACbC,OAAQ,EACRC,EAAG,EAEHy3B,OAAQ,CAAC,MAAO,OAChBpuB,iBAAiB,EACjB07C,OAAQ,MACRlE,WAAY,IACZC,UAAW,GACXyN,WAAW,EAEX9+C,IAAK,EAELD,IAAK,IAEL8T,YAAa,GAEb2gC,SAAU,CAER9jD,MAAM,EACNG,UAAW,CAETqW,MAAO,CAAC,CAAC,GAAK,WAAY,CAAC,GAAK,WAAY,CAAC,EAAG,YAChDpW,MAAO,KAIXykD,UAAW,CAET7kD,MAAM,EAEN6J,OAAQ,GAER1J,UAAW,CACTqW,MAAO,OACPpW,MAAO,EACP/B,KAAM,UAIV0lD,SAAU,CAER/jD,MAAM,EAENmjB,YAAa,EAEbtZ,OAAQ,EAER1J,UAAW,CACTqW,MAAO,OACPpW,MAAO,EACP/B,KAAM,UAGV2lD,UAAW,CACThkD,MAAM,EACNwoD,SAAU,EAEVhyC,MAAO,QAETu4F,QAAS,CACP/uG,MAAM,EACN6J,OAAQ,MACRzJ,MAAO,GAET0J,UAAW,CACT0M,MAAO,QAET0b,MAAO,CACLlyB,MAAM,EAEN+wI,aAAc,CAAC,EAAG,QAElBv6H,MAAO,OACP8R,SAAU,IAEZ0oH,OAAQ,CACNhxI,MAAM,EACN2oB,gBAAiB,gBACjB3e,YAAa,EACbD,YAAa,OACb3J,MAAO,IACP0K,OAAQ,KAER8d,QAAS,CAAC,EAAG,IAEbmoH,aAAc,CAAC,EAAG,OAGlBv6H,MAAO,OACP8R,SAAU,OAIZnqB,EAAW2yI,EACfxvI,EAAOC,QAAUpD,G,oCCnGjB,IAAI8yI,EAEkB,qBAAXzlH,OACTylH,EAAMzlH,OAAOnJ,QAEY,qBAAXsoE,IACZsmD,EAAMtmD,EAAOtoE,SAGE,qBAAR4uH,IACTA,GAAM,GAGR,IAAI5uH,EAAU4uH,EACd1vI,EAAQ8gB,QAAUA,I,6CCrClB,IAAI7gB,EAAS,EAAQ,QAEjB4F,EAAmB,EAAQ,QAE3BnJ,EAAc,EAAQ,QAEtBs+D,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WACrB2hB,EAAY5hB,EAAQ4hB,UAEpB+yD,EAAsB,EAAQ,QAE9B59B,EAAgB,EAAQ,QAExBjpB,EAAkBipB,EAAcjpB,gBAEhCh/E,EAAmB,EAAQ,QAE3B9D,EAAgB,EAAQ,QAExBC,EAA+BD,EAAcC,6BAoB7C2pI,EAAYlzI,EAAYG,OAAO,CACjCC,KAAM,aACNC,aAAc,CAAC,OACfw0D,WAAY,MAMZs+E,cAAc,EAMd5L,YAAa,GACbhnI,eAAgB,SAAUC,GAUxB,IATA,IAAIU,EAAOiI,EAAiBxI,KAAM,CAChCsJ,gBAAiB,CAAC,SAClBC,gBAAiB3G,EAAO4G,MAAMZ,EAA8B5I,QAE1D+J,EAAWxJ,EAAKyJ,aAAa,SAC7ByoI,EAAc7vI,EAAOxD,gBACrBszI,EAAmB,GACnBC,EAAgB,GAEX1kI,EAAI,EAAGqK,EAAM/X,EAAK4hB,QAASlU,EAAIqK,EAAKrK,IAAK,CAChD,IAAItB,EAAOpM,EAAK08C,QAAQhvC,GACxBwkI,EAAYlwI,IAAIoK,GAAM,GACtB+lI,EAAiB7xI,KAAK,CACpB8L,KAAMA,EACNgB,MAAOpN,EAAK2B,IAAI6H,EAAUkE,GAC1BxG,SAAUgkF,EAAgBlrF,EAAM0N,EAAG,cAIvC,IAAI2kI,EAAYnmI,EAAiBM,KAAK/M,KAAK6yI,aAAc7yI,KAAKH,OAAO+M,QAAS5M,KAAKH,OAAO8wI,cAgB1F,OAfA/tI,EAAOzD,KAAKyzI,EAAUvlI,SAAS,SAAU6vB,GACvC,IAAIvwB,EAAOuwB,EAAOvwB,KAEb8lI,EAAYvwI,IAAIyK,KACnB+lI,EAAiB7xI,KAAK,CACpB8L,KAAMA,IAERgmI,EAAc9xI,KAAK8L,OAGvB3M,KAAKw0D,kBAAkBk+E,GAIvBnyI,EAAKuyI,aAAa,GAAIH,GACfpyI,GAOTg+B,gBAAiB,WACf,IAAIyD,EAAWhiC,KAAKH,OAAOmiC,SAC3B,OAAmB,MAAZA,EAAmBhiC,KAAKkjE,gBAAgB1kC,IAAIwD,GAAY,MAEjE6wG,WAAY,WACV,OAAQ7yI,KAAKu+B,mBAAqBv+B,MAAMH,OAAOoH,KAQjDi5E,YAAa,SAAUt/E,GAGrB,IAAIL,EAAOP,KAAKQ,UAChB,OAAOD,EAAK2B,IAAI3B,EAAKyJ,aAAa,SAAUpJ,IAQ9Ck/B,eAAgB,SAAUgxG,GACxB,IAAIvwI,EAAOP,KAAKQ,UAChB,OAAOD,EAAK6gB,aAAa7gB,EAAK6/B,YAAY0wG,KAQ5CryE,cAAe,SAAU79D,GAQvB,IANA,IAAIL,EAAOP,KAAKQ,UACZ2/E,EAAiBZ,EAAUv/E,KAAKkgF,YAAYt/E,IAC5C+L,EAAOpM,EAAK08C,QAAQr8C,GACpBgmI,EAAc5mI,KAAK4mI,YACnBmM,EAAc,GAET9kI,EAAI,EAAGA,EAAI24H,EAAY37H,OAAQgD,IAAK,CAC3C,IAAI+kI,EAAapM,EAAY34H,GAAGglI,aAAa7yG,YAAYzzB,GACrD5C,EAAWxJ,EAAKyJ,aAAa,SAE5B+O,MAAM6tH,EAAY34H,GAAGglI,aAAa/wI,IAAI6H,EAAUipI,KACnDD,EAAYlyI,KAAK+8D,EAAWgpE,EAAY34H,GAAGtB,OAI/C,OAAOomI,EAAYl5H,KAAK,MAAQ,SAAW+jD,EAAWjxD,EAAO,MAAQwzE,IAMvE3mC,mBAAoB,SAAU54C,GAC5B,GAAiB,MAAbA,EAAmB,CACrB,IAAI+L,EAAO3M,KAAKQ,UAAUy8C,QAAQr8C,GAC9B49B,EAAMx+B,KAAKM,iBACX48B,EAASsB,EAAI5vB,UAAUjC,GAC3B,OAAOuwB,GAAUsB,EAAIzyB,YAAYmxB,EAAOxE,UAG5Cq8B,QAAS,SAAU5oD,GACjBnM,KAAKH,OAAOsM,KAAOA,GAErB6oD,UAAW,SAAUt8B,GACnB14B,KAAKH,OAAO64B,OAASA,GAEvB33B,cAAe,CAEbC,OAAQ,EAERC,EAAG,EACHX,iBAAkB,MAElB2G,IAAK,GAMLsD,KAAM,SAENC,IAAK,SAOLiqD,YAAa,IAYby+E,kBAAkB,EAGlBC,oBAAoB,EAMpBz+E,eAAgB,KAEhBh8B,OAAQ,KACRvsB,KAAM,EACNwoD,WAAY,KACZxzD,MAAO,CACLC,MAAM,EACNwW,MAAO,QAGT1M,UAAW,CACTE,YAAa,GACbD,YAAa,OACboxB,UAAW,QAEb76B,SAAU,CACRP,MAAO,CACLC,MAAM,EACNwW,MAAO,gBAET1M,UAAW,CACTqxB,UAAW,wBAGfo0G,aAAc,UAGlB/tI,EAAOyM,MAAMkjI,EAAWD,GACxB,IAAI/yI,EAAWgzI,EACf7vI,EAAOC,QAAUpD,G,uBCpPjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAoBlBswI,EAAsB,CACxBviB,KAAM,OAENwiB,WAAY,aACZC,SAAU,WACVC,KAAM,QAEJC,EAAmB,EACnBC,EAAiB,EAOrB,SAASltC,EAAc/mF,EAAM1d,EAAahC,GACxCgD,EAAQ6B,MAAMmI,KAAK9M,MACnB,IAAI6tD,EAAS,IAAI/qD,EAAQ8+C,OAAO,CAC9BxwC,GAAIoiI,IAEN3lF,EAAO9W,YAAcj1C,EAAYi1C,YACjC,IAAIpxC,EAAO,IAAI7C,EAAQyC,KAAK,CAC1B6L,GAAIqiI,EACJ7hI,OAAQ4N,EAAKyB,SAAS,SAAS/e,IAAI,YAMrC,SAASolG,IACP3hG,EAAK2tC,OAAS3tC,EAAK6oD,YAGrB,SAASi5C,IACP9hG,EAAK2tC,OAAS3tC,EAAK8oD,aATrBzuD,KAAKsF,IAAIuoD,GACT7tD,KAAKsF,IAAIK,GACT3F,KAAKi0C,YAAW,EAAMz0B,EAAM,SAAU1d,EAAahC,GAUnDE,KAAK4G,GAAG,WAAY0gG,GAAY1gG,GAAG,SAAU6gG,GAAU7gG,GAAG,YAAa0gG,GAAY1gG,GAAG,WAAY6gG,GAGpG,IAAIisC,EAAqBntC,EAAcz4F,UAEvC4lI,EAAmBz/F,WAAa,SAAU8Z,EAAavuC,EAAM4F,EAAOtjB,EAAahC,GAC/EE,KAAKwf,KAAOA,EACZA,EAAK/a,MAAQzE,KACb8B,EAAcA,GAAe9B,KAAKi7C,aAClCn7C,EAAUA,GAAWE,KAAK25H,SAC1B,IAAI9rE,EAAS7tD,KAAK8+B,QAAQ,GAC1B+uB,EAAOjtD,UAAY4e,EAAK5e,UACxB,IAAIugB,EAAY3B,EAAKyB,WACjBhe,EAASuc,EAAKuB,YAIdktC,EAAcrrD,EAAOpD,OAAO,GAAIyD,GACpCgrD,EAAY9sD,MAAQ,KACpB,IAAIk/B,EAAcszG,EAAan0H,EAAM1d,EAAahC,GAClD8zI,EAAiBp0H,EAAM1d,EAAau+B,GACpC,IACI76B,EADAskE,EAAc3oD,EAAUF,SAAS,aAAatP,eAGlD,GAAc,WAAVyT,EACF5f,EAAQskE,MACH,CACL,IAAI+pE,EAAa1yH,EAAUF,SAASmE,EAAQ,cAAczT,eAC1DnM,EAAQ5C,EAAOie,MAAMgzH,EAAY/pE,GAGnCtkE,EAAQ5C,EAAO6O,SAAS,CACtB48C,SAAU,QACV38C,KAAMlM,EAAMkM,MAAQ2uB,GACnB76B,GAECuoD,GACFF,EAAOM,SAASF,GAChBJ,EAAOr8C,MAAMqC,EAAI5Q,EAAO4+C,GACxB/+C,EAAQk8B,YAAY6uB,EAAQ,CAC1Br8C,MAAO,CACLqC,EAAG5Q,EAAO4Q,IAEX/R,EAAa0d,EAAK5e,WACrBitD,EAAO9R,SAASv2C,IACe,kBAAfA,EAAMkM,MAAqBlM,EAAMkM,KAAKjS,MAAqC,kBAAtBouD,EAAOroD,MAAMkM,MAAqBm8C,EAAOroD,MAAMkM,KAAKjS,MAGzHqD,EAAQk8B,YAAY6uB,EAAQ,CAC1Br8C,MAAOy8C,GACNnsD,GACH+rD,EAAO9R,SAASv2C,IAEhB1C,EAAQk8B,YAAY6uB,EAAQ,CAC1Br8C,MAAOy8C,EACPzoD,MAAOA,GACN1D,GAGL9B,KAAKuuD,aAAazsD,EAAau+B,EAAajb,GAE5C,IAAIk3B,EAAcn7B,EAAUq7B,WAAW,UAGvC,GAFAF,GAAeuR,EAAO7tC,KAAK,SAAUs8B,GAEjCyR,EAAa,CACf,IAAIs5C,EAAkBvlG,EAAY06C,WAAW,mBAE7Cx8C,KAAKqoG,YAAYx6C,EAAQruC,EAAM1d,EAAaulG,GAG9CrnG,KAAKi7C,aAAen5C,GAAe9B,KAAKi7C,aACxCj7C,KAAK25H,SAAW75H,GAAWE,KAAK25H,SAChC72H,EAAQq/B,cAAcniC,OAGxB0zI,EAAmBpsC,WAAa,SAAUD,GACxC,IAAIV,EAAO3mG,KACXA,KAAKwf,KAAKd,SAASQ,KAAKQ,UAAS,SAAU9L,GACrCA,EAAEnP,QACAkiG,EAAKnnF,OAAS5L,EAChBA,EAAEnP,MAAMwvC,YAAW,EAAOrgC,EAAG,YACpBkgI,EAAkBlgI,EAAG+yF,EAAKnnF,KAAM6nF,GACzCzzF,EAAEnP,MAAMq6B,QAAQ,GAAGxB,QAAQ,aAClB+pE,IAAoB+rC,EAAoBviB,MACjDj9G,EAAEnP,MAAMq6B,QAAQ,GAAGxB,QAAQ,iBAMnCo2G,EAAmBjsC,SAAW,WAC5BznG,KAAKwf,KAAKd,SAASQ,KAAKQ,UAAS,SAAU9L,GACrCA,EAAEnP,OACJmP,EAAEnP,MAAMwvC,YAAW,EAAOrgC,EAAG,cAKnC8/H,EAAmBK,YAAc,WAC/B/zI,KAAKi0C,YAAW,EAAOj0C,KAAKwf,KAAM,cAGpCk0H,EAAmBM,WAAa,WAC9Bh0I,KAAKi0C,YAAW,EAAOj0C,KAAKwf,KAAM,aAGpCk0H,EAAmBnlF,aAAe,SAAUzsD,EAAau+B,EAAajb,GACpE,IAAIjE,EAAYnhB,KAAKwf,KAAKyB,WACtBsrD,EAAcprD,EAAUF,SAAS,SACjCif,EAAuB,WAAV9a,GAAgC,aAAVA,EAAuBmnD,EAAcprD,EAAUF,SAASmE,EAAQ,UACnGk6B,EAAkBn+B,EAAUF,SAAS,kBACrCtb,EAAO/C,EAAO0B,SAASxC,EAAY8yD,kBAAkB50D,KAAKwf,KAAK5e,UAAWwkB,EAAO,KAAM,KAAM,SAAUplB,KAAKwf,KAAK7S,OAExF,IAAzBsnI,EAAa,UACftuI,EAAO,IAGT,IAAI1C,EAASjD,KAAKwf,KAAKuB,YACnBmzH,EAAgBh0G,EAAWh+B,IAAI,YAEd,MAAjBgyI,IACFA,EAAgB3nE,EAAYrqE,IAAI,aAGlCgyI,EAAgBA,EAAgB,IAAMroI,KAAK+E,GAC3C,IAAI4hD,EAAQvvD,EAAO8+C,SAAW9+C,EAAO6+C,WAEhB,MAAjBoyF,GAAyBroI,KAAKC,IAAI0mD,GAAS0hF,IAE7CvuI,EAAO,IAGT,IAAIxE,EAAQnB,KAAK8+B,QAAQ,GACzBh8B,EAAQw+B,cAAcngC,EAAMqE,MAAOrE,EAAMogC,YAAc,GAAIgrC,EAAajtB,EAAiB,CACvF7d,YAAavB,EAAWsc,WAAW,QAAU72C,EAAO,KACpDw3C,UAAW9c,EACXqB,gBAAgB,IAElB,IAGI7tB,EAHA85C,GAAY1qD,EAAO6+C,WAAa7+C,EAAO8+C,UAAY,EACnD7vC,EAAKrG,KAAK04C,IAAIoJ,GACdx7C,EAAKtG,KAAKw4C,IAAIsJ,GAEdgzB,EAAgBszD,EAAa,YAC7BE,EAAeF,EAAa,aAAe,EAC3CpuI,EAAYouI,EAAa,SAEP,YAAlBtzD,GACF9sE,EAAI5Q,EAAO4Q,EAAIsgI,EACftuI,EAAY8nD,EAAW9hD,KAAK+E,GAAK,EAAI,QAAU,QAE1C/K,GAA2B,WAAdA,EAGO,SAAdA,GACTgO,EAAI5Q,EAAO4+C,GAAKsyF,EAEZxmF,EAAW9hD,KAAK+E,GAAK,IACvB/K,EAAY,UAES,UAAdA,IACTgO,EAAI5Q,EAAO4Q,EAAIsgI,EAEXxmF,EAAW9hD,KAAK+E,GAAK,IACvB/K,EAAY,UAZdgO,GAAK5Q,EAAO4Q,EAAI5Q,EAAO4+C,IAAM,EAC7Bh8C,EAAY,UAgBhB1E,EAAM6e,KAAK,QAAS,CAClBra,KAAMA,EACNE,UAAWA,EACXD,kBAAmBquI,EAAa,kBAAoB,SACpDxyI,QAASwyI,EAAa,aAExB,IAAIxzD,EAAQ5sE,EAAI3B,EAAKjP,EAAOm7C,GACxBsiC,EAAQ7sE,EAAI1B,EAAKlP,EAAOo7C,GAC5Bl9C,EAAM6e,KAAK,WAAY,CAACygE,EAAOC,IAC/B,IAAI0zD,EAAaH,EAAa,UAC1B7uG,EAAS,EAsBb,SAAS6uG,EAAatnI,GACpB,IAAI0nI,EAAYn0G,EAAWh+B,IAAIyK,GAE/B,OAAiB,MAAb0nI,EACK9nE,EAAYrqE,IAAIyK,GAEhB0nI,EA1BQ,WAAfD,GACFhvG,GAAUuoB,EAENvoB,GAAUv5B,KAAK+E,GAAK,IACtBw0B,GAAUv5B,KAAK+E,KAEO,eAAfwjI,GACThvG,EAASv5B,KAAK+E,GAAK,EAAI+8C,EAEnBvoB,EAASv5B,KAAK+E,GAAK,EACrBw0B,GAAUv5B,KAAK+E,GACNw0B,GAAUv5B,KAAK+E,GAAK,IAC7Bw0B,GAAUv5B,KAAK+E,KAEc,kBAAfwjI,IAChBhvG,EAASgvG,EAAavoI,KAAK+E,GAAK,KAGlCzP,EAAM6e,KAAK,WAAYolB,IAazBsuG,EAAmBrrC,YAAc,SAAUx6C,EAAQruC,EAAM1d,EAAaulG,GACpEx5C,EAAOhxB,IAAI,aAAaA,IAAI,YAAYA,IAAI,YAAYA,IAAI,UAC5D,IAAI8pE,EAAO3mG,KAEPsnG,EAAa,WACfX,EAAKW,WAAWD,IAGdI,EAAW,WACbd,EAAKc,YAGHusC,EAAa,WACfrtC,EAAKqtC,cAGHD,EAAc,WAChBptC,EAAKotC,eAGHjyI,EAAYs7C,sBACdyQ,EAAOjnD,GAAG,YAAa0gG,GAAY1gG,GAAG,WAAY6gG,GAAU7gG,GAAG,WAAY0gG,GAAY1gG,GAAG,SAAU6gG,GAAU7gG,GAAG,WAAYotI,GAAYptI,GAAG,YAAamtI,IAI7JnxI,EAAOwxB,SAASmyE,EAAezjG,EAAQ6B,OACvC,IAAIpF,EAAWgnG,EASf,SAASotC,EAAan0H,EAAM1d,EAAahC,GAEvC,IAAIugC,EAAc7gB,EAAKiC,UAAU,SAC7B6yH,EAAiB90H,EAAKiC,UAAU,cAE/B6yH,GAA4C,IAA1BA,EAAerpI,SAEpCo1B,EAAc,MAIhB,IAAIzoB,EAAQ4H,EAAKyB,SAAS,aAAa/e,IAAI,SAE3C,GAAI0V,EACF,OAAOA,EACF,GAAIyoB,EAET,OAAOA,EACF,GAAmB,IAAf7gB,EAAKb,MAEd,OAAO7e,EAAQD,OAAO+X,MAAM,GAG5B,IAAI3M,EAASnL,EAAQD,OAAO+X,MAAM3M,OAIpC,OAHE2M,EAAQ9X,EAAQD,OAAO+X,MAAM28H,EAAU/0H,GAAQvU,GAG1C2M,EAUT,SAAS28H,EAAU/0H,GACjB,IAAIklD,EAAWllD,EAEf,MAAOklD,EAAS/lD,MAAQ,EACtB+lD,EAAWA,EAAS9lD,WAGtB,IAAIgoF,EAAcpnF,EAAKc,eAAe,GACtC,OAAO1d,EAAOiwB,QAAQ+zE,EAAY/nF,SAAU6lD,GAG9C,SAASovE,EAAkBt0H,EAAMg1H,EAAYC,GAC3C,OAAIA,IAAWrB,EAAoBviB,OAExB4jB,IAAWrB,EAAoBG,KACjC/zH,IAASg1H,EACPC,IAAWrB,EAAoBE,SACjC9zH,IAASg1H,GAAch1H,EAAKoC,aAAa4yH,GAEzCh1H,IAASg1H,GAAch1H,EAAKsC,eAAe0yH,IAKtD,SAASZ,EAAiBp0H,EAAM1d,EAAa8V,GAC3C,IAAIrX,EAAOuB,EAAYtB,UACvBD,EAAKihB,cAAchC,EAAK5e,UAAW,QAASgX,GAG9ClV,EAAOC,QAAUpD,G,uBCnXjB,IAAIupB,EAAM,EAAQ,QAEdg+D,EAAO,EAAQ,QAEf4tD,EAAiB,EAAQ,QAsBzBC,EAAkB7tD,EAAK7B,QAAQqC,YAEnC,SAASstD,EAAY9kH,GACnB9vB,KAAK8vB,MAAQA,EAGf8kH,EAAY7zI,cAAgB,CAC1BK,MAAM,EACNonC,KAAM,mFACNlV,MAAOqhH,EAAgBrhH,MACvB7zB,KAAM,MAGNsnH,yBAA0B,OAC1Bp6G,KAAM,GACNi5G,kBAAmB,CAAC,WACpBN,WAAY,EACZx+B,KAAM6tD,EAAgB7tD,KAAKx/E,SAE7BstI,EAAY9mI,UAAU+mI,UAAY/rH,EAAImB,gBACtC,IAAI6qH,EAAQF,EAAY9mI,UAExBgnI,EAAMlwI,QAAU,SAAU9E,EAASyG,GACjC,IAAIupB,EAAQ9vB,KAAK8vB,MACbwD,EAAQxD,EAAM5tB,IAAI,SAAWpC,EAAQoC,IAAI,iBAAmB,UAC5DgkH,EAA0C,QAAlC3/G,EAAIslB,QAAQjB,QAAQo7F,UAC5BvmH,EAAOymH,EAAQ,MAAQp2F,EAAM5tB,IAAI,QAAQ,IAAS,MAClD4zF,EAAMvvF,EAAI0/G,oBAAoB,CAChCxmH,KAAMA,EACNsqB,gBAAiB+F,EAAM5tB,IAAI,mBAAmB,IAASpC,EAAQoC,IAAI,oBAAsB,OACzF6kH,yBAA0Bj3F,EAAM5tB,IAAI,4BACpC0jH,kBAAmB91F,EAAM5tB,IAAI,qBAC7BojH,WAAYx1F,EAAM5tB,IAAI,gBAGxB,GAA0B,oBAAf6yI,YAA8BjsH,EAAIw6C,QAAQY,IAAOp7C,EAAIw6C,QAAQ/7C,KAapE,GAAIqF,OAAOg3C,UAAUoxE,iBAAkB,CACrC,IAAIC,EAAOC,KAAKp/C,EAAIxC,MAAM,KAAK,IAC3B1/E,EAAIqhI,EAAKhqI,OACTkqI,EAAQ,IAAIC,WAAWxhI,GAE3B,MAAOA,IACLuhI,EAAMvhI,GAAKqhI,EAAKI,WAAWzhI,GAG7B,IAAI0hI,EAAO,IAAIC,KAAK,CAACJ,IACrBvoH,OAAOg3C,UAAUoxE,iBAAiBM,EAAMhiH,EAAQ,IAAM7zB,OACjD,CACL,IAAIqnF,EAAOh3D,EAAM5tB,IAAI,QACjBk+E,EAAO,qCAAiD0V,EAAM,qCAAuChP,GAAQA,EAAK,IAAM,IAAM,cAC9H0uD,EAAM5oH,OAAO6oH,OACjBD,EAAIxqH,SAAS0qH,MAAMt1D,OA5BqD,CAC5E,IAAIu1D,EAAK3qH,SAASU,cAAc,KAChCiqH,EAAGC,SAAWtiH,EAAQ,IAAM7zB,EAC5Bk2I,EAAGvjI,OAAS,SACZujI,EAAGE,KAAO//C,EACV,IAAIggD,EAAM,IAAIf,WAAW,QAAS,CAChCjvB,KAAMl5F,OACNmpH,SAAS,EACTC,YAAY,IAEdL,EAAGM,cAAcH,KAuBrBpB,EAAextF,SAAS,cAAe0tF,GACvC,IAAIr1I,EAAWq1I,EACflyI,EAAOC,QAAUpD,G,uBChGjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBqF,EAAM,EAAQ,QAEd60C,EAAU,EAAQ,QAElBuC,EAAavC,EAAQuC,WACrBtC,EAAaD,EAAQC,WACrB2hB,EAAY5hB,EAAQ4hB,UACpBo1B,EAAmBh3C,EAAQg3C,iBAE3Bv7D,EAAY,EAAQ,QAEpBnmC,EAAiB,EAAQ,QAEzBijI,EAAoB,EAAQ,QAE5B52D,EAAkB,EAAQ,QAE1Bp9B,EAAU,EAAQ,QAElB4zB,EAAkB5zB,EAAQ4zB,gBAC1BqgE,EAAmBj0F,EAAQi0F,iBAE3BC,EAAQ,EAAQ,QAEhBC,EAAaD,EAAMC,WAEnB1tI,EAAgB,EAAQ,QAExB2lC,EAAgB3lC,EAAc2lC,cAC9BruC,EAAY0I,EAAc1I,UAE1By0G,EAAgB,EAAQ,QAExBppB,EAAmBopB,EAAcppB,iBAoBjCr9C,EAAQmL,EAAUnM,YAClB5tC,EAAc4T,EAAezT,OAAO,CACtCC,KAAM,kBAKNs3C,YAAa,EAEbz2C,iBAAkB,KAMlBS,cAAe,KAOfoI,qBAAsB,KAKtBxJ,sBAAuB,kBAKvB22I,4BAA6B,wBAQ7BpiF,WAAY,KACZlrD,KAAM,SAAUnJ,EAAQq/C,EAAap/C,EAASy2I,GAK5Cv2I,KAAK+2C,YAAc/2C,KAAK+hC,eACxB/hC,KAAKw2I,SAAWH,EAAW,CACzBl0H,MAAOs0H,EACP3hH,MAAO4hH,IAET12I,KAAKw2I,SAAS52H,QAAU,CACtBkQ,MAAO9vB,MAETA,KAAKy/E,qBAAqB5/E,EAAQC,GAClCwuC,EAActuC,MACd,IAAIO,EAAOP,KAAKJ,eAAeC,EAAQC,GACvC62I,EAASp2I,EAAMP,MACfA,KAAKw2I,SAAS52H,QAAQrf,KAAOA,EAM7B0tC,EAAMjuC,MAAM42I,oBAAsBr2I,EAWlCs2I,EAAe72I,OAQjBy/E,qBAAsB,SAAU5/E,EAAQC,GACtC,IAAIo0D,EAAal0D,KAAKk0D,WAClB4iF,EAAsB5iF,EAAa4hB,EAAgBj2E,GAAU,GAK7Dk3I,EAAe/2I,KAAKq+B,QAEpBprB,EAAe+jI,SAASD,KAC1BA,GAAgB,UAGlBn0I,EAAOie,MAAMhhB,EAAQC,EAAQm3I,WAAW/0I,IAAIlC,KAAKq+B,UACjDz7B,EAAOie,MAAMhhB,EAAQG,KAAKk3I,oBAE1B99F,EAAU1wC,gBAAgB7I,EAAQ,QAAS,CAAC,SAC5CG,KAAKm3I,kBAAkBt3I,EAAOU,MAE1B2zD,GACFiiF,EAAiBt2I,EAAQi3I,EAAqB5iF,IAGlD4O,YAAa,SAAUs0E,EAAiBt3I,GAEtCs3I,EAAkBx0I,EAAOie,MAAM7gB,KAAKH,OAAQu3I,GAAiB,GAC7Dp3I,KAAKm3I,kBAAkBC,EAAgB72I,MACvC,IAAI2zD,EAAal0D,KAAKk0D,WAElBA,GACFiiF,EAAiBn2I,KAAKH,OAAQu3I,EAAiBljF,GAGjD5lB,EAActuC,MACd,IAAIO,EAAOP,KAAKJ,eAAew3I,EAAiBt3I,GAChD62I,EAASp2I,EAAMP,MACfA,KAAKw2I,SAASlkI,QACdtS,KAAKw2I,SAAS52H,QAAQrf,KAAOA,EAC7B0tC,EAAMjuC,MAAM42I,oBAAsBr2I,EAClCs2I,EAAe72I,OAEjBm3I,kBAAmB,SAAU52I,GAI3B,GAAIA,IAASqC,EAAOuqC,aAAa5sC,GAG/B,IAFA,IAAIsc,EAAQ,CAAC,QAEJ5O,EAAI,EAAGA,EAAI1N,EAAK0K,OAAQgD,IAC3B1N,EAAK0N,IAAM1N,EAAK0N,GAAG9M,OACrBi4C,EAAU1wC,gBAAgBnI,EAAK0N,GAAI,QAAS4O,IAUpDjd,eAAgB,aAOhBmqF,WAAY,SAAUlgF,GAIpB,IAAItJ,EAAOP,KAAKoJ,aAChB7I,EAAKwpF,WAAWlgF,EAAOtJ,OAWzBC,QAAS,SAAUw8F,GACjB,IAAIq6C,EAAOC,EAAet3I,MAE1B,GAAIq3I,EAAM,CACR,IAAI92I,EAAO82I,EAAKz3H,QAAQrf,KACxB,OAAmB,MAAZy8F,EAAmBz8F,EAAOA,EAAK68F,cAAcJ,GAMpD,OAAO/uD,EAAMjuC,MAAMO,MAOvBg7D,QAAS,SAAUh7D,GACjB,IAAI82I,EAAOC,EAAet3I,MAE1B,GAAIq3I,EAAM,CACR,IAAIz3H,EAAUy3H,EAAKz3H,QAEfA,EAAQrf,OAASA,GAAQ82I,EAAKpoD,iBAChCooD,EAAKE,aAAah3I,EAAK4hB,SAGzBvC,EAAQ43H,WAAaj3I,EASjB82I,IAASr3I,KAAKw2I,WAChB52H,EAAQrf,KAAOA,GAInB0tC,EAAMjuC,MAAMO,KAAOA,GAOrBN,UAAW,WACT,OAAOA,EAAUD,OAOnBoJ,WAAY,WACV,OAAO6kC,EAAMjuC,MAAM42I,qBASrB7+G,YAAa,WACX,IAAI13B,EAAWL,KAAKM,iBACpB,OAAOD,GAAYA,EAAS03B,aAAe13B,EAAS03B,eAiBtD0mC,cAAe,SAAU79D,EAAW62I,EAAgBz6C,EAAUkY,GAC5D,IAAI1+B,EAASx2E,KACbk1G,EAAaA,GAAc,OAC3B,IAAIumB,EAAyB,SAAfvmB,EAAwB,QAAU,KAC5CwiC,EAA4B,aAAfxiC,EACbwmB,EAAU,GACVic,EAAW,EAEf,SAASC,EAAiBjqI,GAGxB,IAAIkqI,EAAYj1I,EAAOyxD,OAAO1mD,GAAO,SAAUkqI,EAAWpsI,EAAKyE,GAC7D,IAAIggF,EAAU3vF,EAAKirF,iBAAiBt7E,GACpC,OAAO2nI,GAAa3nD,IAA+B,IAApBA,EAAQvmC,SAA4C,MAAvBumC,EAAQ5gD,eACnE,GACC3oB,EAAS,GAMb,SAASmxH,EAAYrsI,EAAKsE,GACxB,IAAIq7E,EAAU7qF,EAAKirF,iBAAiBz7E,GAEpC,GAAKq7E,IAAyC,IAA9BA,EAAQsF,UAAU/mC,QAAlC,CAIA,IAAI/X,EAAUw5C,EAAQ3rF,KAClBs4I,EAAW,MAAQvhE,EAAOz/B,YAAc,KAAO4gG,EAC/CK,EAAUrjC,EAAiB,CAC7B/8F,MAAOA,EACPnY,KAAM,UACNy1G,WAAYA,EACZyiC,SAAUI,IAERE,EAAgC,kBAAZD,EAAuBA,EAAUA,EAAQnqH,QAC7DqqH,GAAUL,EAAYI,EAAar6E,EAAWwtB,EAAQ97C,aAAe,KAAO,KAAO,IACvFsuB,EAAuB,YAAZhsB,EAAwBnmC,EAAM,GAAiB,SAAZmmC,EAAqB6lG,EAAiB,GAAKv3E,EAAW,sBAAuBz0D,GAAO8zE,EAAU9zE,IAC5IysI,GAAUvxH,EAAO9lB,KAAKq3I,GAElBR,IACFhc,EAAQqc,GAAYngI,IAClB+/H,IA3BNQ,EAAYltI,OAASrI,EAAOzD,KAAKg5I,GAAa,SAAUpoI,GACtD+nI,EAAYxsD,EAAiB/qF,EAAMK,EAAWmP,GAAMA,MAEpDnN,EAAOzD,KAAKwO,EAAOmqI,GA4BrB,IAAIrc,EAAUoc,EAAYH,EAAa,KAAO,QAAU,GACpD7pH,EAAU4tG,EAAU90G,EAAO9M,KAAK4hH,GAAW,MAC/C,MAAO,CACLvmB,WAAYA,EACZrnF,QAASA,EACTroB,MAAOk2H,GAIX,SAAS0c,EAAkB3sI,GAEzB,MAAO,CACLypG,WAAYA,EACZrnF,QAAS+vC,EAAW2hB,EAAU9zE,IAC9BjG,MAAOk2H,GAIX,IAAIn7H,EAAOP,KAAKQ,UACZ23I,EAAc53I,EAAKyJ,aAAa,oBAAoB,GACpDquI,EAAgBF,EAAYltI,OAC5B0C,EAAQ3N,KAAKkgF,YAAYt/E,GACzB03I,EAAa11I,EAAOogB,QAAQrV,GAC5BiK,EAAQrX,EAAKohB,cAAc/gB,EAAW,SAEtCgC,EAAOqjB,SAASrO,IAAUA,EAAM61E,aAClC71E,GAASA,EAAM61E,WAAW,IAAM,IAAI71E,OAGtCA,EAAQA,GAAS,cAEjB,IAAIuoE,EAAiBk4D,EAAgB,GAAKC,IAAeD,EAAgBT,EAAiBjqI,GAAyByqI,EAAhBC,EAAkC/sD,EAAiB/qF,EAAMK,EAAWu3I,EAAY,IAAyBG,EAAa3qI,EAAM,GAAKA,GAChOkgB,EAAUsyD,EAAetyD,QACzBkqH,EAAWvhE,EAAOz/B,YAAc,KAAO4gG,EACvCY,EAAU5jC,EAAiB,CAC7B/8F,MAAOA,EACPnY,KAAM,OACNy1G,WAAYA,EACZyiC,SAAUI,IAEZrc,EAAQqc,GAAYngI,IAClB+/H,EACF,IAAIhrI,EAAOpM,EAAK08C,QAAQr8C,GACpBgwC,EAAa5wC,KAAK2M,KAEjBysC,EAAUo/F,gBAAgBx4I,QAC7B4wC,EAAa,IAGfA,EAAaA,EAAagtB,EAAWhtB,IAAgB6mG,EAA2B,KAAVhc,GAAkB,GACxF,IAAI5E,EAA8B,kBAAZ0hB,EAAuBA,EAAUA,EAAQ1qH,QAC3DuyD,EAAQq3D,EAAgG5gB,EAAWjmF,EAAa/iB,EAAvG+iB,EAAaimF,GAAYlqH,EAAOixD,EAAWjxD,GAAQ,KAAOkhB,EAAUA,GACjG,MAAO,CACLuyD,KAAMA,EACNs7C,QAASA,IAObt+E,mBAAoB,WAClB,GAAIt0B,EAAItJ,KACN,OAAO,EAGT,IAAIixD,EAAmBzwE,KAAKw8C,WAAW,aAQvC,OANIi0B,GACEzwE,KAAKQ,UAAU2hB,QAAUniB,KAAKw8C,WAAW,wBAC3Ci0B,GAAmB,GAIhBA,GAETm3C,YAAa,WACX5nH,KAAKw2I,SAASlkI,SAEhBi0E,oBAAqB,SAAU55E,EAAM4hF,EAAOkqD,GAC1C,IAAI34I,EAAUE,KAAKF,QAEf8X,EAAQs+H,EAAkB3vD,oBAAoBz5E,KAAK9M,KAAM2M,EAAM4hF,EAAOkqD,GAM1E,OAJK7gI,IACHA,EAAQ9X,EAAQymF,oBAAoB55E,EAAM4hF,EAAOkqD,IAG5C7gI,GAOT8gI,kBAAmB,SAAUvoD,GAC3B,OAAOnwF,KAAKoJ,aAAaY,aAAammF,GAAU,IAOlD1pC,eAAgB,WACd,OAAOzmD,KAAKkC,IAAI,gBAOlBwkD,wBAAyB,WACvB,OAAO1mD,KAAKkC,IAAI,yBAWlBy2I,mBAAoB,KAQpBn/F,mBAAoB,KAKpBo/F,SAAU,KAOV7hC,mBAAoB,KAOpBnhF,gBAAiB,OAUnB,SAASihH,EAAe/0I,GAGtB,IAAI6K,EAAO7K,EAAY6K,KAElBysC,EAAUo/F,gBAAgB12I,KAC7BA,EAAY6K,KAAOksI,EAAkB/2I,IAAgB6K,GAIzD,SAASksI,EAAkB/2I,GACzB,IAAIvB,EAAOuB,EAAYsH,aACnB66H,EAAW1jI,EAAKyJ,aAAa,cAAc,GAC3C8uI,EAAU,GAKd,OAJAl2I,EAAOzD,KAAK8kI,GAAU,SAAU8U,GAC9B,IAAI3tD,EAAU7qF,EAAKirF,iBAAiButD,GACpC3tD,EAAQ97C,aAAewpG,EAAQj4I,KAAKuqF,EAAQ97C,gBAEvCwpG,EAAQj/H,KAAK,KAGtB,SAAS48H,EAAc72H,GACrB,OAAOA,EAAQkQ,MAAM1mB,aAAa+Y,QAGpC,SAASu0H,EAAc92H,GACrB,IAAI9d,EAAc8d,EAAQkQ,MAE1B,OADAhuB,EAAYy5D,QAAQz5D,EAAYsH,aAAa+zF,gBACtC67C,EAGT,SAASA,EAAiB9vE,EAAOtpD,GAE3BA,EAAQ43H,YAActuE,EAAMmR,IAAMz6D,EAAQ43H,WAAWr1H,SACvDvC,EAAQkQ,MAAM1mB,aAAa+zF,aAAav9E,EAAQ43H,YAKpD,SAASb,EAASp2I,EAAMuB,GACtBc,EAAOzD,KAAKoB,EAAKu8F,mBAAmB,SAAUrvF,GAC5ClN,EAAK09D,WAAWxwD,EAAY7K,EAAO4G,MAAMyvI,EAAkBn3I,OAI/D,SAASm3I,EAAiBn3I,GACxB,IAAIu1I,EAAOC,EAAex1I,GAEtBu1I,GAEFA,EAAKE,aAAav3I,KAAKmiB,SAI3B,SAASm1H,EAAex1I,GACtB,IAAIkiH,GAAaliH,EAAYhC,SAAW,IAAIkkH,UACxCk1B,EAAWl1B,GAAaA,EAAUm1B,YAAYr3I,EAAYmG,KAE9D,GAAIixI,EAAU,CAGZ,IAAI7B,EAAO6B,EAASE,YAEpB,GAAI/B,EAAM,CACR,IAAIgC,EAAehC,EAAKgC,aAEpBA,IACFhC,EAAOgC,EAAan3I,IAAIJ,EAAYmG,MAIxC,OAAOovI,GA/EXz0I,EAAOyM,MAAMhQ,EAAaigF,GAC1B18E,EAAOyM,MAAMhQ,EAAa62I,GAkF1B,IAAI32I,EAAWF,EACfqD,EAAOC,QAAUpD,G,uBCtmBjB,IAAI+5I,EAAe,EAAQ,QAEvBC,EAAe,EAAQ,QAE3B,SAAS9tF,EAAUhnB,EAAKjzB,EAAOo6C,GAC7B,IAAIr0C,EAAS/F,EAAM+F,OACf3V,EAAS4P,EAAM5P,OAEnB,GAAI2V,GAAUA,EAAOtM,QAAU,EAAG,CAChC,GAAIrJ,GAAqB,WAAXA,EAAqB,CACjC,IAAI43I,EAAgBD,EAAahiI,EAAQ3V,EAAQgqD,EAAWp6C,EAAM6wE,kBAClE59C,EAAItW,OAAO5W,EAAO,GAAG,GAAIA,EAAO,GAAG,IAGnC,IAFA,IAAIe,EAAMf,EAAOtM,OAERgD,EAAI,EAAGA,GAAK29C,EAAYtzC,EAAMA,EAAM,GAAIrK,IAAK,CACpD,IAAIimC,EAAMslG,EAAkB,EAAJvrI,GACpBwrI,EAAMD,EAAkB,EAAJvrI,EAAQ,GAC5BwJ,EAAIF,GAAQtJ,EAAI,GAAKqK,GACzBmsB,EAAI01B,cAAcjmB,EAAI,GAAIA,EAAI,GAAIulG,EAAI,GAAIA,EAAI,GAAIhiI,EAAE,GAAIA,EAAE,SAEvD,CACU,WAAX7V,IACF2V,EAAS+hI,EAAa/hI,EAAQq0C,IAGhCnnB,EAAItW,OAAO5W,EAAO,GAAG,GAAIA,EAAO,GAAG,IAE1BtJ,EAAI,EAAb,IAAK,IAAWmoD,EAAI7+C,EAAOtM,OAAQgD,EAAImoD,EAAGnoD,IACxCw2B,EAAIknB,OAAOp0C,EAAOtJ,GAAG,GAAIsJ,EAAOtJ,GAAG,IAIvC29C,GAAannB,EAAImnB,aAIrBjpD,EAAQ8oD,UAAYA,G,uBChBpB,IAAI7oD,EAAS,EAAQ,QAEjBmmB,EAAa,EAAQ,QAoBrB2wH,EAAY,CAAC,IAAK,IAAK,IAAK,SAAU,QAAS,UAE/CC,EAAS,CAAC,cAAe,QAAS,cAMtC,SAASC,EAAiBC,GACxB,OAAOj3I,EAAOiwB,QAAQ8mH,EAAQE,IAAc,EAY9C,SAASC,EAAetxH,EAAOkH,GAC7BlH,EAAQA,EAAMlhB,QACd,IAAIyyI,EAAen3I,EAAOqE,IAAIuhB,EAAOO,EAAWixH,cAChDtqH,GAASA,GAAS,IAAIpoB,QACtB,IAAI2yI,EAAer3I,EAAOqE,IAAIyoB,EAAO3G,EAAWixH,cAChD,OAAO,SAAU/8H,EAAU2C,GACzBhd,EAAOzD,KAAKqpB,GAAO,SAAU7b,EAAMxF,GAMjC,IALA,IAAI+yI,EAAU,CACZvtI,KAAMA,EACNwtI,QAASJ,EAAa5yI,IAGfqR,EAAI,EAAGA,EAAIkX,EAAMzkB,OAAQuN,IAChC0hI,EAAQxqH,EAAMlX,IAAM7L,EAAOstI,EAAazhI,GAG1CyE,EAASnQ,KAAK8S,EAASs6H,OAoB7B,IAAI5iC,EAAcwiC,EAAeJ,EAAW,CAAC,YAAa,OAAQ,QAAS,OAa3E,SAASU,EAAwBC,EAAaC,EAAiBC,GAC7D,OAAO,SAAUC,GACf,IAcIC,EAdA9zH,EAAS,CACXzE,MAAO,GACPilC,QAAS,IAOX,GAJAmzF,GAAgB,SAAUI,GACxB/zH,EAAOwgC,QAAQuzF,EAAS/tI,MAAQ,OAG7B6tI,EACH,OAAO7zH,EAGTg0H,EAAOH,EAAY7zH,GAGnB,GACE8zH,GAAa,EACbJ,EAAYO,SACLH,GAET,SAASG,EAAkBp7H,IACpBq7H,EAAer7H,EAAMmH,IAAWm0H,EAASt7H,EAAMmH,KAClDg0H,EAAOn7H,EAAMmH,GACb8zH,GAAa,GAIjB,OAAO9zH,GAGT,SAASk0H,EAAer7H,EAAMmH,GAC5B,OAAO/jB,EAAOiwB,QAAQlM,EAAOzE,MAAO1C,IAAS,EAG/C,SAASs7H,EAASt7H,EAAMmH,GACtB,IAAIo0H,GAAU,EAMd,OALAT,GAAgB,SAAUI,GACxB93I,EAAOzD,KAAKo7I,EAAa/6H,EAAMk7H,IAAa,IAAI,SAAUM,GACxDr0H,EAAOwgC,QAAQuzF,EAAS/tI,MAAMquI,KAAYD,GAAU,SAGjDA,EAGT,SAASJ,EAAOn7H,EAAMmH,GACpBA,EAAOzE,MAAMrhB,KAAK2e,GAClB86H,GAAgB,SAAUI,GACxB93I,EAAOzD,KAAKo7I,EAAa/6H,EAAMk7H,IAAa,IAAI,SAAUM,GACxDr0H,EAAOwgC,QAAQuzF,EAAS/tI,MAAMquI,IAAU,SAMhDr4I,EAAQi3I,iBAAmBA,EAC3Bj3I,EAAQm3I,eAAiBA,EACzBn3I,EAAQ20G,YAAcA,EACtB30G,EAAQy3I,wBAA0BA,G,uBCxJlC,IAAIx3I,EAAS,EAAQ,QAEjBq8D,EAAa,EAAQ,QAoBzB,SAAS1/D,EAASO,EAASyG,GACzBzG,EAAQumC,iBAAiB,cAAc,SAAUvkC,GAC/C,IAAIvB,EAAOuB,EAAYtB,UACnBioF,EAAS3mF,EAAYxB,iBACrBu9D,EAAa,GAEb7xD,EAAOy8E,EAAOz4E,UAClB6tD,EAAW7xD,KAAOA,EAClB,IAAIi5C,EAAcnjD,EAAYI,IAAI,eAC9BwN,EAAO+4E,EAAOmP,UAGlB,GAFA/5B,EAAW5Y,YAAcA,EAEL,eAAhBv1C,EAAK5I,OAAyB,CAChCm+C,EAAY,GAAKga,EAAWzqC,aAAaywB,EAAY,GAAIj5C,EAAKE,QAC9D+4C,EAAY,GAAKga,EAAWzqC,aAAaywB,EAAY,GAAIj5C,EAAKE,QAC9D,IAAIA,EAASF,EAAKE,OAAS+4C,EAAY,GAAKA,EAAY,GACxDg2F,EAAiB16I,EAAMuB,EAAaoK,OAC/B,CACL+4C,EAAY,GAAKga,EAAWzqC,aAAaywB,EAAY,GAAIj5C,EAAKxK,OAC9DyjD,EAAY,GAAKga,EAAWzqC,aAAaywB,EAAY,GAAIj5C,EAAKxK,OAC9D,IAAIA,EAAQwK,EAAKxK,MAAQyjD,EAAY,GAAKA,EAAY,GACtDg2F,EAAiB16I,EAAMuB,EAAaN,GAGtCjB,EAAKqgB,UAAU,aAAci9C,MAYjC,SAASo9E,EAAiB16I,EAAMuB,EAAaoK,GAC3C,GAAK3L,EAAK4hB,QAyBV,IArBA,IAmBI+4H,EAnBA76I,EAAWyB,EAAYxB,iBAEvBghF,EAAcx/E,EAAYy/E,iBAE1B45D,EAAU56I,EAAKyJ,aAAa,UAC5BD,EAAWxJ,EAAKyJ,aAAa,SAC7BoxI,EAAcx4I,EAAOqE,IAAIq6E,GAAa,SAAU+5D,GAClD,OAAOz4I,EAAOqE,IAAIo0I,EAAY56I,SAAS,SAAUyP,GAC/C,IAAIiuC,EAAK99C,EAAS0L,YAAYxL,EAAK2B,IAAIi5I,EAASjrI,IAEhD,OADAiuC,EAAG,GAAK59C,EAAK2B,IAAI6H,EAAUmG,GACpBiuC,QAGPm9F,EAAOC,EAAgBH,GACvBI,EAAWF,EAAKrgF,GAChBwgF,EAAKvvI,EAASovI,EAAK7qI,IAEnBmD,EAAI0tE,EAAYr2E,OAChB+J,EAAIssE,EAAY,GAAG7gF,QAAQwK,OAGtBuN,EAAI,EAAGA,EAAIxD,IAAKwD,EAAG,CAC1B0iI,EAASM,EAAShjI,GAAKijI,EACvBl7I,EAAKugB,cAAcwgE,EAAY,GAAG7gF,QAAQ+X,GAAI,CAC5CkjI,WAAY,EACZj2I,EAAG21I,EAAY,GAAG5iI,GAAG,GACrByiD,GAAIigF,EACJx1I,EAAG01I,EAAY,GAAG5iI,GAAG,GAAKijI,IAG5B,IAAK,IAAIxtI,EAAI,EAAGA,EAAI2F,IAAK3F,EACvBitI,GAAUE,EAAYntI,EAAI,GAAGuK,GAAG,GAAKijI,EACrCl7I,EAAKugB,cAAcwgE,EAAYrzE,GAAGxN,QAAQ+X,GAAI,CAC5CkjI,WAAYztI,EACZxI,EAAG21I,EAAYntI,GAAGuK,GAAG,GACrByiD,GAAIigF,EACJx1I,EAAG01I,EAAYntI,GAAGuK,GAAG,GAAKijI,KAclC,SAASF,EAAgBh7I,GASvB,IARA,IAAIo7I,EAAWp7I,EAAK0K,OAChB2wI,EAAWr7I,EAAK,GAAG0K,OACnB4wI,EAAO,GACP5gF,EAAK,GACLxqD,EAAM,EAEN6qI,EAAO,GAEFrtI,EAAI,EAAGA,EAAI2tI,IAAY3tI,EAAG,CACjC,IAAK,IAAIuK,EAAI,EAAGsjI,EAAO,EAAGtjI,EAAImjI,IAAYnjI,EACxCsjI,GAAQv7I,EAAKiY,GAAGvK,GAAG,GAGjB6tI,EAAOrrI,IACTA,EAAMqrI,GAGRD,EAAKh7I,KAAKi7I,GAGZ,IAAK,IAAI7lI,EAAI,EAAGA,EAAI2lI,IAAY3lI,EAC9BglD,EAAGhlD,IAAMxF,EAAMorI,EAAK5lI,IAAM,EAG5BxF,EAAM,EAEN,IAAK,IAAI2lD,EAAI,EAAGA,EAAIwlF,IAAYxlF,EAAG,CACjC,IAAInsD,EAAM4xI,EAAKzlF,GAAK6E,EAAG7E,GAEnBnsD,EAAMwG,IACRA,EAAMxG,GAMV,OAFAqxI,EAAKrgF,GAAKA,EACVqgF,EAAK7qI,IAAMA,EACJ6qI,EAGT54I,EAAOC,QAAUpD,G,qBCvIjB,SAASw8I,EAAmBj6I,GAC1B,IAAIzB,EAAWyB,EAAYxB,iBAE3B,GAAsB,SAAlBD,EAASZ,KACX,OAAO,EAGT,IAAIq/D,EAAiBh9D,EAAYjC,OAAOi/D,eACpCk9E,EAAa37I,EAASoO,MACtBwtI,EAAYD,GAAcA,EAAW,IAAM,EAE3CE,EAAW77I,EAAS+L,UACpB+vI,GAAaD,EAAW,GAAKp9E,EAAiB,EAClD,OAAOq9E,EAAYF,EAGrB,SAASniG,EAAct6B,GACrB,IAAIu6B,EAAav6B,EAAKiC,UAAU,cAMhC,OAJIs4B,aAAsBhiC,QACxBgiC,GAAcA,EAAW,GAAKA,EAAW,IAAM,IAGzCA,EAGVp3C,EAAQo5I,mBAAqBA,EAC7Bp5I,EAAQm3C,cAAgBA,G,qBC7CxB,EAAQ,QAER,EAAQ,S,qBCgBR,SAASv6C,EAASO,GAChBA,EAAQumC,iBAAiB,OAAO,SAAUvkC,GACxC,IAAIs6I,EAAYt6I,EAAYI,IAAI,SAC5B69B,EAAiBj+B,EAAYmf,SAAS,aACtCsb,EAAYwD,EAAe79B,IAAI,aAC/B0V,EAAQmoB,EAAe79B,IAAI,UAAYk6I,EAAUt6I,EAAYi1C,YAAcqlG,EAAUnxI,QACzFnJ,EAAYtB,UAAU+gB,UAAU,CAC9B,UAAagb,EACb,MAAS3kB,OAKflV,EAAOC,QAAUpD,G,uBC/BjB,IAAIg2G,EAAkB,EAAQ,QAoB1B5jG,EAAe4jG,EAAgB,CAAC,CAAC,OAAQ,SAAU,CAAC,SAAU,eAAgB,CAAC,YAAa,eAAgB,CAAC,WAAY,CAAC,cAAe,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,eAAgB,CAAC,gBAAiB,CAAC,eACnNh2G,EAAW,CACboS,aAAc,SAAU2zE,EAAUC,GAChC,IAAI//E,EAAQmM,EAAa3R,KAAMslF,EAAUC,GACrCnqB,EAAWp7D,KAAKq8I,oBAEpB,OADAjhF,IAAa51D,EAAM41D,SAAWA,GACvB51D,GAET62I,kBAAmB,WACjB,IAAI5mC,EAAWz1G,KAAKkC,IAAI,cACxB,MAAoB,UAAbuzG,GAAoC,MAAZA,EAAmB,KAAoB,WAAbA,EAAwB,CAAC,EAAG,GAAK,CAAC,EAAG,KAGlG/yG,EAAOC,QAAUpD,G,qBCjCjB,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCJR,IAAIqD,EAAS,EAAQ,QAEjBm5B,EAAiB,EAAQ,QAEzB6Y,EAAe,EAAQ,QAyBvB0nG,EAAO,uBAgBX,SAASp1F,EAAS3gD,EAAKg2I,GACrB,IAAIC,EAAQC,EAAUl2I,GAClBm2I,EAAgBH,EAAa/gE,WAC7BmhE,EAAaJ,EAAaz+C,QAG9Bl7F,EAAOzD,KAAKq9I,GAAO,SAAUn1F,EAAQy2C,GACnC,IAAI8+C,EAAgBv1F,EAAOu1F,cAEvBA,EAAcF,IAAkB95I,EAAOiwB,QAAQ0pH,EAAa/+C,YAAam/C,GAAc,WAClFC,EAAcF,GACrBr1F,EAAOllC,YAGX06H,EAAWL,GACX,IAAIn1F,EAASm1F,EAAMG,GAEdt1F,IACHA,EAASm1F,EAAMG,GAAc,CAC3B7+C,QAAS6+C,EACTC,cAAe,GACfz6H,MAAO,GAETklC,EAAO5kB,WAAaq6G,EAAiBv2I,EAAK8gD,GAC1CA,EAAO7gD,eAAiB5D,EAAO4G,MAAMhD,EAAgBD,KAItD8gD,EAAOu1F,cAAcF,IAAkBr1F,EAAOllC,QAC/CklC,EAAOu1F,cAAcF,GAAiBH,EACtC,IAAIQ,EAAmBC,EAAsB31F,EAAOu1F,eACpDv1F,EAAO5kB,WAAWC,OAAOq6G,EAAiBtV,YAAasV,EAAiBvtI,KAExE63C,EAAO5kB,WAAWM,kBAAkBw5G,EAAax+C,eAEjDnpD,EAAamB,eAAesR,EAAQ,iBAAkBk1F,EAAaxnE,cAAc7yE,IAAI,YAAY,GAAO,WAS1G,SAASomD,EAAW/hD,EAAKi1E,GACvB,IAAIghE,EAAQC,EAAUl2I,GACtB3D,EAAOzD,KAAKq9I,GAAO,SAAUn1F,GAC3BA,EAAO5kB,WAAWlU,UAClB,IAAIquH,EAAgBv1F,EAAOu1F,cAEvBA,EAAcphE,YACTohE,EAAcphE,GACrBn0B,EAAOllC,YAGX06H,EAAWL,GAOb,SAAS9+C,EAAgBC,GACvB,OAAOA,EAAWl+F,KAAO,MAAQk+F,EAAWx1F,GAQ9C,SAASs0I,EAAUl2I,GAGjB,IAAIgkB,EAAKhkB,EAAIslB,QACb,OAAOtB,EAAG+xH,KAAU/xH,EAAG+xH,GAAQ,IAGjC,SAASQ,EAAiBv2I,EAAK02I,GAC7B,IAAIx6G,EAAa,IAAI1G,EAAex1B,EAAIslB,SAsBxC,OArBAjpB,EAAOzD,KAAK,CAAC,MAAO,OAAQ,eAAe,SAAUg6B,GACnDsJ,EAAW77B,GAAGuyB,GAAW,SAAU7wB,GACjC,IAAI7B,EAAQ,GACZ7D,EAAOzD,KAAK89I,EAAUL,eAAe,SAAUtmE,GAG7C,GAAKhuE,EAAM8/H,oBAAoB9xD,EAAKvB,cAAcl1E,QAAlD,CAIA,IAAIwG,GAAUiwE,EAAKsnB,UAAY,IAAIzkE,GAC/Brd,EAAQzV,GAAUA,EAAO42I,EAAUx6G,WAAYn6B,IAClDguE,EAAKvB,cAAc7yE,IAAI,YAAY,IAAS4Z,GAASrV,EAAM5F,KAAK,CAC/D26E,WAAYlF,EAAKkF,WACjBjnE,MAAOuH,EAAM,GACbu+D,IAAKv+D,EAAM,SAGfrV,EAAMwE,QAAUgyI,EAAUz2I,eAAeC,SAGtCg8B,EAGT,SAASo6G,EAAWL,GAClB55I,EAAOzD,KAAKq9I,GAAO,SAAUn1F,EAAQy2C,GAC9Bz2C,EAAOllC,QACVklC,EAAO5kB,WAAWlU,iBACXiuH,EAAM1+C,OASnB,SAASt3F,EAAeD,EAAKE,GAC3BF,EAAIC,eAAe,CACjB/G,KAAM,WACNgH,MAAOA,IAQX,SAASu2I,EAAsBJ,GAC7B,IAAInV,EAGA/+C,EAAS,QACTw0D,EAAe,CACjB,UAAa,EACb,UAAa,EACb,WAAc,EACd,gBAAmB,GAEjBrV,GAA0B,EAa9B,OAZAjlI,EAAOzD,KAAKy9I,GAAe,SAAUL,GACnC,IAAIxnE,EAAgBwnE,EAAaxnE,cAC7BooE,GAAUpoE,EAAc7yE,IAAI,YAAY,MAAgB6yE,EAAc7yE,IAAI,YAAY,IAAQ,QAE9Fg7I,EAAax0D,EAASy0D,GAAWD,EAAax0D,EAAS++C,KACzDA,EAAc0V,GAKhBtV,GAA2B9yD,EAAc7yE,IAAI,2BAA2B,MAEnE,CACLulI,YAAaA,EACbj4H,IAAK,CAIHk4H,kBAAkB,EAClBC,iBAAiB,EACjBC,kBAAkB,EAClBC,0BAA2BA,IAKjCllI,EAAQukD,SAAWA,EACnBvkD,EAAQ2lD,WAAaA,EACrB3lD,EAAQ+6F,gBAAkBA,G,uBCrN1B,IAAI96F,EAAS,EAAQ,QAoBrB,SAAS29H,EAAmBriG,EAASk/G,EAAmBt7I,GACtD,GAAIo8B,GAAWt7B,EAAOiwB,QAAQuqH,EAAmBl/G,EAAQz+B,OAAS,EAAG,CACnE,IAAIyf,EAAOpd,EAAYtB,UAAUkiB,KAAKxD,KAClCupF,EAAavqE,EAAQuqE,WAMzB,GAJ0B,kBAAfA,IACTA,EAAavpF,EAAKgB,YAAYuoF,IAG5BA,GAAcvpF,EAAKmB,SAASooF,GAC9B,MAAO,CACLjpF,KAAMipF,GAIV,IAAI40C,EAAen/G,EAAQm/G,aAE3B,GAAoB,MAAhBA,IAAyB50C,EAAavpF,EAAKgB,YAAYm9H,IACzD,MAAO,CACL79H,KAAMipF,IAOd,SAAS60C,EAAc99H,GACrB,IAAI0B,EAAO,GAEX,MAAO1B,EACLA,EAAOA,EAAKZ,WACZY,GAAQ0B,EAAKrgB,KAAK2e,GAGpB,OAAO0B,EAAK7Z,UAGd,SAASo5H,EAAcv4B,EAAU1oF,GAC/B,IAAI+9H,EAAWD,EAAcp1C,GAC7B,OAAOtlG,EAAOiwB,QAAQ0qH,EAAU/9H,IAAS,EAI3C,SAASg+H,EAAiBh+H,EAAM1d,GAC9B,IAAI27I,EAAe,GAEnB,MAAOj+H,EAAM,CACX,IAAIk+H,EAAgBl+H,EAAK5e,UACzB68I,EAAa58I,KAAK,CAChB8L,KAAM6S,EAAK7S,KACX/L,UAAW88I,EACX/vI,MAAO7L,EAAYo+E,YAAYw9D,KAEjCl+H,EAAOA,EAAKZ,WAId,OADA6+H,EAAap2I,UACNo2I,EAGT96I,EAAQ49H,mBAAqBA,EAC7B59H,EAAQ26I,cAAgBA,EACxB36I,EAAQ89H,cAAgBA,EACxB99H,EAAQ66I,iBAAmBA,G,uBCnF3B,IAAI56I,EAAS,EAAQ,QAyBrB,SAAS+6I,EAAkBnuI,GACd,MAAPA,GACF5M,EAAOpD,OAAOQ,KAAMwP,GAsFtBxP,KAAK0wF,UAAY,GAsBnB,IAAInxF,EAAWo+I,EACfj7I,EAAOC,QAAUpD,G,mBCnJjB,SAASksD,EAAUhnB,EAAKjzB,GACtB,IAKIosI,EACAC,EACAC,EACAC,EAkCAxyG,EA1CA9lC,EAAI+L,EAAM/L,EACVC,EAAI8L,EAAM9L,EACVlE,EAAQgQ,EAAMhQ,MACd0K,EAASsF,EAAMtF,OACf2H,EAAIrC,EAAMqC,EAMVrS,EAAQ,IACViE,GAAQjE,EACRA,GAASA,GAGP0K,EAAS,IACXxG,GAAQwG,EACRA,GAAUA,GAGK,kBAAN2H,EACT+pI,EAAKC,EAAKC,EAAKC,EAAKlqI,EACXA,aAAakE,MACL,IAAblE,EAAE5I,OACJ2yI,EAAKC,EAAKC,EAAKC,EAAKlqI,EAAE,GACA,IAAbA,EAAE5I,QACX2yI,EAAKE,EAAKjqI,EAAE,GACZgqI,EAAKE,EAAKlqI,EAAE,IACU,IAAbA,EAAE5I,QACX2yI,EAAK/pI,EAAE,GACPgqI,EAAKE,EAAKlqI,EAAE,GACZiqI,EAAKjqI,EAAE,KAEP+pI,EAAK/pI,EAAE,GACPgqI,EAAKhqI,EAAE,GACPiqI,EAAKjqI,EAAE,GACPkqI,EAAKlqI,EAAE,IAGT+pI,EAAKC,EAAKC,EAAKC,EAAK,EAKlBH,EAAKC,EAAKr8I,IACZ+pC,EAAQqyG,EAAKC,EACbD,GAAMp8I,EAAQ+pC,EACdsyG,GAAMr8I,EAAQ+pC,GAGZuyG,EAAKC,EAAKv8I,IACZ+pC,EAAQuyG,EAAKC,EACbD,GAAMt8I,EAAQ+pC,EACdwyG,GAAMv8I,EAAQ+pC,GAGZsyG,EAAKC,EAAK5xI,IACZq/B,EAAQsyG,EAAKC,EACbD,GAAM3xI,EAASq/B,EACfuyG,GAAM5xI,EAASq/B,GAGbqyG,EAAKG,EAAK7xI,IACZq/B,EAAQqyG,EAAKG,EACbH,GAAM1xI,EAASq/B,EACfwyG,GAAM7xI,EAASq/B,GAGjB9G,EAAItW,OAAO1oB,EAAIm4I,EAAIl4I,GACnB++B,EAAIknB,OAAOlmD,EAAIjE,EAAQq8I,EAAIn4I,GACpB,IAAPm4I,GAAYp5G,EAAIo2B,IAAIp1D,EAAIjE,EAAQq8I,EAAIn4I,EAAIm4I,EAAIA,GAAKhyI,KAAK+E,GAAK,EAAG,GAC9D6zB,EAAIknB,OAAOlmD,EAAIjE,EAAOkE,EAAIwG,EAAS4xI,GAC5B,IAAPA,GAAYr5G,EAAIo2B,IAAIp1D,EAAIjE,EAAQs8I,EAAIp4I,EAAIwG,EAAS4xI,EAAIA,EAAI,EAAGjyI,KAAK+E,GAAK,GACtE6zB,EAAIknB,OAAOlmD,EAAIs4I,EAAIr4I,EAAIwG,GAChB,IAAP6xI,GAAYt5G,EAAIo2B,IAAIp1D,EAAIs4I,EAAIr4I,EAAIwG,EAAS6xI,EAAIA,EAAIlyI,KAAK+E,GAAK,EAAG/E,KAAK+E,IACnE6zB,EAAIknB,OAAOlmD,EAAGC,EAAIk4I,GACX,IAAPA,GAAYn5G,EAAIo2B,IAAIp1D,EAAIm4I,EAAIl4I,EAAIk4I,EAAIA,EAAI/xI,KAAK+E,GAAc,IAAV/E,KAAK+E,IAGxDjO,EAAQ8oD,UAAYA,G,qBCrEpB,IAAIuyF,EAAe,EAAQ,QAEvB/+D,EAAc++D,EAAa/+D,YAE3Bg/D,EAAsB,EAAQ,QAE9BtuF,EAAesuF,EAAoBtuF,aAEnCuuF,EAAwB,EAAQ,QAEhCl/D,EAAiBk/D,EAAsBl/D,eAEvCn7D,EAAU,EAAQ,QAElB8vD,EAAY9vD,EAAQ8vD,UAEpBxhC,EAAO,EAAQ,QAEfvvC,EAAS,EAAQ,QAoBrB,SAASrD,EAASO,GAChBA,EAAQumC,iBAAiB,SAAS,SAAU83G,GAC1C,IAAI99I,EAAW89I,EAAY79I,iBAE3B,IAAID,GAA8B,SAAlBA,EAASZ,KAIzB,GAAkC,UAA9B0+I,EAAYj8I,IAAI,UAAuB,CACzC,IAAIk8I,EAAkBD,EAAYC,iBAAmB,GACjD93G,EAAQ63G,EAAY53G,WACpBy3B,EAAW13B,EAAM/lC,KACjB+7E,EAAWh2C,EAAMg2C,SACjB+hE,EAAaF,EAAYl9H,SAAS,SAClCq9H,EAAaD,EAAWn8I,IAAI,cAE5Bi8I,EAAYC,gBACdpgF,EAAS7+D,MAAK,SAAU+Q,GACtB,IAAI/H,EAAK61D,EAAS79C,MAAMjQ,GACxB8tD,EAASl9C,cAAc5Q,EAAKkuI,EAAgBj2I,IAAO,CAACkvB,IAAKA,SAEjDinH,GAA6B,SAAfA,EAEA,aAAfA,GACTt/D,EAAem/D,EAAa,SAF5BxuF,EAAawuF,GAKf,IAAII,EAAiBvgF,EAAS4Y,cAAc,SACxC4nE,EAAiBliE,EAAS1F,cAAc,SAExC6nE,EAAYJ,EAAWn8I,IAAI,aAC3Bw8I,EAAaL,EAAWn8I,IAAI,cAE3BU,EAAOogB,QAAQy7H,KAClBA,EAAY,CAACA,EAAWA,IAGrB77I,EAAOogB,QAAQ07H,KAClBA,EAAa,CAACA,EAAYA,IAI5BA,EAAa,CAACA,EAAW,GAAIA,EAAW,IACxC,IAAIx8H,EAAQ87C,EAASuiB,SAAS,SAAS,SAAU5yE,EAAOuC,GACtD,IAAIonB,EAAQ0mC,EAASh9C,cAAc9Q,GAC/ByuI,EAAMhrE,EAAUhmE,EAAO4wI,EAAgBE,GAM3C,OAJI1lI,MAAM4lI,KACRA,GAAOF,EAAU,GAAKA,EAAU,IAAM,GAGjC,CACLjnI,EAAGmnI,EACHA,IAAKA,EACLC,MAAO5gF,EAAS58C,aAAalR,GAAKhO,IAAI,SACtCuV,GAAI6f,GAASve,MAAMue,EAAM,KAAOve,MAAMue,EAAM,IAAM,KAAOA,MAGzDskD,EAAQU,EAASiE,SAAS,SAAS,SAAU5yE,EAAOuC,GACtD,IAAIqX,EAAO+e,EAAMu4G,eAAe3uI,GAC5B8sD,EAAI2W,EAAUhmE,EAAO6wI,EAAgBE,GAErC3lI,MAAMikD,KACRA,GAAK0hF,EAAW,GAAKA,EAAW,IAAM,GAGxC,IAAII,EAAYv3H,EAAKtG,WACrB,MAAO,CACL89H,GAAI78H,EAAMqF,EAAKwoC,MAAMnvD,WACrBo+I,GAAI98H,EAAMqF,EAAKyoC,MAAMpvD,WACrBo8D,EAAGA,EACHlN,UAAWgvF,EAAU58I,IAAI,wBAA0B,EACnD+8I,kBAAmBH,EAAU58I,IAAI,yBAIjC8J,GADA3L,EAAW89I,EAAY79I,iBAChBD,EAAS4L,mBAChBizI,EAAgBjgE,EAAY/8D,EAAO05D,EAAO,CAC5C5vE,KAAMA,EACNmzI,QAASd,EAAWn8I,IAAI,WACxBk9I,SAAUf,EAAWn8I,IAAI,cAEvBm9I,EAAUH,EAAct9E,KAE5Bs9E,EAAct9E,KAAO,SAAUzjD,GAC7B,IAAK,IAAIlQ,EAAI,EAAGmoD,EAAIl0C,EAAMjX,OAAQgD,EAAImoD,EAAGnoD,IACnCiU,EAAMjU,GAAG2wI,OAEXzsG,EAAKpO,KAAK7hB,EAAMjU,GAAGwJ,EAAG6uB,EAAMg5G,eAAerxI,GAAG8S,aAIlDs+H,GAAQ,SAAUn9H,EAAO05D,EAAO2jE,GAC9B,IAAK,IAAItxI,EAAI,EAAGmoD,EAAIl0C,EAAMjX,OAAQgD,EAAImoD,EAAGnoD,IAClCiU,EAAMjU,GAAG2wI,OACZt4G,EAAMg5G,eAAerxI,GAAG2S,UAAUsB,EAAMjU,GAAGwJ,GAG7C2mI,EAAgBpgF,EAAS79C,MAAMlS,IAAMiU,EAAMjU,GAAGwJ,EAGhD,IAASxJ,EAAI,EAAGmoD,EAAIwlB,EAAM3wE,OAAQgD,EAAImoD,EAAGnoD,IAAK,CAC5C,IAAI0e,EAAIivD,EAAM3tE,GACVsZ,EAAO+e,EAAMu4G,eAAe5wI,GAC5BtC,EAAKghB,EAAEoyH,GAAGtnI,EACV7L,EAAK+gB,EAAEqyH,GAAGvnI,EACVF,EAASgQ,EAAKxG,YAClBxJ,EAASA,EAASA,EAAOjQ,QAAU,GACnCiQ,EAAO,GAAKA,EAAO,IAAM,GACzBA,EAAO,GAAKA,EAAO,IAAM,GACzB46B,EAAKpO,KAAKxsB,EAAO,GAAI5L,GACrBwmC,EAAKpO,KAAKxsB,EAAO,GAAI3L,IAEhB+gB,EAAEmjC,YACLv4C,EAAO,GAAK,EAAE5L,EAAG,GAAKC,EAAG,IAAM,GAAKD,EAAG,GAAKC,EAAG,IAAM+gB,EAAEmjC,WAAYnkD,EAAG,GAAKC,EAAG,IAAM,GAAKA,EAAG,GAAKD,EAAG,IAAMghB,EAAEmjC,YAG9GvoC,EAAK3G,UAAUrJ,GAIjB4G,GAAMA,EAAGohI,OAIbpB,EAAYl/D,YAAcigE,EAC1Bf,EAAYC,gBAAkBA,EAE9Bc,EAAct9E,YAGdu8E,EAAYl/D,YAAc,QAKhCv8E,EAAOC,QAAUpD,G,uBC9KjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAoBtB,SAAS08I,EAA4BC,EAAUC,EAAWnwI,EAAWD,GACnE,IAAII,EAAOH,EAAUG,KAErB,IAAIA,EAAKjB,MAAMiyC,UAAf,CAIA,IAAIc,EAAiBjyC,EAAU0R,SAAS,aACpC69B,EAAiB0C,EAAevgC,SAAS,aACzCwgC,EAAa3C,EAAe58C,IAAI,SAChCy9I,EAAWrwI,EAAUhP,iBAAiB0P,UACtCiwC,EAAcvwC,EAAKwwC,eAAe,CACpC0/F,UAAWp+F,EACXuwD,OAAO,IAGT,GAAK9xD,EAAYh1C,OAAjB,CAMA,IAAI40I,EAAgBp+F,EAAWx2C,OAC3B60I,EAAsBL,EAASM,kBAC/BC,EAAqBp9I,EAAOxD,gBAC5B6hD,EAAa,EAEjB,GAAI6+F,EACF,IAAK,IAAI7xI,EAAI,EAAGA,EAAIgyC,EAAYh1C,OAAQgD,IAAK,CAC3C,IAAIgyI,EAASH,EAAoB59I,IAAI+9C,EAAYhyC,GAAGihG,WAEpD,GAAc,MAAV+wC,EAAgB,CAClBh/F,GAAcg/F,GAAUJ,EAAgB,GAAK5xI,GAAK4xI,EAClD,OAKN,IAAI3U,EAAOx7H,EAAKa,cAAc0vC,EAAY,GAAG5zC,OACzCilG,EAAYxyD,EAAeM,eAC/BqC,EAAa7+C,EAAOogB,QAAQy+B,GAAcA,EAAa,CAACA,GAExD,IAASxzC,EAAI,EAAGA,EAAIgyC,EAAYh1C,OAAQgD,IAAK,CAC3C,IACIxI,EACAC,EACAlE,EACA0K,EAJAwiG,EAAYh/F,EAAKa,cAAc0vC,EAAYhyC,GAAG5B,OAM9CqD,EAAKykB,gBACP1uB,EAAIylI,EACJxlI,EAAIi6I,EAASj6I,EACblE,EAAQktG,EAAYjpG,EACpByG,EAASyzI,EAASzzI,OAClBg/H,EAAOzlI,EAAIjE,IAEXiE,EAAIk6I,EAASl6I,EACbC,EAAIwlI,EACJ1pI,EAAQm+I,EAASn+I,MACjB0K,EAASwiG,EAAYhpG,EACrBwlI,EAAOxlI,EAAIwG,GAGb,IAAIgjG,EAAYjvD,EAAYhyC,EAAI,GAAGihG,UACtB,MAAbA,GAAqB8wC,EAAmBz9I,IAAI2sG,EAAWjuD,GACvDy+F,EAAUp6I,IAAI,IAAIxC,EAAQyO,KAAK,CAC7BkgE,KAAmB,MAAby9B,EAAoB,QAAUA,EAAY,KAChD19F,MAAO,CACL/L,EAAGA,EACHC,EAAGA,EACHlE,MAAOA,EACP0K,OAAQA,GAEV1G,MAAO5C,EAAO6O,SAAS,CACrBC,KAAM+vC,EAAWR,IAChBqwD,GACH1/F,QAAQ,KAEVqvC,GAAcA,EAAa,GAAK4+F,EAGlCJ,EAASM,kBAAoBC,IAG/B,SAASE,EAA0BT,GACjCA,EAASM,kBAAoB,KAG/Bp9I,EAAQ68I,4BAA8BA,EACtC78I,EAAQu9I,0BAA4BA,G,uBC/GpC,IAAI18H,EAAU,EAAQ,QAIlBtkB,GAFUskB,EAAQC,QAEV,EAAQ,SAEhBwC,EAAW/mB,EAAM+mB,SACjB9mB,EAAOD,EAAMC,KACb8H,EAAM/H,EAAM+H,IACZ4rB,EAAU3zB,EAAM2zB,QAGhBqvB,GAFWhjD,EAAMoF,SAEP,EAAQ,SAElB69C,EAAgBD,EAAQC,cAExB+N,EAAc,EAAQ,QAEtBnN,EAAqBmN,EAAYnN,mBACjCo9F,EAAkBjwF,EAAYiwF,gBAC9Bl9F,EAAkBiN,EAAYjN,gBAC9Bm9F,EAAyBlwF,EAAYkwF,uBAErCC,EAAc,EAAQ,QAEtBC,EAAS,EAAQ,QAEjBnwF,EAAmB,EAAQ,QAE3B/N,EAAmB,EAAQ,QAE3BG,EAAsBH,EAAiBG,oBAkC3C,SAASg+F,EAAoBhxI,EAAWD,EAAWxP,GACjD,OAAOyP,EAAUynD,qBAAuB1nD,EAG1C,SAASkxI,EAAKlxI,EAAWxP,EAASyG,GAKhCvG,KAAKygJ,WAAa,GAMlBzgJ,KAAK0gJ,YAAc,GAMnB1gJ,KAAK2gJ,SAAW,GAMhB3gJ,KAAK4gJ,UAAY,GAEjB5gJ,KAAK6gJ,eAAevxI,EAAWxP,EAASyG,GAExCvG,KAAK8vB,MAAQxgB,EA/Df,EAAQ,QAkER,IAAIwxI,EAAYN,EAAK1yI,UAgCrB,SAASizI,EAAcC,EAASC,EAAcvxI,EAAMwxI,GAClDxxI,EAAKE,gBAAkB,WAErB,OAAOD,EAAoB,CAACA,GAAqB,IAMnD,IACIA,EADAwxI,EAAYH,EAAQC,GAEpB1xI,EAAYG,EAAKogB,MACjB3f,EAASZ,EAAUrN,IAAI,mBACvBk/I,EAAkB7xI,EAAUrN,IAAI,4BAEpC,GAAKiO,EAAL,CAKA,GAAuB,MAAnBixI,EACEC,EAAgBF,EAAUC,MAC5BzxI,EAAoBwxI,EAAUC,SAIhC,IAAK,IAAIlxI,KAAOixI,EACd,GAAIA,EAAUpkI,eAAe7M,IAAQmxI,EAAgBF,EAAUjxI,MAE3DgxI,EAAcI,EAAmBH,EAAUjxI,KAAQ,CACrDP,EAAoBwxI,EAAUjxI,GAC9B,MAKFP,IACFuxI,EAAcI,EAAmB3xI,KAAsB,GAGzD,SAAS2xI,EAAmB5xI,GAC1B,OAAOA,EAAKK,IAAM,IAAML,EAAKvI,OAIjC,SAASk6I,EAAgB3xI,GACvB,OAAOA,GAAsB,aAAdA,EAAKjQ,MAAqC,SAAdiQ,EAAKjQ,MAAmB0gJ,EAAgBzwI,GAyVrF,SAAS6xI,EAAoB7xI,EAAMqgI,GACjC,IAAIl9E,EAAanjD,EAAK6V,YAClBi8H,EAAgB3uF,EAAW,GAAKA,EAAW,GAE/CnjD,EAAKa,cAA6B,MAAbb,EAAKK,IAAc,SAAU1D,GAChD,OAAOA,EAAQ0jI,GACb,SAAU1jI,GACZ,OAAOm1I,EAAgBn1I,EAAQ0jI,GAEjCrgI,EAAKugI,aAA4B,MAAbvgI,EAAKK,IAAc,SAAU1D,GAC/C,OAAOA,EAAQ0jI,GACb,SAAU1jI,GACZ,OAAOm1I,EAAgBn1I,EAAQ0jI,GAlbnC+Q,EAAUrhJ,KAAO,OACjBqhJ,EAAUlR,oBAAqB,EAE/BkR,EAAU9wI,QAAU,WAClB,OAAOhQ,KAAKsN,OAGdwzI,EAAUv4I,OAAS,SAAUzI,EAASyG,GACpC,IAAIy6I,EAAUhhJ,KAAK2gJ,SAEnB3gJ,KAAKyhJ,aAAa3hJ,EAASE,KAAK8vB,OAEhC3wB,EAAK6hJ,EAAQv7I,GAAG,SAAUqM,GACxBmxC,EAAgBnxC,EAAMrD,MAAOqD,EAAMge,UAErC3wB,EAAK6hJ,EAAQt7I,GAAG,SAAUqM,GACxBkxC,EAAgBlxC,EAAMtD,MAAOsD,EAAM+d,UAGrC,IAAIoxH,EAAgB,GACpB/hJ,EAAK6hJ,EAAQv7I,GAAG,SAAUqM,GACxBivI,EAAcC,EAAS,IAAKlvI,EAAOovI,MAErC/hJ,EAAK6hJ,EAAQt7I,GAAG,SAAUqM,GACxBgvI,EAAcC,EAAS,IAAKjvI,EAAOmvI,MAIrClhJ,KAAKi9E,OAAOj9E,KAAK8vB,MAAOvpB,IA0D1Bu6I,EAAU7jE,OAAS,SAAU3tE,EAAW/I,EAAKm7I,GAC3C,IAAI/B,EAAWx9F,EAAc7yC,EAAUw2D,qBAAsB,CAC3DtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAEdjsB,KAAKsN,MAAQqyI,EACb,IAAIgC,EAAW3hJ,KAAK4gJ,UAwBpB,SAASgB,IACPziJ,EAAKwiJ,GAAU,SAAUjyI,GACvB,IAAIykB,EAAezkB,EAAKykB,eACpB0D,EAAS1D,EAAe,CAAC,EAAGwrH,EAASn+I,OAAS,CAAC,EAAGm+I,EAASzzI,QAC3DgE,EAAMR,EAAKtI,QAAU,EAAI,EAC7BsI,EAAKszC,UAAUnrB,EAAO3nB,GAAM2nB,EAAO,EAAI3nB,IACvCqxI,EAAoB7xI,EAAMykB,EAAewrH,EAASl6I,EAAIk6I,EAASj6I,MA7BnEk8I,KAEKF,GAAsBpyI,EAAUpN,IAAI,kBACvC/C,EAAKwiJ,GAAU,SAAUjyI,GACvB,IAAKA,EAAKogB,MAAM5tB,IAAI,oBAAqB,CACvC,IAAI2/I,EAAiBzB,EAAuB1wI,GAE5C,GAAImyI,EAAgB,CAClB,IAAI9xI,EAAML,EAAKykB,eAAiB,SAAW,QACvC8tD,EAASvyE,EAAKogB,MAAM5tB,IAAI,oBAC5By9I,EAAS5vI,IAAQ8xI,EAAe9xI,GAAOkyE,EAEjB,QAAlBvyE,EAAK1E,SACP20I,EAASj6I,GAAKm8I,EAAe31I,OAAS+1E,EACX,SAAlBvyE,EAAK1E,WACd20I,EAASl6I,GAAKo8I,EAAergJ,MAAQygF,QAK7C2/D,MAmBJd,EAAUlpD,QAAU,SAAU3jE,EAAU+Y,GACtC,IAAI80G,EAAe9hJ,KAAK2gJ,SAAS1sH,GAEjC,GAAoB,MAAhB6tH,EAAsB,CACxB,GAAiB,MAAb90G,EAEF,IAAK,IAAIrgC,KAAQm1I,EACf,GAAIA,EAAa/kI,eAAepQ,GAC9B,OAAOm1I,EAAan1I,GAK1B,OAAOm1I,EAAa90G,KAQxB8zG,EAAU5Q,QAAU,WAClB,OAAOlwI,KAAK4gJ,UAAUt5I,SAcxBw5I,EAAU5U,aAAe,SAAU30B,EAAYC,GAC7C,GAAkB,MAAdD,GAAoC,MAAdC,EAAoB,CAC5C,IAAIzvG,EAAM,IAAMwvG,EAAa,IAAMC,EACnC,OAAOx3G,KAAKygJ,WAAW14I,GAGrBke,EAASsxF,KACXC,EAAaD,EAAWC,WACxBD,EAAaA,EAAWA,YAI1B,IAAK,IAAItpG,EAAI,EAAG8zI,EAAY/hJ,KAAK0gJ,YAAazyI,EAAI8zI,EAAU92I,OAAQgD,IAClE,GAAI8zI,EAAU9zI,GAAG2pF,QAAQ,KAAKzwF,QAAUowG,GAAcwqC,EAAU9zI,GAAG2pF,QAAQ,KAAKzwF,QAAUqwG,EACxF,OAAOuqC,EAAU9zI,IAKvB6yI,EAAUkB,cAAgB,WACxB,OAAOhiJ,KAAK0gJ,YAAYp5I,SAQ1Bw5I,EAAU3xI,eAAiB,SAAUrP,EAAS4N,EAAQC,GACpD,IAAIyE,EAASpS,KAAKiiJ,mBAAmBniJ,EAAS4N,GAE9C,OAAO0E,EAAO+uF,UAAY/uF,EAAO+uF,UAAUp1F,YAAY4B,GAASyE,EAAO1C,KAAO0C,EAAO1C,KAAKa,cAAc6B,EAAO1C,KAAKc,YAAY7C,IAAU,MAQ5ImzI,EAAU1xI,iBAAmB,SAAUtP,EAAS4N,EAAQC,GACtD,IAAIyE,EAASpS,KAAKiiJ,mBAAmBniJ,EAAS4N,GAE9C,OAAO0E,EAAO+uF,UAAY/uF,EAAO+uF,UAAU9jB,YAAY1vE,GAASyE,EAAO1C,KAAO0C,EAAO1C,KAAKguE,YAAYtrE,EAAO1C,KAAKugI,aAAatiI,IAAU,MAO3ImzI,EAAUmB,mBAAqB,SAAUniJ,EAAS4N,GAChD,IAKIyzF,EACAzxF,EANA5N,EAAc4L,EAAO5L,YACrBogJ,EAAax0I,EAAOw0I,YAAcpgJ,GAAeA,EAAY+L,uBAAuB,SAAS,GAC7Fs0I,EAAaz0I,EAAOy0I,YAAcrgJ,GAAeA,EAAY+L,uBAAuB,SAAS,GAC7FyB,EAAY5B,EAAO4B,UACnB8yI,EAAapiJ,KAAK0gJ,YAItB,GAAI5+I,EACFq/F,EAAYr/F,EAAYxB,iBACxBuyB,EAAQuvH,EAAYjhD,GAAa,IAAMA,EAAY,WAC9C,GAAI+gD,GAAcC,EACvBhhD,EAAYnhG,KAAKksI,aAAagW,EAAWngH,eAAgBogH,EAAWpgH,qBAC/D,GAAImgH,EACTxyI,EAAO1P,KAAK43F,QAAQ,IAAKsqD,EAAWngH,qBAC/B,GAAIogH,EACTzyI,EAAO1P,KAAK43F,QAAQ,IAAKuqD,EAAWpgH,qBAEjC,GAAIzyB,EAAW,CAChB,IAAIG,EAAOH,EAAUhP,iBAEjBmP,IAASzP,OACXmhG,EAAYnhG,KAAK0gJ,YAAY,IAInC,MAAO,CACLv/C,UAAWA,EACXzxF,KAAMA,IASVoxI,EAAUpxF,aAAe,SAAUp4B,GACjC,IAAIjrB,EAAQrM,KAAK0gJ,YAAY,GAE7B,GAAIr0I,EACF,OAAOA,EAAMqjD,aAAap4B,IAS9BwpH,EAAUD,eAAiB,SAAUvxI,EAAWxP,EAASyG,GACvD,IAAI87I,EAAmB,CACrB93I,MAAM,EACNE,OAAO,EACPD,KAAK,EACLE,QAAQ,GAENs2I,EAAU,CACZv7I,EAAG,GACHC,EAAG,IAED48I,EAAY,CACd78I,EAAG,EACHC,EAAG,GAML,GAHA5F,EAAQs+B,cAAc,QAASmkH,EAAkB,KAAMviJ,MACvDF,EAAQs+B,cAAc,QAASmkH,EAAkB,KAAMviJ,OAElDsiJ,EAAU78I,IAAM68I,EAAU58I,EAI7B,OAFA1F,KAAK2gJ,SAAW,QAChB3gJ,KAAK4gJ,UAAY,IAqBnB,SAAS2B,EAAkBtuH,GACzB,OAAO,SAAU1kB,EAAWW,GAC1B,GAAKqwI,EAAoBhxI,EAAWD,EAAWxP,GAA/C,CAIA,IAAIgQ,EAAeP,EAAUrN,IAAI,YAEhB,MAAb+xB,EAEmB,QAAjBnkB,GAA2C,WAAjBA,IAE5BA,EAAeuyI,EAAiB33I,OAAS,MAAQ,UAI9B,SAAjBoF,GAA4C,UAAjBA,IAE7BA,EAAeuyI,EAAiB93I,KAAO,QAAU,QAIrD83I,EAAiBvyI,IAAgB,EACjC,IAAIJ,EAAO,IAAI4wI,EAAOrsH,EAAU8uB,EAAmBxzC,GAAY,CAAC,EAAG,GAAIA,EAAUrN,IAAI,QAAS4N,GAC1F+V,EAA2B,aAAdnW,EAAKjQ,KACtBiQ,EAAK8gD,OAAS3qC,GAActW,EAAUrN,IAAI,eAC1CwN,EAAKtI,QAAUmI,EAAUrN,IAAI,WAE7BqN,EAAUG,KAAOA,EAEjBA,EAAKogB,MAAQvgB,EAEbG,EAAKD,KAAOzP,KAEZ0P,EAAKvI,MAAQ+I,EAEblQ,KAAK4gJ,UAAU//I,KAAK6O,GAEpBsxI,EAAQ/sH,GAAU/jB,GAAOR,EACzB4yI,EAAUruH,OAxDdj0B,KAAK2gJ,SAAWK,EAEhB7hJ,EAAK6hJ,EAAQv7I,GAAG,SAAUqM,EAAOylG,GAC/Bp4G,EAAK6hJ,EAAQt7I,GAAG,SAAUqM,EAAOylG,GAC/B,IAAIzvG,EAAM,IAAMwvG,EAAa,IAAMC,EAC/BrW,EAAY,IAAIk/C,EAAYt4I,GAChCo5F,EAAU1xF,KAAOzP,KACjBmhG,EAAUrxE,MAAQxgB,EAClBtP,KAAKygJ,WAAW14I,GAAOo5F,EAEvBnhG,KAAK0gJ,YAAY7/I,KAAKsgG,GAEtBA,EAAUqhD,QAAQ1wI,GAClBqvF,EAAUqhD,QAAQzwI,KACjB/R,QACFA,OAoDL8gJ,EAAUW,aAAe,SAAU3hJ,EAASwP,GA2B1C,SAAS+5C,EAAY9oD,EAAMmP,EAAM5N,GAC/B3C,EAAKoB,EAAKyJ,aAAa0F,EAAKK,KAAK,IAAO,SAAUA,GAChDL,EAAKjB,MAAM26C,oBAGX7oD,EAAMgiD,EAAoBhiD,EAAMwP,OA9BpC5Q,EAAKa,KAAK4gJ,WAAW,SAAUlxI,GAC7BA,EAAKjB,MAAMu0C,UAAUjwC,KAAWA,QAElCjT,EAAQ04C,YAAW,SAAU12C,GAC3B,GAAI2gJ,EAAc3gJ,GAAc,CAC9B,IAAI4gJ,EAAaC,EAAe7gJ,EAAahC,GACzCoiJ,EAAaQ,EAAW,GACxBP,EAAaO,EAAW,GAE5B,IAAKnC,EAAoB2B,EAAY5yI,EAAWxP,KAAaygJ,EAAoB4B,EAAY7yI,EAAWxP,GACtG,OAGF,IAAIqhG,EAAYnhG,KAAKksI,aAAagW,EAAWngH,eAAgBogH,EAAWpgH,gBACpExhC,EAAOuB,EAAYtB,UACnBsR,EAAQqvF,EAAUvJ,QAAQ,KAC1B7lF,EAAQovF,EAAUvJ,QAAQ,KAEZ,SAAdr3F,EAAKd,OACP4pD,EAAY9oD,EAAMuR,EAAOhQ,GACzBunD,EAAY9oD,EAAMwR,EAAOjQ,OAG5B9B,OAiBL8gJ,EAAU3Q,eAAiB,SAAUpgI,GACnC,IAAIqgI,EAAW,GACX+Q,EAAY,GAOhB,OANAhiJ,EAAKa,KAAKgiJ,iBAAiB,SAAU7gD,GACnC,IAAIrpE,EAAkB,MAAP/nB,GAAuB,SAARA,EAAiBoxF,EAAUvJ,QAAQ7nF,GAAOoxF,EAAUppE,cAC9E6qH,EAAYzhD,EAAUtvC,aAAa/5B,GACvCjF,EAAQu9G,EAAUt4G,GAAY,GAAKs4G,EAASvvI,KAAKi3B,GACjDjF,EAAQsuH,EAAWyB,GAAa,GAAKzB,EAAUtgJ,KAAK+hJ,MAE/C,CACLxS,SAAUA,EACV+Q,UAAWA,IAwBf,IAAI0B,EAAY,CAAC,QAAS,SAK1B,SAASF,EAAe7gJ,EAAahC,GACnC,OAAOmH,EAAI47I,GAAW,SAAU5uH,GAC9B,IAAI1kB,EAAYzN,EAAY+L,uBAAuBomB,GAAU,GAC7D,OAAO1kB,KAQX,SAASkzI,EAAc3gJ,GACrB,MAA+C,gBAAxCA,EAAYI,IAAI,oBAGzBs+I,EAAK58G,OAAS,SAAU9jC,EAASyG,GAC/B,IAAIu8I,EAAQ,GAuBZ,OAtBAhjJ,EAAQs+B,cAAc,QAAQ,SAAU9uB,EAAWY,GACjD,IAAIT,EAAO,IAAI+wI,EAAKlxI,EAAWxP,EAASyG,GACxCkJ,EAAK9C,KAAO,QAAUuD,EAGtBT,EAAKwtE,OAAO3tE,EAAW/I,GAAK,GAC5B+I,EAAUhP,iBAAmBmP,EAC7BqzI,EAAMjiJ,KAAK4O,MAGb3P,EAAQ04C,YAAW,SAAU12C,GAC3B,GAAK2gJ,EAAc3gJ,GAAnB,CAIA,IAAI4gJ,EAAaC,EAAe7gJ,EAAahC,GACzCoiJ,EAAaQ,EAAW,GACxBP,EAAaO,EAAW,GACxBpzI,EAAY4yI,EAAWlrF,mBACvBvnD,EAAOH,EAAUhP,iBACrBwB,EAAYxB,iBAAmBmP,EAAKy8H,aAAagW,EAAWngH,eAAgBogH,EAAWpgH,oBAElF+gH,GAITtC,EAAKr+I,WAAaq+I,EAAK1yI,UAAU3L,WAAak+I,EAAYvyI,UAAU3L,WACpEguD,EAAiBjJ,SAAS,cAAes5F,GACzC,IAAIjhJ,EAAWihJ,EACf99I,EAAOC,QAAUpD,G,uBC7kBjB,IAAIuD,EAAU,EAAQ,QAElBsF,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAoBjBmgJ,EAAkB,CAAC,YAAa,WAChCC,EAAuB,CAAC,WAAY,YAAa,WACjDC,EAAkB,CAAC,YAAa,WAChCC,EAAuB,CAAC,WAAY,YAAa,WAErD,SAASC,EAAe3+I,EAAM4+I,GAC5B,OAAO5+I,EAAKid,UAAU,YAAcjd,EAAKyc,WAAW/e,IAAIkhJ,GAG1D,SAASC,EAAY7+I,EAAM4+I,EAAaE,GACtC,IAAI73H,EAAKjnB,EAAK++I,eACV9hJ,EAAU0hJ,EAAe3+I,EAAM4+I,GAEf,MAAhBE,IACS,MAAX7hJ,IAAoBA,EAAU,GAC9BA,GAAW6hJ,GAGb73H,EAAGivB,UAAYjvB,EAAGivB,WAClBjvB,EAAGqX,UAAS,SAAUvjB,GACD,UAAfA,EAAM9f,MACR8f,EAAMshB,SAAS,UAAWp/B,MAKhC,SAAS+hJ,EAAWh/I,EAAM4+I,GACxB,IAAI3hJ,EAAU0hJ,EAAe3+I,EAAM4+I,GAC/B33H,EAAKjnB,EAAK++I,eACd93H,EAAGqX,UAAS,SAAUvjB,GACD,UAAfA,EAAM9f,MACR8f,EAAMshB,SAAS,UAAWp/B,MAI9BgqB,EAAGgvB,WAAahvB,EAAGgvB,YAGrB,IAAIgpG,EAAc3gJ,EAAQolE,YAAY,CACpC12D,MAAO,CACL4oD,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJmpF,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNhsH,OAAQ,EACR/wB,OAAQ,IAEV2kD,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAIqmB,EAASrmB,EAAMqmB,OACnB4M,EAAItW,OAAO3c,EAAM4oD,GAAI5oD,EAAM6oD,IAC3B51B,EAAI01B,cAAc3oD,EAAMkyI,KAAMlyI,EAAMmyI,KAAMnyI,EAAMoyI,KAAMpyI,EAAMqyI,KAAMryI,EAAM8oD,GAAI9oD,EAAM+oD,IAE7D,aAAjB/oD,EAAM1K,QACR29B,EAAIknB,OAAOn6C,EAAM8oD,GAAKziC,EAAQrmB,EAAM+oD,IACpC91B,EAAI01B,cAAc3oD,EAAMoyI,KAAO/rH,EAAQrmB,EAAMqyI,KAAMryI,EAAMkyI,KAAO7rH,EAAQrmB,EAAMmyI,KAAMnyI,EAAM4oD,GAAKviC,EAAQrmB,EAAM6oD,MAE7G51B,EAAIknB,OAAOn6C,EAAM8oD,GAAI9oD,EAAM+oD,GAAK1iC,GAChC4M,EAAI01B,cAAc3oD,EAAMoyI,KAAMpyI,EAAMqyI,KAAOhsH,EAAQrmB,EAAMkyI,KAAMlyI,EAAMmyI,KAAO9rH,EAAQrmB,EAAM4oD,GAAI5oD,EAAM6oD,GAAKxiC,IAG3G4M,EAAImnB,aAENnR,UAAW,WACTz6C,KAAKs9B,QAAQ,aAEfod,SAAU,WACR16C,KAAKs9B,QAAQ,aAIb/9B,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,SAMNgJ,OAAQ,KAMRq7I,yBAAyB,EACzBxyI,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIw9I,EAAa/jJ,KACbsmC,EAAQxkC,EAAYykC,WACpBjjC,EAAQtD,KAAKsD,MACbu6D,EAAa/7D,EAAY+7D,WAEzBr8D,EAAQq8D,EAAWr8D,MAEnB0K,EAAS2xD,EAAW3xD,OACpB8xD,EAAWl8D,EAAYtB,UACvB87E,EAAWx6E,EAAYtB,QAAQ,QAC/BsG,EAAShF,EAAYI,IAAI,UAC7BlC,KAAKyI,OAAS3G,EACdwB,EAAMC,YACND,EAAM0c,KAAK,WAAY,CAAC69C,EAAWp4D,EAAGo4D,EAAWn4D,IAEjD4gC,EAAMupB,UAAS,SAAUtoC,GACvB,IAAIowC,EAAQ,IAAI8rF,EAChB9rF,EAAM/2D,UAAY2mB,EAAK3mB,UACvB+2D,EAAM5gB,YAAcj1C,EAAYi1C,YAChC4gB,EAAMqlC,SAAW,OACjB,IAWI5iC,EACAC,EACAC,EACAC,EACAmpF,EACAC,EACAC,EACAC,EAlBAhjG,EAAiBt5B,EAAKtG,SAAS,aAC/B+iI,EAAYnjG,EAAe3+C,IAAI,aAC/B+hJ,EAAW18H,EAAKwoC,MAAMhvC,YACtBmjI,EAAa38H,EAAKwoC,MAAM9uC,WACxBkjI,EAASD,EAAWhiJ,IAAI,UACxBkiJ,EAASF,EAAWhiJ,IAAI,UACxBmiJ,EAAW98H,EAAKyoC,MAAMjvC,YACtBujI,EAAa/8H,EAAKyoC,MAAM/uC,WACxBsjI,EAASD,EAAWpiJ,IAAI,UACxBsiJ,EAASF,EAAWpiJ,IAAI,UACxBuiJ,EAAal9H,EAAKxG,YA4CtB,OAnCA42C,EAAMnmD,MAAMqmB,OAAShsB,KAAK4E,IAAI,EAAGg0I,EAAWtyI,IAC5CwlD,EAAMnmD,MAAM1K,OAASA,EAEN,aAAXA,GACFszD,GAAgB,MAAV+pF,EAAiBA,EAAS3iJ,EAAQyiJ,EAASx+I,GAAKg/I,EAAWpgH,GACjEg2B,GAAgB,MAAV+pF,EAAiBA,EAASl4I,EAAS+3I,EAASv+I,GAAKu+I,EAAS9xI,GAChEmoD,GAAgB,MAAViqF,EAAiBA,EAAS/iJ,EAAQ6iJ,EAAS5+I,GAAKg/I,EAAWlwG,GACjEgmB,EAAe,MAAViqF,EAAiBA,EAASt4I,EAASm4I,EAAS3+I,EACjDg+I,EAAOtpF,EACPupF,EAAOtpF,GAAM,EAAI2pF,GAAazpF,EAAKypF,EACnCJ,EAAOtpF,EACPupF,EAAOxpF,EAAK2pF,EAAYzpF,GAAM,EAAIypF,KAElC5pF,GAAgB,MAAV+pF,EAAiBA,EAAS3iJ,EAAQyiJ,EAASx+I,GAAKw+I,EAAS/xI,GAC/DmoD,GAAgB,MAAV+pF,EAAiBA,EAASl4I,EAAS+3I,EAASv+I,GAAK++I,EAAWpgH,GAClEi2B,EAAe,MAAViqF,EAAiBA,EAAS/iJ,EAAQ6iJ,EAAS5+I,EAChD80D,GAAgB,MAAViqF,EAAiBA,EAASt4I,EAASm4I,EAAS3+I,GAAK++I,EAAWlwG,GAClEmvG,EAAOtpF,GAAM,EAAI4pF,GAAa1pF,EAAK0pF,EACnCL,EAAOtpF,EACPupF,EAAOxpF,EAAK4pF,EAAY1pF,GAAM,EAAI0pF,GAClCH,EAAOtpF,GAGT5C,EAAMxJ,SAAS,CACbiM,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJmpF,KAAMA,EACNC,KAAMA,EACNC,KAAMA,EACNC,KAAMA,IAERlsF,EAAM92B,SAASggB,EAAelvC,gBAEtBgmD,EAAMnyD,MAAMkM,MAClB,IAAK,SACHimD,EAAMnyD,MAAMkM,KAAO6V,EAAKwoC,MAAMtuC,UAAU,SACxC,MAEF,IAAK,SACHk2C,EAAMnyD,MAAMkM,KAAO6V,EAAKyoC,MAAMvuC,UAAU,SACxC,MAGJ3e,EAAQq/B,cAAcw1B,EAAOpwC,EAAKtG,SAAS,sBAAsBtP,gBACjErO,EAAMgC,IAAIqyD,GACV2kB,EAAS16C,iBAAiBra,EAAK3mB,UAAW+2D,MAG5CrxB,EAAM5mB,UAAS,SAAUF,GACvB,IAAIvc,EAASuc,EAAKuB,YACdI,EAAY3B,EAAKyB,WACjByjI,EAAQvjI,EAAUjf,IAAI,UACtByiJ,EAAQxjI,EAAUjf,IAAI,UACtBg+B,EAAa/e,EAAUF,SAAS,SAChCq+B,EAAkBn+B,EAAUF,SAAS,kBACrCjV,EAAO,IAAIlJ,EAAQyO,KAAK,CAC1BC,MAAO,CACL/L,EAAY,MAATi/I,EAAgBA,EAAQljJ,EAAQyB,EAAOwC,EAC1CC,EAAY,MAATi/I,EAAgBA,EAAQz4I,EAASjJ,EAAOyC,EAC3ClE,MAAOyB,EAAOiP,GACdhG,OAAQjJ,EAAOkP,IAEjB3M,MAAO2b,EAAUF,SAAS,aAAatP,iBAErC4vB,EAAa/hB,EAAKyB,SAAS,sBAAsBtP,eACrD7O,EAAQw+B,cAAct1B,EAAKxG,MAAO+7B,EAAYrB,EAAYof,EAAiB,CACzEne,aAAcr/B,EACd0/B,eAAgBhiB,EAAK5e,UACrB6gC,YAAajiB,EAAKrX,GAClB+0C,YAAY,IAEdlxC,EAAK60B,SAAS,OAAQrhB,EAAKiC,UAAU,UACrC3e,EAAQq/B,cAAcn2B,EAAMu1B,GAC5Bj+B,EAAMgC,IAAI0G,GACVgyD,EAASp8B,iBAAiBpiB,EAAK5e,UAAWoL,GAC1CA,EAAKgxF,SAAW,UAElBh/B,EAASrf,mBAAkB,SAAUlzB,EAAI7qB,GACvC,IAAIugB,EAAY68C,EAAS58C,aAAaxgB,GAElCugB,EAAUjf,IAAI,eAChBupB,EAAGyuB,MAAQ,SAAUhoC,EAAIC,GACvB4xI,EAAWD,yBAA0B,EACrC9jJ,KAAKwR,MAAM/L,GAAKyM,EAChBlS,KAAKwR,MAAM9L,GAAKyM,EAChBnS,KAAKsS,QACL/L,EAAIC,eAAe,CACjB/G,KAAM,WACNunB,SAAUllB,EAAYqG,GACtBvH,UAAWo9D,EAASl9D,YAAYF,GAChCgkJ,OAAQ5kJ,KAAKwR,MAAM/L,EAAIjE,EACvBqjJ,OAAQ7kJ,KAAKwR,MAAM9L,EAAIwG,KAI3Buf,EAAG6sD,UAAY,WACbyrE,EAAWD,yBAA0B,GAGvCr4H,EAAGovB,WAAY,EACfpvB,EAAG0f,OAAS,QAGd1f,EAAGgvB,UAAY,WACbz6C,KAAKs9B,QAAQ,aAGf7R,EAAGivB,SAAW,WACZ16C,KAAKs9B,QAAQ,WAGf7R,EAAGq5H,qBAAuBr5H,EAAGoR,IAAI,YAAapR,EAAGq5H,qBACjDr5H,EAAGs5H,uBAAyBt5H,EAAGoR,IAAI,WAAYpR,EAAGs5H,uBAE9C5jI,EAAUjf,IAAI,wBAChBupB,EAAG7kB,GAAG,YAAa6kB,EAAGq5H,oBAAsB,WACrCf,EAAWD,0BACdC,EAAWh4C,cAEXxlG,EAAIC,eAAe,CACjB/G,KAAM,qBACNunB,SAAUllB,EAAYqG,GACtBvH,UAAW6qB,EAAG7qB,eAIpB6qB,EAAG7kB,GAAG,WAAY6kB,EAAGs5H,sBAAwB,WACtChB,EAAWD,yBACdC,EAAWiB,iBAAiBz+I,SAKpC+1E,EAAS39B,mBAAkB,SAAUlzB,EAAI7qB,GACvC,IAAIk+I,EAAYxiE,EAASl7D,aAAaxgB,GACtC6qB,EAAGq5H,qBAAuBr5H,EAAGoR,IAAI,YAAapR,EAAGq5H,qBACjDr5H,EAAGs5H,uBAAyBt5H,EAAGoR,IAAI,WAAYpR,EAAGs5H,uBAE9CjG,EAAU58I,IAAI,wBAChBupB,EAAG7kB,GAAG,YAAa6kB,EAAGq5H,oBAAsB,WACrCf,EAAWD,0BACdC,EAAWh4C,cAEXxlG,EAAIC,eAAe,CACjB/G,KAAM,qBACNunB,SAAUllB,EAAYqG,GACtB88I,cAAex5H,EAAG7qB,eAIxB6qB,EAAG7kB,GAAG,WAAY6kB,EAAGs5H,sBAAwB,WACtChB,EAAWD,yBACdC,EAAWiB,iBAAiBz+I,UAM/BvG,KAAK49C,OAAS97C,EAAYI,IAAI,cACjCoB,EAAMinC,YAAY+3C,EAAoBh/E,EAAM2I,kBAAmBnK,GAAa,WAC1EwB,EAAMqkC,qBAIV3nC,KAAK49C,MAAQ97C,EAAYtB,WAE3B+tB,QAAS,WACPvuB,KAAK+rG,eAEPi5C,iBAAkB,SAAUz+I,GAC1B,IAAIkX,EAAOzd,KAEXA,KAAK+rG,cAEL/rG,KAAKklJ,mBAAqB72H,YAAW,WACnC5Q,EAAKynI,mBAAqB,KAC1B3+I,EAAIC,eAAe,CACjB/G,KAAM,uBACNunB,SAAUvJ,EAAKhV,OAAON,OAEvB,MAEL4jG,YAAa,WACP/rG,KAAKklJ,qBACP14H,aAAaxsB,KAAKklJ,oBAClBllJ,KAAKklJ,mBAAqB,OAG9BC,mBAAoB,SAAUrjJ,EAAahC,EAASyG,EAAK23B,GACvD,IAAI39B,EAAOuB,EAAYtB,UACnB8lC,EAAQ/lC,EAAK+lC,MACb1lC,EAAYs9B,EAAQt9B,UACpBugB,EAAY5gB,EAAK6gB,aAAaxgB,GAC9BqkJ,EAAgB/mH,EAAQ+mH,cAE5B,GAAiB,MAAbrkJ,GAAsC,MAAjBqkJ,EAAzB,CAIA,IAAIzlI,EAAO8mB,EAAMg5G,eAAe1+I,GAC5B2mB,EAAO+e,EAAMu4G,eAAeoG,GAQhC,GAPA3+G,EAAM5mB,UAAS,SAAUF,GACvB6jI,EAAY7jI,EAAMujI,EAAiB,OAErCz8G,EAAMupB,UAAS,SAAUtoC,GACvB87H,EAAY97H,EAAM07H,EAAiB,OAGjCzjI,EAAM,CACRgkI,EAAWhkI,EAAMwjI,GACjB,IAAIoC,EAAejkI,EAAUjf,IAAI,sBAEZ,aAAjBkjJ,EACFxiJ,EAAOzD,KAAKqgB,EAAK6lI,UAAU,SAAU99H,GAC/BA,EAAK3mB,UAAY,IAIrB4iJ,EAAWj8H,EAAM27H,GACjBM,EAAWj8H,EAAKyoC,MAAOgzF,OAEC,YAAjBoC,EACTxiJ,EAAOzD,KAAKqgB,EAAK8lI,SAAS,SAAU/9H,GAC9BA,EAAK3mB,UAAY,IAIrB4iJ,EAAWj8H,EAAM27H,GACjBM,EAAWj8H,EAAKwoC,MAAOizF,OAEC,aAAjBoC,GACTxiJ,EAAOzD,KAAKqgB,EAAKo8D,OAAO,SAAUr0D,GAC5BA,EAAK3mB,UAAY,IAIrB4iJ,EAAWj8H,EAAM27H,GACjB37H,EAAKwoC,QAAUvwC,GAAQgkI,EAAWj8H,EAAKwoC,MAAOizF,GAC9Cz7H,EAAKyoC,QAAUxwC,GAAQgkI,EAAWj8H,EAAKyoC,MAAOgzF,OAKhDz7H,IACFi8H,EAAWj8H,EAAM27H,GACjBM,EAAWj8H,EAAKwoC,MAAOizF,GACvBQ,EAAWj8H,EAAKyoC,MAAOgzF,MAG3BuC,qBAAsB,SAAUzjJ,EAAahC,EAASyG,EAAK23B,GACzD,IAAIoI,EAAQxkC,EAAYykC,WACxBD,EAAM5mB,UAAS,SAAUF,GACvB6jI,EAAY7jI,EAAMujI,MAEpBz8G,EAAMupB,UAAS,SAAUtoC,GACvB87H,EAAY97H,EAAM07H,SAMxB,SAAS3gE,EAAoBt2E,EAAMlK,EAAaqc,GAC9C,IAAIokE,EAAS,IAAIz/E,EAAQyO,KAAK,CAC5BC,MAAO,CACL/L,EAAGuG,EAAKvG,EAAI,GACZC,EAAGsG,EAAKtG,EAAI,GACZlE,MAAO,EACP0K,OAAQF,EAAKE,OAAS,MAQ1B,OALApJ,EAAQk4C,UAAUunC,EAAQ,CACxB/wE,MAAO,CACLhQ,MAAOwK,EAAKxK,MAAQ,KAErBM,EAAaqc,GACTokE,EAGT7/E,EAAOC,QAAUpD,G,uBChbjB,IAAIikB,EAAU,EAAQ,QAIlBtkB,GAFUskB,EAAQC,QAEV,EAAQ,SAEhBtkB,EAAOD,EAAMC,KACbC,EAAgBF,EAAME,cAEtB4gH,EAAiB,EAAQ,QAEzBwlC,EAAgB,EAAQ,QAExBC,EAAe,EAAQ,QAEvBl5I,EAAe,EAAQ,QAoBvBm5I,EAAU,CACZp1B,QAASk1B,EACTzzD,IAAK0zD,GAEHlmJ,EAAW,CAObwN,KAAM,SAAUw1B,EAAS31B,EAAS+jI,GAChC,IAGIpjI,EAHAF,EAAU,GACVF,EAAa/N,IACb6N,EAAe7N,IAEfumJ,EAAat1B,EAAY9tF,GAoB7B,OAnBApjC,EAAKwmJ,GAAY,SAAUt+F,GACzB,IAAIu+F,EAAeF,EAAQr+F,EAAO5nD,MAAMsN,KAAKw1B,EAAS8kB,EAAQspF,GAC9DxxI,EAAKymJ,EAAav4I,SAAS,SAAU6vB,GACnC,IAAI4zG,EAAa5zG,EAAOvwB,KAEpBC,GAAWA,EAAQmQ,eAAe+zH,KACpC5zG,EAASA,EAAOigE,aAAa2zC,EAAalkI,EAAQkkI,KAGpDzjI,EAAQxM,KAAKq8B,GACb/vB,EAAW5K,IAAIuuI,EAAY5zG,GAC3BjwB,EAAa1K,IAAIuuI,EAAY5zG,EAAOxE,WAEtC,IAAI1sB,EAAO45I,EAAar4I,aAEpBvB,IACFuB,EAAeA,EAAakpG,MAAMzqG,GAAQuB,EAAevB,EAAKtE,YAG3D,CACL2F,QAASA,EACTF,WAAYA,EACZF,aAAcA,EAEdM,aAAcA,GAAgB,IAAIhB,EAAa,EAAG,EAAG,EAAG,KAS5Di2B,YAAaqjH,EAAY,eAMzBvjH,cAAeujH,EAAY,kBAG7B,SAASA,EAAYp4I,GACnB,OAAO,SAAU80B,EAASujH,GACxB,IAAIH,EAAat1B,EAAY9tF,GACzBwjH,EAAU,GAKd,OAJA5mJ,EAAKwmJ,GAAY,SAAUt+F,GACzB,IAAIhhD,EAASq/I,EAAQr+F,EAAO5nD,MAAMgO,GAClCpH,GAAU0/I,EAAQllJ,KAAKwF,EAAOk8B,EAAS8kB,EAAQy+F,OAE1CC,GAMX,SAAS11B,EAAY9tF,GACnB,IAAIojH,EAAa3lC,EAAeqQ,YAAY9tF,IAAY,GACxD,OAAOojH,EAGTjjJ,EAAOC,QAAUpD,G,uBCjHjB,EAAQ,QAER,EAAQ,S,uBCtBR,IAAIk7F,EAAO,EAAQ,QAEfj3E,EAAU,EAAQ,SAElBq0C,EAAmBr0C,EAAQq0C,iBAE3BtL,EAAQ,EAAQ,QAEhBy5F,EAAU,EAAQ,QAMtB,SAASC,IACP,OAAO,EAYT,SAASC,EAAU/9I,EAAIyiB,EAAS8Z,GAC9B,IAAIyhH,EAAS1rD,EAAKosB,eACdrlH,EAAQopB,EAAQoB,WAChB9f,EAAS0e,EAAQqB,YACjBm6H,EAAcD,EAAO3gJ,MAczB,OAZI4gJ,IAEFA,EAAYp7I,SAAW,WACvBo7I,EAAY77I,KAAO,EACnB67I,EAAY57I,IAAM,EAClB47I,EAAY5kJ,MAAQA,EAAQ,KAC5B4kJ,EAAYl6I,OAASA,EAAS,KAC9Bi6I,EAAOp5B,aAAa,iBAAkB5kH,IAGxCg+I,EAAO3kJ,MAAQA,EAAQkjC,EACvByhH,EAAOj6I,OAASA,EAASw4B,EAClByhH,EAYT,IAAIE,EAAQ,SAAUl+I,EAAIyiB,EAAS8Z,GACjC,IAAIs9E,EACJt9E,EAAMA,GAAOmzB,EAEK,kBAAP1vD,EACT65G,EAAMkkC,EAAU/9I,EAAIyiB,EAAS8Z,GAEtB+1D,EAAKx0E,SAAS9d,KACnB65G,EAAM75G,EACNA,EAAK65G,EAAI75G,IAGbnI,KAAKmI,GAAKA,EACVnI,KAAKgiH,IAAMA,EACX,IAAIz0F,EAAWy0F,EAAIx8G,MAEf+nB,IAEFy0F,EAAIskC,cAAgBL,EAEpB14H,EAAS,uBAAyB,OAClCA,EAAS,eAAiB,OAC1BA,EAAS,yBAA2B,OACpCA,EAAS,+BAAiC,gBAC1CA,EAAS,WAAa,EAEtBA,EAAS,UAAY,EAErBA,EAAS,gBAAkB,GAG7BvtB,KAAKumJ,QAAU,KACfvmJ,KAAKwmJ,QAAU,KACfxmJ,KAAK4qB,QAAUA,EACf5qB,KAAKymJ,OAAS,KAQdzmJ,KAAK0mJ,WAAa,EAOlB1mJ,KAAK2mJ,YAAa,EAOlB3mJ,KAAK4mJ,eAAiB,GAMtB5mJ,KAAK0kC,IAAMA,GAGb2hH,EAAMv4I,UAAY,CAChBC,YAAas4I,EACb15F,SAAS,EACTk6F,QAAQ,EACRC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZvrG,aAAa,EACbwrG,gBAAiB,WACf,OAAOjnJ,KAAKgnJ,WAAahnJ,KAAK+mJ,cAEhCG,YAAa,WACXlnJ,KAAKykC,IAAMzkC,KAAKgiH,IAAInoD,WAAW,MAC/B75D,KAAKykC,IAAIC,IAAM1kC,KAAK0kC,KAEtByiH,iBAAkB,WAChB,IAAIziH,EAAM1kC,KAAK0kC,IACf1kC,KAAKumJ,QAAUL,EAAU,QAAUlmJ,KAAKmI,GAAInI,KAAK4qB,QAAS8Z,GAC1D1kC,KAAKwmJ,QAAUxmJ,KAAKumJ,QAAQ1sF,WAAW,MAE3B,IAARn1B,GACF1kC,KAAKwmJ,QAAQ/3I,MAAMi2B,EAAKA,IAQ5Bu4C,OAAQ,SAAUz7E,EAAO0K,GACvB,IAAIw4B,EAAM1kC,KAAK0kC,IACXs9E,EAAMhiH,KAAKgiH,IACXz0F,EAAWy0F,EAAIx8G,MACf+gJ,EAAUvmJ,KAAKumJ,QAEfh5H,IACFA,EAAS/rB,MAAQA,EAAQ,KACzB+rB,EAASrhB,OAASA,EAAS,MAG7B81G,EAAIxgH,MAAQA,EAAQkjC,EACpBs9E,EAAI91G,OAASA,EAASw4B,EAElB6hH,IACFA,EAAQ/kJ,MAAQA,EAAQkjC,EACxB6hH,EAAQr6I,OAASA,EAASw4B,EAEd,IAARA,GACF1kC,KAAKwmJ,QAAQ/3I,MAAMi2B,EAAKA,KAU9B5L,MAAO,SAAUsuH,EAAUV,GACzB,IAqBMW,EArBFrlC,EAAMhiH,KAAKgiH,IACXv9E,EAAMzkC,KAAKykC,IACXjjC,EAAQwgH,EAAIxgH,MACZ0K,EAAS81G,EAAI91G,OAEbo7I,GADAZ,EAAaA,GAAc1mJ,KAAK0mJ,WACf1mJ,KAAK2mJ,aAAeS,GACrCR,EAAiB5mJ,KAAK4mJ,eACtBliH,EAAM1kC,KAAK0kC,KAEX4iH,IACGtnJ,KAAKumJ,SACRvmJ,KAAKmnJ,mBAGPnnJ,KAAKwmJ,QAAQv5D,yBAA2B,OACxCjtF,KAAKwmJ,QAAQrgH,UAAU67E,EAAK,EAAG,EAAGxgH,EAAQkjC,EAAKx4B,EAASw4B,IAG1DD,EAAI8iH,UAAU,EAAG,EAAG/lJ,EAAO0K,GAEvBw6I,GAA6B,gBAAfA,KAGZA,EAAWj5D,YAEb45D,EAA8BX,EAAWc,kBAAoBj7F,EAAMihC,YAAY/oD,EAAKiiH,EAAY,CAC9FjhJ,EAAG,EACHC,EAAG,EACHlE,MAAOA,EACP0K,OAAQA,IAEVw6I,EAAWc,iBAAmBH,GAEvBX,EAAW/gH,QAChB0hH,EAA8BrB,EAAQl4I,UAAU25I,iBAAiB36I,KAAK45I,EAAYjiH,IAGtFA,EAAIijH,OACJjjH,EAAIqoD,UAAYu6D,GAA+BX,EAC/CjiH,EAAIkjH,SAAS,EAAG,EAAGnmJ,EAAO0K,GAC1Bu4B,EAAI4iD,WAGN,GAAIigE,EAAgB,CAClB,IAAIf,EAAUvmJ,KAAKumJ,QACnB9hH,EAAIijH,OACJjjH,EAAIuoD,YAAc45D,EAClBniH,EAAI0B,UAAUogH,EAAS,EAAG,EAAG/kJ,EAAO0K,GACpCu4B,EAAI4iD,aAIV,IAAI9nF,EAAW8mJ,EACf3jJ,EAAOC,QAAUpD,G,uBC1OjB,IAAIw2H,EAAM,EAAQ,QAEd6xB,EAAmB,IAAI7xB,EAAI,IAM/B,SAAS8xB,EAAeC,GACtB,GAA6B,kBAAlBA,EAA4B,CACrC,IAAIC,EAAeH,EAAiB1lJ,IAAI4lJ,GACxC,OAAOC,GAAgBA,EAAapiH,MAEpC,OAAOmiH,EAgBX,SAASjiH,EAAoBiiH,EAAeniH,EAAOqiH,EAAQ7pI,EAAI8pI,GAC7D,GAAKH,EAEE,IAA6B,kBAAlBA,EAA4B,CAE5C,GAAIniH,GAASA,EAAMuiH,eAAiBJ,IAAkBE,EACpD,OAAOriH,EAKT,IAAIoiH,EAAeH,EAAiB1lJ,IAAI4lJ,GACpCK,EAAc,CAChBH,OAAQA,EACR7pI,GAAIA,EACJ8pI,UAAWA,GAgBb,OAbIF,GACFpiH,EAAQoiH,EAAapiH,OACpBI,EAAaJ,IAAUoiH,EAAaK,QAAQvnJ,KAAKsnJ,KAElDxiH,EAAQ,IAAIqhC,MACZrhC,EAAMG,OAASH,EAAM0iH,QAAUC,EAC/BV,EAAiB7wB,IAAI+wB,EAAeniH,EAAM4iH,eAAiB,CACzD5iH,MAAOA,EACPyiH,QAAS,CAACD,KAEZxiH,EAAMD,IAAMC,EAAMuiH,aAAeJ,GAG5BniH,EAGL,OAAOmiH,EAhCT,OAAOniH,EAoCX,SAAS2iH,IACP,IAAIP,EAAe/nJ,KAAKuoJ,eACxBvoJ,KAAK8lC,OAAS9lC,KAAKqoJ,QAAUroJ,KAAKuoJ,eAAiB,KAEnD,IAAK,IAAIt6I,EAAI,EAAGA,EAAI85I,EAAaK,QAAQn9I,OAAQgD,IAAK,CACpD,IAAIk6I,EAAcJ,EAAaK,QAAQn6I,GACnCkQ,EAAKgqI,EAAYhqI,GACrBA,GAAMA,EAAGne,KAAMmoJ,EAAYF,WAC3BE,EAAYH,OAAO11I,QAGrBy1I,EAAaK,QAAQn9I,OAAS,EAGhC,SAAS86B,EAAaJ,GACpB,OAAOA,GAASA,EAAMnkC,OAASmkC,EAAMz5B,OAGvCvJ,EAAQklJ,eAAiBA,EACzBllJ,EAAQkjC,oBAAsBA,EAC9BljC,EAAQojC,aAAeA,G,uBCnEvB,IAAIviB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjBG,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBF,EAAU,EAAQ,QAElB0lJ,EAAiB,EAAQ,QAEzBC,EAAiBD,EAAeC,eAEhC1hH,EAAa,EAAQ,QAoBrBv9B,EAAQ5G,EAAO4G,MACfrK,EAAOyD,EAAOzD,KACdwF,EAAQ7B,EAAQ6B,MAEhBpF,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,eACN2nC,iBAAiB,EAKjBp+B,KAAM,WAKJhJ,KAAKsD,MAAMgC,IAAItF,KAAK0oJ,cAAgB,IAAI/jJ,GAMxC3E,KAAK2oJ,cAML3oJ,KAAKsD,MAAMgC,IAAItF,KAAK4oJ,eAAiB,IAAIjkJ,GAQzC3E,KAAK6oJ,gBAAiB,GAMxBthH,gBAAiB,WACf,OAAOvnC,KAAK0oJ,eAMd1/G,iBAAkB,WAChB,OAAOhpC,KAAK4oJ,gBAMdt3I,OAAQ,SAAUw2B,EAAahoC,EAASyG,GACtC,IAAIuiC,EAAgB9oC,KAAK6oJ,eAIzB,GAHA7oJ,KAAK6oJ,gBAAiB,EACtB7oJ,KAAK0nC,aAEAI,EAAY5lC,IAAI,QAAQ,GAA7B,CAIA,IAAI6B,EAAY+jC,EAAY5lC,IAAI,SAC5B4E,EAASghC,EAAY5lC,IAAI,UAExB6B,GAA2B,SAAdA,IAChBA,EAAwC,UAA5B+jC,EAAY5lC,IAAI,SAAkC,aAAX4E,EAAwB,QAAU,QAGvF,IAAIihC,EAAWD,EAAY5lC,IAAI,YAAY,GACvC8lC,EAAmBF,EAAY5lC,IAAI,oBAAoB,IAEvD6lC,GAAcC,GAAyC,SAArBA,IACpCA,EAA8B,eAAXlhC,EAA0B,MAAQ,SAGvD9G,KAAK6nC,YAAY9jC,EAAW+jC,EAAahoC,EAASyG,EAAKwhC,EAAUjhC,EAAQkhC,GAEzE,IAAI4tC,EAAe9tC,EAAYg+B,qBAC3BgjF,EAAe,CACjBtnJ,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAEVjC,EAAU8d,EAAY5lC,IAAI,WAC1B0I,EAAUm8B,EAAWob,cAAcyzB,EAAckzE,EAAc9+H,GAC/D0f,EAAW1pC,KAAK6oC,YAAYf,EAAa/jC,EAAW6G,EAASk+B,EAAef,EAAUC,GAEtF+tC,EAAahvC,EAAWob,cAAcv/C,EAAO6O,SAAS,CACxDjQ,MAAOkoC,EAASloC,MAChB0K,OAAQw9B,EAASx9B,QAChB0pE,GAAekzE,EAAc9+H,GAChChqB,KAAKsD,MAAM0c,KAAK,WAAY,CAAC+1D,EAAWtwE,EAAIikC,EAASjkC,EAAGswE,EAAWrwE,EAAIgkC,EAAShkC,IAEhF1F,KAAKsD,MAAMgC,IAAItF,KAAK2oJ,cAAgBF,EAAe/+G,EAAU5B,MAM/DJ,WAAY,WACV1nC,KAAKunC,kBAAkBhkC,YACvBvD,KAAK2oJ,eAAiB3oJ,KAAKsD,MAAM++B,OAAOriC,KAAK2oJ,eAC7C3oJ,KAAKgpC,mBAAmBzlC,aAM1BskC,YAAa,SAAU9jC,EAAW+jC,EAAahoC,EAASyG,EAAKwhC,EAAUjhC,EAAQkhC,GAC7E,IAAI4B,EAAe5pC,KAAKunC,kBACpBwhH,EAAiBnmJ,EAAOxD,gBACxB4pJ,EAAalhH,EAAY5lC,IAAI,gBAC7B+mH,EAAkB,GACtBnpH,EAAQmpJ,eAAc,SAAUnnJ,IAC7BA,EAAYI,IAAI,oBAAsB+mH,EAAgBpoH,KAAKiB,EAAYqG,OAE1EhJ,EAAK2oC,EAAYtnC,WAAW,SAAU2gB,EAAWvgB,GAC/C,IAAI+L,EAAOwU,EAAUjf,IAAI,QAEzB,GAAKlC,KAAKonC,iBAA6B,KAATz6B,GAAwB,OAATA,EAA7C,CAQA,IAAI7K,EAAchC,EAAQopJ,gBAAgBv8I,GAAM,GAEhD,IAAIo8I,EAAe7mJ,IAAIyK,GAMvB,GAAI7K,EAAa,CACf,IAAIvB,EAAOuB,EAAYtB,UACnBoX,EAAQrX,EAAKkhB,UAAU,SACvBtW,EAAc5K,EAAKkhB,UAAU,eAEZ,oBAAV7J,IAETA,EAAQA,EAAM9V,EAAY8H,cAAc,KAIf,oBAAhBuB,IAETA,EAAcA,EAAYrJ,EAAY8H,cAAc,KAItD,IAAIu/I,EAAmB5oJ,EAAKkhB,UAAU,iBAAmB,YACrDmxB,EAAaryC,EAAKkhB,UAAU,UAE5B/c,EAAY1E,KAAKopJ,YAAYz8I,EAAM/L,EAAWugB,EAAW2mB,EAAaqhH,EAAkBv2G,EAAY7uC,EAAW6T,EAAOzM,EAAa69I,GAEvItkJ,EAAUkC,GAAG,QAAS4C,EAAM6/I,EAAsB18I,EAAM,KAAMpG,EAAK0iH,IAAkBriH,GAAG,YAAa4C,EAAM8/I,EAAyBxnJ,EAAY6K,KAAM,KAAMpG,EAAK0iH,IAAkBriH,GAAG,WAAY4C,EAAM+/I,EAAwBznJ,EAAY6K,KAAM,KAAMpG,EAAK0iH,IAC7P8/B,EAAexmJ,IAAIoK,GAAM,QAGzB7M,EAAQmpJ,eAAc,SAAUnnJ,GAE9B,IAAIinJ,EAAe7mJ,IAAIyK,IAInB7K,EAAYqH,qBAAsB,CACpC,IAAIqgJ,EAAW1nJ,EAAYqH,qBAE3B,IAAKqgJ,EAASC,YAAY98I,GACxB,OAGF,IAAIuD,EAAMs5I,EAASppH,YAAYzzB,GAC3BiL,EAAQ4xI,EAAS7nI,cAAczR,EAAK,SACpC/E,EAAcq+I,EAAS7nI,cAAczR,EAAK,eAC1Ci5I,EAAmB,YAEnBzkJ,EAAY1E,KAAKopJ,YAAYz8I,EAAM/L,EAAWugB,EAAW2mB,EAAaqhH,EAAkB,KAAMplJ,EAAW6T,EAAOzM,EAAa69I,GAGjItkJ,EAAUkC,GAAG,QAAS4C,EAAM6/I,EAAsB,KAAM18I,EAAMpG,EAAK0iH,IAElEriH,GAAG,YAAa4C,EAAM8/I,EAAyB,KAAM38I,EAAMpG,EAAK0iH,IAAkBriH,GAAG,WAAY4C,EAAM+/I,EAAwB,KAAM58I,EAAMpG,EAAK0iH,IACjJ8/B,EAAexmJ,IAAIoK,GAAM,MAE1B3M,WAnEH4pC,EAAatkC,IAAI,IAAIX,EAAM,CACzB+kJ,SAAS,OAoEZ1pJ,MAEC+nC,GACF/nC,KAAK2pJ,gBAAgB5hH,EAAUD,EAAavhC,EAAKO,EAAQkhC,IAG7D2hH,gBAAiB,SAAU5hH,EAAUD,EAAavhC,EAAKO,EAAQkhC,GAC7D,IAAIe,EAAgB/oC,KAAKgpC,mBAKzB,SAAS4gH,EAAqBC,GAC5B,IAAIpqJ,EAAOoqJ,EAAapqJ,KACpBuuD,EAAY,IAAIlrD,EAAQyC,KAAK,CAC/BC,MAAO,CACLC,EAAG,EACHC,EAAG,EACHsB,MAAO,SACPioD,cAAe,UAEjBrqD,QAAS,WACP2B,EAAIC,eAAe,CACjB/G,KAAe,QAATA,EAAiB,kBAAoB,2BAIjDspC,EAAczjC,IAAI0oD,GAClB,IAAI9tB,EAAa4H,EAAY7mB,SAAS,iBAClC6oI,EAAqBhiH,EAAY7mB,SAAS,0BAC9Cne,EAAQw+B,cAAc0sB,EAAUxoD,MAAOwoD,EAAUzsB,WAAa,GAAIrB,EAAY4pH,EAAoB,CAChGroH,YAAaooH,EAAav2H,MAC1B4pB,YAAY,IAEdp6C,EAAQq/B,cAAc6rB,GA1BxB7uD,EAAK4oC,GAAU,SAAU8hH,GACvBD,EAAqBC,OA4BzBT,YAAa,SAAUz8I,EAAM/L,EAAWugB,EAAW2mB,EAAaqhH,EAAkBv2G,EAAY7uC,EAAW6T,EAAOzM,EAAa69I,GAC3H,IAAI9kI,EAAY4jB,EAAY5lC,IAAI,aAC5BiiB,EAAa2jB,EAAY5lC,IAAI,cAC7B6nJ,EAAgBjiH,EAAY5lC,IAAI,iBAChC8nJ,EAAsBliH,EAAY5lC,IAAI,uBACtC+nJ,EAAmBniH,EAAY5lC,IAAI,oBACnCgoJ,EAAuBpiH,EAAY7mB,SAAS,aAC5Csc,EAAauK,EAAYvK,WAAW5wB,GACpCjI,EAAY,IAAIC,EAChBjB,EAAiByd,EAAUF,SAAS,aACpCkpI,EAAWhpI,EAAUjf,IAAI,QACzB2nB,EAAe1I,EAAUF,SAAS,WAClCmpI,EAA2BvgI,EAAaq1B,YAE5CiqG,EAAmBgB,GAAYhB,EAC/B,IAAI73D,EAAetuF,EAAammJ,EAAkB,EAAG,EAAGjlI,EAAWC,EAAYoZ,EAAa3lB,EAAQmyI,EAChF,MAApBE,GAAkCA,GAIlC,GAHAvlJ,EAAUY,IAAI+kJ,EAAe/4D,EAAc63D,EAAkBe,EAAsB/+I,EAAa6+I,EAAqBzsH,KAGhH4sH,GAAYv3G,IACbA,IAAeu2G,GAAmC,SAAfv2G,GAAwB,CAC7D,IAAItmC,EAAoB,GAAb6X,EAEQ,SAAfyuB,IACFA,EAAa,UAGf,IAAI03G,EAAqBtnJ,EAAa4vC,GAAa1uB,EAAY5X,GAAQ,GAAI6X,EAAa7X,GAAQ,EAAGA,EAAMA,EAAMixB,EAAa3lB,EAAQmyI,EAChH,MAApBE,GAAkCA,GAElCvlJ,EAAUY,IAAI+kJ,EAAeC,EAAoB13G,EAAYs3G,EAAsB/+I,EAAa6+I,EAAqBzsH,IAGvH,IAAIkjD,EAAsB,SAAd18E,EAAuBmgB,EAAY,GAAK,EAChDre,EAAY9B,EACZ+wD,EAAYhtB,EAAY5lC,IAAI,aAC5B2rB,EAAUlhB,EAEW,kBAAdmoD,GAA0BA,EACnCjnC,EAAUinC,EAAUryD,QAAQ,SAAkB,MAARkK,EAAeA,EAAO,IAC9B,oBAAdmoD,IAChBjnC,EAAUinC,EAAUnoD,IAGtBjI,EAAUY,IAAI,IAAIxC,EAAQyC,KAAK,CAC7BC,MAAO1C,EAAQmqE,aAAa,GAAIvpE,EAAgB,CAC9CiC,KAAMkoB,EACNpoB,EAAGg7E,EACH/6E,EAAGye,EAAa,EAChBtgB,SAAU05B,EAAa75B,EAAeI,eAAiBimJ,EACvDlkJ,UAAWA,EACXD,kBAAmB,cAIvB,IAAI2kJ,EAAU,IAAIznJ,EAAQyO,KAAK,CAC7BC,MAAO9M,EAAUuH,kBACjBu+B,WAAW,EACXmf,QAAS9/B,EAAa3nB,IAAI,QAAUU,EAAOpD,OAAO,CAChDquB,QAASlhB,EAETmoD,UAAWs1F,EAAyBloJ,IAAI,aAAa,IAAS,WAC5D,OAAOyK,GAET69I,gBAAiB,CACf1oH,cAAe,SACf2oH,YAAa3iH,EAAY/F,eACzBp1B,KAAMA,EACNtC,MAAO,CAAC,UAETwf,EAAahqB,QAAU,OAU5B,OARA6E,EAAUY,IAAIilJ,GACd7lJ,EAAU04B,WAAU,SAAU7d,GAC5BA,EAAM3N,QAAS,KAEjB24I,EAAQ34I,QAAUo3I,EAClBhpJ,KAAKunC,kBAAkBjiC,IAAIZ,GAC3B5B,EAAQq/B,cAAcz9B,GACtBA,EAAU+nC,kBAAoB7rC,EACvB8D,GAMTmkC,YAAa,SAAUf,EAAa/jC,EAAW6G,EAASk+B,EAAef,EAAUC,GAC/E,IAAI4B,EAAe5pC,KAAKunC,kBACpBwB,EAAgB/oC,KAAKgpC,mBAEzBjC,EAAW/gC,IAAI8hC,EAAY5lC,IAAI,UAAW0nC,EAAc9B,EAAY5lC,IAAI,WAAY0I,EAAQpJ,MAAOoJ,EAAQsB,QAC3G,IAAI49B,EAAcF,EAAa39B,kBAC3Bg+B,EAAa,EAAEH,EAAYrkC,GAAIqkC,EAAYpkC,GAE/C,GAAIqiC,EAAU,CAEZhB,EAAW/gC,IACX,aAAc+iC,EAAejB,EAAY5lC,IAAI,mBAAmB,IAChE,IAAIqnC,EAAeR,EAAc98B,kBAC7Bu9B,EAAc,EAAED,EAAa9jC,GAAI8jC,EAAa7jC,GAC9C4jC,EAAoBxB,EAAY5lC,IAAI,qBAAqB,GACzD+mC,EAAYnB,EAAYY,YAAYvhC,MACpC+hC,EAAmB,IAAdD,EAAkB,QAAU,SACjCG,EAAmB,IAAdH,EAAkB,SAAW,QAClCI,EAAmB,IAAdJ,EAAkB,IAAM,IAER,QAArBjB,EACFwB,EAAYP,IAAca,EAAYZ,GAAMI,EAE5CW,EAAWhB,IAAcM,EAAaL,GAAMI,EAI9CE,EAAY,EAAIP,IAAca,EAAYV,GAAM,EAAIG,EAAaH,GAAM,EACvEL,EAAc/oB,KAAK,WAAYwpB,GAC/BI,EAAa5pB,KAAK,WAAYiqB,GAC9B,IAAIP,EAAW,CACbjkC,EAAG,EACHC,EAAG,GAKL,OAHAgkC,EAASR,GAAMY,EAAYZ,GAAMI,EAAoBC,EAAaL,GAClEQ,EAASN,GAAMv9B,KAAK4E,IAAIq5B,EAAYV,GAAKG,EAAaH,IACtDM,EAASL,GAAMx9B,KAAK6E,IAAI,EAAG64B,EAAaF,GAAMG,EAAY,EAAIP,IACvDS,EAGP,OADAE,EAAa5pB,KAAK,WAAYiqB,GACvBjqC,KAAKsD,MAAM2I,mBAOtBo2B,OAAQ,WACNriC,KAAKunC,kBAAkBhkC,YACvBvD,KAAK6oJ,gBAAiB,KAI1B,SAASwB,EAAex3G,EAAQD,EAAYs3G,EAAsB/+I,EAAa6+I,EAAqBzsH,GAClG,IAAIryB,EAaJ,MAXmB,SAAf0nC,GAAyBA,EAAW/f,QAAQ,SAAW,GACzD3nB,EAAYg/I,EAAqBv4I,eACjCkhC,EAAOrtC,MAAMq5C,OAAS1zC,EAEjBoyB,IACHryB,EAAU2zC,OAASmrG,IAGrB9+I,EAAYg/I,EAAqBv4I,aAAa,CAAC,cAAe,gBAGzDkhC,EAAOhS,SAAS31B,GAGzB,SAASm+I,EAAqBz4G,EAAY85G,EAAUnkJ,EAAK0iH,GAEvDsgC,EAAuB34G,EAAY85G,EAAUnkJ,EAAK0iH,GAClD1iH,EAAIC,eAAe,CACjB/G,KAAM,qBACNkN,KAAoB,MAAdikC,EAAqBA,EAAa85G,IAG1CpB,EAAwB14G,EAAY85G,EAAUnkJ,EAAK0iH,GAGrD,SAASqgC,EAAwB14G,EAAY85G,EAAUnkJ,EAAK0iH,GAE1D,IAAIx9F,EAAKllB,EAAIslB,QAAQ25F,QAAQC,iBAAiB,GAExCh6F,GAAMA,EAAGiwB,eACbn1C,EAAIC,eAAe,CACjB/G,KAAM,YACNmxC,WAAYA,EACZjkC,KAAM+9I,EACNzhC,gBAAiBA,IAKvB,SAASsgC,EAAuB34G,EAAY85G,EAAUnkJ,EAAK0iH,GAEzD,IAAIx9F,EAAKllB,EAAIslB,QAAQ25F,QAAQC,iBAAiB,GAExCh6F,GAAMA,EAAGiwB,eACbn1C,EAAIC,eAAe,CACjB/G,KAAM,WACNmxC,WAAYA,EACZjkC,KAAM+9I,EACNzhC,gBAAiBA,IAKvBvmH,EAAOC,QAAUpD,G,uBC/cjB,IAAIqD,EAAS,EAAQ,QAEjB+lB,EAAU,EAAQ,QAElB9E,EAAU,EAAQ,QAElB8vD,EAAY9vD,EAAQ8vD,UAoBpBx0E,EAAOyD,EAAOzD,KACd8mB,EAAWrjB,EAAOqjB,SAClB0kI,GAAiC,EA8BjChnI,EAAgB,SAAU9jB,GAC5B,IAAIwlB,EAAgBxlB,EAAOwlB,cACvBW,EAAanmB,EAAOJ,KAMpB8mB,EAAavmB,KAAKH,OAAS+C,EAAO8E,MAAM7H,GAM5CG,KAAKP,KAAOumB,EAMZhmB,KAAKqlB,cAAgBA,EAMrBrlB,KAAK4qJ,eAAiBC,EAAYxlI,GAClC,IAAIylI,EAAgBC,EAAe/kI,GAMnChmB,KAAK04C,YAAcoyG,EAAcpyG,YAMjC14C,KAAK6kI,eAAiBimB,EAAcjmB,eAMpC7kI,KAAKgrJ,OAASF,EAAcE,OAAO3lI,GAEb,cAAlBA,GACF4lI,EAAqB1kI,GACrB2kI,EAAuB3kI,IACI,aAAlBlB,EACTkB,EAAWjC,WAAa6mI,EAA+B5kI,GAErD0kI,EAAqB1kI,GAAY,IAGnC3jB,EAAOyqC,OAAyB,WAAlBhoB,GAA8BkB,EAAWjB,YACvD2lI,EAAqB1kI,KAIzB5C,EAAc7V,UAAY,CACxBC,YAAa4V,EACbkjB,iBAAkB,SAAUl5B,GAC1B,IAAIy9I,EAAaprJ,KAAK4qJ,eAAej9I,GAErC,OAAO3N,KAAKgrJ,OAAOI,EAAYz9I,IAEjCi3H,cAAe,WACb,OAAOhiI,EAAOiC,KAAK7E,KAAK4qJ,eAAgB5qJ,QAG5C,IAAI+qJ,EAAiBpnI,EAAconI,eAAiB,CAClDnzI,MAAO,CACL8gC,YAAa2yG,EAAgB,SAM7BxmB,eAAgB,WACd,IAAIt+G,EAAavmB,KAAKH,OACtB,OAAO+C,EAAOiC,KAAkC,aAA7B0hB,EAAWlB,cAA+B,SAAU1X,EAAO29I,GAE5E,OADCA,IAAiB39I,EAAQ3N,KAAK4qJ,eAAej9I,IACvC49I,EAAcz+I,KAAK9M,KAAM2N,IAC9B,SAAUA,EAAO29I,EAAcp8I,GAGjC,IAAIs8I,IAAmBt8I,EAGvB,OAFCo8I,IAAiB39I,EAAQ3N,KAAK4qJ,eAAej9I,IAC9CuB,EAAMyZ,EAAQuvG,SAASvqH,EAAO4Y,EAAWklI,aAAcv8I,GAChDs8I,EAAiBt8I,EAAMyZ,EAAQo/F,UAAU74G,EAAK,SACpDlP,OAELgrJ,OAAQ,CACNU,OAAQ,SAAUN,GAChB,OAAOziI,EAAQo/F,UAAUp/F,EAAQuvG,SAASkzB,EAAYprJ,KAAKH,OAAO4rJ,cAAe,SAEnFhlE,SAAU8kE,EACVI,UAAW,SAAUP,EAAYz9I,GAC/B,IAAIgZ,EAASilI,EAAmB9+I,KAAK9M,KAAM2N,GAM3C,OAJc,MAAVgZ,IACFA,EAASgC,EAAQo/F,UAAUp/F,EAAQuvG,SAASkzB,EAAYprJ,KAAKH,OAAO4rJ,cAAe,SAG9E9kI,GAETi4H,MAAOiN,IAGXC,SAAUC,GAA8B,SAAUn0I,EAAOjK,GACvD,OAAOgb,EAAQkwG,UAAUjhH,EAAOjK,MAElCq+I,gBAAiBD,GAA8B,SAAUn0I,EAAOjK,GAC9D,OAAOgb,EAAQkwG,UAAUjhH,EAAO,KAAMjK,MAExCs+I,eAAgBF,GAA8B,SAAUn0I,EAAOjK,GAC7D,OAAOgb,EAAQkwG,UAAUjhH,EAAO,KAAM,KAAMjK,MAE9Cu+I,WAAYH,GAA8B,SAAUn0I,EAAOjK,GACzD,OAAOgb,EAAQmwG,YAAYlhH,EAAOjK,MAEpClM,QAAS,CACPi3C,YAAa2yG,EAAgB,WAC7BL,OAAQmB,EAAU,CAAC,EAAG,KAExBvvG,MAAO,CACLlE,YAAa2yG,EAAgB,SAC7BL,OAAQ,CACNU,OAAQG,EACRplE,SAAUolE,EACVF,UAAWE,EACXjN,MAAOiN,IAGXh5G,OAAQ,CACN6F,YAAa,SAAU/qC,EAAO4M,EAAQE,GACpC,IAAI2xI,EAAYpsJ,KAAK6mC,iBAAiBl5B,GAEtC,GAAI/K,EAAOid,SAASusI,GAClB3xI,EAAO,SAAU2xI,QACZ,GAAInmI,EAASmmI,GAClB,IAAK,IAAIz/I,KAAQy/I,EACXA,EAAUrvI,eAAepQ,IAC3B8N,EAAO9N,EAAMy/I,EAAUz/I,KAK/Bq+I,OAAQ,CACNU,OAAQW,EACR5lE,SAAU8kE,EACVI,UAAW,SAAUP,EAAYz9I,GAC/B,IAAIgZ,EAASilI,EAAmB9+I,KAAK9M,KAAM2N,GAM3C,OAJc,MAAVgZ,IACFA,EAAS0lI,EAAav/I,KAAK9M,KAAMorJ,IAG5BzkI,GAETi4H,MAAOiN,IAGX9xG,WAAY,CACVrB,YAAa2yG,EAAgB,cAC7BL,OAAQmB,EAAU,CAAC,EAAG,MAI1B,SAASjB,EAAuB3kI,GAC9B,IAAIlC,EAAYkC,EAAWlC,UAC3BkC,EAAW+lI,kBAAmB,EAC9B1pJ,EAAOzD,KAAKklB,GAAW,SAAU5f,EAAO0C,GACtC1C,EAAM8nJ,YAAcplJ,EAGA,MAAhB1C,EAAM+gB,SACRe,EAAW+lI,kBAAmB,MAKpC,SAASnB,EAA+B5kI,GAEtC,IAAIjC,EAAaiC,EAAWjC,WACxBkB,EAASe,EAAWf,OACpBgnI,EAAcjmI,EAAWimI,YAAc,GAK3C,GAJArtJ,EAAKmlB,GAAY,SAAU2D,EAAM9gB,GAC/BqlJ,EAAYvkI,GAAQ9gB,MAGjBvE,EAAOogB,QAAQwC,GAAS,CAC3B,IAAIinI,EAAY,GAEZ7pJ,EAAOqjB,SAAST,GAClBrmB,EAAKqmB,GAAQ,SAAUW,EAAG8B,GACxB,IAAI9gB,EAAQqlJ,EAAYvkI,GACxBwkI,EAAmB,MAATtlJ,EAAgBA,EAAQwjJ,GAAiCxkI,KAIrEsmI,EAAU9B,GAAiCnlI,EAG7CA,EAASknI,EAAkBnmI,EAAYkmI,GAKzC,IAAK,IAAIx+I,EAAIqW,EAAWrZ,OAAS,EAAGgD,GAAK,EAAGA,IACzB,MAAbuX,EAAOvX,YACFu+I,EAAYloI,EAAWrW,IAC9BqW,EAAW0gD,OAKjB,SAASimF,EAAqB1kI,EAAYV,GACxC,IAAIL,EAASe,EAAWf,OACpBinI,EAAY,GAEZ7pJ,EAAOqjB,SAAST,GAClBrmB,EAAKqmB,GAAQ,SAAUW,GACrBsmI,EAAU5rJ,KAAKslB,MAEE,MAAVX,GACTinI,EAAU5rJ,KAAK2kB,GAGjB,IAAImnI,EAAgB,CAClB/0I,MAAO,EACPi7B,OAAQ,GAGLhtB,GAAmC,IAArB4mI,EAAUxhJ,QAAiB0hJ,EAAc5vI,eAAewJ,EAAW9mB,QAEpFgtJ,EAAU,GAAKA,EAAU,IAG3BC,EAAkBnmI,EAAYkmI,GAGhC,SAASV,EAA8Ba,GACrC,MAAO,CACLl0G,YAAa,SAAU/qC,EAAO4M,EAAQE,GACpC9M,EAAQ3N,KAAK6mC,iBAAiBl5B,GAE9B8M,EAAO,QAASmyI,EAAWryI,EAAO,SAAU5M,KAE9Cq9I,OAAQmB,EAAU,CAAC,EAAG,KAI1B,SAASE,EAAajB,GACpB,IAAI5lI,EAASxlB,KAAKH,OAAO2lB,OACzB,OAAOA,EAAO3Z,KAAK8d,MAAMgqD,EAAUy3E,EAAY,CAAC,EAAG,GAAI,CAAC,EAAG5lI,EAAOva,OAAS,IAAI,MAAW,GAG5F,SAASogJ,EAAgBrlI,GACvB,OAAO,SAAUrY,EAAO4M,EAAQE,GAC9BA,EAAOuL,EAAYhmB,KAAK6mC,iBAAiBl5B,KAI7C,SAAS49I,EAAcH,GACrB,IAAI5lI,EAASxlB,KAAKH,OAAO2lB,OACzB,OAAOA,EAAOxlB,KAAKH,OAAOoc,MAAQmvI,IAAeT,EAAgCS,EAAa5lI,EAAOva,OAASmgJ,GAGhH,SAASS,IACP,OAAO7rJ,KAAKH,OAAO2lB,OAAO,GAG5B,SAAS2mI,EAAUU,GACjB,MAAO,CACLnB,OAAQ,SAAUN,GAChB,OAAOz3E,EAAUy3E,EAAYyB,EAAc7sJ,KAAKH,OAAO2lB,QAAQ,IAEjEihE,SAAU8kE,EACVI,UAAW,SAAUP,EAAYz9I,GAC/B,IAAIgZ,EAASilI,EAAmB9+I,KAAK9M,KAAM2N,GAM3C,OAJc,MAAVgZ,IACFA,EAASgtD,EAAUy3E,EAAYyB,EAAc7sJ,KAAKH,OAAO2lB,QAAQ,IAG5DmB,GAETi4H,MAAOiN,GAIX,SAASD,EAAmBj+I,GAC1B,IAAI4Y,EAAavmB,KAAKH,OAClBwkB,EAAYkC,EAAWlC,UAE3B,GAAIkC,EAAW+lI,iBAAkB,CAC/B,IAAInmJ,EAAawd,EAAc+C,eAAe/Y,EAAO0W,GACjD5f,EAAQ4f,EAAUle,GAEtB,GAAI1B,GAASA,EAAM+gB,OACjB,OAAO/gB,EAAM+gB,OAAOxlB,KAAKP,OAK/B,SAASitJ,EAAkBnmI,EAAYkmI,GASrC,OARAlmI,EAAWf,OAASinI,EAEI,UAApBlmI,EAAW9mB,OACb8mB,EAAWklI,aAAe7oJ,EAAOqE,IAAIwlJ,GAAW,SAAUjoJ,GACxD,OAAOmkB,EAAQnN,MAAMhX,OAIlBioJ,EAOT,IAAI5B,EAAc,CAChBa,OAAQ,SAAU/9I,GAChB,OAAOgmE,EAAUhmE,EAAO3N,KAAKH,OAAOylB,WAAY,CAAC,EAAG,IAAI,IAE1DqmI,UAAW,SAAUh+I,GACnB,IAAI0W,EAAYrkB,KAAKH,OAAOwkB,UACxBle,EAAawd,EAAc+C,eAAe/Y,EAAO0W,GAAW,GAEhE,GAAkB,MAAdle,EACF,OAAOwtE,EAAUxtE,EAAY,CAAC,EAAGke,EAAUpZ,OAAS,GAAI,CAAC,EAAG,IAAI,IAGpEw7E,SAAU,SAAU94E,GAClB,IAAIxG,EAAQnH,KAAKH,OAAOykB,WAAatkB,KAAKH,OAAO2sJ,YAAY7+I,GAASA,EAEtE,OAAgB,MAATxG,EAAgBwjJ,EAAgCxjJ,GAEzDy3I,MAAOh8I,EAAOg2C,MA2LhB,SAAS47D,EAAWzsF,EAAO1Q,EAAGC,GAC5B,OAAOyQ,EAAQ1Q,GAAKC,EAAID,EAAIC,EAnL9BqM,EAAciC,gBAAkB,WAC9B,IAAID,EAAc,GAIlB,OAHA/iB,EAAOzD,KAAK4rJ,GAAgB,SAAUl+H,EAAS9kB,GAC7C4d,EAAY9kB,KAAKkH,MAEZ4d,GAOThC,EAAcmpI,iBAAmB,SAAUngJ,EAAMkgB,GAC/Ck+H,EAAep+I,GAAQkgB,GAOzBlJ,EAAcsqE,YAAc,SAAUjoE,GACpC,OAAO+kI,EAAehuI,eAAeiJ,IAUvCrC,EAAcopI,WAAa,SAAUvnI,EAAQvI,EAAU2C,GACjDhd,EAAOqjB,SAAST,GAClB5iB,EAAOzD,KAAKqmB,EAAQvI,EAAU2C,GAE9B3C,EAASnQ,KAAK8S,EAAS4F,IAI3B7B,EAAcqpI,UAAY,SAAUxnI,EAAQvI,EAAU2C,GACpD,IAAIqtI,EACAC,EAAYtqJ,EAAOogB,QAAQwC,GAAU,GAAK5iB,EAAOqjB,SAAST,GAAU,IAAMynI,GAAY,EAAM,MAKhG,OAJAtpI,EAAcopI,WAAWvnI,GAAQ,SAAUW,EAAGpe,GAC5C,IAAIolJ,EAASlwI,EAASnQ,KAAK8S,EAASuG,EAAGpe,GACvCklJ,EAAYC,EAAYC,EAASD,EAAUnlJ,GAAOolJ,KAE7CD,GAUTvpI,EAAc8E,gBAAkB,SAAU1C,GACxC,IACIqnI,EADA3zI,EAAM,GAQV,OANAsM,GAAO5mB,EAAK4rJ,GAAgB,SAAUr1F,EAAG1vC,GACnCD,EAAIhJ,eAAeiJ,KACrBvM,EAAIuM,GAAcD,EAAIC,GACtBonI,GAAY,MAGTA,EAAY3zI,EAAM,MAY3BkK,EAAckrE,mBAAqB,SAAUlpE,GAC3C,GAAIM,EAASN,GAAc,CACzB,IAAI06G,EAAQ,GACZlhI,EAAKwmB,GAAa,SAAUnhB,EAAM/E,GAChC4gI,EAAMx/H,KAAKpB,MAEbkmB,EAAc06G,MACT,KAAIz9H,EAAOogB,QAAQ2C,GAGxB,MAAO,GAFPA,EAAcA,EAAYre,QAU5B,OALAqe,EAAY9a,MAAK,SAAUwiJ,EAAOC,GAGhC,MAAiB,UAAVA,GAA+B,UAAVD,GAAgD,IAA3BA,EAAMx6H,QAAQ,SAAiB,GAAK,KAEhFlN,GAaThC,EAAc4pI,UAAY,SAAUC,EAAaC,GAC/C,MAAuB,UAAhBA,KAA6BD,GAAoD,IAArCA,EAAY36H,QAAQ46H,IAAsBD,IAAgBC,GAW/G9pI,EAAc+C,eAAiB,SAAU/Y,EAAO0W,EAAWqpI,GAIzD,IAHA,IAAIC,EACA7hJ,EAAMiH,IAED9E,EAAI,EAAGqK,EAAM+L,EAAUpZ,OAAQgD,EAAIqK,EAAKrK,IAAK,CACpD,IAAI2/I,EAAavpI,EAAUpW,GAAGN,MAE9B,GAAkB,MAAdigJ,EAAoB,CACtB,GAAIA,IAAejgJ,GAKM,kBAAfigJ,GAA2BA,IAAejgJ,EAAQ,GAC1D,OAAOM,EAGTy/I,GAA0BG,EAAeD,EAAY3/I,IAIzD,IAASA,EAAI,EAAGqK,EAAM+L,EAAUpZ,OAAQgD,EAAIqK,EAAKrK,IAAK,CACpD,IAAIxJ,EAAQ4f,EAAUpW,GAClBiZ,EAAWziB,EAAMyiB,SACjBa,EAAQtjB,EAAMsjB,MAElB,GAAIb,EAAU,CACZ,GAAIA,EAAS,MAAQnU,KACnB,GAAIyhG,EAAWzsF,EAAM,GAAIpa,EAAOuZ,EAAS,IACvC,OAAOjZ,OAEJ,GAAIiZ,EAAS,KAAOnU,KACzB,GAAIyhG,EAAWzsF,EAAM,GAAIb,EAAS,GAAIvZ,GACpC,OAAOM,OAEJ,GAAIumG,EAAWzsF,EAAM,GAAIb,EAAS,GAAIvZ,IAAU6mG,EAAWzsF,EAAM,GAAIpa,EAAOuZ,EAAS,IAC1F,OAAOjZ,EAGTy/I,GAA0BG,EAAe3mI,EAAS,GAAIjZ,GACtDy/I,GAA0BG,EAAe3mI,EAAS,GAAIjZ,IAI1D,GAAIy/I,EACF,OAAO//I,IAAUoF,IAAWsR,EAAUpZ,OAAS,EAAI0C,KAAWoF,IAAW,EAAI46I,EAG/E,SAASE,EAAepiJ,EAAKtE,GAC3B,IAAI2mJ,EAASjiJ,KAAKC,IAAIL,EAAMkC,GAExBmgJ,EAAShiJ,IACXA,EAAMgiJ,EACNH,EAAYxmJ,KASlB,IAAI5H,EAAWokB,EACfjhB,EAAOC,QAAUpD,G,uBCnmBjB,IAAI21D,EAAW,EAAQ,QAEvBvyD,EAAQg4F,WAAazlC,EAErB,IAAIpsC,EAAM,EAAQ,QAEdq5F,EAAO,EAAQ,QAEf4rC,EAAa5rC,EAAK4rC,WAClBC,EAA6B7rC,EAAK6rC,2BAKlCC,EAAgC,qBAAXrhI,UAA4BA,OAAOshI,iBACxDC,EAAkB,iDAClBC,EAAW,GAyBf,SAASl1H,EAAczN,EAAIkB,EAAGzd,EAAKm/I,GA6BjC,OA5BAn/I,EAAMA,GAAO,GAOTm/I,IAAcvlI,EAAImB,gBACpBqkI,EAAc7iI,EAAIkB,EAAGzd,GAQd4Z,EAAIw6C,QAAQU,SAAuB,MAAZr3C,EAAE4hI,QAAkB5hI,EAAE4hI,SAAW5hI,EAAE2uD,SAC/DpsE,EAAIub,IAAMkC,EAAE4hI,OACZr/I,EAAIwb,IAAMiC,EAAE6hI,QAEQ,MAAb7hI,EAAE2uD,SACPpsE,EAAIub,IAAMkC,EAAE2uD,QACZpsE,EAAIwb,IAAMiC,EAAE4uD,SAGV+yE,EAAc7iI,EAAIkB,EAAGzd,GAGtBA,EAGT,SAASo/I,EAAc7iI,EAAIkB,EAAGzd,GAE5B,GAAI4Z,EAAI46C,cAAgBj4C,EAAGk7F,sBAAuB,CAChD,IAAI8nC,EAAK9hI,EAAE+hI,QACPC,EAAKhiI,EAAEiiI,QAEX,GAAIb,EAAWtiI,GAAK,CAMlB,IAAIzlB,EAAMylB,EAAGk7F,wBAGb,OAFAz3G,EAAIub,IAAMgkI,EAAKzoJ,EAAIuE,UACnB2E,EAAIwb,IAAMikI,EAAK3oJ,EAAIwE,KAGnB,GAAIwjJ,EAA2BI,EAAU3iI,EAAIgjI,EAAIE,GAG/C,OAFAz/I,EAAIub,IAAM2jI,EAAS,QACnBl/I,EAAIwb,IAAM0jI,EAAS,IAMzBl/I,EAAIub,IAAMvb,EAAIwb,IAAM,EAYtB,SAASmkI,EAAeliI,GACtB,OAAOA,GAAKC,OAAOtkB,MAuBrB,SAASwkB,EAAerB,EAAIkB,EAAG0hI,GAG7B,GAFA1hI,EAAIkiI,EAAeliI,GAEN,MAATA,EAAElC,IACJ,OAAOkC,EAGT,IAAI46B,EAAY56B,EAAEltB,KACdqvJ,EAAUvnG,GAAaA,EAAU10B,QAAQ,UAAY,EAEzD,GAAKi8H,EAGE,CACL,IAAI71H,EAAsB,aAAdsuB,EAA2B56B,EAAEoiI,cAAc,GAAKpiI,EAAEqiI,eAAe,GAC7E/1H,GAASC,EAAczN,EAAIwN,EAAOtM,EAAG0hI,QAJrCn1H,EAAczN,EAAIkB,EAAGA,EAAG0hI,GACxB1hI,EAAEsiI,QAAUtiI,EAAE87G,WAAa97G,EAAE87G,WAAa,MAAQ97G,EAAEylH,QAAU,GAAK,EAUrE,IAAI8c,EAASviI,EAAEuiI,OAUf,OARe,MAAXviI,EAAEwiI,YAA4Br8H,IAAXo8H,GAAwBf,EAAgB/pF,KAAKz3C,EAAEltB,QACpEktB,EAAEwiI,MAAiB,EAATD,EAAa,EAAa,EAATA,EAAa,EAAa,EAATA,EAAa,EAAI,GAOxDviI,EAYT,SAASuhI,EAAiBziI,EAAI9e,EAAMkgB,EAASrd,GACvCy+I,EAqBFxiI,EAAGyiI,iBAAiBvhJ,EAAMkgB,EAASrd,GAGnCic,EAAG2jI,YAAY,KAAOziJ,EAAMkgB,GAYhC,SAASwiI,EAAoB5jI,EAAI9e,EAAMkgB,EAASrd,GAC1Cy+I,EACFxiI,EAAG4jI,oBAAoB1iJ,EAAMkgB,EAASrd,GAEtCic,EAAG6jI,YAAY,KAAO3iJ,EAAMkgB,GAYhC,IAAI/O,EAAOmwI,EAAc,SAAUthI,GACjCA,EAAEkD,iBACFlD,EAAE4iI,kBACF5iI,EAAE6iI,cAAe,GACf,SAAU7iI,GACZA,EAAE8iI,aAAc,EAChB9iI,EAAE6iI,cAAe,GAUnB,SAASvnB,EAAmCt7G,GAC1C,OAAmB,IAAZA,EAAEwiI,OAA2B,IAAZxiI,EAAEwiI,MAQ5B,SAASO,EAAa/iI,GAEpB,OAAOA,EAAEwiI,MAAQ,EAInBxsJ,EAAQu2B,cAAgBA,EACxBv2B,EAAQksJ,eAAiBA,EACzBlsJ,EAAQmqB,eAAiBA,EACzBnqB,EAAQurJ,iBAAmBA,EAC3BvrJ,EAAQ0sJ,oBAAsBA,EAC9B1sJ,EAAQmb,KAAOA,EACfnb,EAAQslI,mCAAqCA,EAC7CtlI,EAAQ+sJ,aAAeA,G,uBCzPvB,IAAI5sJ,EAAU,EAAQ,QAElB+mD,EAAY,EAAQ,QAoBpB8lG,EAAiB,GACjBC,EAAe/lG,EAAUrqD,OAAO,CAClCC,KAAM,WACNuJ,KAAM,WAKJhJ,KAAK6vJ,WAAa,IAAI/sJ,EAAQ6B,MAC9B3E,KAAKsD,MAAMgC,IAAItF,KAAK6vJ,YAKpB7vJ,KAAK49C,MAKL59C,KAAK89B,cAMPxsB,OAAQ,SAAUxP,EAAahC,EAASyG,EAAK23B,GAC3C,IAAI4xH,EAAY9vJ,KAAK6vJ,WACjBtvJ,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MACfv9C,EAAWyB,EAAYxB,iBACvB6B,EAAa9B,EAAS8B,WACtBowC,EAAcw9G,EAAgBjuJ,GAGlC,SAASwD,EAAI0qJ,GACX,IAAI9oE,EAAO+oE,EAAM1vJ,EAAMuvJ,EAAWE,EAAc7tJ,EAAY9B,GAC5D6vJ,EAAehpE,EAAM3mF,EAAMyvJ,EAAcz9G,GAG3C,SAAShqC,EAAOynJ,EAAcG,GAC5B,IAAIjpE,EAAOvpC,EAAQpE,iBAAiB42G,GAChC54I,EAAS64I,EAAiB7vJ,EAAMyvJ,EAAc7tJ,EAAY9B,GAC9DE,EAAKqhC,iBAAiBouH,EAAc9oE,GACpC,IAAIib,EAAiBjkE,IAAiC,IAAtBA,EAAQvgB,UAAsB,KAAO7b,EACrEgB,EAAQk8B,YAAYkoD,EAAM,CACxB11E,MAAO,CACL+F,OAAQA,IAET4qF,EAAgB6tD,GACnBE,EAAehpE,EAAM3mF,EAAMyvJ,EAAcz9G,GAG3C,SAASlQ,EAAO8tH,GACd,IAAIjpE,EAAOvpC,EAAQpE,iBAAiB42G,GACpCL,EAAUztH,OAAO6kD,GAInB,GA1BA3mF,EAAK05B,KAAK0jB,GAASr4C,IAAIA,GAAKiD,OAAOA,GAAQ85B,OAAOA,GAAQqc,WA0BrD1+C,KAAK89B,aAAc,CACtB99B,KAAK89B,cAAe,EACpB,IAAIytB,EAAW+2B,EAAoBjiF,EAAUyB,GAAa,WAExDusB,YAAW,WACTyhI,EAAUnoH,uBAGdmoH,EAAUvlH,YAAYghB,GAGxBvrD,KAAK49C,MAAQr9C,GAEfkqD,yBAA0B,SAAU3oD,EAAahC,EAASyG,GACxDvG,KAAK89B,cAAe,EACpB99B,KAAK49C,MAAQ,KAEb59C,KAAK6vJ,WAAWtsJ,aAElBonD,kBAAmB,SAAU0lG,EAAYvuJ,EAAahC,GAMpD,IALA,IAAIS,EAAOuB,EAAYtB,UACnBH,EAAWyB,EAAYxB,iBACvB6B,EAAa9B,EAAS8B,WACtBowC,EAAcw9G,EAAgBjuJ,GAEzBlB,EAAYyvJ,EAAW97I,MAAO3T,EAAYyvJ,EAAWh2E,IAAKz5E,IAAa,CAC9E,IAAIsmF,EAAO+oE,EAAM1vJ,EAAMP,KAAK6vJ,WAAYjvJ,EAAWuB,EAAY9B,GAC/D6mF,EAAKzrC,aAAc,EACnBy0G,EAAehpE,EAAM3mF,EAAMK,EAAW2xC,KAG1ChkB,QAAS,aA8BT8T,OAAQ,WACNriC,KAAK6vJ,YAAc7vJ,KAAK6vJ,WAAWtsJ,YACnCvD,KAAK49C,MAAQ,QAIjB,SAAS0kC,EAAoBjiF,EAAUyB,EAAaqc,GAClD,IAAInc,EAAgB3B,EAASyvB,MACzB9jB,EAAO3L,EAAS2P,UAChBuyE,EAAS,IAAIz/E,EAAQyO,KAAK,CAC5BC,MAAO,CACL/L,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,UAGb6D,EAAsC,eAAhC/N,EAAcE,IAAI,UAA6B,QAAU,SAQnE,OAPAqgF,EAAOp0B,SAASp+C,EAAK,GACrBjN,EAAQk4C,UAAUunC,EAAQ,CACxB/wE,MAAO,CACLhQ,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,SAEdpK,EAAaqc,GACTokE,EAGT,SAAS6tE,EAAiB7vJ,EAAMK,EAAWuB,EAAY9B,GAGrD,IAFA,IAAIkX,EAAS,GAEJtJ,EAAI,EAAGA,EAAI9L,EAAW8I,OAAQgD,IAAK,CAC1C,IAAIzL,EAAUL,EAAW8L,GACrBN,EAAQpN,EAAK2B,IAAI3B,EAAKyJ,aAAaxH,GAAU5B,GAE5C0vJ,EAAa3iJ,EAAOtN,EAASu3F,QAAQp1F,GAAS/C,OACjD8X,EAAO1W,KAAKR,EAAS0L,YAAY4B,EAAOnL,IAI5C,OAAO+U,EAGT,SAAS04I,EAAM1vJ,EAAMuvJ,EAAWlvJ,EAAWuB,EAAY9B,GACrD,IAAIkX,EAAS64I,EAAiB7vJ,EAAMK,EAAWuB,EAAY9B,GACvD6mF,EAAO,IAAIpkF,EAAQy7C,SAAS,CAC9B/sC,MAAO,CACL+F,OAAQA,GAEV3F,QAAQ,EACRR,GAAI,KAIN,OAFA0+I,EAAUxqJ,IAAI4hF,GACd3mF,EAAKqhC,iBAAiBhhC,EAAWsmF,GAC1BA,EAGT,SAAS6oE,EAAgBjuJ,GACvB,IAAIF,EAASE,EAAYI,IAAI,UAAU,GAEvC,OADW,IAAXN,IAAoBA,EAAS+tJ,GACtB,CACLpuJ,UAAWO,EAAYmf,SAAS,aAAa29B,eAC7Ch9C,OAAkB,MAAVA,EAAiBA,EAAS+tJ,GAItC,SAASO,EAAezkI,EAAIlrB,EAAMK,EAAW2xC,GAC3C,IAAIhxC,EAAYgxC,EAAYhxC,UAE5B,GAAIhB,EAAKg8C,cAAe,CACtB,IAAIsE,EAAiBtgD,EAAK6gB,aAAaxgB,GAAWqgB,SAAS,aAC3D1f,EAAYs/C,EAAejC,eAG7BnzB,EAAGswB,SAASx6C,GACZ,IAAIk7C,EAAUhxB,EAAGjmB,MACjBi3C,EAAQ/qC,KAAO,KAEf+qC,EAAQoC,OAASt+C,EAAKohB,cAAc/gB,EAAW,SAE/C67C,EAAQh7C,QAAUlB,EAAKohB,cAAc/gB,EAAW,WAChD2xC,EAAY3wC,SAAW6pB,EAAGja,MAAM5P,OAAS2wC,EAAY3wC,QAuBvD,SAAS0uJ,EAAa7kJ,EAAKwoB,GACzB,MAAoB,aAAbA,EAAiC,MAAPxoB,EAAqB,MAAPA,GAAesN,MAAMtN,GAGtE,IAAIlM,EAAWqwJ,EACfltJ,EAAOC,QAAUpD,G,uBC1PjB,IAAIqD,EAAS,EAAQ,QAwBjBghB,EAAgB,CAIlB1hB,IAAK,SAAU8jB,EAAYje,EAAK8d,GAC9B,IAAIlY,EAAQ/K,EAAO8E,OAAO3G,EAAcilB,IAAe,IAAIje,IAC3D,OAAO8d,GAAajjB,EAAOogB,QAAQrV,GAASA,EAAMA,EAAM1C,OAAS,GAAa0C,IAG9E5M,EAAgB,CAClB6W,MAAO,CACL24I,OAAQ,CAAC,UAAW,WACpBC,SAAU,CAAC,kBAEb1E,SAAU,CACRyE,OAAQ,CAAC,EAAG,KACZC,SAAU,CAAC,EAAG,IAEhBxE,gBAAiB,CACfuE,OAAQ,CAAC,GAAK,GACdC,SAAU,CAAC,EAAG,IAEhBvE,eAAgB,CACdsE,OAAQ,CAAC,GAAK,IACdC,SAAU,CAAC,EAAG,IAEhBtE,WAAY,CACVqE,OAAQ,CAAC,GAAK,GACdC,SAAU,CAAC,EAAG,IAEhB/uJ,QAAS,CACP8uJ,OAAQ,CAAC,GAAK,GACdC,SAAU,CAAC,EAAG,IAEhB39G,OAAQ,CACN09G,OAAQ,CAAC,SAAU,YAAa,WAChCC,SAAU,CAAC,SAEbz2G,WAAY,CACVw2G,OAAQ,CAAC,GAAI,IACbC,SAAU,CAAC,EAAG,KAGdjxJ,EAAWqkB,EACflhB,EAAOC,QAAUpD,G,qBCpEjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBpF,EAAQ,EAAQ,QAEhB+iE,EAAa,EAAQ,QAErBh0C,EAAS,EAAQ,QAEjBsnE,EAAgB,EAAQ,QAExB3pB,EAAyB2pB,EAAc3pB,uBACvC5B,EAAsBurB,EAAcvrB,oBAEpCmW,EAAmB,EAAQ,QAE3B1P,EAAsB0P,EAAiB1P,oBAEvC+tD,EAAoB,EAAQ,QA2B5B13H,EAAWrjB,EAAOqjB,SAClBwqI,EAAY,YACZC,GAAmB,EAGnBC,EAAY,QACZC,EAAY,CACd,aAAgBC,eAAiBJ,EAAY14I,MAAQ84I,aACrD,WAAcC,aAAeL,EAAY14I,MAAQ+4I,WAEjD,QAAW/4I,MACX,OAAUA,MACV,KAAQA,OAINg5I,SAAyBC,cAAgBP,EAAY14I,MAAQi5I,YAC7DC,SAAwBH,aAAeL,EAAY14I,MAAQ+4I,WAC3DI,SAAyBC,cAAgBV,EAAY14I,MAAQo5I,YAEjE,SAASC,EAAejuI,GAEtB,OAAOA,EAAKkuI,UAAY,MAAQN,EAAkBG,EAGpD,SAASI,EAAWC,GAClB,IAAIzxB,EAAOyxB,EAAcxjJ,YAEzB,OAAO+xH,IAAS/nH,MAAQw5I,EAAcjqJ,QAAU,IAAIw4H,EAAKyxB,GAG3D,IAAIC,EAA0B,CAAC,gBAAiB,YAAa,UAAW,sBAAuB,WAAY,aAAc,cAAe,kBAAmB,SAAU,YAAa,cAAe,aAC7LC,EAAmB,CAAC,UAAW,qBAAsB,cAEzD,SAASC,EAAmBt/I,EAAQrS,GAClC6C,EAAOzD,KAAKqyJ,EAAwBh6F,OAAOz3D,EAAO4xJ,kBAAoB,KAAK,SAAUt3I,GAC/Eta,EAAOgd,eAAe1C,KACxBjI,EAAOiI,GAAYta,EAAOsa,OAG9BjI,EAAOu/I,iBAAmB5xJ,EAAO4xJ,iBACjC/uJ,EAAOzD,KAAKsyJ,GAAkB,SAAUp3I,GACtCjI,EAAOiI,GAAYzX,EAAO8E,MAAM3H,EAAOsa,OAEzCjI,EAAOw/I,iBAAmBhvJ,EAAOpD,OAAOO,EAAO6xJ,kBAajD,IAAIrzI,EAAO,SAAUpc,EAAY6c,GAC/B7c,EAAaA,GAAc,CAAC,IAAK,KAKjC,IAJA,IAAI0vJ,EAAiB,GACjBx1E,EAAiB,GACjBy1E,EAAqB,GAEhB7jJ,EAAI,EAAGA,EAAI9L,EAAW8I,OAAQgD,IAAK,CAE1C,IAAI8jJ,EAAgB5vJ,EAAW8L,GAE3BrL,EAAOid,SAASkyI,GAClBA,EAAgB,IAAIpU,EAAkB,CACpChxI,KAAMolJ,IAEGA,aAAyBpU,IACpCoU,EAAgB,IAAIpU,EAAkBoU,IAGxC,IAAIC,EAAgBD,EAAcplJ,KAClColJ,EAActyJ,KAAOsyJ,EAActyJ,MAAQ,QAEtCsyJ,EAAc5hE,WACjB4hE,EAAc5hE,SAAW6hE,EACzBD,EAAc3hE,cAAgB,GAGhC2hE,EAAcrhE,UAAYqhE,EAAcrhE,WAAa,GACrDrU,EAAex7E,KAAKmxJ,GACpBH,EAAeG,GAAiBD,EAChCA,EAAc5qJ,MAAQ8G,EAElB8jJ,EAAcE,wBAChBH,EAAmBE,GAAiB,IASxChyJ,KAAKmC,WAAak6E,EAMlBr8E,KAAKkrF,gBAAkB2mE,EAKvB7xJ,KAAKgf,UAAYA,EAKjBhf,KAAKg9F,SAQLh9F,KAAKkyJ,SAAW,KAChBlyJ,KAAKmyJ,OAAS,EACdnyJ,KAAKqxJ,UAAY,EAOjBrxJ,KAAKoyJ,SAAW,GAKhBpyJ,KAAKqyJ,UAAY,GAKjBryJ,KAAKsyJ,QAAU,GAOftyJ,KAAKuyJ,cAAgB,GAOrBvyJ,KAAKwyJ,QAAU,GAOfxyJ,KAAKkiD,QAAU,GAOfliD,KAAKyyJ,aAAe,GAOpBzyJ,KAAK0yJ,cAAgB,GAOrB1yJ,KAAK2yJ,aAAe,GAOpB3yJ,KAAK4yJ,YAAc,GAOnB5yJ,KAAK6yJ,WAAa,IAMlB7yJ,KAAK8yJ,YAAc,EAMnB9yJ,KAAKmrF,SAULnrF,KAAK+yJ,WAAa,GAMlB/yJ,KAAK6oD,QAAU,GAQf7oD,KAAKgzJ,mBAAqB,GAO1BhzJ,KAAKizJ,mBAAqBrjE,EAAoB5vF,MAM9CA,KAAKkzJ,oBAAsBpB,EAM3B9xJ,KAAK4xJ,iBAAmB,GAexB5xJ,KAAKiwF,WAAajwF,KAAKizJ,mBAAmBhjE,YAGxCkjE,EAAY50I,EAAKzQ,UA6VrB,SAASslJ,EAAc5tC,EAASp6B,EAASioE,EAAWC,EAAYj5E,GAC9D,IAAIk5E,EAAW3C,EAAUxlE,EAAQ3rF,MAC7B+zJ,EAAiBF,EAAa,EAC9BvjJ,EAAMq7E,EAAQz+E,KACd8mJ,EAAmBjuC,EAAQz1G,GAAKyjJ,GAEpC,GAAIC,GAAoBA,EAAiBxoJ,OAASooJ,EAAW,CAI3D,IAHA,IAAIK,EAAW,IAAIH,EAAS1nJ,KAAK6E,IAAI2pE,EAAMm5E,EAAiBH,EAAWA,IAG9D76I,EAAI,EAAGA,EAAIi7I,EAAiBxoJ,OAAQuN,IAC3Ck7I,EAASl7I,GAAKi7I,EAAiBj7I,GAGjCgtG,EAAQz1G,GAAKyjJ,GAAkBE,EAIjC,IAAK,IAAIz9I,EAAIq9I,EAAaD,EAAWp9I,EAAIokE,EAAKpkE,GAAKo9I,EACjD7tC,EAAQz1G,GAAKlP,KAAK,IAAI0yJ,EAAS1nJ,KAAK6E,IAAI2pE,EAAMpkE,EAAGo9I,KAIrD,SAASM,EAAqBxwI,GAC5B,IAAI2uI,EAAqB3uI,EAAK+vI,oBAC9BtwJ,EAAOzD,KAAK2yJ,GAAoB,SAAU8B,EAAiB7jJ,GACzD,IAAIq7E,EAAUjoE,EAAK+nE,gBAAgBn7E,GAE/B44C,EAAcyiC,EAAQziC,YAE1B,GAAIA,EAAa,CACfirG,EAAkB9B,EAAmB/hJ,GAAO,IAAIkhJ,EAAetoG,EAAYrkC,WAAWrZ,QAGtF,IAAK,IAAIgD,EAAI,EAAGA,EAAI2lJ,EAAgB3oJ,OAAQgD,IAC1C2lJ,EAAgB3lJ,GAAKyiJ,EAGvB,IAASziJ,EAAI,EAAGA,EAAIkV,EAAKgvI,OAAQlkJ,IAE/B2lJ,EAAgBzwI,EAAKjhB,IAAI6N,EAAK9B,IAAMA,MAM5C,SAAS4lJ,EAAqB1wI,EAAMwuB,EAAU3vB,GAC5C,IAAIvW,EAEJ,GAAgB,MAAZkmC,EAAkB,CACpB,IAAI0hH,EAAYlwI,EAAK0vI,WACjBiB,EAAajoJ,KAAK+N,MAAMoI,EAAWqxI,GACnCU,EAAc/xI,EAAWqxI,EACzBtjJ,EAAMoT,EAAKhhB,WAAWwvC,GACtBqiH,EAAQ7wI,EAAKivI,SAASriJ,GAAK+jJ,GAE/B,GAAIE,EAAO,CACTvoJ,EAAMuoJ,EAAMD,GACZ,IAAIprG,EAAcxlC,EAAK+nE,gBAAgBn7E,GAAK44C,YAExCA,GAAeA,EAAYrkC,WAAWrZ,SACxCQ,EAAMk9C,EAAYrkC,WAAW7Y,KAKnC,OAAOA,EAweT,SAASwoJ,EAA0B/jJ,GACjC,OAAOA,EAGT,SAASgkJ,EAAuBhkJ,GAC9B,OAAIA,EAAMlQ,KAAKmyJ,QAAUjiJ,GAAO,EACvBlQ,KAAKkyJ,SAAShiJ,IAGf,EA6CV,SAASiQ,EAAMgD,EAAMnB,GACnB,IAAI7Z,EAAKgb,EAAKmvI,QAAQtwI,GAWtB,OATU,MAAN7Z,IACFA,EAAK0rJ,EAAqB1wI,EAAMA,EAAKgxI,UAAWnyI,IAGxC,MAAN7Z,IAEFA,EAAKwoJ,EAAY3uI,GAGZ7Z,EAGT,SAASisJ,EAAoBjyJ,GAK3B,OAJKS,EAAOogB,QAAQ7gB,KAClBA,EAAa,CAACA,IAGTA,EAkTT,SAASkyJ,EAAyBxpE,EAAUypE,GAC1C,IAAIC,EAAgB1pE,EAAS1oF,WACzBghB,EAAO,IAAI5E,EAAK3b,EAAOqE,IAAIstJ,EAAe1pE,EAASW,iBAAkBX,GAAWA,EAAS7rE,WAE7F0yI,EAAmBvuI,EAAM0nE,GAIzB,IAHA,IAAI26B,EAAUriG,EAAKivI,SAAW,GAC1BoC,EAAkB3pE,EAASunE,SAEtBnkJ,EAAI,EAAGA,EAAIsmJ,EAActpJ,OAAQgD,IAAK,CAC7C,IAAI8B,EAAMwkJ,EAActmJ,GAEpBumJ,EAAgBzkJ,KAGdnN,EAAOiwB,QAAQyhI,EAAmBvkJ,IAAQ,GAC5Cy1G,EAAQz1G,GAAO0kJ,EAAcD,EAAgBzkJ,IAC7CoT,EAAK4vI,WAAWhjJ,GAAO2kJ,IACvBvxI,EAAK0lC,QAAQ94C,GAAO,MAGpBy1G,EAAQz1G,GAAOykJ,EAAgBzkJ,IAKrC,OAAOoT,EAGT,SAASsxI,EAAcE,GAGrB,IAFA,IAAIC,EAAc,IAAI78I,MAAM48I,EAAiB1pJ,QAEpCuN,EAAI,EAAGA,EAAIm8I,EAAiB1pJ,OAAQuN,IAC3Co8I,EAAYp8I,GAAK84I,EAAWqD,EAAiBn8I,IAG/C,OAAOo8I,EAGT,SAASF,IACP,MAAO,CAAC3hJ,KAAWA,KAzyCrBogJ,EAAU1zJ,KAAO,OAMjB0zJ,EAAU52G,eAAgB,EAsB1B42G,EAAUxyI,aAAe,SAAU5Q,GAMjC,MALmB,kBAARA,IACPgJ,MAAMhJ,IAAS/P,KAAKkrF,gBAAgBnuE,eAAehN,MACrDA,EAAM/P,KAAKmC,WAAW4N,IAGjBA,GAUTojJ,EAAU3nE,iBAAmB,SAAUz7E,GAErC,OAAO/P,KAAKkrF,gBAAgBlrF,KAAK2gB,aAAa5Q,KAOhDojJ,EAAU0B,qBAAuB,WAC/B,OAAO70J,KAAKizJ,mBAAmBtiE,gBAAgBrpF,SAajD6rJ,EAAUnpJ,aAAe,SAAUmmF,EAAUjgF,GAC3C,IAAI4kJ,EAAoB90J,KAAKizJ,mBAE7B,GAAW,MAAP/iJ,EACF,OAAO4kJ,EAAkBlkE,uBAAuBT,GAGlD,IAAI/F,EAAO0qE,EAAkB9lH,OAAOmhD,GACpC,OAAe,IAARjgF,GACJk6E,GAAQ,IAAI9iF,QAAU8iF,GAAQA,EAAKl6E,IAcxCijJ,EAAU/vI,SAAW,SAAU7iB,EAAMw0J,EAAUv6D,GAC7C,IAAIw6D,EAAc5nH,EAAO0V,WAAWviD,IAASqC,EAAOiV,YAAYtX,GAE5Dy0J,IACFz0J,EAAO,IAAI4oF,EAAoB5oF,EAAMP,KAAKmC,WAAW8I,SAGvDjL,KAAKmrF,SAAW5qF,EAEhBP,KAAKoyJ,SAAW,GAChBpyJ,KAAKkyJ,SAAW,KAChBlyJ,KAAKqyJ,UAAY0C,GAAY,GAC7B/0J,KAAKsyJ,QAAU,GACftyJ,KAAKi1J,iBAAmB,GAEnBz6D,IACHx6F,KAAKu8C,eAAgB,GAOvBv8C,KAAKygG,sBAAwB1V,EAAuB/qF,KAAKmrF,SAASlrF,YAAYkuC,cAE9EnuC,KAAKk1J,gBAAkB16D,EAAiBA,GAAkBx6F,KAAKygG,sBAC/DzgG,KAAKm1J,yBAA2BpqE,EAAuBN,UAEvDzqF,KAAK+yJ,WAAa,GAElB/yJ,KAAKo1J,sBAAsB,EAAG70J,EAAK4hB,SAG/B5hB,EAAKqpF,OACP5pF,KAAKu8C,eAAgB,IAIzB42G,EAAU5nE,YAAc,WACtB,OAAOvrF,KAAKmrF,UAOdgoE,EAAUppE,WAAa,SAAUxpF,GAC/B,IAAI80J,EAAUr1J,KAAKmrF,SACf52E,EAAQvU,KAAKmiB,QACjBkzI,EAAQtrE,WAAWxpF,GACnB,IAAI85E,EAAMg7E,EAAQlzI,QAEbkzI,EAAQxrE,aACXxP,GAAO9lE,GAGTvU,KAAKo1J,sBAAsB7gJ,EAAO8lE,IAoBpC84E,EAAUrgB,aAAe,SAAUwiB,EAAQ9sI,GAUzC,IATA,IAAI6qI,EAAYrzJ,KAAK6yJ,WACjBrtC,EAAUxlH,KAAKoyJ,SACfjwJ,EAAanC,KAAKmC,WAClBozJ,EAASpzJ,EAAW8I,OACpBozE,EAAYr+E,KAAK+yJ,WACjBx+I,EAAQvU,KAAKmiB,QACbk4D,EAAM9lE,EAAQ1I,KAAK4E,IAAI6kJ,EAAOrqJ,OAAQud,EAAQA,EAAMvd,OAAS,GAC7DuqJ,EAAqBx1J,KAAK8yJ,YAErB7kJ,EAAI,EAAGA,EAAIsnJ,EAAQtnJ,IAAK,CAC/B,IAAI8B,EAAM5N,EAAW8L,GAEhBowE,EAAUtuE,KACbsuE,EAAUtuE,GAAO2kJ,KAGdlvC,EAAQz1G,KACXy1G,EAAQz1G,GAAO,IAGjBqjJ,EAAc5tC,EAASxlH,KAAKkrF,gBAAgBn7E,GAAMsjJ,EAAWmC,EAAoBn7E,GACjFr6E,KAAK8yJ,YAActtC,EAAQz1G,GAAK9E,OAKlC,IAFA,IAAIwqJ,EAAgB,IAAI19I,MAAMw9I,GAErBrlJ,EAAMqE,EAAOrE,EAAMmqE,EAAKnqE,IAAO,CAKtC,IAJA,IAAIwlJ,EAAYxlJ,EAAMqE,EAClBu/I,EAAajoJ,KAAK+N,MAAM1J,EAAMmjJ,GAC9BU,EAAc7jJ,EAAMmjJ,EAEfp9I,EAAI,EAAGA,EAAIs/I,EAAQt/I,IAAK,CAC3BlG,EAAM5N,EAAW8T,GAArB,IAEIxK,EAAMzL,KAAKm1J,yBAAyBG,EAAOI,IAAcD,EAAe1lJ,EAAK2lJ,EAAWz/I,GAE5FuvG,EAAQz1G,GAAK+jJ,GAAYC,GAAetoJ,EACxC,IAAIkqJ,EAAet3E,EAAUtuE,GAC7BtE,EAAMkqJ,EAAa,KAAOA,EAAa,GAAKlqJ,GAC5CA,EAAMkqJ,EAAa,KAAOA,EAAa,GAAKlqJ,GAG1C+c,IACFxoB,KAAKqyJ,UAAUniJ,GAAOsY,EAAMktI,IAIhC11J,KAAKqxJ,UAAYrxJ,KAAKmyJ,OAAS93E,EAE/Br6E,KAAK6oD,QAAU,GACf8qG,EAAqB3zJ,OAGvBmzJ,EAAUiC,sBAAwB,SAAU7gJ,EAAO8lE,GAEjD,KAAI9lE,GAAS8lE,GAAb,CAiBA,IAbA,IAUIu7E,EAVAvC,EAAYrzJ,KAAK6yJ,WACjBwC,EAAUr1J,KAAKmrF,SACfq6B,EAAUxlH,KAAKoyJ,SACfjwJ,EAAanC,KAAKmC,WAClBozJ,EAASpzJ,EAAW8I,OACpB4qJ,EAAmB71J,KAAKkrF,gBACxB6pE,EAAW/0J,KAAKqyJ,UAChByD,EAAS91J,KAAKsyJ,QACdj0E,EAAYr+E,KAAK+yJ,WACjBgD,EAAkB/1J,KAAKi1J,iBAAmB,GAE1CO,EAAqBx1J,KAAK8yJ,YAErB7kJ,EAAI,EAAGA,EAAIsnJ,EAAQtnJ,IAAK,CAC/B,IAAI8B,EAAM5N,EAAW8L,GAEhBowE,EAAUtuE,KACbsuE,EAAUtuE,GAAO2kJ,KAGnB,IAAItpE,EAAUyqE,EAAiB9lJ,GAEI,IAA/Bq7E,EAAQsF,UAAU//C,WACpBilH,EAAa51J,KAAKg2J,YAAc/nJ,GAGD,IAA7Bm9E,EAAQsF,UAAUulE,SACpBj2J,KAAKm0J,UAAYlmJ,GAGdu3G,EAAQz1G,KACXy1G,EAAQz1G,GAAO,IAGjBqjJ,EAAc5tC,EAASp6B,EAASioE,EAAWmC,EAAoBn7E,GAC/Dr6E,KAAK8yJ,YAActtC,EAAQz1G,GAAK9E,OAKlC,IAFA,IAAIM,EAAW,IAAIwM,MAAMw9I,GAEhBrlJ,EAAMqE,EAAOrE,EAAMmqE,EAAKnqE,IAAO,CAEtC3E,EAAW8pJ,EAAQvrE,QAAQ55E,EAAK3E,GAUhC,IAHA,IAAIuoJ,EAAajoJ,KAAK+N,MAAM1J,EAAMmjJ,GAC9BU,EAAc7jJ,EAAMmjJ,EAEfp9I,EAAI,EAAGA,EAAIs/I,EAAQt/I,IAAK,CAC3BlG,EAAM5N,EAAW8T,GAArB,IACIigJ,EAAa1wC,EAAQz1G,GAAK+jJ,GAE1BroJ,EAAMzL,KAAKk1J,gBAAgB3pJ,EAAUwE,EAAKG,EAAK+F,GAEnDigJ,EAAWnC,GAAetoJ,EAC1B,IAAIkqJ,EAAet3E,EAAUtuE,GAC7BtE,EAAMkqJ,EAAa,KAAOA,EAAa,GAAKlqJ,GAC5CA,EAAMkqJ,EAAa,KAAOA,EAAa,GAAKlqJ,GAK9C,IAAK4pJ,EAAQzrE,KAAM,CACjB,IAAIj9E,EAAOooJ,EAAS7kJ,GAEpB,GAAI3E,GAAoB,MAARoB,EAGd,GAAqB,MAAjBpB,EAASoB,KAGXooJ,EAAS7kJ,GAAOvD,EAAOpB,EAASoB,UAC3B,GAAkB,MAAdipJ,EAAoB,CAC7B,IAAIO,EAAUh0J,EAAWyzJ,GACrBQ,EAAe5wC,EAAQ2wC,GAASrC,GAEpC,GAAIsC,EAAc,CAChBzpJ,EAAOypJ,EAAarC,GACpB,IAAIprG,EAAcktG,EAAiBM,GAASxtG,YAExCA,GAAeA,EAAYrkC,WAAWrZ,SACxC0B,EAAOg8C,EAAYrkC,WAAW3X,KAQtC,IAAIxE,EAAiB,MAAZoD,EAAmB,KAAOA,EAASpD,GAElC,MAANA,GAAsB,MAARwE,IAEhBopJ,EAAgBppJ,GAAQopJ,EAAgBppJ,IAAS,EACjDxE,EAAKwE,EAEDopJ,EAAgBppJ,GAAQ,IAC1BxE,GAAM,SAAW4tJ,EAAgBppJ,IAGnCopJ,EAAgBppJ,MAGZ,MAANxE,IAAe2tJ,EAAO5lJ,GAAO/H,KAI5BktJ,EAAQxrE,YAAcwrE,EAAQ9qE,OAEjC8qE,EAAQ9qE,QAGVvqF,KAAKqxJ,UAAYrxJ,KAAKmyJ,OAAS93E,EAE/Br6E,KAAK6oD,QAAU,GACf8qG,EAAqB3zJ,QA4EvBmzJ,EAAUhxI,MAAQ,WAChB,OAAOniB,KAAKmyJ,QAGdgB,EAAUkD,WAAa,WACrB,IACI51J,EAAUT,KAAKkyJ,SAEnB,GAAIzxJ,EAAS,CACX,IAAIq/H,EAAOr/H,EAAQsN,YACfuoJ,EAAYt2J,KAAKmyJ,OAErB,GAAIryB,IAAS/nH,MAAO,CAClBumH,EAAa,IAAIwB,EAAKw2B,GAEtB,IAAK,IAAIroJ,EAAI,EAAGA,EAAIqoJ,EAAWroJ,IAC7BqwH,EAAWrwH,GAAKxN,EAAQwN,QAG1BqwH,EAAa,IAAIwB,EAAKr/H,EAAQ81J,OAAQ,EAAGD,OAG3C,CAAIx2B,EAAOsxB,EAAepxJ,MAA1B,IACIs+H,EAAa,IAAIwB,EAAK9/H,KAAKmiB,SAE/B,IAASlU,EAAI,EAAGA,EAAIqwH,EAAWrzH,OAAQgD,IACrCqwH,EAAWrwH,GAAKA,EAIpB,OAAOqwH,GAWT60B,EAAUjxJ,IAAM,SAAU6N,EAAKG,GAG7B,KAAMA,GAAO,GAAKA,EAAMlQ,KAAKmyJ,QAC3B,OAAO96H,IAGT,IAAImuF,EAAUxlH,KAAKoyJ,SAEnB,IAAK5sC,EAAQz1G,GAEX,OAAOsnB,IAGTnnB,EAAMlQ,KAAKc,YAAYoP,GACvB,IAAI4jJ,EAAajoJ,KAAK+N,MAAM1J,EAAMlQ,KAAK6yJ,YACnCkB,EAAc7jJ,EAAMlQ,KAAK6yJ,WACzB2D,EAAahxC,EAAQz1G,GAAK+jJ,GAC1BnmJ,EAAQ6oJ,EAAWzC,GAmBvB,OAAOpmJ,GASTwlJ,EAAUsD,cAAgB,SAAU1mJ,EAAK2mJ,GACvC,KAAMA,GAAU,GAAKA,EAAS12J,KAAKqxJ,WACjC,OAAOh6H,IAGT,IAAIs/H,EAAW32J,KAAKoyJ,SAASriJ,GAE7B,IAAK4mJ,EAEH,OAAOt/H,IAGT,IAAIy8H,EAAajoJ,KAAK+N,MAAM88I,EAAS12J,KAAK6yJ,YACtCkB,EAAc2C,EAAS12J,KAAK6yJ,WAC5B2D,EAAaG,EAAS7C,GAC1B,OAAO0C,EAAWzC,IASpBZ,EAAUyD,SAAW,SAAU7mJ,EAAK2mJ,GAClC,IAAI5C,EAAajoJ,KAAK+N,MAAM88I,EAAS12J,KAAK6yJ,YACtCkB,EAAc2C,EAAS12J,KAAK6yJ,WAC5B2D,EAAax2J,KAAKoyJ,SAASriJ,GAAK+jJ,GACpC,OAAO0C,EAAWzC,IAUpBZ,EAAU15G,UAAY,SAAUt3C,EAAY+N,GAG1C,IAAIolJ,EAAS,GAER1yJ,EAAOogB,QAAQ7gB,KAElB+N,EAAM/N,EACNA,EAAanC,KAAKmC,YAGpB,IAAK,IAAI8L,EAAI,EAAGqK,EAAMnW,EAAW8I,OAAQgD,EAAIqK,EAAKrK,IAChDqnJ,EAAOz0J,KAAKb,KAAKkC,IAAIC,EAAW8L,GAAIiC,IAKtC,OAAOolJ,GAWTnC,EAAUjoG,SAAW,SAAUh7C,GAG7B,IAFA,IAAIygF,EAAkB3wF,KAAKizJ,mBAAmBtiE,gBAErC1iF,EAAI,EAAGqK,EAAMq4E,EAAgB1lF,OAAQgD,EAAIqK,EAAKrK,IAIrD,GAAI8K,MAAM/Y,KAAKkC,IAAIyuF,EAAgB1iF,GAAIiC,IACrC,OAAO,EAIX,OAAO,GASTijJ,EAAUv8E,cAAgB,SAAU7mE,GAIlCA,EAAM/P,KAAK2gB,aAAa5Q,GACxB,IAAI8mJ,EAAU72J,KAAKoyJ,SAASriJ,GACxB+mJ,EAAgBpC,IAEpB,IAAKmC,EACH,OAAOC,EAIT,IAQIC,EARAC,EAAUh3J,KAAKmiB,QAMf80I,GAAUj3J,KAAKkyJ,SAInB,GAAI+E,EACF,OAAOj3J,KAAK+yJ,WAAWhjJ,GAAKzI,QAK9B,GAFAyvJ,EAAY/2J,KAAK6oD,QAAQ94C,GAErBgnJ,EACF,OAAOA,EAAUzvJ,QAGnByvJ,EAAYD,EAIZ,IAHA,IAAIpmJ,EAAMqmJ,EAAU,GAChBtmJ,EAAMsmJ,EAAU,GAEX9oJ,EAAI,EAAGA,EAAI+oJ,EAAS/oJ,IAAK,CAEhC,IAAIN,EAAQ3N,KAAK42J,SAAS7mJ,EAAK/P,KAAKc,YAAYmN,IAEhDN,EAAQ+C,IAAQA,EAAM/C,GACtBA,EAAQ8C,IAAQA,EAAM9C,GAKxB,OAFAopJ,EAAY,CAACrmJ,EAAKD,GAClBzQ,KAAK6oD,QAAQ94C,GAAOgnJ,EACbA,GAUT5D,EAAU7pG,qBAAuB,SAAUv5C,GAIzC,OADAA,EAAM/P,KAAK2gB,aAAa5Q,GACjB/P,KAAKgzJ,mBAAmBjjJ,IAAQ/P,KAAK42E,cAAc7mE,IAK5DojJ,EAAU+D,qBAAuB,SAAUr/H,EAAQ9nB,GAGjDA,EAAM/P,KAAK2gB,aAAa5Q,GACxB/P,KAAKgzJ,mBAAmBjjJ,GAAO8nB,EAAOvwB,SAQxC6rJ,EAAUgE,mBAAqB,SAAUpvJ,GACvC,OAAO/H,KAAK4xJ,iBAAiB7pJ,IAQ/BorJ,EAAU7yD,mBAAqB,SAAUv4F,EAAK4F,GAC5CsY,EAASle,GAAOnF,EAAOpD,OAAOQ,KAAK4xJ,iBAAkB7pJ,GAAO/H,KAAK4xJ,iBAAiB7pJ,GAAO4F,GAQ3FwlJ,EAAUjpJ,OAAS,SAAU6F,GAG3B,IAAI8mJ,EAAU72J,KAAKoyJ,SAASriJ,GACxB9F,EAAM,EAEV,GAAI4sJ,EACF,IAAK,IAAI5oJ,EAAI,EAAGqK,EAAMtY,KAAKmiB,QAASlU,EAAIqK,EAAKrK,IAAK,CAChD,IAAIN,EAAQ3N,KAAKkC,IAAI6N,EAAK9B,GAIrB8K,MAAMpL,KACT1D,GAAO0D,GAKb,OAAO1D,GAQTkpJ,EAAUiE,UAAY,SAAUrnJ,GAG9B,IAAIsnJ,EAAe,GAEnBr3J,KAAKb,KAAK4Q,GAAK,SAAUtE,EAAKyE,GACvB6I,MAAMtN,IACT4rJ,EAAax2J,KAAK4K,MAMtB,IAAI6rJ,EAAqB,GAAG9/F,OAAO6/F,GAAcxsJ,MAAK,SAAUwM,EAAGC,GACjE,OAAOD,EAAIC,KAETgB,EAAMtY,KAAKmiB,QAEf,OAAe,IAAR7J,EAAY,EAAIA,EAAM,IAAM,EAAIg/I,GAAoBh/I,EAAM,GAAK,IAAMg/I,EAAmBh/I,EAAM,GAAKg/I,EAAmBh/I,EAAM,EAAI,IAAM,GAmC/I66I,EAAUoE,WAAa,SAAUxnJ,EAAKpC,GACpC,IAAIimJ,EAAkB7jJ,GAAO/P,KAAKkzJ,oBAAoBnjJ,GAClDiS,EAAW4xI,EAAgBjmJ,GAE/B,OAAgB,MAAZqU,GAAoBjJ,MAAMiJ,GACrB0uI,EAGF1uI,GAUTmxI,EAAU/yH,YAAc,SAAUzzB,GAChC,IAAK,IAAIsB,EAAI,EAAGqK,EAAMtY,KAAKmiB,QAASlU,EAAIqK,EAAKrK,IAC3C,GAAIjO,KAAKi9C,QAAQhvC,KAAOtB,EACtB,OAAOsB,EAIX,OAAQ,GAUVklJ,EAAU7rC,gBAAkB,SAAUtlG,GACpC,GAAIA,GAAYhiB,KAAKqxJ,WAAarvI,EAAW,EAC3C,OAAQ,EAGV,IAAKhiB,KAAKkyJ,SACR,OAAOlwI,EAIT,IAAIvhB,EAAUT,KAAKkyJ,SAEfl9C,EAAev0G,EAAQuhB,GAE3B,GAAoB,MAAhBgzF,GAAwBA,EAAeh1G,KAAKmyJ,QAAUn9C,IAAiBhzF,EACzE,OAAOA,EAGT,IAAIzX,EAAO,EACPE,EAAQzK,KAAKmyJ,OAAS,EAE1B,MAAO5nJ,GAAQE,EAAO,CACpB,IAAI+J,GAAOjK,EAAOE,GAAS,EAAI,EAE/B,GAAIhK,EAAQ+T,GAAOwN,EACjBzX,EAAOiK,EAAM,MACR,MAAI/T,EAAQ+T,GAAOwN,GAGxB,OAAOxN,EAFP/J,EAAQ+J,EAAM,GAMlB,OAAQ,GAYV2+I,EAAUqE,iBAAmB,SAAUznJ,EAAKpC,EAAO8pJ,GACjD,IAAIjyC,EAAUxlH,KAAKoyJ,SACfyE,EAAUrxC,EAAQz1G,GAClB2nJ,EAAiB,GAErB,IAAKb,EACH,OAAOa,EAGU,MAAfD,IACFA,EAAc1kJ,KAOhB,IAJA,IAAI4kJ,EAAU5kJ,IACV6kJ,GAAW,EACXC,EAAoB,EAEf5pJ,EAAI,EAAGqK,EAAMtY,KAAKmiB,QAASlU,EAAIqK,EAAKrK,IAAK,CAChD,IAAIgsB,EAAOtsB,EAAQ3N,KAAKkC,IAAI6N,EAAK9B,GAC7BsqB,EAAO1sB,KAAKC,IAAImuB,GAEhB1B,GAAQk/H,KAONl/H,EAAOo/H,GAAWp/H,IAASo/H,GAAW19H,GAAQ,GAAK29H,EAAU,KAC/DD,EAAUp/H,EACVq/H,EAAU39H,EACV49H,EAAoB,GAGlB59H,IAAS29H,IACXF,EAAeG,KAAuB5pJ,IAM5C,OADAypJ,EAAezsJ,OAAS4sJ,EACjBH,GASTvE,EAAUryJ,YAAcmzJ,EAoBxBd,EAAU50F,eAAiB,SAAUruD,GACnC,GAAKlQ,KAAKmrF,SAAStB,WAUjB,OAAO7pF,KAAKmrF,SAASrB,QAAQ9pF,KAAKc,YAAYoP,IAP9C,IAFA,IAAIzE,EAAM,GAEDwC,EAAI,EAAGA,EAAIjO,KAAKmC,WAAW8I,OAAQgD,IAAK,CAC/C,IAAI8B,EAAM/P,KAAKmC,WAAW8L,GAC1BxC,EAAI5K,KAAKb,KAAKkC,IAAI6N,EAAKG,IAGzB,OAAOzE,GAYX0nJ,EAAUl2G,QAAU,SAAU/sC,GAC5B,IAAI8R,EAAWhiB,KAAKc,YAAYoP,GAChC,OAAOlQ,KAAKqyJ,UAAUrwI,IAAa6xI,EAAqB7zJ,KAAMA,KAAKg2J,YAAah0I,IAAa,IAS/FmxI,EAAUhzI,MAAQ,SAAUjQ,GAC1B,OAAOiQ,EAAMngB,KAAMA,KAAKc,YAAYoP,KAgDtCijJ,EAAUh0J,KAAO,SAAUirF,EAAMjsE,EAAIyB,EAASk4I,GAC5C,aAEA,GAAK93J,KAAKmyJ,OAAV,CAIoB,oBAAT/nE,IACT0tE,EAAgBl4I,EAChBA,EAAUzB,EACVA,EAAKisE,EACLA,EAAO,IAITxqE,EAAUA,GAAWk4I,GAAiB93J,KACtCoqF,EAAOxnF,EAAOqE,IAAImtJ,EAAoBhqE,GAAOpqF,KAAK2gB,aAAc3gB,MAGhE,IAFA,IAAIopF,EAAUgB,EAAKn/E,OAEVgD,EAAI,EAAGA,EAAIjO,KAAKmiB,QAASlU,IAEhC,OAAQm7E,GACN,KAAK,EACHjrE,EAAGrR,KAAK8S,EAAS3R,GACjB,MAEF,KAAK,EACHkQ,EAAGrR,KAAK8S,EAAS5f,KAAKkC,IAAIkoF,EAAK,GAAIn8E,GAAIA,GACvC,MAEF,KAAK,EACHkQ,EAAGrR,KAAK8S,EAAS5f,KAAKkC,IAAIkoF,EAAK,GAAIn8E,GAAIjO,KAAKkC,IAAIkoF,EAAK,GAAIn8E,GAAIA,GAC7D,MAEF,QAIE,IAHA,IAAIgI,EAAI,EACJtI,EAAQ,GAELsI,EAAImzE,EAASnzE,IAClBtI,EAAMsI,GAAKjW,KAAKkC,IAAIkoF,EAAKn0E,GAAIhI,GAI/BN,EAAMsI,GAAKhI,EACXkQ,EAAGmI,MAAM1G,EAASjS,MAY1BwlJ,EAAU4E,WAAa,SAAU51J,EAAYgc,EAAIyB,EAASk4I,GACxD,aAEA,GAAK93J,KAAKmyJ,OAAV,CAI0B,oBAAfhwJ,IACT21J,EAAgBl4I,EAChBA,EAAUzB,EACVA,EAAKhc,EACLA,EAAa,IAIfyd,EAAUA,GAAWk4I,GAAiB93J,KACtCmC,EAAaS,EAAOqE,IAAImtJ,EAAoBjyJ,GAAanC,KAAK2gB,aAAc3gB,MAS5E,IARA,IAAImiB,EAAQniB,KAAKmiB,QACb29G,EAAOsxB,EAAepxJ,MACtBs+H,EAAa,IAAIwB,EAAK39G,GACtBxU,EAAQ,GACRy7E,EAAUjnF,EAAW8I,OACrB6J,EAAS,EACTkjJ,EAAO71J,EAAW,GAEb8L,EAAI,EAAGA,EAAIkU,EAAOlU,IAAK,CAC9B,IAAI24E,EACA8vE,EAAS12J,KAAKc,YAAYmN,GAE9B,GAAgB,IAAZm7E,EACFxC,EAAOzoE,EAAGrR,KAAK8S,EAAS3R,QACnB,GAAgB,IAAZm7E,EAAe,CACxB,IAAI39E,EAAMzL,KAAK42J,SAASoB,EAAMtB,GAE9B9vE,EAAOzoE,EAAGrR,KAAK8S,EAASnU,EAAKwC,OACxB,CACL,IAAK,IAAIgI,EAAI,EAAGA,EAAImzE,EAASnzE,IAC3BtI,EAAMsI,GAAKjW,KAAK42J,SAASoB,EAAMtB,GAGjC/oJ,EAAMsI,GAAKhI,EACX24E,EAAOzoE,EAAGmI,MAAM1G,EAASjS,GAGvBi5E,IACF03C,EAAWxpH,KAAY4hJ,GAa3B,OARI5hJ,EAASqN,IACXniB,KAAKkyJ,SAAW5zB,GAGlBt+H,KAAKmyJ,OAASr9I,EAEd9U,KAAK6oD,QAAU,GACf7oD,KAAKc,YAAcd,KAAKkyJ,SAAWgC,EAAyBD,EACrDj0J,OAQTmzJ,EAAU8E,YAAc,SAAUn8I,GAChC,aAEA,GAAK9b,KAAKmyJ,OAAV,CAIA,IAAIhwJ,EAAa,GAEjB,IAAK,IAAI4N,KAAO+L,EACVA,EAAMiB,eAAehN,IACvB5N,EAAWtB,KAAKkP,GAIpB,IAAIq5E,EAAUjnF,EAAW8I,OAEzB,GAAKm+E,EAAL,CAIA,IAAI8uE,EAAgBl4J,KAAKmiB,QACrB29G,EAAOsxB,EAAepxJ,MACtBs+H,EAAa,IAAIwB,EAAKo4B,GACtBpjJ,EAAS,EACTkjJ,EAAO71J,EAAW,GAClBuO,EAAMoL,EAAMk8I,GAAM,GAClBvnJ,EAAMqL,EAAMk8I,GAAM,GAClBG,GAAgB,EAEpB,IAAKn4J,KAAKkyJ,SAAU,CAElB,IAAIhiJ,EAAM,EAEV,GAAgB,IAAZk5E,EAAe,CAGjB,IAFA,IAAI8sE,EAAal2J,KAAKoyJ,SAASjwJ,EAAW,IAEjC8T,EAAI,EAAGA,EAAIjW,KAAK8yJ,YAAa78I,IAIpC,IAHA,IAAImiJ,EAAelC,EAAWjgJ,GAC1BqC,EAAMzM,KAAK6E,IAAI1Q,KAAKmyJ,OAASl8I,EAAIjW,KAAK6yJ,WAAY7yJ,KAAK6yJ,YAElD5kJ,EAAI,EAAGA,EAAIqK,EAAKrK,IAAK,CAC5B,IAAIxC,EAAM2sJ,EAAanqJ,IAMnBxC,GAAOiF,GAAOjF,GAAOgF,GAAOsI,MAAMtN,MACpC6yH,EAAWxpH,KAAY5E,GAGzBA,IAIJioJ,GAAgB,OACX,GAAgB,IAAZ/uE,EAAe,CACpB8sE,EAAal2J,KAAKoyJ,SAAS4F,GAA/B,IACIK,EAAcr4J,KAAKoyJ,SAASjwJ,EAAW,IACvCm2D,EAAOx8C,EAAM3Z,EAAW,IAAI,GAC5Bo2D,EAAOz8C,EAAM3Z,EAAW,IAAI,GAEhC,IAAS8T,EAAI,EAAGA,EAAIjW,KAAK8yJ,YAAa78I,IACpC,CAAImiJ,EAAelC,EAAWjgJ,GAA9B,IACIqiJ,EAAgBD,EAAYpiJ,GAGhC,IAFIqC,EAAMzM,KAAK6E,IAAI1Q,KAAKmyJ,OAASl8I,EAAIjW,KAAK6yJ,WAAY7yJ,KAAK6yJ,YAElD5kJ,EAAI,EAAGA,EAAIqK,EAAKrK,IAAK,CACxBxC,EAAM2sJ,EAAanqJ,GAAvB,IACIsqJ,EAAOD,EAAcrqJ,IAEpBxC,GAAOiF,GAAOjF,GAAOgF,GAAOsI,MAAMtN,MAAU8sJ,GAAQjgG,GAAQigG,GAAQhgG,GAAQx/C,MAAMw/I,MACrFj6B,EAAWxpH,KAAY5E,GAGzBA,KAIJioJ,GAAgB,GAIpB,IAAKA,EACH,GAAgB,IAAZ/uE,EACF,IAASn7E,EAAI,EAAGA,EAAIiqJ,EAAejqJ,IAAK,CACtC,IAAI+T,EAAWhiB,KAAKc,YAAYmN,GAE5BxC,EAAMzL,KAAK42J,SAASoB,EAAMh2I,IAG1BvW,GAAOiF,GAAOjF,GAAOgF,GAAOsI,MAAMtN,MACpC6yH,EAAWxpH,KAAYkN,QAI3B,IAAS/T,EAAI,EAAGA,EAAIiqJ,EAAejqJ,IAAK,CACtC,IAAI24E,GAAO,EAGX,IAFI5kE,EAAWhiB,KAAKc,YAAYmN,GAEvBgI,EAAI,EAAGA,EAAImzE,EAASnzE,IAAK,CAChC,IAAIuiJ,EAAOr2J,EAAW8T,GAElBxK,EAAMzL,KAAK42J,SAAS7mJ,EAAKiS,IAGzBvW,EAAMqQ,EAAM08I,GAAM,IAAM/sJ,EAAMqQ,EAAM08I,GAAM,MAC5C5xE,GAAO,GAIPA,IACF03C,EAAWxpH,KAAY9U,KAAKc,YAAYmN,IAehD,OARI6G,EAASojJ,IACXl4J,KAAKkyJ,SAAW5zB,GAGlBt+H,KAAKmyJ,OAASr9I,EAEd9U,KAAK6oD,QAAU,GACf7oD,KAAKc,YAAcd,KAAKkyJ,SAAWgC,EAAyBD,EACrDj0J,QAWTmzJ,EAAU5yE,SAAW,SAAUp+E,EAAYgc,EAAIyB,EAASk4I,GACtD,aAE0B,oBAAf31J,IACT21J,EAAgBl4I,EAChBA,EAAUzB,EACVA,EAAKhc,EACLA,EAAa,IAIfyd,EAAUA,GAAWk4I,GAAiB93J,KACtC,IAAI2mB,EAAS,GAIb,OAHA3mB,KAAKb,KAAKgD,GAAY,WACpBwkB,EAAO9lB,KAAKsd,GAAMA,EAAGmI,MAAMtmB,KAAMkJ,cAChC0W,GACI+G,GAsDTwsI,EAAUlsJ,IAAM,SAAU9E,EAAYgc,EAAIyB,EAASk4I,GACjD,aAEAl4I,EAAUA,GAAWk4I,GAAiB93J,KACtCmC,EAAaS,EAAOqE,IAAImtJ,EAAoBjyJ,GAAanC,KAAK2gB,aAAc3gB,MAC5E,IAAImjB,EAAOkxI,EAAyBr0J,KAAMmC,GAG1CghB,EAAK+uI,SAAWlyJ,KAAKkyJ,SACrB/uI,EAAKriB,YAAcqiB,EAAK+uI,SAAWgC,EAAyBD,EAS5D,IARA,IAAIzuC,EAAUriG,EAAKivI,SACfqG,EAAc,GACdpF,EAAYrzJ,KAAK6yJ,WACjBzpE,EAAUjnF,EAAW8I,OACrBytJ,EAAY14J,KAAKmiB,QACjBmzI,EAAS,GACTj3E,EAAYl7D,EAAK4vI,WAEZnyJ,EAAY,EAAGA,EAAY83J,EAAW93J,IAAa,CAC1D,IAAK,IAAI+wC,EAAW,EAAGA,EAAWy3C,EAASz3C,IACzC2jH,EAAO3jH,GAAY3xC,KAAKkC,IAAIC,EAAWwvC,GAAW/wC,GAKpD00J,EAAOlsE,GAAWxoF,EAClB,IAAI+3J,EAAWx6I,GAAMA,EAAGmI,MAAM1G,EAAS01I,GAEvC,GAAgB,MAAZqD,EAAkB,CAEI,kBAAbA,IACTF,EAAY,GAAKE,EACjBA,EAAWF,GAOb,IAJA,IAAIz2I,EAAWhiB,KAAKc,YAAYF,GAC5BkzJ,EAAajoJ,KAAK+N,MAAMoI,EAAWqxI,GACnCU,EAAc/xI,EAAWqxI,EAEpBplJ,EAAI,EAAGA,EAAI0qJ,EAAS1tJ,OAAQgD,IAAK,CACxC,IAAI8B,EAAM5N,EAAW8L,GACjBxC,EAAMktJ,EAAS1qJ,GACf2qJ,EAAiBv6E,EAAUtuE,GAC3B4mJ,EAAWnxC,EAAQz1G,GAEnB4mJ,IACFA,EAAS7C,GAAYC,GAAetoJ,GAGlCA,EAAMmtJ,EAAe,KACvBA,EAAe,GAAKntJ,GAGlBA,EAAMmtJ,EAAe,KACvBA,EAAe,GAAKntJ,KAM5B,OAAO0X,GAWTgwI,EAAU0F,WAAa,SAAUn4I,EAAWo4I,EAAMC,EAAaC,GAY7D,IAXA,IAAI71I,EAAOkxI,EAAyBr0J,KAAM,CAAC0gB,IACvCu4I,EAAgB91I,EAAKivI,SACrB8G,EAAc,GACdC,EAAYttJ,KAAK+N,MAAM,EAAIk/I,GAC3BnC,EAAWsC,EAAcv4I,GACzBpI,EAAMtY,KAAKmiB,QACXkxI,EAAYrzJ,KAAK6yJ,WACjB+F,EAAiBz1I,EAAK4vI,WAAWryI,GACjC49G,EAAa,IAAK8yB,EAAepxJ,MAApB,CAA2BsY,GACxCxD,EAAS,EAEJ7G,EAAI,EAAGA,EAAIqK,EAAKrK,GAAKkrJ,EAAW,CAEnCA,EAAY7gJ,EAAMrK,IACpBkrJ,EAAY7gJ,EAAMrK,EAClBirJ,EAAYjuJ,OAASkuJ,GAGvB,IAAK,IAAIljJ,EAAI,EAAGA,EAAIkjJ,EAAWljJ,IAAK,CAClC,IAAI2pB,EAAU5/B,KAAKc,YAAYmN,EAAIgI,GAC/BmjJ,EAAqBvtJ,KAAK+N,MAAMgmB,EAAUyzH,GAC1CgG,EAAsBz5H,EAAUyzH,EACpC6F,EAAYjjJ,GAAK0gJ,EAASyC,GAAoBC,GAGhD,IAAI1rJ,EAAQorJ,EAAYG,GACpBI,EAAiBt5J,KAAKc,YAAY+K,KAAK6E,IAAIzC,EAAI+qJ,EAAYE,EAAavrJ,IAAU,EAAG2K,EAAM,IAC3FihJ,EAAmB1tJ,KAAK+N,MAAM0/I,EAAiBjG,GAC/CmG,EAAoBF,EAAiBjG,EAEzCsD,EAAS4C,GAAkBC,GAAqB7rJ,EAE5CA,EAAQirJ,EAAe,KACzBA,EAAe,GAAKjrJ,GAGlBA,EAAQirJ,EAAe,KACzBA,EAAe,GAAKjrJ,GAGtB2wH,EAAWxpH,KAAYwkJ,EAMzB,OAHAn2I,EAAKgvI,OAASr9I,EACdqO,EAAK+uI,SAAW5zB,EAChBn7G,EAAKriB,YAAcozJ,EACZ/wI,GAUTgwI,EAAU/xI,aAAe,SAAUlR,GACjC,IAAI8O,EAAYhf,KAAKgf,UACrB,OAAO,IAAIX,EAAMre,KAAKu+D,eAAeruD,GAAM8O,EAAWA,GAAaA,EAAUlf,UAS/EqzJ,EAAUl5H,KAAO,SAAUw/H,GACzB,IAAIC,EAAW15J,KACf,OAAO,IAAIohF,EAAWq4E,EAAYA,EAAUpD,aAAe,GAAIr2J,KAAKq2J,cAAc,SAAUnmJ,GAC1F,OAAOiQ,EAAMs5I,EAAWvpJ,MACvB,SAAUA,GACX,OAAOiQ,EAAMu5I,EAAUxpJ,OAS3BijJ,EAAU1xI,UAAY,SAAU1Z,GAC9B,IAAIyd,EAASxlB,KAAKwyJ,QAClB,OAAOhtI,GAAUA,EAAOzd,IAe1BorJ,EAAU5xI,UAAY,SAAUxZ,EAAK0D,GACnC,GAAIwa,EAASle,GACX,IAAK,IAAI4E,KAAQ5E,EACXA,EAAIgV,eAAepQ,IACrB3M,KAAKuhB,UAAU5U,EAAM5E,EAAI4E,SAO/B3M,KAAKwyJ,QAAUxyJ,KAAKwyJ,SAAW,GAC/BxyJ,KAAKwyJ,QAAQzqJ,GAAO0D,GAStB0nJ,EAAUvyI,UAAY,SAAU7Y,EAAK0D,GACnC,GAAIwa,EAASle,GACX,IAAK,IAAI4E,KAAQ5E,EACXA,EAAIgV,eAAepQ,IACrB3M,KAAK4gB,UAAUjU,EAAM5E,EAAI4E,SAO/B3M,KAAKkiD,QAAQn6C,GAAO0D,GAStB0nJ,EAAUpyI,UAAY,SAAUhZ,GAC9B,OAAO/H,KAAKkiD,QAAQn6C,IAQtBorJ,EAAUnyI,cAAgB,SAAU9Q,GAClC,OAAOlQ,KAAK2yJ,aAAaziJ,IAU3BijJ,EAAUryI,cAAgB,SAAU5Q,EAAKjN,EAAQ4d,GAC/C7gB,KAAK2yJ,aAAaziJ,GAAO2Q,EAAQje,EAAOpD,OAAOQ,KAAK2yJ,aAAaziJ,IAAQ,GAAIjN,GAAUA,GAOzFkwJ,EAAU9wI,iBAAmB,WAC3BriB,KAAK2yJ,aAAa1nJ,OAAS,GAU7BkoJ,EAAUxxI,cAAgB,SAAUzR,EAAKnI,EAAK2Z,GAC5C,IAAIi4I,EAAa35J,KAAKyyJ,aAAaviJ,GAC/BzE,EAAMkuJ,GAAcA,EAAW5xJ,GAEnC,OAAW,MAAP0D,GAAgBiW,EAKbjW,EAHEzL,KAAKyhB,UAAU1Z,IAoB1BorJ,EAAU3xI,cAAgB,SAAUtR,EAAKnI,EAAK4F,GAC5C,IAAIgsJ,EAAa35J,KAAKyyJ,aAAaviJ,IAAQ,GACvCwiJ,EAAgB1yJ,KAAK0yJ,cAGzB,GAFA1yJ,KAAKyyJ,aAAaviJ,GAAOypJ,EAErB1zI,EAASle,GACX,IAAK,IAAI4E,KAAQ5E,EACXA,EAAIgV,eAAepQ,KACrBgtJ,EAAWhtJ,GAAQ5E,EAAI4E,GACvB+lJ,EAAc/lJ,IAAQ,QAO5BgtJ,EAAW5xJ,GAAO4F,EAClB+kJ,EAAc3qJ,IAAO,GAOvBorJ,EAAUyG,eAAiB,WACzB55J,KAAKwyJ,QAAU,GACfxyJ,KAAKyyJ,aAAe,GACpBzyJ,KAAK0yJ,cAAgB,IAGvB,IAAImH,EAA4B,SAAUt6I,GACxCA,EAAMw3B,YAAc/2C,KAAK+2C,YACzBx3B,EAAM3e,UAAYZ,KAAKY,UACvB2e,EAAMy9E,SAAWh9F,KAAKg9F,UASxBm2D,EAAUvxH,iBAAmB,SAAU1xB,EAAKub,GAC1C,IAAIzM,EAAYhf,KAAKgf,UAEjByM,IAGFA,EAAG7qB,UAAYsP,EACfub,EAAGuxE,SAAWh9F,KAAKg9F,SACnBvxE,EAAGsrB,YAAc/3B,GAAaA,EAAU+3B,YAExB,UAAZtrB,EAAGhsB,MACLgsB,EAAGqX,SAAS+2H,EAA2BpuI,IAI3CzrB,KAAK4yJ,YAAY1iJ,GAAOub,GAQ1B0nI,EAAU55G,iBAAmB,SAAUrpC,GACrC,OAAOlQ,KAAK4yJ,YAAY1iJ,IAQ1BijJ,EAAUx0G,kBAAoB,SAAUxgC,EAAIyB,GAC1Chd,EAAOzD,KAAKa,KAAK4yJ,aAAa,SAAUnnI,EAAIvb,GACtCub,GACFtN,GAAMA,EAAGrR,KAAK8S,EAAS6L,EAAIvb,OAUjCijJ,EAAUh2D,aAAe,SAAUh6E,GACjC,IAAKA,EAAM,CACT,IAAI22I,EAAoBl3J,EAAOqE,IAAIjH,KAAKmC,WAAYnC,KAAKwrF,iBAAkBxrF,MAC3EmjB,EAAO,IAAI5E,EAAKu7I,EAAmB95J,KAAKgf,WAO1C,GAHAmE,EAAKivI,SAAWpyJ,KAAKoyJ,SACrBV,EAAmBvuI,EAAMnjB,MAErBA,KAAKkyJ,SAAU,CACjB,IAAIpyB,EAAO9/H,KAAKkyJ,SAASnkJ,YACzBoV,EAAK+uI,SAAW,IAAIpyB,EAAK9/H,KAAKkyJ,eAE9B/uI,EAAK+uI,SAAW,KAIlB,OADA/uI,EAAKriB,YAAcqiB,EAAK+uI,SAAWgC,EAAyBD,EACrD9wI,GASTgwI,EAAUl1F,WAAa,SAAUxwD,EAAYssJ,GAC3C,IAAIC,EAAiBh6J,KAAKyN,GAEI,oBAAnBusJ,IAIXh6J,KAAK2xJ,iBAAmB3xJ,KAAK2xJ,kBAAoB,GAEjD3xJ,KAAK2xJ,iBAAiB9wJ,KAAK4M,GAE3BzN,KAAKyN,GAAc,WACjB,IAAI2S,EAAM45I,EAAe1zI,MAAMtmB,KAAMkJ,WACrC,OAAO6wJ,EAAezzI,MAAMtmB,KAAM,CAACogB,GAAKo3C,OAAO50D,EAAO0E,MAAM4B,gBAMhEiqJ,EAAUx2D,qBAAuB,CAAC,eAAgB,aAAc,OAEhEw2D,EAAUr2D,kBAAoB,CAAC,aAAc,eAC7C,IAAIv9F,EAAWgf,EACf7b,EAAOC,QAAUpD,G,uBCpiEjB,IAAI2pI,EAAU,EAAQ,QAElB+wB,EAAa/wB,EAAQt/E,SAazB,SAASswG,EAAYxiJ,EAAI/L,EAAIC,EAAIsN,EAAI7E,EAAG8E,EAAIC,GAC1C,IAAIE,EAAiB,IAAX1N,EAAK8L,GACX6B,EAAiB,IAAXL,EAAKvN,GACf,OAAQ,GAAKA,EAAKC,GAAM0N,EAAKC,GAAMH,IAAO,GAAKzN,EAAKC,GAAM,EAAI0N,EAAKC,GAAMJ,EAAKG,EAAKjF,EAAI1I,EAUzF,SAASpM,EAASgY,EAAQ4iJ,GAKxB,IAJA,IAAI7hJ,EAAMf,EAAOtM,OACbwO,EAAM,GACNmwC,EAAW,EAEN37C,EAAI,EAAGA,EAAIqK,EAAKrK,IACvB27C,GAAYqwG,EAAW1iJ,EAAOtJ,EAAI,GAAIsJ,EAAOtJ,IAG/C,IAAImsJ,EAAOxwG,EAAW,EACtBwwG,EAAOA,EAAO9hJ,EAAMA,EAAM8hJ,EAE1B,IAASnsJ,EAAI,EAAGA,EAAImsJ,EAAMnsJ,IAAK,CAC7B,IAGIyJ,EAEA9L,EACAsN,EANA7G,EAAMpE,GAAKmsJ,EAAO,IAAMD,EAAS7hJ,EAAMA,EAAM,GAC7CpI,EAAMrE,KAAK+N,MAAMvH,GACjBmF,EAAInF,EAAMnC,EAEVvE,EAAK4L,EAAOrH,EAAMoI,GAIjB6hJ,GAKHziJ,EAAKH,GAAQrH,EAAM,EAAIoI,GAAOA,GAC9B1M,EAAK2L,GAAQrH,EAAM,GAAKoI,GACxBY,EAAK3B,GAAQrH,EAAM,GAAKoI,KANxBZ,EAAKH,EAAe,IAARrH,EAAYA,EAAMA,EAAM,GACpCtE,EAAK2L,EAAOrH,EAAMoI,EAAM,EAAIA,EAAM,EAAIpI,EAAM,GAC5CgJ,EAAK3B,EAAOrH,EAAMoI,EAAM,EAAIA,EAAM,EAAIpI,EAAM,IAO9C,IAAImqJ,EAAK7iJ,EAAIA,EACT8iJ,EAAK9iJ,EAAI6iJ,EACb5gJ,EAAI5Y,KAAK,CAACq5J,EAAYxiJ,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIsN,EAAG,GAAI1B,EAAG6iJ,EAAIC,GAAKJ,EAAYxiJ,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIsN,EAAG,GAAI1B,EAAG6iJ,EAAIC,KAG/G,OAAO7gJ,EAGT/W,EAAOC,QAAUpD,G,uBC/CjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAoBjB82I,EAAiB,IACjBC,EAAe,iCAMnB,SAASv6C,EAAen+E,GACtB,IAAIroB,EAAM,CACRgjF,KAAM,GACN0tB,IAAK,IASP,OANIroF,IACFA,EAAgBA,EAAcwxD,MAAMinE,GACpC9gJ,EAAIgjF,KAAO36D,EAAc,IAAM,GAC/BroB,EAAI0wG,IAAMroF,EAAc,IAAM,IAGzBroB,EAOT,SAASghJ,EAAe34H,GACtBl/B,EAAOyqC,OAAO,qCAAqC+2B,KAAKtiC,GAAgB,kBAAoBA,EAAgB,aAO9G,SAASo9F,EAAkBw7B,EAAWC,GACpCD,EAAUE,aAAeF,EAEzBA,EAAUl7J,OAAS,SAAUs1I,GAC3B,IAAI+lB,EAAa76J,KAEb86J,EAAgB,WACbhmB,EAAM8lB,aAGT9lB,EAAM8lB,aAAat0I,MAAMtmB,KAAMkJ,WAF/B2xJ,EAAWv0I,MAAMtmB,KAAMkJ,YAY3B,OANAtG,EAAOpD,OAAOs7J,EAAchtJ,UAAWgnI,GACvCgmB,EAAct7J,OAASQ,KAAKR,OAC5Bs7J,EAAchxJ,UAAYA,EAC1BgxJ,EAAc7xJ,WAAaA,EAC3BrG,EAAOwxB,SAAS0mI,EAAe96J,MAC/B86J,EAAcD,WAAaA,EACpBC,GAIX,IAAIC,EAAY,EAOhB,SAAS57B,EAAiB67B,GACxB,IAAIC,EAAY,CAAC,aAAcF,IAAalvJ,KAAKixH,SAAS1yH,QAAQ,IAAIyP,KAAK,KAC3EmhJ,EAAIltJ,UAAUmtJ,IAAa,EAE3BD,EAAIl4G,WAAa,SAAU/8B,GACzB,SAAUA,IAAOA,EAAIk1I,KAUzB,SAASnxJ,EAAU8V,EAASnS,GAC1B,IAAI4oD,EAAOzzD,EAAO0E,MAAM4B,UAAW,GACnC,OAAOlJ,KAAK66J,WAAW/sJ,UAAUL,GAAY6Y,MAAM1G,EAASy2C,GAG9D,SAASptD,EAAW2W,EAASnS,EAAY4oD,GACvC,OAAOr2D,KAAK66J,WAAW/sJ,UAAUL,GAAY6Y,MAAM1G,EAASy2C,GAU9D,SAAS6kG,EAAsBC,EAAQx7I,GACrCA,EAAUA,GAAW,GAUrB,IAAI6lG,EAAU,GAgFd,SAAS41C,EAAct5H,GACrB,IAAIvW,EAAYi6F,EAAQ1jF,EAAc26D,MAOtC,OALKlxE,GAAcA,EAAUivI,KAC3BjvI,EAAYi6F,EAAQ1jF,EAAc26D,MAAQ,GAC1ClxE,EAAUivI,IAAgB,GAGrBjvI,EAGT,GAzFA4vI,EAAOE,cAAgB,SAAU1wC,EAAO7oF,GACtC,GAAIA,EAIF,GAHA24H,EAAe34H,GACfA,EAAgBm+E,EAAen+E,GAE1BA,EAAcqoF,KAEZ,GAAIroF,EAAcqoF,MAAQqwC,EAAc,CAC7C,IAAIjvI,EAAY6vI,EAAct5H,GAC9BvW,EAAUuW,EAAcqoF,KAAOQ,QAH/BnF,EAAQ1jF,EAAc26D,MAAQkuB,EAOlC,OAAOA,GAGTwwC,EAAOvwC,SAAW,SAAU0wC,EAAmBj9H,EAASk9H,GACtD,IAAI5wC,EAAQnF,EAAQ81C,GAMpB,GAJI3wC,GAASA,EAAM6vC,KACjB7vC,EAAQtsF,EAAUssF,EAAMtsF,GAAW,MAGjCk9H,IAAsB5wC,EACxB,MAAM,IAAIh0G,MAAO0nB,EAAkE,aAAei9H,EAAoB,KAAOj9H,GAAW,IAAM,8BAAnHi9H,EAAoB,8BAGjD,OAAO3wC,GAGTwwC,EAAOK,qBAAuB,SAAU15H,GACtCA,EAAgBm+E,EAAen+E,GAC/B,IAAInb,EAAS,GACTZ,EAAMy/F,EAAQ1jF,EAAc26D,MAUhC,OARI12E,GAAOA,EAAIy0I,GACb53J,EAAOzD,KAAK4mB,GAAK,SAAUje,EAAGrI,GAC5BA,IAAS+6J,GAAgB7zI,EAAO9lB,KAAKiH,MAGvC6e,EAAO9lB,KAAKklB,GAGPY,GAGTw0I,EAAOnkB,SAAW,SAAUl1G,GAG1B,OADAA,EAAgBm+E,EAAen+E,KACtB0jF,EAAQ1jF,EAAc26D,OAOjC0+D,EAAOM,qBAAuB,WAC5B,IAAIp7B,EAAQ,GAIZ,OAHAz9H,EAAOzD,KAAKqmH,GAAS,SAAUz/F,EAAKtmB,GAClC4gI,EAAMx/H,KAAKpB,MAEN4gI,GAST86B,EAAOO,YAAc,SAAU55H,GAC7BA,EAAgBm+E,EAAen+E,GAC/B,IAAI/b,EAAMy/F,EAAQ1jF,EAAc26D,MAChC,OAAO12E,GAAOA,EAAIy0I,IAGpBW,EAAOl7C,eAAiBA,EAapBtgG,EAAQg8I,mBAAoB,CAC9B,IAAIC,EAAiBT,EAAO37J,OAExBo8J,IACFT,EAAO37J,OAAS,SAAUs1I,GACxB,IAAIgmB,EAAgBc,EAAe9uJ,KAAK9M,KAAM80I,GAC9C,OAAOqmB,EAAOE,cAAcP,EAAehmB,EAAMr1I,QAKvD,OAAO07J,EAOT,SAASp7B,EAAYh6G,EAAKs/D,IAgB1B1iF,EAAQs9G,eAAiBA,EACzBt9G,EAAQu8H,kBAAoBA,EAC5Bv8H,EAAQw8H,iBAAmBA,EAC3Bx8H,EAAQu4J,sBAAwBA,EAChCv4J,EAAQo9H,YAAcA,G,uBCpQtB,IAAIn9H,EAAS,EAAQ,QAEjBwF,EAAU,EAAQ,QAElBtF,EAAU,EAAQ,QAElBo/C,EAAU,EAAQ,QAElBC,EAAgBD,EAAQC,cAExBwb,EAAU,EAAQ,QAElB6oC,EAAa7oC,EAAQ6oC,WAqBzBp+F,EAAQ48C,qBAAqB,CAC3BvlD,KAAM,QACNy0D,WAAY,CACVz0D,KAAM,MACNo8J,YAAY,GAEd96J,cAAe,CAEbC,OAAQ,EAERC,EAAG,EACHG,MAAM,EACNuE,KAAM,GAINyM,OAAQ,QACR0pJ,QAAS,GAITC,UAAW,QAGXxxJ,KAAM,EAGNC,IAAK,EAWLuf,gBAAiB,gBAEjB5e,YAAa,OAEbC,YAAa,EAGb4e,QAAS,EAETxF,QAAS,GACT6oD,UAAW,CACT3jD,SAAU,GACVqlD,WAAY,SACZn3D,MAAO,QAETokJ,aAAc,CACZpkJ,MAAO,WAKbxP,EAAQiJ,oBAAoB,CAC1B5R,KAAM,QACN6R,OAAQ,SAAU2qJ,EAAYn8J,EAASyG,GAGrC,GAFAvG,KAAKsD,MAAMC,YAEN04J,EAAW/5J,IAAI,QAApB,CAIA,IAAIoB,EAAQtD,KAAKsD,MACbI,EAAiBu4J,EAAWh7I,SAAS,aACrCi7I,EAAoBD,EAAWh7I,SAAS,gBACxCpb,EAAYo2J,EAAW/5J,IAAI,aAC3B0D,EAAoBhD,EAAO6xB,UAAUwnI,EAAW/5J,IAAI,gBAAiB+5J,EAAW/5J,IAAI,sBACpFm/B,EAAS,IAAIv+B,EAAQyC,KAAK,CAC5BC,MAAO1C,EAAQmqE,aAAa,GAAIvpE,EAAgB,CAC9CiC,KAAMs2J,EAAW/5J,IAAI,QACrB2B,SAAUH,EAAeI,gBACxB,CACDurE,YAAY,IAEdj+D,GAAI,KAEFi7E,EAAWhrD,EAAOp1B,kBAClBkwJ,EAAUF,EAAW/5J,IAAI,WACzBk6J,EAAY,IAAIt5J,EAAQyC,KAAK,CAC/BC,MAAO1C,EAAQmqE,aAAa,GAAIivF,EAAmB,CACjDv2J,KAAMw2J,EACNt4J,SAAUq4J,EAAkBp4J,eAC5B4B,EAAG2mF,EAASngF,OAAS+vJ,EAAW/5J,IAAI,WACpC0D,kBAAmB,OAClB,CACDypE,YAAY,IAEdj+D,GAAI,KAEF8qE,EAAO+/E,EAAW/5J,IAAI,QACtBm6J,EAAUJ,EAAW/5J,IAAI,WACzBujD,EAAew2G,EAAW/5J,IAAI,gBAAgB,GAClDm/B,EAAOzvB,QAAUsqE,IAASz2B,EAC1B22G,EAAUxqJ,QAAUyqJ,IAAY52G,EAE5By2B,GACF76C,EAAOz6B,GAAG,SAAS,WACjB4/F,EAAWtqB,EAAM,IAAM+/E,EAAW/5J,IAAI,cAItCm6J,GACFD,EAAUx1J,GAAG,SAAS,WACpB4/F,EAAWtqB,EAAM,IAAM+/E,EAAW/5J,IAAI,iBAI1Cm/B,EAAOQ,UAAYu6H,EAAUv6H,UAAY4jB,EAAe,CACtD3jB,cAAe,QACfC,eAAgBk6H,EAAWl6H,gBACzB,KACJz+B,EAAMgC,IAAI+7B,GACV86H,GAAW74J,EAAMgC,IAAI82J,GAErB,IAAIE,EAAYh5J,EAAM2I,kBAClBswJ,EAAeN,EAAWn2F,qBAC9By2F,EAAa/6J,MAAQ86J,EAAU96J,MAC/B+6J,EAAarwJ,OAASowJ,EAAUpwJ,OAChC,IAAI6pE,EAAa5zB,EAAco6G,EAAc,CAC3C/6J,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aACXgwI,EAAW/5J,IAAI,YAEb2D,IAEHA,EAAYo2J,EAAW/5J,IAAI,SAAW+5J,EAAW/5J,IAAI,SAEnC,WAAd2D,IACFA,EAAY,UAII,UAAdA,EACFkwE,EAAWtwE,GAAKswE,EAAWv0E,MACJ,WAAdqE,IACTkwE,EAAWtwE,GAAKswE,EAAWv0E,MAAQ,IAIlCoE,IACHA,EAAoBq2J,EAAW/5J,IAAI,QAAU+5J,EAAW/5J,IAAI,UAElC,WAAtB0D,IACFA,EAAoB,UAGI,WAAtBA,EACFmwE,EAAWrwE,GAAKqwE,EAAW7pE,OACI,WAAtBtG,IACTmwE,EAAWrwE,GAAKqwE,EAAW7pE,OAAS,GAGtCtG,EAAoBA,GAAqB,OAG3CtC,EAAM0c,KAAK,WAAY,CAAC+1D,EAAWtwE,EAAGswE,EAAWrwE,IACjD,IAAI82J,EAAa,CACf32J,UAAWA,EACXD,kBAAmBA,GAErBy7B,EAAOR,SAAS27H,GAChBJ,EAAUv7H,SAAS27H,GAGnBF,EAAYh5J,EAAM2I,kBAClB,IAAI+d,EAAU+rD,EAAWkM,OACrBz8E,EAAQy2J,EAAWtqJ,aAAa,CAAC,QAAS,YAC9CnM,EAAMkM,KAAOuqJ,EAAW/5J,IAAI,mBAC5B,IAAI8J,EAAO,IAAIlJ,EAAQyO,KAAK,CAC1BC,MAAO,CACL/L,EAAG62J,EAAU72J,EAAIukB,EAAQ,GACzBtkB,EAAG42J,EAAU52J,EAAIskB,EAAQ,GACzBxoB,MAAO86J,EAAU96J,MAAQwoB,EAAQ,GAAKA,EAAQ,GAC9C9d,OAAQowJ,EAAUpwJ,OAAS8d,EAAQ,GAAKA,EAAQ,GAChDnW,EAAGooJ,EAAW/5J,IAAI,iBAEpBsD,MAAOA,EACP8uB,kBAAkB,EAClB1iB,QAAQ,IAEVtO,EAAMgC,IAAI0G,Q,qBC3Nd,IAAIpJ,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QAoBxB,SAAS75C,EAASM,GAChB48J,EAAuB58J,GACvB68J,EAA4B78J,GAQ9B,SAAS48J,EAAuB58J,GAC9B,IAAIA,EAAO2kF,SAAX,CAIA,IAAIm4E,GAAoB,EACxB/5J,EAAOzD,KAAKU,EAAO22E,QAAQ,SAAUiN,GAC/BA,GAAgC,aAAnBA,EAAUhkF,OACzBk9J,GAAoB,MAIpBA,IACF98J,EAAO2kF,SAAW,CAAC,MASvB,SAASk4E,EAA4B78J,GACnC,IAAIukF,EAAOhrC,EAAU2/D,iBAAiBl5G,EAAOsjE,cAC7CvgE,EAAOzD,KAAKilF,GAAM,SAAUw4E,GAC1B,GAAKh6J,EAAOqjB,SAAS22I,GAArB,CAIA,IAAI17J,EAAgB07J,EAAW17J,eAAiB,EAC5C27J,EAAiBzjH,EAAU2/D,iBAAiBl5G,EAAO2kF,UAAUtjF,GAE7D27J,GAAkBA,EAAeh6F,qBACnCjgE,EAAOie,MAAM+7I,EAAYC,EAAeh6F,qBAAqB,OAKnEngE,EAAOC,QAAUpD,G,qBCtEjB,IAAIg1B,EAAsB,EAAQ,QAsB9Bh1B,EAAW,CACbq1B,WAAY,QACZC,KAAMN,IACNO,MAAO,SAAUhzB,GACf,IAAIzB,EAAWyB,EAAYxB,iBACvBw8J,EAAah7J,EAAYI,IAAI,YAC7B66J,EAAUj7J,EAAY8zB,gBAAgBC,MAE1C,SAASF,EAAS9rB,EAAQyoC,GACxB,IAAI0qH,EAAa,GAEjB,GAAID,EAAS,CACX,IAAIxlJ,EACA0lJ,EAAWpzJ,EAAOwwE,IAAMxwE,EAAO0K,MAEnC,GAAIuoJ,EAAY,CAGd,IAFA,IAAII,EAAmB,EAEdjvJ,EAAIpE,EAAO0K,MAAOtG,EAAIpE,EAAOwwE,IAAKpsE,IACzCivJ,GAAoBp7J,EAAYq7J,mBAAmBlvJ,GAGrDsJ,EAAS,IAAIod,aAAasoI,EAA8B,EAAnBC,QAErC3lJ,EAAS,IAAIod,aAAwB,EAAXsoI,GAG5B,IAAInoJ,EAAS,EACTqpC,EAAK,GAET,IAASlwC,EAAIpE,EAAO0K,MAAOtG,EAAIpE,EAAOwwE,IAAKpsE,IAAK,CAC9C,IAAIqK,EAAMxW,EAAYs7J,cAAcnvJ,EAAG+uJ,GAEnCF,IACFvlJ,EAAOzC,KAAYwD,GAGrB,IAAK,IAAIrC,EAAI,EAAGA,EAAIqC,EAAKrC,IACvBkoC,EAAK99C,EAAS0L,YAAYixJ,EAAW/mJ,IAAI,EAAOkoC,GAChD5mC,EAAOzC,KAAYqpC,EAAG,GACtB5mC,EAAOzC,KAAYqpC,EAAG,GAI1B7L,EAAS1xB,UAAU,cAAerJ,QAElC,IAAStJ,EAAIpE,EAAO0K,MAAOtG,EAAIpE,EAAOwwE,IAAKpsE,IAAK,CAC9C,IAAIkT,EAAYmxB,EAASlxB,aAAanT,GAElCu3H,GADAltH,EAAMxW,EAAYs7J,cAAcnvJ,EAAG+uJ,GAC7B,IAEV,GAAIF,EACF,IAAK,IAAItkJ,EAAI,EAAGA,EAAIF,EAAKE,IACvBgtH,EAAI3kI,KAAKR,EAAS0L,YAAYixJ,EAAWxkJ,SAEtC,CACLgtH,EAAI,GAAKnlI,EAAS0L,YAAYixJ,EAAW,IACzCx3B,EAAI,GAAKnlI,EAAS0L,YAAYixJ,EAAW,IACzC,IAAIltG,EAAY3uC,EAAUjf,IAAI,wBAEzB4tD,IACH01E,EAAI,GAAK,EAAEA,EAAI,GAAG,GAAKA,EAAI,GAAG,IAAM,GAAKA,EAAI,GAAG,GAAKA,EAAI,GAAG,IAAM11E,GAAY01E,EAAI,GAAG,GAAKA,EAAI,GAAG,IAAM,GAAKA,EAAI,GAAG,GAAKA,EAAI,GAAG,IAAM11E,IAIzIxd,EAASxxB,cAAc7S,EAAGu3H,IAKhC,MAAO,CACL7vG,SAAUA,KAIhBjzB,EAAOC,QAAUpD,G,uBCrHjB,IAAIupB,EAAM,EAAQ,QAEdu0I,EAAuB,EAAQ,QAE/BC,EAAmBD,EAAqBC,iBACxCC,EAAmB,kBACnBnP,EAAW,GAmCf,SAASrjI,EAAoB7b,EAAKsuJ,EAAQnzF,EAAUozF,EAAKC,GACvD,OAAO1P,EAA2BI,EAAUoP,EAAQC,EAAKC,GAAK,IAAS1P,EAA2B9+I,EAAKm7D,EAAU+jF,EAAS,GAAIA,EAAS,IA0BzI,SAASJ,EAA2B9+I,EAAKuc,EAAIgyI,EAAKC,EAAKt2J,GACrD,GAAIqkB,EAAGk7F,uBAAyB79F,EAAI46C,eAAiBqqF,EAAWtiI,GAAK,CACnE,IAAIkyI,EAAQlyI,EAAG8xI,KAAsB9xI,EAAG8xI,GAAoB,IACxD7hC,EAAUkiC,EAAoBnyI,EAAIkyI,GAClCE,EAAcC,EAA0BpiC,EAASiiC,EAAOv2J,GAE5D,GAAIy2J,EAEF,OADAA,EAAY3uJ,EAAKuuJ,EAAKC,IACf,EAIX,OAAO,EAGT,SAASE,EAAoBnyI,EAAIkyI,GAC/B,IAAIjiC,EAAUiiC,EAAMjiC,QAEpB,GAAIA,EACF,OAAOA,EAGTA,EAAUiiC,EAAMjiC,QAAU,GAI1B,IAHA,IAAIqiC,EAAS,CAAC,OAAQ,SAClBC,EAAS,CAAC,MAAO,UAEZ/vJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIonG,EAASrqF,SAASU,cAAc,OAChCyB,EAAMkoF,EAAO7vG,MACby4J,EAAQhwJ,EAAI,EACZiwJ,GAASjwJ,GAAK,GAAK,EACvBkf,EAAI1D,QAAU,CAAC,qBAAsB,qBAAsB,aAAc,YAAa,kBAAmB,oBAAqB,UAAW,WAEzIs0I,EAAOE,GAAS,KAAMD,EAAOE,GAAS,KAAMH,EAAO,EAAIE,GAAS,QAASD,EAAO,EAAIE,GAAS,QAAS,IAAIrkJ,KAAK,eAC/G4R,EAAGS,YAAYmpF,GACfqmB,EAAQ76H,KAAKw0G,GAGf,OAAOqmB,EAGT,SAASoiC,EAA0BpiC,EAASiiC,EAAOv2J,GAQjD,IAPA,IAAI+2J,EAAkB/2J,EAAU,WAAa,QACzCy2J,EAAcF,EAAMQ,GACpBC,EAAeT,EAAMU,UACrBC,GAAkB,EAClBD,EAAY,GACZE,EAAa,GAERtwJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIjC,EAAO0vH,EAAQztH,GAAG04G,wBAClB63C,EAAK,EAAIvwJ,EACTxI,EAAIuG,EAAKzB,KACT7E,EAAIsG,EAAKxB,IACb6zJ,EAAUx9J,KAAK4E,EAAGC,GAClB44J,EAAkBA,GAAmBF,GAAgB34J,IAAM24J,EAAaI,IAAO94J,IAAM04J,EAAaI,EAAK,GACvGD,EAAW19J,KAAK66H,EAAQztH,GAAGmd,WAAYswG,EAAQztH,GAAGod,WAIpD,OAAOizI,GAAmBT,EAAcA,GAAeF,EAAMU,UAAYA,EAAWV,EAAMQ,GAAmB/2J,EAAUk2J,EAAiBiB,EAAYF,GAAaf,EAAiBe,EAAWE,IAG/L,SAASxQ,EAAWtiI,GAClB,MAAqC,WAA9BA,EAAG4mE,SAASyhB,cAGrBnxG,EAAQooB,oBAAsBA,EAC9BpoB,EAAQqrJ,2BAA6BA,EACrCrrJ,EAAQorJ,WAAaA,G,qBCrHrB,IAAIvqI,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElBg7I,EAAyB,EAAQ,QAwBjCh/G,EAAWr3C,EAAQiJ,oBAAoB,CACzC5R,KAAM,OAKNi/J,aAAc,KAMd9+G,iBAAkB,KAKlBtuC,OAAQ,SAAU/B,EAAWzP,EAASyG,EAAK23B,GAMzCl+B,KAAK4/C,kBAAoB6+G,EAAuBE,SAASpvJ,GACzDkwC,EAASx2C,WAAWjJ,KAAM,SAAUkJ,WACpC01J,EAAkB5+J,KAAMuP,EAAWzP,EAASyG,EAAK23B,GAAS,IAW5D0gI,kBAAmB,SAAUrvJ,EAAWzP,EAASyG,EAAK23B,EAASjnB,GAC7D2nJ,EAAkB5+J,KAAMuP,EAAWzP,EAASyG,EAAK23B,GAAS,IAM5DmE,OAAQ,SAAUviC,EAASyG,GACzB,IAAIg+E,EAAcvkF,KAAK0+J,aACvBn6E,GAAeA,EAAYliD,OAAO97B,GAClCk5C,EAASx2C,WAAWjJ,KAAM,SAAUkJ,YAMtCqlB,QAAS,SAAUzuB,EAASyG,GAC1Bs4J,EAAmB7+J,KAAMuG,GACzBk5C,EAASx2C,WAAWjJ,KAAM,UAAWkJ,cAIzC,SAAS01J,EAAkBnf,EAAUlwI,EAAWzP,EAASyG,EAAK23B,EAAS4gI,GACrE,IAAIn0C,EAAQlrE,EAASs/G,oBAAoBtf,EAAS7/F,kBAElD,GAAK+qE,EAAL,CAIA,IAAIohB,EAAmB0yB,EAAuBO,oBAAoBzvJ,GAClEw8H,GAAoB0T,EAASif,eAAiBjf,EAASif,aAAe,IAAI/zC,IAAUr5G,OAAO/B,EAAWw8H,EAAkBxlI,EAAKu4J,GAAeD,EAAmBpf,EAAUl5I,IAG3K,SAASs4J,EAAmBpf,EAAU3/I,EAASyG,GAC7C,IAAIg+E,EAAck7D,EAASif,aAC3Bn6E,GAAeA,EAAYh2D,QAAQzuB,EAASyG,GAC5Ck5I,EAASif,aAAe,KAG1B,IAAIO,EAAmB,GAEvBx/G,EAAS8tF,yBAA2B,SAAU9tI,EAAMy/J,GAClDD,EAAiBx/J,GAAQy/J,GAG3Bz/G,EAASs/G,oBAAsB,SAAUt/J,GACvC,OAAOA,GAAQw/J,EAAiBx/J,IAGlC,IAAIF,EAAWkgD,EACf/8C,EAAOC,QAAUpD,G,uBCpHjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASrD,EAASM,GAChB,IAAImlF,EAAcnlF,GAAUA,EAAOklF,SAE9BniF,EAAOogB,QAAQgiE,KAClBA,EAAcA,EAAc,CAACA,GAAe,IAG9CpiF,EAAOzD,KAAK6lF,GAAa,SAAUx1E,GAC5BA,GAIL2vJ,EAAc3vJ,MAIlB,SAAS2vJ,EAAc3vJ,GACrB,IAAI/P,EAAO+P,EAAI/P,KACX2/J,EAAW,CACb,OAAU,QACV,KAAQ,QAUV,GAPIA,EAAS3/J,KACX+P,EAAIykB,SAAWmrI,EAAS3/J,UACjB+P,EAAI/P,MAGb4/J,EAAa7vJ,GAETsW,EAAItW,EAAK,mBAAoB,CAC/B,IAAI8vJ,EAAe9vJ,EAAI8vJ,eAAiB9vJ,EAAI8vJ,aAAe,IAEtDx5I,EAAIw5I,EAAc,cACrBA,EAAat0J,SAAWwE,EAAIw9F,iBAGA,SAA1BsyD,EAAat0J,UAAwB8a,EAAIw5I,EAAc,UACzDA,EAAal+J,MAAO,SACbk+J,EAAat0J,iBAGfwE,EAAIw9F,gBAGbpqG,EAAOzD,KAAKqQ,EAAIjP,MAAQ,IAAI,SAAUgL,GAChC3I,EAAOqjB,SAAS1a,KAAc3I,EAAOogB,QAAQzX,MAC1Cua,EAAIva,EAAU,UAAYua,EAAIva,EAAU,UAE3CA,EAASoC,MAAQpC,EAASoB,MAG5B0yJ,EAAa9zJ,OAKnB,SAAS8zJ,EAAa7vJ,GACpB,IAAItE,EAAYsE,EAAItE,YAAcsE,EAAItE,UAAY,IAC9Cq0J,EAAoBr0J,EAAUxJ,WAAawJ,EAAUxJ,SAAW,IAEhEP,EAAQqO,EAAIrO,OAASqO,EAAIrO,OAAS,GAClCq+J,EAAcr+J,EAAM0hF,SAAW1hF,EAAM0hF,OAAS,IAC9C48E,EAAmB,CACrB58E,OAAQ,EACRnhF,SAAU,GAEZkB,EAAOzD,KAAKgC,GAAO,SAAUwM,EAAOhB,GAC7B8yJ,EAAiB9yJ,IAAUmZ,EAAI05I,EAAa7yJ,KAC/C6yJ,EAAY7yJ,GAAQgB,MAIpB4xJ,EAAkBp+J,QAAU2kB,EAAI3kB,EAAO,cACzCA,EAAMO,SAAW69J,EAAkBp+J,aAC5Bo+J,EAAkBp+J,OAI7B,SAAS2kB,EAAIC,EAAK/F,GAChB,OAAO+F,EAAIhJ,eAAeiD,GAG5Btd,EAAOC,QAAUpD,G,uBCvGjB,IAAIqD,EAAS,EAAQ,QAEjBkxB,EAAO,EAAQ,QA8Bf47G,EAAa,SAAU3/H,EAAKtB,EAAOulB,EAAaC,EAAUjpB,GAC5D8oB,EAAKhnB,KAAK9M,KAAM+P,EAAKtB,EAAOulB,GAU5Bh0B,KAAKP,KAAOw0B,GAAY,QAUxBj0B,KAAKgL,SAAWA,GAAY,SAQ5BhL,KAAK8G,OAAS,MAGhB4oI,EAAW5hI,UAAY,CACrBC,YAAa2hI,EAMb5/G,MAAO,KAMPqE,aAAc,WACZ,IAAInpB,EAAWhL,KAAKgL,SACpB,MAAoB,QAAbA,GAAmC,WAAbA,GAM/BqyE,YAAa,SAAU/lD,EAAOy6E,GAC5B,OAAO/xG,KAAKM,iBAAiB+8E,YAAY/lD,EAAOy6E,GAAO,IASzDxhG,cAAe,KAOf0/H,aAAc,MAEhBrtI,EAAOwxB,SAASs7G,EAAY57G,GAC5B,IAAIv0B,EAAWmwI,EACfhtI,EAAOC,QAAUpD,G,qBCxFjB,SAASA,EAASO,GAChB,IAAI4/J,EAAe5/J,EAAQ6/J,eAAe,CACxC1iI,SAAU,WAGPyiI,GAAiBA,EAAaz0J,QAInCnL,EAAQumC,iBAAiB,SAAS,SAAU83G,GAC1C,IAAI/3D,EAAiB+3D,EAAY93D,oBAC7B//C,EAAQ63G,EAAY53G,WACpBhmC,EAAO+lC,EAAM/lC,KACbq/J,EAAgBx5E,EAAe7F,SAAS6F,EAAenpC,SAC3D18C,EAAKw3J,YAAW,SAAU7nJ,GACxB,IAAI4f,EAAQvvB,EAAK6gB,aAAalR,GAC1Bu2E,EAAW32D,EAAM0sB,WAAW,YAEhC,GAAgB,MAAZiqC,EAAkB,CACI,kBAAbA,IACTA,EAAWm5E,EAAcn5E,IAI3B,IAAK,IAAIx4E,EAAI,EAAGA,EAAIyxJ,EAAaz0J,OAAQgD,IACvC,IAAKyxJ,EAAazxJ,GAAGsvB,WAAWkpD,GAC9B,OAAO,EAKb,OAAO,OAERzmF,MAGL0C,EAAOC,QAAUpD,G,uBCtDjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAIy3J,EAAkB,EAAQ,QAE1B7S,EAAY,EAAQ,QAEpB8S,EAAmB,EAAQ,QAE3BrgD,EAAiB,EAAQ,QAEzBsgD,EAAyB,EAAQ,QAoBrC33J,EAAQyrB,eAAegsI,GACvBz3J,EAAQ2mB,eAAei+H,GACvB5kJ,EAAQ+2E,kBAAkB/2E,EAAQ8sC,SAAS4rE,UAAUG,UAAW6+C,GAChE13J,EAAQyJ,qBAAqB4tG,GAC7BsgD,EAAuB,MAAO,CAAC,CAC7BtgK,KAAM,kBACN6I,MAAO,mBACPjC,OAAQ,kBACP,CACD5G,KAAM,YACN6I,MAAO,cACPjC,OAAQ,UACP,CACD5G,KAAM,cACN6I,MAAO,gBACPjC,OAAQ,e,uBCrDV,IAAI/G,EAAsB,EAAQ,QAE9BD,EAAc,EAAQ,QAoBtBE,EAAWF,EAAYG,OAAO,CAChCC,KAAM,uBACNC,aAAc,CAAC,OAAQ,SACvBE,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBU,KAAKC,YAAaD,KAAM,CACjD2hE,oBAAoB,KAGxBnrB,cAAe,QACfz1C,cAAe,CACbT,iBAAkB,cAClBU,OAAQ,EACRC,EAAG,EACHqJ,iBAAiB,EACjB01J,WAAY,SACZr+J,YAAa,EAEbs+J,aAAc,SAEdC,aAAc,CACZhtH,OAAQ,EAERzkC,MAAO,IAEP4nC,UAAW,QAUb0D,WAAY,MAYhBr3C,EAAOC,QAAUpD,G,uBCpEjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB+9F,EAAU,EAAQ,QAElBnmB,EAAWmmB,EAAQnmB,SAEnBr8D,EAAQ,EAAQ,QAEhB8hJ,EAAe,EAAQ,QAEvBr2G,EAAO,EAAQ,QAEfnlD,EAAQ,EAAQ,QAEhB+6G,EAAY,EAAQ,QAEpBlsC,EAAWksC,EAAUlsC,SAErBzpB,EAA8B,EAAQ,QAEtCC,EAAiBD,EAA4BC,eAE7Co2G,EAAU,EAAQ,QAoBlBt/D,EAAyB,CAAC,YAAa,kBACvCu/D,EAAY,CAAC,EAAG,GAKpB,SAASC,EAAYj0J,EAAO9L,GAC1B,IAAIggK,EAAmBl0J,EAAM4+C,SAAW5+C,EAAM4+C,UAE9C,GAAmB,gBAAf5+C,EAAM5M,KAAwB,CAChC,IAAIq4B,EAAWzrB,EAAM0rB,cAIrB,GAAsB,aAAlBD,EAASr4B,OAAwBq4B,EAAS04B,OAAQ,CACpD,IAAIgwG,EAAcjgK,EAAKwgB,UAAU,aAE7B+W,EAAS3D,gBACXosI,EAAiB96J,GAAK+6J,EACtBD,EAAiB/+J,OAAuB,EAAdg/J,IAE1BD,EAAiB76J,GAAK86J,EACtBD,EAAiBr0J,QAAwB,EAAds0J,IAKjC,OAAOD,EAvBT39J,EAAOpD,OAAO6e,EAAMvQ,UAAWqyJ,GA0B/B,IAAI5gK,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,MACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtCvG,KAAKqqD,gBAAgBvoD,GAErB,IAAI2+J,EAAuB3+J,EAAYI,IAAI,oBAM3C,MAJ6B,gBAAzBu+J,GAAmE,UAAzBA,IAC5CzgK,KAAKsqD,aAAetqD,KAAKuqD,aAAazoD,EAAahC,EAASyG,GAAOvG,KAAKwqD,cAAc1oD,EAAahC,EAASyG,IAGvGvG,KAAKsD,OAEdmnD,yBAA0B,SAAU3oD,EAAahC,EAASyG,GACxDvG,KAAK0qD,SAEL1qD,KAAKqqD,gBAAgBvoD,IAEvB6oD,kBAAmB,SAAU9gD,EAAQ/H,EAAahC,EAASyG,GAEzDvG,KAAK4qD,wBAAwB/gD,EAAQ/H,IAEvCuoD,gBAAiB,SAAUvoD,GACzB,IAAIgpD,EAAchpD,EAAY8zB,gBAAgBC,OAErB,MAArB71B,KAAKsqD,cAAwBQ,EAAc9qD,KAAKsqD,gBAClDtqD,KAAKsqD,aAAeQ,EAEpB9qD,KAAK0qD,WAGTF,cAAe,SAAU1oD,EAAahC,EAASyG,GAC7C,IAKIm6J,EALAp9J,EAAQtD,KAAKsD,MACb/C,EAAOuB,EAAYtB,UACnBm9C,EAAU39C,KAAK49C,MACfvxC,EAAQvK,EAAYxB,iBACpBw3B,EAAWzrB,EAAM0rB,cAGF,gBAAf1rB,EAAM5M,KACRihK,EAAuB5oI,EAAS3D,eACR,UAAf9nB,EAAM5M,OACfihK,EAAwC,UAAjB5oI,EAAS/nB,KAGlC,IAAIoyF,EAAiBrgG,EAAYs7C,qBAAuBt7C,EAAc,KAClEipD,EAAYjpD,EAAYI,IAAI,QAAQ,GACpCq+J,EAAmBD,EAAYj0J,EAAO9L,GAE1C+C,EAAMqkC,iBAGN,IAAIkf,EAAW/kD,EAAYI,IAAI,YAAY,GACvCy+J,EAAiB7+J,EAAYI,IAAI,kBAAkB,GACnD0+J,EAAkB9+J,EAAYmf,SAAS,mBACvC4/I,EAAkBD,EAAgB1+J,IAAI,oBAAsB,EAC5D4+J,EAAQ,GACRC,EAAW/gK,KAAKghK,gBAAkB,GACtCzgK,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAU1E,GAC/B,IAAIugB,EAAY5gB,EAAK6gB,aAAaxgB,GAC9BqC,EAAS8d,EAAU1U,EAAM5M,MAAMc,EAAMK,EAAWugB,GAEpD,GAAIw/I,EAAgB,CAClB,IAAIM,EAAWlgJ,EAAU1U,EAAM5M,MAAMc,EAAMK,GACvCsgK,EAAOC,EAAmB90J,EAAOq0J,EAAsBO,GAC3DC,EAAKnlH,SAAS6kH,EAAgBQ,mBAEX,gBAAf/0J,EAAM5M,MACRyhK,EAAK/yG,SAAS,IAAK0yG,GAGrBC,EAAMlgK,GAAasgK,EAIrB,GAAK3gK,EAAK2qD,SAAStqD,GAAnB,CAIA,GAAImqD,EAAW,CAGb,IAAIs2G,EAAYtlJ,EAAK1P,EAAM5M,MAAM8gK,EAAkBt9J,GAEnD,GAAIo+J,EAEF,YADA/9J,EAAM++B,OAAO5W,GAKjB,IAAIA,EAAK61I,EAAej1J,EAAM5M,MAAMmB,EAAWqC,EAAQy9J,EAAsBv+D,GAAgB,EAAOt7C,GACpGtmD,EAAKqhC,iBAAiBhhC,EAAW6qB,GACjCnoB,EAAMgC,IAAImmB,GACV81I,EAAY91I,EAAIlrB,EAAMK,EAAWugB,EAAWle,EAAQnB,EAAa4+J,EAAqC,UAAfr0J,EAAM5M,UAC5F8I,QAAO,SAAUo5F,EAAUC,GAC5B,IAAIzgF,EAAY5gB,EAAK6gB,aAAaugF,GAC9B1+F,EAAS8d,EAAU1U,EAAM5M,MAAMc,EAAMohG,EAAUxgF,GAEnD,GAAIw/I,EAAgB,CAClB,IAAIO,EAAOH,EAASn/D,GACpBs/D,EAAKnlH,SAAS6kH,EAAgBQ,mBAEX,gBAAf/0J,EAAM5M,MACRyhK,EAAK/yG,SAAS,IAAK0yG,GAGrBC,EAAMn/D,GAAYu/D,EAClB,IAAID,EAAWlgJ,EAAU1U,EAAM5M,MAAMc,EAAMohG,GACvCnwF,EAAQgwJ,EAAsBd,EAAsBO,EAAU50J,GAClEvJ,EAAQk8B,YAAYkiI,EAAM,CACxB1vJ,MAAOA,GACN2wF,EAAgBR,GAGrB,IAAIl2E,EAAKkyB,EAAQpE,iBAAiBqoD,GAElC,GAAKrhG,EAAK2qD,SAASy2C,GAAnB,CAKA,GAAI52C,EAAW,CACb,IAAIs2G,EAAYtlJ,EAAK1P,EAAM5M,MAAM8gK,EAAkBt9J,GAEnD,GAAIo+J,EAEF,YADA/9J,EAAM++B,OAAO5W,GAKbA,EACF3oB,EAAQk8B,YAAYvT,EAAI,CACtBja,MAAOvO,GACNk/F,EAAgBR,GAEnBl2E,EAAK61I,EAAej1J,EAAM5M,MAAMkiG,EAAU1+F,EAAQy9J,EAAsBv+D,GAAgB,EAAMt7C,GAGhGtmD,EAAKqhC,iBAAiB+/D,EAAUl2E,GAEhCnoB,EAAMgC,IAAImmB,GACV81I,EAAY91I,EAAIlrB,EAAMohG,EAAUxgF,EAAWle,EAAQnB,EAAa4+J,EAAqC,UAAfr0J,EAAM5M,WAxB1F6D,EAAM++B,OAAO5W,MAyBd4W,QAAO,SAAUzhC,GAClB,IAAI6qB,EAAKkyB,EAAQpE,iBAAiB34C,GAEf,gBAAfyL,EAAM5M,KACRgsB,GAAMg2I,EAAW7gK,EAAWuhG,EAAgB12E,GAE5CA,GAAMi2I,EAAa9gK,EAAWuhG,EAAgB12E,MAE/CizB,UACH,IAAIijH,EAAU3hK,KAAKg+B,mBAAqBh+B,KAAKg+B,iBAAmB,IAAIr5B,GACpEg9J,EAAQp+J,YAER,IAAK,IAAI0K,EAAI,EAAGA,EAAI6yJ,EAAM71J,SAAUgD,EAClC0zJ,EAAQr8J,IAAIw7J,EAAM7yJ,IAGpB3K,EAAMgC,IAAIq8J,GACV3hK,KAAKghK,eAAiBF,EACtB9gK,KAAK49C,MAAQr9C,GAEfgqD,aAAc,SAAUzoD,EAAahC,EAASyG,GAC5CvG,KAAK0qD,SAELY,EAAYxpD,EAAa9B,KAAKsD,OAE9B,IAAIioD,EAAWzpD,EAAYI,IAAI,QAAQ,GAAQ8nD,EAAeloD,EAAYxB,kBAAkB,EAAOwB,GAAe,KAE9GypD,EACFvrD,KAAKsD,MAAMinC,YAAYghB,GAEvBvrD,KAAKsD,MAAMqkC,kBAGfijB,wBAAyB,SAAU/gD,EAAQ/H,GACzC9B,KAAK4hK,oBAELt2G,EAAYxpD,EAAa9B,KAAKsD,OAAO,IAEvCirB,QAAS3rB,EAAOg2C,KAChBvW,OAAQ,SAAUviC,GAChBE,KAAK0qD,OAAO5qD,IAEd4qD,OAAQ,SAAU5qD,GAChB,IAAIwD,EAAQtD,KAAKsD,MACb/C,EAAOP,KAAK49C,MAEZ99C,GAAWA,EAAQoC,IAAI,cAAgB3B,IAASP,KAAKsqD,cACvDtqD,KAAK4hK,oBAEL5hK,KAAKghK,eAAiB,GACtBzgK,EAAKo+C,mBAAkB,SAAUlzB,GACf,WAAZA,EAAGhsB,KACLiiK,EAAaj2I,EAAG7qB,UAAWd,EAAS2rB,GAEpCg2I,EAAWh2I,EAAG7qB,UAAWd,EAAS2rB,OAItCnoB,EAAMC,YAGRvD,KAAK49C,MAAQ,MAEfgkH,kBAAmB,WACjB5hK,KAAKsD,MAAM++B,OAAOriC,KAAKg+B,kBACvBh+B,KAAKg+B,iBAAmB,QAIxBy6B,EAAU5sD,KAAK4E,IACf+nD,EAAU3sD,KAAK6E,IACfqL,EAAO,CACT8lJ,YAAa,SAAUC,EAAsB7+J,GAC3C,IAAI8+J,EAAY9+J,EAAOzB,MAAQ,GAAK,EAAI,EACpCwgK,EAAa/+J,EAAOiJ,OAAS,GAAK,EAAI,EAEtC61J,EAAY,IACd9+J,EAAOwC,GAAKxC,EAAOzB,MACnByB,EAAOzB,OAASyB,EAAOzB,OAGrBwgK,EAAa,IACf/+J,EAAOyC,GAAKzC,EAAOiJ,OACnBjJ,EAAOiJ,QAAUjJ,EAAOiJ,QAG1B,IAAIzG,EAAIgzD,EAAQx1D,EAAOwC,EAAGq8J,EAAqBr8J,GAC3C60D,EAAK9B,EAAQv1D,EAAOwC,EAAIxC,EAAOzB,MAAOsgK,EAAqBr8J,EAAIq8J,EAAqBtgK,OACpFkE,EAAI+yD,EAAQx1D,EAAOyC,EAAGo8J,EAAqBp8J,GAC3C60D,EAAK/B,EAAQv1D,EAAOyC,EAAIzC,EAAOiJ,OAAQ41J,EAAqBp8J,EAAIo8J,EAAqB51J,QACzFjJ,EAAOwC,EAAIA,EACXxC,EAAOyC,EAAIA,EACXzC,EAAOzB,MAAQ84D,EAAK70D,EACpBxC,EAAOiJ,OAASquD,EAAK70D,EACrB,IAAIomD,EAAU7oD,EAAOzB,MAAQ,GAAKyB,EAAOiJ,OAAS,EAYlD,OAVI61J,EAAY,IACd9+J,EAAOwC,GAAKxC,EAAOzB,MACnByB,EAAOzB,OAASyB,EAAOzB,OAGrBwgK,EAAa,IACf/+J,EAAOyC,GAAKzC,EAAOiJ,OACnBjJ,EAAOiJ,QAAUjJ,EAAOiJ,QAGnB4/C,GAETpO,MAAO,SAAU6iH,GACf,OAAO,IAGPe,EAAiB,CACnBO,YAAa,SAAUjhK,EAAWqC,EAAQkxB,EAAcguE,EAAgB5xB,GACtE,IAAIvkE,EAAO,IAAIlJ,EAAQyO,KAAK,CAC1BC,MAAO5O,EAAOpD,OAAO,GAAIyD,GACzBmO,GAAI,IAIN,GAFApF,EAAKW,KAAO,OAERw1F,EAAgB,CAClB,IAAIuD,EAAY15F,EAAKwF,MACjBywJ,EAAkB9tI,EAAe,SAAW,QAC5C+tI,EAAgB,GACpBx8D,EAAUu8D,GAAmB,EAC7BC,EAAcD,GAAmBh/J,EAAOg/J,GACxCn/J,EAAQytE,EAAW,cAAgB,aAAavkE,EAAM,CACpDwF,MAAO0wJ,GACN//D,EAAgBvhG,GAGrB,OAAOoL,GAET0xC,MAAO,SAAU98C,EAAWqC,EAAQk/J,EAAUhgE,EAAgB5xB,EAAU1pB,GAKtE,IAAI2I,EAAYvsD,EAAO6+C,WAAa7+C,EAAO8+C,SACvCwmB,GAAc45F,GAAYt7G,EAAWu5G,EAAUt9J,EAAQ8+C,OACvDiM,EAAS,IAAI0a,EAAW,CAC1B/2D,MAAO5O,EAAO6O,SAAS,CACrB+9C,UAAWA,GACVvsD,GACHmO,GAAI,IAIN,GAFAy8C,EAAOlhD,KAAO,OAEVw1F,EAAgB,CAClB,IAAIl0C,EAAcJ,EAAOr8C,MACrBywJ,EAAkBE,EAAW,IAAM,WACnCD,EAAgB,GACpBj0G,EAAYg0G,GAAmBE,EAAW,EAAIl/J,EAAO6+C,WACrDogH,EAAcD,GAAmBh/J,EAAOg/J,GACxCn/J,EAAQytE,EAAW,cAAgB,aAAa1iB,EAAQ,CACtDr8C,MAAO0wJ,GACN//D,EAAgBvhG,GAGrB,OAAOitD,IAIX,SAAS4zG,EAAW7gK,EAAWuhG,EAAgB12E,GAE7CA,EAAGjmB,MAAMG,KAAO,KAChB7C,EAAQk8B,YAAYvT,EAAI,CACtBja,MAAO,CACLhQ,MAAO,IAER2gG,EAAgBvhG,GAAW,WAC5B6qB,EAAG5J,QAAU4J,EAAG5J,OAAOwgB,OAAO5W,MAIlC,SAASi2I,EAAa9gK,EAAWuhG,EAAgB12E,GAE/CA,EAAGjmB,MAAMG,KAAO,KAChB7C,EAAQk8B,YAAYvT,EAAI,CACtBja,MAAO,CACLqC,EAAG4X,EAAGja,MAAMqwC,KAEbsgD,EAAgBvhG,GAAW,WAC5B6qB,EAAG5J,QAAU4J,EAAG5J,OAAOwgB,OAAO5W,MAIlC,IAAI1K,EAAY,CAGd8gJ,YAAa,SAAUthK,EAAMK,EAAWugB,GACtC,IAAIle,EAAS1C,EAAKygB,cAAcpgB,GAC5BwhK,EAAiBjhJ,EAAYkhJ,EAAalhJ,EAAWle,GAAU,EAE/Dq/J,EAAQr/J,EAAOzB,MAAQ,EAAI,GAAK,EAChC+gK,EAAQt/J,EAAOiJ,OAAS,EAAI,GAAK,EACrC,MAAO,CACLzG,EAAGxC,EAAOwC,EAAI68J,EAAQF,EAAiB,EACvC18J,EAAGzC,EAAOyC,EAAI68J,EAAQH,EAAiB,EACvC5gK,MAAOyB,EAAOzB,MAAQ8gK,EAAQF,EAC9Bl2J,OAAQjJ,EAAOiJ,OAASq2J,EAAQH,IAGpC1kH,MAAO,SAAUn9C,EAAMK,EAAWugB,GAChC,IAAIle,EAAS1C,EAAKygB,cAAcpgB,GAChC,MAAO,CACLw9C,GAAIn7C,EAAOm7C,GACXC,GAAIp7C,EAAOo7C,GACXwD,GAAI5+C,EAAO4+C,GACXhuC,EAAG5Q,EAAO4Q,EACViuC,WAAY7+C,EAAO6+C,WACnBC,SAAU9+C,EAAO8+C,YAKvB,SAASygH,EAAcv/J,GACrB,OAA4B,MAArBA,EAAO6+C,YAAyC,MAAnB7+C,EAAO8+C,UAAoB9+C,EAAO6+C,aAAe7+C,EAAO8+C,SAG9F,SAASw/G,EAAY91I,EAAIlrB,EAAMK,EAAWugB,EAAWle,EAAQnB,EAAaqyB,EAAcsuI,GACtF,IAAI7qJ,EAAQrX,EAAKohB,cAAc/gB,EAAW,SACtCa,EAAUlB,EAAKohB,cAAc/gB,EAAW,WACxCi+C,EAASt+C,EAAKkhB,UAAU,eACxBse,EAAiB5e,EAAUF,SAAS,aACpCsgB,EAAapgB,EAAUF,SAAS,sBAAsBmgJ,kBAErDqB,GACHh3I,EAAG0iC,SAAS,IAAKpuB,EAAe79B,IAAI,oBAAsB,GAG5DupB,EAAGswB,SAASn5C,EAAO6O,SAAS,CAC1BotC,OAAQ2jH,EAAcv/J,GAAU,OAAS47C,EACzCntC,KAAM8wJ,EAAcv/J,GAAU,OAAS2U,EACvCnW,QAASA,GACRs+B,EAAeqhI,oBAClB,IAAI9kH,EAAcn7B,EAAUq7B,WAAW,UACvCF,GAAe7wB,EAAGzL,KAAK,SAAUs8B,GACjC,IAAIomH,EAAuBvuI,EAAelxB,EAAOiJ,OAAS,EAAI,SAAW,MAAQjJ,EAAOzB,MAAQ,EAAI,OAAS,QAExGihK,GACH/nF,EAASjvD,EAAGjmB,MAAO+7B,EAAYpgB,EAAWvJ,EAAO9V,EAAalB,EAAW8hK,GAGvEF,EAAcv/J,KAChBs+B,EAAW7vB,KAAO6vB,EAAWsd,OAAS,QAGxC/7C,EAAQq/B,cAAc1W,EAAI8V,GAI5B,SAAS8gI,EAAalhJ,EAAWwhJ,GAC/B,IAAIjqF,EAAYv3D,EAAUjf,IAAI4+F,IAA2B,EAErDt/F,EAAQuX,MAAM4pJ,EAAUnhK,OAAS66D,OAAOC,UAAYzwD,KAAKC,IAAI62J,EAAUnhK,OACvE0K,EAAS6M,MAAM4pJ,EAAUz2J,QAAUmwD,OAAOC,UAAYzwD,KAAKC,IAAI62J,EAAUz2J,QAC7E,OAAOL,KAAK6E,IAAIgoE,EAAWl3E,EAAO0K,GAGpC,IAAI02J,EAAY94G,EAAKtqD,OAAO,CAC1BC,KAAM,WACN+R,MAAO,CACL+F,OAAQ,IAEVk0C,UAAW,SAAUhnB,EAAKjzB,GAOxB,IAJA,IAAI+F,EAAS/F,EAAM+F,OACfsrJ,EAAa7iK,KAAK8iK,aAClBC,EAAa/iK,KAAKgjK,aAEb/0J,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAQgD,GAAK,EACtC40J,EAAWE,GAAcxrJ,EAAOtJ,EAAI80J,GACpCt+H,EAAItW,OAAO00I,EAAW,GAAIA,EAAW,IACrCp+H,EAAIknB,OAAOp0C,EAAOtJ,GAAIsJ,EAAOtJ,EAAI,OAKvC,SAASq9C,EAAYxpD,EAAawB,EAAOm4C,GAEvC,IAAIl7C,EAAOuB,EAAYtB,UACnBqiK,EAAa,GACbE,EAAaxiK,EAAKwgB,UAAU,uBAAyB,EAAI,EAC7D8hJ,EAAW,EAAIE,GAAcxiK,EAAKwgB,UAAU,kBAC5C,IAAIkiJ,EAAmB1iK,EAAKwgB,UAAU,oBAClCqX,EAAW73B,EAAKwgB,UAAU,YAC1B6/I,EAAkB9+J,EAAYmf,SAAS,mBACvC0/I,EAAiB7+J,EAAYI,IAAI,kBAAkB,GAEvD,GAAIy+J,EAAgB,CAClB,IAAIppJ,EAAShX,EAAKwgB,UAAU,yBACxBmiJ,EAAuB,GAC3BA,EAAqB,EAAIH,GAAcxiK,EAAKwgB,UAAU,mBACtD,IAAImgJ,EAAO,IAAI0B,EAAU,CACvBpxJ,MAAO,CACL+F,OAAQA,GAEVkkC,cAAeA,EACfqnH,aAAcI,EACdF,aAAcD,EACdI,mBAAoBF,EACpBG,WAAYhrI,EACZxmB,QAAQ,EACRR,GAAI,IAENiyJ,EAAwBnC,EAAMN,EAAiBrgK,GAC/C+C,EAAMgC,IAAI47J,GAGZ,IAAIz1I,EAAK,IAAIm3I,EAAU,CACrBpxJ,MAAO,CACL+F,OAAQhX,EAAKwgB,UAAU,gBAEzB06B,cAAeA,EACfqnH,aAAcD,EACdG,aAAcD,EACdI,mBAAoBF,EACpBG,WAAYhrI,IAEd90B,EAAMgC,IAAImmB,GACV4gC,EAAc5gC,EAAI3pB,EAAavB,GAE/BkrB,EAAGsrB,YAAcj1C,EAAYi1C,YAExBj1C,EAAYI,IAAI,YACnBupB,EAAG7kB,GAAG,YAAa08J,GACnB73I,EAAG7kB,GAAG,YAAa08J,IAKvB,IAAIA,EAA2B9vF,GAAS,SAAUlrE,GAChD,IAAIi7J,EAAYvjK,KACZY,EAAY4iK,EAAuBD,EAAWj7J,EAAMgzE,QAAShzE,EAAMizE,SACvEgoF,EAAU3iK,UAAYA,GAAa,EAAIA,EAAY,OAClD,IAAI,GAEP,SAAS4iK,EAAuBD,EAAW99J,EAAGC,GAC5C,IAAIq9J,EAAaQ,EAAUP,aACvBS,EAAc,EAAIV,EAClBxrJ,EAASgsJ,EAAU/xJ,MAAM+F,OACzB0rJ,EAAmBM,EAAUJ,mBAC7BO,EAAe73J,KAAKC,IAAIy3J,EAAUH,WAAa,GAC/CO,EAAgBJ,EAAUT,aAAaW,GAC3CpD,EAAU,GAAK56J,EACf46J,EAAU,GAAK36J,EAMf,IALA,IAAIk+J,EAAiBvD,EAAU0C,GAC3Bc,EAAkBxD,EAAU,EAAI0C,GAChCe,EAAiBF,EAAiBF,EAClCK,EAAiBH,EAAiBF,EAE7Bz1J,EAAI,EAAGqK,EAAMf,EAAOtM,OAAS,EAAGgD,EAAIqK,EAAKrK,IAAK,CACrD,IAAIuwJ,EAAS,EAAJvwJ,EACL+1J,EAAazsJ,EAAOinJ,EAAKuE,GACzBkB,EAAc1sJ,EAAOinJ,EAAKiF,GAE9B,GAAIO,GAAcF,GAAkBE,GAAcD,IAAmBJ,GAAiBM,EAAcJ,GAAmBF,GAAiBE,GAAmBI,EAAcJ,GAAmBI,GAAeJ,GAAmBF,GAC5N,OAAOV,EAAiBh1J,GAI5B,OAAQ,EAGV,SAASo+C,EAAc5gC,EAAI3pB,EAAavB,GACtC,IAAI4K,EAAc5K,EAAKkhB,UAAU,gBAAkBlhB,EAAKkhB,UAAU,SAC9DvW,EAAYpJ,EAAYmf,SAAS,aAAatP,aAAa,CAAC,QAAS,gBACzE8Z,EAAGswB,SAAS7wC,GACZugB,EAAGjmB,MAAMkM,KAAO,KAChB+Z,EAAGjmB,MAAMq5C,OAAS1zC,EAClBsgB,EAAGjmB,MAAMkzE,UAAYn4E,EAAKwgB,UAAU,YAGtC,SAASsiJ,EAAwB53I,EAAIm1I,EAAiBrgK,GACpD,IAAI4K,EAAcy1J,EAAgB1+J,IAAI,gBAAkB0+J,EAAgB1+J,IAAI,SACxEgJ,EAAY01J,EAAgBjvJ,aAAa,CAAC,QAAS,gBACvD8Z,EAAGswB,SAAS7wC,GACZugB,EAAGjmB,MAAMkM,KAAO,KAChB+Z,EAAGjmB,MAAMq5C,OAAS1zC,EAClBsgB,EAAGjmB,MAAMkzE,UAAYn4E,EAAKwgB,UAAU,YAGtC,SAASygJ,EAAsBd,EAAsBz9J,EAAQoJ,GAC3D,IAAI63J,EACAzB,EAAyB,UAAfp2J,EAAM5M,KAQpB,OALEykK,EADEzB,EACYp2J,EAAM4+C,UAEN5+C,EAAMoD,KAAKO,UAGvByyJ,EACK,CACLrkH,GAAI8lH,EAAY9lH,GAChBC,GAAI6lH,EAAY7lH,GAChBwD,GAAI6+G,EAAuBwD,EAAYriH,GAAK5+C,EAAO4+C,GACnDhuC,EAAG6sJ,EAAuBwD,EAAYrwJ,EAAI5Q,EAAO4Q,EACjDiuC,WAAY4+G,EAAuBz9J,EAAO6+C,WAAa,EACvDC,SAAU2+G,EAAuBz9J,EAAO8+C,SAAqB,EAAVl2C,KAAK+E,IAGnD,CACLnL,EAAGi7J,EAAuBz9J,EAAOwC,EAAIy+J,EAAYz+J,EACjDC,EAAGg7J,EAAuBwD,EAAYx+J,EAAIzC,EAAOyC,EACjDlE,MAAOk/J,EAAuBz9J,EAAOzB,MAAQ0iK,EAAY1iK,MACzD0K,OAAQw0J,EAAuBwD,EAAYh4J,OAASjJ,EAAOiJ,QAKjE,SAASi1J,EAAmB90J,EAAOq0J,EAAsBz9J,GACvD,IAAIkhK,EAA4B,UAAf93J,EAAM5M,KAAmBqD,EAAQ8+C,OAAS9+C,EAAQyO,KACnE,OAAO,IAAI4yJ,EAAW,CACpB3yJ,MAAOgwJ,EAAsBd,EAAsBz9J,EAAQoJ,GAC3DuF,QAAQ,EACRR,GAAI,IAIR1O,EAAOC,QAAUpD,G,uBCxpBjB,IAAI6kK,EAAS,EAAQ,QAEjB54B,EAAwB44B,EAAO54B,sBAenC,SAAS64B,EAAcrpG,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAIme,EAAWjzE,EAAGC,GAC3D,GAAkB,IAAdgzE,EACF,OAAO,EAGT,IAAI4rF,EAAK5rF,EAET,GAAIhzE,EAAIu1D,EAAKqpG,GAAM5+J,EAAI20D,EAAKiqG,GAAM5+J,EAAI60D,EAAK+pG,GAAM5+J,EAAIu1D,EAAKqpG,GAAM5+J,EAAI20D,EAAKiqG,GAAM5+J,EAAI60D,EAAK+pG,GAAM7+J,EAAIu1D,EAAKspG,GAAM7+J,EAAI20D,EAAKkqG,GAAM7+J,EAAI60D,EAAKgqG,GAAM7+J,EAAIu1D,EAAKspG,GAAM7+J,EAAI20D,EAAKkqG,GAAM7+J,EAAI60D,EAAKgqG,EAChL,OAAO,EAGT,IAAItnG,EAAIwuE,EAAsBxwE,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAI90D,EAAGC,EAAG,MAC5D,OAAOs3D,GAAKsnG,EAAK,EAGnB3hK,EAAQ0hK,cAAgBA,G,qBCZxB,IAAIliG,EAAY,EAAQ,QAoBxBA,EAAUoiG,yBAAyB,YAAY,WAE7C,MAAO,a,uBCtBT,IAAI/gJ,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBilC,EAAe,EAAQ,QAEvByW,EAAgB,EAAQ,QAExB5W,EAAQ,EAAQ,QAEhB0W,EAAa,EAAQ,QAErBulG,EAAW,EAAQ,QAEnBC,EAAyBD,EAASC,uBAClCC,EAAmBF,EAASE,iBAC5BC,EAAuBH,EAASG,qBAEhCp4J,EAAe,EAAQ,QA6B3B,SAASmwE,EAAejuE,EAAOqhB,GAC7B,IAII80I,EACA3/G,EACA4b,EANAgkG,EAAYp2J,EAAMhP,KAClBiR,EAAMof,EAAM4mC,SACZjmD,EAAMqf,EAAM+mC,SACZiuG,EAAiBr2J,EAAM8W,YAKT,YAAds/I,EACFD,EAAc90I,EAAMi1I,gBAAgB95J,QAEpCg6C,EAAcn1B,EAAM5tB,IAAI,eAEnBU,EAAOogB,QAAQiiC,KAClBA,EAAc,CAACA,GAAe,EAAGA,GAAe,IAGpB,mBAAnBA,EAAY,KACrBA,EAAc,CAAC,EAAG,IAGpBA,EAAY,GAAKga,EAAWzqC,aAAaywB,EAAY,GAAI,GACzDA,EAAY,GAAKga,EAAWzqC,aAAaywB,EAAY,GAAI,GACzD4b,EAAOikG,EAAe,GAAKA,EAAe,IAAMj5J,KAAKC,IAAIg5J,EAAe,KAgB9D,YAARp0J,EACFA,EAAMo0J,EAAe,GACG,oBAARp0J,IAChBA,EAAMA,EAAI,CACRA,IAAKo0J,EAAe,GACpBr0J,IAAKq0J,EAAe,MAIZ,YAARr0J,EACFA,EAAMq0J,EAAe,GACG,oBAARr0J,IAChBA,EAAMA,EAAI,CACRC,IAAKo0J,EAAe,GACpBr0J,IAAKq0J,EAAe,MAIxB,IAAIpkG,EAAgB,MAAPhwD,EACTiwD,EAAgB,MAAPlwD,EAEF,MAAPC,IACFA,EAAoB,YAAdm0J,EAA0BD,EAAc,EAAIvtI,IAAMytI,EAAe,GAAK7/G,EAAY,GAAK4b,GAGpF,MAAPpwD,IACFA,EAAoB,YAAdo0J,EAA0BD,EAAcA,EAAc,EAAIvtI,IAAMytI,EAAe,GAAK7/G,EAAY,GAAK4b,IAGrG,MAAPnwD,IAAgBipB,SAASjpB,MAAUA,EAAM2mB,MAClC,MAAP5mB,IAAgBkpB,SAASlpB,MAAUA,EAAM4mB,KAC1C5oB,EAAMu2J,SAASpiK,EAAOg0D,MAAMlmD,IAAQ9N,EAAOg0D,MAAMnmD,IAAsB,YAAdo0J,IAA4Bp2J,EAAM86C,iBAAiBjlC,WAAWrZ,QAEnH6kB,EAAMinC,qBAEJrmD,EAAM,GAAKD,EAAM,IAAMiwD,IACzBhwD,EAAM,GAIJA,EAAM,GAAKD,EAAM,IAAMkwD,IACzBlwD,EAAM,IAaV,IAAI3Q,EAAUgwB,EAAMhwB,QAEpB,GAAIA,GAAyB,SAAd+kK,EAEb,CACA,IACII,EADAC,EAAkBT,EAAuB,MAAO3kK,GAMpD,GAJA8C,EAAOzD,KAAK+lK,GAAiB,SAAUpjK,GACrCmjK,GAA6BnjK,EAAYi2B,gBAAkBjI,EAAMpgB,QAG/Du1J,EAA2B,CAE7B,IAAI9zG,EAAoBuzG,EAAiBQ,GAErCC,EAAgBC,EAAuB10J,EAAKD,EAAKqf,EAAOqhC,GAC5DzgD,EAAMy0J,EAAcz0J,IACpBD,EAAM00J,EAAc10J,KAIxB,MAAO,CACLonB,OAAQ,CAACnnB,EAAKD,GAGdiwD,OAAQA,EACRC,OAAQA,GAIZ,SAASykG,EAAuB10J,EAAKD,EAAKqf,EAAOqhC,GAE/C,IAAI0B,EAAa/iC,EAAMpgB,KAAK6V,YACxB8/I,EAAaxyG,EAAW,GAAKA,EAAW,GAExCyyG,EAAoBX,EAAqBxzG,EAAmBrhC,EAAMpgB,MAEtE,QAA0BojB,IAAtBwyI,EACF,MAAO,CACL50J,IAAKA,EACLD,IAAKA,GAIT,IAAI80J,EAAcxyJ,IAClBnQ,EAAOzD,KAAKmmK,GAAmB,SAAU9gK,GACvC+gK,EAAc15J,KAAK6E,IAAIlM,EAAKsQ,OAAQywJ,MAEtC,IAAIC,GAAezyJ,IACnBnQ,EAAOzD,KAAKmmK,GAAmB,SAAU9gK,GACvCghK,EAAc35J,KAAK4E,IAAIjM,EAAKsQ,OAAStQ,EAAKhD,MAAOgkK,MAEnDD,EAAc15J,KAAKC,IAAIy5J,GACvBC,EAAc35J,KAAKC,IAAI05J,GACvB,IAAIC,EAAgBF,EAAcC,EAE9BE,EAAWj1J,EAAMC,EACjBi1J,EAAuB,GAAKJ,EAAcC,GAAeH,EACzDO,EAAiBF,EAAWC,EAAuBD,EAGvD,OAFAj1J,GAAOm1J,GAAkBJ,EAAcC,GACvC/0J,GAAOk1J,GAAkBL,EAAcE,GAChC,CACL/0J,IAAKA,EACLD,IAAKA,GAIT,SAASwyC,EAAgBx0C,EAAOqhB,GAC9B,IAAI+1I,EAAanpF,EAAejuE,EAAOqhB,GACnC+H,EAASguI,EAAWhuI,OACpBtT,EAAcuL,EAAM5tB,IAAI,eAET,QAAfuM,EAAMhP,OACRgP,EAAM6sI,KAAOxrH,EAAM5tB,IAAI,YAGzB,IAAI2iK,EAAYp2J,EAAMhP,KACtBgP,EAAMu0C,UAAUnrB,EAAO,GAAIA,EAAO,IAClCppB,EAAMg7C,WAAW,CACfllC,YAAaA,EACbm8C,OAAQmlG,EAAWnlG,OACnBC,OAAQklG,EAAWllG,OACnBJ,YAA2B,aAAdskG,GAA0C,SAAdA,EAAuB/0I,EAAM5tB,IAAI,eAAiB,KAC3Fs+D,YAA2B,aAAdqkG,GAA0C,SAAdA,EAAuB/0I,EAAM5tB,IAAI,eAAiB,OAO7F,IAAIglB,EAAW4I,EAAM5tB,IAAI,YAET,MAAZglB,GACFzY,EAAMgwE,aAAehwE,EAAMgwE,YAAYv3D,GAU3C,SAAS67B,EAAmBjzB,EAAOmE,GAGjC,GAFAA,EAAWA,GAAYnE,EAAM5tB,IAAI,QAE7B+xB,EACF,OAAQA,GAEN,IAAK,WACH,OAAO,IAAIy0B,EAAa54B,EAAMy5B,eAAiBz5B,EAAMy5B,iBAAmBz5B,EAAMi1I,gBAAiB,CAAChyJ,KAAWA,MAE7G,IAAK,QACH,OAAO,IAAIosD,EAGb,QACE,OAAQ5W,EAAMqiE,SAAS32F,IAAakrC,GAAev7B,OAAO9T,IASlE,SAASqwH,EAAgBzwI,GACvB,IAAI4V,EAAa5V,EAAKjB,MAAM8W,YACxB7U,EAAM4U,EAAW,GACjB7U,EAAM6U,EAAW,GACrB,QAAS5U,EAAM,GAAKD,EAAM,GAAKC,EAAM,GAAKD,EAAM,GAYlD,SAASq1J,EAAmBp2J,GAC1B,IAAImrE,EAAiBnrE,EAAKwkB,gBAAgBhyB,IAAI,aAC1C6jK,EAAkC,aAAdr2J,EAAKjQ,KAAsBiQ,EAAKjB,MAAM8W,YAAY,GAAK,KAE/E,MAA8B,kBAAnBs1D,GACTA,EAAiB,SAAUmrF,GACzB,OAAO,SAAUv6J,GAIf,OADAA,EAAMiE,EAAKjB,MAAM06C,SAAS19C,GACnBu6J,EAAIvjK,QAAQ,UAAkB,MAAPgJ,EAAcA,EAAM,KALrC,CAOfovE,GAGKA,GAC4B,oBAAnBA,EACT,SAAUq0B,EAAWh/F,GAW1B,OAJyB,MAArB61J,IACF71J,EAAMg/F,EAAY62D,GAGblrF,EAAewhD,EAAgB3sH,EAAMw/F,GAAYh/F,IAGnD,SAAU+1J,GACf,OAAOv2J,EAAKjB,MAAM06C,SAAS88G,IAKjC,SAAS5pC,EAAgB3sH,EAAM/B,GAI7B,MAAqB,aAAd+B,EAAKjQ,KAAsBiQ,EAAKjB,MAAM06C,SAASx7C,GAASA,EAQjE,SAASyyI,EAAuB1wI,GAC9B,IAAIH,EAAYG,EAAKogB,MACjBrhB,EAAQiB,EAAKjB,MAEjB,GAAKc,EAAUrN,IAAI,oBAAqBuM,EAAMiyC,UAA9C,CAIA,IACIwlH,EACAC,EAFAtgJ,EAA2B,aAAdnW,EAAKjQ,KAGlB2mK,EAAsB33J,EAAM8W,YAE5BM,EACFsgJ,EAAY13J,EAAM0T,SAElB+jJ,EAAuBz3J,EAAMw6C,WAC7Bk9G,EAAYD,EAAqBj7J,QAGnC,IAEIe,EAFAq6J,EAAiB32J,EAAKwkB,gBACtB2mD,EAAiBirF,EAAmBp2J,GAEpCkyD,EAAO,EAEPukG,EAAY,KACdvkG,EAAO/1D,KAAKyzD,KAAK6mG,EAAY,KAG/B,IAAK,IAAIl4J,EAAI,EAAGA,EAAIk4J,EAAWl4J,GAAK2zD,EAAM,CACxC,IAAIstC,EAAYg3D,EAAuBA,EAAqBj4J,GAAKm4J,EAAoB,GAAKn4J,EACtF9M,EAAQ05E,EAAeq0B,GACvBo3D,EAAsBD,EAAe1qD,YAAYx6G,GACjDolK,EAAaC,EAAeF,EAAqBD,EAAenkK,IAAI,WAAa,GACrF8J,EAAOA,EAAKyqG,MAAM8vD,GAAcv6J,EAAOu6J,EAGzC,OAAOv6J,GAGT,SAASw6J,EAAen6E,EAAUjnD,GAChC,IAAIqhI,EAAgBrhI,EAASv5B,KAAK+E,GAAK,IACnC81J,EAAcr6E,EAASs6E,QACvBC,EAAcF,EAAYllK,MAC1BqlK,EAAeH,EAAYx6J,OAC3B46J,EAAaF,EAAc/6J,KAAK04C,IAAIkiH,GAAiBI,EAAeh7J,KAAKw4C,IAAIoiH,GAC7EM,EAAcH,EAAc/6J,KAAKw4C,IAAIoiH,GAAiBI,EAAeh7J,KAAK04C,IAAIkiH,GAC9EO,EAAc,IAAIz6J,EAAam6J,EAAYjhK,EAAGihK,EAAYhhK,EAAGohK,EAAYC,GAC7E,OAAOC,EAQT,SAASC,EAA0Bn3I,GACjC,IAAI5I,EAAW4I,EAAM5tB,IAAI,YACzB,OAAmB,MAAZglB,EAAmB,OAASA,EAUrC,SAASggJ,EAAoBx3J,GAC3B,MAAqB,aAAdA,EAAKjQ,MAA2E,IAApDwnK,EAA0Bv3J,EAAKwkB,iBA7XpE,EAAQ,QAER,EAAQ,QA8XRvxB,EAAQ+5E,eAAiBA,EACzB/5E,EAAQsgD,gBAAkBA,EAC1BtgD,EAAQogD,mBAAqBA,EAC7BpgD,EAAQw9I,gBAAkBA,EAC1Bx9I,EAAQmjK,mBAAqBA,EAC7BnjK,EAAQ05H,gBAAkBA,EAC1B15H,EAAQy9I,uBAAyBA,EACjCz9I,EAAQskK,0BAA4BA,EACpCtkK,EAAQukK,oBAAsBA,G,wBClb9B,IAAIC,EAAO,EAAQ,QAEfr+I,EAAM,EAAQ,QAEdlmB,EAAS,EAAQ,QAEjBwkK,EAAU,EAAQ,QAElBC,EAAU,EAAQ,QAElBC,EAAU,EAAQ,QAElBzsE,EAAY,EAAQ,QAEpB0sE,EAAe,EAAQ,QAWvBC,GAAU1+I,EAAImB,gBACdw9I,EAAe,CACjBhhD,OAAQ6gD,GAEN/gD,EAAY,GAMZliD,EAAU,QAYd,SAASr7D,EAAKg5G,EAAK1+E,GACjB,IAAI/Y,EAAK,IAAIm9I,EAAQP,IAAQnlD,EAAK1+E,GAElC,OADAijF,EAAUh8F,EAAGpiB,IAAMoiB,EACZA,EAQT,SAASgE,EAAQhE,GACf,GAAIA,EACFA,EAAGgE,cACE,CACL,IAAK,IAAIxmB,KAAOw+G,EACVA,EAAUxpG,eAAehV,IAC3Bw+G,EAAUx+G,GAAKwmB,UAInBg4F,EAAY,GAGd,OAAOvmH,KAST,SAAS2nK,EAAYx/J,GACnB,OAAOo+G,EAAUp+G,GAGnB,SAASy/J,EAAgBj7J,EAAMmzH,GAC7B2nC,EAAa96J,GAAQmzH,EAGvB,SAAS+nC,EAAY1/J,UACZo+G,EAAUp+G,GAmBnB,IAAIu/J,EAAU,SAAUv/J,EAAI65G,EAAK1+E,GAC/BA,EAAOA,GAAQ,GAKftjC,KAAKgiH,IAAMA,EAKXhiH,KAAKmI,GAAKA,EACV,IAAIsV,EAAOzd,KACPwlH,EAAU,IAAI6hD,EACdS,EAAexkI,EAAK++E,SAExB,GAAImlD,EAAQ,CACV,IAAKC,EAAaM,IAChB,MAAM,IAAIpxJ,MAAM,wDAGlBmxJ,EAAe,WACLA,GAAiBL,EAAaK,KACxCA,EAAe,UAGjB,IAAIl9I,EAAU,IAAI68I,EAAaK,GAAc9lD,EAAKwD,EAASliF,EAAMn7B,GACjEnI,KAAKwlH,QAAUA,EACfxlH,KAAK4qB,QAAUA,EACf,IAAIo9I,EAAel/I,EAAItJ,MAASsJ,EAAI66C,OAAqE,KAA5D,IAAI4jG,EAAa38I,EAAQE,kBAAmBF,EAAQ1L,MACjGlf,KAAK6sB,QAAU,IAAIu6I,EAAQ5hD,EAAS56F,EAASo9I,EAAap9I,EAAQ1L,MAKlElf,KAAK2d,UAAY,IAAIk9E,EAAU,CAC7BC,MAAO,CACLvyF,OAAQ3F,EAAOiC,KAAK7E,KAAKuiH,MAAOviH,SAGpCA,KAAK2d,UAAUpJ,QAMfvU,KAAKioK,cAGL,IAAIC,EAAoB1iD,EAAQ2iD,eAC5BC,EAAkB5iD,EAAQ6iD,aAE9B7iD,EAAQ2iD,eAAiB,SAAU18I,GACjCy8I,EAAkBp7J,KAAK04G,EAAS/5F,GAChCA,GAAMA,EAAG68I,iBAAiB7qJ,IAG5B+nG,EAAQ6iD,aAAe,SAAU58I,GAC/B28I,EAAgBt7J,KAAK04G,EAAS/5F,GAC9BA,EAAG88I,YAAY9qJ,KAInBiqJ,EAAQ55J,UAAY,CAClBC,YAAa25J,EAMbvnJ,MAAO,WACL,OAAOngB,KAAKmI,IAOd7C,IAAK,SAAUmmB,GACbzrB,KAAKwlH,QAAQgjD,QAAQ/8I,GACrBzrB,KAAKioK,eAAgB,GAOvB5lI,OAAQ,SAAU5W,GAChBzrB,KAAKwlH,QAAQijD,QAAQh9I,GACrBzrB,KAAKioK,eAAgB,GAWvBS,YAAa,SAAUC,EAAQliB,GACzBzmJ,KAAK4qB,QAAQ89I,aACf1oK,KAAK4qB,QAAQ89I,YAAYC,EAAQliB,GAGnCzmJ,KAAKioK,eAAgB,GAOvBjhD,mBAAoB,SAAUj9F,GACxB/pB,KAAK4qB,QAAQo8F,oBACfhnH,KAAK4qB,QAAQo8F,mBAAmBj9F,GAGlC/pB,KAAKioK,eAAgB,GAMvBhhD,mBAAoB,WAIlBjnH,KAAKioK,cAAgBjoK,KAAK4oK,oBAAqB,EAC/C5oK,KAAK4qB,QAAQuiC,UAEbntD,KAAKioK,cAAgBjoK,KAAK4oK,oBAAqB,GAUjDz7G,QAAS,WACPntD,KAAKioK,eAAgB,GAMvB1lD,MAAO,WACL,IAAIsmD,EAEA7oK,KAAKioK,gBACPY,GAAkB,EAClB7oK,KAAKinH,sBAGHjnH,KAAK4oK,qBACPC,GAAkB,EAClB7oK,KAAK8oK,2BAGPD,GAAmB7oK,KAAKs9B,QAAQ,aAQlCitC,SAAU,SAAU9+C,EAAIjmB,GACtB,GAAIxF,KAAK4qB,QAAQ2/C,SAAU,CACzB,IAAIw+F,EAAW/oK,KAAK4qB,QAAQ2/C,SAAS9+C,EAAIjmB,GAEzC,OADAxF,KAAKgpK,eACED,IAQXj+F,YAAa,SAAUr/C,GACjBzrB,KAAK4qB,QAAQkgD,cACf9qE,KAAK4qB,QAAQkgD,YAAYr/C,GACzBzrB,KAAKgpK,iBAQTC,WAAY,WACNjpK,KAAK4qB,QAAQq+I,aACfjpK,KAAK4qB,QAAQq+I,aACbjpK,KAAKgpK,iBAOTA,aAAc,WACZhpK,KAAK4oK,oBAAqB,GAM5BE,wBAAyB,WACvB9oK,KAAK4oK,oBAAqB,EAC1B5oK,KAAK4qB,QAAQo+I,cAAgBhpK,KAAK4qB,QAAQo+I,gBAU5C/rF,OAAQ,SAAU35C,GAChBA,EAAOA,GAAQ,GACftjC,KAAK4qB,QAAQqyD,OAAO35C,EAAK9hC,MAAO8hC,EAAKp3B,QACrClM,KAAK6sB,QAAQowD,UAMfisF,eAAgB,WACdlpK,KAAK2d,UAAUmb,SAMjB9M,SAAU,WACR,OAAOhsB,KAAK4qB,QAAQoB,YAMtBC,UAAW,WACT,OAAOjsB,KAAK4qB,QAAQqB,aAsBtBk9I,YAAa,SAAUx8I,EAAG+X,GACxB,OAAO1kC,KAAK4qB,QAAQu+I,YAAYx8I,EAAG+X,IAOrC0kI,eAAgB,SAAU9sH,GACxBt8C,KAAK6sB,QAAQu8I,eAAe9sH,IAS9Bs+E,UAAW,SAAUn1H,EAAGC,GACtB,OAAO1F,KAAK6sB,QAAQ+tG,UAAUn1H,EAAGC,IAUnCkB,GAAI,SAAUuyB,EAAWkwI,EAAczpJ,GACrC5f,KAAK6sB,QAAQjmB,GAAGuyB,EAAWkwI,EAAczpJ,IAQ3Cid,IAAK,SAAU1D,EAAWkwI,GACxBrpK,KAAK6sB,QAAQgQ,IAAI1D,EAAWkwI,IAS9B/rI,QAAS,SAAUnE,EAAW7wB,GAC5BtI,KAAK6sB,QAAQyQ,QAAQnE,EAAW7wB,IAMlCwwB,MAAO,WACL94B,KAAKwlH,QAAQijD,UACbzoK,KAAK4qB,QAAQkO,SAMfvK,QAAS,WACPvuB,KAAK2d,UAAUG,OACf9d,KAAK84B,QACL94B,KAAKwlH,QAAQj3F,UACbvuB,KAAK4qB,QAAQ2D,UACbvuB,KAAK6sB,QAAQ0B,UACbvuB,KAAK2d,UAAY3d,KAAKwlH,QAAUxlH,KAAK4qB,QAAU5qB,KAAK6sB,QAAU,KAC9Dg7I,EAAY7nK,KAAKmI,MAGrBxF,EAAQ0hE,QAAUA,EAClB1hE,EAAQqG,KAAOA,EACfrG,EAAQ4rB,QAAUA,EAClB5rB,EAAQglK,YAAcA,EACtBhlK,EAAQilK,gBAAkBA,G,uBC/a1B,IAAI1oK,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KACb8H,EAAM/H,EAAM+H,IACZ0vC,EAAaz3C,EAAMy3C,WACnBv3C,EAAgBF,EAAME,cACtBw5C,EAAO15C,EAAM05C,KAEbw9F,EAAQ,EAAQ,QAEhBC,EAAaD,EAAMC,WAEnBl6G,EAAa,EAAQ,QAErBC,EAASD,EAAWC,OAEpBkjF,EAAc,EAAQ,QAEtBC,EAAe,EAAQ,QAEvB92G,EAAS,EAAQ,QAEjBswG,EAAmBtwG,EAAOswG,iBA4B9B,SAAS8G,EAAUyM,EAAY/lH,EAAK+iK,EAAuBve,GACzD/qJ,KAAKssH,WAAaA,EAClBtsH,KAAKuG,IAAMA,EACXvG,KAAKqkH,WAKDilD,EAAwBtpK,KAAKupK,uBAAyBD,EAAsBhiK,QAC5EyjJ,EAAiB/qJ,KAAKwpK,gBAAkBze,EAAezjJ,QAC3DtH,KAAKypK,aAAeH,EAAsB9xG,OAAOuzF,GAajD/qJ,KAAK0pK,cAAgBtqK,IAGvB,IAAI01I,EAAQj1B,EAAU/xG,UAmJtB,SAAS67J,EAAkB3lD,EAAW4lD,EAAe9pK,EAASo+B,EAAS1uB,GAErE,IAAI60G,EAqDJ,SAASwlD,EAAar6J,EAAK6nI,GACzB,OAAO7nI,EAAI+4G,YAAc/4G,EAAIg5G,UAAYh5G,EAAIg5G,SAAStmH,IAAIm1I,EAAKyyB,WAAW3hK,KAvD5EqH,EAAMA,GAAO,GAEbrQ,EAAKyqK,GAAe,SAAUl6C,EAAcx/G,GAC1C,IAAIV,EAAIwW,YAAcxW,EAAIwW,aAAe0pG,EAAa1pG,WAAtD,CAIA,IAAI+jJ,EAAqB/lD,EAAU0lD,cAAcxnK,IAAIwtH,EAAaznH,KAE9D+hK,EAAgBD,EAAmBC,cACnCC,EAAcF,EAAmBE,YAErC,GAAIA,EAAa,CACf,IAAIC,EACA7wB,EAAe4wB,EAAY5wB,aAC/BA,EAAal6I,MAAK,SAAUgrK,GACtBN,EAAar6J,EAAK26J,KACpBA,EAAK73J,QACL43J,GAAmB,MAGvBA,GAAoBD,EAAY33J,QAChC64G,EAAc8+C,EAAa/rI,GAC3B,IAAIksI,EAAcpmD,EAAUqH,eAAe4+C,EAAaz6J,EAAI66J,OAK5DhxB,EAAal6I,MAAK,SAAUgrK,GAC1BA,EAAK/+C,QAAQg/C,MAEf/lD,GAAc4lD,EAAY7+C,QAAQg/C,QACzBJ,GACTA,EAAc7qK,MAAK,SAAUk4I,EAAMizB,GAC7BT,EAAar6J,EAAK6nI,IACpBA,EAAK/kI,QAGP,IAAI83J,EAAcpmD,EAAUqH,eAAegsB,EAAM7nI,EAAI66J,OASrDD,EAAYG,MAAQ76C,EAAa2hB,kBAAoBvxI,EAAQyxD,iBAAiB8lF,EAAKz3H,QAAQkQ,OAC3Fq7F,EAAcksB,EAAMn5G,GACpBmmF,GAAcgzB,EAAKjsB,QAAQg/C,UASjCpmD,EAAUK,YAAcA,EAxM1BywB,EAAMltB,YAAc,SAAU9nH,EAASo+B,GAiBrCp+B,EAAQ8nH,YAAY1pF,GAQpBl+B,KAAK0pK,cAAcvqK,MAAK,SAAUqrK,GAChC,IAAIP,EAAcO,EAAWP,YAC7BA,GAAeA,EAAY33J,YAK/BwiI,EAAMzpB,eAAiB,SAAUgsB,EAAM5oE,GAErC,GAAK4oE,EAAKyyB,WAAV,CAIA,IAAI5wB,EAAWl5I,KAAKyqK,aAAavoK,IAAIm1I,EAAKyyB,WAAW3hK,IAEjDuiK,EAAOxxB,EAASt5H,QAChB67B,GAAegzB,GAAWyqE,EAASyxB,sBAAwBD,GAAQA,EAAKE,oBAAsBvzB,EAAKwzB,gBAAkB3xB,EAAS4xB,WAC9HlpG,EAAOnmB,EAAcy9F,EAASt3E,KAAO,KACrCmpG,EAAeL,GAAQA,EAAKK,aAC5BC,EAAwB,MAAhBD,EAAuBl/J,KAAKyzD,KAAKyrG,EAAenpG,GAAQ,KACpE,MAAO,CACLA,KAAMA,EACNopG,MAAOA,EACPD,aAAcA,KAIlBj2B,EAAMqE,YAAc,SAAUmxB,GAC5B,OAAOtqK,KAAKyqK,aAAavoK,IAAIooK,IAW/Bx1B,EAAMpwB,kBAAoB,SAAU5iH,EAAagkH,GAC/C,IAAIozB,EAAWl5I,KAAKyqK,aAAavoK,IAAIJ,EAAYmG,KAE7C1H,EAAOuB,EAAYtB,UACnByqK,EAAU1qK,EAAK4hB,QAMfyoJ,EAAoB1xB,EAASyxB,oBAAsB7kD,EAAKr7D,0BAA4BwgH,GAAW/xB,EAASgyB,UACxGr1I,EAAQ/zB,EAAYI,IAAI,UAAY+oK,GAAWnpK,EAAYI,IAAI,kBAG/D6oK,EAA2D,QAA5CjpK,EAAYI,IAAI,wBAAoC+oK,EAAU,KACjFnpK,EAAY8zB,gBAAkBsjH,EAASt5H,QAAU,CAC/CgrJ,kBAAmBA,EACnBG,aAAcA,EACdl1I,MAAOA,IAIXi/G,EAAMlsB,iBAAmB,SAAU9oH,GACjC,IAAIkkH,EAAYhkH,KACZmrK,EAAcnnD,EAAUymD,aAAerrK,IAC3CU,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIH,EAAcG,EAAY2kD,iBAC1B6jH,EAAaxoK,EAAYmG,IAC7BkjK,EAAY5oK,IAAI+nK,EAAY,CAC1BniK,GAAImiK,EACJc,KAAM,KACNC,KAAM,KACNH,UAAWppK,EAAY4kD,0BACvBikH,mBAAoBhpK,KAAiBG,EAAYi1G,oBAAsBj1G,EAAYi1G,sBACnF+zD,YAAa,EACblpG,KAAM/1D,KAAK8d,MAAMhoB,GAAe,KAChCwgB,MAAO,IAETmpJ,EAAKtnD,EAAWliH,EAAaA,EAAY00I,cAI7C1B,EAAMjsB,kBAAoB,WACxB,IAAI0iD,EAAevrK,KAAK0pK,cACpB5pK,EAAUE,KAAKssH,WAAWrrG,WAC1B1a,EAAMvG,KAAKuG,IACfpH,EAAKa,KAAKypK,cAAc,SAAU58I,GAChC,IAAIw6B,EAASkkH,EAAarpK,IAAI2qB,EAAQ5kB,MAAQsjK,EAAahpK,IAAIsqB,EAAQ5kB,IAAK,IAC5E4kB,EAAQiI,OAAS02I,EAAsBxrK,KAAM6sB,EAASw6B,EAAQvnD,EAASyG,GACvEsmB,EAAQqiE,cAAgBu8E,EAAuBzrK,KAAM6sB,EAASw6B,EAAQvnD,EAASyG,KAC9EvG,OAGL80I,EAAMhsB,YAAc,SAAUhD,EAAMh2F,EAAOhwB,EAASyG,GAClD,IAAIwkH,EAAajF,EAAKiF,WAClBnrG,EAAUmrG,EAAWnrG,QACzBA,EAAQkQ,MAAQA,EAChBlQ,EAAQ9f,QAAUA,EAClB8f,EAAQrZ,IAAMA,EACdwkH,EAAW2gD,SAAW5lD,EAAKr7D,yBAC3B6gH,EAAKtrK,KAAM8vB,EAAOi7F,IAGpB+pB,EAAMrwB,0BAA4B,SAAU3kH,EAASo+B,GAEnDyrI,EAAkB3pK,KAAMA,KAAKupK,uBAAwBzpK,EAASo+B,EAAS,CACrEmsI,OAAO,KAOXv1B,EAAMnwB,mBAAqB,SAAU7kH,EAASo+B,EAAS1uB,GACrDm6J,EAAkB3pK,KAAMA,KAAKwpK,gBAAiB1pK,EAASo+B,EAAS1uB,IAiElEslI,EAAMtwB,mBAAqB,SAAU1kH,GACnC,IAAIukH,EACJvkH,EAAQ04C,YAAW,SAAU12C,GAE3BuiH,GAAcviH,EAAY00I,SAASprB,aAErCprH,KAAKqkH,YAAcA,GAGrBywB,EAAMjgH,KAAO,WAEX70B,KAAKyqK,aAAatrK,MAAK,SAAU+5I,GAC/B,IAAI7B,EAAO6B,EAASmyB,KAEpB,EAAG,CACD,GAAIh0B,EAAKq0B,QAAS,CAChBxyB,EAAS4xB,WAAazzB,EAAKwzB,gBAC3B,MAGFxzB,EAAOA,EAAKs0B,oBACLt0B,OAIb,IAAIlsB,EAAgB2pB,EAAM3pB,cAAgB,SAAUksB,EAAMn5G,GAC5C,WAAZA,IAAyBm5G,EAAKz3H,QAAQse,QAAUA,IAGlD,SAASstI,EAAsBxnD,EAAW0L,EAAcq6C,EAAoBjqK,EAASyG,GACnF,IAAIyjK,EAAgBD,EAAmBC,gBAAkBD,EAAmBC,cAAgB5qK,KACxFw1B,EAAa86F,EAAa96F,WAC1Bm6D,EAAkB2gC,EAAa3gC,gBAYnC,SAASnrD,EAAO9hC,GACd,IAAIwoK,EAAaxoK,EAAYmG,IAGzBovI,EAAO2yB,EAAc9nK,IAAIooK,IAAeN,EAAcznK,IAAI+nK,EAAYj0B,EAAW,CACnFxhH,KAAM+2I,EACN92I,MAAO+2I,EACP1pJ,MAAO2pJ,KAETz0B,EAAKz3H,QAAU,CACbkQ,MAAOhuB,EACPhC,QAASA,EACTyG,IAAKA,EACLwlK,eAAgBr8C,EAAas8C,WAAat8C,EAAau8C,SACvDp3I,KAAM66F,EAAa76F,KACnBC,MAAO46F,EAAa56F,MACpBkvF,UAAWA,GAEbsnD,EAAKtnD,EAAWliH,EAAau1I,GA1B3B3nB,EAAaw8C,kBACfpsK,EAAQmpJ,cAAcrlH,GACbhP,EACT90B,EAAQsxF,oBAAoBx8D,EAAYgP,GAC/BmrD,GACTA,EAAgBjvF,EAASyG,GAAKpH,KAAKykC,GAyBrC,IAAIunI,EAAcnnD,EAAUymD,aAC5BT,EAAc7qK,MAAK,SAAUk4I,EAAMizB,GAC5Ba,EAAYjpK,IAAIooK,KACnBjzB,EAAK9oH,UACLy7I,EAAcmC,UAAU7B,OAK9B,SAASmB,EAAuBznD,EAAW0L,EAAcq6C,EAAoBjqK,EAASyG,GACpF,IAAI0jK,EAAcF,EAAmBE,YAAcF,EAAmBE,aACnE5zB,EAAW,CACZvhH,MAAOs3I,IAETnC,EAAYrqJ,QAAU,CACpB9f,QAASA,EACTyG,IAAKA,EACL2oF,aAAcwgC,EAAaxgC,aAC3B80B,UAAWA,GAGb,IAAIq1B,EAAe4wB,EAAY5wB,aAAe4wB,EAAY5wB,cAAgBj6I,IACtEw1B,EAAa86F,EAAa96F,WAC1Bm6D,EAAkB2gC,EAAa3gC,gBAC/Bs9E,GAAkB,EAClBp9E,EAAkBygC,EAAazgC,gBAkBnC,SAASq9E,EAAWxqK,GAClB,IAAIwoK,EAAaxoK,EAAYmG,IACzBkiK,EAAO9wB,EAAan3I,IAAIooK,GAEvBH,IACHA,EAAO9wB,EAAa92I,IAAI+nK,EAAYj0B,EAAW,CAC7CvhH,MAAOy3I,EACPC,QAASC,KAIXxC,EAAY33J,SAGd63J,EAAKvqJ,QAAU,CACbkQ,MAAOhuB,EACPuqK,gBAAiBA,EACjBp9E,gBAAiBA,GAEnBk7E,EAAKuC,MAAQzC,EACbE,EAAKuB,QAAUW,EACff,EAAKtnD,EAAWliH,EAAaqoK,GAlC3Bv1I,EACF90B,EAAQsxF,oBAAoBx8D,EAAY03I,GAC/Bv9E,EACTA,EAAgBjvF,EAASyG,GAAKpH,KAAKmtK,IAMjCD,GAAkB,EAClBltK,EAAKW,EAAQ6sK,YAAaL,IA4B9B,IAAInB,EAAcnnD,EAAUymD,aAC5BpxB,EAAal6I,MAAK,SAAUgrK,EAAMG,GAC3Ba,EAAYjpK,IAAIooK,KACnBH,EAAK57I,UAGL07I,EAAY33J,QACZ+mI,EAAa8yB,UAAU7B,OAK7B,SAAS8B,EAAiBxsJ,GACxBA,EAAQsvE,aAAatvE,EAAQ9f,QAAS8f,EAAQrZ,IAAKqZ,EAAQse,SAG7D,SAASquI,EAAU3sJ,EAASgtJ,GAC1B,OAAOhtJ,EAAQysJ,iBAAmBQ,EAGpC,SAASA,IACP7sK,KAAK0sK,MAAMp6J,QACXtS,KAAK8sK,gBAAgBx6J,QAGvB,SAASm6J,IACPzsK,KAAK0sK,OAAS1sK,KAAK0sK,MAAMp6J,QAG3B,SAASs5J,EAAehsJ,GACtB,OAAOA,EAAQiV,MAAQjV,EAAQiV,KAAKjV,EAAQkQ,MAAOlQ,EAAQ9f,QAAS8f,EAAQrZ,IAAKqZ,EAAQse,SAG3F,SAAS2tI,EAAgBjsJ,GACnBA,EAAQmsJ,gBACVnsJ,EAAQrf,KAAKq5J,iBAGf,IAAImT,EAAentJ,EAAQmtJ,aAAeh0D,EAAiBn5F,EAAQkV,MAAMlV,EAAQkQ,MAAOlQ,EAAQ9f,QAAS8f,EAAQrZ,IAAKqZ,EAAQse,UAC9H,OAAO6uI,EAAa9hK,OAAS,EAAIhE,EAAI8lK,GAAc,SAAU5mJ,EAAGjW,GAC9D,OAAO88J,EAAuB98J,MAC3B+8J,EAGP,IAAIA,EAA2BD,EAAuB,GAEtD,SAASA,EAAuBE,GAC9B,OAAO,SAAUrjK,EAAQ+V,GACvB,IAAIrf,EAAOqf,EAAQrf,KACf4sK,EAAcvtJ,EAAQmtJ,aAAaG,GAEvC,GAAIC,GAAeA,EAAYC,SAC7B,IAAK,IAAIn/J,EAAIpE,EAAO0K,MAAOtG,EAAIpE,EAAOwwE,IAAKpsE,IACzCk/J,EAAYC,SAAS7sK,EAAM0N,QAEpBk/J,GAAeA,EAAYx3I,UACpCw3I,EAAYx3I,SAAS9rB,EAAQtJ,IAKnC,SAASurK,EAAgBlsJ,GACvB,OAAOA,EAAQrf,KAAK4hB,QAGtB,SAASmpJ,EAAKtnD,EAAWliH,EAAau1I,GACpC,IAAIizB,EAAaxoK,EAAYmG,IAEzBixI,EAAWl1B,EAAUymD,aAAavoK,IAAIooK,IAEzCpxB,EAASkyB,OAASlyB,EAASkyB,KAAO/zB,GACnC6B,EAASmyB,MAAQnyB,EAASmyB,KAAKC,KAAKj0B,GACpC6B,EAASmyB,KAAOh0B,EAChBA,EAAKwzB,gBAAkB3xB,EAAS/2H,QAChCk1H,EAAKyyB,WAAa5wB,EAwBpB,SAASm0B,EAAiBC,GACxB14I,EAAa,KAEb,IAEE04I,EAAWC,EAAaC,GACxB,MAAO7gJ,IAET,OAAOiI,EA7BTirF,EAAU8P,iBAAmB,SAAUD,EAAc1pG,GAUnD,OATI2wB,EAAW+4E,KACbA,EAAe,CACbxgC,aAAcwgC,EACd96F,WAAYy4I,EAAiB39C,KAIjCA,EAAaznH,IAAMm0B,EAAO,gBAC1BpW,IAAe0pG,EAAa1pG,WAAaA,GAClC0pG,GAsBT,IAEI96F,EAFA24I,EAAc,GACdC,EAAU,GAed,SAASC,EAAYr7J,EAAQ4oJ,GAE3B,IAAK,IAAIruJ,KAAQquJ,EAAIltJ,UAEnBsE,EAAOzF,GAAQisC,EAjBnB60H,EAAYF,EAAajuD,GACzBmuD,EAAYD,EAASjuD,GAErBguD,EAAYlnI,iBAAmBknI,EAAYn8E,oBAAsB,SAAU3xF,GACzEm1B,EAAan1B,GAGf8tK,EAAYnvI,cAAgB,SAAUsvI,GACd,WAAlBA,EAAKzwI,UAAyBywI,EAAKrvI,UACrCzJ,EAAa84I,EAAKrvI,UActB,IAAI9+B,EAAWsgH,EACfn9G,EAAOC,QAAUpD,G,uBC3iBjB,IAAIg/C,EAAW,EAAQ,QAEnB37C,EAAS,EAAQ,QAEjByvC,EAAa,EAAQ,QAErBF,EAAO,EAAQ,QA+BnB,SAASw7H,EAAer7H,EAAUpiC,EAAKqiC,GACrCF,EAAWvlC,KAAK9M,KAAMsyC,EAAUpiC,EAAKqiC,GACrCvyC,KAAK4tK,WAAa,EAClB5tK,KAAK6tK,kBAAoB,EAG3B,IAAIC,EAAsBH,EAAe7/J,UAEzCggK,EAAoBt7H,WAAa,SAAUF,EAAUpiC,EAAKqiC,GACxD,OAAO,IAAIgM,EAASjM,EAAUpiC,EAAKqiC,IAIrCu7H,EAAoBv6H,sBAAwB,SAAUV,EAAQt7B,GAC5DvX,KAAK+tK,QAAUx2J,EAIf,IAHA,IAAIy2J,EAAY,CAAC,GACb11J,EAAM,EAEDrK,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAQgD,IAAK,CACtC,IAAItC,EAAK4L,EAAOtJ,EAAI,GAChBrC,EAAK2L,EAAOtJ,GAChBqK,GAAO65B,EAAK5Z,KAAK5sB,EAAIC,GACrBoiK,EAAUntK,KAAKyX,GAGjB,GAAY,IAARA,EAAJ,CAIA,IAASrK,EAAI,EAAGA,EAAI+/J,EAAU/iK,OAAQgD,IACpC+/J,EAAU//J,IAAMqK,EAGlBtY,KAAKiuK,SAAWD,EAChBhuK,KAAKkuK,QAAU51J,IAIjBw1J,EAAoBt6H,cAAgB,SAAUX,GAC5C,OAAO7yC,KAAKkuK,SAIdJ,EAAoBj6H,qBAAuB,SAAUhB,GACnD,IAAIx+B,EAAIw+B,EAAOc,IACXp8B,EAASvX,KAAK+tK,QACdI,EAAUnuK,KAAKiuK,SACf31J,EAAMf,EAAOtM,OAEjB,GAAKkjK,EAAL,CAKA,IAAIzyJ,EAAY1b,KAAK4tK,WAGrB,GAAIv5J,EAAIrU,KAAK6tK,kBAAmB,CAG9B,IAAIt5J,EAAQ1I,KAAK6E,IAAIgL,EAAY,EAAGpD,EAAM,GAE1C,IAAKuD,EAAQtH,EAAOsH,GAAS,EAAGA,IAC9B,GAAIsyJ,EAAQtyJ,IAAUxH,EACpB,MAKJwH,EAAQhQ,KAAK6E,IAAImL,EAAOvD,EAAM,OACzB,CACL,IAAK,IAAIuD,EAAQH,EAAWG,EAAQvD,EAAKuD,IACvC,GAAIsyJ,EAAQtyJ,GAASxH,EACnB,MAIJwH,EAAQhQ,KAAK6E,IAAImL,EAAQ,EAAGvD,EAAM,GAGpC65B,EAAK2jF,KAAKjjF,EAAO7nC,SAAUuM,EAAOsE,GAAQtE,EAAOsE,EAAQ,IAAKxH,EAAI85J,EAAQtyJ,KAAWsyJ,EAAQtyJ,EAAQ,GAAKsyJ,EAAQtyJ,KAClH,IAAIy4B,EAAK/8B,EAAOsE,EAAQ,GAAG,GAAKtE,EAAOsE,GAAO,GAC1C04B,EAAKh9B,EAAOsE,EAAQ,GAAG,GAAKtE,EAAOsE,GAAO,GAC9Cg3B,EAAOliC,UAAY9E,KAAKk5B,MAAMwP,EAAID,GAAMzoC,KAAK+E,GAAK,EAClD5Q,KAAK4tK,WAAa/xJ,EAClB7b,KAAK6tK,kBAAoBx5J,EACzBw+B,EAAOS,QAAS,IAGlB1wC,EAAOwxB,SAASu5I,EAAgBt7H,GAChC,IAAI9yC,EAAWouK,EACfjrK,EAAOC,QAAUpD,G,uBChIjB,IAAIwpB,EAAa,EAAQ,QAErB0iH,EAAkB,EAAQ,QAE1B3oI,EAAU,EAAQ,QAElB4oI,EAAa,EAAQ,QAErBzoG,EAAS,EAAQ,QAEjBuc,EAAc,EAAQ,QAEtBC,EAAW,EAAQ,QAoBnB2uH,EAAmB3iC,EAAgBjsI,OAAO,CAI5CqsI,aAAc,SAAUC,EAAUn+H,EAAO4B,EAAWw8H,EAAkBxlI,GACpE,IAAImJ,EAAOH,EAAUG,KAEJ,UAAbA,EAAKK,MACP/P,KAAKquK,mBAAqBxiK,KAAK+E,GAAK,IAGtC,IAGI09J,EAHA5wH,EAAQhuC,EAAKguC,MACbklG,EAAYllG,EAAMmU,aAAaniD,GAC/Bu8H,EAAc2W,EAAUr9H,YAE5B+oJ,EAAa5+J,EAAK,SAAWqZ,EAAWixH,aAAatqI,EAAKK,MAAMpC,GAChE,IAAIq+H,EAAkBD,EAAiB7pI,IAAI,QAE3C,GAAI8pI,GAAuC,SAApBA,EAA4B,CACjD,IAAIvvF,EAAUivF,EAAWW,aAAaN,GAClCO,EAAgBC,EAAoBP,GAAiBt8H,EAAMguC,EAAO4wH,EAAYriC,EAAaxvF,GAC/F6vF,EAAc9mI,MAAQi3C,EACtBqvF,EAASU,WAAaF,EAAc7sI,KACpCqsI,EAAS37B,QAAUm8B,EAGrB,IAAIK,EAAcZ,EAAiB7pI,IAAI,gBACnCqsK,EAAWC,EAAiB7gK,EAAO4B,EAAWw8H,EAAkBruF,EAAOivF,GAC3EjB,EAAW+iC,mBAAmB3iC,EAAUv8H,EAAWw8H,EAAkBxlI,EAAKgoK,MAK9E,SAASC,EAAiB7gK,EAAO4B,EAAWw8H,EAAkBruF,EAAOivF,GACnE,IAAIj9H,EAAOH,EAAUG,KACjBrD,EAAQqD,EAAKc,YAAY7C,GACzB0yC,EAAY3C,EAAMsC,eAAez6B,YAAY,GACjD86B,EAAYA,EAAY,IAAMx0C,KAAK+E,GACnC,IACI5F,EACAhE,EACAioD,EAHA3O,EAAe5C,EAAM4S,gBAAgB/qC,YAKzC,GAAiB,WAAb7V,EAAKK,IAAkB,CACzB,IAAIzB,EAAY20B,EAAOW,SACvBX,EAAOmC,OAAO92B,EAAWA,EAAW+xC,GACpCpd,EAAO2gB,UAAUt1C,EAAWA,EAAW,CAACovC,EAAMU,GAAIV,EAAMW,KACxDrzC,EAAWlI,EAAQoiC,eAAe,CAAC74B,GAAQsgI,GAAcr+H,GACzD,IAAIy+F,EAAgBx9F,EAAU0R,SAAS,aAAa/e,IAAI,WAAa,EACjEwsD,EAAclP,EAAYkvH,gBAAgBruH,EAAW0sD,EAAgBlhG,KAAK+E,GAAK,KAAM,GACzF5J,EAAQ0nD,EAAY7oD,UACpBopD,EAAgBP,EAAY9oD,sBACvB,CAEL,IAAIiO,EAAIysC,EAAa,GACrBt1C,EAAW0yC,EAAM0/B,aAAa,CAACvpE,EAAI84H,EAAatgI,IAChD,IAAI+xC,EAAKV,EAAMU,GACXC,EAAKX,EAAMW,GACfr3C,EAAQ6E,KAAKC,IAAId,EAAS,GAAKozC,GAAMvqC,EAAI,GAAM,SAAW7I,EAAS,GAAKozC,EAAK,OAAS,QACtF6Q,EAAgBpjD,KAAKC,IAAId,EAAS,GAAKqzC,GAAMxqC,EAAI,GAAM,SAAW7I,EAAS,GAAKqzC,EAAK,MAAQ,SAG/F,MAAO,CACLrzC,SAAUA,EACVhE,MAAOA,EACPioD,cAAeA,GAInB,IAAIs9E,EAAsB,CACxBrlD,KAAM,SAAUx3E,EAAMguC,EAAO4wH,EAAYriC,EAAaxvF,GACpD,MAAoB,UAAb/sC,EAAKK,IAAkB,CAC5BtQ,KAAM,OACN+R,MAAOk6H,EAAWyB,cAAczvF,EAAM0/B,aAAa,CAAC6uD,EAAY,GAAIqiC,IAAc5wH,EAAM0/B,aAAa,CAAC6uD,EAAY,GAAIqiC,MACpH,CACF7uK,KAAM,SACN+R,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVxqC,EAAGy6J,KAITjhC,OAAQ,SAAU39H,EAAMguC,EAAO4wH,EAAYriC,EAAaxvF,GACtD,IAAIzkB,EAAYnsB,KAAK4E,IAAI,EAAGf,EAAKuoB,gBAC7BslD,EAAS1xE,KAAK+E,GAAK,IACvB,MAAoB,UAAblB,EAAKK,IAAkB,CAC5BtQ,KAAM,SACN+R,MAAOk6H,EAAWijC,gBAAgBjxH,EAAMU,GAAIV,EAAMW,GAAI4tF,EAAY,GAAIA,EAAY,KAChFqiC,EAAat2I,EAAY,GAAKulD,GAAuBvlD,EAAY,EAAzBs2I,GAA8B/wF,IACtE,CACF99E,KAAM,SACN+R,MAAOk6H,EAAWijC,gBAAgBjxH,EAAMU,GAAIV,EAAMW,GAAIiwH,EAAat2I,EAAY,EAAGs2I,EAAat2I,EAAY,EAAG,EAAa,EAAVnsB,KAAK+E,OAI5H6uC,EAAS8tF,yBAAyB,mBAAoB6gC,GACtD,IAAI7uK,EAAW6uK,EACf1rK,EAAOC,QAAUpD,G,qBChHjB,IAAIqvK,EAAc,CAChB,OAAU,CAAC,IAAK,IAChB,gBAAiB,EAAE,GAAI,IACvB,2BAA4B,EAAE,GAAI,KAGpC,SAASrvK,EAAS8mD,EAASnpB,GACzB,GAAgB,UAAZmpB,EAAqB,CACvB,IAAIt3C,EAAW6/J,EAAY1xI,EAAOvwB,MAElC,GAAIoC,EAAU,CACZ,IAAIw3C,EAAKrpB,EAAOxE,OAChB6tB,EAAG,GAAKx3C,EAAS,GACjBw3C,EAAG,GAAKx3C,EAAS,KAKvBrM,EAAOC,QAAUpD,G,uBCpCjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjB48C,EAAc,EAAQ,QAEtB18C,EAAU,EAAQ,QAoBlB48C,EAAmB,CAAC,WAAY,gBAAiB,YAEjDngD,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,QACN6R,OAAQ,SAAUurE,EAAY/8E,EAASyG,GACrC,IAAIjD,EAAQtD,KAAKsD,MACjBA,EAAMC,YAENvD,KAAK6uK,WAAWhyF,GAEhB78E,KAAK8uK,uBAAuBjyF,IAE9BgyF,WAAY,SAAUhyF,GACpB,IAAI+B,EAAQ/B,EAAWv8E,iBACnBw9E,EAAgBc,EAAM1B,mBACtB6xF,EAAensK,EAAOqE,IAAI62E,GAAe,SAAUd,GACrD,IAAIx8B,EAAc,IAAIhB,EAAYw9B,EAAcltD,MAAO,CACrD9kB,SAAU,CAAC4zE,EAAMxgC,GAAIwgC,EAAMvgC,IAC3B1tC,SAAUqsE,EAAcxqB,MACxB1hD,gBAAiB,EACjBC,eAAgB,EAChBC,cAAe,IAEjB,OAAOwvC,KAET59C,EAAOzD,KAAK4vK,GAAc,SAAUvuH,GAClC59C,EAAOzD,KAAKugD,EAAkBc,EAAYl7C,IAAKk7C,GAC/CxgD,KAAKsD,MAAMgC,IAAIk7C,EAAYC,cAC1BzgD,OAEL8uK,uBAAwB,SAAUjyF,GAChC,IAAI+B,EAAQ/B,EAAWv8E,iBACnBw9E,EAAgBc,EAAM1B,mBAE1B,GAAKY,EAAc7yE,OAAnB,CAIA,IAAIuG,EAAQqrE,EAAW36E,IAAI,SACvB0+C,EAAiBi8B,EAAW57D,SAAS,aACrCugC,EAAiBq7B,EAAW57D,SAAS,aACrC4/B,EAAiBD,EAAe3/B,SAAS,aACzC69B,EAAiB0C,EAAevgC,SAAS,aACzC+tJ,EAAgBpuH,EAAe1+C,IAAI,QACnC+sK,EAAgBztH,EAAet/C,IAAI,QACnCgtK,EAAkBruH,EAAe3+C,IAAI,SACrCitK,EAAkBrwH,EAAe58C,IAAI,SACzCgtK,EAAkBtsK,EAAOogB,QAAQksJ,GAAmBA,EAAkB,CAACA,GACvEC,EAAkBvsK,EAAOogB,QAAQmsJ,GAAmBA,EAAkB,CAACA,GACvE,IAAInuH,EAAa,GACbU,EAAa,GAQjB,GAAc,WAAVlwC,EAKF,IAJA,IAAI49J,EAActxF,EAAc,GAAG59B,iBAC/B9B,EAAKwgC,EAAMxgC,GACXC,EAAKugC,EAAMvgC,GAENpwC,EAAI,EAAGA,EAAImhK,EAAYnkK,OAAQgD,IAAK,CAC3C,GAAI+gK,EAAe,CACjB,IAAI/tH,EAAaouH,EAAcruH,EAAYkuH,EAAiBjhK,GAC5D+yC,EAAWC,GAAYpgD,KAAK,IAAIiC,EAAQo+C,OAAO,CAC7C1vC,MAAO,CACL4sC,GAAIA,EACJC,GAAIA,EACJxqC,EAAGu7J,EAAYnhK,GAAG5B,UAKxB,GAAI4iK,GAAiBhhK,EAAImhK,EAAYnkK,OAAS,EAAG,CAC3Cg2C,EAAaouH,EAAc3tH,EAAYytH,EAAiBlhK,GAC5DyzC,EAAWT,GAAYpgD,KAAK,IAAIiC,EAAQmkE,KAAK,CAC3Cz1D,MAAO,CACL4sC,GAAIA,EACJC,GAAIA,EACJwD,GAAIutH,EAAYnhK,GAAG5B,MACnBwH,EAAGu7J,EAAYnhK,EAAI,GAAG5B,eAO5B,KAAIijK,EACAC,EAAkB3sK,EAAOqE,IAAI62E,GAAe,SAAUd,EAAe9sE,GACvE,IAAI+vC,EAAc+8B,EAAc98B,iBAEhC,OADAovH,EAAqC,MAAnBA,EAA0BrvH,EAAYh1C,OAAS,EAAIY,KAAK6E,IAAIuvC,EAAYh1C,OAAS,EAAGqkK,GAC/F1sK,EAAOqE,IAAIg5C,GAAa,SAAUyuD,GACvC,OAAO9vB,EAAMxB,aAAasxB,EAAUriG,MAAO6D,SAG3Cs/J,EAAa,GAEjB,IAASvhK,EAAI,EAAGA,GAAKqhK,EAAiBrhK,IAAK,CAGzC,IAFA,IAAIsJ,EAAS,GAEJiB,EAAI,EAAGA,EAAIslE,EAAc7yE,OAAQuN,IACxCjB,EAAO1W,KAAK0uK,EAAgB/2J,GAAGvK,IAQjC,GAJIsJ,EAAO,IACTA,EAAO1W,KAAK0W,EAAO,GAAGjQ,SAGpB0nK,EAAe,CACb/tH,EAAaouH,EAAcruH,EAAYkuH,EAAiBjhK,GAC5D+yC,EAAWC,GAAYpgD,KAAK,IAAIiC,EAAQy7C,SAAS,CAC/C/sC,MAAO,CACL+F,OAAQA,MAKd,GAAI03J,GAAiBO,EAAY,CAC3BvuH,EAAaouH,EAAc3tH,EAAYytH,EAAiBlhK,EAAI,GAChEyzC,EAAWT,GAAYpgD,KAAK,IAAIiC,EAAQ49B,QAAQ,CAC9ClvB,MAAO,CACL+F,OAAQA,EAAOigD,OAAOg4G,OAK5BA,EAAaj4J,EAAOjQ,QAAQD,WAIlC,IAAI9F,EAAYs/C,EAAejC,eAC3B0yD,EAAYxyD,EAAeM,eAE/Bx8C,EAAOzD,KAAKuiD,GAAY,SAAUA,EAAYxxC,GAC5ClQ,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUO,EAAY,CAC3Cl8C,MAAO5C,EAAO6O,SAAS,CACrBotC,OAAQ,OACRntC,KAAMy9J,EAAgBj/J,EAAMi/J,EAAgBlkK,SAC3CqmG,GACH1/F,QAAQ,OAET5R,MACH4C,EAAOzD,KAAK6hD,GAAY,SAAUA,EAAY9wC,GAC5ClQ,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUH,EAAY,CAC3Cx7C,MAAO5C,EAAO6O,SAAS,CACrBC,KAAM,OACNmtC,OAAQqwH,EAAgBh/J,EAAMg/J,EAAgBjkK,SAC7C1J,GACHqQ,QAAQ,OAET5R,MArGH,SAASqvK,EAAcI,EAAYC,EAAqBx/J,GACtD,IAAI+wC,EAAa/wC,EAAMw/J,EAAoBzkK,OAE3C,OADAwkK,EAAWxuH,GAAcwuH,EAAWxuH,IAAe,GAC5CA,MAsGbv+C,EAAOC,QAAUpD,G,wBC3LjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI6yI,EAAmB,EAAQ,QAE3B00B,EAAmB,EAAQ,QAE3Bx2E,EAAa,EAAQ,QAoBzB/wF,EAAQyrB,eAAeonH,GACvB7yI,EAAQ2mB,eAAe4gJ,GACvBvnK,EAAQ+2E,kBAAkBga,EAAW,gB,uBClCrC,IAAIv2F,EAAS,EAAQ,QAEjByb,EAAQ,EAAQ,QAEhBuxJ,EAAgB,EAAQ,QAExB3wC,EAAS,EAAQ,QAEjBi8B,EAAwBj8B,EAAOi8B,sBAC/Bj7C,EAAiBgf,EAAOhf,eAExBx3G,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAEnBhqC,EAAS,EAAQ,QAEjB4sK,EAAiB,EAAQ,QA0BzB5hI,EAAQhB,IASRh6B,EAAiBoL,EAAM7e,OAAO,CAChCC,KAAM,YAMN0I,GAAI,GAWJwE,KAAM,GAMNswB,SAAU,GAMVoB,QAAS,GAMT0D,eAAgB,EAMhBhhC,cAAe,KAMfjB,QAAS,KAQTojE,gBAAiB,GAMjBj7D,IAAK,KAQLisD,WAAY,KACZ0mG,aAAc,SAAU/6J,EAAQq/C,EAAap/C,EAASy2I,GACpDl4H,EAAMvR,KAAK9M,KAAMH,EAAQq/C,EAAap/C,EAASy2I,GAC/Cv2I,KAAKiI,IAAM2nK,EAAcxzI,OAAO,iBAElCpzB,KAAM,SAAUnJ,EAAQq/C,EAAap/C,EAASy2I,GAC5Cv2I,KAAKy/E,qBAAqB5/E,EAAQC,IAEpC2/E,qBAAsB,SAAU5/E,EAAQC,GACtC,IAAIo0D,EAAal0D,KAAKk0D,WAClB4iF,EAAsB5iF,EAAajxD,EAAO6yE,gBAAgBj2E,GAAU,GACpEiwK,EAAahwK,EAAQm3I,WACzBr0I,EAAOie,MAAMhhB,EAAQiwK,EAAW5tK,IAAIlC,KAAKi9B,WACzCr6B,EAAOie,MAAMhhB,EAAQG,KAAKk3I,oBAEtBhjF,GACFjxD,EAAOkzI,iBAAiBt2I,EAAQi3I,EAAqB5iF,IAGzD4O,YAAa,SAAUjjE,EAAQ02I,GAC7B3zI,EAAOie,MAAM7gB,KAAKH,OAAQA,GAAQ,GAClC,IAAIq0D,EAAal0D,KAAKk0D,WAElBA,GACFjxD,EAAOkzI,iBAAiBn2I,KAAKH,OAAQA,EAAQq0D,IAIjD1gD,cAAe,SAAUu8J,EAAcrrJ,KACvCwyH,iBAAkB,WAChB,IAAI84B,EAAS/hI,EAAMjuC,MAEnB,IAAKgwK,EAAOjvK,cAAe,CACzB,IAAIkvK,EAAU,GACVC,EAAQlwK,KAAK+N,YAEjB,MAAOmiK,EAAO,CACZ,IAAI1gK,EAAM0gK,EAAMpiK,UAAU/M,cAC1ByO,GAAOygK,EAAQpvK,KAAK2O,GACpB0gK,EAAQA,EAAMrV,WAKhB,IAFA,IAAI95J,EAAgB,GAEXkN,EAAIgiK,EAAQhlK,OAAS,EAAGgD,GAAK,EAAGA,IACvClN,EAAgB6B,EAAOie,MAAM9f,EAAekvK,EAAQhiK,IAAI,GAG1D+hK,EAAOjvK,cAAgBA,EAGzB,OAAOivK,EAAOjvK,eAEhB8M,uBAAwB,SAAUovB,GAChC,OAAOj9B,KAAKF,QAAQgxD,gBAAgB,CAClC7zB,SAAUA,EACV91B,MAAOnH,KAAKkC,IAAI+6B,EAAW,SAAS,GACpC90B,GAAInI,KAAKkC,IAAI+6B,EAAW,MAAM,QAyBpC,SAASkzI,EAAgBruI,GACvB,IAAIsuI,EAAO,GAaX,OAZAxtK,EAAOzD,KAAK8T,EAAeuoJ,qBAAqB15H,IAAgB,SAAU6oF,GACxEylD,EAAOA,EAAK54G,OAAOmzD,EAAM78G,UAAUpO,cAAgB,OAGrD0wK,EAAOxtK,EAAOqE,IAAImpK,GAAM,SAAU3wK,GAChC,OAAOwgH,EAAexgH,GAAMg9F,QAGR,YAAlB36D,GAA+Bl/B,EAAOiwB,QAAQu9I,EAAM,YAAc,GACpEA,EAAK5oJ,QAAQ,WAGR4oJ,EArBTlV,EAAsBjoJ,EAAgB,CACpC0oJ,oBAAoB,IAEtBiU,EAAcS,uBAAuBp9J,GAErC28J,EAAcU,wBAAwBr9J,EAAgBk9J,GAmBtDvtK,EAAOyM,MAAM4D,EAAgB48J,GAC7B,IAAItwK,EAAW0T,EACfvQ,EAAOC,QAAUpD,G,uBC/NjB,IAAIqD,EAAS,EAAQ,QAEjBsgC,EAAS,EAAQ,QAEjBD,EAAS,EAAQ,QAEjB12B,EAAe,EAAQ,QAEvB8vB,EAAgB,EAAQ,QAyBxBk0I,EAAmBrtI,EAAOgC,eAE9B,SAASsrI,IACPn0I,EAAcvvB,KAAK9M,MAKrB,SAASwM,EAAKG,GAIZ3M,KAAK2M,KAAOA,EAKZ3M,KAAK2S,UACL0pB,EAAcvvB,KAAK9M,MACnBA,KAAKywK,mBAAqB,IAAID,EAC9BxwK,KAAKqO,kBAAoB,IAAImiK,EAC7BxwK,KAAK0wK,QACL1wK,KAAK2wK,MA+OP,SAASnjK,EAAUC,EAAY3N,EAAS4N,EAAQC,GAC9C,IAAI7L,EAAc4L,EAAO5L,YACrBzB,EAAWyB,EAAcA,EAAYxB,iBAAmB,KAE5D,OAAOD,IAAaL,KAAOK,EAASoN,GAAYE,GAAS,KAnQ3D/K,EAAOyM,MAAMmhK,EAAgBn0I,GAmB7B7vB,EAAKsB,UAAY,CACfC,YAAavB,EACb/M,KAAM,OAMN0C,WAAY,CAAC,IAAK,KAUlByuK,gBAAiB,SAAUnrK,EAAGC,EAAGlE,EAAO0K,GAEtC,OADAlM,KAAKsN,MAAQ,IAAIf,EAAa9G,EAAGC,EAAGlE,EAAO0K,GACpClM,KAAKsN,OAOdrB,gBAAiB,WACf,OAAOjM,KAAKsN,OASdujK,YAAa,SAAUprK,EAAGC,EAAGlE,EAAO0K,GAClClM,KAAKmO,YAAY1I,EAAGC,EAAGlE,EAAO0K,GAC9BlM,KAAKkrG,UAAY,IAAI3+F,EAAa9G,EAAGC,EAAGlE,EAAO0K,IAUjDiC,YAAa,SAAU1I,EAAGC,EAAGlE,EAAO0K,GAClC,IAAIF,EAAOhM,KAAKiM,kBACZ6kK,EAAe9wK,KAAKqO,kBACxByiK,EAAaxiK,UAAYtC,EAAKuC,mBAAmB,IAAIhC,EAAa9G,EAAGC,EAAGlE,EAAO0K,IAC/E4kK,EAAatiK,qBAEbxO,KAAK2O,oBAOPqmD,UAAW,SAAU+7G,GACdA,IAIL/wK,KAAK0wK,QAAUK,EAEf/wK,KAAKgxK,yBAMPj8G,QAAS,SAAU5oD,GACjBA,EAAOA,GAAQ,EACf,IAAIwG,EAAY3S,KAAK2S,UAEjBA,IACmB,MAAjBA,EAAUlC,MACZtE,EAAON,KAAK6E,IAAIiC,EAAUlC,IAAKtE,IAGZ,MAAjBwG,EAAUjC,MACZvE,EAAON,KAAK4E,IAAIkC,EAAUjC,IAAKvE,KAInCnM,KAAK2wK,MAAQxkK,EAEbnM,KAAKgxK,wBAMPC,iBAAkB,WAEhB,IAAIC,EAAUlxK,KAAKiM,kBACfmyC,EAAK8yH,EAAQzrK,EAAIyrK,EAAQ1vK,MAAQ,EACjC68C,EAAK6yH,EAAQxrK,EAAIwrK,EAAQhlK,OAAS,EACtC,MAAO,CAACkyC,EAAIC,IAEd8yH,UAAW,WACT,OAAOnxK,KAAK0wK,SAAW1wK,KAAKixK,oBAE9B7kK,QAAS,WACP,OAAOpM,KAAK2wK,OAAS,GAMvB1tC,iBAAkB,WAChB,OAAOjjI,KAAKywK,mBAAmB5sI,qBAMjCmtI,qBAAsB,WAEpB,IAAII,EAAqBpxK,KAAKqO,kBAAkBw1B,oBAE5C9E,EAAgB/+B,KAAKywK,mBACrBY,EAAgBrxK,KAAKixK,mBACrBv4I,EAAS14B,KAAKmxK,YACdhlK,EAAOnM,KAAKoM,UAChBssB,EAASwK,EAAOgC,eAAe,GAAIxM,EAAQ04I,GAC3CC,EAAgBnuI,EAAOgC,eAAe,GAAImsI,EAAeD,GACzDryI,EAAcwE,OAAS7K,EACvBqG,EAAc/zB,SAAW,CAACqmK,EAAc,GAAK34I,EAAO,GAAI24I,EAAc,GAAK34I,EAAO,IAClFqG,EAActwB,MAAQ,CAACtC,EAAMA,GAE7BnM,KAAK2O,oBAOPA,iBAAkB,WAChB,IAAI2iK,EAAoBtxK,KAAKywK,mBACzBriK,EAAmBpO,KAAKqO,kBAC5BD,EAAiByT,OAASyvJ,EAC1BA,EAAkB5iK,kBAClBN,EAAiBM,kBACjBu0B,EAAOc,KAAK/jC,KAAKsO,YAActO,KAAKsO,UAAY,IAAKF,EAAiBE,WAAa20B,EAAOW,UAC1F5jC,KAAKuxK,cAAgBnjK,EAAiBy1B,oBACtC7jC,KAAKskC,aAAetkC,KAAKskC,cAAgB,GACzCrB,EAAOsB,OAAOvkC,KAAKskC,aAActkC,KAAKsO,WACtCtO,KAAKwO,sBAEPowB,iBAAkB,WAChB,IAAIG,EAAgB/+B,KAAKywK,mBAAmBniK,UACxCF,EAAmBpO,KAAKqO,kBAC5B,MAAO,CACL0wB,cAAeA,EAAgBn8B,EAAO0E,MAAMy3B,GAAiBkE,EAAOW,SACpE3E,SAAUr8B,EAAO0E,MAAM8G,EAAiBK,OACxCywB,YAAat8B,EAAO0E,MAAM8G,EAAiBpD,YAO/C66D,YAAa,WACX,OAAO7lE,KAAKkrG,WAOdloE,qBAAsB,WACpB,IAAIh3B,EAAOhM,KAAKiM,kBAAkBvE,QAElC,OADAsE,EAAKk5B,eAAellC,KAAKsO,WAClBtC,GAUTD,YAAa,SAAUxL,EAAM0O,EAAQC,GACnC,IAAIZ,EAAYW,EAASjP,KAAKuxK,cAAgBvxK,KAAKsO,UAEnD,OADAY,EAAMA,GAAO,GACNZ,EAAYiiK,EAAiBrhK,EAAK3O,EAAM+N,GAAa40B,EAAOa,KAAK70B,EAAK3O,IAQ/E88E,YAAa,SAAU/lD,GACrB,IAAIgN,EAAetkC,KAAKskC,aACxB,OAAOA,EAAeisI,EAAiB,GAAIj5I,EAAOgN,GAAgB,CAAChN,EAAM,GAAIA,EAAM,KAOrFnoB,eAAgBvM,EAAO4G,MAAMgE,EAAW,eAMxC4B,iBAAkBxM,EAAO4G,MAAMgE,EAAW,eAM1CkiD,aAAc,SAAUp4B,GACtB,OAAOt3B,KAAKgjC,uBAAuB90B,QAAQopB,EAAM,GAAIA,EAAM,MAa/D10B,EAAOyM,MAAM7C,EAAM6vB,GASnB,IAAI98B,EAAWiN,EACf9J,EAAOC,QAAUpD,G,uBC9SjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB82C,EAAY,EAAQ,QAEpB43H,EAAgB,EAAQ,QAExB7rG,EAAmB6rG,EAAc7rG,iBAEjCv9D,EAAU,EAAQ,QAElBwvD,EAAO,EAAQ,QAEfprD,EAAO,EAAQ,QAEfwvB,EAAa,EAAQ,QAErBD,EAAiB,EAAQ,QAEzBE,EAAgB,EAAQ,QAExBC,EAAsBD,EAAcC,oBAEpC1Y,EAAU,EAAQ,QAIlBK,GAFUL,EAAQC,QAER,EAAQ,SAElB+Q,EAAe3Q,EAAQ2Q,aAoBvBi9I,EAAY3uK,EAAQolE,YAAY,CAClC12D,MAAO,CACLkgK,YAAa,GACbC,YAAa,GACb7qK,OAAQ,GACR8qK,aAAc,IAEhBpsK,MAAO,CACLq5C,OAAQ,OACRntC,KAAM,MAER+5C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAImgK,EAAcngK,EAAMmgK,YACpBE,EAAWF,EAAY1mK,OACvBymK,EAAclgK,EAAMkgK,YACpBI,EAAgBH,EAAY,GAC5BI,EAAeJ,EAAYE,EAAW,GAE1C,GAAiB,IAAbA,EAGF,OAFAptI,EAAItW,OAAOujJ,EAAY,GAAIA,EAAY,SACvCjtI,EAAIknB,OAAOmmH,EAAc,GAAIA,EAAc,IAI7C,IAAIhrK,EAAS0K,EAAM1K,OACfkrK,EAAqB,OAAXlrK,GAA8B,OAAXA,EAAkB,EAAI,EACnD2vE,EAAW,EAAIu7F,EACfJ,EAAep9I,EAAahjB,EAAMogK,aAAc,GAChDK,EAAW,GACfA,EAASD,GAAWN,EAAYM,GAChCC,EAASx7F,GAAYi7F,EAAYj7F,IAAas7F,EAAat7F,GAAYi7F,EAAYj7F,IAAam7F,EAChGntI,EAAItW,OAAOujJ,EAAY,GAAIA,EAAY,IACvCjtI,EAAIknB,OAAOsmH,EAAS,GAAIA,EAAS,IACjCxtI,EAAItW,OAAO2jJ,EAAc,GAAIA,EAAc,IAC3CG,EAASD,GAAWF,EAAcE,GAClCvtI,EAAIknB,OAAOsmH,EAAS,GAAIA,EAAS,IACjCA,EAASD,GAAWD,EAAaC,GACjCvtI,EAAIknB,OAAOsmH,EAAS,GAAIA,EAAS,IACjCxtI,EAAIknB,OAAOomH,EAAa,GAAIA,EAAa,IAEzC,IAAK,IAAI9jK,EAAI,EAAGA,EAAI4jK,EAAW,EAAG5jK,IAAK,CACrC,IAAIqpB,EAAQq6I,EAAY1jK,GACxBw2B,EAAItW,OAAOmJ,EAAM,GAAIA,EAAM,IAC3B26I,EAASD,GAAW16I,EAAM06I,GAC1BvtI,EAAIknB,OAAOsmH,EAAS,GAAIA,EAAS,QAKnC1yK,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,OAQNuJ,KAAM,SAAUlJ,EAASyG,GAKvBvG,KAAKkyK,SAMLlyK,KAAKqrG,WAAa,IAAIvoG,EAAQ6B,MAM9B3E,KAAK09B,YAAc,IAAI3B,EAAex1B,EAAIslB,SAC1C7rB,KAAK29B,gBAAkB,CACrBvrB,OAAQpS,KAAKsD,OAEftD,KAAKsD,MAAMgC,IAAItF,KAAKqrG,aAEtB/5F,OAAQ,SAAUxP,EAAahC,EAASyG,EAAK23B,GAC3C,IAAI39B,EAAOuB,EAAYtB,UACnBq9D,EAAa/7D,EAAY+7D,WACzBv6D,EAAQtD,KAAKqrG,WACbpoG,EAASnB,EAAYI,IAAI,UAEd,WAAXe,EACFK,EAAM0c,KAAK,WAAY,CAAC69C,EAAWp4D,EAAIo4D,EAAWr8D,MAAQ,EAAGq8D,EAAWn4D,EAAIm4D,EAAW3xD,OAAS,IAEhG5I,EAAM0c,KAAK,WAAY,CAAC69C,EAAWp4D,EAAGo4D,EAAWn4D,IAGnD1F,KAAKmyK,oBAAoBrwK,EAAa+7D,EAAY56D,GAElDjD,KAAKoiC,kBAAkBtgC,EAAahC,EAASyG,GAE7C,IAAIo3C,EAAU39C,KAAK49C,MACfrL,EAAc,CAChB6rB,kBAAmBt8D,EAAYI,IAAI,qBACnCe,OAAQA,EACR07D,UAAW78D,EAAYI,IAAI,aAC3B08D,iBAAkB98D,EAAYI,IAAI,oBAClC4E,OAAQhF,EAAY4mC,YACpBs7G,UAAWliJ,EAAYI,IAAI,uBAC3Bw6C,aAAc56C,EAAYI,IAAI,gBAC9Bk6C,aAAct6C,EAAYI,IAAI,gBAC9Bm6C,eAAgBv6C,EAAYI,IAAI,kBAChC66C,cAAc,EACdhC,QAAQ,GAEVx6C,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAUk5C,GAC3B4zH,EAAgB7xK,EAAMi+C,IAExB6zH,EAAW9xK,EAAMi+C,EAAQ,KAAMl7C,EAAOxB,EAAaywC,MAEpDhqC,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI6zH,EAAW30H,EAAQpE,iBAAiBkF,GAEnC2zH,EAAgB7xK,EAAMi+C,GAM3B6zH,EAAW9xK,EAAMi+C,EAAQ8zH,EAAUhvK,EAAOxB,EAAaywC,GALrD+/H,GAAYrqE,EAAWtqD,EAASc,EAAQ6zH,EAAUhvK,EAAOxB,EAAaywC,MAMvElQ,QAAO,SAAUoc,GAClB,IAAI6zH,EAAW30H,EAAQpE,iBAAiBkF,GAMpC6zH,GACFrqE,EAAWtqD,EAASc,EAAQ6zH,EAAUhvK,EAAOxB,EAAaywC,MAE3DmM,UACH1+C,KAAKuyK,gBAAkBzwK,EAAYI,IAAI,kBAEvClC,KAAKwyK,wBAAwB1wK,IAES,IAAlCywC,EAAY6rB,mBACd79D,EAAKo+C,mBAAkB,SAAUlzB,EAAI7qB,GACnC6qB,EAAGoR,IAAI,SAASj2B,GAAG,SAAS,WAC1BL,EAAIC,eAAe,CACjB/G,KAAM,wBACNunB,SAAUllB,EAAYqG,GACtBvH,UAAWA,UAMnBZ,KAAK49C,MAAQr9C,GAEf4xK,oBAAqB,SAAUrwK,GAC7B,IAAIvB,EAAOuB,EAAYtB,UACnB+W,EAAS,GACbhX,EAAKpB,MAAK,SAAU+Q,GAClB,IAAIjN,EAAS1C,EAAKygB,cAAc9Q,IAE5BjN,GAAW8V,MAAM9V,EAAOwC,IAAOsT,MAAM9V,EAAOyC,IAC9C6R,EAAO1W,KAAK,EAAEoC,EAAOwC,GAAIxC,EAAOyC,OAGpC,IAAIgL,EAAM,GACND,EAAM,GACVmnD,EAAK66G,WAAWl7J,EAAQ7G,EAAKD,GAG7B,IAAIiiK,EAAS1yK,KAAK2yK,KACdC,EAAS5yK,KAAK6yK,KAEdpiK,EAAI,GAAKC,EAAI,KAAO,IACtBA,EAAI,GAAKgiK,EAASA,EAAO,GAAKhiK,EAAI,GAAK,EACvCD,EAAI,GAAKmiK,EAASA,EAAO,GAAKniK,EAAI,GAAK,GAGrCA,EAAI,GAAKC,EAAI,KAAO,IACtBA,EAAI,GAAKgiK,EAASA,EAAO,GAAKhiK,EAAI,GAAK,EACvCD,EAAI,GAAKmiK,EAASA,EAAO,GAAKniK,EAAI,GAAK,GAGzC,IAAIqiK,EAAehxK,EAAYxB,iBAAmB,IAAIkM,EACtDsmK,EAAangK,UAAY7Q,EAAYI,IAAI,cACzC4wK,EAAalC,gBAAgBlgK,EAAI,GAAIA,EAAI,GAAID,EAAI,GAAKC,EAAI,GAAID,EAAI,GAAKC,EAAI,IAC3EoiK,EAAa99G,UAAUlzD,EAAYI,IAAI,WACvC4wK,EAAa/9G,QAAQjzD,EAAYI,IAAI,SAErClC,KAAKsD,MAAM0c,KAAK,CACdhV,SAAU8nK,EAAa9nK,SACvByD,MAAOqkK,EAAarkK,QAEtBzO,KAAK+yK,cAAgBD,EACrB9yK,KAAK2yK,KAAOjiK,EACZ1Q,KAAK6yK,KAAOpiK,GAEd2xB,kBAAmB,SAAUtgC,EAAahC,EAASyG,GACjD,IAAIk8B,EAAaziC,KAAK09B,YAClBzrB,EAAiBjS,KAAK29B,gBACtBr6B,EAAQtD,KAAKsD,MACjBm/B,EAAWM,mBAAkB,SAAUpW,EAAGlnB,EAAGC,GAC3C,IAAIsG,EAAO1I,EAAM2I,kBAEjB,OADAD,EAAKk5B,eAAe5hC,EAAMgL,WACnBtC,EAAKkC,QAAQzI,EAAGC,KAAOw2B,EAAoBvP,EAAGpmB,EAAKzE,MAE5D2gC,EAAWC,OAAO5gC,EAAYI,IAAI,SAClC+P,EAAeU,UAAY7Q,EAAYI,IAAI,cAC3C+P,EAAe9F,KAAOrK,EAAYxB,iBAAiB8L,UACnDq2B,EAAW5F,IAAI,OAAOA,IAAI,QAAQj2B,GAAG,OAAO,SAAU+lB,GACpDqP,EAAWhqB,gBAAgBC,EAAgB0a,EAAEza,GAAIya,EAAExa,IACnD5L,EAAIC,eAAe,CACjBwgB,SAAUllB,EAAYqG,GACtB1I,KAAM,WACNyS,GAAIya,EAAEza,GACNC,GAAIwa,EAAExa,OAEPnS,MAAM4G,GAAG,QAAQ,SAAU+lB,GAC5BqP,EAAWzpB,iBAAiBN,EAAgB0a,EAAEle,MAAOke,EAAEiW,QAASjW,EAAEkW,SAClEt8B,EAAIC,eAAe,CACjBwgB,SAAUllB,EAAYqG,GACtB1I,KAAM,WACN0M,KAAMwgB,EAAEle,MACRm0B,QAASjW,EAAEiW,QACXC,QAASlW,EAAEkW,UAGb7iC,KAAKwyK,wBAAwB1wK,KAC5B9B,OAELwyK,wBAAyB,SAAU1wK,GACjC,IAAIvB,EAAOuB,EAAYtB,UAEnB27I,EAAYn8I,KAAKgzK,oBAAoBlxK,GAErCmxK,EAAW,CAAC92B,EAAWA,GAC3B57I,EAAKo+C,mBAAkB,SAAUlzB,EAAIvb,GACnCub,EAAGzL,KAAK,QAASizJ,OAGrBD,oBAAqB,SAAUlxK,GAC7B,IAAIzB,EAAWyB,EAAYxB,iBAE3B,GAAsB,SAAlBD,EAASZ,KACX,OAAO,EAGT,IAAIq/D,EAAiB9+D,KAAKuyK,gBACtBv2B,EAAa37I,EAASoO,MACtBwtI,EAAYD,GAAcA,EAAW,IAAM,EAE3CE,EAAW77I,EAAS+L,UACpB+vI,GAAaD,EAAW,GAAKp9E,EAAiB,EAClD,OAAOq9E,EAAYF,GAErB1tH,QAAS,WACPvuB,KAAK09B,aAAe19B,KAAK09B,YAAYnP,UACrCvuB,KAAK29B,gBAAkB,IAEzB0E,OAAQ,WACNriC,KAAKqrG,WAAW9nG,YAEhBvD,KAAK49C,MAAQ,QAIjB,SAASw0H,EAAgB7xK,EAAMK,GAC7B,IAAIqC,EAAS1C,EAAKygB,cAAcpgB,GAChC,OAAOqC,IAAW8V,MAAM9V,EAAOwC,KAAOsT,MAAM9V,EAAOyC,IAAkD,SAA5CnF,EAAKohB,cAAc/gB,EAAW,UAGzF,SAASsyK,EAAiB1zJ,EAAM2B,EAAWoxB,GAczC,OAbAA,EAAYpxB,UAAYA,EACxBoxB,EAAYrnC,UAAYiW,EAAUF,SAAS,aAAatP,eACxD4gC,EAAYtS,eAAiB9e,EAAUF,SAAS,sBAAsBtP,eACtE4gC,EAAYhxC,UAAY4f,EAAUF,SAAS,aAAa29B,eACxDrM,EAAYrS,WAAa/e,EAAUF,SAAS,SAC5CsxB,EAAYpS,gBAAkBhf,EAAUF,SAAS,mBAE3B,IAAlBzB,EAAK0+C,UAA+C,IAAzB1+C,EAAKX,SAAS5T,OAC3CsnC,EAAYoK,iBAAmBpK,EAAYrnC,UAAUwG,KAErD6gC,EAAYoK,iBAAmB,OAG1BpK,EAGT,SAAS8/H,EAAW9xK,EAAMK,EAAW0xK,EAAUhvK,EAAOxB,EAAaywC,GACjE,IAAI7tB,GAAU4tJ,EACV9yJ,EAAOjf,EAAKmiB,KAAKX,mBAAmBnhB,GACpCugB,EAAY3B,EAAKyB,WAEjB2lF,GADAr0D,EAAc2gI,EAAiB1zJ,EAAM2B,EAAWoxB,GAClChyC,EAAKmiB,KAAKxD,MACxBnf,EAASyf,EAAKZ,aAAegoF,EAAcpnF,EAAOA,EAAKZ,YAAcY,EACrE2zJ,EAAiB5yK,EAAKg5C,iBAAiBx5C,EAAOa,WAC9CwyK,EAAerzK,EAAOghB,YACtBsyJ,EAAkBF,EAAiB,CACrC1tK,EAAG0tK,EAAenoK,SAAS,GAC3BtF,EAAGytK,EAAenoK,SAAS,GAC3BsoK,KAAMH,EAAeI,gBACrBC,KAAML,EAAeM,iBACnBL,EACAM,EAAel0J,EAAKuB,YAEpB2D,GACF4tJ,EAAW,IAAI14H,EAAUr5C,EAAMK,EAAW2xC,GAC1C+/H,EAAStyJ,KAAK,WAAY,CAACqzJ,EAAgB5tK,EAAG4tK,EAAgB3tK,KAE9D4sK,EAASr+H,WAAW1zC,EAAMK,EAAW2xC,GAGvC+/H,EAASiB,gBAAkBjB,EAASqB,aACpCrB,EAASmB,gBAAkBnB,EAASsB,aACpCtB,EAASqB,aAAeD,EAAaJ,KACrChB,EAASsB,aAAeF,EAAaF,KACrClwK,EAAMgC,IAAIgtK,GACV/xK,EAAKqhC,iBAAiBhhC,EAAW0xK,GACjCxvK,EAAQk8B,YAAYszI,EAAU,CAC5BtnK,SAAU,CAAC0oK,EAAajuK,EAAGiuK,EAAahuK,IACvC5D,GACH,IAAIu4C,EAAai4H,EAAS93H,gBAE1B,GAA2B,WAAvBjI,EAAYtvC,OAAqB,CACnC,IAGI4gD,EACAgwH,EAJAn1G,EAAWkoC,EAAY/nF,SAAS,GAChCi1J,EAAap1G,EAAS39C,YACtB9V,EAASyzD,EAAS7/C,SAAS5T,OAI/B,GAAIyoK,EAAajuK,IAAMquK,EAAWruK,IAAuB,IAAlB+Z,EAAK0+C,SAAmB,CAC7D,IAAIxlC,EAAS,GACbA,EAAOjzB,GAAKi5D,EAAS7/C,SAAS,GAAGkC,YAAYtb,EAAIi5D,EAAS7/C,SAAS5T,EAAS,GAAG8V,YAAYtb,GAAK,EAChGizB,EAAOhzB,GAAKg5D,EAAS7/C,SAAS,GAAGkC,YAAYrb,EAAIg5D,EAAS7/C,SAAS5T,EAAS,GAAG8V,YAAYrb,GAAK,EAChGm+C,EAAMh4C,KAAKk5B,MAAMrM,EAAOhzB,EAAIouK,EAAWpuK,EAAGgzB,EAAOjzB,EAAIquK,EAAWruK,GAE5Do+C,EAAM,IACRA,EAAgB,EAAVh4C,KAAK+E,GAASizC,GAGtBgwH,EAASn7I,EAAOjzB,EAAIquK,EAAWruK,EAE3BouK,IACFhwH,GAAYh4C,KAAK+E,SAGnBizC,EAAMh4C,KAAKk5B,MAAM2uI,EAAahuK,EAAIouK,EAAWpuK,EAAGguK,EAAajuK,EAAIquK,EAAWruK,GAExEo+C,EAAM,IACRA,EAAgB,EAAVh4C,KAAK+E,GAASizC,GAGO,IAAzBrkC,EAAKX,SAAS5T,QAAyC,IAAzBuU,EAAKX,SAAS5T,SAAkC,IAAlBuU,EAAK0+C,UACnE21G,EAASH,EAAajuK,EAAIquK,EAAWruK,EAEjCouK,IACFhwH,GAAYh4C,KAAK+E,MAGnBijK,EAASH,EAAajuK,EAAIquK,EAAWruK,EAEhCouK,IACHhwH,GAAYh4C,KAAK+E,KAKvB,IAAI+8D,EAAekmG,EAAS,OAAS,QACjCzuI,EAASmN,EAAYrS,WAAWh+B,IAAI,UACpC6xK,EAAoB3uI,GAAUv5B,KAAK+E,GAAK,KAC5CypC,EAAWxZ,SAAS,CAClB8sC,aAAcp7B,EAAYrS,WAAWh+B,IAAI,aAAeyrE,EACxDG,aAAwB,MAAV1oC,GAAkBye,EAAMkwH,EACtCxnF,WAAY,SACZt9B,cAAe,WAInB+kH,EAASlyK,EAAa0d,EAAMonF,EAAa0rE,EAAUe,EAAiBD,EAAcM,EAAcpwK,EAAOivC,GAGzG,SAASyhI,EAASlyK,EAAa0d,EAAMonF,EAAa0rE,EAAUe,EAAiBD,EAAcM,EAAcpwK,EAAOivC,GAC9G,IAAIosB,EAAYpsB,EAAYosB,UACxBp3C,EAAO+qJ,EAAS2B,OAEpB,GAAkB,UAAdt1G,EACEn/C,EAAKZ,YAAcY,EAAKZ,aAAegoF,IACpCr/E,IACHA,EAAO+qJ,EAAS2B,OAAS,IAAInxK,EAAQokE,YAAY,CAC/C11D,MAAO0iK,EAAa3hI,EAAa8gI,EAAiBA,GAClD7tK,MAAO5C,EAAO6O,SAAS,CACrBhQ,QAAS,EACTq/B,eAAe,GACdyR,EAAYhxC,cAInBuB,EAAQk8B,YAAYzX,EAAM,CACxB/V,MAAO0iK,EAAa3hI,EAAa6gI,EAAcM,GAC/CluK,MAAO,CACL/D,QAAS,IAEVK,SAEA,GAAkB,aAAd68D,GACkB,eAAvBpsB,EAAYtvC,QACVuc,IAASonF,GAAepnF,EAAKX,UAAqC,IAAzBW,EAAKX,SAAS5T,SAAkC,IAAlBuU,EAAK0+C,SAAmB,CAIjG,IAHA,IAAIr/C,EAAWW,EAAKX,SAChB8yJ,EAAc,GAET1jK,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IAAK,CACxC,IAAIkmK,EAAct1J,EAAS5Q,GAAG8S,YAC9B4wJ,EAAY9wK,KAAK,CAACszK,EAAY1uK,EAAG0uK,EAAYzuK,IAG1C6hB,IACHA,EAAO+qJ,EAAS2B,OAAS,IAAIxC,EAAU,CACrCjgK,MAAO,CACLkgK,YAAa,CAACgC,EAAajuK,EAAGiuK,EAAahuK,GAC3CisK,YAAa,CAAC,CAAC+B,EAAajuK,EAAGiuK,EAAahuK,IAC5CoB,OAAQyrC,EAAYzrC,OACpB8qK,aAAcr/H,EAAYqsB,kBAE5Bp5D,MAAO5C,EAAO6O,SAAS,CACrBhQ,QAAS,EACTq/B,eAAe,GACdyR,EAAYhxC,cAInBuB,EAAQk8B,YAAYzX,EAAM,CACxB/V,MAAO,CACLkgK,YAAa,CAACgC,EAAajuK,EAAGiuK,EAAahuK,GAC3CisK,YAAaA,GAEfnsK,MAAO,CACL/D,QAAS,IAEVK,GAKTwB,EAAMgC,IAAIiiB,GAGZ,SAAS0gF,EAAW1nG,EAAMK,EAAW0xK,EAAUhvK,EAAOxB,EAAaywC,GACjE,IAMI6gI,EANA5zJ,EAAOjf,EAAKmiB,KAAKX,mBAAmBnhB,GACpCgmG,EAAcrmG,EAAKmiB,KAAKxD,KACxBiC,EAAY3B,EAAKyB,WAEjBlhB,GADAwyC,EAAc2gI,EAAiB1zJ,EAAM2B,EAAWoxB,GACvC/yB,EAAKZ,aAAegoF,EAAcpnF,EAAOA,EAAKZ,YAAcY,GACrEm/C,EAAYpsB,EAAYosB,UAG5B,MAAOy0G,EAAerzK,EAAOghB,YAA6B,MAAhBqyJ,EACxCrzK,EAASA,EAAO6e,aAAegoF,EAAc7mG,EAASA,EAAO6e,YAAc7e,EAG7E+C,EAAQk8B,YAAYszI,EAAU,CAC5BtnK,SAAU,CAACooK,EAAa3tK,EAAI,EAAG2tK,EAAa1tK,EAAI,IAC/C5D,GAAa,WACdwB,EAAM++B,OAAOiwI,GACb/xK,EAAKqhC,iBAAiBhhC,EAAW,SAEnC0xK,EAASj1H,QAAQ,KAAM,CACrBC,WAAW,IAEb,IAAI61H,EAAiB5yK,EAAKg5C,iBAAiBx5C,EAAOa,WAC9CwzK,EAAajB,EAAec,OAK5B1sJ,EAAO+qJ,EAAS2B,UAA+B,IAApBl0K,EAAOm+D,UAAiD,IAA3Bn+D,EAAO8e,SAAS5T,OAAempK,OAAathJ,GACpG6rC,EAAYpsB,EAAYosB,UAExBp3C,IACgB,UAAdo3C,EACF77D,EAAQk8B,YAAYzX,EAAM,CACxB/V,MAAO0iK,EAAa3hI,EAAa6gI,EAAcA,GAC/C5tK,MAAO,CACL/D,QAAS,IAEVK,GAAa,WACdwB,EAAM++B,OAAO9a,MAEQ,aAAdo3C,GAAmD,eAAvBpsB,EAAYtvC,QACjDH,EAAQk8B,YAAYzX,EAAM,CACxB/V,MAAO,CACLkgK,YAAa,CAAC0B,EAAa3tK,EAAG2tK,EAAa1tK,GAC3CisK,YAAa,CAAC,CAACyB,EAAa3tK,EAAG2tK,EAAa1tK,KAE9CF,MAAO,CACL/D,QAAS,IAEVK,GAAa,WACdwB,EAAM++B,OAAO9a,OAMrB,SAAS2sJ,EAAa3hI,EAAa6gI,EAAcM,GAC/C,IAAIhwB,EACAC,EACAC,EACAC,EAEAzpF,EACAE,EACAD,EACAE,EAJAzzD,EAASyrC,EAAYzrC,OAMzB,GAA2B,WAAvByrC,EAAYtvC,OAAqB,CACnCm3D,EAAKg5G,EAAaE,KAClBj5G,EAAK+4G,EAAaI,KAClBl5G,EAAKo5G,EAAaJ,KAClB/4G,EAAKm5G,EAAaF,KAClB,IAAIa,EAAc1uG,EAAiBvL,EAAIC,GACnCi6G,EAAc3uG,EAAiBvL,EAAIC,GAAME,EAAKF,GAAM9nB,EAAYyxG,WAChEuwB,EAAc5uG,EAAiBrL,EAAIC,GAAMF,EAAKE,GAAMhoB,EAAYyxG,WAChEwwB,EAAc7uG,EAAiBrL,EAAIC,GACvC,MAAO,CACLH,GAAIi6G,EAAY5uK,EAChB40D,GAAIg6G,EAAY3uK,EAChB40D,GAAIk6G,EAAY/uK,EAChB80D,GAAIi6G,EAAY9uK,EAChBg+I,KAAM4wB,EAAY7uK,EAClBk+I,KAAM2wB,EAAY5uK,EAClBk+I,KAAM2wB,EAAY9uK,EAClBo+I,KAAM0wB,EAAY7uK,GAuBtB,OApBE00D,EAAKg5G,EAAa3tK,EAClB40D,EAAK+4G,EAAa1tK,EAClB40D,EAAKo5G,EAAajuK,EAClB80D,EAAKm5G,EAAahuK,EAEH,OAAXoB,GAA8B,OAAXA,IACrB48I,EAAOtpF,GAAME,EAAKF,GAAM7nB,EAAYyxG,UACpCL,EAAOtpF,EACPupF,EAAOtpF,GAAMF,EAAKE,GAAM/nB,EAAYyxG,UACpCH,EAAOtpF,GAGM,OAAXzzD,GAA8B,OAAXA,IACrB48I,EAAOtpF,EACPupF,EAAOtpF,GAAME,EAAKF,GAAM9nB,EAAYyxG,UACpCJ,EAAOtpF,EACPupF,EAAOtpF,GAAMF,EAAKE,GAAMhoB,EAAYyxG,WAIjC,CACL5pF,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJmpF,KAAMA,EACNC,KAAMA,EACNC,KAAMA,EACNC,KAAMA,GAIVnhJ,EAAOC,QAAUpD,G,qBCxnBjB,IAAIk1K,EAAiB,CACnB,oBAAqB,EACrB,kBAAmB,EACnB,gBAAiB,EACjB,iBAAkB,EAClB,0BAA2B,EAC3B,yBAA0B,EAE1B,iBAAkB,EAClB,kBAAmB,GAEjBC,EAAc,CAChB,qBAAsB,EACtB,sBAAuB,EACvB,6BAA8B,EAC9B,sBAAuB,EACvB,uBAAwB,EACxB,sBAAuB,EACvB,uBAAwB,EACxB,wBAAyB,EACzB,wBAAyB,GAEvBC,EAAcpiJ,OAAOzkB,UAAUwkG,SAC/BsiE,EAAa78J,MAAMjK,UACnB+mK,EAAgBD,EAAWE,QAC3BC,EAAeH,EAAWvjH,OAC1B2jH,EAAcJ,EAAWttK,MACzB2tK,EAAYL,EAAW3tK,IACvBiuK,EAAeN,EAAWvgH,OAE1Bo1B,EAAU,GAEd,SAASwmC,EAAUtjH,EAAMmpC,GAEV,iBAATnpC,IACFqsD,EAAO,MAGTywB,EAAQ98E,GAAQmpC,EAoBlB,SAASpuC,EAAM3H,GACb,GAAc,MAAVA,GAAoC,kBAAXA,EAC3B,OAAOA,EAGT,IAAI4mB,EAAS5mB,EACTo1K,EAAUR,EAAY7nK,KAAK/M,GAE/B,GAAgB,mBAAZo1K,GACF,IAAKC,EAAYr1K,GAAS,CACxB4mB,EAAS,GAET,IAAK,IAAI1Y,EAAI,EAAGqK,EAAMvY,EAAOkL,OAAQgD,EAAIqK,EAAKrK,IAC5C0Y,EAAO1Y,GAAKvG,EAAM3H,EAAOkO,UAGxB,GAAIymK,EAAYS,IACrB,IAAKC,EAAYr1K,GAAS,CACxB,IAAI+/H,EAAO//H,EAAOgO,YAElB,GAAIhO,EAAOgO,YAAY/F,KACrB2e,EAASm5G,EAAK93H,KAAKjI,OACd,CACL4mB,EAAS,IAAIm5G,EAAK//H,EAAOkL,QAEzB,IAASgD,EAAI,EAAGqK,EAAMvY,EAAOkL,OAAQgD,EAAIqK,EAAKrK,IAC5C0Y,EAAO1Y,GAAKvG,EAAM3H,EAAOkO,WAI1B,IAAKwmK,EAAeU,KAAaC,EAAYr1K,KAAYs1K,EAAMt1K,GAGpE,IAAK,IAAIgI,KAFT4e,EAAS,GAEO5mB,EACVA,EAAOgd,eAAehV,KACxB4e,EAAO5e,GAAOL,EAAM3H,EAAOgI,KAKjC,OAAO4e,EAUT,SAAS9F,EAAMzO,EAAQrS,EAAQutF,GAG7B,IAAKrnE,EAASlmB,KAAYkmB,EAAS7T,GACjC,OAAOk7E,EAAY5lF,EAAM3H,GAAUqS,EAGrC,IAAK,IAAIrK,KAAOhI,EACd,GAAIA,EAAOgd,eAAehV,GAAM,CAC9B,IAAIutK,EAAaljK,EAAOrK,GACpBwtK,EAAax1K,EAAOgI,IAEpBke,EAASsvJ,KAAetvJ,EAASqvJ,IAAgBtyJ,EAAQuyJ,IAAgBvyJ,EAAQsyJ,IAAgBD,EAAME,IAAgBF,EAAMC,IAAgBE,EAAgBD,IAAgBC,EAAgBF,IAAgBF,EAAYG,IAAgBH,EAAYE,IAG9OhoF,GAAevlF,KAAOqK,IAG/BA,EAAOrK,GAAOL,EAAM3H,EAAOgI,IAAM,IAJjC8Y,EAAMy0J,EAAYC,EAAYjoF,GASpC,OAAOl7E,EAST,SAASqjK,EAASC,EAAkBpoF,GAGlC,IAFA,IAAI3mE,EAAS+uJ,EAAiB,GAErBznK,EAAI,EAAGqK,EAAMo9J,EAAiBzqK,OAAQgD,EAAIqK,EAAKrK,IACtD0Y,EAAS9F,EAAM8F,EAAQ+uJ,EAAiBznK,GAAIq/E,GAG9C,OAAO3mE,EAST,SAASnnB,EAAO4S,EAAQrS,GACtB,IAAK,IAAIgI,KAAOhI,EACVA,EAAOgd,eAAehV,KACxBqK,EAAOrK,GAAOhI,EAAOgI,IAIzB,OAAOqK,EAUT,SAASX,EAASW,EAAQrS,EAAQ41K,GAChC,IAAK,IAAI5tK,KAAOhI,EACVA,EAAOgd,eAAehV,KAAS4tK,EAAyB,MAAf51K,EAAOgI,GAA8B,MAAfqK,EAAOrK,MACxEqK,EAAOrK,GAAOhI,EAAOgI,IAIzB,OAAOqK,EAGT,IASI4mD,EATA6tD,EAAe,WACjB,OAAOp9B,EAAQo9B,gBAUjB,SAAShtD,IAOP,OANKb,IAGHA,EAAO6tD,IAAehtD,WAAW,OAG5Bb,EAQT,SAASnmC,EAAQ9e,EAAOpG,GACtB,GAAIoG,EAAO,CACT,GAAIA,EAAM8e,QACR,OAAO9e,EAAM8e,QAAQllB,GAGvB,IAAK,IAAIM,EAAI,EAAGqK,EAAMvE,EAAM9I,OAAQgD,EAAIqK,EAAKrK,IAC3C,GAAI8F,EAAM9F,KAAON,EACf,OAAOM,EAKb,OAAQ,EAWV,SAASmmB,EAAS8qI,EAAO0W,GACvB,IAAIC,EAAiB3W,EAAMpxJ,UAE3B,SAASgoK,KAKT,IAAK,IAAI9iJ,KAHT8iJ,EAAEhoK,UAAY8nK,EAAU9nK,UACxBoxJ,EAAMpxJ,UAAY,IAAIgoK,EAELD,EACXA,EAAe94J,eAAeiW,KAChCksI,EAAMpxJ,UAAUklB,GAAQ6iJ,EAAe7iJ,IAI3CksI,EAAMpxJ,UAAUC,YAAcmxJ,EAC9BA,EAAMrE,WAAa+a,EAUrB,SAASvmK,EAAM+C,EAAQrS,EAAQ41K,GAC7BvjK,EAAS,cAAeA,EAASA,EAAOtE,UAAYsE,EACpDrS,EAAS,cAAeA,EAASA,EAAO+N,UAAY/N,EACpD0R,EAASW,EAAQrS,EAAQ41K,GAQ3B,SAAS99J,EAAYtX,GACnB,GAAKA,EAIL,MAAoB,kBAATA,GAImB,kBAAhBA,EAAK0K,OAWrB,SAAS9L,EAAK4mB,EAAK5H,EAAIyB,GACrB,GAAMmG,GAAO5H,EAIb,GAAI4H,EAAI+uJ,SAAW/uJ,EAAI+uJ,UAAYD,EACjC9uJ,EAAI+uJ,QAAQ32J,EAAIyB,QACX,GAAImG,EAAI9a,UAAY8a,EAAI9a,OAC7B,IAAK,IAAIgD,EAAI,EAAGqK,EAAMyN,EAAI9a,OAAQgD,EAAIqK,EAAKrK,IACzCkQ,EAAGrR,KAAK8S,EAASmG,EAAI9X,GAAIA,EAAG8X,QAG9B,IAAK,IAAIhe,KAAOge,EACVA,EAAIhJ,eAAehV,IACrBoW,EAAGrR,KAAK8S,EAASmG,EAAIhe,GAAMA,EAAKge,GAexC,SAAS9e,EAAI8e,EAAK5H,EAAIyB,GACpB,GAAMmG,GAAO5H,EAAb,CAIA,GAAI4H,EAAI9e,KAAO8e,EAAI9e,MAAQguK,EACzB,OAAOlvJ,EAAI9e,IAAIkX,EAAIyB,GAInB,IAFA,IAAI+G,EAAS,GAEJ1Y,EAAI,EAAGqK,EAAMyN,EAAI9a,OAAQgD,EAAIqK,EAAKrK,IACzC0Y,EAAO9lB,KAAKsd,EAAGrR,KAAK8S,EAASmG,EAAI9X,GAAIA,EAAG8X,IAG1C,OAAOY,GAaX,SAAS0tC,EAAOtuC,EAAK5H,EAAI43J,EAAMn2J,GAC7B,GAAMmG,GAAO5H,EAAb,CAIA,GAAI4H,EAAIsuC,QAAUtuC,EAAIsuC,SAAW6gH,EAC/B,OAAOnvJ,EAAIsuC,OAAOl2C,EAAI43J,EAAMn2J,GAE5B,IAAK,IAAI3R,EAAI,EAAGqK,EAAMyN,EAAI9a,OAAQgD,EAAIqK,EAAKrK,IACzC8nK,EAAO53J,EAAGrR,KAAK8S,EAASm2J,EAAMhwJ,EAAI9X,GAAIA,EAAG8X,GAG3C,OAAOgwJ,GAaX,SAAS1kH,EAAOtrC,EAAK5H,EAAIyB,GACvB,GAAMmG,GAAO5H,EAAb,CAIA,GAAI4H,EAAIsrC,QAAUtrC,EAAIsrC,SAAW0jH,EAC/B,OAAOhvJ,EAAIsrC,OAAOlzC,EAAIyB,GAItB,IAFA,IAAI+G,EAAS,GAEJ1Y,EAAI,EAAGqK,EAAMyN,EAAI9a,OAAQgD,EAAIqK,EAAKrK,IACrCkQ,EAAGrR,KAAK8S,EAASmG,EAAI9X,GAAIA,EAAG8X,IAC9BY,EAAO9lB,KAAKklB,EAAI9X,IAIpB,OAAO0Y,GAaX,SAASqvJ,EAAKjwJ,EAAK5H,EAAIyB,GACrB,GAAMmG,GAAO5H,EAIb,IAAK,IAAIlQ,EAAI,EAAGqK,EAAMyN,EAAI9a,OAAQgD,EAAIqK,EAAKrK,IACzC,GAAIkQ,EAAGrR,KAAK8S,EAASmG,EAAI9X,GAAIA,EAAG8X,GAC9B,OAAOA,EAAI9X,GAYjB,SAASpJ,EAAK4mH,EAAM7rG,GAClB,IAAIy2C,EAAO2+G,EAAYloK,KAAK5D,UAAW,GACvC,OAAO,WACL,OAAOuiH,EAAKnlG,MAAM1G,EAASy2C,EAAKmB,OAAOw9G,EAAYloK,KAAK5D,cAU5D,SAASM,EAAMiiH,GACb,IAAIp1D,EAAO2+G,EAAYloK,KAAK5D,UAAW,GACvC,OAAO,WACL,OAAOuiH,EAAKnlG,MAAMtmB,KAAMq2D,EAAKmB,OAAOw9G,EAAYloK,KAAK5D,cAUzD,SAAS8Z,EAAQrV,GACf,MAAmC,mBAA5BgnK,EAAY7nK,KAAKa,GAS1B,SAASgpC,EAAWhpC,GAClB,MAAwB,oBAAVA,EAShB,SAASkS,EAASlS,GAChB,MAAmC,oBAA5BgnK,EAAY7nK,KAAKa,GAS1B,SAASsY,EAAStY,GAGhB,IAAIlO,SAAckO,EAClB,MAAgB,aAATlO,KAAyBkO,GAAkB,WAATlO,EAS3C,SAAS+1K,EAAgB7nK,GACvB,QAAS8mK,EAAeE,EAAY7nK,KAAKa,IAS3C,SAASw/B,EAAax/B,GACpB,QAAS+mK,EAAYC,EAAY7nK,KAAKa,IASxC,SAAS0nK,EAAM1nK,GACb,MAAwB,kBAAVA,GAAgD,kBAAnBA,EAAMwkF,UAAwD,kBAAxBxkF,EAAMsoK,cASzF,SAASr/G,EAAMjpD,GAEb,OAAOA,IAAUA,EAUnB,SAASrJ,EAASgxJ,GAChB,IAAK,IAAIrnJ,EAAI,EAAGqK,EAAMpP,UAAU+B,OAAQgD,EAAIqK,EAAKrK,IAC/C,GAAoB,MAAhB/E,UAAU+E,GACZ,OAAO/E,UAAU+E,GAKvB,SAASwmB,EAAU4a,EAAQ6mI,GACzB,OAAiB,MAAV7mI,EAAiBA,EAAS6mI,EAGnC,SAASC,EAAU9mI,EAAQ6mI,EAAQE,GACjC,OAAiB,MAAV/mI,EAAiBA,EAAmB,MAAV6mI,EAAiBA,EAASE,EAW7D,SAAS9uK,IACP,OAAO+uK,SAASvpK,KAAKwZ,MAAM0uJ,EAAa9rK,WAa1C,SAASmhB,EAAkB5e,GACzB,GAAmB,kBAARA,EACT,MAAO,CAACA,EAAKA,EAAKA,EAAKA,GAGzB,IAAI6M,EAAM7M,EAAIR,OAEd,OAAY,IAARqN,EAEK,CAAC7M,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACnB,IAAR6M,EAEF,CAAC7M,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAG/BA,EAST,SAAS4hC,EAAO27E,EAAW6nB,GACzB,IAAK7nB,EACH,MAAM,IAAIryG,MAAMk6H,GAUpB,SAASxgE,EAAKulB,GACZ,OAAW,MAAPA,EACK,KACsB,oBAAbA,EAAIvlB,KACbulB,EAAIvlB,OAEJulB,EAAInzF,QAAQ,qCAAsC,IAta7DgnF,EAAQo9B,aAAe,WACrB,OAAO77F,SAASU,cAAc,WAyahC,IAAI4qJ,EAAe,mBAKnB,SAAS3yD,EAAe59F,GACtBA,EAAIuwJ,IAAgB,EAGtB,SAASlB,EAAYrvJ,GACnB,OAAOA,EAAIuwJ,GAQb,SAASC,EAAQxwJ,GACf,IAAIywJ,EAAQxzJ,EAAQ+C,GAGpB/lB,KAAKO,KAAO,GACZ,IAAIk2K,EAAUz2K,KAGd,SAAS02K,EAAM/oK,EAAO5F,GACpByuK,EAAQC,EAAQl0K,IAAIoL,EAAO5F,GAAO0uK,EAAQl0K,IAAIwF,EAAK4F,GAHrDoY,aAAewwJ,EAAUxwJ,EAAI5mB,KAAKu3K,GAAS3wJ,GAAO5mB,EAAK4mB,EAAK2wJ,GAsC9D,SAASt3K,EAAc2mB,GACrB,OAAO,IAAIwwJ,EAAQxwJ,GAGrB,SAAS4wJ,EAAYt/J,EAAGC,GAGtB,IAFA,IAAIs/J,EAAW,IAAIv/J,EAAEtJ,YAAYsJ,EAAEpM,OAASqM,EAAErM,QAErCgD,EAAI,EAAGA,EAAIoJ,EAAEpM,OAAQgD,IAC5B2oK,EAAS3oK,GAAKoJ,EAAEpJ,GAGlB,IAAI6G,EAASuC,EAAEpM,OAEf,IAAKgD,EAAI,EAAGA,EAAIqJ,EAAErM,OAAQgD,IACxB2oK,EAAS3oK,EAAI6G,GAAUwC,EAAErJ,GAG3B,OAAO2oK,EAGT,SAASh+H,KAnDT29H,EAAQzoK,UAAY,CAClBC,YAAawoK,EAIbr0K,IAAK,SAAU6F,GACb,OAAO/H,KAAKO,KAAKwc,eAAehV,GAAO/H,KAAKO,KAAKwH,GAAO,MAE1DxF,IAAK,SAAUwF,EAAK4F,GAGlB,OAAO3N,KAAKO,KAAKwH,GAAO4F,GAI1BxO,KAAM,SAAUgf,EAAIyB,GAIlB,IAAK,IAAI7X,UAHG,IAAZ6X,IAAuBzB,EAAKtZ,EAAKsZ,EAAIyB,IAGrB5f,KAAKO,KACnBP,KAAKO,KAAKwc,eAAehV,IAAQoW,EAAGne,KAAKO,KAAKwH,GAAMA,IAMxDokK,UAAW,SAAUpkK,UACZ/H,KAAKO,KAAKwH,KA0BrBpF,EAAQstH,UAAYA,EACpBttH,EAAQ+E,MAAQA,EAChB/E,EAAQke,MAAQA,EAChBle,EAAQ8yK,SAAWA,EACnB9yK,EAAQnD,OAASA,EACjBmD,EAAQ8O,SAAWA,EACnB9O,EAAQkkH,aAAeA,EACvBlkH,EAAQk3D,WAAaA,EACrBl3D,EAAQkwB,QAAUA,EAClBlwB,EAAQyxB,SAAWA,EACnBzxB,EAAQ0M,MAAQA,EAChB1M,EAAQkV,YAAcA,EACtBlV,EAAQxD,KAAOA,EACfwD,EAAQsE,IAAMA,EACdtE,EAAQ0xD,OAASA,EACjB1xD,EAAQ0uD,OAASA,EACjB1uD,EAAQqzK,KAAOA,EACfrzK,EAAQkC,KAAOA,EACflC,EAAQ6G,MAAQA,EAChB7G,EAAQqgB,QAAUA,EAClBrgB,EAAQg0C,WAAaA,EACrBh0C,EAAQkd,SAAWA,EACnBld,EAAQsjB,SAAWA,EACnBtjB,EAAQ6yK,gBAAkBA,EAC1B7yK,EAAQwqC,aAAeA,EACvBxqC,EAAQ0yK,MAAQA,EAChB1yK,EAAQi0D,MAAQA,EAChBj0D,EAAQ2B,SAAWA,EACnB3B,EAAQ8xB,UAAYA,EACpB9xB,EAAQwzK,UAAYA,EACpBxzK,EAAQ2E,MAAQA,EAChB3E,EAAQ0nB,kBAAoBA,EAC5B1nB,EAAQ0qC,OAASA,EACjB1qC,EAAQ0tE,KAAOA,EACf1tE,EAAQghH,eAAiBA,EACzBhhH,EAAQyyK,YAAcA,EACtBzyK,EAAQvD,cAAgBA,EACxBuD,EAAQg0K,YAAcA,EACtBh0K,EAAQi2C,KAAOA,G,qBCvrBf,SAASi+H,EAAU33J,EAAMjC,EAAUioD,GACjC,IAEI1lD,EAFA0C,EAAQ,CAAChD,GACT8W,EAAO,GAGX,MAAOxW,EAAO0C,EAAM8iD,MAIlB,GAFAhvC,EAAKn1B,KAAK2e,GAENA,EAAK0+C,SAAU,CACjB,IAAIr/C,EAAWW,EAAKX,SAEpB,GAAIA,EAAS5T,OACX,IAAK,IAAIgD,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IACnCiU,EAAMrhB,KAAKge,EAAS5Q,IAM5B,MAAOuR,EAAOwW,EAAKgvC,MAEjB/nD,EAASuC,EAAM0lD,GAUnB,SAAS4xG,EAAW53J,EAAMjC,GACxB,IACIuC,EADA0C,EAAQ,CAAChD,GAGb,MAAOM,EAAO0C,EAAM8iD,MAIlB,GAFA/nD,EAASuC,GAELA,EAAK0+C,SAAU,CACjB,IAAIr/C,EAAWW,EAAKX,SAEpB,GAAIA,EAAS5T,OACX,IAAK,IAAIgD,EAAI4Q,EAAS5T,OAAS,EAAGgD,GAAK,EAAGA,IACxCiU,EAAMrhB,KAAKge,EAAS5Q,KAO9BtL,EAAQk0K,UAAYA,EACpBl0K,EAAQm0K,WAAaA,G,uBC7ErB,IAAIl0K,EAAS,EAAQ,QAoBjBzD,EAAOyD,EAAOzD,KACdm9I,EAAO,mBAMX,SAASz7I,EAAKf,EAASi3K,GACrB,IAAIv6B,EAAQC,EAAU38I,GAGtBX,EAAK43K,GAAa,SAAU7sD,EAAW1uC,GAGrC,IAFA,IAAIvtE,EAAIuuI,EAAMvxI,OAAS,EAEhBgD,GAAK,EAAGA,IAAK,CAClB,IAAI+oK,EAAWx6B,EAAMvuI,GAErB,GAAI+oK,EAASx7F,GACX,MAIJ,GAAIvtE,EAAI,EAAG,CAET,IAAI8mE,EAAgBj1E,EAAQgxD,gBAAgB,CAC1C7zB,SAAU,WACVoB,QAAS,SACTl2B,GAAIqzE,IACH,GAEH,GAAIzG,EAAe,CACjB,IAAIqa,EAAera,EAAc+D,kBACjC0jE,EAAM,GAAGhhE,GAAc,CACrBA,WAAYA,EACZjnE,MAAO66E,EAAa,GACpB/U,IAAK+U,EAAa,SAK1BotD,EAAM37I,KAAKk2K,GAQb,SAAS/xG,EAAIllE,GACX,IAAI08I,EAAQC,EAAU38I,GAClBsrK,EAAO5uB,EAAMA,EAAMvxI,OAAS,GAChCuxI,EAAMvxI,OAAS,GAAKuxI,EAAMx3E,MAE1B,IAAIgyG,EAAW,GAWf,OAVA73K,EAAKisK,GAAM,SAAUlhD,EAAW1uC,GAC9B,IAAK,IAAIvtE,EAAIuuI,EAAMvxI,OAAS,EAAGgD,GAAK,EAAGA,IAAK,CACtCi8G,EAAYsyB,EAAMvuI,GAAGutE,GAEzB,GAAI0uC,EAAW,CACb8sD,EAASx7F,GAAc0uC,EACvB,WAIC8sD,EAOT,SAASl+I,EAAMh5B,GACbA,EAAQw8I,GAAQ,KAQlB,SAASn6H,EAAMriB,GACb,OAAO28I,EAAU38I,GAASmL,OAU5B,SAASwxI,EAAU38I,GACjB,IAAI08I,EAAQ18I,EAAQw8I,GAMpB,OAJKE,IACHA,EAAQ18I,EAAQw8I,GAAQ,CAAC,KAGpBE,EAGT75I,EAAQ9B,KAAOA,EACf8B,EAAQqiE,IAAMA,EACdriE,EAAQm2B,MAAQA,EAChBn2B,EAAQwf,MAAQA,G,qBC5HhB,IAAIvf,EAAS,EAAQ,QA0BjBrD,EAAW,CAMbi1D,kBAAmB,SAAUg7D,GAC3BxvH,KAAKi3K,YAAcr0K,EAAOogB,QAAQwsG,GAAcA,EAAWloH,QAAU,GACrEtH,KAAKk3K,iBAAmBt0K,EAAOyxD,OAAOm7D,GAAc,IAAI,SAAU2nD,EAAW/kK,GAE3E,OADA+kK,EAAU50K,IAAI6P,EAAOzF,KAAMyF,GACpB+kK,IACNv0K,EAAOxD,kBAWZg4K,OAAQ,SAAUzqK,EAAMxE,GACtB,IAAIiK,EAAe,MAANjK,EAAanI,KAAKi3K,YAAY9uK,GAAMnI,KAAKk3K,iBAAiBh1K,IAAIyK,GACvE9E,EAAe7H,KAAKkC,IAAI,gBAEP,WAAjB2F,GACF7H,KAAKk3K,iBAAiB/3K,MAAK,SAAUiT,GACnCA,EAAO3K,UAAW,KAItB2K,IAAWA,EAAO3K,UAAW,IAU/B4vK,SAAU,SAAU1qK,EAAMxE,GACxB,IAAIiK,EAAe,MAANjK,EAAanI,KAAKi3K,YAAY9uK,GAAMnI,KAAKk3K,iBAAiBh1K,IAAIyK,GAG3EyF,IAAWA,EAAO3K,UAAW,IAU/B6vK,eAAgB,SAAU3qK,EAAMxE,GAC9B,IAAIiK,EAAe,MAANjK,EAAanI,KAAKi3K,YAAY9uK,GAAMnI,KAAKk3K,iBAAiBh1K,IAAIyK,GAE3E,GAAc,MAAVyF,EAEF,OADApS,KAAKoS,EAAO3K,SAAW,WAAa,UAAUkF,EAAMxE,GAC7CiK,EAAO3K,UAWlB81B,WAAY,SAAU5wB,EAAMxE,GAC1B,IAAIiK,EAAe,MAANjK,EAAanI,KAAKi3K,YAAY9uK,GAAMnI,KAAKk3K,iBAAiBh1K,IAAIyK,GAC3E,OAAOyF,GAAUA,EAAO3K,WAG5B/E,EAAOC,QAAUpD,G,uBCvGjB,IAAIqD,EAAS,EAAQ,QAoBjB7B,EAAgB,CAClBK,MAAM,EACNJ,OAAQ,EACRC,EAAG,EAEHmG,SAAS,EAETuF,KAAM,GAENk5C,aAAc,MAEd0xH,WAAY,KACZC,aAAc,CACZrkH,SAAU,KACVskH,SAAU,MACVC,YAAa,KAGfryH,cAAe,GAEfG,QAAS,GAET5zC,QAAQ,EAER6zC,cAAc,EACdkE,QAAS,CACPvoD,MAAM,GAERmjF,YAAa,GACbr/B,SAAU,CACR9jD,MAAM,EACN+O,QAAQ,EACRixI,gBAAiB,KACjB7/I,UAAW,CACTqW,MAAO,OACPpW,MAAO,EACP/B,KAAM,SAGRozC,OAAQ,CAAC,OAAQ,QACjBkH,WAAY,CAAC,GAAI,KAEnBoL,SAAU,CACR/jD,MAAM,EAEN4tD,QAAQ,EAER/jD,OAAQ,EACR1J,UAAW,CACTC,MAAO,IAGX4jD,UAAW,CACThkD,MAAM,EAEN4tD,QAAQ,EACR5pB,OAAQ,EAERuyI,aAAc,KAEdC,aAAc,KACd31F,OAAQ,EAERv4D,SAAU,IAEZu8B,UAAW,CACT7kD,MAAM,EACNG,UAAW,CACTqW,MAAO,CAAC,QACRpW,MAAO,EACP/B,KAAM,UAGVymD,UAAW,CACT9kD,MAAM,EACNkwG,UAAW,CACT15F,MAAO,CAAC,wBAAyB,4BAInC+sC,EAAc,GAClBA,EAAYkzH,aAAej1K,EAAOie,MAAM,CAEtCokC,aAAa,EAQb6yH,cAAe,KAIf7xH,UAAW,CACT7kD,MAAM,GAER+jD,SAAU,CAER4yH,gBAAgB,EAChB7wJ,SAAU,QAEZk+B,UAAW,CACTl+B,SAAU,SAEXnmB,GACH4jD,EAAYE,UAAYjiD,EAAOie,MAAM,CAGnCokC,YAAa,CAAC,EAAG,GAsBjB1gC,YAAa,EAObyzJ,UAAW,CAET52K,MAAM,EAENmjB,YAAa,EAEbtZ,OAAQ,EAGR1J,UAAW,IAGb02K,eAAgB,CACd72K,MAAM,EACNG,UAAW,CACTqW,MAAO,OACPpW,MAAO,KAGVT,GACH4jD,EAAYuzH,SAAWt1K,EAAO6O,SAAS,CACrChD,OAAO,EACPiC,IAAK,UACLD,IAAK,WACJk0C,EAAYE,WACfF,EAAYwzH,QAAUv1K,EAAO6O,SAAS,CACpChD,OAAO,EACP2pK,QAAS,IACRzzH,EAAYE,WACf,IAAItlD,EAAWolD,EACfjiD,EAAOC,QAAUpD,G,uBC7LjB,IAAIL,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cAoB1B,SAASG,EAASO,GAChBA,EAAQumC,iBAAiB,cAAc,SAAUvkC,GAC/C,IAAIvB,EAAOuB,EAAYtB,UACnB60J,EAAUvzJ,EAAYsH,aACtBgzI,EAAYt6I,EAAYI,IAAI,SAC5Bm2K,EAASj5K,IACbmB,EAAKpB,MAAK,SAAU+Q,GAClBmoK,EAAO91K,IAAIhC,EAAKO,YAAYoP,GAAMA,MAEpCmlJ,EAAQl2J,MAAK,SAAU6iB,GACrB,IAAIrV,EAAO0oJ,EAAQp4G,QAAQj7B,GACvBpK,EAAQwkI,GAAWt6I,EAAY8K,QAAQ1K,IAAIyK,GAAQ,GAAKyvI,EAAUnxI,QACtEoqJ,EAAQ7zI,cAAcQ,EAAU,QAASpK,GACzC,IAAI1H,EAAMmoK,EAAOn2K,IAAI8f,GAEV,MAAP9R,GACF3P,EAAKihB,cAActR,EAAK,QAAS0H,SAMzClV,EAAOC,QAAUpD,G,qBC5CjB,IAAIikB,EAAU,EAAQ,QAIlBnkB,GAFUmkB,EAAQC,QAEJ,EAAQ,SAEtBlF,EAAO,EAAQ,QAEfrf,EAAQ,EAAQ,QAEhBy3K,EAAcz3K,EAAMy3K,YACpBlB,EAAWv2K,EAAMu2K,SACjBxuK,EAAM/H,EAAM+H,IAEZ02D,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAwBrB06G,GAtBmB,EAAQ,QAsBQ,qBAAhBtnB,YAA8Bj5I,MAAQi5I,aACzDunB,EAAqC,qBAAjB1nB,aAA+B94I,MAAQ84I,aAE/D,SAAS2nB,EAAU/0F,GACjB,IAAIljF,EAAOkjF,EAAUljF,KAEjBA,GAAQA,EAAK,IAAMA,EAAK,GAAG,IAAMA,EAAK,GAAG,GAAG8L,QAC9Co3E,EAAUljF,KAAO0G,EAAI1G,GAAM,SAAUigG,GACnC,IAAIi4E,EAAS,CAACj4E,EAAQ,GAAGn0F,MAAOm0F,EAAQ,GAAGn0F,OACvC+F,EAAS,CACXqmK,OAAQA,GAWV,OARIj4E,EAAQ,GAAG7zF,OACbyF,EAAOsmK,SAAWl4E,EAAQ,GAAG7zF,MAG3B6zF,EAAQ,GAAG7zF,OACbyF,EAAOumK,OAASn4E,EAAQ,GAAG7zF,MAGtB8oK,EAAS,CAACrjK,EAAQouF,EAAQ,GAAIA,EAAQ,SAKnD,IAAIo4E,EAAcv5K,EAAYG,OAAO,CACnCC,KAAM,eACNC,aAAc,CAAC,OAAQ,SACvBC,sBAAuB,kBACvBqJ,KAAM,SAAUnJ,GAEdA,EAAOU,KAAOV,EAAOU,MAAQ,GAE7Bi4K,EAAU34K,GAEV,IAAI8mB,EAAS3mB,KAAK64K,wBAAwBh5K,EAAOU,MAEjDP,KAAK84K,YAAcnyJ,EAAOoyJ,WAC1B/4K,KAAKg5K,kBAAoBryJ,EAAOsyJ,iBAE5BtyJ,EAAOoyJ,aACTl5K,EAAOU,KAAO,IAAIo0B,aAAahO,EAAOxE,QAGxCy2J,EAAY3vK,WAAWjJ,KAAM,OAAQkJ,YAEvC45D,YAAa,SAAUjjE,GAKrB,GAHAA,EAAOU,KAAOV,EAAOU,MAAQ,GAC7Bi4K,EAAU34K,GAENA,EAAOU,KAAM,CAEf,IAAIomB,EAAS3mB,KAAK64K,wBAAwBh5K,EAAOU,MAEjDP,KAAK84K,YAAcnyJ,EAAOoyJ,WAC1B/4K,KAAKg5K,kBAAoBryJ,EAAOsyJ,iBAE5BtyJ,EAAOoyJ,aACTl5K,EAAOU,KAAO,IAAIo0B,aAAahO,EAAOxE,QAI1Cy2J,EAAY3vK,WAAWjJ,KAAM,cAAekJ,YAE9C6gF,WAAY,SAAUlgF,GACpB,IAAI8c,EAAS3mB,KAAK64K,wBAAwBhvK,EAAOtJ,MAE7ComB,EAAOoyJ,aACJ/4K,KAAK84K,aAIR94K,KAAK84K,YAAcnC,EAAY32K,KAAK84K,YAAanyJ,EAAOoyJ,YACxD/4K,KAAKg5K,kBAAoBrC,EAAY32K,KAAKg5K,kBAAmBryJ,EAAOsyJ,oBAJpEj5K,KAAK84K,YAAcnyJ,EAAOoyJ,WAC1B/4K,KAAKg5K,kBAAoBryJ,EAAOsyJ,kBAMlCpvK,EAAOtJ,KAAO,IAAIo0B,aAAahO,EAAOxE,QAGxCniB,KAAKoJ,aAAa2gF,WAAWlgF,EAAOtJ,OAEtC24K,wBAAyB,SAAUhpK,GACjC,IAAIiR,EAAYnhB,KAAKQ,UAAU4gB,aAAalR,GACxCuoK,EAASt3J,EAAUthB,kBAAkBkY,MAAQoJ,EAAUthB,OAASshB,EAAUq7B,WAAW,UACzF,OAAOi8H,GAETtb,mBAAoB,SAAUjtJ,GAC5B,OAAIlQ,KAAKg5K,kBACAh5K,KAAKg5K,kBAAwB,EAAN9oK,EAAU,GAEjClQ,KAAKk5K,wBAAwBhpK,GAAKjF,QAG7CmyJ,cAAe,SAAUltJ,EAAKhB,GAC5B,GAAIlP,KAAKg5K,kBAAmB,CAI1B,IAHA,IAAIlkK,EAAS9U,KAAKg5K,kBAAwB,EAAN9oK,GAChCoI,EAAMtY,KAAKg5K,kBAAwB,EAAN9oK,EAAU,GAElCjC,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBiB,EAAIjB,GAAKiB,EAAIjB,IAAM,GACnBiB,EAAIjB,GAAG,GAAKjO,KAAK84K,YAAYhkK,EAAa,EAAJ7G,GACtCiB,EAAIjB,GAAG,GAAKjO,KAAK84K,YAAYhkK,EAAa,EAAJ7G,EAAQ,GAGhD,OAAOqK,EAEP,IAAImgK,EAASz4K,KAAKk5K,wBAAwBhpK,GAE1C,IAASjC,EAAI,EAAGA,EAAIwqK,EAAOxtK,OAAQgD,IACjCiB,EAAIjB,GAAKiB,EAAIjB,IAAM,GACnBiB,EAAIjB,GAAG,GAAKwqK,EAAOxqK,GAAG,GACtBiB,EAAIjB,GAAG,GAAKwqK,EAAOxqK,GAAG,GAGxB,OAAOwqK,EAAOxtK,QAGlB4tK,wBAAyB,SAAUt4K,GACjC,IAAI44K,EAAc,EAQlB,GANIn5K,KAAK84K,cACPK,EAAcn5K,KAAK84K,YAAY7tK,QAKV,kBAAZ1K,EAAK,GAAiB,CAS/B,IARA,IAAI+X,EAAM/X,EAAK0K,OAEXmuK,EAA4B,IAAId,EAAUhgK,GAC1C+gK,EAAgB,IAAId,EAAWjgK,GAC/BghK,EAAe,EACfC,EAAe,EACf7gB,EAAY,EAEPzqJ,EAAI,EAAGA,EAAIqK,GAAM,CACxBogJ,IACA,IAAIv2I,EAAQ5hB,EAAK0N,KAEjBmrK,EAA0BG,KAAkBD,EAAeH,EAE3DC,EAA0BG,KAAkBp3J,EAE5C,IAAK,IAAIlM,EAAI,EAAGA,EAAIkM,EAAOlM,IAAK,CAC9B,IAAIxQ,EAAIlF,EAAK0N,KACTvI,EAAInF,EAAK0N,KACborK,EAAcC,KAAkB7zK,EAChC4zK,EAAcC,KAAkB5zK,GAMpC,MAAO,CACLuzK,iBAAkB,IAAIjoB,YAAYooB,EAA0B7iB,OAAQ,EAAGgjB,GACvER,WAAYM,EACZl3J,MAAOu2I,GAIX,MAAO,CACLugB,iBAAkB,KAClBF,WAAY,KACZ52J,MAAO5hB,EAAK0K,SAGhBrL,eAAgB,SAAUC,EAAQC,GAChC,IAAIwyC,EAAW,IAAI/zB,EAAK,CAAC,SAAUve,MAenC,OAdAsyC,EAASiK,eAAgB,EACzBjK,EAASlvB,SAASvjB,EAAOU,KAAM,IAAI,SAAUgL,EAAU/I,EAAS5B,EAAW+wC,GAEzE,GAAIpmC,aAAoBwM,MACtB,OAAOsf,IAEPib,EAASiK,eAAgB,EACzB,IAAI5uC,EAAQpC,EAASoC,MAErB,OAAa,MAATA,EACKA,aAAiBoK,MAAQpK,EAAMgkC,GAAYhkC,OADpD,KAKG2kC,GAETmsB,cAAe,SAAU79D,GACvB,IAAIL,EAAOP,KAAKQ,UACZ2gB,EAAY5gB,EAAK6gB,aAAaxgB,GAC9B+L,EAAOwU,EAAUjf,IAAI,QAEzB,GAAIyK,EACF,OAAOA,EAGT,IAAI+rK,EAAWv3J,EAAUjf,IAAI,YACzBy2K,EAASx3J,EAAUjf,IAAI,UACvBk+E,EAAO,GAGX,OAFY,MAAZs4F,GAAoBt4F,EAAKv/E,KAAK63K,GACpB,MAAVC,GAAkBv4F,EAAKv/E,KAAK83K,GACrB/6G,EAAWwiB,EAAKvmE,KAAK,SAE9Bk9F,mBAAoB,WAClB,QAAS/2G,KAAKkC,IAAI,gBAEpBukD,eAAgB,WACd,IAAI9kD,EAAc3B,KAAKH,OAAO8B,YAE9B,OAAmB,MAAfA,EACK3B,KAAKH,OAAOg2B,MAAQ,IAAM71B,KAAKkC,IAAI,eAGrCP,GAET+kD,wBAAyB,WACvB,IAAIC,EAAuB3mD,KAAKH,OAAO8mD,qBAEvC,OAA4B,MAAxBA,EACK3mD,KAAKH,OAAOg2B,MAAQ,IAAM71B,KAAKkC,IAAI,wBAGrCykD,GAET5lD,cAAe,CACbT,iBAAkB,MAClBU,OAAQ,EACRC,EAAG,EACHqJ,iBAAiB,EACjB+xC,gBAAgB,EAEhBk7D,WAAY,EACZC,WAAY,EACZ3kE,OAAQ,CAAC,OAAQ,QACjBkH,WAAY,CAAC,GAAI,IAEjB/X,SAAU,EACVw3I,OAAQ,CACNp4K,MAAM,EACN8xC,OAAQ,EAKRC,cAAe,EACfN,OAAQ,SACRkH,WAAY,EACZ99B,MAAM,EAENw9J,YAAa,IAIf5jJ,OAAO,EAEP+wB,eAAgB,IAGhBtI,UAAU,EAGVviC,MAAM,EACN5a,MAAO,CACLC,MAAM,EACN4J,SAAU,OAIZzJ,UAAW,CACTE,QAAS,OAIXlC,EAAWq5K,EACfl2K,EAAOC,QAAUpD,G,uBCzTjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElBimB,EAAa,EAAQ,QAErB9lB,EAAS,EAAQ,QAEjB0gB,EAAgB,EAAQ,QAoBxBpkB,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,YAMNi6K,mBAAoB,CAClBnvK,KAAM,EACNE,MAAO,EACPD,IAAK,EACLE,OAAQ,GAEV1B,KAAM,SAAUlJ,EAASyG,GAKvBvG,KAAKF,QAAUA,EAMfE,KAAKuG,IAAMA,EAMXvG,KAAKwD,gBAMP8N,OAAQ,SAAU9N,EAAgB1D,EAASyG,EAAK23B,GAC9Cl+B,KAAKwD,eAAiBA,GAEa,IAA/BA,EAAetB,IAAI,QAKvBlC,KAAKoD,SAASkjB,MAAMtmB,KAAMkJ,WAJxBlJ,KAAKsD,MAAMC,aAUf0C,iBAAkB,SAAU3C,GAC1B,IAAIE,EAAiBxD,KAAKwD,eACtBwmB,EAAUjB,EAAWsB,kBAAkB7mB,EAAetB,IAAI,YAAc,GACxE8J,EAAO1I,EAAM2I,kBACjB3I,EAAMgC,IAAI,IAAIxC,EAAQyO,KAAK,CACzBH,IAAK,EAELQ,QAAQ,EACRJ,MAAO,CACL/L,EAAGuG,EAAKvG,EAAIukB,EAAQ,GACpBtkB,EAAGsG,EAAKtG,EAAIskB,EAAQ,GACpBxoB,MAAOwK,EAAKxK,MAAQwoB,EAAQ,GAAKA,EAAQ,GACzC9d,OAAQF,EAAKE,OAAS8d,EAAQ,GAAKA,EAAQ,IAE7CxkB,MAAO,CACLkM,KAAMlO,EAAetB,IAAI,mBACzB28C,OAAQr7C,EAAetB,IAAI,eAC3Bw2E,UAAWl1E,EAAetB,IAAI,oBAcpCsF,oBAAqB,SAAUmyK,EAAaC,EAAet2I,GACzDA,EAAOA,GAAQ,GACf,IAAIg6E,EAAah6E,EAAKg6E,WAClB95G,EAAiBxD,KAAKwD,eACtBq2K,EAAY,GAMhB,GAJsB,WAAlBD,IACFC,EAAUhnI,OAASrvC,EAAetB,IAAI,eAGlB,UAAlB03K,EAA2B,CAC7B,IAAIlsG,EAAelqE,EAAetB,IAAI,gBACtC23K,EAAUjiK,MAAQ81D,EAGpB,SAASnzD,EAAOxS,GACd,OAAO8xK,EAAU9xK,GAGnB,SAAS0S,EAAO1S,EAAK4F,GACnBksK,EAAU9xK,GAAO4F,EAGnB,IAAImgF,EAAWtqF,EAAes2K,kBAAkBx8D,GAAc95G,EAAe6B,cAAcs0K,IACvFh0J,EAAchC,EAAckrE,mBAAmBf,GAanD,OAZAlrF,EAAOzD,KAAKwmB,GAAa,SAAUlmB,GACjC,IAAIs6K,EAAgBjsF,EAASruF,GAEzB6jC,EAAKi6E,uBAAkC,YAAT99G,IAChCA,EAAO,aACPs6K,EAAgBjsF,EAASK,mBAGvBxqE,EAAc4pI,UAAU9tJ,EAAMm6K,IAChCG,GAAiBA,EAAcrhI,YAAYihI,EAAap/J,EAAQE,MAG7Do/J,EAAUD,IAMnB1zK,cAAe,SAAU5C,GACvB,IAAIwsB,EAAQ9vB,KAAKwD,eACb+C,EAAMvG,KAAKuG,IACftD,EAAO+2K,gBAAgB12K,EAAOwsB,EAAMg2C,qBAAsB,CACxDtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,eAQhB7oB,SAAUR,EAAOg2C,OAGnBl2C,EAAOC,QAAUpD,G,qBC1KjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBw7G,EAAS,EAAQ,QAEjBE,EAAmBF,EAAOE,iBAqB9B,SAAS86C,EAAgB9xK,GACvB,MAAO,OAASA,EASlB,IAAIwzE,EAAQ,SAAUE,GAMpB77E,KAAKk6K,UAAYr+F,IAAY,EAM7B77E,KAAKkiB,MAAQ,GAMbliB,KAAK47E,MAAQ,GAMb57E,KAAKm6K,UAAY,GAMjBn6K,KAAKo6K,UAAY,GAMjBp6K,KAAKO,KAMLP,KAAKs8E,UAGH+9F,EAAa1+F,EAAM7tE,UAqSvB,SAASwsK,EAAKnyK,EAAIvH,GAIhBZ,KAAKmI,GAAW,MAANA,EAAa,GAAKA,EAK5BnI,KAAKslJ,QAAU,GAKftlJ,KAAKqlJ,SAAW,GAKhBrlJ,KAAK47E,MAAQ,GAKb57E,KAAKu6K,UAKLv6K,KAAKY,UAAyB,MAAbA,GAAqB,EAAIA,EAiD5C,SAAS45K,EAAKz7B,EAAIC,EAAIp+I,GAKpBZ,KAAK+vD,MAAQgvF,EAMb/+I,KAAKgwD,MAAQgvF,EACbh/I,KAAKY,UAAyB,MAAbA,GAAqB,EAAIA,EA1X5Cy5K,EAAW56K,KAAO,QAMlB46K,EAAWI,WAAa,WACtB,OAAOz6K,KAAKk6K,WASdG,EAAWv+F,QAAU,SAAU3zE,EAAIvH,GACjCuH,EAAW,MAANA,EAAa,GAAKvH,EAAY,GAAKuH,EACxC,IAAIuyK,EAAW16K,KAAKm6K,UAEpB,IAAIO,EAAST,EAAgB9xK,IAA7B,CAIA,IAAIqX,EAAO,IAAI86J,EAAKnyK,EAAIvH,GAIxB,OAHA4e,EAAK+6J,UAAYv6K,KACjBA,KAAKkiB,MAAMrhB,KAAK2e,GAChBk7J,EAAST,EAAgB9xK,IAAOqX,EACzBA,IAST66J,EAAW/6B,eAAiB,SAAU1+I,GACpC,IAAI81J,EAAS12J,KAAKO,KAAKO,YAAYF,GACnC,OAAOZ,KAAKkiB,MAAMw0I,IASpB2jB,EAAWn6J,YAAc,SAAU/X,GACjC,OAAOnI,KAAKm6K,UAAUF,EAAgB9xK,KAWxCkyK,EAAWl+F,QAAU,SAAU4iE,EAAIC,EAAIp+I,GACrC,IAAI85K,EAAW16K,KAAKm6K,UAChBQ,EAAW36K,KAAKo6K,UAkBpB,GAhBkB,kBAAPr7B,IACTA,EAAK/+I,KAAKkiB,MAAM68H,IAGA,kBAAPC,IACTA,EAAKh/I,KAAKkiB,MAAM88H,IAGbs7B,EAAKx3H,WAAWi8F,KACnBA,EAAK27B,EAAST,EAAgBl7B,KAG3Bu7B,EAAKx3H,WAAWk8F,KACnBA,EAAK07B,EAAST,EAAgBj7B,KAG3BD,GAAOC,EAAZ,CAIA,IAAIj3I,EAAMg3I,EAAG52I,GAAK,IAAM62I,EAAG72I,GAE3B,IAAIwyK,EAAS5yK,GAAb,CAIA,IAAIwf,EAAO,IAAIizJ,EAAKz7B,EAAIC,EAAIp+I,GAgB5B,OAfA2mB,EAAKgzJ,UAAYv6K,KAEbA,KAAKk6K,YACPn7B,EAAGsG,SAASxkJ,KAAK0mB,GACjBy3H,EAAGsG,QAAQzkJ,KAAK0mB,IAGlBw3H,EAAGnjE,MAAM/6E,KAAK0mB,GAEVw3H,IAAOC,GACTA,EAAGpjE,MAAM/6E,KAAK0mB,GAGhBvnB,KAAK47E,MAAM/6E,KAAK0mB,GAChBozJ,EAAS5yK,GAAOwf,EACTA,KAST8yJ,EAAWx7B,eAAiB,SAAUj+I,GACpC,IAAI81J,EAAS12J,KAAKs8E,SAASx7E,YAAYF,GACvC,OAAOZ,KAAK47E,MAAM86E,IAUpB2jB,EAAWO,QAAU,SAAU77B,EAAIC,GAC7Bs7B,EAAKx3H,WAAWi8F,KAClBA,EAAKA,EAAG52I,IAGNmyK,EAAKx3H,WAAWk8F,KAClBA,EAAKA,EAAG72I,IAGV,IAAIwyK,EAAW36K,KAAKo6K,UAEpB,OAAIp6K,KAAKk6K,UACAS,EAAS57B,EAAK,IAAMC,GAEpB27B,EAAS57B,EAAK,IAAMC,IAAO27B,EAAS37B,EAAK,IAAMD,IAU1Ds7B,EAAW36J,SAAW,SAAUvB,EAAIyB,GAIlC,IAHA,IAAIsC,EAAQliB,KAAKkiB,MACb5J,EAAM4J,EAAMjX,OAEPgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACnBiU,EAAMjU,GAAGrN,WAAa,GACxBud,EAAGrR,KAAK8S,EAASsC,EAAMjU,GAAIA,IAWjCosK,EAAWxqH,SAAW,SAAU1xC,EAAIyB,GAIlC,IAHA,IAAIg8D,EAAQ57E,KAAK47E,MACbtjE,EAAMsjE,EAAM3wE,OAEPgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACnB2tE,EAAM3tE,GAAGrN,WAAa,GAAKg7E,EAAM3tE,GAAG8hD,MAAMnvD,WAAa,GAAKg7E,EAAM3tE,GAAG+hD,MAAMpvD,WAAa,GAC1Fud,EAAGrR,KAAK8S,EAASg8D,EAAM3tE,GAAIA,IAajCosK,EAAWQ,qBAAuB,SAAU18J,EAAI28J,EAAW9pG,EAAWpxD,GAKpE,GAJK06J,EAAKx3H,WAAWg4H,KACnBA,EAAY96K,KAAKm6K,UAAUF,EAAgBa,KAGxCA,EAAL,CAMA,IAFA,IAAIpgC,EAAyB,QAAd1pE,EAAsB,WAA2B,OAAdA,EAAqB,UAAY,QAE1E/iE,EAAI,EAAGA,EAAIjO,KAAKkiB,MAAMjX,OAAQgD,IACrCjO,KAAKkiB,MAAMjU,GAAG8sK,WAAY,EAG5B,IAAI58J,EAAGrR,KAAK8S,EAASk7J,EAAW,MAAhC,CAIA,IAAIE,EAAQ,CAACF,GAEb,MAAOE,EAAM/vK,OACX,KAAIgwK,EAAcD,EAAMl2G,QACpB8W,EAAQq/F,EAAYvgC,GAExB,IAASzsI,EAAI,EAAGA,EAAI2tE,EAAM3wE,OAAQgD,IAAK,CACrC,IAAI0e,EAAIivD,EAAM3tE,GACVitK,EAAYvuJ,EAAEojC,QAAUkrH,EAActuJ,EAAEqjC,MAAQrjC,EAAEojC,MAEtD,IAAKmrH,EAAUH,UAAW,CACxB,GAAI58J,EAAGrR,KAAK8S,EAASs7J,EAAWD,GAE9B,OAGFD,EAAMn6K,KAAKq6K,GACXA,EAAUH,WAAY,QAY9BV,EAAW9xK,OAAS,WAMlB,IALA,IAAIhI,EAAOP,KAAKO,KACZ+7E,EAAWt8E,KAAKs8E,SAChBp6D,EAAQliB,KAAKkiB,MACb05D,EAAQ57E,KAAK47E,MAER3tE,EAAI,EAAGqK,EAAM4J,EAAMjX,OAAQgD,EAAIqK,EAAKrK,IAC3CiU,EAAMjU,GAAGrN,WAAa,EAGxB,IAASqN,EAAI,EAAGqK,EAAM/X,EAAK4hB,QAASlU,EAAIqK,EAAKrK,IAC3CiU,EAAM3hB,EAAKO,YAAYmN,IAAIrN,UAAYqN,EAGzCquE,EAASy7E,YAAW,SAAU7nJ,GAC5B,IAAIqX,EAAOq0D,EAAMU,EAASx7E,YAAYoP,IACtC,OAAOqX,EAAKwoC,MAAMnvD,WAAa,GAAK2mB,EAAKyoC,MAAMpvD,WAAa,KAG9D,IAASqN,EAAI,EAAGqK,EAAMsjE,EAAM3wE,OAAQgD,EAAIqK,EAAKrK,IAC3C2tE,EAAM3tE,GAAGrN,WAAa,EAGxB,IAASqN,EAAI,EAAGqK,EAAMgkE,EAASn6D,QAASlU,EAAIqK,EAAKrK,IAC/C2tE,EAAMU,EAASx7E,YAAYmN,IAAIrN,UAAYqN,GAQ/CosK,EAAW3yK,MAAQ,WAKjB,IAJA,IAAI4+B,EAAQ,IAAIq1C,EAAM37E,KAAKk6K,WACvBh4J,EAAQliB,KAAKkiB,MACb05D,EAAQ57E,KAAK47E,MAER3tE,EAAI,EAAGA,EAAIiU,EAAMjX,OAAQgD,IAChCq4B,EAAMw1C,QAAQ55D,EAAMjU,GAAG9F,GAAI+Z,EAAMjU,GAAGrN,WAGtC,IAASqN,EAAI,EAAGA,EAAI2tE,EAAM3wE,OAAQgD,IAAK,CACrC,IAAI0e,EAAIivD,EAAM3tE,GACdq4B,EAAM61C,QAAQxvD,EAAEojC,MAAM5nD,GAAIwkB,EAAEqjC,MAAM7nD,GAAIwkB,EAAE/rB,WAG1C,OAAO0lC,GAuCTg0I,EAAKxsK,UAAY,CACfC,YAAausK,EAKbvpD,OAAQ,WACN,OAAO/wH,KAAK47E,MAAM3wE,QAMpBkwK,SAAU,WACR,OAAOn7K,KAAKslJ,QAAQr6I,QAMtBmwK,UAAW,WACT,OAAOp7K,KAAKqlJ,SAASp6I,QAOvBgW,SAAU,SAAUC,GAClB,KAAIlhB,KAAKY,UAAY,GAArB,CAIA,IAAI0lC,EAAQtmC,KAAKu6K,UACbp5J,EAAYmlB,EAAM/lC,KAAK6gB,aAAaphB,KAAKY,WAC7C,OAAOugB,EAAUF,SAASC,MA+B9Bs5J,EAAK1sK,UAAUmT,SAAW,SAAUC,GAClC,KAAIlhB,KAAKY,UAAY,GAArB,CAIA,IAAI0lC,EAAQtmC,KAAKu6K,UACbp5J,EAAYmlB,EAAMg2C,SAASl7D,aAAaphB,KAAKY,WACjD,OAAOugB,EAAUF,SAASC,KAG5B,IAAIm6J,EAA4B,SAAUC,EAAU5wB,GAClD,MAAO,CAKLjqI,SAAU,SAAUC,GAClB,IAAIngB,EAAOP,KAAKs7K,GAAU5wB,GAC1B,OAAOnqJ,EAAK2B,IAAI3B,EAAKogB,aAAaD,GAAa,SAAU1gB,KAAKY,YAOhE2gB,UAAW,SAAUxZ,EAAK4F,GACxB3N,KAAKY,WAAa,GAAKZ,KAAKs7K,GAAU5wB,GAAUlpI,cAAcxhB,KAAKY,UAAWmH,EAAK4F,IAOrF8T,UAAW,SAAU1Z,EAAK2Z,GACxB,OAAO1hB,KAAKs7K,GAAU5wB,GAAU/oI,cAAc3hB,KAAKY,UAAWmH,EAAK2Z,IAOrEd,UAAW,SAAU3d,EAAQ4d,GAC3B7gB,KAAKY,WAAa,GAAKZ,KAAKs7K,GAAU5wB,GAAU5pI,cAAc9gB,KAAKY,UAAWqC,EAAQ4d,IAMxFE,UAAW,WACT,OAAO/gB,KAAKs7K,GAAU5wB,GAAU1pI,cAAchhB,KAAKY,YAMrD2iJ,aAAc,WACZ,OAAOvjJ,KAAKs7K,GAAU5wB,GAAUnxG,iBAAiBv5C,KAAKY,YAMxDE,YAAa,WACX,OAAOd,KAAKs7K,GAAU5wB,GAAU5pJ,YAAYd,KAAKY,cAKvDgC,EAAOyM,MAAMirK,EAAMe,EAA0B,YAAa,SAC1Dz4K,EAAOyM,MAAMmrK,EAAMa,EAA0B,YAAa,aAC1D1/F,EAAM2+F,KAAOA,EACb3+F,EAAM6+F,KAAOA,EACbr7C,EAAiBm7C,GACjBn7C,EAAiBq7C,GACjB,IAAIj7K,EAAWo8E,EACfj5E,EAAOC,QAAUpD,G,uBCtiBjB,IAAIuD,EAAU,EAAQ,QAElBy4K,EAAY,EAAQ,QA8BxB,SAASzjF,EAASp6B,GAChB19D,KAAKw7K,MAAQ99G,GAAQ69G,EACrBv7K,KAAKsD,MAAQ,IAAIR,EAAQ6B,MAG3B,IAAI82K,EAAgB3jF,EAAShqF,UA+B7B,SAAS4tK,EAAMzhF,EAAU3nD,EAAUpiC,EAAKqiC,GACtC,IAAIrR,EAAaoR,EAAStxB,cAAc9Q,GAExC,GAAKyrK,EAAcz6I,GAAnB,CAIA,IAAIzV,EAAK,IAAIwuE,EAASuhF,MAAMlpI,EAAUpiC,EAAKqiC,GAC3CD,EAAS1Q,iBAAiB1xB,EAAKub,GAC/BwuE,EAAS32F,MAAMgC,IAAImmB,IAGrB,SAASmwJ,EAAS3hF,EAAU4hF,EAAaC,EAAar9H,EAAQD,EAAQjM,GACpE,IAAIwpI,EAASF,EAAYtiI,iBAAiBkF,GAErCk9H,EAAcG,EAAY96J,cAAcw9B,KAKxCu9H,EAGHA,EAAO9nI,WAAW6nI,EAAat9H,EAAQjM,GAFvCwpI,EAAS,IAAI9hF,EAASuhF,MAAMM,EAAat9H,EAAQjM,GAKnDupI,EAAYl6I,iBAAiB4c,EAAQu9H,GACrC9hF,EAAS32F,MAAMgC,IAAIy2K,IAXjB9hF,EAAS32F,MAAM++B,OAAO05I,GAgC1B,SAASC,EAAevwJ,GACtB,OAAOA,EAAGwwJ,WAAaxwJ,EAAGwwJ,UAAUhxK,OAAS,EAsB/C,SAAS8kJ,EAAgBz9G,GACvB,IAAItzB,EAAYszB,EAAStzB,UACzB,MAAO,CACLzd,UAAWyd,EAAUiC,SAAS,aAAa29B,eAC3CgjF,eAAgB5iH,EAAUiC,SAAS,sBAAsB29B,eACzD1e,WAAYlhB,EAAUiC,SAAS,SAC/Bkf,gBAAiBnhB,EAAUiC,SAAS,mBAmBxC,SAASi7J,EAAW/9H,GAClB,OAAOplC,MAAMolC,EAAG,KAAOplC,MAAMolC,EAAG,IAGlC,SAASw9H,EAAcn2C,GACrB,OAAQ02C,EAAW12C,EAAI,MAAQ02C,EAAW12C,EAAI,IAlIhDi2C,EAAcU,aAAe,WAC3B,OAAO,GAOTV,EAAcxnI,WAAa,SAAU3B,GACnC,IAAI2nD,EAAWj6F,KACXsD,EAAQ22F,EAAS32F,MACjBu4K,EAAc5hF,EAASmiF,UAC3BniF,EAASmiF,UAAY9pI,EAGhBupI,GACHv4K,EAAMC,YAGR,IAAIgvC,EAAcw9G,EAAgBz9G,GAClCA,EAASrY,KAAK4hJ,GAAav2K,KAAI,SAAU4K,GACvCwrK,EAAMzhF,EAAU3nD,EAAUpiC,EAAKqiC,MAC9BhqC,QAAO,SAAUi2C,EAAQC,GAC1Bm9H,EAAS3hF,EAAU4hF,EAAavpI,EAAUmM,EAAQD,EAAQjM,MACzDlQ,QAAO,SAAUnyB,GAClB5M,EAAM++B,OAAOw5I,EAAYtiI,iBAAiBrpC,OACzCwuC,WAiCL+8H,EAAc/mI,aAAe,WAC3B,IAAIpC,EAAWtyC,KAAKo8K,UAEf9pI,GAILA,EAASqM,mBAAkB,SAAUlzB,EAAIvb,GACvCub,EAAGipB,aAAapC,EAAUpiC,KACzBlQ,OAGLy7K,EAAcY,yBAA2B,SAAU/pI,GACjDtyC,KAAKs8K,aAAevsB,EAAgBz9G,GACpCtyC,KAAKo8K,UAAY,KACjBp8K,KAAKsD,MAAMC,aAObk4K,EAAcc,kBAAoB,SAAUlsB,EAAY/9G,GACtD,SAASkqI,EAA0B/wJ,GAC5BA,EAAG2+C,SAAY4xG,EAAevwJ,KACjCA,EAAGgwB,YAAchwB,EAAGiwB,eAAgB,GAIxC,IAAK,IAAIxrC,EAAMmgJ,EAAW97I,MAAOrE,EAAMmgJ,EAAWh2E,IAAKnqE,IAAO,CAC5D,IAAIgxB,EAAaoR,EAAStxB,cAAc9Q,GAExC,GAAIyrK,EAAcz6I,GAAa,CAC7B,IAAIzV,EAAK,IAAIzrB,KAAKw7K,MAAMlpI,EAAUpiC,EAAKlQ,KAAKs8K,cAC5C7wJ,EAAGqX,SAAS05I,GACZx8K,KAAKsD,MAAMgC,IAAImmB,GACf6mB,EAAS1Q,iBAAiB1xB,EAAKub,MAerCgwJ,EAAcp5I,OAAS,WACrBriC,KAAKy8K,oBAELz8K,KAAK08K,aAAe,KACpB18K,KAAKsD,MAAMC,aAGbk4K,EAAcgB,kBAAoB,WAChC,IAAIhhI,EAAcz7C,KAAK08K,aAEnBjhI,GACFA,EAAYw6D,oBAYhB,IAAI12G,EAAWu4F,EACfp1F,EAAOC,QAAUpD,G,qBC7KjB,IAAI6I,EAAU,EAAQ,QAElBsrB,EAAe,EAAQ,QAE3B,EAAQ,QAER,EAAQ,QAER,EAAQ,SAER,EAAQ,QAER,EAAQ,QAwBRtrB,EAAQyJ,qBAAqB6hB,I,qBCnD7B,IAAIvZ,EAAS,CAKXuxI,OAAQ,SAAUz1I,GAChB,OAAOA,GAOT0mK,YAAa,SAAU1mK,GACrB,OAAOA,EAAIA,GAOb2mK,aAAc,SAAU3mK,GACtB,OAAOA,GAAK,EAAIA,IAOlB4mK,eAAgB,SAAU5mK,GACxB,OAAKA,GAAK,GAAK,EACN,GAAMA,EAAIA,GAGX,MAASA,GAAKA,EAAI,GAAK,IAQjC6mK,QAAS,SAAU7mK,GACjB,OAAOA,EAAIA,EAAIA,GAOjB8mK,SAAU,SAAU9mK,GAClB,QAASA,EAAIA,EAAIA,EAAI,GAOvB+mK,WAAY,SAAU/mK,GACpB,OAAKA,GAAK,GAAK,EACN,GAAMA,EAAIA,EAAIA,EAGhB,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAQnCgnK,UAAW,SAAUhnK,GACnB,OAAOA,EAAIA,EAAIA,EAAIA,GAOrBinK,WAAY,SAAUjnK,GACpB,OAAO,KAAMA,EAAIA,EAAIA,EAAIA,GAO3BknK,aAAc,SAAUlnK,GACtB,OAAKA,GAAK,GAAK,EACN,GAAMA,EAAIA,EAAIA,EAAIA,GAGnB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAQxCmnK,UAAW,SAAUnnK,GACnB,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAOzBonK,WAAY,SAAUpnK,GACpB,QAASA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,GAO/BqnK,aAAc,SAAUrnK,GACtB,OAAKA,GAAK,GAAK,EACN,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAGxB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IAQ3CsnK,aAAc,SAAUtnK,GACtB,OAAO,EAAIpK,KAAK04C,IAAItuC,EAAIpK,KAAK+E,GAAK,IAOpC4sK,cAAe,SAAUvnK,GACvB,OAAOpK,KAAKw4C,IAAIpuC,EAAIpK,KAAK+E,GAAK,IAOhC6sK,gBAAiB,SAAUxnK,GACzB,MAAO,IAAO,EAAIpK,KAAK04C,IAAI14C,KAAK+E,GAAKqF,KAQvCynK,cAAe,SAAUznK,GACvB,OAAa,IAANA,EAAU,EAAIpK,KAAKqyE,IAAI,KAAMjoE,EAAI,IAO1C0nK,eAAgB,SAAU1nK,GACxB,OAAa,IAANA,EAAU,EAAI,EAAIpK,KAAKqyE,IAAI,GAAI,GAAKjoE,IAO7C2nK,iBAAkB,SAAU3nK,GAC1B,OAAU,IAANA,EACK,EAGC,IAANA,EACK,GAGJA,GAAK,GAAK,EACN,GAAMpK,KAAKqyE,IAAI,KAAMjoE,EAAI,GAG3B,IAAqC,EAA7BpK,KAAKqyE,IAAI,GAAI,IAAMjoE,EAAI,MAQxC4nK,WAAY,SAAU5nK,GACpB,OAAO,EAAIpK,KAAK4sB,KAAK,EAAIxiB,EAAIA,IAO/B6nK,YAAa,SAAU7nK,GACrB,OAAOpK,KAAK4sB,KAAK,KAAMxiB,EAAIA,IAO7B8nK,cAAe,SAAU9nK,GACvB,OAAKA,GAAK,GAAK,GACL,IAAOpK,KAAK4sB,KAAK,EAAIxiB,EAAIA,GAAK,GAGjC,IAAOpK,KAAK4sB,KAAK,GAAKxiB,GAAK,GAAKA,GAAK,IAQ9C+nK,UAAW,SAAU/nK,GACnB,IAAIk2B,EACA90B,EAAI,GACJI,EAAI,GAER,OAAU,IAANxB,EACK,EAGC,IAANA,EACK,IAGJoB,GAAKA,EAAI,GACZA,EAAI,EACJ80B,EAAI10B,EAAI,GAER00B,EAAI10B,EAAI5L,KAAKoyK,KAAK,EAAI5mK,IAAM,EAAIxL,KAAK+E,KAG9ByG,EAAIxL,KAAKqyE,IAAI,EAAG,IAAMjoE,GAAK,IAAMpK,KAAKw4C,KAAKpuC,EAAIk2B,IAAM,EAAItgC,KAAK+E,IAAM6G,KAO/EymK,WAAY,SAAUjoK,GACpB,IAAIk2B,EACA90B,EAAI,GACJI,EAAI,GAER,OAAU,IAANxB,EACK,EAGC,IAANA,EACK,IAGJoB,GAAKA,EAAI,GACZA,EAAI,EACJ80B,EAAI10B,EAAI,GAER00B,EAAI10B,EAAI5L,KAAKoyK,KAAK,EAAI5mK,IAAM,EAAIxL,KAAK+E,IAGhCyG,EAAIxL,KAAKqyE,IAAI,GAAI,GAAKjoE,GAAKpK,KAAKw4C,KAAKpuC,EAAIk2B,IAAM,EAAItgC,KAAK+E,IAAM6G,GAAK,IAO5E0mK,aAAc,SAAUloK,GACtB,IAAIk2B,EACA90B,EAAI,GACJI,EAAI,GAER,OAAU,IAANxB,EACK,EAGC,IAANA,EACK,IAGJoB,GAAKA,EAAI,GACZA,EAAI,EACJ80B,EAAI10B,EAAI,GAER00B,EAAI10B,EAAI5L,KAAKoyK,KAAK,EAAI5mK,IAAM,EAAIxL,KAAK+E,KAGlCqF,GAAK,GAAK,EACEoB,EAAIxL,KAAKqyE,IAAI,EAAG,IAAMjoE,GAAK,IAAMpK,KAAKw4C,KAAKpuC,EAAIk2B,IAAM,EAAItgC,KAAK+E,IAAM6G,IAA3E,GAGHJ,EAAIxL,KAAKqyE,IAAI,GAAI,IAAMjoE,GAAK,IAAMpK,KAAKw4C,KAAKpuC,EAAIk2B,IAAM,EAAItgC,KAAK+E,IAAM6G,GAAK,GAAM,IAQzF2mK,OAAQ,SAAUnoK,GAChB,IAAIk2B,EAAI,QACR,OAAOl2B,EAAIA,IAAMk2B,EAAI,GAAKl2B,EAAIk2B,IAOhCkyI,QAAS,SAAUpoK,GACjB,IAAIk2B,EAAI,QACR,QAASl2B,EAAIA,IAAMk2B,EAAI,GAAKl2B,EAAIk2B,GAAK,GAOvCmyI,UAAW,SAAUroK,GACnB,IAAIk2B,EAAI,UAER,OAAKl2B,GAAK,GAAK,EACCA,EAAIA,IAAMk2B,EAAI,GAAKl2B,EAAIk2B,GAA9B,GAGF,KAAQl2B,GAAK,GAAKA,IAAMk2B,EAAI,GAAKl2B,EAAIk2B,GAAK,IAQnDoyI,SAAU,SAAUtoK,GAClB,OAAO,EAAIkE,EAAOqkK,UAAU,EAAIvoK,IAOlCuoK,UAAW,SAAUvoK,GACnB,OAAIA,EAAI,EAAI,KACH,OAASA,EAAIA,EACXA,EAAI,EAAI,KACV,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAC/BA,EAAI,IAAM,KACZ,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAElC,QAAUA,GAAK,MAAQ,MAAQA,EAAI,SAQ9CwoK,YAAa,SAAUxoK,GACrB,OAAIA,EAAI,GAC0B,GAAzBkE,EAAOokK,SAAa,EAAJtoK,GAGY,GAA9BkE,EAAOqkK,UAAc,EAAJvoK,EAAQ,GAAW,KAG3C1W,EAAW4a,EACfzX,EAAOC,QAAUpD,G,qBCrWjB,IAAIi+B,EAAU,EAAQ,QAElBp1B,EAAU,EAAQ,QAoBlB7I,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,MACNuJ,KAAM,SAAUlJ,EAASyG,GACvB,IAAIk2B,EAAU,IAAIe,EAAQj3B,GAAK,GAC/BvG,KAAK0+K,SAAWjiJ,EAChBz8B,KAAKsD,MAAMgC,IAAIm3B,EAAQn5B,QAEzBgO,OAAQ,SAAU1D,EAAU9N,EAASyG,EAAK23B,GAExC,IAAIA,GAA4B,oBAAjBA,EAAQz+B,MAA8By+B,EAAQl2B,OAAShI,KAAKiI,IAA3E,CAIA,IAAIw0B,EAAUz8B,KAAK0+K,SAEf9wK,EAAS1L,IAAI,QACfu6B,EAAQwB,KAAKrwB,EAAU9N,EAASyG,EAAKvG,KAAMk+B,GAE3Cl+B,KAAK0+K,SAASp7K,MAAMC,YAGtBvD,KAAKsD,MAAMsO,OAAShE,EAAS1L,IAAI,YAEnCqsB,QAAS,WACPvuB,KAAK0+K,UAAY1+K,KAAK0+K,SAASr8I,YAInC3/B,EAAOC,QAAUpD,G,uBClDjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB2wE,EAAY,EAAQ,QAEpBuT,EAAO,EAAQ,QAEf4tD,EAAiB,EAAQ,QAoBzBiqC,EAAe73F,EAAK7B,QAAQ4B,SAC5B+3F,EAAgB,IAAI7mK,MAAM,IAAI8B,KAAK,KACnCglK,EAAe,KAUnB,SAASC,EAAYh/K,GACnB,IAAIi/K,EAA4B,GAC5BC,EAAc,GACd3rJ,EAAO,GA8BX,OA7BAvzB,EAAQmpJ,eAAc,SAAUnnJ,GAC9B,IAAIzB,EAAWyB,EAAYxB,iBAE3B,IAAID,GAA+B,gBAAlBA,EAASZ,MAA4C,UAAlBY,EAASZ,KAuB3Du/K,EAAYn+K,KAAKiB,OAvB6D,CAC9E,IAAIg2B,EAAWz3B,EAAS03B,cAExB,GAAsB,aAAlBD,EAASr4B,KAAqB,CAChC,IAAIsI,EAAM+vB,EAAS/nB,IAAM,IAAM+nB,EAAS3wB,MAEnC43K,EAA0Bh3K,KAC7Bg3K,EAA0Bh3K,GAAO,CAC/B8vK,aAAc//I,EACd+sB,UAAWxkD,EAASwxD,aAAa/5B,GACjC0+C,OAAQ,IAEVnjD,EAAKxyB,KAAK,CACRuB,QAAS01B,EAAS/nB,IAClBi9B,UAAWlV,EAAS3wB,SAIxB43K,EAA0Bh3K,GAAKyuE,OAAO31E,KAAKiB,QAE3Ck9K,EAAYn+K,KAAKiB,OAMhB,CACLi9K,0BAA2BA,EAC3BE,MAAOD,EACP3rJ,KAAMA,GAWV,SAAS6rJ,EAA+B1oG,GACtC,IAAI2oG,EAAS,GA6Bb,OA5BAv8K,EAAOzD,KAAKq3E,GAAQ,SAAUlzE,EAAOyE,GACnC,IAAI8vK,EAAev0K,EAAMu0K,aACrBhzH,EAAYvhD,EAAMuhD,UAClBu6H,EAAev6H,EAAU90C,IACzBsvK,EAAU,CAAC,KAAK7nH,OAAO50D,EAAOqE,IAAI3D,EAAMkzE,QAAQ,SAAUA,GAC5D,OAAOA,EAAO7pE,SAEZ2yK,EAAU,CAACzH,EAAa/nJ,MAAMi1I,iBAClCniK,EAAOzD,KAAKmE,EAAMkzE,QAAQ,SAAUA,GAClC8oG,EAAQz+K,KAAK21E,EAAOptE,aAAam3E,SAAS6+F,GAAc,SAAU3zK,GAChE,OAAOA,SAMX,IAFA,IAAI61C,EAAQ,CAAC+9H,EAAQxlK,KAAKglK,IAEjB5wK,EAAI,EAAGA,EAAIqxK,EAAQ,GAAGr0K,OAAQgD,IAAK,CAG1C,IAFA,IAAIykB,EAAQ,GAEHla,EAAI,EAAGA,EAAI8mK,EAAQr0K,OAAQuN,IAClCka,EAAM7xB,KAAKy+K,EAAQ9mK,GAAGvK,IAGxBqzC,EAAMzgD,KAAK6xB,EAAM7Y,KAAKglK,IAGxBM,EAAOt+K,KAAKygD,EAAMznC,KAAK,UAElBslK,EAAOtlK,KAAK,OAAS+kK,EAAgB,QAU9C,SAASW,EAAoB/oG,GAC3B,OAAO5zE,EAAOqE,IAAIuvE,GAAQ,SAAUA,GAClC,IAAIj2E,EAAOi2E,EAAOptE,aACdk4C,EAAQ,CAACk1B,EAAO7pE,MAChB6yK,EAAO,GAYX,OAXAj/K,EAAKpB,KAAKoB,EAAK4B,YAAY,WAKzB,IAJA,IAAIm0D,EAASptD,UAAU+B,OACnBrK,EAAYsI,UAAUotD,EAAS,GAC/B3pD,EAAOpM,EAAK08C,QAAQr8C,GAEfqN,EAAI,EAAGA,EAAIqoD,EAAS,EAAGroD,IAC9BuxK,EAAKvxK,GAAK/E,UAAU+E,GAGtBqzC,EAAMzgD,MAAM8L,EAAOA,EAAOkyK,EAAe,IAAMW,EAAK3lK,KAAKglK,OAEpDv9H,EAAMznC,KAAK,SACjBA,KAAK,OAAS+kK,EAAgB,QASnC,SAASa,EAAoB3/K,GAC3B,IAAI6mB,EAASm4J,EAAYh/K,GACzB,MAAO,CACL6N,MAAO/K,EAAOyuD,OAAO,CAAC6tH,EAA+Bv4J,EAAOo4J,2BAA4BQ,EAAoB54J,EAAOs4J,SAAS,SAAUrpF,GACpI,OAAOA,EAAInzF,QAAQ,YAAa,OAC/BoX,KAAK,OAAS+kK,EAAgB,QACjCvrJ,KAAM1M,EAAO0M,MAIjB,SAASg9C,EAAKulB,GACZ,OAAOA,EAAInzF,QAAQ,SAAU,IAAIA,QAAQ,SAAU,IAOrD,SAASi9K,EAAYrV,GAEnB,IAAI5tC,EAAY4tC,EAAM/iK,MAAM,EAAG+iK,EAAMx3I,QAAQ,OAE7C,GAAI4pG,EAAU5pG,QAAQgsJ,IAAiB,EACrC,OAAO,EAIX,IAAIc,EAAiB,IAAIC,OAAO,IAAMf,EAAe,KAAM,KAM3D,SAASgB,EAAiBC,GAWxB,IAVA,IAAIC,EAAWD,EAAIxsF,MAAM,QACrB+rF,EAAUhvG,EAAK0vG,EAASj7G,SAASwuB,MAAMqsF,GACvCr7J,EAAa,GACbkyD,EAAS5zE,EAAOqE,IAAIo4K,GAAS,SAAUW,GACzC,MAAO,CACLrzK,KAAMqzK,EACNz/K,KAAM,OAID0N,EAAI,EAAGA,EAAI8xK,EAAS90K,OAAQgD,IAAK,CACxC,IAAIykB,EAAQ29C,EAAK0vG,EAAS9xK,IAAIqlF,MAAMqsF,GACpCr7J,EAAWzjB,KAAK6xB,EAAMoyC,SAEtB,IAAK,IAAItsD,EAAI,EAAGA,EAAIka,EAAMznB,OAAQuN,IAChCg+D,EAAOh+D,KAAOg+D,EAAOh+D,GAAGjY,KAAK0N,GAAKykB,EAAMla,IAI5C,MAAO,CACLg+D,OAAQA,EACRlyD,WAAYA,GAUhB,SAAS27J,EAAkBrqF,GAKzB,IAJA,IAAIt0C,EAAQs0C,EAAItC,MAAM,QAClB1iD,EAAay/B,EAAK/uB,EAAMwjB,SACxBvkE,EAAO,GAEF0N,EAAI,EAAGA,EAAIqzC,EAAMr2C,OAAQgD,IAAK,CACrC,IAEIN,EAFA+kB,EAAQ29C,EAAK/uB,EAAMrzC,IAAIqlF,MAAMqsF,GAC7BhzK,EAAO,GAEPuzK,GAAU,EAEVnnK,MAAM2Z,EAAM,KAEdwtJ,GAAU,EACVvzK,EAAO+lB,EAAM,GACbA,EAAQA,EAAMprB,MAAM,GACpB/G,EAAK0N,GAAK,CACRtB,KAAMA,EACNgB,MAAO,IAETA,EAAQpN,EAAK0N,GAAGN,OAEhBA,EAAQpN,EAAK0N,GAAK,GAGpB,IAAK,IAAIuK,EAAI,EAAGA,EAAIka,EAAMznB,OAAQuN,IAChC7K,EAAM9M,MAAM6xB,EAAMla,IAGC,IAAjB7K,EAAM1C,SACRi1K,EAAU3/K,EAAK0N,GAAGN,MAAQA,EAAM,GAAKpN,EAAK0N,GAAKN,EAAM,IAIzD,MAAO,CACLhB,KAAMikC,EACNrwC,KAAMA,GAWV,SAAS4/K,EAAcvqF,EAAKwqF,GAC1B,IAAIC,EAASzqF,EAAItC,MAAM,IAAIssF,OAAO,MAAQhB,EAAgB,MAAO,MAC7Dn6J,EAAY,CACd+xD,OAAQ,IAoBV,OAlBA5zE,EAAOzD,KAAKkhL,GAAQ,SAAUhW,EAAOn6J,GACnC,GAAIwvK,EAAYrV,GAAQ,CACtB,IAAI1jJ,EAASk5J,EAAiBxV,GAC1BiW,EAAYF,EAAclwK,GAC1BshD,EAAU8uH,EAAUl+K,QAAU,OAE9Bk+K,IACF77J,EAAU+sC,GAAW/sC,EAAU+sC,IAAY,GAC3C/sC,EAAU+sC,GAAS8uH,EAAUtzI,WAAa,CACxCzsC,KAAMomB,EAAOrC,YAEfG,EAAU+xD,OAAS/xD,EAAU+xD,OAAOhf,OAAO7wC,EAAO6vD,aAE/C,CACD7vD,EAASs5J,EAAkB5V,GAC/B5lJ,EAAU+xD,OAAO31E,KAAK8lB,OAGnBlC,EAST,SAAS87J,EAASzwJ,GAChB9vB,KAAKmiH,KAAO,KACZniH,KAAK8vB,MAAQA,EA+Hf,SAAS0wJ,EAAmB1kH,EAASm3E,GACnC,OAAOrwI,EAAOqE,IAAI60D,GAAS,SAAUqxF,EAAQj9I,GAC3C,IAAI26E,EAAWooD,GAAgBA,EAAa/iI,GAE5C,OAAItN,EAAOqjB,SAAS4kE,KAAcjoF,EAAOogB,QAAQ6nE,IAC3CjoF,EAAOqjB,SAASknI,KAAYvqJ,EAAOogB,QAAQmqI,KAC7CA,EAASA,EAAOx/I,OAIX/K,EAAO6O,SAAS,CACrB9D,MAAOw/I,GACNtiE,IAEIsiE,KA1IbozB,EAASx/K,cAAgB,CACvBK,MAAM,EACNq/K,UAAU,EACVC,gBAAiB,KACjBC,gBAAiB,KACjBn4I,KAAM,8GACNlV,MAAO1wB,EAAO8E,MAAMi3K,EAAarrJ,OACjCwzD,KAAMlkF,EAAO8E,MAAMi3K,EAAa73F,MAChC/8D,gBAAiB,OACjB62J,UAAW,OACXC,cAAe,OACfC,oBAAqB,OACrBC,YAAa,UACbC,gBAAiB,QAGnBT,EAASzyK,UAAUlJ,QAAU,SAAU9E,EAASyG,GAC9C,IAAIglB,EAAYhlB,EAAIq+G,SAChB90F,EAAQ9vB,KAAK8vB,MAEb9vB,KAAKmiH,MACP52F,EAAUiD,YAAYxuB,KAAKmiH,MAG7B,IAAIjjG,EAAO8L,SAASU,cAAc,OAClCxM,EAAK1Z,MAAMikB,QAAU,2DACrBvK,EAAK1Z,MAAMukB,gBAAkB+F,EAAM5tB,IAAI,oBAAsB,OAE7D,IAAI89K,EAASh1J,SAASU,cAAc,MAChCo7D,EAAOh3D,EAAM5tB,IAAI,SAAW,GAChC89K,EAAOtyJ,UAAYo5D,EAAK,IAAMh3D,EAAM5tB,IAAI,SACxC89K,EAAOx6K,MAAMikB,QAAU,qBACvBu2J,EAAOx6K,MAAMoS,MAAQkY,EAAM5tB,IAAI,aAC/B,IAAI++K,EAAWj2J,SAASU,cAAc,OAClCw1J,EAAWl2J,SAASU,cAAc,YACtCu1J,EAASz7K,MAAMikB,QAAU,0CACzB,IAAIi3J,EAAkB5wJ,EAAM5tB,IAAI,mBAC5By+K,EAAkB7wJ,EAAM5tB,IAAI,mBAC5BykB,EAAS84J,EAAoB3/K,GAEjC,GAA+B,oBAApB4gL,EAAgC,CACzC,IAAIS,EAAYT,EAAgBn6K,EAAI4+G,aAEX,kBAAdg8D,EACTF,EAASvzJ,UAAYyzJ,EACZv+K,EAAOyyK,MAAM8L,IACtBF,EAAS/0J,YAAYi1J,QAIvBF,EAAS/0J,YAAYg1J,GACrBA,EAAST,SAAW3wJ,EAAM5tB,IAAI,YAC9Bg/K,EAAS17K,MAAMikB,QAAU,kFACzBy3J,EAAS17K,MAAMoS,MAAQkY,EAAM5tB,IAAI,aACjCg/K,EAAS17K,MAAM2F,YAAc2kB,EAAM5tB,IAAI,uBACvCg/K,EAAS17K,MAAMukB,gBAAkB+F,EAAM5tB,IAAI,iBAC3Cg/K,EAASvzK,MAAQgZ,EAAOhZ,MAG1B,IAAIyyK,EAAgBz5J,EAAO0M,KACvB+tJ,EAAkBp2J,SAASU,cAAc,OAC7C01J,EAAgB57K,MAAMikB,QAAU,6CAChC,IAAI43J,EAAc,4GACdC,EAAct2J,SAASU,cAAc,OACrC61J,EAAgBv2J,SAASU,cAAc,OAC3C21J,GAAe,qBAAuBvxJ,EAAM5tB,IAAI,eAChDm/K,GAAe,UAAYvxJ,EAAM5tB,IAAI,mBACrC,IAAIub,EAAOzd,KAEX,SAAS+nB,IACPwD,EAAUiD,YAAYtP,GACtBzB,EAAK0kG,KAAO,KAGd5uC,EAAU26E,iBAAiBozB,EAAa,QAASv5J,GACjDwrD,EAAU26E,iBAAiBqzB,EAAe,SAAS,WACjD,IAAI98J,EAEJ,IAEIA,EAD6B,oBAApBk8J,EACGA,EAAgBM,EAAU16K,EAAI4+G,aAE9Bg7D,EAAce,EAASvzK,MAAOyyK,GAE5C,MAAOzzJ,GAEP,MADA5E,IACM,IAAIpR,MAAM,0BAA4BgW,GAG1ClI,GACFle,EAAIC,eAAe,CACjB/G,KAAM,iBACNglB,UAAWA,IAIfsD,OAEFu5J,EAAY5zJ,UAAYo5D,EAAK,GAC7By6F,EAAc7zJ,UAAYo5D,EAAK,GAC/By6F,EAAc/7K,MAAMikB,QAAU43J,EAC9BC,EAAY97K,MAAMikB,QAAU43J,GAC3BvxJ,EAAM5tB,IAAI,aAAek/K,EAAgBl1J,YAAYq1J,GACtDH,EAAgBl1J,YAAYo1J,GAC5BpiK,EAAKgN,YAAY8zJ,GACjB9gK,EAAKgN,YAAY+0J,GACjB/hK,EAAKgN,YAAYk1J,GACjBH,EAASz7K,MAAM0G,OAASqf,EAAU2C,aAAe,GAAK,KACtD3C,EAAUW,YAAYhN,GACtBlf,KAAKmiH,KAAOjjG,GAGdqhK,EAASzyK,UAAUu0B,OAAS,SAAUviC,EAASyG,GAC7CvG,KAAKmiH,MAAQ57G,EAAIq+G,SAASp2F,YAAYxuB,KAAKmiH,OAG7Co+D,EAASzyK,UAAUygB,QAAU,SAAUzuB,EAASyG,GAC9CvG,KAAKqiC,OAAOviC,EAASyG,IA0BvBmuI,EAAextF,SAAS,WAAYq5H,GACpCn4K,EAAQC,eAAe,CACrB5I,KAAM,iBACN6I,MAAO,kBACPC,OAAQ,qBACP,SAAU21B,EAASp+B,GACpB,IAAI0hL,EAAmB,GACvB5+K,EAAOzD,KAAK++B,EAAQzZ,UAAU+xD,QAAQ,SAAUiN,GAC9C,IAAI3hF,EAAchC,EAAQopJ,gBAAgBzlE,EAAU92E,MAAM,GAE1D,GAAK7K,EAOE,CACL,IAAImxI,EAAenxI,EAAYI,IAAI,QACnCs/K,EAAiB3gL,KAAK,CACpB8L,KAAM82E,EAAU92E,KAChBpM,KAAMigL,EAAmB/8F,EAAUljF,KAAM0yI,UAR3CuuC,EAAiB3gL,KAAK+B,EAAOpD,OAAO,CAElCC,KAAM,WACLgkF,OASP3jF,EAAQgjE,YAAYlgE,EAAO6O,SAAS,CAClC+kE,OAAQgrG,GACPtjJ,EAAQzZ,eAEb,IAAIllB,EAAWghL,EACf79K,EAAOC,QAAUpD,G,uBC/ejB,IAAI8lC,EAAc,EAAQ,QAEtBziC,EAAS,EAAQ,QAEjB8tH,EAAc,EAAQ,QAEtBC,EAAa,EAAQ,QAErBhlC,EAAY,EAAQ,QAEpBC,EAAkBD,EAAUC,gBAQ5BrmF,EAAO,SAAU+9B,GAEnB+B,EAAYv4B,KAAK9M,KAAMsjC,IAGzB/9B,EAAKuI,UAAY,CACfC,YAAaxI,EACb9F,KAAM,OACN+lC,MAAO,SAAUf,EAAKgB,GACpB,IAAIjgC,EAAQxF,KAAKwF,MAEjBxF,KAAK2sD,SAAWgkE,EAAWyC,mBAAmB5tH,GAAO,GAErDA,EAAMkM,KAAOlM,EAAMq5C,OAASr5C,EAAMw2C,WAAax2C,EAAM22C,YAAc32C,EAAMy2C,cAAgBz2C,EAAM02C,cAAgB,KAC/G,IAAIv2C,EAAOH,EAAMG,KAET,MAARA,IAAiBA,GAAQ,IAKpBgrH,EAAW0C,aAAa1tH,EAAMH,IAOnCxF,KAAKwkC,aAAaC,GAClBksF,EAAW8wD,WAAWzhL,KAAMykC,EAAK9+B,EAAMH,EAAO,KAAMigC,GACpDzlC,KAAK2kC,iBAAiBF,IANpBA,EAAImoD,eAAiBhB,EAAgBilC,MAQzC5kH,gBAAiB,WACf,IAAIzG,EAAQxF,KAAKwF,MAIjB,GAFAxF,KAAK2sD,SAAWgkE,EAAWyC,mBAAmB5tH,GAAO,IAEhDxF,KAAKsN,MAAO,CACf,IAAI3H,EAAOH,EAAMG,KACT,MAARA,EAAeA,GAAQ,GAAKA,EAAO,GACnC,IAAIqG,EAAO0kH,EAAYzkH,gBAAgBzG,EAAMG,KAAO,GAAIH,EAAMojC,KAAMpjC,EAAMK,UAAWL,EAAMI,kBAAmBJ,EAAM+pE,YAAa/pE,EAAMypE,eAAgBzpE,EAAM8oE,MAI7J,GAHAtiE,EAAKvG,GAAKD,EAAMC,GAAK,EACrBuG,EAAKtG,GAAKF,EAAME,GAAK,EAEjBirH,EAAW+wD,UAAUl8K,EAAMmpE,WAAYnpE,EAAMopE,iBAAkB,CACjE,IAAIp3D,EAAIhS,EAAMopE,gBACd5iE,EAAKvG,GAAK+R,EAAI,EACdxL,EAAKtG,GAAK8R,EAAI,EACdxL,EAAKxK,OAASgW,EACdxL,EAAKE,QAAUsL,EAGjBxX,KAAKsN,MAAQtB,EAGf,OAAOhM,KAAKsN,QAGhB1K,EAAOwxB,SAAS7uB,EAAM8/B,GACtB,IAAI9lC,EAAWgG,EACf7C,EAAOC,QAAUpD,G,qBC1DjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAoBrB,SAASrD,EAASq1B,EAAY+sJ,GAC5B/+K,EAAOzD,KAAKwiL,GAAa,SAAUj4D,GACjCA,EAAWnhH,OAAS,aAOpBH,EAAQC,eAAeqhH,GAAY,SAAUxrF,EAASp+B,GACpD,IAAI2H,EAAW,GAiBf,OAhBA3H,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAASzJ,EACTwM,MAAOlD,IACN,SAAUp8B,GACPA,EAAY4nH,EAAWrjH,SACzBvE,EAAY4nH,EAAWrjH,QAAQ63B,EAAQvxB,KAAMuxB,EAAQt9B,WAGvD,IAAIL,EAAOuB,EAAYtB,UAEvBD,EAAKpB,MAAK,SAAU+Q,GAClB,IAAIvD,EAAOpM,EAAK08C,QAAQ/sC,GACxBzI,EAASkF,GAAQ7K,EAAYy7B,WAAW5wB,KAAS,QAG9C,CACLA,KAAMuxB,EAAQvxB,KACdlF,SAAUA,EACVuf,SAAUkX,EAAQlX,gBAM1BtkB,EAAOC,QAAUpD,G,qBC1DjB,IAAIqD,EAAS,EAAQ,QAEjBkxB,EAAO,EAAQ,QAoBnB,SAAS2oD,EAAc1sE,EAAKtB,EAAO6xC,GACjCxsB,EAAKhnB,KAAK9M,KAAM+P,EAAKtB,EAAO6xC,GAU5BtgD,KAAKP,KAAO,QACZO,KAAKwyD,MAAQ,EAMbxyD,KAAK2M,KAAO,GAKZ3M,KAAK8vB,MAGPltB,EAAOwxB,SAASqoD,EAAe3oD,GAC/B,IAAIv0B,EAAWk9E,EACf/5E,EAAOC,QAAUpD,G,qBClDjB,IAAIqD,EAAS,EAAQ,QAqBrB,SAASrD,EAASM,GAChB,IAAI+hL,EAAc/hL,EAAO69C,MAEzB,GAAIkkI,EAAa,CACVh/K,EAAOogB,QAAQ4+J,KAClBA,EAAc,CAACA,IAGjB,IAAIC,EAAgB,GACpBj/K,EAAOzD,KAAKyiL,GAAa,SAAUE,EAAU5xK,GACvC4xK,EAAS37H,WACP27H,EAASriL,OAASqiL,EAAStwK,QAC7BswK,EAAStwK,MAAQswK,EAASriL,MAG5BI,EAAO++E,MAAQ/+E,EAAO++E,OAAS,GAE1Bh8E,EAAOogB,QAAQnjB,EAAO++E,SACzB/+E,EAAO++E,MAAQ,CAAC/+E,EAAO++E,QAGzB/+E,EAAO++E,MAAM/9E,KAAKihL,IAElBD,EAAchhL,KAAKihL,MAGvBjiL,EAAO69C,MAAQmkI,EAGjBj/K,EAAOzD,KAAKU,EAAO22E,QAAQ,SAAUiN,GAC/BA,GAAgC,UAAnBA,EAAUhkF,MAAoBgkF,EAAUs+F,aACvDt+F,EAAUu+F,WAAav+F,EAAUs+F,eAKvCr/K,EAAOC,QAAUpD,G,uBCzDjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAoBR,IAAI7I,EAAW6I,EAAQ48C,qBAAqB,CAC1CvlD,KAAM,QACNC,aAAc,CAAC,YAAa,aAK5BY,iBAAkB,KAMlBswD,cAAe,SAAU38B,GACvB,IAAIguJ,EACAniL,EAAUE,KAAKF,QAMnB,OALAA,EAAQs+B,cAAcnK,GAAU,SAAU1kB,GACpCA,EAAUynD,qBAAuBh3D,OACnCiiL,EAAiB1yK,KAElBvP,MACIiiL,GAETlhL,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHy3B,OAAQ,CAAC,MAAO,OAChBstB,OAAQ,SAIZtjD,EAAOC,QAAUpD,G,qBCrDjB,IAAI2iD,EAAU,EAAQ,QAElBC,EAAgBD,EAAQC,cACxB+/H,EAAYhgI,EAAQl8C,IACpBg0K,EAAkB93H,EAAQ83H,gBAE1BjxJ,EAAa,EAAQ,QAErBjmB,EAAU,EAAQ,QA4BtB,SAASG,EAAOK,EAAOkkH,EAAgBjhH,GACrC,IAAI47K,EAAkB36D,EAAe1hD,qBACjC97C,EAAUw9F,EAAetlH,IAAI,WAC7B4mJ,EAAe,CACjBtnJ,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAEVjgB,EAAOm2C,EAAcggI,EAAiBr5B,EAAc9+H,GACxDk4J,EAAU16D,EAAetlH,IAAI,UAAWoB,EAAOkkH,EAAetlH,IAAI,WAAY8J,EAAKxK,MAAOwK,EAAKE,QAC/F8tK,EAAgB12K,EAAO6+K,EAAiBr5B,EAAc9+H,GAGxD,SAASy+H,EAAez8I,EAAMw7G,GAC5B,IAAIx9F,EAAUjB,EAAWsB,kBAAkBm9F,EAAetlH,IAAI,YAC1DsD,EAAQgiH,EAAe71G,aAAa,CAAC,QAAS,YAClDnM,EAAMkM,KAAO81G,EAAetlH,IAAI,mBAC5B8J,EAAO,IAAIlJ,EAAQyO,KAAK,CAC1BC,MAAO,CACL/L,EAAGuG,EAAKvG,EAAIukB,EAAQ,GACpBtkB,EAAGsG,EAAKtG,EAAIskB,EAAQ,GACpBxoB,MAAOwK,EAAKxK,MAAQwoB,EAAQ,GAAKA,EAAQ,GACzC9d,OAAQF,EAAKE,OAAS8d,EAAQ,GAAKA,EAAQ,GAC3CnW,EAAG2zG,EAAetlH,IAAI,iBAExBsD,MAAOA,EACPoM,QAAQ,EACRR,IAAK,IAMP,OAAOpF,EAGTrJ,EAAQM,OAASA,EACjBN,EAAQ8lJ,eAAiBA,G,uBCxEzB,EAAQ,QAER,EAAQ,S,uBCFR,IAAIj8I,EAAO,EAAQ,QAEf01C,EAAU,EAAQ,QAElBC,EAAgBD,EAAQC,cAExByV,EAAO,EAAQ,QAqBnB,SAASiO,EAAY/jE,EAAayE,EAAKy/B,GACrC,IAAInmC,EAASiC,EAAYgkE,qBAEzB,OADAjmE,EAAOmmC,OAASA,EACTmc,EAActiD,EAAQ,CAC3B2B,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAIhB,SAAS1sB,EAASO,EAASyG,GACzB,IAAI+jH,EAAW,GA+Cf,OA9CAxqH,EAAQumC,iBAAiB,SAAS,SAAUvkC,GAC1C,IAAIkiI,EAAeliI,EAAYI,IAAI,oBAEnC,IAAK8hI,GAAiC,SAAjBA,EAAyB,CAC5C,IAAIzjI,EAAOuB,EAAYtB,UACnB4hL,EAAY7hL,EAAKggF,UAAS,SAAUrwE,GACtC,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAClC,MAAO,EAAEiR,EAAUjf,IAAI,MAAOif,EAAUjf,IAAI,SAE1CwO,EAAM,GACND,EAAM,GACVmnD,EAAK66G,WAAW2P,EAAW1xK,EAAKD,GAE5BA,EAAI,GAAKC,EAAI,KAAO,IACtBD,EAAI,IAAM,EACVC,EAAI,IAAM,GAGRD,EAAI,GAAKC,EAAI,KAAO,IACtBD,EAAI,IAAM,EACVC,EAAI,IAAM,GAGZ,IAAIs1B,GAAUv1B,EAAI,GAAKC,EAAI,KAAOD,EAAI,GAAKC,EAAI,IAE3CowE,EAAWjb,EAAY/jE,EAAayE,EAAKy/B,GAEzCjtB,MAAMitB,KACRt1B,EAAM,CAACowE,EAASr7E,EAAGq7E,EAASp7E,GAC5B+K,EAAM,CAACqwE,EAASr7E,EAAIq7E,EAASt/E,MAAOs/E,EAASp7E,EAAIo7E,EAAS50E,SAG5D,IAAIm2K,EAAU5xK,EAAI,GAAKC,EAAI,GACvB4xK,EAAW7xK,EAAI,GAAKC,EAAI,GACxBitE,EAAYmD,EAASt/E,MACrBo8E,EAAakD,EAAS50E,OACtB4mK,EAAehxK,EAAYxB,iBAAmB,IAAIkM,EACtDsmK,EAAangK,UAAY7Q,EAAYI,IAAI,cACzC4wK,EAAalC,gBAAgBlgK,EAAI,GAAIA,EAAI,GAAI2xK,EAASC,GACtDxP,EAAajC,YAAY/vF,EAASr7E,EAAGq7E,EAASp7E,EAAGi4E,EAAWC,GAE5Dk1F,EAAa99G,UAAUlzD,EAAYI,IAAI,WACvC4wK,EAAa/9G,QAAQjzD,EAAYI,IAAI,SACrCooH,EAASzpH,KAAKiyK,OAGXxoD,EAGT5nH,EAAOC,QAAUpD,G,uBCvFjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB2/K,EAAkB,EAAQ,QAE1B1tI,EAAqB,EAAQ,QAE7B2tI,EAAU,EAAQ,QAElB9uG,EAAa,EAAQ,QAErBoT,EAAO,EAAQ,QAEf4tD,EAAiB,EAAQ,QAE7B,EAAQ,QAqBR,IAAI+tC,EAAe37F,EAAK7B,QAAQ8B,SAC5B5nF,EAAOyD,EAAOzD,KAEdujL,EAAoB,4BAExB,SAASC,EAAS7yJ,EAAOhwB,EAASyG,IAK/BvG,KAAK4iL,iBAAmB,IAAIL,EAAgBh8K,EAAIslB,UAAUjlB,GAAG,QAAShE,EAAOiC,KAAK7E,KAAK6iL,SAAU7iL,OAAO8iL,QAMzG9iL,KAAK+iL,cAGPJ,EAAS5hL,cAAgB,CACvBK,MAAM,EACNq2G,WAAY,SAEZjvE,KAAM,CACJr8B,KAAM,wDACN66E,KAAM,6DAGR1zD,MAAO1wB,EAAO8E,MAAM+6K,EAAanvJ,QAEnC,IAAIwhH,EAAQ6tC,EAAS70K,UAErBgnI,EAAMxjI,OAAS,SAAU0xK,EAAcljL,EAASyG,EAAK23B,GACnDl+B,KAAK8vB,MAAQkzJ,EACbhjL,KAAKF,QAAUA,EACfE,KAAKuG,IAAMA,EACX08K,EAAoBD,EAAcljL,EAASE,KAAMk+B,EAAS33B,GAC1D28K,EAAoBF,EAAcljL,IAGpCg1I,EAAMlwI,QAAU,SAAU9E,EAASyG,EAAK9G,GACtC0jL,EAAS1jL,GAAMqN,KAAK9M,OAGtB80I,EAAMzyG,OAAS,SAAUviC,EAASyG,GAChCvG,KAAK4iL,iBAAiBQ,WAGxBtuC,EAAMvmH,QAAU,SAAUzuB,EAASyG,GACjCvG,KAAK4iL,iBAAiBr0J,WAOxB,IAAI40J,EAAW,CACbh3K,KAAM,WACJ,IAAIk3K,GAAcrjL,KAAK+iL,cACvB/iL,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,mBACNsI,IAAK,iBACLu7K,qBAAsBD,KAG1Br8F,KAAM,WACJhnF,KAAKo7E,oBAAoBonG,EAAQx9G,IAAIhlE,KAAKF,YA0F9C,SAASyjL,EAAoB1jL,GAC3B,IAAIopI,EAAU,GAOd,OALArmI,EAAOzD,KAAK,CAAC,aAAc,eAAe,SAAUwN,GAClDs8H,EAAQt8H,GAAQ9M,EAAO8M,GACN,MAAjBs8H,EAAQt8H,KAAkBs8H,EAAQt8H,GAAQ,SACvB,IAAlBs8H,EAAQt8H,IAAqC,SAAlBs8H,EAAQt8H,MAAsBs8H,EAAQt8H,GAAQ,OAErEs8H,EAGT,SAASi6C,EAAoBF,EAAcljL,GACzCkjL,EAAaQ,cAAc,OAAQhB,EAAQrgK,MAAMriB,GAAW,EAAI,WAAa,UAG/E,SAASmjL,EAAoBD,EAAcljL,EAASgmH,EAAM5nF,EAAS33B,GACjE,IAAIk9K,EAAa39D,EAAKi9D,cAElB7kJ,GAA4B,qBAAjBA,EAAQz+B,OACrBgkL,EAA6B,mBAAhBvlJ,EAAQn2B,KAA2Bm2B,EAAQolJ,sBAG1Dx9D,EAAKi9D,cAAgBU,EACrBT,EAAaQ,cAAc,OAAQC,EAAa,WAAa,UAC7D,IAAIluI,EAAqB,IAAIV,EAAmB0uI,EAAoBP,EAAanjL,QAASC,EAAS,CACjG4jL,QAAS,CAAC,UAGZ59D,EAAK88D,iBAAiBe,UAAUpuI,EAAmBquI,cAAcr9K,GAAK,SAAU+5H,GAC9E,OAAOA,EAAWujD,gBAAkBvjD,EAAWwjD,cAAgB,SAAWxjD,EAAWujD,eAAiBvjD,EAAWwjD,cAAgB,QAAU,WACzIC,cAAYN,GAAa,CAC3BptI,UAAW,OACX2tI,WAAY,CAEVtrG,UAAW,EACXhnE,KAAM,qBAtHZojI,EAAM+tC,SAAW,SAAUptI,EAAOjmC,GAChC,GAAKA,EAAIitG,OAAUhnE,EAAMxqC,OAAzB,CAIA,IAAI+rK,EAAW,GACXl3K,EAAUE,KAAKF,QAEnBE,KAAK4iL,iBAAiBqB,aAAa,IAGnC,IAAI1uI,EAAqB,IAAIV,EAAmB0uI,EAAoBvjL,KAAK8vB,MAAMjwB,QAASC,EAAS,CAC/F4jL,QAAS,CAAC,UAEZnuI,EAAmB2uI,kBAAkBzuI,EAAO31C,GAAS,SAAUs2C,EAAM+tI,EAAY9jL,GAC/E,GAAsB,gBAAlBA,EAASZ,KAAb,CAIA,IAAI42C,EAAYD,EAAKC,UAEH,SAAdA,GACF+tI,EAAS,IAAK/jL,EAAU8jL,EAAW,IACnCC,EAAS,IAAK/jL,EAAU8jL,EAAW,KAEnCC,EAAS,CACPzrI,MAAO,IACPE,MAAO,KACPxC,GAAYh2C,EAAU8jL,OAG5B3B,EAAQ3hL,KAAKf,EAASk3K,GAEtBh3K,KAAKo7E,oBAAoB47F,GAEzB,SAASoN,EAAS5hL,EAASnC,EAAU24C,GACnC,IAAItpC,EAAOrP,EAASu3F,QAAQp1F,GACxB+M,EAAYG,EAAKogB,MACjBilD,EAAgBsvG,EAAa7hL,EAAS+M,EAAWzP,GAEjDs5E,EAAarE,EAAcsE,4BAA4B9pE,GAAW+pE,gBAEvC,MAA3BF,EAAWs+B,cAAmD,MAA3Bt+B,EAAWu+B,eAChD3+D,EAAS06B,EAAW,EAAG16B,EAAO1xC,QAASoI,EAAKjB,MAAM8W,YAAa,EAAG6zD,EAAWs+B,aAAct+B,EAAWu+B,eAGxG5iC,IAAkBiiG,EAASjiG,EAAc5sE,IAAM,CAC7CqzE,WAAYzG,EAAc5sE,GAC1BqnF,WAAYx2C,EAAO,GACnBy2C,SAAUz2C,EAAO,KAIrB,SAASqrI,EAAa7hL,EAAS+M,EAAWzP,GACxC,IAAIwkL,EAQJ,OAPAxkL,EAAQs+B,cAAc,CACpBnB,SAAU,WACVoB,QAAS,WACR,SAAUkmJ,GACX,IAAIz+J,EAAMy+J,EAAQrqG,aAAa13E,EAAS+M,EAAUwyB,gBAClDjc,IAAQw+J,EAAQC,MAEXD,IAQXxvC,EAAM15D,oBAAsB,SAAU47F,GACpC,IAAIvwK,EAAQ,GAEZtH,EAAK63K,GAAU,SAAU9sD,EAAW1uC,GAClC/0E,EAAM5F,KAAK+B,EAAO8E,MAAMwiH,OAE1BzjH,EAAMwE,QAAUjL,KAAKuG,IAAIC,eAAe,CACtC/G,KAAM,WACNuI,KAAMhI,KAAKiI,IACXxB,MAAOA,KA4CXiuI,EAAextF,SAAS,WAAYy7H,GAGpCv6K,EAAQyJ,sBAAqB,SAAUhS,GACrC,GAAKA,EAAL,CAIA,IAAI2kL,EAAe3kL,EAAOknF,WAAalnF,EAAOknF,SAAW,IAEpDnkF,EAAOogB,QAAQwhK,KAClB3kL,EAAOknF,SAAWy9F,EAAe,CAACA,IAGpC,IAAIt/F,EAAarlF,EAAOolF,QAExB,GAAIC,IAEEtiF,EAAOogB,QAAQkiE,KACjBA,EAAaA,EAAW,IAGtBA,GAAcA,EAAWC,SAAS,CACpC,IAAIs/F,EAAcv/F,EAAWC,QAAQ4B,SAGrC29F,EAAW,QAASD,GACpBC,EAAW,QAASD,IAIxB,SAASC,EAAWrgG,EAAUogG,GAC5B,GAAKA,EAAL,CAKA,IAAIE,EAAkBtgG,EAAW,QAC7BugG,EAAmBH,EAAYE,GAEX,MAApBC,GAAiD,QAArBA,GAA+BhiL,EAAOogB,QAAQ4hK,KAC5EA,GAAwC,IAArBA,GAAmD,SAArBA,EAA8B,GAAK,CAACA,IAGvFC,EAAiBxgG,GAAU,SAAUC,EAASt3C,GAC5C,GAAwB,MAApB43I,GAAiD,QAArBA,IAA+E,IAAjDhiL,EAAOiwB,QAAQ+xJ,EAAkB53I,GAA/F,CAIA,IAAI6yC,EAAS,CACXpgF,KAAM,SACNqlL,cAAc,EAEdrtE,WAAYgtE,EAAYhtE,YAAc,SAEtCtvG,GAAIu6K,EAAoBr+F,EAAWr3C,GAIrC6yC,EAAO8kG,GAAmB33I,EAC1Bw3I,EAAa3jL,KAAKg/E,QAItB,SAASglG,EAAiB5nJ,EAAU9e,GAClC,IAAImlB,EAAOzjC,EAAOo9B,GAEbr6B,EAAOogB,QAAQsgB,KAClBA,EAAOA,EAAO,CAACA,GAAQ,IAGzBnkC,EAAKmkC,EAAMnlB,OAGf,IAAI5e,EAAWojL,EACfjgL,EAAOC,QAAUpD,G,qBCxUjB,IAAIwlL,EAAe,CACjB,WAAc,EACd,cAAiB,EACjB,cAAiB,EACjB,eAAkB,EAClB,kBAAqB,EACrB,kBAAqB,EACrB,kBAAqB,EACrB,qBAAwB,EACxB,qBAAwB,GAG1B,SAASxlL,EAASklC,EAAKpqB,EAAU1M,GAC/B,OAAIo3K,EAAahoK,eAAe1C,GACvB1M,EAAS82B,EAAIC,IAGf/2B,EAGTjL,EAAOC,QAAUpD,G,uBCAjB,IAAI2T,EAAgB,EAAQ,QAoBxB3T,EAAW2T,EAAc1T,OAAO,CAClCC,KAAM,WACN6R,OAAQ,SAAUyjE,EAAej1E,EAASyG,EAAK23B,GAC7Cl+B,KAAK+0E,cAAgBA,EACrB/0E,KAAKF,QAAUA,EACfE,KAAKuG,IAAMA,GAqBbk1E,mBAAoB,WAClB,IAAI1G,EAAgB/0E,KAAK+0E,cACrBj1E,EAAUE,KAAKF,QACfklL,EAAgB,GAUpB,SAASt9B,EAAK/pD,EAAYpuF,EAAWitI,EAAOyoC,GAG1C,IAFA,IAAIzgL,EAEKyJ,EAAI,EAAGA,EAAIuuI,EAAMvxI,OAAQgD,IAChC,GAAIuuI,EAAMvuI,GAAG6hB,QAAU6tE,EAAY,CACjCn5F,EAAOg4I,EAAMvuI,GACb,MAICzJ,GACHg4I,EAAM37I,KAAK2D,EAAO,CAChBsrB,MAAO6tE,EACP16B,WAAY,GACZgiH,WAAYA,IAIhBzgL,EAAKy+D,WAAWpiE,KAAK0O,GAGvB,OA9BAwlE,EAAcuC,gBAAe,SAAUC,EAAUvqC,GAC/C,IAAIz9B,EAAYzP,EAAQmC,aAAas1E,EAAS7nE,KAAMs9B,GAEpD,GAAIz9B,EAAW,CACb,IAAIouF,EAAapuF,EAAUynD,mBAC3B2mC,GAAc+pD,EAAK/pD,EAAYpuF,EAAWy1K,EAAcrnF,EAAW1gE,YAAc+nJ,EAAcrnF,EAAW1gE,UAAY,IAAK0gE,EAAW57D,mBAEvI/hC,MAuBIglL,KAIXtiL,EAAOC,QAAUpD,G,uBCpFjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAoBRA,EAAQyJ,sBAAqB,SAAUrC,GAErCA,EAAIo0E,SAAWp0E,EAAIo0E,UAAY,O,uBC1BjC,IAAIhhF,EAAS,EAAQ,QAEjBsgC,EAAS,EAAQ,QAEjBqa,EAAa,EAAQ,QAErB2nI,EAAW,EAAQ,QAEnBpiL,EAAU,EAAQ,QAElB+gB,EAAU,EAAQ,QAElB8F,EAAQ9F,EAAQ8F,MAwBhBw7J,EAAoB,CAAC,aAAc,YAEvC,SAASC,EAAkBC,GACzB,MAAO,IAAMA,EAAiB,OAOhC,SAASriL,EAAa2J,EAAM2lC,EAAUpiC,GACpC,IAAI0H,EAAQ06B,EAAS3wB,cAAczR,EAAK,SACpC0iC,EAAaN,EAAS3wB,cAAczR,EAAKvD,GACzCotC,EAAazH,EAAS3wB,cAAczR,EAAKvD,EAAO,QAEpD,GAAKimC,GAA6B,SAAfA,EAAnB,CAIKhwC,EAAOogB,QAAQ+2B,KAClBA,EAAa,CAACA,EAAYA,IAG5B,IAAIM,EAAakD,EAAWv6C,aAAa4vC,GAAamH,EAAW,GAAK,GAAIA,EAAW,GAAK,EAAGA,EAAW,GAAIA,EAAW,GAAIniC,GAE3H,OADAyiC,EAAW1tC,KAAOA,EACX0tC,GAGT,SAAS7H,EAAWj7B,GAClB,IAAI2vE,EAAO,IAAIg+F,EAAS,CACtBv4K,KAAM,OACN2nB,kBAAkB,IAGpB,OADAgxJ,EAAcp+F,EAAK11E,MAAO+F,GACnB2vE,EAGT,SAASo+F,EAAcp4C,EAAa31H,GAClC21H,EAAY9yE,GAAK7iD,EAAO,GAAG,GAC3B21H,EAAY7yE,GAAK9iD,EAAO,GAAG,GAC3B21H,EAAY5yE,GAAK/iD,EAAO,GAAG,GAC3B21H,EAAY3yE,GAAKhjD,EAAO,GAAG,GAC3B21H,EAAY/iI,QAAU,EACtB,IAAI+pC,EAAM38B,EAAO,GAEb28B,GACFg5F,EAAYwW,KAAOxvG,EAAI,GACvBg5F,EAAYyW,KAAOzvG,EAAI,KAEvBg5F,EAAYwW,KAAOrsH,IACnB61G,EAAYyW,KAAOtsH,KAIvB,SAASkuJ,IACP,IAAIC,EAAYxlL,KACZylL,EAAaD,EAAUt6I,YAAY,cACnCw6I,EAAWF,EAAUt6I,YAAY,YACjC/pC,EAAQqkL,EAAUt6I,YAAY,SAElC,GAAKu6I,GAAeC,IAAYvkL,EAAMmyC,OAAtC,CAIA,IAAI2/H,EAAW,EACXr0J,EAAa5e,KAAK6hB,OAEtB,MAAOjD,EACDA,EAAWnQ,QACbwkK,GAAYr0J,EAAWnQ,MAAM,IAG/BmQ,EAAaA,EAAWiD,OAG1B,IAAIqlE,EAAOs+F,EAAUt6I,YAAY,QAGjC,GAAKlrC,KAAK2sD,SAAYu6B,EAAKv6B,QAA3B,CAIA,IAAIxiD,EAAU+8E,EAAK11E,MAAMrH,QACrBikG,EAAUlnB,EAAKy+F,QAAQ,GACvBC,EAAQ1+F,EAAKy+F,QAAQx7K,GACrB6yD,EAAI95B,EAAOinF,IAAI,GAAIy7D,EAAOx3E,GAG9B,GAFAlrE,EAAO8lB,UAAUgU,EAAGA,GAEhByoH,EAAY,CACdA,EAAWzlK,KAAK,WAAYouF,GAC5B,IAAIy3E,EAAU3+F,EAAK4+F,UAAU,GAC7BL,EAAWzlK,KAAK,WAAYnU,KAAK+E,GAAK,EAAI/E,KAAKk5B,MAAM8gJ,EAAQ,GAAIA,EAAQ,KACzEJ,EAAWzlK,KAAK,QAAS,CAACizJ,EAAW9oK,EAAS8oK,EAAW9oK,IAG3D,GAAIu7K,EAAU,CACZA,EAAS1lK,KAAK,WAAY4lK,GACtBC,EAAU3+F,EAAK4+F,UAAU,GAC7BJ,EAAS1lK,KAAK,YAAanU,KAAK+E,GAAK,EAAI/E,KAAKk5B,MAAM8gJ,EAAQ,GAAIA,EAAQ,KACxEH,EAAS1lK,KAAK,QAAS,CAACizJ,EAAW9oK,EAAS8oK,EAAW9oK,IAGzD,IAAKhJ,EAAMmyC,OAAQ,CAEjB,IAAIq6B,EACA9nE,EACAD,EACA2mF,EAJJprF,EAAM6e,KAAK,WAAY4lK,GAKvB,IAAIh8H,EAAWzoD,EAAM4kL,gBACjBC,EAAYp8H,EAAS,GAAKqpH,EAC1BgT,EAAYr8H,EAAS,GAAKqpH,EAC1BiT,EAAc/7K,EAAU,EAExByJ,GADAiyK,EAAU3+F,EAAK4+F,UAAUI,GACrB,CAACL,EAAQ,IAAKA,EAAQ,KAC1Bt/H,EAAK2gC,EAAKy+F,QAAQO,GAElBtyK,EAAE,GAAK,IACTA,EAAE,IAAMA,EAAE,GACVA,EAAE,IAAMA,EAAE,IAGZ,IAYIzB,EAZA+zE,EAAM2/F,EAAQ,GAAK,GAAK,EAAI,EAEhC,GAAyB,UAArB1kL,EAAMglL,YAA+C,QAArBhlL,EAAMglL,WAAsB,CAC9D,IAAIx1K,GAAY9E,KAAKk5B,MAAM8gJ,EAAQ,GAAIA,EAAQ,IAE3CD,EAAM,GAAKx3E,EAAQ,KACrBz9F,EAAW9E,KAAK+E,GAAKD,GAGvBxP,EAAM6e,KAAK,WAAYrP,GAKzB,OAAQxP,EAAMglL,YACZ,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,SACHh0K,GAAM8zK,EACNrgL,EAAoB,SACpB,MAEF,IAAK,oBACL,IAAK,qBACL,IAAK,kBACHuM,EAAK8zK,EACLrgL,EAAoB,MACpB,MAEF,QACEuM,EAAK,EACLvM,EAAoB,SAGxB,OAAQzE,EAAMglL,YACZ,IAAK,MACHx4G,EAAe,CAAC3Q,EAAE,GAAKgpH,EAAYJ,EAAM,GAAI5oH,EAAE,GAAKipH,EAAYL,EAAM,IACtE//K,EAAYm3D,EAAE,GAAK,GAAM,OAASA,EAAE,IAAM,GAAM,QAAU,SAC1Dp3D,EAAoBo3D,EAAE,GAAK,GAAM,MAAQA,EAAE,IAAM,GAAM,SAAW,SAClE,MAEF,IAAK,QACH2Q,EAAe,EAAE3Q,EAAE,GAAKgpH,EAAY53E,EAAQ,IAAKpxC,EAAE,GAAKipH,EAAY73E,EAAQ,IAC5EvoG,EAAYm3D,EAAE,GAAK,GAAM,QAAUA,EAAE,IAAM,GAAM,OAAS,SAC1Dp3D,EAAoBo3D,EAAE,GAAK,GAAM,SAAWA,EAAE,IAAM,GAAM,MAAQ,SAClE,MAEF,IAAK,iBACL,IAAK,cACL,IAAK,oBACH2Q,EAAe,CAACq4G,EAAY9/F,EAAMkoB,EAAQ,GAAIA,EAAQ,GAAKj8F,GAC3DtM,EAAYggL,EAAQ,GAAK,EAAI,QAAU,OACvCt5F,EAAa,EAAEy5F,EAAY9/F,GAAM/zE,GACjC,MAEF,IAAK,kBACL,IAAK,eACL,IAAK,qBACL,IAAK,SACHw7D,EAAe,CAACpnB,EAAG,GAAIA,EAAG,GAAKp0C,GAC/BtM,EAAY,SACZ0mF,EAAa,CAAC,GAAIp6E,GAClB,MAEF,IAAK,eACL,IAAK,YACL,IAAK,kBACHw7D,EAAe,EAAEq4G,EAAY9/F,EAAM0/F,EAAM,GAAIA,EAAM,GAAKzzK,GACxDtM,EAAYggL,EAAQ,IAAM,EAAI,QAAU,OACxCt5F,EAAa,CAACy5F,EAAY9/F,GAAM/zE,GAChC,MAGJhR,EAAM6e,KAAK,CACTxa,MAAO,CAELI,kBAAmBzE,EAAMilL,iBAAmBxgL,EAC5CC,UAAW1E,EAAMklL,aAAexgL,GAElCmF,SAAU2iE,EACVl/D,MAAO,CAACwkK,EAAUA,GAClB1vI,OAAQgpD,OAWd,SAASr6C,EAAKI,EAAUpiC,EAAKqiC,GAC3BzvC,EAAQ6B,MAAMmI,KAAK9M,MAEnBA,KAAKsmL,YAAYh0I,EAAUpiC,EAAKqiC,GAGlC,IAAIg0I,EAAYr0I,EAAKpkC,UAErBy4K,EAAUC,aAAejB,EAEzBgB,EAAUD,YAAc,SAAUh0I,EAAUpiC,EAAKqiC,GAC/C,IAAIzwC,EAAcwwC,EAAStzB,UACvB4vC,EAAatc,EAAStxB,cAAc9Q,GACpCg3E,EAAO10C,EAAWoc,GACtBs4B,EAAK11E,MAAMrH,QAAU,EACrBrH,EAAQk4C,UAAUksC,EAAM,CACtB11E,MAAO,CACLrH,QAAS,IAEVrI,EAAaoO,GAChBlQ,KAAKsF,IAAI4hF,GACT,IAAI/lF,EAAQ,IAAI2B,EAAQyC,KAAK,CAC3BoH,KAAM,QAIN85K,yBAA0B,IAE5BzmL,KAAKsF,IAAInE,GACTyB,EAAOzD,KAAKgmL,GAAmB,SAAUE,GACvC,IAAIxyI,EAAS7vC,EAAaqiL,EAAgB/yI,EAAUpiC,GAIpDlQ,KAAKsF,IAAIutC,GACT7yC,KAAKolL,EAAkBC,IAAmB/yI,EAAS3wB,cAAczR,EAAKm1K,KACrErlL,MAEHA,KAAK2hI,iBAAiBrvF,EAAUpiC,EAAKqiC,IAGvCg0I,EAAUtyI,WAAa,SAAU3B,EAAUpiC,EAAKqiC,GAC9C,IAAIzwC,EAAcwwC,EAAStzB,UACvBkoE,EAAOlnF,KAAKkrC,YAAY,QACxB0jB,EAAatc,EAAStxB,cAAc9Q,GACpCkC,EAAS,CACXZ,MAAO,IAET8zK,EAAclzK,EAAOZ,MAAOo9C,GAC5B9rD,EAAQk8B,YAAYkoD,EAAM90E,EAAQtQ,EAAaoO,GAC/CtN,EAAOzD,KAAKgmL,GAAmB,SAAUE,GACvC,IAAIzyI,EAAaN,EAAS3wB,cAAczR,EAAKm1K,GACzCt9K,EAAMq9K,EAAkBC,GAE5B,GAAIrlL,KAAK+H,KAAS6qC,EAAY,CAC5B5yC,KAAKqiC,OAAOriC,KAAKkrC,YAAYm6I,IAC7B,IAAIxyI,EAAS7vC,EAAaqiL,EAAgB/yI,EAAUpiC,GACpDlQ,KAAKsF,IAAIutC,GAGX7yC,KAAK+H,GAAO6qC,IACX5yC,MAEHA,KAAK2hI,iBAAiBrvF,EAAUpiC,EAAKqiC,IAGvCg0I,EAAU5kD,iBAAmB,SAAUrvF,EAAUpiC,EAAKqiC,GACpD,IAAIzwC,EAAcwwC,EAAStzB,UACvBkoE,EAAOlnF,KAAKkrC,YAAY,QACxB3pC,EAAYgxC,GAAeA,EAAYhxC,UACvCqgI,EAAiBrvF,GAAeA,EAAYqvF,eAC5C1hG,EAAaqS,GAAeA,EAAYrS,WACxCC,EAAkBoS,GAAeA,EAAYpS,gBAEjD,IAAKoS,GAAeD,EAASiK,cAAe,CAC1C,IAAIp7B,EAAYmxB,EAASlxB,aAAalR,GACtC3O,EAAY4f,EAAUF,SAAS,aAAa29B,eAC5CgjF,EAAiBzgH,EAAUF,SAAS,sBAAsB29B,eAC1D1e,EAAa/e,EAAUF,SAAS,SAChCkf,EAAkBhf,EAAUF,SAAS,kBAGvC,IAAIof,EAAciS,EAAS3wB,cAAczR,EAAK,SAC1Cw2K,EAAgB9jL,EAAOuzK,UAAU7jI,EAAS3wB,cAAczR,EAAK,WAAY3O,EAAUE,QAAS,GAChGylF,EAAKnrC,SAASn5C,EAAO6O,SAAS,CAC5BqvB,eAAe,EACfpvB,KAAM,OACNmtC,OAAQxe,EACR5+B,QAASilL,GACRnlL,IACH2lF,EAAK3lD,WAAaqgG,EAElBh/H,EAAOzD,KAAKgmL,GAAmB,SAAUE,GACvC,IAAIxyI,EAAS7yC,KAAKkrC,YAAYm6I,GAE1BxyI,IACFA,EAAOE,SAAS1S,GAChBwS,EAAOhS,SAAS,CACdp/B,QAASilL,OAGZ1mL,MACH,IAGI2mL,EACAh6G,EAJAtoE,EAAY67B,EAAWsc,WAAW,QAClCxb,EAAiBb,EAAgBqc,WAAW,QAC5Cr7C,EAAQnB,KAAKkrC,YAAY,SAI7B,IAAI7mC,GAAa28B,KACf2lJ,EAAoBtmJ,GAAe,OACnCssC,EAAW7qE,EAAY8yD,kBAAkB1kD,EAAK,SAAUoiC,EAAS0qD,UAEjD,MAAZrwB,GAAkB,CACpB,IAAIi6G,EAAS9kL,EAAYo+E,YAAYhwE,GACrCy8D,EAAqB,MAAVi6G,EAAiBt0I,EAAS2K,QAAQ/sC,GAAOypB,SAASitJ,GAAUj9J,EAAMi9J,GAAUA,EAI3F,IAAIC,EAAaxiL,EAAYsoE,EAAW,KACpCm6G,EAAe9lJ,EAAiBp+B,EAAO6xB,UAAU3yB,EAAY8yD,kBAAkB1kD,EAAK,WAAYoiC,EAAS0qD,UAAWrwB,GAAY,KAChIo6G,EAAa5lL,EAAMqE,MAGvB,GAAkB,MAAdqhL,GAAsC,MAAhBC,EAAsB,CAC9ChkL,EAAQmqE,aAAa9rE,EAAMqE,MAAO06B,EAAY,CAC5Cv6B,KAAMkhL,GACL,CACD1pI,UAAWwpI,IAEbxlL,EAAMklL,YAAcU,EAAWlhL,UAC/B1E,EAAMilL,gBAAkBW,EAAWnhL,kBAEnCzE,EAAMglL,WAAajmJ,EAAWh+B,IAAI,aAAe,SACjD,IAAI0nD,EAAW1pB,EAAWh+B,IAAI,YAEzBU,EAAOogB,QAAQ4mC,KAClBA,EAAW,CAACA,EAAUA,IAGxBzoD,EAAM4kL,gBAAkBn8H,EAKxBzoD,EAAMogC,WAFY,MAAhBulJ,EAEiB,CACjBnhL,KAAMmhL,EACNjjL,SAAUs8B,EAAgBr8B,cAAa,GAGvCgrE,UAAW3uC,EAAgBqc,WAAW,aACtCuyB,WAAY5uC,EAAgBqc,WAAW,cACvC9yB,SAAUyW,EAAgBqc,WAAW,YACrCwyB,WAAY7uC,EAAgBqc,WAAW,eAGtB,CACjB72C,KAAM,MAIVxE,EAAMmyC,QAAUjvC,IAAc28B,EAC9Bl+B,EAAQq/B,cAAcniC,OAGxBumL,EAAU9rI,UAAY,WACpBz6C,KAAKs9B,QAAQ,aAGfipJ,EAAU7rI,SAAW,WACnB16C,KAAKs9B,QAAQ,WAGfipJ,EAAU7xI,aAAe,SAAUpC,EAAUpiC,GAC3ClQ,KAAKslL,cAAchzI,EAAStxB,cAAc9Q,KAG5Cq2K,EAAUjB,cAAgB,SAAU/tK,GAClC,IAAIyvK,EAAWhnL,KAAKkrC,YAAY,QAChCo6I,EAAc0B,EAASx1K,MAAO+F,GAC9ByvK,EAAS10K,SAGX1P,EAAOwxB,SAAS8d,EAAMpvC,EAAQ6B,OAC9B,IAAIpF,EAAW2yC,EACfxvC,EAAOC,QAAUpD,G,uBClbjB,IAAIikB,EAAU,EAAQ,QAIlBtkB,GAFUskB,EAAQC,QAEV,EAAQ,SAEhBtkB,EAAOD,EAAMC,KACbkyD,EAASnyD,EAAMmyD,OACfpqD,EAAM/H,EAAM+H,IACZ+b,EAAU9jB,EAAM8jB,QAChB6P,EAAU3zB,EAAM2zB,QAChB5M,EAAW/mB,EAAM+mB,SACjBpG,EAAW3gB,EAAM2gB,SACjBzgB,EAAgBF,EAAME,cACtBiuC,EAASnuC,EAAMmuC,OACf3lC,EAAQxI,EAAMwI,MACdmZ,EAAQ3hB,EAAM2hB,MACdrhB,EAASN,EAAMM,OACf6P,EAAQnQ,EAAMmQ,MAEd+pC,EAAY,EAAQ,QAEpB/6B,EAAQ,EAAQ,QAEhBpL,EAAiB,EAAQ,QAEzBg0K,EAAgB,EAAQ,QAExB/wC,EAAoB,EAAQ,QAE5BvtI,EAAgB,EAAQ,QAExBylC,EAAuBzlC,EAAcylC,qBAuCrC84I,EAAmB,cASnB5nE,EAAcjhG,EAAM7e,OAAO,CAC7BwJ,KAAM,SAAUnJ,EAAQq/C,EAAa+iE,EAAO+C,GAC1C/C,EAAQA,GAAS,GACjBjiH,KAAKH,OAAS,KAOdG,KAAKwiH,OAAS,IAAInkG,EAAM4jG,GAKxBjiH,KAAKmnL,eAAiBniE,GAExBH,UAAW,SAAUhlH,EAAQolH,GAC3B53E,IAAS65I,KAAoBrnL,GAAS,gCAEtCG,KAAKmnL,eAAetiE,UAAUhlH,EAAQolH,GAEtCjlH,KAAK82G,YAAY,OAUnBA,YAAa,SAAUr3G,GACrB,IAAIksH,GAAgB,EAChB3G,EAAgBhlH,KAAKmnL,eAEzB,IAAK1nL,GAAiB,aAATA,EAAqB,CAChC,IAAI2nL,EAAapiE,EAAcqiE,YAAqB,aAAT5nL,GAEtCO,KAAKH,QAAmB,aAATJ,GAGlBO,KAAK4nH,cACL5nH,KAAK8iE,YAAYskH,IAHjBE,EAASx6K,KAAK9M,KAAMonL,GAMtBz7D,GAAgB,EAOlB,GAJa,aAATlsH,GAAgC,UAATA,GACzBO,KAAK4nH,eAGFnoH,GAAiB,aAATA,GAAgC,aAATA,EAAqB,CACvD,IAAI8nL,EAAiBviE,EAAcwiE,kBAAkBxnL,MACrDunL,IAAmBvnL,KAAK8iE,YAAYykH,GAAiB57D,GAAgB,GAGvE,IAAKlsH,GAAiB,aAATA,GAAgC,UAATA,EAAkB,CACpD,IAAIgoL,EAAeziE,EAAc0iE,eAAe1nL,KAAMA,KAAK8iH,MAEvD2kE,EAAax8K,QACf9L,EAAKsoL,GAAc,SAAUE,GAC3B3nL,KAAK8iE,YAAY6kH,EAAah8D,GAAgB,KAC7C3rH,MAIP,OAAO2rH,GAMT7oD,YAAa,SAAUr+C,GACrB,IAAI5kB,EAASG,KAAKH,OACd+nL,EAAgB5nL,KAAK4iH,eACrBilE,EAAc,GAkBlB,SAASC,EAAe7qJ,EAAUv9B,GAChC,IAAIqoL,EAAmB3uI,EAAU2/D,iBAAiBt0F,EAAUwY,IACxD+qJ,EAAY5uI,EAAU6uI,gBAAgBL,EAAc1lL,IAAI+6B,GAAW8qJ,GACvE3uI,EAAU8uI,cAAcF,GAExB7oL,EAAK6oL,GAAW,SAAUxjL,EAAM2C,GAC9B,IAAIqI,EAAMhL,EAAK3E,OAEXomB,EAASzW,KACXhL,EAAK2jL,QAAQlrJ,SAAWA,EACxBz4B,EAAK2jL,QAAQ9pJ,QAAU+pJ,EAAiBnrJ,EAAUztB,EAAKhL,EAAK+qC,WAGhE,IAAI2zB,EAAkBmlH,EAAqBT,EAAeloL,GAC1DG,EAAOo9B,GAAY,GACnB2qJ,EAAcrlL,IAAI06B,EAAU,IAC5B99B,EAAK6oL,GAAW,SAAUM,EAAYnhL,GACpC,IAAIqgH,EAAiB8gE,EAAW/4I,MAC5BwgI,EAAeuY,EAAWzoL,OAK9B,GAJAwtC,EAAOpnB,EAAS8pJ,IAAiBvoD,EAAgB,8BAI5CuoD,EAGE,CACL,IAAIwY,EAAsBt1K,EAAe23G,SAAS3tF,EAAUqrJ,EAAWH,QAAQ9pJ,SAAS,GAExF,GAAImpF,GAAkBA,EAAez5G,cAAgBw6K,EACnD/gE,EAAe76G,KAAO27K,EAAWH,QAAQx7K,KAEzC66G,EAAe1kD,YAAYitG,EAAc/vK,MACzCwnH,EAAeh0G,cAAcu8J,GAAc,OACtC,CAEL,IAAIx5B,EAAW/2I,EAAO,CACpB0jE,gBAAiBA,EACjBnhC,eAAgB56B,GACfmhL,EAAWH,SACd3gE,EAAiB,IAAI+gE,EAAoBxY,EAAc/vK,KAAMA,KAAMu2I,GACnE/2I,EAAOgoH,EAAgB+uB,GACvB/uB,EAAex+G,KAAK+mK,EAAc/vK,KAAMA,KAAMu2I,GAK9C/uB,EAAeh0G,cAAc,MAAM,SAvBrCg0G,EAAe1kD,YAAY,GAAI9iE,MAC/BwnH,EAAeh0G,cAAc,IAAI,GA0BnCo0K,EAAc1lL,IAAI+6B,GAAU91B,GAASqgH,EACrC3nH,EAAOo9B,GAAU91B,GAASqgH,EAAe3nH,SACxCG,MAEc,WAAbi9B,GACFurJ,EAAoBxoL,KAAM4nL,EAAc1lL,IAAI,WAzEhDksC,EAAqBpuC,MAGrBb,EAAKslB,GAAW,SAAUgkK,EAAiBxrJ,GAClB,MAAnBwrJ,IAICx1K,EAAe+jI,SAAS/5G,GAGlBA,GACT4qJ,EAAYhnL,KAAKo8B,GAFjBp9B,EAAOo9B,GAAgC,MAApBp9B,EAAOo9B,GAAoBv1B,EAAM+gL,GAAmB5nK,EAAMhhB,EAAOo9B,GAAWwrJ,GAAiB,OAKpHx1K,EAAey1K,kBAAkBb,EAAa50K,EAAewoJ,uBAAwBqsB,EAAgB9nL,MA8DrGA,KAAK2oL,kBAAoBvpL,EAAcY,KAAK4oL,eAAiB5oL,KAAK4oL,gBAAkB,KAQtFzjE,UAAW,WACT,IAAItlH,EAAS6H,EAAM1H,KAAKH,QAgBxB,OAfAV,EAAKU,GAAQ,SAAUyjC,EAAMrG,GAC3B,GAAIhqB,EAAe+jI,SAAS/5G,GAAW,CACjCqG,EAAO8V,EAAU2/D,iBAAiBz1E,GAEtC,IAFA,IAESr1B,EAAIq1B,EAAKr4B,OAAS,EAAGgD,GAAK,EAAGA,IAEhCmrC,EAAUyvI,UAAUvlJ,EAAKr1B,KAC3Bq1B,EAAK2yB,OAAOhoD,EAAG,GAInBpO,EAAOo9B,GAAYqG,aAGhBzjC,EAAOqnL,GACPrnL,GAMTo3I,SAAU,WACR,OAAOj3I,KAAKwiH,QAQdvgH,aAAc,SAAUg7B,EAAU/sB,GAChC,IAAIiT,EAAOnjB,KAAK4iH,eAAe1gH,IAAI+6B,GAEnC,GAAI9Z,EACF,OAAOA,EAAKjT,GAAO,IAcvB4gD,gBAAiB,SAAUk4D,GACzB,IAAI/rF,EAAW+rF,EAAU/rF,SAEzB,IAAKA,EACH,MAAO,GAGT,IAUItW,EAVAxf,EAAQ6hH,EAAU7hH,MAClBgB,EAAK6gH,EAAU7gH,GACfwE,EAAOq8G,EAAUr8G,KAEjBm8K,EAAO9oL,KAAK4iH,eAAe1gH,IAAI+6B,GAEnC,IAAK6rJ,IAASA,EAAK79K,OACjB,MAAO,GAKT,GAAa,MAAT9D,EACG6b,EAAQ7b,KACXA,EAAQ,CAACA,IAGXwf,EAAS0qC,EAAOpqD,EAAIE,GAAO,SAAU+I,GACnC,OAAO44K,EAAK54K,OACV,SAAUzE,GACZ,QAASA,UAEN,GAAU,MAANtD,EAAY,CACrB,IAAI4gL,EAAY/lK,EAAQ7a,GACxBwe,EAAS0qC,EAAOy3H,GAAM,SAAUE,GAC9B,OAAOD,GAAal2J,EAAQ1qB,EAAI6gL,EAAI7gL,KAAO,IAAM4gL,GAAaC,EAAI7gL,KAAOA,UAEtE,GAAY,MAARwE,EAAc,CACvB,IAAIs8K,EAAcjmK,EAAQrW,GAC1Bga,EAAS0qC,EAAOy3H,GAAM,SAAUE,GAC9B,OAAOC,GAAep2J,EAAQlmB,EAAMq8K,EAAIr8K,OAAS,IAAMs8K,GAAeD,EAAIr8K,OAASA,UAIrFga,EAASmiK,EAAKxhL,QAGhB,OAAO4hL,EAAgBviK,EAAQqiG,IA+BjC22C,eAAgB,SAAU32C,GACxB,IAAI5nF,EAAQ4nF,EAAU5nF,MAClBnE,EAAW+rF,EAAU/rF,SACrBksJ,EAAYC,EAAahoJ,GACzBza,EAASwiK,EAAYnpL,KAAK8wD,gBAAgBq4H,GAAanpL,KAAK4iH,eAAe1gH,IAAI+6B,GACnF,OAAOosJ,EAASH,EAAgBviK,EAAQqiG,IAExC,SAASogE,EAAa91G,GACpB,IAAIg2G,EAAYrsJ,EAAW,QACvBssJ,EAAStsJ,EAAW,KACpBusJ,EAAWvsJ,EAAW,OAC1B,OAAOq2C,GAAsB,MAAhBA,EAAEg2G,IAAmC,MAAbh2G,EAAEi2G,IAAkC,MAAfj2G,EAAEk2G,GAMxD,KAN6E,CAC/EvsJ,SAAUA,EAEV91B,MAAOmsE,EAAEg2G,GACTnhL,GAAImrE,EAAEi2G,GACN58K,KAAM2mE,EAAEk2G,IAIZ,SAASH,EAASjpK,GAChB,OAAO4oG,EAAU33D,OAASA,EAAOjxC,EAAK4oG,EAAU33D,QAAUjxC,IA2B9Dge,cAAe,SAAUnB,EAAU9e,EAAIyB,GACrC,IAAIgoK,EAAgB5nL,KAAK4iH,eAEzB,GAAwB,oBAAb3lF,EACTrd,EAAUzB,EACVA,EAAK8e,EACL2qJ,EAAczoL,MAAK,SAAU+6B,EAAY4H,GACvC3iC,EAAK+6B,GAAY,SAAUzG,EAAWtsB,GACpCgX,EAAGrR,KAAK8S,EAASkiB,EAAerO,EAAWtsB,cAG1C,GAAI0Y,EAASod,GAClB99B,EAAKyoL,EAAc1lL,IAAI+6B,GAAW9e,EAAIyB,QACjC,GAAIqG,EAASgX,GAAW,CAC7B,IAAIwsJ,EAAczpL,KAAK2/J,eAAe1iI,GACtC99B,EAAKsqL,EAAatrK,EAAIyB,KAQ1BspI,gBAAiB,SAAUv8I,GACzB,IAAI6pE,EAASx2E,KAAK4iH,eAAe1gH,IAAI,UAErC,OAAOmvD,EAAOmlB,GAAQ,SAAUkzG,GAC9B,OAAOA,EAAU/8K,OAASA,MAQ9B0sC,iBAAkB,SAAUtC,GAC1B,OAAO/2C,KAAK4iH,eAAe1gH,IAAI,UAAU60C,IAU3Cua,gBAAiB,SAAUjzB,GACzB,IAAIm4C,EAASx2E,KAAK4iH,eAAe1gH,IAAI,UAErC,OAAOmvD,EAAOmlB,GAAQ,SAAUkzG,GAC9B,OAAOA,EAAUrrJ,UAAYA,MAOjCsuI,UAAW,WACT,OAAO3sK,KAAK4iH,eAAe1gH,IAAI,UAAUoF,SAM3CqiL,eAAgB,WACd,OAAO3pL,KAAK4iH,eAAe1gH,IAAI,UAAU+I,QAU3CutC,WAAY,SAAUr6B,EAAIyB,GACxBgqK,EAAwB5pL,MACxBb,EAAKa,KAAK4oL,gBAAgB,SAAUiB,GAClC,IAAIrzG,EAASx2E,KAAK4iH,eAAe1gH,IAAI,UAAU2nL,GAE/C1rK,EAAGrR,KAAK8S,EAAS42D,EAAQqzG,KACxB7pL,OASLipJ,cAAe,SAAU9qI,EAAIyB,GAC3BzgB,EAAKa,KAAK4iH,eAAe1gH,IAAI,UAAWic,EAAIyB,IAW9CymB,iBAAkB,SAAUhI,EAASlgB,EAAIyB,GACvCgqK,EAAwB5pL,MACxBb,EAAKa,KAAK4oL,gBAAgB,SAAUiB,GAClC,IAAIrzG,EAASx2E,KAAK4iH,eAAe1gH,IAAI,UAAU2nL,GAE3CrzG,EAAOn4C,UAAYA,GACrBlgB,EAAGrR,KAAK8S,EAAS42D,EAAQqzG,KAE1B7pL,OAULoxF,oBAAqB,SAAU/yD,EAASlgB,EAAIyB,GAC1C,OAAOzgB,EAAKa,KAAKsxD,gBAAgBjzB,GAAUlgB,EAAIyB,IAMjD2xC,iBAAkB,SAAUzvD,GAE1B,OADA8nL,EAAwB5pL,MACyC,MAA1DA,KAAK2oL,kBAAkBzmL,IAAIJ,EAAYigC,iBAMhD+nJ,wBAAyB,WACvB,OAAQ9pL,KAAK4oL,gBAAkB,IAAIthL,SAOrCyiL,aAAc,SAAU5rK,EAAIyB,GAC1BgqK,EAAwB5pL,MACxB,IAAIgqL,EAAiB34H,EAAOrxD,KAAK4iH,eAAe1gH,IAAI,UAAWic,EAAIyB,GACnE4oK,EAAoBxoL,KAAMgqL,IAE5BpiE,YAAa,SAAU1pF,GACrB,IAAI0pJ,EAAgB5nL,KAAK4iH,eACzB4lE,EAAoBxoL,KAAM4nL,EAAc1lL,IAAI,WAC5C,IAAI+nL,EAAiB,GACrBrC,EAAczoL,MAAK,SAAU+6B,EAAY4H,GACvCmoJ,EAAeppL,KAAKihC,MAEtB7uB,EAAey1K,kBAAkBuB,EAAgBh3K,EAAewoJ,wBAAwB,SAAU35H,EAAepiC,GAC/GP,EAAKyoL,EAAc1lL,IAAI4/B,IAAgB,SAAUrO,IAC5B,WAAlBqO,IAA+BooJ,EAAkBz2J,EAAWyK,KAAazK,EAAUm0F,uBAM5F,SAASsiE,EAAkBpoL,EAAao8B,GACtC,GAAIA,EAAS,CACX,IAAI/2B,EAAQ+2B,EAAQisJ,YAChBhiL,EAAK+1B,EAAQlX,SACbra,EAAOuxB,EAAQ0S,WACnB,OAAgB,MAATzpC,GAAiBrF,EAAYigC,iBAAmB56B,GAAe,MAANgB,GAAcrG,EAAYqG,KAAOA,GAAc,MAARwE,GAAgB7K,EAAY6K,OAASA,GAQhJ,SAASy9K,EAAWvqL,EAAQoiH,GAG1B,IAAIooE,EAAqBxqL,EAAO+X,QAAU/X,EAAOyqL,WACjDnrL,EAAK8iH,GAAO,SAAUsoE,EAAW59K,GAClB,eAATA,GAAyB09K,GAKxBp3K,EAAe+jI,SAASrqI,KACF,kBAAd49K,EACT1qL,EAAO8M,GAAS9M,EAAO8M,GAA2BkU,EAAMhhB,EAAO8M,GAAO49K,GAAW,GAAlD7iL,EAAM6iL,GAEjB,MAAhB1qL,EAAO8M,KACT9M,EAAO8M,GAAQ49K,OAOzB,SAASjD,EAASF,GAChBA,EAAaA,EAGbpnL,KAAKH,OAAS,GACdG,KAAKH,OAAOqnL,GAAoB,EAQhClnL,KAAK4iH,eAAiBxjH,EAAc,CAClCo3E,OAAQ,KASVx2E,KAAK4oL,eACL5oL,KAAK2oL,kBACLyB,EAAWhD,EAAYpnL,KAAKwiH,OAAO3iH,QAEnCghB,EAAMumK,EAAYH,GAAe,GACjCjnL,KAAK8iE,YAAYskH,GASnB,SAASiB,EAAqBT,EAAevnD,GACtCr9G,EAAQq9G,KACXA,EAAQA,EAAQ,CAACA,GAAS,IAG5B,IAAI5mH,EAAM,GAIV,OAHAta,EAAKkhI,GAAO,SAAU5gI,GACpBga,EAAIha,IAASmoL,EAAc1lL,IAAIzC,IAAS,IAAI6H,WAEvCmS,EAOT,SAAS2uK,EAAiBnrJ,EAAU8yI,EAAcya,GAChD,IAAInsJ,EAAU0xI,EAAatwK,KAAOswK,EAAatwK,KAAO+qL,EAAiBA,EAAensJ,QACpFprB,EAAem1K,iBAAiBnrJ,EAAU8yI,GAE5C,OAAO1xI,EAOT,SAASmqJ,EAAoB1oL,EAAS03E,GACpC13E,EAAQ6oL,kBAAoBvpL,EAAcU,EAAQ8oL,eAAiB3hL,EAAIuwE,GAAc,SAAUhB,GAC7F,OAAOA,EAAOz0C,mBACV,IAOR,SAASmnJ,EAAgBhvJ,EAAY8uF,GAGnC,OAAOA,EAAUjsG,eAAe,WAAas0C,EAAOn3B,GAAY,SAAU8uJ,GACxE,OAAOA,EAAI3qJ,UAAY2qF,EAAU3qF,WAC9BnE,EAOP,SAAS0vJ,EAAwB9pL,IAEjCuP,EAAMiwG,EAAa42B,GACnB,IAAI32I,EAAW+/G,EACf58G,EAAOC,QAAUpD,G,uBChsBjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QAEpBqxI,EAAc,EAAQ,QAEtB1jJ,EAAa,EAAQ,QAErBljB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAoBvBk2J,EAA2B,CAE7BxpK,KAAM,KACNse,aAAc,KAEdl8B,MAAOmnL,EAAY9lL,MACnBghC,MAAO8kJ,EAAYzjH,MACnBrhE,KAAM8kL,EAAYllL,MAKpB6C,EAAQyJ,sBAAqB,SAAUhS,GACrC,IAAI8qL,EAAgB9qL,EAAOiD,QAOvBF,EAAOogB,QAAQ2nK,GACZA,EAAc,IAAOA,EAAc,GAAGC,SAOzC/qL,EAAOiD,QAAU,CAACjD,EAAOiD,QAAQ,IANjCjD,EAAOiD,QAAU,CAAC,CAChB8nL,SAAUD,IAOLA,IAAkBA,EAAcC,WACzC/qL,EAAOiD,QAAU,CAAC,CAChB8nL,SAAU,CAACD,SAOjB,IAAIE,EAAeziL,EAAQ48C,qBAAqB,CAC9CvlD,KAAM,UACNsB,cAAe,CA2Bb6pL,SAAU,GACVE,SAAU,MAUZC,mBAAoB,KAKpBjoH,YAAa,SAAUjjE,GAErB,IAAI+qL,EAAW5qL,KAAKH,OAAO+qL,SAC3B5qL,KAAKH,OAAO+qL,SAAW,KACvBC,EAAa5hL,WAAWjJ,KAAM,cAAekJ,WAC7ClJ,KAAKH,OAAO+qL,SAAWA,GAMzBp3K,cAAe,SAAUiR,EAAWC,GAClC,IAAI6B,EAAavmB,KAAKH,OAClBs2D,GAAWzxC,EAAS6B,EAAa9B,GAAWmmK,SAC5CI,EAAYzkK,EAAWqkK,SAAWlmK,EAAS,GAAK6B,EAAWqkK,SAC3DK,EAAgB,GAEpBjrL,KAAKkrL,SAAS/0H,EAAS80H,GAEvB,IAAIE,EAAgB/xI,EAAU6uI,gBAAgB+C,EAAWC,GACzD7xI,EAAU8uI,cAAciD,GAExB,IAAIC,EAAoBprL,KAAK+qL,mBAAqB,GAClDnoL,EAAOzD,KAAKgsL,GAAe,SAAU7C,EAAYnhL,GAC/C,IAAIkkL,EAAc/C,EAAWzoL,OAExBwrL,IAILD,EAAkBvqL,KAAKwqL,GACvBC,EAAwBhD,EAAY+C,GACpCE,EAAwBP,EAAW7jL,EAAOkkL,GAC1CG,EAAqBR,EAAU7jL,GAAQkkL,MACtCrrL,MAEH,IAAK,IAAIiO,EAAI+8K,EAAU//K,OAAS,EAAGgD,GAAK,EAAGA,IACrB,MAAhB+8K,EAAU/8K,GACZ+8K,EAAU/0H,OAAOhoD,EAAG,UAIb+8K,EAAU/8K,GAAGw9K,SAwB1BP,SAAU,SAAUQ,EAAY/kK,EAAQglK,GACtC/oL,EAAOzD,KAAKusL,GAAY,SAAU7rL,GAChC,GAAKA,EAAL,CAII8rL,IACF9rL,EAAO8rL,aAAeA,GAGxBhlK,EAAO9lB,KAAKhB,GACZ,IAAIgf,EAAWhf,EAAOgf,SAEF,UAAhBhf,EAAOJ,MAAoBof,GAC7B7e,KAAKkrL,SAASrsK,EAAU8H,EAAQ9mB,UAI3BA,EAAOgf,YACb7e,OAIL4rL,qBAAsB,WACpB,IAAIC,EAAM7rL,KAAK+qL,mBAGf,OADA/qL,KAAK+qL,mBAAqB,KACnBc,KA2LX,SAASC,EAAS3jL,EAAI4jL,EAAgBjgD,EAAUh6D,GAC9C,IAAIk6G,EAAclgD,EAASrsI,KACvBu7J,EAAM0vB,EAAyB3tK,eAAeivK,GAEhDtB,EAAyBsB,GAAevB,EAAYjiH,cAAcwjH,GAChEvgK,EAAK,IAAIuvI,EAAIlvB,GACjBigD,EAAezmL,IAAImmB,GACnBqmD,EAAMvvE,IAAI4F,EAAIsjB,GACdA,EAAGwgK,cAAgB9jL,EAGrB,SAAS+jL,EAASC,EAASr6G,GACzB,IAAIs6G,EAAgBD,GAAWA,EAAQtqK,OAEnCuqK,IACe,UAAjBD,EAAQ1sL,MAAoB0sL,EAAQrpJ,UAAS,SAAUrX,GACrDygK,EAASzgK,EAAIqmD,MAEfA,EAAMq6F,UAAUggB,EAAQF,eACxBG,EAAc/pJ,OAAO8pJ,IAKzB,SAASE,EAAmBvgD,GAK1B,OAJAA,EAAWlpI,EAAOpD,OAAO,GAAIssI,GAC7BlpI,EAAOzD,KAAK,CAAC,KAAM,WAAY,UAAW,KAAM,YAAYq4D,OAAOzwB,EAAWulJ,kBAAkB,SAAU3/K,UACjGm/H,EAASn/H,MAEXm/H,EAGT,SAASygD,EAASxmK,EAAKlJ,GACrB,IAAI2vK,EAIJ,OAHA5pL,EAAOzD,KAAK0d,GAAO,SAAUmW,GACd,MAAbjN,EAAIiN,IAA+B,SAAdjN,EAAIiN,KAAqBw5J,GAAQ,MAEjDA,EAGT,SAASlB,EAAwBhD,EAAY+C,GAC3C,IAAIoB,EAAgBnE,EAAW/4I,MAK/B,GAHA87I,EAAYljL,GAAKmgL,EAAWH,QAAQhgL,IACnCkjL,EAAY5rL,MAAQgtL,IAAkBpB,EAAY5rL,KAAOgtL,EAAchtL,MAE5C,MAAxB4rL,EAAYP,SAAkB,CAChC,IAAI4B,EAAoBrB,EAAYM,aAEhCe,EACFrB,EAAYP,SAAW4B,EAAkBvkL,GAChCskL,IACTpB,EAAYP,SAAW2B,EAAc3B,UAKzCO,EAAYM,aAAe,KAG7B,SAASJ,EAAwBP,EAAW7jL,EAAOkkL,GAEjD,IAAIsB,EAAe/pL,EAAOpD,OAAO,GAAI6rL,GACjCoB,EAAgBzB,EAAU7jL,GAC1BskL,EAAUJ,EAAYI,SAAW,QAErB,UAAZA,EACEgB,GAGF7pL,EAAOie,MAAM4rK,EAAeE,GAAc,GAE1C5lJ,EAAWovG,iBAAiBs2C,EAAeE,EAAc,CACvD9wB,YAAY,IAGd90H,EAAW6lJ,iBAAiBvB,EAAaoB,IAEzCzB,EAAU7jL,GAASwlL,EAEA,YAAZlB,EACTT,EAAU7jL,GAASwlL,EACE,WAAZlB,GAETgB,IAAkBzB,EAAU7jL,GAAS,MAIzC,SAASqkL,EAAqBqB,EAAWxB,GAClCwB,IAILA,EAAUC,GAAKzB,EAAYyB,GAAK,CAChCP,EAASlB,EAAa,CAAC,OAAQ,UAC/BkB,EAASlB,EAAa,CAAC,MAAO,YAEP,UAAnBwB,EAAUptL,OACO,MAAnBotL,EAAUrrL,QAAkBqrL,EAAUrrL,MAAQ6pL,EAAY7pL,MAAQ,GAC9C,MAApBqrL,EAAU3gL,SAAmB2gL,EAAU3gL,OAASm/K,EAAYn/K,OAAS,KAIzE,SAAS6gL,EAAathK,EAAIuhK,EAAclhD,GACtC,IAAIjqG,EAAYpW,EAAGoW,UAEdpW,EAAG7Z,QAAW6Z,EAAG6nB,QAAWzR,IAC/BA,EAAYpW,EAAGoW,UAAY,CACzBC,cAAe,UACfC,eAAgBirJ,EAAajrJ,eAC7Bp1B,KAAM8e,EAAG9e,OAMTk1B,IACFA,EAAUy0C,KAAO7qD,EAAG6qD,MA1SxBluE,EAAQiJ,oBAAoB,CAC1B5R,KAAM,UAKNuJ,KAAM,SAAUlJ,EAASyG,GAKvBvG,KAAKitL,OAASrqL,EAAOxD,gBAMrBY,KAAKktL,mBAMP57K,OAAQ,SAAU07K,EAAcltL,EAASyG,GAUnCymL,IAAiBhtL,KAAKktL,mBACxBltL,KAAK0qD,SAGP1qD,KAAKktL,kBAAoBF,EAEzBhtL,KAAKmtL,gBAAgBH,GAErBhtL,KAAKotL,UAAUJ,EAAczmL,IAS/B4mL,gBAAiB,SAAUH,GACzB,IAAI5B,EAAoB4B,EAAapB,uBAErC,GAAKR,EAAL,CAIA,IAAIt5G,EAAQ9xE,KAAKitL,OACbI,EAAYrtL,KAAKsD,MAErBV,EAAOzD,KAAKisL,GAAmB,SAAUt/C,GACvC,IAAI2/C,EAAU3/C,EAAS2/C,QACnBtjL,EAAK2jI,EAAS3jI,GACdgkL,EAAUr6G,EAAM5vE,IAAIiG,GACpB2iL,EAAWh/C,EAASg/C,SACpBiB,EAA6B,MAAZjB,EAAmBh5G,EAAM5vE,IAAI4oL,GAAYuC,EAC1DC,EAAgBxhD,EAAStmI,MAEP,SAAlBsmI,EAASrsI,MAAmB6tL,IAG1BxhD,EAASghD,IAAMhhD,EAASghD,GAAG,KAC7BQ,EAAc1nL,kBAAoB0nL,EAAc53F,aAAe,OAKhE43F,EAAcvwK,eAAe,aAAeuwK,EAAc57K,OAAS47K,EAAczpL,SAAWypL,EAAc57K,OAC1G47K,EAAcvwK,eAAe,eAAiBuwK,EAAczuI,SAAWyuI,EAAc3+G,WAAa2+G,EAAczuI,SAInH,IAAI0uI,EAAkBlB,EAAmBvgD,GAEpC2/C,GAAuB,UAAZA,EAEO,YAAZA,GACTS,EAASC,EAASr6G,GAClBg6G,EAAS3jL,EAAI4jL,EAAgBwB,EAAiBz7G,IACzB,WAAZ25G,GACTS,EAASC,EAASr6G,GALlBq6G,EAAUA,EAAQnsK,KAAKutK,GAAmBzB,EAAS3jL,EAAI4jL,EAAgBwB,EAAiBz7G,GAQ1F,IAAIrmD,EAAKqmD,EAAM5vE,IAAIiG,GAEfsjB,IACFA,EAAG+hK,uBAAyB1hD,EAAStqI,MACrCiqB,EAAGgiK,wBAA0B3hD,EAAS5/H,OACtC6gL,EAAathK,EAAIuhK,EAAclhD,SAYrCshD,UAAW,SAAUJ,EAAczmL,GAOjC,IANA,IAAImnL,EAAYV,EAAantL,OAAO+qL,SAChCyC,EAAYrtL,KAAKsD,MACjBwuE,EAAQ9xE,KAAKitL,OACbU,EAAWpnL,EAAIylB,WACf4hK,EAAYrnL,EAAI0lB,YAEXhe,EAAI,EAAGA,EAAIy/K,EAAUziL,OAAQgD,IAAK,CACzC,IAAI69H,EAAW4hD,EAAUz/K,GACrBwd,EAAKqmD,EAAM5vE,IAAI4pI,EAAS3jI,IAE5B,GAAKsjB,GAAOA,EAAG2+C,QAAf,CAIA,IAAIyjH,EAAWpiK,EAAG5J,OACdisK,EAAeD,IAAaR,EAEhC5hK,EAAGsiK,iBAAmBv5J,EAAa/I,EAAG+hK,uBAAwBM,EAAeH,EAAWE,EAASE,mBAAqB,EACtHtiK,EAAGuiK,kBAAoBx5J,EAAa/I,EAAGgiK,wBAAyBK,EAAeF,EAAYC,EAASG,oBAAsB,GAI5H,IAAS//K,EAAIy/K,EAAUziL,OAAS,EAAGgD,GAAK,EAAGA,IAAK,CAC1C69H,EAAW4hD,EAAUz/K,GACrBwd,EAAKqmD,EAAM5vE,IAAI4pI,EAAS3jI,IAE5B,GAAKsjB,EAAL,CAIIoiK,EAAWpiK,EAAG5J,OAAlB,IACIosK,EAAgBJ,IAAaR,EAAY,CAC3C7rL,MAAOmsL,EACPzhL,OAAQ0hL,GACN,CACFpsL,MAAOqsL,EAASE,iBAChB7hL,OAAQ2hL,EAASG,mBAMnBjnJ,EAAWizI,gBAAgBvuJ,EAAIqgH,EAAUmiD,EAAe,KAAM,CAC5DnB,GAAIhhD,EAASghD,GACboB,aAAcpiD,EAASqiD,cAU7BzjI,OAAQ,WACN,IAAIonB,EAAQ9xE,KAAKitL,OACjBn7G,EAAM3yE,MAAK,SAAUssB,GACnBygK,EAASzgK,EAAIqmD,MAEf9xE,KAAKitL,OAASrqL,EAAOxD,iBAMvBmvB,QAAS,WACPvuB,KAAK0qD,a,uBC5YT,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,S,uBCZR,IAAI5nD,EAAU,EAAQ,QAElBqvC,EAAO,EAAQ,QAwBfi8I,EAAoBtrL,EAAQovC,KAAKpkC,UACjCugL,EAAmBvrL,EAAQokE,YAAYp5D,UAE3C,SAASwgL,EAAO98K,GACd,OAAOuH,OAAOvH,EAAMkyI,OAAS3qI,OAAOvH,EAAMmyI,MAG5C,IAAIpkJ,EAAWuD,EAAQolE,YAAY,CACjCzoE,KAAM,UACN+F,MAAO,CACLq5C,OAAQ,OACRntC,KAAM,MAERF,MAAO,CACL4oD,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJpwD,QAAS,EACTu5I,KAAM,KACNC,KAAM,MAERl4F,UAAW,SAAUhnB,EAAKjzB,GACxBxR,KAAKsuL,EAAO98K,GAAS,iBAAmB,mBAAmBizB,EAAKjzB,IAElE+8K,eAAgBH,EAAkB3iI,UAClC+iI,gBAAiBH,EAAiB5iI,UAClCk6H,QAAS,SAAUtxK,GACjB,OAAOrU,KAAKsuL,EAAOtuL,KAAKwR,OAAS,eAAiB,iBAAiB6C,IAErEo6K,aAAcL,EAAkBzI,QAChC+I,cAAeL,EAAiB1I,QAChCG,UAAW,SAAUzxK,GACnB,IAAI7C,EAAQxR,KAAKwR,MACbiG,EAAI62K,EAAO98K,GAAS,CAACA,EAAM8oD,GAAK9oD,EAAM4oD,GAAI5oD,EAAM+oD,GAAK/oD,EAAM6oD,IAAMr6D,KAAK2uL,gBAAgBt6K,GAC1F,OAAO89B,EAAK6W,UAAUvxC,EAAGA,IAE3Bk3K,gBAAiBN,EAAiBvI,YAGpCpjL,EAAOC,QAAUpD,G,uBClEjB,IAAIL,EAAQ,EAAQ,QAEhBy3C,EAAaz3C,EAAMy3C,WAoBvB,SAASp3C,EAASq1B,EAAYg6J,EAAmBt9F,GAE/C,MAAO,CACL18D,WAAYA,EAEZy8G,kBAAkB,EAClBv8G,MAAO,SAAUhzB,EAAahC,EAASyG,GACrC,IAAIhG,EAAOuB,EAAYtB,UACnBoyC,EAAa9wC,EAAYI,IAAI,UAC7B63C,EAAaj4C,EAAYI,IAAI,cAC7Bk4C,EAAat4C,EAAYI,IAAI,oBAC7Bw6C,EAAe56C,EAAYI,IAAI,gBAC/B2sL,EAAwBl4I,EAAW/D,GACnCk8I,EAAwBn4I,EAAWoD,GACnCg1I,EAA0Bp4I,EAAW+F,GACrCsyI,EAAcH,GAAyBC,GAAyBC,EAChEE,GAAgBJ,GAAyBj8I,EAAaA,EAAag8I,EACnEM,EAAoBJ,EAAqC,KAAb/0I,EAchD,GAZAx5C,EAAKghB,UAAU,CACb+vE,aAAcA,GAAgB29F,EAK9Bp8I,OAAQo8I,EACRl1I,WAAYm1I,EACZjlC,iBAAkB7vG,EAClBsC,aAAcA,KAGZ58C,EAAQyxD,iBAAiBzvD,GAuC7B,MAAO,CACLsrK,SAAU7sK,EAAKg8C,eAAiByyI,EAAc5hB,EAAW,MApC3D,SAASA,EAAS7sK,EAAM2P,GACtB,GAAI8+K,EAAa,CACf,IAAIj6E,EAAWjzG,EAAYo+E,YAAYhwE,GACnCrG,EAAS/H,EAAY8H,cAAcsG,GACvC2+K,GAAyBtuL,EAAKihB,cAActR,EAAK,SAAU0iC,EAAWmiE,EAAUlrG,IAChFilL,GAAyBvuL,EAAKihB,cAActR,EAAK,aAAc6pC,EAAWg7D,EAAUlrG,IACpFklL,GAA2BxuL,EAAKihB,cAActR,EAAK,eAAgBwsC,EAAaq4D,EAAUlrG,IAG5F,GAAItJ,EAAKg8C,cAAe,CACtB,IAAIp7B,EAAY5gB,EAAK6gB,aAAalR,GAC9Bi/K,EAAiBhuK,EAAUq7B,WAAW,UAAU,GAChD4yI,EAAiBjuK,EAAUq7B,WAAW,cAAc,GACpD6yI,EAAmBluK,EAAUq7B,WAAW,gBAAgB,GACxD8yI,EAAuBnuK,EAAUq7B,WAAW,oBAAoB,GAE9C,MAAlB2yI,GACF5uL,EAAKihB,cAActR,EAAK,SAAUi/K,GAGd,MAAlBC,GAEF7uL,EAAKihB,cAActR,EAAK,aAAck/K,GAGhB,MAApBC,GACF9uL,EAAKihB,cAActR,EAAK,eAAgBm/K,GAGd,MAAxBC,GACF/uL,EAAKihB,cAActR,EAAK,mBAAoBo/K,OAYxD5sL,EAAOC,QAAUpD,G,qBCjFjB,SAASgwL,EAAiB/qL,GACxB,OAAOA,EAWT,SAAS48E,EAAWhnD,EAAQD,EAAQq1J,EAAcC,EAAc7vK,GAC9D5f,KAAK0vL,KAAOt1J,EACZp6B,KAAK2vL,KAAOx1J,EACZn6B,KAAK4vL,cAAgBJ,GAAgBD,EACrCvvL,KAAK6vL,cAAgBJ,GAAgBF,EACrCvvL,KAAK4f,QAAUA,EAqFjB,SAASkwK,EAAa39E,EAAKlrG,EAAK8oL,EAAQC,EAAevuG,GACrD,IAAK,IAAIxzE,EAAI,EAAGA,EAAIkkG,EAAIlnG,OAAQgD,IAAK,CAEnC,IAAIlG,EAAM,OAAS05E,EAAWuuG,GAAe79E,EAAIlkG,GAAIA,GACjDgiL,EAAYhpL,EAAIc,GAEH,MAAbkoL,GACFF,EAAOlvL,KAAKkH,GACZd,EAAIc,GAAOkG,IAENgiL,EAAUhlL,SACbhE,EAAIc,GAAOkoL,EAAY,CAACA,IAG1BA,EAAUpvL,KAAKoN,KAhGrBmzE,EAAWtzE,UAAY,CACrBC,YAAaqzE,EAKb97E,IAAK,SAAUmmH,GAEb,OADAzrH,KAAKkwL,KAAOzkE,EACLzrH,MAMTuI,OAAQ,SAAUkjH,GAEhB,OADAzrH,KAAKu7F,QAAUkwB,EACRzrH,MAMTqiC,OAAQ,SAAUopF,GAEhB,OADAzrH,KAAKmwL,QAAU1kE,EACRzrH,MAET0+C,QAAS,WACP,IAAItkB,EAASp6B,KAAK0vL,KACdv1J,EAASn6B,KAAK2vL,KACdS,EAAkB,GAClBC,EAAkB,GAClBC,EAAgB,GAChBC,EAAgB,GAKpB,IAHAT,EAAa11J,EAAQg2J,EAAiBE,EAAe,gBAAiBtwL,MACtE8vL,EAAa31J,EAAQk2J,EAAiBE,EAAe,gBAAiBvwL,MAEjEiO,EAAI,EAAGA,EAAImsB,EAAOnvB,OAAQgD,IAAK,CAClC,IAAIlG,EAAMuoL,EAAcriL,GACpBiC,EAAMmgL,EAAgBtoL,GAE1B,GAAW,MAAPmI,EAAa,CAGf,IAAIoI,EAAMpI,EAAIjF,OAEVqN,GACM,IAARA,IAAc+3K,EAAgBtoL,GAAO,MACrCmI,EAAMA,EAAI40D,SAEVurH,EAAgBtoL,GAAO,KAGzB/H,KAAKu7F,SAAWv7F,KAAKu7F,QAAQrrF,EAAKjC,QAElCjO,KAAKmwL,SAAWnwL,KAAKmwL,QAAQliL,GAIjC,IAAK,IAAIA,EAAI,EAAGA,EAAIsiL,EAActlL,OAAQgD,IAAK,CACzClG,EAAMwoL,EAActiL,GAExB,GAAIoiL,EAAgBtzK,eAAehV,GAAM,CACnCmI,EAAMmgL,EAAgBtoL,GAE1B,GAAW,MAAPmI,EACF,SAIF,GAAKA,EAAIjF,OAGF,KAAIuN,EAAI,EAAb,IAAgBF,EAAMpI,EAAIjF,OAAQuN,EAAIF,EAAKE,IACzCxY,KAAKkwL,MAAQlwL,KAAKkwL,KAAKhgL,EAAIsI,SAH7BxY,KAAKkwL,MAAQlwL,KAAKkwL,KAAKhgL,OA8BjC,IAAI3Q,EAAW6hF,EACf1+E,EAAOC,QAAUpD,G,uBC5IjB,IAAI0D,EAAS,EAAQ,QAEjBL,EAAS,EAAQ,QAEjB6F,EAAS,EAAQ,QAEjB+nL,EAAY/nL,EAAO+nL,UAoBvB,SAASjxL,EAASO,EAASyG,EAAK23B,GAC9Bp+B,EAAQumC,iBAAiB,UAAU,SAAUvkC,GAC3C,IAAI2uL,EAAY3uL,EAAYI,IAAI,aAC5BwuL,EAAU5uL,EAAYI,IAAI,WAC1B27D,EAAagI,EAAY/jE,EAAayE,GAC1CzE,EAAY+7D,WAAaA,EACzB,IAAIr8D,EAAQq8D,EAAWr8D,MACnB0K,EAAS2xD,EAAW3xD,OACpBo6B,EAAQxkC,EAAYykC,WACpBrkB,EAAQokB,EAAMpkB,MACd05D,EAAQt1C,EAAMs1C,MAClB+0G,EAAkBzuK,GAClB,IAAI0uK,EAAgBhuL,EAAOyuD,OAAOnvC,GAAO,SAAU1C,GACjD,OAAkC,IAA3BA,EAAKuB,YAAYpT,SAEtBkjL,EAAsC,IAAzBD,EAAc3lL,OAAe,EAAInJ,EAAYI,IAAI,oBAC9D4E,EAAShF,EAAYI,IAAI,UACzB4uL,EAAYhvL,EAAYI,IAAI,aAChC6uL,EAAa7uK,EAAO05D,EAAO60G,EAAWC,EAASlvL,EAAO0K,EAAQ2kL,EAAY/pL,EAAQgqL,MAYtF,SAASjrH,EAAY/jE,EAAayE,GAChC,OAAOtD,EAAOk/C,cAAcrgD,EAAYgkE,qBAAsB,CAC5DtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAIhB,SAAS8kK,EAAa7uK,EAAO05D,EAAO60G,EAAWC,EAASlvL,EAAO0K,EAAQ2kL,EAAY/pL,EAAQgqL,GACzFE,EAAoB9uK,EAAO05D,EAAO60G,EAAWjvL,EAAO0K,EAAQpF,EAAQgqL,GACpEG,EAAkB/uK,EAAO05D,EAAO1vE,EAAQ1K,EAAOkvL,EAASG,EAAY/pL,GACpEoqL,EAAkBhvK,EAAOpb,GAS3B,SAAS6pL,EAAkBzuK,GACzBtf,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,IAAI02J,EAASjsK,EAAIuV,EAAK6lI,SAAU8rC,GAC5B/a,EAASnsK,EAAIuV,EAAK8lI,QAAS6rC,GAC3BC,EAAe5xK,EAAKiB,YAAc,EAClC9S,EAAQ9B,KAAK4E,IAAIylK,EAAQE,EAAQgb,GACrC5xK,EAAKoB,UAAU,CACbjT,MAAOA,IACN,MAeP,SAASqjL,EAAoB9uK,EAAO05D,EAAO60G,EAAWjvL,EAAO0K,EAAQpF,EAAQgqL,GAY3E,IATA,IAAIO,EAAc,GAEdC,EAAc,GAEdC,EAAgB,GAChBC,EAAiB,GACjB/rL,EAAI,EACJgsL,EAAK,EAEAxjL,EAAI,EAAGA,EAAI2tE,EAAM3wE,OAAQgD,IAChCojL,EAAYpjL,GAAK,EAGnB,IAAKA,EAAI,EAAGA,EAAIiU,EAAMjX,OAAQgD,IAC5BqjL,EAAYrjL,GAAKiU,EAAMjU,GAAGq3I,QAAQr6I,OAEX,IAAnBqmL,EAAYrjL,IACdsjL,EAAc1wL,KAAKqhB,EAAMjU,IAI7B,IAAIyjL,GAAgB,EAIpB,MAAOH,EAActmL,OAAQ,CAC3B,IAAK,IAAIiF,EAAM,EAAGA,EAAMqhL,EAActmL,OAAQiF,IAAO,CACnD,IAAIsP,EAAO+xK,EAAcrhL,GACrB1L,EAAOgb,EAAK+6J,UAAUh6K,KAAKg+D,eAAe/+C,EAAK5e,WAC/C+wL,EAA4B,MAAdntL,EAAKma,OAAiBna,EAAKma,OAAS,EAElDgzK,GAAentL,EAAKma,MAAQ+yK,IAC9BA,EAAeltL,EAAKma,OAGtBa,EAAKoB,UAAU,CACbjC,MAAOgzK,EAAcntL,EAAKma,MAAQlZ,IACjC,GACQ,aAAXqB,EAAwB0Y,EAAKoB,UAAU,CACrCzO,GAAIs+K,IACH,GAAQjxK,EAAKoB,UAAU,CACxB1O,GAAIu+K,IACH,GAEH,IAAK,IAAImB,EAAU,EAAGA,EAAUpyK,EAAK6lI,SAASp6I,OAAQ2mL,IAAW,CAC/D,IAAIrqK,EAAO/H,EAAK6lI,SAASusC,GACrBC,EAAYj2G,EAAM/oD,QAAQtL,GAC9B8pK,EAAYQ,GAAa,EACzB,IAAIppF,EAAalhF,EAAKyoC,MAClB8hI,EAAY5vK,EAAM2Q,QAAQ41E,GAEG,MAA3B6oF,EAAYQ,IAAoBN,EAAe3+J,QAAQ41E,GAAc,GACzE+oF,EAAe3wL,KAAK4nG,MAKxBhjG,EACF8rL,EAAgBC,EAChBA,EAAiB,GAGnB,IAAKvjL,EAAI,EAAGA,EAAIojL,EAAYpmL,OAAQgD,IAClC,GAAuB,IAAnBojL,EAAYpjL,GACd,MAAM,IAAI0I,MAAM,iDAIpB,IAAIo7K,EAAWL,EAAejsL,EAAI,EAAIisL,EAAejsL,EAAI,EAErDqrL,GAA2B,SAAdA,GACfkB,EAAwB9vK,EAAO4uK,EAAWhqL,EAAQirL,GAGhDN,EAAgB,aAAX3qL,GAAyBoF,EAASukL,GAAasB,GAAYvwL,EAAQivL,GAAasB,EACzFE,EAAkB/vK,EAAOuvK,EAAI3qL,GAG/B,SAASorL,EAAY1yK,GACnB,IAAIhb,EAAOgb,EAAK+6J,UAAUh6K,KAAKg+D,eAAe/+C,EAAK5e,WACnD,OAAqB,MAAd4D,EAAKma,OAAiBna,EAAKma,OAAS,EAG7C,SAASqzK,EAAwB9vK,EAAO4uK,EAAWhqL,EAAQirL,GACzD,GAAkB,UAAdjB,EAAuB,CACzB,IAAIqB,EAAiB,GACjBC,EAAclwK,EACdmwK,EAAa,EAEjB,MAAOD,EAAYnnL,OAAQ,CACzB,IAAK,IAAIgD,EAAI,EAAGA,EAAImkL,EAAYnnL,OAAQgD,IAAK,CAC3C,IAAIuR,EAAO4yK,EAAYnkL,GACvBuR,EAAKoB,UAAU,CACb0xK,aAAcD,IACb,GAEH,IAAK,IAAI75K,EAAI,EAAGA,EAAIgH,EAAK8lI,QAAQr6I,OAAQuN,IAAK,CAC5C,IAAI+O,EAAO/H,EAAK8lI,QAAQ9sI,GAEpB25K,EAAet/J,QAAQtL,EAAKwoC,OAAS,GACvCoiI,EAAetxL,KAAK0mB,EAAKwoC,QAK/BqiI,EAAcD,EACdA,EAAiB,KACfE,EAGJzvL,EAAOzD,KAAK+iB,GAAO,SAAU1C,GACtB0yK,EAAY1yK,IACfA,EAAKoB,UAAU,CACbjC,MAAO9S,KAAK4E,IAAI,EAAGshL,EAAWvyK,EAAKuB,YAAYuxK,gBAC9C,UAGgB,YAAdxB,GACTyB,EAAerwK,EAAO6vK,GAY1B,SAASQ,EAAerwK,EAAO6vK,GAC7BnvL,EAAOzD,KAAK+iB,GAAO,SAAU1C,GACtB0yK,EAAY1yK,IAAUA,EAAK6lI,SAASp6I,QACvCuU,EAAKoB,UAAU,CACbjC,MAAOozK,IACN,MAYT,SAASE,EAAkB/vK,EAAOuvK,EAAI3qL,GACpClE,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,IAAIgzK,EAAYhzK,EAAKuB,YAAYpC,MAAQ8yK,EAC9B,aAAX3qL,EAAwB0Y,EAAKoB,UAAU,CACrClb,EAAG8sL,IACF,GAAQhzK,EAAKoB,UAAU,CACxBnb,EAAG+sL,IACF,MAeP,SAASvB,EAAkB/uK,EAAO05D,EAAO1vE,EAAQ1K,EAAOkvL,EAASG,EAAY/pL,GAC3E,IAAI2rL,EAAiBC,EAAsBxwK,EAAOpb,GAClD6rL,EAAoBF,EAAgB72G,EAAO1vE,EAAQ1K,EAAOkvL,EAAS5pL,GACnE8rL,EAAkBH,EAAgB/B,EAASxkL,EAAQ1K,EAAOsF,GAE1D,IAAK,IAAIuwH,EAAQ,EAAGw5D,EAAa,EAAGA,IAGlCx5D,GAAS,IACTw7D,EAAiBJ,EAAgBp7D,EAAOvwH,GACxC8rL,EAAkBH,EAAgB/B,EAASxkL,EAAQ1K,EAAOsF,GAC1DgsL,EAAiBL,EAAgBp7D,EAAOvwH,GACxC8rL,EAAkBH,EAAgB/B,EAASxkL,EAAQ1K,EAAOsF,GAI9D,SAAS4rL,EAAsBxwK,EAAOpb,GACpC,IAAI2rL,EAAiB,GACjBM,EAAqB,aAAXjsL,EAAwB,IAAM,IACxCksL,EAAcxC,EAAUtuK,GAAO,SAAU1C,GAC3C,OAAOA,EAAKuB,YAAYgyK,MAQ1B,OANAC,EAAY1kG,KAAKzjF,MAAK,SAAUwM,EAAGC,GACjC,OAAOD,EAAIC,KAEb1U,EAAOzD,KAAK6zL,EAAY1kG,MAAM,SAAUvmF,GACtC0qL,EAAe5xL,KAAKmyL,EAAYC,QAAQ/wL,IAAI6F,OAEvC0qL,EAcT,SAASE,EAAoBF,EAAgB72G,EAAO1vE,EAAQ1K,EAAOkvL,EAAS5pL,GAC1E,IAAIosL,EAAQngL,IACZnQ,EAAOzD,KAAKszL,GAAgB,SAAUvwK,GACpC,IAAItO,EAAIsO,EAAMjX,OACVhB,EAAM,EACVrH,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3BvV,GAAOuV,EAAKuB,YAAYpT,SAE1B,IAAI8tI,EAAgB,aAAX30I,GAAyBtF,GAASoS,EAAI,GAAK88K,GAAWzmL,GAAOiC,GAAU0H,EAAI,GAAK88K,GAAWzmL,EAEhGwxI,EAAKy3C,IACPA,EAAQz3C,MAGZ74I,EAAOzD,KAAKszL,GAAgB,SAAUvwK,GACpCtf,EAAOzD,KAAK+iB,GAAO,SAAU1C,EAAMvR,GACjC,IAAIklL,EAAS3zK,EAAKuB,YAAYpT,MAAQulL,EAEvB,aAAXpsL,GACF0Y,EAAKoB,UAAU,CACbnb,EAAGwI,IACF,GACHuR,EAAKoB,UAAU,CACb1O,GAAIihL,IACH,KAEH3zK,EAAKoB,UAAU,CACblb,EAAGuI,IACF,GACHuR,EAAKoB,UAAU,CACbzO,GAAIghL,IACH,UAITvwL,EAAOzD,KAAKy8E,GAAO,SAAUr0D,GAC3B,IAAI6rK,GAAU7rK,EAAK9G,WAAayyK,EAChC3rK,EAAK3G,UAAU,CACbzO,GAAIihL,IACH,MAaP,SAASR,EAAkBH,EAAgB/B,EAASxkL,EAAQ1K,EAAOsF,GACjE,IAAIisL,EAAqB,aAAXjsL,EAAwB,IAAM,IAC5ClE,EAAOzD,KAAKszL,GAAgB,SAAUvwK,GAIpC,IAAIujD,EACAjmD,EACArN,EALJ+P,EAAMrX,MAAK,SAAUwM,EAAGC,GACtB,OAAOD,EAAE0J,YAAYgyK,GAAWz7K,EAAEyJ,YAAYgyK,MAShD,IAJA,IAAI93H,EAAK,EACLrnD,EAAIsO,EAAMjX,OACVooL,EAAwB,aAAXvsL,EAAwB,KAAO,KAEvCmH,EAAI,EAAGA,EAAI2F,EAAG3F,IACrBuR,EAAO0C,EAAMjU,GACbkE,EAAK8oD,EAAKz7C,EAAKuB,YAAYgyK,GAEvB5gL,EAAK,IACPszD,EAAQjmD,EAAKuB,YAAYgyK,GAAW5gL,EACzB,aAAXrL,EAAwB0Y,EAAKoB,UAAU,CACrCnb,EAAGggE,IACF,GAAQjmD,EAAKoB,UAAU,CACxBlb,EAAG+/D,IACF,IAGLxK,EAAKz7C,EAAKuB,YAAYgyK,GAAWvzK,EAAKuB,YAAYsyK,GAAc3C,EAGlE,IAAI/yG,EAAuB,aAAX72E,EAAwBtF,EAAQ0K,EAIhD,GAFAiG,EAAK8oD,EAAKy1H,EAAU/yG,EAEhBxrE,EAAK,EASP,IARAszD,EAAQjmD,EAAKuB,YAAYgyK,GAAW5gL,EACzB,aAAXrL,EAAwB0Y,EAAKoB,UAAU,CACrCnb,EAAGggE,IACF,GAAQjmD,EAAKoB,UAAU,CACxBlb,EAAG+/D,IACF,GACHxK,EAAKwK,EAEAx3D,EAAI2F,EAAI,EAAG3F,GAAK,IAAKA,EACxBuR,EAAO0C,EAAMjU,GACbkE,EAAKqN,EAAKuB,YAAYgyK,GAAWvzK,EAAKuB,YAAYsyK,GAAc3C,EAAUz1H,EAEtE9oD,EAAK,IACPszD,EAAQjmD,EAAKuB,YAAYgyK,GAAW5gL,EACzB,aAAXrL,EAAwB0Y,EAAKoB,UAAU,CACrCnb,EAAGggE,IACF,GAAQjmD,EAAKoB,UAAU,CACxBlb,EAAG+/D,IACF,IAGLxK,EAAKz7C,EAAKuB,YAAYgyK,MAc9B,SAASF,EAAiBJ,EAAgBp7D,EAAOvwH,GAC/ClE,EAAOzD,KAAKszL,EAAenrL,QAAQD,WAAW,SAAU6a,GACtDtf,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,GAAIA,EAAK6lI,SAASp6I,OAAQ,CACxB,IAAIvF,EAAIuE,EAAIuV,EAAK6lI,SAAUiuC,EAAgBxsL,GAAUmD,EAAIuV,EAAK6lI,SAAU8rC,EAAcrqL,GAEtF,GAAIiS,MAAMrT,GAAI,CACZ,IAAI4S,EAAMkH,EAAK6lI,SAASp6I,OACxBvF,EAAI4S,EAAMrO,EAAIuV,EAAK6lI,SAAUkuC,EAAczsL,GAAUwR,EAAM,EAG7D,GAAe,aAAXxR,EAAuB,CACzB,IAAI2+D,EAAQjmD,EAAKuB,YAAYtb,GAAKC,EAAIgzB,EAAOlZ,EAAM1Y,IAAWuwH,EAC9D73G,EAAKoB,UAAU,CACbnb,EAAGggE,IACF,OACE,CACL,IAAI+tH,EAAQh0K,EAAKuB,YAAYrb,GAAKA,EAAIgzB,EAAOlZ,EAAM1Y,IAAWuwH,EAC9D73G,EAAKoB,UAAU,CACblb,EAAG8tL,IACF,WAOb,SAASF,EAAe/rK,EAAMzgB,GAC5B,OAAO4xB,EAAOnR,EAAKyoC,MAAOlpD,GAAUygB,EAAK9G,WAG3C,SAAS8yK,EAAahsK,EAAMzgB,GAC1B,OAAO4xB,EAAOnR,EAAKyoC,MAAOlpD,GAG5B,SAAS2sL,EAAelsK,EAAMzgB,GAC5B,OAAO4xB,EAAOnR,EAAKwoC,MAAOjpD,GAAUygB,EAAK9G,WAG3C,SAASizK,EAAansK,EAAMzgB,GAC1B,OAAO4xB,EAAOnR,EAAKwoC,MAAOjpD,GAG5B,SAAS4xB,EAAOlZ,EAAM1Y,GACpB,MAAkB,aAAXA,EAAwB0Y,EAAKuB,YAAYtb,EAAI+Z,EAAKuB,YAAY7O,GAAK,EAAIsN,EAAKuB,YAAYrb,EAAI8Z,EAAKuB,YAAY5O,GAAK,EAG3H,SAASg/K,EAAa5pK,GACpB,OAAOA,EAAK9G,WAGd,SAASxW,EAAI8J,EAAOoK,EAAIrX,GACtB,IAAImD,EAAM,EACNqO,EAAMvE,EAAM9I,OACZgD,GAAK,EAET,QAASA,EAAIqK,EAAK,CAChB,IAAI3K,GAASwQ,EAAGrR,KAAKiH,EAAOA,EAAM9F,GAAInH,GAEjCiS,MAAMpL,KACT1D,GAAO0D,GAIX,OAAO1D,EAWT,SAAS6oL,EAAiBL,EAAgBp7D,EAAOvwH,GAC/ClE,EAAOzD,KAAKszL,GAAgB,SAAUvwK,GACpCtf,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,GAAIA,EAAK8lI,QAAQr6I,OAAQ,CACvB,IAAIvF,EAAIuE,EAAIuV,EAAK8lI,QAASmuC,EAAgB3sL,GAAUmD,EAAIuV,EAAK8lI,QAAS6rC,EAAcrqL,GAEpF,GAAIiS,MAAMrT,GAAI,CACZ,IAAI4S,EAAMkH,EAAK8lI,QAAQr6I,OACvBvF,EAAI4S,EAAMrO,EAAIuV,EAAK8lI,QAASouC,EAAc5sL,GAAUwR,EAAM,EAG5D,GAAe,aAAXxR,EAAuB,CACzB,IAAI2+D,EAAQjmD,EAAKuB,YAAYtb,GAAKC,EAAIgzB,EAAOlZ,EAAM1Y,IAAWuwH,EAC9D73G,EAAKoB,UAAU,CACbnb,EAAGggE,IACF,OACE,CACL,IAAI+tH,EAAQh0K,EAAKuB,YAAYrb,GAAKA,EAAIgzB,EAAOlZ,EAAM1Y,IAAWuwH,EAC9D73G,EAAKoB,UAAU,CACblb,EAAG8tL,IACF,WAab,SAAStC,EAAkBhvK,EAAOpb,GAChC,IAAIisL,EAAqB,aAAXjsL,EAAwB,IAAM,IAC5ClE,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3BA,EAAK6lI,SAASx6I,MAAK,SAAUwM,EAAGC,GAC9B,OAAOD,EAAE24C,MAAMjvC,YAAYgyK,GAAWz7K,EAAE04C,MAAMjvC,YAAYgyK,MAE5DvzK,EAAK8lI,QAAQz6I,MAAK,SAAUwM,EAAGC,GAC7B,OAAOD,EAAE04C,MAAMhvC,YAAYgyK,GAAWz7K,EAAEy4C,MAAMhvC,YAAYgyK,SAG9DnwL,EAAOzD,KAAK+iB,GAAO,SAAU1C,GAC3B,IAAI6kB,EAAK,EACLkQ,EAAK,EACT3xC,EAAOzD,KAAKqgB,EAAK6lI,UAAU,SAAU99H,GACnCA,EAAK3G,UAAU,CACbyjB,GAAIA,IACH,GACHA,GAAM9c,EAAKxG,YAAY5O,MAEzBvP,EAAOzD,KAAKqgB,EAAK8lI,SAAS,SAAU/9H,GAClCA,EAAK3G,UAAU,CACb2zB,GAAIA,IACH,GACHA,GAAMhtB,EAAKxG,YAAY5O,SAK7BzP,EAAOC,QAAUpD,G,qBC7kBjB,IAAIqsF,EAAkB,CACpBilC,KAAM,EACNhkC,WAAY,EACZ8mG,WAAY,GAGVC,EAAmB,EACvBjxL,EAAQipF,gBAAkBA,EAC1BjpF,EAAQixL,iBAAmBA,G,uBCY3B,IAAIhxL,EAAS,EAAQ,QAEjB2C,EAAO,EAAQ,QA0BnB,SAAS0zH,EAAmB1yH,GAC1BvG,KAAK4rB,IAAMrlB,EAAIslB,QACf7rB,KAAKosB,OAAQ,EAKbpsB,KAAKqsB,aAGP4sG,EAAmBnrH,UAAY,CAC7BC,YAAakrH,EAMb1sG,YAAY,EAKZhkB,OAAQ,aAERnH,KAAM,SAAUyoB,GACV7pB,KAAKqsB,cACPG,aAAaxsB,KAAKqsB,cAGpBrsB,KAAKyrB,GAAGzL,KAAK,QAAQ,GACrBhgB,KAAKosB,OAAQ,GAUfwB,WAAY,SAAUC,EAASgmK,EAAYhqK,GACrC7pB,KAAKyrB,IACPzrB,KAAK4rB,IAAIyW,OAAOriC,KAAKyrB,IAGvB,IAAIiwG,EAAU,GACV/1H,EAAOkoB,EACP66D,EAAS,UACTp8B,EAAS,KACTwnI,EAAUnuL,EAAKktB,QAAQ61D,GAE3B,MAAOorG,GAAW,EAAG,CACnB,IAAIC,EAAQpuL,EAAKktB,QAAQy5B,GACrB3/C,EAAOhH,EAAKyxH,OAAO08D,EAAUprG,EAAOz9E,OAAQ8oL,EAAQD,EAAUprG,EAAOz9E,QAErE0B,EAAKkmB,QAAQ,QAAU,EACzB6oG,EAAQ,SAAW/uH,GAAQ,CACzBuiE,UAAW,EACXC,WAAY,EACZK,iBAAkB,EAClBF,oBAAqBukH,EAAWlnL,GAEhCkhE,WAAY,CAAC,EAAG,IAGlB6tD,EAAQ,SAAW/uH,GAAQ,CACzBuiE,UAAW,GACXC,WAAY,GACZK,iBAAkB,EAClBF,oBAAqBukH,EAAWlnL,IAIpChH,EAAOA,EAAKyxH,OAAO28D,EAAQ,GAC3BD,EAAUnuL,EAAKktB,QAAQ,WAGzB7yB,KAAKyrB,GAAK,IAAIlmB,EAAK,CACjBC,MAAO,CACL8oE,KAAMotD,EACN/1H,KAAMkoB,EACNohD,eAAgB,GAChBK,oBAAqBzlD,EAAa3nB,IAAI,mBACtCstE,iBAAkB3lD,EAAa3nB,IAAI,gBACnC2B,SAAUgmB,EAAa3nB,IAAI,mBAC3BqtE,YAAa1lD,EAAa3nB,IAAI,YAEhCjB,EAAG4oB,EAAa3nB,IAAI,OAGtBlC,KAAK4rB,IAAItmB,IAAItF,KAAKyrB,IAElB,IAAIhO,EAAOzd,KACXA,KAAKyrB,GAAG7kB,GAAG,aAAa,WAElB6W,EAAK8O,aACPC,aAAa/O,EAAK4O,cAClB5O,EAAK2O,OAAQ,GAGf3O,EAAKgP,YAAa,KAEpBzsB,KAAKyrB,GAAG7kB,GAAG,YAAY,WACjB6W,EAAK8O,YACH9O,EAAK2O,OACP3O,EAAKwP,UAAUxP,EAAKyP,YAIxBzP,EAAKgP,YAAa,MAGtBqB,aAAc,SAAUC,GACtB/tB,KAAKusB,WAAawB,GAEpBC,QAAS,WACP,IAAImgK,EAAWnuL,KAAKyrB,GAAGxf,kBACvB,MAAO,CAACkiL,EAAS3sL,MAAO2sL,EAASjiL,SAEnCiiB,OAAQ,SAAU1oB,EAAGC,GACf1F,KAAKyrB,IACPzrB,KAAKyrB,GAAGzL,KAAK,WAAY,CAACva,EAAGC,KAGjC0oB,KAAM,WACApuB,KAAKyrB,IACPzrB,KAAKyrB,GAAG2C,OAGVpuB,KAAKosB,OAAQ,GAEfa,UAAW,SAAU/R,IACflb,KAAKosB,OAAWpsB,KAAKysB,YAAczsB,KAAKusB,aACtCrR,GACFlb,KAAKktB,WAAahS,EAElBlb,KAAKosB,OAAQ,EACbpsB,KAAKqsB,aAAegC,WAAWzrB,EAAOiC,KAAK7E,KAAKouB,KAAMpuB,MAAOkb,IAE7Dlb,KAAKouB,SAIXE,OAAQ,WACN,OAAOtuB,KAAKosB,OAEdqC,aAAc,WACZ,IAAIniB,EAAOtM,KAAKguB,UAChB,MAAO,CACLxsB,MAAO8K,EAAK,GACZJ,OAAQI,EAAK,MAInB,IAAI/M,EAAW05H,EACfv2H,EAAOC,QAAUpD,G,qBCvLjB,IAAIqD,EAAS,EAAQ,QAEjB+/H,EAAa,EAAQ,QAErB1jE,EAAa,EAAQ,QAErB1gD,EAAO,EAAQ,QAEfs5E,EAAe,EAAQ,QAEvBE,EAAa,EAAQ,QAoBzB,SAASi8F,EAAmBlwG,EAAQhiF,EAAayE,GAC/C,IAAIlG,EAAWyB,EAAYxB,iBAC3BwjF,EAAO3kF,MAAK,SAAU+Q,GACpB,IACIonB,EADAnW,EAAY2iE,EAAO1iE,aAAalR,GAEhCopF,EAAMr6B,EAAWzqC,aAAarT,EAAUjf,IAAI,KAAMqE,EAAIylB,YACtDutE,EAAMt6B,EAAWzqC,aAAarT,EAAUjf,IAAI,KAAMqE,EAAI0lB,aAE1D,GAAKlT,MAAMugF,IAASvgF,MAAMwgF,IAGrB,GAAIz3F,EAAYyvF,kBAEjBj6D,EAAQx1B,EAAYyvF,kBAAkBzN,EAAOrqC,UAAUqqC,EAAO3hF,WAAY+N,SACrE,GAAI7P,EAAU,CACnB,IAAIoF,EAAIq+E,EAAO5hF,IAAI7B,EAAS8B,WAAW,GAAI+N,GACvCxK,EAAIo+E,EAAO5hF,IAAI7B,EAAS8B,WAAW,GAAI+N,GAC3ConB,EAAQj3B,EAAS0L,YAAY,CAACtG,EAAGC,UARnC4xB,EAAQ,CAACgiE,EAAKC,GAYXxgF,MAAMugF,KACThiE,EAAM,GAAKgiE,GAGRvgF,MAAMwgF,KACTjiE,EAAM,GAAKiiE,GAGbzV,EAAOhjE,cAAc5Q,EAAKonB,MAI9B,IAAI/3B,EAAWw4F,EAAWv4F,OAAO,CAC/BC,KAAM,YAUNiP,gBAAiB,SAAUulL,EAAgBn0L,EAASyG,GAClDzG,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIoyL,EAAUpyL,EAAYmyL,eAEtBC,IACFF,EAAmBE,EAAQ1zL,UAAWsB,EAAayE,GACnDvG,KAAK65F,eAAe33F,IAAIJ,EAAYqG,IAAIusC,aAAaw/I,MAEtDl0L,OAEL85F,aAAc,SAAUh4F,EAAaoyL,EAASp0L,EAASyG,GACrD,IAAIlG,EAAWyB,EAAYxB,iBACvB0mB,EAAWllB,EAAYqG,GACvB4xF,EAAaj4F,EAAYtB,UACzB2zL,EAAgBn0L,KAAK65F,eACrBu6F,EAAaD,EAAcjyL,IAAI8kB,IAAamtK,EAAc5xL,IAAIykB,EAAU,IAAI27G,GAC5E7+C,EAASnhC,EAAWtiD,EAAUyB,EAAaoyL,GAE/CA,EAAQ34H,QAAQuoB,GAChBkwG,EAAmBE,EAAQ1zL,UAAWsB,EAAayE,GACnDu9E,EAAO3kF,MAAK,SAAU+Q,GACpB,IAAIiR,EAAY2iE,EAAO1iE,aAAalR,GAChC2iC,EAAS1xB,EAAUq7B,WAAW,UAC9BzC,EAAa54B,EAAUq7B,WAAW,cAClC63I,EAAazxL,EAAO+zC,WAAW9D,GAC/ByhJ,EAAiB1xL,EAAO+zC,WAAWoD,GAEvC,GAAIs6I,GAAcC,EAAgB,CAChC,IAAI59B,EAASw9B,EAAQh0G,YAAYhwE,GAC7BksH,EAAa83D,EAAQtqL,cAAcsG,GAEnCmkL,IACFxhJ,EAASA,EAAO6jH,EAAQt6B,IAGtBk4D,IAEFv6I,EAAaA,EAAW28G,EAAQt6B,IAIpCt4C,EAAOtiE,cAActR,EAAK,CACxB2iC,OAAQA,EACRkH,WAAYA,EACZniC,MAAOuJ,EAAUjf,IAAI,oBAAsB63F,EAAWt4E,UAAU,cAIpE2yK,EAAWngJ,WAAW6vC,GACtB9jF,KAAKsD,MAAMgC,IAAI8uL,EAAW9wL,OAG1BwgF,EAAOnlC,mBAAkB,SAAUlzB,GACjCA,EAAGqX,UAAS,SAAUvjB,GACpBA,EAAM66E,UAAY85F,QAGtBE,EAAW/5F,QAAS,EACpB+5F,EAAW9wL,MAAMsO,OAASsiL,EAAQhyL,IAAI,WAAaJ,EAAYI,IAAI,aAWvE,SAASygD,EAAWtiD,EAAUyB,EAAaoyL,GACzC,IAAI55F,EAGFA,EADEj6F,EACeuC,EAAOqE,IAAI5G,GAAYA,EAAS8B,YAAY,SAAUguF,GACrE,IAAI7Z,EAAOx0E,EAAYtB,UAAUgrF,iBAAiB1pF,EAAYtB,UAAUwJ,aAAammF,KAAc,GAEnG,OAAOvtF,EAAO6O,SAAS,CACrB9E,KAAMwjF,GACL7Z,MAGY,CAAC,CAChB3pE,KAAM,QACNlN,KAAM,UAIV,IAAIqkF,EAAS,IAAIvlE,EAAK+7E,EAAgB45F,GAClCK,EAAU3xL,EAAOqE,IAAIitL,EAAQhyL,IAAI,QAASU,EAAO4G,MAAMquF,EAAac,cAAe72F,IASvF,OAPIzB,IACFk0L,EAAU3xL,EAAOyuD,OAAOkjI,EAAS3xL,EAAO4G,MAAMquF,EAAasB,WAAY94F,KAGzEyjF,EAAO1gE,SAASmxK,EAAS,KAAMl0L,EAAWw3F,EAAa2C,eAAiB,SAAUh2F,GAChF,OAAOA,EAAKmJ,QAEPm2E,EAGTphF,EAAOC,QAAUpD,G,uBC9KjB,IAAIqD,EAAS,EAAQ,QAEjBqQ,EAAiB,EAAQ,QAEzBivC,EAAU,EAAQ,QAElB4zB,EAAkB5zB,EAAQ4zB,gBAC1B0+G,EAAiBtyI,EAAQsyI,eACzBr+C,EAAmBj0F,EAAQi0F,iBAoB3Bs+C,EAAgBxhL,EAAezT,OAAO,CACxCC,KAAM,WAKNa,iBAAkB,KAClBS,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHsJ,KAAM,GACNC,IAAK,GACLkqL,SAAU,GAEV5tL,OAAQ,aAERm/C,UAAW,CACT7kD,MAAM,EACNG,UAAW,CACTqW,MAAO,OACPpW,MAAO,EACP/B,KAAM,UAIVyL,UAAW,CACT0M,MAAO,OACPxM,YAAa,EACbD,YAAa,QAGfwpL,SAAU,CACRvzL,MAAM,EAENwzL,SAAU,EAEV5pL,SAAU,QACVi3E,OAAQ,MAERr1E,QAAS,KACTgL,MAAO,QAGTi9K,WAAY,CACVzzL,MAAM,EAEN4J,SAAU,QACVi3E,OAAQ,EAERj7E,MAAO,SAEP4F,QAAS,KACTkoD,UAAW,KACXl9C,MAAO,QAGTk9K,UAAW,CACT1zL,MAAM,EAEN4J,SAAU,KACVi3E,OAAQ,GACRntB,UAAW,KACXl9C,MAAO,OACPo3D,WAAY,aACZD,WAAY,SACZrlD,SAAU,KAOd1gB,KAAM,SAAUnJ,EAAQq/C,EAAap/C,EAASy2I,GAC5C,IAAIO,EAAsBhhE,EAAgBj2E,GAC1C40L,EAAcxrL,WAAWjJ,KAAM,OAAQkJ,WACvC6rL,EAA8Bl1L,EAAQi3I,IAMxCh0E,YAAa,SAAUjjE,EAAQ02I,GAC7Bk+C,EAAcxrL,WAAWjJ,KAAM,cAAekJ,WAC9C6rL,EAA8B/0L,KAAKH,OAAQA,MAI/C,SAASk1L,EAA8B3iL,EAAQ4iL,GAE7C,IAAIN,EAAWtiL,EAAOsiL,SAEjB9xL,EAAOogB,QAAQ0xK,GAEW,IAApBA,EAASzpL,SAClBypL,EAAS,GAAKA,EAAS,IAFvBA,EAAWtiL,EAAOsiL,SAAW,CAACA,EAAUA,GAK1C,IAAI74B,EAAaj5J,EAAOqE,IAAI,CAAC,EAAG,IAAI,SAAUguL,GAQ5C,OAJIT,EAAeQ,EAAKC,KACtBP,EAASO,GAAS,QAGM,MAAnBP,EAASO,IAAsC,SAApBP,EAASO,MAE7C9+C,EAAiB/jI,EAAQ4iL,EAAK,CAC5Bv1L,KAAM,MACNo8J,WAAYA,IAIhB,IAAIt8J,EAAWk1L,EACf/xL,EAAOC,QAAUpD,G,uBC9IjB,IAAIqD,EAAS,EAAQ,QAoBjBsyL,EAAiB,CAAC,SAAU,QAAS,WAAY,YAAa,sBAAuB,iBAAkB,aAAc,KAAM,MAAO,aAAc,sBAAuB,WAAY,YAAa,0BAA2B,wBAE/N,SAAS31E,EAAa41E,GACpBvyL,EAAOzD,KAAK+1L,GAAgB,SAAUvoL,GACpC3M,KAAK2M,GAAQ/J,EAAOiC,KAAKswL,EAAcxoL,GAAOwoL,KAC7Cn1L,MAGL,IAAIT,EAAWggH,EACf78G,EAAOC,QAAUpD,G,qBC7BjB,IAAI6I,EAAU,EAAQ,QA0BlBshH,EAAa,CACfjqH,KAAM,iBACN6I,MAAO,oBAGTF,EAAQC,eAAeqhH,GAAY,SAAUxrF,EAASp+B,GACpDA,EAAQs+B,cAAc,CACpBnB,SAAU,eACVmE,MAAOlD,IACN,SAAUk3J,GACXA,EAAkB1lL,KAAKogB,MAAMulK,mBAAmBn3J,EAAQo3J,iBAO5DltL,EAAQC,eAAe,sBAAsB,SAAU61B,EAASp+B,GAC9DA,EAAQs+B,cAAc,CACpBnB,SAAU,WACVmE,MAAOlD,IACN,SAAUl8B,GACXA,EAAcghE,cAAc9kC,U,uBChDhC,IAAIq3J,EAAW,EAAQ,QAEnBplI,EAAmB,EAAQ,QAwB/B,SAASvsB,EAAO9jC,EAASyG,GACvB,IAAIu9G,EAAe,GAoBnB,OAnBAhkH,EAAQs+B,cAAc,YAAY,SAAUp8B,EAAekO,GACzD,IAAI7P,EAAW,IAAIk1L,EAASvzL,EAAelC,EAASyG,GACpDlG,EAASsM,KAAO,YAAcuD,EAC9B7P,EAAS48E,OAAOj7E,EAAeuE,GAC/BvE,EAAc1B,iBAAmBD,EACjCA,EAASyvB,MAAQ9tB,EACjB8hH,EAAajjH,KAAKR,MAGpBP,EAAQ04C,YAAW,SAAU12C,GAC3B,GAA4C,aAAxCA,EAAYI,IAAI,oBAAoC,CACtD,IAAIF,EAAgBlC,EAAQgxD,gBAAgB,CAC1C7zB,SAAU,WACV91B,MAAOrF,EAAYI,IAAI,iBACvBiG,GAAIrG,EAAYI,IAAI,gBACnB,GACHJ,EAAYxB,iBAAmB0B,EAAc1B,qBAG1CwjH,EAGT3zD,EAAiBjJ,SAAS,WAAY,CACpCtjB,OAAQA,K,uBCnDV,IAAI1kC,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KACb8H,EAAM/H,EAAM+H,IAEZ4c,EAAU,EAAQ,QAElB8vD,EAAY9vD,EAAQ8vD,UACpBoH,EAAoBl3D,EAAQk3D,kBAC5BpxD,EAAQ9F,EAAQ8F,MAEhB6rK,EAAwB,EAAQ,QAEhCC,EAAkBD,EAAsBC,gBACxCC,EAAmBF,EAAsBE,iBACzCC,EAA4BH,EAAsBG,0BAoBlDC,EAAoB,CAAC,EAAG,GAMxB9hK,EAAO,SAAU/jB,EAAKtB,EAAOopB,GAK/B73B,KAAK+P,IAAMA,EAMX/P,KAAKyO,MAAQA,EAMbzO,KAAK6oD,QAAUhxB,GAAU,CAAC,EAAG,GAK7B73B,KAAKoH,SAAU,EAMfpH,KAAKwwD,QAAS,GAkOhB,SAASqlI,EAAmBh+J,EAAQi+J,GAClC,IAAIxpL,EAAOurB,EAAO,GAAKA,EAAO,GAC1Bvf,EAAMw9K,EACN7zG,EAAS31E,EAAOgM,EAAM,EAC1Buf,EAAO,IAAMoqD,EACbpqD,EAAO,IAAMoqD,EAYf,SAAS8zG,EAAqBrmL,EAAMuwC,EAAa83H,EAAgBhmE,GAC/D,IAAIikF,EAAW/1I,EAAYh1C,OAE3B,GAAKyE,EAAK8gD,SAAUunH,GAAmBie,EAAvC,CAIA,IACIr6J,EACAs6J,EAFApjI,EAAanjD,EAAK6V,YAItB,GAAiB,IAAbywK,EACF/1I,EAAY,GAAG5zC,MAAQwmD,EAAW,GAClCl3B,EAAOskB,EAAY,GAAK,CACtB5zC,MAAOwmD,EAAW,QAEf,CACL,IAAIqjI,EAAWj2I,EAAY+1I,EAAW,GAAG9mF,UAAYjvD,EAAY,GAAGivD,UAChEpqC,GAAS7kB,EAAY+1I,EAAW,GAAG3pL,MAAQ4zC,EAAY,GAAG5zC,OAAS6pL,EACvE/2L,EAAK8gD,GAAa,SAAUk2I,GAC1BA,EAAU9pL,OAASy4D,EAAQ,KAE7B,IAAIx/C,EAAa5V,EAAKjB,MAAM8W,YAC5B0wK,EAAW,EAAI3wK,EAAW,GAAK26B,EAAY+1I,EAAW,GAAG9mF,UACzDvzE,EAAO,CACLtvB,MAAO4zC,EAAY+1I,EAAW,GAAG3pL,MAAQy4D,EAAQmxH,GAEnDh2I,EAAYp/C,KAAK86B,GAGnB,IAAIv0B,EAAUyrD,EAAW,GAAKA,EAAW,GAErC2hD,EAAWv0D,EAAY,GAAG5zC,MAAOwmD,EAAW,MAC9Ck/C,EAAQ9xD,EAAY,GAAG5zC,MAAQwmD,EAAW,GAAK5S,EAAY6kB,SAGzDitC,GAASyC,EAAW3hD,EAAW,GAAI5S,EAAY,GAAG5zC,QACpD4zC,EAAYz4B,QAAQ,CAClBnb,MAAOwmD,EAAW,KAIlB2hD,EAAW3hD,EAAW,GAAIl3B,EAAKtvB,SACjC0lG,EAAQp2E,EAAKtvB,MAAQwmD,EAAW,GAAK5S,EAAY+kB,OAG/C+sC,GAASyC,EAAW74E,EAAKtvB,MAAOwmD,EAAW,KAC7C5S,EAAYp/C,KAAK,CACfwL,MAAOwmD,EAAW,KAItB,SAAS2hD,EAAWn9F,EAAGC,GAKrB,OAFAD,EAAIsS,EAAMtS,GACVC,EAAIqS,EAAMrS,GACHlQ,EAAUiQ,EAAIC,EAAID,EAAIC,GAzSjCwc,EAAKhmB,UAAY,CACfC,YAAa+lB,EAOb5lB,QAAS,SAAU7B,GACjB,IAAIwrB,EAAS73B,KAAK6oD,QACdn4C,EAAM7E,KAAK6E,IAAImnB,EAAO,GAAIA,EAAO,IACjCpnB,EAAM5E,KAAK4E,IAAIonB,EAAO,GAAIA,EAAO,IACrC,OAAOxrB,GAASqE,GAAOrE,GAASoE,GAQlCwoF,YAAa,SAAU14F,GACrB,OAAOP,KAAKyO,MAAMP,QAAQ3N,IAO5BglB,UAAW,WACT,OAAOvlB,KAAK6oD,QAAQvhD,SAQtByzE,kBAAmB,SAAUz1D,GAC3B,OAAOy1D,EAAkBz1D,GAActlB,KAAKyO,MAAM8W,YAAavlB,KAAK6oD,UAQtE7F,UAAW,SAAUzuC,EAAO8lE,GAC1B,IAAIxiD,EAAS73B,KAAK6oD,QAClBhxB,EAAO,GAAKtjB,EACZsjB,EAAO,GAAKwiD,GASd7pE,YAAa,SAAUjQ,EAAMwxG,GAC3B,IAAIl6E,EAAS73B,KAAK6oD,QACdp6C,EAAQzO,KAAKyO,MAQjB,OAPAlO,EAAOkO,EAAMu6C,UAAUzoD,GAEnBP,KAAKwwD,QAAyB,YAAf/hD,EAAMhP,OACvBo4B,EAASA,EAAOvwB,QAChBuuL,EAAmBh+J,EAAQppB,EAAM0T,UAG5BwxD,EAAUpzE,EAAMq1L,EAAmB/9J,EAAQk6E,IASpDr0B,YAAa,SAAUrxE,EAAO0lG,GAC5B,IAAIl6E,EAAS73B,KAAK6oD,QACdp6C,EAAQzO,KAAKyO,MAEbzO,KAAKwwD,QAAyB,YAAf/hD,EAAMhP,OACvBo4B,EAASA,EAAOvwB,QAChBuuL,EAAmBh+J,EAAQppB,EAAM0T,UAGnC,IAAI9N,EAAIs/D,EAAUtnE,EAAOwrB,EAAQ+9J,EAAmB7jF,GACpD,OAAO/xG,KAAKyO,MAAMA,MAAM4F,IAS1BgpE,YAAa,SAAU/lD,EAAOy6E,KAiB9B7xD,eAAgB,SAAU1wC,GACxBA,EAAMA,GAAO,GACb,IAAIowI,EAAYpwI,EAAIowI,WAAa5/I,KAAKo2L,eAClCzvK,EAAS8uK,EAAgBz1L,KAAM4/I,GAC/B12F,EAAQviC,EAAOuiC,MACfjJ,EAAch5C,EAAIiiD,GAAO,SAAUgmD,GACrC,MAAO,CACL7iG,MAAOrM,KAAKwQ,YAAY0+F,GACxBA,UAAWA,KAEZlvG,MACC+3K,EAAiBn4B,EAAU19I,IAAI,kBAEnC,OADA6zL,EAAqB/1L,KAAMigD,EAAa83H,EAAgBvoK,EAAIuiG,OACrD9xD,GAMTG,oBAAqB,WACnB,GAAwB,YAApBpgD,KAAKyO,MAAMhP,KAEb,MAAO,GAGT,IAAI42L,EAAiBr2L,KAAK8vB,MAAM7O,SAAS,aACrCsD,EAAc8xK,EAAen0L,IAAI,eAE/BqiB,EAAc,GAAKA,EAAc,MACrCA,EAAc,GAGhB,IAAI+xK,EAAat2L,KAAKyO,MAAM8nL,cAAchyK,GACtC47B,EAAmBl5C,EAAIqvL,GAAY,SAAUE,GAC/C,OAAOvvL,EAAIuvL,GAAiB,SAAUxe,GACpC,MAAO,CACL3rK,MAAOrM,KAAKwQ,YAAYwnK,GACxB9oE,UAAW8oE,KAEZh4K,QACFA,MACH,OAAOmgD,GAUT6uD,cAAe,WACb,OAAO0mF,EAAiB11L,MAAM+uG,QAMhC76E,cAAe,WACb,OAAOl0B,KAAK8vB,MAAM7O,SAAS,cAW7Bm1K,aAAc,WACZ,OAAOp2L,KAAK8vB,MAAM7O,SAAS,aAO7BgX,aAAc,WACZ,IAAI46B,EAAa7yD,KAAK6oD,QAClBvjC,EAAatlB,KAAKyO,MAAM8W,YACxBjN,EAAMgN,EAAW,GAAKA,EAAW,IAAMtlB,KAAKwwD,OAAS,EAAI,GAErD,IAARl4C,IAAcA,EAAM,GACpB,IAAIhM,EAAOT,KAAKC,IAAI+mD,EAAW,GAAKA,EAAW,IAC/C,OAAOhnD,KAAKC,IAAIQ,GAAQgM,GAO1B6b,aAAc,KAMdsiK,UAAW,KAOXd,0BAA2B,WACzB,OAAOA,EAA0B31L,QAkFrC,IAAIT,EAAWu0B,EACfpxB,EAAOC,QAAUpD,G,uBCtXjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjByb,EAAQ,EAAQ,QAEhB5V,EAAS,EAAQ,QAEjB+vI,EAAkB/vI,EAAO+vI,gBAEzB1xD,EAAO,EAAQ,QAoBf4vG,EAAe5vG,EAAKJ,OAAO3+C,SAC3B4uJ,EAAwB,CAC1BhwG,IAAK,CACHlnF,KAAM,MACN6zB,MAAO1wB,EAAO8E,MAAMgvL,EAAa/vG,MAEnCv/E,QAAS,CACP3H,KAAM,UACN6zB,MAAO1wB,EAAO8E,MAAMgvL,EAAatvL,WAGjCwvL,EAAcxuL,EAAQ48C,qBAAqB,CAC7CvlD,KAAM,eACNC,aAAc,CAAC,UACfw0D,WAAY,CACVz0D,KAAM,MAQNo8J,YAAY,GAEd7yJ,KAAM,SAAUnJ,EAAQq/C,EAAap/C,GACnCE,KAAKy/E,qBAAqB5/E,EAAQC,GAClCD,EAAO4H,SAAW5H,EAAO4H,UAAY,GAErCzH,KAAK62L,gBAAgBh3L,IAEvBijE,YAAa,SAAUjjE,GACrB+2L,EAAY9sL,UAAU9J,KAAM,cAAeH,GAE3CG,KAAK62L,gBAAgBh3L,IAEvBg3L,gBAAiB,SAAUh3L,GACzB,IAAIkoC,EAAWloC,EAAOkoC,UAEL,IAAbA,IACFA,EAAWloC,EAAOkoC,SAAW,CAAC,MAAO,YAGnCnlC,EAAOogB,QAAQ+kB,IACjBnlC,EAAOzD,KAAK4oC,GAAU,SAAUvjC,EAAM2C,GACpCvE,EAAOid,SAASrb,KAAUA,EAAO,CAC/B/E,KAAM+E,IAERujC,EAAS5gC,GAASvE,EAAOie,MAAMrc,EAAMmyL,EAAsBnyL,EAAK/E,WAItE+T,cAAe,WACbxT,KAAK82L,YAAY92L,KAAKF,SAEtB,IAAIkiI,EAAahiI,KAAK49C,MAEtB,GAAIokF,EAAW,IAAmC,WAA7BhiI,KAAKkC,IAAI,gBAA8B,CAG1D,IAFA,IAAI60L,GAAc,EAET9oL,EAAI,EAAGA,EAAI+zH,EAAW/2H,OAAQgD,IAAK,CAC1C,IAAItB,EAAOq1H,EAAW/zH,GAAG/L,IAAI,QAE7B,GAAIlC,KAAKu9B,WAAW5wB,GAAO,CAEzB3M,KAAKo3K,OAAOzqK,GACZoqL,GAAc,EACd,QAKHA,GAAe/2L,KAAKo3K,OAAOp1C,EAAW,GAAG9/H,IAAI,WAGlD40L,YAAa,SAAUh3L,GACrB,IAAIk3L,EAAgB,GAChBC,EAAiB,GACrBn3L,EAAQmpJ,eAAc,SAAUnnJ,GAC9B,IAEIo1L,EAFAtmJ,EAAa9uC,EAAY6K,KAI7B,GAHAsqL,EAAep2L,KAAK+vC,GAGhB9uC,EAAYqH,qBAAsB,CACpC,IAAIqgJ,EAAW1nJ,EAAYqH,qBACvBqf,EAAQghI,EAAS2tC,cAEhBr3L,EAAQyxD,iBAAiBzvD,KAC5Bm1L,EAAiBA,EAAez/H,OAAOhvC,IAGrCA,EAAMvd,OACR+rL,EAAgBA,EAAcx/H,OAAOhvC,GAErC0uK,GAAc,OAGhBA,GAAc,EAGZA,GAAe1+C,EAAgB12I,IACjCk1L,EAAcn2L,KAAKiB,EAAY6K,SAQnC3M,KAAKo3L,gBAAkBH,EAGvB,IAAI5hC,EAAUr1J,KAAKkC,IAAI,SAAW80L,EAC9Bh1D,EAAap/H,EAAOqE,IAAIouJ,GAAS,SAAU9pJ,GAQ7C,MANwB,kBAAbA,GAA6C,kBAAbA,IACzCA,EAAW,CACToB,KAAMpB,IAIH,IAAI8S,EAAM9S,EAAUvL,KAAMA,KAAKF,WACrCE,MAMHA,KAAK49C,MAAQokF,GAMfxhI,QAAS,WACP,OAAOR,KAAK49C,OAMdw5H,OAAQ,SAAUzqK,GAChB,IAAIlF,EAAWzH,KAAKH,OAAO4H,SACvBI,EAAe7H,KAAKkC,IAAI,gBAE5B,GAAqB,WAAjB2F,EAA2B,CAC7B,IAAItH,EAAOP,KAAK49C,MAChBh7C,EAAOzD,KAAKoB,GAAM,SAAUgL,GAC1B9D,EAAS8D,EAASrJ,IAAI,UAAW,KAIrCuF,EAASkF,IAAQ,GAMnB0qK,SAAU,SAAU1qK,GACe,WAA7B3M,KAAKkC,IAAI,kBACXlC,KAAKH,OAAO4H,SAASkF,IAAQ,IAOjC2qK,eAAgB,SAAU3qK,GACxB,IAAIlF,EAAWzH,KAAKH,OAAO4H,SAEtBA,EAASsV,eAAepQ,KAC3BlF,EAASkF,IAAQ,GAGnB3M,KAAKyH,EAASkF,GAAQ,WAAa,UAAUA,IAE/C0qL,UAAW,WACT,IAAI92L,EAAOP,KAAK49C,MACZn2C,EAAWzH,KAAKH,OAAO4H,SAC3B7E,EAAOzD,KAAKoB,GAAM,SAAUgL,GAC1B9D,EAAS8D,EAASrJ,IAAI,QAAQ,KAAS,MAG3Co1L,cAAe,WACb,IAAI/2L,EAAOP,KAAK49C,MACZn2C,EAAWzH,KAAKH,OAAO4H,SAC3B7E,EAAOzD,KAAKoB,GAAM,SAAUgL,GAC1B,IAAIoB,EAAOpB,EAASrJ,IAAI,QAAQ,GAE3BuF,EAASsV,eAAepQ,KAC3BlF,EAASkF,IAAQ,GAGnBlF,EAASkF,IAASlF,EAASkF,OAO/B4wB,WAAY,SAAU5wB,GACpB,IAAIlF,EAAWzH,KAAKH,OAAO4H,SAC3B,QAASA,EAASsV,eAAepQ,KAAUlF,EAASkF,KAAU/J,EAAOiwB,QAAQ7yB,KAAKo3L,gBAAiBzqL,IAAS,GAE9G+7B,UAAW,WACT,MAA8B,aAAvB1oC,KAAKkC,IAAI,UAA2B,CACzCiF,MAAO,EACPwF,KAAM,YACJ,CACFxF,MAAO,EACPwF,KAAM,eAGV5L,cAAe,CAEbC,OAAQ,EAERC,EAAG,EACHG,MAAM,EAGN0F,OAAQ,aACRyD,KAAM,SAENC,IAAK,EAKLxD,MAAO,OACP+iB,gBAAiB,gBAEjB5e,YAAa,OACb87C,aAAc,EAEd77C,YAAa,EAGb4e,QAAS,EAGTxF,QAAS,GAETN,UAAW,GAEXC,WAAY,GAEZ4lI,cAAe,OAEfC,oBAAqB,OACrB9+I,UAAW,CAETE,YAAa,GAEfiiE,UAAW,CAETz1D,MAAO,QAIT/P,cAAc,EAWdkgC,UAAU,EACVwvJ,cAAe,CACbn2L,MAAM,EACN6lD,aAAc,GACdj9B,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBN,SAAU,GACVslD,WAAY,cACZp3D,MAAO,OACPxM,YAAa,EACbD,YAAa,QAEfzJ,SAAU,CACR61L,cAAe,CACbn2L,MAAM,EACNwW,MAAO,OACPmS,gBAAiB,SAIrBie,iBAAkB,OAClBwvJ,gBAAiB,EACjBluJ,kBAAmB,GAEnBqgB,QAAS,CACPvoD,MAAM,MAIR7B,EAAWq3L,EACfl0L,EAAOC,QAAUpD,G,qBCvVjB,IAAIk4L,EAAM5rL,KAAKomB,IAAI,GAEnB,SAASylK,EAAYC,EAAM5uI,EAAM6uI,EAAUC,EAASC,EAASC,GAC3D,IAAIC,EAAWH,EAAU,IAAMC,EAC3BG,EAAWN,EAAK1sL,OAEpB,GAAI8sL,EAASh7K,eAAei7K,GAC1B,OAAOD,EAASC,GAGlB,GAAa,IAATjvI,EAAY,CAEd,IAAImvI,EAAWrsL,KAAK8d,MAAM9d,KAAKomB,KAAK,GAAKgmK,GAAY,GAAKH,GAAWL,GACrE,OAAOE,EAAKC,GAAUM,GAGxB,IAAIC,EAAaN,EAAU,GAAKD,EAC5BQ,EAAcR,EAAW,EAE7B,MAAOC,EAAU,GAAKO,EACpBA,IAKF,IAFA,IAAInuL,EAAM,EAEDuO,EAAI,EAAG6/K,EAAc,EAAG7/K,EAAIy/K,EAAUz/K,IAAK,CAClD,IAAI8/K,EAAS,GAAK9/K,EAEZ8/K,EAASR,IACb7tL,IAAQouL,EAAc,GAAK,EAAI,GAAKV,EAAKC,GAAUp/K,GACjDk/K,EAAYC,EAAM5uI,EAAO,EAAGqvI,EAAaD,EAAYL,EAAUQ,EAAQP,GACzEM,KAKJ,OADAN,EAASC,GAAY/tL,EACdA,EAqBT,SAASqzJ,EAAiB53H,EAAKpvB,GAC7B,IAAIiiL,EAAK,CAAC,CAAC7yJ,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAAC,EAAG,EAAG,EAAGA,EAAI,GAAIA,EAAI,GAAI,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAACA,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAAC,EAAG,EAAG,EAAGA,EAAI,GAAIA,EAAI,GAAI,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAACA,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAAC,EAAG,EAAG,EAAGA,EAAI,GAAIA,EAAI,GAAI,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAACA,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,IAAK,CAAC,EAAG,EAAG,EAAGA,EAAI,GAAIA,EAAI,GAAI,GAAIpvB,EAAK,GAAKovB,EAAI,IAAKpvB,EAAK,GAAKovB,EAAI,KACjiBqyJ,EAAW,GACXrzI,EAAMgzI,EAAYa,EAAI,EAAG,EAAG,EAAG,EAAGR,GAEtC,GAAY,IAARrzI,EAAJ,CASA,IAFA,IAAI8zI,EAAK,GAEAvqL,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAIuK,EAAI,EAAGA,EAAI,EAAGA,IACZ,MAATggL,EAAGhgL,KAAeggL,EAAGhgL,GAAK,GAC1BggL,EAAGhgL,MAAQvK,EAAIuK,GAAK,GAAK,EAAI,GAC7Bk/K,EAAYa,EAAI,EAAS,IAANtqL,EAAU,EAAI,EAAG,GAAKA,EAAG,GAAKuK,EAAGu/K,GAAYrzI,EAAMpuC,EAAKrI,GAI/E,OAAO,SAAUiB,EAAKupL,EAAWC,GAC/B,IAAIC,EAAKF,EAAYD,EAAG,GAAKE,EAAYF,EAAG,GAAK,EACjDtpL,EAAI,IAAMupL,EAAYD,EAAG,GAAKE,EAAYF,EAAG,GAAKA,EAAG,IAAMG,EAC3DzpL,EAAI,IAAMupL,EAAYD,EAAG,GAAKE,EAAYF,EAAG,GAAKA,EAAG,IAAMG,IAI/Dh2L,EAAQ26J,iBAAmBA,G,qBC7F3B,IAAI93E,EAAgB,EAAV35E,KAAK+E,GAEf,SAASgoL,EAAgBpmI,GAOvB,OANAA,GAASgzB,EAELhzB,EAAQ,IACVA,GAASgzB,GAGJhzB,EAGT7vD,EAAQi2L,gBAAkBA,G,uBCQ1B,IAAI15L,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cACtBD,EAAOD,EAAMC,KACb0gB,EAAW3gB,EAAM2gB,SACjBpO,EAAWvS,EAAMuS,SACjBjS,EAASN,EAAMM,OACfymB,EAAW/mB,EAAM+mB,SACjBve,EAAQxI,EAAMwI,MAEde,EAAS,EAAQ,QAEjBswG,EAAmBtwG,EAAOswG,iBAE1BpwG,EAAgB,EAAQ,QAExB+oC,EAAe/oC,EAAc+oC,aAC7B7D,EAAallC,EAAcklC,WAE3BT,EAAS,EAAQ,QAEjBkyD,EAAmB,EAAQ,QAE3B3P,EAAmB2P,EAAiB3P,iBAEpCguD,EAAoB,EAAQ,QAiEhC,SAASl7F,EAAmBo2I,EAAS94L,EAAQyP,GACtC49B,EAAO0V,WAAW/iD,KACrBA,EAASqtC,EAAOi8C,mBAAmBtpF,IAGrCyP,EAAMA,GAAO,GACbqpL,GAAWA,GAAW,IAAIvxL,QAQ1B,IAPA,IAAImpC,GAAWjhC,EAAIihC,SAAW,IAAInpC,QAC9BwxL,EAAiB15L,IACjB25L,EAAkB35L,IAElBunB,EAAS,GACTkqB,EAAWmoJ,EAAYj5L,EAAQ84L,EAASpoJ,EAASjhC,EAAIqhC,UAEhD5iC,EAAI,EAAGA,EAAI4iC,EAAU5iC,IAAK,CACjC,IAAI4jC,EAAapB,EAAQxiC,GAAKzO,EAAO,GAAIymB,EAASwqB,EAAQxiC,IAAMwiC,EAAQxiC,GAAK,CAC3EtB,KAAM8jC,EAAQxiC,KAEZgrL,EAAcpnJ,EAAWllC,KACzB27K,EAAa3hK,EAAO1Y,GAAK,IAAI0vI,EAEd,MAAfs7C,GAA0D,MAAnCH,EAAe52L,IAAI+2L,KAI5C3Q,EAAW37K,KAAO27K,EAAWh5I,YAAc2pJ,EAC3CH,EAAev2L,IAAI02L,EAAahrL,IAGf,MAAnB4jC,EAAWpyC,OAAiB6oL,EAAW7oL,KAAOoyC,EAAWpyC,MAC/B,MAA1BoyC,EAAWvC,cAAwBg5I,EAAWh5I,YAAcuC,EAAWvC,aAGzE,IAAI4pJ,EAAY1pL,EAAI0pL,WAEfA,GAAa1pL,EAAIjG,kBACpB2vL,EAAY1pL,EAAIjG,gBAAgBxJ,EAAQ8wC,IAG1CqoJ,EAAY95L,EAAc85L,GAE1BA,EAAU/5L,MAAK,SAAU8kI,EAAU9zC,GAKjC,GAJA8zC,EAAWlrB,EAAiBkrB,GAAU38H,QAId,IAApB28H,EAASh5H,SAAiB4U,EAASokH,EAAS,KAAOA,EAAS,GAAK,EACnEi1D,EAAU32L,IAAI4tF,GAAU,OAD1B,CAKA,IAAIgpG,EAAgBD,EAAU32L,IAAI4tF,EAAU,IAC5ChxF,EAAK8kI,GAAU,SAAUm1D,EAAclpL,GAErC2P,EAASu5K,KAAkBA,EAAeN,EAAe52L,IAAIk3L,IAEzC,MAAhBA,GAAwBA,EAAevoJ,IACzCsoJ,EAAcjpL,GAAOkpL,EACrBC,EAAS1yK,EAAOyyK,GAAejpG,EAAUjgF,WAK/C,IAAIopL,EAAc,EA2DlB,SAASD,EAAS/Q,EAAYn4F,EAAUC,GACA,MAAlCT,EAAiBztF,IAAIiuF,GACvBm4F,EAAW53F,UAAUP,GAAYC,GAEjCk4F,EAAWn4F,SAAWA,EACtBm4F,EAAWl4F,cAAgBA,EAC3B2oG,EAAgBx2L,IAAI4tF,GAAU,IAhElChxF,EAAK05L,GAAS,SAAUU,EAAYC,GAClC,IAAIrpG,EAEAspG,EACAC,EAEJ,GAAI75K,EAAS05K,GACXppG,EAAWopG,EACXA,EAAa,OACR,CACLppG,EAAWopG,EAAW5sL,KACtB,IAAIg8C,EAAc4wI,EAAW5wI,YAC7B4wI,EAAW5wI,YAAc,KACzB4wI,EAAa7xL,EAAM6xL,GACnBA,EAAW5wI,YAAcA,EAEzB8wI,EAAoBF,EAAW9oJ,QAC/BipJ,EAAsBH,EAAW7oG,UACjC6oG,EAAW5sL,KAAO4sL,EAAWppG,SAAWopG,EAAWnpG,cAAgBmpG,EAAW9oJ,QAAU8oJ,EAAW7oG,UAAY,KAGjH,IAAIuzC,EAAWi1D,EAAUh3L,IAAIiuF,GAE7B,IAAiB,IAAb8zC,EAAJ,CAIIA,EAAWlrB,EAAiBkrB,GAEhC,IAAKA,EAASh5H,OACZ,IAAK,IAAIgD,EAAI,EAAGA,GAAKwrL,GAAqBA,EAAkBxuL,QAAU,GAAIgD,IAAK,CAC7E,MAAOqrL,EAAc3yK,EAAO1b,QAA0C,MAAhC0b,EAAO2yK,GAAanpG,SACxDmpG,IAGFA,EAAc3yK,EAAO1b,QAAUg5H,EAASpjI,KAAKy4L,KAKjDn6L,EAAK8kI,GAAU,SAAUm1D,EAAchpG,GACrC,IAAIk4F,EAAa3hK,EAAOyyK,GAGxB,GAFAC,EAAS5nL,EAAS62K,EAAYiR,GAAappG,EAAUC,GAE9B,MAAnBk4F,EAAW37K,MAAgB8sL,EAAmB,CAChD,IAAIE,EAAwBF,EAAkBrpG,IAC7CnqE,EAAS0zK,KAA2BA,EAAwB,CAC3DhtL,KAAMgtL,IAERrR,EAAW37K,KAAO27K,EAAWh5I,YAAcqqJ,EAAsBhtL,KACjE27K,EAAW93F,eAAiBmpG,EAAsBnpG,eAIpDkpG,GAAuBjoL,EAAS62K,EAAW53F,UAAWgpG,UAe1D,IAAIx5F,EAAgB1wF,EAAI0wF,cACpB05F,EAAqBpqL,EAAIoqL,mBACzBC,EAAiC,MAAtBD,EACfA,EAAqB15F,EAAgB05F,GAAsB,EAAI,EAG/D,IAFA,IAAIE,EAAQ55F,GAAiB,QAEpBk5F,EAAe,EAAGA,EAAevoJ,EAAUuoJ,IAAgB,CAC9D9Q,EAAa3hK,EAAOyyK,GAAgBzyK,EAAOyyK,IAAiB,IAAIz7C,EAApE,IACIxtD,EAAWm4F,EAAWn4F,SAEV,MAAZA,IACFm4F,EAAWn4F,SAAW4pG,EAAQD,EAAOf,EAAiBc,GACtDvR,EAAWl4F,cAAgB,IAEtB8P,GAAiB05F,GAAsB,KAC1CtR,EAAWh4F,cAAe,GAG5BspG,KAGiB,MAAnBtR,EAAW37K,OAAiB27K,EAAW37K,KAAOotL,EAAQzR,EAAWn4F,SAAU2oG,IAEpD,MAAnBxQ,EAAW7oL,MAAiBiyC,EAAa3xC,EAAQq5L,EAAc9Q,EAAW37K,QAAUkhC,EAAWC,QAYhGw6I,EAAWh4F,cAAkD,MAAjCg4F,EAAW53F,UAAU//C,UAAuD,MAAnC23I,EAAW53F,UAAU9/C,cAC3F03I,EAAW7oL,KAAO,WAItB,OAAOknB,EAaT,SAASqyK,EAAYj5L,EAAQ84L,EAASpoJ,EAASupJ,GAG7C,IAAInpJ,EAAWhlC,KAAK4E,IAAI1Q,EAAOgvC,uBAAyB,EAAG8pJ,EAAQ5tL,OAAQwlC,EAAQxlC,OAAQ+uL,GAAe,GAK1G,OAJA76L,EAAK05L,GAAS,SAAUU,GACtB,IAAIE,EAAoBF,EAAW9oJ,QACnCgpJ,IAAsB5oJ,EAAWhlC,KAAK4E,IAAIogC,EAAU4oJ,EAAkBxuL,YAEjE4lC,EAGT,SAASkpJ,EAAQptL,EAAM1F,EAAK4yL,GAC1B,GAAIA,GAA6B,MAAjB5yL,EAAI/E,IAAIyK,GAAe,CACrC,IAAIsB,EAAI,EAER,MAA4B,MAArBhH,EAAI/E,IAAIyK,EAAOsB,GACpBA,IAGFtB,GAAQsB,EAIV,OADAhH,EAAI1E,IAAIoK,GAAM,GACPA,EAGT,IAAIpN,EAAWkjD,EACf//C,EAAOC,QAAUpD,G,uBC/SjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASrD,EAASO,GAChBA,EAAQumC,iBAAiB,SAAS,SAAUvkC,GAC1C,IAAIvB,EAAOuB,EAAYtB,UACnB+W,EAAS,GACTlX,EAAWyB,EAAYxB,iBAE3B,GAAKD,EAAL,CAIA,IAAI+jF,EAAO/jF,EAAS68E,mBACpBt6E,EAAOzD,KAAKilF,GAAM,SAAU10E,EAAMs9B,GAChCzsC,EAAKpB,KAAKoB,EAAKyJ,aAAao6E,EAAKp3C,GAAWj9B,MAAM,SAAUtE,EAAK7K,GAC/D2W,EAAO3W,GAAa2W,EAAO3W,IAAc,GACzC,IAAI02B,EAAQj3B,EAAS0L,YAAYN,EAAKuhC,GACtCz1B,EAAO3W,GAAWosC,GAAaitJ,EAAa3iK,GAASA,EAAQ4iK,EAAqB75L,SAItFE,EAAKpB,MAAK,SAAU+Q,GAIlB,IAAIiqL,EAAav3L,EAAOozK,KAAKz+J,EAAOrH,IAAM,SAAUonB,GAClD,OAAO2iK,EAAa3iK,OAChB4iK,EAAqB75L,GAE3BkX,EAAOrH,GAAKrP,KAAKs5L,EAAW7yL,SAC5B/G,EAAKugB,cAAc5Q,EAAKqH,EAAOrH,WAKrC,SAAS+pL,EAAa3iK,GACpB,OAAQve,MAAMue,EAAM,MAAQve,MAAMue,EAAM,IAG1C,SAAS4iK,EAAqB75L,GAG5B,MAAO,CAACA,EAAS+9C,GAAI/9C,EAASg+C,IAGhC37C,EAAOC,QAAUpD,G,mBCnFjB,IAAI66L,EAAS,6BAEb,SAAS1uK,EAAc/e,GACrB,OAAOqe,SAASqvK,gBAAgBD,EAAQztL,GAG1ChK,EAAQ+oB,cAAgBA,G,mBCNxB,SAASxU,EAAY8jD,EAAIC,EAAIb,EAAIC,EAAI50D,EAAGC,GACtC,GAAIA,EAAIu1D,GAAMv1D,EAAI20D,GAAM30D,EAAIu1D,GAAMv1D,EAAI20D,EACpC,OAAO,EAIT,GAAIA,IAAOY,EACT,OAAO,EAGT,IAAIirB,EAAM7rB,EAAKY,EAAK,GAAK,EACrB5mD,GAAK3O,EAAIu1D,IAAOZ,EAAKY,GAEf,IAAN5mD,GAAiB,IAANA,IACb6xE,EAAM7rB,EAAKY,EAAK,IAAO,IAGzB,IAAIq/H,EAAKjmL,GAAK+lD,EAAKY,GAAMA,EAEzB,OAAOs/H,IAAO70L,EAAIsN,IAAWunL,EAAK70L,EAAIygF,EAAM,EAG9CxjF,EAAOC,QAAUuU,G,uBCFjB,IAAI9O,EAAU,EAAQ,QAElBmW,EAAO,EAAQ,QAEf3b,EAAS,EAAQ,QAEjB6F,EAAS,EAAQ,QAEjBC,EAAkBD,EAAOC,gBAEzB2V,EAAQ,EAAQ,QAEhBs/C,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAErB28H,EAA0B,EAAQ,QAElC1xL,EAAuB,EAAQ,QAoB/B2xL,EAAcpyL,EAAQW,kBAAkB,CAC1CtJ,KAAM,eACNuJ,KAAM,SAAUnJ,GACd26L,EAAYvxL,WAAWjJ,KAAM,OAAQkJ,WACrC,IAAIuU,EAAOzd,KAEX,SAASqmF,IACP,OAAO5oE,EAAKg9K,gBAIdz6L,KAAKmJ,qBAAuB,IAAIN,EAAqBw9E,EAAmBA,GACxErmF,KAAKm3I,kBAAkBt3I,EAAO+7E,OAAS/7E,EAAOgkF,OAE9C7jF,KAAK06L,yBAEP53H,YAAa,SAAUjjE,GACrB26L,EAAYvxL,WAAWjJ,KAAM,cAAekJ,WAC5ClJ,KAAKm3I,kBAAkBt3I,EAAO+7E,OAAS/7E,EAAOgkF,OAE9C7jF,KAAK06L,yBAEPj7G,qBAAsB,SAAU5/E,GAC9B26L,EAAYvxL,WAAWjJ,KAAM,uBAAwBkJ,WACrDR,EAAgB7I,EAAQ,CAAC,aAAc,CAAC,UAE1CD,eAAgB,SAAUC,EAAQC,GAChC,IAAI87E,EAAQ/7E,EAAO+7E,OAAS/7E,EAAOgkF,OAAS,GACxC3hE,EAAQriB,EAAOU,MAAQV,EAAOqiB,OAAS,GACvCzE,EAAOzd,KAEX,GAAIkiB,GAAS05D,EACX,OAAO2+G,EAAwBr4K,EAAO05D,EAAO57E,MAAM,EAAMyiB,GAAYliB,KAGvE,SAASkiB,EAAWu7C,EAAUse,GAE5Bte,EAASC,WAAW,gBAAgB,SAAUnuC,GAC5C,IAAI6qK,EAAmBl9K,EAAKm9K,kBACxBC,EAAc/qK,EAAM0sB,WAAW,YAC/Bs+I,EAAgBH,EAAiBE,GAOrC,OALIC,IACFA,EAAc57I,YAAcpvB,EAAMovB,YAClCpvB,EAAMovB,YAAc47I,GAGfhrK,KAET,IAAIirK,EAAiBt9K,EAAKwD,SAAS,aAE/B+5K,EAAkB,IAAI38K,EAAM,CAC9Bld,MAAO45L,EAAel7L,QACrBk7L,EAAe77I,YAAap/C,GAC3Bm7L,EAAyBx9K,EAAKwD,SAAS,sBACvCi6K,EAA0B,IAAI78K,EAAM,CACtC3c,SAAU,CACRP,MAAO85L,EAAuBp7L,SAE/Bo7L,EAAuB/7I,YAAap/C,GAMvC,SAASq7L,EAAcj6K,GAErB,OADAA,EAAOlhB,KAAK4/H,UAAU1+G,GACfA,GAAoB,UAAZA,EAAK,GAAiB85K,EAAkB95K,GAAoB,aAAZA,EAAK,IAAiC,UAAZA,EAAK,GAAiBg6K,EAA0Bl7L,KAAKk/C,YAPhJo9B,EAASre,WAAW,gBAAgB,SAAUnuC,GAE5C,OADAA,EAAMkwG,mBAAmBm7D,GAClBrrK,OAabyW,SAAU,WACR,OAAOvmC,KAAKQ,UAAU8lC,OAMxB80J,YAAa,WACX,OAAOp7L,KAAKumC,WAAW+1C,UAMzB+J,kBAAmB,WACjB,OAAOrmF,KAAKy6L,iBAMdh8H,cAAe,SAAU79D,EAAW62I,EAAgBz6C,GAClD,GAAiB,SAAbA,EAAqB,CACvB,IAAIh/B,EAAWh+D,KAAKQ,UAChBqJ,EAAS7J,KAAK4J,cAAchJ,EAAWo8F,GACvCz1E,EAAOy2C,EAAS13B,MAAMu4G,eAAej+I,GACrCy6L,EAAar9H,EAAS/gB,QAAQ11B,EAAKwoC,MAAMnvD,WACzC06L,EAAat9H,EAAS/gB,QAAQ11B,EAAKyoC,MAAMpvD,WACzCw/E,EAAO,GASX,OARc,MAAdi7G,GAAsBj7G,EAAKv/E,KAAKw6L,GAClB,MAAdC,GAAsBl7G,EAAKv/E,KAAKy6L,GAChCl7G,EAAOxiB,EAAWwiB,EAAKvmE,KAAK,QAExBhQ,EAAO8D,QACTyyE,GAAQ,MAAQxiB,EAAW/zD,EAAO8D,QAG7ByyE,EAGP,OAAOo6G,EAAYvxL,WAAWjJ,KAAM,gBAAiBkJ,YAGzDwxL,sBAAuB,WACrB,IAAIp2K,EAAa1hB,EAAOqE,IAAIjH,KAAKH,OAAOykB,YAAc,IAAI,SAAUmiE,GAElE,OAAyB,MAAlBA,EAAS94E,MAAgB84E,EAAW7jF,EAAOpD,OAAO,CACvDmO,MAAO,GACN84E,MAEDL,EAAiB,IAAI7nE,EAAK,CAAC,SAAUve,MACzComF,EAAehjE,SAASkB,GACxBtkB,KAAKy6L,gBAAkBr0G,EACvBpmF,KAAK46L,kBAAoBx0G,EAAe7F,UAAS,SAAUrwE,GACzD,OAAOk2E,EAAehlE,aAAalR,GAAK,OAG5C6kD,QAAS,SAAU5oD,GACjBnM,KAAKH,OAAOsM,KAAOA,GAErB6oD,UAAW,SAAUt8B,GACnB14B,KAAKH,OAAO64B,OAASA,GAEvB0kB,mBAAoB,WAClB,OAAOo9I,EAAY1wL,UAAU9J,KAAM,yBACP,UAAvBA,KAAKkC,IAAI,WAAyBlC,KAAKkC,IAAI,2BAElDnB,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,OAMlBgK,iBAAiB,EACjB+xC,gBAAgB,EAChBp5C,OAAQ,KACRkiJ,oBAAoB,EAEpBo2C,SAAU,CACRC,aAAa,GAGfvkL,MAAO,CACLqnI,WAAY,KAEZG,UAAW,CAAC,EAAG,IACfU,QAAS,GAETC,SAAU,GAEVV,WAAY,GACZ+8C,iBAAiB,GAEnBlxL,KAAM,SACNC,IAAK,SAKLqoC,OAAQ,SACRkH,WAAY,GACZ2hJ,WAAY,CAAC,OAAQ,QACrBC,eAAgB,GAChBC,UAAW,CACT5wL,SAAU,SACV4+C,SAAU,GAEZ/O,WAAW,EACXgkB,MAAM,EAENnmC,OAAQ,KACRvsB,KAAM,EAEN2yD,eAAgB,GAUhB39D,MAAO,CACLC,MAAM,EACN0zD,UAAW,OAEb5pD,UAAW,GACX3J,UAAW,CACTqW,MAAO,OACPpW,MAAO,EACPsuD,UAAW,EACXruD,QAAS,IAEXC,SAAU,CACRP,MAAO,CACLC,MAAM,OAKV7B,EAAWi7L,EACf93L,EAAOC,QAAUpD,G,uBCtRjB,IAAIuqD,EAAO,EAAQ,QAEf+xI,EAAa,EAAQ,QAMrBt8L,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,UACN+R,MAAO,CACL+F,OAAQ,KACR3V,QAAQ,EACRygF,iBAAkB,MAEpB52B,UAAW,SAAUhnB,EAAKjzB,GACxBqqL,EAAWpwI,UAAUhnB,EAAKjzB,GAAO,MAIrC9O,EAAOC,QAAUpD,G,uBCAjB,IAAIL,EAAQ,EAAQ,QAEhB+H,EAAM/H,EAAM+H,IAEZstB,EAAsB,EAAQ,QAE9B6tB,EAAmB,EAAQ,QAE3BE,EAAqBF,EAAiBE,mBAsB1C,SAAS/iD,EAASq1B,GAChB,MAAO,CACLA,WAAYA,EACZC,KAAMN,IACNO,MAAO,SAAUhzB,GACf,IAAIvB,EAAOuB,EAAYtB,UACnBH,EAAWyB,EAAYxB,iBACvBs1B,EAAkB9zB,EAAY8zB,gBAC9Bg8G,EAAgBh8G,EAAgBC,MAEpC,GAAKx1B,EAAL,CAIA,IAAI+pF,EAAOnjF,EAAI5G,EAAS8B,YAAY,SAAU4N,GAC5C,OAAOxP,EAAKyJ,aAAa+F,MACxBzI,MAAM,EAAG,GACRiuJ,EAASnrE,EAAKn/E,OACd6wL,EAAiBv7L,EAAK42J,mBAAmB,wBA0C7C,OAxCI70G,EAAmB/hD,EAAM6pF,EAAK,MAGhCA,EAAK,GAAK0xG,GAGRx5I,EAAmB/hD,EAAM6pF,EAAK,MAGhCA,EAAK,GAAK0xG,GA+BLvmC,GAAU,CACf5/H,SAAUA,GA7BZ,SAASA,EAAS9rB,EAAQtJ,GAIxB,IAHA,IAAI08J,EAAWpzJ,EAAOwwE,IAAMxwE,EAAO0K,MAC/BgD,EAASq6H,GAAiB,IAAIj9G,aAAasoI,EAAW1H,GAEjDtnJ,EAAIpE,EAAO0K,MAAOO,EAAS,EAAG6iB,EAAQ,GAAIC,EAAS,GAAI3pB,EAAIpE,EAAOwwE,IAAKpsE,IAAK,CACnF,IAAIqpB,EAEJ,GAAe,IAAXi+H,EAAc,CAChB,IAAI9vJ,EAAIlF,EAAK2B,IAAIkoF,EAAK,GAAIn8E,GAC1BqpB,GAASve,MAAMtT,IAAMpF,EAAS0L,YAAYtG,EAAG,KAAMmyB,OAC9C,CACDnyB,EAAIkyB,EAAM,GAAKp3B,EAAK2B,IAAIkoF,EAAK,GAAIn8E,GAArC,IACIvI,EAAIiyB,EAAM,GAAKp3B,EAAK2B,IAAIkoF,EAAK,GAAIn8E,GAErCqpB,GAASve,MAAMtT,KAAOsT,MAAMrT,IAAMrF,EAAS0L,YAAY4rB,EAAO,KAAMC,GAGlEg6G,GACFr6H,EAAOzC,KAAYwiB,EAAQA,EAAM,GAAKD,IACtC9f,EAAOzC,KAAYwiB,EAAQA,EAAM,GAAKD,KAEtC92B,EAAKugB,cAAc7S,EAAGqpB,GAASA,EAAMhwB,SAAW,CAAC+vB,IAAKA,MAI1Du6G,GAAiBrxI,EAAKqgB,UAAU,eAAgBrJ,MAUxD7U,EAAOC,QAAUpD,G,qBC/EjB,IAAIw8L,EAAgB,2BAChBC,EAAO,mBACPC,EAAgB,mBAWpB,SAASzoH,EAAS19B,EAAI35B,EAAO+/K,GAC3B,IAAIC,EAIAliK,EACAs0D,EACAl4B,EACA+lI,EANAC,EAAW,EACXC,EAAW,EACXC,EAAQ,KAOZ,SAASlmG,IACPimG,GAAW,IAAIr8H,MAAOu7B,UACtB+gG,EAAQ,KACRzmJ,EAAGxvB,MAAMioE,EAAOl4B,GAAQ,IAL1Bl6C,EAAQA,GAAS,EAQjB,IAAIgC,EAAK,WACPg+K,GAAW,IAAIl8H,MAAOu7B,UACtBjN,EAAQvuF,KACRq2D,EAAOntD,UACP,IAAIszL,EAAYJ,GAAoBjgL,EAChCsgL,EAAeL,GAAoBF,EACvCE,EAAmB,KACnBniK,EAAOkiK,GAAYM,EAAeJ,EAAWC,GAAYE,EACzDhwK,aAAa+vK,GASTE,EACFF,EAAQluK,WAAWgoE,EAAMmmG,GAErBviK,GAAQ,EACVo8D,IAEAkmG,EAAQluK,WAAWgoE,GAAOp8D,GAI9BoiK,EAAWF,GAuBb,OAfAh+K,EAAG2a,MAAQ,WACLyjK,IACF/vK,aAAa+vK,GACbA,EAAQ,OAQZp+K,EAAGi+K,iBAAmB,SAAUM,GAC9BN,EAAmBM,GAGdv+K,EA+BT,SAAS43B,EAAehwB,EAAK42K,EAAQ7jC,EAAMpjH,GACzC,IAAII,EAAK/vB,EAAI42K,GAEb,GAAK7mJ,EAAL,CAIA,IAAI8mJ,EAAW9mJ,EAAGimJ,IAAkBjmJ,EAChC+mJ,EAAmB/mJ,EAAGmmJ,GACtBa,EAAWhnJ,EAAGkmJ,GAElB,GAAIc,IAAahkC,GAAQ+jC,IAAqBnnJ,EAAc,CAC1D,GAAY,MAARojH,IAAiBpjH,EACnB,OAAO3vB,EAAI42K,GAAUC,EAGvB9mJ,EAAK/vB,EAAI42K,GAAUnpH,EAASopH,EAAU9jC,EAAuB,aAAjBpjH,GAC5CI,EAAGimJ,GAAiBa,EACpB9mJ,EAAGmmJ,GAAiBvmJ,EACpBI,EAAGkmJ,GAAQljC,EAGb,OAAOhjH,GAWT,SAAShd,EAAM/S,EAAK42K,GAClB,IAAI7mJ,EAAK/vB,EAAI42K,GAET7mJ,GAAMA,EAAGimJ,KACXh2K,EAAI42K,GAAU7mJ,EAAGimJ,IAIrBp5L,EAAQ6wE,SAAWA,EACnB7wE,EAAQozC,eAAiBA,EACzBpzC,EAAQm2B,MAAQA,G,uBC5KhB,IAAI1wB,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAoBjBrD,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,SACNuJ,KAAM,WAMJhJ,KAAK65F,eAAiBj3F,EAAOxD,iBAE/BkS,OAAQ,SAAU2uE,EAAangF,EAASyG,GACtC,IAAIszF,EAAiB75F,KAAK65F,eAC1BA,EAAe16F,MAAK,SAAUqF,GAC5BA,EAAK61F,QAAS,KAEhB,IAAI0iG,EAAiB/8L,KAAKP,KAAO,QACjCK,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIm+E,EAAcn+E,EAAYi7L,GAC9B98G,GAAejgF,KAAK85F,aAAah4F,EAAam+E,EAAangF,EAASyG,KACnEvG,MACH65F,EAAe16F,MAAK,SAAUqF,IAC3BA,EAAK61F,QAAUr6F,KAAKsD,MAAM++B,OAAO79B,EAAKlB,SACtCtD,OAEL85F,aAAc,eAGhBp3F,EAAOC,QAAUpD,G,qBCjDjB,IAAIqD,EAAS,EAAQ,QAEjBq8H,EAAS,EAAQ,QAEjBhf,EAAiBgf,EAAOhf,eAoBxBq7B,EAAO,EAOX,SAASl/G,EAAO38B,GAGd,MAAO,CAACA,GAAQ,GAAI67I,IAAQzvI,KAAKixH,SAAS1yH,QAAQ,IAAIyP,KAAK,KAO7D,SAASw2J,EAAuBlV,GAC9B,IAAI6hC,EAAoB,GAqBxB,OAnBA7hC,EAAOoJ,yBAA2B,SAAUziI,EAAem7J,GACzDn7J,EAAgBm+E,EAAen+E,GAC/Bk7J,EAAkBl7J,EAAc26D,MAAQwgG,GAG1C9hC,EAAOitB,iBAAmB,SAAUtmJ,EAAejiC,GACjD,IAAIJ,EAAOI,EAAOJ,KAElB,IAAKA,EAAM,CACT,IAAIy9L,EAAoBj9E,EAAen+E,GAAe26D,KAElD0+D,EAAOO,YAAY55H,IAAkBk7J,EAAkBE,KACzDz9L,EAAOu9L,EAAkBE,GAAmBr9L,IAIhD,OAAOJ,GAGF07J,EAaT,SAASmV,EAAwBnV,EAAQgiC,GAqEvC,SAASC,EAAmBC,GAC1B,IAAI/2J,EAAQ,GACRg3J,EAAc,GAuBlB,OAtBA16L,EAAOzD,KAAKk+L,GAAc,SAAU1wL,GAClC,IAAIyxH,EAAWm/D,EAA0Bj3J,EAAO35B,GAC5C6wL,EAAep/D,EAASo/D,aAAeL,EAAiBxwL,GACxD8wL,EAAgBC,EAAyBF,EAAcH,GAC3Dj/D,EAASu/D,WAAaF,EAAcxyL,OAER,IAAxBmzH,EAASu/D,YACXL,EAAYz8L,KAAK8L,GAGnB/J,EAAOzD,KAAKs+L,GAAe,SAAUG,GAC/Bh7L,EAAOiwB,QAAQurG,EAASy/D,YAAaD,GAAiB,GACxDx/D,EAASy/D,YAAYh9L,KAAK+8L,GAG5B,IAAIE,EAAWP,EAA0Bj3J,EAAOs3J,GAE5Ch7L,EAAOiwB,QAAQirK,EAASC,UAAWH,GAAiB,GACtDE,EAASC,UAAUl9L,KAAK8L,SAIvB,CACL25B,MAAOA,EACPg3J,YAAaA,GAIjB,SAASC,EAA0Bj3J,EAAO35B,GAQxC,OAPK25B,EAAM35B,KACT25B,EAAM35B,GAAQ,CACZkxL,YAAa,GACbE,UAAW,KAIRz3J,EAAM35B,GAGf,SAAS+wL,EAAyBF,EAAcH,GAC9C,IAAII,EAAgB,GAIpB,OAHA76L,EAAOzD,KAAKq+L,GAAc,SAAUQ,GAClCp7L,EAAOiwB,QAAQwqK,EAAcW,IAAQ,GAAKP,EAAc58L,KAAKm9L,MAExDP,EA3GTtiC,EAAOutB,kBAAoB,SAAUuV,EAAgBZ,EAAcpgL,EAAU2C,GAC3E,GAAKq+K,EAAehzL,OAApB,CAIA,IAAI0b,EAASy2K,EAAmBC,GAC5B/2J,EAAQ3f,EAAO2f,MACfotB,EAAQ/sC,EAAO22K,YACfY,EAAgB,GACpBt7L,EAAOzD,KAAK8+L,GAAgB,SAAUtxL,GACpCuxL,EAAcvxL,IAAQ,KAGxB,MAAO+mD,EAAMzoD,OAAQ,CACnB,IAAIkzL,EAAoBzqI,EAAMsR,MAC1Bo5H,EAAa93J,EAAM63J,GACnBE,IAAsBH,EAAcC,GAEpCE,IACFphL,EAASnQ,KAAK8S,EAASu+K,EAAmBC,EAAWZ,aAAal2L,gBAC3D42L,EAAcC,IAGvBv7L,EAAOzD,KAAKi/L,EAAWL,UAAWM,EAAoBC,EAAmBC,GAG3E37L,EAAOzD,KAAK++L,GAAe,WACzB,MAAM,IAAIvnL,MAAM,mCAGlB,SAAS4nL,EAAWC,GAClBl4J,EAAMk4J,GAAmBb,aAEmB,IAAxCr3J,EAAMk4J,GAAmBb,YAC3BjqI,EAAM7yD,KAAK29L,GAUf,SAASF,EAAiBE,GACxBN,EAAcM,IAAqB,EACnCD,EAAWC,KAiEjB77L,EAAQy5B,OAASA,EACjBz5B,EAAQ0tK,uBAAyBA,EACjC1tK,EAAQ2tK,wBAA0BA,G,mBCpLlC,IAAImuB,EAAW,GAEU,qBAAd76H,YACT66H,EAAW76H,UAAU66H,UAAY,IAGnC,IAAIl/L,EAAW,CAQbqY,MAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtH8mL,cAAe,CAAC,UAAW,UAAW,WAGtCrxH,UAAW,CAIT2B,WAAYyvH,EAASx6H,MAAM,QAAU,kBAAoB,aAEzDv6C,SAAU,GACVolD,UAAW,SACXC,WAAY,UAKds9C,UAAW,KACX1uG,UAAW,OACXohD,kBAAmB,IACnBC,wBAAyB,IACzBn9D,gBAAiB,iBACjB88L,sBAAuB,WACvBtwB,mBAAoB,IAEpB1nH,qBAAsB,IACtBhlD,YAAa,IAMbugE,oBAAqB,IAErBR,QAAQ,GAEVh/D,EAAOC,QAAUpD,G,uBCxFjB,IAAIupB,EAAM,EAAQ,QAgBd81K,EAAa,CAAC,CAAC,aAAc,GAAI,CAAC,cAAe,QAAS,CAAC,gBAAiB,GAAI,CAAC,gBAAiB,IAEtG,SAASr/L,EAASs/L,GAEhB,OAAO/1K,EAAIw6C,QAAQY,IAAMp7C,EAAIw6C,QAAQe,SAAW,GAAK,WACnD,IAEIy6H,EAFAC,EAAY/+L,KAAK0sD,YACjBlnD,EAAQxF,KAAKwF,MAGjB,GAAIu5L,EACF,IAAK,IAAI9wL,EAAI,EAAGA,EAAI8wL,EAAU9zL,OAAQgD,IAAK,CACzC,IAAIs9C,EAAWwzI,EAAU9wL,GACrBuD,EAAQ+5C,GAAYA,EAAS/5C,MAC7B/R,EAAO8rD,GAAYA,EAAS9rD,KAEhC,GAAI+R,IAAmB,WAAT/R,GAAqB+R,EAAMswC,aAAetwC,EAAMuwC,UAAqB,SAATtiD,KAAqB+R,EAAMhQ,QAAUgQ,EAAMtF,SAAU,CAC7H,IAAK,IAAIsM,EAAI,EAAGA,EAAIomL,EAAW3zL,OAAQuN,IAGrComL,EAAWpmL,GAAG,GAAKhT,EAAMo5L,EAAWpmL,GAAG,IACvChT,EAAMo5L,EAAWpmL,GAAG,IAAMomL,EAAWpmL,GAAG,GAG1CsmL,GAAW,EACX,OAON,GAFAD,EAAav4K,MAAMtmB,KAAMkJ,WAErB41L,EACF,IAAStmL,EAAI,EAAGA,EAAIomL,EAAW3zL,OAAQuN,IACrChT,EAAMo5L,EAAWpmL,GAAG,IAAMomL,EAAWpmL,GAAG,IAG1CqmL,EAGNn8L,EAAOC,QAAUpD,G,uBCnCjB,IAAI0/D,EAAa,EAAQ,QAErBl2C,EAAa,EAAQ,QAErBw/B,EAAQ,EAAQ,QAEhBrlD,EAAS,EAAQ,QAyBjB87L,EAAc//H,EAAWt1C,MAMzBw1C,EAAgB5W,EAAM/oD,OAAO,CAC/BC,KAAM,WACNghE,UAAW,EACXw+H,mBAAoB,EACpBj8I,UAAW,SAAUzuC,EAAO8lE,GAC1B,IAAI6kH,EAAal/L,KAAK6oD,QAEjB9vC,MAAMxE,KACT2qL,EAAW,GAAKlsG,WAAWz+E,IAGxBwE,MAAMshE,KACT6kH,EAAW,GAAKlsG,WAAW3Y,KAG/BhxB,YAAa,SAAU41H,GACrB,IAAIpnJ,EAAS73B,KAAK6oD,QAClBo2H,EAAM,GAAKpnJ,EAAO,KAAOA,EAAO,GAAKonJ,EAAM,IAC3CA,EAAM,GAAKpnJ,EAAO,KAAOA,EAAO,GAAKonJ,EAAM,IAE3C9/G,EAAcrxD,UAAUk1C,UAAUl2C,KAAK9M,KAAM63B,EAAO,GAAIA,EAAO,KAMjE2mD,YAAa,WACX,OAAOx+E,KAAKygE,WAMdge,YAAa,SAAUv3D,GACrBlnB,KAAKygE,UAAYv5C,EAGjBlnB,KAAKwhE,YAAcxhE,KAAK6oD,QAAQvhD,QAChCtH,KAAKi/L,mBAAqB/7L,EAAOi8L,qBAAqBj4K,IAOxD+hC,SAAU,SAAUm2I,GAClB,IAAIl4K,EAAWlnB,KAAKygE,UAChB5oC,EAAS73B,KAAK6oD,QACdw2I,EAAiBr/L,KAAKwhE,YACtB89H,EAAoBt/L,KAAKi/L,mBACzB/1I,EAAQ,GAEZ,IAAKhiC,EACH,OAAOgiC,EAIT,IAAIq2I,EAAY,IAEZ1nK,EAAO,GAAKwnK,EAAe,KACzBD,EACFl2I,EAAMroD,KAAKm+L,EAAYK,EAAe,GAAKn4K,EAAUo4K,IAErDp2I,EAAMroD,KAAKg3B,EAAO,KAItB,IAAIouI,EAAOo5B,EAAe,GAE1B,MAAOp5B,GAAQo5B,EAAe,GAAI,CAKhC,GAJAn2I,EAAMroD,KAAKolK,GAEXA,EAAO+4B,EAAY/4B,EAAO/+I,EAAUo4K,GAEhCr5B,IAAS/8G,EAAMA,EAAMj+C,OAAS,GAGhC,MAGF,GAAIi+C,EAAMj+C,OAASs0L,EACjB,MAAO,GAMX,IAAIC,EAAet2I,EAAMj+C,OAASi+C,EAAMA,EAAMj+C,OAAS,GAAKo0L,EAAe,GAU3E,OARIxnK,EAAO,GAAK2nK,IACVJ,EACFl2I,EAAMroD,KAAKm+L,EAAYQ,EAAet4K,EAAUo4K,IAEhDp2I,EAAMroD,KAAKg3B,EAAO,KAIfqxB,GAOTqtI,cAAe,SAAUhyK,GAKvB,IAJA,IAAI2kC,EAAQlpD,KAAKipD,UAAS,GACtBqtI,EAAa,GACbz+J,EAAS73B,KAAKulB,YAETtX,EAAI,EAAGA,EAAIi7C,EAAMj+C,OAAQgD,IAAK,CACrC,IAAIwxL,EAAWv2I,EAAMj7C,GACjByxL,EAAWx2I,EAAMj7C,EAAI,GACrBkU,EAAQ,EACRq0K,EAAkB,GAClBtvK,EAAWu4K,EAAWC,EACtBC,EAAgBz4K,EAAW3C,EAE/B,MAAOpC,EAAQoC,EAAc,EAAG,CAC9B,IAAIyzJ,EAAY/4G,EAAWt1C,MAAM+1K,GAAYv9K,EAAQ,GAAKw9K,GAEtD3nB,EAAYngJ,EAAO,IAAMmgJ,EAAYngJ,EAAO,IAC9C2+J,EAAgB31L,KAAKm3K,GAGvB71J,IAGFm0K,EAAWz1L,KAAK21L,GAGlB,OAAOF,GAUTntI,SAAU,SAAU5oD,EAAMiP,GACxB,GAAY,MAARjP,EACF,MAAO,GAGT,IAAIqnB,EAAYpY,GAAOA,EAAIoY,UAY3B,OAViB,MAAbA,EACFA,EAAYq3C,EAAWozC,iBAAiB9xG,IAAS,EAC1B,SAAdqnB,IAETA,EAAY5nB,KAAKi/L,oBAKnB1+L,EAAOy+L,EAAYz+L,EAAMqnB,GAAW,GAC7BmB,EAAWw2D,UAAUh/E,IAU9BipD,UAAW,SAAUjlC,EAAag8C,EAAaC,GAC7Cj8C,EAAcA,GAAe,EAC7B,IAAIsT,EAAS73B,KAAK6oD,QACdgY,EAAOhpC,EAAO,GAAKA,EAAO,GAE9B,GAAK8B,SAASknC,GAAd,CAMIA,EAAO,IACTA,GAAQA,EACRhpC,EAAOxwB,WAGT,IAAIsf,EAASzjB,EAAO08L,uBAAuB/nK,EAAQtT,EAAag8C,EAAaC,GAC7ExgE,KAAKi/L,mBAAqBt4K,EAAO24K,kBACjCt/L,KAAKygE,UAAY95C,EAAOO,SACxBlnB,KAAKwhE,YAAc76C,EAAO04K,iBAY5B51I,WAAY,SAAUj6C,GACpB,IAAIqoB,EAAS73B,KAAK6oD,QAElB,GAAIhxB,EAAO,KAAOA,EAAO,GACvB,GAAkB,IAAdA,EAAO,GAAU,CAEnB,IAAIgoK,EAAahoK,EAAO,GAMnBroB,EAAImxD,SACP9oC,EAAO,IAAMgoK,EAAa,GAG1BhoK,EAAO,IAAMgoK,EAAa,OAG5BhoK,EAAO,GAAK,EAIhB,IAAIgpC,EAAOhpC,EAAO,GAAKA,EAAO,GAEzB8B,SAASknC,KACZhpC,EAAO,GAAK,EACZA,EAAO,GAAK,GAGd73B,KAAKwpD,UAAUh6C,EAAI+U,YAAa/U,EAAI+wD,YAAa/wD,EAAIgxD,aAErD,IAAIt5C,EAAWlnB,KAAKygE,UAEfjxD,EAAIkxD,SACP7oC,EAAO,GAAKmnK,EAAYnzL,KAAK+N,MAAMie,EAAO,GAAK3Q,GAAYA,IAGxD1X,EAAImxD,SACP9oC,EAAO,GAAKmnK,EAAYnzL,KAAKyzD,KAAKznC,EAAO,GAAK3Q,GAAYA,OAQhEi4C,EAAcv7B,OAAS,WACrB,OAAO,IAAIu7B,GAGb,IAAI5/D,EAAW4/D,EACfz8D,EAAOC,QAAUpD,G,uBC/RjB,IAAIikB,EAAU,EAAQ,QAIlBtkB,GAFUskB,EAAQC,QAEV,EAAQ,SAEhBrkB,EAAgBF,EAAME,cAEtBD,GADWD,EAAMoF,SACVpF,EAAMC,MAiDjB,SAAS2gM,EAAaxsI,GAIpBtzD,KAAKszD,aAAeA,EAKpBtzD,KAAK4/F,aAAe,GAKpB5/F,KAAK6/F,QAAUzgG,IAKfY,KAAKogG,gBAAkBhhG,IAKvBY,KAAK+/F,sBAAwB,KAO/B,SAASP,EAAwB19F,GAC/B,IAAIwxD,EAAexxD,EAAYI,IAAI,oBAC/BykB,EAAS,IAAIm5K,EAAaxsI,GAC1BysI,EAAQC,EAAS1sI,GAErB,GAAIysI,EAEF,OADAA,EAAMj+L,EAAa6kB,EAAQA,EAAOk5E,QAASl5E,EAAOy5E,iBAC3Cz5E,EAIX,IAAIq5K,EAAW,CACbn+B,YAAa,SAAU//J,EAAa6kB,EAAQk5E,EAASO,GACnD,IAAI8hD,EAAapgJ,EAAY+L,uBAAuB,SAAS,GACzDs0I,EAAargJ,EAAY+L,uBAAuB,SAAS,GAC7D8Y,EAAOi5E,aAAe,CAAC,IAAK,KAC5BC,EAAQt9F,IAAI,IAAK2/I,GACjBriD,EAAQt9F,IAAI,IAAK4/I,GAEbt8H,EAAWq8H,KACb9hD,EAAgB79F,IAAI,IAAK2/I,GACzBv7H,EAAOo5E,sBAAwB,GAG7Bl6E,EAAWs8H,KACb/hD,EAAgB79F,IAAI,IAAK4/I,GACzBx7H,EAAOo5E,sBAAiCp5E,EAAOo5E,sBAAwB,IAG3EV,WAAY,SAAUv9F,EAAa6kB,EAAQk5E,EAASO,GAClD,IAAIgZ,EAAkBt3G,EAAY+L,uBAAuB,cAAc,GACvE8Y,EAAOi5E,aAAe,CAAC,UACvBC,EAAQt9F,IAAI,SAAU62G,GAElBvzF,EAAWuzF,KACbhZ,EAAgB79F,IAAI,SAAU62G,GAC9BzyF,EAAOo5E,sBAAwB,IAGnCriD,MAAO,SAAU57C,EAAa6kB,EAAQk5E,EAASO,GAC7C,IAAI/vC,EAAavuD,EAAY+L,uBAAuB,SAAS,GACzDgyC,EAAkBwQ,EAAWO,cAAc,cAC3CC,EAAiBR,EAAWO,cAAc,aAC9CjqC,EAAOi5E,aAAe,CAAC,SAAU,SACjCC,EAAQt9F,IAAI,SAAUs9C,GACtBggD,EAAQt9F,IAAI,QAASsuD,GAEjBhrC,EAAWg6B,KACbugD,EAAgB79F,IAAI,SAAUs9C,GAC9Bl5B,EAAOo5E,sBAAwB,GAG7Bl6E,EAAWgrC,KACbuvC,EAAgB79F,IAAI,QAASsuD,GACG,MAAhClqC,EAAOo5E,wBAAkCp5E,EAAOo5E,sBAAwB,KAG5EvhE,IAAK,SAAU18B,EAAa6kB,EAAQk5E,EAASO,GAC3Cz5E,EAAOi5E,aAAe,CAAC,MAAO,QAEhCpb,SAAU,SAAU1iF,EAAa6kB,EAAQk5E,EAASO,GAChD,IAAItgG,EAAUgC,EAAYhC,QACtBkC,EAAgBlC,EAAQmC,aAAa,WAAYH,EAAYI,IAAI,kBACjE09F,EAAej5E,EAAOi5E,aAAe59F,EAAcG,WAAWmF,QAClEnI,EAAK6C,EAAcogE,mBAAmB,SAAUp1B,EAAW7lC,GACzD,IAAIoI,EAAYzP,EAAQmC,aAAa,eAAgB+qC,GACjD5qC,EAAUw9F,EAAaz4F,GAC3B04F,EAAQt9F,IAAIH,EAASmN,GAEjBsW,EAAWtW,IAA8C,MAAhCoX,EAAOo5E,wBAClCK,EAAgB79F,IAAIH,EAASmN,GAC7BoX,EAAOo5E,sBAAwB54F,QAMvC,SAAS0e,EAAWtW,GAClB,MAAiC,aAA1BA,EAAUrN,IAAI,QAGvBS,EAAQ68F,wBAA0BA,G,uBCzKlC,IAAI58F,EAAS,EAAQ,QAEjB2lD,EAAQ,EAAQ,QAEhB0W,EAAa,EAAQ,QAErBE,EAAgB,EAAQ,QA0BxB1W,EAAaF,EAAMz6C,UACnBsxD,EAAqBD,EAAcrxD,UACnCukG,EAAmBpzC,EAAWozC,iBAC9B4tF,EAAmBhhI,EAAWt1C,MAC9B41C,EAAY1zD,KAAK+N,MACjBylD,EAAWxzD,KAAKyzD,KAChB8pE,EAAUv9H,KAAKqyE,IACfgiH,EAAUr0L,KAAKomB,IACf0qD,EAAWp0B,EAAM/oD,OAAO,CAC1BC,KAAM,MACN67I,KAAM,GACNsf,aAAc,WACZryG,EAAMjiC,MAAMtmB,KAAMkJ,WAClBlJ,KAAKmgM,eAAiB,IAAIhhI,GAO5BlW,SAAU,SAAUm2I,GAClB,IAAIgB,EAAgBpgM,KAAKmgM,eACrBtoK,EAAS73B,KAAK6oD,QACdi8G,EAAiBs7B,EAAc76K,YACnC,OAAO3iB,EAAOqE,IAAIm4D,EAAmBnW,SAASn8C,KAAK9M,KAAMo/L,IAAsB,SAAU3zL,GACvF,IAAI40L,EAASphI,EAAWt1C,MAAMy/G,EAAQppI,KAAKs7I,KAAM7vI,IAIjD,OAFA40L,EAAS50L,IAAQosB,EAAO,IAAMuoK,EAAcE,SAAWC,EAAiBF,EAAQv7B,EAAe,IAAMu7B,EACrGA,EAAS50L,IAAQosB,EAAO,IAAMuoK,EAAcI,SAAWD,EAAiBF,EAAQv7B,EAAe,IAAMu7B,EAC9FA,IACNrgM,OAOLu2L,cAAen3H,EAAmBm3H,cAMlCptI,SAAUiW,EAAmBjW,SAM7B16C,MAAO,SAAUhD,GAEf,OADAA,EAAMg9C,EAAWh6C,MAAM3B,KAAK9M,KAAMyL,GAC3B29H,EAAQppI,KAAKs7I,KAAM7vI,IAO5Bu3C,UAAW,SAAUzuC,EAAO8lE,GAC1B,IAAIihE,EAAOt7I,KAAKs7I,KAChB/mI,EAAQ2rL,EAAQ3rL,GAAS2rL,EAAQ5kD,GACjCjhE,EAAM6lH,EAAQ7lH,GAAO6lH,EAAQ5kD,GAC7Bl8E,EAAmBpc,UAAUl2C,KAAK9M,KAAMuU,EAAO8lE,IAMjD90D,UAAW,WACT,IAAI+1H,EAAOt7I,KAAKs7I,KACZzjH,EAAS4wB,EAAWljC,UAAUzY,KAAK9M,MACvC63B,EAAO,GAAKuxG,EAAQkS,EAAMzjH,EAAO,IACjCA,EAAO,GAAKuxG,EAAQkS,EAAMzjH,EAAO,IAEjC,IAAIuoK,EAAgBpgM,KAAKmgM,eACrBr7B,EAAiBs7B,EAAc76K,YAGnC,OAFA66K,EAAcE,WAAazoK,EAAO,GAAK0oK,EAAiB1oK,EAAO,GAAIitI,EAAe,KAClFs7B,EAAcI,WAAa3oK,EAAO,GAAK0oK,EAAiB1oK,EAAO,GAAIitI,EAAe,KAC3EjtI,GAMTwxB,YAAa,SAAUxxB,GACrB73B,KAAKmgM,eAAe92I,YAAYxxB,GAEhC,IAAIyjH,EAAOt7I,KAAKs7I,KAChBzjH,EAAO,GAAKqoK,EAAQroK,EAAO,IAAMqoK,EAAQ5kD,GACzCzjH,EAAO,GAAKqoK,EAAQroK,EAAO,IAAMqoK,EAAQ5kD,GACzC7yF,EAAWY,YAAYv8C,KAAK9M,KAAM63B,IAMpCuxB,oBAAqB,SAAU7oD,EAAMwP,GAGnC/P,KAAKqpD,YAAY9oD,EAAK+oD,qBAAqBv5C,KAO7Cy5C,UAAW,SAAUoX,GACnBA,EAAgBA,GAAiB,GACjC,IAAI/oC,EAAS73B,KAAK6oD,QACdgY,EAAOhpC,EAAO,GAAKA,EAAO,GAE9B,KAAIgpC,IAAS9tD,KAAY8tD,GAAQ,GAAjC,CAIA,IAAI35C,EAAW+3C,EAAW+0C,SAASnzC,GAC/B4/H,EAAM7/H,EAAgBC,EAAO35C,EAE7Bu5K,GAAO,KACTv5K,GAAY,IAId,OAAQnO,MAAMmO,IAAarb,KAAKC,IAAIob,GAAY,GAAKrb,KAAKC,IAAIob,GAAY,EACxEA,GAAY,GAGd,IAAIuiC,EAAa,CAACwV,EAAWt1C,MAAM01C,EAASxnC,EAAO,GAAK3Q,GAAYA,GAAW+3C,EAAWt1C,MAAM41C,EAAU1nC,EAAO,GAAK3Q,GAAYA,IAClIlnB,KAAKygE,UAAYv5C,EACjBlnB,KAAKwhE,YAAc/X,IAOrBA,WAAY,SAAUj6C,GACpB4vD,EAAmB3V,WAAW38C,KAAK9M,KAAMwP,GACzC,IAAI4wL,EAAgBpgM,KAAKmgM,eACzBC,EAAcE,SAAW9wL,EAAIkxD,OAC7B0/H,EAAcI,SAAWhxL,EAAImxD,UAcjC,SAAS4/H,EAAiB90L,EAAKi1L,GAC7B,OAAOT,EAAiBx0L,EAAK4mG,EAAiBquF,IAZhD99L,EAAOzD,KAAK,CAAC,UAAW,cAAc,SAAUsO,GAC9CkvE,EAAS7uE,UAAUL,GAAc,SAAUhC,GAEzC,OADAA,EAAMy0L,EAAQz0L,GAAOy0L,EAAQlgM,KAAKs7I,MAC3B7yF,EAAWh7C,GAAYX,KAAK9M,KAAMyL,OAI7CkxE,EAAS/4C,OAAS,WAChB,OAAO,IAAI+4C,GAOb,IAAIp9E,EAAWo9E,EACfj6E,EAAOC,QAAUpD,G,uBCnNjB,IAAIuqD,EAAO,EAAQ,QAMfvqD,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,MACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJxqC,EAAG,EACHiuC,WAAY,EACZC,SAAoB,EAAVl2C,KAAK+E,GACf4+C,WAAW,GAEbhqD,MAAO,CACLq5C,OAAQ,OACRntC,KAAM,MAER+5C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI/L,EAAI+L,EAAM4sC,GACV14C,EAAI8L,EAAM6sC,GACVxqC,EAAIhI,KAAK4E,IAAIe,EAAMqC,EAAG,GACtBiuC,EAAatwC,EAAMswC,WACnBC,EAAWvwC,EAAMuwC,SACjByN,EAAYh+C,EAAMg+C,UAClBi+E,EAAQ5hI,KAAK04C,IAAIzC,GACjB4rF,EAAQ7hI,KAAKw4C,IAAIvC,GACrBrd,EAAItW,OAAOs/G,EAAQ55H,EAAIpO,EAAGioI,EAAQ75H,EAAInO,GACtC++B,EAAIo2B,IAAIp1D,EAAGC,EAAGmO,EAAGiuC,EAAYC,GAAWyN,MAI5C9sD,EAAOC,QAAUpD,G,uBCdjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAIu4L,EAAY,EAAQ,QAEpBznJ,EAAe,EAAQ,QAEvB0nJ,EAAc,EAAQ,QAEtBznG,EAAa,EAAQ,QAErBsmB,EAAiB,EAAQ,QAqB7Br3G,EAAQ2mB,eAAe4xK,EAAU,UACjCv4L,EAAQ2mB,eAAemqB,EAAa,QAAS,WAC7C9wC,EAAQyrB,eAAe+sK,GACvBx4L,EAAQ+2E,kBAAkBga,EAAW,UACrC/wF,EAAQyJ,qBAAqB4tG,I,uBCzC7B,IAAIvgH,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cACtB6mB,EAAW/mB,EAAM+mB,SACjBhf,EAAM/H,EAAM+H,IA4BhB,SAASuhD,EAAYh5C,GAKnBxP,KAAKskB,WAAa9U,EAAI8U,YAAc,GAMpCtkB,KAAK6gM,aAAerxL,EAAIsxL,YAMxB9gM,KAAK+gM,eAAiBvxL,EAAIsoK,cAM1B93K,KAAKghM,KAQPx4I,EAAYy4I,kBAAoB,SAAU1xL,GACxC,IAAI1P,EAAS0P,EAAU1P,OACnBU,EAAOV,EAAOU,KACd+jB,EAAa/jB,GAAQ0G,EAAI1G,EAAM08C,GACnC,OAAO,IAAIuL,EAAY,CACrBlkC,WAAYA,EACZw8K,aAAcx8K,EAEdwzJ,eAAuC,IAAxBj4K,EAAOqhM,gBAI1B,IAAIpsD,EAAQtsF,EAAY16C,UA0DxB,SAASqzL,EAAex4I,GACtB,OAAOA,EAAYq4I,OAASr4I,EAAYq4I,KAAO5hM,EAAcupD,EAAYrkC,aAG3E,SAAS24B,EAAQl3B,GACf,OAAIE,EAASF,IAAqB,MAAbA,EAAIpY,MAChBoY,EAAIpY,MAEJoY,EAAM,GA5DjB+uH,EAAMhsF,WAAa,SAAU29B,GAC3B,OAAO06G,EAAenhM,MAAMkC,IAAIukF,IAQlCquD,EAAMzpD,gBAAkB,SAAU5E,GAChC,IAAIt/E,EACA25L,EAAc9gM,KAAK6gM,aAMvB,GAAwB,kBAAbp6G,IAA0Bq6G,EACnC,OAAOr6G,EAWT,GAAIq6G,IAAgB9gM,KAAK+gM,eAGvB,OAFA55L,EAAQnH,KAAKskB,WAAWrZ,OACxBjL,KAAKskB,WAAWnd,GAASs/E,EAClBt/E,EAGT,IAAIF,EAAMk6L,EAAenhM,MAazB,OAZAmH,EAAQF,EAAI/E,IAAIukF,GAEH,MAATt/E,IACE25L,GACF35L,EAAQnH,KAAKskB,WAAWrZ,OACxBjL,KAAKskB,WAAWnd,GAASs/E,EACzBx/E,EAAI1E,IAAIkkF,EAAUt/E,IAElBA,EAAQkwB,KAILlwB,GAgBT,IAAI5H,EAAWipD,EACf9lD,EAAOC,QAAUpD,G,uBClJjB,IAAIqD,EAAS,EAAQ,QAEjBw+L,EAAY,EAAQ,QAEpB7iL,EAAO,EAAQ,QAEf0gD,EAAa,EAAQ,QAErBn8D,EAAU,EAAQ,QAElB+0F,EAAe,EAAQ,QAEvBE,EAAa,EAAQ,QAqBrBspG,EAAoB,SAAUv/L,EAAazB,EAAUihM,EAAS98L,GAChE,IAAI+8L,EAAK1pG,EAAac,cAAc72F,EAAa0C,EAAK,IAClDg9L,EAAK3pG,EAAac,cAAc72F,EAAa0C,EAAK,IAClDF,EAAW1B,EAAO0B,SAElBm9L,EAAUF,EAAGl1L,MACbq1L,EAAUF,EAAGn1L,MACjBo1L,EAAQ,GAAKn9L,EAASm9L,EAAQ,IAAK1uL,KACnC0uL,EAAQ,GAAKn9L,EAASm9L,EAAQ,IAAK1uL,KACnC2uL,EAAQ,GAAKp9L,EAASo9L,EAAQ,GAAI3uL,KAClC2uL,EAAQ,GAAKp9L,EAASo9L,EAAQ,GAAI3uL,KAElC,IAAI4T,EAAS/jB,EAAO6yK,SAAS,CAAC,GAAI8rB,EAAIC,IAMtC,OALA76K,EAAOta,MAAQ,CAACk1L,EAAGl1L,MAAOm1L,EAAGn1L,OAC7Bsa,EAAOq0C,GAAKumI,EAAG97L,EACfkhB,EAAOs0C,GAAKsmI,EAAG77L,EACfihB,EAAOyzC,GAAKonI,EAAG/7L,EACfkhB,EAAO0zC,GAAKmnI,EAAG97L,EACRihB,GAGT,SAASiyE,EAAYntF,GACnB,OAAQsN,MAAMtN,KAASkuB,SAASluB,GAIlC,SAASotF,EAAqBlnD,EAAUmnD,EAAWC,EAAS14F,GAC1D,IAAI24F,EAAgB,EAAIrnD,EACxB,OAAOinD,EAAYE,EAAUE,KAAmBJ,EAAYG,EAAQC,IAGtE,SAAS2oG,EAAethM,EAAUmE,GAChC,IAAIs0F,EAAYt0F,EAAK6H,MAAM,GACvB0sF,EAAUv0F,EAAK6H,MAAM,GAEzB,QAAsB,gBAAlBhM,EAASZ,OAOPq5F,IAAaC,IAAYF,EAAqB,EAAGC,EAAWC,EAAS14F,KAAaw4F,EAAqB,EAAGC,EAAWC,EAAS14F,MAK7Hw3F,EAAasB,WAAW94F,EAAU,CACvCgM,MAAOysF,EACPrzF,EAAGjB,EAAKw2D,GACRt1D,EAAGlB,EAAKy2D,MACJ48B,EAAasB,WAAW94F,EAAU,CACtCgM,MAAO0sF,EACPtzF,EAAGjB,EAAK41D,GACR10D,EAAGlB,EAAK61D,MAKZ,SAASunI,EAAwBrhM,EAAM2P,EAAKk6E,EAAMtoF,EAAayE,GAC7D,IAEI+wB,EAFAj3B,EAAWyB,EAAYxB,iBACvB6gB,EAAY5gB,EAAK6gB,aAAalR,GAE9BopF,EAAMr6B,EAAWzqC,aAAarT,EAAUjf,IAAIkoF,EAAK,IAAK7jF,EAAIylB,YAC1DutE,EAAMt6B,EAAWzqC,aAAarT,EAAUjf,IAAIkoF,EAAK,IAAK7jF,EAAI0lB,aAE9D,GAAKlT,MAAMugF,IAASvgF,MAAMwgF,GAEnB,CAEL,GAAIz3F,EAAYyvF,kBAEdj6D,EAAQx1B,EAAYyvF,kBAAkBhxF,EAAKk5C,UAAU2wC,EAAMl6E,QACtD,CACL,IAAIzK,EAAIlF,EAAK2B,IAAIkoF,EAAK,GAAIl6E,GACtBxK,EAAInF,EAAK2B,IAAIkoF,EAAK,GAAIl6E,GACtBiuC,EAAK,CAAC14C,EAAGC,GACbrF,EAASmxF,WAAanxF,EAASmxF,UAAUrzC,EAAIA,GAC7C7mB,EAAQj3B,EAAS0L,YAAYoyC,GAAI,GAGnC,GAAsB,gBAAlB99C,EAASZ,KAAwB,CACnC,IAAIqS,EAAQzR,EAASu3F,QAAQ,KACzB7lF,EAAQ1R,EAASu3F,QAAQ,KACzBnyF,EAAIlF,EAAK2B,IAAIkoF,EAAK,GAAIl6E,GACtBxK,EAAInF,EAAK2B,IAAIkoF,EAAK,GAAIl6E,GAEtB0oF,EAAYnzF,GACd6xB,EAAM,GAAKxlB,EAAMvB,cAAcuB,EAAMyT,YAAwB,OAAZ6kE,EAAK,GAAc,EAAI,IAC/DwO,EAAYlzF,KACrB4xB,EAAM,GAAKvlB,EAAMxB,cAAcwB,EAAMwT,YAAwB,OAAZ6kE,EAAK,GAAc,EAAI,KAKvErxE,MAAMugF,KACThiE,EAAM,GAAKgiE,GAGRvgF,MAAMwgF,KACTjiE,EAAM,GAAKiiE,QAjCbjiE,EAAQ,CAACgiE,EAAKC,GAqChB,OAAOjiE,EAGT,IAAIuqK,EAAkB,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAoHxE,SAASl/I,EAAWtiD,EAAUyB,EAAaw/L,GACzC,IAAIhnG,EACAwnG,EACA13G,EAAO,CAAC,KAAM,KAAM,KAAM,MAE1B/pF,GACFi6F,EAAiB13F,EAAOqE,IAAI5G,GAAYA,EAAS8B,YAAY,SAAUguF,GACrE,IAAI5vF,EAAOuB,EAAYtB,UACnB81E,EAAO/1E,EAAKirF,iBAAiBjrF,EAAKyJ,aAAammF,KAAc,GAEjE,OAAOvtF,EAAO6O,SAAS,CACrB9E,KAAMwjF,GACL7Z,MAELwrH,EAAW,IAAIvjL,EAAK3b,EAAOqE,IAAImjF,GAAM,SAAUr6E,EAAKG,GAClD,MAAO,CACLvD,KAAMoD,EACNtQ,KAAM66F,EAAepqF,EAAM,GAAGzQ,SAE9B6hM,KAEJhnG,EAAiB,CAAC,CAChB3tF,KAAM,QACNlN,KAAM,UAERqiM,EAAW,IAAIvjL,EAAK+7E,EAAgBgnG,IAGtC,IAAI/mG,EAAU33F,EAAOqE,IAAIq6L,EAAQp/L,IAAI,QAASU,EAAO4G,MAAM63L,EAAmBv/L,EAAazB,EAAUihM,IAEjGjhM,IACFk6F,EAAU33F,EAAOyuD,OAAOkpC,EAAS33F,EAAO4G,MAAMm4L,EAAgBthM,KAGhE,IAAIm6F,EAAiBn6F,EAAW,SAAUmE,EAAMhC,EAAS5B,EAAW+wC,GAClE,OAAOntC,EAAK6H,MAAMR,KAAK+N,MAAM+3B,EAAW,IAAIA,EAAW,IACrD,SAAUntC,GACZ,OAAOA,EAAKmJ,OAId,OAFAm0L,EAAS1+K,SAASm3E,EAAS,KAAMC,GACjCsnG,EAASvlJ,eAAgB,EAClBulJ,EA5JT/pG,EAAWv4F,OAAO,CAChBC,KAAM,WAkBNiP,gBAAiB,SAAUqzL,EAAejiM,EAASyG,GACjDzG,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIw/L,EAAUx/L,EAAYigM,cAE1B,GAAIT,EAAS,CACX,IAAIQ,EAAWR,EAAQ9gM,UACvBshM,EAAS3iM,MAAK,SAAU+Q,GACtB,IAAIqH,EAAS3U,EAAOqE,IAAI46L,GAAiB,SAAU9xL,GACjD,OAAO6xL,EAAwBE,EAAU5xL,EAAKH,EAAKjO,EAAayE,MAGlEu7L,EAAShhL,cAAc5Q,EAAKqH,GAC5B,IAAIkU,EAAKq2K,EAASvoJ,iBAAiBrpC,GACnCub,EAAG0iC,SAAS,SAAU52C,SAGzBvX,OAEL85F,aAAc,SAAUh4F,EAAaw/L,EAASxhM,EAASyG,GACrD,IAAIlG,EAAWyB,EAAYxB,iBACvB0mB,EAAWllB,EAAYqG,GACvB4xF,EAAaj4F,EAAYtB,UACzBwhM,EAAehiM,KAAK65F,eACpBooG,EAAeD,EAAa9/L,IAAI8kB,IAAag7K,EAAaz/L,IAAIykB,EAAU,CAC1E1jB,MAAO,IAAIR,EAAQ6B,QAErB3E,KAAKsD,MAAMgC,IAAI28L,EAAa3+L,OAC5B2+L,EAAa5nG,QAAS,EACtB,IAAIynG,EAAWn/I,EAAWtiD,EAAUyB,EAAaw/L,GAEjDA,EAAQ/lI,QAAQumI,GAEhBA,EAAS3iM,MAAK,SAAU+Q,GAEtB4xL,EAAShhL,cAAc5Q,EAAKtN,EAAOqE,IAAI46L,GAAiB,SAAU9xL,GAChE,OAAO6xL,EAAwBE,EAAU5xL,EAAKH,EAAKjO,EAAayE,OAGlEu7L,EAAStgL,cAActR,EAAK,CAC1B0H,MAAOmiF,EAAWt4E,UAAU,cAGhCqgL,EAAS7nK,KAAKgoK,EAAaC,QAAQ58L,KAAI,SAAU4K,GAC/C,IAAI6oC,EAAU,IAAIj2C,EAAQ49B,QAAQ,CAChClvB,MAAO,CACL+F,OAAQuqL,EAAS9gL,cAAc9Q,MAGnC4xL,EAASlgK,iBAAiB1xB,EAAK6oC,GAC/BkpJ,EAAa3+L,MAAMgC,IAAIyzC,MACtBxwC,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI1F,EAAUkpJ,EAAaC,OAAO3oJ,iBAAiBkF,GAEnD37C,EAAQk8B,YAAY+Z,EAAS,CAC3BvnC,MAAO,CACL+F,OAAQuqL,EAAS9gL,cAAcw9B,KAEhC8iJ,EAAS9iJ,GACZyjJ,EAAa3+L,MAAMgC,IAAIyzC,GACvB+oJ,EAASlgK,iBAAiB4c,EAAQzF,MACjC1W,QAAO,SAAUnyB,GAClB,IAAI6oC,EAAUkpJ,EAAaC,OAAO3oJ,iBAAiBrpC,GAEnD+xL,EAAa3+L,MAAM++B,OAAO0W,MACzB2F,UACHojJ,EAASnjJ,mBAAkB,SAAU5F,EAAS7oC,GAC5C,IAAIiR,EAAY2gL,EAAS1gL,aAAalR,GAClCgwB,EAAa/e,EAAUF,SAAS,SAChCq+B,EAAkBn+B,EAAUF,SAAS,kBACrCrJ,EAAQkqL,EAASngL,cAAczR,EAAK,SACxC6oC,EAAQgD,SAASn5C,EAAO6O,SAAS0P,EAAUF,SAAS,aAAatP,eAAgB,CAC/ED,KAAM0vL,EAAUtoE,YAAYlhH,EAAO,IACnCinC,OAAQjnC,KAEVmhC,EAAQxX,WAAapgB,EAAUF,SAAS,sBAAsBtP,eAC9D7O,EAAQw+B,cAAcyX,EAAQvzC,MAAOuzC,EAAQxX,WAAYrB,EAAYof,EAAiB,CACpFne,aAAcmgK,EACd9/J,eAAgBtxB,EAChBuxB,YAAaqgK,EAAS7kJ,QAAQ/sC,IAAQ,GACtCgtC,YAAY,EACZC,UAAWvlC,IAEb9U,EAAQq/B,cAAc4W,EAAS,IAC/BA,EAAQqhD,UAAYknG,KAEtBW,EAAaC,OAASJ,EACtBG,EAAa3+L,MAAMsO,OAAS0vL,EAAQp/L,IAAI,WAAaJ,EAAYI,IAAI,c,uBCtPzE,IAAIkG,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB8xI,EAAiB,EAAQ,QAoBzBytD,EAAe/5L,EAAQ48C,qBAAqB,CAC9CvlD,KAAM,UACNy0D,WAAY,CACVz0D,KAAM,MACNo8J,YAAY,GAEdroJ,cAAe,WACb2uL,EAAal5L,WAAWjJ,KAAM,gBAAiBkJ,WAC/CtG,EAAOzD,KAAKa,KAAKH,OAAOslF,SAAS,SAAUC,EAAYg9G,GACrD,IAAIC,EAAU3tD,EAAexyI,IAAIkgM,GACjCC,GAAWz/L,EAAOie,MAAMukE,EAAYi9G,EAAQthM,mBAGhDA,cAAe,CACbK,MAAM,EACNH,EAAG,EACHD,OAAQ,EACR8F,OAAQ,aACRyD,KAAM,QACNC,IAAK,MAGLuf,gBAAiB,cACjB5e,YAAa,OACb87C,aAAc,EACd77C,YAAa,EACb4e,QAAS,EACT/lB,SAAU,GACVugB,QAAS,EACT89K,WAAW,EACXC,UAAW,CACTp3L,YAAa,OACbyM,MAAO,QAETlW,SAAU,CACR6gM,UAAW,CACTp3L,YAAa,YAKjBw+C,QAAS,CACPvoD,MAAM,MAIR7B,EAAW4iM,EACfz/L,EAAOC,QAAUpD,G,uBCvEjB,EAAQ,QAER,IAAI0T,EAAiB,EAAQ,QAsBzB1T,EAAW0T,EAAezT,OAAO,CACnCC,KAAM,OACNC,aAAc,CAAC,QAAS,SACxBw0D,WAAY,MAKZ5zD,iBAAkB,KAClBS,cAAe,CACbK,MAAM,EACNJ,OAAQ,EACRC,EAAG,EACHsJ,KAAM,MACNC,IAAK,GACLC,MAAO,MACPC,OAAQ,GAER83L,cAAc,EAGdz4K,gBAAiB,gBACjB3e,YAAa,EACbD,YAAa,UAIjBzI,EAAOC,QAAUpD,G,uBCvEjB,EAAQ,QAER,IAAIkjM,EAAW,EAAQ,SAEnB76B,EAAkB66B,EAAS76B,gBAE3BN,EAAU,EAAQ,QAEtBM,EAAgB,MAAON,I,qBC8BvB,SAAS/nK,EAASO,GAChB,IAAI4/J,EAAe5/J,EAAQ6/J,eAAe,CACxC1iI,SAAU,WAGRyiI,GAAgBA,EAAaz0J,QAC/BnL,EAAQiqL,cAAa,SAAUvzG,GAG7B,IAAK,IAAIvoE,EAAI,EAAGA,EAAIyxJ,EAAaz0J,OAAQgD,IACvC,IAAKyxJ,EAAazxJ,GAAGsvB,WAAWi5C,EAAO7pE,MACrC,OAAO,EAIX,OAAO,KAKbjK,EAAOC,QAAUpD,G,uBCtCjB,IAAIokB,EAAgB,EAAQ,QAExBgF,EAAU,EAAQ,QAElB/lB,EAAS,EAAQ,QAoBjBogB,EAAUpgB,EAAOogB,QACjB0/K,EAAoB,YACpBnjM,EAAW,CACbq1B,WAAY,UACZE,MAAO,SAAUhzB,EAAahC,EAASyG,EAAK23B,GAC1C,IAAIxb,EAAO5gB,EAAYtB,UAAUkiB,KAC7BxD,EAAOwD,EAAKxD,KACZyjL,EAAuB7gM,EAAYmf,SAASyhL,GAEhD,IAAIxjL,EAAKO,YAAT,CAIA,IAAImjL,EAAkBhgM,EAAOqE,IAAIyb,EAAKtD,aAAa,SAAUiC,GAC3D,OAAOA,EAAaA,EAAWnf,IAAIwgM,GAAqB,QAE1DG,EAAW3jL,EACX,GAAI0jL,EAAiBD,EAAsB7gM,EAAYglG,cAAcxmF,eAAgBxe,MAIzF,SAAS+gM,EAAWrjL,EAAMsjL,EAAkBF,EAAiBD,EAAsBI,EAAmBjhM,GACpG,IAAIkhM,EAAYxjL,EAAKyB,WACjBgiL,EAAazjL,EAAKuB,YAEtB,GAAKkiL,IAAcA,EAAWz4J,WAAcy4J,EAAWC,SAAvD,CAIA,IAMIC,EANAC,EAAqB5jL,EAAKyB,SAASyhL,GACnCW,EAAiBT,EAAgBpjL,EAAKb,OACtC2kL,EAAUC,EAAaH,EAAoBN,EAAkBO,EAAgBV,GAE7Ex3L,EAAci4L,EAAmBlhM,IAAI,eACrCshM,EAAwBJ,EAAmBlhM,IAAI,yBAGtB,MAAzBshM,IAEFL,EAAgBM,EAAeH,EAAS9jL,GACxCrU,EAAcu4L,EAAqBF,EAAuBL,IAG5D3jL,EAAK+B,UAAU,cAAepW,GAC9B,IAAI2T,EAAeU,EAAKV,aAExB,GAAKA,GAAiBA,EAAa7T,OAI5B,CACL,IAAI07B,EAAUg9J,EAAmBnkL,EAAMwjL,EAAWC,EAAYG,EAAoBE,EAASxkL,GAE3Flc,EAAOzD,KAAK2f,GAAc,SAAUS,EAAOpY,GAEzC,GAAIoY,EAAMZ,OAASokL,EAAkB93L,QAAUsU,IAAUwjL,EAAkBxjL,EAAMZ,OAAQ,CACvF,IAAIilL,EAAc52C,EAAUg2C,EAAWM,EAAS/jL,EAAOpY,EAAOw/B,EAAS7kC,GACvE+gM,EAAWtjL,EAAOqkL,EAAahB,EAAiBD,EAAsBI,EAAmBjhM,YAV7FqhM,EAAgBM,EAAeH,EAAS9jL,GAExCA,EAAK+B,UAAU,QAAS4hL,IAc5B,SAASI,EAAaH,EAAoBN,EAAkBO,EAAgBV,GAC1E,IAAIW,EAAU1gM,EAAOpD,OAAO,GAAIsjM,GAUhC,OATAlgM,EAAOzD,KAAK,CAAC,QAAS,aAAc,oBAAoB,SAAU0kM,GAEhE,IAAIp4L,EAAM23L,EAAmBlhM,IAAI2hM,GAAY,GAEtC,MAAPp4L,GAAe43L,IAAmB53L,EAAM43L,EAAeQ,IAChD,MAAPp4L,IAAgBA,EAAMq3L,EAAiBe,IAChC,MAAPp4L,IAAgBA,EAAMk3L,EAAqBzgM,IAAI2hM,IACxC,MAAPp4L,IAAgB63L,EAAQO,GAAcp4L,MAEjC63L,EAGT,SAASG,EAAeH,GACtB,IAAI1rL,EAAQksL,EAAqBR,EAAS,SAE1C,GAAI1rL,EAAO,CACT,IAAIs0I,EAAa43C,EAAqBR,EAAS,cAC3Ct3C,EAAkB83C,EAAqBR,EAAS,mBAUpD,OARIt3C,IACFp0I,EAAQ+Q,EAAQkwG,UAAUjhH,EAAO,KAAM,KAAMo0I,IAG3CE,IACFt0I,EAAQ+Q,EAAQmwG,YAAYlhH,EAAOs0I,IAG9Bt0I,GAIX,SAAS8rL,EAAqBF,EAAuBL,GACnD,OAAwB,MAAjBA,EAAwBx6K,EAAQkwG,UAAUsqE,EAAe,KAAM,KAAMK,GAAyB,KAGvG,SAASM,EAAqBR,EAAS32L,GACrC,IAAIgB,EAAQ21L,EAAQ32L,GAEpB,GAAa,MAATgB,GAA2B,SAAVA,EACnB,OAAOA,EAIX,SAASg2L,EAAmBnkL,EAAMwjL,EAAWC,EAAYG,EAAoBE,EAASxkL,GACpF,GAAKA,GAAiBA,EAAa7T,OAAnC,CAIA,IAAI84L,EAAcC,EAAehB,EAAW,UAA6B,MAAjBM,EAAQ1rL,OAAmC,SAAlB0rL,EAAQ1rL,QAAqBosL,EAAehB,EAAW,eAAiBgB,EAAehB,EAAW,oBAEnL,GAAKe,EAAL,CAIA,IAAIE,EAAYjB,EAAU9gM,IAAI,aAC1BgiM,EAAYlB,EAAU9gM,IAAI,aAC1BojB,EAAa29K,EAAW39K,WAAWhe,QAC1B,MAAb28L,GAAqBA,EAAY3+K,EAAW,KAAOA,EAAW,GAAK2+K,GACtD,MAAbC,GAAqBA,EAAY5+K,EAAW,KAAOA,EAAW,GAAK4+K,GACnE,IAAIC,EAAiBnB,EAAU9gM,IAAI,kBAC/BsN,EAAM,CACR/P,KAAMskM,EAAYp3L,KAClB2Y,WAAYA,EACZE,OAAQu+K,EAAYjoL,OAGL,UAAbtM,EAAI/P,MAAwC,UAAnB0kM,GAAiD,OAAnBA,EAIzD30L,EAAI6V,cAAgB,UAHpB7V,EAAI6V,cAAgB,WACpB7V,EAAIyM,MAAO,GAKb,IAAI0qB,EAAU,IAAIhjB,EAAcnU,GAEhC,OADAm3B,EAAQy9J,mBAAqBD,EACtBx9J,IAUT,SAASq9J,EAAehB,EAAWr2L,GAGjC,IAAImP,EAAQknL,EAAU9gM,IAAIyK,GAC1B,OAAOqW,EAAQlH,IAAUA,EAAM7Q,OAAS,CACtC0B,KAAMA,EACNmP,MAAOA,GACL,KAGN,SAASkxI,EAAUg2C,EAAWM,EAAS/jL,EAAOpY,EAAOw/B,EAAS7kC,GAC5D,IAAIuiM,EAAezhM,EAAOpD,OAAO,GAAI8jM,GAErC,GAAI38J,EAAS,CACX,IAAI29J,EAAc39J,EAAQlnC,KACtB0kM,EAAiC,UAAhBG,GAA2B39J,EAAQy9J,mBACpDz2L,EAA2B,UAAnBw2L,EAA6Bh9L,EAA2B,OAAnBg9L,EAA0BriM,EAAYyiM,aAAahlL,EAAMY,SAAWZ,EAAMkB,SAASuiL,EAAU9gM,IAAI,oBAClJmiM,EAAaC,GAAe39J,EAAQE,iBAAiBl5B,GAGvD,OAAO02L,EAGT3hM,EAAOC,QAAUpD,G,uBCrMjB,IAAIqD,EAAS,EAAQ,QAEjBq8D,EAAa,EAAQ,QAErB7c,EAAmB,EAAQ,QAE3BE,EAAqBF,EAAiBE,mBAoBtCzvB,EAAUjwB,EAAOiwB,QAErB,SAAS2xK,EAAQhgM,GACf,QAASuU,MAAMi6E,WAAWxuF,EAAKiB,KAAOsT,MAAMi6E,WAAWxuF,EAAKkB,KAG9D,SAAS++L,EAASjgM,GAChB,OAAQuU,MAAMi6E,WAAWxuF,EAAKiB,MAAQsT,MAAMi6E,WAAWxuF,EAAKkB,IAyB9D,SAASg/L,EAA+BxsG,EAAQ33F,EAAMokM,EAAcC,EAAeC,EAAiBC,GAClG,IAAIC,EAAW,GACX9yI,EAAU3P,EAAmB/hD,EAAMqkM,GAGnCI,EAAc/yI,EAAU1xD,EAAK42J,mBAAmB,wBAA0BytC,EAC1Ej3L,EAAQ2qF,EAAa/3F,EAAMykM,EAAa9sG,GACxCt3F,EAAYL,EAAKi3J,iBAAiBwtC,EAAar3L,GAAO,GAC1Do3L,EAASF,GAAmBtkM,EAAK2B,IAAIyiM,EAAc/jM,GACnDmkM,EAASD,GAAoBvkM,EAAK2B,IAAI8iM,EAAapkM,GACnD,IAAIqkM,EAAgB1kM,EAAK2B,IAAI0iM,EAAehkM,GAExCgnB,EAAYq3C,EAAWmzC,aAAa7xG,EAAK2B,IAAI0iM,EAAehkM,IAOhE,OANAgnB,EAAY/b,KAAK6E,IAAIkX,EAAW,IAE5BA,GAAa,IACfm9K,EAASD,IAAqBC,EAASD,GAAkB16L,QAAQwd,IAG5D,CAACm9K,EAAUE,GAGpB,IAAIz7L,EAAQ5G,EAAO4G,MAEf07L,EAAuB,CAOzBx0L,IAAKlH,EAAMk7L,EAAgC,OAQ3Cj0L,IAAKjH,EAAMk7L,EAAgC,OAQ3CS,QAAS37L,EAAMk7L,EAAgC,YAYjD,SAAS/rG,EAAc72F,EAAa0C,GAClC,IAAIjE,EAAOuB,EAAYtB,UACnBH,EAAWyB,EAAYxB,iBAK3B,GAAIkE,IAASigM,EAASjgM,KAAU5B,EAAOogB,QAAQxe,EAAK6H,QAAUhM,EAAU,CACtE,IAAI+pF,EAAO/pF,EAAS8B,WAChBg2F,EAAWC,EAAY5zF,EAAMjE,EAAMF,EAAUyB,GAKjD,GAFA0C,EAAO5B,EAAO8E,MAAMlD,GAEhBA,EAAK/E,MAAQylM,EAAqB1gM,EAAK/E,OAAS04F,EAASrgE,UAAYqgE,EAAStzC,UAAW,CAC3F,IAAIggJ,EAAkBhyK,EAAQu3D,EAAM+N,EAASrgE,SAAS/nB,KAClD+0L,EAAmBjyK,EAAQu3D,EAAM+N,EAAStzC,UAAU90C,KACpD0tF,EAAYynG,EAAqB1gM,EAAK/E,MAAMc,EAAM43F,EAASitG,YAAajtG,EAASE,aAAcwsG,EAAiBC,GACpHtgM,EAAK6H,MAAQoxF,EAAU,GAGvBj5F,EAAKmJ,MAAQ8vF,EAAU,OAClB,CAIL,IAFA,IAAIpxF,EAAQ,CAAe,MAAd7H,EAAKsN,MAAgBtN,EAAKsN,MAAQtN,EAAKs7C,WAA0B,MAAdt7C,EAAKuN,MAAgBvN,EAAKuN,MAAQvN,EAAKu7C,WAE9F9xC,EAAI,EAAGA,EAAI,EAAGA,IACjBi3L,EAAqB74L,EAAM4B,MAC7B5B,EAAM4B,GAAKqqF,EAAa/3F,EAAMA,EAAKyJ,aAAaogF,EAAKn8E,IAAK5B,EAAM4B,KAIpEzJ,EAAK6H,MAAQA,GAIjB,OAAO7H,EAGT,SAAS4zF,EAAY5zF,EAAMjE,EAAMF,EAAUyB,GACzC,IAAI2X,EAAM,GAcV,OAZuB,MAAnBjV,EAAK+zF,YAAuC,MAAjB/zF,EAAKuF,UAClC0P,EAAI4+E,aAAkC,MAAnB7zF,EAAK+zF,WAAqBh4F,EAAKogB,aAAanc,EAAK+zF,YAAc/zF,EAAKuF,SACvF0P,EAAIorC,UAAYxkD,EAASu3F,QAAQytG,EAAkBvjM,EAAa2X,EAAI4+E,eACpE5+E,EAAIqe,SAAWz3B,EAASwxD,aAAap4C,EAAIorC,WACzCprC,EAAI2rL,YAAc7kM,EAAKyJ,aAAayP,EAAIqe,SAAS/nB,OAEjD0J,EAAIqe,SAAWh2B,EAAYi2B,cAC3Bte,EAAIorC,UAAYxkD,EAASwxD,aAAap4C,EAAIqe,UAC1Cre,EAAI2rL,YAAc7kM,EAAKyJ,aAAayP,EAAIqe,SAAS/nB,KACjD0J,EAAI4+E,aAAe93F,EAAKyJ,aAAayP,EAAIorC,UAAU90C,MAG9C0J,EAGT,SAAS4rL,EAAkBvjM,EAAai3I,GACtC,IAAIx4I,EAAOuB,EAAYtB,UACnB2B,EAAa5B,EAAK4B,WACtB42I,EAAUx4I,EAAKogB,aAAao4H,GAE5B,IAAK,IAAI9qI,EAAI,EAAGA,EAAI9L,EAAW8I,OAAQgD,IAAK,CAC1C,IAAIiiF,EAAU3vF,EAAKirF,iBAAiBrpF,EAAW8L,IAE/C,GAAIiiF,EAAQvjF,OAASosI,EACnB,OAAO7oD,EAAQC,UAarB,SAASgJ,EAAW94F,EAAUmE,GAE5B,QAAOnE,GAAYA,EAAS44F,aAAez0F,EAAK6H,QAAUm4L,EAAQhgM,KAAQnE,EAAS44F,YAAYz0F,EAAK6H,OAGtG,SAASmuF,EAAeh2F,EAAMhC,EAAS5B,EAAW+wC,GAEhD,OAAIA,EAAW,EACNntC,EAAK6H,OAAS7H,EAAK6H,MAAMslC,GAG3BntC,EAAKmJ,MAGd,SAAS2qF,EAAa/3F,EAAM83F,EAAc54F,GACxC,GAAa,YAATA,EAAoB,CACtB,IAAIwK,EAAM,EACNkY,EAAQ,EAOZ,OANA5hB,EAAKpB,KAAKk5F,GAAc,SAAU5sF,EAAKyE,GAChC6I,MAAMtN,KACTxB,GAAOwB,EACP0W,QAGGlY,EAAMkY,EACR,MAAa,WAAT1iB,EACFc,EAAK62J,UAAU/+D,GAGf93F,EAAKq2E,cAAcyhB,GAAc,GAAe,QAAT54F,EAAiB,EAAI,GAIvEkD,EAAQg2F,cAAgBA,EACxBh2F,EAAQy1F,YAAcA,EACtBz1F,EAAQw2F,WAAaA,EACrBx2F,EAAQ63F,eAAiBA,EACzB73F,EAAQ21F,aAAeA,G,qBCzOvB,IAAI11F,EAAS,EAAQ,QAEjBkxB,EAAO,EAAQ,QAoBnB,SAASwxK,EAAW72L,EAAO6xC,GACzBxsB,EAAKhnB,KAAK9M,KAAM,SAAUyO,EAAO6xC,GAUjCtgD,KAAKP,KAAO,WAGd6lM,EAAWx3L,UAAY,CACrBC,YAAau3L,EAKbjoH,YAAa,SAAU/lD,EAAOy6E,GAC5B,OAAO/xG,KAAK09C,MAAM2/B,YAAY/lD,EAAOy6E,GAAoB,WAAb/xG,KAAK+P,IAAmB,EAAI,IAE1EwiD,aAAcz+B,EAAKhmB,UAAU0C,YAC7B+0L,aAAczxK,EAAKhmB,UAAU4vE,aAE/B96E,EAAOwxB,SAASkxK,EAAYxxK,GAC5B,IAAIv0B,EAAW+lM,EACf5iM,EAAOC,QAAUpD,G,uBClDjB,IAAIqD,EAAS,EAAQ,QAEjBvD,EAAc,EAAQ,QAEtB0f,EAAO,EAAQ,QAEfV,EAAQ,EAAQ,QAEhBs/C,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WACrB2hB,EAAY5hB,EAAQ4hB,UAEpBimH,EAAc,EAAQ,QAEtBhoD,EAAmBgoD,EAAYhoD,iBAoB/Bj+I,EAAWF,EAAYG,OAAO,CAChCC,KAAM,iBACNy0D,WAAY,MACZx0D,aAAc,CAAC,OAAQ,SACvB0sH,wBAAwB,EAKxBq5E,UAAW,KACX1kM,cAAe,CAEbY,YAAa,EAGb4I,KAAM,SACNC,IAAK,SACLC,MAAO,KACPC,OAAQ,KACRlJ,MAAO,MACP0K,OAAQ,MACRrB,MAAM,EAGN66L,WAAY,SAEZC,YAAa,IAAO,EAAI95L,KAAK4sB,KAAK,IAElCmtK,UAAW,KAGXC,cAAe,IAGfC,gBAAiB,MAGjBjnI,MAAM,EAEN0pC,UAAW,aAKX5qF,WAAW,EACXqhD,wBAAyB,IACzBn9D,gBAAiB,eACjBmiF,WAAY,CACV5iF,MAAM,EACN8K,OAAQ,GACR3B,KAAM,SACNC,IAAK,SAGLu7L,eAAgB,GAEhB76L,UAAW,CACT0M,MAAO,kBAEPzM,YAAa,wBACbC,YAAa,EACb+wC,YAAa,sBACbH,WAAY,EACZC,cAAe,EACfC,cAAe,EACfmxB,UAAW,CACTz1D,MAAO,SAGXlW,SAAU,CACR2rE,UAAW,KAGflsE,MAAO,CACLC,MAAM,EAENwoD,SAAU,EACV5/B,QAAS,EACThf,SAAU,SAGV4M,MAAO,OACP6/J,UAAU,GAIZuuB,WAAY,CAEV5kM,MAAM,EACN4J,SAAU,CAAC,EAAG,OACdkB,OAAQ,GAER0L,MAAO,OACP6/J,UAAU,EAEVxoH,cAAe,UAEjB/jD,UAAW,CACT0M,MAAO,KAEPs0I,WAAY,KAEZF,gBAAiB,KAEjB5gJ,YAAa,EACb66L,SAAU,EACV96L,YAAa,OACbq4L,sBAAuB,MAKzB9hM,SAAU,CACRskM,WAAY,CACV5kM,MAAM,EACN4J,SAAU,CAAC,EAAG,OACd4M,MAAO,OACP6/J,UAAU,EACVxoH,cAAe,WAGnBi3I,gBAAiB,EAEjBjC,UAAW,KACXC,UAAW,KACXtsL,MAAO,GAWPs0I,WAAY,KAEZF,gBAAiB,KAEjBm4C,eAAgB,QAEhBgC,WAAY,GAGZC,mBAAoB,KAMpBzjL,OAAQ,IAeV/iB,eAAgB,SAAUC,EAAQC,GAEhC,IAAIof,EAAO,CACTvS,KAAM9M,EAAO8M,KACbkS,SAAUhf,EAAOU,MAEnB8lM,EAAkBnnL,GAClB,IAAIyD,EAAS9iB,EAAO8iB,QAAU,GAC9BA,EAAS9iB,EAAO8iB,OAAS2jL,EAAW3jL,EAAQ7iB,GAC5C,IAAIsf,EAAcxc,EAAOqE,IAAI0b,GAAU,IAAI,SAAUtD,GACnD,OAAO,IAAIhB,EAAMgB,EAAarf,KAAMF,KACnCE,MAIC0iB,EAAO3D,EAAKuD,WAAWpD,EAAMlf,KAAM,KAAMyiB,GAE7C,SAASA,EAAWu7C,GAClBA,EAASC,WAAW,gBAAgB,SAAUnuC,EAAO5f,GACnD,IAAIsP,EAAOkD,EAAKX,mBAAmB7R,GAC/BmR,EAAajC,EAAYI,EAAKb,OAElC,OADA0C,IAAeyO,EAAMovB,YAAc79B,GAC5ByO,KAIX,OAAOpN,EAAKniB,MAEdiT,cAAe,WACbxT,KAAK0gI,iBAQPjiE,cAAe,SAAU79D,GACvB,IAAIL,EAAOP,KAAKQ,UACZmN,EAAQ3N,KAAKkgF,YAAYt/E,GACzBu/E,EAAiBv9E,EAAOogB,QAAQrV,GAAS4xE,EAAU5xE,EAAM,IAAM4xE,EAAU5xE,GACzEhB,EAAOpM,EAAK08C,QAAQr8C,GACxB,OAAOg9D,EAAWjxD,EAAO,KAAOwzE,IAUlCv2E,cAAe,SAAUhJ,GACvB,IAAIiJ,EAASxK,EAAYyO,UAAUlE,cAAc0c,MAAMtmB,KAAMkJ,WACzDsW,EAAOxf,KAAKQ,UAAUkiB,KAAKX,mBAAmBnhB,GAElD,OADAiJ,EAAO4zI,aAAeD,EAAiBh+H,EAAMxf,MACtC6J,GAYT08L,cAAe,SAAU1oI,GAKvB79D,KAAK69D,WAAa79D,KAAK69D,YAAc,GACrCj7D,EAAOpD,OAAOQ,KAAK69D,WAAYA,IAOjC0mI,aAAc,SAAUp8L,GAatB,IAAIq+L,EAAaxmM,KAAKymM,YAEjBD,IACHA,EAAaxmM,KAAKymM,YAAc7jM,EAAOxD,gBAMvCY,KAAK0mM,iBAAmB,GAG1B,IAAIv/L,EAAQq/L,EAAWtkM,IAAIiG,GAM3B,OAJa,MAAThB,GACFq/L,EAAWjkM,IAAI4F,EAAIhB,EAAQnH,KAAK0mM,oBAG3Bv/L,GAET2/F,YAAa,WACX,OAAO9mG,KAAKylM,WAMd/kE,cAAe,SAAUx4B,GACvBA,EAAWloG,KAAKylM,UAAYv9F,EAAWA,EAAWloG,KAAKylM,UACvD,IAAIvmL,EAAOlf,KAAKoJ,aAAasZ,KAAKxD,KAE7BgpF,IAAYA,IAAahpF,GAASA,EAAKmB,SAAS6nF,MACnDloG,KAAKylM,UAAYvmL,MASvB,SAASmnL,EAAkBtjL,GAIzB,IAAI9Y,EAAM,EACVrH,EAAOzD,KAAK4jB,EAASlE,UAAU,SAAUU,GACvC8mL,EAAkB9mL,GAClB,IAAIonL,EAAapnL,EAAM5R,MACvB/K,EAAOogB,QAAQ2jL,KAAgBA,EAAaA,EAAW,IACvD18L,GAAO08L,KAET,IAAIC,EAAY7jL,EAASpV,MAErB/K,EAAOogB,QAAQ4jL,KACjBA,EAAYA,EAAU,KAGP,MAAbA,GAAqB7tL,MAAM6tL,MAC7BA,EAAY38L,GAIV28L,EAAY,IACdA,EAAY,GAGdhkM,EAAOogB,QAAQD,EAASpV,OAASoV,EAASpV,MAAM,GAAKi5L,EAAY7jL,EAASpV,MAAQi5L,EAOpF,SAASN,EAAW3jL,EAAQ7iB,GAC1B,IAAI+mM,EAAkB/mM,EAAQoC,IAAI,SAElC,GAAK2kM,EAAL,CAKA,IAAIC,EAUJ,GAXAnkL,EAASA,GAAU,GAEnB/f,EAAOzD,KAAKwjB,GAAQ,SAAUtD,GAC5B,IAAIyQ,EAAQ,IAAIzR,EAAMgB,GAClB0nL,EAAaj3K,EAAM5tB,IAAI,UAEvB4tB,EAAM5tB,IAAI,oBAAsB6kM,GAA6B,SAAfA,KAChDD,GAAiB,OAIhBA,EAAgB,CACnB,IAAIE,EAASrkL,EAAO,KAAOA,EAAO,GAAK,IACvCqkL,EAAOpvL,MAAQivL,EAAgBv/L,QAGjC,OAAOqb,GAGTjgB,EAAOC,QAAUpD,G,uBC3YjB,IAAI2T,EAAgB,EAAQ,QAoBxB3T,EAAW2T,EAAc1T,OAAO,CAClCC,KAAM,aAGRiD,EAAOC,QAAUpD,G,qBCxBjB,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCeR,IAAI+tC,EAAyB,WACzBC,EAA2B,YAC3BC,EAA4B,aAC5BC,EAA8B,eAC9BC,EAAwB,UAExBC,EAA4B,aAC5Bt6B,EAA0B,SAC1Bu6B,EAAuB,MAC3BjrC,EAAQ2qC,uBAAyBA,EACjC3qC,EAAQ4qC,yBAA2BA,EACnC5qC,EAAQ6qC,0BAA4BA,EACpC7qC,EAAQ8qC,4BAA8BA,EACtC9qC,EAAQ+qC,sBAAwBA,EAChC/qC,EAAQgrC,0BAA4BA,EACpChrC,EAAQ0Q,wBAA0BA,EAClC1Q,EAAQirC,qBAAuBA,G,yCCvD/B,IAAIt8B,EAAS,WAAa,IAAI0d,EAAIhvB,KAASivB,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACO,MAAM,CAAC,OAAS,KAAK,CAACP,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,wBAAwB,CAACE,YAAY,WAAWK,MAAM,CAAC,MAAQ,SAAS,MAAQV,EAAIi4K,qBAAqB,YAAY,KAAKC,YAAYl4K,EAAIm4K,GAAG,CAAC,CAACp/L,IAAI,UAAU+tC,GAAG,SAASsxJ,GAChXA,EAAIC,OACjB,MAAO,CAACr4K,EAAImB,GAAG,IAAInB,EAAIqB,GAAGrB,EAAIuB,GAAG,cAAPvB,CAAsBA,EAAIs4K,oBAAoB,aAAa,GAAGn4K,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,wBAAwB,CAACE,YAAY,WAAWK,MAAM,CAAC,MAAQ,WAAW,MAAQV,EAAIu4K,iBAAiB,YAAY,KAAKL,YAAYl4K,EAAIm4K,GAAG,CAAC,CAACp/L,IAAI,UAAU+tC,GAAG,SAASsxJ,GACrRA,EAAIC,OACjB,MAAO,CAACr4K,EAAImB,GAAG,IAAInB,EAAIqB,GAAGrB,EAAIw4K,wBAAwB,GAAGr4K,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,wBAAwB,CAACE,YAAY,aAAaK,MAAM,CAAC,MAAQ,SAAS,MAAQV,EAAIy4K,oBAAoB,YAAY,KAAKP,YAAYl4K,EAAIm4K,GAAG,CAAC,CAACp/L,IAAI,UAAU+tC,GAAG,SAASsxJ,GACzPA,EAAIC,OACjB,MAAO,CAACr4K,EAAImB,GAAG,IAAInB,EAAIqB,GAAGrB,EAAI04K,kBAAkB,aAAa,GAAGv4K,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,wBAAwB,CAACE,YAAY,YAAYK,MAAM,CAAC,MAAQ,UAAU,MAAQV,EAAI24K,sBAAsB,YAAY,KAAKT,YAAYl4K,EAAIm4K,GAAG,CAAC,CAACp/L,IAAI,UAAU+tC,GAAG,SAASsxJ,GAClQA,EAAIC,OACjB,MAAO,CAACr4K,EAAImB,GAAG,IAAInB,EAAIqB,GAAGrB,EAAI44K,oBAAoB,aAAa,IAAI,GAAGz4K,EAAG,SAAS,CAACE,YAAY,iBAAiB,CAACF,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,KAAK,CAACP,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,SAASK,MAAM,CAAC,KAAO,UAAUm4K,KAAK,UAAU,CAAC14K,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAImB,GAAG,YAAYhB,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,YAAY,CAACO,MAAM,CAAC,KAAO,UAAU,MAAQ,IAAI9oB,GAAG,CAAC,MAAQooB,EAAI84K,mBAAmB,CAAC94K,EAAImB,GAAG,QAAQhB,EAAG,YAAY,CAACE,YAAY,kBAAkBK,MAAM,CAAC,KAAO,UAAU,MAAQ,IAAI9oB,GAAG,CAAC,MAAQooB,EAAI+4K,kBAAkB,CAAC/4K,EAAImB,GAAG,QAAQhB,EAAG,iBAAiB,CAACO,MAAM,CAAC,KAAO,YAAY,kBAAkB,IAAI,oBAAoB,OAAO,kBAAkB,QAAQ9oB,GAAG,CAAC,OAASooB,EAAIg5K,gBAAgBl4K,MAAM,CAACniB,MAAOqhB,EAAe,YAAE/R,SAAS,SAAU8S,GAAMf,EAAIi5K,YAAYl4K,GAAKN,WAAW,kBAAkB,KAAKN,EAAG,SAAS,CAACA,EAAG,iBAAiB,CAAC+4K,YAAY,CAAC,gBAAgB,QAAQthM,GAAG,CAAC,OAASooB,EAAIm5K,gBAAgBr4K,MAAM,CAACniB,MAAOqhB,EAAY,SAAE/R,SAAS,SAAU8S,GAAMf,EAAIo5K,SAASr4K,GAAKN,WAAW,aAAaT,EAAIs1I,GAAIt1I,EAAa,WAAE,SAASxqB,GAAM,OAAO2qB,EAAG,kBAAkB,CAACO,MAAM,CAAC,MAAQlrB,EAAK8qC,cAAc,CAACtgB,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK8qC,mBAAkB,IAAI,GAAGngB,EAAG,SAAS,CAACO,MAAM,CAAC,OAAS,KAAK,CAACP,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,UAAU,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACL,EAAImB,GAAG,gBAAgBnB,EAAIs1I,GAAIt1I,EAAgB,cAAE,SAASxqB,EAAK2C,GAAO,OAAOgoB,EAAG,MAAM,CAACpnB,IAAIZ,EAAMkoB,YAAY,8BAA8B,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACk5K,MAAM,CAAC,kBAAmBlhM,EAAQ,EAAI,UAAY,QAAQ,CAAC6nB,EAAImB,GAAGnB,EAAIqB,GAAGlpB,EAAM,MAAMgoB,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACL,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK8jM,eAAen5K,EAAG,MAAM,CAACH,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK+jM,YAAY,aAAY,IAAI,GAAGp5K,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,UAAU,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACL,EAAImB,GAAG,gBAAgBnB,EAAIs1I,GAAIt1I,EAAmB,iBAAE,SAASxqB,EAAK2C,GAAO,OAAOgoB,EAAG,MAAM,CAACpnB,IAAIZ,EAAMkoB,YAAY,8BAA8B,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACk5K,MAAM,CAAC,kBAAmBlhM,EAAQ,EAAI,UAAY,QAAQ,CAAC6nB,EAAImB,GAAGnB,EAAIqB,GAAGlpB,EAAM,MAAMgoB,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACL,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK8jM,eAAen5K,EAAG,MAAM,CAACH,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK+jM,YAAY,aAAY,IAAI,GAAGp5K,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,UAAU,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACL,EAAImB,GAAG,kBAAkBnB,EAAIs1I,GAAIt1I,EAAe,aAAE,SAASxqB,EAAK2C,GAAO,OAAOgoB,EAAG,MAAM,CAACpnB,IAAIZ,EAAMkoB,YAAY,8BAA8B,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACk5K,MAAM,CAAC,kBAAmBlhM,EAAQ,EAAI,UAAY,QAAQ,CAAC6nB,EAAImB,GAAGnB,EAAIqB,GAAGlpB,EAAM,MAAMgoB,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACL,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK8jM,eAAen5K,EAAG,MAAM,CAACH,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK+jM,YAAY,aAAY,IAAI,IAAI,IAAI,IAAI,IAAI,GAAGp5K,EAAG,SAAS,CAACE,YAAY,iBAAiB,CAACF,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,KAAK,CAACP,EAAG,UAAU,CAACA,EAAG,SAAS,CAACO,MAAM,CAAC,OAAS,KAAK,CAACP,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,UAAU,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACL,EAAImB,GAAG,iBAAiBnB,EAAIs1I,GAAIt1I,EAAyB,uBAAE,SAASxqB,EAAK2C,GAAO,OAAOgoB,EAAG,MAAM,CAACpnB,IAAIZ,EAAMkoB,YAAY,8BAA8B,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACk5K,MAAM,CAAC,kBAAmBlhM,EAAQ,EAAI,UAAY,QAAQ,CAAC6nB,EAAImB,GAAGnB,EAAIqB,GAAGlpB,EAAM,MAAMgoB,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACL,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAKgkM,kBAAkBr5K,EAAG,MAAM,CAACH,EAAImB,GAAGnB,EAAIqB,GAAG7rB,EAAK+jM,YAAY,aAAY,IAAI,GAAGp5K,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,UAAU,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACL,EAAImB,GAAG,cAAchB,EAAG,MAAM,CAACi4K,IAAI,gBAAgB/3K,YAAY,UAAU7pB,MAAM,CAAEhE,MAAO,OAAQ0K,OAAQ,cAAe,GAAGijB,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,IAAI,CAACP,EAAG,UAAU,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACL,EAAImB,GAAG,cAAchB,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,iBAAiBF,EAAG,MAAM,CAACH,EAAImB,GAAG,iBAAiBhB,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACL,EAAImB,GAAGnB,EAAIqB,GAAGrB,EAAIy5K,eAAe,UAAUt5K,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkBF,EAAG,MAAM,CAACH,EAAImB,GAAG,iBAAiBhB,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACL,EAAImB,GAAGnB,EAAIqB,GAAGrB,EAAI05K,gBAAgB,UAAUv5K,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgBF,EAAG,MAAM,CAACH,EAAImB,GAAG,oBAAoBhB,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACL,EAAImB,GAAGnB,EAAIqB,GAAGrB,EAAI25K,YAAY,aAAa,IAAI,IAAI,IAAI,IAAI,GAAGx5K,EAAG,SAAS,CAACE,YAAY,iBAAiB,CAACF,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,KAAK,CAACP,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,SAASK,MAAM,CAAC,KAAO,UAAUm4K,KAAK,UAAU,CAAC14K,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAImB,GAAG,YAAYhB,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,iBAAiB,CAACO,MAAM,CAAC,KAAO,YAAY,kBAAkB,IAAI,oBAAoB,OAAO,kBAAkB,QAAQ9oB,GAAG,CAAC,OAASooB,EAAI45K,gBAAgB94K,MAAM,CAACniB,MAAOqhB,EAAY,SAAE/R,SAAS,SAAU8S,GAAMf,EAAI65K,SAAS94K,GAAKN,WAAW,eAAe,KAAKN,EAAG,SAAS,CAACA,EAAG,SAAS,CAACO,MAAM,CAAC,KAAO,KAAK,CAACP,EAAG,MAAM,CAACi4K,IAAI,YAAY/3K,YAAY,UAAU7pB,MAAM,CAAEhE,MAAO,OAAQ0K,OAAQ,cAAe,IAAI,IAAI,IAAI,IAAI,IACjsKqlB,EAAkB,G,gMCTlB,EAAS,WAAa,IAAIvC,EAAIhvB,KAASivB,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,wBAAwB,CAACF,EAAG,MAAM,CAACO,MAAM,CAAC,KAAO,UAAUm4K,KAAK,UAAU,CAAC14K,EAAG,iBAAiB,CAACO,MAAM,CAAC,KAAO,OAAO,YAAc,MAAM,eAAe,OAAO,OAAS,QAAQ9oB,GAAG,CAAC,OAASooB,EAAI85K,kBAAkBh5K,MAAM,CAACniB,MAAOqhB,EAAQ,KAAE/R,SAAS,SAAU8S,GAAMf,EAAI+5K,KAAKh5K,GAAKN,WAAW,UAAUN,EAAG,IAAI,CAACE,YAAY,mCAAmC,GAAGF,EAAG,MAAM,CAACA,EAAG,KAAK,CAACH,EAAImB,GAAGnB,EAAIqB,GAAGrB,EAAIsE,OAAO,OAAOnE,EAAG,MAAM,CAACE,YAAY,mDAAmD,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU,CAACL,EAAIiB,GAAG,UAAU,CAACjB,EAAImB,GAAG,IAAInB,EAAIqB,GAAGrB,EAAIq4K,QAAQ,MAAM,CAAC,OAASr4K,EAAIq4K,UAAU,GAAGl4K,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACL,EAAImB,GAAGnB,EAAIqB,GAAGrB,EAAIg6K,oBACzvB,EAAkB,GCsCD,G,oBAArB,yG,0BAOE,EAAAD,MAAe,IAAI9oI,MAAOG,cAAckyC,WAExC,EAAA+0F,OAAS,EATX,2DAWS,WACLrnM,KAAK+/L,MAAMl4K,SAAS7nB,KAAK+oM,KAAM,KAAKt2K,MAAK,SAACrS,GACxC,EAAKinL,OAASjnL,OAbpB,uCAiBmBsR,GAAgB,WAC/B1xB,KAAK+/L,MAAMruK,GAAUe,MAAK,SAACrS,GACzB,EAAKinL,OAASjnL,SAnBpB,GAAiD,SACrB,gBAAzB,eAAK,CAAEmT,UAAU,K,4BAES,gBAA1B,eAAK,CAAEA,UAAU,K,+BAEQ,gBAAzB,eAAK,CAAEA,UAAU,K,4BALC,EAAmB,gBAHvC,eAAU,CACT5mB,KAAM,yBAEa,WCvC2Y,I,wBCQ5Z8mB,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QC8NM,EAArB,yG,0BACE,EAAAw1K,WAAqB,QACrB,EAAAC,SAAkB,GAElB,EAAAC,gBAA0B,GAC1B,EAAA7B,kBAA4B,EAC5B,EAAA8B,YAAsB,GACtB,EAAA5B,cAAwB,EACxB,EAAA6B,eAAyB,GACzB,EAAA3B,iBAA2B,EAC3B,EAAA4B,iBAA2B,GAC3B,EAAA1B,mBAA6B,EAE7B,EAAAQ,SAAkB,OAClB,EAAAH,YAAmB,GACnB,EAAAsB,aAAuB,GACvB,EAAAC,WAAqB,GACrB,EAAAC,aAAoB,GACpB,EAAAC,gBAAuB,GACvB,EAAAC,YAAmB,GACnB,EAAAC,sBAA6B,GAE7B,EAAAnB,cAAwB,EACxB,EAAAC,eAAyB,EACzB,EAAAC,WAAqB,EAErB,EAAAE,SAAgB,GAChB,EAAAgB,UAAoB,GACpB,EAAAC,QAAkB,GAElB,EAAAC,gBAAuC,GACvC,EAAAC,aAAoC,GACpC,EAAAC,UAAsC,GAEtC,EAAAC,UAAgB,CACdC,YAAa,GACbpB,KAAM,GACNl0I,OAAQ,GACRziC,eAAgB,KAGlB,EAAAg4K,SAAqB,GACrB,EAAAC,cAA0B,GAC1B,EAAAC,eAA2B,GAC3B,EAAAC,wBAAoC,GACpC,EAAAC,eAA2B,GAC3B,EAAAC,aAAyB,GACzB,EAAAC,WAAuB,GAEvB,EAAAC,QAAoB,GACpB,EAAAC,YAAwB,GACxB,EAAAC,YAAwB,GACxB,EAAA7qI,KAAiB,GAEjB,EAAA8qI,UAAgB,GAEhB,EAAAC,cAAoB,CAClBz3K,MAAO,CACL3tB,KAAM,aACN4E,KAAM,SACNC,IAAK,MACLkf,SAAU,IAEZigC,QAAS,CACPrsB,QAAS,QAEXopD,OAAQ,CACNl8E,IAAK,UAWPgsE,OAAQ,CACN,CACE7pE,KAAM,OACNlN,KAAM,MACNumD,OAAQ,CAAC,MAAO,OAChBglJ,mBAAmB,EACnB9/L,UAAW,CACTC,YAAa,OACbC,YAAa,GAEfjK,MAAO,CACLC,MAAM,EACN4J,SAAU,UAEZtB,UAAW,CACTtI,MAAM,GAERb,KAAM,MAOZ,EAAAV,OAAc,CACZ8pD,QAAS,CACPrsB,QAAS,QAEXopD,OAAQ,CACNnmF,KAAM,CACJ,OACA,MACA,QAGJkP,KAAM,CACJlF,KAAM,KACNE,MAAO,KACPC,OAAQ,KACR83L,cAAc,GAEhB1wL,MAAO,CACLrS,KAAM,WACNwlD,aAAa,EACb1kD,KAAM,EAAK6pM,UAEbr4L,MAAO,CACL,CACEtS,KAAM,QACNkN,KAAM,KACN3B,SAAU,OACVo6C,UAAW,CACT0P,UAAW,aAIjB0hB,OAAQ,CACN,CACE7pE,KAAM,OACNlN,KAAM,OAGNc,KAAM,EAAKoqM,SAEb,CACEh+L,KAAM,MACNlN,KAAM,OAGNc,KAAM,EAAKqqM,aAEb,CACEj+L,KAAM,MACNlN,KAAM,OAGNc,KAAM,EAAKsqM,eA1JnB,mGAoKI7qM,KAAKirM,oBApKT,oCAuKIjrM,KAAKkqM,UAAY,CACfC,YAAa,GACbpB,KAAM,GACNl0I,OAAQ,GACRziC,eAAgB,KAElBpyB,KAAKirM,oBA7KT,gCAiLI,IAAIjrI,EAAO,IAAIC,KACT8oI,EAAO/oI,EAAKI,cAClBpgE,KAAKioM,YAAcjoM,KAAKspM,iBAAmBtpM,KAAKqpM,eAAiBrpM,KAAKopM,YAAcppM,KAAKmpM,gBAAkB+B,OAAOnC,GAClH/oM,KAAKinM,qBAAqB8B,GAC1B/oM,KAAKunM,iBAAiBwB,GACtB/oM,KAAKynM,oBAAoBsB,GACzB/oM,KAAK2nM,sBAAsBoB,GAC3B/oM,KAAKmrM,kBAGLnrM,KAAK6pM,UAAY7pM,KAAKupM,aAAe,MAAS6B,MAAM,MAASA,SAASC,QAAQ,SAASC,OAAO,cAC9FtrM,KAAK8pM,QAAU9pM,KAAKwpM,WAAa,MAAS4B,MAAM,MAASA,SAASG,MAAM,SAASD,OAAO,cACxFtrM,KAAKioM,YAAc,CAACjoM,KAAKupM,aAAcvpM,KAAKwpM,YAC5CxpM,KAAK6oM,SAAW,CAAC7oM,KAAK6pM,UAAW7pM,KAAK8pM,SACpC9pM,KAAKwrM,0BACPxrM,KAAKyrM,+BACLzrM,KAAK0rM,2BAEL1rM,KAAK2rM,2BAEL3rM,KAAK4rM,sCACL5rM,KAAK6rM,gCACL7rM,KAAK8rM,6CAGL9rM,KAAK+rM,aACL/rM,KAAKgsM,gBA3MT,2CA+MuBjD,GAAQ,WACvBA,IACFA,EAAOlhL,SAASkhL,GAChBxiM,EAAA,KAAI0lM,UAAUhF,qBAAqB,CACjC8B,KAAMA,IACLt2K,MAAK,SAAArS,GACN,EAAKknL,kBAAoBlnL,QArNjC,uCA0NmB2oL,GAAQ,WACnBA,IACFA,EAAOlhL,SAASkhL,GAChBxiM,EAAA,KAAI0lM,UAAU1E,iBAAiB,CAC7BwB,KAAMA,IACLt2K,MAAK,SAAArS,GACN,EAAKonL,cAAgBpnL,QAhO7B,0CAqOsB2oL,GAAQ,WACtBA,IACFA,EAAOlhL,SAASkhL,GAChBxiM,EAAA,KAAI0lM,UAAUC,wBAAwB,CACpCnD,KAAMA,IACLt2K,MAAK,SAAArS,GACN,EAAKsnL,iBAAmBtnL,QA3OhC,4CAgPwB2oL,GAAQ,WACxBA,IACFA,EAAOlhL,SAASkhL,GAChBxiM,EAAA,KAAI0lM,UAAUC,wBAAwB,CACpCnD,KAAMA,IACLt2K,MAAK,SAAArS,GACN,EAAKwnL,mBAAqBxnL,QAtPlC,yCA8PIpgB,KAAKupM,aAAe,MAAS6B,MAAM,MAASA,SAASC,QAAQ,SAASC,OAAO,cAC7EtrM,KAAKwpM,WAAa,MAAS4B,MAAM,MAASA,SAASG,MAAM,SAASD,OAAO,cACzEtrM,KAAKioM,YAAc,CAACjoM,KAAKupM,aAAcvpM,KAAKwpM,YAC5CxpM,KAAKwrM,0BACLxrM,KAAKyrM,+BACLzrM,KAAK0rM,6BAnQT,wCAyQI1rM,KAAKupM,aAAe,MAAS6B,MAAM,MAASA,SAASC,QAAQ,QAAQC,OAAO,cAC5EtrM,KAAKwpM,WAAa,MAAS4B,MAAM,MAASA,SAASG,MAAM,QAAQD,OAAO,cACxEtrM,KAAKioM,YAAc,CAACjoM,KAAKupM,aAAcvpM,KAAKwpM,YAC5CxpM,KAAKwrM,0BACLxrM,KAAKyrM,+BACLzrM,KAAK0rM,6BA9QT,qCAiRiBjsM,GAEbO,KAAKooM,SAAW3oM,EAEhBO,KAAKwrM,0BACLxrM,KAAKyrM,+BACLzrM,KAAK0rM,6BAvRT,uCA2RQ1rM,KAAKioM,aAA2C,IAA5BjoM,KAAKioM,YAAYh9L,SACvCjL,KAAKupM,aAAe,IAAOvpM,KAAKioM,YAAY,IAAIqD,OAAO,uBACvDtrM,KAAKwpM,WAAa,IAAOxpM,KAAKioM,YAAY,IAAIqD,OAAO,uBACrDtrM,KAAKwrM,0BACLxrM,KAAKyrM,+BACLzrM,KAAK0rM,8BAhSX,uCAqSQ1rM,KAAK6oM,UAAqC,IAAzB7oM,KAAK6oM,SAAS59L,SACjCjL,KAAK6pM,UAAY,IAAO7pM,KAAK6oM,SAAS,IAAIyC,OAAO,uBACjDtrM,KAAK8pM,QAAU,IAAO9pM,KAAK6oM,SAAS,IAAIyC,OAAO,uBAC/CtrM,KAAKgsM,iBAxSX,mCA6SY,WACRzlM,EAAA,KAAI0lM,UAAUE,0BAA0B15K,MAAK,SAAArS,GAC3C,EAAK2qL,cAAcv0H,OAAO,GAAGj2E,KAAO6f,EACpC,IAAMgsL,EAAgB,IAAQpjM,KAAK,EAAKqjM,MAAMD,eAC9CA,EAAcvnF,UAAU,EAAKkmF,oBAjTnC,oCAsTa,WACTxkM,EAAA,KAAI0lM,UAAUK,gBAAgB,CAC5B/3L,MAAOvU,KAAK6pM,UACZxvH,IAAKr6E,KAAK8pM,UACTr3K,MAAK,SAAArS,GACN,GAAIA,EAAK,CACP,EAAKvgB,OAAOiS,MAAMvR,KAAO6f,EAAImsL,OAASnsL,EAAImsL,OAAOC,UAAY,GAC7D,EAAK3sM,OAAO22E,OAAO,GAAGj2E,KAAO6f,EAAImsL,OAASnsL,EAAImsL,OAAOE,WAAa,GAClE,EAAK5sM,OAAO22E,OAAO,GAAGj2E,KAAO6f,EAAIssL,WAAatsL,EAAIssL,WAAWD,WAAa,GAC1E,EAAK5sM,OAAO22E,OAAO,GAAGj2E,KAAO6f,EAAIusL,WAAavsL,EAAIusL,WAAWF,WAAa,GAE1E,IAAMG,EAAU,IAAQ5jM,KAAK,EAAKqjM,MAAMQ,WACxCD,EAAQ/nF,UAAU,EAAKhlH,cAlU/B,gDAwUyB,WACjBG,KAAKupM,cAAgBvpM,KAAKwpM,aACxBxpM,KAAKooM,SACP7hM,EAAA,KAAI0lM,UAAUT,wBAAwB,CACpCj3L,MAAOvU,KAAKupM,aACZlvH,IAAKr6E,KAAKwpM,WACVpB,SAAUpoM,KAAKooM,WACd31K,MAAK,SAAArS,GACN,EAAKqpL,aAAerpL,KAGtB7Z,EAAA,KAAI0lM,UAAUT,wBAAwB,CACpCj3L,MAAOvU,KAAKupM,aACZlvH,IAAKr6E,KAAKwpM,aACT/2K,MAAK,SAAArS,GACN,EAAKqpL,aAAerpL,QAvV9B,qDA6V8B,WACtBpgB,KAAKupM,cAAgBvpM,KAAKwpM,aACxBxpM,KAAKooM,SACP7hM,EAAA,KAAI0lM,UAAUR,6BAA6B,CACzCl3L,MAAOvU,KAAKupM,aACZlvH,IAAKr6E,KAAKwpM,WACVpB,SAAUpoM,KAAKooM,WACd31K,MAAK,SAAArS,GACN,EAAKspL,gBAAkBtpL,KAGzB7Z,EAAA,KAAI0lM,UAAUR,6BAA6B,CACzCl3L,MAAOvU,KAAKupM,aACZlvH,IAAKr6E,KAAKwpM,aACT/2K,MAAK,SAAArS,GACN,EAAKspL,gBAAkBtpL,QA5WjC,iDAkX0B,WAClBpgB,KAAKupM,cAAgBvpM,KAAKwpM,aACxBxpM,KAAKooM,SACP7hM,EAAA,KAAI0lM,UAAUP,yBAAyB,CACrCn3L,MAAOvU,KAAKupM,aACZlvH,IAAKr6E,KAAKwpM,WACVpB,SAAUpoM,KAAKooM,WACd31K,MAAK,SAAArS,GACN,EAAKupL,YAAcvpL,KAGrB7Z,EAAA,KAAI0lM,UAAUP,yBAAyB,CACrCn3L,MAAOvU,KAAKupM,aACZlvH,IAAKr6E,KAAKwpM,aACT/2K,MAAK,SAAArS,GACN,EAAKupL,YAAcvpL,QAjY7B,iDAuY0B,WACtB7Z,EAAA,KAAI0lM,UAAUN,2BAA2Bl5K,MAAK,SAAArS,GAC5C,EAAKwpL,sBAAwBxpL,OAzYnC,mEA6Y4C,WACxC7Z,EAAA,KAAI0lM,UAAUH,6CAA6Cr5K,MAAK,SAAArS,GAC9D,EAAKqoL,cAAgBroL,OA/Y3B,sDAmZ+B,WAC3B7Z,EAAA,KAAI0lM,UAAUJ,gCAAgCp5K,MAAK,SAAArS,GACjD,EAAKsoL,eAAiBtoL,OArZ5B,4DAyZqC,WACjC7Z,EAAA,KAAI0lM,UAAUL,sCAAsCn5K,MAAK,SAAArS,GACvD,EAAKuoL,WAAavoL,OA3ZxB,wCA+ZiB,WAEb7Z,EAAA,KAAIumM,eAAeC,2BAA2B,CAAChlM,IAAK,eAAgBqqB,eAAgB,MACjFK,MAAK,SAACrS,GACL,EAAK0qL,UAAY1qL,EAAIsS,WAna7B,kCAuaW,WACPnsB,EAAA,KAAIymM,YACDvzJ,UAAU,CAAEwzJ,SAAU,gCACtBx6K,MAAK,SAAArS,GACJ,EAAK8sL,iBAAmB9sL,SA3ahC,GAA+C,QAA1B,EAAiB,gBArBrC,eAAU,CACTzT,KAAM,oBACNutB,WAAY,CACVizK,iBAAA,KACAC,oBAAA,GAEFC,QAAS,CACPC,mBADO,SACYz4I,EAAgB1xC,GACjC,IAAIwD,EAAS,GASb,OARIxD,GAAQA,EAAKlY,OAAS,GACxBkY,EAAKlc,KAAI,SAAAzC,GACHA,EAAKmJ,OAASknD,IAChBluC,EAASniB,EAAKmB,SAKbghB,OAIQ,WCjP6X,ICQ9Y,G,UAAY,eACd,EACArV,EACAigB,GACA,EACA,KACA,KACA,OAIa,e,8BCCf,IAAI3uB,EAAS,EAAQ,QAoBrB,SAASrD,EAASM,GAEhB,IAAIy+B,EAAY,GAChB17B,EAAOzD,KAAKU,EAAO22E,QAAQ,SAAUiN,GAC/BA,GAAgC,QAAnBA,EAAUhkF,OACzB6+B,EAAUz9B,KAAK4iF,GACfA,EAAUx8E,IAAMw8E,EAAUx8E,KAAOw8E,EAAUp9B,QAE3CzjD,EAAO6O,SAASgyE,EAAWA,EAAU8pH,iBAK3C7qM,EAAOC,QAAUpD,G,uBCjCjB,IAAI0/D,EAAa,EAAQ,QAwBrB+/H,EAAc//H,EAAWt1C,MAU7B,SAASi2K,EAAuB/nK,EAAQtT,EAAag8C,EAAaC,GAChE,IAAI75C,EAAS,GACTk6C,EAAOhpC,EAAO,GAAKA,EAAO,GAC1B3Q,EAAWP,EAAOO,SAAW+3C,EAAWmC,KAAKP,EAAOt8C,GAAa,GAElD,MAAfg8C,GAAuBr5C,EAAWq5C,IACpCr5C,EAAWP,EAAOO,SAAWq5C,GAGZ,MAAfC,GAAuBt5C,EAAWs5C,IACpCt5C,EAAWP,EAAOO,SAAWs5C,GAI/B,IAAI54C,EAAYjB,EAAO24K,kBAAoBH,EAAqBj4K,GAE5Dm4K,EAAiB14K,EAAO04K,eAAiB,CAACL,EAAYnzL,KAAKyzD,KAAKznC,EAAO,GAAK3Q,GAAYA,EAAUU,GAAYo3K,EAAYnzL,KAAK+N,MAAMie,EAAO,GAAK3Q,GAAYA,EAAUU,IAE3K,OADA25C,EAAU89H,EAAgBxnK,GACnBlR,EAQT,SAASw4K,EAAqBj4K,GAE5B,OAAO+3C,EAAWozC,iBAAiBnrF,GAAY,EAGjD,SAAS6qF,EAAMstF,EAAgBnvL,EAAK2nB,GAClCwnK,EAAenvL,GAAOrE,KAAK4E,IAAI5E,KAAK6E,IAAI2uL,EAAenvL,GAAM2nB,EAAO,IAAKA,EAAO,IAIlF,SAAS0pC,EAAU89H,EAAgBxnK,IAChC8B,SAAS0lK,EAAe,MAAQA,EAAe,GAAKxnK,EAAO,KAC3D8B,SAAS0lK,EAAe,MAAQA,EAAe,GAAKxnK,EAAO,IAC5Dk6E,EAAMstF,EAAgB,EAAGxnK,GACzBk6E,EAAMstF,EAAgB,EAAGxnK,GAErBwnK,EAAe,GAAKA,EAAe,KACrCA,EAAe,GAAKA,EAAe,IAIvC18L,EAAQi9L,uBAAyBA,EACjCj9L,EAAQw8L,qBAAuBA,EAC/Bx8L,EAAQ4+D,UAAYA,G,uBCnFpB,IAAIn5D,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB4hK,EAAW,EAAQ,QAEnBvhK,EAASuhK,EAASvhK,OAClBuqM,EAAchpC,EAASgpC,YAE3B,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAqBRplM,EAAQyrB,eAAezrB,EAAQ8sC,SAASC,OAAO+rE,OAAQt+G,EAAO4G,MAAMvG,EAAQ,QAG5EmF,EAAQyrB,eAAezrB,EAAQ8sC,SAASC,OAAOgsE,mBAAoBqsF,GACnEplM,EAAQ2mB,eAAe,CACrB6F,WAAY,MACZE,MAAO,SAAUhzB,GAEfA,EAAYtB,UAAU+gB,UAAU,eAAgB,iB,uBC5CpD,IAAI4wB,EAAO,EAAQ,QAEf4yF,EAAe,EAAQ,QAEvBjrF,EAAgBirF,EAAajrF,cAC7BiiG,EAAqBhX,EAAagX,mBAoBlCnrI,EAAK/E,KAAK+E,GACV68L,EAAqB,GAwBzB,SAASzuH,EAAel9E,EAAa4rM,GACnC,IAAIrtM,EAAWyB,EAAYxB,iBAE3B,IAAID,GAA8B,SAAlBA,EAASZ,KAAzB,CAIA,IAAIuM,EAAO3L,EAAS4L,kBAChB+xD,EAAWl8D,EAAYtB,UACvB8lC,EAAQ03B,EAAS13B,MACjB8X,EAAKpyC,EAAKxK,MAAQ,EAAIwK,EAAKvG,EAC3B44C,EAAKryC,EAAKE,OAAS,EAAIF,EAAKtG,EAC5BmO,EAAIhI,KAAK6E,IAAI1E,EAAKxK,MAAOwK,EAAKE,QAAU,EACxCiW,EAAQ67C,EAAS77C,QACrB67C,EAASp9C,UAAU,CACjBw9B,GAAIA,EACJC,GAAIA,IAGDl8B,IAILwrL,EAAoBD,GAAS5rM,EAAazB,EAAUimC,EAAO03B,EAAUnqD,EAAGuqC,EAAIC,EAAIl8B,GAEhFmkB,EAAMupB,UAAS,SAAUtoC,GACvB,IAGI2sB,EAHA4b,EAAYvoC,EAAKtG,WAAW/e,IAAI,wBAA0B,EAC1DyJ,EAAKwmC,EAAKzqC,MAAM6f,EAAKwoC,MAAMhvC,aAC3BnV,EAAKumC,EAAKzqC,MAAM6f,EAAKyoC,MAAMjvC,aAE3B6sL,GAAOjiM,EAAG,GAAKC,EAAG,IAAM,EACxBiiM,GAAOliM,EAAG,GAAKC,EAAG,IAAM,GAEvBkkD,IACHA,GAAa,EACb5b,EAAM,CAACkK,EAAK0R,EAAY89I,GAAO,EAAI99I,GAAYzR,EAAKyR,EAAY+9I,GAAO,EAAI/9I,KAG7EvoC,EAAK3G,UAAU,CAACjV,EAAIC,EAAIsoC,SAI5B,IAAIy5J,EAAsB,CACxBhgM,MAAO,SAAU7L,EAAazB,EAAUimC,EAAO03B,EAAUnqD,EAAGuqC,EAAIC,EAAIl8B,GAClE,IAAIqwC,EAAQ,EACRvoD,EAAM+zD,EAAS9zD,OAAO,SACtB4jM,EAAsB,EAAVjiM,KAAK+E,IAAU3G,GAAOkY,GACtCmkB,EAAM5mB,UAAS,SAAUF,GACvB,IAAI7R,EAAQ6R,EAAKiB,SAAS,SACtBstL,EAAaD,GAAa7jM,EAAM0D,EAAQ,GAAK,EACjD6kD,GAASu7I,EACTvuL,EAAKoB,UAAU,CAAC/M,EAAIhI,KAAK04C,IAAIiO,GAASpU,EAAIvqC,EAAIhI,KAAKw4C,IAAImO,GAASnU,IAChEmU,GAASu7I,MAGbh0J,WAAY,SAAUj4C,EAAazB,EAAUimC,EAAO03B,EAAUnqD,EAAGuqC,EAAIC,EAAIl8B,GACvE,IAAI6rL,EAAY,EAChBP,EAAmBxiM,OAASkX,EAC5B,IAAIg6H,EAAYJ,EAAmBj6I,GACnCwkC,EAAM5mB,UAAS,SAAUF,GACvB,IAAIu6B,EAAaD,EAAct6B,GAG/BzG,MAAMghC,KAAgBA,EAAa,GACnCA,EAAa,IAAMA,EAAa,GAChCA,GAAcoiG,EACd,IAAI8xD,EAAmBpiM,KAAKoyK,KAAKlkI,EAAa,EAAIlmC,GAElDkF,MAAMk1L,KAAsBA,EAAmBr9L,EAAK,GACpD68L,EAAmBjuL,EAAK5e,WAAaqtM,EACrCD,GAAgC,EAAnBC,KAEf,IAAIC,GAAoB,EAAIt9L,EAAKo9L,GAAa7rL,EAAQ,EAClDqwC,EAAQ,EACZlsB,EAAM5mB,UAAS,SAAUF,GACvB,IAAIuuL,EAAaG,EAAmBT,EAAmBjuL,EAAK5e,WAC5D4xD,GAASu7I,EACTvuL,EAAKoB,UAAU,CAAC/M,EAAIhI,KAAK04C,IAAIiO,GAASpU,EAAIvqC,EAAIhI,KAAKw4C,IAAImO,GAASnU,IAChEmU,GAASu7I,OAIfprM,EAAQq8E,eAAiBA,G,uBCpIzB,IAAI52E,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAoBRA,EAAQyJ,sBAAqB,SAAUrC,GAErCA,EAAIm0E,SAAWn0E,EAAIm0E,UAAY,O,mBCnCjC,SAAS0gF,EAAcrpG,EAAIC,EAAIb,EAAIC,EAAIqe,EAAWjzE,EAAGC,GACnD,GAAkB,IAAdgzE,EACF,OAAO,EAGT,IAAI4rF,EAAK5rF,EACLy1H,EAAK,EACLC,EAAKpzI,EAET,GAAIt1D,EAAIu1D,EAAKqpG,GAAM5+J,EAAI20D,EAAKiqG,GAAM5+J,EAAIu1D,EAAKqpG,GAAM5+J,EAAI20D,EAAKiqG,GAAM7+J,EAAIu1D,EAAKspG,GAAM7+J,EAAI20D,EAAKkqG,GAAM7+J,EAAIu1D,EAAKspG,GAAM7+J,EAAI20D,EAAKkqG,EACpH,OAAO,EAGT,GAAItpG,IAAOZ,EAIT,OAAOvuD,KAAKC,IAAIrG,EAAIu1D,IAAOspG,EAAK,EAHhC6pC,GAAMlzI,EAAKZ,IAAOW,EAAKZ,GACvBg0I,GAAMpzI,EAAKX,EAAKD,EAAKa,IAAOD,EAAKZ,GAKnC,IAAIrlD,EAAMo5L,EAAK1oM,EAAIC,EAAI0oM,EAEnB/9K,EAAKtb,EAAMA,GAAOo5L,EAAKA,EAAK,GAEhC,OAAO99K,GAAMi0I,EAAK,EAAIA,EAAK,EAG7B3hK,EAAQ0hK,cAAgBA,G,qBClBxB,IAAIj8J,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB+/H,EAAa,EAAQ,QAErB7qC,EAAW,EAAQ,QAEnB/7D,EAAiB,EAAQ,QAEzBC,EAAa,EAAQ,QAErBC,EAAgB,EAAQ,QAExBC,EAAsBD,EAAcC,oBAEpCp5B,EAAU,EAAQ,QAElBurM,EAAa,EAAQ,QAErBtpE,EAAe,EAAQ,QAEvBgX,EAAqBhX,EAAagX,mBAoBlCuyD,EAAkB,uBAClBC,EAAoB,yBACpBxrD,EAAkB,CAAC,YAAa,WAChCE,EAAkB,CAAC,YAAa,WAEpC,SAASE,EAAe3+I,EAAM4+I,GAC5B,IAAI3hJ,EAAU+C,EAAKid,UAAU,WAC7B,OAAkB,MAAXhgB,EAAkBA,EAAU+C,EAAKyc,WAAW/e,IAAIkhJ,GAGzD,SAASC,EAAY7+I,EAAM4+I,EAAaE,GACtC,IAAI73H,EAAKjnB,EAAK++I,eACV9hJ,EAAU0hJ,EAAe3+I,EAAM4+I,GAEf,MAAhBE,IACS,MAAX7hJ,IAAoBA,EAAU,GAC9BA,GAAW6hJ,GAGb73H,EAAGivB,UAAYjvB,EAAGivB,WAClBjvB,EAAGqX,UAAS,SAAUvjB,GACpB,IAAKA,EAAM6qD,QAAS,CAClB,IAAIokI,EAAOjvL,EAAMknK,yBAEL,MAAR+nB,GAAgC,MAAhBlrD,IAClBkrD,EAAO/sM,GAGT8d,EAAMshB,SAAS,UAAW2tK,OAKhC,SAAShrD,EAAWh/I,EAAM4+I,GACxB,IAAI3hJ,EAAU0hJ,EAAe3+I,EAAM4+I,GAC/B33H,EAAKjnB,EAAK++I,eAId93H,EAAGqX,UAAS,SAAUvjB,IACnBA,EAAM6qD,SAAW7qD,EAAMshB,SAAS,UAAWp/B,MAE9CgqB,EAAGgvB,WAAahvB,EAAGgvB,YAGrB,IAAIl7C,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,QACNuJ,KAAM,SAAUlJ,EAASyG,GACvB,IAAI6tL,EAAa,IAAIzxD,EACjB1oC,EAAW,IAAInC,EACfx0F,EAAQtD,KAAKsD,MACjBtD,KAAK09B,YAAc,IAAI3B,EAAex1B,EAAIslB,SAC1C7rB,KAAK29B,gBAAkB,CACrBvrB,OAAQ9O,GAEVA,EAAMgC,IAAI8uL,EAAW9wL,OACrBA,EAAMgC,IAAI20F,EAAS32F,OACnBtD,KAAK8iI,YAAcsxD,EACnBp0L,KAAKyuM,UAAYx0G,EACjBj6F,KAAK0uM,cAAe,GAEtBp9L,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIooM,EAAY3uM,KACZK,EAAWyB,EAAYxB,iBAC3BN,KAAKyI,OAAS3G,EACd,IAAIsyL,EAAap0L,KAAK8iI,YAClB7oC,EAAWj6F,KAAKyuM,UAChBnrM,EAAQtD,KAAKsD,MAEjB,GAAsB,SAAlBjD,EAASZ,KAAiB,CAC5B,IAAImvM,EAAe,CACjB5jM,SAAU3K,EAAS2K,SACnByD,MAAOpO,EAASoO,OAGdzO,KAAK0uM,aACPprM,EAAM0c,KAAK4uL,GAEX9rM,EAAQk8B,YAAY17B,EAAOsrM,EAAc9sM,GAK7CusM,EAAWvsM,EAAYykC,WAAYw1G,EAAmBj6I,IACtD,IAAIvB,EAAOuB,EAAYtB,UACvB4zL,EAAWngJ,WAAW1zC,GACtB,IAAI+7E,EAAWx6E,EAAYs5L,cAC3BnhG,EAAShmD,WAAWqoC,GAEpBt8E,KAAKwyK,0BAELxyK,KAAKoiC,kBAAkBtgC,EAAahC,EAASyG,GAE7CimB,aAAaxsB,KAAK6uM,gBAClB,IAAI5vH,EAAcn9E,EAAYm9E,YAC1Bw8G,EAAkB35L,EAAYI,IAAI,yBAElC+8E,GACFj/E,KAAK8uM,2BAA2B7vH,EAAaw8G,GAG/Cl7L,EAAKo+C,mBAAkB,SAAUlzB,EAAIvb,GACnC,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAElCub,EAAGoR,IAAI,QAAQA,IAAI,WACnB,IAAIge,EAAY15B,EAAUjf,IAAI,aAE1B24C,GACFpvB,EAAG7kB,GAAG,QAAQ,WACRq4E,IACFA,EAAY8vH,UACX/uM,KAAKgvM,YAAchvM,KAAK8uM,2BAA2B7vH,EAAaw8G,GACjEx8G,EAAYgwH,SAAS/+L,GAErB3P,EAAKugB,cAAc5Q,EAAKub,EAAGzgB,aAE5BhL,MAAM4G,GAAG,WAAW,WACjBq4E,GACFA,EAAYiwH,WAAWh/L,KAExBlQ,MAGLyrB,EAAGmvB,aAAaC,GAAaokC,GAC7BxzD,EAAG6iL,IAAoB7iL,EAAGoR,IAAI,YAAapR,EAAG6iL,IAC9C7iL,EAAG8iL,IAAsB9iL,EAAGoR,IAAI,WAAYpR,EAAG8iL,IAE3CptL,EAAUjf,IAAI,wBAChBupB,EAAG7kB,GAAG,YAAa6kB,EAAG6iL,GAAmB,WACvCK,EAAU5iG,cAEVxlG,EAAIC,eAAe,CACjB/G,KAAM,qBACNunB,SAAUllB,EAAYqG,GACtBvH,UAAW6qB,EAAG7qB,cAGlB6qB,EAAG7kB,GAAG,WAAY6kB,EAAG8iL,GAAqB,WACxCI,EAAU3pD,iBAAiBz+I,QAG9BvG,MACHO,EAAK+lC,MAAMupB,UAAS,SAAUtoC,GAC5B,IAAIkE,EAAKlE,EAAKg8H,eACd93H,EAAG6iL,IAAoB7iL,EAAGoR,IAAI,YAAapR,EAAG6iL,IAC9C7iL,EAAG8iL,IAAsB9iL,EAAGoR,IAAI,WAAYpR,EAAG8iL,IAE3ChnL,EAAKtG,WAAW/e,IAAI,wBACtBupB,EAAG7kB,GAAG,YAAa6kB,EAAG6iL,GAAmB,WACvCK,EAAU5iG,cAEVxlG,EAAIC,eAAe,CACjB/G,KAAM,qBACNunB,SAAUllB,EAAYqG,GACtB88I,cAAe19H,EAAK3mB,cAGxB6qB,EAAG7kB,GAAG,WAAY6kB,EAAG8iL,GAAqB,WACxCI,EAAU3pD,iBAAiBz+I,SAIjC,IAAI4oM,EAAoD,aAA9BrtM,EAAYI,IAAI,WAA4BJ,EAAYI,IAAI,wBAClFk8C,EAAK79C,EAAKwgB,UAAU,MACpBs9B,EAAK99C,EAAKwgB,UAAU,MACxBxgB,EAAKo+C,mBAAkB,SAAUlzB,EAAIvb,GACnC,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAC9BiB,EAAcgQ,EAAUjf,IAAI,iBAAmB,EAC/Cm4C,EAAa5uB,EAAG+uB,gBAEpB,GAAI20J,EAAqB,CACvB,IAAI98L,EAAM9R,EAAKygB,cAAc9Q,GACzB2zC,EAAMh4C,KAAKk5B,MAAM1yB,EAAI,GAAKgsC,EAAIhsC,EAAI,GAAK+rC,GAEvCyF,EAAM,IACRA,EAAgB,EAAVh4C,KAAK+E,GAASizC,GAGtB,IAAIgwH,EAASxhK,EAAI,GAAK+rC,EAElBy1H,IACFhwH,GAAYh4C,KAAK+E,IAGnB,IAAI+8D,EAAekmG,EAAS,OAAS,QACrC/wK,EAAQoqE,iBAAiB7yB,EAAY,CACnCyzB,cAAejqB,EACf8pB,aAAcA,EACd4e,WAAY,UACX,CACD5e,aAAcA,SAGhB7qE,EAAQoqE,iBAAiB7yB,EAAY,CACnCyzB,aAAc38D,GAAetF,KAAK+E,GAAK,SAI7C5Q,KAAK0uM,cAAe,GAEtBngL,QAAS,WACPvuB,KAAK09B,aAAe19B,KAAK09B,YAAYnP,UACrCvuB,KAAK29B,gBAAkB,GAEvB39B,KAAK+rG,eAEPi5C,iBAAkB,SAAUz+I,EAAKiJ,GAC/B,IAAIiO,EAAOzd,KAEXA,KAAK+rG,cAEL/rG,KAAKklJ,mBAAqB72H,YAAW,WACnC5Q,EAAKynI,mBAAqB,KAC1B3+I,EAAIC,eAAe,CACjB/G,KAAM,uBACNunB,SAAUvJ,EAAKhV,OAAON,OAEvB,MAEL4jG,YAAa,WACP/rG,KAAKklJ,qBACP14H,aAAaxsB,KAAKklJ,oBAClBllJ,KAAKklJ,mBAAqB,OAG9BC,mBAAoB,SAAUrjJ,EAAahC,EAASyG,EAAK23B,GACvD,IAAI39B,EAAOuB,EAAYtB,UACnB8lC,EAAQ/lC,EAAK+lC,MACb1lC,EAAYs9B,EAAQt9B,UACpBqkJ,EAAgB/mH,EAAQ+mH,cACxBzlI,EAAO8mB,EAAMg5G,eAAe1+I,GAC5B2mB,EAAO+e,EAAMu4G,eAAeoG,IAE3BzlI,GAAS+H,KAId+e,EAAM5mB,UAAS,SAAUF,GACvB6jI,EAAY7jI,EAAMujI,EAAiB,OAErCz8G,EAAMupB,UAAS,SAAUtoC,GACvB87H,EAAY97H,EAAM07H,EAAiB,OAGjCzjI,IACFgkI,EAAWhkI,EAAMujI,GACjBngJ,EAAOzD,KAAKqgB,EAAKo8D,OAAO,SAAUwzH,GAC5BA,EAAaxuM,UAAY,IAI7B4iJ,EAAW4rD,EAAcnsD,GACzBO,EAAW4rD,EAAar/I,MAAOgzF,GAC/BS,EAAW4rD,EAAap/I,MAAO+yF,QAI/Bx7H,IACFi8H,EAAWj8H,EAAM07H,GACjBO,EAAWj8H,EAAKwoC,MAAOgzF,GACvBS,EAAWj8H,EAAKyoC,MAAO+yF,MAG3BwC,qBAAsB,SAAUzjJ,EAAahC,EAASyG,EAAK23B,GACzD,IAAIoI,EAAQxkC,EAAYtB,UAAU8lC,MAClCA,EAAM5mB,UAAS,SAAUF,GACvB6jI,EAAY7jI,EAAMujI,MAEpBz8G,EAAMupB,UAAS,SAAUtoC,GACvB87H,EAAY97H,EAAM07H,OAGtB6rD,2BAA4B,SAAU7vH,EAAaw8G,GACjD,IAAIh+K,EAAOzd,MAEX,SAAU4hE,IACRqd,EAAYrd,MAAK,SAAU29E,GACzB9hI,EAAKi3B,aAAaj3B,EAAKhV,SACtBgV,EAAKuxL,YAAczvD,KAAak8C,EAAkBh+K,EAAKoxL,eAAiBxgL,WAAWuzC,EAAM,IAAMA,SAHpG,IAOFx/B,kBAAmB,SAAUtgC,EAAahC,EAASyG,GACjD,IAAIk8B,EAAaziC,KAAK09B,YAClBzrB,EAAiBjS,KAAK29B,gBACtBr6B,EAAQtD,KAAKsD,MACjBm/B,EAAWM,mBAAkB,SAAUpW,EAAGlnB,EAAGC,GAC3C,IAAIsG,EAAO1I,EAAM2I,kBAEjB,OADAD,EAAKk5B,eAAe5hC,EAAMgL,WACnBtC,EAAKkC,QAAQzI,EAAGC,KAAOw2B,EAAoBvP,EAAGpmB,EAAKzE,MAGlB,SAAtCA,EAAYxB,iBAAiBb,MAKjCgjC,EAAWC,OAAO5gC,EAAYI,IAAI,SAClC+P,EAAeU,UAAY7Q,EAAYI,IAAI,cAC3C+P,EAAe9F,KAAOrK,EAAYxB,iBAAiB8L,UACnDq2B,EAAW5F,IAAI,OAAOA,IAAI,QAAQj2B,GAAG,OAAO,SAAU+lB,GACpDqP,EAAWhqB,gBAAgBC,EAAgB0a,EAAEza,GAAIya,EAAExa,IACnD5L,EAAIC,eAAe,CACjBwgB,SAAUllB,EAAYqG,GACtB1I,KAAM,YACNyS,GAAIya,EAAEza,GACNC,GAAIwa,EAAExa,QAEPvL,GAAG,QAAQ,SAAU+lB,GACtBqP,EAAWzpB,iBAAiBN,EAAgB0a,EAAEle,MAAOke,EAAEiW,QAASjW,EAAEkW,SAClEt8B,EAAIC,eAAe,CACjBwgB,SAAUllB,EAAYqG,GACtB1I,KAAM,YACN0M,KAAMwgB,EAAEle,MACRm0B,QAASjW,EAAEiW,QACXC,QAASlW,EAAEkW,UAGb7iC,KAAKwyK,0BAEL67B,EAAWvsM,EAAYykC,WAAYw1G,EAAmBj6I,IAEtD9B,KAAKyuM,UAAU/5J,iBACd10C,OA9BDyiC,EAAWwpC,WAgCfumG,wBAAyB,WACvB,IAAI1wK,EAAc9B,KAAKyI,OACnBlI,EAAOuB,EAAYtB,UACnB27I,EAAYJ,EAAmBj6I,GAC/BmxK,EAAW,CAAC92B,EAAWA,GAC3B57I,EAAKo+C,mBAAkB,SAAUlzB,EAAIvb,GACnCub,EAAGzL,KAAK,QAASizJ,OAGrBv+H,aAAc,SAAU5yC,GACtBusM,EAAWvsM,EAAYykC,WAAYw1G,EAAmBj6I,IAEtD9B,KAAK8iI,YAAYpuF,eAEjB10C,KAAKyuM,UAAU/5J,gBAEjBrS,OAAQ,SAAUviC,EAASyG,GACzBvG,KAAK8iI,aAAe9iI,KAAK8iI,YAAYzgG,SACrCriC,KAAKyuM,WAAazuM,KAAKyuM,UAAUpsK,YAIrC3/B,EAAOC,QAAUpD,G,qBCzZjB,IAAI4yC,EAAO,EAAQ,QAEflP,EAAS,EAAQ,QAKjBstI,EAAmBp+H,EAAKjN,eACxBszB,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IAKnB,SAASlE,EAAa9G,EAAGC,EAAGlE,EAAO0K,GAC7B1K,EAAQ,IACViE,GAAQjE,EACRA,GAASA,GAGP0K,EAAS,IACXxG,GAAQwG,EACRA,GAAUA,GAOZlM,KAAKyF,EAAIA,EAKTzF,KAAK0F,EAAIA,EAKT1F,KAAKwB,MAAQA,EAKbxB,KAAKkM,OAASA,EAGhBK,EAAauB,UAAY,CACvBC,YAAaxB,EAKbkqG,MAAO,SAAUwoE,GACf,IAAIx5K,EAAI+yD,EAAQymH,EAAMx5K,EAAGzF,KAAKyF,GAC1BC,EAAI8yD,EAAQymH,EAAMv5K,EAAG1F,KAAK0F,GAC9B1F,KAAKwB,MAAQi3D,EAAQwmH,EAAMx5K,EAAIw5K,EAAMz9K,MAAOxB,KAAKyF,EAAIzF,KAAKwB,OAASiE,EACnEzF,KAAKkM,OAASusD,EAAQwmH,EAAMv5K,EAAIu5K,EAAM/yK,OAAQlM,KAAK0F,EAAI1F,KAAKkM,QAAUxG,EACtE1F,KAAKyF,EAAIA,EACTzF,KAAK0F,EAAIA,GAOXw/B,eAAgB,WACd,IAAIq8J,EAAK,GACLC,EAAK,GACL6N,EAAK,GACLC,EAAK,GACT,OAAO,SAAUt6L,GAIf,GAAKA,EAAL,CAIAusL,EAAG,GAAK8N,EAAG,GAAKrvM,KAAKyF,EACrB87L,EAAG,GAAK+N,EAAG,GAAKtvM,KAAK0F,EACrB87L,EAAG,GAAK8N,EAAG,GAAKtvM,KAAKyF,EAAIzF,KAAKwB,MAC9BggM,EAAG,GAAK6N,EAAG,GAAKrvM,KAAK0F,EAAI1F,KAAKkM,OAC9BqkK,EAAiBgxB,EAAIA,EAAIvsL,GACzBu7J,EAAiBixB,EAAIA,EAAIxsL,GACzBu7J,EAAiB8+B,EAAIA,EAAIr6L,GACzBu7J,EAAiB++B,EAAIA,EAAIt6L,GACzBhV,KAAKyF,EAAI+yD,EAAQ+oI,EAAG,GAAIC,EAAG,GAAI6N,EAAG,GAAIC,EAAG,IACzCtvM,KAAK0F,EAAI8yD,EAAQ+oI,EAAG,GAAIC,EAAG,GAAI6N,EAAG,GAAIC,EAAG,IACzC,IAAIC,EAAO92I,EAAQ8oI,EAAG,GAAIC,EAAG,GAAI6N,EAAG,GAAIC,EAAG,IACvCE,EAAO/2I,EAAQ8oI,EAAG,GAAIC,EAAG,GAAI6N,EAAG,GAAIC,EAAG,IAC3CtvM,KAAKwB,MAAQ+tM,EAAOvvM,KAAKyF,EACzBzF,KAAKkM,OAASsjM,EAAOxvM,KAAK0F,IA1Bd,GAmChB6I,mBAAoB,SAAU+I,GAC5B,IAAID,EAAIrX,KACJokC,EAAK9sB,EAAE9V,MAAQ6V,EAAE7V,MACjB6iC,EAAK/sB,EAAEpL,OAASmL,EAAEnL,OAClB8I,EAAIiuB,EAAOW,SAKf,OAHAX,EAAO2gB,UAAU5uC,EAAGA,EAAG,EAAEqC,EAAE5R,GAAI4R,EAAE3R,IACjCu9B,EAAOx0B,MAAMuG,EAAGA,EAAG,CAACovB,EAAIC,IACxBpB,EAAO2gB,UAAU5uC,EAAGA,EAAG,CAACsC,EAAE7R,EAAG6R,EAAE5R,IACxBsP,GAOTu3B,UAAW,SAAUj1B,GACnB,IAAKA,EACH,OAAO,EAGHA,aAAa/K,IAEjB+K,EAAI/K,EAAaq3B,OAAOtsB,IAG1B,IAAID,EAAIrX,KACJyvM,EAAMp4L,EAAE5R,EACRiqM,EAAMr4L,EAAE5R,EAAI4R,EAAE7V,MACdmuM,EAAMt4L,EAAE3R,EACRkqM,EAAMv4L,EAAE3R,EAAI2R,EAAEnL,OACd2jM,EAAMv4L,EAAE7R,EACRqqM,EAAMx4L,EAAE7R,EAAI6R,EAAE9V,MACduuM,EAAMz4L,EAAE5R,EACRsqM,EAAM14L,EAAE5R,EAAI4R,EAAEpL,OAClB,QAASwjM,EAAMG,GAAOC,EAAML,GAAOG,EAAMG,GAAOC,EAAML,IAExDzhM,QAAS,SAAUzI,EAAGC,GACpB,IAAIsG,EAAOhM,KACX,OAAOyF,GAAKuG,EAAKvG,GAAKA,GAAKuG,EAAKvG,EAAIuG,EAAKxK,OAASkE,GAAKsG,EAAKtG,GAAKA,GAAKsG,EAAKtG,EAAIsG,EAAKE,QAMtFxE,MAAO,WACL,OAAO,IAAI6E,EAAavM,KAAKyF,EAAGzF,KAAK0F,EAAG1F,KAAKwB,MAAOxB,KAAKkM,SAM3D63B,KAAM,SAAUk7I,GACdj/K,KAAKyF,EAAIw5K,EAAMx5K,EACfzF,KAAK0F,EAAIu5K,EAAMv5K,EACf1F,KAAKwB,MAAQy9K,EAAMz9K,MACnBxB,KAAKkM,OAAS+yK,EAAM/yK,QAEtBy6J,MAAO,WACL,MAAO,CACLlhK,EAAGzF,KAAKyF,EACRC,EAAG1F,KAAK0F,EACRlE,MAAOxB,KAAKwB,MACZ0K,OAAQlM,KAAKkM,UAanBK,EAAaq3B,OAAS,SAAU53B,GAC9B,OAAO,IAAIO,EAAaP,EAAKvG,EAAGuG,EAAKtG,EAAGsG,EAAKxK,MAAOwK,EAAKE,SAG3D,IAAI3M,EAAWgN,EACf7J,EAAOC,QAAUpD,G,qBCtLjB,IAAIA,EAA6B,qBAAXqtB,SAA2BA,OAAOguE,uBAAyBhuE,OAAOguE,sBAAsB/1F,KAAK+nB,SACnHA,OAAOqjL,yBAA2BrjL,OAAOqjL,wBAAwBprM,KAAK+nB,SAAWA,OAAOsjL,0BAA4BtjL,OAAOujL,8BAAgC,SAAU1kF,GACnKp9F,WAAWo9F,EAAM,KAGnB/oH,EAAOC,QAAUpD,G,uBCejB,IAAIL,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cAuB1B,SAASG,EAASq1B,GAChB,MAAO,CACLm6D,gBAAiB,SAAUjvF,GAEzB,IAAIqmF,EAAe,GACfiqH,EAAiBhxM,IAKrB,OAJAU,EAAQumC,iBAAiBzR,GAAY,SAAU9yB,GAC7CA,EAAYuuM,eAAiBlqH,EAC7BiqH,EAAe7tM,IAAIT,EAAYmG,IAAKnG,MAE/BsuM,GAETt7K,MAAO,SAAUhzB,EAAahC,GAC5B,IAAIwwM,EAAUxuM,EAAYsH,aACtBivK,EAAS,GACT93K,EAAOuB,EAAYtB,UACvBD,EAAKpB,MAAK,SAAU+Q,GAClB,IAAIwmJ,EAASn2J,EAAKO,YAAYoP,GAC9BmoK,EAAO3hB,GAAUxmJ,KAEnBogM,EAAQnxM,MAAK,SAAUu3J,GACrB,IAIIv1I,EAJAovL,EAAcl4B,EAAO3hB,GAErB85C,EAAiC,MAAfD,GAAuBhwM,EAAKohB,cAAc4uL,EAAa,SAAS,GAClFE,EAAuC,MAAfF,GAAuBhwM,EAAKohB,cAAc4uL,EAAa,eAAe,GAQlG,GALKC,GAAoBC,IAEvBtvL,EAAYmvL,EAAQlvL,aAAas1I,KAG9B85C,EAAiB,CACpB,IAAI54L,EAAQuJ,EAAUjf,IAAI,oBAAsBJ,EAAYykF,oBAAoB+pH,EAAQrzJ,QAAQy5G,IAAWA,EAAS,GAAI50J,EAAYuuM,eAAgBC,EAAQnuL,SAEzI,MAAfouL,GACFhwM,EAAKihB,cAAc+uL,EAAa,QAAS34L,GAI7C,IAAK64L,EAAuB,CAC1B,IAAItlM,EAAcgW,EAAUjf,IAAI,yBAEb,MAAfquM,GACFhwM,EAAKihB,cAAc+uL,EAAa,cAAeplM,SAQ3DzI,EAAOC,QAAUpD,G,uBC7EjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB4tH,EAAc,EAAQ,QAoBtB9/G,EAAK/E,KAAK+E,GAUd,SAASrR,EAASgH,EAAK+8B,GACrBA,EAAOA,GAAQ,GACf1gC,EAAO6O,SAAS6xB,EAAM,CACpB39B,KAAM,UACNi7K,UAAW,OACXl3J,SAAU,OACVgnL,UAAW,2BACXC,aAAa,EACb/4L,MAAO,UACPg5L,cAAe,GACfl4H,UAAW,EACX13E,OAAQ,IAEV,IAAIsC,EAAQ,IAAIR,EAAQ6B,MACpBksM,EAAO,IAAI/tM,EAAQyO,KAAK,CAC1B/L,MAAO,CACLkM,KAAM4xB,EAAKotK,WAEb1vM,OAAQsiC,EAAKtiC,OACbC,EAAG,MAELqC,EAAMgC,IAAIurM,GACV,IAAIjoK,EAAOtF,EAAK5Z,SAAW,cACvBq8E,EAAY,IAAIjjG,EAAQyO,KAAK,CAC/B/L,MAAO,CACLkM,KAAM,OACN/L,KAAM29B,EAAK39B,KACXijC,KAAMA,EACN+kC,aAAc,QACdI,aAAc,GACdlqE,SAAUy/B,EAAKs9I,WAEjB5/K,OAAQsiC,EAAKtiC,OACbC,EAAG,QAIL,GAFAqC,EAAMgC,IAAIygG,GAENziE,EAAKqtK,YAAa,CACpB,IAAI91I,EAAM,IAAI/3D,EAAQqkE,IAAI,CACxB31D,MAAO,CACLswC,YAAalxC,EAAK,EAClBmxC,UAAWnxC,EAAK,EAAI,GACpBiD,EAAGyvB,EAAKstK,eAEVprM,MAAO,CACLq5C,OAAQvb,EAAK1rB,MACb42F,QAAS,QACT91B,UAAWp1C,EAAKo1C,WAElB13E,OAAQsiC,EAAKtiC,OACbC,EAAG,QAEL45D,EAAIi2I,cAAa,GAAMl0L,KAAK,IAAM,CAChCmlC,SAAe,EAALnxC,EAAS,IAClB2D,MAAM,iBACTsmD,EAAIi2I,cAAa,GAAMl0L,KAAK,IAAM,CAChCklC,WAAiB,EAALlxC,EAAS,IACpBuL,MAAM,KAAK5H,MAAM,iBACpBjR,EAAMgC,IAAIu1D,GA+BZ,OA3BAv3D,EAAM25E,OAAS,WACb,IAAI/N,EAAYwhD,EAAY1kG,SAASsX,EAAK39B,KAAMijC,GAC5C/0B,EAAIyvB,EAAKqtK,YAAcrtK,EAAKstK,cAAgB,EAG5CxyJ,GAAM73C,EAAIylB,WAAiB,EAAJnY,GAASyvB,EAAKqtK,aAAezhI,EAAY,GAAK,GAAKA,GAAa,GACxF5rC,EAAKqtK,YAAc,EAAIzhI,EAAY,GAClC7wB,EAAK93C,EAAI0lB,YAAc,EAC3BqX,EAAKqtK,aAAe91I,EAAI1M,SAAS,CAC/B/P,GAAIA,EACJC,GAAIA,IAEN0nD,EAAU53C,SAAS,CACjB1oD,EAAG24C,EAAKvqC,EACRnO,EAAG24C,EAAKxqC,EACRrS,MAAW,EAAJqS,EACP3H,OAAY,EAAJ2H,IAEVg9L,EAAK1iJ,SAAS,CACZ1oD,EAAG,EACHC,EAAG,EACHlE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,eAIhB3oB,EAAM25E,SACC35E,EAGTZ,EAAOC,QAAUpD,G,uBC9HjB,IAAIg2G,EAAkB,EAAQ,QAoB1Bn2D,EAAem2D,EAAgB,CAAC,CAAC,OAAQ,SAAU,CAAC,cAAe,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,WAAY,CAAC,iBACvHh2G,EAAW,CACb6/C,aAAc,SAAUkmC,EAAUC,GAChC,OAAOnmC,EAAap/C,KAAMslF,EAAUC,KAGxC7iF,EAAOC,QAAUpD,G,uBC9CjB,IAAI2pI,EAAU,EAAQ,QAElB6nE,EAAQ7nE,EAAQx4H,IAChBsgM,EAAQ9nE,EAAQz4H,IAChBwgM,EAAU/nE,EAAQz6H,MAClBwrJ,EAAa/wB,EAAQt/E,SACrBsnJ,EAAQhoE,EAAQ5jI,IAChB6rM,EAAUjoE,EAAQxhI,MAClB0pM,EAAQloE,EAAQ/e,IAqBpB,SAAS5qH,EAASgY,EAAQ3V,EAAQu4J,EAAQk3C,GACxC,IAIIC,EACAC,EACA7gM,EACAD,EAPA+gM,EAAM,GACNrrL,EAAI,GACJ5M,EAAK,GACL0rB,EAAK,GAMT,GAAIosK,EAAY,CACd3gM,EAAM,CAACqC,IAAUA,KACjBtC,EAAM,EAAEsC,KAAWA,KAEnB,IAAK,IAAI9E,EAAI,EAAGqK,EAAMf,EAAOtM,OAAQgD,EAAIqK,EAAKrK,IAC5C8iM,EAAMrgM,EAAKA,EAAK6G,EAAOtJ,IACvB+iM,EAAMvgM,EAAKA,EAAK8G,EAAOtJ,IAIzB8iM,EAAMrgM,EAAKA,EAAK2gM,EAAW,IAC3BL,EAAMvgM,EAAKA,EAAK4gM,EAAW,IAG7B,IAASpjM,EAAI,EAAGqK,EAAMf,EAAOtM,OAAQgD,EAAIqK,EAAKrK,IAAK,CACjD,IAAIqpB,EAAQ/f,EAAOtJ,GAEnB,GAAIksJ,EACFm3C,EAAY/5L,EAAOtJ,EAAIA,EAAI,EAAIqK,EAAM,GACrCi5L,EAAYh6L,GAAQtJ,EAAI,GAAKqK,OACxB,CACL,GAAU,IAANrK,GAAWA,IAAMqK,EAAM,EAAG,CAC5Bk5L,EAAI3wM,KAAKswM,EAAQ55L,EAAOtJ,KACxB,SAEAqjM,EAAY/5L,EAAOtJ,EAAI,GACvBsjM,EAAYh6L,EAAOtJ,EAAI,GAI3BmjM,EAAMjrL,EAAGorL,EAAWD,GAEpBL,EAAQ9qL,EAAGA,EAAGvkB,GACd,IAAI6vM,EAAKx3C,EAAW3iI,EAAOg6K,GACvBnmE,EAAK8uB,EAAW3iI,EAAOi6K,GACvBtnM,EAAMwnM,EAAKtmE,EAEH,IAARlhI,IACFwnM,GAAMxnM,EACNkhI,GAAMlhI,GAGRgnM,EAAQ13L,EAAI4M,GAAIsrL,GAChBR,EAAQhsK,EAAI9e,EAAGglH,GACf,IAAIumE,EAAMR,EAAM,GAAI55K,EAAO/d,GACvB26B,EAAMg9J,EAAM,GAAI55K,EAAO2N,GAEvBosK,IACFL,EAAMU,EAAKA,EAAKhhM,GAChBqgM,EAAMW,EAAKA,EAAKjhM,GAChBugM,EAAM98J,EAAKA,EAAKxjC,GAChBqgM,EAAM78J,EAAKA,EAAKzjC,IAGlB+gM,EAAI3wM,KAAK6wM,GACTF,EAAI3wM,KAAKqzC,GAOX,OAJIimH,GACFq3C,EAAI3wM,KAAK2wM,EAAI1sI,SAGR0sI,EAGT9uM,EAAOC,QAAUpD,G,uBCpFjB,IAAIqD,EAAS,EAAQ,QAEjB2J,EAAe,EAAQ,QAEvBsX,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aACvBg/E,EAAmB3vF,EAAQ2vF,iBAE3BvwG,EAAS,EAAQ,QAEjBC,EAAS,EAAQ,QA8BjBu1D,EAAU5sD,KAAK4E,IACf+nD,EAAU3sD,KAAK6E,IACfihM,EAAgB/uM,EAAO0B,SACvBnF,EAAOyD,EAAOzD,KACdyyM,EAAoB,CAAC,YAAa,eAClCC,EAAiB,CAAC,YAAa,YAC/BC,EAAwB,CAAC,aAAc,QACvCC,EAA0B,CAAC,aAAc,UAKzCxyM,EAAW,CACbq1B,WAAY,UACZE,MAAO,SAAUhzB,EAAahC,EAASyG,EAAK23B,GAG1C,IAAI8zK,EAAUzrM,EAAIylB,WACdimL,EAAW1rM,EAAI0lB,YACfsiB,EAAezsC,EAAYjC,OAC3Bg+D,EAAa56D,EAAOk/C,cAAcrgD,EAAYgkE,qBAAsB,CACtEtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAEV3f,EAAOiiC,EAAajiC,MAAQ,GAE5B4lM,EAAiB19K,EAAam9K,EAAc9zI,EAAWr8D,MAAO8K,EAAK,IAAK0lM,GACxEG,EAAkB39K,EAAam9K,EAAc9zI,EAAW3xD,OAAQI,EAAK,IAAK2lM,GAE1E3oF,EAAcprF,GAAWA,EAAQz+B,KACjC4gI,EAAQ,CAAC,oBAAqB,qBAC9BC,EAAap9H,EAAOq9H,mBAAmBriG,EAASmiG,EAAOv+H,GACvDswM,EAA2B,kBAAhB9oF,GAAmD,gBAAhBA,EAAgCprF,EAAQk0K,SAAW,KACjGlqG,EAAWpmG,EAAYglG,cACvBurG,EAAgBnvM,EAAOo6I,cAAcp1C,GAEzC,GAAoB,gBAAhBohB,EAA+B,CACjC,IAAIgpF,EAA2B,sBAAhBhpF,EAAsCipF,EAAiBzwM,EAAaw+H,EAAYp4B,EAAUgqG,EAAgBC,GAAmBC,EAAW,CAACA,EAAS5wM,MAAO4wM,EAASlmM,QAAU,CAACgmM,EAAgBC,GACxMtnM,EAAO0jC,EAAa1jC,KAEpBA,GAAiB,QAATA,GAA2B,SAATA,IAC5BA,EAAO,QAGT,IAAI8U,EAAU,CACZgmL,YAAap3J,EAAao3J,YAC1B96L,KAAMA,EACN+6L,UAAWr3J,EAAaq3J,WAG1B19F,EAASxpF,SAAS0D,eAKlB,IAAIowL,EAAiB,CACnB/sM,EAAG,EACHC,EAAG,EACHlE,MAAO8wM,EAAS,GAChBpmM,OAAQomM,EAAS,GACjBl8J,KAAMk8J,EAAS,GAAKA,EAAS,IAE/BpqG,EAAStnF,UAAU4xL,GACnBC,EAASvqG,EAAUvoF,GAAS,EAAO,GAE/B6yL,EAAiBtqG,EAASnnF,YAC9B5hB,EAAKkzM,GAAe,SAAU7yL,EAAMrY,GAClC,IAAIw/L,GAAc0L,EAAclrM,EAAQ,IAAM+gG,GAAUznF,WACxDjB,EAAKoB,UAAUhe,EAAOpD,OAAO,CAC3B8lB,WAAY,CAACqhL,EAAYA,GACzBv7L,YAAa,EACbsnM,YAAa,GACZF,OAIP,IAAI9pG,EAAW5mG,EAAYtB,UAAUkiB,KAAKxD,KAC1CwpF,EAAS9nF,UAAU+xL,EAAsB90I,EAAYu0I,EAAU9xE,IAAa,GAC5Ex+H,EAAYykM,cAAc1oI,GAG1B+0I,EAASlqG,EACT,IAAIn8F,GAAcsxD,EAAWp4D,GAAIo4D,EAAWn4D,EAAGssM,EAASC,GAAWI,EAAenqG,EAAU,KAsBhG,SAASuqG,EAASjzL,EAAMG,EAASkzL,EAAcl0L,GAC7C,IAAInd,EACA0K,EAEJ,IAAIsT,EAAKC,YAAT,CAIA,IAAIqzL,EAAatzL,EAAKuB,YACtBvf,EAAQsxM,EAAWtxM,MACnB0K,EAAS4mM,EAAW5mM,OAEpB,IAAI82L,EAAYxjL,EAAKyB,WACjB7V,EAAc43L,EAAU9gM,IAAI0vM,GAC5BmB,EAAe/P,EAAU9gM,IAAI2vM,GAAkB,EAC/CmB,EAAmBC,EAAoBjQ,GACvC0P,EAAc7mM,KAAK4E,IAAIrF,EAAa4nM,GACpCE,EAAe9nM,EAAc2nM,EAC7BI,EAAoBT,EAAcK,EAClC/P,EAAYxjL,EAAKyB,WACrBzB,EAAKoB,UAAU,CACbxV,YAAaA,EACbsnM,YAAaA,EACbM,iBAAkBA,IACjB,GACHxxM,EAAQi3D,EAAQj3D,EAAQ,EAAI0xM,EAAc,GAC1ChnM,EAASusD,EAAQvsD,EAASgnM,EAAeC,EAAmB,GAC5D,IAAIC,EAAY5xM,EAAQ0K,EACpB4S,EAAeu0L,EAAa7zL,EAAMwjL,EAAWoQ,EAAWzzL,EAASkzL,EAAcl0L,GAEnF,GAAKG,EAAa7T,OAAlB,CAIA,IAAIe,EAAO,CACTvG,EAAGytM,EACHxtM,EAAGytM,EACH3xM,MAAOA,EACP0K,OAAQA,GAENonM,EAAiB96I,EAAQh3D,EAAO0K,GAChCqnM,EAAOxgM,IAEPi/B,EAAM,GACVA,EAAIoE,KAAO,EAEX,IAAK,IAAInoC,EAAI,EAAGqK,EAAMwG,EAAa7T,OAAQgD,EAAIqK,GAAM,CACnD,IAAIiH,EAAQT,EAAa7Q,GACzB+jC,EAAInxC,KAAK0e,GACTyyB,EAAIoE,MAAQ72B,EAAMwB,YAAYq1B,KAC9B,IAAIo9J,EAAQC,EAAMzhK,EAAKshK,EAAgB3zL,EAAQgmL,aAE3C6N,GAASD,GACXtlM,IACAslM,EAAOC,IAGLxhK,EAAIoE,MAAQpE,EAAIgzB,MAAMjkD,YAAYq1B,KAClCprC,EAASgnC,EAAKshK,EAAgBtnM,EAAM+mM,GAAc,GAClDO,EAAiB96I,EAAQxsD,EAAKxK,MAAOwK,EAAKE,QAC1C8lC,EAAI/mC,OAAS+mC,EAAIoE,KAAO,EACxBm9J,EAAOxgM,KAQb,GAJIi/B,EAAI/mC,QACND,EAASgnC,EAAKshK,EAAgBtnM,EAAM+mM,GAAc,IAG/CF,EAAc,CACjB,IAAIzM,EAAqBpD,EAAU9gM,IAAI,sBAEb,MAAtBkkM,GAA8BgN,EAAYhN,IAC5CyM,GAAe,GAInB,IAAS5kM,EAAI,EAAGqK,EAAMwG,EAAa7T,OAAQgD,EAAIqK,EAAKrK,IAClDwkM,EAAS3zL,EAAa7Q,GAAI0R,EAASkzL,EAAcl0L,EAAQ,KAQ7D,SAAS00L,EAAa7zL,EAAMwjL,EAAWoQ,EAAWzzL,EAASkzL,EAAcl0L,GACvE,IAAIG,EAAeU,EAAKX,UAAY,GAChC60L,EAAU/zL,EAAQ9U,KACV,QAAZ6oM,GAAiC,SAAZA,IAAuBA,EAAU,MACtD,IAAIC,EAAqC,MAArBh0L,EAAQimL,WAAqBjmL,EAAQimL,WAAajnL,EAEtE,GAAIk0L,IAAiBc,EACnB,OAAOn0L,EAAKV,aAAe,GAI7BA,EAAelc,EAAOyuD,OAAOvyC,GAAc,SAAUS,GACnD,OAAQA,EAAME,eAEhB5U,EAAKiU,EAAc40L,GACnB,IAAIp9H,EAAOs9H,EAAU5Q,EAAWlkL,EAAc40L,GAE9C,GAAiB,IAAbp9H,EAAKrsE,IACP,OAAOuV,EAAKV,aAAe,GAK7B,GAFAw3D,EAAKrsE,IAAM4pM,EAAkB7Q,EAAWoQ,EAAW98H,EAAKrsE,IAAKypM,EAAS50L,GAErD,IAAbw3D,EAAKrsE,IACP,OAAOuV,EAAKV,aAAe,GAI7B,IAAK,IAAI7Q,EAAI,EAAGqK,EAAMwG,EAAa7T,OAAQgD,EAAIqK,EAAKrK,IAAK,CACvD,IAAImoC,EAAOt3B,EAAa7Q,GAAGwS,WAAa61D,EAAKrsE,IAAMmpM,EAEnDt0L,EAAa7Q,GAAG2S,UAAU,CACxBw1B,KAAMA,IAeV,OAXIu9J,IACF70L,EAAa7T,QAAUuU,EAAKoB,UAAU,CACpCkzL,YAAY,IACX,GACHh1L,EAAa7T,OAAS,GAGxBuU,EAAKV,aAAeA,EACpBU,EAAKoB,UAAU,CACb0E,WAAYgxD,EAAKhxD,aAChB,GACIxG,EAOT,SAAS+0L,EAAkB7Q,EAAWoQ,EAAWnpM,EAAKypM,EAASK,GAE7D,IAAKL,EACH,OAAOzpM,EAOT,IAJA,IAAIk8L,EAAanD,EAAU9gM,IAAI,cAC3BoW,EAAMy7L,EAAgB9oM,OACtB+oM,EAAc17L,EAETrK,EAAIqK,EAAM,EAAGrK,GAAK,EAAGA,IAAK,CACjC,IAAIN,EAAQomM,EAA4B,QAAZL,EAAoBp7L,EAAMrK,EAAI,EAAIA,GAAGwS,WAE7D9S,EAAQ1D,EAAMmpM,EAAYjN,IAC5B6N,EAAc/lM,EACdhE,GAAO0D,GAKX,MADY,QAAZ+lM,EAAoBK,EAAgB99I,OAAO,EAAG39C,EAAM07L,GAAeD,EAAgB99I,OAAO+9I,EAAa17L,EAAM07L,GACtG/pM,EAOT,SAASY,EAAKiU,EAAc40L,GAQ1B,OAPIA,GACF50L,EAAajU,MAAK,SAAUwM,EAAGC,GAC7B,IAAI2iB,EAAmB,QAAZy5K,EAAoBr8L,EAAEoJ,WAAanJ,EAAEmJ,WAAanJ,EAAEmJ,WAAapJ,EAAEoJ,WAC9E,OAAgB,IAATwZ,EAAyB,QAAZy5K,EAAoBr8L,EAAEzW,UAAY0W,EAAE1W,UAAY0W,EAAE1W,UAAYyW,EAAEzW,UAAYq5B,KAI7Fnb,EAOT,SAAS80L,EAAU5Q,EAAWnkL,EAAU60L,GAItC,IAFA,IAAIzpM,EAAM,EAEDgE,EAAI,EAAGqK,EAAMuG,EAAS5T,OAAQgD,EAAIqK,EAAKrK,IAC9ChE,GAAO4U,EAAS5Q,GAAGwS,WAOrB,IAAIC,EAAYsiL,EAAU9gM,IAAI,mBAG9B,GAAK2c,GAAaA,EAAS5T,OAEpB,GAAkB,UAAdyV,GAAyBgzL,EAClCpuL,EAAa,CAACzG,EAASA,EAAS5T,OAAS,GAAGwV,WAAY5B,EAAS,GAAG4B,YACxD,QAAZizL,GAAqBpuL,EAAWje,cAE7B,CACD,IAAIie,EAAa,CAACvS,KAAWA,KAC7B5T,EAAK0f,GAAU,SAAUU,GACvB,IAAI5R,EAAQ4R,EAAMkB,SAASC,GAC3B/S,EAAQ2X,EAAW,KAAOA,EAAW,GAAK3X,GAC1CA,EAAQ2X,EAAW,KAAOA,EAAW,GAAK3X,WAV9C2X,EAAa,CAAC+R,IAAKA,KAcrB,MAAO,CACLptB,IAAKA,EACLqb,WAAYA,GAShB,SAASmuL,EAAMzhK,EAAKshK,EAAgB13J,GAIlC,IAHA,IAGgBxF,EAHZ69J,EAAU,EACVC,EAAUnhM,IAEL9E,EAAI,EAASqK,EAAM05B,EAAI/mC,OAAQgD,EAAIqK,EAAKrK,IAC/CmoC,EAAOpE,EAAI/jC,GAAG8S,YAAYq1B,KAEtBA,IACFA,EAAO89J,IAAYA,EAAU99J,GAC7BA,EAAO69J,IAAYA,EAAU79J,IAIjC,IAAI+9J,EAAaniK,EAAIoE,KAAOpE,EAAIoE,KAC5BgoC,EAAIk1H,EAAiBA,EAAiB13J,EAC1C,OAAOu4J,EAAa17I,EAAQ2lB,EAAI61H,EAAUE,EAAYA,GAAc/1H,EAAI81H,IAAYnhM,IAOtF,SAAS/H,EAASgnC,EAAKshK,EAAgBtnM,EAAM+mM,EAAcxwF,GASzD,IAAI6xF,EAAYd,IAAmBtnM,EAAKxK,MAAQ,EAAI,EAChD6yM,EAAY,EAAID,EAChBjrK,EAAK,CAAC,IAAK,KACXD,EAAK,CAAC,QAAS,UACfvN,EAAO3vB,EAAKm9B,EAAGirK,IACfE,EAAiBhB,EAAiBthK,EAAIoE,KAAOk9J,EAAiB,GAE9D/wF,GAAS+xF,EAAiBtoM,EAAKk9B,EAAGmrK,OACpCC,EAAiBtoM,EAAKk9B,EAAGmrK,KAG3B,IAAK,IAAIpmM,EAAI,EAAGsmM,EAASviK,EAAI/mC,OAAQgD,EAAIsmM,EAAQtmM,IAAK,CACpD,IAAIuR,EAAOwyB,EAAI/jC,GACXg1L,EAAa,GACbrhI,EAAO0yI,EAAiB90L,EAAKuB,YAAYq1B,KAAOk+J,EAAiB,EACjEE,EAAMvR,EAAW/5J,EAAGmrK,IAAc57I,EAAQ67I,EAAiB,EAAIvB,EAAc,GAE7E0B,EAASzoM,EAAKm9B,EAAGirK,IAAcpoM,EAAKk9B,EAAGkrK,IAAcz4K,EACrD+4K,EAAQzmM,IAAMsmM,EAAS,GAAKE,EAAS7yI,EAAO6yI,EAAS7yI,EACrD+yI,EAAM1R,EAAW/5J,EAAGkrK,IAAc37I,EAAQi8I,EAAQ,EAAI3B,EAAc,GACxE9P,EAAW95J,EAAGkrK,IAAcroM,EAAKm9B,EAAGkrK,IAAc77I,EAAQu6I,EAAcyB,EAAM,GAC9EvR,EAAW95J,EAAGirK,IAAcz4K,EAAO68B,EAAQu6I,EAAc4B,EAAM,GAC/Dh5K,GAAQ+4K,EACRl1L,EAAKoB,UAAUqiL,GAAY,GAG7Bj3L,EAAKm9B,EAAGkrK,KAAeC,EACvBtoM,EAAKk9B,EAAGmrK,KAAeC,EAIzB,SAAS/B,EAAiBzwM,EAAaw+H,EAAYp4B,EAAUgqG,EAAgBC,GAG3E,IAOItwL,EAPA+yL,GAAYt0E,GAAc,IAAI9gH,KAC9Bq1L,EAAc,CAAC3C,EAAgBC,GAEnC,IAAKyC,GAAYA,IAAa1sG,EAC5B,OAAO2sG,EAIT,IAAIC,EAAW5C,EAAiBC,EAC5B/7J,EAAO0+J,EAAWhzM,EAAYjC,OAAOimM,gBAEzC,MAAOjkL,EAAS+yL,EAASh2L,WAAY,CAKnC,IAHA,IAAI3U,EAAM,EACNk7D,EAAWtjD,EAAOhD,SAEb5Q,EAAI,EAAGqK,EAAM6sD,EAASl6D,OAAQgD,EAAIqK,EAAKrK,IAC9ChE,GAAOk7D,EAASl3D,GAAGwS,WAGrB,IAAIs0L,EAAgBH,EAASn0L,WAE7B,GAAsB,IAAlBs0L,EACF,OAAOF,EAGTz+J,GAAQnsC,EAAM8qM,EAEd,IAAI71J,EAAcr9B,EAAOZ,WACrB7V,EAAc8zC,EAAYh9C,IAAI0vM,GAC9Bc,EAAc7mM,KAAK4E,IAAIrF,EAAa6nM,EAAoB/zJ,EAAa9zC,IACzEgrC,GAAQ,EAAIhrC,EAAcA,GAAe,EAAIA,EAAcsnM,GAAe7mM,KAAKqyE,IAAI9nC,EAAM,IACzFA,EAAOo9D,IAAqBp9D,EAAOo9D,GACnCohG,EAAW/yL,EAGbu0B,EAAO0+J,IAAa1+J,EAAO0+J,GAC3B,IAAIrmM,EAAQ5C,KAAKqyE,IAAI9nC,EAAO0+J,EAAU,IACtC,MAAO,CAAC5C,EAAiBzjM,EAAO0jM,EAAkB1jM,GAIpD,SAASkkM,EAAsB90I,EAAYu0I,EAAU9xE,GACnD,GAAI8xE,EACF,MAAO,CACL3sM,EAAG2sM,EAAS3sM,EACZC,EAAG0sM,EAAS1sM,GAIhB,IAAIsvM,EAAkB,CACpBvvM,EAAG,EACHC,EAAG,GAGL,IAAK46H,EACH,OAAO00E,EAMT,IAAIvsG,EAAa63B,EAAW9gH,KACxBvc,EAASwlG,EAAW1nF,YAExB,IAAK9d,EACH,OAAO+xM,EAIT,IAAIC,EAAe,CAAChyM,EAAOzB,MAAQ,EAAGyB,EAAOiJ,OAAS,GAClDsT,EAAOipF,EAEX,MAAOjpF,EAAM,CACX,IAAIyjL,EAAazjL,EAAKuB,YACtBk0L,EAAa,IAAMhS,EAAWx9L,EAC9BwvM,EAAa,IAAMhS,EAAWv9L,EAC9B8Z,EAAOA,EAAKZ,WAGd,MAAO,CACLnZ,EAAGo4D,EAAWr8D,MAAQ,EAAIyzM,EAAa,GACvCvvM,EAAGm4D,EAAW3xD,OAAS,EAAI+oM,EAAa,IAM5C,SAASrC,EAASpzL,EAAM01L,EAAU7C,EAAenqG,EAAUvpF,GACzD,IAAIskL,EAAazjL,EAAKuB,YAClBo0L,EAAsB9C,EAAc1zL,GACpCy2L,EAAkBD,GAAuBA,IAAwB31L,EAErE,KAAI21L,IAAwBC,GAAmBz2L,IAAU0zL,EAAcpnM,QAAUuU,IAAS0oF,GAA1F,CAIA1oF,EAAKoB,UAAU,CAEbsiL,UAAU,EAGV14J,WAAY4qK,IAAoBF,EAAS3oK,UAAU02J,GACnDmS,gBAAiBA,IAChB,GAEH,IAAIC,EAAgB,IAAI9oM,EAAa2oM,EAASzvM,EAAIw9L,EAAWx9L,EAAGyvM,EAASxvM,EAAIu9L,EAAWv9L,EAAGwvM,EAAS1zM,MAAO0zM,EAAShpM,QACpH/M,EAAKqgB,EAAKV,cAAgB,IAAI,SAAUS,GACtCqzL,EAASrzL,EAAO81L,EAAehD,EAAenqG,EAAUvpF,EAAQ,OAIpE,SAASs0L,EAAoBnjL,GAC3B,OAAOA,EAAM5tB,IAAI4vM,GAAyBhiL,EAAM5tB,IAAI6vM,GAA2B,EAGjFrvM,EAAOC,QAAUpD,G,qBCrjBjB,IAAIoqB,EAAQ9d,KAAK8d,MAiBjB,SAASs/C,EAAqBqsI,EAAaC,EAAY/vM,GACrD,GAAK+vM,EAAL,CAIA,IAAIn7I,EAAKm7I,EAAWn7I,GAChBE,EAAKi7I,EAAWj7I,GAChBD,EAAKk7I,EAAWl7I,GAChBE,EAAKg7I,EAAWh7I,GACpB+6I,EAAYl7I,GAAKA,EACjBk7I,EAAYh7I,GAAKA,EACjBg7I,EAAYj7I,GAAKA,EACjBi7I,EAAY/6I,GAAKA,EACjB,IAAIme,EAAYlzE,GAASA,EAAMkzE,UAE1BA,IAID/uD,EAAW,EAALywC,KAAYzwC,EAAW,EAAL2wC,KAC1Bg7I,EAAYl7I,GAAKk7I,EAAYh7I,GAAKhmC,EAAiB8lC,EAAIse,GAAW,IAGhE/uD,EAAW,EAAL0wC,KAAY1wC,EAAW,EAAL4wC,KAC1B+6I,EAAYj7I,GAAKi7I,EAAY/6I,GAAKjmC,EAAiB+lC,EAAIqe,GAAW,MAoBtE,SAASvP,EAAqBmsI,EAAaC,EAAY/vM,GACrD,GAAK+vM,EAAL,CAIA,IAAI3yK,EAAU2yK,EAAW9vM,EACrBo9B,EAAU0yK,EAAW7vM,EACrB8vM,EAAcD,EAAW/zM,MACzBi0M,EAAeF,EAAWrpM,OAC9BopM,EAAY7vM,EAAIm9B,EAChB0yK,EAAY5vM,EAAIm9B,EAChByyK,EAAY9zM,MAAQg0M,EACpBF,EAAYppM,OAASupM,EACrB,IAAI/8H,EAAYlzE,GAASA,EAAMkzE,UAE1BA,IAIL48H,EAAY7vM,EAAI6uB,EAAiBsO,EAAS81C,GAAW,GACrD48H,EAAY5vM,EAAI4uB,EAAiBuO,EAAS61C,GAAW,GACrD48H,EAAY9zM,MAAQqK,KAAK4E,IAAI6jB,EAAiBsO,EAAU4yK,EAAa98H,GAAW,GAAS48H,EAAY7vM,EAAmB,IAAhB+vM,EAAoB,EAAI,GAChIF,EAAYppM,OAASL,KAAK4E,IAAI6jB,EAAiBuO,EAAU4yK,EAAc/8H,GAAW,GAAS48H,EAAY5vM,EAAoB,IAAjB+vM,EAAqB,EAAI,KAYrI,SAASnhL,EAAiBtpB,EAAU0tE,EAAWg9H,GAC7C,IAAKh9H,EACH,OAAO1tE,EAKT,IAAI2qM,EAAkBhsL,EAAiB,EAAX3e,GAC5B,OAAQ2qM,EAAkBhsL,EAAM+uD,IAAc,IAAM,EAAIi9H,EAAkB,GAAKA,GAAmBD,EAAqB,GAAK,IAAM,EAGpI/yM,EAAQsmE,qBAAuBA,EAC/BtmE,EAAQwmE,qBAAuBA,EAC/BxmE,EAAQ2xB,iBAAmBA,G,uBC5F3B,IAAI1xB,EAAS,EAAQ,QAEjBihB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvB4tB,EAAmB,EAAQ,QAE3BE,EAAqBF,EAAiBE,mBAEtC/tB,EAAsB,EAAQ,QAsB9BqhL,EAAe,cACfC,EAAsB,GACtBnhL,EAAmC,qBAAjBC,aAA+BA,aAAe5c,MAEpE,SAASg5C,EAAiBjvD,GACxB,OAAOA,EAAYI,IAAI,UAAY0zM,EAAe9zM,EAAYi1C,YAGhE,SAASia,EAAWthD,GAClB,OAAOA,EAAKK,IAAML,EAAKvI,MAezB,SAAS2uM,EAAgBtmM,GACvB,IAAI3F,EAAS,GACTiuB,EAAWtoB,EAAIE,KACf8hD,EAAU,QAEd,GAAsB,aAAlB15B,EAASr4B,KAAb,CAMA,IAFA,IAAIu4B,EAAYF,EAASG,eAEhBhqB,EAAI,EAAGA,EAAIuB,EAAI2S,MAAYlU,IAClCpE,EAAOhJ,KAAK+B,EAAO6O,SAAS,CAC1BumB,UAAWA,EACXw5B,QAASA,EACTC,QAASmkJ,EAAe3nM,GACvBuB,IAGL,IAAIumM,EAAkBC,EAAuBnsM,GACzC8c,EAAS,GAEb,IAAS1Y,EAAI,EAAGA,EAAIuB,EAAI2S,MAAOlU,IAAK,CAClC,IAAIzJ,EAAOuxM,EAAgBvkJ,GAASokJ,EAAe3nM,GACnDzJ,EAAK2tI,aAAe3tI,EAAKsQ,OAAStQ,EAAKhD,MAAQ,EAC/CmlB,EAAO9lB,KAAK2D,GAGd,OAAOmiB,GAGT,SAAS89I,EAAuB7vI,EAAY90B,GAC1C,IAAI03E,EAAe,GAOnB,OANA13E,EAAQumC,iBAAiBzR,GAAY,SAAU9yB,GAEzCm0M,EAAcn0M,KAAiBo0M,EAAcp0M,IAC/C01E,EAAa32E,KAAKiB,MAGf01E,EAYT,SAAS2+H,EAAoBxjJ,GAQ3B,IAAIyjJ,EAAa,GACjBxzM,EAAOzD,KAAKwzD,GAAW,SAAU7wD,GAC/B,IAAIq/F,EAAYr/F,EAAYxB,iBACxBw3B,EAAWqpE,EAAUppE,cAEzB,GAAsB,SAAlBD,EAASr4B,MAAqC,UAAlBq4B,EAASr4B,KAQzC,IAJA,IAAIc,EAAOuB,EAAYtB,UACnBuH,EAAM+vB,EAAS/nB,IAAM,IAAM+nB,EAAS3wB,MACpC4I,EAAMxP,EAAKyJ,aAAa8tB,EAAS/nB,KAE5B9B,EAAI,EAAGooM,EAAM91M,EAAK4hB,QAASlU,EAAIooM,IAAOpoM,EAAG,CAChD,IAAIN,EAAQpN,EAAK2B,IAAI6N,EAAK9B,GAErBmoM,EAAWruM,GAKdquM,EAAWruM,GAAKlH,KAAK8M,GAHrByoM,EAAWruM,GAAO,CAAC4F,OAQzB,IAAI2oM,EAAc,GAElB,IAAK,IAAIvuM,KAAOquM,EACd,GAAIA,EAAWr5L,eAAehV,GAAM,CAClC,IAAIwuM,EAAeH,EAAWruM,GAE9B,GAAIwuM,EAAc,CAEhBA,EAAa1rM,MAAK,SAAUwM,EAAGC,GAC7B,OAAOD,EAAIC,KAIb,IAFA,IAAI5G,EAAM,KAED8H,EAAI,EAAGA,EAAI+9L,EAAatrM,SAAUuN,EAAG,CAC5C,IAAIygE,EAAQs9H,EAAa/9L,GAAK+9L,EAAa/9L,EAAI,GAE3CygE,EAAQ,IAEVvoE,EAAc,OAARA,EAAeuoE,EAAQptE,KAAK6E,IAAIA,EAAKuoE,IAK/Cq9H,EAAYvuM,GAAO2I,GAKzB,OAAO4lM,EAGT,SAAS5xC,EAAiB/xG,GACxB,IAAI2jJ,EAAcH,EAAoBxjJ,GAClC6jJ,EAAiB,GAuCrB,OAtCA5zM,EAAOzD,KAAKwzD,GAAW,SAAU7wD,GAC/B,IAGIk2B,EAHAmpE,EAAYr/F,EAAYxB,iBACxBw3B,EAAWqpE,EAAUppE,cACrB86B,EAAa/6B,EAASvS,YAG1B,GAAsB,aAAlBuS,EAASr4B,KACXu4B,EAAYF,EAASG,oBAChB,GAAsB,UAAlBH,EAASr4B,MAAsC,SAAlBq4B,EAASr4B,KAAiB,CAChE,IAAIsI,EAAM+vB,EAAS/nB,IAAM,IAAM+nB,EAAS3wB,MACpCsvM,EAASH,EAAYvuM,GACrB2uM,EAAa7qM,KAAKC,IAAI+mD,EAAW,GAAKA,EAAW,IACjDpkD,EAAQqpB,EAASrpB,MAAM8W,YACvBoxL,EAAY9qM,KAAKC,IAAI2C,EAAM,GAAKA,EAAM,IAC1CupB,EAAYy+K,EAASC,EAAaC,EAAYF,EAASC,MAClD,CACL,IAAIn2M,EAAOuB,EAAYtB,UACvBw3B,EAAYnsB,KAAKC,IAAI+mD,EAAW,GAAKA,EAAW,IAAMtyD,EAAK4hB,QAG7D,IAAIiW,EAAW5D,EAAa1yB,EAAYI,IAAI,YAAa81B,GACrDE,EAAc1D,EAAa1yB,EAAYI,IAAI,eAAgB81B,GAC3DG,EAAc3D,EAElB1yB,EAAYI,IAAI,gBAAkB,EAAG81B,GACjCo7B,EAAStxD,EAAYI,IAAI,UACzBmxD,EAAiBvxD,EAAYI,IAAI,kBACrCs0M,EAAe31M,KAAK,CAClBm3B,UAAWA,EACXI,SAAUA,EACVF,YAAaA,EACbC,YAAaA,EACbi7B,OAAQA,EACRC,eAAgBA,EAChB7B,QAASR,EAAWl5B,GACpB25B,QAASV,EAAiBjvD,QAGvBk0M,EAAuBQ,GAGhC,SAASR,EAAuBQ,GAE9B,IAAI5jJ,EAAa,GACjBhwD,EAAOzD,KAAKq3M,GAAgB,SAAUI,EAAY1mM,GAChD,IAAIshD,EAAUolJ,EAAWplJ,QACrBx5B,EAAY4+K,EAAW5+K,UACvB86B,EAAgBF,EAAWpB,IAAY,CACzCx5B,UAAWA,EACX+6B,cAAe/6B,EACfg7B,eAAgB,EAChBC,YAAa,MACbnoD,IAAK,MACLooD,OAAQ,IAENA,EAASJ,EAAcI,OAC3BN,EAAWpB,GAAWsB,EACtB,IAAIrB,EAAUmlJ,EAAWnlJ,QAEpByB,EAAOzB,IACVqB,EAAcE,iBAGhBE,EAAOzB,GAAWyB,EAAOzB,IAAY,CACnCjwD,MAAO,EACP2xD,SAAU,GAMZ,IAAI/6B,EAAWw+K,EAAWx+K,SAEtBA,IAAa86B,EAAOzB,GAASjwD,QAE/B0xD,EAAOzB,GAASjwD,MAAQ42B,EACxBA,EAAWvsB,KAAK6E,IAAIoiD,EAAcC,cAAe36B,GACjD06B,EAAcC,eAAiB36B,GAGjC,IAAIF,EAAc0+K,EAAW1+K,YAC7BA,IAAgBg7B,EAAOzB,GAAS0B,SAAWj7B,GAC3C,IAAIC,EAAcy+K,EAAWz+K,YAC7BA,IAAgB+6B,EAAOzB,GAASolJ,SAAW1+K,GAC3C,IAAIi7B,EAASwjJ,EAAWxjJ,OACd,MAAVA,IAAmBN,EAAchoD,IAAMsoD,GACvC,IAAIC,EAAiBujJ,EAAWvjJ,eACd,MAAlBA,IAA2BP,EAAcG,YAAcI,MAEzD,IAAI1sC,EAAS,GAqFb,OApFA/jB,EAAOzD,KAAKyzD,GAAY,SAAUE,EAAeQ,GAC/C3sC,EAAO2sC,GAAgB,GACvB,IAAIJ,EAASJ,EAAcI,OACvBl7B,EAAY86B,EAAc96B,UAC1Bi7B,EAAcz+B,EAAas+B,EAAcG,YAAaj7B,GACtDu7B,EAAgB/+B,EAAas+B,EAAchoD,IAAK,GAChDioD,EAAgBD,EAAcC,cAC9BC,EAAiBF,EAAcE,eAC/BQ,GAAaT,EAAgBE,IAAgBD,GAAkBA,EAAiB,GAAKO,GACzFC,EAAY3nD,KAAK4E,IAAI+iD,EAAW,GAEhC5wD,EAAOzD,KAAK+zD,GAAQ,SAAUO,GAC5B,IAAIN,EAAWM,EAAON,SAClB0jJ,EAAWpjJ,EAAOojJ,SAEtB,GAAKpjJ,EAAOjyD,MAqBL,CAIDs1M,EAAarjJ,EAAOjyD,MAEpB2xD,IACF2jJ,EAAajrM,KAAK6E,IAAIomM,EAAY3jJ,IAIhC0jJ,IACFC,EAAajrM,KAAK4E,IAAIqmM,EAAYD,IAGpCpjJ,EAAOjyD,MAAQs1M,EACf/jJ,GAAiB+jJ,EAAavjJ,EAAgBujJ,EAC9C9jJ,QAtCiB,CACjB,IAAI8jJ,EAAatjJ,EAEbL,GAAYA,EAAW2jJ,IACzBA,EAAajrM,KAAK6E,IAAIyiD,EAAUJ,IAQ9B8jJ,GAAYA,EAAWC,IACzBA,EAAaD,GAGXC,IAAetjJ,IACjBC,EAAOjyD,MAAQs1M,EACf/jJ,GAAiB+jJ,EAAavjJ,EAAgBujJ,EAC9C9jJ,SAuBNQ,GAAaT,EAAgBE,IAAgBD,GAAkBA,EAAiB,GAAKO,GACrFC,EAAY3nD,KAAK4E,IAAI+iD,EAAW,GAChC,IACIG,EADAC,EAAW,EAEfhxD,EAAOzD,KAAK+zD,GAAQ,SAAUO,EAAQvjD,GAC/BujD,EAAOjyD,QACViyD,EAAOjyD,MAAQgyD,GAGjBG,EAAaF,EACbG,GAAYH,EAAOjyD,OAAS,EAAI+xD,MAG9BI,IACFC,GAAYD,EAAWnyD,MAAQ+xD,GAGjC,IAAIz+C,GAAU8+C,EAAW,EACzBhxD,EAAOzD,KAAK+zD,GAAQ,SAAUO,EAAQhC,GACpC9qC,EAAO2sC,GAAc7B,GAAW9qC,EAAO2sC,GAAc7B,IAAY,CAC/Dz5B,UAAWA,EACXljB,OAAQA,EACRtT,MAAOiyD,EAAOjyD,OAEhBsT,GAAU2+C,EAAOjyD,OAAS,EAAI+xD,SAG3B5sC,EAUT,SAASg+I,EAAqBxzG,EAAmBzhD,EAAM5N,GACrD,GAAIqvD,GAAqBzhD,EAAM,CAC7B,IAAIiX,EAASwqC,EAAkBH,EAAWthD,IAM1C,OAJc,MAAViX,GAAiC,MAAf7kB,IACpB6kB,EAASA,EAAOoqC,EAAiBjvD,KAG5B6kB,GASX,SAAS1jB,EAAO2xB,EAAY90B,GAC1B,IAAI03E,EAAeitF,EAAuB7vI,EAAY90B,GAClDqxD,EAAoBuzG,EAAiBltF,GACrCtmB,EAAkB,GAClB6lJ,EAAwB,GAC5Bn0M,EAAOzD,KAAKq4E,GAAc,SAAU11E,GAClC,IAAIvB,EAAOuB,EAAYtB,UACnB2gG,EAAYr/F,EAAYxB,iBACxBw3B,EAAWqpE,EAAUppE,cACrB05B,EAAUV,EAAiBjvD,GAC3B4vD,EAAmBP,EAAkBH,EAAWl5B,IAAW25B,GAC3DE,EAAeD,EAAiB58C,OAChC88C,EAAcF,EAAiBlwD,MAC/BqjD,EAAYs8C,EAAUtvC,aAAa/5B,GACnCg6B,EAAehwD,EAAYI,IAAI,iBAAmB,EACtDgvD,EAAgBO,GAAWP,EAAgBO,IAAY,GACvDslJ,EAAsBtlJ,GAAWslJ,EAAsBtlJ,IAAY,GAEnElxD,EAAKqgB,UAAU,CACboX,UAAW05B,EAAiB15B,UAC5BljB,OAAQ68C,EACRrlD,KAAMslD,IAUR,IARA,IAAI7nD,EAAWxJ,EAAKyJ,aAAa66C,EAAU90C,KACvCiiD,EAAUzxD,EAAKyJ,aAAa8tB,EAAS/nB,KACrCkiD,EAAU3P,EAAmB/hD,EAAMwJ,GAGnCitM,EAAenyJ,EAAU1wB,eACzBg+B,EAAiB8kJ,EAAkBn/K,EAAU+sB,EAAWoN,GAEnD/hD,EAAM,EAAGoI,EAAM/X,EAAK4hB,QAASjS,EAAMoI,EAAKpI,IAAO,CACtD,IAqBIzK,EACAC,EACAlE,EACA0K,EAxBAyB,EAAQpN,EAAK2B,IAAI6H,EAAUmG,GAC3BkiD,EAAY7xD,EAAK2B,IAAI8vD,EAAS9hD,GAC9B8mB,EAAOrpB,GAAS,EAAI,IAAM,IAC1B0kD,EAAYF,EAuBhB,GApBIF,IAEGf,EAAgBO,GAASW,KAC5BlB,EAAgBO,GAASW,GAAa,CACpC36C,EAAG06C,EAEHv+C,EAAGu+C,IAMPE,EAAYnB,EAAgBO,GAASW,GAAWp7B,IAQ9CggL,EAAc,CAChB,IAAI3qM,EAAQ80F,EAAUp1F,YAAY,CAAC4B,EAAOykD,IAC1C3sD,EAAI4sD,EACJ3sD,EAAI2G,EAAM,GAAKslD,EACfnwD,EAAQ6K,EAAM,GAAK8lD,EACnBjmD,EAAS0lD,EAEL/lD,KAAKC,IAAItK,GAASswD,IACpBtwD,GAASA,EAAQ,GAAK,EAAI,GAAKswD,GAI5B/4C,MAAMvX,IACTywD,IAAYf,EAAgBO,GAASW,GAAWp7B,IAASx1B,OAEtD,CACD6K,EAAQ80F,EAAUp1F,YAAY,CAACqmD,EAAWzkD,IAC9ClI,EAAI4G,EAAM,GAAKslD,EACfjsD,EAAI2sD,EACJ7wD,EAAQowD,EACR1lD,EAASG,EAAM,GAAK8lD,EAEhBtmD,KAAKC,IAAII,GAAU4lD,IAErB5lD,GAAUA,GAAU,GAAK,EAAI,GAAK4lD,GAI/B/4C,MAAM7M,IACT+lD,IAAYf,EAAgBO,GAASW,GAAWp7B,IAAS9qB,GAI7D3L,EAAKugB,cAAc5Q,EAAK,CACtBzK,EAAGA,EACHC,EAAGA,EACHlE,MAAOA,EACP0K,OAAQA,OAGXlM,MAIL,IAAIwtM,EAAc,CAChB54K,WAAY,MACZC,KAAMN,IACNO,MAAO,SAAUhzB,GACf,GAAKm0M,EAAcn0M,IAAiBo0M,EAAcp0M,GAAlD,CAIA,IAAIvB,EAAOuB,EAAYtB,UACnB2gG,EAAYr/F,EAAYxB,iBACxB4jK,EAAc/iE,EAAU1xF,KAAKO,UAC7B8nB,EAAWqpE,EAAUppE,cACrB8sB,EAAYs8C,EAAUtvC,aAAa/5B,GACnC/tB,EAAWxJ,EAAKyJ,aAAa66C,EAAU90C,KACvCiiD,EAAUzxD,EAAKyJ,aAAa8tB,EAAS/nB,KACrCmnM,EAAsBryJ,EAAU1wB,eAChCsvI,EAAcyzC,EAAsB,EAAI,EACxC9+K,EAAWusI,EAAqBD,EAAiB,CAAC5iK,IAAeg2B,EAAUh2B,GAAaN,MAO5F,OALM42B,EAAWy9K,IAEfz9K,EAAWy9K,GAGN,CACLlgL,SAAUA,GAGZ,SAASA,EAAS9rB,EAAQtJ,GACxB,IAIIK,EAJAuhB,EAAQtY,EAAOsY,MACf+pC,EAAc,IAAIx3B,EAAiB,EAARvS,GAC3Bg1L,EAAwB,IAAIziL,EAAiB,EAARvS,GACrC8gJ,EAAmB,IAAIvuI,EAASvS,GAEhC9V,EAAQ,GACR+qM,EAAY,GACZC,EAAe,EACfC,EAAY,EAEhB,MAAsC,OAA9B12M,EAAYiJ,EAAOmsB,QACzBohL,EAAU3zC,GAAeljK,EAAK2B,IAAI6H,EAAUnJ,GAC5Cw2M,EAAU,EAAI3zC,GAAeljK,EAAK2B,IAAI8vD,EAASpxD,GAC/CyL,EAAQ80F,EAAUp1F,YAAYqrM,EAAW,KAAM/qM,GAE/C8qM,EAAsBE,GAAgBH,EAAsBhzC,EAAYz+J,EAAIy+J,EAAY1iK,MAAQ6K,EAAM,GACtG6/C,EAAYmrJ,KAAkBhrM,EAAM,GACpC8qM,EAAsBE,GAAgBH,EAAsB7qM,EAAM,GAAK63J,EAAYx+J,EAAIw+J,EAAYh4J,OACnGggD,EAAYmrJ,KAAkBhrM,EAAM,GACpC42J,EAAiBq0C,KAAe12M,EAGlCL,EAAKqgB,UAAU,CACbsrC,YAAaA,EACb+2G,iBAAkBA,EAClBk0C,sBAAuBA,EACvB/+K,SAAUA,EACV+5B,eAAgB8kJ,EAAkBn/K,EAAU+sB,GAAW,GACvD0yJ,gBAAiBL,EAAsBhzC,EAAYz+J,EAAIy+J,EAAYx+J,EACnEwxM,oBAAqBA,OAM7B,SAASjB,EAAcn0M,GACrB,OAAOA,EAAYxB,kBAA0D,gBAAtCwB,EAAYxB,iBAAiBb,KAGtE,SAASy2M,EAAcp0M,GACrB,OAAOA,EAAY8zB,iBAAmB9zB,EAAY8zB,gBAAgBC,MAIpE,SAASohL,EAAkBn/K,EAAU+sB,EAAWoN,GAC9C,OAAOpN,EAAUt0C,cAAcs0C,EAAUr0C,YAA+B,QAAnBq0C,EAAUplD,KAAiB,EAAI,IAGtFkD,EAAQmzM,gBAAkBA,EAC1BnzM,EAAQ8hK,uBAAyBA,EACjC9hK,EAAQ+hK,iBAAmBA,EAC3B/hK,EAAQgiK,qBAAuBA,EAC/BhiK,EAAQM,OAASA,EACjBN,EAAQ6qM,YAAcA,G,uBCpkBtB,IAAI78E,EAAa,EAAQ,QAErBpkH,EAAe,EAAQ,QAEvBo/E,EAAY,EAAQ,QAEpBioG,EAAmBjoG,EAAUioG,iBAM7B4jB,EAAU,IAAIjrM,EAEdkgD,EAAW,aAEfA,EAAS3+C,UAAY,CACnBC,YAAa0+C,EAObrmB,aAAc,SAAU3B,EAAKz4B,GAC3B,IAAIxG,EAAQxF,KAAKwF,MACjBwG,EAAOxG,EAAM6mF,UAAYrgF,EAEzBhM,KAAK2sD,SAAWgkE,EAAWyC,mBAAmB5tH,GAAO,GACrD,IAAIG,EAAOH,EAAMG,KAIjB,GAFQ,MAARA,IAAiBA,GAAQ,IAEpBgrH,EAAW0C,aAAa1tH,EAAMH,GAAnC,CAQAi/B,EAAIijH,OAEJ,IAAIp5I,EAAYtO,KAAKsO,UAEhB9I,EAAM8mF,cAOTtsF,KAAKwkC,aAAaC,GANdn2B,IACFkpM,EAAQzzK,KAAK/3B,GACbwrM,EAAQtyK,eAAe52B,GACvBtC,EAAOwrM,GAOX7mF,EAAW8wD,WAAWzhL,KAAMykC,EAAK9+B,EAAMH,EAAOwG,EAAM4nL,GACpDnvJ,EAAI4iD,aAGR,IAAI9nF,EAAWktD,EACf/pD,EAAOC,QAAUpD,G,uBCzCjB,IAAIqD,EAAS,EAAQ,QAEjB+hD,EAAc,EAAQ,QAEtB1xC,EAAiB,EAAQ,QAEzBivC,EAAU,EAAQ,QAElB4zB,EAAkB5zB,EAAQ4zB,gBAC1BqgE,EAAmBj0F,EAAQi0F,iBAE3B3tF,EAAc,EAAQ,QAqBtBivJ,EAAa,CAAC,QAAS,WAAY,OAAQ,OAS/C,SAASl4M,EAAS8kF,EAAUqzH,EAAoBC,EAAmBC,GACjEh1M,EAAOzD,KAAKs4M,GAAY,SAAUxjL,GAChCyjL,EAAmBl4M,OAAO,CAIxBC,KAAM4kF,EAAW,QAAUpwD,EAC3BwrD,qBAAsB,SAAU5/E,EAAQC,GACtC,IAAIo0D,EAAal0D,KAAKk0D,WAClB4iF,EAAsB5iF,EAAa4hB,EAAgBj2E,GAAU,GAC7DiwK,EAAahwK,EAAQm3I,WACzBr0I,EAAOie,MAAMhhB,EAAQiwK,EAAW5tK,IAAI+xB,EAAW,SAC/CrxB,EAAOie,MAAMhhB,EAAQG,KAAKk3I,oBAC1Br3I,EAAOJ,KAAOk4M,EAAkBtzH,EAAUxkF,GAEtCq0D,GACFiiF,EAAiBt2I,EAAQi3I,EAAqB5iF,IAOlD1gD,cAAe,WACb,IAAI+S,EAAavmB,KAAKH,OAEE,aAApB0mB,EAAW9mB,OACbO,KAAK63M,cAAgBrvJ,EAAYy4I,kBAAkBjhM,QAQvD+kK,cAAe,SAAU1P,GACvB,IAAIx1J,EAASG,KAAKH,OAGlB,GAAoB,aAAhBA,EAAOJ,KACT,OAAI41J,EACKx1J,EAAOU,KAGTP,KAAK63M,cAAcvzL,YAG9BilC,eAAgB,WACd,OAAOvpD,KAAK63M,eAEd92M,cAAe6B,EAAO6yK,SAAS,CAAC,GAAI9wH,EAAY1wB,EAAW,QAAS2jL,IAAqB,QAG7F3kM,EAAesxJ,yBAAyBlgF,EAAW,OAAQzhF,EAAO4G,MAAMmuM,EAAmBtzH,IAG7F3hF,EAAOC,QAAUpD,G,uBCjGjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBM,EAAS,EAAQ,QAoBrBkF,EAAQC,eAAe,YAAY,SAAU61B,EAASp+B,GACpD,IAAIg4M,EAAoB50M,EAAOk3I,wBAAwBx3I,EAAOiC,KAAK/E,EAAQs+B,cAAet+B,EAAS,YAAaoD,EAAOo0G,aAAa,SAAUxnF,EAAOynD,GACnJ,OAAOznD,EAAM5tB,IAAIq1E,EAASvqC,cAExB+qK,EAAiB,GACrBj4M,EAAQs+B,cAAc,CACpBnB,SAAU,WACVmE,MAAOlD,IACN,SAAUpO,EAAO3oB,GAClB4wM,EAAel3M,KAAKylB,MAAMyxL,EAAgBD,EAAkBhoL,GAAO5N,UAErEtf,EAAOzD,KAAK44M,GAAgB,SAAUhjI,EAAe5tE,GACnD4tE,EAAc8kC,YAAY,CACxBtlG,MAAO2pB,EAAQ3pB,MACf8lE,IAAKn8C,EAAQm8C,IACbmV,WAAYtxD,EAAQsxD,WACpBC,SAAUvxD,EAAQuxD,kB,uBC5DxB,IAAIvwF,EAAQ,EAAQ,QAEhB05L,EAAkB15L,EAAM05L,gBACxBpzG,EAAgB,EAAV35E,KAAK+E,GAef,SAASyzJ,EAAcjmH,EAAIC,EAAIxqC,EAAGiuC,EAAYC,EAAU+Y,EAAe4d,EAAWjzE,EAAGC,GACnF,GAAkB,IAAdgzE,EACF,OAAO,EAGT,IAAI4rF,EAAK5rF,EACTjzE,GAAK24C,EACL14C,GAAK24C,EACL,IAAI2e,EAAInxD,KAAK4sB,KAAKhzB,EAAIA,EAAIC,EAAIA,GAE9B,GAAIs3D,EAAIsnG,EAAKzwJ,GAAKmpD,EAAIsnG,EAAKzwJ,EACzB,OAAO,EAGT,GAAIhI,KAAKC,IAAIg2C,EAAaC,GAAYyjC,EAAM,KAE1C,OAAO,EAGT,GAAI1qB,EAAe,CACjB,IAAI/lD,EAAM+sC,EACVA,EAAa82I,EAAgB72I,GAC7BA,EAAW62I,EAAgB7jL,QAE3B+sC,EAAa82I,EAAgB92I,GAC7BC,EAAW62I,EAAgB72I,GAGzBD,EAAaC,IACfA,GAAYyjC,GAGd,IAAIhzB,EAAQ3mD,KAAKk5B,MAAMr/B,EAAGD,GAM1B,OAJI+sD,EAAQ,IACVA,GAASgzB,GAGJhzB,GAAS1Q,GAAc0Q,GAASzQ,GAAYyQ,EAAQgzB,GAAO1jC,GAAc0Q,EAAQgzB,GAAOzjC,EAGjGp/C,EAAQ0hK,cAAgBA,G,uBCvCxB,IAAIjiH,EAAmB,EAAQ,QAE3BE,EAAqBF,EAAiBE,mBAEtCpjD,EAAQ,EAAQ,QAEhB+H,EAAM/H,EAAM+H,IA0BhB,SAAS+wM,EAAqB33M,EAAUE,EAAM03M,GAC5C,IAWIhmJ,EAXAn6B,EAAWz3B,EAAS03B,cACpB8sB,EAAYxkD,EAASwxD,aAAa/5B,GAClCogL,EAAaC,EAActzJ,EAAWozJ,GACtCG,EAActgL,EAAS/nB,IACvBqvK,EAAev6H,EAAU90C,IACzBhG,EAAWxJ,EAAKyJ,aAAao1K,GAC7BptH,EAAUzxD,EAAKyJ,aAAaouM,GAC5BC,EAAkC,MAAjBj5B,GAAyC,WAAjBA,EAA4B,EAAI,EACzEh1F,EAAOnjF,EAAI5G,EAAS8B,YAAY,SAAUguF,GAC5C,OAAO5vF,EAAKyJ,aAAammF,MAGvB2rG,EAAiBv7L,EAAK42J,mBAAmB,wBAgB7C,OAdIllG,GAAW3P,EAAmB/hD,EAAM6pF,EAAK,OAI3CA,EAAK,GAAK0xG,IAGR7pI,GAAW3P,EAAmB/hD,EAAM6pF,EAAK,OAI3CA,EAAK,GAAK0xG,GAGL,CACLwc,iBAAkBluH,EAClB8tH,WAAYA,EACZ94B,aAAcA,EACdg5B,YAAaA,EACbnmJ,UAAWA,EACXloD,SAAUA,EACVioD,QAASA,EACTqmJ,eAAgBA,EAChBE,qBAAsBh4M,EAAK42J,mBAAmB,yBAIlD,SAASghD,EAActzJ,EAAWozJ,GAChC,IAAIC,EAAa,EACbrgL,EAASgtB,EAAUp2C,MAAM8W,YAkB7B,MAhBoB,UAAhB0yL,EACFC,EAAargL,EAAO,GACK,QAAhBogL,EACTC,EAAargL,EAAO,GAIdA,EAAO,GAAK,EACdqgL,EAAargL,EAAO,GAEbA,EAAO,GAAK,IACjBqgL,EAAargL,EAAO,IAKrBqgL,EAGT,SAASM,EAAkBC,EAAep4M,EAAUE,EAAM2P,GACxD,IAAIvC,EAAQ0pB,IAERohL,EAAcxmJ,UAChBtkD,EAAQpN,EAAK2B,IAAI3B,EAAK42J,mBAAmB,wBAAyBjnJ,IAGhE6I,MAAMpL,KACRA,EAAQ8qM,EAAcP,YAGxB,IAAIG,EAAiBI,EAAcJ,eAC/BK,EAAc,GAGlB,OAFAA,EAAYL,GAAkB93M,EAAK2B,IAAIu2M,EAAczmJ,QAAS9hD,GAC9DwoM,EAAY,EAAIL,GAAkB1qM,EAC3BtN,EAAS0L,YAAY2sM,GAG9B/1M,EAAQq1M,qBAAuBA,EAC/Br1M,EAAQ61M,kBAAoBA,G,uBCxI5B,IAAI1qE,EAAY,EAAQ,QAEpBlrI,EAAS,EAAQ,QAEjBqgC,EAAS,EAAQ,QAerB,SAAS01K,EAAgB5qE,EAAMC,GAC7BF,EAAUhhI,KAAK9M,KAAM+tI,EAAMC,EAAS,WAAY,uBAGlDprI,EAAOwxB,SAASukL,EAAiB7qE,GAOjC6qE,EAAgB7qM,UAAUvF,OAAS,SAAU4tG,GAC3C,IAAIkb,EAAQrxH,KAAKyvI,cAAct5B,GAE3Bkb,GACFrxH,KAAK44M,UAAUvnF,EAAOlb,EAAYzpD,aAAa,GAGjD,IAAIrrB,EAASrhC,KAAKwvI,kBAAkBr5B,GAEhC90E,GAGFrhC,KAAK44M,UAAUv3K,EAAQ80E,EAAYzpD,aAAa,GAGlD1sD,KAAKqvI,SAASl5B,IAYhBwiG,EAAgB7qM,UAAU8qM,UAAY,SAAU/qB,EAAUkR,EAAW5tE,GACnE,GAAI4tE,GAAaA,EAAU9zL,OAAS,EAAG,CAErC,IAEI4tM,EACA1wM,EAHA2sF,EAAO90F,KAAK0uI,SAAQ,GACpBnjF,EAAWwzI,EAAU,GAGrB/8E,EAAMmP,EAAS,WAAa,OAE5B5lE,EAASy2D,IAEX75G,EAAKojD,EAASy2D,GAAKjvB,aAAa,MAChC8lH,EAAattJ,EAASy2D,GAEjBltB,EAAKz0E,SAASw4L,IAGjB/jH,EAAK5oE,YAAY2sL,KAInB1wM,EAAK,KAAOnI,KAAKouI,MAAQ,SAAWpuI,KAAKyuI,SACvCzuI,KAAKyuI,OACPoqE,EAAa74M,KAAK0rB,cAAc,YAChCmtL,EAAW9rF,aAAa,KAAM5kH,GAC9B2sF,EAAK5oE,YAAY2sL,GACjBttJ,EAASy2D,GAAO62F,GAIlB,IAAIC,EAAW94M,KAAKuvI,YAAYhkF,GAEhC,GAAIA,EAASj9C,WAAai9C,EAAS1pC,OAAOyiB,eAAiB6sF,EAAQ,CASjE,IAAI7iH,EAAYyJ,MAAMjK,UAAUxG,MAAMwF,KAAKy+C,EAASj9C,WAEpD20B,EAAOa,IAAIynB,EAASj9C,UAAWi9C,EAAS1pC,OAAOyiB,aAAcinB,EAASj9C,WACtEwqM,EAAStzK,MAAM+lB,GAEfA,EAASj9C,UAAYA,OAErBwqM,EAAStzK,MAAM+lB,GAGjB,IAAIq/C,EAAS5qG,KAAKyvI,cAAclkF,GAChCstJ,EAAWnrL,UAAY,GAQvBmrL,EAAW3sL,YAAY0+E,EAAOmuG,aAC9BlrB,EAAS9gE,aAAa,YAAa,QAAU5kH,EAAK,KAE9C42L,EAAU9zL,OAAS,GAErBjL,KAAK44M,UAAUC,EAAY9Z,EAAUz3L,MAAM,GAAI6pH,QAI7C08D,GACFA,EAAS9gE,aAAa,YAAa,SAWzC4rF,EAAgB7qM,UAAUuhI,SAAW,SAAUl5B,GAC7C,IAAIxP,EAAO3mG,KAEPm2G,EAAYzpD,aACd9pD,EAAOzD,KAAKg3G,EAAYzpD,aAAa,SAAUnB,GACzCA,EAAS42D,MACX2rB,EAAUhgI,UAAUuhI,SAASviI,KAAK65F,EAAMp7C,EAAS42D,MAG/C52D,EAASytJ,UACXlrE,EAAUhgI,UAAUuhI,SAASviI,KAAK65F,EAAMp7C,EAASytJ,cAMzD,IAAIz5M,EAAWo5M,EACfj2M,EAAOC,QAAUpD,G,qBCvIjB,IAAIF,EAAc,EAAQ,QAEtBmJ,EAAmB,EAAQ,QAE3B5F,EAAS,EAAQ,QAEjB+6D,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAErB/0D,EAAuB,EAAQ,QAoB/BowM,EAAc55M,EAAYG,OAAO,CACnCC,KAAM,eACNC,aAAc,CAAC,SAEfsJ,KAAM,SAAUnJ,GACdo5M,EAAYhwM,WAAWjJ,KAAM,OAAQkJ,WAGrClJ,KAAKmJ,qBAAuB,IAAIN,EAAqBjG,EAAOiC,KAAK7E,KAAKQ,QAASR,MAAO4C,EAAOiC,KAAK7E,KAAKoJ,WAAYpJ,QAErHJ,eAAgB,SAAUC,EAAQC,GAChC,OAAO0I,EAAiBxI,KAAM,CAC5BkgG,cAAe,aACf05F,mBAAoB7mL,OAGxB0rD,cAAe,SAAU79D,GACvB,IAAIL,EAAOP,KAAKQ,UACZH,EAAWL,KAAKM,iBAChBw9E,EAAgBz9E,EAAS68E,mBACzBvwE,EAAO3M,KAAKQ,UAAUy8C,QAAQr8C,GAClC,OAAOg9D,EAAoB,KAATjxD,EAAc3M,KAAK2M,KAAOA,GAAQ,QAAU/J,EAAOqE,IAAI62E,GAAe,SAAUpuE,EAAMQ,GACtG,IAAIzE,EAAMlL,EAAK2B,IAAI3B,EAAKyJ,aAAa0F,EAAKK,KAAMnP,GAChD,OAAOg9D,EAAWluD,EAAK/C,KAAO,MAAQlB,MACrCoO,KAAK,WAMV2/B,mBAAoB,SAAU54C,GAC5B,GAAiB,MAAbA,EAOF,IANA,IAAIL,EAAOP,KAAKQ,UACZH,EAAWL,KAAKM,iBAChBg1J,EAAS/0J,EAAKk5C,UAAU72C,EAAOqE,IAAI5G,EAAS8B,YAAY,SAAU4N,GACpE,OAAOxP,EAAKyJ,aAAa+F,MACvBnP,GAAW,GAENqN,EAAI,EAAGqK,EAAMg9I,EAAOrqJ,OAAQgD,EAAIqK,EAAKrK,IAC5C,IAAK8K,MAAMu8I,EAAOrnJ,IAAK,CACrB,IAAI6vE,EAAgBz9E,EAAS68E,mBAC7B,OAAO78E,EAAS+8E,aAAaU,EAAc7vE,GAAGuC,YAAY8kJ,EAAOrnJ,IAAKA,KAK9ElN,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,QAClBgK,iBAAiB,EACjB03K,WAAY,EACZzgL,UAAW,CACTC,MAAO,EACP/B,KAAM,SAER0B,MAAO,CACL6J,SAAU,OAKZ6nC,OAAQ,cACRkH,WAAY,KAIZx6C,EAAW05M,EACfv2M,EAAOC,QAAUpD,G,qBClGjB,IAAI4iE,EAAY,EAAQ,QAoBxBA,EAAUoiG,yBAAyB,YAAY,WAE7C,MAAO,a,qBCtBT,IAAI3hK,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElByJ,EAAe,EAAQ,QAEvB2sM,EAAQ,EAAQ,QAEhB5rJ,EAAwB4rJ,EAAM5rJ,sBA0B9B6rJ,EAAWr2M,EAAQolE,YAAY,CACjCzoE,KAAM,WACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJ78C,MAAO,EACP0K,OAAQ,GAEVu/C,UAAW,SAAUvqC,EAAM1P,GACzB,IAAI4sC,EAAK5sC,EAAM4sC,GACXC,EAAK7sC,EAAM6sC,GACX78C,EAAQgQ,EAAMhQ,MAAQ,EACtB0K,EAASsF,EAAMtF,OAAS,EAC5BgV,EAAKiN,OAAOiwB,EAAIC,EAAKnyC,GACrBgV,EAAKyqC,OAAOvN,EAAK58C,EAAO68C,EAAKnyC,GAC7BgV,EAAKyqC,OAAOvN,EAAK58C,EAAO68C,EAAKnyC,GAC7BgV,EAAK0qC,eAQLwtJ,EAAUt2M,EAAQolE,YAAY,CAChCzoE,KAAM,UACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJ78C,MAAO,EACP0K,OAAQ,GAEVu/C,UAAW,SAAUvqC,EAAM1P,GACzB,IAAI4sC,EAAK5sC,EAAM4sC,GACXC,EAAK7sC,EAAM6sC,GACX78C,EAAQgQ,EAAMhQ,MAAQ,EACtB0K,EAASsF,EAAMtF,OAAS,EAC5BgV,EAAKiN,OAAOiwB,EAAIC,EAAKnyC,GACrBgV,EAAKyqC,OAAOvN,EAAK58C,EAAO68C,GACxBn9B,EAAKyqC,OAAOvN,EAAIC,EAAKnyC,GACrBgV,EAAKyqC,OAAOvN,EAAK58C,EAAO68C,GACxBn9B,EAAK0qC,eAQLytJ,EAAMv2M,EAAQolE,YAAY,CAC5BzoE,KAAM,MACN+R,MAAO,CAEL/L,EAAG,EACHC,EAAG,EACHlE,MAAO,EACP0K,OAAQ,GAEVu/C,UAAW,SAAUvqC,EAAM1P,GACzB,IAAI/L,EAAI+L,EAAM/L,EACVC,EAAI8L,EAAM9L,EACV8R,EAAIhG,EAAMhQ,MAAQ,EAAI,EAEtBk0D,EAAI7pD,KAAK4E,IAAI+G,EAAGhG,EAAMtF,QACtB2H,EAAI2D,EAAI,EAERrF,EAAK0B,EAAIA,GAAK6hD,EAAI7hD,GAClBwqC,EAAK34C,EAAIgwD,EAAI7hD,EAAI1B,EACjBqgD,EAAQ3mD,KAAKoyK,KAAK9rK,EAAK0B,GAEvB3B,EAAKrG,KAAK04C,IAAIiO,GAAS3+C,EACvBylM,EAAOztM,KAAKw4C,IAAImO,GAChB+mJ,EAAO1tM,KAAK04C,IAAIiO,GAChBgnJ,EAAY,GAAJ3lM,EACR4lM,EAAa,GAAJ5lM,EACbqN,EAAKiN,OAAO1oB,EAAIyM,EAAImsC,EAAKlsC,GACzB+O,EAAK25C,IAAIp1D,EAAG44C,EAAIxqC,EAAGhI,KAAK+E,GAAK4hD,EAAiB,EAAV3mD,KAAK+E,GAAS4hD,GAClDtxC,EAAKi5C,cAAc10D,EAAIyM,EAAKonM,EAAOE,EAAOn7J,EAAKlsC,EAAKonM,EAAOC,EAAO/zM,EAAGC,EAAI+zM,EAAQh0M,EAAGC,GACpFwb,EAAKi5C,cAAc10D,EAAGC,EAAI+zM,EAAQh0M,EAAIyM,EAAKonM,EAAOE,EAAOn7J,EAAKlsC,EAAKonM,EAAOC,EAAO/zM,EAAIyM,EAAImsC,EAAKlsC,GAC9F+O,EAAK0qC,eAQL8tJ,EAAQ52M,EAAQolE,YAAY,CAC9BzoE,KAAM,QACN+R,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAO,EACP0K,OAAQ,GAEVu/C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAItF,EAASsF,EAAMtF,OACf1K,EAAQgQ,EAAMhQ,MACdiE,EAAI+L,EAAM/L,EACVC,EAAI8L,EAAM9L,EACVwM,EAAK1Q,EAAQ,EAAI,EACrBijC,EAAItW,OAAO1oB,EAAGC,GACd++B,EAAIknB,OAAOlmD,EAAIyM,EAAIxM,EAAIwG,GACvBu4B,EAAIknB,OAAOlmD,EAAGC,EAAIwG,EAAS,EAAI,GAC/Bu4B,EAAIknB,OAAOlmD,EAAIyM,EAAIxM,EAAIwG,GACvBu4B,EAAIknB,OAAOlmD,EAAGC,GACd++B,EAAImnB,eAQJ+tJ,EAAc,CAChBzyH,KAAMpkF,EAAQovC,KACdlmC,KAAMlJ,EAAQyO,KACdqoM,UAAW92M,EAAQyO,KACnBsoM,OAAQ/2M,EAAQyO,KAChB8iF,OAAQvxF,EAAQo+C,OAChB44J,QAASV,EACTW,IAAKV,EACLW,MAAON,EACPO,SAAUd,GAERe,EAAoB,CACtBhzH,KAAM,SAAUzhF,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAE1BA,EAAM4oD,GAAK30D,EACX+L,EAAM6oD,GAAK30D,EAAIgwD,EAAI,EACnBlkD,EAAM8oD,GAAK70D,EAAI+R,EACfhG,EAAM+oD,GAAK70D,EAAIgwD,EAAI,GAErB1pD,KAAM,SAAUvG,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAC1BA,EAAM/L,EAAIA,EACV+L,EAAM9L,EAAIA,EACV8L,EAAMhQ,MAAQgW,EACdhG,EAAMtF,OAASwpD,GAEjBkkJ,UAAW,SAAUn0M,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAC/BA,EAAM/L,EAAIA,EACV+L,EAAM9L,EAAIA,EACV8L,EAAMhQ,MAAQgW,EACdhG,EAAMtF,OAASwpD,EACflkD,EAAMqC,EAAIhI,KAAK6E,IAAI8G,EAAGk+C,GAAK,GAE7BmkJ,OAAQ,SAAUp0M,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAC5B,IAAIlF,EAAOT,KAAK6E,IAAI8G,EAAGk+C,GACvBlkD,EAAM/L,EAAIA,EACV+L,EAAM9L,EAAIA,EACV8L,EAAMhQ,MAAQ8K,EACdkF,EAAMtF,OAASI,GAEjB+nF,OAAQ,SAAU5uF,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAE5BA,EAAM4sC,GAAK34C,EAAI+R,EAAI,EACnBhG,EAAM6sC,GAAK34C,EAAIgwD,EAAI,EACnBlkD,EAAMqC,EAAIhI,KAAK6E,IAAI8G,EAAGk+C,GAAK,GAE7BokJ,QAAS,SAAUr0M,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAC7BA,EAAM4sC,GAAK34C,EAAI+R,EAAI,EACnBhG,EAAM6sC,GAAK34C,EAAIgwD,EAAI,EACnBlkD,EAAMhQ,MAAQgW,EACdhG,EAAMtF,OAASwpD,GAEjBqkJ,IAAK,SAAUt0M,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GACzBA,EAAM/L,EAAIA,EAAI+R,EAAI,EAClBhG,EAAM9L,EAAIA,EAAIgwD,EAAI,EAClBlkD,EAAMhQ,MAAQgW,EACdhG,EAAMtF,OAASwpD,GAEjBskJ,MAAO,SAAUv0M,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAC3BA,EAAM/L,EAAIA,EAAI+R,EAAI,EAClBhG,EAAM9L,EAAIA,EAAIgwD,EAAI,EAClBlkD,EAAMhQ,MAAQgW,EACdhG,EAAMtF,OAASwpD,GAEjBukJ,SAAU,SAAUx0M,EAAGC,EAAG8R,EAAGk+C,EAAGlkD,GAC9BA,EAAM4sC,GAAK34C,EAAI+R,EAAI,EACnBhG,EAAM6sC,GAAK34C,EAAIgwD,EAAI,EACnBlkD,EAAMhQ,MAAQgW,EACdhG,EAAMtF,OAASwpD,IAGfykJ,EAAqB,GACzBv3M,EAAOzD,KAAKw6M,GAAa,SAAU75E,EAAMnzH,GACvCwtM,EAAmBxtM,GAAQ,IAAImzH,KAEjC,IAAIlmF,EAAY92C,EAAQolE,YAAY,CAClCzoE,KAAM,SACN+R,MAAO,CACLohC,WAAY,GACZntC,EAAG,EACHC,EAAG,EACHlE,MAAO,EACP0K,OAAQ,GAEVohD,sBAAuB,SAAUp+C,EAAK1J,EAAOwG,GAC3C,IAAIoU,EAAMktC,EAAsBp+C,EAAK1J,EAAOwG,GACxCwF,EAAQxR,KAAKwR,MAMjB,OAJIA,GAA8B,QAArBA,EAAMohC,YAA+C,WAAvBptC,EAAMmoE,eAC/CvtD,EAAI1a,EAAIsG,EAAKtG,EAAkB,GAAdsG,EAAKE,QAGjBkU,GAETqrC,UAAW,SAAUhnB,EAAKjzB,EAAO4oM,GAC/B,IAAIxnK,EAAaphC,EAAMohC,WAEvB,GAAmB,SAAfA,EAAuB,CACzB,IAAIynK,EAAcF,EAAmBvnK,GAEhCynK,IAEHznK,EAAa,OACbynK,EAAcF,EAAmBvnK,IAGnCsnK,EAAkBtnK,GAAYphC,EAAM/L,EAAG+L,EAAM9L,EAAG8L,EAAMhQ,MAAOgQ,EAAMtF,OAAQmuM,EAAY7oM,OACvF6oM,EAAY5uJ,UAAUhnB,EAAK41K,EAAY7oM,MAAO4oM,OAKpD,SAASE,EAAmB1iM,EAAO2iM,GACjC,GAAkB,UAAdv6M,KAAKP,KAAkB,CACzB,IAAI+6M,EAAcx6M,KAAKwF,MACnBi1M,EAAcz6M,KAAKwR,MAEnBipM,GAA0C,SAA3BA,EAAY7nK,WAC7B4nK,EAAY37J,OAASjnC,EACZ5X,KAAK06M,gBACdF,EAAY37J,OAASjnC,EACrB4iM,EAAY9oM,KAAO6oM,GAAc,SAGjCC,EAAY9oM,OAAS8oM,EAAY9oM,KAAOkG,GACxC4iM,EAAY37J,SAAW27J,EAAY37J,OAASjnC,IAG9C5X,KAAKsS,OAAM,IAgBf,SAAStP,EAAa4vC,EAAYntC,EAAGC,EAAG8R,EAAGk+C,EAAG99C,EAAOwiC,GAEnD,IAMIC,EANA4E,EAA0C,IAAhCrM,EAAW/f,QAAQ,SA2BjC,OAzBIosB,IACFrM,EAAaA,EAAWwkF,OAAO,EAAG,GAAG9kC,cAAgB1/C,EAAWwkF,OAAO,IAMvE/8E,EADqC,IAAnCzH,EAAW/f,QAAQ,YACR/vB,EAAQ+lE,UAAUj2B,EAAWtrC,MAAM,GAAI,IAAIiF,EAAa9G,EAAGC,EAAG8R,EAAGk+C,GAAItb,EAAa,SAAW,SAC/D,IAAlCxH,EAAW/f,QAAQ,WACf/vB,EAAQ2lE,SAAS71B,EAAWtrC,MAAM,GAAI,GAAI,IAAIiF,EAAa9G,EAAGC,EAAG8R,EAAGk+C,GAAItb,EAAa,SAAW,SAEhG,IAAIR,EAAU,CACzBpoC,MAAO,CACLohC,WAAYA,EACZntC,EAAGA,EACHC,EAAGA,EACHlE,MAAOgW,EACPtL,OAAQwpD,KAKdrb,EAAWqgK,eAAiBz7J,EAC5B5E,EAAWtH,SAAWunK,EACtBjgK,EAAWtH,SAASn7B,GACbyiC,EAGT13C,EAAQK,aAAeA,G,qBCnUvB,IAAImuG,EAAgB,EAAQ,QAoBxB5xG,EAAW4xG,EAAc3xG,OAAO,CAClCC,KAAM,kBAKNsB,cAAe,CACb45M,UAAU,EAEVhpG,UAAU,EAEV+1B,kBAAkB,EAElBC,iBAAiB,EAEjBC,kBAAkB,EAElBC,yBAAyB,KAI7BnlI,EAAOC,QAAUpD,G,qBCzCjB,IAAIuD,EAAU,EAAQ,QAElBwkE,EAAyB,EAAQ,QAEjCszI,EAAc,EAAQ,QAEtBC,EAAmB,EAAQ,QAqB3BC,EAAiBh4M,EAAQolE,YAAY,CACvC12D,MAAO,CACL8sC,UAAU,EACVwR,UAAW,EACXsqG,KAAM,IAER3uG,UAAW,SAAUvqC,EAAM1P,GACzB,IAAI4oJ,EAAO5oJ,EAAM4oJ,KACbtqG,EAAYt+C,EAAMs+C,UAEtB,GAAIt+C,EAAM8sC,SACR,IAAK,IAAIrwC,EAAI,EAAGA,EAAImsJ,EAAKnvJ,QAAS,CAChC,IAAIkX,EAAQi4I,EAAKnsJ,KAEjB,GAAIkU,EAAQ,EAAG,CACbjB,EAAKiN,OAAOisI,EAAKnsJ,KAAMmsJ,EAAKnsJ,MAE5B,IAAK,IAAIgI,EAAI,EAAGA,EAAIkM,EAAOlM,IACzBiL,EAAKyqC,OAAOyuG,EAAKnsJ,KAAMmsJ,EAAKnsJ,YAKlC,IAASA,EAAI,EAAGA,EAAImsJ,EAAKnvJ,QAAS,CAChC,IAAI+vD,EAAKo/F,EAAKnsJ,KACVgtD,EAAKm/F,EAAKnsJ,KACVmsD,EAAKggG,EAAKnsJ,KACVosD,EAAK+/F,EAAKnsJ,KAGd,GAFAiT,EAAKiN,OAAO6sC,EAAIC,GAEZnL,EAAY,EAAG,CACjB,IAAIwK,GAAMU,EAAKZ,GAAM,GAAKa,EAAKZ,GAAMvK,EACjCyK,GAAMU,EAAKZ,GAAM,GAAKD,EAAKY,GAAMlL,EACrC5uC,EAAKy5C,iBAAiBL,EAAIC,EAAIH,EAAIC,QAElCn5C,EAAKyqC,OAAOyO,EAAIC,KAKxB0gJ,cAAe,SAAUt1M,EAAGC,GAC1B,IAAI8L,EAAQxR,KAAKwR,MACb4oJ,EAAO5oJ,EAAM4oJ,KACbtqG,EAAYt+C,EAAMs+C,UAEtB,GAAIt+C,EAAM8sC,SAGR,IAFA,IAAI19C,EAAY,EAEPqN,EAAI,EAAGA,EAAImsJ,EAAKnvJ,QAAS,CAChC,IAAIkX,EAAQi4I,EAAKnsJ,KAEjB,GAAIkU,EAAQ,EAIV,IAHA,IAAI64C,EAAKo/F,EAAKnsJ,KACVgtD,EAAKm/F,EAAKnsJ,KAELgI,EAAI,EAAGA,EAAIkM,EAAOlM,IAAK,CAC9B,IAAImkD,EAAKggG,EAAKnsJ,KACVosD,EAAK+/F,EAAKnsJ,KAEd,GAAI2sM,EAAYv2C,cAAcrpG,EAAIC,EAAIb,EAAIC,GACxC,OAAOz5D,EAKbA,SAKF,IAFIA,EAAY,EAEPqN,EAAI,EAAGA,EAAImsJ,EAAKnvJ,QAAS,CAC5B+vD,EAAKo/F,EAAKnsJ,KACVgtD,EAAKm/F,EAAKnsJ,KACVmsD,EAAKggG,EAAKnsJ,KACVosD,EAAK+/F,EAAKnsJ,KAEd,GAAI6hD,EAAY,EAAG,CACjB,IAAIwK,GAAMU,EAAKZ,GAAM,GAAKa,EAAKZ,GAAMvK,EACjCyK,GAAMU,EAAKZ,GAAM,GAAKD,EAAKY,GAAMlL,EAErC,GAAI+qJ,EAAiBx2C,cAAcrpG,EAAIC,EAAIX,EAAIC,EAAIH,EAAIC,GACrD,OAAOz5D,OAGT,GAAIg6M,EAAYv2C,cAAcrpG,EAAIC,EAAIb,EAAIC,GACxC,OAAOz5D,EAIXA,IAIJ,OAAQ,KAIZ,SAASo6M,IACPh7M,KAAKsD,MAAQ,IAAIR,EAAQ6B,MAG3B,IAAIs2M,EAAiBD,EAAcltM,UAEnCmtM,EAAe9+B,aAAe,WAC5B,OAAQn8K,KAAK08K,cAQfu+B,EAAehnK,WAAa,SAAU1zC,GACpCP,KAAKsD,MAAMC,YACX,IAAI23M,EAAS,IAAIJ,EAAe,CAC9BjuJ,WAAW,EACX1hB,OAAQ,YAEV+vK,EAAO/sJ,SAAS,CACdisG,KAAM75J,EAAKwgB,UAAU,iBAGvB/gB,KAAKm7M,WAAWD,EAAQ36M,GAGxBP,KAAKsD,MAAMgC,IAAI41M,GACfl7M,KAAK08K,aAAe,MAOtBu+B,EAAe5+B,yBAA2B,SAAU97K,GAClDP,KAAKsD,MAAMC,YAEXvD,KAAKy8K,oBAEDl8K,EAAK4hB,QAAU,KACZniB,KAAK08K,eACR18K,KAAK08K,aAAe,IAAIp1G,EAAuB,CAC7C11D,QAAQ,KAIZ5R,KAAKsD,MAAMgC,IAAItF,KAAK08K,eAEpB18K,KAAK08K,aAAe,MAQxBu+B,EAAe1+B,kBAAoB,SAAUlsB,EAAY9vJ,GACvD,IAAI26M,EAAS,IAAIJ,EACjBI,EAAO/sJ,SAAS,CACdisG,KAAM75J,EAAKwgB,UAAU,iBAGvB/gB,KAAKm7M,WAAWD,EAAQ36M,IAAQP,KAAK08K,cAEhC18K,KAAK08K,aAMR18K,KAAK08K,aAAaxmE,eAAeglG,GAAQ,IALzCA,EAAOruJ,WAAY,EACnBquJ,EAAO/vK,OAAS,UAChB+vK,EAAOn0D,aAAesJ,EAAW97I,MACjCvU,KAAKsD,MAAMgC,IAAI41M,KAUnBD,EAAe54K,OAAS,WACtBriC,KAAKy8K,oBAELz8K,KAAK08K,aAAe,KACpB18K,KAAKsD,MAAMC,aAGb03M,EAAeE,WAAa,SAAUD,EAAQ36M,EAAM66M,GAClD,IAAIp8L,EAAYze,EAAKye,UACrBk8L,EAAO/sJ,SAAS,CACd7P,SAAUt/B,EAAU9c,IAAI,YACxB4tD,UAAW9wC,EAAU9c,IAAI,yBAE3Bg5M,EAAOn/J,SAAS/8B,EAAUiC,SAAS,aAAa29B,gBAChDs8J,EAAO11M,MAAMs7B,eAAgB,EAC7B,IAAIT,EAAc9/B,EAAKkhB,UAAU,SAE7B4e,GACF66K,EAAOr6K,SAAS,SAAUR,GAG5B66K,EAAOr6K,SAAS,QAEXu6K,IAGHF,EAAOnkK,YAAc/3B,EAAU+3B,YAC/BmkK,EAAOt0M,GAAG,aAAa,SAAU+lB,GAC/BuuL,EAAOt6M,UAAY,KACnB,IAAIA,EAAYs6M,EAAOH,cAAcpuL,EAAE2uD,QAAS3uD,EAAE4uD,SAE9C36E,EAAY,IAEds6M,EAAOt6M,UAAYA,EAAYs6M,EAAOn0D,mBAM9Ck0D,EAAex+B,kBAAoB,WACjC,IAAIhhI,EAAcz7C,KAAK08K,aAEnBjhI,GACFA,EAAYw6D,oBAIhB,IAAI12G,EAAWy7M,EACft4M,EAAOC,QAAUpD,G,qBC5PjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAIu4L,EAAY,EAAQ,QAEpB0a,EAAe,EAAQ,QAEvBliH,EAAa,EAAQ,QAoBzB/wF,EAAQ2mB,eAAe4xK,EAAU,WACjCv4L,EAAQyrB,eAAewnL,GACvBjzM,EAAQ+2E,kBAAkBga,EAAW,Y,qBChCrC,IAAI/wF,EAAU,EAAQ,QAoBlBk0I,EAAO,0BAEX,SAASg/D,EAAK/wL,EAAIgxL,EAAaC,GAC7B,IAAIh/D,EAAQi/D,EAASlxL,GACrBiyH,EAAM++D,GAAeC,EAGvB,SAASE,EAAQnxL,EAAIgxL,EAAaC,GAChC,IAAIh/D,EAAQi/D,EAASlxL,GACjBoxL,EAAOn/D,EAAM++D,GAEbI,IAASH,IACXh/D,EAAM++D,GAAe,MAIzB,SAASjzE,EAAQ/9G,EAAIgxL,GACnB,QAASE,EAASlxL,GAAIgxL,GAGxB,SAASE,EAASlxL,GAChB,OAAOA,EAAG+xH,KAAU/xH,EAAG+xH,GAAQ,IAWjCl0I,EAAQC,eAAe,CACrB5I,KAAM,mBACN6I,MAAO,oBACPC,OAAQ,WACP,eACH5F,EAAQ24M,KAAOA,EACf34M,EAAQ+4M,QAAUA,EAClB/4M,EAAQ2lI,QAAUA,G,qBC3DlB,IAAIlgI,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB06B,EAAU,EAAQ,QAoBlBo+K,EAAiB,sBACjBC,EAAsB,qBAEtBt8M,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,MACN6R,OAAQ,SAAUwqM,EAAUh8M,EAASyG,EAAK23B,GAExC,IAAIA,GAA4B,oBAAjBA,EAAQz+B,MAA8By+B,EAAQl2B,OAAShI,KAAKiI,IAA3E,CAIA,IAAI3E,EAAQtD,KAAKsD,MAGjB,GAFAA,EAAMC,aAEFu4M,EAASv9K,kBAAb,CAKA,GAAML,GAA4B,YAAjBA,EAAQz+B,MAAgD,WAA1By+B,EAAQ4D,eAA8B5D,EAAQlX,WAAa80L,EAAS3zM,GAW5G,CACDs0B,EAAUz8B,KAAK0+K,SACnBjiJ,GAAWn5B,EAAMgC,IAAIm3B,EAAQn5B,YAZ7B,GAAIw4M,EAAStpE,aAAc,CACzB,IAAI/1G,EAAUz8B,KAAK0+K,UAAY,IAAIlhJ,EAAQj3B,GAAK,GAChDjD,EAAMgC,IAAIm3B,EAAQn5B,OAClBm5B,EAAQwB,KAAK69K,EAAUh8M,EAASyG,EAAKvG,KAAMk+B,GAC3Cl+B,KAAK0+K,SAAWjiJ,OAGhBz8B,KAAK0+K,UAAY1+K,KAAK0+K,SAASr8I,SAC/BriC,KAAK0+K,SAAW,KAOpBo9B,EAAS55M,IAAI,qBAAuBpC,EAAQmC,aAAa,WAAajC,KAAK+7M,eAAeD,EAAUh8M,EAASyG,MAE/G87B,OAAQ,WACNriC,KAAK0+K,UAAY1+K,KAAK0+K,SAASr8I,SAC/BriC,KAAK0+K,SAAW,KAChB1+K,KAAKsD,MAAMC,aAEbgrB,QAAS,WACPvuB,KAAK0+K,UAAY1+K,KAAK0+K,SAASr8I,SAC/BriC,KAAK0+K,SAAW,MAElBq9B,eAAgB,SAAUD,EAAUh8M,EAASyG,GAC3C,IAAI0sI,EAAe6oE,EAAS7oE,aACxB3vI,EAAQtD,KAAKsD,MACjB2vI,EAAa9zI,KAAK8zI,EAAajpI,aAAa,UAAU,SAAU2D,EAAOquM,GACrE,IAAIjjM,MAAMpL,GAAV,CAIA,IAAI1K,EAASgwI,EAAajyH,cAAcg7L,GAExC,GAAK/4M,GAAWA,EAAOq0B,MAAvB,CAKA,IAAIA,EAAQr0B,EAAOq0B,MACfxiB,EAAS7R,EAAO6R,OAChBu/E,EAAS,IAAIvxF,EAAQo+C,OAAO,CAC9B17C,MAAO,CAMLkM,KAAMoqM,EAASt7M,UAAUihB,UAAU,UAErCjQ,MAAO,CACL4sC,GAAI9mB,EAAM,GAAc,EAATxiB,EACfupC,GAAI/mB,EAAM,GACVzjB,EAAG,GAELjC,QAAQ,EAERR,GAAI,GAAM0D,EAAwC,EAA/BhS,EAAQ2kE,iBAAmB,KAWhD,IAAK3yD,EAAQ,CACX,IAAImnM,EAAWH,EAASI,WAAW17M,UAC/BmM,EAAOsmI,EAAah2F,QAAQ++J,GAC5BG,EAAYF,EAAS77K,YAAYzzB,GACjCwU,EAAY8xH,EAAa7xH,aAAa46L,GACtC97K,EAAa/e,EAAUF,SAAS,SAChCkf,EAAkBhf,EAAUF,SAAS,kBACrCse,EAAc08K,EAAS1iK,iBAAiB4iK,GAQxCt1B,EAAajkL,EAAO6xB,UAAUqnL,EAASlnJ,kBAAkBunJ,EAAW,UAAWxvM,GAC/Em6K,EAAelkL,EAAO6xB,UAAUqnL,EAASlnJ,kBAAkBunJ,EAAW,YAAat1B,GACnFu1B,EAAiB78K,EAAYq8K,GAC7BS,EAAgBxwM,KAAKixH,SAEzB,IAAKs/E,EAAgB,CACnBA,EAAiB78K,EAAYq8K,GAAkB,GAC/C,IAAIt0G,EAAa1kG,EAAO4G,MAAM8yM,GAAkB,GAC5C70G,EAAW7kG,EAAO4G,MAAM8yM,GAAkB,GAC9C/8K,EAAY34B,GAAG,YAAa0gG,GAAY1gG,GAAG,WAAY6gG,GAAU7gG,GAAG,WAAY0gG,GAAY1gG,GAAG,SAAU6gG,GAI3GloE,EAAYs8K,GAAuBQ,EACnCz5M,EAAOpD,OAAO48M,EAAgB,CAC5BC,cAAeA,EACfhoH,OAAQA,EACRn0D,WAAYA,EACZC,gBAAiBA,EACjB2mJ,aAAcA,EACdD,WAAYA,IAId01B,EAAoBH,GAAgB,GAGtC94M,EAAMgC,IAAI+uF,WAKhB,SAASioH,EAAiBE,GACxB,IAAIJ,EAAiBp8M,KAAK47M,GAEtBQ,GAAkBA,EAAeC,gBAAkBr8M,KAAK67M,IAC1DU,EAAoBH,EAAgBI,GAIxC,SAASD,EAAoBH,EAAgBI,GAC3C,IAAInoH,EAAS+nH,EAAe/nH,OACxBn0D,EAAak8K,EAAel8K,WAC5BC,EAAkBi8K,EAAej8K,gBACjC2mJ,EAAes1B,EAAet1B,aAC9BD,EAAau1B,EAAev1B,WAE5B21B,GACFnoH,EAAO7uF,MAAMilE,WAAW3nE,EAAQmqE,aAAa,GAAI9sC,EAAiB,CAChEx6B,KAAMw6B,EAAgBj+B,IAAI,QAAU4kL,EAAe,MAClD,CACD5pI,YAAY,EACZxb,gBAAgB,IACf,IAEH2yD,EAAOooH,gBAAkBpoH,EAAOjjF,GAChCijF,EAAOjjF,IAAMtO,EAAQ2kE,mBAErB3kE,EAAQmqE,aAAaonB,EAAO7uF,MAAO06B,EAAY,CAC7Cv6B,KAAMu6B,EAAWh+B,IAAI,QAAU2kL,EAAa,KAC5Cl5G,aAAcztC,EAAWsc,WAAW,aAAe,UAClD,CACDU,YAAY,EACZxb,gBAAgB,IAGlB2yD,EAAO/hF,OAAM,GAEiB,MAA1B+hF,EAAOooH,kBACTpoH,EAAOjjF,GAAKijF,EAAOooH,gBACnBpoH,EAAOooH,gBAAkB,OAK/B/5M,EAAOC,QAAUpD,G,qBClOjB,IAAIL,EAAQ,EAAQ,QAEhBu1B,EAAYv1B,EAAMu1B,UAClB0hJ,EAAYj3K,EAAMi3K,UAClBh3K,EAAOD,EAAMC,KACbkrB,EAAoBnrB,EAAMmrB,kBAC1BxK,EAAW3gB,EAAM2gB,SACjBoG,EAAW/mB,EAAM+mB,SAEjByqG,EAAc,EAAQ,QAEtBgsF,EAAkB,EAAQ,QAE1Bp3K,EAAc,EAAQ,QAEtBomD,EAAY,EAAQ,QAEpBC,EAAY,EAAQ,QAEpBC,EAAkBD,EAAUC,gBAC5BgoG,EAAmBjoG,EAAUioG,iBAC7BngE,EAAe/C,EAAY+C,aAE3BkpF,EAAmB,CACrBpyM,KAAM,EACNE,MAAO,EACPiuB,OAAQ,GAENkkL,EAA4B,CAC9BpyM,IAAK,EACLE,OAAQ,EACRq+E,OAAQ,GAIN8zH,EAA4B,CAAC,CAAC,iBAAkB,aAAc,GAAI,CAAC,oBAAqB,gBAAiB,GAAI,CAAC,oBAAqB,gBAAiB,GAAI,CAAC,kBAAmB,cAAe,gBAC3LC,EAAyB,GACzBC,EAAwB,GAM5B,SAAS3pF,EAAmB5tH,GAG1B,OAFAw3M,EAAex3M,GACfrG,EAAKqG,EAAM8oE,KAAM0uI,GACVx3M,EAGT,SAASw3M,EAAex3M,GACtB,GAAIA,EAAO,CACTA,EAAMojC,KAAO8nF,EAAYusF,SAASz3M,GAClC,IAAIK,EAAYL,EAAMK,UACR,WAAdA,IAA2BA,EAAY,UACvCL,EAAMK,UAAyB,MAAbA,GAAqB82M,EAAiB92M,GAAaA,EAAY,OAEjF,IAAID,EAAoBJ,EAAMI,mBAAqBJ,EAAMkwF,aACnC,WAAtB9vF,IAAmCA,EAAoB,UACvDJ,EAAMI,kBAAyC,MAArBA,GAA6Bg3M,EAA0Bh3M,GAAqBA,EAAoB,MAC1H,IAAI2pE,EAAc/pE,EAAM+pE,YAEpBA,IACF/pE,EAAM+pE,YAAcllD,EAAkB7kB,EAAM+pE,eAclD,SAASkyG,EAAWz5B,EAAQvjH,EAAK9+B,EAAMH,EAAOwG,EAAMy5B,GAClDjgC,EAAM8oE,KAAO4uI,EAAel1D,EAAQvjH,EAAK9+B,EAAMH,EAAOwG,EAAMy5B,GAAU03K,EAAgBn1D,EAAQvjH,EAAK9+B,EAAMH,EAAOwG,EAAMy5B,GAKxH,SAAS03K,EAAgBn1D,EAAQvjH,EAAK9+B,EAAMH,EAAOwG,EAAMy5B,GACvD,aAEA,IACIinD,EADA0wH,EAAaC,EAAmB73M,GAEhC83M,GAAa,EACbC,EAAa94K,EAAImoD,iBAAmBhB,EAAgB+nG,WAEpDluJ,IAAWmuJ,GACTnuJ,IACFinD,EAAYjnD,EAAOjgC,MACnB83M,GAAcF,GAAcG,GAAc7wH,GAM5CjoD,EAAImoD,eAAiBwwH,EAAaxxH,EAAgBilC,KAAOjlC,EAAgB+nG,YAGlE4pB,IACL94K,EAAImoD,eAAiBhB,EAAgBilC,MAGzC,IAAI2sF,EAAYh4M,EAAMojC,MAAQ6qF,EAWzB6pF,GAAcE,KAAe9wH,EAAU9jD,MAAQ6qF,KAClDhvF,EAAImE,KAAO40K,GAMb,IAAI9pF,EAAes0B,EAAOr0B,eAEtBq0B,EAAOp0B,cAAgB4pF,IACzBx1D,EAAOp0B,YAAc4pF,EACrB9pF,EAAes0B,EAAOr0B,eAAiBlvF,EAAImE,MAG7C,IAAI2mC,EAAc/pE,EAAM+pE,YACpBN,EAAiBzpE,EAAMypE,eACvB4kD,EAAem0B,EAAOl0B,kBAErBD,IAAgBm0B,EAAO/6F,cAC1B4mE,EAAem0B,EAAOl0B,kBAAoBpD,EAAYqD,eAAepuH,EAAM+tH,EAAcnkD,EAAaN,EAAgBzpE,EAAMgnF,WAG9H,IAAIwnC,EAAcH,EAAaG,YAC3BgB,EAAYnB,EAAavyE,MACzB2yE,EAAaJ,EAAaI,WAC1BwpF,EAASvpF,EAAe6oF,EAAuB/0D,EAAQxiJ,EAAOwG,GAC9DmoH,EAAQspF,EAAOtpF,MACfC,EAAQqpF,EAAOrpF,MACfvuH,EAAY43M,EAAO53M,WAAa,OAChCD,EAAoB63M,EAAO73M,kBAE/B83M,EAAkBj5K,EAAKj/B,EAAOwG,EAAMmoH,EAAOC,GAC3C,IAAIE,EAAO5D,EAAY6D,YAAYH,EAAOJ,EAAapuH,GACnD66E,EAAQ0zC,EACRzzC,EAAQ4zC,EAEZ,GAAI8oF,GAAc7tI,EAAa,CAE7B,IAAIL,EAAYwhD,EAAY1kG,SAASrmB,EAAM+tH,GACvCiqF,EAAazuI,EACjBK,IAAgBouI,GAAcpuI,EAAY,GAAKA,EAAY,IAC3D,IAAIquI,EAAOltF,EAAYmtF,YAAY1pF,EAAOwpF,EAAY93M,GACtDu3M,GAAcz8C,EAAe3Y,EAAQvjH,EAAKj/B,EAAOo4M,EAAMtpF,EAAMqpF,EAAY3pF,GAErEzkD,IACFkR,EAAQ+zC,EAAmBL,EAAOtuH,EAAW0pE,GAC7CmR,GAASnR,EAAY,IAOzB9qC,EAAI5+B,UAAYA,EAGhB4+B,EAAIixD,aAAe,SAEnBjxD,EAAIuoD,YAAcxnF,EAAM/D,SAAW,EAEnC,IAAK,IAAIwM,EAAI,EAAGA,EAAI4uM,EAA0B5xM,OAAQgD,IAAK,CACzD,IAAI6vM,EAAWjB,EAA0B5uM,GACrC8vM,EAAYD,EAAS,GACrBE,EAAUF,EAAS,GACnBryM,EAAMjG,EAAMu4M,GAEXT,GAAc7xM,IAAQihF,EAAUqxH,KACnCt5K,EAAIu5K,GAAWtyH,EAAUjnD,EAAKu5K,EAASvyM,GAAOqyM,EAAS,KAK3Dp9H,GAASuzC,EAAa,EACtB,IAAIrlD,EAAkBppE,EAAMopE,gBACxBqvI,EAAsBX,EAAa5wH,EAAU9d,gBAAkB,KAC/DsvI,GAAsBZ,GAAc1uI,IAAoBqvI,EACxDE,GAAiBb,GAAcY,GAAsB14M,EAAMmpE,aAAe+d,EAAU/d,WACpFA,EAAa+yG,EAAUl8K,EAAMmpE,WAAYC,GACzC/qE,EAAWu6M,EAAQ54M,EAAM3B,UAmB7B,GAjBI8qE,IACEuvI,IACFz5K,EAAIi0C,UAAY9J,GAGduvI,IACF15K,EAAIsoD,YAAcpe,IAIlB9qE,IACGy5M,GAAc93M,EAAM3B,WAAa6oF,EAAU7oF,WAC9C4gC,EAAIqoD,UAAYjpF,IAKK,IAArBmxH,EAAU/pH,OAEZ0jE,GAAclqC,EAAI45K,WAAWrpF,EAAU,GAAIv0C,EAAOC,GAClD78E,GAAY4gC,EAAI65K,SAAStpF,EAAU,GAAIv0C,EAAOC,QAE9C,IAASzyE,EAAI,EAAGA,EAAI+mH,EAAU/pH,OAAQgD,IAEpC0gE,GAAclqC,EAAI45K,WAAWrpF,EAAU/mH,GAAIwyE,EAAOC,GAClD78E,GAAY4gC,EAAI65K,SAAStpF,EAAU/mH,GAAIwyE,EAAOC,GAC9CA,GAASuzC,EAKf,SAASipF,EAAel1D,EAAQvjH,EAAK9+B,EAAMH,EAAOwG,EAAMy5B,GAGlDA,IAAWmuJ,IACbnvJ,EAAImoD,eAAiBhB,EAAgBilC,MAGvC,IAAIgD,EAAem0B,EAAOl0B,kBAErBD,IAAgBm0B,EAAO/6F,cAC1B4mE,EAAem0B,EAAOl0B,kBAAoBpD,EAAY6tF,cAAc54M,EAAMH,IAG5Eg5M,EAAax2D,EAAQvjH,EAAKovF,EAAcruH,EAAOwG,GAGjD,SAASwyM,EAAax2D,EAAQvjH,EAAKovF,EAAcruH,EAAOwG,GACtD,IAAIyyM,EAAe5qF,EAAaryH,MAC5Bm8M,EAAa9pF,EAAa8pF,WAC1B3pF,EAAcH,EAAaG,YAC3BzkD,EAAc/pE,EAAM+pE,YACpBkuI,EAASvpF,EAAe6oF,EAAuB/0D,EAAQxiJ,EAAOwG,GAC9DmoH,EAAQspF,EAAOtpF,MACfC,EAAQqpF,EAAOrpF,MACfvuH,EAAY43M,EAAO53M,UACnBD,EAAoB63M,EAAO73M,kBAE/B83M,EAAkBj5K,EAAKj/B,EAAOwG,EAAMmoH,EAAOC,GAC3C,IAAIwpF,EAAOltF,EAAYmtF,YAAY1pF,EAAOwpF,EAAY93M,GAClDyuH,EAAO5D,EAAY6D,YAAYH,EAAOJ,EAAapuH,GACnDwnG,EAAQwwG,EACRc,EAAUpqF,EAEV/kD,IACF69B,GAAS79B,EAAY,GACrBmvI,GAAWnvI,EAAY,IAGzB,IAAI89B,EAASD,EAAQqxG,EACrBpB,EAAmB73M,IAAUm7J,EAAe3Y,EAAQvjH,EAAKj/B,EAAOo4M,EAAMtpF,EAAMqpF,EAAY3pF,GAExF,IAAK,IAAI/lH,EAAI,EAAGA,EAAI4lH,EAAavyE,MAAMr2C,OAAQgD,IAAK,CAClD,IASI0wM,EATAz3H,EAAO2sC,EAAavyE,MAAMrzC,GAC1B2wM,EAAS13H,EAAK03H,OACdC,EAAaD,EAAO3zM,OACpBgpH,EAAa/sC,EAAK+sC,WAClB6qF,EAAY53H,EAAK1lF,MACjB62H,EAAY,EACZ0mF,EAAY3xG,EACZ4xG,EAAa3xG,EACbirB,EAAaumF,EAAa,EAG9B,MAAOxmF,EAAYwmF,IAAeF,EAAQC,EAAOvmF,IAAasmF,EAAM94M,WAAiC,SAApB84M,EAAM94M,WACrFo5M,EAAWj3D,EAAQvjH,EAAKk6K,EAAOn5M,EAAOyuH,EAAYyqF,EAASK,EAAW,QACtED,GAAaH,EAAMn9M,MACnBu9M,GAAaJ,EAAMn9M,MACnB62H,IAGF,MAAOC,GAAc,IAAMqmF,EAAQC,EAAOtmF,GAAiC,UAApBqmF,EAAM94M,WAC3Do5M,EAAWj3D,EAAQvjH,EAAKk6K,EAAOn5M,EAAOyuH,EAAYyqF,EAASM,EAAY,SACvEF,GAAaH,EAAMn9M,MACnBw9M,GAAcL,EAAMn9M,MACpB82H,IAIFymF,IAAcN,GAAgBM,EAAY3xG,IAAUC,EAAS2xG,GAAcF,GAAa,EAExF,MAAOzmF,GAAaC,EAClBqmF,EAAQC,EAAOvmF,GAEf4mF,EAAWj3D,EAAQvjH,EAAKk6K,EAAOn5M,EAAOyuH,EAAYyqF,EAASK,EAAYJ,EAAMn9M,MAAQ,EAAG,UACxFu9M,GAAaJ,EAAMn9M,MACnB62H,IAGFqmF,GAAWzqF,GAIf,SAASypF,EAAkBj5K,EAAKj/B,EAAOwG,EAAMvG,EAAGC,GAE9C,GAAIsG,GAAQxG,EAAMsoE,aAAc,CAC9B,IAAIvqC,EAAS/9B,EAAM+mF,WAEJ,WAAXhpD,GACF99B,EAAIuG,EAAKxK,MAAQ,EAAIwK,EAAKvG,EAC1BC,EAAIsG,EAAKE,OAAS,EAAIF,EAAKtG,GAClB69B,IACT99B,EAAI89B,EAAO,GAAKv3B,EAAKvG,EACrBC,EAAI69B,EAAO,GAAKv3B,EAAKtG,GAGvB++B,EAAImf,UAAUn+C,EAAGC,GAEjB++B,EAAIW,QAAQ5/B,EAAMsoE,cAClBrpC,EAAImf,WAAWn+C,GAAIC,IAIvB,SAASu5M,EAAWj3D,EAAQvjH,EAAKk6K,EAAOn5M,EAAOyuH,EAAYyqF,EAASj5M,EAAGI,GACrE,IAAIq5M,EAAa15M,EAAM8oE,KAAKqwI,EAAMh8H,YAAc,GAChDu8H,EAAWv5M,KAAOg5M,EAAMh5M,KAGxB,IAAIC,EAAoB+4M,EAAM/4M,kBAC1BF,EAAIg5M,EAAUzqF,EAAa,EAEL,QAAtBruH,EACFF,EAAIg5M,EAAUC,EAAMzyM,OAAS,EACE,WAAtBtG,IACTF,EAAIg5M,EAAUzqF,EAAa0qF,EAAMzyM,OAAS,IAG3CyyM,EAAMQ,cAAgB9B,EAAmB6B,IAAev+C,EAAe3Y,EAAQvjH,EAAKy6K,EAA0B,UAAdr5M,EAAwBJ,EAAIk5M,EAAMn9M,MAAsB,WAAdqE,EAAyBJ,EAAIk5M,EAAMn9M,MAAQ,EAAIiE,EAAGC,EAAIi5M,EAAMzyM,OAAS,EAAGyyM,EAAMn9M,MAAOm9M,EAAMzyM,QACtO,IAAIqjE,EAAcovI,EAAMpvI,YAEpBA,IACF9pE,EAAI+uH,EAAmB/uH,EAAGI,EAAW0pE,GACrC7pE,GAAKi5M,EAAMzyM,OAAS,EAAIqjE,EAAY,GAAKovI,EAAMxvI,WAAa,GAG9DiwI,EAAO36K,EAAK,aAAc0xI,EAAU+oC,EAAWpvI,eAAgBtqE,EAAMsqE,eAAgB,IACrFsvI,EAAO36K,EAAK,cAAey6K,EAAWrvI,iBAAmBrqE,EAAMqqE,iBAAmB,eAClFuvI,EAAO36K,EAAK,gBAAiB0xI,EAAU+oC,EAAWnvI,kBAAmBvqE,EAAMuqE,kBAAmB,IAC9FqvI,EAAO36K,EAAK,gBAAiB0xI,EAAU+oC,EAAWlvI,kBAAmBxqE,EAAMwqE,kBAAmB,IAC9FovI,EAAO36K,EAAK,YAAa5+B,GAGzBu5M,EAAO36K,EAAK,eAAgB,UAC5B26K,EAAO36K,EAAK,OAAQk6K,EAAM/1K,MAAQ6qF,GAClC,IAAI9kD,EAAa+yG,EAAUw9B,EAAWvwI,YAAcnpE,EAAMmpE,WAAYC,GAClE/qE,EAAWu6M,EAAQc,EAAWr7M,UAAY2B,EAAM3B,UAChD+qE,EAAkBn6C,EAAUyqL,EAAWtwI,gBAAiBppE,EAAMopE,iBAE9DD,IACFywI,EAAO36K,EAAK,YAAamqC,GACzBwwI,EAAO36K,EAAK,cAAekqC,GAC3BlqC,EAAI45K,WAAWM,EAAMh5M,KAAMF,EAAGC,IAG5B7B,IACFu7M,EAAO36K,EAAK,YAAa5gC,GACzB4gC,EAAI65K,SAASK,EAAMh5M,KAAMF,EAAGC,IAIhC,SAAS23M,EAAmB73M,GAC1B,SAAUA,EAAM8pE,qBAAuB9pE,EAAMoiE,iBAAmBpiE,EAAMmiE,iBAKxE,SAASg5F,EAAe3Y,EAAQvjH,EAAKj/B,EAAOC,EAAGC,EAAGlE,EAAO0K,GACvD,IAAIojE,EAAsB9pE,EAAM8pE,oBAC5B1H,EAAkBpiE,EAAMoiE,gBACxBD,EAAkBniE,EAAMmiE,gBACxB03I,EAAYx/L,EAASyvD,GAMzB,GALA8vI,EAAO36K,EAAK,aAAcj/B,EAAMkqE,mBAAqB,GACrD0vI,EAAO36K,EAAK,cAAej/B,EAAMiqE,oBAAsB,eACvD2vI,EAAO36K,EAAK,gBAAiBj/B,EAAMmqE,sBAAwB,GAC3DyvI,EAAO36K,EAAK,gBAAiBj/B,EAAMoqE,sBAAwB,GAEvDyvI,GAAaz3I,GAAmBD,EAAiB,CACnDljC,EAAIq1B,YACJ,IAAI0V,EAAmBhqE,EAAMgqE,iBAExBA,EAGHktI,EAAgBjxJ,UAAUhnB,EAAK,CAC7Bh/B,EAAGA,EACHC,EAAGA,EACHlE,MAAOA,EACP0K,OAAQA,EACR2H,EAAG27D,IAPL/qC,EAAIz4B,KAAKvG,EAAGC,EAAGlE,EAAO0K,GAWxBu4B,EAAImnB,YAGN,GAAIyzJ,EAGF,GAFAD,EAAO36K,EAAK,YAAa6qC,GAEA,MAArB9pE,EAAM0mF,YAAqB,CAC7B,IAAIozH,EAAsB76K,EAAIuoD,YAC9BvoD,EAAIuoD,YAAcxnF,EAAM0mF,YAAc1mF,EAAM/D,QAC5CgjC,EAAI/yB,OACJ+yB,EAAIuoD,YAAcsyH,OAElB76K,EAAI/yB,YAED,GAAIuU,EAASqpD,GAAsB,CACxC,IAAI3pC,EAAQ2pC,EAAoB3pC,MAChCA,EAAQL,EAAYO,oBAAoBF,EAAO,KAAMqiH,EAAQu3D,EAAiBjwI,GAE1E3pC,GAASL,EAAYS,aAAaJ,IACpClB,EAAI0B,UAAUR,EAAOlgC,EAAGC,EAAGlE,EAAO0K,GAItC,GAAI07D,GAAmBD,EAIrB,GAHAy3I,EAAO36K,EAAK,YAAamjC,GACzBw3I,EAAO36K,EAAK,cAAekjC,GAEA,MAAvBniE,EAAM2mF,cAAuB,CAC3BmzH,EAAsB76K,EAAIuoD,YAC9BvoD,EAAIuoD,YAAcxnF,EAAM2mF,cAAgB3mF,EAAM/D,QAC9CgjC,EAAIoa,SACJpa,EAAIuoD,YAAcsyH,OAElB76K,EAAIoa,SAKV,SAAS0gK,EAAgB55K,EAAO2pC,GAG9BA,EAAoB3pC,MAAQA,EAG9B,SAASuuF,EAAehlH,EAAK84I,EAAQxiJ,EAAOwG,GAC1C,IAAImoH,EAAQ3uH,EAAMC,GAAK,EACnB2uH,EAAQ5uH,EAAME,GAAK,EACnBG,EAAYL,EAAMK,UAClBD,EAAoBJ,EAAMI,kBAE9B,GAAIoG,EAAM,CACR,IAAI2hE,EAAenoE,EAAMmoE,aAEzB,GAAIA,aAAwB51D,MAE1Bo8G,EAAQnoH,EAAKvG,EAAI+uB,EAAam5C,EAAa,GAAI3hE,EAAKxK,OACpD4yH,EAAQpoH,EAAKtG,EAAI8uB,EAAam5C,EAAa,GAAI3hE,EAAKE,YAC/C,CACL,IAAIkU,EAAM4nI,GAAUA,EAAO16F,sBAAwB06F,EAAO16F,sBAAsBwvJ,EAAwBt3M,EAAOwG,GAAQ0kH,EAAYpjE,sBAAsBwvJ,EAAwBt3M,EAAOwG,GACxLmoH,EAAQ/zG,EAAI3a,EACZ2uH,EAAQh0G,EAAI1a,EAEZG,EAAYA,GAAaua,EAAIva,UAC7BD,EAAoBA,GAAqBwa,EAAIxa,kBAK/C,IAAIioE,EAAaroE,EAAMqoE,WAEnBA,IACFsmD,GAAStmD,EAAW,GACpBumD,GAASvmD,EAAW,IASxB,OALA3+D,EAAMA,GAAO,GACbA,EAAIilH,MAAQA,EACZjlH,EAAIklH,MAAQA,EACZllH,EAAIrJ,UAAYA,EAChBqJ,EAAItJ,kBAAoBA,EACjBsJ,EAGT,SAASkwM,EAAO36K,EAAKzR,EAAMrlB,GAEzB,OADA82B,EAAIzR,GAAQ04D,EAAUjnD,EAAKzR,EAAMrlB,GAC1B82B,EAAIzR,GASb,SAAS0uJ,EAAU7iI,EAAQ65B,GACzB,OAAiB,MAAV75B,GAAkB65B,GAAa,GAAgB,gBAAX75B,GAAuC,SAAXA,EAAoB,KACzFA,EAAOlZ,OAASkZ,EAAO4uC,WAAa,OAAS5uC,EAGjD,SAASu/J,EAAQ1sM,GACf,OAAe,MAARA,GAAyB,SAATA,EAAkB,KACvCA,EAAKi0B,OAASj0B,EAAK+7E,WAAa,OAAS/7E,EAG7C,SAAS8iB,EAAa7mB,EAAO84B,GAC3B,MAAqB,kBAAV94B,EACLA,EAAMm2F,YAAY,MAAQ,EACrB9Q,WAAWrlF,GAAS,IAAM84B,EAG5BusD,WAAWrlF,GAGbA,EAGT,SAAS6mH,EAAmB/uH,EAAGI,EAAW0pE,GACxC,MAAqB,UAAd1pE,EAAwBJ,EAAI8pE,EAAY,GAAmB,WAAd1pE,EAAyBJ,EAAI8pE,EAAY,GAAK,EAAIA,EAAY,GAAK,EAAI9pE,EAAI8pE,EAAY,GAS7I,SAAS8jD,EAAa1tH,EAAMH,GAC1B,OAAe,MAARG,IAAiBA,GAAQH,EAAM8pE,qBAAuB9pE,EAAMoiE,iBAAmBpiE,EAAMmiE,iBAAmBniE,EAAM+pE,aAGvH5sE,EAAQywH,mBAAqBA,EAC7BzwH,EAAQ8+K,WAAaA,EACrB9+K,EAAQuxH,eAAiBA,EACzBvxH,EAAQ++K,UAAYA,EACpB/+K,EAAQy7M,QAAUA,EAClBz7M,EAAQ6xB,aAAeA,EACvB7xB,EAAQ0wH,aAAeA,G,qBC9gBvB,IAAImsF,EAAc,EAAQ,QAEtB18M,EAAU,EAAQ,QAElB+mD,EAAY,EAAQ,QAEpBhmC,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aACvB7K,EAAQ9F,EAAQ8F,MAChBgqD,EAAY9vD,EAAQ8vD,UAoBxB,SAAS8rI,EAAc39M,EAAayE,GAClC,IAAImyB,EAAS52B,EAAYI,IAAI,UACzBV,EAAQ+E,EAAIylB,WACZ9f,EAAS3F,EAAI0lB,YACb3f,EAAOT,KAAK6E,IAAIlP,EAAO0K,GACvBkyC,EAAK5pB,EAAakE,EAAO,GAAInyB,EAAIylB,YACjCqyB,EAAK7pB,EAAakE,EAAO,GAAInyB,EAAI0lB,aACjCpY,EAAI2gB,EAAa1yB,EAAYI,IAAI,UAAWoK,EAAO,GACvD,MAAO,CACL8xC,GAAIA,EACJC,GAAIA,EACJxqC,EAAGA,GAIP,SAAS6rM,EAAYv+M,EAAO05E,GAS1B,OARIA,IAC4B,kBAAnBA,EACT15E,EAAQ05E,EAAep4E,QAAQ,UAAoB,MAATtB,EAAgBA,EAAQ,IAC/B,oBAAnB05E,IAChB15E,EAAQ05E,EAAe15E,KAIpBA,EAGT,IAAIqkF,EAAgB,EAAV35E,KAAK+E,GACX+uM,EAAY91J,EAAUrqD,OAAO,CAC/BC,KAAM,QACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtCvG,KAAKsD,MAAMC,YACX,IAAI64I,EAAYt6I,EAAYI,IAAI,4BAC5B09M,EAAUH,EAAc39M,EAAayE,GAEzCvG,KAAK6/M,YAAY/9M,EAAahC,EAASyG,EAAK61I,EAAWwjE,IAEzDrxL,QAAS,aACTsxL,YAAa,SAAU/9M,EAAahC,EAASyG,EAAK61I,EAAWwjE,GAY3D,IAXA,IAAIt8M,EAAQtD,KAAKsD,MACbw8M,EAAgBh+M,EAAYmf,SAAS,YACrC4/B,EAAiBi/J,EAAc7+L,SAAS,aACxCuuC,EAAY1tD,EAAYI,IAAI,aAC5B4/C,GAAchgD,EAAYI,IAAI,cAAgB,IAAM2J,KAAK+E,GACzDmxC,GAAYjgD,EAAYI,IAAI,YAAc,IAAM2J,KAAK+E,GACrDmvM,GAAkBh+J,EAAWD,GAAc0jC,EAC3Cw6H,EAAel+J,EACfm+J,EAAgBp/J,EAAe3+C,IAAI,SACnCg+M,EAAWJ,EAAc59M,IAAI,QAExB+L,EAAI,EAAGiyM,GAAYjyM,EAAImuI,EAAUnxI,OAAQgD,IAAK,CAErD,IAAI9D,EAAU0B,KAAK6E,IAAI7E,KAAK4E,IAAI2rI,EAAUnuI,GAAG,GAAI,GAAI,GAEjD4/C,GADA9L,EAAWD,EAAai+J,EAAiB51M,EAChC,IAAIrH,EAAQ8+C,OAAO,CAC9BpwC,MAAO,CACLswC,WAAYk+J,EACZj+J,SAAUA,EACV3D,GAAIwhK,EAAQxhK,GACZC,GAAIuhK,EAAQvhK,GACZmR,UAAWA,EACX3N,GAAI+9J,EAAQ/rM,EAAIosM,EAChBpsM,EAAG+rM,EAAQ/rM,GAEbjC,QAAQ,KAEVi8C,EAAOhtB,SAAS,CACdnvB,KAAM0qI,EAAUnuI,GAAG,KAErB4/C,EAAOhtB,SAASggB,EAAejC,aAE/B,CAAC,QAAS,cAAe,iBACzBt7C,EAAMgC,IAAIuoD,GACVmyJ,EAAej+J,EAGjB,IAAIwvF,EAAW,SAAUpnI,GAEvB,GAAIA,GAAW,EACb,OAAOiyI,EAAU,GAAG,GAGtB,IAAK,IAAInuI,EAAI,EAAGA,EAAImuI,EAAUnxI,OAAQgD,IACpC,GAAImuI,EAAUnuI,GAAG,IAAM9D,IAAkB,IAAN8D,EAAU,EAAImuI,EAAUnuI,EAAI,GAAG,IAAM9D,EACtE,OAAOiyI,EAAUnuI,GAAG,GAKxB,OAAOmuI,EAAUnuI,EAAI,GAAG,IAG1B,IAAKuhD,EAAW,CACd,IAAIz6C,EAAM+sC,EACVA,EAAaC,EACbA,EAAWhtC,EAGb/U,KAAKmgN,aAAar+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,EAAS99J,EAAYC,EAAUyN,GAEtFxvD,KAAKogN,eAAet+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,EAAS99J,EAAYC,EAAUyN,GAExFxvD,KAAKqgN,aAAav+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,GAEvD5/M,KAAKsgN,cAAcx+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,IAE1DO,aAAc,SAAUr+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,EAAS99J,EAAYC,EAAUyN,GAoB1F,IAnBA,IAAIlsD,EAAQtD,KAAKsD,MACb86C,EAAKwhK,EAAQxhK,GACbC,EAAKuhK,EAAQvhK,GACbxqC,EAAI+rM,EAAQ/rM,EACZ0sM,GAAUz+M,EAAYI,IAAI,OAC1Bs+M,GAAU1+M,EAAYI,IAAI,OAC1B0+C,EAAiB9+C,EAAYmf,SAAS,aACtC2+H,EAAY99I,EAAYmf,SAAS,YACjCif,EAAap+B,EAAYmf,SAAS,aAClCsD,EAAcziB,EAAYI,IAAI,eAC9Bu+M,EAAiB7gE,EAAU19I,IAAI,eAC/Bw+M,EAAelsL,EAAaosB,EAAe1+C,IAAI,UAAW2R,GAC1D8sM,EAAUnsL,EAAaorH,EAAU19I,IAAI,UAAW2R,GAChD2+C,EAAQ1Q,EACR8f,GAAQ7f,EAAWD,GAAcv9B,EACjCq8L,EAAUh/I,EAAO6+I,EACjBI,EAAiBjgK,EAAe3/B,SAAS,aAAa29B,eACtDkiK,EAAgBlhE,EAAU3+H,SAAS,aAAa29B,eAE3C3wC,EAAI,EAAGA,GAAKsW,EAAatW,IAAK,CACrC,IAAIw/H,EAAQ5hI,KAAK04C,IAAIiO,GACjBk7E,EAAQ7hI,KAAKw4C,IAAImO,GAErB,GAAI5R,EAAe1+C,IAAI,QAAS,CAC9B,IAAI+jD,EAAY,IAAInjD,EAAQovC,KAAK,CAC/B1gC,MAAO,CACL4oD,GAAIqzE,EAAQ55H,EAAIuqC,EAChBic,GAAIqzE,EAAQ75H,EAAIwqC,EAChBic,GAAImzE,GAAS55H,EAAI6sM,GAAgBtiK,EACjCmc,GAAImzE,GAAS75H,EAAI6sM,GAAgBriK,GAEnC74C,MAAOq7M,EACPjvM,QAAQ,IAGoB,SAA1BivM,EAAehiK,QACjBoH,EAAUplB,SAAS,CACjBge,OAAQ0yF,EAAStjI,EAAIsW,KAIzBjhB,EAAMgC,IAAI2gD,GAIZ,GAAI/lB,EAAWh+B,IAAI,QAAS,CAC1B,IAAIf,EAAQu+M,EAAY/1L,EAAM1b,EAAIsW,GAAei8L,EAASD,GAAUA,GAASrgL,EAAWh+B,IAAI,cACxF0nD,EAAW1pB,EAAWh+B,IAAI,YAC1Bi7C,EAAYo0F,EAAStjI,EAAIsW,GAC7BjhB,EAAMgC,IAAI,IAAIxC,EAAQyC,KAAK,CACzBC,MAAO1C,EAAQmqE,aAAa,GAAI/sC,EAAY,CAC1Cv6B,KAAMxE,EACNsE,EAAGgoI,GAAS55H,EAAI6sM,EAAe92J,GAAYxL,EAC3C14C,EAAGgoI,GAAS75H,EAAI6sM,EAAe92J,GAAYvL,EAC3Cz4C,kBAAmB8nI,GAAS,GAAM,MAAQA,EAAQ,GAAM,SAAW,SACnE7nI,UAAW4nI,GAAS,GAAM,OAASA,EAAQ,GAAM,QAAU,UAC1D,CACDtwF,UAAWA,IAEbvrC,QAAQ,KAKZ,GAAIguI,EAAU19I,IAAI,SAAW+L,IAAMsW,EAAa,CAC9C,IAAK,IAAI/L,EAAI,EAAGA,GAAKioM,EAAgBjoM,IAAK,CACpCi1H,EAAQ5hI,KAAK04C,IAAIiO,GACjBk7E,EAAQ7hI,KAAKw4C,IAAImO,GADrB,IAEIuuJ,EAAW,IAAIj+M,EAAQovC,KAAK,CAC9B1gC,MAAO,CACL4oD,GAAIqzE,EAAQ55H,EAAIuqC,EAChBic,GAAIqzE,EAAQ75H,EAAIwqC,EAChBic,GAAImzE,GAAS55H,EAAI8sM,GAAWviK,EAC5Bmc,GAAImzE,GAAS75H,EAAI8sM,GAAWtiK,GAE9BzsC,QAAQ,EACRpM,MAAOs7M,IAGoB,SAAzBA,EAAcjiK,QAChBkiK,EAASlgL,SAAS,CAChBge,OAAQ0yF,GAAUtjI,EAAIuK,EAAIioM,GAAkBl8L,KAIhDjhB,EAAMgC,IAAIy7M,GACVvuJ,GAASouJ,EAGXpuJ,GAASouJ,OAETpuJ,GAASoP,IAIfw+I,eAAgB,SAAUt+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,EAAS99J,EAAYC,EAAUyN,GAC5F,IAAIlsD,EAAQtD,KAAKsD,MACbq6C,EAAU39C,KAAK49C,MAEnB,GAAK97C,EAAYI,IAAI,gBAArB,CAQA,IAAI8+M,EAAc,EAAEl/M,EAAYI,IAAI,QAASJ,EAAYI,IAAI,QACzDi9F,EAAc,CAACr9C,EAAYC,GAC3BxhD,EAAOuB,EAAYtB,UACnBuJ,EAAWxJ,EAAKyJ,aAAa,SACjCzJ,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAU4K,GAC/B,IAAIigG,EAAU,IAAIqvG,EAAY,CAC5BhuM,MAAO,CACLghD,MAAO1Q,KAGXh/C,EAAQk4C,UAAUm1D,EAAS,CACzB3+F,MAAO,CACLghD,MAAOmhB,EAAUpzE,EAAK2B,IAAI6H,EAAUmG,GAAM8wM,EAAa7hH,GAAa,KAErEr9F,GACHwB,EAAMgC,IAAI6qG,GACV5vG,EAAKqhC,iBAAiB1xB,EAAKigG,MAC1B5nG,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI0xD,EAAUxyD,EAAQpE,iBAAiBkF,GACvC37C,EAAQk8B,YAAYmxE,EAAS,CAC3B3+F,MAAO,CACLghD,MAAOmhB,EAAUpzE,EAAK2B,IAAI6H,EAAUy0C,GAASwiK,EAAa7hH,GAAa,KAExEr9F,GACHwB,EAAMgC,IAAI6qG,GACV5vG,EAAKqhC,iBAAiB4c,EAAQ2xD,MAC7B9tE,QAAO,SAAUnyB,GAClB,IAAIigG,EAAUxyD,EAAQpE,iBAAiBrpC,GACvC5M,EAAM++B,OAAO8tE,MACZzxD,UACHn+C,EAAKo+C,mBAAkB,SAAUwxD,EAASjgG,GACxC,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAC9B+/F,EAAe9uF,EAAUF,SAAS,WACtCkvF,EAAQhiD,SAAS,CACf1oD,EAAGm6M,EAAQxhK,GACX14C,EAAGk6M,EAAQvhK,GACX78C,MAAOgzB,EAAay7E,EAAa/tG,IAAI,SAAU09M,EAAQ/rM,GACvDA,EAAG2gB,EAAay7E,EAAa/tG,IAAI,UAAW09M,EAAQ/rM,KAEtDs8F,EAAQp0D,SAAS56B,EAAUF,SAAS,aAAatP,gBAEtB,SAAvBw+F,EAAQ3qG,MAAMkM,MAChBy+F,EAAQtvE,SAAS,OAAQ0wG,EAAS59D,EAAUpzE,EAAK2B,IAAI6H,EAAUmG,GAAM8wM,EAAa,CAAC,EAAG,IAAI,KAG5Fl+M,EAAQq/B,cAAcguE,EAAShvF,EAAUF,SAAS,sBAAsBtP,mBAE1E3R,KAAK49C,MAAQr9C,OArDXo9C,GAAWA,EAAQgB,mBAAkB,SAAUlzB,GAC7CnoB,EAAM++B,OAAO5W,OAsDnB40L,aAAc,SAAUv+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,GAC3D,IAAIr/M,EAAOuB,EAAYtB,UACnBuJ,EAAWxJ,EAAKyJ,aAAa,SAC7BiyJ,EAAan6J,EAAYmf,SAAS,SAEtC,GAAIg7I,EAAW/5J,IAAI,QAAS,CAC1B,IAAIiwI,EAAe8pB,EAAW/5J,IAAI,gBAC9BuD,EAAIm6M,EAAQxhK,GAAK5pB,EAAa29G,EAAa,GAAIytE,EAAQ/rM,GACvDnO,EAAIk6M,EAAQvhK,GAAK7pB,EAAa29G,EAAa,GAAIytE,EAAQ/rM,GACvD0sM,GAAUz+M,EAAYI,IAAI,OAC1Bs+M,GAAU1+M,EAAYI,IAAI,OAC1ByL,EAAQ7L,EAAYtB,UAAU0B,IAAI6H,EAAU,GAC5CozC,EAAYo0F,EAAS59D,EAAUhmE,EAAO,CAAC4yM,EAAQC,GAAS,CAAC,EAAG,IAAI,IACpExgN,KAAKsD,MAAMgC,IAAI,IAAIxC,EAAQyC,KAAK,CAC9BqM,QAAQ,EACRpM,MAAO1C,EAAQmqE,aAAa,GAAIgvF,EAAY,CAC1Cx2J,EAAGA,EACHC,EAAGA,EAEHC,KAAMpF,EAAK08C,QAAQ,GACnBp3C,UAAW,SACXD,kBAAmB,UAClB,CACDu3C,UAAWA,EACXoxB,WAAW,SAKnB+xI,cAAe,SAAUx+M,EAAahC,EAASyG,EAAKgrI,EAAUquE,GAC5D,IAAIqB,EAAcn/M,EAAYmf,SAAS,UACnCs/L,GAAUz+M,EAAYI,IAAI,OAC1Bs+M,GAAU1+M,EAAYI,IAAI,OAE9B,GAAI++M,EAAY/+M,IAAI,QAAS,CAC3B,IAAIiwI,EAAe8uE,EAAY/+M,IAAI,gBAC/BuD,EAAIm6M,EAAQxhK,GAAK5pB,EAAa29G,EAAa,GAAIytE,EAAQ/rM,GACvDnO,EAAIk6M,EAAQvhK,GAAK7pB,EAAa29G,EAAa,GAAIytE,EAAQ/rM,GACvDrS,EAAQgzB,EAAaysL,EAAY/+M,IAAI,SAAU09M,EAAQ/rM,GACvD3H,EAASsoB,EAAaysL,EAAY/+M,IAAI,UAAW09M,EAAQ/rM,GACzDtT,EAAOuB,EAAYtB,UACnBmN,EAAQpN,EAAK2B,IAAI3B,EAAKyJ,aAAa,SAAU,GAC7CmzC,EAAYo0F,EAAS59D,EAAUhmE,EAAO,CAAC4yM,EAAQC,GAAS,CAAC,EAAG,IAAI,IACpExgN,KAAKsD,MAAMgC,IAAI,IAAIxC,EAAQyC,KAAK,CAC9BqM,QAAQ,EACRpM,MAAO1C,EAAQmqE,aAAa,GAAIg0I,EAAa,CAC3Cx7M,EAAGA,EACHC,EAAGA,EACHC,KAAM+5M,EACN/xM,EAAOszM,EAAY/+M,IAAI,cACvBgtE,UAAWn2D,MAAMvX,GAAS,KAAOA,EACjC2tE,WAAYp2D,MAAM7M,GAAU,KAAOA,EACnCrG,UAAW,SACXD,kBAAmB,UAClB,CACDu3C,UAAWA,EACXoxB,WAAW,WAMjBhvE,EAAWogN,EACfj9M,EAAOC,QAAUpD,G,qBCpWjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAI84M,EAAc,EAAQ,QAEtBC,EAAc,EAAQ,QAoB1B/4M,EAAQyrB,eAAeqtL,GACvB94M,EAAQ2mB,eAAeoyL,I,mBCPvB,IAAI5pM,EAAS,CAAC,CAAC,CAAC,mBAAoB,mBAAoB,CAAC,mBAAoB,mBAAoB,CAAC,mBAAoB,oBAAqB,CAAC,mBAAoB,oBAAqB,CAAC,mBAAoB,qBAE1M,SAAShY,EAAS8mD,EAASnpB,GACT,UAAZmpB,GAAuC,OAAhBnpB,EAAOvwB,MAChCuwB,EAAOqD,WAAW1/B,KAAK,CACrBpB,KAAM,UACNghC,SAAUlpB,EAAO,KAKvB7U,EAAOC,QAAUpD,G,qBCrDjB,IAAIupB,EAAM,EAAQ,QAEdogH,EAAU,EAAQ,QAElBhkG,EAAiBgkG,EAAQhkG,eAEzB34B,EAAe,EAAQ,QAEvBw6D,EAAY,EAAQ,QAEpB2pD,EAAc,EAAQ,QAEtBC,EAAa,EAAQ,QAErBlkE,EAAW,EAAQ,QAEnBpnB,EAAc,EAAQ,QAEtBE,EAAS,EAAQ,QAEjBhgC,EAAO,EAAQ,QAEfukD,EAAO,EAAQ,QAEf+O,EAAY,EAAQ,QAEpBmgE,EAAW,EAAQ,QAEnBooF,EAAU,EAAQ,QAIlBtpJ,EAAMe,EAAUf,IAChBnuC,EAAQ9d,KAAK8d,MACb8O,EAAO5sB,KAAK4sB,KACZ3sB,EAAMD,KAAKC,IACXy4C,EAAM14C,KAAK04C,IACXF,EAAMx4C,KAAKw4C,IACXoU,EAAU5sD,KAAK4E,IAEnB,IAAKqY,EAAImB,gBAAiB,CACxB,IAAIo3L,EAAQ,IACRC,EAAuB,oCACvBlpJ,EAAI,MACJmpJ,EAAKnpJ,EAAI,EACTopJ,EAAc,IACdC,EAAS,IAETC,EAAkB,SAAUj2L,GAC9BA,EAAGjmB,MAAMikB,QAAU,uDACnBgC,EAAGk2L,UAAYvpJ,EAAI,IAAMA,EACzB3sC,EAAGm2L,YAAc,OAGfC,EAAsB,SAAU11K,GAClC,OAAO++J,OAAO/+J,GAAG1pC,QAAQ,KAAM,SAASA,QAAQ,KAAM,WAGpDq/M,EAAU,SAAUjuM,EAAGg+D,EAAGv6D,GAC5B,MAAO,OAAS,CAACzD,EAAGg+D,EAAGv6D,GAAGuC,KAAK,KAAO,KAGpCkoM,EAAS,SAAUlgM,EAAQtC,GACzBA,GAASsC,GAAUtC,EAAMX,aAAeiD,GAC1CA,EAAOqK,YAAY3M,IAInB8iB,EAAS,SAAUxgB,EAAQtC,GACzBA,GAASsC,GAAUtC,EAAMX,aAAeiD,GAC1CA,EAAO2M,YAAYjP,IAInByiM,EAAY,SAAUhhN,EAAQC,EAAGmQ,GAEnC,OAAQ4hF,WAAWhyF,IAAW,GAAKwgN,GAAexuH,WAAW/xF,IAAM,GAAKwgN,EAASrwM,GAG/EojB,EAAem8F,EAAWn8F,aAK1BytL,EAAqB,SAAUx2L,EAAI7T,EAAOnW,GAC5C,IAAIqmH,EAAW/gD,EAAUvrD,MAAM5D,GAC/BnW,GAAWA,EAEPsX,MAAMtX,KACRA,EAAU,GAGRqmH,IACFr8F,EAAG7T,MAAQkqM,EAAQh6F,EAAS,GAAIA,EAAS,GAAIA,EAAS,IACtDr8F,EAAGhqB,QAAUA,EAAUqmH,EAAS,KAIhCo6F,EAAmB,SAAUtqM,GAC/B,IAAIkwG,EAAW/gD,EAAUvrD,MAAM5D,GAC/B,MAAO,CAACkqM,EAAQh6F,EAAS,GAAIA,EAAS,GAAIA,EAAS,IAAKA,EAAS,KAG/Dq6F,EAAiB,SAAU12L,EAAIjmB,EAAO48M,GAExC,IAAI1wM,EAAOlM,EAAMkM,KAEjB,GAAY,MAARA,EAEF,GAAIA,aAAgBsnH,EAAU,CAC5B,IAAIqpF,EACA7vJ,EAAQ,EACR8vJ,EAAQ,CAAC,EAAG,GAEZx9I,EAAQ,EAERy9I,EAAY,EACZv2M,EAAOo2M,EAAKn2M,kBACZ8yH,EAAY/yH,EAAKxK,MACjBw9H,EAAahzH,EAAKE,OAEtB,GAAkB,WAAdwF,EAAKjS,KAAmB,CAC1B4iN,EAAe,WACf,IAAI/zM,EAAY8zM,EAAK9zM,UACjBoJ,EAAK,CAAChG,EAAKjM,EAAIs5H,EAAWrtH,EAAKhM,EAAIs5H,GACnCrzH,EAAK,CAAC+F,EAAK4oD,GAAKykE,EAAWrtH,EAAK6oD,GAAKykE,GAErC1wH,IACF42B,EAAextB,EAAIA,EAAIpJ,GACvB42B,EAAev5B,EAAIA,EAAI2C,IAGzB,IAAI4D,EAAKvG,EAAG,GAAK+L,EAAG,GAChBvF,EAAKxG,EAAG,GAAK+L,EAAG,GACpB86C,EAA6B,IAArB3mD,KAAKk5B,MAAM7yB,EAAIC,GAAYtG,KAAK+E,GAEpC4hD,EAAQ,IACVA,GAAS,KAKPA,EAAQ,OACVA,EAAQ,OAEL,CACL6vJ,EAAe,iBACX3qM,EAAK,CAAChG,EAAKjM,EAAIs5H,EAAWrtH,EAAKhM,EAAIs5H,GACnC1wH,EAAY8zM,EAAK9zM,UADrB,IAEIG,EAAQ2zM,EAAK3zM,MACbjN,EAAQu9H,EACR7yH,EAAS8yH,EACbsjF,EAAQ,EACP5qM,EAAG,GAAK1L,EAAKvG,GAAKjE,GAAQkW,EAAG,GAAK1L,EAAKtG,GAAKwG,GAEzCoC,GACF42B,EAAextB,EAAIA,EAAIpJ,GAGzB9M,GAASiN,EAAM,GAAK2pD,EACpBlsD,GAAUuC,EAAM,GAAK2pD,EACrB,IAAI13C,EAAY+3C,EAAQj3D,EAAO0K,GAC/B44D,EAAQ,EAAQpkD,EAChB6hM,EAAY,EAAI7wM,EAAKmC,EAAI6M,EAAYokD,EAKvC,IAAIz9C,EAAQ3V,EAAK+7E,WAAWnmF,QAC5B+f,EAAMxc,MAAK,SAAU23M,EAAKC,GACxB,OAAOD,EAAI1tM,OAAS2tM,EAAI3tM,UAO1B,IALA,IAAI7J,EAASoc,EAAMpc,OAEfy3M,EAAoB,GACpBtqF,EAAS,GAEJnqH,EAAI,EAAGA,EAAIhD,EAAQgD,IAAK,CAC/B,IAAI6P,EAAOuJ,EAAMpZ,GACb00M,EAAgBT,EAAiBpkM,EAAKlG,OAC1CwgH,EAAOv3H,KAAKid,EAAKhJ,OAASytM,EAAYz9I,EAAQ,IAAM69I,EAAc,IAExD,IAAN10M,GAAWA,IAAMhD,EAAS,GAC5By3M,EAAkB7hN,KAAK8hN,GAI3B,GAAI13M,GAAU,EAAG,CACf,IAAI23M,EAASF,EAAkB,GAAG,GAC9BG,EAASH,EAAkB,GAAG,GAC9BI,EAAWJ,EAAkB,GAAG,GAAKl9M,EAAM/D,QAC3CshN,EAAWL,EAAkB,GAAG,GAAKl9M,EAAM/D,QAC/CgqB,EAAGhsB,KAAO4iN,EACV52L,EAAGplB,OAAS,OACZolB,EAAG62L,MAAQ,OACX72L,EAAG+mC,MAAQA,EACX/mC,EAAG7T,MAAQgrM,EACXn3L,EAAGo3L,OAASA,EACZp3L,EAAG2sG,OAASA,EAAOv+G,KAAK,KAGxB4R,EAAGhqB,QAAUshN,EAEbt3L,EAAGs3L,SAAWD,EAGK,WAAjBT,IACF52L,EAAGu3L,cAAgBV,EAAMzoM,KAAK,WAIhCooM,EAAmBx2L,EAAI/Z,EAAMlM,EAAM/D,UAKrCwhN,EAAmB,SAAUx3L,EAAIjmB,GAU/BA,EAAM41D,WACR3vC,EAAGy3L,UAAY19M,EAAM41D,SAASvhD,KAAK,MAGjB,MAAhBrU,EAAMq5C,QAAoBr5C,EAAMq5C,kBAAkBm6E,GACpDipF,EAAmBx2L,EAAIjmB,EAAMq5C,OAAQr5C,EAAM/D,UAI3C0hN,EAAsB,SAAUC,EAAO3jN,EAAM+F,EAAO48M,GACtD,IAAIiB,EAAkB,SAAT5jN,EACTgsB,EAAK23L,EAAMx0E,qBAAqBnvI,GAAM,GAEvB,MAAf+F,EAAM/F,IAAiC,SAAhB+F,EAAM/F,KAAqB4jN,IAAWA,GAAU79M,EAAMkzE,YAC/E0qI,EAAMC,EAAS,SAAW,WAAa,OAEnC79M,EAAM/F,aAAiBu5H,GACzB32F,EAAO+gL,EAAO33L,GAGXA,IACHA,EAAK21L,EAAQkC,WAAW7jN,IAG1B4jN,EAASlB,EAAe12L,EAAIjmB,EAAO48M,GAAQa,EAAiBx3L,EAAIjmB,GAChEu8M,EAAOqB,EAAO33L,KAEd23L,EAAMC,EAAS,SAAW,WAAa,QACvChhL,EAAO+gL,EAAO33L,KAIdlU,EAAS,CAAC,GAAI,GAAI,IAElBq6G,EAAmB,SAAU1wG,EAAMlM,GACrC,IAMIuuM,EACAp5G,EACAxuC,EACA1tD,EACAsuD,EACAC,EAXAzE,EAAID,EAAIC,EACRE,EAAIH,EAAIG,EACRD,EAAIF,EAAIE,EACRG,EAAIL,EAAIK,EACRD,EAAIJ,EAAII,EACR09B,EAAM,GAONr1F,EAAO2gB,EAAK3gB,KACZsxH,EAAa3wG,EAAK5I,MAEtB,IAAKrK,EAAI,EAAGA,EAAI4jH,GAAa,CAK3B,OAJAl2D,EAAMp7D,EAAK0N,KACXk8F,EAAS,GACTo5G,EAAS,EAED5nJ,GACN,KAAK5D,EACHoyC,EAAS,MACTo5G,EAAS,EACThnJ,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACVsJ,EAAO,GAAG,GAAKglD,EACfhlD,EAAO,GAAG,GAAKilD,EACf,MAEF,KAAKxE,EACHmyC,EAAS,MACTo5G,EAAS,EACThnJ,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACVsJ,EAAO,GAAG,GAAKglD,EACfhlD,EAAO,GAAG,GAAKilD,EACf,MAEF,KAAKtE,EACL,KAAKD,EACHkyC,EAAS,MACTo5G,EAAS,EACT,IAII/oJ,EACAC,EALAL,EAAK75D,EAAK0N,KACVosD,EAAK95D,EAAK0N,KACVqsD,EAAK/5D,EAAK0N,KACVssD,EAAKh6D,EAAK0N,KAIV0tD,IAAQzD,GAEVsC,EAAKF,EACLG,EAAKF,EACLD,GAAMA,EAAK,EAAIF,GAAM,EACrBG,GAAMA,EAAK,EAAIF,GAAM,EACrBD,GAAMmC,EAAK,EAAInC,GAAM,EACrBC,GAAMmC,EAAK,EAAInC,GAAM,IAErBG,EAAKj6D,EAAK0N,KACVwsD,EAAKl6D,EAAK0N,MAGZsJ,EAAO,GAAG,GAAK6iD,EACf7iD,EAAO,GAAG,GAAK8iD,EACf9iD,EAAO,GAAG,GAAK+iD,EACf/iD,EAAO,GAAG,GAAKgjD,EACfhjD,EAAO,GAAG,GAAKijD,EACfjjD,EAAO,GAAG,GAAKkjD,EACf8B,EAAK/B,EACLgC,EAAK/B,EACL,MAEF,KAAKtC,EACH,IAAI1yD,EAAI,EACJC,EAAI,EACJ0+B,EAAK,EACLC,EAAK,EACLmuB,EAAQ,EAERx9C,IAEFvP,EAAIuP,EAAE,GACNtP,EAAIsP,EAAE,GACNovB,EAAK3L,EAAKzjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACjCqvB,EAAK5L,EAAKzjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACjCw9C,EAAQ3mD,KAAKk5B,OAAO/vB,EAAE,GAAKqvB,EAAIrvB,EAAE,GAAKovB,IAGxC,IAAIga,EAAK79C,EAAK0N,KACVowC,EAAK99C,EAAK0N,KACV2uD,EAAKr8D,EAAK0N,KACV4uD,EAAKt8D,EAAK0N,KACV6zC,EAAavhD,EAAK0N,KAAOukD,EACzBzQ,EAAWxhD,EAAK0N,KAAO6zC,EAAa0Q,EAGxCvkD,IACA,IAAIuhD,EAAYjvD,EAAK0N,KACjB+sD,EAAK5c,EAAKmG,EAAIzC,GAAc8a,EAC5B3B,EAAK5c,EAAKgG,EAAIvC,GAAc+a,EAG5Bp9D,GAFA26D,EAAKhc,EAAKmG,EAAIxC,GAAY6a,EAC1BvC,EAAKhc,EAAKgG,EAAItC,GAAY8a,EACnBrN,EAAY,OAAS,QAE5B3jD,KAAKC,IAAIkvD,EAAKZ,GAAM,OAElBvuD,KAAKC,IAAIi2C,EAAWD,GAAc,IAGhC0N,IACFwL,GAAM,IAAM5C,GAIVvsD,KAAKC,IAAImvD,EAAK5c,GAAM,KAClBmR,GAAawL,EAAK5c,IAAOoR,GAAawL,EAAK5c,EAC7Cic,GAAM,IAAMjC,EAEZiC,GAAM,IAAMjC,EAEL5I,GAAayL,EAAK5c,IAAOmR,GAAayL,EAAK5c,EACpD+b,GAAM,IAAMhC,EAEZgC,GAAM,IAAMhC,GAKlBw9B,EAAI/0F,KAAKpB,EAAMkqB,IAAQy0B,EAAKwe,GAAMx4B,EAAK3+B,GAAK2yD,EAAImpJ,GAAKF,EAAO13L,IAAQ00B,EAAKwe,GAAMx4B,EAAK3+B,GAAK0yD,EAAImpJ,GAAKF,EAAO13L,IAAQy0B,EAAKwe,GAAMx4B,EAAK3+B,GAAK2yD,EAAImpJ,GAAKF,EAAO13L,IAAQ00B,EAAKwe,GAAMx4B,EAAK3+B,GAAK0yD,EAAImpJ,GAAKF,EAAO13L,GAAOqxC,EAAK52B,EAAK3+B,GAAK2yD,EAAImpJ,GAAKF,EAAO13L,GAAOsxC,EAAK52B,EAAK3+B,GAAK0yD,EAAImpJ,GAAKF,EAAO13L,GAAOywC,EAAKh2B,EAAK3+B,GAAK2yD,EAAImpJ,GAAKF,EAAO13L,GAAO0wC,EAAKh2B,EAAK3+B,GAAK0yD,EAAImpJ,IAC/UhlJ,EAAKnC,EACLoC,EAAKnC,EACL,MAEF,KAAKvC,EAAIO,EACP,IAAI3gD,EAAKH,EAAO,GACZ5L,EAAK4L,EAAO,GAEhBG,EAAG,GAAKnX,EAAK0N,KACbyJ,EAAG,GAAKnX,EAAK0N,KAEbtC,EAAG,GAAK+L,EAAG,GAAKnX,EAAK0N,KACrBtC,EAAG,GAAK+L,EAAG,GAAKnX,EAAK0N,KAEjB+G,IACFkwB,EAAextB,EAAIA,EAAI1C,GACvBkwB,EAAev5B,EAAIA,EAAIqJ,IAGzB0C,EAAG,GAAKiS,EAAMjS,EAAG,GAAK0gD,EAAImpJ,GAC1B51M,EAAG,GAAKge,EAAMhe,EAAG,GAAKysD,EAAImpJ,GAC1B7pM,EAAG,GAAKiS,EAAMjS,EAAG,GAAK0gD,EAAImpJ,GAC1B51M,EAAG,GAAKge,EAAMhe,EAAG,GAAKysD,EAAImpJ,GAC1B3rH,EAAI/0F,KACJ,MAAO6W,EAAG,GAAI2pM,EAAO3pM,EAAG,GACxB,MAAO/L,EAAG,GAAI01M,EAAO3pM,EAAG,GACxB,MAAO/L,EAAG,GAAI01M,EAAO11M,EAAG,GACxB,MAAO+L,EAAG,GAAI2pM,EAAO11M,EAAG,IACxB,MAEF,KAAKmsD,EAAIM,EAEPw9B,EAAI/0F,KAAK,OAGb,GAAI0iN,EAAS,EAAG,CACd3tH,EAAI/0F,KAAKspG,GAET,IAAK,IAAIl0F,EAAI,EAAGA,EAAIstM,EAAQttM,IAAK,CAC/B,IAAIwB,EAAIF,EAAOtB,GACfjB,GAAKkwB,EAAeztB,EAAGA,EAAGzC,GAE1B4gF,EAAI/0F,KAAK8oB,EAAMlS,EAAE,GAAK2gD,EAAImpJ,GAAKF,EAAO13L,EAAMlS,EAAE,GAAK2gD,EAAImpJ,GAAKtrM,EAAIstM,EAAS,EAAIlC,EAAQ,MAK3F,OAAOzrH,EAAI/7E,KAAK,KAIlBiwC,EAAKh8C,UAAU01M,SAAW,SAAUC,GAClC,IAAIj+M,EAAQxF,KAAKwF,MACb49M,EAAQpjN,KAAK0jN,OAEZN,IACHA,EAAQhC,EAAQkC,WAAW,SAC3B5B,EAAgB0B,GAChBpjN,KAAK0jN,OAASN,GAGhBD,EAAoBC,EAAO,OAAQ59M,EAAOxF,MAC1CmjN,EAAoBC,EAAO,SAAU59M,EAAOxF,MAC5C,IAAIgV,EAAIhV,KAAKsO,UACTq1M,EAAqB,MAAL3uM,EAChB4uM,EAAWR,EAAMx0E,qBAAqB,UAAU,GAEpD,GAAIg1E,EAAU,CACZ,IAAIlrI,EAAYlzE,EAAMkzE,UAKtB,GAAIirI,IAAkBn+M,EAAMs7B,cAAe,CACzC,IAAI4jB,EAAM1vC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACjC0jE,GAAajgD,EAAK3sB,EAAI44C,IAGxBk/J,EAASC,OAASnrI,EAAY,KAGhC,IAAIx3D,EAAOlhB,KAAKkhB,OAASlhB,KAAKkhB,KAAO,IAAI23C,GAErC74D,KAAK8qG,cACP5pF,EAAK44C,YACL54C,EAAKoT,kBAAmB,EACxBt0B,KAAKyrD,UAAUvqC,EAAMlhB,KAAKwR,OAC1B0P,EAAKg6C,WACLl7D,KAAK8qG,aAAc,GAGrBs4G,EAAMliM,KAAO0wG,EAAiB1wG,EAAMlhB,KAAKsO,WACzC80M,EAAM59M,MAAMs+M,OAAS9B,EAAUhiN,KAAKgB,OAAQhB,KAAKiB,EAAGjB,KAAKoR,IAEzD2wM,EAAO0B,EAASL,GAEE,MAAd59M,EAAMG,KACR3F,KAAKomC,aAAaq9K,EAASzjN,KAAKiM,mBAEhCjM,KAAK+jN,eAAeN,IAIxB35J,EAAKh8C,UAAUk2M,SAAW,SAAUP,GAClCphL,EAAOohL,EAASzjN,KAAK0jN,QACrB1jN,KAAK+jN,eAAeN,IAGtB35J,EAAKh8C,UAAUm2M,MAAQ,SAAUR,GAC/B1B,EAAO0B,EAASzjN,KAAK0jN,QACrB1jN,KAAKkkN,eAAeT,IAOtB,IAAIU,EAAU,SAAUp7I,GAEtB,MAAsB,kBAARA,GAAoBA,EAAImmE,SAAyC,QAA9BnmE,EAAImmE,QAAQp7B,eAI/DvuE,EAAOz3B,UAAU01M,SAAW,SAAUC,GACpC,IAGIW,EACAC,EAJA7+M,EAAQxF,KAAKwF,MACbmgC,EAAQngC,EAAMmgC,MAKlB,GAAIw+K,EAAQx+K,GAAQ,CAClB,IAAID,EAAMC,EAAMD,IAEhB,GAAIA,IAAQ1lC,KAAKskN,UACfF,EAAKpkN,KAAKukN,YACVF,EAAKrkN,KAAKwkN,iBACL,CACL,IAAIC,EAAoB9+K,EAAM++K,aAC1BC,EAAkBF,EAAkBjjN,MACpCojN,EAAmBH,EAAkBv4M,OACzCu4M,EAAkBjjN,MAAQ,OAC1BijN,EAAkBv4M,OAAS,OAE3Bk4M,EAAKz+K,EAAMnkC,MACX6iN,EAAK1+K,EAAMz5B,OAEXu4M,EAAkBjjN,MAAQmjN,EAC1BF,EAAkBv4M,OAAS04M,EAE3B5kN,KAAKskN,UAAY5+K,EACjB1lC,KAAKukN,YAAcH,EACnBpkN,KAAKwkN,aAAeH,EAGtB1+K,EAAQD,OAEJC,IAAU3lC,KAAKskN,YACjBF,EAAKpkN,KAAKukN,YACVF,EAAKrkN,KAAKwkN,cAId,GAAK7+K,EAAL,CAIA,IAAIlgC,EAAID,EAAMC,GAAK,EACfC,EAAIF,EAAME,GAAK,EACf+sH,EAAKjtH,EAAMhE,MACXkxH,EAAKltH,EAAM0G,OACX24M,EAAKr/M,EAAMygC,OACX6+K,EAAKt/M,EAAM0gC,QACX9B,EAAK5+B,EAAM4+B,IAAM,EACjBC,EAAK7+B,EAAM6+B,IAAM,EACjB0gL,EAAUF,GAAMC,EAChB1B,EAAQpjN,KAAK0jN,OAEZN,IAGHA,EAAQhC,EAAQ4D,IAAIt5L,cAAc,OAClCg2L,EAAgB0B,GAChBpjN,KAAK0jN,OAASN,GAGhB,IAEIpuM,EAFAiwM,EAAa7B,EAAM59M,MACnB0/M,GAAc,EAEd3nJ,EAAS,EACT9oB,EAAS,EASb,GAPIz0C,KAAKsO,YACP0G,EAAIhV,KAAKsO,UACTivD,EAAS9kC,EAAKzjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACrCy/B,EAAShc,EAAKzjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACrCkwM,EAAclwM,EAAE,IAAMA,EAAE,IAGtBkwM,EAAa,CAMf,IAAIxtM,EAAK,CAACjS,EAAGC,GACTiG,EAAK,CAAClG,EAAIgtH,EAAI/sH,GACdkG,EAAK,CAACnG,EAAGC,EAAIgtH,GACbx5G,EAAK,CAACzT,EAAIgtH,EAAI/sH,EAAIgtH,GACtBxtF,EAAextB,EAAIA,EAAI1C,GACvBkwB,EAAev5B,EAAIA,EAAIqJ,GACvBkwB,EAAet5B,EAAIA,EAAIoJ,GACvBkwB,EAAehsB,EAAIA,EAAIlE,GACvB,IAAIu6L,EAAO92I,EAAQ/gD,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIsN,EAAG,IACvCs2L,EAAO/2I,EAAQ/gD,EAAG,GAAI/L,EAAG,GAAIC,EAAG,GAAIsN,EAAG,IACvCisM,EAAkB,GACtBA,EAAgBtkN,KAAK,OAAQmU,EAAE,GAAKuoD,EAAQ8jJ,EAAO,OAAQrsM,EAAE,GAAKy/B,EAAQ4sK,EAAO,OAAQrsM,EAAE,GAAKuoD,EAAQ8jJ,EAAO,OAAQrsM,EAAE,GAAKy/B,EAAQ4sK,EAAO,MAAO13L,EAAMlkB,EAAI83D,EAASvoD,EAAE,IAAKqsM,EAAO,MAAO13L,EAAMjkB,EAAI+uC,EAASz/B,EAAE,KACjNiwM,EAAWj7L,QAAU,KAAOL,EAAM4lL,GAAQ,MAAQ5lL,EAAM6lL,GAAQ,OAEhEyV,EAAW5zJ,OAASiwJ,EAAuB,WAAa6D,EAAgBtrM,KAAK,IAAM,4BAE/E7E,IACFvP,EAAIA,EAAI83D,EAASvoD,EAAE,GACnBtP,EAAIA,EAAI+uC,EAASz/B,EAAE,IAGrBiwM,EAAW5zJ,OAAS,GACpB4zJ,EAAW16M,KAAOof,EAAMlkB,GAAK,KAC7Bw/M,EAAWz6M,IAAMmf,EAAMjkB,GAAK,KAG9B,IAAI0/M,EAAUplN,KAAKqlN,SACfC,EAAStlN,KAAKulN,QAEbH,IACHA,EAAUhE,EAAQ4D,IAAIt5L,cAAc,OACpC1rB,KAAKqlN,SAAWD,GAGlB,IAAII,EAAeJ,EAAQ5/M,MAE3B,GAAIu/M,EAAS,CAEX,GAAMX,GAAMC,EAmBVmB,EAAahkN,MAAQmoB,EAAM4zC,EAAS6mJ,EAAK3xF,EAAKoyF,GAAM,KACpDW,EAAat5M,OAASyd,EAAM8qB,EAAS4vK,EAAK3xF,EAAKoyF,GAAM,SApBtC,CACf,IAAIW,EAAW,IAAIz+I,MACfvpD,EAAOzd,KAEXylN,EAAS3/K,OAAS,WAChB2/K,EAAS3/K,OAAS,KAClBs+K,EAAKqB,EAASjkN,MACd6iN,EAAKoB,EAASv5M,OAEds5M,EAAahkN,MAAQmoB,EAAM4zC,EAAS6mJ,EAAK3xF,EAAKoyF,GAAM,KACpDW,EAAat5M,OAASyd,EAAM8qB,EAAS4vK,EAAK3xF,EAAKoyF,GAAM,KAErDrnM,EAAK8mM,YAAcH,EACnB3mM,EAAK+mM,aAAeH,EACpB5mM,EAAK6mM,UAAY3+K,GAGnB8/K,EAAS//K,IAAMC,EAMZ2/K,IACHA,EAASlE,EAAQ4D,IAAIt5L,cAAc,OACnC45L,EAAO9/M,MAAMkgN,SAAW,SACxB1lN,KAAKulN,QAAUD,GAGjB,IAAIK,EAAcL,EAAO9/M,MACzBmgN,EAAYnkN,MAAQmoB,GAAO8oG,EAAKruF,EAAKquF,EAAKoyF,GAAMtnJ,GAChDooJ,EAAYz5M,OAASyd,GAAO+oG,EAAKruF,EAAKquF,EAAKoyF,GAAMrwK,GACjDkxK,EAAYt0J,OAASiwJ,EAAuB,eAAiBl9K,EAAKquF,EAAKoyF,EAAKtnJ,EAAS,QAAUl5B,EAAKquF,EAAKoyF,EAAKrwK,EAAS,IAElH6wK,EAAO1mM,YACVwkM,EAAMl3L,YAAYo5L,GAGhBF,EAAQxmM,aAAe0mM,GACzBA,EAAOp5L,YAAYk5L,QAGrBI,EAAahkN,MAAQmoB,EAAM4zC,EAASk1D,GAAM,KAC1C+yF,EAAat5M,OAASyd,EAAM8qB,EAASi+E,GAAM,KAC3C0wF,EAAMl3L,YAAYk5L,GAEdE,GAAUA,EAAO1mM,aACnBwkM,EAAM50L,YAAY82L,GAClBtlN,KAAKulN,QAAU,MAInB,IAAIK,EAAY,GACZvuF,EAAQ7xH,EAAM/D,QAEd41H,EAAQ,IACVuuF,GAAa,kBAAoBj8L,EAAc,IAAR0tG,GAAe,MAGxDuuF,GAAatE,EAAuB,yBAA2B37K,EAAQ,wBACvE6/K,EAAan0J,OAASu0J,EACtBxC,EAAM59M,MAAMs+M,OAAS9B,EAAUhiN,KAAKgB,OAAQhB,KAAKiB,EAAGjB,KAAKoR,IAEzD2wM,EAAO0B,EAASL,GAEE,MAAd59M,EAAMG,MACR3F,KAAKomC,aAAaq9K,EAASzjN,KAAKiM,qBAIpCs5B,EAAOz3B,UAAUk2M,SAAW,SAAUP,GACpCphL,EAAOohL,EAASzjN,KAAK0jN,QACrB1jN,KAAK0jN,OAAS,KACd1jN,KAAKulN,QAAU,KACfvlN,KAAKqlN,SAAW,KAChBrlN,KAAK+jN,eAAeN,IAGtBl+K,EAAOz3B,UAAUm2M,MAAQ,SAAUR,GACjC1B,EAAO0B,EAASzjN,KAAK0jN,QACrB1jN,KAAKkkN,eAAeT,IAOtB,IAsCIoC,EAtCAC,EAAuB,SACvBC,EAAiB,GACjBC,EAAsB,EACtBC,EAAsB,IACtBC,EAASl7L,SAASU,cAAc,OAEhCy6L,EAAe,SAAUC,GAC3B,IAAIt3I,EAAYi3I,EAAeK,GAE/B,IAAKt3I,EAAW,CAEVk3I,EAAsBC,IACxBD,EAAsB,EACtBD,EAAiB,IAGnB,IACI/2I,EADAxpE,EAAQ0gN,EAAO1gN,MAGnB,IACEA,EAAMojC,KAAOw9K,EACbp3I,EAAaxpE,EAAMwpE,WAAWskB,MAAM,KAAK,GACzC,MAAO3mE,IAETmiD,EAAY,CACVtpE,MAAOA,EAAMspE,WAAag3I,EAC1BO,QAAS7gN,EAAM8gN,aAAeR,EAC9BjC,OAAQr+M,EAAMupE,YAAc+2I,EAC5Bx5M,KAAyC,EAAnC0mF,WAAWxtF,EAAMkkB,UAAY,IACnC68L,OAAQv3I,GAAc,mBAExB+2I,EAAeK,GAAct3I,EAC7Bk3I,IAGF,OAAOl3I,GAKT4hD,EAAYT,UAAU,eAAe,SAAUtqH,EAAMhC,GACnD,IAAIqhN,EAAM5D,EAAQ4D,IAEba,IACHA,EAAgBb,EAAIt5L,cAAc,OAClCm6L,EAAcrgN,MAAMikB,QAAU,wFAC9B23L,EAAQ4D,IAAI/5L,KAAKiB,YAAY25L,IAG/B,IACEA,EAAcrgN,MAAMojC,KAAOjlC,EAC3B,MAAO8qJ,IAMT,OAHAo3D,EAAcn4L,UAAY,GAE1Bm4L,EAAc35L,YAAY84L,EAAI3vF,eAAe1vH,IACtC,CACLnE,MAAOqkN,EAAcW,gBAmMzB,IAhMA,IAAIhP,EAAU,IAAIjrM,EAEd65B,GAAe,SAAUq9K,EAASz3M,EAAMqgF,EAAUo6H,GACpD,IAAIjhN,EAAQxF,KAAKwF,MAEjBxF,KAAK2sD,SAAWgkE,EAAWyC,mBAAmB5tH,GAAO,GACrD,IAAIG,EAAOH,EAAMG,KAIjB,GAFQ,MAARA,IAAiBA,GAAQ,IAEpBA,EAAL,CAMA,GAAIH,EAAM8oE,KAAM,CACd,IAAIulD,EAAenD,EAAY6tF,cAAc54M,EAAMH,GACnDG,EAAO,GAEP,IAAK,IAAIsI,EAAI,EAAGA,EAAI4lH,EAAavyE,MAAMr2C,OAAQgD,IAAK,CAIlD,IAHA,IAAI2wM,EAAS/qF,EAAavyE,MAAMrzC,GAAG2wM,OAC/B8H,EAAW,GAENluM,EAAI,EAAGA,EAAIomM,EAAO3zM,OAAQuN,IACjCkuM,EAAS7lN,KAAK+9M,EAAOpmM,GAAG7S,MAG1BA,EAAK9E,KAAK6lN,EAAS7sM,KAAK,KAG1BlU,EAAOA,EAAKkU,KAAK,MAGnB,IAAIpU,EACAC,EACAsB,EAAQxB,EAAMK,UACdopD,EAAgBzpD,EAAMI,kBACtBkpE,EAAYq3I,EAAa3gN,EAAMojC,MAE/BA,EAAOkmC,EAAUtpE,MAAQ,IAAMspE,EAAUu3I,QAAU,IAAMv3I,EAAU+0I,OAAS,IAAM/0I,EAAUxiE,KAAO,OAASwiE,EAAUy3I,OAAS,IACnIl6H,EAAWA,GAAYqkC,EAAYzkH,gBAAgBtG,EAAMijC,EAAM5hC,EAAOioD,EAAezpD,EAAM+pE,YAAa/pE,EAAMypE,gBAE9G,IAAIj6D,EAAIhV,KAAKsO,UAQb,GANI0G,IAAMyxM,IACRjP,EAAQzzK,KAAK/3B,GACbwrM,EAAQtyK,eAAelwB,GACvBhJ,EAAOwrM,GAGJiP,EAgBHhhN,EAAIuG,EAAKvG,EACTC,EAAIsG,EAAKtG,MAjBM,CACf,IAAIioE,EAAenoE,EAAMmoE,aAEzB,GAAIA,aAAwB51D,MAC1BtS,EAAIuG,EAAKvG,EAAI+uB,EAAam5C,EAAa,GAAI3hE,EAAKxK,OAChDkE,EAAIsG,EAAKtG,EAAI8uB,EAAam5C,EAAa,GAAI3hE,EAAKE,QAChDlF,EAAQA,GAAS,WACZ,CACL,IAAIoZ,EAAMpgB,KAAKstD,sBAAwBttD,KAAKstD,sBAAsB,GAAI9nD,EAAOwG,GAAQ0kH,EAAYpjE,sBAAsB,GAAI9nD,EAAOwG,GAClIvG,EAAI2a,EAAI3a,EACRC,EAAI0a,EAAI1a,EAERsB,EAAQA,GAASoZ,EAAIva,UACrBopD,EAAgBA,GAAiB7uC,EAAIxa,mBAOzCH,EAAIirH,EAAYmtF,YAAYp4M,EAAG4mF,EAAS7qF,MAAOwF,GAC/CtB,EAAIgrH,EAAY6D,YAAY7uH,EAAG2mF,EAASngF,OAAQ+iD,GAEhDvpD,GAAK2mF,EAASngF,OAAS,EAoCvB,IAEI0+F,EACA+7G,EACAC,EAJAtD,EAAalC,EAAQkC,WACrBuD,EAAY7mN,KAAK8mN,WAKhBD,GAmBHD,EAASC,EAAUz0H,WACnBwY,EAASg8G,EAAOr0H,YAChBo0H,EAAa/7G,EAAOrY,cApBpBs0H,EAAYvD,EAAW,QACvB14G,EAAS04G,EAAW,QACpBqD,EAAarD,EAAW,YACxBsD,EAAStD,EAAW,QAGpBqD,EAAWnhN,MAAM,gBAAkB,OACnCk8M,EAAgBmF,GAChBj8G,EAAOm8G,YAAa,EACpBJ,EAAW//M,IAAK,EAChBigN,EAAU7+M,KAAO,MACjB6+M,EAAU/7K,GAAK,YACfi3K,EAAO8E,EAAWD,GAClB7E,EAAO8E,EAAWj8G,GAClBm3G,EAAO8E,EAAWF,GAClB3mN,KAAK8mN,WAAaD,GAQpB,IAAIpuC,EAAS,CAAChzK,EAAGC,GACbshN,EAAiBH,EAAUrhN,MAE3BwP,GAAKyxM,GACPvhL,EAAeuzI,EAAQA,EAAQzjK,GAC/B4xM,EAAOhgN,IAAK,EACZggN,EAAO3jL,OAASjuB,EAAE,GAAG5K,QAAQ,GAAKi3M,EAAQrsM,EAAE,GAAG5K,QAAQ,GAAKi3M,EAAQrsM,EAAE,GAAG5K,QAAQ,GAAKi3M,EAAQrsM,EAAE,GAAG5K,QAAQ,GAAK,OAEhHw8M,EAAO9xM,QAAU6U,EAAM8uJ,EAAO,KAAO,GAAK,KAAO9uJ,EAAM8uJ,EAAO,KAAO,GAErEmuC,EAAOrjL,OAAS,MAChByjL,EAAez8M,KAAO,MACtBy8M,EAAex8M,IAAM,QAErBo8M,EAAOhgN,IAAK,EACZogN,EAAez8M,KAAOof,EAAMlkB,GAAK,KACjCuhN,EAAex8M,IAAMmf,EAAMjkB,GAAK,MAGlCihN,EAAWM,OAASpF,EAAoBl8M,GAExC,IACEghN,EAAWnhN,MAAMojC,KAAOA,EAE1B,MAAOjc,IAEPw2L,EAAoB0D,EAAW,OAAQ,CACrCn1M,KAAMlM,EAAM3B,SACZpC,QAAS+D,EAAM/D,SACdzB,MACHmjN,EAAoB0D,EAAW,SAAU,CACvChoK,OAAQr5C,EAAMmpE,WACdltE,QAAS+D,EAAM/D,QACf25D,SAAU51D,EAAM41D,UAAY,MAE3Bp7D,MACH6mN,EAAUrhN,MAAMs+M,OAAS9B,EAAUhiN,KAAKgB,OAAQhB,KAAKiB,EAAGjB,KAAKoR,IAE7D2wM,EAAO0B,EAASoD,KAGd9C,GAAiB,SAAUN,GAC7BphL,EAAOohL,EAASzjN,KAAK8mN,YACrB9mN,KAAK8mN,WAAa,MAGhB5C,GAAiB,SAAUT,GAC7B1B,EAAO0B,EAASzjN,KAAK8mN,aAGnB3jM,GAAO,CAACspC,EAAUpnB,EAAaE,EAAQukB,EAAMvkD,GAExC0I,GAAI,EAAGA,GAAIkV,GAAKlY,OAAQgD,KAAK,CACpC,IAAI6mI,GAAQ3xH,GAAKlV,IAAGH,UACpBgnI,GAAM1uG,aAAeA,GACrB0uG,GAAMivE,eAAiBA,GACvBjvE,GAAMovE,eAAiBA,GAGzB3+M,EAAKuI,UAAU01M,SAAW,SAAUC,GAClC,IAAIj+M,EAAQxF,KAAKwF,MAEC,MAAdA,EAAMG,KACR3F,KAAKomC,aAAaq9K,EAAS,CACzBh+M,EAAGD,EAAMC,GAAK,EACdC,EAAGF,EAAME,GAAK,EACdlE,MAAO,EACP0K,OAAQ,GACPlM,KAAKiM,mBAAmB,GAE3BjM,KAAK+jN,eAAeN,IAIxBl+M,EAAKuI,UAAUk2M,SAAW,SAAUP,GAClCzjN,KAAK+jN,eAAeN,IAGtBl+M,EAAKuI,UAAUm2M,MAAQ,SAAUR,GAC/BzjN,KAAKkkN,eAAeT,M,qBCp9BxB,IAAIyD,EAAiB,EAAQ,QAEzB36M,EAAe,EAAQ,QAEvB8nB,EAAW,EAAQ,QAEnB89C,EAAuB99C,EAAS89C,qBA6BhCpqC,EAAW,CACb4Q,MAAOwuK,EAAiB,GACxBtuK,MAAOsuK,EAAiB,GACxBn7M,KAAM,CACJsrB,MAAO,SAAU4J,EAAYoV,EAAWF,GACtC,OAAOlV,GAAckV,EAAK7oC,aAAaW,QAAQgzB,EAAW,GAAIA,EAAW,KAE3El1B,KAAM,SAAUk1B,EAAYoV,EAAWF,GACrC,OAAOlV,GAAckV,EAAK7oC,aAAag/B,UAAUrL,KAGrD6X,QAAS,CACPzhB,MAAO,SAAU4J,EAAYoV,EAAWF,GACtC,OAAOlV,GAAckV,EAAK7oC,aAAaW,QAAQgzB,EAAW,GAAIA,EAAW,KAAOgmL,EAAeh5M,QAAQkoC,EAAKt6B,MAAOolB,EAAW,GAAIA,EAAW,KAE/Il1B,KAAM,SAAUk1B,EAAYoV,EAAWF,GACrC,IAAI7+B,EAAS6+B,EAAKt6B,MAElB,IAAKolB,GAAc3pB,EAAOtM,QAAU,EAClC,OAAO,EAGT,IAAIxF,EAAIy7B,EAAWz7B,EACfC,EAAIw7B,EAAWx7B,EACflE,EAAQ0/B,EAAW1/B,MACnB0K,EAASg1B,EAAWh1B,OACpBuL,EAAIF,EAAO,GAEf,SAAI2vM,EAAeh5M,QAAQqJ,EAAQ9R,EAAGC,IAAMwhN,EAAeh5M,QAAQqJ,EAAQ9R,EAAIjE,EAAOkE,IAAMwhN,EAAeh5M,QAAQqJ,EAAQ9R,EAAGC,EAAIwG,IAAWg7M,EAAeh5M,QAAQqJ,EAAQ9R,EAAIjE,EAAOkE,EAAIwG,IAAWK,EAAaq3B,OAAO1C,GAAYhzB,QAAQuJ,EAAE,GAAIA,EAAE,KAAO06D,EAAqB1sE,EAAGC,EAAGD,EAAIjE,EAAOkE,EAAG6R,IAAW46D,EAAqB1sE,EAAGC,EAAGD,EAAGC,EAAIwG,EAAQqL,IAAW46D,EAAqB1sE,EAAIjE,EAAOkE,EAAGD,EAAIjE,EAAOkE,EAAIwG,EAAQqL,IAAW46D,EAAqB1sE,EAAGC,EAAIwG,EAAQzG,EAAIjE,EAAOkE,EAAIwG,EAAQqL,UAAte,KAON,SAAS4vM,EAAiBC,GACxB,IAAIj+K,EAAK,CAAC,IAAK,KACXD,EAAK,CAAC,QAAS,UACnB,MAAO,CACL5R,MAAO,SAAU4J,EAAYoV,EAAWF,GACtC,GAAIlV,EAAY,CACd,IAAIplB,EAAQs6B,EAAKt6B,MACbrE,EAAIypB,EAAWkmL,GACnB,OAAOC,EAAY5vM,EAAGqE,KAG1B9P,KAAM,SAAUk1B,EAAYoV,EAAWF,GACrC,GAAIlV,EAAY,CACd,IAAIplB,EAAQs6B,EAAKt6B,MACbwrM,EAAc,CAACpmL,EAAWiI,EAAGi+K,IAAWlmL,EAAWiI,EAAGi+K,IAAYlmL,EAAWgI,EAAGk+K,KAEpF,OADAE,EAAY,GAAKA,EAAY,IAAMA,EAAYjgN,UACxCggN,EAAYC,EAAY,GAAIxrM,IAAUurM,EAAYC,EAAY,GAAIxrM,IAAUurM,EAAYvrM,EAAM,GAAIwrM,IAAgBD,EAAYvrM,EAAM,GAAIwrM,MAMvJ,SAASD,EAAY5vM,EAAGqE,GACtB,OAAOA,EAAM,IAAMrE,GAAKA,GAAKqE,EAAM,GAGrC,IAAIvc,EAAWwoC,EACfrlC,EAAOC,QAAUpD,G,qBCjGjB,IAAImqD,EAAc,EAAQ,QAoBtBnqD,EAAWmqD,EAAYlqD,OAAO,CAChCC,KAAM,YACNsB,cAAe,CACbC,OAAQ,EACRC,EAAG,EACH4xC,OAAQ,MACRkH,WAAY,GAGZ4P,QAAS,CACPrsB,QAAS,QAEXn8B,MAAO,CACLC,MAAM,EACN4J,SAAU,UAEZE,UAAW,CACTE,YAAa,GAEf1J,SAAU,CACRP,MAAO,CACLC,MAAM,OAMdsB,EAAOC,QAAUpD,G,qBC/CjB,IAAI6I,EAAU,EAAQ,QAoBlB7I,EAAW6I,EAAQ48C,qBAAqB,CAC1CvlD,KAAM,UACNC,aAAc,CAAC,eACfqB,cAAe,CACbC,OAAQ,EACRC,EAAG,GACHG,MAAM,EAENmmN,aAAa,EAGbjqL,QAAS,OAET08F,UAAW,kBACXwtF,mBAAmB,EACnBC,YAAa,SAEbvyG,WAAY,OAWZwyG,SAAS,EAGTC,UAAW,EAEXC,UAAW,IAEX99L,mBAAoB,GACpBiE,WAAW,EAEXhE,gBAAiB,qBAEjB5e,YAAa,OAEb87C,aAAc,EAEd77C,YAAa,EAGb4e,QAAS,EAET69L,aAAc,GAEdtjI,YAAa,CAGX9kF,KAAM,OAKNiQ,KAAM,OACNiO,UAAW,OACXqhD,wBAAyB,IACzB2/H,sBAAuB,iBACvBmpB,WAAY,CACVlwM,MAAO,OACPpW,MAAO,EACP/B,KAAM,SAEN4tE,UAAW,KAKfA,UAAW,CACTz1D,MAAO,OACP8R,SAAU,OAKhBhnB,EAAOC,QAAUpD,G,qBCpGjB,IAAIqD,EAAS,EAAQ,QAEjB8tH,EAAc,EAAQ,QAEtB58F,EAAO,EAAQ,QAEfrrB,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAoBnBgB,EAAQhB,IAEZ,SAAS86K,EAAUt5M,EAAO0wF,GACxBA,EAAcA,GAAe,CAAC,EAAG,KACjCrrE,EAAKhnB,KAAK9M,KAAM,QAASyO,EAAO0wF,GAUhCn/F,KAAKP,KAAO,WAGdsoN,EAAUj6M,UAAY,CACpBC,YAAag6M,EAKb1qI,YAAa,SAAU/lD,EAAOy6E,GAC5B,OAAO/xG,KAAK09C,MAAM2/B,YAAY/lD,EAAOy6E,GAAoB,WAAb/xG,KAAK+P,IAAmB,EAAI,IAE1E0iD,YAAa3+B,EAAKhmB,UAAU0C,YAC5Bw3M,YAAal0L,EAAKhmB,UAAU4vE,YAS5Bi4G,0BAA2B,WACzB,IAAIjmL,EAAO1P,KACPkgC,EAAaxwB,EAAKwkB,gBAClB+zL,EAAev4M,EAAKjB,MACpBy5M,EAAgBD,EAAa1iM,YAI7B4gJ,EAAY8hD,EAAa9lM,QAE7B,GAAI+lM,EAAc,GAAKA,EAAc,GAAK,EACxC,OAAO,EAGT,IAAIh5G,EAAYg5G,EAAc,GAC1BC,EAAWz4M,EAAKc,YAAY0+F,EAAY,GAAKx/F,EAAKc,YAAY0+F,GAC9Dk5G,EAAQv8M,KAAKC,IAAIq8M,GAGjBn8M,EAAO0kH,EAAYzkH,gBAAgBijG,EAAWhvE,EAAWt8B,UAAW,SAAU,OAC9EykN,EAAOx8M,KAAK4E,IAAIzE,EAAKE,OAAQ,GAC7BwmH,EAAK21F,EAAOD,EAEhBrvM,MAAM25G,KAAQA,EAAK3/G,KACnB,IAAImU,EAAWrb,KAAK4E,IAAI,EAAG5E,KAAK+N,MAAM84G,IAClC41F,EAAQr6K,EAAMv+B,EAAKogB,OACnBy4L,EAAmBD,EAAMC,iBACzBC,EAAgBF,EAAME,cAe1B,OAXwB,MAApBD,GAA6C,MAAjBC,GAAyB38M,KAAKC,IAAIy8M,EAAmBrhM,IAAa,GAAKrb,KAAKC,IAAI08M,EAAgBriD,IAAc,GAE3IoiD,EAAmBrhM,EACpBA,EAAWqhM,GAITD,EAAME,cAAgBriD,EACtBmiD,EAAMC,iBAAmBrhM,GAGtBA,IAGXtkB,EAAOwxB,SAAS2zL,EAAWj0L,GAC3B,IAAIv0B,EAAWwoN,EACfrlN,EAAOC,QAAUpD,G,qBC/GjB,IAAIqD,EAAS,EAAQ,QAEjBvD,EAAc,EAAQ,QAEtB0f,EAAO,EAAQ,QAEfymL,EAAc,EAAQ,QAEtBhoD,EAAmBgoD,EAAYhoD,iBAoB/Bj+I,EAAWF,EAAYG,OAAO,CAChCC,KAAM,kBAKNgmM,UAAW,KACX7lM,eAAgB,SAAUC,EAAQC,GAEhC,IAAIof,EAAO,CACTvS,KAAM9M,EAAO8M,KACbkS,SAAUhf,EAAOU,MAEnB8lM,EAAkBnnL,GAClB,IAAIyD,EAAS9iB,EAAO8iB,QAAU,GAE1B8lM,EAAa,GAKjB,OAJAA,EAAW9lM,OAASA,EAIb5D,EAAKuD,WAAWpD,EAAMlf,KAAMyoN,GAAYloN,MAEjDiT,cAAe,WACbxT,KAAK0gI,iBAMP92H,cAAe,SAAUhJ,GACvB,IAAIiJ,EAASxK,EAAYyO,UAAUlE,cAAc0c,MAAMtmB,KAAMkJ,WACzDsW,EAAOxf,KAAKQ,UAAUkiB,KAAKX,mBAAmBnhB,GAElD,OADAiJ,EAAO4zI,aAAeD,EAAiBh+H,EAAMxf,MACtC6J,GAET9I,cAAe,CACbC,OAAQ,EACRC,EAAG,EAEHy3B,OAAQ,CAAC,MAAO,OAChBstB,OAAQ,CAAC,EAAG,OAEZwJ,WAAW,EACX1N,WAAY,GAEZ4jC,SAAU,EACVgjI,iBAAkB,EAElB5iI,kBAAkB,EAIlBuhB,gBAAiB,aAEjBkB,UAAW,aACXxB,wBAAwB,EACxB5lG,MAAO,CAELikC,OAAQ,SACRhkC,MAAM,EACNK,QAAS,EAGTuF,MAAO,SACPgE,SAAU,SACV4+C,SAAU,EACVh4C,QAAQ,GAEV1G,UAAW,CACTE,YAAa,EACbD,YAAa,QACb67C,WAAY,QACZhL,WAAY,EACZG,YAAa,qBACbF,cAAe,EACfC,cAAe,EACfz6C,QAAS,GAEXg5C,UAAW,CACTvvC,UAAW,CACTzJ,QAAS,IAGbi5C,SAAU,CACRxvC,UAAW,CACTzJ,QAAS,IAEXN,MAAO,CACLM,QAAS,KAIb2sD,cAAe,YACf2Q,kBAAmB,IACnBC,wBAAyB,IACzBn9D,gBAAiB,WACjBtB,KAAM,GACNoiB,OAAQ,GAaR9X,KAAM,QAERi8F,YAAa,WACX,OAAO9mG,KAAKylM,WAMd/kE,cAAe,SAAUx4B,GACvBA,EAAWloG,KAAKylM,UAAYv9F,EAAWA,EAAWloG,KAAKylM,UACvD,IAAIvmL,EAAOlf,KAAKoJ,aAAasZ,KAAKxD,KAE7BgpF,IAAYA,IAAahpF,GAASA,EAAKmB,SAAS6nF,MACnDloG,KAAKylM,UAAYvmL,MASvB,SAASmnL,EAAkBtjL,GAIzB,IAAI9Y,EAAM,EACVrH,EAAOzD,KAAK4jB,EAASlE,UAAU,SAAUU,GACvC8mL,EAAkB9mL,GAClB,IAAIonL,EAAapnL,EAAM5R,MACvB/K,EAAOogB,QAAQ2jL,KAAgBA,EAAaA,EAAW,IACvD18L,GAAO08L,KAET,IAAIC,EAAY7jL,EAASpV,MAErB/K,EAAOogB,QAAQ4jL,KACjBA,EAAYA,EAAU,KAGP,MAAbA,GAAqB7tL,MAAM6tL,MAC7BA,EAAY38L,GAIV28L,EAAY,IACdA,EAAY,GAGdhkM,EAAOogB,QAAQD,EAASpV,OAASoV,EAASpV,MAAM,GAAKi5L,EAAY7jL,EAASpV,MAAQi5L,EAGpFlkM,EAAOC,QAAUpD,G,qBC/LjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASyI,EAAgBC,EAAUC,GAGjC,OADAA,EAAWA,GAAY,CAAC,EAAG,GACpB3I,EAAOqE,IAAI,CAAC,IAAK,MAAM,SAAU8I,EAAKvE,GAC3C,IAAIkE,EAAO1P,KAAK43F,QAAQ7nF,GACpBtE,EAAMF,EAASC,GACfE,EAAWJ,EAASE,GAAU,EAClC,MAAqB,aAAdkE,EAAKjQ,KAAsBiQ,EAAKuoB,eAAiBpsB,KAAKC,IAAI4D,EAAKc,YAAY/E,EAAMC,GAAYgE,EAAKc,YAAY/E,EAAMC,MAC1H1L,MAGL,SAAST,EAASc,GAChB,IAAI2L,EAAO3L,EAASoP,KAAKO,UACzB,MAAO,CACL3P,SAAU,CAERZ,KAAM,cACNgG,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,QAEf3F,IAAK,CACH8F,MAAO,SAAU9L,GAEf,OAAOF,EAAS0L,YAAYxL,IAE9B+L,KAAM1J,EAAOiC,KAAKwG,EAAiBhL,KAKzCqC,EAAOC,QAAUpD,G,qBCpDjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAErB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI4hK,EAAW,EAAQ,QAEnBvhK,EAASuhK,EAASvhK,OAElBi2C,EAAe,EAAQ,QAE3B,EAAQ,QAqBR9wC,EAAQyrB,eAAejxB,EAAO4G,MAAMvG,EAAQ,iBAC5CmF,EAAQ2mB,eAAemqB,EAAa,eAAgB,e,qBCtCpD,IAAI9wC,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB+xC,EAAiB,EAAQ,QAEzBhxB,EAAgB,EAAQ,QAoBxBglM,EAAkBvgN,EAAQ8sC,SAASC,OAAOmsE,UA8C9C,SAASl6F,EAAetlB,EAAa0B,EAAgBmK,EAAOga,GAQ1D,IAPA,IAAImmE,EAAWtqF,EAAe6gI,cAAc18G,GACxChC,EAAchC,EAAckrE,mBAAmBf,GAC/C86H,EAAe,CACjBhxM,MAAO9V,EAAYtB,UAAUihB,UAAU,UAIhCxT,EAAI,EAAGqK,EAAMqN,EAAY1a,OAAQgD,EAAIqK,EAAKrK,IAAK,CACtD,IAAIxO,EAAOkmB,EAAY1X,GACnB04B,EAAUmnD,EAAkB,YAATruF,EAAqB,oBAAsBA,GAClEknC,GAAWA,EAAQ+R,YAAY/qC,EAAO8T,EAAWF,GAGnD,OAAOqnM,EAAahxM,MAEpB,SAAS6J,EAAU1Z,GACjB,OAAO6gN,EAAa7gN,GAGtB,SAASwZ,EAAUxZ,EAAK4F,GACtBi7M,EAAa7gN,GAAO4F,GAlExBvF,EAAQ2mB,eAAe45L,EAAiB,CACtCz8C,mBAAmB,EACnBp3I,MAAO,SAAUhzB,EAAahC,GAC5B,IAAIitK,EAAe,GAUnB,OATAjtK,EAAQs+B,cAAc,aAAa,SAAU56B,GAC3C,IAAIoyB,EAAkB9zB,EAAY8zB,iBAE7BpyB,EAAew7G,eAAel9G,IAAgB8zB,GAAmBA,EAAgBC,OAItFk3I,EAAalsK,KAAK8zC,EAAem6C,uBAAuBtrF,EAAe6iB,UAAW7iB,EAAe6gI,cAAezhI,EAAOiC,KAAKrB,EAAe6B,cAAe7B,GAAiBA,EAAesjB,iBAAiBhlB,EAAYtB,gBAElNusK,KAIX3kK,EAAQ2mB,eAAe45L,EAAiB,CACtCz8C,mBAAmB,EACnBp3I,MAAO,SAAUhzB,EAAahC,GAC5B,IAAIS,EAAOuB,EAAYtB,UACnB8zI,EAAiB,GACrBx0I,EAAQs+B,cAAc,aAAa,SAAU56B,GAC3C,GAAIA,EAAew7G,eAAel9G,GAAc,CAC9C,IAAI+mN,EAAarlN,EAAe2jB,cAAcvkB,EAAOiC,KAAKuiB,EAAgB,KAAMtlB,EAAa0B,KAAoB,CAC/G6jB,MAAO,GACPC,YAAa,IAEXwhM,EAActlN,EAAesjB,iBAAiBvmB,GAC9C6qF,EAAU7qF,EAAKirF,iBAAiBs9H,GAErB,MAAX19H,IAEFy9H,EAAWnoM,UAAY0qE,EAAQjkF,MAC/BmtI,EAAezzI,KAAKgoN,QAK1B/mN,EAAYtB,UAAU+gB,UAAU,aAAc+yH,O,mBChDlD,IAAIvC,EAAoB,CAAC,YAAa,SAAU,WAC5CxyI,EAAW,CACbq1B,WAAY,WACZE,MAAO,SAAUhzB,EAAahC,EAASyG,GACrC,IAAIw5B,EAAiBj+B,EAAYmf,SAAS,aACtC4/B,EAAiB/+C,EAAYmf,SAAS,aACtCkwE,EAAerxF,EAAQoC,IAAI,SAC3B0V,EAAQipC,EAAe3+C,IAAI,UAAY69B,EAAe79B,IAAI,UAAYivF,EAAarvF,EAAYi1C,YAAco6C,EAAalmF,QAC1H5J,EAAkBS,EAAYI,IAAI,mBAClCZ,EAAgBQ,EAAYI,IAAI,iBAChCX,EAAYO,EAAYmf,SAAS,aAAa29B,eAC9Cv+C,EAAWyB,EAAYxB,iBACvBC,EAAOuB,EAAYtB,UACnBuoN,EAAa,CACflmI,OAAQthF,EAAUE,QAClB8uJ,OAAQjvJ,EACRkvJ,SAAUnvJ,GAIZ,SAASs0B,EAAS9rB,EAAQtJ,GACxBF,EAASK,gBAAgBH,GAAM,SAAUH,EAAaQ,GACpD,IAAIa,EAAUsnN,EAAW3oN,GAEzB,GAAoB,WAAhBA,GAA4BG,EAAKg8C,cAAe,CAClD,IAAIysK,EAAczoN,EAAK6gB,aAAaxgB,GAAWsB,IAAI6vI,GAAmB,GACvD,MAAfi3E,IAAwBvnN,EAAUunN,GAGpCzoN,EAAKihB,cAAc5gB,EAAW,UAAWa,KACxCoI,EAAO0K,MAAO1K,EAAOwwE,KAG1B,OAfA95E,EAAKghB,UAAU,QAAS3J,GAejB,CACL+d,SAAUA,KAIhBjzB,EAAOC,QAAUpD,G,qBCxDjB,IAAI6I,EAAU,EAAQ,QAElBu6H,EAAa,EAAQ,QAErBsmF,EAAkB,EAAQ,QAE1BpmF,EAAe,EAAQ,QAoB3Bz6H,EAAQq1C,gBAAgB,CACtBh+C,KAAM,UACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIhG,EAAOuB,EAAYtB,UAEnB4zL,EAAap0L,KAAKkpN,kBAAkB3oN,EAAMuB,GAE9CsyL,EAAWngJ,WAAW1zC,EAAM,CAK1B+pC,UAAWtqC,KAAKmpN,cAAcrnN,KAEhC9B,KAAKopN,WAAY,GAEnB3+J,yBAA0B,SAAU3oD,EAAahC,EAASyG,GACxD,IAAIhG,EAAOuB,EAAYtB,UAEnB4zL,EAAap0L,KAAKkpN,kBAAkB3oN,EAAMuB,GAE9CsyL,EAAW/X,yBAAyB97K,GACpCP,KAAKopN,WAAY,GAEnBz+J,kBAAmB,SAAU0lG,EAAYvuJ,EAAahC,GACpDE,KAAK8iI,YAAYy5C,kBAAkBlsB,EAAYvuJ,EAAYtB,UAAW,CACpE8pC,UAAWtqC,KAAKmpN,cAAcrnN,KAGhC9B,KAAKopN,UAAY/4D,EAAWh2E,MAAQv4E,EAAYtB,UAAU2hB,SAE5DzT,gBAAiB,SAAU5M,EAAahC,EAASyG,GAC/C,IAAIhG,EAAOuB,EAAYtB,UAKvB,GAFAR,KAAKsD,MAAMgP,SAENtS,KAAKopN,WAAa7oN,EAAK4hB,QAAU,MAAQniB,KAAK8iI,YAAYq5C,eAC7D,MAAO,CACL5zK,QAAQ,GAGV,IAAI6X,EAAMyiH,IAAe/tG,MAAMhzB,GAE3Bse,EAAIuV,UACNvV,EAAIuV,SAAS,CACXphB,MAAO,EACP8lE,IAAK95E,EAAK4hB,SACT5hB,GAGLP,KAAK8iI,YAAYpuF,aAAan0C,IAGlC4oN,cAAe,SAAUrnN,GACvB,IAAIzB,EAAWyB,EAAYxB,iBACvB0qD,EAAW3qD,GAAYA,EAAS4qD,SAAW5qD,EAAS4qD,UACxD,OAAOnpD,EAAYI,IAAI,QAAQ,GAAQ8oD,EAAW,MAEpDk+J,kBAAmB,SAAU3oN,EAAMuB,GACjC,IAAIsyL,EAAap0L,KAAK8iI,YAClBltG,EAAkB9zB,EAAY8zB,gBAC9Bk1B,EAAcl1B,EAAgBC,MAUlC,OARKu+J,GAActpI,IAAgB9qD,KAAKsqD,eACtC8pI,GAAcA,EAAW/xJ,SACzB+xJ,EAAap0L,KAAK8iI,YAAch4E,EAAc,IAAIm+J,EAAoB,IAAItmF,EAC1E3iI,KAAKsqD,aAAeQ,EACpB9qD,KAAKsD,MAAMC,aAGbvD,KAAKsD,MAAMgC,IAAI8uL,EAAW9wL,OACnB8wL,GAET/xJ,OAAQ,SAAUviC,EAASyG,GACzBvG,KAAK8iI,aAAe9iI,KAAK8iI,YAAYzgG,QAAO,GAC5CriC,KAAK8iI,YAAc,MAErBv0G,QAAS,gB,qBC5HX,IAAIu7B,EAAO,EAAQ,QAEf3X,EAAO,EAAQ,QAEfiyH,EAAS,EAAQ,QAEjB7+B,EAAqB6+B,EAAO7+B,mBAC5BmF,EAAiB05B,EAAO15B,eACxBt2F,EAAcgwH,EAAOhwH,YACrB8nB,EAAUkoG,EAAOloG,QACjB7nB,EAAwB+vH,EAAO/vH,sBAC/Bu1F,EAAoBw6B,EAAOx6B,kBAM3B16H,EAAM,GAEV,SAASm6M,EAAa73M,EAAO6C,EAAGi1M,GAC9B,IAAI1lE,EAAOpyI,EAAMoyI,KACbC,EAAOryI,EAAMqyI,KAEjB,OAAa,OAATD,GAA0B,OAATC,EACZ,EAAEylE,EAAY1/E,EAAoB1tE,GAAS1qD,EAAM4oD,GAAI5oD,EAAMkyI,KAAMlyI,EAAMoyI,KAAMpyI,EAAM8oD,GAAIjmD,IAAKi1M,EAAY1/E,EAAoB1tE,GAAS1qD,EAAM6oD,GAAI7oD,EAAMmyI,KAAMnyI,EAAMqyI,KAAMryI,EAAM+oD,GAAIlmD,IAEjL,EAAEi1M,EAAYj1K,EAAwBD,GAAa5iC,EAAM4oD,GAAI5oD,EAAMkyI,KAAMlyI,EAAM8oD,GAAIjmD,IAAKi1M,EAAYj1K,EAAwBD,GAAa5iC,EAAM6oD,GAAI7oD,EAAMmyI,KAAMnyI,EAAM+oD,GAAIlmD,IAIpL,IAAI9U,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,eACN+R,MAAO,CACL4oD,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJmpF,KAAM,EACNC,KAAM,EAINx5I,QAAS,GAEX3E,MAAO,CACLq5C,OAAQ,OACRntC,KAAM,MAER+5C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI4oD,EAAK5oD,EAAM4oD,GACXC,EAAK7oD,EAAM6oD,GACXC,EAAK9oD,EAAM8oD,GACXC,EAAK/oD,EAAM+oD,GACXmpF,EAAOlyI,EAAMkyI,KACbC,EAAOnyI,EAAMmyI,KACbC,EAAOpyI,EAAMoyI,KACbC,EAAOryI,EAAMqyI,KACb15I,EAAUqH,EAAMrH,QAEJ,IAAZA,IAIJs6B,EAAItW,OAAOisC,EAAIC,GAEH,MAARupF,GAAwB,MAARC,GACd15I,EAAU,IACZo7H,EAAmBnrE,EAAIspF,EAAMppF,EAAInwD,EAAS+E,GAC1Cw0I,EAAOx0I,EAAI,GACXorD,EAAKprD,EAAI,GACTq2H,EAAmBlrE,EAAIspF,EAAMppF,EAAIpwD,EAAS+E,GAC1Cy0I,EAAOz0I,EAAI,GACXqrD,EAAKrrD,EAAI,IAGXu1B,EAAIk2B,iBAAiB+oF,EAAMC,EAAMrpF,EAAIC,KAEjCpwD,EAAU,IACZugI,EAAetwE,EAAIspF,EAAME,EAAMtpF,EAAInwD,EAAS+E,GAC5Cw0I,EAAOx0I,EAAI,GACX00I,EAAO10I,EAAI,GACXorD,EAAKprD,EAAI,GACTw7H,EAAerwE,EAAIspF,EAAME,EAAMtpF,EAAIpwD,EAAS+E,GAC5Cy0I,EAAOz0I,EAAI,GACX20I,EAAO30I,EAAI,GACXqrD,EAAKrrD,EAAI,IAGXu1B,EAAI01B,cAAcupF,EAAMC,EAAMC,EAAMC,EAAMvpF,EAAIC,MASlDorH,QAAS,SAAUtxK,GACjB,OAAOg1M,EAAarpN,KAAKwR,MAAO6C,GAAG,IAQrCyxK,UAAW,SAAUzxK,GACnB,IAAIoD,EAAI4xM,EAAarpN,KAAKwR,MAAO6C,GAAG,GACpC,OAAO89B,EAAK6W,UAAUvxC,EAAGA,MAI7B/U,EAAOC,QAAUpD,G,qBC5FjB,IAAI2+I,EAAwB,EAAQ,QAEhCl/D,EAAiBk/D,EAAsBl/D,eAoB3C,SAASz/E,EAASO,GAChBA,EAAQumC,iBAAiB,SAAS,SAAUvkC,GACR,aAA9BA,EAAYI,IAAI,WAClB88E,EAAel9E,EAAa,iBAKlCY,EAAOC,QAAUpD,G,qBC9BjB,IAAIF,EAAc,EAAQ,QAEtBmf,EAAmB,EAAQ,QAE3B8gF,EAAmB,EAAQ,QAE3BtO,EAAyBsO,EAAiBtO,uBAE1CzyE,EAAO,EAAQ,QAEf3b,EAAS,EAAQ,QAEjB6F,EAAS,EAAQ,QAEjB+nL,EAAY/nL,EAAO+nL,UAEnB7yH,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAErB/0D,EAAuB,EAAQ,QAoB/B0gN,EAAkB,EAClBC,EAAmBnqN,EAAYG,OAAO,CACxCC,KAAM,oBACNC,aAAc,CAAC,cAMfkN,QAAS,KAKT5D,KAAM,SAAUnJ,GAEd2pN,EAAiBvgN,WAAWjJ,KAAM,OAAQkJ,WAI1ClJ,KAAKmJ,qBAAuB,IAAIN,EAAqBjG,EAAOiC,KAAK7E,KAAKQ,QAASR,MAAO4C,EAAOiC,KAAK7E,KAAKoJ,WAAYpJ,QASrHypN,QAAS,SAAUlpN,GACjB,IAAImpN,EAAgBnpN,EAAK0K,OAErB+nL,EAAcxC,EAAUjwL,GAAM,SAAUiE,GAC1C,OAAOA,EAAK,MAEVmlN,EAAU,GACd32B,EAAYC,QAAQ9zL,MAAK,SAAUuzB,EAAO3qB,GACxC4hN,EAAQ9oN,KAAK,CACX8L,KAAM5E,EACN6hN,SAAUl3L,OAOd,IAJA,IAAIipH,EAAWguE,EAAQ1+M,OACnB4+M,GAAgB,EAChB1iN,GAAS,EAEJ8G,EAAI,EAAGA,EAAI0tI,IAAY1tI,EAAG,CACjC,IAAIqK,EAAMqxM,EAAQ17M,GAAG27M,SAAS3+M,OAE1BqN,EAAMuxM,IACRA,EAAevxM,EACfnR,EAAQ8G,GAIZ,IAAK,IAAIgI,EAAI,EAAGA,EAAI0lI,IAAY1lI,EAC9B,GAAIA,IAAM9O,EAMV,IAFA,IAAIwF,EAAOg9M,EAAQ1zM,GAAGtJ,KAEb6L,EAAI,EAAGA,EAAIqxM,IAAgBrxM,EAAG,CAKrC,IAJA,IAAIsxM,EAAYH,EAAQxiN,GAAOyiN,SAASpxM,GAAG,GACvCvN,EAAS0+M,EAAQ1zM,GAAG2zM,SAAS3+M,OAC7B8+M,GAAY,EAEP3zJ,EAAI,EAAGA,EAAInrD,IAAUmrD,EAAG,CAC/B,IAAIzoD,EAAQg8M,EAAQ1zM,GAAG2zM,SAASxzJ,GAAG,GAEnC,GAAIzoD,IAAUm8M,EAAW,CACvBC,EAAW3zJ,EACX,QAIc,IAAd2zJ,IACFxpN,EAAKmpN,GAAiB,GACtBnpN,EAAKmpN,GAAe,GAAKI,EACzBvpN,EAAKmpN,GAAe,GAAK,EACzBnpN,EAAKmpN,GAAe,GAAK/8M,EACzB+8M,KAKN,OAAOnpN,GASTX,eAAgB,SAAUC,EAAQC,GAiBhC,IAhBA,IAAIs5G,EAAkBt5G,EAAQgxD,gBAAgB,CAC5C7zB,SAAU,aACV91B,MAAOnH,KAAKkC,IAAI,mBAChBiG,GAAInI,KAAKkC,IAAI,kBACZ,GACC+xB,EAAWmlF,EAAgBl3G,IAAI,QAE/BitF,EAAavsF,EAAOyuD,OAAOxxD,EAAOU,MAAM,SAAUgL,GACpD,YAAuBunB,IAAhBvnB,EAAS,MAGdhL,EAAOP,KAAKypN,QAAQt6H,GAAc,IAClC4lE,EAAW,GACXnoJ,EAAU5M,KAAK4M,QAAUhK,EAAOxD,gBAChC+iB,EAAQ,EAEHlU,EAAI,EAAGA,EAAI1N,EAAK0K,SAAUgD,EACjC8mJ,EAASl0J,KAAKN,EAAK0N,GAAGs7M,IAEjB38M,EAAQ1K,IAAI3B,EAAK0N,GAAGs7M,MACvB38M,EAAQrK,IAAIhC,EAAK0N,GAAGs7M,GAAkBpnM,GACtCA,KAIJ,IAAIc,EAAiBzE,EAAiBje,EAAM,CAC1C+I,gBAAiB,CAAC,UAClBmlC,iBAAkB,CAAC,CACjB9hC,KAAM,OACNlN,KAAMuxF,EAAuB/8D,IAC5B,CACDtnB,KAAM,QACNlN,KAAM,SACL,CACDkN,KAAM,OACNlN,KAAM,YAERsC,aAAc,CACZ0mF,OAAQ,EACR96E,MAAO,EACPgjC,SAAU,KAGVxtB,EAAO,IAAI5E,EAAK0E,EAAgBjjB,MAEpC,OADAmjB,EAAKC,SAAS7iB,GACP4iB,GASTo+D,eAAgB,WAKd,IAJA,IAAIhhF,EAAOP,KAAKQ,UACZwpN,EAAWzpN,EAAK4hB,QAChB8nM,EAAW,GAENh8M,EAAI,EAAGA,EAAI+7M,IAAY/7M,EAC9Bg8M,EAASh8M,GAAKA,EAGhB,IAAIktI,EAAU56I,EAAKyJ,aAAa,UAE5BgpL,EAAcxC,EAAUy5B,GAAU,SAAU9iN,GAC9C,OAAO5G,EAAK2B,IAAI,OAAQiF,MAEtBm6E,EAAc,GAUlB,OATA0xG,EAAYC,QAAQ9zL,MAAK,SAAUuzB,EAAO3qB,GACxC2qB,EAAM7nB,MAAK,SAAUq/M,EAAQC,GAC3B,OAAO5pN,EAAK2B,IAAIi5I,EAAS+uE,GAAU3pN,EAAK2B,IAAIi5I,EAASgvE,MAEvD7oI,EAAYzgF,KAAK,CACf8L,KAAM5E,EACNtH,QAASiyB,OAGN4uD,GAWTq3D,mBAAoB,SAAU5oI,EAAKpC,EAAOmqB,GACnCl1B,EAAOogB,QAAQjT,KAClBA,EAAMA,EAAM,CAACA,GAAO,IAStB,IANA,IAIIq6M,EAJA7pN,EAAOP,KAAKQ,UACZ8gF,EAActhF,KAAKuhF,iBACnB9gF,EAAU,GACVk7I,EAAWr6D,EAAYr2E,OAGlBgD,EAAI,EAAGA,EAAI0tI,IAAY1tI,EAAG,CAKjC,IAJA,IAAI0pJ,EAAUt7F,OAAOC,UACjB+tJ,GAAc,EACdzuE,EAAWt6D,EAAYrzE,GAAGxN,QAAQwK,OAE7BuN,EAAI,EAAGA,EAAIojI,IAAYpjI,EAAG,CACjC,IAAI8xM,EAAW/pN,EAAK2B,IAAI6N,EAAI,GAAIuxE,EAAYrzE,GAAGxN,QAAQ+X,IACnD+f,EAAO1sB,KAAKC,IAAIw+M,EAAW38M,GAE3B4qB,GAAQo/H,IACVyyD,EAAeE,EACf3yD,EAAUp/H,EACV8xL,EAAa/oI,EAAYrzE,GAAGxN,QAAQ+X,IAIxC/X,EAAQI,KAAKwpN,GAGf,MAAO,CACLxjM,YAAapmB,EACb2pN,aAAcA,IAQlB3rJ,cAAe,SAAU79D,GACvB,IAAIL,EAAOP,KAAKQ,UACZ+pN,EAAWhqN,EAAK08C,QAAQr8C,GACxB4pN,EAAYjqN,EAAK2B,IAAI3B,EAAKyJ,aAAa,SAAUpJ,GAMrD,OAJImY,MAAMyxM,IAA2B,MAAbA,KACtBA,EAAY,KAGP5sJ,EAAW2sJ,EAAW,MAAQC,IAEvCzpN,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,aAElB2kD,YAAa,CAAC,MAAO,OAErBo0D,gBAAiB,EACjBx3G,gBAAiB,SACjBV,MAAO,CACL8gF,OAAQ,EACR7gF,MAAM,EACN4J,SAAU,OACV4M,MAAO,OACP8R,SAAU,IAEZhoB,SAAU,CACRP,MAAO,CACLC,MAAM,OAKV7B,EAAWiqN,EACf9mN,EAAOC,QAAUpD,G,qBC5SjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElBq0E,EAAW,EAAQ,QAEnBzlD,EAAa,EAAQ,QAErBH,EAAO,EAAQ,QAEfqM,EAAW,EAAQ,QAEnBovH,EAAiB,EAAQ,QAEzBqtC,EAAgB,EAAQ,QAExBkG,EAAc,EAAQ,QAEtBn3J,EAA8B,EAAQ,QAEtCC,EAAiBD,EAA4BC,eAoB7CzqD,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,QACNuJ,KAAM,aACNsI,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIhG,EAAOuB,EAAYtB,UAEnBy5F,EAAWj6F,KAAKyqN,gBAAgBlqN,EAAMuB,GAEtCd,EAASc,EAAYI,IAAI,UACzBu3K,EAAc33K,EAAYI,IAAI,sBAC9BqoB,EAAKhkB,EAAIslB,QAITq6F,EAAiC,QAAzB37F,EAAGK,QAAQo7F,UAElBE,GACH37F,EAAGK,QAAQ8/L,SAAS1pN,GAAQ83B,OAAM,GAIZ,MAApB94B,KAAK2qN,aAAwBzkG,GAC/B37F,EAAGm+I,YAAY1oK,KAAK2qN,YAAa,CAC/BhkE,YAAY,IAIZ3mJ,KAAK4qN,YAAY9oN,IAAgB23K,IAC9BvzD,GACH37F,EAAGm+I,YAAY1nK,EAAQ,CACrB2lJ,YAAY,EACZC,eAAgB/6I,KAAK4E,IAAI5E,KAAK6E,IAAI+oK,EAAc,GAAK,GAAK,GAAI,MAKpEx/E,EAAShmD,WAAW1zC,GACpB,IAAIgrD,EAAWzpD,EAAYI,IAAI,QAAQ,IAAS8nD,EAAeloD,EAAYxB,kBAAkB,EAAOwB,GAEhGypD,EACFvrD,KAAKsD,MAAMinC,YAAYghB,GAEvBvrD,KAAKsD,MAAMqkC,iBAGb3nC,KAAK2qN,YAAc3pN,EACnBhB,KAAKopN,WAAY,GAEnB3+J,yBAA0B,SAAU3oD,EAAahC,EAASyG,GACxD,IAAIhG,EAAOuB,EAAYtB,UAEnBy5F,EAAWj6F,KAAKyqN,gBAAgBlqN,EAAMuB,GAE1Cm4F,EAASoiF,yBAAyB97K,GAElCP,KAAK6qN,YAAYtkN,GAEjBvG,KAAKopN,WAAY,GAEnBz+J,kBAAmB,SAAU0lG,EAAYvuJ,EAAahC,GACpDE,KAAKyuM,UAAUlyB,kBAAkBlsB,EAAYvuJ,EAAYtB,WAEzDR,KAAKopN,UAAY/4D,EAAWh2E,MAAQv4E,EAAYtB,UAAU2hB,SAE5DzT,gBAAiB,SAAU5M,EAAahC,EAASyG,GAC/C,IAAIhG,EAAOuB,EAAYtB,UACnBo1B,EAAkB9zB,EAAY8zB,gBAElC,IAAK51B,KAAKopN,WAAaxzL,EAAgBC,OAASD,EAAgBg1I,kBAE9D,MAAO,CACLriK,QAAQ,GAKV,IAAI6X,EAAM8gM,EAAYpsL,MAAMhzB,GAExBse,EAAIuV,UACNvV,EAAIuV,SAAS,CACXphB,MAAO,EACP8lE,IAAK95E,EAAK4hB,SACT5hB,GAGLP,KAAKyuM,UAAU/5J,eAEf10C,KAAK6qN,YAAYtkN,IAGrBkkN,gBAAiB,SAAUlqN,EAAMuB,GAC/B,IAAIm4F,EAAWj6F,KAAKyuM,UAEhBqc,EAAY9qN,KAAK4qN,YAAY9oN,GAE7Bg7J,IAAeh7J,EAAYI,IAAI,YAC/B0zB,EAAkB9zB,EAAY8zB,gBAC9Bk1B,EAAcl1B,EAAgBC,MAelC,OAbKokE,GAAY6wH,IAAc9qN,KAAK+qN,WAAajuD,IAAe98J,KAAKgrN,aAAelgK,IAAgB9qD,KAAKsqD,eACnG2vC,GACFA,EAAS53D,SAGX43D,EAAWj6F,KAAKyuM,UAAY3jJ,EAAc,IAAIkwJ,EAAkB,IAAIljH,EAASglE,EAAaguD,EAAYn9C,EAAiBpvH,EAAWusK,EAAYz4K,EAAaH,GAC3JlyC,KAAK+qN,UAAYD,EACjB9qN,KAAKgrN,YAAcluD,EACnB98J,KAAKsqD,aAAeQ,EACpB9qD,KAAKsD,MAAMC,aAGbvD,KAAKsD,MAAMgC,IAAI20F,EAAS32F,OACjB22F,GAET2wH,YAAa,SAAU9oN,GACrB,QAASA,EAAYI,IAAI,gBAE3B2oN,YAAa,SAAUtkN,GAErB,IAAIgkB,EAAKhkB,EAAIslB,QACTq6F,EAAiC,QAAzB37F,EAAGK,QAAQo7F,UAElBE,GAA6B,MAApBlmH,KAAK2qN,aACjBpgM,EAAGK,QAAQ8/L,SAAS1qN,KAAK2qN,aAAa7xL,OAAM,IAGhDuJ,OAAQ,SAAUviC,EAASyG,GACzBvG,KAAKyuM,WAAazuM,KAAKyuM,UAAUpsK,SACjCriC,KAAKyuM,UAAY,KAEjBzuM,KAAK6qN,YAAYtkN,IAEnBgoB,QAAS,eAGX7rB,EAAOC,QAAUpD,G,qBCrMjB,IAAIuqD,EAAO,EAAQ,QAMfvqD,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,UACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJue,GAAI,EACJC,GAAI,GAENpR,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAIyE,EAAI,SACJxQ,EAAI+L,EAAM4sC,GACV14C,EAAI8L,EAAM6sC,GACVhnC,EAAI7F,EAAMorD,GACVtlD,EAAI9F,EAAMqrD,GACVouJ,EAAK5zM,EAAIpB,EAETi1M,EAAK5zM,EAAIrB,EAGbwuB,EAAItW,OAAO1oB,EAAI4R,EAAG3R,GAClB++B,EAAI01B,cAAc10D,EAAI4R,EAAG3R,EAAIwlN,EAAIzlN,EAAIwlN,EAAIvlN,EAAI4R,EAAG7R,EAAGC,EAAI4R,GACvDmtB,EAAI01B,cAAc10D,EAAIwlN,EAAIvlN,EAAI4R,EAAG7R,EAAI4R,EAAG3R,EAAIwlN,EAAIzlN,EAAI4R,EAAG3R,GACvD++B,EAAI01B,cAAc10D,EAAI4R,EAAG3R,EAAIwlN,EAAIzlN,EAAIwlN,EAAIvlN,EAAI4R,EAAG7R,EAAGC,EAAI4R,GACvDmtB,EAAI01B,cAAc10D,EAAIwlN,EAAIvlN,EAAI4R,EAAG7R,EAAI4R,EAAG3R,EAAIwlN,EAAIzlN,EAAI4R,EAAG3R,GACvD++B,EAAImnB,eAIRlpD,EAAOC,QAAUpD,G,qBCdjB,IAAIqD,EAAS,EAAQ,QAoBjBuoN,EAAuB,CAAC,OAAQ,UAAW,OAAQ,SAEvD,SAAS5rN,EAASM,EAAQurN,GACxB,IAAIC,EAAkBxrN,GAAUA,EAAO2lC,MAMvC,GAJK5iC,EAAOogB,QAAQqoM,KAClBA,EAAkBA,EAAkB,CAACA,GAAmB,IAGrDA,EAAgBpgN,OAArB,CAIA,IAAIqgN,EAA8B,GAClC1oN,EAAOzD,KAAKksN,GAAiB,SAAUE,GACrC,IAAIC,EAAMD,EAASxuM,eAAe,WAAawuM,EAAStmI,QAAU,GAE9DumI,aAAezzM,QACjBuzM,EAA8BA,EAA4B9zJ,OAAOg0J,OAGrE,IAAIvmI,EAAUplF,GAAUA,EAAOolF,QAE3BriF,EAAOogB,QAAQiiE,KACjBA,EAAUA,EAAQ,IAGfA,IACHA,EAAU,CACRE,QAAS,IAEXtlF,EAAOolF,QAAU,CAACA,IAGpB,IAAIwmI,EAAiBxmI,EAAQE,UAAYF,EAAQE,QAAU,IACvDumI,EAAeD,EAAejmL,QAAUimL,EAAejmL,MAAQ,IAC/DmmL,EAAaD,EAAajsN,OAASisN,EAAajsN,KAAO,IAC3DksN,EAAW9qN,KAAKylB,MAAMqlM,EAAYL,GAClCM,EAAgBD,GAEZP,IAAUO,EAAW1gN,QACvB0gN,EAAW9qN,KAAKylB,MAAMqlM,EAAYR,IAItC,SAASS,EAAgBz5G,GACvB,IAAIlrG,EAAM,GACVrE,EAAOzD,KAAKgzG,GAAK,SAAU1mG,GACzBxE,EAAIwE,GAAO,KAEb0mG,EAAIlnG,OAAS,EACbrI,EAAOzD,KAAK8H,GAAK,SAAU4kN,EAAMpgN,GAC/B0mG,EAAItxG,KAAK4K,MAIb/I,EAAOC,QAAUpD,G,qBC5EjB,EAAQ,QAER,EAAQ,S,kCCtBR,yBAA2mB,EAAG,G,qBCA9mB,IAAIk7F,EAAO,EAAQ,QAEf3xE,EAAM,EAAQ,QAEdnkB,EAAQ,EAAQ,QAEhB06G,EAAU,EAAQ,QAItB,SAASysG,EAAiBz0M,EAAGC,GAC3B,OAAID,EAAErW,SAAWsW,EAAEtW,OACbqW,EAAEpW,IAAMqW,EAAErW,EAOLoW,EAAEjG,GAAKkG,EAAElG,GAGXiG,EAAEpW,EAAIqW,EAAErW,EAGVoW,EAAErW,OAASsW,EAAEtW,OAStB,IAAIqmK,EAAU,WAEZrnK,KAAK+rN,OAAS,GACd/rN,KAAKgsN,aAAe,GACpBhsN,KAAKisN,gBAAkB,GAGzB5kD,EAAQv5J,UAAY,CAClBC,YAAas5J,EAMbvkI,SAAU,SAAU3kB,EAAIyB,GACtB,IAAK,IAAI3R,EAAI,EAAGA,EAAIjO,KAAK+rN,OAAO9gN,OAAQgD,IACtCjO,KAAK+rN,OAAO99M,GAAG60B,SAAS3kB,EAAIyB,IAYhC6lG,eAAgB,SAAUl9G,EAAQ2jN,GAOhC,OANAA,EAAgBA,IAAiB,EAE7B3jN,GACFvI,KAAKmsN,kBAAkBD,GAGlBlsN,KAAKgsN,cASdG,kBAAmB,SAAUD,GAC3BlsN,KAAKisN,gBAAkB,EAIvB,IAHA,IAAIniF,EAAQ9pI,KAAK+rN,OACbK,EAAcpsN,KAAKgsN,aAEd/9M,EAAI,EAAGqK,EAAMwxH,EAAM7+H,OAAQgD,EAAIqK,EAAKrK,IAC3CjO,KAAKqsN,yBAAyBviF,EAAM77H,GAAI,KAAMi+M,GAGhDE,EAAYnhN,OAASjL,KAAKisN,gBAC1BnjM,EAAImB,iBAAmBo1F,EAAQ+sG,EAAaN,IAE9CO,yBAA0B,SAAU5gM,EAAIszK,EAAWmtB,GACjD,IAAIzgM,EAAG6nB,QAAW44K,EAAlB,CAIAzgM,EAAG+6J,eAEC/6J,EAAGkhC,SACLlhC,EAAGljB,SAGLkjB,EAAG6gM,cACH,IAAIC,EAAkB9gM,EAAG8/B,SAEzB,GAAIghK,EAAiB,CAGjBxtB,EADEA,EACUA,EAAUz3L,QAEV,GAGd,IAAIklN,EAAkBD,EAClBE,EAAiBhhM,EAErB,MAAO+gM,EAELA,EAAgB3qM,OAAS4qM,EACzBD,EAAgB99M,kBAChBqwL,EAAUl+L,KAAK2rN,GACfC,EAAiBD,EACjBA,EAAkBA,EAAgBjhK,SAItC,GAAI9/B,EAAG2+C,QAAS,CAGd,IAFA,IAAIvrD,EAAW4M,EAAGihM,UAETz+M,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IAAK,CACxC,IAAIsR,EAAQV,EAAS5Q,GAGjBwd,EAAGkhC,UACLptC,EAAMotC,SAAU,GAGlB3sD,KAAKqsN,yBAAyB9sM,EAAOw/K,EAAWmtB,GAIlDzgM,EAAGkhC,SAAU,OAEblhC,EAAGihC,YAAcqyI,EACjB/+L,KAAKgsN,aAAahsN,KAAKisN,mBAAqBxgM,IAQhD+8I,QAAS,SAAU/8I,GACbA,EAAGkhM,YAAc3sN,OAIjByrB,aAAc9mB,GAChB8mB,EAAGmhM,qBAAqB5sN,MAG1BA,KAAKqoK,aAAa58I,GAElBzrB,KAAK+rN,OAAOlrN,KAAK4qB,KAOnBg9I,QAAS,SAAUh9I,GACjB,GAAU,MAANA,EAAY,CAEd,IAAK,IAAIxd,EAAI,EAAGA,EAAIjO,KAAK+rN,OAAO9gN,OAAQgD,IAAK,CAC3C,IAAIiR,EAAOlf,KAAK+rN,OAAO99M,GAEnBiR,aAAgBva,GAClBua,EAAK2tM,uBAAuB7sN,MAOhC,OAHAA,KAAK+rN,OAAS,GACd/rN,KAAKgsN,aAAe,QACpBhsN,KAAKisN,gBAAkB,GAIzB,GAAIxgM,aAAc1T,MACX,CAAI9J,EAAI,EAAb,IAAK,IAAWmoD,EAAI3qC,EAAGxgB,OAAQgD,EAAImoD,EAAGnoD,IACpCjO,KAAKyoK,QAAQh9I,EAAGxd,QAFpB,CAQA,IAAIiC,EAAMuqF,EAAK5nE,QAAQ7yB,KAAK+rN,OAAQtgM,GAEhCvb,GAAO,IACTlQ,KAAKmoK,eAAe18I,GAEpBzrB,KAAK+rN,OAAO91J,OAAO/lD,EAAK,GAEpBub,aAAc9mB,GAChB8mB,EAAGohM,uBAAuB7sN,SAIhCqoK,aAAc,SAAU58I,GAMtB,OALIA,IACFA,EAAGkhM,UAAY3sN,KACfyrB,EAAGnZ,OAAM,IAGJtS,MAETmoK,eAAgB,SAAU18I,GAKxB,OAJIA,IACFA,EAAGkhM,UAAY,MAGV3sN,MAMTuuB,QAAS,WACPvuB,KAAK8sN,YAAc9sN,KAAK+rN,OAAS,MAEnCgB,oBAAqBjB,GAEvB,IAAIvsN,EAAW8nK,EACf3kK,EAAOC,QAAUpD,G,qBCnNjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB48C,EAAc,EAAQ,QAEtB+iI,EAAkB,EAAQ,QAE1ByqC,EAAc,EAAQ,QAEtBlqN,EAAU,EAAQ,QAoBlBmqN,EAAc,CAAC,WAAY,gBAAiB,YAC5CxtK,EAAWr3C,EAAQiJ,oBAAoB,CACzC5R,KAAM,eAKNuJ,KAAM,SAAUlJ,EAASyG,GACvBk5C,EAASx2C,WAAWjJ,KAAM,OAAQkJ,YAKjClJ,KAAK4iL,iBAAmB,IAAIL,EAAgBh8K,EAAIslB,UAAUjlB,GAAG,QAAShE,EAAOiC,KAAK7E,KAAK6iL,SAAU7iL,QAMpGsR,OAAQ,SAAU/B,EAAWzP,EAASyG,EAAK23B,GACzC,IAAIgvL,EAAmB39M,EAAWzP,EAASo+B,GAA3C,CAIAl+B,KAAKuP,UAAYA,EACjBvP,KAAKuG,IAAMA,EACXvG,KAAKsD,MAAMC,YACX,IAAI4pN,EAAentN,KAAKotN,WAIxB,GAHAptN,KAAKotN,WAAa,IAAItqN,EAAQ6B,MAC9B3E,KAAKsD,MAAMgC,IAAItF,KAAKotN,YAEf79M,EAAUrN,IAAI,QAAnB,CAIA,IAAImrN,EAAgBr2J,EAAiBznD,EAAWzP,GAC5CO,EAAWgtN,EAAc/sN,iBACzBgtN,EAAkB/9M,EAAUg+M,qBAC5BC,EAAYF,EAAgB9rN,MAC5BuO,EAAMR,EAAUG,KAAKK,IACrB09M,EAAaptN,EAASqtN,cAAc39M,GACpC49M,EAAa/qN,EAAOpD,OAAO,CAC7BouN,uBAAwBJ,GACvBC,GACCjtK,EAAc,IAAIhB,EAAYjwC,EAAWo+M,GAC7C/qN,EAAOzD,KAAK8tN,EAAazsK,EAAYl7C,IAAKk7C,GAE1CxgD,KAAKotN,WAAW9nN,IAAIk7C,EAAYC,YAEhCzgD,KAAK6tN,wBAAwBF,EAAYL,EAAiB/9M,EAAW89M,EAAeG,EAAWjnN,GAE/F,IAAI47F,EAAiBjkE,IAAiC,IAAtBA,EAAQvgB,UAAsB,KAAOpO,EACrEzM,EAAQsuE,gBAAgB+7I,EAAcntN,KAAKotN,WAAYjrH,MASzD0rH,wBAAyB,SAAUF,EAAYL,EAAiB/9M,EAAW89M,EAAeG,EAAWjnN,GAEnG,IAAIsxB,EAAStoB,EAAUG,KAAK6V,YACxBuoM,EAAYj2L,EAAO,GAAKA,EAAO,GAC/BiiK,EAAQjuL,KAAK6E,IAAI,GAA0B,GAAtB7E,KAAKC,IAAIgiN,IAI9B9hN,EAAOlJ,EAAQyJ,aAAaq3B,OAAO,CACrCn+B,EAAGoyB,EAAO,GACVnyB,GAAI8nN,EAAY,EAChBhsN,MAAOssN,EACP5hN,OAAQshN,IAEVxhN,EAAKvG,GAAKq0L,EACV9tL,EAAKxK,OAAS,EAAIs4L,EAElB95L,KAAK4iL,iBAAiBE,MAAM,CAC1BirC,iBAAiB,EACjBp9M,SAAUg9M,EAAWh9M,SACrB3F,SAAU2iN,EAAW3iN,WACpB24K,UAAU,CAAC,CACZqqC,QAAS,KACTziK,SAAUyhK,EAAYiB,sBAAsBjiN,GAC5CkiN,iBAAkBlB,EAAYmB,yBAAyBniN,EAAMzF,EAAK8mN,GAClEe,0BAA2BpB,EAAYqB,2BAA2BriN,EAAM,MACtE+3K,YAAY,CACd1tI,UAAW,QACX2tI,WAAYspC,EACZgB,eAAe,IACdrqC,aAAasqC,EAAiBh/M,KAEnCszK,SAAU,SAAU2rC,EAAeh/M,GAEjC,IAAID,EAAYvP,KAAKuP,UACjBG,EAAOH,EAAUG,KACjB4lL,EAAY1yL,EAAOqE,IAAIunN,GAAe,SAAUC,GAClD,MAAO,CAAC/+M,EAAKguE,YAAY+wI,EAAU3yM,MAAM,IAAI,GAAOpM,EAAKguE,YAAY+wI,EAAU3yM,MAAM,IAAI,SAKtFvM,EAAU1P,OAAOs7E,WAAa3rE,EAAIitG,OAASjtG,EAAI8+M,gBAElDtuN,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,iBACNivN,eAAgBn/M,EAAUpH,GAC1BmtL,UAAWA,KAQjB/mK,QAAS,WACPvuB,KAAK4iL,iBAAiBr0J,aAI1B,SAAS2+L,EAAmB39M,EAAWzP,EAASo+B,GAC9C,OAAOA,GAA4B,mBAAjBA,EAAQz+B,MAA6BK,EAAQ6/J,eAAe,CAC5E1iI,SAAU,eACVmE,MAAOlD,IACN,KAAO3uB,EAGZ,SAASg/M,EAAiBh/M,GACxB,IAAIG,EAAOH,EAAUG,KACrB,OAAO9M,EAAOqE,IAAIsI,EAAUo/M,iBAAiB,SAAUznM,GACrD,MAAO,CACLmvB,UAAW,QACX23K,QAAS,KACTlyM,MAAO,CAACpM,EAAKc,YAAY0W,EAAS,IAAI,GAAOxX,EAAKc,YAAY0W,EAAS,IAAI,QAKjF,SAAS8vC,EAAiBznD,EAAWzP,GACnC,OAAOA,EAAQmC,aAAa,WAAYsN,EAAUrN,IAAI,kBAGxD,IAAI3C,EAAWkgD,EACf/8C,EAAOC,QAAUpD,G,qBC9KjB,IAAIuD,EAAU,EAAQ,QAElB+gB,EAAU,EAAQ,QAElB8F,EAAQ9F,EAAQ8F,MAoBpB,SAASilM,EAAmBztH,EAAW3zC,EAAc1rD,GACnD,IAAIkK,EAAOm1F,EAAUl2C,UACjB92B,EAAegtE,EAAUppE,cAAc5D,eACvC1uB,EAAIuG,EAAKvG,EACTC,EAAIsG,EAAKtG,EACTlE,EAAQwK,EAAKxK,MACb0K,EAASF,EAAKE,OACdwsE,EAAY52E,EAAYI,IAAI,oBAAsB,EAEtDuD,GAAKizE,EAAY,EACjBhzE,GAAKgzE,EAAY,EACjBl3E,GAASk3E,EACTxsE,GAAUwsE,EAEVjzE,EAAIoG,KAAK+N,MAAMnU,GACfjE,EAAQqK,KAAK8d,MAAMnoB,GACnB,IAAI+pD,EAAW,IAAIzoD,EAAQyO,KAAK,CAC9BC,MAAO,CACL/L,EAAGA,EACHC,EAAGA,EACHlE,MAAOA,EACP0K,OAAQA,KAcZ,OAVIshD,IACFjC,EAAS/5C,MAAM2iB,EAAe,QAAU,UAAY,EACpDrxB,EAAQk4C,UAAUuQ,EAAU,CAC1B/5C,MAAO,CACLhQ,MAAOA,EACP0K,OAAQA,IAETpK,IAGEypD,EAGT,SAASsjK,EAAoBnxK,EAAO8P,EAAc1rD,GAChD,IAAIgtN,EAAapxK,EAAMuN,UAEnBM,EAAW,IAAIzoD,EAAQ8+C,OAAO,CAChCpwC,MAAO,CACL4sC,GAAIz0B,EAAM+zB,EAAMU,GAAI,GACpBC,GAAI10B,EAAM+zB,EAAMW,GAAI,GACpBwD,GAAIl4B,EAAMmlM,EAAWjtK,GAAI,GACzBhuC,EAAG8V,EAAMmlM,EAAWj7M,EAAG,GACvBiuC,WAAYgtK,EAAWhtK,WACvBC,SAAU+sK,EAAW/sK,SACrByN,UAAWs/J,EAAWt/J,aAa1B,OATIhC,IACFjC,EAAS/5C,MAAMuwC,SAAW+sK,EAAWhtK,WACrCh/C,EAAQk4C,UAAUuQ,EAAU,CAC1B/5C,MAAO,CACLuwC,SAAU+sK,EAAW/sK,WAEtBjgD,IAGEypD,EAGT,SAASvB,EAAe3pD,EAAUmtD,EAAc1rD,GAC9C,OAAKzB,EAEwB,UAAlBA,EAASZ,KACXovN,EAAoBxuN,EAAUmtD,EAAc1rD,GACxB,gBAAlBzB,EAASZ,KACXmvN,EAAmBvuN,EAAUmtD,EAAc1rD,GAG7C,KAPE,KAUXa,EAAQisN,mBAAqBA,EAC7BjsN,EAAQksN,oBAAsBA,EAC9BlsN,EAAQqnD,eAAiBA,G,qBCvGzB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCZR,IAAIrlD,EAAQ,EAAQ,QAEhBirK,EAAgB,EAAQ,QAExBm/C,EAAY,EAAQ,QAoBpB5sJ,EAAY,WAKdniE,KAAKsD,MAAQ,IAAIqB,EAMjB3E,KAAKiI,IAAM2nK,EAAcxzI,OAAO,kBAGlC+lC,EAAUr0D,UAAY,CACpBC,YAAao0D,EACbn5D,KAAM,SAAUlJ,EAASyG,KACzB+K,OAAQ,SAAUk2G,EAAgB1nH,EAASyG,EAAK23B,KAChD3P,QAAS,aASTo/F,sBAAuB,MAEzB,IAAIqhG,EAAiB7sJ,EAAUr0D,UAE/BkhN,EAAevmG,WAAaumG,EAAet6K,aAAes6K,EAAermG,aAAe,SAAU7mH,EAAahC,EAASyG,EAAK23B,KAI7H6wL,EAAU7vF,kBAAkB/8D,GAE5B4sJ,EAAU7zD,sBAAsB/4F,EAAW,CACzCw5F,oBAAoB,IAEtB,IAAIp8J,EAAW4iE,EACfz/D,EAAOC,QAAUpD,G,qBCrFjB,IAAIuuI,EAAY,EAAQ,QAEpBlrI,EAAS,EAAQ,QAEjB6jI,EAAW,EAAQ,QAEnB1/D,EAAY,EAAQ,QAexB,SAASkoJ,EAAgBlhF,EAAMC,GAC7BF,EAAUhhI,KAAK9M,KAAM+tI,EAAMC,EAAS,CAAC,iBAAkB,kBAAmB,uBAG5EprI,EAAOwxB,SAAS66L,EAAiBnhF,GASjCmhF,EAAgBnhN,UAAUohN,iBAAmB,SAAUC,EAAYh5G,GACjE,GAAIA,GAAeA,EAAY3wG,MAAO,CACpC,IAAImhG,EAAO3mG,KACX4C,EAAOzD,KAAK,CAAC,OAAQ,WAAW,SAAUkqE,GACxC,GAAI8sC,EAAY3wG,MAAM6jE,KAA2D,WAAzC8sC,EAAY3wG,MAAM6jE,GAAc5pE,MAA8D,WAAzC02G,EAAY3wG,MAAM6jE,GAAc5pE,MAAoB,CAC/I,IAGIuiH,EAHAxtB,EAAW2hB,EAAY3wG,MAAM6jE,GAC7ByrB,EAAO6R,EAAK+nC,SAAQ,GAIpBl6C,EAAS2tB,MAEXH,EAAMxtB,EAAS2tB,KAEVrtB,EAAKz0E,SAASm0E,EAAS2tB,OAE1Bxb,EAAKmoC,OAAO9sB,IAIdA,EAAMrb,EAAKrhG,IAAIkvF,GAGjBmS,EAAK0oC,SAASl5B,GACd,IAAIhuG,EAAK65G,EAAIjvB,aAAa,MAC1Bo8H,EAAWpiG,aAAa1jD,EAAc,QAAUlhE,EAAK,WAc7D8mN,EAAgBnhN,UAAUxI,IAAM,SAAUkvF,GACxC,IAAIwtB,EAEJ,GAAsB,WAAlBxtB,EAAS/0F,KACXuiH,EAAMhiH,KAAK0rB,cAAc,sBACpB,IAAsB,WAAlB8oE,EAAS/0F,KAIlB,OADAgnI,EAAS,0BACF,KAHPzkB,EAAMhiH,KAAK0rB,cAAc,kBAe3B,OAJA8oE,EAASrsF,GAAKqsF,EAASrsF,IAAMnI,KAAKyuI,SAClCzsB,EAAI+K,aAAa,KAAM,KAAO/sH,KAAKouI,MAAQ,aAAe55C,EAASrsF,IACnEnI,KAAK44M,UAAUpkH,EAAUwtB,GACzBhiH,KAAK8uI,OAAO9sB,GACLA,GASTitG,EAAgBnhN,UAAUvF,OAAS,SAAUisF,GAC3C,IAAImS,EAAO3mG,KACX8tI,EAAUhgI,UAAUvF,OAAOuE,KAAK9M,KAAMw0F,GAAU,WAC9C,IAAI/0F,EAAO+0F,EAAS/0F,KAChByvI,EAAU16C,EAAS2tB,KAAK+sB,QAEf,WAATzvI,GAAiC,mBAAZyvI,GAAyC,WAATzvI,GAAiC,mBAAZyvI,EAE5EvoC,EAAKiyG,UAAUpkH,EAAUA,EAAS2tB,OAGlCxb,EAAKooC,UAAUv6C,GACfmS,EAAKrhG,IAAIkvF,QAafy6H,EAAgBnhN,UAAU8qM,UAAY,SAAUpkH,EAAUwtB,GACxD,GAAsB,WAAlBxtB,EAAS/0F,KACXuiH,EAAI+K,aAAa,KAAMv4B,EAAS/uF,GAChCu8G,EAAI+K,aAAa,KAAMv4B,EAAS9uF,GAChCs8G,EAAI+K,aAAa,KAAMv4B,EAASl6B,IAChC0nD,EAAI+K,aAAa,KAAMv4B,EAASj6B,QAC3B,IAAsB,WAAlBi6B,EAAS/0F,KAMlB,YADAgnI,EAAS,0BAJTzkB,EAAI+K,aAAa,KAAMv4B,EAAS/uF,GAChCu8G,EAAI+K,aAAa,KAAMv4B,EAAS9uF,GAChCs8G,EAAI+K,aAAa,IAAKv4B,EAAS3gF,GAM7B2gF,EAASzI,OAEXi2B,EAAI+K,aAAa,gBAAiB,kBAGlC/K,EAAI+K,aAAa,gBAAiB,qBAIpC/K,EAAIt0F,UAAY,GAIhB,IAFA,IAAI0qG,EAAS5jC,EAAS/G,WAEbx/E,EAAI,EAAGqK,EAAM8/G,EAAOntH,OAAQgD,EAAIqK,IAAOrK,EAAG,CACjD,IAAI6P,EAAO9d,KAAK0rB,cAAc,QAC9B5N,EAAKivG,aAAa,SAA6B,IAAnBqL,EAAOnqH,GAAG6G,OAAe,KACrD,IAAI8C,EAAQwgH,EAAOnqH,GAAG2J,MAEtB,GAAIA,EAAMib,SAAQ,GAAc,CAE9B,IAAIpxB,EAAUslE,EAAUvrD,MAAM5D,GAAO,GACjCw3M,EAAMroJ,EAAU78C,MAAMtS,GAM1BkG,EAAKivG,aAAa,aAAc,IAAMqiG,GACtCtxM,EAAKivG,aAAa,eAAgBtrH,QAElCqc,EAAKivG,aAAa,aAAcqL,EAAOnqH,GAAG2J,OAG5CoqG,EAAI91F,YAAYpO,GAKlB02E,EAAS2tB,KAAOH,GASlBitG,EAAgBnhN,UAAUuhI,SAAW,SAAUl5B,GAC7C,GAAIA,EAAY3wG,MAAO,CACrB,IAAIgvF,EAAW2hB,EAAY3wG,MAAMkM,KAE7B8iF,GAAYA,EAAS2tB,MACvB2rB,EAAUhgI,UAAUuhI,SAASviI,KAAK9M,KAAMw0F,EAAS2tB,MAGnD3tB,EAAW2hB,EAAY3wG,MAAMq5C,OAEzB21C,GAAYA,EAAS2tB,MACvB2rB,EAAUhgI,UAAUuhI,SAASviI,KAAK9M,KAAMw0F,EAAS2tB,QAKvD,IAAI5iH,EAAW0vN,EACfvsN,EAAOC,QAAUpD,G,qBC3LjB,IAAIkjD,EAAqB,EAAQ,QAsCjC,SAASljD,EAASQ,EAAQyP,GAExB,OADAA,EAAMA,GAAO,GACNizC,EAAmBjzC,EAAIlG,iBAAmB,GAAIvJ,EAAQ,CAC3D0wC,QAASjhC,EAAIi/B,kBAAoB1uC,EAAO0uC,iBACxCyqJ,UAAW1pL,EAAIzN,cAAgBhC,EAAOgC,aACtC8uC,SAAUrhC,EAAI0T,gBACd3Z,gBAAiBiG,EAAIjG,gBACrB22F,cAAe1wF,EAAI0wF,cACnB05F,mBAAoBpqL,EAAIoqL,qBAI5Bl3L,EAAOC,QAAUpD,G,qBClDjB,IAAIqD,EAAS,EAAQ,QAoBjBzD,EAAOyD,EAAOzD,KAElB,SAASI,EAASM,GAChB,IAAI+uF,EAAY/uF,GAAUA,EAAO+uF,UAE5BhsF,EAAOogB,QAAQ4rE,KAClBA,EAAYA,EAAY,CAACA,GAAa,IAGxCzvF,EAAKyvF,GAAW,SAAUp/E,GACxB,GAAKA,EAAL,CAKIsW,EAAItW,EAAK,eAAiBsW,EAAItW,EAAK,YACrCA,EAAI0W,OAAS1W,EAAI6/M,iBACV7/M,EAAI6/M,WAGb,IAAInpM,EAAS1W,EAAI0W,OAEbA,GAAUtjB,EAAOogB,QAAQkD,IAC3B/mB,EAAK+mB,GAAQ,SAAUzhB,GACjB7B,EAAOqjB,SAASxhB,KACdqhB,EAAIrhB,EAAO,WAAaqhB,EAAIrhB,EAAO,SACrCA,EAAMiM,IAAMjM,EAAM8P,OAGhBuR,EAAIrhB,EAAO,SAAWqhB,EAAIrhB,EAAO,SACnCA,EAAMgM,IAAMhM,EAAM41E,aAQ9B,SAASv0D,EAAIC,EAAKpZ,GAChB,OAAOoZ,GAAOA,EAAIhJ,gBAAkBgJ,EAAIhJ,eAAepQ,GAGzDjK,EAAOC,QAAUpD,G,qBC9DjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElBs+E,EAAa,EAAQ,QAErBl+E,EAAS,EAAQ,QAEjBosN,EAAa,EAAQ,QAErBvzL,EAAiB,EAAQ,QAEzBxvB,EAAe,EAAQ,QAEvB02B,EAAS,EAAQ,QAEjBssL,EAAgB,EAAQ,QAExBh6G,EAAkB,EAAQ,QAE1B53C,EAAU,EAAQ,QAElB6oC,EAAa7oC,EAAQ6oC,WAoBrB3hG,EAAOjC,EAAOiC,KACdF,EAAQ7B,EAAQ6B,MAChB4M,EAAOzO,EAAQyO,KACfpS,EAAOyD,EAAOzD,KACdqwN,EAAiB,EACjBC,EAAoB,CAAC,SACrBC,EAAsB,CAAC,WAAY,SACnCC,EAAyB,CAAC,cAC1BC,EAA2B,CAAC,WAAY,cACxCnO,EAAS,GAEToO,EAAO,EACPC,EAAY,EACZC,EAAuBx6G,EAAgB,CAAC,CAAC,OAAQ,SAErD,CAAC,SAAU,eAAgB,CAAC,YAAa,eAAgB,CAAC,cAAe,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,iBAE5Gy6G,EAAqB,SAAUlgM,GAEjC,IAAI5kB,EAAY6kN,EAAqBjgM,GAGrC,OADA5kB,EAAU2zC,OAAS3zC,EAAUwG,KAAOxG,EAAUwtE,UAAY,KACnDxtE,GAGL3L,EAAW6I,EAAQq1C,gBAAgB,CACrCh+C,KAAM,UAKNuJ,KAAM,SAAUlB,EAAGvB,GAKjBvG,KAAKsnC,gBAMLtnC,KAAKoyJ,SAAW69D,IAMhBjwN,KAAKkyK,SAMLlyK,KAAKkwN,YAMLlwN,KAAK09B,YAML19B,KAAKmwN,OAAS,SAMhB7+M,OAAQ,SAAUxP,EAAahC,EAASyG,EAAK23B,GAC3C,IAAIipF,EAASrnH,EAAQ6/J,eAAe,CAClC1iI,SAAU,SACVoB,QAAS,UACT+C,MAAOlD,IAGT,KAAIt7B,EAAOiwB,QAAQs0F,EAAQrlH,GAAe,GAA1C,CAIA9B,KAAK8B,YAAcA,EACnB9B,KAAKuG,IAAMA,EACXvG,KAAKF,QAAUA,EACf,IAAIugI,EAAQ,CAAC,oBAAqB,qBAC9BC,EAAap9H,EAAOq9H,mBAAmBriG,EAASmiG,EAAOv+H,GACvDwnH,EAAcprF,GAAWA,EAAQz+B,KACjCo+D,EAAa/7D,EAAY+7D,WACzBn5C,GAAU1kB,KAAKkyK,SACfk+C,EAAcpwN,KAAKoyJ,SAEnBi+D,EAAyB,sBAAhB/mG,GAAuCgX,GAAc8vF,EAAc,CAC9EE,cAAeF,EAAYG,UAAUjwF,EAAW9gH,KAAK1e,eACrDkwE,UAAW9yC,EAAQ8yC,WACjB,KAEAnnC,EAAiB7pC,KAAKwwN,oBAAoB3yJ,GAE1C4yJ,EAAezwN,KAAK0wN,UAAU7mL,EAAgB/nC,EAAauuN,GAE9D3rM,GAAY4kG,GAA+B,sBAAhBA,GAAuD,sBAAhBA,EAA8GmnG,EAAaE,gBAApF3wN,KAAK4wN,aAAa/mL,EAAgB4mL,EAAc3uN,EAAauuN,GAEvKrwN,KAAK6wN,iBAAiBtqN,GAEtBvG,KAAK8wN,kBAAkBhvN,EAAayE,EAAK+5H,KAM3CkwF,oBAAqB,SAAU3yJ,GAC7B,IAAIh0B,EAAiB7pC,KAAKsnC,gBAa1B,OAXKuC,IAGHA,EAAiB7pC,KAAKsnC,gBAAkB,IAAI3iC,EAE5C3E,KAAKqoG,YAAYx+D,GAEjB7pC,KAAKsD,MAAMgC,IAAIukC,IAGjBA,EAAe7pB,KAAK,WAAY,CAAC69C,EAAWp4D,EAAGo4D,EAAWn4D,IACnDmkC,GAMT6mL,UAAW,SAAU7mL,EAAgB/nC,EAAauuN,GAChD,IAAIU,EAAWjvN,EAAYtB,UAAUkiB,KACjCsuM,EAAUhxN,KAAKkyK,SAEf++C,EAAoBhB,IACpBG,EAAcH,IACdiB,EAAalxN,KAAKoyJ,SAClB++D,EAAmB,GACnBnpH,EAAeplG,EAAO4G,MAAM4nN,EAAYtvN,EAAasuN,EAAac,EAAYb,EAAQY,EAAmBE,GAK7GhqH,EAAW4pH,EAAS7xM,KAAO,CAAC6xM,EAAS7xM,MAAQ,GAAI8xM,GAAWA,EAAQ9xM,KAAO,CAAC8xM,EAAQ9xM,MAAQ,GAAI2qB,EAAgBknL,IAAaC,IAAYA,EAAS,GAElJ,IAAIK,EAAgBC,EAAaJ,GAGjC,OAFAlxN,KAAKkyK,SAAW6+C,EAChB/wN,KAAKoyJ,SAAWg+D,EACT,CACLa,kBAAmBA,EACnBI,cAAeA,EACfV,cAAeA,GAGjB,SAASxpH,EAAWoqH,EAAkBC,EAAiB59H,EAAa69H,EAAU9yM,GAe5E,SAAS+oF,EAAOloF,GAEd,OAAOA,EAAKW,QAGd,SAASwnF,EAAYhG,EAAUC,GAC7B,IAAI8vH,EAAuB,MAAZ/vH,EAAmB4vH,EAAiB5vH,GAAY,KAC3DoG,EAAsB,MAAZnG,EAAmB4vH,EAAgB5vH,GAAY,KACzDt+F,EAAQ0kG,EAAa0pH,EAAU3pH,EAASnU,EAAaj1E,GACzDrb,GAAS6jG,EAAWuqH,GAAYA,EAAS5yM,cAAgB,GAAIipF,GAAWA,EAAQjpF,cAAgB,GAAIxb,EAAOmuN,EAAU9yM,EAAQ,GApB3H8yM,GACFD,EAAkBD,EAClBpyN,EAAKoyN,GAAkB,SAAUhyM,EAAOpY,IACrCoY,EAAME,aAAekoF,EAAYxgG,EAAOA,OAKzC,IAAIi6E,EAAWowI,EAAiBD,EAAkB7pH,EAAQA,GAAQpiG,IAAIqiG,GAAap/F,OAAOo/F,GAAatlE,OAAOz/B,EAAO4G,MAAMm+F,EAAa,OAAOjpD,UAgBrJ,SAAS4yK,EAAa9rG,GACpB,IAAI6rG,EAAgBpB,IAOpB,OANAzqG,GAAWrmH,EAAKqmH,GAAS,SAAUg3B,EAAOm1E,GACxC,IAAIC,EAASP,EAAcM,GAC3BxyN,EAAKq9I,GAAO,SAAU/wH,GACpBA,IAAOmmM,EAAO/wN,KAAK4qB,GAAKA,EAAGomM,eAAiB,SAGzCR,EAGT,SAASV,IACPxxN,EAAKkyN,GAAe,SAAUxlC,GAC5B1sL,EAAK0sL,GAAK,SAAUpgK,GAClBA,EAAG5J,QAAU4J,EAAG5J,OAAOwgB,OAAO5W,SAGlCtsB,EAAKgyN,GAAkB,SAAU1lM,GAC/BA,EAAG+e,WAAY,EAGf/e,EAAGnZ,aAQTs+M,aAAc,SAAU/mL,EAAgB4mL,EAAc3uN,EAAauuN,GACjE,GAAKvuN,EAAYI,IAAI,aAArB,CAIA,IAAIknB,EAAWtnB,EAAYI,IAAI,2BAC3BiY,EAASrY,EAAYI,IAAI,mBACzB4vN,EAAgBvC,EAAcwC,aAElC5yN,EAAKsxN,EAAaY,eAAe,SAAU70E,EAAOm1E,GAChDxyN,EAAKq9I,GAAO,SAAU/wH,EAAIzJ,GACxB,IAAIyJ,EAAG+e,UAAP,CAIA,IAEIp4B,EAFAyP,EAAS4J,EAAG5J,OAIhB,GAAIwuM,GAA+B,cAArBA,EAAOr/I,UACnB5+D,EAASyP,IAAWwuM,EAAOC,cAGzB,CACA9+M,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAOqgB,EAAOmwM,cACd9lN,OAAQ2V,EAAOowM,gBAEjBzsN,MAAO,CACL/D,QAAS,IAGT,CACF+D,MAAO,CACL/D,QAAS,QAGR,CACL,IAAIywN,EAAU,EACVC,EAAU,EAETtwM,EAAOgwM,iBAIVK,EAAUrwM,EAAOmwM,cAAgB,EACjCG,EAAUtwM,EAAOowM,eAAiB,GAGpC7/M,EAAyB,cAAhBu/M,EAA8B,CACrC3mN,SAAU,CAACknN,EAASC,GACpB3sN,MAAO,CACL/D,QAAS,IAET,CACF+P,MAAO,CACL/L,EAAGysN,EACHxsN,EAAGysN,EACH3wN,MAAO,EACP0K,OAAQ,GAEV1G,MAAO,CACL/D,QAAS,IAKf2Q,GAAU0/M,EAAcxsN,IAAImmB,EAAIrZ,EAAQgX,EAAUjP,UAItDhb,EAAKa,KAAKoyJ,UAAU,SAAU5V,EAAOm1E,GACnCxyN,EAAKq9I,GAAO,SAAU/wH,EAAIzJ,GACxB,IAAI2Z,EAAO80L,EAAaQ,kBAAkBU,GAAa3vM,GACnD5P,EAAS,GAERupB,IAIe,cAAhBg2L,EACEh2L,EAAKy2L,MACPhgN,EAAOpH,SAAWygB,EAAGzgB,SAAS1D,QAC9BmkB,EAAGzL,KAAK,WAAY2b,EAAKy2L,OAGvBz2L,EAAKy2L,MACPhgN,EAAOZ,MAAQ5O,EAAOpD,OAAO,GAAIisB,EAAGja,OACpCia,EAAG0iC,SAASxyB,EAAKy2L,MAGfz2L,EAAK02L,QACP5mM,EAAGoV,SAAS,UAAW,GACvBzuB,EAAO5M,MAAQ,CACb/D,QAAS,IAIiB,IAArBgqB,EAAGjmB,MAAM/D,UACd2Q,EAAO5M,MAAQ,CACb/D,QAAS,KAKjBqwN,EAAcxsN,IAAImmB,EAAIrZ,EAAQgX,EAAUjP,SAEzCna,MACHA,KAAKmwN,OAAS,YACd2B,EAAc5zM,KAAKrZ,GAAK,WACtB7E,KAAKmwN,OAAS,QACdM,EAAaE,kBACZ3wN,OAAOuU,UAMZs8M,iBAAkB,SAAUtqN,GAC1B,IAAIk8B,EAAaziC,KAAK09B,YAEjB+E,IACHA,EAAaziC,KAAK09B,YAAc,IAAI3B,EAAex1B,EAAIslB,SACvD4W,EAAWC,OAAO1iC,KAAK8B,YAAYI,IAAI,SACvCugC,EAAW77B,GAAG,MAAO/B,EAAK7E,KAAKsyN,OAAQtyN,OACvCyiC,EAAW77B,GAAG,OAAQ/B,EAAK7E,KAAKuyN,QAASvyN,QAG3C,IAAIgM,EAAO,IAAIO,EAAa,EAAG,EAAGhG,EAAIylB,WAAYzlB,EAAI0lB,aACtDwW,EAAWM,mBAAkB,SAAUpW,EAAGlnB,EAAGC,GAC3C,OAAOsG,EAAKkC,QAAQzI,EAAGC,OAO3B8sN,iBAAkB,WAChB,IAAI/vL,EAAaziC,KAAK09B,YAElB+E,IACFA,EAAWlU,UACXkU,EAAa,OAOjB6vL,OAAQ,SAAU3lM,GAChB,GAAoB,cAAhB3sB,KAAKmwN,SAA2BtkN,KAAKC,IAAI6gB,EAAEza,IAAMs9M,GAAkB3jN,KAAKC,IAAI6gB,EAAExa,IAAMq9M,GAAiB,CAEvG,IAAItwM,EAAOlf,KAAK8B,YAAYtB,UAAUkiB,KAAKxD,KAE3C,IAAKA,EACH,OAGF,IAAI40J,EAAa50J,EAAK6B,YAEtB,IAAK+yJ,EACH,OAGF9zK,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,cACNuI,KAAMhI,KAAKiI,IACX+e,SAAUhnB,KAAK8B,YAAYqG,GAC3BiqM,SAAU,CACR3sM,EAAGquK,EAAWruK,EAAIknB,EAAEza,GACpBxM,EAAGouK,EAAWpuK,EAAIinB,EAAExa,GACpB3Q,MAAOsyK,EAAWtyK,MAClB0K,OAAQ4nK,EAAW5nK,YAS3BqmN,QAAS,SAAU5lM,GACjB,IAAI8lM,EAAS9lM,EAAEiW,QACX8vL,EAAS/lM,EAAEkW,QAEf,GAAoB,cAAhB7iC,KAAKmwN,OAAwB,CAE/B,IAAIjxM,EAAOlf,KAAK8B,YAAYtB,UAAUkiB,KAAKxD,KAE3C,IAAKA,EACH,OAGF,IAAI40J,EAAa50J,EAAK6B,YAEtB,IAAK+yJ,EACH,OAGF,IAAI9nK,EAAO,IAAIO,EAAaunK,EAAWruK,EAAGquK,EAAWpuK,EAAGouK,EAAWtyK,MAAOsyK,EAAW5nK,QACjF2xD,EAAa79D,KAAK8B,YAAY+7D,WAElC40J,GAAU50J,EAAWp4D,EACrBitN,GAAU70J,EAAWn4D,EAErB,IAAIsP,EAAIiuB,EAAOW,SACfX,EAAO2gB,UAAU5uC,EAAGA,EAAG,EAAEy9M,GAASC,IAClCzvL,EAAOx0B,MAAMuG,EAAGA,EAAG,CAAC2X,EAAEle,MAAOke,EAAEle,QAC/Bw0B,EAAO2gB,UAAU5uC,EAAGA,EAAG,CAACy9M,EAAQC,IAChC1mN,EAAKk5B,eAAelwB,GACpBhV,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,gBACNuI,KAAMhI,KAAKiI,IACX+e,SAAUhnB,KAAK8B,YAAYqG,GAC3BiqM,SAAU,CACR3sM,EAAGuG,EAAKvG,EACRC,EAAGsG,EAAKtG,EACRlE,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,YASrBm8F,YAAa,SAAUx+D,GACrBA,EAAejjC,GAAG,SAAS,SAAU+lB,GACnC,GAAoB,UAAhB3sB,KAAKmwN,OAAT,CAIA,IAAI5nH,EAAYvoG,KAAK8B,YAAYI,IAAI,aAAa,GAElD,GAAKqmG,EAAL,CAIA,IAAI+3B,EAAatgI,KAAK2yN,WAAWhmM,EAAE2uD,QAAS3uD,EAAE4uD,SAE9C,GAAK+kD,EAAL,CAIA,IAAI9gH,EAAO8gH,EAAW9gH,KAEtB,GAAIA,EAAKuB,YAAY+yL,WACnB9zM,KAAKooG,YAAYk4B,QAEjB,GAAkB,eAAd/3B,EACFvoG,KAAK4yN,YAAYtyF,QACZ,GAAkB,SAAd/3B,EAAsB,CAC/B,IAAIpnF,EAAY3B,EAAKd,SAASne,KAAK6gB,aAAa5B,EAAK5e,WACjDs7E,EAAO/6D,EAAUjf,IAAI,QAAQ,GAC7BsmG,EAAarnF,EAAUjf,IAAI,UAAU,IAAS,QAClDg6E,GAAQsqB,EAAWtqB,EAAMssB,SAG5BxoG,OAML8wN,kBAAmB,SAAUhvN,EAAayE,EAAK+5H,GAkB7C,SAASuyF,EAASrzM,GACI,cAAhBxf,KAAKmwN,SACPjtN,EAAOu9H,cAAc3+H,EAAYglG,cAAetnF,GAAQxf,KAAKooG,YAAY,CACvE5oF,KAAMA,IACHxf,KAAK4yN,YAAY,CACpBpzM,KAAMA,KAtBP8gH,IACHA,EAAmD,MAAtCx+H,EAAYI,IAAI,aAAa,GAAgB,CACxDsd,KAAM1d,EAAYglG,eAIhB9mG,KAAK2yN,WAAWpsN,EAAIylB,WAAa,EAAGzlB,EAAI0lB,YAAc,GAErDq0G,IACHA,EAAa,CACX9gH,KAAM1d,EAAYtB,UAAUkiB,KAAKxD,SAKtClf,KAAKkwN,cAAgBlwN,KAAKkwN,YAAc,IAAIZ,EAAWtvN,KAAKsD,SAASgO,OAAOxP,EAAayE,EAAK+5H,EAAW9gH,KAAM3a,EAAKguN,EAAU7yN,QAgBjIqiC,OAAQ,WACNriC,KAAKwyN,mBAELxyN,KAAKsnC,iBAAmBtnC,KAAKsnC,gBAAgB/jC,YAC7CvD,KAAKoyJ,SAAW69D,IAChBjwN,KAAKmwN,OAAS,QACdnwN,KAAKkwN,aAAelwN,KAAKkwN,YAAY7tL,UAEvC9T,QAAS,WACPvuB,KAAKwyN,oBAMPI,YAAa,SAAUtyF,GACrBtgI,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,oBACNuI,KAAMhI,KAAKiI,IACX+e,SAAUhnB,KAAK8B,YAAYqG,GAC3BsgG,WAAY63B,EAAW9gH,QAO3B4oF,YAAa,SAAUk4B,GACrBtgI,KAAKuG,IAAIC,eAAe,CACtB/G,KAAM,oBACNuI,KAAMhI,KAAKiI,IACX+e,SAAUhnB,KAAK8B,YAAYqG,GAC3BsgG,WAAY63B,EAAW9gH,QAa3BmzM,WAAY,SAAUltN,EAAGC,GACvB,IAAI46H,EACAp4B,EAAWloG,KAAK8B,YAAYglG,cAuBhC,OAtBAoB,EAASxoF,SAAS,CAChBM,KAAM,eACNF,MAAO,aACN,SAAUN,GACX,IAAI0hJ,EAAOlhK,KAAKoyJ,SAAS0gE,WAAWtzM,EAAK1e,eAGzC,GAAIogK,EAAM,CACR,IAAI5pI,EAAQ4pI,EAAKl8H,sBAAsBv/B,EAAGC,GACtC8L,EAAQ0vJ,EAAK1vJ,MAEjB,KAAIA,EAAM/L,GAAK6xB,EAAM,IAAMA,EAAM,IAAM9lB,EAAM/L,EAAI+L,EAAMhQ,OAASgQ,EAAM9L,GAAK4xB,EAAM,IAAMA,EAAM,IAAM9lB,EAAM9L,EAAI8L,EAAMtF,QAOjH,OAAO,EANPo0H,EAAa,CACX9gH,KAAMA,EACN87D,QAAShkD,EAAM,GACfikD,QAASjkD,EAAM,OAMpBt3B,MACIsgI,KAQX,SAAS2vF,IACP,MAAO,CACLM,UAAW,GACXuC,WAAY,GACZjlM,QAAS,IASb,SAASujM,EAAWtvN,EAAasuN,EAAac,EAAYb,EAAQY,EAAmBE,EAAkBO,EAAU3pH,EAASnU,EAAaj1E,GAErI,GAAK+yM,EAAL,CASA,IAAI5e,EAAa4e,EAAS3wM,YACtBxgB,EAAOuB,EAAYtB,UAKvB,GAFAD,EAAKqhC,iBAAiB8vL,EAAS9wN,UAAW,MAErCkyM,GAAeA,EAAW5P,SAA/B,CAIA,IAAI6vB,EAAYjgB,EAAWtxM,MACvBwxN,EAAalgB,EAAW5mM,OACxBd,EAAc0nM,EAAW1nM,YACzB6nN,EAAgBngB,EAAWtoK,UAC3B0oL,EAAexB,EAAS5wN,cACxBqyN,EAAcprH,GAAWA,EAAQjnG,cACjCywN,EAAmBG,EAAS5yM,aAC5B4zL,EAAcI,EAAWJ,YACzB0gB,EAAW7B,GAAoBA,EAAiBtmN,OAChDooN,EAAuB3B,EAASzwM,SAAS,aACzCqyM,EAAyB5B,EAASzwM,SAAS,sBAI3C3d,EAAQiwN,EAAY,YAAa5uN,GAErC,GAAKrB,EAAL,CAUA,GANAswF,EAAYtuF,IAAIhC,GAEhBA,EAAM0c,KAAK,WAAY,CAAC8yL,EAAWrtM,GAAK,EAAGqtM,EAAWptM,GAAK,IAC3DpC,EAAM0uN,cAAgBe,EACtBzvN,EAAM2uN,eAAiBe,EAEnBlgB,EAAWsC,gBACb,OAAO9xM,EAGT,IAAI0/L,EAAY0uB,EAASzwM,WAErBuyM,EAAKD,EAAY,aAAchiN,EAAMoN,EAAOkxM,GAGhD,GAFA2D,GAAMvtN,EAAiB3C,EAAOkwN,EAAIJ,GAAYtgB,EAAWE,kBAErDogB,EAIEtwN,EAAQqpE,qBAAqB7oE,IAC/BR,EAAQipE,wBAAwBzoE,GAAO,GAGrCkwN,IACF1wN,EAAQipE,wBAAwBynJ,GAAI,GAEpCjzN,EAAKqhC,iBAAiB8vL,EAAS9wN,UAAW4yN,QAEvC,CACL,IAAI3lM,EAAU0lM,EAAY,UAAWhiN,EAAMoN,EAAOmxM,GAClDjiM,GAAW4lM,EAAcnwN,EAAOuqB,GAE5B2lM,GAAM1wN,EAAQqpE,qBAAqBqnJ,IACrC1wN,EAAQipE,wBAAwBynJ,GAAI,GAGtC1wN,EAAQipE,wBAAwBzoE,GAAO,GAEvC/C,EAAKqhC,iBAAiB8vL,EAAS9wN,UAAW0C,GAG5C,OAAOA,IAIP,SAAS2C,EAAiB3C,EAAOkwN,EAAIE,GAWnC,GATAF,EAAG5yN,UAAY8wN,EAAS9wN,UACxB4yN,EAAGz8K,YAAcj1C,EAAYi1C,YAC7By8K,EAAGrlK,SAAS,CACV1oD,EAAG,EACHC,EAAG,EACHlE,MAAOuxN,EACP7mN,OAAQ8mN,IAGNC,EAIFU,EAAiBH,OACZ,CACLA,EAAGhpL,WAAY,EACf,IAAIopL,EAAoBlC,EAASjwM,UAAU,eAAe,GACtDoyM,EAAsBP,EAAuBpxN,IAAI,eACjD4nE,EAAckmJ,EAAmBqD,GACrCvpJ,EAAYp4D,KAAOkiN,EACnB,IAAItnJ,EAAgByjJ,EAAqBuD,GAGzC,GAFAhnJ,EAAc56D,KAAOmiN,EAEjBH,EAAe,CACjB,IAAII,EAAkBf,EAAY,EAAI3nN,EACtC2oN,EAAYjqJ,EAAawC,EAAesnJ,EAAmBE,EAAiBphB,EAAa,CACvFjtM,EAAG2F,EACH1F,EAAG,EACHlE,MAAOsyN,EACP5nN,OAAQwmM,SAIR5oI,EAAYnkE,KAAO2mE,EAAc3mE,KAAO,KAG5C6tN,EAAG3yL,SAASipC,GACZhnE,EAAQuoE,qBAAqBmoJ,EAAIlnJ,GAGnChpE,EAAMgC,IAAIkuN,GAGZ,SAASC,EAAcnwN,EAAOuqB,GAE5BA,EAAQjtB,UAAY8wN,EAAS9wN,UAC7BitB,EAAQkpB,YAAcj1C,EAAYi1C,YAClC,IAAI0nK,EAAe5yM,KAAK4E,IAAIsiN,EAAY,EAAI3nN,EAAa,GACrD4oN,EAAgBnoN,KAAK4E,IAAIuiN,EAAa,EAAI5nN,EAAa,GAS3D,GARAyiB,EAAQkT,SAAU,EAClBlT,EAAQsgC,SAAS,CACf1oD,EAAG2F,EACH1F,EAAG0F,EACH5J,MAAOi9M,EACPvyM,OAAQ8nN,IAGNf,EAIFU,EAAiB9lM,OACZ,CACLA,EAAQ2c,WAAY,EACpB,IAAInK,EAAcqxL,EAASjwM,UAAU,SAAS,GAC1CqoD,EAAckmJ,EAAmBqD,GACrCvpJ,EAAYp4D,KAAO2uB,EACnB,IAAIisC,EAAgByjJ,EAAqBuD,GACzCS,EAAYjqJ,EAAawC,EAAejsC,EAAao+K,EAAcuV,GACnEnmM,EAAQgT,SAASipC,GACjBhnE,EAAQuoE,qBAAqBx9C,EAASy+C,GAGxChpE,EAAMgC,IAAIuoB,GAGZ,SAAS8lM,EAAiB10G,IAGvBA,EAAQz0E,WAAa2mL,EAAiBtwN,KAAKo+G,GAG9C,SAAS80G,EAAYjqJ,EAAawC,EAAejsC,EAAa7+B,EAAO0K,EAAQ+nN,GAC3E,IAAIxyL,EAAcuhK,EAAU9gM,IAAI,QAC5BitG,EAAmB6zF,EAAU/hL,SAASgzM,EAAiBtE,EAAyBF,GAChF3lE,EAAqBk5C,EAAU/hL,SAASgzM,EAAiBrE,EAA2BF,GACpFphM,EAAS6gF,EAAiB3yD,WAAW,QACzC15C,EAAQw+B,cAAcwoC,EAAawC,EAAe6iC,EAAkB26C,EAAoB,CACtFroH,YAAanT,EAASmT,EAAc,KACpC0b,UAAW9c,EACX6c,YAAY,EACZ/b,aAAcr/B,EACd0/B,eAAgBkwL,EAAS9wN,UACzBgsE,UAAWqnJ,EAAiB,aAAe,UAE7CC,EAAiBpqJ,EAAamqJ,EAAgBnhB,GAC9CohB,EAAiB5nJ,EAAe2nJ,EAAgBnhB,GAChDmhB,IAAmBnqJ,EAAYuiB,SAAWzpF,EAAO8E,MAAMusN,IACvDnqJ,EAAY0iB,SAAWl+D,GAAU6gF,EAAiBjtG,IAAI,YAAc,CAClEy7M,WAAYn8M,EACZwyH,YAAa9nH,EACbioN,QAAS,GACP,KAGN,SAASD,EAAiB1uN,EAAOyuN,EAAgBnhB,GAC/C,IAAIntM,EAAOH,EAAMG,KAEjB,IAAKsuN,GAAkBnhB,EAAWgB,YAAsB,MAARnuM,EAAc,CAC5D,IAAIyuN,EAAWtyN,EAAYI,IAAI,iBAAiB,GAChDsD,EAAMG,KAAOyuN,EAAWA,EAAW,IAAMzuN,EAAOA,GAIpD,SAAS4tN,EAAY5B,EAAa7xF,EAAMnhH,EAAO1d,GAC7C,IAAIg+G,EAAyB,MAAfk0G,GAAuBjC,EAAWS,GAAawB,GACzDkB,EAAQpD,EAAkBU,GAiB9B,OAfI1yG,GAEFiyG,EAAWS,GAAawB,GAAe,KACvCmB,EAA2BD,EAAOp1G,EAAS0yG,IAEnCsB,IACNh0G,EAAU,IAAI6gB,EAAK,CACjB7+H,EAAGszN,EAAW51M,EAAO1d,KAEvBg+G,EAAQu1G,UAAY71M,EACpBsgG,EAAQw1G,gBAAkB9C,EAC1B+C,EAA0BL,EAAOp1G,EAAS0yG,IAIvCvB,EAAYuB,GAAauB,GAAgBj0G,EAGlD,SAASq1G,EAA2BD,EAAOp1G,EAAS0yG,GAClD,IAAIgD,EAAUN,EAAMnB,GAAgB,GACpCyB,EAAQvC,IAAsB,cAAhBT,EAA8B1yG,EAAQj0G,SAAS1D,QAAU1E,EAAOpD,OAAO,GAAIy/G,EAAQztG,OAKnG,SAASkjN,EAA0BL,EAAOp1G,EAAS0yG,GACjD,IAAIgD,EAAUN,EAAMnB,GAAgB,GAChCt0M,EAAa8yM,EAAS9yM,WAE1B,GAAIA,KAAgByxM,GAA+B,cAArBA,EAAOr/I,WAA4B,CAC/D,IAAI4jJ,EAAa,EACbC,EAAa,EAGbC,EAAc7D,EAAkB6B,WAAWl0M,EAAW9d,gBAErDuvN,GAAUyE,GAAeA,EAAY1C,MACxCwC,EAAaE,EAAY1C,IAAI5wN,MAC7BqzN,EAAaC,EAAY1C,IAAIlmN,QAK/ByoN,EAAQvC,IAAsB,cAAhBT,EAA8B,CAAC,EAAGkD,GAAc,CAC5DpvN,EAAGmvN,EACHlvN,EAAGmvN,EACHrzN,MAAO,EACP0K,OAAQ,GAKZyoN,EAAQtC,OAAyB,cAAhBV,GAUrB,SAAS4C,EAAW51M,EAAOo2M,GACzB,IAAIC,EAAKr2M,EAAQ8iM,EAASsT,EAC1B,OAAQC,EAAK,GAAKA,EAGpBtyN,EAAOC,QAAUpD,G,qBCx5BjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElBub,EAAQ,EAAQ,QAEhBohC,EAAW,EAAQ,QAEnBD,EAAc,EAAQ,QAoBtBytK,EAAc,CAAC,WAAY,YAAa,WAAY,YAAa,YAAa,iBAAkB,aAEpG,SAASgI,EAAiBv3K,EAAOw3K,EAAS1iK,GACxC0iK,EAAQ,GAAKA,EAAQ,KAAOA,EAAUA,EAAQ5tN,QAAQD,WACtD,IAAIkN,EAAQmpC,EAAM0/B,aAAa,CAAC83I,EAAQ,GAAI1iK,IACxC6nB,EAAM38B,EAAM0/B,aAAa,CAAC83I,EAAQ,GAAI1iK,IAC1C,MAAO,CACL4H,GAAI7lD,EAAM,GACV8lD,GAAI9lD,EAAM,GACV+lD,GAAI+f,EAAI,GACR9f,GAAI8f,EAAI,IAIZ,SAAS86I,EAAaz3K,GACpB,IAAIoC,EAAapC,EAAM4S,gBACvB,OAAOxQ,EAAW14C,QAAU,EAAI,EAIlC,SAASguN,EAAgBjyM,GACvB,IAAIkyM,EAAYlyM,EAAK,GACjB+6G,EAAW/6G,EAAKA,EAAKlY,OAAS,GAE9BoqN,GAAan3F,GAAYryH,KAAKC,IAAID,KAAKC,IAAIupN,EAAUhpN,MAAQ6xH,EAAS7xH,OAAS,KAAO,MACxF8W,EAAK6hD,MAIT,IAAIzlE,EAAWkgD,EAASjgD,OAAO,CAC7BC,KAAM,YACNmgD,iBAAkB,mBAClBtuC,OAAQ,SAAUu/C,EAAgB/wD,GAGhC,GAFAE,KAAKsD,MAAMC,YAENstD,EAAe3uD,IAAI,QAAxB,CAIA,IAAI69C,EAAY8Q,EAAenhD,KAC3BguC,EAAQqC,EAAUrC,MAClB4C,EAAe5C,EAAM4S,gBAAgB/qC,YACrC+vM,EAAcv1K,EAAUG,iBACxBq1K,EAAkBx1K,EAAUK,sBAC5B2uD,EAASnsG,EAAOqE,IAAI84C,EAAUivD,iBAAiB,SAAUC,GACvDA,EAAYrsG,EAAO8E,MAAMunG,GAE7B,OADAA,EAAU5iG,MAAQ0zC,EAAUvvC,YAAYy+F,EAAUC,WAC3CD,KAETmmH,EAAgBrmH,GAChBqmH,EAAgBE,GAChB1yN,EAAOzD,KAAK8tN,GAAa,SAAUtgN,IAC7BkkD,EAAe3uD,IAAIyK,EAAO,UAAcozC,EAAUtxC,MAAMiyC,WAAsB,aAAT/zC,GACvE3M,KAAK,IAAM2M,GAAMkkD,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,EAAcyuD,KAErF/uG,QAMLw1N,UAAW,SAAU3kK,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,GACxE,IAII9uC,EAJAqvC,EAAiBgQ,EAAe5vC,SAAS,sBAEzCw0M,EAAMN,EAAaz3K,GACnBg4K,EAAOD,EAAM,EAAI,EAInBjkN,EADyB,IAAvB8uC,EAAao1K,GACP,IAAI5yN,EAAQo+C,OAAO,CACzB1vC,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVxqC,EAAGysC,EAAam1K,IAElBjwN,MAAOq7C,EAAejC,eACtBxtC,GAAI,EACJQ,QAAQ,IAGF,IAAI9O,EAAQmkE,KAAK,CACvBz1D,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVxqC,EAAGysC,EAAam1K,GAChB5zK,GAAIvB,EAAao1K,IAEnBlwN,MAAOq7C,EAAejC,eACtBxtC,GAAI,EACJQ,QAAQ,IAIZJ,EAAMhM,MAAMkM,KAAO,KACnB1R,KAAKsD,MAAMgC,IAAIkM,IAMjBmkN,UAAW,SAAU9kK,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,GACxE,IAAIs/F,EAAY/uF,EAAe5vC,SAAS,YACpC0/L,GAAW/gE,EAAU19I,IAAI,WAAa,EAAI,GAAK09I,EAAU19I,IAAI,UAC7D8jD,EAAS1F,EAAa60K,EAAaz3K,IACnC4D,EAAQ1+C,EAAOqE,IAAIquN,GAAa,SAAUM,GAC5C,OAAO,IAAI9yN,EAAQovC,KAAK,CACtB1gC,MAAOyjN,EAAiBv3K,EAAO,CAACsI,EAAQA,EAAS26J,GAAUiV,EAAcvpN,YAG7ErM,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUG,EAAO,CACtC97C,MAAO5C,EAAO6O,SAASmuI,EAAU3+H,SAAS,aAAa29B,eAAgB,CACrEC,OAAQgS,EAAe3uD,IAAI,kCAQjC2zN,WAAY,SAAUhlK,EAAgBnT,EAAOo4K,EAAYP,EAAiBj1K,GACxE,GAAKi1K,EAAgBtqN,OAArB,CAUA,IANA,IAAI20I,EAAY/uF,EAAe5vC,SAAS,YACpCo1K,EAAiBxlI,EAAe5vC,SAAS,aACzC0/L,GAAW/gE,EAAU19I,IAAI,WAAa,EAAI,GAAKm0L,EAAen0L,IAAI,UAClE8jD,EAAS1F,EAAa60K,EAAaz3K,IACnC4D,EAAQ,GAEHrzC,EAAI,EAAGA,EAAIsnN,EAAgBtqN,OAAQgD,IAC1C,IAAK,IAAIgI,EAAI,EAAGA,EAAIs/M,EAAgBtnN,GAAGhD,OAAQgL,IAC7CqrC,EAAMzgD,KAAK,IAAIiC,EAAQovC,KAAK,CAC1B1gC,MAAOyjN,EAAiBv3K,EAAO,CAACsI,EAAQA,EAAS26J,GAAU4U,EAAgBtnN,GAAGgI,GAAG5J,UAKvFrM,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUG,EAAO,CACtC97C,MAAO5C,EAAO6O,SAAS4kL,EAAep1K,SAAS,aAAa29B,eAAgBh8C,EAAO6O,SAASmuI,EAAUhhG,eAAgB,CACpHC,OAAQgS,EAAe3uD,IAAI,oCAQjC6zN,WAAY,SAAUllK,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,EAAcyuD,GACvF,IAAIinH,EAAkBnlK,EAAek0G,eAAc,GAC/CkxD,EAAmBplK,EAAe5vC,SAAS,aAC3C0rH,EAAcspF,EAAiB/zN,IAAI,UACnCujD,EAAeoL,EAAe3uD,IAAI,gBAEtCU,EAAOzD,KAAK4vG,GAAQ,SAAUE,EAAW/+F,GACvC,IAAIgwB,EAAa+1L,EACb/mH,EAAYD,EAAUC,UACtBr7F,EAAIysC,EAAa60K,EAAaz3K,IAC9BjmC,EAAIimC,EAAM0/B,aAAa,CAACvpE,EAAI84H,EAAa19B,EAAU5iG,QACnD+xC,EAAKV,EAAMU,GACXC,EAAKX,EAAMW,GACX63K,EAAiBrqN,KAAKC,IAAI2L,EAAE,GAAK2mC,GAAMvqC,EAAI,GAAM,SAAW4D,EAAE,GAAK2mC,EAAK,OAAS,QACjF+3K,EAAyBtqN,KAAKC,IAAI2L,EAAE,GAAK4mC,GAAMxqC,EAAI,GAAM,SAAW4D,EAAE,GAAK4mC,EAAK,MAAQ,SAExF23K,GAAmBA,EAAgB9mH,IAAc8mH,EAAgB9mH,GAAW7hC,YAC9EntC,EAAa,IAAI7hB,EAAM23M,EAAgB9mH,GAAW7hC,UAAW4oJ,EAAkBA,EAAiBn2N,UAGlG,IAAIuhC,EAAS,IAAIv+B,EAAQyC,KAAK,CAC5BqM,OAAQ4tC,EAAY42K,cAAcvlK,KAEpC7wD,KAAKsD,MAAMgC,IAAI+7B,GACfv+B,EAAQmqE,aAAa5rC,EAAO77B,MAAO06B,EAAY,CAC7Cz6B,EAAGgS,EAAE,GACL/R,EAAG+R,EAAE,GACL5T,SAAUq8B,EAAWp8B,gBAAkB+sD,EAAe3uD,IAAI,4BAC1DyD,KAAMspG,EAAUG,eAChBvpG,UAAWqwN,EACXtwN,kBAAmBuwN,IAGjB1wK,IACFpkB,EAAOQ,UAAY2d,EAAY62K,sBAAsBxlK,GACrDxvB,EAAOQ,UAAUy0L,WAAa,YAC9Bj1L,EAAOQ,UAAUl0B,MAAQshG,EAAUsnH,YAEpCv2N,OAML2gD,WAAY,SAAUkQ,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,GACzE,IAAIM,EAAiBiQ,EAAe5vC,SAAS,aACzC4/B,EAAiBD,EAAe3/B,SAAS,aACzC6/B,EAAaD,EAAe3+C,IAAI,SAChC6+C,EAAY,EAChBD,EAAaA,aAAsB/oC,MAAQ+oC,EAAa,CAACA,GAGzD,IAFA,IAAIE,EAAa,GAER/yC,EAAI,EAAGA,EAAIqnN,EAAYrqN,OAAQgD,IAAK,CAC3C,IAAIgzC,EAAaF,IAAcD,EAAW71C,OAC1C+1C,EAAWC,GAAcD,EAAWC,IAAe,GACnDD,EAAWC,GAAYpgD,KAAK,IAAIiC,EAAQovC,KAAK,CAC3C1gC,MAAOyjN,EAAiBv3K,EAAO4C,EAAcg1K,EAAYrnN,GAAG5B,UAMhE,IAAS4B,EAAI,EAAGA,EAAI+yC,EAAW/1C,OAAQgD,IACrCjO,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUH,EAAW/yC,GAAI,CAC9CzI,MAAO5C,EAAO6O,SAAS,CACrBotC,OAAQiC,EAAW7yC,EAAI6yC,EAAW71C,SACjC41C,EAAejC,gBAClBhtC,QAAQ,EACR3Q,EAAG4vD,EAAe3uD,IAAI,SAQ5Bk/C,gBAAiB,SAAUyP,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,GAC9E,GAAKi1K,EAAgBtqN,OAArB,CAQA,IAJA,IAAIo2C,EAAsBwP,EAAe5vC,SAAS,kBAC9C4/B,EAAiBQ,EAAoBpgC,SAAS,aAC9CqgC,EAAQ,GAEHrzC,EAAI,EAAGA,EAAIsnN,EAAgBtqN,OAAQgD,IAC1C,IAAK,IAAIgI,EAAI,EAAGA,EAAIs/M,EAAgBtnN,GAAGhD,OAAQgL,IAC7CqrC,EAAMzgD,KAAK,IAAIiC,EAAQovC,KAAK,CAC1B1gC,MAAOyjN,EAAiBv3K,EAAO4C,EAAci1K,EAAgBtnN,GAAGgI,GAAG5J,UAKzErM,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUG,EAAO,CACtC97C,MAAOq7C,EAAejC,eACtBhtC,QAAQ,EACR3Q,EAAG4vD,EAAe3uD,IAAI,UAO1Bq/C,WAAY,SAAUsP,EAAgBnT,EAAO43K,EAAaC,EAAiBj1K,GACzE,GAAKg1K,EAAYrqN,OAAjB,CAIA,IAAIu2C,EAAiBqP,EAAe5vC,SAAS,aACzC69B,EAAiB0C,EAAevgC,SAAS,aACzCwgC,EAAa3C,EAAe58C,IAAI,SAChC6+C,EAAY,EAChBU,EAAaA,aAAsB1pC,MAAQ0pC,EAAa,CAACA,GAQzD,IAPA,IAAIC,EAAa,GACb+jC,EAAS55E,KAAK+E,GAAK,IACnB4lN,GAAalB,EAAY,GAAGjpN,MAAQo5E,EACpC5jC,EAAKh2C,KAAK6E,IAAI4vC,EAAa,GAAIA,EAAa,IAC5Cs9F,EAAK/xI,KAAK4E,IAAI6vC,EAAa,GAAIA,EAAa,IAC5CkP,EAAYqB,EAAe3uD,IAAI,aAE1B+L,EAAI,EAAGA,EAAIqnN,EAAYrqN,OAAQgD,IAAK,CAC3C,IAAIgzC,EAAaF,IAAcU,EAAWx2C,OAC1Cy2C,EAAWT,GAAcS,EAAWT,IAAe,GACnDS,EAAWT,GAAYpgD,KAAK,IAAIiC,EAAQ8+C,OAAO,CAC7CpwC,MAAO,CACL4sC,GAAIV,EAAMU,GACVC,GAAIX,EAAMW,GACVwD,GAAIA,EACJhuC,EAAG+pI,EACH97F,WAAY00K,EACZz0K,UAAWuzK,EAAYrnN,GAAG5B,MAAQo5E,EAClCj2B,UAAWA,GAEb59C,QAAQ,KAEV4kN,GAAalB,EAAYrnN,GAAG5B,MAAQo5E,EAKtC,IAASx3E,EAAI,EAAGA,EAAIyzC,EAAWz2C,OAAQgD,IACrCjO,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUO,EAAWzzC,GAAI,CAC9CzI,MAAO5C,EAAO6O,SAAS,CACrBC,KAAM+vC,EAAWxzC,EAAIwzC,EAAWx2C,SAC/B6zC,EAAeM,gBAClBxtC,QAAQ,SAMhBlP,EAAOC,QAAUpD,G,qBCvUjB,IAAIg2G,EAAkB,EAAQ,QAoB1B6rD,EAAkB7rD,EAAgB,CAAC,CAAC,OAAQ,SAAU,CAAC,SAAU,eAAgB,CAAC,YAAa,eACnG,CAAC,SAAU,kBAAmB,CAAC,YAAa,kBAAmB,CAAC,WAAY,CAAC,cAAe,CAAC,iBAAkB,CAAC,iBAAkB,CAAC,iBAC/Hh2G,EAAW,CACb6hK,gBAAiB,SAAU97E,GACzB,IAAI9/E,EAAQ47J,EAAgBphK,KAAMslF,GAElC,GAAItlF,KAAKq8I,kBAAmB,CAC1B,IAAIjhF,EAAWp7D,KAAKq8I,oBACpBjhF,IAAa51D,EAAM41D,SAAWA,GAGhC,OAAO51D,IAGX9C,EAAOC,QAAUpD,G,qBClCjB,IAAI6/G,EAAU,EAAQ,SAEtBz8G,EAAQy8G,QAAUA,EAElB,IAAIn8E,EAAS,EAAQ,QAErBtgC,EAAQsgC,OAASA,EAEjB,IAAIC,EAAS,EAAQ,QAErBvgC,EAAQugC,OAASA,EAEjB,IAAItgC,EAAS,EAAQ,QAEjBmkE,EAAY,EAAQ,QAExBpkE,EAAQiV,MAAQmvD,EAEhB,IAAI0jH,EAAc,EAAQ,QAEtBxrH,EAAa,EAAQ,QAEzBt8D,EAAQ8zN,OAASx3J,EAEjB,IAAIl2C,EAAa,EAAQ,QAEzBpmB,EAAQ2oM,OAASviL,EAEjB,IAAI22F,EAAY,EAAQ,QAETA,EAAUlsC,SACzB7wE,EAAQ6wE,SAAWksC,EAAUlsC,SAE7B,IAAIkjJ,EAAW,EAAQ,QAEvB/zN,EAAQO,OAASwzN,EAEjB,IAAIC,EAAe,EAAQ,QAE3Bh0N,EAAQg0N,aAAeA,EAEvB,IAAIC,EAAQ,EAAQ,QAEpBj0N,EAAQ4b,KAAOq4M,EAEf,IAAIC,EAAS,EAAQ,QAErBl0N,EAAQ0b,MAAQw4M,EAEhB,IAAIC,EAAQ,EAAQ,QAEpBn0N,EAAQmxB,KAAOgjM,EAEf,IAAIC,EAAO,EAAQ,QAEnBp0N,EAAQmmB,IAAMiuM,EAwBd,IAAI1mF,EAAesmF,EACfK,EAAS,GACbp0N,EAAOzD,KAAK,CAAC,MAAO,OAAQ,SAAU,UAAW,WAAY,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,WAAY,aAAc,SAAU,WAAY,QAAS,UAAU,SAAUwN,GACpMqqN,EAAOrqN,GAAQ/J,EAAO+J,MAExB,IAAI7J,EAAU,GACdF,EAAOzD,KAAK,CAAC,cAAe,aAAc,WAAY,YAAa,YAAa,aAAc,aAAc,gBAAiB,gBAAiB,eAAgB,UAAW,UAAW,cAAe,YAAa,eAAgB,mBAAoB,iBAAkB,gBAAiB,gBAAiB,QAAS,QAAS,OAAQ,SAAU,SAAU,OAAQ,UAAW,WAAY,OAAQ,OAAQ,cAAe,MAAO,yBAA0B,eAAgB,iBAAkB,iBAAkB,iBAAiB,SAAUwN,GAClgB7J,EAAQ6J,GAAQ89K,EAAY99K,MAE9BhK,EAAQ0tI,aAAeA,EACvB1tI,EAAQ83F,KAAOu8H,EACfr0N,EAAQG,QAAUA,G,qBC1FlB,IAAIF,EAAS,EAAQ,QAEjBkkF,EAAO,EAAQ,QAEf4tB,EAAgB,EAAQ,QAExBppB,EAAmBopB,EAAcppB,iBAoBrC,SAAS/rF,EAASyiH,EAAKliH,GACrB,IAAIm3N,EAAYn3N,EAAQmhB,SAAS,QAEjC,GAAKg2M,EAAU/0N,IAAI,QAEZ,GAAI+0N,EAAU/0N,IAAI,eACvB8/G,EAAI+K,aAAa,aAAckqG,EAAU/0N,IAAI,oBADxC,CAKP,IAAIg1N,EAAY,EAChBp3N,EAAQ04C,YAAW,SAAU12C,EAAaoO,KACtCgnN,IACDl3N,MACH,IAGIm3N,EAHAC,EAAaH,EAAU/0N,IAAI,kBAAoB,GAC/Cm1N,EAAeJ,EAAU/0N,IAAI,oBAAsB,GACnDo1N,EAAmBzrN,KAAK6E,IAAIwmN,EAAWG,GAG3C,KAAIH,EAAY,GAAhB,CAIE,IAAI5jM,EAAQikM,IAGVJ,EADE7jM,EACU7wB,EAAQ+0N,EAAU,qBAAsB,CAClDlkM,MAAOA,IAGGkkM,EAAU,wBAGxB,IAAIC,EAAe,GACf/uI,EAASwuI,EAAY,EAAI,yBAA2B,uBACxDC,GAAa10N,EAAQ+0N,EAAU9uI,GAAS,CACtCgvI,YAAaR,IAEfp3N,EAAQ04C,YAAW,SAAU12C,EAAaoO,GACxC,GAAIA,EAAMonN,EAAkB,CAC1B,IAAIK,EACA/mL,EAAa9uC,EAAYI,IAAI,QAC7B01N,EAAY,WAAaV,EAAY,EAAI,WAAa,UAAY,IACtES,EAAcH,EAAU5mL,EAAagnL,EAAY,WAAaA,EAAY,eAC1ED,EAAcl1N,EAAQk1N,EAAa,CACjC3wM,SAAUllB,EAAYi1C,YACtBnG,WAAY9uC,EAAYI,IAAI,QAC5B0yB,WAAYijM,EAAkB/1N,EAAYu8B,WAE5C,IAAI99B,EAAOuB,EAAYtB,UACvBosB,OAAOrsB,KAAOA,EAEVA,EAAK4hB,QAAUi1M,EAEjBO,GAAel1N,EAAQ+0N,EAAU,oBAAqB,CACpDM,WAAYV,IAGdO,GAAeH,EAAU,gBAK3B,IAFA,IAAIO,EAAa,GAER9pN,EAAI,EAAGA,EAAI1N,EAAK4hB,QAASlU,IAChC,GAAIA,EAAImpN,EAAY,CAClB,IAAIzqN,EAAOpM,EAAK08C,QAAQhvC,GACpBN,EAAQ29E,EAAiB/qF,EAAM0N,GACnC8pN,EAAWl3N,KAAK4B,EAAe+0N,EAAP7qN,EAAiB,gBAA6B,oBAAqB,CACzFA,KAAMA,EACNgB,MAAOA,KAKbgqN,GAAeI,EAAWl+M,KAAK29M,EAAU,0BAA4BA,EAAU,sBAC/EC,EAAa52N,KAAK82N,OAGtBR,GAAaM,EAAa59M,KAAK29M,EAAU,qCAAuCA,EAAU,iCAC1Fx1G,EAAI+K,aAAa,aAAcoqG,IAGjC,SAAS10N,EAAQmzF,EAAKoiI,GACpB,GAAmB,kBAARpiI,EACT,OAAOA,EAGT,IAAIjvE,EAASivE,EAIb,OAHAhzF,EAAOzD,KAAK64N,GAAW,SAAUrqN,EAAO5F,GACtC4e,EAASA,EAAOlkB,QAAQ,IAAIm9K,OAAO,UAAY73K,EAAM,UAAW,KAAM4F,MAEjEgZ,EAGT,SAAS6wM,EAAUt2M,GACjB,IAAI+2M,EAAahB,EAAU/0N,IAAIgf,GAE/B,GAAkB,MAAd+2M,EAAoB,CAItB,IAHA,IAAIx4F,EAAUv+G,EAAKoyE,MAAM,KACrB3sE,EAASmgE,EAAKuB,KAETp6E,EAAI,EAAGA,EAAIwxH,EAAQx0H,SAAUgD,EACpC0Y,EAASA,EAAO84G,EAAQxxH,IAG1B,OAAO0Y,EAEP,OAAOsxM,EAIX,SAASV,IACP,IAAIjkM,EAAQxzB,EAAQmhB,SAAS,SAASphB,OAMtC,OAJIyzB,GAASA,EAAMroB,SACjBqoB,EAAQA,EAAM,IAGTA,GAASA,EAAM3tB,KAGxB,SAASkyN,EAAkBp4N,GACzB,OAAOqnF,EAAKtQ,OAAO+Q,UAAU9nF,IAAS,QAI1CiD,EAAOC,QAAUpD,G,qBCxJjB,IAAI6I,EAAU,EAAQ,QA6BtBA,EAAQC,eAAe,CACrB5I,KAAM,QACN6I,MAAO,UAGN,SAAU41B,EAASp+B,GACpBA,EAAQs+B,cAAc,CACpBnB,SAAU,QACVmE,MAAOlD,IACN,SAAUoX,GACXA,EAAW4iL,SAASh6L,EAAQuX,aAyBhCrtC,EAAQC,eAAe,CACrB5I,KAAM,cACN6I,MAAO,gBACPC,OAAQ,SACP,eACHH,EAAQC,eAAe,CACrB5I,KAAM,WACN6I,MAAO,WACPC,OAAQ,SACP,gB,qBCzEH,IAAImoH,EAAc,EAAQ,QAEtB7sG,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAqBvBixD,EAAS55E,KAAK+E,GAAK,IAEvB,SAASunN,EAAiBh1M,EAAMi7B,EAAIC,EAAIxqC,EAAGqyE,EAAKvI,EAAWC,EAAYw6I,EAAUC,EAASC,GAKxF,SAASC,EAAUhkN,EAAO8lE,EAAKpB,EAAOiN,GACpC,IAAK,IAAI1tE,EAAIjE,EAAOiE,EAAI6hE,EAAK7hE,IAAK,CAChC,GAAI2K,EAAK3K,GAAG9S,EAAIuzE,EAAQo/I,EAAUz6I,EAChC,MAKF,GAFAz6D,EAAK3K,GAAG9S,GAAKuzE,EAETzgE,EAAIjE,GAASiE,EAAI,EAAI6hE,GAAOl3D,EAAK3K,EAAI,GAAG9S,EAAIyd,EAAK3K,GAAG9S,EAAIyd,EAAK3K,GAAGtM,OAElE,YADAssN,EAAQhgN,EAAGygE,EAAQ,GAKvBu/I,EAAQn+I,EAAM,EAAGpB,EAAQ,GAG3B,SAASu/I,EAAQn+I,EAAKpB,GACpB,IAAK,IAAIzgE,EAAI6hE,EAAK7hE,GAAK,EAAGA,IAAK,CAC7B,GAAI2K,EAAK3K,GAAG9S,EAAIuzE,EAAQo/I,EACtB,MAKF,GAFAl1M,EAAK3K,GAAG9S,GAAKuzE,EAETzgE,EAAI,GAAK2K,EAAK3K,GAAG9S,EAAIyd,EAAK3K,EAAI,GAAG9S,EAAIyd,EAAK3K,EAAI,GAAGtM,OACnD,OAKN,SAASusN,EAAQt1M,EAAMu1M,EAAYt6K,EAAIC,EAAIxqC,EAAGqyE,GAQ5C,IAPA,IAAIyyI,EAAuBD,EACzBr8J,OAAOC,UACP,EAKOruD,EAAI,EAAGmoD,EAAIjzC,EAAKlY,OAAQgD,EAAImoD,EAAGnoD,IACtC,GAA6B,SAAzBkV,EAAKlV,GAAG2qN,aAAZ,CAIA,IAAIC,EAAShtN,KAAKC,IAAIqX,EAAKlV,GAAGvI,EAAI24C,GAC9BpzC,EAASkY,EAAKlV,GAAGqK,IACjBtC,EAAUmN,EAAKlV,GAAGsK,KAClBugN,EAASD,EAAShlN,EAAI5I,EAASY,KAAK4sB,MAAM5kB,EAAI5I,EAAS+K,IAAYnC,EAAI5I,EAAS+K,GAAW6iN,EAASA,GAAUhtN,KAAKC,IAAIqX,EAAKlV,GAAGxI,EAAI24C,GAEnIs6K,GAAcI,GAAUH,IAE1BG,EAASH,EAAa,KAGnBD,GAAcI,GAAUH,IAE3BG,EAASH,EAAa,IAGxBx1M,EAAKlV,GAAGxI,EAAI24C,EAAK06K,EAAS5yI,EAC1ByyI,EAAaG,GAhEjB31M,EAAKtY,MAAK,SAAUwM,EAAGC,GACrB,OAAOD,EAAE3R,EAAI4R,EAAE5R,KAyEjB,IANA,IACIuzE,EADA8/I,EAAQ,EAERzgN,EAAM6K,EAAKlY,OACX+tN,EAAS,GACTC,EAAW,GAENhrN,EAAI,EAAGA,EAAIqK,EAAKrK,IAAK,CAC5B,GAAyB,UAArBkV,EAAKlV,GAAGjD,UAAiD,cAAzBmY,EAAKlV,GAAG2qN,aAA8B,CACxE,IAAI1mN,EAAKiR,EAAKlV,GAAGxI,EAAI6yN,EACrBn1M,EAAKlV,GAAG2gD,WAAW,GAAG,IAAM18C,EAC5BiR,EAAKlV,GAAGxI,EAAI6yN,EAGdr/I,EAAQ91D,EAAKlV,GAAGvI,EAAIqzN,EAEhB9/I,EAAQ,GACVs/I,EAAUtqN,EAAGqK,GAAM2gE,EAAOiN,GAG5B6yI,EAAQ51M,EAAKlV,GAAGvI,EAAIyd,EAAKlV,GAAG/B,OAG1B0xE,EAAam7I,EAAQ,GACvBP,EAAQlgN,EAAM,EAAGygN,EAAQn7I,GAG3B,IAAS3vE,EAAI,EAAGA,EAAIqK,EAAKrK,IACnBkV,EAAKlV,GAAGvI,GAAK24C,EACf46K,EAASp4N,KAAKsiB,EAAKlV,IAEnB+qN,EAAOn4N,KAAKsiB,EAAKlV,IAIrBwqN,EAAQO,GAAQ,EAAO56K,EAAIC,EAAIxqC,EAAGqyE,GAClCuyI,EAAQQ,GAAU,EAAM76K,EAAIC,EAAIxqC,EAAGqyE,GAGrC,SAASgzI,EAAaC,EAAiB/6K,EAAIC,EAAIxqC,EAAG8pE,EAAWC,EAAYw6I,EAAUC,GAMjF,IALA,IAAIe,EAAW,GACXC,EAAY,GACZC,EAAYj9J,OAAOC,UACnBi9J,GAAcl9J,OAAOC,UAEhBruD,EAAI,EAAGA,EAAIkrN,EAAgBluN,OAAQgD,IACtCurN,EAAiBL,EAAgBlrN,MAIjCkrN,EAAgBlrN,GAAGxI,EAAI24C,GACzBk7K,EAAYztN,KAAK6E,IAAI4oN,EAAWH,EAAgBlrN,GAAGxI,GACnD2zN,EAASv4N,KAAKs4N,EAAgBlrN,MAE9BsrN,EAAa1tN,KAAK4E,IAAI8oN,EAAYJ,EAAgBlrN,GAAGxI,GACrD4zN,EAAUx4N,KAAKs4N,EAAgBlrN,MAInCkqN,EAAiBkB,EAAWj7K,EAAIC,EAAIxqC,EAAG,EAAG8pE,EAAWC,EAAYw6I,EAAUC,EAASkB,GACpFpB,EAAiBiB,EAAUh7K,EAAIC,EAAIxqC,GAAI,EAAG8pE,EAAWC,EAAYw6I,EAAUC,EAASiB,GAEpF,IAASrrN,EAAI,EAAGA,EAAIkrN,EAAgBluN,OAAQgD,IAAK,CAC/C,IAAIhL,EAASk2N,EAAgBlrN,GAE7B,IAAIurN,EAAiBv2N,GAArB,CAIA,IAAI2rD,EAAa3rD,EAAO2rD,WAExB,GAAIA,EAAY,CACd,IAEI6qK,EAFAC,EAAwC,SAAxBz2N,EAAO21N,aACvBe,EAAgB12N,EAAOopF,SAAS7qF,MAKhCi4N,EAFAC,EACEz2N,EAAOwC,EAAI24C,EACKwQ,EAAW,GAAG,GAAK3rD,EAAO22N,cAAgBxB,EAAWn1N,EAAO0pI,YAE5DyrF,EAAWz6I,EAAY16E,EAAO0pI,YAAc/9E,EAAW,GAAG,GAAK3rD,EAAO22N,cAGtF32N,EAAOwC,EAAI24C,EACKn7C,EAAOwC,EAAI2yN,EAAWn1N,EAAO42N,YAE7BzB,EAAWz6I,EAAY16E,EAAOwC,EAAIxC,EAAO42N,YAI3DJ,EAAkBx2N,EAAOopF,SAAS7qF,QACpCyB,EAAO0C,KAAO+qH,EAAYopG,aAAa72N,EAAO0C,KAAM8zN,EAAiBx2N,EAAO2lC,MAEhD,SAAxB3lC,EAAO21N,eACTe,EAAgBjpG,EAAY1kG,SAAS/oB,EAAO0C,KAAM1C,EAAO2lC,QAI7D,IAAIrQ,EAAOq2B,EAAW,GAAG,GAAKA,EAAW,GAAG,GAExC8qK,EACEz2N,EAAOwC,EAAI24C,EACbwQ,EAAW,GAAG,GAAKwpK,EAAWn1N,EAAO0pI,YAAcgtF,EAAgB12N,EAAO22N,cAE1EhrK,EAAW,GAAG,GAAKwpK,EAAWz6I,EAAY16E,EAAO0pI,YAAcgtF,EAAgB12N,EAAO22N,eAGpF32N,EAAOwC,EAAI24C,EACbwQ,EAAW,GAAG,GAAK3rD,EAAOwC,EAAIxC,EAAO22N,cAErChrK,EAAW,GAAG,GAAK3rD,EAAOwC,EAAIxC,EAAO22N,cAGvChrK,EAAW,GAAG,GAAKA,EAAW,GAAG,GAAKr2B,GAGxCq2B,EAAW,GAAG,GAAKA,EAAW,GAAG,GAAK3rD,EAAOyC,KAKnD,SAAS8zN,EAAiBv2N,GAExB,MAA2B,WAApBA,EAAO+H,SAGhB,SAASzL,EAASuC,EAAa+R,EAAG8pE,EAAWC,EAAYw6I,EAAUC,GACjE,IAEIj6K,EACAC,EAHA99C,EAAOuB,EAAYtB,UACnB24N,EAAkB,GAGlBY,GAAiB,EACjBC,GAAsBl4N,EAAYI,IAAI,sBAAwB,GAAKujF,EACvEllF,EAAKpB,MAAK,SAAU+Q,GAClB,IAAIjN,EAAS1C,EAAKygB,cAAc9Q,GAC5BiR,EAAY5gB,EAAK6gB,aAAalR,GAC9BgwB,EAAa/e,EAAUF,SAAS,SAEhC0/D,EAAgBzgD,EAAWh+B,IAAI,aAAeif,EAAUjf,IAAI,2BAC5D03N,EAAgB15L,EAAWh+B,IAAI,uBAC/B02N,EAAe14L,EAAWh+B,IAAI,WAC9ByqI,EAAcn4G,EAAa0L,EAAWh+B,IAAI,UAAWy7E,GACrDk8I,EAAc35L,EAAWh+B,IAAI,eAC7B0mC,EAAO1I,EAAWt8B,UAClBkrD,EAAiB3tC,EAAUF,SAAS,aACpC4/D,EAAe/xB,EAAe5sD,IAAI,UACtC2+E,EAAersD,EAAaqsD,EAAclD,GAC1C,IAAIs8I,EAAgBnrK,EAAe5sD,IAAI,WAGvC,GAFA+3N,EAAgBzlM,EAAaylM,EAAet8I,KAExC16E,EAAOuvD,MAAQwnK,GAAnB,CAIA,IAGIv5I,EACAC,EACA9xB,EACA/oD,EANA8nD,GAAY1qD,EAAO6+C,WAAa7+C,EAAO8+C,UAAY,EACnD7vC,EAAKrG,KAAK04C,IAAIoJ,GACdx7C,EAAKtG,KAAKw4C,IAAIsJ,GAKlBvP,EAAKn7C,EAAOm7C,GACZC,EAAKp7C,EAAOo7C,GACZ,IAmCIltC,EAnCAxL,EAAO7D,EAAY8yD,kBAAkB1kD,EAAK,WAAa3P,EAAK08C,QAAQ/sC,GACpEm8E,EAAWqkC,EAAYzkH,gBAAgBtG,EAAMijC,EAAM/iC,EAAW,OAC9D+6E,EAAkC,WAAlBD,GAAgD,UAAlBA,EAElD,GAAsB,WAAlBA,EACFF,EAAQx9E,EAAOm7C,GACfsiC,EAAQz9E,EAAOo7C,GACfx4C,EAAY,aACP,CACL,IAAIu0D,GAAMwmB,GAAiB39E,EAAO4Q,EAAI5Q,EAAO4+C,IAAM,EAAI3vC,EAAKjP,EAAO4Q,EAAI3B,GAAMksC,EACzEic,GAAMumB,GAAiB39E,EAAO4Q,EAAI5Q,EAAO4+C,IAAM,EAAI1vC,EAAKlP,EAAO4Q,EAAI1B,GAAMksC,EAI7E,GAHAoiC,EAAQrmB,EAAU,EAALloD,EACbwuE,EAAQrmB,EAAU,EAALloD,GAERyuE,EAAe,CAElB,IAAItmB,EAAKF,EAAKloD,GAAM2uE,EAAehtE,EAAI5Q,EAAO4Q,GAC1C0mD,EAAKF,EAAKloD,GAAM0uE,EAAehtE,EAAI5Q,EAAO4Q,GAC1C2mD,EAAKF,GAAMpoD,EAAK,GAAK,EAAI,GAAK+nN,EAC9Bx/J,EAAKF,EAIPkmB,EAFmB,SAAjBm4I,EAEM1mN,EAAK,EAAIkmN,EAAWzrF,EAAcyrF,EAAWz6I,EAAYgvD,EAEzDnyE,GAAMtoD,EAAK,GAAK0nN,EAAgBA,GAG1Cl5I,EAAQjmB,EACR7L,EAAa,CAAC,CAACwL,EAAIC,GAAK,CAACC,EAAIC,GAAK,CAACC,EAAIC,IAGzC50D,EAAY+6E,EAAgB,SAA4B,SAAjBg4I,EAA0B1mN,EAAK,EAAI,QAAU,OAASA,EAAK,EAAI,OAAS,QAIjH,IAAIkzB,EAASlF,EAAWh+B,IAAI,UAG1BiP,EADoB,kBAAXi0B,EACKA,GAAUv5B,KAAK+E,GAAK,KAEpBw0B,EAASlzB,EAAK,GAAKy7C,EAAW9hD,KAAK+E,IAAM+8C,EAAW,EAGpEosK,IAAmB5oN,EACnBlO,EAAO9B,MAAQ,CACbsE,EAAGg7E,EACH/6E,EAAGg7E,EACH11E,SAAU21E,EACVz0E,OAAQmgF,EAASngF,OACjBoM,IAAKuoE,EACLtoE,KAAM0hN,EACNrrK,WAAYA,EACZ/oD,UAAWA,EACXopD,cAAe,SACft+C,SAAUQ,EACV69C,OAAQ4xB,EACRg5I,cAAeA,EACfhB,aAAcA,EACdjsF,YAAaA,EACbktF,YAAaA,EACbxtI,SAAUA,EACV1mF,KAAMA,EACNijC,KAAMA,GAGHg4C,GACHu4I,EAAgBt4N,KAAKoC,EAAO9B,YAI3B44N,GAAkBj4N,EAAYI,IAAI,sBACrCg3N,EAAaC,EAAiB/6K,EAAIC,EAAIxqC,EAAG8pE,EAAWC,EAAYw6I,EAAUC,GAI9E31N,EAAOC,QAAUpD,G,qBC9UjB,IAAI4iE,EAAY,EAAQ,QAoBxBA,EAAUoiG,yBAAyB,aAAa,SAAU1kK,GAExD,OAAQA,EAAOykB,aAAiBzkB,EAAOqmB,OAASrmB,EAAOqmB,OAAOjb,OAAS,EAAIpL,EAAO0kB,YAAc,KAAM1kB,EAAO82F,WAA6B,YAAf,iB,qBC1C7H,IAAIm3C,EAAY,EAAQ,QAEpBlrI,EAAS,EAAQ,QAerB,SAASs3N,EAAcnsF,EAAMC,GAC3BF,EAAUhhI,KAAK9M,KAAM+tI,EAAMC,EAAS,CAAC,UAAW,oBAAqB,cAkKvE,SAASmsF,EAAU30N,GAEjB,OAAOA,IAAUA,EAAMw2C,YAAcx2C,EAAMy2C,eAAiBz2C,EAAM02C,eAAiB12C,EAAMsqE,gBAAkBtqE,EAAMuqE,mBAAqBvqE,EAAMwqE,mBAjK9IptE,EAAOwxB,SAAS8lM,EAAepsF,GAS/BosF,EAAcpsN,UAAUohN,iBAAmB,SAAUC,EAAYh5G,GAC/D,GAAIA,GAAegkH,EAAUhkH,EAAY3wG,OAAQ,CAE/C,IAAIw8G,EAEJ,GAAI7L,EAAYikH,WAAY,CAE1Bp4G,EAAM7L,EAAYikH,WAClB,IAAItlI,EAAO90F,KAAK0uI,SAAQ,GAEnB55C,EAAKz0E,SAAS81F,EAAYikH,aAE7Bp6N,KAAK8uI,OAAO9sB,QAIdA,EAAMhiH,KAAKsF,IAAI6wG,GAGjBn2G,KAAKqvI,SAASl5B,GACd,IAAIhuG,EAAK65G,EAAIjvB,aAAa,MAC1Bo8H,EAAW3pN,MAAM6rD,OAAS,QAAUlpD,EAAK,MAW7C+xN,EAAcpsN,UAAUxI,IAAM,SAAU6wG,GACtC,IAAI6L,EAAMhiH,KAAK0rB,cAAc,UAU7B,OAJAyqF,EAAYkkH,aAAelkH,EAAYkkH,cAAgBr6N,KAAKyuI,SAC5DzsB,EAAI+K,aAAa,KAAM,KAAO/sH,KAAKouI,MAAQ,WAAaj4B,EAAYkkH,cACpEr6N,KAAK44M,UAAUziG,EAAa6L,GAC5BhiH,KAAK8uI,OAAO9sB,GACLA,GASTk4G,EAAcpsN,UAAUvF,OAAS,SAAU4mN,EAAYh5G,GACrD,IAAI3wG,EAAQ2wG,EAAY3wG,MAExB,GAAI20N,EAAU30N,GAAQ,CACpB,IAAImhG,EAAO3mG,KACX8tI,EAAUhgI,UAAUvF,OAAOuE,KAAK9M,KAAMm2G,GAAa,WACjDxP,EAAKiyG,UAAUziG,EAAaA,EAAYikH,oBAI1Cp6N,KAAKqiC,OAAO8sL,EAAYh5G,IAQ5B+jH,EAAcpsN,UAAUu0B,OAAS,SAAU8sL,EAAYh5G,GACrB,MAA5BA,EAAYkkH,eACdr6N,KAAK+uI,UAAUogF,GACfA,EAAW3pN,MAAM6rD,OAAS,KAW9B6oK,EAAcpsN,UAAU8qM,UAAY,SAAUziG,EAAa6L,GACzD,IAAIs4G,EAAWt4G,EAAI4sB,qBAAqB,gBAGtC0rF,EADsB,IAApBA,EAASrvN,OACAjL,KAAK0rB,cAAc,gBAEnB4uM,EAAS,GAGtB,IAIIh/I,EACAC,EACAg/I,EACA3iN,EAPApS,EAAQ2wG,EAAY3wG,MACpB+3D,EAAS44C,EAAY1nG,OAAQ0nG,EAAY1nG,MAAM,IAAU,EACzDgmC,EAAS0hE,EAAY1nG,OAAQ0nG,EAAY1nG,MAAM,IAAU,EAO7D,GAAIjJ,EAAMw2C,YAAcx2C,EAAMy2C,eAAiBz2C,EAAM02C,cACnDo/B,EAAU91E,EAAMy2C,eAAiB,EACjCs/B,EAAU/1E,EAAM02C,eAAiB,EACjCq+K,EAAO/0N,EAAMw2C,WACbpkC,EAAQpS,EAAM22C,gBACT,KAAI32C,EAAMsqE,eAQf,YADA9vE,KAAK+uI,UAAU/sB,EAAKx8G,GANpB81E,EAAU91E,EAAMuqE,mBAAqB,EACrCwL,EAAU/1E,EAAMwqE,mBAAqB,EACrCuqJ,EAAO/0N,EAAMsqE,eACbl4D,EAAQpS,EAAMqqE,gBAOhByqJ,EAASvtG,aAAa,KAAMzxC,EAAU/d,GACtC+8J,EAASvtG,aAAa,KAAMxxC,EAAU9mC,GACtC6lL,EAASvtG,aAAa,cAAen1G,GAGrC,IAAI4iN,EAAQD,EAAO,EAAIh9J,EACnBk9J,EAAQF,EAAO,EAAI9lL,EACnBimL,EAAeF,EAAQ,IAAMC,EACjCH,EAASvtG,aAAa,eAAgB2tG,GAEtC14G,EAAI+K,aAAa,IAAK,SACtB/K,EAAI+K,aAAa,IAAK,SACtB/K,EAAI+K,aAAa,QAASlhH,KAAKyzD,KAAKi7J,EAAO,EAAI,KAAO,KACtDv4G,EAAI+K,aAAa,SAAUlhH,KAAKyzD,KAAKi7J,EAAO,EAAI,KAAO,KACvDv4G,EAAI91F,YAAYouM,GAGhBnkH,EAAYikH,WAAap4G,GAS3Bk4G,EAAcpsN,UAAUuhI,SAAW,SAAUl5B,GACvCA,EAAYikH,YACdtsF,EAAUhgI,UAAUuhI,SAASviI,KAAK9M,KAAMm2G,EAAYikH,aASxD,IAAI76N,EAAW26N,EACfx3N,EAAOC,QAAUpD,G,qBCtKjB,IAAIqD,EAAS,EAAQ,QAEjB48C,EAAc,EAAQ,QAEtB18C,EAAU,EAAQ,QAElB63N,EAAmB,EAAQ,QAE3Bl7K,EAAW,EAAQ,QAEnBm7K,EAAmB,EAAQ,QAE3Bp7E,EAA8Bo7E,EAAiBp7E,4BAC/CU,EAA4B06E,EAAiB16E,0BAoB7CxgG,EAAmB,CAAC,WAAY,gBAAiB,YACjDC,EAAmB,CAAC,YAAa,aACjCk7K,EAAiBp7K,EAASjgD,OAAO,CACnCC,KAAM,aACNmgD,iBAAkB,oBAClBtuC,OAAQ,SAAU/B,EAAWzP,EAASyG,EAAK23B,GACzC,IAAI56B,EAAQtD,KAAKsD,MACjBA,EAAMC,YACN,IAAI4pN,EAAentN,KAAKotN,WACxBptN,KAAKotN,WAAa,IAAItqN,EAAQ6B,MAC9B,IAAI1B,EAAS03N,EAAiB13N,OAAOsM,GACjCixC,EAAc,IAAIhB,EAAYjwC,EAAWtM,GAC7CL,EAAOzD,KAAKugD,EAAkBc,EAAYl7C,IAAKk7C,GAC/Cl9C,EAAMgC,IAAItF,KAAKotN,YACf9pN,EAAMgC,IAAIk7C,EAAYC,YACtB79C,EAAOzD,KAAKwgD,GAAkB,SAAUhzC,GAClC4C,EAAUrN,IAAIyK,EAAO,UACvB3M,KAAK,IAAM2M,GAAM4C,KAElBvP,MACH8C,EAAQsuE,gBAAgB+7I,EAAcntN,KAAKotN,WAAY79M,GACvDsrN,EAAe/wN,UAAU9J,KAAM,SAAUuP,EAAWzP,EAASyG,EAAK23B,IAEpEmE,OAAQ,WACN69G,EAA0BlgJ,OAE5B2gD,WAAY,SAAUpxC,GACpB,IAAIG,EAAOH,EAAUG,KAErB,IAAIA,EAAKjB,MAAMiyC,UAAf,CAIA,IAAIE,EAAiBrxC,EAAU0R,SAAS,aACpC4/B,EAAiBD,EAAe3/B,SAAS,aACzCy3D,EAAY73B,EAAe3+C,IAAI,SAC/B4+C,EAAaD,EAAe3+C,IAAI,SACpC4+C,EAAaA,aAAsB/oC,MAAQ+oC,EAAa,CAACA,GAWzD,IAVA,IAAI6+F,EAAWpwI,EAAUjP,iBAAiB0P,UACtCmkB,EAAezkB,EAAKykB,eACpB6sB,EAAa,GACbD,EAAY,EACZd,EAAcvwC,EAAKwwC,eAAe,CACpC0/F,UAAWh/F,IAETj1C,EAAK,GACLC,EAAK,GAEAqC,EAAI,EAAGA,EAAIgyC,EAAYh1C,SAAUgD,EAAG,CAC3C,IAAIygG,EAAYh/F,EAAKa,cAAc0vC,EAAYhyC,GAAG5B,OAE9C8nB,GACFxoB,EAAG,GAAK+iG,EACR/iG,EAAG,GAAKg0I,EAASj6I,EACjBkG,EAAG,GAAK8iG,EACR9iG,EAAG,GAAK+zI,EAASj6I,EAAIi6I,EAASzzI,SAE9BP,EAAG,GAAKg0I,EAASl6I,EACjBkG,EAAG,GAAK+iG,EACR9iG,EAAG,GAAK+zI,EAASl6I,EAAIk6I,EAASn+I,MAC9BoK,EAAG,GAAK8iG,GAGV,IAAIztD,EAAaF,IAAcD,EAAW71C,OAC1C+1C,EAAWC,GAAcD,EAAWC,IAAe,GACnDD,EAAWC,GAAYpgD,KAAK,IAAIiC,EAAQovC,KAAK,CAC3C5d,kBAAkB,EAClB9iB,MAAO,CACL4oD,GAAIzuD,EAAG,GACP0uD,GAAI1uD,EAAG,GACP2uD,GAAI1uD,EAAG,GACP2uD,GAAI3uD,EAAG,IAETpG,MAAO,CACLkzE,UAAWA,GAEb9mE,QAAQ,KAIZ,IAAS3D,EAAI,EAAGA,EAAI+yC,EAAW/1C,SAAUgD,EACvCjO,KAAKsD,MAAMgC,IAAIxC,EAAQq+C,UAAUH,EAAW/yC,GAAI,CAC9CzI,MAAO,CACLq5C,OAAQiC,EAAW7yC,EAAI6yC,EAAW71C,QAClCmwD,SAAUva,EAAe20D,YAAY98B,GACrCA,UAAWA,GAEb9mE,QAAQ,OAId2vC,WAAY,SAAUhyC,GACpBiwI,EAA4Bx/I,KAAMA,KAAKotN,WAAY79M,EAAWA,MAG9DhQ,EAAWs7N,EACfn4N,EAAOC,QAAUpD,G,qBCrJjB,IAAI+c,EAAW,EAAQ,QAEnBmqH,EAAW,EAAQ,QAEnBvnI,EAAQ,EAAQ,QAEhB2gB,EAAW3gB,EAAM2gB,SACjB82B,EAAaz3C,EAAMy3C,WACnB1wB,EAAW/mB,EAAM+mB,SACjBpO,EAAc3Y,EAAM2Y,YACpBgb,EAAU3zB,EAAM2zB,QAMhBioM,EAAa,WAKf96N,KAAKi8K,UAAY,IA8HnB,SAASngI,EAAUi/K,EAAY3oN,EAAQ8I,EAAMiB,EAAOhC,EAAQ8C,EAAU3C,EAAcjT,GAE9EwY,EAAS1D,IACXc,EAAW9C,EACXA,EAASgC,EACTA,EAAQ,GAEDw6B,EAAWx8B,IAChB8C,EAAW9C,EACXA,EAAS,SACTgC,EAAQ,GAEDw6B,EAAWx6B,IAChBc,EAAWd,EACXA,EAAQ,GAEDw6B,EAAWz7B,IAChB+B,EAAW/B,EACXA,EAAO,KAECA,IACNA,EAAO,KAIjB6/M,EAAWrnL,gBACXsnL,EAAiBD,EAAY,GAAIA,EAAY3oN,EAAQ8I,EAAMiB,EAAO9U,GAGlE,IAAI40K,EAAY8+C,EAAW9+C,UAAU30K,QACjC6a,EAAQ85J,EAAUhxK,OAEtB,SAASiT,IACPiE,IAEKA,GACHlF,GAAYA,IAMXkF,GACHlF,GAAYA,IAKd,IAAK,IAAIhP,EAAI,EAAGA,EAAIguK,EAAUhxK,OAAQgD,IACpCguK,EAAUhuK,GAAGiQ,KAAKA,GAAM3J,MAAM4F,EAAQG,GA+B1C,SAAS0gN,EAAiBD,EAAY75M,EAAMnhB,EAAQqS,EAAQ8I,EAAMiB,EAAO9U,GACvE,IAAI4zN,EAAa,GACbC,EAAgB,EAEpB,IAAK,IAAIvuN,KAAQyF,EACVA,EAAO2K,eAAepQ,KAIP,MAAhB5M,EAAO4M,GACLsZ,EAAS7T,EAAOzF,MAAWkL,EAAYzF,EAAOzF,IAChDquN,EAAiBD,EAAY75M,EAAOA,EAAO,IAAMvU,EAAOA,EAAM5M,EAAO4M,GAAOyF,EAAOzF,GAAOuO,EAAMiB,EAAO9U,IAEnGA,GACF4zN,EAAWtuN,GAAQ5M,EAAO4M,GAC1BwuN,EAAcJ,EAAY75M,EAAMvU,EAAMyF,EAAOzF,KAE7CsuN,EAAWtuN,GAAQyF,EAAOzF,GAG5BuuN,KAEuB,MAAhB9oN,EAAOzF,IAAkBtF,GAClC8zN,EAAcJ,EAAY75M,EAAMvU,EAAMyF,EAAOzF,KAI7CuuN,EAAgB,GAClBH,EAAWnnL,QAAQ1yB,GAAM,GAAOtE,KAAa,MAAR1B,EAAe,IAAMA,EAAM+/M,GAAY9+M,MAAMA,GAAS,GAI/F,SAASg/M,EAAc1vM,EAAIvK,EAAMvU,EAAMgB,GAGrC,GAAKuT,EAEE,CAEL,IAAIrE,EAAQ,GACZA,EAAMqE,GAAQ,GACdrE,EAAMqE,GAAMvU,GAAQgB,EACpB8d,EAAGzL,KAAKnD,QANR4O,EAAGzL,KAAKrT,EAAMgB,GA/OlBmtN,EAAWhtN,UAAY,CACrBC,YAAa+sN,EAcblnL,QAAS,SAAU1yB,EAAMjF,GACvB,IAAI7J,EACAgpN,GAAiB,EACjB3vM,EAAKzrB,KACLuqB,EAAKvqB,KAAKktD,KAEd,GAAIhsC,EAAM,CACR,IAAIm6M,EAAen6M,EAAKoyE,MAAM,KAC1BtgE,EAAOvH,EAEX2vM,EAAqC,UAApBC,EAAa,GAE9B,IAAK,IAAIptN,EAAI,EAAGmoD,EAAIilK,EAAapwN,OAAQgD,EAAImoD,EAAGnoD,IACzC+kB,IAILA,EAAOA,EAAKqoM,EAAaptN,KAGvB+kB,IACF5gB,EAAS4gB,QAGX5gB,EAASqZ,EAGX,GAAKrZ,EAAL,CAKA,IAAI6pK,EAAYxwJ,EAAGwwJ,UACf/hK,EAAW,IAAIoC,EAASlK,EAAQ6J,GAapC,OAZA/B,EAAS8C,QAAO,SAAU5K,GACxBqZ,EAAGnZ,MAAM8oN,MACRl9M,MAAK,WAEN+9J,EAAUhmH,OAAOpjC,EAAQopJ,EAAW/hK,GAAW,MAEjD+hK,EAAUp7K,KAAKqZ,GAEXqQ,GACFA,EAAG5M,UAAUy9E,YAAYlhF,GAGpBA,EAlBLusH,EAAS,aAAevlH,EAAO,+BAAiCuK,EAAGtjB,KAyBvEurC,cAAe,SAAU31B,GAIvB,IAHA,IAAIk+J,EAAYj8K,KAAKi8K,UACjB3jK,EAAM2jK,EAAUhxK,OAEXgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvBguK,EAAUhuK,GAAG6P,KAAKC,GAIpB,OADAk+J,EAAUhxK,OAAS,EACZjL,MAiCT87C,UAAW,SAAU1pC,EAAQ8I,EAAMiB,EAAOhC,EAAQ8C,EAAU3C,GAC1DwhC,EAAU97C,KAAMoS,EAAQ8I,EAAMiB,EAAOhC,EAAQ8C,EAAU3C,IAOzDghN,YAAa,SAAUlpN,EAAQ8I,EAAMiB,EAAOhC,EAAQ8C,EAAU3C,GAC5DwhC,EAAU97C,KAAMoS,EAAQ8I,EAAMiB,EAAOhC,EAAQ8C,EAAU3C,GAAc,KAkIzE,IAAI/a,EAAWu7N,EACfp4N,EAAOC,QAAUpD,G,qBC9PjB,IAAIqD,EAAS,EAAQ,QAEjBvD,EAAc,EAAQ,QAEtBk8N,EAAoB,EAAQ,QAE5BC,EAAmBD,EAAkBC,iBAoBrCC,EAAoBp8N,EAAYG,OAAO,CACzCC,KAAM,qBACNC,aAAc,CAAC,QAAS,QAAS,QAKjCg8N,uBAAwB,CAAC,CACvB/uN,KAAM,OACN6jF,gBAAgB,GACf,CACD7jF,KAAM,QACN6jF,gBAAgB,GACf,CACD7jF,KAAM,SACN6jF,gBAAgB,GACf,CACD7jF,KAAM,UACN6jF,gBAAgB,IAOlBruF,WAAY,KAKZpB,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,cAClBgK,iBAAiB,EACjB+xC,gBAAgB,EAGhBp5C,OAAQ,KAER8Y,MAAM,EACN7Q,UAAW,CACT0M,MAAO,UAEP+jN,OAAQ,UAERvwN,YAAa,EAGbD,YAAa,UACbywN,aAAc,WAEhBl6N,SAAU,CACRwJ,UAAW,CACTE,YAAa,IAGjB8sB,YAAa,KACbC,YAAa,KACbC,SAAU,KACVvC,OAAO,EACP+wB,eAAgB,IAChBjlD,YAAa,IACbglD,qBAAsB,IACtB+qC,qBAAsB,MACtBmqI,iBAAiB,EACjBh6N,gBAAiB,SACjBk9D,kBAAmB,KAOrB2X,aAAc,WACZ,MAAO,QAETlgC,cAAe,SAAU51C,EAAWL,EAAM+1C,GACxC,IAAIpV,EAAa3gC,EAAKygB,cAAcpgB,GACpC,OAAOsgC,GAAcoV,EAAUtqC,KAAKk1B,EAAW/J,cAGnDv0B,EAAOyM,MAAMosN,EAAmBD,GAAkB,GAClD,IAAIj8N,EAAWk8N,EACf/4N,EAAOC,QAAUpD,G,qBC9GjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjB3gB,EAAU,EAAQ,QAElBs2C,EAAY,EAAQ,QAEpB4zK,EAAc,EAAQ,QAoBtB7tN,EAAOyD,EAAOzD,KACd0zB,EAAUjwB,EAAOiwB,QACjBrpB,EAAQ5G,EAAO4G,MACfsyN,EAAiB,CAAC,cAAe,eAGjCC,EAA4B,CAAC,OAAQ,QAAS,QAAS,MAAO,QAAS,QAAS,aAAc,YAAa,QA4D/G,SAASlnL,EAAmBh1C,EAAQC,EAAS0P,GAK3C,IAAIwsN,EAAiBh8N,KAAKi8N,gBAAkB,GACxC3lJ,EAAO,GACP4lJ,EAAYn4G,EAAYjkH,EAASD,GACrCV,EAAKg9N,GAAoB,SAAUC,EAAS38N,KACrC+P,IAAQA,EAAIk0K,SAAW7wJ,EAAQrjB,EAAIk0K,QAASjkL,IAAS,IACxD28N,EAAQF,EAAWF,EAAgB1lJ,MAKzC,IAAIw+D,EAAQjgG,EAAmB/mC,UA6G/B,SAASuuN,EAAarjL,GAEpB,OADAA,EAAO,GAAKA,EAAO,IAAMA,EAAO3xC,UACzB2xC,EAGT,SAAS+qE,EAAYjkH,EAASD,GAC5B,OAAOu5C,EAAU2qE,YAAYjkH,EAASD,EAAQ,CAC5Cy8N,iBAAkBP,IAlHtBjnF,EAAMynF,gBAAkB,SAAU9mL,EAAO31C,GACvCE,KAAKkkL,kBAAkBzuI,EAAO31C,GAAS,SAAUs2C,EAAM+tI,EAAY9jL,GAGjE,IAFC+1C,EAAKomL,cAAgBpmL,EAAKomL,YAAc,KAAK37N,KAAKsjL,IAE9C/tI,EAAK+tI,WAAY,CACpB/tI,EAAK+tI,WAAaA,EAMlB,IAAIx9J,EAAS81M,EAAarmL,EAAKC,WAAW,EAAGh2C,EAAU8jL,GACvD/tI,EAAKsmL,cAAgB,CACnB5nN,OAAQ6nN,EAAcvmL,EAAKC,WAAW1vB,EAAO2uI,OAAQl/G,EAAKt6B,MAAO,CAAC,EAAG,IACrE8gN,SAAUj2M,EAAOi2M,eAMzB9nF,EAAMovC,kBAAoB,SAAUzuI,EAAO31C,EAASqe,GAClDhf,EAAKs2C,GAAO,SAAUW,GACpB,IAAIkqF,EAAatgI,KAAK68N,eAAezmL,EAAMt2C,GAEvCwgI,IAA6B,IAAfA,GAChB19H,EAAOzD,KAAKmhI,EAAWw8F,YAAY,SAAUz8N,GAC3C,IAAIsmB,EAAS81M,EAAarmL,EAAKC,WAAW,EAAGh2C,EAAU+1C,EAAKt6B,OAC5DqC,EAAGi4B,EAAMzvB,EAAO2uI,OAAQj1J,EAAUP,QAGrCE,OAGL80I,EAAMt/F,eAAiB,SAAUC,EAAO31C,GACtCX,EAAKs2C,GAAO,SAAUW,GACpB,IAAIkqF,EAAatgI,KAAK68N,eAAezmL,EAAMt2C,GAG3C,GAFAs2C,EAAKt6B,MAAQs6B,EAAKt6B,OAAS,GAEvBwkH,IAA6B,IAAfA,EAAqB,CACrClqF,EAAK43K,QAAU1tF,EAAW0tF,QAO1B,IAAIrnM,EAAS81M,EAAarmL,EAAKC,WAAW,EAAGiqF,EAAWjgI,SAAU+1C,EAAK+tI,YACnE44C,EAAc3mL,EAAKsmL,cACvBtmL,EAAKt6B,MAAQihN,EAAcJ,EAAcvmL,EAAKC,WAAW1vB,EAAO2uI,OAAQynE,EAAYjoN,OAAQkoN,EAAUr2M,EAAOi2M,SAAUG,EAAYH,WAAaj2M,EAAO2uI,UAExJt1J,OAGL80I,EAAM8uC,cAAgB,SAAUr9K,EAAK02N,GACnC,OAAOr6N,EAAOqE,IAAIjH,KAAKi8N,iBAAiB,SAAU37F,GAChD,IAAIt0H,EAAOs0H,EAAW48F,eACtB,MAAO,CACLlP,QAAS1tF,EAAW0tF,QACpBmP,iBAAkBF,GAAuBA,EAAoB38F,GAC7D/0E,SAAUyhK,EAAYiB,sBAAsBjiN,GAC5CkiN,iBAAkBlB,EAAYmB,yBAAyBniN,EAAMzF,EAAK+5H,EAAW+sF,eAC7Ee,0BAA2BpB,EAAYqB,2BAA2BriN,QAKxE8oI,EAAMv8F,cAAgB,SAAUnC,EAAMt0C,EAAahC,GAGjD,IAAIwgI,EAAatgI,KAAK68N,eAAezmL,EAAMt2C,GAC3C,OAAsB,IAAfwgI,GAAuBA,GAAcztG,EAAQytG,EAAWw8F,WAAYh7N,EAAYxB,mBAAqB,GAa9Gw0I,EAAM+nF,eAAiB,SAAUzmL,EAAMt2C,GAIrC,IAHA,IAAIk8N,EAAiBh8N,KAAKi8N,gBACtBC,EAAYn4G,EAAYjkH,EAASs2C,GAE5BnoC,EAAI,EAAGA,EAAI+tN,EAAe/wN,OAAQgD,IAAK,CAC9C,IAAIqyH,EAAa07F,EAAe/tN,GAC5BmvN,EAAchnL,EAAK43K,QAEvB,GAAIoP,GACF,GAAI98F,EAAW0tF,UAAYoP,EACzB,OAAO98F,OAGT,IAASryH,EAAI,EAAGA,EAAIovN,EAAmBpyN,OAAQgD,IAC7C,GAAIovN,EAAmBpvN,GAAGiuN,EAAW57F,GACnC,OAAOA,EAMf,OAAO,GAcT,IAAI67F,EAAqB,CACvB1sN,KAAM,SAAUysN,EAAWF,GACzB,IAAIsB,EAAcpB,EAAUoB,YACxBC,EAAcrB,EAAUqB,YACxBC,EAAatB,EAAUsB,WAEvBC,EAAe76N,EAAOxD,gBACtBs+N,EAAW,GACXC,EAAW,IAEVL,GAAgBC,GAAgBC,KAIrCr+N,EAAKm+N,GAAa,SAAU/tN,GAC1B,IAAID,EAAYC,EAAUG,KAAKD,KAAKqgB,MACpC2tM,EAAal7N,IAAI+M,EAAUnH,GAAImH,GAC/BouN,EAASpuN,EAAUnH,KAAM,KAE3BhJ,EAAKo+N,GAAa,SAAUhuN,GAC1B,IAAID,EAAYC,EAAUG,KAAKD,KAAKqgB,MACpC2tM,EAAal7N,IAAI+M,EAAUnH,GAAImH,GAC/BquN,EAASruN,EAAUnH,KAAM,KAE3BhJ,EAAKq+N,GAAY,SAAUluN,GACzBmuN,EAAal7N,IAAI+M,EAAUnH,GAAImH,GAC/BouN,EAASpuN,EAAUnH,KAAM,EACzBw1N,EAASruN,EAAUnH,KAAM,KAE3Bs1N,EAAat+N,MAAK,SAAUmQ,GAC1B,IAAIG,EAAOH,EAAUhP,iBACjBs9N,EAAa,GACjBz+N,EAAKsQ,EAAKuyI,iBAAiB,SAAU7gD,EAAWh6F,IAC1C0rB,EAAQyqM,EAAan8H,EAAUvJ,QAAQ,KAAK9nE,QAAU,GAAK+C,EAAQ0qM,EAAap8H,EAAUvJ,QAAQ,KAAK9nE,QAAU,IACnH8tM,EAAW/8N,KAAKsgG,MAGpB66H,EAAen7N,KAAK,CAClBmtN,QAAS,SAAW1+M,EAAUnH,GAC9BmH,UAAWA,EACX+9M,cAAe/9M,EAEfjP,SAAUu9N,EAAW,GACrBd,WAAYc,EACZV,aAAcW,EAAiBpuN,KAC/Bo0K,cAAe65C,EAASpuN,EAAUnH,IAClC27K,cAAe65C,EAASruN,EAAUnH,WAIxCq2B,IAAK,SAAU09L,EAAWF,GACxB78N,EAAK+8N,EAAU4B,WAAW,SAAUlwN,GAClC,IAAIvN,EAAWuN,EAAStN,iBACxB07N,EAAen7N,KAAK,CAClBmtN,QAAS,QAAUpgN,EAASzF,GAC5ByF,SAAUA,EACVy/M,cAAez/M,EACfvN,SAAUA,EACVy8N,WAAY,CAACz8N,GACb68N,aAAcW,EAAiBr/L,WAKnC6+L,EAAqB,CACzB,SAAUnB,EAAW57F,GACnB,IAAI4hB,EAAag6E,EAAUh6E,WACvBC,EAAa+5E,EAAU/5E,WACvB7yI,EAAY4sN,EAAU5sN,UAG1B,OAFCA,GAAa4yI,IAAe5yI,EAAY4yI,EAAWxyI,KAAKD,KAAKqgB,QAC7DxgB,GAAa6yI,IAAe7yI,EAAY6yI,EAAWzyI,KAAKD,KAAKqgB,OACvDxgB,GAAaA,IAAcgxH,EAAWhxH,WAE/C,SAAU4sN,EAAW57F,GACnB,IAAI1yH,EAAWsuN,EAAUtuN,SACzB,OAAOA,GAAYA,IAAa0yH,EAAW1yH,WAEzCiwN,EAAmB,CACrBpuN,KAAM,WAEJ,OAAOzP,KAAKK,SAASoP,KAAKO,UAAUtI,SAEtC82B,IAAK,WACH,IAAIn+B,EAAWL,KAAKK,SAChB2L,EAAO3L,EAAS4L,kBAAkBvE,QAGtC,OADAsE,EAAKk5B,eAAepiC,EAAQ+tE,aAAaxwE,IAClC2L,IAGPywN,EAAe,CACjB9jL,MAAOnvC,EAAMu0N,EAAa,GAC1BllL,MAAOrvC,EAAMu0N,EAAa,GAC1B/xN,KAAM,SAAU8+B,EAAIzqC,EAAU29N,GAC5B,IAAIC,EAAW59N,EAASy7N,EAAehxL,IAAK,CAACkzL,EAAkB,GAAG,GAAIA,EAAkB,GAAG,KACvFE,EAAW79N,EAASy7N,EAAehxL,IAAK,CAACkzL,EAAkB,GAAG,GAAIA,EAAkB,GAAG,KACvF1oE,EAAS,CAAC+mE,EAAa,CAAC4B,EAAS,GAAIC,EAAS,KAAM7B,EAAa,CAAC4B,EAAS,GAAIC,EAAS,MAC5F,MAAO,CACL5oE,OAAQA,EACRsnE,SAAUtnE,IAGdv8G,QAAS,SAAUjO,EAAIzqC,EAAU29N,GAC/B,IAAIpB,EAAW,CAAC,CAAC7pN,KAAWA,KAAW,CAACA,KAAWA,MAC/CuiJ,EAAS1yJ,EAAOqE,IAAI+2N,GAAmB,SAAUx5N,GACnD,IAAIiT,EAAIpX,EAASy7N,EAAehxL,IAAKtmC,GAKrC,OAJAo4N,EAAS,GAAG,GAAK/wN,KAAK6E,IAAIksN,EAAS,GAAG,GAAInlN,EAAE,IAC5CmlN,EAAS,GAAG,GAAK/wN,KAAK6E,IAAIksN,EAAS,GAAG,GAAInlN,EAAE,IAC5CmlN,EAAS,GAAG,GAAK/wN,KAAK4E,IAAImsN,EAAS,GAAG,GAAInlN,EAAE,IAC5CmlN,EAAS,GAAG,GAAK/wN,KAAK4E,IAAImsN,EAAS,GAAG,GAAInlN,EAAE,IACrCA,KAET,MAAO,CACL69I,OAAQA,EACRsnE,SAAUA,KAKhB,SAASmB,EAAYI,EAAerzL,EAAIzqC,EAAU29N,GAChD,IAAItuN,EAAOrP,EAASu3F,QAAQ,CAAC,IAAK,KAAKumI,IACnC7oE,EAAS+mE,EAAaz5N,EAAOqE,IAAI,CAAC,EAAG,IAAI,SAAUgH,GACrD,OAAO68B,EAAKp7B,EAAKguE,YAAYhuE,EAAKugI,aAAa+tF,EAAkB/vN,KAAOyB,EAAKa,cAAcb,EAAKc,YAAYwtN,EAAkB/vN,SAE5H2uN,EAAW,GAGf,OAFAA,EAASuB,GAAiB7oE,EAC1BsnE,EAAS,EAAIuB,GAAiB,CAAC9mM,IAAKA,KAC7B,CACLi+H,OAAQA,EACRsnE,SAAUA,GAId,IAAID,EAAgB,CAClBhkL,MAAOnvC,EAAM40N,EAAmB,GAChCvlL,MAAOrvC,EAAM40N,EAAmB,GAChCpyN,KAAM,SAAUspJ,EAAQ+oE,EAAOC,GAC7B,MAAO,CAAC,CAAChpE,EAAO,GAAG,GAAKgpE,EAAO,GAAKD,EAAM,GAAG,GAAI/oE,EAAO,GAAG,GAAKgpE,EAAO,GAAKD,EAAM,GAAG,IAAK,CAAC/oE,EAAO,GAAG,GAAKgpE,EAAO,GAAKD,EAAM,GAAG,GAAI/oE,EAAO,GAAG,GAAKgpE,EAAO,GAAKD,EAAM,GAAG,MAEzKtlL,QAAS,SAAUu8G,EAAQ+oE,EAAOC,GAChC,OAAO17N,EAAOqE,IAAIquJ,GAAQ,SAAU9wJ,EAAM0L,GACxC,MAAO,CAAC1L,EAAK,GAAK85N,EAAO,GAAKD,EAAMnuN,GAAK,GAAI1L,EAAK,GAAK85N,EAAO,GAAKD,EAAMnuN,GAAK,SAKpF,SAASkuN,EAAkBD,EAAe7oE,EAAQ+oE,EAAOC,GACvD,MAAO,CAAChpE,EAAO,GAAKgpE,EAAOH,GAAiBE,EAAM,GAAI/oE,EAAO,GAAKgpE,EAAOH,GAAiBE,EAAM,IAKlG,SAASrB,EAAUuB,EAAcC,GAC/B,IAAIC,EAAWzwM,EAAQuwM,GACnBG,EAAa1wM,EAAQwwM,GACrBF,EAAS,CAACG,EAAS,GAAKC,EAAW,GAAID,EAAS,GAAKC,EAAW,IAGpE,OAFA3lN,MAAMulN,EAAO,MAAQA,EAAO,GAAK,GACjCvlN,MAAMulN,EAAO,MAAQA,EAAO,GAAK,GAC1BA,EAGT,SAAStwM,EAAQ4uM,GACf,OAAOA,EAAW,CAACA,EAAS,GAAG,GAAKA,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAKA,EAAS,GAAG,IAAM,CAACvlM,IAAKA,KAG/F,IAAI93B,EAAWs1C,EACfnyC,EAAOC,QAAUpD,G,qBC7YjB,IAAIqD,EAAS,EAAQ,QAEjBy6F,EAAS,EAAQ,QAyBrB,SAASshI,EAAOC,GACd,IAAKA,EAAKC,aACR,OAAOD,EAGT,IAAIE,EAAcF,EAAKG,UAEJ,MAAfD,IACFA,EAAc,MAKhB,IAFA,IAAIrhK,EAAWmhK,EAAKnhK,SAEX2gB,EAAI,EAAGA,EAAI3gB,EAASxyD,OAAQmzE,IAMnC,IALA,IAAI+G,EAAU1nB,EAAS2gB,GACnB59C,EAAW2kD,EAAQ3kD,SACnBw+L,EAAcx+L,EAASw+L,YACvBC,EAAgBz+L,EAASy+L,cAEpBl1F,EAAI,EAAGA,EAAIi1F,EAAY/zN,OAAQ8+H,IAAK,CAC3C,IAAIm1F,EAAaF,EAAYj1F,GAE7B,GAAsB,YAAlBvpG,EAAS/gC,KACXu/N,EAAYj1F,GAAKo1F,EAAcD,EAAYD,EAAcl1F,GAAI+0F,QACxD,GAAsB,iBAAlBt+L,EAAS/gC,KAClB,IAAK,IAAI2/N,EAAK,EAAGA,EAAKF,EAAWj0N,OAAQm0N,IAAM,CAC7C,IAAIrmL,EAAUmmL,EAAWE,GACzBF,EAAWE,GAAMD,EAAcpmL,EAASkmL,EAAcl1F,GAAGq1F,GAAKN,IAQtE,OADAF,EAAKC,cAAe,EACbD,EAGT,SAASO,EAAcD,EAAYD,EAAeH,GAKhD,IAJA,IAAIn4M,EAAS,GACT04M,EAAQJ,EAAc,GACtBK,EAAQL,EAAc,GAEjBhxN,EAAI,EAAGA,EAAIixN,EAAWj0N,OAAQgD,GAAK,EAAG,CAC7C,IAAIxI,EAAIy5N,EAAW7pF,WAAWpnI,GAAK,GAC/BvI,EAAIw5N,EAAW7pF,WAAWpnI,EAAI,GAAK,GAEvCxI,EAAIA,GAAK,IAAU,EAAJA,GACfC,EAAIA,GAAK,IAAU,EAAJA,GAEfD,GAAK45N,EACL35N,GAAK45N,EACLD,EAAQ55N,EACR65N,EAAQ55N,EAERihB,EAAO9lB,KAAK,CAAC4E,EAAIq5N,EAAap5N,EAAIo5N,IAGpC,OAAOn4M,EAUT,SAASpnB,EAAS2wH,EAASygB,GAEzB,OADAguF,EAAOzuG,GACAttH,EAAOqE,IAAIrE,EAAOyuD,OAAO6+D,EAAQzyD,UAAU,SAAU8hK,GAE1D,OAAOA,EAAW/+L,UAAY++L,EAAWl6I,YAAck6I,EAAW/+L,SAASw+L,YAAY/zN,OAAS,MAC9F,SAAUs0N,GACZ,IAAIl6I,EAAak6I,EAAWl6I,WACxB7mD,EAAM+gM,EAAW/+L,SACjBw+L,EAAcxgM,EAAIwgM,YAClBz+L,EAAa,GAEA,YAAb/B,EAAI/+B,MACN8gC,EAAW1/B,KAAK,CACdpB,KAAM,UAGNghC,SAAUu+L,EAAY,GACtBr+L,UAAWq+L,EAAY13N,MAAM,KAIhB,iBAAbk3B,EAAI/+B,MACNmD,EAAOzD,KAAK6/N,GAAa,SAAUx6N,GAC7BA,EAAK,IACP+7B,EAAW1/B,KAAK,CACdpB,KAAM,UACNghC,SAAUj8B,EAAK,GACfm8B,UAAWn8B,EAAK8C,MAAM,QAM9B,IAAI41B,EAAS,IAAImgE,EAAOhY,EAAWsrD,GAAgB,QAASpwG,EAAY8kD,EAAW9+B,IAEnF,OADArpB,EAAOmoD,WAAaA,EACbnoD,KAIXx6B,EAAOC,QAAUpD,G,qBCtIjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAoBRA,EAAQC,eAAe,CACrB5I,KAAM,WACN6I,MAAO,WAEPC,OAAQ,WACP,SAAU21B,EAASp+B,GACpBA,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,SACT+C,MAAOlD,IACN,SAAUp8B,GACXA,EAAY09N,gBAAgBthM,EAAQt9B,UAAW,CAACs9B,EAAQ0mH,OAAQ1mH,EAAQ2mH,gB,qBCjC5E,IAAIz8I,EAAU,EAAQ,QAElBs+H,EAAc,EAAQ,QAEtBC,EAAsBD,EAAYC,oBAoBtCv+H,EAAQC,eAAe,CACrB5I,KAAM,wBACN6I,MAAO,wBACPC,OAAQ,WACP,SAAU21B,EAASp+B,GACpBA,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,OACT+C,MAAOlD,IACN,SAAUp8B,GACX,IAAIlB,EAAYs9B,EAAQt9B,UACpB8hB,EAAO5gB,EAAYtB,UAAUkiB,KAC7BlD,EAAOkD,EAAKX,mBAAmBnhB,GACnC4e,EAAK0+C,UAAY1+C,EAAK0+C,eAG1B91D,EAAQC,eAAe,CACrB5I,KAAM,WACN6I,MAAO,WAKPC,OAAQ,SACP,SAAU21B,EAASp+B,GACpBA,EAAQs+B,cAAc,CACpBnB,SAAU,SACVoB,QAAS,OACT+C,MAAOlD,IACN,SAAUp8B,GACX,IAAIzB,EAAWyB,EAAYxB,iBACvB8f,EAAMumH,EAAoBtmI,EAAU69B,GACxCp8B,EAAYkzD,WAAalzD,EAAYkzD,UAAU50C,EAAIsY,QACnD52B,EAAYizD,SAAWjzD,EAAYizD,QAAQ30C,EAAIjU,a,qBCzDnD,IAAI/D,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAErB,EAAQ,QAER,EAAQ,QAER,IAAIm9J,EAAyB,EAAQ,QAEjC4gC,EAAY,EAAQ,QAEpB8+B,EAAY,EAAQ,QAEpBtmI,EAAa,EAAQ,QAoBzB4mE,EAAuB,MAAO,CAAC,CAC7BtgK,KAAM,kBACN6I,MAAO,mBACPjC,OAAQ,kBACP,CACD5G,KAAM,YACN6I,MAAO,cACPjC,OAAQ,UACP,CACD5G,KAAM,cACN6I,MAAO,gBACPjC,OAAQ,cAEV+B,EAAQ2mB,eAAe4xK,EAAU,QACjCv4L,EAAQyrB,eAAejxB,EAAO4G,MAAMi2N,EAAW,QAC/Cr3N,EAAQ+2E,kBAAkBga,EAAW,S,qBCjDrC,IAAI9kE,EAAW,EAAQ,QAEnB6zC,EAAc7zC,EAAS6zC,YAyBvB3oE,EAAW2oE,EAAY,CACzBzoE,KAAM,UACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJwD,GAAI,EACJhuC,EAAG,EACHiuC,WAAY,EACZC,SAAoB,EAAVl2C,KAAK+E,GACf4+C,WAAW,GAEb/D,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI/L,EAAI+L,EAAM4sC,GACV14C,EAAI8L,EAAM6sC,GACVwD,EAAKh2C,KAAK4E,IAAIe,EAAMqwC,IAAM,EAAG,GAC7BhuC,EAAIhI,KAAK4E,IAAIe,EAAMqC,EAAG,GACtB6rN,EAAgB,IAAV7rN,EAAIguC,GACV89K,EAAU99K,EAAK69K,EACf59K,EAAatwC,EAAMswC,WACnBC,EAAWvwC,EAAMuwC,SACjByN,EAAYh+C,EAAMg+C,UAClBowK,EAAa/zN,KAAK04C,IAAIzC,GACtB+9K,EAAah0N,KAAKw4C,IAAIvC,GACtBg+K,EAAWj0N,KAAK04C,IAAIxC,GACpBg+K,EAAWl0N,KAAKw4C,IAAItC,GACpBi+K,EAAiBxwK,EAAYzN,EAAWD,EAAuB,EAAVj2C,KAAK+E,GAASkxC,EAAaC,EAAqB,EAAVl2C,KAAK+E,GAEhGovN,IACFv7L,EAAItW,OAAOyxM,EAAa/9K,EAAKp8C,EAAGo6N,EAAah+K,EAAKn8C,GAClD++B,EAAIo2B,IAAI+kK,EAAaD,EAAUl6N,EAAGo6N,EAAaF,EAAUj6N,EAAGg6N,GAAK7zN,KAAK+E,GAAKkxC,EAAYA,GAAa0N,IAGtG/qB,EAAIo2B,IAAIp1D,EAAGC,EAAGmO,EAAGiuC,EAAYC,GAAWyN,GACxC/qB,EAAItW,OAAO2xM,EAAWjsN,EAAIpO,EAAGs6N,EAAWlsN,EAAInO,GAC5C++B,EAAIo2B,IAAIilK,EAAWH,EAAUl6N,EAAGs6N,EAAWJ,EAAUj6N,EAAGg6N,EAAI39K,EAAqB,EAAVl2C,KAAK+E,GAAQmxC,EAAWl2C,KAAK+E,IAAK4+C,GAE9F,IAAP3N,IACFpd,EAAIo2B,IAAIp1D,EAAGC,EAAGm8C,EAAIE,EAAUD,EAAY0N,GACxC/qB,EAAItW,OAAOyxM,EAAa/9K,EAAKp8C,EAAGs6N,EAAWl+K,EAAKn8C,IAGlD++B,EAAImnB,eAIRlpD,EAAOC,QAAUpD,G,qBCxEjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB2/K,EAAkB,EAAQ,QAE1B09C,EAAkB,EAAQ,QAE1B5qL,EAAe4qL,EAAgB5qL,aAoB/B91C,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,QACNuJ,KAAM,SAAUlJ,EAASyG,GAKvBvG,KAAKF,QAAUA,EAMfE,KAAKuG,IAAMA,EAMXvG,KAAK8vB,OAMJ9vB,KAAK4iL,iBAAmB,IAAIL,EAAgBh8K,EAAIslB,UAAUjlB,GAAG,QAAShE,EAAOiC,KAAK7E,KAAK6iL,SAAU7iL,OAAO8iL,SAM3GxxK,OAAQ,SAAUgkC,GAEhB,OADAt1C,KAAK8vB,MAAQwlB,EACN4qL,EAAiB55M,MAAMtmB,KAAMkJ,YAMtCwF,gBAAiB,SAAU4mC,EAAYx1C,GAKrC,OADAu1C,EAAav1C,GACNogO,EAAiB55M,MAAMtmB,KAAMkJ,YAMtCu/G,WAAYy3G,EAaZ3xM,QAAS,WACPvuB,KAAK4iL,iBAAiBr0J,WAMxBs0J,SAAU,SAAUptI,EAAOjmC,GACzB,IAAI2wN,EAAUngO,KAAK8vB,MAAM3nB,GACzBnI,KAAK8vB,MAAMylB,mBAAmBgnL,gBAAgB9mL,EAAOz1C,KAAKF,WAKxD0P,EAAIitG,OAASjtG,EAAI8+M,gBAAkBtuN,KAAKuG,IAAIC,eAAe,CAC3D/G,KAAM,QACN+3C,QAAS2oL,EACT1qL,MAAO7yC,EAAO8E,MAAM+tC,GACpB2qL,MAAOD,IAET3wN,EAAIitG,OAASz8G,KAAKuG,IAAIC,eAAe,CACnC/G,KAAM,WACN+3C,QAAS2oL,EACT1qL,MAAO7yC,EAAO8E,MAAM+tC,GACpB2qL,MAAOD,OAKb,SAASD,EAAiB5qL,EAAYx1C,EAASyG,EAAK23B,KAEhDA,GAAWA,EAAQkiM,QAAU9qL,EAAWntC,KAAOnI,KAAK4iL,iBAAiBe,UAAUruI,EAAWC,mBAAmBquI,cAAcr9K,IAAMw9K,YAAYzuI,EAAW+B,aAAa4sI,aAAa3uI,EAAWG,MAAMnuC,SAGvM5E,EAAOC,QAAUpD,G,mBCpGjB,SAASsJ,EAAqBw3N,EAA0Bj3N,GACtDpJ,KAAKm3L,YAAc,WACjB,IAAI9hC,EAAUjsJ,IAGd,OAAOisJ,EAAQ90E,SAAS80E,EAAQp4G,UAGlCj9C,KAAKypJ,YAAc,SAAU98I,GAC3B,IAAI0oJ,EAAUjsJ,IACd,OAAOisJ,EAAQj1H,YAAYzzB,IAAS,GAGtC3M,KAAKogC,YAAc,SAAUzzB,GAI3B,IAAI2zN,EAAwBD,IAC5B,OAAOC,EAAsBlgM,YAAYzzB,IAG3C3M,KAAK2hB,cAAgB,SAAU/gB,EAAWmH,GAExC,IAAIu4N,EAAwBD,IAC5B,OAAOC,EAAsB3+M,cAAc/gB,EAAWmH,IAI1D,IAAIxI,EAAWsJ,EACfnG,EAAOC,QAAUpD,G,qBCtDjB,EAAQ,QAER,EAAQ,QAER,EAAQ,S,mBCcR,IAAIghO,EAAsB,CACxB,YAAe,EACf,QAAW,EACX,MAAS,GAOX,SAASrkM,EAAoBvP,EAAGpmB,EAAKi6N,GACnC,IAAI1wM,EAAQvpB,EAAIgmH,sBAAsB5/F,EAAE8zM,WAEpCpgO,EAAWyvB,GAASA,EAAMxvB,iBAC9B,OAAOwvB,GAASA,IAAU0wM,IAAwBD,EAAoBzwM,EAAMmN,WAAa58B,GAAYA,EAASyvB,QAAU0wM,EAG1H79N,EAAQu5B,oBAAsBA,G,mBCjB9B,IAAIwkM,EAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAChJnhO,EAAW,CACbqY,MAAO8oN,EACPp2C,WAAY,CAAC,CAAC,UAAW,UAAW,WAAY,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WAAY,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAAYo2C,IAE3Nh+N,EAAOC,QAAUpD,G,qBCvBjB,IAAIqD,EAAS,EAAQ,QAEjBqQ,EAAiB,EAAQ,QAEzBkzH,EAAmB,EAAQ,QAE3BlkF,EAAuB,EAAQ,QAoB/BmkF,EAAYnzH,EAAezT,OAAO,CACpCC,KAAM,aACNy0D,WAAY,MAKZxkD,KAAM,KAKNpP,iBAAkB,KAKlB02D,iBAAkB,WAChB,OAAOh3D,QAGPe,EAAgB,CAClBwJ,KAAM,KACNC,IAAK,KACLC,MAAO,KACPC,OAAQ,KACRjL,KAAM,QACNuL,SAAU,SACVlE,OAAQ,aACRo+C,SAAU,CACR9jD,MAAM,EACNG,UAAW,CACTC,MAAO,EACP/B,KAAM,UAMVkqD,QAAS,CACPvoD,MAAM,GAER+jD,SAAU,CACR/jD,MAAM,EACN6J,OAAQ,EACR1J,UAAW,CACTC,MAAO,IAGX4jD,UAAW,CACThkD,MAAM,EACN8lB,SAAU,QAEZ++B,UAAW,CACT7kD,MAAM,EACNG,UAAW,CACT9B,KAAM,SACNgC,QAAS,MAKf,SAAS8kI,EAAYliD,EAAUxkF,GAC7B,OAAOA,EAAOJ,OAASI,EAAOU,KAAO,WAAa,SAGpDqC,EAAOie,MAAMulH,EAAUt4H,UAAWm0C,GAClCkkF,EAAiB,SAAUC,EAAWG,EAAaxlI,GACnD,IAAIxB,EAAW6mI,EACf1jI,EAAOC,QAAUpD,G,qBC/FjB,IAAIm1G,EAAgB,EAAQ,QAExBppB,EAAmBopB,EAAcppB,iBA0BrC,SAAS3xC,EAAgBp5C,EAAMK,GAC7B,IAAI+/N,EAAYpgO,EAAKyJ,aAAa,kBAAkB,GAChDsO,EAAMqoN,EAAU11N,OAEpB,GAAY,IAARqN,EACF,OAAOgzE,EAAiB/qF,EAAMK,EAAW+/N,EAAU,IAC9C,GAAIroN,EAAK,CAGd,IAFA,IAAIknK,EAAO,GAEFvxK,EAAI,EAAGA,EAAI0yN,EAAU11N,OAAQgD,IAAK,CACzC,IAAIxC,EAAM6/E,EAAiB/qF,EAAMK,EAAW+/N,EAAU1yN,IACtDuxK,EAAK3+K,KAAK4K,GAGZ,OAAO+zK,EAAK3lK,KAAK,MAIrBlX,EAAQg3C,gBAAkBA,G,qBClE1B,IAAImQ,EAAO,EAAQ,QAEf4yJ,EAAkB,EAAQ,QAE1BkkB,EAAoB,EAAQ,QAE5Bz3J,EAAuBy3J,EAAkBz3J,qBAOzC03J,EAA8B,GAE9BthO,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,OACN+R,MAAO,CAMLqC,EAAG,EACHpO,EAAG,EACHC,EAAG,EACHlE,MAAO,EACP0K,OAAQ,GAEVu/C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI/L,EACAC,EACAlE,EACA0K,EAEAlM,KAAKs0B,kBACP60C,EAAqB03J,EAA6BrvN,EAAOxR,KAAKwF,OAC9DC,EAAIo7N,EAA4Bp7N,EAChCC,EAAIm7N,EAA4Bn7N,EAChClE,EAAQq/N,EAA4Br/N,MACpC0K,EAAS20N,EAA4B30N,OACrC20N,EAA4BhtN,EAAIrC,EAAMqC,EACtCrC,EAAQqvN,IAERp7N,EAAI+L,EAAM/L,EACVC,EAAI8L,EAAM9L,EACVlE,EAAQgQ,EAAMhQ,MACd0K,EAASsF,EAAMtF,QAGZsF,EAAMqC,EAGT6oM,EAAgBjxJ,UAAUhnB,EAAKjzB,GAF/BizB,EAAIz4B,KAAKvG,EAAGC,EAAGlE,EAAO0K,GAKxBu4B,EAAImnB,eAKRlpD,EAAOC,QAAUpD,G,qBCzCjB,IAAIqD,EAAS,EAAQ,QAEjBG,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBqxB,EAAW,EAAQ,QAEnB1vB,EAAQ0vB,EAAS1vB,MAEjBkf,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvBolB,EAAY,EAAQ,QAyBpBknL,EAAuB,EAE3B,SAAStjL,EAAoBzD,GAK3B,OAJKn3C,EAAOogB,QAAQ+2B,KAClBA,EAAa,EAAEA,GAAaA,IAGvBA,EAGT,SAASgnL,EAAiBC,EAAaC,GACrC,IAAIrpN,EAAQqpN,EAAUC,mBAAqBD,EAAUrpN,MACrDopN,EAAY5jM,WAAU,SAAU+jM,GAC9BA,EAAWnhN,KAAK,CACd/e,EAAGggO,EAAUhgO,EACbD,OAAQigO,EAAUjgO,OAClBwE,MAAO,CACLq5C,OAAgC,WAAxBoiL,EAAU5qL,UAAyBz+B,EAAQ,KACnDlG,KAA8B,SAAxBuvN,EAAU5qL,UAAuBz+B,EAAQ,WAavD,SAASgrH,EAAariI,EAAM2P,GAC1BvL,EAAMmI,KAAK9M,MACX,IAAI6yC,EAAS,IAAI+G,EAAUr5C,EAAM2P,GAC7B8wN,EAAc,IAAIr8N,EACtB3E,KAAKsF,IAAIutC,GACT7yC,KAAKsF,IAAI07N,GAETA,EAAYx6C,aAAe,WACzBxmL,KAAKggB,KAAK6yB,EAAOmH,aAGnBh6C,KAAKi0C,WAAW1zC,EAAM2P,GAGxB,IAAIkxN,EAAoBx+F,EAAa90H,UAErCszN,EAAkBC,oBAAsB,WACtCrhO,KAAK8+B,QAAQ,GAAGv7B,aAGlB69N,EAAkBE,qBAAuB,SAAUL,GAKjD,IAJA,IAAIruL,EAAaquL,EAAUruL,WACvBh7B,EAAQqpN,EAAUrpN,MAClBopN,EAAchhO,KAAK8+B,QAAQ,GAEtB7wB,EAAI,EAAGA,EAAI6yN,EAAsB7yN,IAAK,CAI7C,IAAIkzN,EAAan+N,EAAa4vC,GAAa,GAAI,EAAG,EAAG,EAAGh7B,GACxDupN,EAAWnhN,KAAK,CACdxa,MAAO,CACLs7B,eAAe,GAEjB1vB,GAAI,GACJQ,QAAQ,EACRnD,MAAO,CAAC,GAAK,MAEf,IAAI0N,GAASlO,EAAI6yN,EAAuBG,EAAU/tL,OAAS+tL,EAAUM,aAErEJ,EAAWvtL,QAAQ,IAAI,GAAMh3B,KAAKqkN,EAAU/tL,OAAQ,CAClDzkC,MAAO,CAACwyN,EAAUO,YAAc,EAAGP,EAAUO,YAAc,KAC1DrlN,MAAMA,GAAO5H,QAChB4sN,EAAW/zK,cAAa,GAAMxwC,KAAKqkN,EAAU/tL,OAAQ,CACnDzxC,QAAS,IACR0a,MAAMA,GAAO5H,QAChBysN,EAAY17N,IAAI67N,GAGlBJ,EAAiBC,EAAaC,IAOhCG,EAAkBK,sBAAwB,SAAUR,GAMlD,IALA,IAAIS,EAAe1hO,KAAK2hO,WACpBX,EAAchhO,KAAK8+B,QAAQ,GAE3B8iM,EAAkB,CAAC,aAAc,SAAU,eAEtC3zN,EAAI,EAAGA,EAAI2zN,EAAgB32N,OAAQgD,IAAK,CAC/C,IAAIoM,EAAWunN,EAAgB3zN,GAE/B,GAAIyzN,EAAarnN,KAAc4mN,EAAU5mN,GAGvC,OAFAra,KAAKqhO,2BACLrhO,KAAKshO,qBAAqBL,GAK9BF,EAAiBC,EAAaC,IAOhCG,EAAkB3mL,UAAY,WAC5Bz6C,KAAKs9B,QAAQ,aAOf8jM,EAAkB1mL,SAAW,WAC3B16C,KAAKs9B,QAAQ,WASf8jM,EAAkBntL,WAAa,SAAU1zC,EAAM2P,GAC7C,IAAIpO,EAAcvB,EAAKye,UACvBhf,KAAK8+B,QAAQ,GAAGmV,WAAW1zC,EAAM2P,GACjC,IAAI8wN,EAAchhO,KAAK8+B,QAAQ,GAC3B3d,EAAY5gB,EAAK6gB,aAAalR,GAC9B0iC,EAAaryC,EAAKohB,cAAczR,EAAK,UACrC6pC,EAAayD,EAAoBj9C,EAAKohB,cAAczR,EAAK,eACzD0H,EAAQrX,EAAKohB,cAAczR,EAAK,SACpC8wN,EAAYhhN,KAAK,QAAS+5B,GAC1BinL,EAAYl+L,UAAS,SAAUq+L,GAC7BA,EAAWnhN,KAAK,CACdtO,KAAMkG,OAGV,IAAIwkC,EAAej7B,EAAUq7B,WAAW,gBAExC,GAAIJ,EAAc,CAChB,IAAI/pC,EAAM2uN,EAAYh2N,SACtBqH,EAAI,GAAKmiB,EAAa4nB,EAAa,GAAIrC,EAAW,IAClD1nC,EAAI,GAAKmiB,EAAa4nB,EAAa,GAAIrC,EAAW,IAGpD,IAAI2C,EAAen8C,EAAKohB,cAAczR,EAAK,gBAC3C8wN,EAAYrwN,UAAY+rC,GAAgB,GAAK7wC,KAAK+E,GAAK,KAAO,EAC9D,IAAIqwN,EAAY,GAahB,GAZAA,EAAUhhE,aAAen+J,EAAYI,IAAI,gBACzC++N,EAAUO,YAAcrgN,EAAUjf,IAAI,sBACtC++N,EAAU5qL,UAAYl1B,EAAUjf,IAAI,0BACpC++N,EAAU/tL,OAAgD,IAAvC/xB,EAAUjf,IAAI,uBACjC++N,EAAUM,aAAerxN,EAAM3P,EAAK4hB,QACpC8+M,EAAUhgO,EAAIkgB,EAAUq7B,WAAW,MAAQ,EAC3CykL,EAAUjgO,OAASmgB,EAAUq7B,WAAW,WAAa,EACrDykL,EAAUruL,WAAaA,EACvBquL,EAAUrpN,MAAQA,EAClBqpN,EAAUC,kBAAoB//M,EAAUjf,IAAI,sBAC5ClC,KAAK68B,IAAI,aAAaA,IAAI,YAAYA,IAAI,YAAYA,IAAI,UAE3B,WAA3BokM,EAAUhhE,aACZjgK,KAAK2hO,WAAa3hO,KAAKyhO,sBAAsBR,GAAajhO,KAAKshO,qBAAqBL,GACpFjhO,KAAK2hO,WAAaV,MACb,CAELjhO,KAAK2hO,WAAa,KAClB3hO,KAAKqhO,sBACL,IAAIxuL,EAAS7yC,KAAK8+B,QAAQ,GAEtBwoE,EAAa,WACfz0D,EAAO4H,YAEwB,WAA3BwmL,EAAUhhE,cACZjgK,KAAKshO,qBAAqBL,IAI1Bx5H,EAAW,WACb50D,EAAO6H,WAEwB,WAA3BumL,EAAUhhE,cACZjgK,KAAKqhO,uBAITrhO,KAAK4G,GAAG,YAAa0gG,EAAYtnG,MAAM4G,GAAG,WAAY6gG,EAAUznG,MAAM4G,GAAG,WAAY0gG,EAAYtnG,MAAM4G,GAAG,SAAU6gG,EAAUznG,MAGhIA,KAAK2hO,WAAaV,GAGpBG,EAAkB/jL,QAAU,SAAUl/B,GACpCne,KAAK68B,IAAI,aAAaA,IAAI,YAAYA,IAAI,YAAYA,IAAI,UAC1D1e,GAAMA,KAGRvb,EAAOwxB,SAASwuG,EAAcj+H,GAC9B,IAAIpF,EAAWqjI,EACflgI,EAAOC,QAAUpD,G,qBClPjB,IAAIsiO,EAAY,EAAQ,QAEpBrrI,EAAWqrI,EAAUrrI,SACrBjD,EAAuBsuI,EAAUtuI,qBAEjC5uF,EAAQ,EAAQ,QAEhB4M,EAAO,EAAQ,QAEfrS,EAAQ,EAAQ,QAEhBmuC,EAASnuC,EAAMmuC,OACfjuC,EAAgBF,EAAME,cAEtBmN,EAAe,EAAQ,QAEvB9D,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAoBnBgB,EAAQhB,IACR1tC,EAAW,CAMbwN,KAAM,SAAUw1B,EAASmuG,GACvB,IAAIoxF,EAAa7zL,EAAMyiG,GAAWoxF,WAElC,GAAIA,EACF,MAAO,CACL5iN,KAAM4iN,EACNv0N,aAAc0gC,EAAMyiG,GAAWnjI,cAInC,IAAIzK,EAAUi/N,EAAarxF,GAG3B,OAFAziG,EAAMyiG,GAAWoxF,WAAah/N,EAAQoc,KACtC+uB,EAAMyiG,GAAWnjI,aAAezK,EAAQyK,aACjCzK,GAET0/B,YAAa,SAAUD,EAASmuG,EAAWoV,GAGzC,IAAIk8E,EAAQ/zL,EAAMyiG,GACduxF,EAAUD,EAAMC,UAAYD,EAAMC,QAAU7iO,KAC5C8f,EAAO+iN,EAAQ//N,IAAI4jJ,GAEvB,GAAI5mI,EACF,OAAOA,EAGT,IAAI4iN,EAAaE,EAAMF,WACnBv0N,EAAey0N,EAAMz0N,aAUzB,OAPKy0N,EAAME,kBAIThjN,EAAO6iN,EAAarxF,EAAWnjI,GAAc2R,MAH7C8iN,EAAME,kBAAoBp8E,EAC1B5mI,EAAO4iN,GAKFG,EAAQ1/N,IAAIujJ,EAAS5mI,IAE9BojB,cAAe,SAAUC,EAASmuG,EAAWoV,GAC3C,IAAIk8E,EAAQ/zL,EAAMyiG,GACduxF,EAAUD,EAAMC,QACpBA,GAAWA,EAAQ91D,UAAUrmB,GAEzBA,IAAYk8E,EAAME,oBACpBF,EAAME,kBAAoB,QAKhC,SAASH,EAAarxF,EAAWnjI,GAC/B,IACIoZ,EACAzH,EAFAijN,EAASzxF,EAAUyxF,OAIvB,IACEx7M,EAASw7M,GAAU3rI,EAAS2rI,EAAQ,CAClC3uI,eAAe,EACfE,gBAAgB,KACZ,GACNx0E,EAAOyH,EAAOzH,KACdmuB,EAAe,MAARnuB,GACP,MAAOyN,GACP,MAAM,IAAIhW,MAAM,uBAAyBgW,EAAEkkH,SAG7C,IAAIuxF,EAAWz7M,EAAOnlB,MAClB6gO,EAAY17M,EAAOza,OACnBgnF,EAAcvsE,EAAOusE,YAgBzB,GAdK3lF,IACHA,EAA2B,MAAZ60N,GAAiC,MAAbC,EAEnCnjN,EAAKjT,kBAAoB,IAAIM,EAAa,EAAG,EAAG,EAAG,GAEnC,MAAZ61N,IACF70N,EAAa/L,MAAQ4gO,GAGN,MAAbC,IACF90N,EAAarB,OAASm2N,IAItBnvI,EAAa,CACf,IAAIC,EAAmBI,EAAqBL,EAAa3lF,EAAa/L,MAAO+L,EAAarB,QACtFunF,EAASv0E,EACbA,EAAO,IAAIva,EACXua,EAAK5Z,IAAImuF,GACTA,EAAOhlF,MAAQ0kF,EAAiB1kF,MAChCglF,EAAOzoF,SAAWmoF,EAAiBnoF,SAMrC,OAHAkU,EAAKqrB,YAAY,IAAIh5B,EAAK,CACxBC,MAAOjE,EAAao5J,WAEf,CACLznJ,KAAMA,EACN3R,aAAcA,GAIlB7K,EAAOC,QAAUpD,G,qBCnJjB,IAAIuD,EAAU,EAAQ,QAElBC,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvBskE,EAAyB,EAAQ,QAuBjCg7J,EAAuB,EACvBC,EAAkBz/N,EAAQolE,YAAY,CACxC12D,MAAO,CACL+F,OAAQ,MAEVirN,YAAa,KACbC,cAAe,KACfh3K,UAAW,SAAUvqC,EAAM1P,GACzB,IAAI+F,EAAS/F,EAAM+F,OACfjL,EAAOkF,EAAMlF,KACbk2N,EAAcxiO,KAAKwiO,YACnBE,EAAmBF,EAAYhxN,MAC/BizB,EAAMvjB,EAAK24C,WAAa34C,EAAK24C,aAAe34C,EAC5CyhN,EAAWl+L,GAAOn4B,EAAK,GAAKg2N,EAEhC,IAAIK,EAIJ,IAAK,IAAI10N,EAAI,EAAGA,EAAIsJ,EAAOtM,QAAS,CAClC,IAAIxF,EAAI8R,EAAOtJ,KACXvI,EAAI6R,EAAOtJ,KAEX8K,MAAMtT,IAAMsT,MAAMrT,KAIlB1F,KAAKyiO,gBAAkBziO,KAAKyiO,cAAcv0N,QAAQzI,EAAGC,KAIzDg9N,EAAiBj9N,EAAIA,EAAI6G,EAAK,GAAK,EACnCo2N,EAAiBh9N,EAAIA,EAAI4G,EAAK,GAAK,EACnCo2N,EAAiBlhO,MAAQ8K,EAAK,GAC9Bo2N,EAAiBx2N,OAASI,EAAK,GAC/Bk2N,EAAY/2K,UAAUvqC,EAAMwhN,GAAkB,OAGlD31K,WAAY,SAAUtoB,GACpB,IAAIjzB,EAAQxR,KAAKwR,MACb+F,EAAS/F,EAAM+F,OACfjL,EAAOkF,EAAMlF,KACbq2N,EAAWr2N,EAAK,GAAKg2N,EAEzB,GAAKK,EAAL,CAIA3iO,KAAKwkC,aAAaC,GAElB,IAAK,IAAIx2B,EAAI,EAAGA,EAAIsJ,EAAOtM,QAAS,CAClC,IAAIxF,EAAI8R,EAAOtJ,KACXvI,EAAI6R,EAAOtJ,KAEX8K,MAAMtT,IAAMsT,MAAMrT,KAIlB1F,KAAKyiO,gBAAkBziO,KAAKyiO,cAAcv0N,QAAQzI,EAAGC,IAMzD++B,EAAIkjH,SAASliJ,EAAI6G,EAAK,GAAK,EAAG5G,EAAI4G,EAAK,GAAK,EAAGA,EAAK,GAAIA,EAAK,KAG/DtM,KAAK2kC,iBAAiBF,KAExBs2K,cAAe,SAAUt1M,EAAGC,GAW1B,IARA,IAAI8L,EAAQxR,KAAKwR,MACb+F,EAAS/F,EAAM+F,OACfjL,EAAOkF,EAAMlF,KACbkL,EAAI3L,KAAK4E,IAAInE,EAAK,GAAI,GACtBopD,EAAI7pD,KAAK4E,IAAInE,EAAK,GAAI,GAIjB4D,EAAMqH,EAAOtM,OAAS,EAAI,EAAGiF,GAAO,EAAGA,IAAO,CACrD,IAAIjC,EAAU,EAANiC,EACJ8qD,EAAKzjD,EAAOtJ,GAAKuJ,EAAI,EACrByjD,EAAK1jD,EAAOtJ,EAAI,GAAKynD,EAAI,EAE7B,GAAIjwD,GAAKu1D,GAAMt1D,GAAKu1D,GAAMx1D,GAAKu1D,EAAKxjD,GAAK9R,GAAKu1D,EAAKvF,EACjD,OAAOxlD,EAIX,OAAQ,KAIZ,SAAS+4M,IACPjpN,KAAKsD,MAAQ,IAAIR,EAAQ6B,MAG3B,IAAIi+N,EAAmB3Z,EAAgBn7M,UAEvC80N,EAAiBzmD,aAAe,WAC9B,OAAQn8K,KAAK08K,cAUfkmD,EAAiB3uL,WAAa,SAAU1zC,EAAMiP,GAC5CxP,KAAKsD,MAAMC,YACX,IAAI+uK,EAAW,IAAIiwD,EAAgB,CACjC11K,WAAW,EACX1hB,OAAQ,YAEVmnI,EAASnkH,SAAS,CAChB52C,OAAQhX,EAAKwgB,UAAU,kBAGzB/gB,KAAKm7M,WAAW7oC,EAAU/xK,GAAM,EAAOiP,GAEvCxP,KAAKsD,MAAMgC,IAAIgtK,GACftyK,KAAK08K,aAAe,MAGtBkmD,EAAiBluL,aAAe,SAAUn0C,GACxC,IAAIP,KAAK08K,aAAT,CAIA,IAAInlK,EAAShX,EAAKwgB,UAAU,gBAC5B/gB,KAAKsD,MAAM85B,WAAU,SAAU7d,GAC7B,GAAwB,MAApBA,EAAMuvB,WAAoB,CAC5B,IAAIx2B,EAA4C,GAArCiH,EAAMsjN,SAAWtjN,EAAMuvB,YAC9Bg0L,EAAgC,EAAnBvjN,EAAMuvB,WAAiB,EACxCv3B,EAAS,IAAIod,aAAapd,EAAOg/I,OAAQusE,EAAYxqN,GAGvDiH,EAAM4uC,SAAS,SAAU52C,QAI7BqrN,EAAiBvmD,yBAA2B,SAAU97K,GACpDP,KAAKsD,MAAMC,YAEXvD,KAAKy8K,oBAIDl8K,EAAK4hB,QAAU,KACZniB,KAAK08K,eACR18K,KAAK08K,aAAe,IAAIp1G,EAAuB,CAC7C11D,QAAQ,KAIZ5R,KAAKsD,MAAMgC,IAAItF,KAAK08K,eAEpB18K,KAAK08K,aAAe,MAIxBkmD,EAAiBrmD,kBAAoB,SAAUlsB,EAAY9vJ,EAAMiP,GAC/D,IAAI8iK,EAEAtyK,KAAK08K,cACPpK,EAAW,IAAIiwD,EAEfviO,KAAK08K,aAAaxmE,eAAeo8D,GAAU,KAE3CA,EAAW,IAAIiwD,EAAgB,CAC7B11K,WAAW,EACX1hB,OAAQ,UACR2D,WAAYuhH,EAAW97I,MACvBsuN,SAAUxyE,EAAWh2E,MAEvBi4F,EAAS72H,aAAc,EACvBz7C,KAAKsD,MAAMgC,IAAIgtK,IAGjBA,EAASnkH,SAAS,CAChB52C,OAAQhX,EAAKwgB,UAAU,kBAGzB/gB,KAAKm7M,WAAW7oC,EAAU/xK,IAAQP,KAAK08K,aAAcltK,IAGvDozN,EAAiBznB,WAAa,SAAU7oC,EAAU/xK,EAAM66M,EAAe5rM,GACrE,IAAIwP,EAAYze,EAAKye,UACrBxP,EAAMA,GAAO,GAYb,IAAIlD,EAAO/L,EAAKkhB,UAAU,cAC1B6wJ,EAASnkH,SAAS,OAAQ7hD,aAAgByL,MAAQzL,EAAO,CAACA,EAAMA,IAEhEgmK,EAASmwD,cAAgBjzN,EAAI86B,WAAa,KAE1CgoI,EAASkwD,YAAcx/N,EAAazC,EAAKkhB,UAAU,UAAW,EAAG,EAAG,EAAG,GAEvE6wJ,EAASv/H,SAAWu/H,EAASkwD,YAAYzvL,SACzC,IAAIgwL,EAAgBzwD,EAAS9gK,MAAMlF,KAAK,GAAKg2N,EAC7ChwD,EAASv2H,SACT/8B,EAAUiC,SAAS,aAAatP,aAAaoxN,EAAgB,CAAC,QAAS,aAAc,eAAiB,CAAC,WACvG,IAAI1iM,EAAc9/B,EAAKkhB,UAAU,SAE7B4e,GACFiyI,EAASv/H,SAAS1S,GAGf+6K,IAGH9oC,EAASv7H,YAAc/3B,EAAU+3B,YACjCu7H,EAAS1rK,GAAG,aAAa,SAAU+lB,GACjC2lJ,EAAS1xK,UAAY,KACrB,IAAIA,EAAY0xK,EAASyoC,cAAcpuL,EAAE2uD,QAAS3uD,EAAE4uD,SAEhD36E,GAAa,IAEf0xK,EAAS1xK,UAAYA,GAAa0xK,EAASxjI,YAAc,SAMjE8zL,EAAiBvgM,OAAS,WACxBriC,KAAKy8K,oBAELz8K,KAAK08K,aAAe,KACpB18K,KAAKsD,MAAMC,aAGbq/N,EAAiBnmD,kBAAoB,WACnC,IAAIhhI,EAAcz7C,KAAK08K,aAEnBjhI,GACFA,EAAYw6D,oBAIhB,IAAI12G,EAAW0pN,EACfvmN,EAAOC,QAAUpD,G,qBCzRjB,IAAIyjO,EAAmB,EAAQ,QAE3BnsD,EAAYmsD,EAAiBnsD,UAC7BC,EAAaksD,EAAiBlsD,WAE9BtF,EAAgB,EAAQ,QAExBxoK,EAAOwoK,EAAcxoK,KACrBi8D,EAAYusG,EAAcvsG,UAC1BO,EAAagsG,EAAchsG,WAC3By9J,EAAMzxD,EAActsG,WACpBS,EAAmB6rG,EAAc7rG,iBACjCE,EAAc2rG,EAAc3rG,YAoBhC,SAAStmE,EAASO,EAASyG,GACzBzG,EAAQumC,iBAAiB,QAAQ,SAAUvkC,GACzCohO,EAAaphO,EAAayE,MAI9B,SAAS28N,EAAaphO,EAAayE,GACjC,IAAIs3D,EAAagI,EAAY/jE,EAAayE,GAC1CzE,EAAY+7D,WAAaA,EACzB,IAAI56D,EAASnB,EAAYI,IAAI,UACzBV,EAAQ,EACR0K,EAAS,EACTg5D,EAAa,KAEF,WAAXjiE,GACFzB,EAAQ,EAAIqK,KAAK+E,GACjB1E,EAASL,KAAK6E,IAAImtD,EAAW3xD,OAAQ2xD,EAAWr8D,OAAS,EACzD0jE,EAAa+9J,GAAI,SAAUlzK,EAAOC,GAChC,OAAQD,EAAMnxC,aAAeoxC,EAAMpxC,WAAa,EAAI,GAAKmxC,EAAMpxC,WAGjEnd,EAAQq8D,EAAWr8D,MACnB0K,EAAS2xD,EAAW3xD,OACpBg5D,EAAa+9J,KAGf,IAAIr8H,EAAc9kG,EAAYtB,UAAUkiB,KAAKxD,KACzCw/C,EAAWkoC,EAAY/nF,SAAS,GAEpC,GAAI6/C,EAAU,CACZ11D,EAAK49F,GACLiwE,EAAUn4G,EAAUuG,EAAWC,GAC/B0hC,EAAYpiC,SAASI,UAAYlG,EAAS8F,SAASG,OACnDmyG,EAAWp4G,EAAU8G,GACrB,IAAIj7D,EAAOm0D,EACPj0D,EAAQi0D,EACRh0D,EAASg0D,EACbo4G,EAAWp4G,GAAU,SAAUl/C,GAC7B,IAAI/Z,EAAI+Z,EAAKuB,YAAYtb,EAErBA,EAAI8E,EAAKwW,YAAYtb,IACvB8E,EAAOiV,GAGL/Z,EAAIgF,EAAMsW,YAAYtb,IACxBgF,EAAQ+U,GAGNA,EAAKb,MAAQjU,EAAOiU,QACtBjU,EAAS8U,MAGb,IAAIy5D,EAAQ1uE,IAASE,EAAQ,EAAIy6D,EAAW36D,EAAME,GAAS,EACvD6pC,EAAK2kC,EAAQ1uE,EAAKwW,YAAYtb,EAC9BgsL,EAAK,EACLh2C,EAAK,EACL0nF,EAAQ,EACRC,EAAQ,EAEZ,GAAe,WAAXngO,EACFwuL,EAAKjwL,GAASiJ,EAAMsW,YAAYtb,EAAIwzE,EAAQ3kC,GAE5CmnG,EAAKvvI,GAAUxB,EAAOiU,MAAQ,GAAK,GACnCm4J,EAAWp4G,GAAU,SAAUl/C,GAC7B2jN,GAAS3jN,EAAKuB,YAAYtb,EAAI6uC,GAAMm9I,EACpC2xC,GAAS5jN,EAAKb,MAAQ,GAAK88H,EAC3B,IAAI4nF,EAAY19J,EAAiBw9J,EAAOC,GACxC5jN,EAAKoB,UAAU,CACbnb,EAAG49N,EAAU59N,EACbC,EAAG29N,EAAU39N,EACb4tK,KAAM6vD,EACN3vD,KAAM4vD,IACL,UAEA,CACL,IAAIt8N,EAAShF,EAAY4mC,YAEV,OAAX5hC,GAA8B,OAAXA,GACrB20I,EAAKvvI,GAAUzB,EAAMsW,YAAYtb,EAAIwzE,EAAQ3kC,GAC7Cm9I,EAAKjwL,GAASkJ,EAAOiU,MAAQ,GAAK,GAClCm4J,EAAWp4G,GAAU,SAAUl/C,GAC7B4jN,GAAS5jN,EAAKuB,YAAYtb,EAAI6uC,GAAMmnG,EACpC0nF,EAAmB,OAAXr8N,GAAmB0Y,EAAKb,MAAQ,GAAK8yK,EAAKjwL,GAASge,EAAKb,MAAQ,GAAK8yK,EAC7EjyK,EAAKoB,UAAU,CACbnb,EAAG09N,EACHz9N,EAAG09N,IACF,OAEe,OAAXt8N,GAA8B,OAAXA,IAC5B2qL,EAAKjwL,GAASiJ,EAAMsW,YAAYtb,EAAIwzE,EAAQ3kC,GAC5CmnG,EAAKvvI,GAAUxB,EAAOiU,MAAQ,GAAK,GACnCm4J,EAAWp4G,GAAU,SAAUl/C,GAC7B2jN,GAAS3jN,EAAKuB,YAAYtb,EAAI6uC,GAAMm9I,EACpC2xC,EAAmB,OAAXt8N,GAAmB0Y,EAAKb,MAAQ,GAAK88H,EAAKvvI,GAAUsT,EAAKb,MAAQ,GAAK88H,EAC9Ej8H,EAAKoB,UAAU,CACbnb,EAAG09N,EACHz9N,EAAG09N,IACF,SAOb1gO,EAAOC,QAAUpD,G,qBCxIjB,IAAIqD,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QAEpBnmC,EAAiB,EAAQ,QA0BzB9T,EAAOyD,EAAOzD,KACduI,EAAQ9E,EAAO8E,MACfT,EAAMrE,EAAOqE,IACb4Z,EAAQje,EAAOie,MACfyiN,EAAY,mBAyDhB,SAAS9jH,EAAcj5G,GAKrBvG,KAAK8iH,KAAOv8G,EAMZvG,KAAKujO,iBAAmB,GAMxBvjO,KAAKwjO,WAAa,GAMlBxjO,KAAKyjO,cAQLzjO,KAAK0jO,qBAAuB,GAM5B1jO,KAAK2jO,cAML3jO,KAAK4jO,eAiJP,SAASC,EAAeC,EAAW7+G,EAAyBmmG,GAC1D,IAEI2Y,EACA38C,EAHA48C,EAAkB,GAClBC,EAAY,GAIZj/I,EAAc8+I,EAAU/+I,SAa5B,GAXI++I,EAAU18C,aACZA,EAAa08C,EAAU18C,aAIrBpiG,GAAe8+I,EAAUnkN,WAC3BynK,EAAaA,GAAc,GAC3B48C,GAAmBF,EAAUnkN,SAAW,IAAIrY,SAI1Cw8N,EAAUI,MAAO,CACnB98C,EAAaA,GAAc,GAC3B,IAAI88C,EAAQJ,EAAUI,MACtB/kO,EAAK+kO,GAAO,SAAUC,GAChBA,GAAeA,EAAYtkO,SACzBskO,EAAY/iM,MACd6iM,EAAUpjO,KAAKsjO,GACLJ,IAEVA,EAAeI,OAyBvB,OAlBK/8C,IACHA,EAAa08C,GAKV18C,EAAWriG,WACdqiG,EAAWriG,SAAWC,GAIxB7lF,EAAK,CAACioL,GAAY5vH,OAAOwsK,GAAiBxsK,OAAO50D,EAAOqE,IAAIg9N,GAAW,SAAUC,GAC/E,OAAOA,EAAMrkO,YACV,SAAUA,GACbV,EAAK8lH,GAAyB,SAAUm/G,GACtCA,EAAWvkO,EAAQurN,SAGhB,CACLhkC,WAAYA,EACZ48C,gBAAiBA,EACjBD,aAAcA,EACdE,UAAWA,GAUf,SAASI,EAAgBjjM,EAAO4wK,EAASC,GACvC,IAAIqyB,EAAU,CACZ9iO,MAAOwwM,EACP9lM,OAAQ+lM,EACRsyB,YAAavyB,EAAUC,GAGrBuyB,GAAe,EAenB,OAdA5hO,EAAOzD,KAAKiiC,GAAO,SAAUzzB,EAAOqS,GAClC,IAAIykN,EAAUzkN,EAAKikD,MAAMq/J,GAEzB,GAAKmB,GAAYA,EAAQ,IAAOA,EAAQ,GAAxC,CAIA,IAAIC,EAAWD,EAAQ,GACnBE,EAAWF,EAAQ,GAAGnyI,cAErBp+E,EAAQowN,EAAQK,GAAWh3N,EAAO+2N,KACrCF,GAAe,OAGZA,EAGT,SAAStwN,EAAQ0wN,EAAMC,EAAQH,GAC7B,MAAiB,QAAbA,EACKE,GAAQC,EACO,QAAbH,EACFE,GAAQC,EAGRD,IAASC,EAIpB,SAASC,EAAcC,EAAUC,GAE/B,OAAOD,EAASlrN,KAAK,OAASmrN,EAASnrN,KAAK,KAyB9C,SAASipD,EAAYmiK,EAAWxgN,GAC9BA,EAAYA,GAAa,GACzBtlB,EAAKslB,GAAW,SAAUygN,EAAWjoM,GACnC,GAAiB,MAAbioM,EAAJ,CAIA,IAAIC,EAAYF,EAAUhoM,GAE1B,GAAKhqB,EAAe+jI,SAAS/5G,GAEtB,CACLioM,EAAY9rL,EAAU2/D,iBAAiBmsH,GACvCC,EAAY/rL,EAAU2/D,iBAAiBosH,GACvC,IAAIn9C,EAAY5uI,EAAU6uI,gBAAgBk9C,EAAWD,GACrDD,EAAUhoM,GAAYh2B,EAAI+gL,GAAW,SAAUxjL,GAC7C,OAAOA,EAAK3E,QAAU2E,EAAK+qC,MAAQ1uB,EAAMrc,EAAK+qC,MAAO/qC,EAAK3E,QAAQ,GAAQ2E,EAAK+qC,OAAS/qC,EAAK3E,eAN/FolO,EAAUhoM,GAAYpc,EAAMskN,EAAWD,GAAW,OAlRxD1lH,EAAc1xG,UAAY,CACxBC,YAAayxG,EASbqF,UAAW,SAAUi/G,EAAW7+G,GAC1B6+G,GAEFlhO,EAAOzD,KAAKi6C,EAAU2/D,iBAAiB+qH,EAAUttJ,SAAS,SAAUA,GAClEA,GAAUA,EAAOj2E,MAAQqC,EAAOuqC,aAAaqpC,EAAOj2E,OAASqC,EAAO+gH,eAAentC,EAAOj2E,SAO9FujO,EAAYp8N,EAAMo8N,GAGlB,IAAIsB,EAAkBplO,KAAK2jO,cACvB0B,EAAkBxB,EAAe/2N,KAAK9M,KAAM8jO,EAAW7+G,GAA0BmgH,GACrFplO,KAAK4jO,eAAiByB,EAAgBj+C,WAElCg+C,GAEFtiK,EAAYsiK,EAAgBh+C,WAAYi+C,EAAgBj+C,YAIpDi+C,EAAgBrB,gBAAgB/4N,SAClCm6N,EAAgBpB,gBAAkBqB,EAAgBrB,iBAGhDqB,EAAgBpB,UAAUh5N,SAC5Bm6N,EAAgBnB,UAAYoB,EAAgBpB,WAG1CoB,EAAgBtB,eAClBqB,EAAgBrB,aAAesB,EAAgBtB,eAGjD/jO,KAAK2jO,cAAgB0B,GAQzBh+C,YAAa,SAAUi+C,GACrB,IAAIC,EAAevlO,KAAK2jO,cAOxB,OAJA3jO,KAAKujO,iBAAmBt8N,EAAIs+N,EAAavB,gBAAiBt8N,GAC1D1H,KAAKwjO,WAAav8N,EAAIs+N,EAAatB,UAAWv8N,GAC9C1H,KAAKyjO,cAAgB/7N,EAAM69N,EAAaxB,cACxC/jO,KAAK0jO,qBAAuB,GACrBh8N,EAAM49N,EAKXC,EAAan+C,WAAapnL,KAAK4jO,iBAOnCp8C,kBAAmB,SAAU1nL,GAC3B,IAAID,EACAmkO,EAAkBhkO,KAAKujO,iBAE3B,GAAIS,EAAgB/4N,OAAQ,CAG1B,IAAIsgG,EAAgBzrG,EAAQmC,aAAa,YAErCspG,IACF1rG,EAAS6H,EAAMs8N,EAAgBz4H,EAAcyE,oBAAoB,IAIrE,OAAOnwG,GAOT6nL,eAAgB,SAAU5nL,GACxB,IAAIkyM,EAAUhyM,KAAK8iH,KAAK92F,WAEpBimL,EAAWjyM,KAAK8iH,KAAK72F,YAErBg4M,EAAYjkO,KAAKwjO,WACjBO,EAAe/jO,KAAKyjO,cACpBhjO,EAAU,GACVkmB,EAAS,GAEb,IAAKs9M,EAAUh5N,SAAW84N,EACxB,OAAOp9M,EAIT,IAAK,IAAI1Y,EAAI,EAAGqK,EAAM2rN,EAAUh5N,OAAQgD,EAAIqK,EAAKrK,IAC3Co2N,EAAgBJ,EAAUh2N,GAAGmzB,MAAO4wK,EAASC,IAC/CxxM,EAAQI,KAAKoN,GAkBjB,OAZKxN,EAAQwK,QAAU84N,IACrBtjO,EAAU,EAAE,IAGVA,EAAQwK,SAAW65N,EAAcrkO,EAAST,KAAK0jO,wBACjD/8M,EAAS1f,EAAIxG,GAAS,SAAU0G,GAC9B,OAAOO,GAAiB,IAAXP,EAAe48N,EAAalkO,OAASokO,EAAU98N,GAAOtH,YAKvEG,KAAK0jO,qBAAuBjjO,EACrBkmB,IA4JX,IAAIpnB,EAAWigH,EACf98G,EAAOC,QAAUpD,G,qBCpcjB,IAAIuqD,EAAO,EAAQ,QAEf82K,EAAoB,EAAQ,QAE5B33J,EAAuB23J,EAAkB33J,qBAOzC43J,EAA8B,GAE9BthO,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,OACN+R,MAAO,CAEL4oD,GAAI,EACJC,GAAI,EAEJC,GAAI,EACJC,GAAI,EACJpwD,QAAS,GAEX3E,MAAO,CACLq5C,OAAQ,OACRntC,KAAM,MAER+5C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI4oD,EACAC,EACAC,EACAC,EAEAv6D,KAAKs0B,kBACP20C,EAAqB43J,EAA6BrvN,EAAOxR,KAAKwF,OAC9D40D,EAAKymK,EAA4BzmK,GACjCC,EAAKwmK,EAA4BxmK,GACjCC,EAAKumK,EAA4BvmK,GACjCC,EAAKsmK,EAA4BtmK,KAEjCH,EAAK5oD,EAAM4oD,GACXC,EAAK7oD,EAAM6oD,GACXC,EAAK9oD,EAAM8oD,GACXC,EAAK/oD,EAAM+oD,IAGb,IAAIpwD,EAAUqH,EAAMrH,QAEJ,IAAZA,IAIJs6B,EAAItW,OAAOisC,EAAIC,GAEXlwD,EAAU,IACZmwD,EAAKF,GAAM,EAAIjwD,GAAWmwD,EAAKnwD,EAC/BowD,EAAKF,GAAM,EAAIlwD,GAAWowD,EAAKpwD,GAGjCs6B,EAAIknB,OAAO2O,EAAIC,KAQjBorH,QAAS,SAAUluK,GACjB,IAAIjG,EAAQxR,KAAKwR,MACjB,MAAO,CAACA,EAAM4oD,IAAM,EAAI3iD,GAAKjG,EAAM8oD,GAAK7iD,EAAGjG,EAAM6oD,IAAM,EAAI5iD,GAAKjG,EAAM+oD,GAAK9iD,MAI/E/U,EAAOC,QAAUpD,G,qBCtDjB,IAAID,EAAsB,EAAQ,QAE9BD,EAAc,EAAQ,QAoBtBE,EAAWF,EAAYG,OAAO,CAChCC,KAAM,iBACNC,aAAc,CAAC,OAAQ,QAAS,MAAO,aAAc,YACrDE,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBU,KAAKC,YAAaD,KAAM,CACjD2hE,oBAAoB,KAGxBnrB,cAAe,QACfiQ,eAAgB,WACd,IAAI9kD,EAAc3B,KAAKH,OAAO8B,YAE9B,OAAmB,MAAfA,EAEK3B,KAAKH,OAAOg2B,MAAQ,IAAM71B,KAAKkC,IAAI,eAGrCP,GAET+kD,wBAAyB,WACvB,IAAIC,EAAuB3mD,KAAKH,OAAO8mD,qBAEvC,OAA4B,MAAxBA,EAEK3mD,KAAKH,OAAOg2B,MAAQ,IAAM71B,KAAKkC,IAAI,wBAGrCykD,GAET5lD,cAAe,CACbT,iBAAkB,cAClBU,OAAQ,EACRC,EAAG,EACHqJ,iBAAiB,EACjB+xC,gBAAgB,EAShBtC,WAAY,GAGZlkB,OAAO,EAEP+wB,eAAgB,IAUhB17C,UAAW,CACTzJ,QAAS,IAKXsa,MAAM,KAKVrZ,EAAOC,QAAUpD,G,mBC7GjB,SAASimO,IACPxlO,KAAK4G,GAAG,YAAa5G,KAAKylO,WAAYzlO,MACtCA,KAAK4G,GAAG,YAAa5G,KAAK0lO,MAAO1lO,MACjCA,KAAK4G,GAAG,UAAW5G,KAAK2lO,SAAU3lO,MAwEpC,SAASkpE,EAAM92D,EAAQua,GACrB,MAAO,CACLva,OAAQA,EACRquN,UAAW9zM,GAAKA,EAAE8zM,WAjEtB+E,EAAU13N,UAAY,CACpBC,YAAay3N,EACbC,WAAY,SAAU94M,GACpB,IAAIi5M,EAAiBj5M,EAAEva,OAEvB,MAAOwzN,IAAmBA,EAAe/qL,UACvC+qL,EAAiBA,EAAe/jN,OAG9B+jN,IACF5lO,KAAK6lO,gBAAkBD,EACvBA,EAAeh5K,UAAW,EAC1B5sD,KAAKkoI,GAAKv7G,EAAE2uD,QACZt7E,KAAKmoI,GAAKx7G,EAAE4uD,QACZv7E,KAAK8lO,kBAAkB58J,EAAM08J,EAAgBj5M,GAAI,YAAaA,EAAErkB,SAGpEo9N,MAAO,SAAU/4M,GACf,IAAIi5M,EAAiB5lO,KAAK6lO,gBAE1B,GAAID,EAAgB,CAClB,IAAIngO,EAAIknB,EAAE2uD,QACN51E,EAAIinB,EAAE4uD,QACNrpE,EAAKzM,EAAIzF,KAAKkoI,GACd/1H,EAAKzM,EAAI1F,KAAKmoI,GAClBnoI,KAAKkoI,GAAKziI,EACVzF,KAAKmoI,GAAKziI,EACVkgO,EAAe1rL,MAAMhoC,EAAIC,EAAIwa,GAC7B3sB,KAAK8lO,kBAAkB58J,EAAM08J,EAAgBj5M,GAAI,OAAQA,EAAErkB,OAC3D,IAAIy9N,EAAa/lO,KAAK46H,UAAUn1H,EAAGC,EAAGkgO,GAAgBxzN,OAClD4zN,EAAiBhmO,KAAKimO,YAC1BjmO,KAAKimO,YAAcF,EAEfH,IAAmBG,IACjBC,GAAkBD,IAAeC,GACnChmO,KAAK8lO,kBAAkB58J,EAAM88J,EAAgBr5M,GAAI,YAAaA,EAAErkB,OAG9Dy9N,GAAcA,IAAeC,GAC/BhmO,KAAK8lO,kBAAkB58J,EAAM68J,EAAYp5M,GAAI,YAAaA,EAAErkB,UAKpEq9N,SAAU,SAAUh5M,GAClB,IAAIi5M,EAAiB5lO,KAAK6lO,gBAEtBD,IACFA,EAAeh5K,UAAW,GAG5B5sD,KAAK8lO,kBAAkB58J,EAAM08J,EAAgBj5M,GAAI,UAAWA,EAAErkB,OAE1DtI,KAAKimO,aACPjmO,KAAK8lO,kBAAkB58J,EAAMlpE,KAAKimO,YAAat5M,GAAI,OAAQA,EAAErkB,OAG/DtI,KAAK6lO,gBAAkB,KACvB7lO,KAAKimO,YAAc,OAWvB,IAAI1mO,EAAWimO,EACf9iO,EAAOC,QAAUpD,G,qBCjEjB,IAAIskB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvB5xB,EAAS,EAAQ,QAqBjB6iF,EAAS55E,KAAK+E,GAAK,IAEvB,SAASrR,EAASq1B,EAAY90B,EAASyG,EAAK23B,GAC1Cp+B,EAAQumC,iBAAiBzR,GAAY,SAAU9yB,GAC7C,IAAI42B,EAAS52B,EAAYI,IAAI,UACzB8jD,EAASlkD,EAAYI,IAAI,UAExBU,EAAOogB,QAAQgjC,KAClBA,EAAS,CAAC,EAAGA,IAGVpjD,EAAOogB,QAAQ0V,KAClBA,EAAS,CAACA,EAAQA,IAGpB,IAAIl3B,EAAQ+E,EAAIylB,WACZ9f,EAAS3F,EAAI0lB,YACb3f,EAAOT,KAAK6E,IAAIlP,EAAO0K,GACvBkyC,EAAK5pB,EAAakE,EAAO,GAAIl3B,GAC7B68C,EAAK7pB,EAAakE,EAAO,GAAIxsB,GAC7B21C,EAAKrtB,EAAawxB,EAAO,GAAI15C,EAAO,GACpCuH,EAAI2gB,EAAawxB,EAAO,GAAI15C,EAAO,GACnCw1C,GAAchgD,EAAYI,IAAI,cAAgBujF,EAC9CC,EAAW5jF,EAAYI,IAAI,YAAcujF,EACzCmhB,EAAc9kG,EAAYtB,UAAUkiB,KAAKxD,KACzCwpF,EAAW5mG,EAAYglG,cACvBo/H,EAAYx9H,EAAS/pF,MACrB9T,EAAO/I,EAAYI,IAAI,QAEf,MAAR2I,GACFwoM,EAAa3qG,EAAU79F,GAGzB,IAAI86E,EAAiB,EACrB/iF,EAAOzD,KAAKupG,EAAS7pF,UAAU,SAAUU,IACtCxG,MAAMwG,EAAMkB,aAAeklE,OAE9B,IAAI17E,EAAMy+F,EAASjoF,WAEfmlE,EAAa/5E,KAAK+E,IAAM3G,GAAO07E,GAAkB,EACjDwgJ,EAAmBz9H,EAAS/pF,MAAQ,EACpCgE,EAAS+lF,EAASx8F,QAAUi6N,GAAoB,EAAI,GACpDC,GAAavyN,EAAIguC,IAAOl/B,GAAU,GAClC6sC,EAAY1tD,EAAYI,IAAI,aAC5B4jF,EAAmBhkF,EAAYI,IAAI,oBAInCgkF,EAAM12B,EAAY,GAAK,EAMvB4hK,EAAa,SAAU5xM,EAAMsiC,GAC/B,GAAKtiC,EAAL,CAIA,IAAIuiC,EAAWD,EAEf,GAAItiC,IAASonF,EAAa,CAExB,IAAIj5F,EAAQ6R,EAAKiB,WACb+xC,EAAgB,IAARvoD,GAAa67E,EAAmBF,EAAaj4E,EAAQi4E,EAE7DpzB,EAAQkzB,IACVlzB,EAAQkzB,GAMV3jC,EAAWD,EAAaokC,EAAM1zB,EAC9B,IAAI7zC,EAAQa,EAAKb,MAAQunN,GAAaC,GAAoB,EAAI,GAC1DE,EAASxkL,EAAKukL,EAAYznN,EAC1B2nN,EAAOzkL,EAAKukL,GAAaznN,EAAQ,GACjCwC,EAAY3B,EAAKyB,WAEM,MAAvBE,EAAUjf,IAAI,QAChBmkO,EAAS7xM,EAAarT,EAAUjf,IAAI,MAAOoK,EAAO,IAG1B,MAAtB6U,EAAUjf,IAAI,OAChBokO,EAAO9xM,EAAarT,EAAUjf,IAAI,KAAMoK,EAAO,IAGjDkT,EAAKoB,UAAU,CACb4xC,MAAOA,EACP1Q,WAAYA,EACZC,SAAUA,EACVyN,UAAWA,EACXpR,GAAIA,EACJC,GAAIA,EACJwD,GAAIwkL,EACJxyN,EAAGyyN,IAKP,GAAI9mN,EAAKX,UAAYW,EAAKX,SAAS5T,OAAQ,CAEzC,IAAIs7N,EAAe,EACnB3jO,EAAOzD,KAAKqgB,EAAKX,UAAU,SAAUW,GACnC+mN,GAAgBnV,EAAW5xM,EAAMsiC,EAAaykL,MAIlD,OAAOxkL,EAAWD,IAIpB,GAAIqkL,EAAkB,CACpB,IAAIE,EAASxkL,EACTykL,EAAOzkL,EAAKukL,EACZ5zK,EAAkB,EAAV3mD,KAAK+E,GACjBg2F,EAAYhmF,UAAU,CACpB4xC,MAAOA,EACP1Q,WAAYA,EACZC,SAAUD,EAAa0Q,EACvBhD,UAAWA,EACXpR,GAAIA,EACJC,GAAIA,EACJwD,GAAIwkL,EACJxyN,EAAGyyN,IAIPlV,EAAW1oH,EAAU5mD,MAWzB,SAASuxJ,EAAa7zL,EAAMgnN,GAC1B,IAAI3nN,EAAWW,EAAKX,UAAY,GAChCW,EAAKX,SAAWhU,EAAKgU,EAAU2nN,GAE3B3nN,EAAS5T,QACXrI,EAAOzD,KAAKqgB,EAAKX,UAAU,SAAUU,GACnC8zL,EAAa9zL,EAAOinN,MAa1B,SAAS37N,EAAKgU,EAAU4nN,GACtB,GAAyB,oBAAdA,EACT,OAAO5nN,EAAShU,KAAK47N,GAErB,IAAID,EAAsB,QAAdC,EACZ,OAAO5nN,EAAShU,MAAK,SAAUwM,EAAGC,GAChC,IAAI2iB,GAAQ5iB,EAAEoJ,WAAanJ,EAAEmJ,aAAe+lN,EAAQ,GAAK,GACzD,OAAgB,IAATvsM,GAAc5iB,EAAEzW,UAAY0W,EAAE1W,YAAc4lO,GAAS,EAAI,GAAKvsM,KAK3Ev3B,EAAOC,QAAUpD,G,qBCnMjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB67J,EAAyB,EAAQ,QAEjCioE,EAAc,EAAQ,QAE1B,EAAQ,QAER,EAAQ,QAER,EAAQ,QAuBRt+N,EAAQyJ,sBAAqB,SAAUhS,GAErC,GAAIA,EAAQ,GACRA,EAAO0kF,aAA6C,IAA9B1kF,EAAO0kF,YAAYt5E,UAAkBpL,EAAO0kF,YAAc,IAClF,IAAIrI,EAAOr8E,EAAO0kF,YAAYrI,KAI1BA,IAASt5E,EAAOogB,QAAQk5D,KAC1Br8E,EAAO0kF,YAAYrI,KAAO,CAACA,QAMjC9zE,EAAQ+2E,kBAAkB/2E,EAAQ8sC,SAAS4rE,UAAUG,WAAW,SAAUnhH,EAASyG,GAGjFzG,EAAQmC,aAAa,eAAe64H,iBAAmB2jC,EAAuBkoE,QAAQ7mO,EAASyG,MAGjG6B,EAAQC,eAAe,CACrB5I,KAAM,oBACN6I,MAAO,oBACPC,OAAQ,sBACPm+N,I,qBC5DH,IAAI9jO,EAAS,EAAQ,QAEjBs/C,EAAU,EAAQ,QAElBC,EAAgBD,EAAQC,cA2B5B,SAASp7C,EAAavD,EAAgB+C,EAAKtC,GACzC,IAAI4C,EAAcrD,EAAe3D,OAC7BkE,EAAY8C,EAAYG,MAE5B,GAAiB,MAAbjD,GAAmC,SAAdA,EACvB,OAAOA,EAcT,IAVA,IAAI4xE,EAAS,CACXn0E,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAEV26M,EAAmC,eAAvB//N,EAAYC,OAA0B,EAAI,EACtD+/N,EAAY,CAAC,CAAC,OAAQ,QAAS,SAAU,CAAC,MAAO,SAAU,WAC3DC,EAAQD,EAAUD,GAClBG,EAAY,CAAC,EAAG,KAAM,IACtBC,EAAc,GAET/4N,EAAI,EAAGA,EAAI,EAAGA,IACrB+4N,EAAYH,EAAU,EAAID,GAAW34N,IAAM84N,EAAU94N,GACrD+4N,EAAYF,EAAM74N,IAAY,IAANA,EAAUhK,EAAS,GAAK4C,EAAYigO,EAAM74N,IAGpE,IAAIg5N,EAAS,CAAC,CAAC,IAAK,QAAS,GAAI,CAAC,IAAK,SAAU,IAAIL,GACjD56N,EAAOm2C,EAAc6kL,EAAarxJ,EAAQ9uE,EAAYmjB,SAC1D,OAAO88M,GAAO96N,EAAKi2E,OAAOglJ,EAAO,KAAO,GAAKj7N,EAAKi7N,EAAO,IAAwB,GAAlBj7N,EAAKi7N,EAAO,IAAgC,GAApBtxJ,EAAOsxJ,EAAO,IAAY,EAAI,GAQvH,SAASvgO,EAAkBD,EAAOjD,GAShC,OARAZ,EAAOzD,KAAKsH,GAAS,IAAI,SAAUyjH,GACN,MAAvBA,EAAUtpH,YACZspH,EAAU7C,gBAAkB6C,EAAUtpH,UACtCspH,EAAUtpH,UAAY,MAGxBspH,EAAU79C,aAAe,aAAe7oE,EAAiBA,EAAeu+B,eAAiB,OAEpFt7B,EAGT9D,EAAQoE,aAAeA,EACvBpE,EAAQ+D,kBAAoBA,G,qBClG5B,IAAI2+B,EAAc,EAAQ,QAEtBziC,EAAS,EAAQ,QAEjBi2D,EAAY,EAAQ,QAEpBquK,EAAc,EAAQ,QAEtBlhF,EAAU,EAAQ,QAElByB,EAAmBzB,EAAQl4I,UAAU25I,iBACrC37I,EAAMD,KAAKC,IACXq7N,EAAmB,IAAItuK,GAAU,GAQrC,SAAS/O,EAAKxmB,GACZ+B,EAAYv4B,KAAK9M,KAAMsjC,GAMvBtjC,KAAKkhB,KAAO,KAGd4oC,EAAKh8C,UAAY,CACfC,YAAa+7C,EACbrqD,KAAM,OACNqrG,aAAa,EACb8iH,uBAAwB,EAIxBluL,uBAAwB,EAMxBpL,kBAAkB,EAClBkR,MAAO,SAAUf,EAAKgB,GACpB,IAcMz5B,EAdFxG,EAAQxF,KAAKwF,MACb0b,EAAOlhB,KAAKkhB,MAAQimN,EACpBj6I,EAAY1nF,EAAM0nF,YAClBE,EAAU5nF,EAAM4nF,UAChB17E,EAAOlM,EAAMkM,KACbmtC,EAASr5C,EAAMq5C,OACfuoL,EAAkBh6I,KAAa17E,EAAK+7E,WACpC45I,EAAoBn6I,KAAeruC,EAAO4uC,WAC1C65I,EAAiBl6I,KAAa17E,EAAKi0B,MACnC4hM,EAAmBr6I,KAAeruC,EAAOlZ,OAC7CngC,EAAMX,KAAK4/B,EAAKzkC,KAAMylC,GACtBzlC,KAAKwkC,aAAaC,GAEdzkC,KAAK2sD,WAGHy6K,IACFp7N,EAAOA,GAAQhM,KAAKiM,kBACpBjM,KAAKwnO,cAAgBhiO,EAAMgoF,YAAY/oD,EAAK/yB,EAAM1F,IAGhDq7N,IACFr7N,EAAOA,GAAQhM,KAAKiM,kBACpBjM,KAAKynO,gBAAkBjiO,EAAMgoF,YAAY/oD,EAAKoa,EAAQ7yC,KAKtDo7N,EAEF3iM,EAAIqoD,UAAY9sF,KAAKwnO,cACZF,IACT7iM,EAAIqoD,UAAY26D,EAAiB36I,KAAK4E,EAAM+yB,IAG1C4iM,EACF5iM,EAAIsoD,YAAc/sF,KAAKynO,gBACdF,IACT9iM,EAAIsoD,YAAc06D,EAAiB36I,KAAK+xC,EAAQpa,IAGlD,IAAI22B,EAAW51D,EAAM41D,SACjBgxB,EAAiB5mF,EAAM4mF,eACvBs7I,IAAgBjjM,EAAI02B,YAEpB1sD,EAAQzO,KAAKikC,iBA0BjB,GAzBA/iB,EAAK04C,SAASnrD,EAAM,GAAIA,EAAM,GAAIzO,KAAK0/B,wBAMnC1/B,KAAK8qG,aAAe1vC,IAAassK,GAAex6I,GAClDhsE,EAAK44C,UAAUr1B,GAEX22B,IAAassK,IACfxmN,EAAKi6C,YAAYC,GACjBl6C,EAAKo6C,kBAAkB8wB,IAGzBpsF,KAAKyrD,UAAUvqC,EAAMlhB,KAAKwR,OAAO,GAE7BxR,KAAKkhB,OACPlhB,KAAK8qG,aAAc,KAIrBrmE,EAAIq1B,YACJ95D,KAAKkhB,KAAK67C,YAAYt4B,IAGpB2oD,EACF,GAAyB,MAArB5nF,EAAM0mF,YAAqB,CAC7B,IAAIozH,EAAsB76K,EAAIuoD,YAC9BvoD,EAAIuoD,YAAcxnF,EAAM0mF,YAAc1mF,EAAM/D,QAC5Cyf,EAAKxP,KAAK+yB,GACVA,EAAIuoD,YAAcsyH,OAElBp+L,EAAKxP,KAAK+yB,GASd,GALI22B,GAAYssK,IACdjjM,EAAI02B,YAAYC,GAChB32B,EAAI2nD,eAAiBA,GAGnBc,EACF,GAA2B,MAAvB1nF,EAAM2mF,cAAuB,CAC3BmzH,EAAsB76K,EAAIuoD,YAC9BvoD,EAAIuoD,YAAcxnF,EAAM2mF,cAAgB3mF,EAAM/D,QAC9Cyf,EAAK29B,OAAOpa,GACZA,EAAIuoD,YAAcsyH,OAElBp+L,EAAK29B,OAAOpa,GAIZ22B,GAAYssK,GAGdjjM,EAAI02B,YAAY,IAIA,MAAd31D,EAAMG,OAER3F,KAAK2kC,iBAAiBF,GACtBzkC,KAAKomC,aAAa3B,EAAKzkC,KAAKiM,qBAKhCw/C,UAAW,SAAUhnB,EAAKkjM,EAAUvtB,KACpCvvG,gBAAiB,WACf7qG,KAAKkhB,KAAO,IAAI23C,GAElB5sD,gBAAiB,WACf,IAAID,EAAOhM,KAAKsN,MACZ9H,EAAQxF,KAAKwF,MACboiO,GAAmB57N,EAEvB,GAAI47N,EAAiB,CACnB,IAAI1mN,EAAOlhB,KAAKkhB,KAEXA,IAEHA,EAAOlhB,KAAKkhB,KAAO,IAAI23C,GAGrB74D,KAAK8qG,cACP5pF,EAAK44C,YACL95D,KAAKyrD,UAAUvqC,EAAMlhB,KAAKwR,OAAO,IAGnCxF,EAAOkV,EAAKjV,kBAKd,GAFAjM,KAAKsN,MAAQtB,EAETxG,EAAM0nF,YAAa,CAIrB,IAAI26I,EAAiB7nO,KAAK8nO,kBAAoB9nO,KAAK8nO,gBAAkB97N,EAAKtE,SAE1E,GAAI1H,KAAK2sD,SAAWi7K,EAAiB,CACnCC,EAAe9jM,KAAK/3B,GAEpB,IAAIwL,EAAIhS,EAAMkzE,UAEVqvJ,EAAYviO,EAAMs7B,cAAgB9gC,KAAKmtF,eAAiB,EAEvD3nF,EAAM4nF,YACT51E,EAAI3L,KAAK4E,IAAI+G,EAAGxX,KAAK4tN,wBAA0B,IAK7Cma,EAAY,QACdF,EAAermO,OAASgW,EAAIuwN,EAC5BF,EAAe37N,QAAUsL,EAAIuwN,EAC7BF,EAAepiO,GAAK+R,EAAIuwN,EAAY,EACpCF,EAAeniO,GAAK8R,EAAIuwN,EAAY,GAKxC,OAAOF,EAGT,OAAO77N,GAETkC,QAAS,SAAUzI,EAAGC,GACpB,IAAIgxG,EAAW12G,KAAKglC,sBAAsBv/B,EAAGC,GACzCsG,EAAOhM,KAAKiM,kBACZzG,EAAQxF,KAAKwF,MAIjB,GAHAC,EAAIixG,EAAS,GACbhxG,EAAIgxG,EAAS,GAET1qG,EAAKkC,QAAQzI,EAAGC,GAAI,CACtB,IAAI0iE,EAAWpoE,KAAKkhB,KAAK3gB,KAEzB,GAAIiF,EAAM0nF,YAAa,CACrB,IAAIxU,EAAYlzE,EAAMkzE,UAClBqvJ,EAAYviO,EAAMs7B,cAAgB9gC,KAAKmtF,eAAiB,EAE5D,GAAI46I,EAAY,QAETviO,EAAM4nF,YACT1U,EAAY7sE,KAAK4E,IAAIioE,EAAW14E,KAAK4tN,yBAGnCsZ,EAAY7iE,cAAcj8F,EAAUsQ,EAAYqvJ,EAAWtiO,EAAGC,IAChE,OAAO,EAKb,GAAIF,EAAM4nF,UACR,OAAO85I,EAAYh5N,QAAQk6D,EAAU3iE,EAAGC,GAI5C,OAAO,GAMT4M,MAAO,SAAU01N,GACE,MAAbA,IACFA,GAAY,GAIVA,IACFhoO,KAAK8qG,YAAck9H,EACnBhoO,KAAKsN,MAAQ,MAGftN,KAAK2sD,QAAU3sD,KAAKitD,aAAc,EAClCjtD,KAAKktD,MAAQltD,KAAKktD,KAAKC,UAEnBntD,KAAKioO,cACPjoO,KAAKioO,aAAa31N,SAQtBw+L,aAAc,SAAU70L,GACtB,OAAOjc,KAAK4zC,QAAQ,QAAS33B,IAG/BoxC,OAAQ,SAAUtlD,EAAK4F,GAET,UAAR5F,GACF/H,KAAKmuD,SAASxgD,GACd3N,KAAK8qG,aAAc,EACnB9qG,KAAKsN,MAAQ,MAEb+3B,EAAYv3B,UAAUu/C,OAAOvgD,KAAK9M,KAAM+H,EAAK4F,IAQjDwgD,SAAU,SAAUpmD,EAAK4F,GACvB,IAAI6D,EAAQxR,KAAKwR,MAEjB,GAAIA,EAAO,CACT,GAAI5O,EAAOqjB,SAASle,GAClB,IAAK,IAAI4E,KAAQ5E,EACXA,EAAIgV,eAAepQ,KACrB6E,EAAM7E,GAAQ5E,EAAI4E,SAItB6E,EAAMzJ,GAAO4F,EAGf3N,KAAKsS,OAAM,GAGb,OAAOtS,MAETmtF,aAAc,WACZ,IAAIn4E,EAAIhV,KAAKsO,UAKb,OAAO0G,GAAKlJ,EAAIkJ,EAAE,GAAK,GAAK,OAASlJ,EAAIkJ,EAAE,GAAK,GAAK,MAAQnJ,KAAK4sB,KAAK3sB,EAAIkJ,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,KAAO,IAc7G80C,EAAKtqD,OAAS,SAAUiS,GACtB,IAAIy2N,EAAM,SAAU5kM,GAClBwmB,EAAKh9C,KAAK9M,KAAMsjC,GAEZ7xB,EAASjM,OAEXxF,KAAKwF,MAAMilE,WAAWh5D,EAASjM,OAAO,GAIxC,IAAI2iO,EAAe12N,EAASD,MAE5B,GAAI22N,EAAc,CAChBnoO,KAAKwR,MAAQxR,KAAKwR,OAAS,GAC3B,IAAI42N,EAAYpoO,KAAKwR,MAErB,IAAK,IAAI7E,KAAQw7N,GACVC,EAAUrrN,eAAepQ,IAASw7N,EAAaprN,eAAepQ,KACjEy7N,EAAUz7N,GAAQw7N,EAAax7N,IAKrC8E,EAASzI,MAAQyI,EAASzI,KAAK8D,KAAK9M,KAAMsjC,IAK5C,IAAK,IAAI32B,KAFT/J,EAAOwxB,SAAS8zM,EAAKp+K,GAEJr4C,EAEF,UAAT9E,GAA6B,UAATA,IACtBu7N,EAAIp6N,UAAUnB,GAAQ8E,EAAS9E,IAInC,OAAOu7N,GAGTtlO,EAAOwxB,SAAS01B,EAAMzkB,GACtB,IAAI9lC,EAAWuqD,EACfpnD,EAAOC,QAAUpD,G,qBCrWjB,IAAIqD,EAAS,EAAQ,QAEjB2J,EAAe,EAAQ,QAEvB87N,EAAY,EAAQ,QAoBxB,SAAShoF,EAAY1zI,GACnB07N,EAAUv7N,KAAK9M,KAAM2M,GAGvB0zI,EAAYvyI,UAAY,CACtBC,YAAasyI,EACb5gJ,KAAM,cAMN0C,WAAY,CAAC,IAAK,KAOlB41B,YAAa,WACX,OAAO/3B,KAAKsoO,eAAe,WAAW,IAAMtoO,KAAKsoO,eAAe,QAAQ,IAAMtoO,KAAK43F,QAAQ,MAQ7FloC,aAAc,SAAUp4B,GACtB,IAAIixM,EAAQvoO,KAAK43F,QAAQ,KACrB4wI,EAAQxoO,KAAK43F,QAAQ,KACzB,OAAO2wI,EAAMr6N,QAAQq6N,EAAMt4F,aAAa34G,EAAM,MAAQkxM,EAAMt6N,QAAQs6N,EAAMv4F,aAAa34G,EAAM,MAQ/F2hE,YAAa,SAAU14F,GACrB,OAAOP,KAAK43F,QAAQ,KAAKqB,YAAY14F,EAAK,KAAOP,KAAK43F,QAAQ,KAAKqB,YAAY14F,EAAK,KAQtFwL,YAAa,SAAUxL,EAAMgtH,EAAUr+G,GACrC,IAAI4C,EAAQ9R,KAAK43F,QAAQ,KACrB7lF,EAAQ/R,KAAK43F,QAAQ,KAIzB,OAHA1oF,EAAMA,GAAO,GACbA,EAAI,GAAK4C,EAAMvB,cAAcuB,EAAMtB,YAAYjQ,EAAK,KACpD2O,EAAI,GAAK6C,EAAMxB,cAAcwB,EAAMvB,YAAYjQ,EAAK,KAC7C2O,GAQTsiF,UAAW,SAAUjxF,EAAM2O,GACzB,IAAIu5N,EAASzoO,KAAK43F,QAAQ,KAAKnpF,MAC3Bi6N,EAAS1oO,KAAK43F,QAAQ,KAAKnpF,MAC3Bk6N,EAAcF,EAAOljN,YACrBqjN,EAAcF,EAAOnjN,YACrB9f,EAAIgjO,EAAOjtN,MAAMjb,EAAK,IACtBmF,EAAIgjO,EAAOltN,MAAMjb,EAAK,IAI1B,OAHA2O,EAAMA,GAAO,GACbA,EAAI,GAAKrD,KAAK6E,IAAI7E,KAAK4E,IAAI5E,KAAK6E,IAAIi4N,EAAY,GAAIA,EAAY,IAAKljO,GAAIoG,KAAK4E,IAAIk4N,EAAY,GAAIA,EAAY,KAC9Gz5N,EAAI,GAAKrD,KAAK6E,IAAI7E,KAAK4E,IAAI5E,KAAK6E,IAAIk4N,EAAY,GAAIA,EAAY,IAAKljO,GAAImG,KAAK4E,IAAIm4N,EAAY,GAAIA,EAAY,KACvG15N,GAQTmuE,YAAa,SAAU/lD,EAAOpoB,GAC5B,IAAI4C,EAAQ9R,KAAK43F,QAAQ,KACrB7lF,EAAQ/R,KAAK43F,QAAQ,KAIzB,OAHA1oF,EAAMA,GAAO,GACbA,EAAI,GAAK4C,EAAM4rE,YAAY5rE,EAAMm+H,aAAa34G,EAAM,KACpDpoB,EAAI,GAAK6C,EAAM2rE,YAAY3rE,EAAMk+H,aAAa34G,EAAM,KAC7CpoB,GAOT2iD,aAAc,SAAUniD,GACtB,OAAO1P,KAAK43F,QAAqB,MAAbloF,EAAKK,IAAc,IAAM,MAQ/Ck7C,QAAS,WACP,IAAI49K,EAAU7oO,KAAK43F,QAAQ,KAAKu0C,kBAC5B28F,EAAU9oO,KAAK43F,QAAQ,KAAKu0C,kBAC5B1mI,EAAIoG,KAAK6E,IAAIm4N,EAAQ,GAAIA,EAAQ,IACjCnjO,EAAImG,KAAK6E,IAAIo4N,EAAQ,GAAIA,EAAQ,IACjCtnO,EAAQqK,KAAK4E,IAAIo4N,EAAQ,GAAIA,EAAQ,IAAMpjO,EAC3CyG,EAASL,KAAK4E,IAAIq4N,EAAQ,GAAIA,EAAQ,IAAMpjO,EAC5CsG,EAAO,IAAIO,EAAa9G,EAAGC,EAAGlE,EAAO0K,GACzC,OAAOF,IAGXpJ,EAAOwxB,SAASisH,EAAagoF,GAC7B,IAAI9oO,EAAW8gJ,EACf39I,EAAOC,QAAUpD,G,qBC3IjB,IAAIqD,EAAS,EAAQ,QAEjBq8D,EAAa,EAAQ,QAErB/7D,EAAS,EAAQ,QAEjBwwE,EAAa,EAAQ,QAoBrBv0E,EAAOyD,EAAOzD,KACdy0E,EAAM3U,EAAW2U,IAWjByjC,EAAY,SAAU70G,EAASwqC,EAAW+nC,EAAej1E,GAK3DE,KAAK+oO,SAAWvmO,EAKhBxC,KAAKgpO,WAAah8L,EAMlBhtC,KAAKipO,aAMLjpO,KAAKkpO,eAMLlpO,KAAKmpO,YAOLnpO,KAAKopO,YAMLppO,KAAKF,QAAUA,EAMfE,KAAKqpO,eAAiBt0J,GAqTxB,SAASu0J,EAAoBrvJ,EAAW73E,EAASo1E,GAC/C,IAAIlyD,EAAa,CAACvS,KAAWA,KA2B7B,OA1BA5T,EAAKq4E,GAAc,SAAU11E,GAC3B,IAAIi4F,EAAaj4F,EAAYtB,UAEzBu5F,GACF56F,EAAK46F,EAAW/vF,aAAa5H,GAAS,IAAO,SAAU2N,GACrD,IAAIw5N,EAAexvI,EAAWzwC,qBAAqBv5C,GACnDw5N,EAAa,GAAKjkN,EAAW,KAAOA,EAAW,GAAKikN,EAAa,IACjEA,EAAa,GAAKjkN,EAAW,KAAOA,EAAW,GAAKikN,EAAa,UAKnEjkN,EAAW,GAAKA,EAAW,KAC7BA,EAAa,CAAC+R,IAAKA,MAYrBmyM,EAAgBvvJ,EAAW30D,GACpBA,EAGT,SAASkkN,EAAgBvvJ,EAAW30D,GAClC,IAAI/V,EAAY0qE,EAAUC,eACtBxpE,EAAMnB,EAAUmnD,QAAO,GAGvB+yK,EAA2C,aAA1Bl6N,EAAUrN,IAAI,QAC/B0iK,EAAc6kE,GAAkBl6N,EAAUw1J,gBAAgB95J,OAEnD,MAAPyF,GAAuB,YAARA,GAAoC,oBAARA,EAC7C4U,EAAW,GAAK5U,EACP+4N,IACTnkN,EAAW,GAAKs/I,EAAc,EAAI,EAAIvtI,KAGxC,IAAI5mB,EAAMlB,EAAUsnD,QAAO,GAiB3B,OAfW,MAAPpmD,GAAuB,YAARA,GAAoC,oBAARA,EAC7C6U,EAAW,GAAK7U,EACPg5N,IACTnkN,EAAW,GAAKs/I,EAAc,EAAIA,EAAc,EAAIvtI,KAGjD9nB,EAAUrN,IAAI,SAAS,KAC1BojB,EAAW,GAAK,IAAMA,EAAW,GAAK,GACtCA,EAAW,GAAK,IAAMA,EAAW,GAAK,IAOjCA,EAGT,SAASokN,EAAazvJ,EAAW0vJ,GAC/B,IAAIp6N,EAAY0qE,EAAUC,eACtB0vJ,EAAgB3vJ,EAAUivJ,eAC1B5uJ,EAAcL,EAAUgvJ,aAE5B,GAAKW,EAAL,CAKA,IAAIhiN,EAAYq3C,EAAW8b,kBAAkBT,EAAa,CAAC,EAAG,MAC9D1yD,EAAY/b,KAAK6E,IAAIkX,EAAW,IAEhC,IAAIiiN,EAAYF,GAAkC,IAArBC,EAAc,IAAiC,MAArBA,EAAc,GACrEr6N,EAAU0nD,SAAS4yK,EAAY,MAAQvvJ,EAAY,GAAGlwE,QAAQwd,GAAYiiN,EAAY,MAAQvvJ,EAAY,GAAGlwE,QAAQwd,KAGvH,SAASkiN,EAAc7vJ,GACrB,IAAIb,EAAaa,EAAUmvJ,YAAc,GACrCr0J,EAAgBkF,EAAUovJ,eAC1B/jN,EAAa20D,EAAUkvJ,YAC3BhqO,EAAK,CAAC,MAAO,QAAQ,SAAU65C,GAC7B,IAAI+wL,EAAch1J,EAAc7yE,IAAI82C,EAAS,QACzCgxL,EAAYj1J,EAAc7yE,IAAI82C,EAAS,aAC9B,MAAbgxL,IAAsBA,EAAY/vJ,EAAUC,eAAexqE,KAAKjB,MAAM+M,MAAMwuN,IAE3D,MAAbA,EACFD,EAAc9qK,EAAW0U,UAAUruD,EAAW,GAAK0kN,EAAW1kN,EAAY,CAAC,EAAG,MAAM,GAC5D,MAAfykN,IACTC,EAAY/qK,EAAW0U,UAAUo2J,EAAa,CAAC,EAAG,KAAMzkN,GAAY,GAAQA,EAAW,IAGzF8zD,EAAWpgC,EAAS,QAAU+wL,EAC9B3wJ,EAAWpgC,EAAS,aAAegxL,KAhZvC3yH,EAAUvpG,UAAY,CACpBC,YAAaspG,EASb2C,SAAU,SAAUjlC,GAClB,OAAO/0E,KAAKqpO,iBAAmBt0J,GAMjCwF,mBAAoB,WAClB,OAAOv6E,KAAKipO,aAAa3hO,SAM3B+nF,qBAAsB,WACpB,OAAOrvF,KAAKkpO,eAAe5hO,SAQ7BowE,sBAAuB,WACrB,IAAIF,EAAe,GACf13E,EAAUE,KAAKF,QAenB,OAdAA,EAAQ04C,YAAW,SAAU12C,GAC3B,GAAIoB,EAAO02I,iBAAiB93I,EAAYI,IAAI,qBAAsB,CAChE,IAAIM,EAAUxC,KAAK+oO,SACfx5N,EAAYzP,EAAQgxD,gBAAgB,CACtC7zB,SAAUz6B,EAAU,OACpB2E,MAAOrF,EAAYI,IAAIM,EAAU,aACjC2F,GAAIrG,EAAYI,IAAIM,EAAU,YAC7B,GAECxC,KAAKgpO,cAAgBz5N,GAAaA,EAAUwyB,iBAC9Cy1C,EAAa32E,KAAKiB,MAGrB9B,MACIw3E,GAET0C,aAAc,WACZ,OAAOl6E,KAAKF,QAAQmC,aAAajC,KAAK+oO,SAAW,OAAQ/oO,KAAKgpO,aAEhEiB,kBAAmB,WACjB,IAIIhpF,EACAipF,EAUAC,EAfA/nO,EAAUpC,KAAK+oO,SACfjpO,EAAUE,KAAKF,QACfyP,EAAYvP,KAAKk6E,eACjBkwJ,EAA0B,MAAZhoO,GAA+B,MAAZA,EAkBrC,OAdIgoO,GACFF,EAAoB,YACpBjpF,EAA2B,MAAZ7+I,EAAkB,IAAM,MAEvC8nO,EAAoB,aACpBjpF,EAA2B,UAAZ7+I,EAAsB,SAAW,SAIlDtC,EAAQs+B,cAAc6iH,EAAe,QAAQ,SAAUopF,IAChDA,EAAenoO,IAAIgoO,IAAsB,MAAQ36N,EAAUrN,IAAIgoO,IAAsB,KACxFC,EAAsBE,MAGnBF,GAET7wJ,cAAe,WACb,OAAO12E,EAAO8E,MAAM1H,KAAKopO,cAY3BhvJ,oBAAqB,SAAU5qE,GAC7B,IASI86N,EATAhlN,EAAatlB,KAAKmpO,YAClB55N,EAAYvP,KAAKk6E,eACjBzrE,EAAQc,EAAUG,KAAKjB,MAEvByrG,EAAgBl6G,KAAKqpO,eAAepvH,mBAEpC1gC,EAAgB,CAAC,EAAG,KACpBqwJ,EAAgB,GAChBtvJ,EAAc,GAElBn7E,EAAK,CAAC,QAAS,QAAQ,SAAU6zB,EAAM9iB,GACrC,IAAIq6N,EAAe/6N,EAAIwjB,GACnBw3M,EAAah7N,EAAIwjB,EAAO,SAcD,YAAvBknF,EAAchqG,IACA,MAAhBq6N,IAAyBA,EAAehxJ,EAAcrpE,IAEtDs6N,EAAa/7N,EAAM+M,MAAMyjD,EAAW0U,UAAU42J,EAAchxJ,EAAej0D,MAE3EglN,GAAmB,EACnBE,EAA2B,MAAdA,EAAqBllN,EAAWpV,GAAOzB,EAAM+M,MAAMgvN,GAIhED,EAAetrK,EAAW0U,UAAU62J,EAAYllN,EAAYi0D,IAK9De,EAAYpqE,GAAOs6N,EACnBZ,EAAc15N,GAAOq6N,KAEvB32J,EAAI0G,GACJ1G,EAAIg2J,GAMJ,IAAIa,EAAQzqO,KAAKopO,YAGjB,SAASsB,EAAYC,EAAYC,EAAUC,EAAYC,EAAUC,GAC/D,IAAIz+K,EAASy+K,EAAU,OAAS,YAChCr3J,EAAW,EAAGi3J,EAAYE,EAAY,MAAOJ,EAAM,MAAQn+K,GAASm+K,EAAM,MAAQn+K,IAElF,IAAK,IAAIr+C,EAAI,EAAGA,EAAI,EAAGA,IACrB28N,EAAS38N,GAAKgxD,EAAW0U,UAAUg3J,EAAW18N,GAAI48N,EAAYC,GAAU,GACxEC,IAAYH,EAAS38N,GAAKQ,EAAM+M,MAAMovN,EAAS38N,KAInD,OAZAq8N,EAAmBI,EAAYpwJ,EAAasvJ,EAAetkN,EAAYi0D,GAAe,GAASmxJ,EAAYd,EAAetvJ,EAAaf,EAAej0D,GAAY,GAY3J,CACLg1D,YAAaA,EACbsvJ,cAAeA,IAWnB90M,MAAO,SAAUigD,GACf,GAAIA,IAAkB/0E,KAAKqpO,eAA3B,CAIA,IAAI7lG,EAAexjI,KAAK03E,wBAExB13E,KAAKmpO,YAAcG,EAAoBtpO,KAAMA,KAAK+oO,SAAUvlG,GAW5DsmG,EAAc9pO,MACd,IAAIgrO,EAAahrO,KAAKo6E,oBAAoBrF,EAAcqjC,eACxDp4G,KAAKipO,aAAe+B,EAAW1wJ,YAC/Bt6E,KAAKkpO,eAAiB8B,EAAWpB,cAEjCF,EAAa1pO,QAMfqnF,QAAS,SAAUtS,GACbA,IAAkB/0E,KAAKqpO,iBAI3BrpO,KAAKipO,aAAejpO,KAAKkpO,eAAiB,KAC1CQ,EAAa1pO,MAAM,KAMrBmvF,WAAY,SAAUpa,EAAexuE,GACnC,GAAIwuE,IAAkB/0E,KAAKqpO,eAA3B,CAIA,IAAIjnO,EAAUpC,KAAK+oO,SACfvxJ,EAAex3E,KAAK03E,wBACpB+/B,EAAa1iC,EAAc7yE,IAAI,cAC/Bo4E,EAAct6E,KAAKipO,aAEJ,SAAfxxH,GAuBJt4G,EAAKq4E,GAAc,SAAU11E,GAC3B,IAAIi4F,EAAaj4F,EAAYtB,UACzByjI,EAAWlqC,EAAW/vF,aAAa5H,GAAS,GAE3C6hI,EAASh5H,SAIK,eAAfwsG,EACF1d,EAAWg+D,YAAW,SAAUn3J,GAK9B,IAJA,IAAIqqO,EACAC,EACAhgL,EAEKj9C,EAAI,EAAGA,EAAIg2H,EAASh5H,OAAQgD,IAAK,CACxC,IAAIN,EAAQosF,EAAW73F,IAAI+hI,EAASh2H,GAAIrN,GACpCuqO,GAAgBpyN,MAAMpL,GACtBy9N,EAAcz9N,EAAQ2sE,EAAY,GAClC+wJ,EAAe19N,EAAQ2sE,EAAY,GAEvC,GAAI6wJ,IAAiBC,IAAgBC,EACnC,OAAO,EAGTF,IAAiBjgL,GAAW,GAC5BkgL,IAAgBH,GAAU,GAC1BI,IAAiBH,GAAW,GAI9B,OAAOhgL,GAAY+/K,GAAWC,KAGhC/rO,EAAK8kI,GAAU,SAAUl0H,GACvB,GAAmB,UAAf0nG,EACF31G,EAAYy5D,QAAQw+B,EAAaA,EAAW9yF,IAAI8I,GAAK,SAAUpC,GAC7D,OAAQ29N,EAAW39N,GAAeA,EAAN0pB,YAEzB,CACL,IAAIvb,EAAQ,GACZA,EAAM/L,GAAOuqE,EAEbyf,EAAWk+D,YAAYn8I,OAK7B3c,EAAK8kI,GAAU,SAAUl0H,GACvBgqF,EAAWm9D,qBAAqB58E,EAAavqE,UAIjD,SAASu7N,EAAW39N,GAClB,OAAOA,GAAS2sE,EAAY,IAAM3sE,GAAS2sE,EAAY,MA2G7D,IAAI/6E,EAAW83G,EACf30G,EAAOC,QAAUpD,G,qBCjfjB,IAAIkJ,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAwBvB,SAAS1tC,IACP,IAAI0uC,EAAQhB,IACZ,OAAO,SAAUnrC,GACf,IAAIkuK,EAAS/hI,EAAMnsC,GACf8zB,EAAkB9zB,EAAY8zB,gBAC9B21M,EAAgBv7D,EAAOn6I,MACvB21M,EAAsBx7D,EAAOpF,kBAI7B/0I,EAAQm6I,EAAOn6I,MAAQD,GAAmBA,EAAgBC,MAC1Dl0B,EAAcquK,EAAOpF,kBAAoBh1I,GAAmBA,EAAgBg1I,kBAChF,SAAU2gE,EAAgB11M,GAAS21M,EAAsB7pO,IAAgB,SAI7Ee,EAAOC,QAAUpD,G,qBC1CjB,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCJR,IAAIqD,EAAS,EAAQ,QAEjByb,EAAQ,EAAQ,QAoBhBlf,EAAOyD,EAAOzD,KACdqK,EAAQ5G,EAAO4G,MAGnB,SAASm9N,EAAQ7mO,EAASyG,GACxB,IAAIogB,EAAS,CAcX8kN,SAAU,GACVC,gBAAgB,EAMhB5wG,iBAAkB,GAClB6wG,YAAa,IAKf,OAHAC,EAAgBjlN,EAAQ7mB,EAASyG,GAEjCogB,EAAO+kN,gBAAkBG,EAAkBllN,EAAQ7mB,GAC5C6mB,EAGT,SAASilN,EAAgBjlN,EAAQ7mB,EAASyG,GACxC,IAAI80H,EAAqBv7H,EAAQmC,aAAa,WAC1C6pO,EAAyBhsO,EAAQmC,aAAa,eAE9C8pO,EAAcD,EAAuB5pO,IAAI,QAAQ,IAAS,GAC1D8pO,EAAa,GAEjB7sO,EAAKoH,EAAIkxD,wBAAwB,SAAUp3D,GAEzC,GAAKA,EAASuvI,mBAAd,CAIA,IAAIq8F,EAAcC,EAAQ7rO,EAASyvB,OAC/Bq8M,EAAqBxlN,EAAOm0G,iBAAiBmxG,GAAe,GAChEtlN,EAAOglN,YAAYM,GAAe5rO,EAGlC,IAAIgtN,EAAgBhtN,EAASyvB,MACzBs8M,EAAmB/e,EAAcpsM,SAAS,UAAWo6G,GAIzD,GAHAl8H,EAAKkB,EAAS6vI,UAAW1mI,EAAM6iO,GAAqB,EAAO,OAGvDhsO,EAAS8vI,gBAAkB9U,GAE5B+wG,EAAiBlqO,IAAI,QAAS,CAG/B,IAAIoqO,EAAkD,SAApCF,EAAiBlqO,IAAI,WACnCqqO,EAAqD,UAA7CH,EAAiBlqO,IAAI,oBAC7BsqO,EAAcnsO,EAAS8vI,eAAei8F,EAAiBlqO,IAAI,sBAE3DoqO,GAAeC,IACjBptO,EAAKqtO,EAAYp8F,SAAU5mI,EAAM6iO,GAAqBE,GAAQ,QAAgBD,IAG5EC,GACFptO,EAAKqtO,EAAYrrF,UAAW33I,EAAM6iO,EAAqB,SAAS,KAMpE,SAASA,EAAoBI,EAAaxmG,EAAgBv2H,GACxD,IAAIq8H,EAAmBr8H,EAAKogB,MAAM7O,SAAS,cAAe6qN,GACtDY,EAAkB3gG,EAAiB7pI,IAAI,QAE3C,GAAKwqO,IAAuC,SAApBA,GAA+BD,GAAgBE,EAAgB5gG,IAAvF,CAIsB,MAAlB9F,IACFA,EAAiB8F,EAAiB7pI,IAAI,mBAGxC6pI,EAAmB0gG,EAAcG,EAAqBl9N,EAAM08N,EAAkBN,EAAwBhsO,EAAS2sO,EAAaxmG,GAAkB8F,EAC9I,IAAI/F,EAAO+F,EAAiB7pI,IAAI,QAC5B6F,EAAMmkO,EAAQx8N,EAAKogB,OACnB+8M,EAAgB5mG,GAAkBD,GAAsB,aAAdt2H,EAAKjQ,KAE/C04F,EAAWxxE,EAAO8kN,SAAS1jO,GAAO,CACpCA,IAAKA,EACL2H,KAAMA,EACNrP,SAAUA,EACV0rI,iBAAkBA,EAClB9F,eAAgBA,EAChB4mG,cAAeA,EACf7mG,KAAMA,EACN3qB,UAAWsxH,EAAgB5gG,GAC3Bv0D,aAAc,IAEhB20J,EAAmBpkO,GAAOowF,EAC1BxxE,EAAO+kN,gBAAkBmB,EACzB,IAAIC,EAAaC,EAAkBhB,EAAar8N,GAEhD,GAAkB,MAAdo9N,EAAoB,CACtB,IAAIE,EAAYhB,EAAWc,KAAgBd,EAAWc,GAAc,CAClErB,SAAU,KAEZuB,EAAUvB,SAAS1jO,GAAOowF,EAC1B60I,EAAUC,OAASlB,EAAYe,GAAYG,OAC3C90I,EAAS60I,UAAYA,QAM7B,SAASJ,EAAqBl9N,EAAM08N,EAAkBN,EAAwBhsO,EAAS2sO,EAAaxmG,GAClG,IAAIinG,EAA0Bd,EAAiBnrN,SAAS,eACpDksN,EAAiB,GACrBhuO,EAAK,CAAC,OAAQ,OAAQ,YAAa,cAAe,QAAS,YAAa,0BAA2B,wBAAyB,MAAM,SAAU6iO,GAC1ImL,EAAenL,GAASp/N,EAAO8E,MAAMwlO,EAAwBhrO,IAAI8/N,OAKnEmL,EAAennG,KAAqB,aAAdt2H,EAAKjQ,QAAyBwmI,EAGR,UAAxCinG,EAAwBhrO,IAAI,UAC9BirO,EAAe1tO,KAAO,QAGxB,IAAI2tO,EAAcD,EAAehsO,QAAUgsO,EAAehsO,MAAQ,IAIlE,GAFoB,MAApBisO,EAAYhsO,OAAiBgsO,EAAYhsO,MAAO,GAE5B,UAAhBqrO,EAAyB,CAE3B,IAAIY,EAA8BH,EAAwBhrO,IAAI,cAI9D,GAHAkrO,EAAYhsO,KAAsC,MAA/BisO,GAAsCA,GAGpDpnG,EAAgB,CACnB,IAAI6hF,EAAaqlB,EAAe5rO,UAAY2rO,EAAwBhrO,IAAI,cACxE4lN,GAAcllN,EAAO6O,SAAS27N,EAAatlB,EAAWz6I,YAI1D,OAAO39D,EAAKogB,MAAM7O,SAAS,cAAe,IAAI5C,EAAM8uN,EAAgBrB,EAAwBhsO,IAG9F,SAAS+rO,EAAkBllN,EAAQ7mB,GAEjCA,EAAQ04C,YAAW,SAAU12C,GAE3B,IAAIzB,EAAWyB,EAAYxB,iBACvBgtO,EAAuBxrO,EAAYI,IAAI,mBAAmB,GAC1DqrO,EAAoBzrO,EAAYI,IAAI,gBAAgB,GAEnD7B,GAAqC,SAAzBitO,IAA4D,IAAzBA,GAA2D,SAAzBA,IAAyD,IAAtBC,IAA6E,IAA9CzrO,EAAYI,IAAI,oBAAoB,IAI5L/C,EAAKwnB,EAAOm0G,iBAAiBoxG,EAAQ7rO,EAASyvB,SAAS,SAAUqoE,GAC/D,IAAIzoF,EAAOyoF,EAASzoF,KAEhBrP,EAASu3F,QAAQloF,EAAKK,OAASL,IACjCyoF,EAAS3gB,aAAa32E,KAAKiB,GACC,MAA5Bq2F,EAASq1I,kBAA4Br1I,EAASq1I,gBAAkB,GAChEr1I,EAASq1I,iBAAmB1rO,EAAYtB,UAAU2hB,cAGrDniB,MAkBL,SAAS+sO,EAAkBhB,EAAar8N,GAItC,IAHA,IAAIH,EAAYG,EAAKogB,MACjB/f,EAAML,EAAKK,IAEN9B,EAAI,EAAGA,EAAI89N,EAAY9gO,OAAQgD,IAAK,CAC3C,IAAIw/N,EAAa1B,EAAY99N,IAAM,GAEnC,GAAIy/N,EAAgBD,EAAW19N,EAAM,UAAWR,EAAUpH,KAAOulO,EAAgBD,EAAW19N,EAAM,aAAcR,EAAUwyB,iBAAmB2rM,EAAgBD,EAAW19N,EAAM,YAAaR,EAAU5C,MACnM,OAAOsB,GAKb,SAASy/N,EAAgBC,EAAeC,GACtC,MAAyB,QAAlBD,GAA2B/qO,EAAOogB,QAAQ2qN,IAAkB/qO,EAAOiwB,QAAQ86M,EAAeC,IAAkB,GAAKD,IAAkBC,EAG5I,SAASjvE,EAASpvJ,GAChB,IAAI4oF,EAAWC,EAAY7oF,GAE3B,GAAK4oF,EAAL,CAIA,IAAI4zC,EAAmB5zC,EAAS4zC,iBAC5Bt9H,EAAQ0pF,EAASzoF,KAAKjB,MACtB5O,EAASksI,EAAiBlsI,OAC1Bg1D,EAASk3E,EAAiB7pI,IAAI,UAC9ByL,EAAQo+H,EAAiB7pI,IAAI,SAEpB,MAATyL,IACFA,EAAQc,EAAM+M,MAAM7N,IAGtB,IAAI0tG,EAAYsxH,EAAgB5gG,GAGlB,MAAVl3E,IACFh1D,EAAOg1D,OAASwmD,EAAY,OAAS,QAGvC,IAAIxjF,EAASppB,EAAM8W,YAAYje,QAC/BuwB,EAAO,GAAKA,EAAO,IAAMA,EAAOxwB,WAGvB,MAATsG,GAEGA,EAAQkqB,EAAO,MAEhBlqB,EAAQkqB,EAAO,IAGblqB,EAAQkqB,EAAO,KACjBlqB,EAAQkqB,EAAO,IAGjBh4B,EAAO8N,MAAQA,EAEX0tG,IACFx7G,EAAOg1D,OAASsjC,EAASzoF,KAAKjB,MAAMiyC,UAAY,OAAS,SAI7D,SAAS03C,EAAY7oF,GACnB,IAAIurH,GAAoBvrH,EAAUzP,QAAQmC,aAAa,gBAAkB,IAAI64H,iBAC7E,OAAOA,GAAoBA,EAAiB2wG,SAASS,EAAQ38N,IAG/D,SAASyvJ,EAAoBzvJ,GAC3B,IAAI4oF,EAAWC,EAAY7oF,GAC3B,OAAO4oF,GAAYA,EAAS4zC,iBAG9B,SAAS4gG,EAAgB5gG,GACvB,QAASA,EAAiB7pI,IAAI,eAQhC,SAASgqO,EAAQp8M,GACf,OAAOA,EAAMrwB,KAAO,KAAOqwB,EAAM3nB,GAGnCxF,EAAQgkO,QAAUA,EAClBhkO,EAAQg8J,SAAWA,EACnBh8J,EAAQy1F,YAAcA,EACtBz1F,EAAQq8J,oBAAsBA,EAC9Br8J,EAAQupO,QAAUA,G,qBCpTlB,IAAItpO,EAAS,EAAQ,QAsBjBirO,EAAkB,IAOtB,SAASC,IACP,IAAIrnH,EAAS7jH,EAAOikH,eACpB7mH,KAAKymH,OAASA,EACdzmH,KAAKi3G,SAAW,GAChBj3G,KAAKk3G,UAAY,GACjBl3G,KAAKm3G,WAAa,EAClBn3G,KAAKo3G,WAAa,EAClBp3G,KAAK+tO,gBAAkB,GAGzBD,EAAQhgO,UAAY,CAOlBvF,OAAQ,SAAUhI,EAAMiB,EAAO0K,EAAQ88C,EAAWglL,EAAWrpG,GAC3D,IAAIn/F,EAAQxlC,KAAKiuO,YAEbC,EAAkBluO,KAAKmuO,aAAa5tO,EAAMytO,EAAW,WAErDI,EAAqBpuO,KAAKmuO,aAAa5tO,EAAMytO,EAAW,cAExDn6N,EAAI7T,KAAKk3G,UAAYl3G,KAAKi3G,SAC1BwP,EAASzmH,KAAKymH,OACdhiF,EAAMgiF,EAAO5sD,WAAW,MACxBvhD,EAAM/X,EAAK0K,OACfw7G,EAAOjlH,MAAQA,EACfilH,EAAOv6G,OAASA,EAEhB,IAAK,IAAI+B,EAAI,EAAGA,EAAIqK,IAAOrK,EAAG,CAC5B,IAAIwJ,EAAIlX,EAAK0N,GACTxI,EAAIgS,EAAE,GACN/R,EAAI+R,EAAE,GACN9J,EAAQ8J,EAAE,GAEV4/G,EAAQruE,EAAUr7C,GAEtB82B,EAAIuoD,YAAcqqC,EAClB5yF,EAAI0B,UAAUX,EAAO//B,EAAIoO,EAAGnO,EAAImO,GAGlC,IAAK4yG,EAAOjlH,QAAUilH,EAAOv6G,OAG3B,OAAOu6G,EAIT,IAAI4nH,EAAY5pM,EAAI6pM,aAAa,EAAG,EAAG7nH,EAAOjlH,MAAOilH,EAAOv6G,QACxDqiO,EAASF,EAAU9tO,KACnBuU,EAAS,EACT05N,EAAWD,EAAOtjO,OAClBmsG,EAAap3G,KAAKo3G,WAClBD,EAAan3G,KAAKm3G,WAClBs3H,EAAct3H,EAAaC,EAE/B,MAAOtiG,EAAS05N,EAAU,CACpBn3G,EAAQk3G,EAAOz5N,EAAS,GAAK,IAAjC,IACI45N,EAA6D,EAA5C7iO,KAAK+N,MAAMy9G,GAASw2G,EAAkB,IAE3D,GAAIx2G,EAAQ,EAAG,CACb,IAAI7iC,EAAWmwC,EAAUtN,GAAS62G,EAAkBE,EAEpD/2G,EAAQ,IAAMA,EAAQA,EAAQo3G,EAAcr3H,GAC5Cm3H,EAAOz5N,KAAY0/E,EAASk6I,GAC5BH,EAAOz5N,KAAY0/E,EAASk6I,EAAiB,GAC7CH,EAAOz5N,KAAY0/E,EAASk6I,EAAiB,GAC7CH,EAAOz5N,KAAY0/E,EAASk6I,EAAiB,GAAKr3G,EAAQ,SAE1DviH,GAAU,EAKd,OADA2vB,EAAIkqM,aAAaN,EAAW,EAAG,GACxB5nH,GAQTwnH,UAAW,WACT,IAAIW,EAAc5uO,KAAK6uO,eAAiB7uO,KAAK6uO,aAAejsO,EAAOikH,gBAE/DhzG,EAAI7T,KAAKk3G,UAAYl3G,KAAKi3G,SAC1Bj6C,EAAQ,EAAJnpD,EACR+6N,EAAYptO,MAAQw7D,EACpB4xK,EAAY1iO,OAAS8wD,EACrB,IAAIv4B,EAAMmqM,EAAY/0K,WAAW,MAejC,OAdAp1B,EAAI8iH,UAAU,EAAG,EAAGvqF,EAAGA,GAIvBv4B,EAAIwX,cAAgB+gB,EACpBv4B,EAAIuX,WAAah8C,KAAKi3G,SAGtBxyE,EAAI0X,YAAc,OAElB1X,EAAIq1B,YACJr1B,EAAIo2B,KAAKhnD,EAAGA,EAAG7T,KAAKk3G,UAAW,EAAa,EAAVrrG,KAAK+E,IAAQ,GAC/C6zB,EAAImnB,YACJnnB,EAAI/yB,OACGk9N,GAOTT,aAAc,SAAU5tO,EAAMytO,EAAW5oN,GAMvC,IALA,IAAI0pN,EAAiB9uO,KAAK+tO,gBACtBgB,EAAoBD,EAAe1pN,KAAW0pN,EAAe1pN,GAAS,IAAI4pN,kBAAkB,OAC5Fp3N,EAAQ,CAAC,EAAG,EAAG,EAAG,GAClBilB,EAAM,EAED5uB,EAAI,EAAGA,EAAI,IAAKA,IACvB+/N,EAAU5oN,GAAOnX,EAAI,KAAK,EAAM2J,GAChCm3N,EAAkBlyM,KAASjlB,EAAM,GACjCm3N,EAAkBlyM,KAASjlB,EAAM,GACjCm3N,EAAkBlyM,KAASjlB,EAAM,GACjCm3N,EAAkBlyM,KAASjlB,EAAM,GAGnC,OAAOm3N,IAGX,IAAIxvO,EAAWuuO,EACfprO,EAAOC,QAAUpD,G,qBCpLjB,IAAIm7F,EAAS,EAAQ,QAEjBwzD,EAAmBxzD,EAAOwzD,iBAC1BmB,EAAsB30D,EAAO20D,oBAC7BviI,EAAiB4tE,EAAO5tE,eACxB+hI,EAAiBn0D,EAAOm0D,eAExBjsJ,EAAS,EAAQ,QAEjBsyD,EAAW,EAAQ,QAEnBpsC,EAAM,EAAQ,QAGdmmN,EAAoB,IACpBC,EAAuBpmN,EAAI46C,aAE3ByrK,EAA2B,WAC7B,IAAIC,EAAoB,CAAC,QAAS,WAAY,aAAc,WAAY,UAAW,YAAa,YAAa,eACzGC,EAAoB,CAAC,aAAc,WAAY,aAC/CC,EAAsB,CACxBC,YAAa,EACbC,UAAW,EACXC,YAAa,EACbC,WAAY,GAEVC,EAAsB/sO,EAAOqE,IAAImoO,GAAmB,SAAUziO,GAChE,IAAIijO,EAAKjjO,EAAKlK,QAAQ,QAAS,WAC/B,OAAO6sO,EAAoBvyN,eAAe6yN,GAAMA,EAAKjjO,KAEvD,MAAO,CACLkjO,MAAOT,EACPn2M,MAAOo2M,EACPl/H,QAASw/H,GAhBkB,GAoB3BG,EAA4B,CAC9BD,MAAO,CAAC,YAAa,WACrB1/H,QAAS,CAAC,cAAe,cAG3B,SAAS4/H,EAAapjO,GACpB,MAAgB,eAATA,GAAyBmc,EAAIw6C,QAAQU,QAAU,iBAAmBr3D,EAG3E,SAASqjO,EAAmB1nO,GAC1B,IAAI2nO,EAAc3nO,EAAM2nO,YACxB,MAAuB,QAAhBA,GAAyC,UAAhBA,EA4BlC,SAASC,EAAc3hJ,GACrBA,EAAM4hJ,UAAW,EAEO,MAApB5hJ,EAAM6hJ,aACR5jN,aAAa+hE,EAAM6hJ,YACnB7hJ,EAAM6hJ,WAAa,MAGrB7hJ,EAAM6hJ,WAAa/hN,YAAW,WAC5BkgE,EAAM4hJ,UAAW,EACjB5hJ,EAAM6hJ,WAAa,OAClB,KAKL,SAASC,EAAU/nO,GACjBA,IAAUA,EAAMwjE,WAAY,GAS9B,SAASwkK,EAAqBC,EAAUjoO,GAGtC,OAAOwkB,EAAeyjN,EAASvuH,IAAK,IAAIwuH,EAAgBD,EAAUjoO,IAAQ,GAO5E,SAASmoO,EAAUF,EAAU9kN,GAC3B,IAAIilN,EAAQjlN,EACRklN,GAAU,EAEd,MAAOD,GAA4B,IAAnBA,EAAMv+I,YAAoBw+I,EAAUD,EAAM/kN,eAAiB+kN,IAAUjlN,GAAMilN,IAAUH,EAASK,aAC5GF,EAAQA,EAAM9xN,WAGhB,OAAO+xN,EAUT,SAASH,EAAgBD,EAAUjoO,GACjCtI,KAAKP,KAAO6I,EAAM7I,KAClBO,KAAKoS,OAASpS,KAAK6wO,cAAgBN,EAASvuH,IAC5ChiH,KAAKiwO,YAAc3nO,EAAM2nO,YAEzBjwO,KAAK0uJ,QAAUpmJ,EAAMomJ,QACrB1uJ,KAAK4uJ,QAAUtmJ,EAAMsmJ,QAIvB,IAAIkiF,EAAuBN,EAAgB1iO,UAI3CgjO,EAAqBvhF,gBAAkBuhF,EAAqBC,yBAA2BD,EAAqBjhN,eAAiBjtB,EAAOg2C,KAMpI,IAAIo4L,EAAmB,CACrB/pG,UAAW,SAAU3+H,GACnBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjCtI,KAAKixO,mBAAqB,CAAC3oO,EAAMmiB,IAAKniB,EAAMoiB,KAC5C1qB,KAAKs9B,QAAQ,YAAah1B,IAE5B6+H,UAAW,SAAU7+H,GACnBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjC,IAAI4oO,EAAYlxO,KAAKixO,oBAEjBC,GAAc5oO,EAAMmiB,MAAQymN,EAAU,IAAM5oO,EAAMoiB,MAAQwmN,EAAU,IACtEC,EAAqBnxO,MAAM,GAG7BA,KAAKs9B,QAAQ,YAAah1B,IAE5B++H,QAAS,SAAU/+H,GACjBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjC6oO,EAAqBnxO,MAAM,GAC3BA,KAAKs9B,QAAQ,UAAWh1B,IAE1B8oO,SAAU,SAAU9oO,GAClBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GAG7BtI,KAAKqxO,oBACP/oO,EAAMgpO,eAAiB,gBAQzB,IAAIryH,EAAU32G,EAAMipO,WAAajpO,EAAMkpO,cACvClpO,EAAMmpO,eAAiBhB,EAAUzwO,KAAMi/G,GACvCj/G,KAAKs9B,QAAQ,WAAYh1B,IAE3BopO,WAAY,SAAUppO,GAGpBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjC+nO,EAAU/nO,GACVtI,KAAK2xO,iBAAmB,IAAI1xK,KAC5BjgE,KAAK6sB,QAAQ+kN,eAAetpO,EAAO,SAKnC0oO,EAAiB7pG,UAAUr6H,KAAK9M,KAAMsI,GACtC0oO,EAAiB/pG,UAAUn6H,KAAK9M,KAAMsI,IAExCupO,UAAW,SAAUvpO,GACnBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjC+nO,EAAU/nO,GACVtI,KAAK6sB,QAAQ+kN,eAAetpO,EAAO,UAInC0oO,EAAiB7pG,UAAUr6H,KAAK9M,KAAMsI,IAExCwpO,SAAU,SAAUxpO,GAClBA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjC+nO,EAAU/nO,GACVtI,KAAK6sB,QAAQ+kN,eAAetpO,EAAO,OACnC0oO,EAAiB3pG,QAAQv6H,KAAK9M,KAAMsI,IAU/B,IAAI23D,KAASjgE,KAAK2xO,iBAAmB1C,GACxC+B,EAAiBe,MAAMjlO,KAAK9M,KAAMsI,IAGtCinO,YAAa,SAAUjnO,GACrB0oO,EAAiB/pG,UAAUn6H,KAAK9M,KAAMsI,IAIxCmnO,YAAa,SAAUnnO,GAMhB0nO,EAAmB1nO,IACtB0oO,EAAiB7pG,UAAUr6H,KAAK9M,KAAMsI,IAG1CknO,UAAW,SAAUlnO,GACnB0oO,EAAiB3pG,QAAQv6H,KAAK9M,KAAMsI,IAEtConO,WAAY,SAAUpnO,GAMf0nO,EAAmB1nO,IACtB0oO,EAAiBI,SAAStkO,KAAK9M,KAAMsI,KAS3C1F,EAAOzD,KAAK,CAAC,QAAS,aAAc,WAAY,gBAAgB,SAAUwN,GACxEqkO,EAAiBrkO,GAAQ,SAAUrE,GACjCA,EAAQwkB,EAAe9sB,KAAKgiH,IAAK15G,GACjCtI,KAAKs9B,QAAQ3wB,EAAMrE,OAYvB,IAAI0pO,EAAoB,CACtBvC,YAAa,SAAUnnO,GAMhB0nO,EAAmB1nO,IACtB0pO,EAAkB7qG,UAAUr6H,KAAK9M,KAAMsI,IAG3CknO,UAAW,SAAUlnO,GACnB0pO,EAAkB3qG,QAAQv6H,KAAK9M,KAAMsI,IAEvC6+H,UAAW,SAAU7+H,GACnBtI,KAAKs9B,QAAQ,YAAah1B,IAE5B++H,QAAS,SAAU/+H,GACjB,IAAI2pO,EAA0BjyO,KAAKqxO,kBACnCF,EAAqBnxO,MAAM,GAC3BA,KAAKs9B,QAAQ,UAAWh1B,GAEpB2pO,IACF3pO,EAAMgpO,eAAiB,iBACvBtxO,KAAKs9B,QAAQ,WAAYh1B,MAS/B,SAAS4pO,EAA4B3B,EAAUhiJ,GAC7C,IAAI4jJ,EAAc5jJ,EAAM4jJ,YAEpBrpN,EAAIy7C,uBAQN3hE,EAAOzD,KAAKgwO,EAAyBh/H,SAAS,SAAUiiI,GACtDC,EAA4B9jJ,EAAO6jJ,GAAiB,SAAU9pO,GAE5D6pO,EAAYC,GAAiBtlO,KAAKyjO,EAAUjoO,UAgB5CwgB,EAAI26C,sBACN7gE,EAAOzD,KAAKgwO,EAAyBl2M,OAAO,SAAUm5M,GACpDC,EAA4B9jJ,EAAO6jJ,GAAiB,SAAU9pO,GAE5D6pO,EAAYC,GAAiBtlO,KAAKyjO,EAAUjoO,GAC5C4nO,EAAc3hJ,SAWpB3rF,EAAOzD,KAAKgwO,EAAyBU,OAAO,SAAUuC,GACpDC,EAA4B9jJ,EAAO6jJ,GAAiB,SAAU9pO,GAC5DA,EAAQumJ,EAAevmJ,GAElBimF,EAAM4hJ,UAETgC,EAAYC,GAAiBtlO,KAAKyjO,EAAUjoO,UAYtD,SAASgqO,EAA6B/B,EAAUhiJ,GAY9C,SAASu0F,EAAMsvD,GACb,SAASG,EAAoBjqO,GAC3BA,EAAQumJ,EAAevmJ,GAMlBmoO,EAAUF,EAAUjoO,EAAM8J,UAC7B9J,EAAQgoO,EAAqBC,EAAUjoO,GACvCimF,EAAM4jJ,YAAYC,GAAiBtlO,KAAKyjO,EAAUjoO,IAItD+pO,EAA4B9jJ,EAAO6jJ,EAAiBG,EAAqB,CACvEC,SAAS,IAzBT1pN,EAAIy7C,uBACN3hE,EAAOzD,KAAK2wO,EAA0B3/H,QAAS2yE,GAKvCh6J,EAAI26C,sBACV7gE,EAAOzD,KAAK2wO,EAA0BD,MAAO/sD,GAwBnD,SAASuvD,EAA4B9jJ,EAAO6jJ,EAAiBK,EAAUjjO,GACrE++E,EAAMmkJ,QAAQN,GAAmBK,EACjClkJ,EAAMokJ,aAAaP,GAAmB5iO,EACtC0+I,EAAiB3/D,EAAMqkJ,UAAW7C,EAAaqC,GAAkBK,EAAUjjO,GAG7E,SAASqjO,EAAyBtkJ,GAChC,IAAImkJ,EAAUnkJ,EAAMmkJ,QAEpB,IAAK,IAAIN,KAAmBM,EACtBA,EAAQ31N,eAAeq1N,IACzB/iF,EAAoB9gE,EAAMqkJ,UAAW7C,EAAaqC,GAAkBM,EAAQN,GAAkB7jJ,EAAMokJ,aAAaP,IAIrH7jJ,EAAMmkJ,QAAU,GAWlB,SAASvB,EAAqBZ,EAAUuC,GAGtC,GAFAvC,EAASU,mBAAqB,KAE1B/B,GAAwBqB,EAASc,kBAAoByB,EAAoB,CAC3EvC,EAASc,kBAAoByB,EAC7B,IAAIC,EAAqBxC,EAASyC,oBAClCF,EAAqBR,EAA6B/B,EAAUwC,GAAsBF,EAAyBE,IAS/G,SAASE,EAAgBL,EAAWT,GAClCnyO,KAAK4yO,UAAYA,EACjB5yO,KAAKmyO,YAAcA,EAGnBnyO,KAAK0yO,QAAU,GACf1yO,KAAK2yO,aAAe,GACpB3yO,KAAKowO,WAAa,KAClBpwO,KAAKmwO,UAAW,EAQlB,SAAS+C,EAAgBlxH,EAAK4uH,GAC5B17K,EAASpoD,KAAK9M,MACdA,KAAKgiH,IAAMA,EACXhiH,KAAK4wO,YAAcA,EACnB5wO,KAAKmzO,mBAAqB,IAAIF,EAAgBjxH,EAAKgvH,GAE/C9B,IACFlvO,KAAKgzO,oBAAsB,IAAIC,EAAgBjoN,SAAUgnN,IAO3DhyO,KAAKqxO,mBAAoB,EAKzBrxO,KAAKixO,mBAAqB,KAC1BiB,EAA4BlyO,KAAMA,KAAKmzO,oBAGzC,IAAIC,EAAuBF,EAAgBplO,UAE3CslO,EAAqB7kN,QAAU,WAC7BskN,EAAyB7yO,KAAKmzO,oBAE1BjE,GACF2D,EAAyB7yO,KAAKgzO,sBAIlCI,EAAqBC,UAAY,SAAU/2L,GACzCt8C,KAAKgiH,IAAIx8G,QAAUxF,KAAKgiH,IAAIx8G,MAAM2lC,OAASmR,GAAe,YAG5D15C,EAAOyM,MAAM6jO,EAAiBh+K,GAC9B,IAAI31D,EAAW2zO,EACfxwO,EAAOC,QAAUpD,G,qBCvfjBmD,EAAOC,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,qBCmB3E,IAAIC,EAAS,EAAQ,QAoBrB,SAASrD,EAASO,GAChB,IAAIwzO,EAAmB,GACvBxzO,EAAQumC,iBAAiB,OAAO,SAAU/H,GACxC,IAAI+nB,EAAU/nB,EAAUu0G,aAExB,IAAIv0G,EAAUC,oBAAqB+0M,EAAiBjtL,GAApD,CAIA,IAAIktL,EAAmB,GACvB3wO,EAAOzD,KAAKm/B,EAAUsoG,aAAa,SAAU4sG,GAC3C,IAAIh1M,EAAMg1M,EAAalzO,iBACnBC,EAAOizO,EAAavgG,aAEpBugG,EAAatxO,IAAI,qBAAuBpC,EAAQmC,aAAa,WAC/D1B,EAAKpB,KAAKoB,EAAKyJ,aAAa,UAAU,SAAU2D,EAAOuC,GACrD,IAAIvD,EAAOpM,EAAK08C,QAAQ/sC,GACpBgtB,EAASsB,EAAI5vB,UAAUjC,GAI3B,GAAKuwB,IAAUnkB,MAAMpL,GAArB,CAIA,IAAImH,EAASy+N,EAAiB5mO,IAAS,EACnC2qB,EAAQkH,EAAIzyB,YAAYmxB,EAAOxE,QACnC66M,EAAiB5mO,GAAQmI,EAAS,EAClCvU,EAAKugB,cAAc5Q,EAAK,CACtBonB,MAAOA,EACPxiB,OAAQA,WAMhB,IAAIvU,EAAO+9B,EAAU99B,UACrBD,EAAKpB,MAAK,SAAU+Q,GAClB,IAAIvD,EAAOpM,EAAK08C,QAAQ/sC,GACpBjN,EAAS1C,EAAKygB,cAAc9Q,IAAQ,GACxCjN,EAAOoB,WAAakvO,EAAiB5mO,GACrCpM,EAAKugB,cAAc5Q,EAAKjN,MAE1BqwO,EAAiBjtL,IAAW,MAIhC3jD,EAAOC,QAAUpD,G,qBCnEjB,IAAIqD,EAAS,EAAQ,QA0BrB,SAAS6wO,EAAc1jO,GACrB,OAAO/P,KAAK0zO,MAAM3jO,GAQpB,IAAIs4N,EAAY,SAAU17N,GACxB3M,KAAK0zO,MAAQ,GACb1zO,KAAK2zO,SAAW,GAKhB3zO,KAAK2M,KAAOA,GAAQ,IAGtB07N,EAAUv6N,UAAY,CACpBC,YAAas6N,EACb5oO,KAAM,YAONm4F,QAAS,SAAU7nF,GACjB,OAAO/P,KAAK0zO,MAAM3jO,IAOpBmgI,QAAS,WACP,OAAOttI,EAAOqE,IAAIjH,KAAK2zO,SAAUF,EAAezzO,OAMlDsoO,eAAgB,SAAUzjE,GAExB,OADAA,EAAYA,EAAUvyE,cACf1vF,EAAOyuD,OAAOrxD,KAAKkwI,WAAW,SAAUxgI,GAC7C,OAAOA,EAAKjB,MAAMhP,OAASolK,MAQ/BriB,QAAS,SAAU9yI,GACjB,IAAIK,EAAML,EAAKK,IACf/P,KAAK0zO,MAAM3jO,GAAOL,EAElB1P,KAAK2zO,SAAS9yO,KAAKkP,IAQrBS,YAAa,SAAU/E,GACrB,OAAOzL,KAAK4zO,kBAAkBnoO,EAAK,gBAQrCiyE,YAAa,SAAUjyE,GACrB,OAAOzL,KAAK4zO,kBAAkBnoO,EAAK,gBAErCmoO,kBAAmB,SAAUC,EAAOxtO,GAIlC,IAHA,IAAIytO,EAAU9zO,KAAK2zO,SACfzwI,EAAS2wI,aAAiB97N,MAAQ,GAAK,GAElC9J,EAAI,EAAGA,EAAI6lO,EAAQ7oO,OAAQgD,IAAK,CACvC,IAAI8B,EAAM+jO,EAAQ7lO,GACdyB,EAAO1P,KAAK0zO,MAAM3jO,GACtBmzF,EAAOnzF,GAAOL,EAAKrJ,GAAQwtO,EAAM9jO,IAGnC,OAAOmzF,IAGX,IAAI3jG,EAAW8oO,EACf3lO,EAAOC,QAAUpD,G,qBCtHjB,IAAIF,EAAc,EAAQ,QAEtBk7L,EAA0B,EAAQ,QAElC58H,EAAU,EAAQ,QAElBC,EAAaD,EAAQC,WAErBv/C,EAAQ,EAAQ,QAEhBmF,EAAU,EAAQ,QAsBlBuwN,GApBUvwN,EAAQC,QAoBHpkB,EAAYG,OAAO,CACpCC,KAAM,gBACNo+D,WAAY,KACZz+C,YAAa,KAQbxf,eAAgB,SAAUC,EAAQC,GAMhC,IALA,IAAI+jF,EAAQhkF,EAAO+7E,OAAS/7E,EAAOgkF,MAC/B3hE,EAAQriB,EAAOU,MAAQV,EAAOqiB,MAC9BS,EAAS9iB,EAAO8iB,OAChBvD,EAAcpf,KAAKof,YAAc,GAE5BnR,EAAI,EAAGA,EAAI0U,EAAO1X,OAAQgD,IACV,MAAnB0U,EAAO1U,GAAG0Q,OAAiBgE,EAAO1U,GAAG0Q,OAAS,IAChDS,EAAYuD,EAAO1U,GAAG0Q,OAAS,IAAIN,EAAMsE,EAAO1U,GAAIjO,KAAMF,IAI9D,GAAIoiB,GAAS2hE,EAAO,CAClB,IAAIv9C,EAAQi0J,EAAwBr4K,EAAO2hE,EAAO7jF,MAAM,EAAMyiB,GAC9D,OAAO6jB,EAAM/lC,KAGf,SAASkiB,EAAWu7C,EAAUse,GAC5Bte,EAASC,WAAW,gBAAgB,SAAUnuC,EAAO5f,GAOnD,OANA4f,EAAMkwG,oBAAmB,SAAU9+G,GACjC,IAAIg+B,EAAcl/C,KAAKk/C,YACnBszI,EAAYtzI,EAAY1+C,UAAUwgB,cAAc9Q,GAAKyO,MACrD0C,EAAa69B,EAAY9/B,YAAYozK,GACzC,OAAOnxK,GAAcrhB,KAAKk/C,eAErBpvB,KAETwsD,EAASre,WAAW,gBAAgB,SAAUnuC,EAAO5f,GAQnD,OAPA4f,EAAMkwG,oBAAmB,SAAU9+G,GACjC,IAAIg+B,EAAcl/C,KAAKk/C,YACnB33B,EAAO23B,EAAY3Y,WAAWs4G,eAAe3uI,GAC7CyO,EAAQ4I,EAAKwoC,MAAMhvC,YAAYpC,MAC/B0C,EAAa69B,EAAY9/B,YAAYT,GACzC,OAAO0C,GAAcrhB,KAAKk/C,eAErBpvB,OAIb0vM,gBAAiB,SAAU5+N,EAAWozO,GACpC,IAAIzoO,EAAWvL,KAAKH,OAAOU,KAAKK,GAChC2K,EAASq5I,OAASovF,EAAc,GAChCzoO,EAASs5I,OAASmvF,EAAc,IAQlCztM,SAAU,WACR,OAAOvmC,KAAKQ,UAAU8lC,OAQxB80J,YAAa,WACX,OAAOp7L,KAAKumC,WAAW+1C,UAMzB7d,cAAe,SAAU79D,EAAW62I,EAAgBz6C,GAElD,GAAiB,SAAbA,EAAqB,CACvB,IAAInzF,EAAS7J,KAAK4J,cAAchJ,EAAWo8F,GACvCi3I,EAAapqO,EAAOtJ,KACpB6/E,EAAO6zJ,EAAWl0O,OAAS,OAASk0O,EAAW7hO,OAMnD,OAJIvI,EAAO8D,QACTyyE,GAAQ,MAAQv2E,EAAO8D,OAGlBiwD,EAAWwiB,GACb,GAAiB,SAAb4c,EAAqB,CAC9B,IAAIx9E,EAAOxf,KAAKumC,WAAW+4G,eAAe1+I,GACtC+M,EAAQ6R,EAAKuB,YAAYpT,MACzBhB,EAAO3M,KAAK4J,cAAchJ,EAAWo8F,GAAUz8F,KAAKoM,KAExD,GAAIgB,EACEyyE,EAAOzzE,EAAO,MAAQgB,EAG5B,OAAOiwD,EAAWwiB,GAGpB,OAAO2zJ,EAAajqO,UAAU9J,KAAM,gBAAiBY,EAAW62I,IAElEjkI,cAAe,WACb,IAAI3T,EAASG,KAAKH,QAEgB,IAA9BA,EAAOslJ,qBACTtlJ,EAAOslJ,mBAAqB,aAIhCv7I,cAAe,SAAUhJ,EAAWo8F,GAClC,IAAInzF,EAASkqO,EAAajqO,UAAU9J,KAAM,gBAAiBY,EAAWo8F,GAEtE,GAAoB,MAAhBnzF,EAAO8D,OAA8B,SAAbqvF,EAAqB,CAC/C,IAAIx9E,EAAOxf,KAAKumC,WAAW+4G,eAAe1+I,GACtC8lC,EAAYlnB,EAAKuB,YAAYpT,MACjC9D,EAAO8D,MAAQ+4B,EAGjB,OAAO78B,GAET9I,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHX,iBAAkB,OAClB2C,OAAQ,KAERsH,KAAM,KACNC,IAAK,KACLC,MAAO,MACPC,OAAQ,KAER5D,OAAQ,aAER2pL,UAAW,GAEXC,QAAS,EAET71I,WAAW,EAEXsqG,oBAAoB,EAEpB+uF,iBAAkB,GAClB/yO,MAAO,CACLC,MAAM,EACN4J,SAAU,QACV4M,MAAO,OACP8R,SAAU,IAEZ/G,OAAQ,GAERmuK,UAAW,UACX5lL,UAAW,CACTE,YAAa,EACbD,YAAa,QAEf5J,UAAW,CACTqW,MAAO,UACPnW,QAAS,GACTquD,UAAW,IAEbpuD,SAAU,CACRP,MAAO,CACLC,MAAM,GAERG,UAAW,CACTE,QAAS,KAGbI,gBAAiB,SACjBk9D,kBAAmB,QAGnBx/D,EAAWw0O,EACfrxO,EAAOC,QAAUpD,G,qBC/MjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QA4BrB,SAASuxO,EAAW9tO,EAAQqjH,GAC1BA,EAAWnhH,OAAS,aACpBH,EAAQC,eAAeqhH,GAAY,SAAUxrF,EAASp+B,GACpD,IAAI2H,EAAW,GAWf,OAVA3H,EAAQs+B,cAAc,CACpBnB,SAAU,MACVmE,MAAOlD,IACN,SAAUtwB,GACXA,EAASvH,GAAQ63B,EAAQvxB,MACzB,IAAI6xB,EAAM5wB,EAAStN,iBACnBsC,EAAOzD,KAAKq/B,EAAInxB,SAAS,SAAU6vB,GACjCz1B,EAASy1B,EAAOvwB,MAAQiB,EAAS2vB,WAAWL,EAAOvwB,QAAS,QAGzD,CACLlF,SAAUA,EACVkF,KAAMuxB,EAAQvxB,SA1CpB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAyCRwnO,EAAW,iBAAkB,CAC3B10O,KAAM,kBACN6I,MAAO,qBAET6rO,EAAW,SAAU,CACnB10O,KAAM,YACN6I,MAAO,gBAET6rO,EAAW,WAAY,CACrB10O,KAAM,cACN6I,MAAO,mB,qBC7DT,IAAI1F,EAAS,EAAQ,QAEjBK,EAAS,EAAQ,QAEjBg8D,EAAa,EAAQ,QAErB9O,EAAmB,EAAQ,QAqB3BikL,EAAoB,MAWxB,SAASC,EAASC,EAAex0O,EAASyG,GACxCvG,KAAKyI,OAAS6rO,EA2WhB,SAAS9mO,EAAUC,EAAY3N,EAAS4N,EAAQC,GAC9C,IAAI2mO,EAAgB5mO,EAAO4mO,cACvBxyO,EAAc4L,EAAO5L,YACrBzB,EAAWi0O,EAAgBA,EAAch0O,iBAAmBwB,EAAcA,EAAYxB,iBAAmB,KAC7G,OAAOD,IAAaL,KAAOK,EAASoN,GAAYE,GAAS,KA5W3D0mO,EAASvmO,UAAY,CACnBC,YAAasmO,EACb50O,KAAM,WACN0C,WAAY,CAAC,OAAQ,SAErB29F,kBAAmB,WACjB,MAAO,CAAC,CACNnzF,KAAM,OACNlN,KAAM,QACL,UAEL0iI,aAAc,WACZ,OAAOniI,KAAKu0O,YAEdtzN,SAAU,WACR,OAAOjhB,KAAKyI,QAEduH,QAAS,WACP,OAAOhQ,KAAKsN,OAEd+0H,aAAc,WACZ,OAAOriI,KAAKw0O,KAEdjyG,cAAe,WACb,OAAOviI,KAAKy0O,KAEd/rM,UAAW,WACT,OAAO1oC,KAAKs0E,SAYdogK,kBAAmB,WACjB,OAAO10O,KAAK20O,iBAkBdC,YAAa,SAAU50K,GACrBA,EAAOf,EAAWwC,UAAUzB,GAC5B,IAAIt6D,EAAIs6D,EAAKI,cACTprD,EAAIgrD,EAAKK,WAAa,EAC1BrrD,EAAIA,EAAI,GAAK,IAAMA,EAAIA,EACvB,IAAIgoD,EAAIgD,EAAKM,UACbtD,EAAIA,EAAI,GAAK,IAAMA,EAAIA,EACvB,IAAI63K,EAAM70K,EAAK80K,SAEf,OADAD,EAAMhpO,KAAKC,KAAK+oO,EAAM,EAAI70O,KAAK00O,qBAAuB,GAC/C,CACLhvO,EAAGA,EACHsP,EAAGA,EACHgoD,EAAGA,EACH63K,IAAKA,EACL35N,KAAM8kD,EAAKw7B,UACXu5I,aAAcrvO,EAAI,IAAMsP,EAAI,IAAMgoD,EAClCgD,KAAMA,IAGVg1K,YAAa,SAAUh1K,EAAMpsD,GAG3B,OAFAA,EAAIA,GAAK,EAEC,IAANA,IAIJosD,EAAO,IAAIC,KAAKjgE,KAAK40O,YAAY50K,GAAM9kD,MACvC8kD,EAAKi1K,QAAQj1K,EAAKM,UAAY1sD,IAJrB5T,KAAK40O,YAAY50K,IAO5Bz3D,OAAQ,SAAUzI,EAASyG,GACzBvG,KAAK20O,iBAAmB30O,KAAKyI,OAAOwY,SAAS,YAAY/e,IAAI,YAC7DlC,KAAKs0E,QAAUt0E,KAAKyI,OAAOvG,IAAI,UAC/BlC,KAAKk1O,WAAal1O,KAAKyI,OAAOwY,SAAS,aAAatP,eAAe+mE,WAAa,EAChF14E,KAAKu0O,WAAav0O,KAAKm1O,cAAcn1O,KAAKo1O,oBAC1C,IAAI5yG,EAAQxiI,KAAKu0O,WAAW/xG,OAAS,EACjC6yG,EAAU,CAAC,QAAS,UAEpB3gD,EAAW10L,KAAKyI,OAAOvG,IAAI,YAAYoF,QAEvCuuE,EAAe71E,KAAKyI,OAAOq9D,qBAE3BwvK,EAA+B,eAAjBt1O,KAAKs0E,QAA2B,CAACkuD,EAAO,GAAK,CAAC,EAAGA,GACnE5/H,EAAOzD,KAAK,CAAC,EAAG,IAAI,SAAU+Q,GACxBqlO,EAAkB7gD,EAAUxkL,KAC9B2lE,EAAaw/J,EAAQnlO,IAAQwkL,EAASxkL,GAAOolO,EAAYplO,OAG7D,IAAIslO,EAAW,CACbh0O,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAEVwpN,EAAez1O,KAAKsN,MAAQrK,EAAOk/C,cAAc0zB,EAAc2/J,GAOnE,SAASD,EAAkB7gD,EAAUxkL,GACnC,OAAwB,MAAjBwkL,EAASxkL,IAAkC,SAAlBwkL,EAASxkL,GAP3CtN,EAAOzD,KAAK,CAAC,EAAG,IAAI,SAAU+Q,GACvBqlO,EAAkB7gD,EAAUxkL,KAC/BwkL,EAASxkL,GAAOulO,EAAaJ,EAAQnlO,IAAQolO,EAAYplO,OAQ7DlQ,KAAKw0O,IAAM9/C,EAAS,GACpB10L,KAAKy0O,IAAM//C,EAAS,IAWtB3oL,YAAa,SAAUxL,EAAMwxG,GAC3BnvG,EAAOogB,QAAQziB,KAAUA,EAAOA,EAAK,IAC5B,MAATwxG,IAAkBA,GAAQ,GAC1B,IAAI2jI,EAAU11O,KAAK40O,YAAYr0O,GAC3Bub,EAAQ9b,KAAKu0O,WACbv0K,EAAO01K,EAAQX,aAEnB,GAAIhjI,KAAW2jI,EAAQx6N,MAAQY,EAAMvH,MAAM2G,MAAQw6N,EAAQx6N,KAAOY,EAAMu+D,IAAIn/D,KAAOk5N,GACjF,MAAO,CAAC/8M,IAAKA,KAGf,IAAIs+M,EAAOD,EAAQb,IAEfe,EAAU51O,KAAKm1O,cAAc,CAACr5N,EAAMvH,MAAM2G,KAAM8kD,IAAO41K,QAE3D,MAAqB,aAAjB51O,KAAKs0E,QACA,CAACt0E,KAAKsN,MAAM7H,EAAIkwO,EAAO31O,KAAKw0O,IAAMx0O,KAAKw0O,IAAM,EAAGx0O,KAAKsN,MAAM5H,EAAIkwO,EAAU51O,KAAKy0O,IAAMz0O,KAAKy0O,IAAM,GAGjG,CAACz0O,KAAKsN,MAAM7H,EAAImwO,EAAU51O,KAAKw0O,IAAMx0O,KAAKw0O,IAAM,EAAGx0O,KAAKsN,MAAM5H,EAAIiwO,EAAO31O,KAAKy0O,IAAMz0O,KAAKy0O,IAAM,IAUxGp3J,YAAa,SAAU/lD,GACrB,IAAI0oC,EAAOhgE,KAAK61O,YAAYv+M,GAC5B,OAAO0oC,GAAQA,EAAK9kD,MAUtBgpH,WAAY,SAAU3jI,EAAMwxG,GAC1B,IAAIz6E,EAAQt3B,KAAK+L,YAAYxL,EAAMwxG,GACnC,MAAO,CACLoyB,aAAc,CACZ1+H,EAAG6xB,EAAM,IAAMt3B,KAAKw0O,IAAMx0O,KAAKk1O,YAAc,EAC7CxvO,EAAG4xB,EAAM,IAAMt3B,KAAKy0O,IAAMz0O,KAAKk1O,YAAc,EAC7C1zO,MAAOxB,KAAKw0O,IAAMx0O,KAAKk1O,WACvBhpO,OAAQlM,KAAKy0O,IAAMz0O,KAAKk1O,YAE1Bx8M,OAAQpB,EACRw+M,GAAI,CAACx+M,EAAM,GAAKt3B,KAAKw0O,IAAM,EAAGl9M,EAAM,GAAKt3B,KAAKy0O,IAAM,GACpDsB,GAAI,CAACz+M,EAAM,GAAKt3B,KAAKw0O,IAAM,EAAGl9M,EAAM,GAAKt3B,KAAKy0O,IAAM,GACpDuB,GAAI,CAAC1+M,EAAM,GAAKt3B,KAAKw0O,IAAM,EAAGl9M,EAAM,GAAKt3B,KAAKy0O,IAAM,GACpDwB,GAAI,CAAC3+M,EAAM,GAAKt3B,KAAKw0O,IAAM,EAAGl9M,EAAM,GAAKt3B,KAAKy0O,IAAM,KAUxDoB,YAAa,SAAUv+M,GACrB,IAAI4+M,EAAOrqO,KAAK+N,OAAO0d,EAAM,GAAKt3B,KAAKsN,MAAM7H,GAAKzF,KAAKw0O,KAAO,EAC1D2B,EAAOtqO,KAAK+N,OAAO0d,EAAM,GAAKt3B,KAAKsN,MAAM5H,GAAK1F,KAAKy0O,KAAO,EAC1D34N,EAAQ9b,KAAKu0O,WAAWz4N,MAE5B,MAAqB,aAAjB9b,KAAKs0E,QACAt0E,KAAKo2O,sBAAsBD,EAAMD,EAAO,EAAGp6N,GAG7C9b,KAAKo2O,sBAAsBF,EAAMC,EAAO,EAAGr6N,IAMpD3M,eAAgBvM,EAAO4G,MAAMgE,EAAW,eAKxC4B,iBAAkBxM,EAAO4G,MAAMgE,EAAW,eAQ1C4nO,iBAAkB,WAChB,IAAIt5N,EAAQ9b,KAAKyI,OAAOvG,IAAI,SAExB+2C,EAAKn9B,EAUT,GARIlZ,EAAOogB,QAAQi2B,IAAqB,IAAdA,EAAGhuC,SAC3BguC,EAAKA,EAAG,IAGN,UAAUmrB,KAAKnrB,KACjBn9B,EAAQ,CAACm9B,EAAK,SAAUA,EAAK,WAG3B,uBAAuBmrB,KAAKnrB,GAAK,CACnC,IAAI1kC,EAAQvU,KAAK40O,YAAY37L,GACzB27I,EAAWrgL,EAAMyrD,KACrB40H,EAASyhD,SAASzhD,EAASv0H,WAAa,GACxC,IAAIga,EAAMr6E,KAAKg1O,YAAYpgD,GAAW,GACtC94K,EAAQ,CAACvH,EAAMwgO,aAAc16J,EAAI06J,cAG/B,oCAAoC3wK,KAAKnrB,KAC3Cn9B,EAAQ,CAACm9B,EAAIA,IAGf,IAAIlkC,EAAM/U,KAAKm1O,cAAcr5N,GAM7B,OAJI/G,EAAIR,MAAM2G,KAAOnG,EAAIslE,IAAIn/D,MAC3BY,EAAMzU,UAGDyU,GAWTq5N,cAAe,SAAUr5N,GAEvB,IAAIw6N,EADJx6N,EAAQ,CAAC9b,KAAK40O,YAAY94N,EAAM,IAAK9b,KAAK40O,YAAY94N,EAAM,KAGxDA,EAAM,GAAGZ,KAAOY,EAAM,GAAGZ,OAC3Bo7N,GAAW,EACXx6N,EAAMzU,WAGR,IAAIq7H,EAAS72H,KAAK+N,MAAMkC,EAAM,GAAGZ,KAAOk5N,GAAqBvoO,KAAK+N,MAAMkC,EAAM,GAAGZ,KAAOk5N,GAAqB,EAWzGp0K,EAAO,IAAIC,KAAKnkD,EAAM,GAAGZ,MACzBq7N,EAAev2K,EAAKM,UACpBk2K,EAAa16N,EAAM,GAAGkkD,KAAKM,UAC/BN,EAAKi1K,QAAQsB,EAAe7zG,EAAS,GAErC,IAAI+zG,EAAUz2K,EAAKM,UAEnB,GAAIm2K,IAAYD,EAAY,CAC1B,IAAIx/M,EAAOgpC,EAAKw7B,UAAY1/E,EAAM,GAAGZ,KAAO,EAAI,GAAK,EAErD,OAAQu7N,EAAUz2K,EAAKM,aAAek2K,IAAex2K,EAAKw7B,UAAY1/E,EAAM,GAAGZ,MAAQ8b,EAAO,EAC5F0rG,GAAU1rG,EACVgpC,EAAKi1K,QAAQwB,EAAUz/M,GAI3B,IAAIwrG,EAAQ32H,KAAK+N,OAAO8oH,EAAS5mH,EAAM,GAAG+4N,IAAM,GAAK,GACjDe,EAAUU,EAAoB,EAAR9zG,EAAYA,EAAQ,EAE9C,OADA8zG,GAAYx6N,EAAMzU,UACX,CACLyU,MAAO,CAACA,EAAM,GAAGi5N,aAAcj5N,EAAM,GAAGi5N,cACxCxgO,MAAOuH,EAAM,GACbu+D,IAAKv+D,EAAM,GACX4mH,OAAQA,EACRF,MAAOA,EAEPozG,QAASA,EACTc,MAAO56N,EAAM,GAAG+4N,IAChB8B,MAAO76N,EAAM,GAAG+4N,MAapBuB,sBAAuB,SAAUR,EAASf,EAAK/4N,GAC7C,IAAIomH,EAAYliI,KAAKm1O,cAAcr5N,GAEnC,GAAI85N,EAAU1zG,EAAUM,OAAqB,IAAZozG,GAAiBf,EAAM3yG,EAAUw0G,OAASd,IAAY1zG,EAAUM,OAASqyG,EAAM3yG,EAAUy0G,MACxH,OAAO,EAGT,IAAIC,EAAyB,GAAfhB,EAAU,GAAS1zG,EAAUw0G,MAAQ7B,EAC/C70K,EAAO,IAAIC,KAAKiiE,EAAU3tH,MAAM2G,MAEpC,OADA8kD,EAAKi1K,QAAQ/yG,EAAU3tH,MAAMyoD,EAAI45K,GAC1B52O,KAAK40O,YAAY50K,KAG5Bq0K,EAASlyO,WAAakyO,EAASvmO,UAAU3L,WACzCkyO,EAASv0I,kBAAoBu0I,EAASvmO,UAAUgyF,kBAEhDu0I,EAASzwM,OAAS,SAAU9jC,EAASyG,GACnC,IAAIswO,EAAe,GAYnB,OAXA/2O,EAAQs+B,cAAc,YAAY,SAAUk2M,GAC1C,IAAI5vJ,EAAW,IAAI2vJ,EAASC,EAAex0O,EAASyG,GACpDswO,EAAah2O,KAAK6jF,GAClB4vJ,EAAch0O,iBAAmBokF,KAEnC5kF,EAAQ04C,YAAW,SAAUs+L,GACoB,aAA3CA,EAAe50O,IAAI,sBAErB40O,EAAex2O,iBAAmBu2O,EAAaC,EAAe50O,IAAI,kBAAoB,OAGnF20O,GAUT1mL,EAAiBjJ,SAAS,WAAYmtL,GACtC,IAAI90O,EAAW80O,EACf3xO,EAAOC,QAAUpD,G,qBC3ZjB,IAAIL,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cACtBD,EAAOD,EAAMC,KAyBjB,SAASI,EAASO,GAChB,IAAIi3O,EAAe33O,IACnBU,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAI4xD,EAAQ5xD,EAAYI,IAAI,SAE5B,GAAIwxD,EAAO,CACT,IAAIsjL,EAAgBD,EAAa70O,IAAIwxD,IAAUqjL,EAAax0O,IAAImxD,EAAO,IACnEnzD,EAAOuB,EAAYtB,UACnBy2O,EAAY,CAEdC,qBAAsB32O,EAAK42J,mBAAmB,wBAC9CohD,qBAAsBh4M,EAAK42J,mBAAmB,wBAC9CggF,iBAAkB52O,EAAK42J,mBAAmB,oBAC1CigF,mBAAoB72O,EAAK42J,mBAAmB,sBAC5CkgF,iBAAkB92O,EAAK42J,mBAAmB,oBAC1C52J,KAAMA,EACNuB,YAAaA,GAGf,IAAKm1O,EAAUE,mBAAsBF,EAAUI,mBAAoBJ,EAAUG,mBAC3E,OAGFJ,EAAc/rO,QAAU1K,EAAK+/F,mBAAmB,kBAAmB02I,EAAcA,EAAc/rO,OAAS,GAAGnJ,aAC3Gk1O,EAAcn2O,KAAKo2O,OAGvBF,EAAa53O,KAAKm4O,GAGpB,SAASA,EAAeN,GACtB73O,EAAK63O,GAAe,SAAUO,EAAiBC,GAC7C,IAAIC,EAAY,GACZC,EAAY,CAACrgN,IAAKA,KAClB+yD,EAAO,CAACmtJ,EAAgBL,qBAAsBK,EAAgBh/B,sBAC9Do/B,EAAaJ,EAAgBh3O,KAC7B82O,EAAmBE,EAAgBF,iBAGnCv7K,EAAU67K,EAAW1wO,IAAImjF,GAAM,SAAU9wE,EAAIC,EAAI3Y,GACnD,IAOIg3O,EACAC,EARA5tO,EAAM0tO,EAAWz1O,IAAIq1O,EAAgBJ,iBAAkBv2O,GAG3D,GAAImY,MAAM9O,GACR,OAAOytO,EAMLL,EACFQ,EAAsBF,EAAW72O,YAAYF,GAE7Cg3O,EAAUD,EAAWz1O,IAAIq1O,EAAgBH,mBAAoBx2O,GAM/D,IAFA,IAAIk3O,EAAczgN,IAET7e,EAAIg/N,EAAa,EAAGh/N,GAAK,EAAGA,IAAK,CACxC,IAAIy+N,EAAYD,EAAcx+N,GAM9B,GAJK6+N,IACHQ,EAAsBZ,EAAU12O,KAAKg3J,WAAW0/E,EAAUG,mBAAoBQ,IAG5EC,GAAuB,EAAG,CAC5B,IAAIpsO,EAAMwrO,EAAU12O,KAAKk2J,cAAcwgF,EAAUC,qBAAsBW,GAEvE,GAAI5tO,GAAO,GAAKwB,EAAM,GACtBxB,GAAO,GAAKwB,EAAM,EAChB,CACExB,GAAOwB,EACPqsO,EAAcrsO,EACd,QAOR,OAFAgsO,EAAU,GAAKxtO,EACfwtO,EAAU,GAAKK,EACRL,KAETE,EAAW34N,UAAUu8C,QAAQO,GAE7By7K,EAAgBh3O,KAAOu7D,KAI3Bp5D,EAAOC,QAAUpD,G,qBCrHjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI2vO,EAAe,EAAQ,QAEvB51K,EAAY,EAAQ,QAsBxB/5D,EAAQ+2E,kBAAkB/2E,EAAQ8sC,SAAS4rE,UAAUE,cAAe+2H,GACpE51K,EAAUoiG,yBAAyB,UAAU,WAE3C,MAAO,Y,qBCnCT,IAAIn8J,EAAU,EAAQ,QA4BtBA,EAAQC,eAAe,CACrB5I,KAAM,qBACN6I,MAAO,qBACPC,OAAQ,8BACP,eAQHH,EAAQC,eAAe,CACrB5I,KAAM,uBACN6I,MAAO,uBACPC,OAAQ,gCACP,gB,qBChEH,IAAIkyF,EAAO,EAAQ,QAEftoD,EAAO,EAAQ,QAEfqzL,EAAY,EAAQ,QAEpBtwK,EAAW,EAAQ,QAEnBqe,EAAY,EAAQ,QAEpBl7C,EAAa,EAAQ,QA2DrB2/M,EAAS,SAEb,SAASC,EAAgBC,EAAS53G,EAAYh4H,GAC5C,MAAO,CACL7I,KAAMy4O,EACN5vO,MAAOA,EAEP8J,OAAQkuH,EAAWluH,OAEnBquN,UAAWngG,EAAWmgG,UACtBjxE,cAAc,EACdl0E,QAAShzE,EAAMmiB,IACf8wD,QAASjzE,EAAMoiB,IACf29G,aAAc//H,EAAM+/H,aACpBxuG,OAAQvxB,EAAMuxB,OACdC,OAAQxxB,EAAMwxB,OACdJ,WAAYpxB,EAAMoxB,WAClB+uG,WAAYngI,EAAM2mJ,QAClBnjF,UAAWxjE,EAAMwjE,UACjBqjF,MAAO7mJ,EAAM6mJ,MACbrxI,KAAMq6N,GAIV,SAASA,IACP5kK,EAAUz1D,KAAK9d,KAAKsI,OAGtB,SAAS8vO,KAETA,EAAWtqO,UAAUygB,QAAU,aAE/B,IAAI8pN,EAAe,CAAC,QAAS,WAAY,aAAc,WAAY,UAAW,YAAa,YAAa,eAWpGjxE,EAAU,SAAU5hD,EAAS56F,EAAS0tN,EAAO1H,GAC/C17K,EAASpoD,KAAK9M,MACdA,KAAKwlH,QAAUA,EACfxlH,KAAK4qB,QAAUA,EACf5qB,KAAK4wO,YAAcA,EACnB0H,EAAQA,GAAS,IAAIF,EAKrBp4O,KAAKs4O,MAAQ,KAObt4O,KAAKu4O,SAAW,GAMhBv4O,KAAK2xO,iBAML3xO,KAAKm6H,OAMLn6H,KAAKo6H,OAMLp6H,KAAKw4O,YACLhT,EAAU14N,KAAK9M,MACfA,KAAKy4O,gBAAgBH,IAiPvB,SAASI,EAAQviI,EAAa1wG,EAAGC,GAC/B,GAAIywG,EAAYA,EAAYtpD,UAAY,cAAgB,WAAWpnD,EAAGC,GAAI,CACxE,IACIwwD,EADAzqC,EAAK0qF,EAGT,MAAO1qF,EAAI,CAIT,GAAIA,EAAG8/B,WAAa9/B,EAAG8/B,SAASr9C,QAAQzI,EAAGC,GACzC,OAAO,EAGL+lB,EAAG7Z,SACLskD,GAAW,GAGbzqC,EAAKA,EAAG5J,OAGV,OAAOq0C,GAAW8hL,EAGpB,OAAO,EAOT,SAASW,EAAkBC,EAAiBnzO,EAAGC,GAC7C,IAAIklB,EAAUguN,EAAgBhuN,QAC9B,OAAOnlB,EAAI,GAAKA,EAAImlB,EAAQoB,YAActmB,EAAI,GAAKA,EAAIklB,EAAQqB,YA9QjEm7I,EAAQt5J,UAAY,CAClBC,YAAaq5J,EACbqxE,gBAAiB,SAAUH,GACrBt4O,KAAKs4O,OACPt4O,KAAKs4O,MAAM/pN,UAGT+pN,IACF79I,EAAKt7F,KAAKk5O,GAAc,SAAU1rO,GAChC2rO,EAAM1xO,IAAM0xO,EAAM1xO,GAAG+F,EAAM3M,KAAK2M,GAAO3M,QACtCA,MAEHs4O,EAAMzrN,QAAU7sB,MAGlBA,KAAKs4O,MAAQA,GAEfnxG,UAAW,SAAU7+H,GACnB,IAAI7C,EAAI6C,EAAMmiB,IACV/kB,EAAI4C,EAAMoiB,IACVmuN,EAAYF,EAAkB34O,KAAMyF,EAAGC,GACvCozO,EAAc94O,KAAKu4O,SACnBQ,EAAoBD,EAAY1mO,OAKhC2mO,IAAsBA,EAAkB7rL,OAC1C4rL,EAAc94O,KAAK46H,UAAUk+G,EAAYrzO,EAAGqzO,EAAYpzO,GACxDqzO,EAAoBD,EAAY1mO,QAGlC,IAAI4mO,EAAUh5O,KAAKu4O,SAAWM,EAAY,CACxCpzO,EAAGA,EACHC,EAAGA,GACD1F,KAAK46H,UAAUn1H,EAAGC,GAClBuzO,EAAgBD,EAAQ5mO,OACxBkmO,EAAQt4O,KAAKs4O,MACjBA,EAAMjF,WAAaiF,EAAMjF,UAAU4F,EAAgBA,EAAc9tM,OAAS,WAEtE4tM,GAAqBE,IAAkBF,GACzC/4O,KAAK8lO,kBAAkBgT,EAAa,WAAYxwO,GAIlDtI,KAAK8lO,kBAAkBkT,EAAS,YAAa1wO,GAEzC2wO,GAAiBA,IAAkBF,GACrC/4O,KAAK8lO,kBAAkBkT,EAAS,YAAa1wO,IAGjD8oO,SAAU,SAAU9oO,GAClB,IAAI4wO,EAAe5wO,EAAMgpO,eACrBG,EAAiBnpO,EAAMmpO,eAEN,mBAAjByH,GACFl5O,KAAK8lO,kBAAkB9lO,KAAKu4O,SAAU,WAAYjwO,GAG/B,iBAAjB4wO,IAGDzH,GAAkBzxO,KAAKs9B,QAAQ,YAAa,CAC3C79B,KAAM,YACN6I,MAAOA,KAQb20E,OAAQ,SAAU30E,GAChBtI,KAAKu4O,SAAW,IAQlBxrN,SAAU,SAAUoM,EAAWggN,GAC7B,IAAItsN,EAAU7sB,KAAKm5B,GACnBtM,GAAWA,EAAQ/f,KAAK9M,KAAMm5O,IAMhC5qN,QAAS,WACPvuB,KAAKs4O,MAAM/pN,UACXvuB,KAAKwlH,QAAUxlH,KAAKs4O,MAAQt4O,KAAK4qB,QAAU,MAO7Cw+I,eAAgB,SAAU9sH,GACxB,IAAIg8L,EAAQt4O,KAAKs4O,MACjBA,EAAMjF,WAAaiF,EAAMjF,UAAU/2L,IAWrCwpL,kBAAmB,SAAUxlG,EAAYnnG,EAAW7wB,GAClDg4H,EAAaA,GAAc,GAC3B,IAAI70G,EAAK60G,EAAWluH,OAEpB,IAAIqZ,IAAMA,EAAG7Z,OAAb,CAIA,IAAIy3J,EAAe,KAAOlwI,EACtBigN,EAAcnB,EAAgB9+M,EAAWmnG,EAAYh4H,GAEzD,MAAOmjB,EAKL,GAJAA,EAAG49I,KAAkB+vE,EAAY5pF,aAAe/jI,EAAG49I,GAAcv8J,KAAK2e,EAAI2tN,IAC1E3tN,EAAG6R,QAAQnE,EAAWigN,GACtB3tN,EAAKA,EAAG5J,OAEJu3N,EAAY5pF,aACd,MAIC4pF,EAAY5pF,eAEfxvJ,KAAKs9B,QAAQnE,EAAWigN,GAGxBp5O,KAAK4qB,SAAW5qB,KAAK4qB,QAAQyuN,gBAAe,SAAUC,GACjB,oBAAxBA,EAAMjwE,IACfiwE,EAAMjwE,GAAcv8J,KAAKwsO,EAAOF,GAG9BE,EAAMh8M,SACRg8M,EAAMh8M,QAAQnE,EAAWigN,SAcjCx+G,UAAW,SAAUn1H,EAAGC,EAAG6zO,GAOzB,IANA,IAAIp2N,EAAOnjB,KAAKwlH,QAAQC,iBACpBv2G,EAAM,CACRzJ,EAAGA,EACHC,EAAGA,GAGIuI,EAAIkV,EAAKlY,OAAS,EAAGgD,GAAK,EAAGA,IAAK,CACzC,IAAIurO,EAEJ,GAAIr2N,EAAKlV,KAAOsrO,IACZp2N,EAAKlV,GAAGqlC,SAAWkmM,EAAmBd,EAAQv1N,EAAKlV,GAAIxI,EAAGC,OAC3DwJ,EAAIuxN,YAAcvxN,EAAIuxN,UAAYt9M,EAAKlV,IAEpCurO,IAAqBxB,GAAQ,CAC/B9oO,EAAIkD,OAAS+Q,EAAKlV,GAClB,OAKN,OAAOiB,GAET0iO,eAAgB,SAAUtpO,EAAOwyF,GAC1B96F,KAAKw4O,cACRx4O,KAAKw4O,YAAc,IAAIngN,GAGzB,IAAIohN,EAAaz5O,KAAKw4O,YACZ,UAAV19I,GAAqB2+I,EAAW3gN,QAChC,IAAIO,EAAcogN,EAAW9gN,UAAUrwB,EAAOtI,KAAK46H,UAAUtyH,EAAMmiB,IAAKniB,EAAMoiB,IAAK,MAAMtY,OAAQpS,KAAKs4O,MAAMt2H,KAG5G,GAFU,QAAVlnB,GAAmB2+I,EAAW3gN,QAE1BO,EAAa,CACf,IAAI55B,EAAO45B,EAAY55B,KACvB6I,EAAM+/H,aAAe5oI,EACrBO,KAAK8lO,kBAAkB,CACrB1zN,OAAQinB,EAAYjnB,QACnB3S,EAAM45B,EAAY/wB,UAK3BmyF,EAAKt7F,KAAK,CAAC,QAAS,YAAa,UAAW,aAAc,WAAY,gBAAgB,SAAUwN,GAC9Fy6J,EAAQt5J,UAAUnB,GAAQ,SAAUrE,GAClC,IAGI0wO,EACAC,EAJAxzO,EAAI6C,EAAMmiB,IACV/kB,EAAI4C,EAAMoiB,IACVmuN,EAAYF,EAAkB34O,KAAMyF,EAAGC,GAU3C,GANa,YAATiH,GAAuBksO,IAEzBG,EAAUh5O,KAAK46H,UAAUn1H,EAAGC,GAC5BuzO,EAAgBD,EAAQ5mO,QAGb,cAATzF,EACF3M,KAAK05O,QAAUT,EACfj5O,KAAK25O,WAAa,CAACrxO,EAAMmiB,IAAKniB,EAAMoiB,KAEpC1qB,KAAK45O,MAAQX,OACR,GAAa,YAATtsO,EACT3M,KAAK45O,MAAQX,OACR,GAAa,UAATtsO,EAAkB,CAC3B,GAAI3M,KAAK05O,UAAY15O,KAAK45O,QAItB55O,KAAK25O,YACNxnM,EAAK5Z,KAAKv4B,KAAK25O,WAAY,CAACrxO,EAAMmiB,IAAKniB,EAAMoiB,MAAQ,EACtD,OAGF1qB,KAAK25O,WAAa,KAGpB35O,KAAK8lO,kBAAkBkT,EAASrsO,EAAMrE,OAuC1CmyF,EAAKprF,MAAM+3J,EAASlyG,GACpBulC,EAAKprF,MAAM+3J,EAASo+D,GACpB,IAAIjmO,EAAW6nK,EACf1kK,EAAOC,QAAUpD,G,qBC9ZjB,IAAIL,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KAEb8+I,EAAsB,EAAQ,QAE9BtuF,EAAesuF,EAAoBtuF,aACnCC,EAAmBquF,EAAoBruF,iBAoB3C,SAASrwD,EAASO,EAASyG,GACzBzG,EAAQumC,iBAAiB,SAAS,SAAUvkC,GAC1C,IAAImB,EAASnB,EAAYI,IAAI,UACzB7B,EAAWyB,EAAYxB,iBAE3B,GAAID,GAA8B,SAAlBA,EAASZ,KAAiB,CACxC,IAAIc,EAAOuB,EAAYtB,UACnB2B,EAAa,GACjBhD,EAAKkB,EAAS8B,YAAY,SAAUguF,GAClChuF,EAAaA,EAAWq1D,OAAOj3D,EAAKyJ,aAAammF,GAAU,OAG7D,IAAK,IAAIvvF,EAAY,EAAGA,EAAYL,EAAK4hB,QAASvhB,IAAa,CAI7D,IAHA,IAAI+M,EAAQ,GACRu9C,GAAW,EAENj9C,EAAI,EAAGA,EAAI9L,EAAW8I,OAAQgD,IAAK,CAC1C,IAAIxC,EAAMlL,EAAK2B,IAAIC,EAAW8L,GAAIrN,GAE7BmY,MAAMtN,KACTy/C,GAAW,GAGbv9C,EAAM9M,KAAK4K,GAGTy/C,EACF3qD,EAAKugB,cAAclgB,EAAWP,EAAS0L,YAAY4B,IAGnDpN,EAAKugB,cAAclgB,EAAW,CAACy2B,IAAKA,MAIxCu4B,EAAiBrvD,EAAK+lC,YACZrjC,GAAqB,SAAXA,GACpB0sD,EAAa7tD,MAKnBY,EAAOC,QAAUpD,G,qBCpEjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBkkF,EAAO,EAAQ,QAEf4tD,EAAiB,EAAQ,QAoBzBmlG,EAAgB/yJ,EAAK7B,QAAQgC,UAC7B6yJ,EAAsB,yBAE1B,SAASC,EAAUjqN,GACjB9vB,KAAK8vB,MAAQA,EAGfiqN,EAAUh5O,cAAgB,CACxBK,MAAM,EACN3B,KAAM,GAEN+oC,KAAM,CAEJ0+C,KAAM,+DACNC,IAAK,kFACLzzB,MAAO,oYAMTpgC,MAAO1wB,EAAO8E,MAAMmyO,EAAcvmN,OAClCzzB,OAAQ,GACRk3C,YAAa,IAEf,IAAI+9F,EAAQilG,EAAUjsO,UAEtBgnI,EAAMklG,SAAW,WACf,IAAIlqN,EAAQ9vB,KAAK8vB,MACbmqN,EAAiBnqN,EAAM5tB,IAAI,QAC3Bg4O,EAAQ,GAMZ,OALAt3O,EAAOzD,KAAK2wB,EAAM5tB,IAAI,SAAS,SAAUzC,GACnCw6O,EAAex6O,KACjBy6O,EAAMz6O,GAAQw6O,EAAex6O,OAG1By6O,GAGT,IAAIC,EAAqB,CACvB,KAAQ,SAAUvlN,EAAY5N,EAAUllB,EAAaguB,GACnD,GAAmB,QAAf8E,EACF,OAAOhyB,EAAOie,MAAM,CAClB1Y,GAAI6e,EACJvnB,KAAM,OAENc,KAAMuB,EAAYI,IAAI,QACtBwxD,MAAO5xD,EAAYI,IAAI,SACvBwhF,UAAW5hF,EAAYI,IAAI,aAC3ByhF,SAAU7hF,EAAYI,IAAI,aACzB4tB,EAAM5tB,IAAI,gBAAkB,IAAI,IAGvC,IAAO,SAAU0yB,EAAY5N,EAAUllB,EAAaguB,GAClD,GAAmB,SAAf8E,EACF,OAAOhyB,EAAOie,MAAM,CAClB1Y,GAAI6e,EACJvnB,KAAM,MAENc,KAAMuB,EAAYI,IAAI,QACtBwxD,MAAO5xD,EAAYI,IAAI,SACvBwhF,UAAW5hF,EAAYI,IAAI,aAC3ByhF,SAAU7hF,EAAYI,IAAI,aACzB4tB,EAAM5tB,IAAI,eAAiB,IAAI,IAGtC,MAAS,SAAU0yB,EAAY5N,EAAUllB,EAAaguB,GACpD,IAAIsqN,EAAUt4O,EAAYI,IAAI,WAAa43O,EAE3C,GAAmB,SAAfllN,GAAwC,QAAfA,EAE3B,OADA9E,EAAM0zJ,cAAc,QAAS42D,EAAU,SAAW,YAC3Cx3O,EAAOie,MAAM,CAClB1Y,GAAI6e,EACJ0sC,MAAO0mL,EAAU,GAAKN,GACrBhqN,EAAM5tB,IAAI,iBAAmB,IAAI,KAItCm4O,EAAa,CAAC,CAAC,OAAQ,OAAQ,CAAC,UAEpCvlG,EAAMlwI,QAAU,SAAU9E,EAASyG,EAAK9G,GACtC,IAAIqwB,EAAQ9vB,KAAK8vB,MACbinB,EAAcjnB,EAAM5tB,IAAI,eAAiBzC,GAE7C,GAAK06O,EAAmB16O,GAAxB,CAIA,IAuDI66O,EAvDA71N,EAAY,CACd+xD,OAAQ,IAGN+jK,EAAyB,SAAUz4O,GACrC,IAAI8yB,EAAa9yB,EAAYu8B,QACzBrX,EAAWllB,EAAYqG,GACvBqyO,EAAeL,EAAmB16O,GAAMm1B,EAAY5N,EAAUllB,EAAaguB,GAE3E0qN,IAEF53O,EAAO6O,SAAS+oO,EAAc14O,EAAYjC,QAC1C4kB,EAAU+xD,OAAO31E,KAAK25O,IAIxB,IAAIn6O,EAAWyB,EAAYxB,iBAE3B,GAAID,GAA8B,gBAAlBA,EAASZ,OAAoC,SAATA,GAA4B,QAATA,GAAiB,CACtF,IAAIo4K,EAAex3K,EAASioO,eAAe,WAAW,GAEtD,GAAIzwD,EAAc,CAChB,IAAIz1K,EAAUy1K,EAAa9nK,IACvBkkB,EAAW7xB,EAAU,OACrBmN,EAAYzP,EAAQgxD,gBAAgB,CACtC7zB,SAAUhJ,EACV9sB,MAAOrF,EAAYI,IAAIyK,KAAO,SAC9BxE,GAAIrG,EAAYI,IAAIyK,KAAO,QAC1B,GACCqgC,EAAYz9B,EAAUwyB,eAC1Btd,EAAUwP,GAAYxP,EAAUwP,IAAa,GAE7C,IAAK,IAAIhmB,EAAI,EAAGA,GAAK++B,EAAW/+B,IAC9BwW,EAAUwP,GAAU+Y,GAAavoB,EAAUwP,GAAU+Y,IAAc,GAGrEvoB,EAAUwP,GAAU+Y,GAAWiY,YAAuB,QAATxlD,KAqBnD,GAhBAmD,EAAOzD,KAAKk7O,GAAY,SAAUI,GAC5B73O,EAAOiwB,QAAQ4nN,EAAOh7O,IAAS,GACjCmD,EAAOzD,KAAKs7O,GAAO,SAAUj2O,GAC3BsrB,EAAM0zJ,cAAch/K,EAAM,gBAIhCsrB,EAAM0zJ,cAAc/jL,EAAM,YAC1BK,EAAQs+B,cAAc,CACpBnB,SAAU,SACVmE,MAAsB,MAAf2V,EAAsB,KAAO,CAClCA,YAAaA,IAEdwjM,GAGU,UAAT96O,EAAkB,CACpB,IAAI26O,EAAU31N,EAAU+xD,QAAU/xD,EAAU+xD,OAAO,IAAM/xD,EAAU+xD,OAAO,GAAG9iB,QAAUomL,EACvFQ,EAAWF,EAAUx3O,EAAOie,MAAM,CAChC6yC,MAAOmmL,EAAcvmN,MAAM8zD,OAC1ByyJ,EAAcvmN,OAAS1wB,EAAO8E,MAAMmyO,EAAcvmN,OAGvD/sB,EAAIC,eAAe,CACjB/G,KAAM,kBACNi7O,YAAaj7O,EACbglB,UAAWA,EACX61N,SAAUA,EACVl4C,YAAa,gBAIjBh6L,EAAQC,eAAe,CACrB5I,KAAM,kBACN6I,MAAO,mBACPC,OAAQ,qBACP,SAAU21B,EAASp+B,GACpBA,EAAQgjE,YAAY5kC,EAAQzZ,cAE9BiwH,EAAextF,SAAS,YAAa6yL,GACrC,IAAIx6O,EAAWw6O,EACfr3O,EAAOC,QAAUpD,G,qBCxNjB,IAYIo7O,EAZA7xN,EAAM,EAAQ,QAEd8xN,EAAM,gCACNC,EAAwB,qBAAXjuN,OAAyB,KAAOA,OAC7CkuN,GAAY,EACZ91B,EAAM61B,GAAOA,EAAI7vN,SAErB,SAASs4L,EAAWp0E,GAClB,OAAOyrG,EAAazrG,GAMtB,GAAI81E,IAAQl8L,EAAImB,gBACd,KACG+6L,EAAI+1B,WAAWC,OAASh2B,EAAI+1B,WAAWz1O,IAAI,QAASs1O,GAErDD,EAAe,SAAUzrG,GACvB,OAAO81E,EAAIt5L,cAAc,UAAYwjH,EAAU,oBAEjD,MAAOviH,GACPguN,EAAe,SAAUzrG,GACvB,OAAO81E,EAAIt5L,cAAc,IAAMwjH,EAAU,WAAa0rG,EAAM,qBAMlE,SAASK,IACP,IAAIH,GAAc91B,EAAlB,CAIA81B,GAAY,EACZ,IAAII,EAAcl2B,EAAIk2B,YAElBA,EAAYjwO,OAAS,GACvB+5M,EAAIm2B,mBAAmBC,QAAQ,SAAU,8BAGzCF,EAAY,GAAGE,QAAQ,SAAU,+BAIrCz4O,EAAQqiN,IAAMA,EACdriN,EAAQ2gN,WAAaA,EACrB3gN,EAAQs4O,QAAUA,G,mBCTlB,SAAS17O,EAASq1B,GAChB,MAAO,CACLA,WAAYA,EACZE,MAAO,SAAUhzB,EAAahC,GAC5B,IAAI4/J,EAAe5/J,EAAQ6/J,eAAe,CACxC1iI,SAAU,WAGZ,GAAKyiI,GAAiBA,EAAaz0J,OAAnC,CAIA,IAAI1K,EAAOuB,EAAYtB,UACvBD,EAAKw3J,YAAW,SAAU7nJ,GAGxB,IAFA,IAAIvD,EAAOpM,EAAK08C,QAAQ/sC,GAEfjC,EAAI,EAAGA,EAAIyxJ,EAAaz0J,OAAQgD,IACvC,IAAKyxJ,EAAazxJ,GAAGsvB,WAAW5wB,GAC9B,OAAO,EAIX,OAAO,QAMfjK,EAAOC,QAAUpD,G,qBClEjB,IAAIuqD,EAAO,EAAQ,QAEf+xI,EAAa,EAAQ,QAKrBt8L,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,WACN+R,MAAO,CACL+F,OAAQ,KACR3V,QAAQ,EACRygF,iBAAkB,MAEpB78E,MAAO,CACLq5C,OAAQ,OACRntC,KAAM,MAER+5C,UAAW,SAAUhnB,EAAKjzB,GACxBqqL,EAAWpwI,UAAUhnB,EAAKjzB,GAAO,MAIrC9O,EAAOC,QAAUpD,G,qBCHjB,IAAI6I,EAAU,EAAQ,QAElB+wH,EAAiB,EAAQ,QAoBzBkiH,EAAkBjzO,EAAQiJ,oBAAoB,CAChD5R,KAAM,cACN6R,OAAQ,SAAUw6N,EAAwBhsO,EAASyG,GACjD,IAAI80H,EAAqBv7H,EAAQmC,aAAa,WAC1C+3H,EAAY8xG,EAAuB5pO,IAAI,cAAgBm5H,GAAsBA,EAAmBn5H,IAAI,cAAgB,kBAGxHi3H,EAAejyE,SAAS,cAAe3gD,GAAK,SAAU6hD,EAAaz7B,EAAGnmB,GAElD,SAAdwzH,IAAyC,UAAhB5xE,GAA2B4xE,EAAUnnG,QAAQu1B,IAAgB,IACxF5hD,EAAe,CACb/G,KAAM,oBACN2oD,YAAaA,EACb3iD,EAAGknB,GAAKA,EAAE2uD,QACV51E,EAAGinB,GAAKA,EAAE4uD,cASlBl5C,OAAQ,SAAUviC,EAASyG,GACzB4yH,EAAe7wE,WAAW/hD,EAAIslB,QAAS,eACvCwvN,EAAgBpyO,WAAWjJ,KAAKyI,OAAQ,SAAUS,YAMpDqlB,QAAS,SAAUzuB,EAASyG,GAC1B4yH,EAAe7wE,WAAW,cAAe/hD,GACzC80O,EAAgBpyO,WAAWjJ,KAAKyI,OAAQ,UAAWS,cAGnD3J,EAAW87O,EACf34O,EAAOC,QAAUpD,G,qBC/EjB,IAAIuqD,EAAO,EAAQ,QAGfvqD,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,WACN+R,MAAO,CACLmuB,MAAO,MAET27M,iBAAkB,WAIhB,IAHA,IAAItT,EAAYhoO,KAAK8qG,YACjBnrE,EAAQ3/B,KAAKwR,MAAMmuB,MAEd1xB,EAAI,EAAGA,EAAI0xB,EAAM10B,OAAQgD,IAEhC+5N,EAAYA,GAAaroM,EAAM1xB,GAAG68F,YAGpC9qG,KAAK8qG,YAAck9H,EACnBhoO,KAAK2sD,QAAU3sD,KAAK2sD,SAAWq7K,GAEjCl7K,YAAa,WACX9sD,KAAKs7O,mBAKL,IAHA,IAAI37M,EAAQ3/B,KAAKwR,MAAMmuB,OAAS,GAC5BlxB,EAAQzO,KAAKikC,iBAERh2B,EAAI,EAAGA,EAAI0xB,EAAM10B,OAAQgD,IAC3B0xB,EAAM1xB,GAAGiT,MACZye,EAAM1xB,GAAG48F,kBAGXlrE,EAAM1xB,GAAGiT,KAAK04C,SAASnrD,EAAM,GAAIA,EAAM,GAAIkxB,EAAM1xB,GAAGyxB,yBAGxD+rB,UAAW,SAAUhnB,EAAKjzB,GAGxB,IAFA,IAAImuB,EAAQnuB,EAAMmuB,OAAS,GAElB1xB,EAAI,EAAGA,EAAI0xB,EAAM10B,OAAQgD,IAChC0xB,EAAM1xB,GAAGw9C,UAAUhnB,EAAK9E,EAAM1xB,GAAGuD,OAAO,IAG5Cu7C,WAAY,WAGV,IAFA,IAAIptB,EAAQ3/B,KAAKwR,MAAMmuB,OAAS,GAEvB1xB,EAAI,EAAGA,EAAI0xB,EAAM10B,OAAQgD,IAChC0xB,EAAM1xB,GAAG68F,aAAc,GAG3B7+F,gBAAiB,WAGf,OAFAjM,KAAKs7O,mBAEExxL,EAAKh8C,UAAU7B,gBAAgBa,KAAK9M,SAI/C0C,EAAOC,QAAUpD,G,qBCnCjB,IAAIuqD,EAAO,EAAQ,QAEf3X,EAAO,EAAQ,QAEfq7F,EAAoB,EAAQ,QAqB5B+tG,EAAUppM,EAAKzhC,IACf8qO,EAAUrpM,EAAK1hC,IACf6kH,EAAcnjF,EAAKmjF,YACnBmmH,EAAStpM,EAAKpO,KAEd5d,EAAI,GACJurL,EAAM,GACNx9J,EAAM,GAEV,SAASwnM,EAAYjkO,GACnB,OAAOsB,MAAMtB,EAAE,KAAOsB,MAAMtB,EAAE,IAGhC,SAASkkO,EAAYl3M,EAAKltB,EAAQhD,EAAOqnO,EAAQC,EAAQ31J,EAAK41J,EAAWC,EAAWn6O,EAAQigE,EAAgBG,GAoB1G,MAAuB,SAAnBH,GAA8BA,EAGzBm6K,EAAS11N,MAAMtmB,KAAMkJ,WAFrB+yO,EAAY31N,MAAMtmB,KAAMkJ,WA8CnC,SAAS8yO,EAASv3M,EAAKltB,EAAQhD,EAAOqnO,EAAQC,EAAQ31J,EAAK41J,EAAWC,EAAWn6O,EAAQigE,EAAgBG,GAIvG,IAHA,IAAIk6K,EAAU,EACVhsO,EAAMqE,EAED0B,EAAI,EAAGA,EAAI2lO,EAAQ3lO,IAAK,CAC/B,IAAIwB,EAAIF,EAAOrH,GAEf,GAAIA,GAAO2rO,GAAU3rO,EAAM,EACzB,MAGF,GAAIwrO,EAAYjkO,GAAI,CAClB,GAAIuqD,EAAc,CAChB9xD,GAAOg2E,EACP,SAGF,MAGF,GAAIh2E,IAAQqE,EACVkwB,EAAIyhD,EAAM,EAAI,SAAW,UAAUzuE,EAAE,GAAIA,EAAE,SAE3C,GAAI7V,EAAS,EAAG,CACd,IAAIu6O,EAAQ5kO,EAAO2kO,GACfnsO,EAAyB,MAAnB8xD,EAAyB,EAAI,EAEnCu6K,GAAW3kO,EAAE1H,GAAOosO,EAAMpsO,IAAQnO,EACtC65O,EAAO/pC,EAAKyqC,GACZzqC,EAAI3hM,GAAOosO,EAAMpsO,GAAOqsO,EACxBX,EAAOvnM,EAAKz8B,GACZy8B,EAAInkC,GAAO0H,EAAE1H,GAAOqsO,EACpB33M,EAAI01B,cAAcu3I,EAAI,GAAIA,EAAI,GAAIx9J,EAAI,GAAIA,EAAI,GAAIz8B,EAAE,GAAIA,EAAE,SAE1DgtB,EAAIknB,OAAOl0C,EAAE,GAAIA,EAAE,IAIvBykO,EAAUhsO,EACVA,GAAOg2E,EAGT,OAAOjwE,EAST,SAASgmO,EAAYx3M,EAAKltB,EAAQhD,EAAOqnO,EAAQC,EAAQ31J,EAAK41J,EAAWC,EAAWn6O,EAAQigE,EAAgBG,GAI1G,IAHA,IAAIk6K,EAAU,EACVhsO,EAAMqE,EAED0B,EAAI,EAAGA,EAAI2lO,EAAQ3lO,IAAK,CAC/B,IAAIwB,EAAIF,EAAOrH,GAEf,GAAIA,GAAO2rO,GAAU3rO,EAAM,EACzB,MAGF,GAAIwrO,EAAYjkO,GAAI,CAClB,GAAIuqD,EAAc,CAChB9xD,GAAOg2E,EACP,SAGF,MAGF,GAAIh2E,IAAQqE,EACVkwB,EAAIyhD,EAAM,EAAI,SAAW,UAAUzuE,EAAE,GAAIA,EAAE,IAC3CgkO,EAAO/pC,EAAKj6L,QAEZ,GAAI7V,EAAS,EAAG,CACd,IAAIs/E,EAAUhxE,EAAMg2E,EAChBm2J,EAAQ9kO,EAAO2pE,GAEnB,GAAIlf,EAEF,MAAOq6K,GAASX,EAAYnkO,EAAO2pE,IACjCA,GAAWgF,EACXm2J,EAAQ9kO,EAAO2pE,GAInB,IAAIo7J,EAAe,GACfH,EAAQ5kO,EAAO2kO,GACfG,EAAQ9kO,EAAO2pE,GAEnB,IAAKm7J,GAASX,EAAYW,GACxBZ,EAAOvnM,EAAKz8B,OACP,CAOL,IAAI8kO,EACAC,EAEJ,GARId,EAAYW,KAAWr6K,IACzBq6K,EAAQ5kO,GAGV06B,EAAKg4E,IAAIhkG,EAAGk2N,EAAOF,GAII,MAAnBt6K,GAA6C,MAAnBA,EAAwB,CACpD,IAAI9xD,EAAyB,MAAnB8xD,EAAyB,EAAI,EACvC06K,EAAa1wO,KAAKC,IAAI2L,EAAE1H,GAAOosO,EAAMpsO,IACrCysO,EAAa3wO,KAAKC,IAAI2L,EAAE1H,GAAOssO,EAAMtsO,SAErCwsO,EAAapqM,EAAK5Z,KAAK9gB,EAAG0kO,GAC1BK,EAAarqM,EAAK5Z,KAAK9gB,EAAG4kO,GAI5BC,EAAeE,GAAcA,EAAaD,GAC1CjnH,EAAYphF,EAAKz8B,EAAG0O,GAAIvkB,GAAU,EAAI06O,IAIxCf,EAAQ7pC,EAAKA,EAAKqqC,GAClBP,EAAQ9pC,EAAKA,EAAKoqC,GAClBP,EAAQrnM,EAAKA,EAAK6nM,GAClBP,EAAQtnM,EAAKA,EAAK4nM,GAClBr3M,EAAI01B,cAAcu3I,EAAI,GAAIA,EAAI,GAAIx9J,EAAI,GAAIA,EAAI,GAAIz8B,EAAE,GAAIA,EAAE,IAE1D69G,EAAYo8E,EAAKj6L,EAAG0O,EAAGvkB,EAAS06O,QAEhC73M,EAAIknB,OAAOl0C,EAAE,GAAIA,EAAE,IAIvBykO,EAAUhsO,EACVA,GAAOg2E,EAGT,OAAOjwE,EAGT,SAASwmO,EAAellO,EAAQ8qE,GAC9B,IAAIq6J,EAAQ,CAAC3pO,IAAUA,KACnB4pO,EAAQ,EAAE5pO,KAAWA,KAEzB,GAAIsvE,EACF,IAAK,IAAIp0E,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAQgD,IAAK,CACtC,IAAIkwC,EAAK5mC,EAAOtJ,GAEZkwC,EAAG,GAAKu+L,EAAM,KAChBA,EAAM,GAAKv+L,EAAG,IAGZA,EAAG,GAAKu+L,EAAM,KAChBA,EAAM,GAAKv+L,EAAG,IAGZA,EAAG,GAAKw+L,EAAM,KAChBA,EAAM,GAAKx+L,EAAG,IAGZA,EAAG,GAAKw+L,EAAM,KAChBA,EAAM,GAAKx+L,EAAG,IAKpB,MAAO,CACLztC,IAAK2xE,EAAmBq6J,EAAQC,EAChClsO,IAAK4xE,EAAmBs6J,EAAQD,GAIpC,IAAIn+L,EAAWuL,EAAKtqD,OAAO,CACzBC,KAAM,cACN+R,MAAO,CACL+F,OAAQ,GACR3V,OAAQ,EACRygF,kBAAkB,EAClBxgB,eAAgB,KAChBG,cAAc,GAEhBx8D,MAAO,CACLkM,KAAM,KACNmtC,OAAQ,QAEVrZ,MAAOgoG,EAAkB1jF,EAAKh8C,UAAU03B,OACxCimB,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI+F,EAAS/F,EAAM+F,OACftJ,EAAI,EACJqK,EAAMf,EAAOtM,OACb0b,EAAS81N,EAAellO,EAAQ/F,EAAM6wE,kBAE1C,GAAI7wE,EAAMwwD,aAAc,CAEtB,KAAO1pD,EAAM,EAAGA,IACd,IAAKojO,EAAYnkO,EAAOe,EAAM,IAC5B,MAIJ,KAAOrK,EAAIqK,EAAKrK,IACd,IAAKytO,EAAYnkO,EAAOtJ,IACtB,MAKN,MAAOA,EAAIqK,EACTrK,GAAK0tO,EAAYl3M,EAAKltB,EAAQtJ,EAAGqK,EAAKA,EAAK,EAAGqO,EAAOjW,IAAKiW,EAAOlW,IAAKe,EAAM5P,OAAQ4P,EAAMqwD,eAAgBrwD,EAAMwwD,cAAgB,KAIlIthC,EAAUopB,EAAKtqD,OAAO,CACxBC,KAAM,aACN+R,MAAO,CACL+F,OAAQ,GAER4qE,gBAAiB,GACjBvgF,OAAQ,EACRwgF,gBAAiB,EACjBC,kBAAkB,EAClBxgB,eAAgB,KAChBG,cAAc,GAEhBx8B,MAAOgoG,EAAkB1jF,EAAKh8C,UAAU03B,OACxCimB,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAI+F,EAAS/F,EAAM+F,OACf4qE,EAAkB3wE,EAAM2wE,gBACxBl0E,EAAI,EACJqK,EAAMf,EAAOtM,OACb42D,EAAiBrwD,EAAMqwD,eACvBjK,EAAO6kL,EAAellO,EAAQ/F,EAAM6wE,kBACpCu6J,EAAgBH,EAAet6J,EAAiB3wE,EAAM6wE,kBAE1D,GAAI7wE,EAAMwwD,aAAc,CAEtB,KAAO1pD,EAAM,EAAGA,IACd,IAAKojO,EAAYnkO,EAAOe,EAAM,IAC5B,MAIJ,KAAOrK,EAAIqK,EAAKrK,IACd,IAAKytO,EAAYnkO,EAAOtJ,IACtB,MAKN,MAAOA,EAAIqK,EAAK,CACd,IAAIrC,EAAI0lO,EAAYl3M,EAAKltB,EAAQtJ,EAAGqK,EAAKA,EAAK,EAAGs/C,EAAKlnD,IAAKknD,EAAKnnD,IAAKe,EAAM5P,OAAQigE,EAAgBrwD,EAAMwwD,cACzG25K,EAAYl3M,EAAK09C,EAAiBl0E,EAAIgI,EAAI,EAAGA,EAAGqC,GAAM,EAAGskO,EAAclsO,IAAKksO,EAAcnsO,IAAKe,EAAM4wE,gBAAiBvgB,EAAgBrwD,EAAMwwD,cAC5I/zD,GAAKgI,EAAI,EACTwuB,EAAImnB,gBAIVjpD,EAAQ47C,SAAWA,EACnB57C,EAAQ+9B,QAAUA,G,mBCrXlB,IAAIm8M,EAAa,WAIf78O,KAAKorK,KAAO,KAKZprK,KAAKqrK,KAAO,KACZrrK,KAAKu5D,KAAO,GAGVujL,EAAkBD,EAAW/uO,UAOjCgvO,EAAgBC,OAAS,SAAUtxO,GACjC,IAAIuxO,EAAQ,IAAIC,EAAMxxO,GAEtB,OADAzL,KAAKk9O,YAAYF,GACVA,GAQTF,EAAgBI,YAAc,SAAUF,GACjCh9O,KAAKorK,MAGRprK,KAAKqrK,KAAKr1I,KAAOgnN,EACjBA,EAAM9xG,KAAOlrI,KAAKqrK,KAClB2xE,EAAMhnN,KAAO,KACbh2B,KAAKqrK,KAAO2xE,GALZh9O,KAAKorK,KAAOprK,KAAKqrK,KAAO2xE,EAQ1Bh9O,KAAKu5D,QAQPujL,EAAgBz6M,OAAS,SAAU26M,GACjC,IAAI9xG,EAAO8xG,EAAM9xG,KACbl1G,EAAOgnN,EAAMhnN,KAEbk1G,EACFA,EAAKl1G,KAAOA,EAGZh2B,KAAKorK,KAAOp1I,EAGVA,EACFA,EAAKk1G,KAAOA,EAGZlrI,KAAKqrK,KAAOngC,EAGd8xG,EAAMhnN,KAAOgnN,EAAM9xG,KAAO,KAC1BlrI,KAAKu5D,QAOPujL,EAAgBxkO,IAAM,WACpB,OAAOtY,KAAKu5D,MAOdujL,EAAgBhkN,MAAQ,WACtB94B,KAAKorK,KAAOprK,KAAKqrK,KAAO,KACxBrrK,KAAKu5D,KAAO,GAQd,IAAI0jL,EAAQ,SAAUxxO,GAIpBzL,KAAK2N,MAAQlC,EAKbzL,KAAKg2B,KAKLh2B,KAAKkrI,MASHnV,EAAM,SAAUnrH,GAClB5K,KAAKm9O,MAAQ,IAAIN,EACjB78O,KAAKghM,KAAO,GACZhhM,KAAKo9O,SAAWxyO,GAAW,GAC3B5K,KAAKq9O,kBAAoB,MAGvBC,EAAWvnH,EAAIjoH,UAOnBwvO,EAASvmH,IAAM,SAAUhvH,EAAK4F,GAC5B,IAAIwV,EAAOnjB,KAAKm9O,MACZl2O,EAAMjH,KAAKghM,KACXvmK,EAAU,KAEd,GAAgB,MAAZxzB,EAAIc,GAAc,CACpB,IAAIuQ,EAAM6K,EAAK7K,MAEX0kO,EAAQh9O,KAAKq9O,kBAEjB,GAAI/kO,GAAOtY,KAAKo9O,UAAY9kO,EAAM,EAAG,CAEnC,IAAIilO,EAAiBp6N,EAAKioJ,KAC1BjoJ,EAAKkf,OAAOk7M,UACLt2O,EAAIs2O,EAAex1O,KAC1B0yB,EAAU8iN,EAAe5vO,MACzB3N,KAAKq9O,kBAAoBE,EAGvBP,EACFA,EAAMrvO,MAAQA,EAEdqvO,EAAQ,IAAIC,EAAMtvO,GAGpBqvO,EAAMj1O,IAAMA,EACZob,EAAK+5N,YAAYF,GACjB/1O,EAAIc,GAAOi1O,EAGb,OAAOviN,GAQT6iN,EAASp7O,IAAM,SAAU6F,GACvB,IAAIi1O,EAAQh9O,KAAKghM,KAAKj5L,GAClBob,EAAOnjB,KAAKm9O,MAEhB,GAAa,MAATH,EAOF,OALIA,IAAU75N,EAAKkoJ,OACjBloJ,EAAKkf,OAAO26M,GACZ75N,EAAK+5N,YAAYF,IAGZA,EAAMrvO,OAQjB2vO,EAASxkN,MAAQ,WACf94B,KAAKm9O,MAAMrkN,QAEX94B,KAAKghM,KAAO,IAGd,IAAIzhM,EAAWw2H,EACfrzH,EAAOC,QAAUpD,G,qBCzMjB,IAAI4nK,EAAO,EAAQ,QAEfjyG,EAAW,EAAQ,QAEnB74B,EAAgB,EAAQ,QAExBy+L,EAAa,EAAQ,QAErBl4N,EAAS,EAAQ,QASjB4pD,EAAU,SAAUlpB,GAEtBjH,EAAcvvB,KAAK9M,KAAMsjC,GACzB4xB,EAASpoD,KAAK9M,KAAMsjC,GACpBw3L,EAAWhuN,KAAK9M,KAAMsjC,GAMtBtjC,KAAKmI,GAAKm7B,EAAKn7B,IAAMg/J,KAGvB36G,EAAQ1+C,UAAY,CAMlBrO,KAAM,UAONkN,KAAM,GAQNugD,KAAM,KASN5Z,QAAQ,EASRiY,SAAU,KAMV6e,SAAS,EAOTlwB,MAAO,SAAUhoC,EAAIC,GACnB,OAAQnS,KAAK66C,WACX,IAAK,aACH1oC,EAAK,EACL,MAEF,IAAK,WACHD,EAAK,EACL,MAGJ,IAAI8C,EAAIhV,KAAKsO,UAER0G,IACHA,EAAIhV,KAAKsO,UAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAGvC0G,EAAE,IAAM9C,EACR8C,EAAE,IAAM7C,EACRnS,KAAKwO,qBACLxO,KAAKsS,OAAM,IAMbk0K,aAAc,aAKd8lC,YAAa,aAKb/jN,OAAQ,WACNvI,KAAK0O,mBAOPo0B,SAAU,SAAU3kB,EAAIyB,KAKxBytC,OAAQ,SAAUtlD,EAAK4F,GACrB,GAAY,aAAR5F,GAA8B,UAARA,GAA2B,WAARA,GAE3C,GAAI4F,EAAO,CACT,IAAIyE,EAASpS,KAAK+H,GAEbqK,IACHA,EAASpS,KAAK+H,GAAO,IAGvBqK,EAAO,GAAKzE,EAAM,GAClByE,EAAO,GAAKzE,EAAM,SAGpB3N,KAAK+H,GAAO4F,GAOhBygB,KAAM,WACJpuB,KAAKszC,QAAS,EACdtzC,KAAKktD,MAAQltD,KAAKktD,KAAKC,WAMzB/rD,KAAM,WACJpB,KAAKszC,QAAS,EACdtzC,KAAKktD,MAAQltD,KAAKktD,KAAKC,WAOzBntC,KAAM,SAAUjY,EAAK4F,GACnB,GAAmB,kBAAR5F,EACT/H,KAAKqtD,OAAOtlD,EAAK4F,QACZ,GAAI/K,EAAOqjB,SAASle,GACzB,IAAK,IAAI4E,KAAQ5E,EACXA,EAAIgV,eAAepQ,IACrB3M,KAAKqtD,OAAO1gD,EAAM5E,EAAI4E,IAM5B,OADA3M,KAAKsS,OAAM,GACJtS,MAMTuqC,YAAa,SAAUghB,GACrB,IAAIhhC,EAAKvqB,KAAKktD,KAEV3iC,GACFghC,EAASg9G,YAAYh+I,GAInBvqB,KAAKurD,UAAYvrD,KAAKurD,WAAaA,GACrCvrD,KAAK2nC,iBAGP3nC,KAAKurD,SAAWA,EAChBA,EAAS2B,KAAO3iC,EAChBghC,EAAS08K,aAAejoO,KACxBA,KAAKsS,OAAM,IAKbq1B,eAAgB,WACd,IAAI4jB,EAAWvrD,KAAKurD,SAEhBA,IACEA,EAAS2B,MACX3B,EAAS+8G,iBAAiB/8G,EAAS2B,MAGrC3B,EAAS2B,KAAO,KAChB3B,EAAS08K,aAAe,KACxBjoO,KAAKurD,SAAW,KAChBvrD,KAAKsS,OAAM,KASfi2J,YAAa,SAAUh+I,GACrBvqB,KAAKktD,KAAO3iC,EAEZ,IAAI0xJ,EAAYj8K,KAAKi8K,UAErB,GAAIA,EACF,IAAK,IAAIhuK,EAAI,EAAGA,EAAIguK,EAAUhxK,OAAQgD,IACpCsc,EAAG5M,UAAUy9E,YAAY6gF,EAAUhuK,IAInCjO,KAAKurD,UACPvrD,KAAKurD,SAASg9G,YAAYh+I,IAS9B+9I,iBAAkB,SAAU/9I,GAC1BvqB,KAAKktD,KAAO,KAEZ,IAAI+uH,EAAYj8K,KAAKi8K,UAErB,GAAIA,EACF,IAAK,IAAIhuK,EAAI,EAAGA,EAAIguK,EAAUhxK,OAAQgD,IACpCsc,EAAG5M,UAAU29E,eAAe2gF,EAAUhuK,IAItCjO,KAAKurD,UACPvrD,KAAKurD,SAAS+8G,iBAAiB/9I,KAIrC3nB,EAAOyM,MAAMm9C,EAASsuK,GACtBl4N,EAAOyM,MAAMm9C,EAASnwB,GACtBz5B,EAAOyM,MAAMm9C,EAAS0I,GACtB,IAAI31D,EAAWitD,EACf9pD,EAAOC,QAAUpD,G,qBCxPjB,IAAIinD,EAAgB,EAAQ,QAoBxBg3L,EAAqBh3L,EAAchnD,OAAO,CAC5CC,KAAM,sBACNC,aAAc,CAAC,QACfqB,cAAe,CACb8xC,OAAQ,SAERkH,WAAY,KAEZ2C,aAAc,KACd4lD,eAAgB,KAEhBlmD,aAAc,KACdwnD,aAAc,KAGdxB,cAAc,EAKdI,sBAAuB,MAEvBH,YAAY,EACZc,mBAAoB,KAEpBZ,kBAAmB,IAEnBnvC,OAAQ,QAIRzxD,YAAa,EACb06C,gBAAgB,GAGlBz8C,eAAgB,SAAUC,GAGxB,OADAA,EAAO6zD,MAAQ,KACR8pL,EAAmBv0O,WAAWjJ,KAAM,iBAAkBkJ,cAG7D3J,EAAWi+O,EACf96O,EAAOC,QAAUpD,G,qBC9DjB,IAAI6I,EAAU,EAAQ,QAoBlBshH,EAAa,CACfjqH,KAAM,kBACN6I,MAAO,oBAEPC,OAAQ,UAEVH,EAAQC,eAAeqhH,GAAY,SAAUxrF,EAASp+B,GACpDA,EAAQs+B,cAAc,CACpBnB,SAAU,YACVmE,MAAOlD,IACN,SAAUpO,GACXA,EAAMrJ,YAAYyX,EAAQz2B,iB,sBC/B9B,IAAIW,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAErB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI+9L,EAAY,EAAQ,QAEpB88C,EAAiB,EAAQ,QAEzBtkJ,EAAa,EAAQ,QAoBzB/wF,EAAQ2mB,eAAensB,EAAO4G,MAAMm3L,EAAW,aAC/Cv4L,EAAQyrB,eAAejxB,EAAO4G,MAAMi0O,EAAgB,aACpDr1O,EAAQ+2E,kBAAkBv8E,EAAO4G,MAAM2vF,EAAY,c,qBCpCnD,IAAI/wF,EAAU,EAAQ,QAElBs+H,EAAc,EAAQ,QAEtBC,EAAsBD,EAAYC,oBAEtC,EAAQ,QAoBR,IAAIjd,EAAa,CACfjqH,KAAM,YACN6I,MAAO,YACPC,OAAQ,QAYVH,EAAQC,eAAeqhH,GAAY,SAAUxrF,EAASp+B,GACpDA,EAAQs+B,cAAc,CACpBnB,SAAU,SACVmE,MAAOlD,IACN,SAAUp8B,GACX,IAAIzB,EAAWyB,EAAYxB,iBACvB8f,EAAMumH,EAAoBtmI,EAAU69B,GACxCp8B,EAAYkzD,WAAalzD,EAAYkzD,UAAU50C,EAAIsY,QACnD52B,EAAYizD,SAAWjzD,EAAYizD,QAAQ30C,EAAIjU,a,mBCzBnD,SAASw6H,EAAoB7gB,EAAM5nF,EAASvrB,GAC1C,IAAI+qO,EAAe53H,EAAK15G,UACpBssB,EAASotF,EAAKqrD,YACdhlK,EAAO+xB,EAAQ/xB,KACfmrB,EAAQwuF,EAAK/5G,YAAY2sB,GAE7B,GAAkB,MAAdwF,EAAQhsB,IAA4B,MAAdgsB,EAAQ/rB,GAAY,CAC5CmlB,EAAM,IAAM4G,EAAQhsB,GACpBolB,EAAM,IAAM4G,EAAQ/rB,GAChBumB,EAASotF,EAAKzoC,YAAY/lD,GAC9BwuF,EAAK9wD,UAAUt8B,GAGjB,GAAY,MAARvsB,EAAc,CAChB,GAAIwG,EAAW,CACb,IAAIE,EAAUF,EAAUjC,KAAO,EAC3BoC,EAAUH,EAAUlC,KAAOsC,IAC/B5G,EAAON,KAAK4E,IAAI5E,KAAK6E,IAAIgtO,EAAevxO,EAAM2G,GAAUD,GAAW6qO,EAIrE53H,EAAKr3G,MAAM,IAAMtC,EACjB25G,EAAKr3G,MAAM,IAAMtC,EACjB,IAAInB,EAAW86G,EAAK96G,SAChB2yO,GAAQz/M,EAAQ0E,QAAU53B,EAAS,KAAOmB,EAAO,GACjDyxO,GAAQ1/M,EAAQ2E,QAAU73B,EAAS,KAAOmB,EAAO,GACrDnB,EAAS,IAAM2yO,EACf3yO,EAAS,IAAM4yO,EACf93H,EAAKp3G,kBAEDgqB,EAASotF,EAAKzoC,YAAY/lD,GAC9BwuF,EAAK9wD,UAAUt8B,GACfotF,EAAK/wD,QAAQ5oD,EAAOuxO,GAGtB,MAAO,CACLhlN,OAAQotF,EAAKqrD,YACbhlK,KAAM25G,EAAK15G,WAIfzJ,EAAQgkI,oBAAsBA,G,qBCrF9B,IAAI9tE,EAAY,EAAQ,QAEpBquB,EAAO,EAAQ,QAEf22J,EAAQ,EAAQ,QAEhBC,EAAY,EAAQ,QAEpBjjL,EAAM,EAAQ,QAEd37D,EAAQ,EAAQ,QAEhB05L,EAAkB15L,EAAM05L,gBAExBjhI,EAAQ,EAAQ,QAEhBzgD,EAAc,EAAQ,QAEtB4gD,EAAMe,EAAUf,IAChB0tB,EAAgB,EAAV35E,KAAK+E,GACXuG,EAAU,KAEd,SAASC,EAAcC,EAAGC,GACxB,OAAOzL,KAAKC,IAAIuL,EAAIC,GAAKH,EAI3B,IAAI2yH,EAAQ,EAAE,GAAI,GAAI,GAClBW,EAAU,EAAE,GAAI,GAEpB,SAASszG,IACP,IAAIhpO,EAAM01H,EAAQ,GAClBA,EAAQ,GAAKA,EAAQ,GACrBA,EAAQ,GAAK11H,EAGf,SAASipO,EAAahjL,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIh1D,EAAGC,GAEvD,GAAIA,EAAIu1D,GAAMv1D,EAAI20D,GAAM30D,EAAI60D,GAAM70D,EAAI+0D,GAAM/0D,EAAIu1D,GAAMv1D,EAAI20D,GAAM30D,EAAI60D,GAAM70D,EAAI+0D,EAC5E,OAAO,EAGT,IAAIwjL,EAAStmL,EAAMkyE,YAAY5uE,EAAIZ,EAAIE,EAAIE,EAAI/0D,EAAGokI,GAElD,GAAe,IAAXm0G,EACF,OAAO,EAOP,IALA,IAEIC,EACAC,EAHA3mO,EAAI,EACJ4mO,GAAY,EAIPnwO,EAAI,EAAGA,EAAIgwO,EAAQhwO,IAAK,CAC/B,IAAIoG,EAAIy1H,EAAM77H,GAEV42F,EAAa,IAANxwF,GAAiB,IAANA,EAAU,GAAM,EAClCimL,EAAK3iI,EAAMuE,QAAQlB,EAAIZ,EAAIE,EAAIE,EAAInmD,GAEnCimL,EAAK70L,IAKL24O,EAAW,IACbA,EAAWzmL,EAAM6yE,aAAavvE,EAAIZ,EAAIE,EAAIE,EAAIgwE,GAE1CA,EAAQ,GAAKA,EAAQ,IAAM2zG,EAAW,GACxCL,IAGFG,EAAMvmL,EAAMuE,QAAQjB,EAAIZ,EAAIE,EAAIE,EAAIgwE,EAAQ,IAExC2zG,EAAW,IACbD,EAAMxmL,EAAMuE,QAAQjB,EAAIZ,EAAIE,EAAIE,EAAIgwE,EAAQ,MAI/B,IAAb2zG,EAEE/pO,EAAIo2H,EAAQ,GACdjzH,GAAK0mO,EAAMjjL,EAAK4pC,GAAQA,EACfxwF,EAAIo2H,EAAQ,GACrBjzH,GAAK2mO,EAAMD,EAAMr5I,GAAQA,EAEzBrtF,GAAKijD,EAAK0jL,EAAMt5I,GAAQA,EAItBxwF,EAAIo2H,EAAQ,GACdjzH,GAAK0mO,EAAMjjL,EAAK4pC,GAAQA,EAExBrtF,GAAKijD,EAAKyjL,EAAMr5I,GAAQA,GAK9B,OAAOrtF,EAIX,SAAS6mO,EAAiBrjL,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAI90D,EAAGC,GAEnD,GAAIA,EAAIu1D,GAAMv1D,EAAI20D,GAAM30D,EAAI60D,GAAM70D,EAAIu1D,GAAMv1D,EAAI20D,GAAM30D,EAAI60D,EACxD,OAAO,EAGT,IAAI0jL,EAAStmL,EAAM0zE,gBAAgBpwE,EAAIZ,EAAIE,EAAI70D,EAAGokI,GAElD,GAAe,IAAXm0G,EACF,OAAO,EAEP,IAAI5pO,EAAIsjD,EAAM2zE,kBAAkBrwE,EAAIZ,EAAIE,GAExC,GAAIlmD,GAAK,GAAKA,GAAK,EAAG,CAIpB,IAHA,IAAImD,EAAI,EACJ8mO,EAAK3mL,EAAMvjB,YAAY6mB,EAAIZ,EAAIE,EAAIlmD,GAE9BpG,EAAI,EAAGA,EAAIgwO,EAAQhwO,IAAK,CAE/B,IAAI42F,EAAoB,IAAbilC,EAAM77H,IAAyB,IAAb67H,EAAM77H,GAAW,GAAM,EAChDqsL,EAAK3iI,EAAMvjB,YAAY4mB,EAAIZ,EAAIE,EAAIwvE,EAAM77H,IAEzCqsL,EAAK70L,IAKLqkI,EAAM77H,GAAKoG,EACbmD,GAAK8mO,EAAKrjL,EAAK4pC,GAAQA,EAEvBrtF,GAAK+iD,EAAK+jL,EAAKz5I,GAAQA,GAI3B,OAAOrtF,EAGHqtF,EAAoB,IAAbilC,EAAM,IAAyB,IAAbA,EAAM,GAAW,GAAM,EAChDwwD,EAAK3iI,EAAMvjB,YAAY4mB,EAAIZ,EAAIE,EAAIwvE,EAAM,IAE7C,OAAIwwD,EAAK70L,EAEA,EAGF80D,EAAKU,EAAK4pC,GAAQA,EAO/B,SAAS05I,EAAWngM,EAAIC,EAAIxqC,EAAGiuC,EAAYC,EAAU+Y,EAAer1D,EAAGC,GAGrE,GAFAA,GAAK24C,EAED34C,EAAImO,GAAKnO,GAAKmO,EAChB,OAAO,EAGT,IAAIkB,EAAMlJ,KAAK4sB,KAAK5kB,EAAIA,EAAInO,EAAIA,GAChCokI,EAAM,IAAM/0H,EACZ+0H,EAAM,GAAK/0H,EACX,IAAIklB,EAAOpuB,KAAKC,IAAIg2C,EAAaC,GAEjC,GAAI9nB,EAAO,KACT,OAAO,EAGT,GAAIA,EAAOurD,EAAM,KAAM,CAErB1jC,EAAa,EACbC,EAAWyjC,EACX,IAAIU,EAAMprB,EAAgB,GAAK,EAE/B,OAAIr1D,GAAKqkI,EAAM,GAAK1rF,GAAM34C,GAAKqkI,EAAM,GAAK1rF,EACjC8nC,EAEA,EAIX,GAAIprB,EAAe,CACb/lD,EAAM+sC,EACVA,EAAa82I,EAAgB72I,GAC7BA,EAAW62I,EAAgB7jL,QAE3B+sC,EAAa82I,EAAgB92I,GAC7BC,EAAW62I,EAAgB72I,GAGzBD,EAAaC,IACfA,GAAYyjC,GAKd,IAFA,IAAIhuE,EAAI,EAECvJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIqsL,EAAKxwD,EAAM77H,GAEf,GAAIqsL,EAAKl8I,EAAK34C,EAAG,CACf,IAAI+sD,EAAQ3mD,KAAKk5B,MAAMr/B,EAAG40L,GACtBp0G,EAAMprB,EAAgB,GAAK,EAE3BtI,EAAQ,IACVA,EAAQgzB,EAAMhzB,IAGZA,GAAS1Q,GAAc0Q,GAASzQ,GAAYyQ,EAAQgzB,GAAO1jC,GAAc0Q,EAAQgzB,GAAOzjC,KACtFyQ,EAAQ3mD,KAAK+E,GAAK,GAAK4hD,EAAkB,IAAV3mD,KAAK+E,KACtCs1E,GAAOA,GAGT1uE,GAAK0uE,IAKX,OAAO1uE,EAGT,SAASgnO,EAAYj+O,EAAMm4E,EAAW+lK,EAAUh5O,EAAGC,GAOjD,IANA,IAAI8R,EAAI,EACJ+kD,EAAK,EACLC,EAAK,EACLxB,EAAK,EACLC,EAAK,EAEAhtD,EAAI,EAAGA,EAAI1N,EAAK0K,QAAS,CAChC,IAAI0wD,EAAMp7D,EAAK0N,KAwBf,OAtBI0tD,IAAQ7D,EAAIC,GAAK9pD,EAAI,IAElBwwO,IACHjnO,GAAKN,EAAYqlD,EAAIC,EAAIxB,EAAIC,EAAIx1D,EAAGC,KAQ9B,IAANuI,IAKFsuD,EAAKh8D,EAAK0N,GACVuuD,EAAKj8D,EAAK0N,EAAI,GACd+sD,EAAKuB,EACLtB,EAAKuB,GAGCb,GACN,KAAK7D,EAAIC,EAGPiD,EAAKz6D,EAAK0N,KACVgtD,EAAK16D,EAAK0N,KACVsuD,EAAKvB,EACLwB,EAAKvB,EACL,MAEF,KAAKnD,EAAIE,EACP,GAAIymL,GACF,GAAIv3J,EAAKm9E,cAAc9nG,EAAIC,EAAIj8D,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIyqE,EAAWjzE,EAAGC,GACjE,OAAO,OAIT8R,GAAKN,EAAYqlD,EAAIC,EAAIj8D,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIxI,EAAGC,IAAM,EAG1D62D,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACV,MAEF,KAAK6pD,EAAIG,EACP,GAAIwmL,GACF,GAAIZ,EAAMx5E,cAAc9nG,EAAIC,EAAIj8D,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIyqE,EAAWjzE,EAAGC,GAC9G,OAAO,OAGT8R,GAAKwmO,EAAazhL,EAAIC,EAAIj8D,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIxI,EAAGC,IAAM,EAGvG62D,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACV,MAEF,KAAK6pD,EAAII,EACP,GAAIumL,GACF,GAAIX,EAAUz5E,cAAc9nG,EAAIC,EAAIj8D,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIyqE,EAAWjzE,EAAGC,GAC5F,OAAO,OAGT8R,GAAK6mO,EAAiB9hL,EAAIC,EAAIj8D,EAAK0N,KAAM1N,EAAK0N,KAAM1N,EAAK0N,GAAI1N,EAAK0N,EAAI,GAAIxI,EAAGC,IAAM,EAGrF62D,EAAKh8D,EAAK0N,KACVuuD,EAAKj8D,EAAK0N,KACV,MAEF,KAAK6pD,EAAIK,EAEP,IAAI/Z,EAAK79C,EAAK0N,KACVowC,EAAK99C,EAAK0N,KACV2uD,EAAKr8D,EAAK0N,KACV4uD,EAAKt8D,EAAK0N,KACVkvD,EAAQ58D,EAAK0N,KACbmvD,EAAS78D,EAAK0N,KAElBA,GAAK,EACL,IAAI6sD,EAAgB,EAAIv6D,EAAK0N,KACzBmsD,EAAKvuD,KAAK04C,IAAI4Y,GAASP,EAAKxe,EAC5Bic,EAAKxuD,KAAKw4C,IAAI8Y,GAASN,EAAKxe,EAE5BpwC,EAAI,EACNuJ,GAAKN,EAAYqlD,EAAIC,EAAIpC,EAAIC,EAAI50D,EAAGC,IAGpCs1D,EAAKZ,EACLa,EAAKZ,GAIP,IAAI6tE,GAAMziI,EAAI24C,GAAMye,EAAKD,EAAKxe,EAE9B,GAAIqgM,GACF,GAAI5jL,EAAIwpG,cAAcjmH,EAAIC,EAAIwe,EAAIM,EAAOA,EAAQC,EAAQtC,EAAe4d,EAAWwvD,EAAIxiI,GACrF,OAAO,OAGT8R,GAAK+mO,EAAWngM,EAAIC,EAAIwe,EAAIM,EAAOA,EAAQC,EAAQtC,EAAeotE,EAAIxiI,GAGxE62D,EAAK1wD,KAAK04C,IAAI4Y,EAAQC,GAAUR,EAAKxe,EACrCoe,EAAK3wD,KAAKw4C,IAAI8Y,EAAQC,GAAUP,EAAKxe,EACrC,MAEF,KAAKyZ,EAAIO,EACP2C,EAAKuB,EAAKh8D,EAAK0N,KACfgtD,EAAKuB,EAAKj8D,EAAK0N,KACf,IAAIzM,EAAQjB,EAAK0N,KACb/B,EAAS3L,EAAK0N,KACdmsD,EAAKY,EAAKx5D,EACV64D,EAAKY,EAAK/uD,EAEd,GAAIuyO,GACF,GAAIv3J,EAAKm9E,cAAcrpG,EAAIC,EAAIb,EAAIa,EAAIyd,EAAWjzE,EAAGC,IAAMwhF,EAAKm9E,cAAcjqG,EAAIa,EAAIb,EAAIC,EAAIqe,EAAWjzE,EAAGC,IAAMwhF,EAAKm9E,cAAcjqG,EAAIC,EAAIW,EAAIX,EAAIqe,EAAWjzE,EAAGC,IAAMwhF,EAAKm9E,cAAcrpG,EAAIX,EAAIW,EAAIC,EAAIyd,EAAWjzE,EAAGC,GACxN,OAAO,OAIT8R,GAAKN,EAAYkjD,EAAIa,EAAIb,EAAIC,EAAI50D,EAAGC,GACpC8R,GAAKN,EAAY8jD,EAAIX,EAAIW,EAAIC,EAAIx1D,EAAGC,GAGtC,MAEF,KAAKoyD,EAAIM,EACP,GAAIqmL,GACF,GAAIv3J,EAAKm9E,cAAc9nG,EAAIC,EAAIxB,EAAIC,EAAIyd,EAAWjzE,EAAGC,GACnD,OAAO,OAIT8R,GAAKN,EAAYqlD,EAAIC,EAAIxB,EAAIC,EAAIx1D,EAAGC,GAOtC62D,EAAKvB,EACLwB,EAAKvB,EACL,OAQN,OAJKwjL,GAAarnO,EAAcolD,EAAIvB,KAClCzjD,GAAKN,EAAYqlD,EAAIC,EAAIxB,EAAIC,EAAIx1D,EAAGC,IAAM,GAG/B,IAAN8R,EAGT,SAAStJ,EAAQk6D,EAAU3iE,EAAGC,GAC5B,OAAO84O,EAAYp2K,EAAU,GAAG,EAAO3iE,EAAGC,GAG5C,SAAS2+J,EAAcj8F,EAAUsQ,EAAWjzE,EAAGC,GAC7C,OAAO84O,EAAYp2K,EAAUsQ,GAAW,EAAMjzE,EAAGC,GAGnD/C,EAAQuL,QAAUA,EAClBvL,EAAQ0hK,cAAgBA,G,qBCvXxB,IAAIzhK,EAAS,EAAQ,QAEjBqgC,EAAS,EAAQ,QAEjB8D,EAAa,EAAQ,QAErBib,EAAa,EAAQ,QAErBjV,EAAe,EAAQ,QAEvBjqC,EAAU,EAAQ,QAElBm8D,EAAa,EAAQ,QAErByU,EAAa,EAAQ,QAyBrBv0E,EAAOyD,EAAOzD,KACdq5D,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IACf8uD,EAAY1zD,KAAK+N,MACjBylD,EAAWxzD,KAAKyzD,KAChB31C,EAAQs1C,EAAWt1C,MACnB/Y,EAAK/E,KAAK+E,GAEd,SAAS2kL,EAASvzL,EAAelC,EAASyG,GAMxCvG,KAAK2gJ,SAAW/9I,EAAOxD,gBAQvBY,KAAK0+O,YAAc,GAOnB1+O,KAAKmC,WAAaH,EAAcG,WAKhCnC,KAAKsN,MAKLtN,KAAKyI,OAASzG,EAEdhC,KAAK2vI,MAAM3tI,EAAelC,EAASyG,GAiXrC,SAASo4O,EAASrmO,EAAKuf,GACrB,OAAO2gC,EAAQC,EAAQngD,EAAKuf,EAAO,IAAKA,EAAO,IAGjD,SAAS+mN,EAAwB5xM,EAAW6wB,GAC1C,IAAI+D,EAAO/D,EAAWghL,cAAgBhhL,EAAWihL,UAAY,GAC7D,MAAO,CACL9zO,SAAU42D,EAAO50B,EACjB+xM,uBAAwBn9K,EACxBo9K,eAAe,GAInB,SAASC,EAAqBjyM,EAAW6wB,GACvC,IAKI7yD,EAGAk0O,EARAL,EAAehhL,EAAWghL,aAC1Br8K,EAAkB3E,EAAW2E,gBAC7Bs8K,EAAYjhL,EAAWihL,UACvBK,EAAoBthL,EAAWshL,kBAC/BC,EAAkBvhL,EAAWuhL,gBAE7BL,EAAyBI,EACzBH,GAAgB,EAepB,OAZIhyM,EAAYoyM,EAAgB,IAC9Bp0O,EAAWgiC,EAAYmyM,EACvBD,EAAuBC,GACdnyM,GAAaoyM,EAAgB,IACtCp0O,EAAW6yD,EAAWwhL,qBAAuBryM,EAAYw1B,EAAkB3E,EAAWyhL,iBAAiB,GACvGP,EAAyBv8K,EACzBw8K,GAAgB,IAEhBh0O,EAAW6zO,GAAgBC,EAAY,EAAI9xM,GAAamyM,EACxDD,EAAuBC,GAGlB,CACLn0O,SAAUA,EACV+zO,uBAAwBA,EACxBC,cAAeA,EACfE,qBAAsBA,GAtZ1B3pD,EAASznL,UAAY,CACnBrO,KAAM,WACNsO,YAAawnL,EAMb5lD,MAAO,SAAU3tI,EAAelC,EAASyG,GACvC,IAAIpE,EAAaH,EAAcG,WAC3BigE,EAAoBpgE,EAAcogE,kBACtCjjE,EAAKgD,GAAY,SAAU4N,EAAKG,GAC9B,IAAI88B,EAAYo1B,EAAkBlyD,GAC9BX,EAAYzP,EAAQmC,aAAa,eAAgB+qC,GAEjDt9B,EAAO1P,KAAK2gJ,SAASp+I,IAAIwN,EAAK,IAAIg9B,EAAah9B,EAAKiyC,EAAWe,mBAAmBxzC,GAAY,CAAC,EAAG,GAAIA,EAAUrN,IAAI,QAAS8qC,IAE7HnnB,EAA2B,aAAdnW,EAAKjQ,KACtBiQ,EAAK8gD,OAAS3qC,GAActW,EAAUrN,IAAI,eAC1CwN,EAAKtI,QAAUmI,EAAUrN,IAAI,WAE7BqN,EAAUG,KAAOA,EACjBA,EAAKogB,MAAQvgB,EACbG,EAAKpP,iBAAmBiP,EAAUjP,iBAAmBN,OACpDA,OAQLuI,OAAQ,SAAUzI,EAASyG,GACzBvG,KAAKu/O,sBAAsBv/O,KAAKyI,OAAQ3I,IAM1C4vD,aAAc,SAAUp4B,GACtB,IAAIumC,EAAa79D,KAAKw/O,kBAElBC,EAAW5hL,EAAW4hL,SACtBC,EAAa7hL,EAAW6hL,WACxBC,EAAgB9hL,EAAW8hL,cAC3BC,EAAQtoN,EAAM,EAAIqoN,GAClBE,EAAUvoN,EAAMqoN,GACpB,OAAOC,GAASH,GAAYG,GAASH,EAAW5hL,EAAWwnG,YAAcw6E,GAAWH,GAAcG,GAAWH,EAAa7hL,EAAWghL,cAEvI59N,SAAU,WACR,OAAOjhB,KAAKyI,QAOd82O,sBAAuB,SAAUv9O,EAAelC,GAC9CA,EAAQ04C,YAAW,SAAU12C,GAC3B,GAAKE,EAAcqe,SAASve,EAAahC,GAAzC,CAIA,IAAIS,EAAOuB,EAAYtB,UACvBrB,EAAKa,KAAKmC,YAAY,SAAU4N,GAC9B,IAAIL,EAAO1P,KAAK2gJ,SAASz+I,IAAI6N,GAE7BL,EAAKjB,MAAM26C,oBAAoB7oD,EAAMA,EAAKyJ,aAAa+F,IACvDiyC,EAAWiB,gBAAgBvzC,EAAKjB,MAAOiB,EAAKogB,SAC3C9vB,SACFA,OAQLi9E,OAAQ,SAAUj7E,EAAeuE,GAC/BvG,KAAKsN,MAAQy5B,EAAWob,cAAcngD,EAAc8jE,qBAAsB,CACxEtkE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,cAGdjsB,KAAK8/O,eAMP9vO,QAAS,WACP,OAAOhQ,KAAKsN,OAMdkyO,gBAAiB,WACf,IAgBIO,EAhBA/9O,EAAgBhC,KAAKyI,OACrBuD,EAAOhM,KAAKsN,MACZ67B,EAAK,CAAC,IAAK,KACXD,EAAK,CAAC,QAAS,UACfjmC,EAASjB,EAAcE,IAAI,UAC3By9O,EAA2B,eAAX18O,EAA0B,EAAI,EAC9C47O,EAAe7yO,EAAKk9B,EAAGy2M,IACvBK,EAAe,CAAC,EAAGnB,GACnBC,EAAY9+O,KAAKmC,WAAW8I,OAC5Bu3D,EAAkBm8K,EAAS38O,EAAcE,IAAI,mBAAoB89O,GACjEz9K,EAAkBo8K,EAAS38O,EAAcE,IAAI,oBAAsB,EAAG,CAAC,EAAG48O,IAC1Ez8K,EAAiBrgE,EAAcE,IAAI,mBAAqB48O,EAAY,GAAKA,EAAYv8K,GAAmBA,EAAkB,GAAKC,EAAkB,GAAKq8K,EAAe,EAIrKS,EAAmBt9O,EAAcE,IAAI,oBAGzC,GAAKo9O,EAMHS,EAAUpB,EAASW,EAAiB,GAAKA,EAAiB,GAAIU,GAC9DV,EAAiB,GAAKA,EAAiB,GAAKS,MAPvB,CACrBA,EAAUpB,EAASn8K,GAAmBD,EAAkB,GAAIy9K,GAC5D,IAAI19K,EAAmBtgE,EAAcE,IAAI,qBAAuBq9D,EAAUu/K,EAAY,GACtFQ,EAAmB,CAAC98K,EAAkBF,EAAmBy9K,EAAU,GACnET,EAAiB,GAAKA,EAAiB,GAAKS,EAM9C,IAAIZ,GAAqBN,EAAekB,IAAYjB,EAAYv8K,GAEhE48K,EAAoB,IAAMA,EAAoB,GAE9C,IAAIC,EAAkB,CAAC7/K,EAAU51C,EAAM21N,EAAiB,GAAK98K,EAAiB,IAAM,EAAGnD,EAAS11C,EAAM21N,EAAiB,GAAK98K,EAAiB,IAAM,GAE/I68K,EAAuBF,EAAoB38K,EAAkB88K,EAAiB,GAClF,MAAO,CACLr8O,OAAQA,EACR08O,cAAeA,EACfD,WAAY1zO,EAAKm9B,EAAGw2M,IACpBd,aAAcA,EACdY,SAAUzzO,EAAKm9B,EAAG,EAAIw2M,IACtBt6E,WAAYr5J,EAAKk9B,EAAG,EAAIy2M,IACxBt9K,eAAgBA,EAChBG,gBAAiBA,EACjB28K,kBAAmBA,EACnBG,iBAAkBA,EAClBR,UAAWA,EACXM,gBAAiBA,EACjBC,qBAAsBA,IAO1BS,YAAa,WACX,IAAI9zO,EAAOhM,KAAKsN,MACZ82E,EAAOpkF,KAAK2gJ,SACZx+I,EAAanC,KAAKmC,WAElB07D,EAAa79D,KAAKw/O,kBAElBv8O,EAAS46D,EAAW56D,OACxBmhF,EAAKjlF,MAAK,SAAUuQ,GAClB,IAAImjD,EAAa,CAAC,EAAGgL,EAAWwnG,YAC5Bn1J,EAAMR,EAAKtI,QAAU,EAAI,EAC7BsI,EAAKszC,UAAU6P,EAAW3iD,GAAM2iD,EAAW,EAAI3iD,OAEjD/Q,EAAKgD,GAAY,SAAU4N,EAAKG,GAC9B,IAAI0vM,GAAW/hJ,EAAWwE,eAAiB48K,EAAuBL,GAAyB1uO,EAAK2tD,GAC5FoiL,EAAgB,CAClBh0I,WAAY,CACVxmG,EAAGm6M,EAAQ50M,SACXtF,EAAGm4D,EAAWwnG,YAEhBn5D,SAAU,CACRzmG,EAAG,EACHC,EAAGk6M,EAAQ50M,WAGXk1O,EAAgB,CAClBj0I,WAAYr7F,EAAK,EACjBs7F,SAAU,GAERlhG,EAAW,CAACi1O,EAAch9O,GAAQwC,EAAIuG,EAAKvG,EAAGw6O,EAAch9O,GAAQyC,EAAIsG,EAAKtG,GAC7EiL,EAAWuvO,EAAcj9O,GACzBqL,EAAY20B,EAAOW,SACvBX,EAAOmC,OAAO92B,EAAWA,EAAWqC,GACpCsyB,EAAO2gB,UAAUt1C,EAAWA,EAAWtD,GAKvChL,KAAK0+O,YAAY3uO,GAAO,CACtB/E,SAAUA,EACV2F,SAAUA,EACVrC,UAAWA,EACXywO,uBAAwBn/B,EAAQm/B,uBAChCC,cAAep/B,EAAQo/B,cACvBE,qBAAsBt/B,EAAQs/B,qBAC9BnuO,cAAe,EACfD,eAAgB,KAEjB9Q,OAQL43F,QAAS,SAAU7nF,GACjB,OAAO/P,KAAK2gJ,SAASz+I,IAAI6N,IAS3BhE,YAAa,SAAU4B,EAAOoC,GAC5B,OAAO/P,KAAKmgP,iBAAiBngP,KAAK2gJ,SAASz+I,IAAI6N,GAAKS,YAAY7C,GAAQoC,IAW1ErP,gBAAiB,SAAUH,EAAM0c,EAAU1I,EAAO8lE,GACvC,MAAT9lE,IAAkBA,EAAQ,GACnB,MAAP8lE,IAAgBA,EAAM95E,EAAK4hB,SAC3B,IAAI6+H,EAAUhhJ,KAAK2gJ,SACfx+I,EAAanC,KAAKmC,WAClBi+O,EAAiB,GACjBn9K,EAAa,GACjBrgE,EAAOzD,KAAKgD,GAAY,SAAUC,GAChCg+O,EAAev/O,KAAKN,EAAKyJ,aAAa5H,IACtC6gE,EAAWpiE,KAAKmgJ,EAAQ9+I,IAAIE,GAAS0tB,UAIvC,IAFA,IAAIuwN,EAAergP,KAAKq4C,iBAEfz3C,EAAY2T,EAAO3T,EAAYy5E,EAAKz5E,IAAa,CACxD,IAAIR,EAEJ,GAAKigP,EAEE,CACLjgP,EAAc,SAGd,IAFA,IAAIk1J,EAAS/0J,EAAKk5C,UAAU2mM,EAAgBx/O,GAEnC4X,EAAI,EAAG8nO,EAAOn+O,EAAW8I,OAAQuN,EAAI8nO,EAAM9nO,IAAK,CACvD,IAAI4M,EAAQ69C,EAAWzqD,GAAG+nO,eAAejrF,EAAO98I,IAEhD,GAAc,aAAV4M,EAAsB,CACxBhlB,EAAc,WACd,aAVJA,EAAc,SAehB6c,EAAS7c,EAAaQ,KAQ1By3C,eAAgB,WAKd,IAJA,IAAIl2C,EAAanC,KAAKmC,WAClB6+I,EAAUhhJ,KAAK2gJ,SACf0/F,GAAe,EAEV7nO,EAAI,EAAG8nO,EAAOn+O,EAAW8I,OAAQuN,EAAI8nO,EAAM9nO,IACQ,WAAtDwoI,EAAQ9+I,IAAIC,EAAWqW,IAAIsX,MAAMywN,mBACnCF,GAAe,GAInB,OAAOA,GAUTF,iBAAkB,SAAU9zO,EAAO0D,GACjC,IAAI09M,EAAaztN,KAAK0+O,YAAY3uO,GAClC,OAAOjN,EAAQoiC,eAAe,CAAC74B,EAAO,GAAIohN,EAAWn/M,YAMvDo/M,cAAe,SAAU39M,GACvB,OAAOnN,EAAO8E,MAAM1H,KAAK0+O,YAAY3uO,KAOvCywO,0BAA2B,SAAUlpN,GACnC,IAAIumC,EAAa79D,KAAKw/O,kBAElBG,EAAgB9hL,EAAW8hL,cAC3BL,EAAmBzhL,EAAWyhL,iBAAiBh4O,QAC/Cy4O,EAAUT,EAAiB,GAAKA,EAAiB,GACjDznN,EAAS,CAAC,EAAGgmC,EAAW2E,iBAAmB3E,EAAWihL,UAAY,IAEtE,IAAK9+O,KAAK0vD,aAAap4B,GACrB,MAAO,CACLmpN,SAAU,OACVnB,iBAAkBA,GAKtB,IAGIrmK,EAHAynK,EAAappN,EAAMqoN,GAAiB9hL,EAAW6hL,WAAa7hL,EAAWwhL,qBAIvEoB,EAAW,QACXtB,EAAoBthL,EAAWshL,kBAE/BwB,EAAc3gP,KAAKyI,OAAOvG,IAAI,8BAG9B0+O,EAA4B,MAAlBD,EAAY,GAE1B,GAAIxB,EACEyB,GAAWzB,GAAqBuB,EAAaX,EAAUY,EAAY,IACrEF,EAAW,OACXxnK,EAAQynK,EAAaX,EAAUY,EAAY,IAClCC,GAAWzB,GAAqBuB,EAAaX,GAAW,EAAIY,EAAY,KACjFF,EAAW,OACXxnK,EAAQynK,EAAaX,GAAW,EAAIY,EAAY,MAE/C1nK,EAAQynK,EAAaX,EAAUY,EAAY,KAAO,IAAM1nK,EAAQynK,EAAaX,GAAW,EAAIY,EAAY,MAAQ,IAAM1nK,EAAQ,GAGjIA,GAASpb,EAAW2E,gBAAkB28K,EACtClmK,EAAQvF,EAAWuF,EAAOqmK,EAAkBznN,EAAQ,OAClD4oN,EAAW,WAEV,CACGV,EAAUT,EAAiB,GAAKA,EAAiB,GAArD,IACIjtO,EAAMwlB,EAAO,GAAK6oN,EAAaX,EACnCT,EAAmB,CAAC7mL,EAAQ,EAAGpmD,EAAM0tO,EAAU,IAC/CT,EAAiB,GAAK9mL,EAAQ3gC,EAAO,GAAIynN,EAAiB,GAAKS,GAC/DT,EAAiB,GAAKA,EAAiB,GAAKS,EAGhD,MAAO,CACLT,iBAAkBA,EAClBmB,SAAUA,KAiDhB,IAAIlhP,EAAWg2L,EACf7yL,EAAOC,QAAUpD,G,qBC9ejB,IAAIqD,EAAS,EAAQ,QAEjBqQ,EAAiB,EAAQ,QAEzBkzH,EAAmB,EAAQ,QAE3BlkF,EAAuB,EAAQ,QAoB/B4+L,EAAiB5tO,EAAezT,OAAO,CACzCC,KAAM,YAKNiQ,KAAM,KAKNsnD,iBAAkB,WAChB,OAAOh3D,KAAKF,QAAQgxD,gBAAgB,CAClC7zB,SAAU,QACV91B,MAAOnH,KAAKH,OAAOkiL,WACnB55K,GAAInI,KAAKH,OAAOihP,UACf,MAGPl+O,EAAOie,MAAMggO,EAAe/yO,UAAWm0C,GACvC,IAAI8+L,EAAiC,CACnCvuL,MAAO,CAGL1Q,WAAY,GACZ0N,WAAW,EACXjrC,YAAa,GACb6gC,UAAW,CACThgB,QAAQ,IAGZ4gB,OAAQ,CAGNzhC,YAAa,IAIjB,SAASgiH,EAAYnkI,EAASvC,GAE5B,OAAOA,EAAOJ,OAASI,EAAOU,KAAO,WAAa,SAGpD4lI,EAAiB,QAAS06G,EAAgBt6G,EAAaw6G,EAA+BvuL,OACtF2zE,EAAiB,SAAU06G,EAAgBt6G,EAAaw6G,EAA+B/6L,S,qBC1FvF,IAAI8D,EAAO,EAAQ,QAMfvqD,EAAWuqD,EAAKtqD,OAAO,CACzBC,KAAM,SACN+R,MAAO,CACL4sC,GAAI,EACJC,GAAI,EACJxqC,EAAG,GAEL43C,UAAW,SAAUhnB,EAAKjzB,EAAO4oM,GAG3BA,GACF31K,EAAItW,OAAO3c,EAAM4sC,GAAK5sC,EAAMqC,EAAGrC,EAAM6sC,IAUvC5Z,EAAIo2B,IAAIrpD,EAAM4sC,GAAI5sC,EAAM6sC,GAAI7sC,EAAMqC,EAAG,EAAa,EAAVhI,KAAK+E,IAAQ,MAIzDlO,EAAOC,QAAUpD,G,qBCXjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI44O,EAAgB,EAAQ,QAExBC,EAAgB,EAAQ,QAoB5B74O,EAAQ2mB,eAAeiyN,GACvB54O,EAAQyrB,eAAeotN,I,qBC/BvB,IAAI74O,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAqBRA,EAAQyJ,sBAAqB,SAAUrC,GAErCA,EAAIk0E,UAAYl0E,EAAIk0E,WAAa,O,qBC3BnC,IAAIt7E,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjB8tH,EAAc,EAAQ,QAEtBgkB,EAAiB,EAAQ,QAEzB5xI,EAAU,EAAQ,QAElBub,EAAQ,EAAQ,QAEhB+iE,EAAa,EAAQ,QAErB8/J,EAAsB,EAAQ,QAoB9B3hP,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,UACN6R,OAAQ,SAAU6vO,EAAcrhP,EAASyG,EAAK23B,GAC5C,IAAI56B,EAAQtD,KAAKsD,MAGjB,GAFAA,EAAMC,YAED49O,EAAaj/O,IAAI,QAAtB,CAIA,IAAI+B,GAAYk9O,EAAaj/O,IAAI,YAC7Bk/O,EAAcD,EAAaj/O,IAAI,YAAc,GAC7Cu7D,EAAWz9D,KAAKqhP,YAAcrhP,KAAKqhP,UAAY,IAC/CC,EAAe,GACnB1+O,EAAOzD,KAAKiiP,GAAa,SAAU5xO,EAAK7C,GACtC20O,EAAazgP,KAAK8L,MAEpB,IAAIy0E,EAAWphF,KAAKuhP,eAAiB,GAAID,GAAch8O,IAAIk8O,GAAgBj5O,OAAOi5O,GAAgBn/M,OAAOz/B,EAAO4G,MAAMg4O,EAAgB,OAAO9iM,UAE7I1+C,KAAKuhP,cAAgBD,EAgKrBJ,EAAoBj+O,OAAOK,EAAO69O,EAAc56O,GAGhDjD,EAAMgC,IAAI47O,EAAoBz4F,eAAenlJ,EAAM2I,kBAAmBk1O,IAEtE79O,EAAM85B,WAAU,SAAUoL,GACxB,IAAIi5M,EAAYj5M,EAAKk5M,QACjBngN,EAAaiH,EAAKjH,WAEtB,GAAIA,GAAckgN,EAAW,CAC3B,IAAIz1O,EAAO0kH,EAAYzkH,gBAAgBw1O,EAAW/wH,EAAYusF,SAAS17K,IACnE+5C,EAAU9yC,EAAKx9B,SAAS,GAAK1H,EAAM0H,SAAS,GAC5CuwE,EAAU/yC,EAAKx9B,SAAS,GAAK1H,EAAM0H,SAAS,GAAK/G,EACjD09O,GAAe,EAEfpmK,EAAUvvE,EAAKE,OAAS3F,EAAI0lB,cAC9BsV,EAAWosC,aAAe,MAC1Bg0K,GAAe,GAGjB,IAAIC,EAAYD,GAAgB,EAAI31O,EAAKE,OAASjI,EAAW,EAEzDq3E,EAAUtvE,EAAKxK,MAAQ,EAAI+E,EAAIylB,YACjCuV,EAAWosC,aAAe,CAAC,OAAQi0K,GACnCrgN,EAAW17B,UAAY,SACdy1E,EAAUtvE,EAAKxK,MAAQ,EAAI,IACpC+/B,EAAWosC,aAAe,CAAC,EAAGi0K,GAC9BrgN,EAAW17B,UAAY,YAzL7B,SAAS27O,EAAe7/I,EAAUC,GAChC,IAIIzc,EAJAi9G,EAAck/C,EAAa3/I,GAC3BkgJ,EAAUP,EAAa1/I,GACvBxc,EAAag8J,EAAYh/C,GACzBpf,EAAe,IAAI3kK,EAAM+mE,EAAY+7J,EAAcA,EAAarhP,SAOpE,GAJIo+B,GAA+B,MAApBA,EAAQo8M,UAAoBp8M,EAAQkkK,cAAgBA,IACjEh9G,EAAW9xD,MAAQ4K,EAAQo8M,UAGzBl4C,IAAgBy/C,EAAS,CAE3B,GAAIC,EAAkB1/C,GACpBj9G,EAAU,CACRr1D,MAAOkzJ,EACPp+K,QAASo+K,EAAanjL,OAAO+E,QAC7Bw9L,YAAaA,OAEV,CACL,IAAIC,EAAU3tD,EAAexyI,IAAIkgM,GAEjC,IAAKC,EACH,OAGFl9G,EAAU,IAAIk9G,EAAQrf,EAAcljL,EAASyG,GAG/Ck3D,EAAS2kI,GAAej9G,MACnB,CAGL,GAFAA,EAAU1nB,EAASokL,IAEd18J,EACH,OAGFA,EAAQr1D,MAAQkzJ,EAChB79F,EAAQrlF,QAAUA,EAClBqlF,EAAQ5+E,IAAMA,EAGX67L,IAAey/C,EAKf7+D,EAAa9gL,IAAI,UAAWijF,EAAQ0vD,UAKzCktG,EAAgB/+D,EAAc79F,EAASi9G,GAEvCpf,EAAaQ,cAAgB,SAAUw+D,EAAUntL,GAC/C,IAAIh1D,EAASG,KAAKH,OACdoiP,EAAYjiP,KAAKiiP,UACrBpiP,EAAOqiP,WAAariP,EAAOqiP,YAAc,GACzCriP,EAAOqiP,WAAWF,GAAYntL,EAE9BotL,EAAUD,IAAaC,EAAUD,GAAU1kN,QAAQu3B,IAGjDswB,EAAQ7zE,QACV6zE,EAAQ7zE,OAAO0xK,EAAcljL,EAASyG,EAAK23B,IAhB3CinD,EAAQ9iD,QAAU8iD,EAAQ9iD,OAAOviC,EAASyG,GAL1C4+E,EAAQ52D,SAAW42D,EAAQ52D,QAAQzuB,EAASyG,GAyBhD,SAASw7O,EAAgB/+D,EAAc79F,EAASi9G,GAC9C,IAAI+/C,EAAiBn/D,EAAa/hK,SAAS,aACvCmhO,EAAyBp/D,EAAa/hK,SAAS,sBAY/Ci5N,EAAQ/0J,EAAQ60J,SAAW70J,EAAQ60J,WAAah3D,EAAa9gL,IAAI,QACjEmgP,EAASr/D,EAAa9gL,IAAI,UAAY,GAE1C,GAAqB,kBAAVg4O,EAAoB,CAC7B,IAAI1xM,EAAO0xM,EACP5mN,EAAQ+uN,EACZnI,EAAQ,GACRmI,EAAS,GACTnI,EAAM93C,GAAe55J,EACrB65M,EAAOjgD,GAAe9uK,EAGxB,IAAI2uN,EAAYj/D,EAAai/D,UAAY,GACzCr/O,EAAOzD,KAAK+6O,GAAO,SAAUhoK,EAAS8vK,GACpC,IAAI9gO,EAAOpe,EAAQ2lC,WAAWypC,EAAS,GAAI,CACzCzsE,GAAIxB,EAAW,EACfyB,GAAIzB,EAAW,EACfzC,MAAOyC,EACPiI,OAAQjI,IAEVid,EAAK2f,SAASshN,EAAexwO,gBAC7BuP,EAAKqgB,WAAa6gN,EAAuBzwO,eAEzCuP,EAAK2f,SAAS,CACZl7B,KAAM08O,EAAOL,GACbn8O,UAAWu8O,EAAuBlgP,IAAI,aACtCstE,iBAAkB4yK,EAAuBlgP,IAAI,oBAC7CqtE,YAAa6yK,EAAuBlgP,IAAI,eACxC2B,SAAU,OAEZ,IAAIgmB,EAAes3N,EAAalgO,SAAS,WAErC4I,GAAgBA,EAAa3nB,IAAI,SACnCgf,EAAKlB,KAAK,UAAWpd,EAAOpD,OAAO,CACjCquB,QAASw0N,EAAOL,GAChBltL,UAAWjrC,EAAa3nB,IAAI,aAAa,IAAS,WAChD,OAAOmgP,EAAOL,IAEhBx3F,gBAAiB,CACf1oH,cAAe,UACfn1B,KAAMq1O,EACN1uN,MAAO+uN,EAAOL,GACd33O,MAAO,CAAC,OAAQ,UAElBW,SAAU6e,EAAa3nB,IAAI,YAAY,IAAS,UAC/C2nB,EAAahqB,SAGlBiD,EAAQq/B,cAAcjhB,GAElBigO,EAAaj/O,IAAI,eACnBgf,EAAKwgO,QAAUW,EAAOL,GACtB9gO,EAAKta,GAAG,aAAa,WAEnB,IAAI26B,EAAa6gN,EAAuBzwO,eACpC2wO,EAAqD,aAA/BnB,EAAaj/O,IAAI,UAAwD,MAA7Bi/O,EAAaj/O,IAAI,SAAmB,QAAU,OAAuC,MAA9Bi/O,EAAaj/O,IAAI,UAAoB,SAAW,MAC7Kgf,EAAK2f,SAAS,CACZh9B,SAAUu+O,EAAuBlgP,IAAI,aAAeq/B,EAAW7vB,MAAQ6vB,EAAWsd,QAAU,OAC5FywB,oBAAqB8yK,EAAuBlgP,IAAI,uBAChDyrE,aAAcy0K,EAAuBlgP,IAAI,iBAAmBogP,OAE7D17O,GAAG,YAAY,WAChBsa,EAAK2f,SAAS,CACZh9B,SAAU,KACVyrE,oBAAqB,WAK3BpuD,EAAKoc,QAAQ0lJ,EAAa9gL,IAAI,cAAgB8/O,IAAa,UAC3D1+O,EAAMgC,IAAI4b,GACVA,EAAKta,GAAG,QAAShE,EAAOiC,KAAKsgF,EAAQvgF,QAASugF,EAASrlF,EAASyG,EAAKy7O,IACrEC,EAAUD,GAAY9gO,OAoC5BunG,WAAY,SAAU04H,EAAcrhP,EAASyG,EAAK23B,GAChDt7B,EAAOzD,KAAKa,KAAKqhP,WAAW,SAAUl8J,GACpCA,EAAQsjC,YAActjC,EAAQsjC,WAAWtjC,EAAQr1D,MAAOhwB,EAASyG,EAAK23B,OAQ1EmE,OAAQ,SAAUviC,EAASyG,GACzB3D,EAAOzD,KAAKa,KAAKqhP,WAAW,SAAUl8J,GACpCA,EAAQ9iD,QAAU8iD,EAAQ9iD,OAAOviC,EAASyG,MAE5CvG,KAAKsD,MAAMC,aAEbgrB,QAAS,SAAUzuB,EAASyG,GAC1B3D,EAAOzD,KAAKa,KAAKqhP,WAAW,SAAUl8J,GACpCA,EAAQ52D,SAAW42D,EAAQ52D,QAAQzuB,EAASyG,SAKlD,SAASu7O,EAAkB1/C,GACzB,OAAqC,IAA9BA,EAAYvvK,QAAQ,MAG7BnwB,EAAOC,QAAUpD,G,qBCpSjB,IAAIkxH,EAAQ,EAAQ,QAEhB/kG,EAAgB+kG,EAAM/kG,cAEtB+uE,EAAO,EAAQ,QAEfgsC,EAAW,EAAQ,QAEnB38E,EAAO,EAAQ,QAEfvkB,EAAS,EAAQ,QAEjBooG,EAAQ,EAAQ,QAEhB7xG,EAAY,EAAQ,QAEpBmzL,EAAkB,EAAQ,QAE1BtW,EAAkB,EAAQ,QAE1BuhB,EAAgB,EAAQ,QAExB7lM,EAAW,EAAQ,QAEnB69F,EAAU79F,EAASnT,KACnBqxG,EAAWl+F,EAASsR,MACpBitF,EAAUv+F,EAAS1uB,KAMvB,SAAS48O,EAAW92O,GAClB,OAAOoc,SAASpc,EAAK,IAGvB,SAAS8jI,EAAY9jH,GACnB,OAAIA,aAAcq+B,EACTooE,EACEzmG,aAAc8Z,EAChBgtF,EACE9mG,aAAckiH,EAChB/a,EAEAV,EAIX,SAASswH,EAAqB3gO,EAAQtC,GACpC,OAAOA,GAASsC,GAAUtC,EAAMX,aAAeiD,EAGjD,SAAS4gO,EAAY5gO,EAAQtC,EAAOmjO,GAClC,GAAIF,EAAqB3gO,EAAQtC,IAAUmjO,EAAa,CACtD,IAAInwJ,EAAcmwJ,EAAYnwJ,YAC9BA,EAAc1wE,EAAOgtH,aAAatvH,EAAOgzE,GAAe1wE,EAAOqK,YAAY3M,IAI/E,SAASojO,EAAQ9gO,EAAQtC,GACvB,GAAIijO,EAAqB3gO,EAAQtC,GAAQ,CACvC,IAAI6yE,EAAavwE,EAAOuwE,WACxBA,EAAavwE,EAAOgtH,aAAatvH,EAAO6yE,GAAcvwE,EAAOqK,YAAY3M,IAS7E,SAAS8iB,EAAOxgB,EAAQtC,GAClBA,GAASsC,GAAUtC,EAAMX,aAAeiD,GAC1CA,EAAO2M,YAAYjP,GAIvB,SAASiwH,EAAkBr5B,GACzB,OAAOA,EAAYod,YAGrB,SAASkc,EAAct5B,GACrB,OAAOA,EAAYgc,QAWrB,IAAIywH,EAAa,SAAU1jO,EAAMsmG,EAASliF,EAAMyqG,GAC9C/tI,KAAKkf,KAAOA,EACZlf,KAAKwlH,QAAUA,EACfxlH,KAAK6iP,MAAQv/M,EAAOm3D,EAAKj7F,OAAO,GAAI8jC,GAAQ,IAC5C,IAAIw/M,EAASp3N,EAAc,OAC3Bo3N,EAAO/1H,aAAa,QAAS,8BAC7B+1H,EAAO/1H,aAAa,UAAW,OAC/B+1H,EAAO/1H,aAAa,cAAe,QACnC+1H,EAAOt9O,MAAMikB,QAAU,mDACvB,IAAIs5N,EAASr3N,EAAc,KAC3Bo3N,EAAO52N,YAAY62N,GACnB,IAAI/0G,EAAUtiH,EAAc,KAC5Bo3N,EAAO52N,YAAY8hH,GACnBhuI,KAAKgjP,gBAAkB,IAAI/zB,EAAgBlhF,EAAMC,GACjDhuI,KAAKijP,gBAAkB,IAAItqC,EAAgB5qE,EAAMC,GACjDhuI,KAAKkjP,cAAgB,IAAIhpB,EAAcnsF,EAAMC,GAC7C,IAAIm1G,EAAWn4N,SAASU,cAAc,OACtCy3N,EAAS39O,MAAMikB,QAAU,oCACzBzpB,KAAKojP,QAAUN,EACf9iP,KAAKquI,SAAWL,EAChBhuI,KAAKqjP,gBAAkBN,EACvB/iP,KAAKsjP,UAAYH,EACjBjkO,EAAKgN,YAAYi3N,GACjBA,EAASj3N,YAAY42N,GACrB9iP,KAAKi9E,OAAO35C,EAAK9hC,MAAO8hC,EAAKp3B,QAC7BlM,KAAKujP,aAAe,IAgRtB,SAASC,EAAuBn9O,GAC9B,OAAO,WACLogI,EAAS,2CAA6CpgI,EAAS,MA/QnEu8O,EAAW90O,UAAY,CACrBC,YAAa60O,EACb58H,QAAS,WACP,MAAO,OAETl7F,gBAAiB,WACf,OAAO9qB,KAAKsjP,WAEd58H,UAAW,WACT,OAAO1mH,KAAKojP,SAEdt8H,WAAY,WACV,OAAO9mH,KAAKquI,UAEdljH,sBAAuB,WACrB,IAAIs4N,EAAezjP,KAAK8qB,kBAExB,GAAI24N,EACF,MAAO,CACLr4N,WAAYq4N,EAAar4N,YAAc,EACvCC,UAAWo4N,EAAap4N,WAAa,IAI3C8hC,QAAS,WACP,IAAIhqC,EAAOnjB,KAAKwlH,QAAQC,gBAAe,GAEvCzlH,KAAK0jP,WAAWvgO,IAElB6jG,mBAAoB,SAAUj9F,GAIxB/pB,KAAKqjP,iBAAmBrjP,KAAK2jP,iBAC/B3jP,KAAKqjP,gBAAgB70N,YAAYxuB,KAAK2jP,iBAGxC,IAAIC,EAASl4N,EAAc,QAC3Bk4N,EAAO72H,aAAa,QAAS/sH,KAAKgsB,YAClC43N,EAAO72H,aAAa,SAAU/sH,KAAKisB,aACnC23N,EAAO72H,aAAa,IAAK,GACzB62H,EAAO72H,aAAa,IAAK,GACzB62H,EAAO72H,aAAa,KAAM,GAC1B62H,EAAOp+O,MAAMkM,KAAOqY,EAEpB/pB,KAAKqjP,gBAAgBn3N,YAAY03N,GAEjC5jP,KAAK2jP,gBAAkBC,GAEzBF,WAAY,SAAUvgO,GACpBnjB,KAAKgjP,gBAAgB5zG,gBACrBpvI,KAAKijP,gBAAgB7zG,gBACrBpvI,KAAKkjP,cAAc9zG,gBACnB,IAIInhI,EAJA+/H,EAAUhuI,KAAKquI,SACfw1G,EAAc7jP,KAAKujP,aACnBO,EAAU3gO,EAAKlY,OACf84O,EAAiB,GAGrB,IAAK91O,EAAI,EAAGA,EAAI61O,EAAS71O,IAAK,CAC5B,IAAIkoG,EAAchzF,EAAKlV,GACnB6qM,EAAWvpE,EAAYp5B,GACvBg5G,EAAa1/E,EAAct5B,IAAgBq5B,EAAkBr5B,GAE5DA,EAAY3rE,YACX2rE,EAAYxpD,UACdmsJ,GAAYA,EAAStzK,MAAM2wE,GAE3Bn2G,KAAKijP,gBAAgB16O,OAAO4tG,GAExBA,EAAY3wG,QACdxF,KAAKgjP,gBAAgBz6O,OAAO4tG,EAAY3wG,MAAMkM,MAC9C1R,KAAKgjP,gBAAgBz6O,OAAO4tG,EAAY3wG,MAAMq5C,QAC9C7+C,KAAKkjP,cAAc36O,OAAO4mN,EAAYh5G,IAGxCA,EAAYxpD,SAAU,GAGxBo3L,EAAeljP,KAAKs1G,IAIxB,IACI6tI,EADA/pN,EAAO6B,EAAU+nN,EAAaE,GAIlC,IAAK91O,EAAI,EAAGA,EAAIgsB,EAAKhvB,OAAQgD,IAAK,CAChC,IAAIzJ,EAAOy1B,EAAKhsB,GAEhB,GAAIzJ,EAAKi2B,QACP,IAAK,IAAIxkB,EAAI,EAAGA,EAAIzR,EAAK2d,MAAOlM,IAAK,CAC/BkgG,EAAc0tI,EAAYr/O,EAAK/D,QAAQwV,IACvCk5M,EAAa1/E,EAAct5B,GAD/B,IAEI8tI,EAAiBz0G,EAAkBr5B,GACvC9zE,EAAO2rG,EAASmhF,GAChB9sL,EAAO2rG,EAASi2G,IAKtB,IAAKh2O,EAAI,EAAGA,EAAIgsB,EAAKhvB,OAAQgD,IAAK,CAC5BzJ,EAAOy1B,EAAKhsB,GAEhB,GAAIzJ,EAAKk2B,MACP,IAASzkB,EAAI,EAAGA,EAAIzR,EAAK2d,MAAOlM,IAAK,CAC/BkgG,EAAc4tI,EAAev/O,EAAK/D,QAAQwV,IAC1Ck5M,EAAa1/E,EAAct5B,GAC3B8tI,EAAiBz0G,EAAkBr5B,GACvC6tI,EAAiBvB,EAAYz0G,EAASmhF,EAAY60B,GAAkBrB,EAAQ30G,EAASmhF,GAEjFA,EACFszB,EAAYz0G,EAASi2G,EAAgB90B,GAC5B60B,EACTvB,EAAYz0G,EAASi2G,EAAgBD,GAErCrB,EAAQ30G,EAASi2G,GAInBxB,EAAYz0G,EAASi2G,EAAgB90B,GACrC60B,EAAiBC,GAAkB90B,GAAc60B,EAEjDhkP,KAAKgjP,gBAAgB9zB,iBAAiBC,GAAc80B,EAAgB9tI,GACpEn2G,KAAKkjP,cAAch0B,iBAAiBC,GAAc80B,EAAgB9tI,GAClEn2G,KAAKijP,gBAAgB5zG,SAASl5B,QAE3B,IAAK3xG,EAAKi2B,QACf,IAASxkB,EAAI,EAAGA,EAAIzR,EAAK2d,MAAOlM,IAAK,CAC/BkgG,EAAc4tI,EAAev/O,EAAK/D,QAAQwV,IAC1Ck5M,EAAa1/E,EAAct5B,GAC3B8tI,EAAiBz0G,EAAkBr5B,GACnCg5G,EAAa1/E,EAAct5B,GAC3B8tI,EAAiBz0G,EAAkBr5B,GACvCn2G,KAAKgjP,gBAAgB3zG,SAASl5B,GAC9Bn2G,KAAKgjP,gBAAgB9zB,iBAAiBC,GAAc80B,EAAgB9tI,GACpEn2G,KAAKkjP,cAAc7zG,SAASl5B,GAC5Bn2G,KAAKkjP,cAAch0B,iBAAiBC,GAAc80B,EAAgB9tI,GAClEn2G,KAAKijP,gBAAgB5zG,SAASl5B,GAE1B8tI,GAEFxB,EAAYz0G,EAASi2G,EAAgB90B,GAGvC60B,EAAiB70B,GAAc80B,GAAkBD,GAKvDhkP,KAAKgjP,gBAAgB1zG,eACrBtvI,KAAKijP,gBAAgB3zG,eACrBtvI,KAAKkjP,cAAc5zG,eACnBtvI,KAAKujP,aAAeQ,GAEtBG,SAAU,SAAUv1G,GAClB,IAAIX,EAAUhuI,KAAKojP,QACftuJ,EAAOk5C,EAAQY,qBAAqB,QAExC,GAAoB,IAAhB95C,EAAK7pF,OAAc,CAErB,GAAI0jI,EAAiB,CACf75C,EAAOk5C,EAAQa,aAAanjH,EAAc,QAC9CsiH,EAAQ57C,YAsBR,OAnBK0C,EAAKz0E,WAERy0E,EAAKz0E,SAAW,SAAUoL,GACxB,IAAI5M,EAAWi2E,EAAKj2E,SAEpB,IAAKA,EACH,OAAO,EAGT,IAAK,IAAI5Q,EAAI4Q,EAAS5T,OAAS,EAAGgD,GAAK,IAAKA,EAC1C,GAAI4Q,EAAS5Q,KAAOwd,EAClB,OAAO,EAIX,OAAO,IAIJqpE,EAEP,OAAO,KAGT,OAAOA,EAAK,IAGhB7X,OAAQ,SAAUz7E,EAAO0K,GACvB,IAAIi3O,EAAWnjP,KAAKsjP,UAEpBH,EAAS39O,MAAMioB,QAAU,OAEzB,IAAI6V,EAAOtjC,KAAK6iP,MAOhB,GANS,MAATrhP,IAAkB8hC,EAAK9hC,MAAQA,GACrB,MAAV0K,IAAmBo3B,EAAKp3B,OAASA,GACjC1K,EAAQxB,KAAKmkP,SAAS,GACtBj4O,EAASlM,KAAKmkP,SAAS,GACvBhB,EAAS39O,MAAMioB,QAAU,GAErBztB,KAAKokP,SAAW5iP,GAASxB,KAAKqkP,UAAYn4O,EAAQ,CACpDlM,KAAKokP,OAAS5iP,EACdxB,KAAKqkP,QAAUn4O,EACf,IAAIo4O,EAAgBnB,EAAS39O,MAC7B8+O,EAAc9iP,MAAQA,EAAQ,KAC9B8iP,EAAcp4O,OAASA,EAAS,KAChC,IAAI8hI,EAAUhuI,KAAKojP,QAEnBp1G,EAAQjhB,aAAa,QAASvrH,GAC9BwsI,EAAQjhB,aAAa,SAAU7gH,GAG7BlM,KAAK2jP,kBACP3jP,KAAK2jP,gBAAgB52H,aAAa,QAASvrH,GAE3CxB,KAAK2jP,gBAAgB52H,aAAa,SAAU7gH,KAOhD8f,SAAU,WACR,OAAOhsB,KAAKokP,QAMdn4N,UAAW,WACT,OAAOjsB,KAAKqkP,SAEdF,SAAU,SAAUI,GAClB,IAAIjhN,EAAOtjC,KAAK6iP,MACZ35M,EAAK,CAAC,QAAS,UAAUq7M,GACzBC,EAAM,CAAC,cAAe,gBAAgBD,GACtCE,EAAM,CAAC,cAAe,cAAcF,GACpCG,EAAM,CAAC,eAAgB,iBAAiBH,GAE5C,GAAgB,MAAZjhN,EAAK4F,IAA4B,SAAb5F,EAAK4F,GAC3B,OAAO8pD,WAAW1vD,EAAK4F,IAGzB,IAAIhqB,EAAOlf,KAAKkf,KAEZiO,EAAMnC,SAASqC,YAAYC,iBAAiBpO,GAChD,OAAQA,EAAKslO,IAAQjC,EAAWp1N,EAAI+b,KAAQq5M,EAAWrjO,EAAK1Z,MAAM0jC,MAASq5M,EAAWp1N,EAAIs3N,KAAS,IAAMlC,EAAWp1N,EAAIu3N,KAAS,GAAK,GAExIn2N,QAAS,WACPvuB,KAAKkf,KAAKwO,UAAY,GACtB1tB,KAAKquI,SAAWruI,KAAKqjP,gBAAkBrjP,KAAKojP,QAAUpjP,KAAK2jP,gBAAkB3jP,KAAKsjP,UAAYtjP,KAAKwlH,QAAU,MAE/G1sF,MAAO,WACD94B,KAAKsjP,WACPtjP,KAAKkf,KAAKsP,YAAYxuB,KAAKsjP,YAG/B59H,UAAW,WACT1lH,KAAKmtD,UACL,IAAIizB,EAAOukK,mBAAmB3kP,KAAKojP,QAAQwB,UAAUniP,QAAQ,MAAO,WACpE,MAAO,oCAAsC29E,IAWjDqa,EAAKt7F,KAAK,CAAC,WAAY,cAAe,YAAa,mBAAoB,iBAAkB,YAAa,WAAY,WAAY,aAAc,gBAAgB,SAAUwN,GACpKi2O,EAAW90O,UAAUnB,GAAQ62O,EAAuB72O,MAEtD,IAAIpN,EAAWqjP,EACflgP,EAAOC,QAAUpD,G,mBCjZjB,IAAIymJ,EAAU,SAAUrgH,EAAOk/M,GAG7B7kP,KAAK2lC,MAAQA,EACb3lC,KAAK6kP,OAASA,EAEd7kP,KAAKP,KAAO,WAGdumJ,EAAQl4I,UAAU25I,iBAAmB,SAAUhjH,GAC7C,OAAOA,EAAIqgN,cAAc9kP,KAAK2lC,MAAO3lC,KAAK6kP,QAAU,WAGtD,IAAItlP,EAAWymJ,EACftjJ,EAAOC,QAAUpD,G,qBCMjB,IAAIqD,EAAS,EAAQ,QAEjBmsN,EAAY,EAAQ,QAEpBjsN,EAAU,EAAQ,QAElB27J,EAAyB,EAAQ,QAEjClrF,EAAY,EAAQ,QAEpB3+B,EAAe,EAAQ,QAEvBnsC,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAoBnBgB,EAAQhB,IACRvlC,EAAQ9E,EAAO8E,MACf7C,EAAOjC,EAAOiC,KAMlB,SAAS4mI,KAmaT,SAASzsG,EAAYmjE,EAAgB4iJ,EAAet5N,EAAI5O,GAEjDmoO,EAAW/2M,EAAMxiB,GAAIw5N,SAAUpoO,KAClCoxB,EAAMxiB,GAAIw5N,SAAWpoO,EACrBkoO,EAAgBjiP,EAAQk8B,YAAYvT,EAAI5O,EAAOslF,IAAmB12E,EAAGioB,gBAAiBjoB,EAAGzL,KAAKnD,KAIlG,SAASmoO,EAAWE,EAAWC,GAC7B,GAAIviP,EAAOqjB,SAASi/N,IAActiP,EAAOqjB,SAASk/N,GAAW,CAC3D,IAAIvqN,GAAS,EAIb,OAHAh4B,EAAOzD,KAAKgmP,GAAU,SAAU3gP,EAAMuD,GACpC6yB,EAASA,GAAUoqN,EAAWE,EAAUn9O,GAAMvD,QAEvCo2B,EAET,OAAOsqN,IAAcC,EAIzB,SAASC,EAAoBC,EAASt5G,GACpCs5G,EAAQt5G,EAAiB7pI,IAAI,cAAgB,OAAS,UAGxD,SAASojP,EAAoBx0I,GAC3B,MAAO,CACL9lG,SAAU8lG,EAAM9lG,SAAS1D,QACzBqJ,SAAUmgG,EAAMngG,UAAY,GAIhC,SAAS40O,EAAqBjiP,EAAOyoI,EAAkBn6H,GACrD,IAAI3Q,EAAI8qI,EAAiB7pI,IAAI,KACzBlB,EAAS+qI,EAAiB7pI,IAAI,UAClCoB,GAASA,EAAMw/B,UAAS,SAAUrX,GAChB,UAAZA,EAAGhsB,OACA,MAALwB,IAAcwqB,EAAGxqB,EAAIA,GACX,MAAVD,IAAmByqB,EAAGzqB,OAASA,GAC/ByqB,EAAG7Z,OAASA,MAvclB65H,EAAgB39H,UAAY,CAI1B03O,OAAQ,KAKRC,gBAAiB,KAKjBC,QAAS,KAKT7wK,WAAW,EAKX8wK,WAAY,KAKZC,YAAa,KAKbC,aAAc,KAOdx3E,mBAAoB,GAKpB/8J,OAAQ,SAAU/B,EAAWw8H,EAAkBxlI,EAAKu4J,GAClD,IAAInxJ,EAAQo+H,EAAiB7pI,IAAI,SAC7B2yD,EAASk3E,EAAiB7pI,IAAI,UASlC,GANAlC,KAAK8lP,WAAav2O,EAClBvP,KAAK+lP,kBAAoBh6G,EACzB/rI,KAAK8iH,KAAOv8G,EAIPu4J,GAAe9+J,KAAK2lP,aAAeh4O,GAAS3N,KAAK4lP,cAAgB/wL,EAAtE,CAIA70D,KAAK2lP,WAAah4O,EAClB3N,KAAK4lP,YAAc/wL,EACnB,IAAIvxD,EAAQtD,KAAKwlP,OACb3rK,EAAS75E,KAAK0lP,QAElB,IAAK7wL,GAAqB,SAAXA,EAIb,OAFAvxD,GAASA,EAAM8qB,YACfyrD,GAAUA,EAAOzrD,QAInB9qB,GAASA,EAAMlC,OACfy4E,GAAUA,EAAOz4E,OAEjB,IAAI0qI,EAAW,GACf9rI,KAAK6rI,aAAaC,EAAUn+H,EAAO4B,EAAWw8H,EAAkBxlI,GAEhE,IAAIimI,EAAaV,EAASU,WAEtBA,IAAexsI,KAAKylP,iBACtBzlP,KAAK84B,MAAMvyB,GAGbvG,KAAKylP,gBAAkBj5G,EACvB,IAAIu4G,EAAgB/kP,KAAKgmP,eAAiBhmP,KAAKimP,mBAAmB12O,EAAWw8H,GAE7E,GAAKzoI,EAKE,CACL,IAAI4iP,EAAgBtjP,EAAO4G,MAAMw1B,EAAa+sG,EAAkBg5G,GAChE/kP,KAAKmmP,gBAAgB7iP,EAAOwoI,EAAUo6G,EAAen6G,GACrD/rI,KAAKomP,cAAc9iP,EAAOwoI,EAAUo6G,EAAen6G,QAPnDzoI,EAAQtD,KAAKwlP,OAAS,IAAI1iP,EAAQ6B,MAClC3E,KAAKqmP,gBAAgB/iP,EAAOwoI,EAAUv8H,EAAWw8H,GACjD/rI,KAAKsmP,cAAchjP,EAAOwoI,EAAUv8H,EAAWw8H,GAC/CxlI,EAAIslB,QAAQvmB,IAAIhC,GAOlBiiP,EAAqBjiP,EAAOyoI,GAAkB,GAE9C/rI,KAAKs1E,cAAc3nE,KAMrB00B,OAAQ,SAAU97B,GAChBvG,KAAK84B,MAAMvyB,IAMbgoB,QAAS,SAAUhoB,GACjBvG,KAAK84B,MAAMvyB,IAMb0/O,mBAAoB,SAAU12O,EAAWw8H,GACvC,IAAIpuH,EAAYouH,EAAiB7pI,IAAI,aACjCwN,EAAOH,EAAUG,KACjB+5N,EAA+B,aAAd/5N,EAAKjQ,KACtB8mP,EAAUx6G,EAAiB7pI,IAAI,QAEnC,IAAKqkP,IAAY9c,EACf,OAAO,EAGT,GAAkB,SAAd9rN,GAAqC,MAAbA,EAAmB,CAC7C,IAAI0wJ,EAAqBruK,KAAKquK,mBAE9B,GAAIo7D,GAAkB/5N,EAAKuoB,eAAiBo2I,EAC1C,OAAO,EAMT,GAAIk4E,EAAS,CACX,IAAI/Y,EAAkB/uE,EAAuBrmE,YAAY7oF,GAAWi+N,gBAChE36K,EAAanjD,EAAK6V,YAEtB,OAAO1Z,KAAKC,IAAI+mD,EAAW,GAAKA,EAAW,IAAM26K,EAAkBn/D,EAGrE,OAAO,EAGT,OAAqB,IAAd1wJ,GAOTkuH,aAAc,SAAUC,EAAUn+H,EAAO4B,EAAWw8H,EAAkBxlI,KAMtE8/O,gBAAiB,SAAU/iP,EAAOwoI,EAAUv8H,EAAWw8H,GACrD,IAAIO,EAAgBR,EAAS37B,QAE7B,GAAIm8B,EAAe,CACjB,IAAIk6G,EAAYv4M,EAAM3qC,GAAOkjP,UAAY,IAAI1jP,EAAQwpI,EAAc7sI,MAAMiI,EAAMokI,EAAS37B,UACxF7sG,EAAMgC,IAAIkhP,KAOdF,cAAe,SAAUhjP,EAAOwoI,EAAUv8H,EAAWw8H,GACnD,GAAID,EAAS3qI,MAAO,CAClB,IAAIkkP,EAAUp3M,EAAM3qC,GAAO+hP,QAAU,IAAIviP,EAAQyO,KAAK7J,EAAMokI,EAAS3qI,QACrEmC,EAAMgC,IAAI+/O,GACVD,EAAoBC,EAASt5G,KAOjCo6G,gBAAiB,SAAU7iP,EAAOwoI,EAAU9sG,GAC1C,IAAIwnN,EAAYv4M,EAAM3qC,GAAOkjP,UAEzBA,GAAa16G,EAAS37B,UACxBq2I,EAAU3lN,SAASirG,EAAS37B,QAAQ3qG,OACpCw5B,EAAYwnN,EAAW,CACrBh1O,MAAOs6H,EAAS37B,QAAQ3+F,UAQ9B40O,cAAe,SAAU9iP,EAAOwoI,EAAU9sG,EAAa+sG,GACrD,IAAIs5G,EAAUp3M,EAAM3qC,GAAO+hP,QAEvBA,IACFA,EAAQxkN,SAASirG,EAAS3qI,MAAMqE,OAChCw5B,EAAYqmN,EAAS,CAGnB7zO,MAAOs6H,EAAS3qI,MAAMqQ,MACtBxG,SAAU8gI,EAAS3qI,MAAM6J,WAE3Bo6O,EAAoBC,EAASt5G,KAOjCz2D,cAAe,SAAU3nE,GACvB,IAAI3N,KAAK60E,WAAc70E,KAAK6sI,sBAA5B,CAIA,IAcInoH,EAdAqnH,EAAmB/rI,KAAK+lP,kBAExBx7N,EAAKvqB,KAAK8iH,KAAKj3F,QAEfguD,EAAS75E,KAAK0lP,QACde,EAAc16G,EAAiB9qH,SAAS,UACxC4zC,EAASk3E,EAAiB7pI,IAAI,UAElC,IAAKukP,EAAYvkP,IAAI,UAAY2yD,GAAqB,SAAXA,EAGzC,OAFAglB,GAAUtvD,EAAG8X,OAAOw3C,QACpB75E,KAAK0lP,QAAU,MAMZ1lP,KAAK0lP,UACRhhO,GAAS,EACTm1D,EAAS75E,KAAK0lP,QAAU5iP,EAAQ2lC,WAAWg+M,EAAYvkP,IAAI,QAAS,CAClEipC,OAAQ,OACR0P,WAAW,EACXnuB,YAAa,SAAUC,GAErB4mD,EAAUz1D,KAAK6O,EAAErkB,QAEnBo+O,YAAa7hP,EAAK7E,KAAK2mP,kBAAmB3mP,KAAM,EAAG,GACnDk6C,MAAOr1C,EAAK7E,KAAK2mP,kBAAmB3mP,MACpCs4E,UAAWzzE,EAAK7E,KAAK4mP,iBAAkB5mP,QAEzCuqB,EAAGjlB,IAAIu0E,IAGT0rK,EAAqB1rK,EAAQkyD,GAAkB,GAE/C,IAAI86G,EAAgB,CAAC,QAAS,cAAe,cAAe,UAAW,cAAe,aAAc,gBAAiB,iBACrHhtK,EAAOh5C,SAAS4lN,EAAY90O,aAAa,KAAMk1O,IAE/C,IAAIp1I,EAAag1I,EAAYvkP,IAAI,QAE5BU,EAAOogB,QAAQyuF,KAClBA,EAAa,CAACA,EAAYA,IAG5B53B,EAAO75D,KAAK,QAAS,CAACyxF,EAAW,GAAK,EAAGA,EAAW,GAAK,IACzD78D,EAAamB,eAAe/1C,KAAM,yBAA0BymP,EAAYvkP,IAAI,aAAe,EAAG,WAE9FlC,KAAK8mP,mBAAmBn5O,EAAO+W,KAMjCoiO,mBAAoB,SAAUn5O,EAAO+W,GACnCsa,EAAYh/B,KAAK+lP,mBAAoBrhO,GAAU1kB,KAAKgmP,eAAgBhmP,KAAK0lP,QAASJ,EAAoBtlP,KAAK0sI,mBAAmB/+H,EAAO3N,KAAK8lP,WAAY9lP,KAAK+lP,sBAM7JY,kBAAmB,SAAUz0O,EAAIC,GAC/B,IAAI0nE,EAAS75E,KAAK0lP,QAElB,GAAK7rK,EAAL,CAIA75E,KAAK60E,WAAY,EAEjB,IAAIi8B,EAAQ9wG,KAAK6sI,sBAAsBy4G,EAAoBzrK,GAAS,CAAC3nE,EAAIC,GAAKnS,KAAK8lP,WAAY9lP,KAAK+lP,mBACpG/lP,KAAK6lP,aAAe/0I,EACpBj3B,EAAOnmC,gBACPmmC,EAAO75D,KAAKslO,EAAoBx0I,IAChC7iE,EAAM4rC,GAAQorK,SAAW,KAEzBjlP,KAAK+mP,2BAOPA,uBAAwB,WACtB,IAAIltK,EAAS75E,KAAK0lP,QAElB,GAAK7rK,EAAL,CAIA,IAAImtK,EAAchnP,KAAK6lP,aACnBt2O,EAAYvP,KAAK8lP,WAErB9lP,KAAK8iH,KAAKt8G,eAAe,CACvB/G,KAAM,oBACNgG,EAAGuhP,EAAYh6G,YAAY,GAC3BtnI,EAAGshP,EAAYh6G,YAAY,GAC3BvS,cAAeusH,EAAYvsH,cAC3BgxG,SAAU,CAAC,CACTrpO,QAASmN,EAAUG,KAAKK,IACxBi9B,UAAWz9B,EAAUwyB,qBAQ3B6kN,iBAAkB,SAAU7B,GAC1B/kP,KAAK60E,WAAY,EACjB,IAAIgF,EAAS75E,KAAK0lP,QAElB,GAAK7rK,EAAL,CAIA,IAAIlsE,EAAQ3N,KAAK+lP,kBAAkB7jP,IAAI,SAKvClC,KAAK8mP,mBAAmBn5O,GAIxB3N,KAAK8iH,KAAKt8G,eAAe,CACvB/G,KAAM,cAYVitI,mBAAoB,KAWpBG,sBAAuB,KAKvB/zG,MAAO,SAAUvyB,GACfvG,KAAK2lP,WAAa,KAClB3lP,KAAK4lP,YAAc,KACnB,IAAIr7N,EAAKhkB,EAAIslB,QACTvoB,EAAQtD,KAAKwlP,OACb3rK,EAAS75E,KAAK0lP,QAEdn7N,GAAMjnB,IACRtD,KAAKylP,gBAAkB,KACvBniP,GAASinB,EAAG8X,OAAO/+B,GACnBu2E,GAAUtvD,EAAG8X,OAAOw3C,GACpB75E,KAAKwlP,OAAS,KACdxlP,KAAK0lP,QAAU,KACf1lP,KAAK6lP,aAAe,OAOxBoB,QAAS,aASTC,WAAY,SAAU/9M,EAAID,EAAIi+M,GAE5B,OADAA,EAAYA,GAAa,EAClB,CACL1hP,EAAG0jC,EAAGg+M,GACNzhP,EAAGyjC,EAAG,EAAIg+M,GACV3lP,MAAO0nC,EAAGi+M,GACVj7O,OAAQg9B,EAAG,EAAIi+M,MAIrB17G,EAAgB39H,UAAUC,YAAc09H,EA6CxCsjF,EAAU7vF,kBAAkBuM,GAC5B,IAAIlsI,EAAWksI,EACf/oI,EAAOC,QAAUpD,G,qBC1fjB,IAAIqD,EAAS,EAAQ,QAEjBinD,EAAY,EAAQ,QAEpB/mD,EAAU,EAAQ,QAElBgnD,EAAO,EAAQ,QAqBfG,EAAyB,CAAC,aAC1BC,EAA2B,CAAC,WAAY,aACxCk9L,EAAcv9L,EAAUrqD,OAAO,CACjCC,KAAM,UACN6R,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIhG,EAAOuB,EAAYtB,UACnB8C,EAAQtD,KAAKsD,MACbq6C,EAAU39C,KAAK49C,MAGd59C,KAAK49C,OACRt6C,EAAMC,YAGR,IAAI8jP,EAAyC,eAA9BvlP,EAAYI,IAAI,UAA6B,EAAI,EAChE3B,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAUk5C,GAC/B,GAAIj+C,EAAK2qD,SAAS1M,GAAS,CACzB,IAAItd,EAAa3gC,EAAKygB,cAAcw9B,GAChC8zH,EAAWlnH,EAAgBlqB,EAAY3gC,EAAMi+C,EAAQ6oM,GAAU,GACnE9mP,EAAKqhC,iBAAiB4c,EAAQ8zH,GAC9BhvK,EAAMgC,IAAIgtK,OAEX/pK,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI6zH,EAAW30H,EAAQpE,iBAAiBkF,GAExC,GAAKl+C,EAAK2qD,SAAS1M,GAAnB,CAKA,IAAItd,EAAa3gC,EAAKygB,cAAcw9B,GAE/B8zH,EAGHg1E,EAAoBpmN,EAAYoxI,EAAU/xK,EAAMi+C,GAFhD8zH,EAAWlnH,EAAgBlqB,EAAY3gC,EAAMi+C,EAAQ6oM,GAKvD/jP,EAAMgC,IAAIgtK,GACV/xK,EAAKqhC,iBAAiB4c,EAAQ8zH,QAb5BhvK,EAAM++B,OAAOiwI,MAcdjwI,QAAO,SAAUoc,GAClB,IAAIhzB,EAAKkyB,EAAQpE,iBAAiBkF,GAClChzB,GAAMnoB,EAAM++B,OAAO5W,MAClBizB,UACH1+C,KAAK49C,MAAQr9C,GAEf8hC,OAAQ,SAAUviC,GAChB,IAAIwD,EAAQtD,KAAKsD,MACb/C,EAAOP,KAAK49C,MAChB59C,KAAK49C,MAAQ,KACbr9C,GAAQA,EAAKo+C,mBAAkB,SAAUlzB,GACvCA,GAAMnoB,EAAM++B,OAAO5W,OAGvB8C,QAAS3rB,EAAOg2C,OAEd2uM,EAAUz9L,EAAKtqD,OAAO,CACxBC,KAAM,iBACN+R,MAAO,GACPi6C,UAAW,SAAUhnB,EAAKjzB,GACxB,IAAIqlB,EAAOrlB,EAAM+F,OACbtJ,EAAI,EAIR,IAHAw2B,EAAItW,OAAO0I,EAAK5oB,GAAG,GAAI4oB,EAAK5oB,GAAG,IAC/BA,IAEOA,EAAI,EAAGA,IACZw2B,EAAIknB,OAAO90B,EAAK5oB,GAAG,GAAI4oB,EAAK5oB,GAAG,IAKjC,IAFAw2B,EAAImnB,YAEG39C,EAAI4oB,EAAK5rB,OAAQgD,IACtBw2B,EAAItW,OAAO0I,EAAK5oB,GAAG,GAAI4oB,EAAK5oB,GAAG,IAC/BA,IACAw2B,EAAIknB,OAAO90B,EAAK5oB,GAAG,GAAI4oB,EAAK5oB,GAAG,OAKrC,SAASm9C,EAAgBlqB,EAAY3gC,EAAMK,EAAWymP,EAAU3iO,GAC9D,IAAImS,EAAOqK,EAAWrK,KAClBpL,EAAK,IAAI87N,EAAQ,CACnB/1O,MAAO,CACL+F,OAAQmN,EAASmnC,EAAUh1B,EAAMwwN,EAAUnmN,GAAcrK,KAI7D,OADAywN,EAAoBpmN,EAAYzV,EAAIlrB,EAAMK,EAAW8jB,GAC9C+G,EAGT,SAAS67N,EAAoBpmN,EAAYzV,EAAIlrB,EAAMK,EAAW8jB,GAC5D,IAAI5iB,EAAcvB,EAAKye,UACnB4qG,EAAe9mH,EAAQ4hB,EAAS,YAAc,eAClDklG,EAAan+F,EAAI,CACfja,MAAO,CACL+F,OAAQ2pB,EAAWrK,OAEpB/0B,EAAalB,GAChB,IAAIugB,EAAY5gB,EAAK6gB,aAAaxgB,GAC9BmrD,EAAuB5qC,EAAUF,SAASgpC,GAC1C9+C,EAAc5K,EAAKohB,cAAc/gB,EAAW,SAE5CsK,EAAY6gD,EAAqBp6C,aAAa,CAAC,gBACnDzG,EAAU2zC,OAAS1zC,EACnBD,EAAU41B,eAAgB,EAC1BrV,EAAGswB,SAAS7wC,GACZugB,EAAGra,GAAK,IACR,IAAImwB,EAAapgB,EAAUF,SAASipC,GAA0Bv4C,eAC9D7O,EAAQq/B,cAAc1W,EAAI8V,GAG5B,SAASsqB,EAAUt0C,EAAQxH,EAAKmxB,GAC9B,OAAOt+B,EAAOqE,IAAIsQ,GAAQ,SAAU+f,GAGlC,OAFAA,EAAQA,EAAMhwB,QACdgwB,EAAMvnB,GAAOmxB,EAAWhK,aACjBI,KAIX,IAAI/3B,EAAW6nP,EACf1kP,EAAOC,QAAUpD,G,qBCnJjB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCZR,IAAIqD,EAAS,EAAQ,QAEjB4kP,EAAgB,EAAQ,QAExBloK,EAAkB,EAAQ,QAoB1BmoK,EAAsBD,EAAchoP,OAAO,CAC7CC,KAAM,kBAKNsB,cAAe,CACbgpB,gBAAiB,gBAEjB5e,YAAa,OAEbC,YAAa,EAEbtE,OAAQ,aAERM,SAAS,EACTuiD,QAAS,CAEPrsB,QAAS,QAGXuV,OAAQ,cACRkH,WAAY,GACZx4C,UAAW,CACTH,MAAM,EACNI,MAAO,EACPoW,MAAO,WAETzW,MAAO,CAEL6J,SAAU,OAKV5J,MAAM,EACN8lB,SAAU,OACVke,OAAQ,EAGRxtB,MAAO,WAET1M,UAAW,CACT0M,MAAO,UACPxM,YAAa,GAEfs8O,gBAAiB,CACf70M,OAAQ,SACRkH,WAAY,GACZniC,MAAO,UACPxM,YAAa,EACbD,YAAa,uBACbwS,WAAW,EACXohD,kBAAmB,IACnBl9D,gBAAiB,gBAEnBy9J,aAAc,CACZl+J,MAAM,EACN6rG,aAAa,EACbC,aAAa,EACbC,aAAa,EACblpG,SAAU,GACVugB,QAAS,GACTxZ,SAAU,OAEV28O,SAAU,4UAEVC,SAAU,idAEVC,SAAU,sTAEVC,SAAU,iTAEVlwO,MAAO,UACPzM,YAAa,UACbC,YAAa,GAEf1J,SAAU,CACRP,MAAO,CACLC,MAAM,EAENwW,MAAO,WAET1M,UAAW,CACT0M,MAAO,WAET0nJ,aAAc,CACZ1nJ,MAAO,UACPzM,YAAa,UACbC,YAAa,IAGjB7K,KAAM,MAGVqC,EAAOyM,MAAMo4O,EAAqBnoK,GAClC,IAAI//E,EAAWkoP,EACf/kP,EAAOC,QAAUpD,G,qBC7IjB,IAAIqD,EAAS,EAAQ,QAEjBo2H,EAAW,EAAQ,QAUnB3xD,EAAiB,SAAU5hE,EAAGC,EAAGmO,EAAG45E,EAAYq4C,GAIlD9lI,KAAKyF,EAAS,MAALA,EAAY,GAAMA,EAC3BzF,KAAK0F,EAAS,MAALA,EAAY,GAAMA,EAC3B1F,KAAK6T,EAAS,MAALA,EAAY,GAAMA,EAE3B7T,KAAKP,KAAO,SAEZO,KAAK+rF,OAAS+5C,IAAe,EAC7B9M,EAASlsH,KAAK9M,KAAMytF,IAGtBpmB,EAAev5D,UAAY,CACzBC,YAAas5D,GAEfzkE,EAAOwxB,SAASizC,EAAgB2xD,GAChC,IAAIz5H,EAAW8nE,EACf3kE,EAAOC,QAAUpD,G,mBC1BjB,IAAIwoP,EAAU,KAEd,SAASxoP,IACP,OAAOwoP,IAGTrlP,EAAOC,QAAUpD,G,mBC2BjB,IAAIA,EAAW,CACbumE,mBAAoB,WAClB,MAAO,CACLv7D,KAAMvK,KAAKkC,IAAI,QACfsI,IAAKxK,KAAKkC,IAAI,OACduI,MAAOzK,KAAKkC,IAAI,SAChBwI,OAAQ1K,KAAKkC,IAAI,UACjBV,MAAOxB,KAAKkC,IAAI,SAChBgK,OAAQlM,KAAKkC,IAAI,aAIvBQ,EAAOC,QAAUpD,G,mBCZjB,SAASypD,EAAU3xC,GAKjB,OAJMA,aAAaU,QACjBV,EAAI,CAACA,EAAGA,IAGHA,EAGT,SAAS9X,EAASO,GAChBA,EAAQumC,iBAAiB,SAAS,SAAUvkC,GAC1C,IAAIwkC,EAAQxkC,EAAYykC,WACpB+1C,EAAWx6E,EAAYs5L,cACvBxoJ,EAAaoW,EAAUlnD,EAAYI,IAAI,eACvC63C,EAAaiP,EAAUlnD,EAAYI,IAAI,mBACvC8lP,EAAa,kBAAkB10J,MAAM,KACrC20J,EAAe,oBAAoB30J,MAAM,KAC7ChX,EAAS/6D,UAAU,aAAcqxB,GAAcA,EAAW,IAC1D0pC,EAAS/6D,UAAU,WAAYqxB,GAAcA,EAAW,IACxD0pC,EAAS/6D,UAAU,iBAAkBw4B,GAAcA,EAAW,IAC9DuiC,EAAS/6D,UAAU,eAAgBw4B,GAAcA,EAAW,IAC5DuiC,EAAS/6D,UAAU,QAASzf,EAAYI,IAAI8lP,IAC5C1rK,EAAS/6D,UAAU,UAAWzf,EAAYI,IAAI+lP,IAC9C3rK,EAASn9E,MAAK,SAAU+Q,GACtB,IAAIiR,EAAYm7D,EAASl7D,aAAalR,GAClCqX,EAAO+e,EAAMu4G,eAAe3uI,GAC5B0iC,EAAaoW,EAAU7nC,EAAUq7B,WAAW,UAAU,IACtDzC,EAAaiP,EAAU7nC,EAAUq7B,WAAW,cAAc,IAE1D5kC,EAAQuJ,EAAUjf,IAAI8lP,GACtBvmP,EAAU0f,EAAUjf,IAAI+lP,GAE5B,OAAQrwO,GACN,IAAK,SACHA,EAAQ2P,EAAKwoC,MAAMtuC,UAAU,SAC7B,MAEF,IAAK,SACH7J,EAAQ2P,EAAKyoC,MAAMvuC,UAAU,SAC7B,MAGJmxB,EAAW,IAAMrrB,EAAKhG,UAAU,aAAcqxB,EAAW,IACzDA,EAAW,IAAMrrB,EAAKhG,UAAU,WAAYqxB,EAAW,IACvDmH,EAAW,IAAMxyB,EAAKhG,UAAU,iBAAkBw4B,EAAW,IAC7DA,EAAW,IAAMxyB,EAAKhG,UAAU,eAAgBw4B,EAAW,IAC3DxyB,EAAKhG,UAAU,QAAS3J,GACxB2P,EAAKhG,UAAU,UAAW9f,SAKhCiB,EAAOC,QAAUpD,G,qBCrEjB,IAAIqD,EAAS,EAAQ,QAEjBqQ,EAAiB,EAAQ,QAEzBsiG,EAAkB,EAAQ,QAE1B4wB,EAAmB,EAAQ,QAE3BlnE,EAAa,EAAQ,QAErBhd,EAAuB,EAAQ,QAoB/BmkF,EAAYnzH,EAAezT,OAAO,CACpCC,KAAM,mBAKNiQ,KAAM,KAMNi/M,gBAAiB,GAKjBpB,mBAAoB,WAClB,OAAOh4G,EAAgB,CAAC,CAAC,OAAQ,SAAU,CAAC,YAAa,eAAgB,CAAC,SAAU,eAAgB,CAAC,QAAS,SAAU,CAAC,UAAW,YAA7HA,CAA0Iv1G,KAAKihB,SAAS,qBAajKo0K,mBAAoB,SAAUC,GAC5B,IAAIq5B,EAAkB3uN,KAAK2uN,gBAAkB/rN,EAAO8E,MAAM4tL,GAE1D,GAAIq5B,EACF,IAAK,IAAI1gN,EAAI0gN,EAAgB1jN,OAAS,EAAGgD,GAAK,EAAGA,IAC/CgxD,EAAW2U,IAAI+6I,EAAgB1gN,KAarCsyO,eAAgB,SAAU5yO,GACxB,IAAIghN,EAAkB3uN,KAAK2uN,gBAE3B,IAAKA,EAAgB1jN,OACnB,MAAO,SAGT,GAAa,MAAT0C,GAAiBoL,MAAMpL,GACzB,MAAO,WAIT,GAA+B,IAA3BghN,EAAgB1jN,OAAc,CAChC,IAAIic,EAAWynM,EAAgB,GAE/B,GAAIznM,EAAS,IAAMvZ,GAASA,GAASuZ,EAAS,GAC5C,MAAO,cAGT,IAAK,IAAIjZ,EAAI,EAAGqK,EAAMq2M,EAAgB1jN,OAAQgD,EAAIqK,EAAKrK,IACrD,GAAI0gN,EAAgB1gN,GAAG,IAAMN,GAASA,GAASghN,EAAgB1gN,GAAG,GAChE,MAAO,SAKb,MAAO,cAGPlN,EAAgB,CAClBtB,KAAM,QAKNsQ,IAAK,KAGLu9M,gBAAiB,CACf9rN,MAAO,GACP4J,YAAa,EACbD,YAAa,oBACbyM,MAAO,oBACPnW,QAAS,IAEX05E,UAAU,EAEVl6E,EAAG,IAIL,SAASslI,EAAYliD,EAAUxkF,GAC7B,OAAOA,EAAOJ,OAASI,EAAOU,KAAO,WAAa,SAHpDqC,EAAOie,MAAMulH,EAAUt4H,UAAWm0C,GAMlCkkF,EAAiB,WAAYC,EAAWG,EAAaxlI,GACrD,IAAIxB,EAAW6mI,EACf1jI,EAAOC,QAAUpD,G,qBCxIjB,IAAI6I,EAAU,EAAQ,QAElBo6K,EAAU,EAAQ,QAElB17F,EAAO,EAAQ,QAEf4tD,EAAiB,EAAQ,QAoBzBwzG,EAAcphK,EAAK7B,QAAQoC,QAE/B,SAAS8gK,EAAQr4N,GACf9vB,KAAK8vB,MAAQA,EAGfq4N,EAAQpnP,cAAgB,CACtBK,MAAM,EAGNonC,KAAM,kLAGNlV,MAAO40N,EAAY50N,OAErB,IAAIwhH,EAAQqzG,EAAQr6O,UAEpBgnI,EAAMlwI,QAAU,SAAU9E,EAASyG,EAAK9G,GACtC+iL,EAAQ1pJ,MAAMh5B,GACdyG,EAAIC,eAAe,CACjB/G,KAAM,UACNuI,KAAMhI,KAAKiI,OAIfysI,EAAextF,SAAS,UAAWihM,GACnC//O,EAAQC,eAAe,CACrB5I,KAAM,UACN6I,MAAO,UACPC,OAAQ,qBACP,SAAU21B,EAASp+B,GACpBA,EAAQg3G,YAAY,eAEtB,IAAIv3G,EAAW4oP,EACfzlP,EAAOC,QAAUpD,G,kCChFjB,yBAAynB,EAAG,G,qBCoB5nB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBgnK,EAAc,EAAQ,QAEtB/wI,EAAe,EAAQ,QAEvBC,EAAkBD,EAAaC,gBAE/Br6C,EAAsB,EAAQ,QAE9BklK,EAAW,EAAQ,QAEnBsxC,EAAkBtxC,EAASsxC,gBAE3B10H,EAAa,EAAQ,QAErB/hF,EAAc,EAAQ,QAEtBgf,EAAQ,EAAQ,QAEhBwrC,EAAY,EAAQ,QAEpBE,EAA8B,EAAQ,QAEtCC,EAAiBD,EAA4BC,eAE7Co+L,EAAqB,EAAQ,QAE7BC,EAAa,EAAQ,QAErBC,EAAoB,EAAQ,QAE5BC,EAAe,EAAQ,QAEvBC,EAAkB,EAAQ,QAoB1B9gL,EAAgC+iH,EAAY/iH,8BAC5C+gL,EAAyB,CAAC,aAC1BC,EAA2B,CAAC,WAAY,aACxCC,EAAe,CAAC,SAChBC,EAAiB,CAAC,WAAY,SAG9BC,EAAoB,QAapBC,EAAiB,CACnBjnF,YAAaumF,EACb5pN,IAAK6pN,EACLhpJ,WAAYipJ,EACZ5qM,MAAO6qM,EACP7jK,SAAU8jK,GA4IZ,SAAS18D,EAAShgD,GAChB,IACIrgH,EADAugK,EAAclgD,EAASrsI,KAI3B,GAAoB,SAAhBusL,EAAwB,CAC1B,IAAIx6K,EAAQs6H,EAASt6H,MAEjBw3D,EAA0B,MAAfx3D,EAAMhQ,OAAiC,MAAhBgQ,EAAMtF,OAAiB,CAC3DzG,EAAG+L,EAAM/L,GAAK,EACdC,EAAG8L,EAAM9L,GAAK,EACdlE,MAAOgQ,EAAMhQ,MACb0K,OAAQsF,EAAMtF,QACZ,KACAk8D,EAAW2gL,EAAYv3O,GAE3Bia,EAAKg/J,EAAYhiH,SAASL,EAAU,KAAMY,EAAUx3D,EAAMvO,QAAU,UACpEwoB,EAAGu9N,iBAAmB5gL,OACjB,GAAoB,UAAhB4jH,EACTvgK,EAAK,IAAIg/J,EAAYzjH,MAAM,IAC3Bv7C,EAAGw9N,kBAAoBn9G,EAAStmI,MAAMmgC,WACjC,GAAoB,SAAhBqmJ,EACTvgK,EAAK,IAAIg/J,EAAYllL,KAAK,IAC1BkmB,EAAGy9N,aAAep9G,EAAStmI,MAAMG,UAC5B,GAAoB,UAAhBqmL,EACTvgK,EAAK,IAAIg/J,EAAY9lL,UAChB,IAAoB,iBAAhBqnL,EACT,MAAM,IAAIr1K,MAAM,wCAEhB,IAAIqkJ,EAAMyvB,EAAYjiH,cAAcwjH,GACpCvgK,EAAK,IAAIuvI,EAKX,OAFAvvI,EAAG09N,oBAAsBn9D,EACzBvgK,EAAG9e,KAAOm/H,EAASn/H,KACZ8e,EAGT,SAAS29N,EAAS39N,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBjwE,EAAMmkB,EAAQ2kO,GACxE,IAAIC,EAAkB,GAClBh8D,EAAgBxhD,EAAStmI,OAAS,GAOtC,GANAsmI,EAASt6H,QAAU83O,EAAgB93O,MAAQ5O,EAAO8E,MAAMokI,EAASt6H,QACjEs6H,EAAS9gI,WAAas+O,EAAgBt+O,SAAW8gI,EAAS9gI,SAAS1D,SACnEwkI,EAASr9H,QAAU66O,EAAgB76O,MAAQq9H,EAASr9H,MAAMnH,SAC1DwkI,EAASvoG,SAAW+lN,EAAgB/lN,OAASuoG,EAASvoG,OAAOj8B,SAC7DwkI,EAASn7H,WAAa24O,EAAgB34O,SAAWm7H,EAASn7H,UAE1C,UAAZ8a,EAAGhsB,MAAoBqsI,EAAStmI,MAAO,CACzC,IAAI8kE,EAAcg/K,EAAgB9jP,MAAQ,GAC1C5C,EAAOzD,KAAK,CAAC,IAAK,IAAK,QAAS,WAAW,SAAU6zB,GACnDu2N,EAAuBv2N,EAAMs3C,EAAagjH,EAAe7hK,EAAGjmB,MAAOkf,MAIvE,GAAgB,SAAZ+G,EAAGhsB,MAAmBqsI,EAAStmI,MAAO,CACpC8kE,EAAcg/K,EAAgB9jP,MAAQ,GAC1C5C,EAAOzD,KAAK,CAAC,IAAK,MAAM,SAAU6zB,GAChCu2N,EAAuBv2N,EAAMs3C,EAAagjH,EAAe7hK,EAAGjmB,MAAOkf,OAIpE4oK,EAAcvwK,eAAe,aAAeuwK,EAAc57K,OAAS47K,EAAczpL,SAAWypL,EAAc57K,OAC1G47K,EAAcvwK,eAAe,eAAiBuwK,EAAczuI,SAAWyuI,EAAc3+G,WAAa2+G,EAAczuI,QAGnH,GAAgB,UAAZpzB,EAAGhsB,OACLgsB,EAAGswB,SAASuxI,GAER5oK,GAAQ,CACV+G,EAAGjmB,MAAM/D,QAAU,EACnB,IAAI+nP,EAAgBl8D,EAAc7rL,QACjB,MAAjB+nP,IAA0BA,EAAgB,GAC1C/+D,EAAYzvI,UAAUvvB,EAAI,CACxBjmB,MAAO,CACL/D,QAAS+nP,IAEVh5K,EAAiB5vE,GAIpB8jB,EACF+G,EAAGzL,KAAKspO,GAER7+D,EAAYzrJ,YAAYvT,EAAI69N,EAAiB94K,EAAiB5vE,GAKhEkrI,EAAS/uH,eAAe,OAAS0O,EAAGzL,KAAK,KAAM8rH,EAAS16H,IAAM,GAC9D06H,EAAS/uH,eAAe,WAAa0O,EAAGzL,KAAK,SAAU8rH,EAASl6H,QAChEk6H,EAAS/uH,eAAe,cAAgB0O,EAAGzL,KAAK,YAAa8rH,EAASthG,WACtEshG,EAAS/uH,eAAe,WAAa0O,EAAGzL,KAAK,SAAU8rH,EAASx4F,QAIhEw4F,EAAS/uH,eAAe,SAAW0O,EAAGzL,KAAK,OAAQ8rH,EAASx1D,MAG5D,IAAImzK,EAAgB39G,EAAS29G,cAG7Bh/D,EAAYp/G,qBAAqB5/C,EAAIg+N,GAEjCJ,GACF5+D,EAAY1+G,wBAAwBtgD,GAAsB,IAAlBg+N,GAI5C,SAASF,EAAuBv2N,EAAMs3C,EAAagjH,EAAeo8D,EAAYhlO,GACjD,MAAvB4oK,EAAct6J,IAAkBtO,IAClC4lD,EAAYt3C,GAAQs6J,EAAct6J,GAClCs6J,EAAct6J,GAAQ02N,EAAW12N,IAIrC,SAAS22N,EAAeC,EAAcrpP,EAAMT,EAASyG,GACnD,IAAIhC,EAAaqlP,EAAa1nP,IAAI,cAC9B7B,EAAWupP,EAAatpP,iBACxBupP,EAAgB,GAEhBxpP,IACFwpP,EAAgBxpP,EAASyoP,eAAiBzoP,EAASyoP,iBAAmBA,EAAezoP,EAASZ,MAAMY,IAGtG,IA0BIypP,EAEAC,EACAC,EACAC,EACAC,EA/BAC,EAAUvnP,EAAO6O,SAAS,CAC5Bua,SAAUzlB,EAAIylB,SACdC,UAAW1lB,EAAI0lB,UACfJ,MAAOtlB,EAAIslB,MACXu5F,oBAAqB7+G,EAAI6+G,oBACzBz3G,MAAOA,EACPnI,MAAOA,EACPikP,cAAeA,EACfjkO,OAAQA,EACR4kO,UAAWA,EACXC,qBAAsBA,EACtBzhN,KAAMA,GACLihN,EAActjP,KAAO,IACpB+jP,EAAa,CAIf1qO,QAAS,GACToH,SAAU4iO,EAAazhP,GACvByoC,WAAYg5M,EAAaj9O,KACzBoqC,YAAa6yM,EAAa7yM,YAC1B12C,SAAUwpP,EAAcxpP,SACxBkqP,iBAAkBhqP,EAAK4hB,QACvB6sB,OAAQw7M,EAAcZ,EAAappP,YAIjCiqP,GAAY,EAKhB,OAAO,SAAUpjI,EAAiBnpF,GAGhC,OAFA4rN,EAAsBziI,EACtBojI,GAAY,EACLlmP,GAAcA,EAAW3B,EAAO6O,SAAS,CAC9C41G,gBAAiBA,EACjBzmH,UAAWL,EAAKO,YAAYumH,GAE5ByF,WAAY5uF,EAAUA,EAAQz+B,KAAO,MACpC6qP,GAAaH,IAGlB,SAASO,EAAYrjI,GACA,MAAnBA,IAA4BA,EAAkByiI,GAE1CW,IACFV,EAAgBxpP,EAAK6gB,aAAaimG,GAClC2iI,EAAuBD,EAAc9oO,SAAS0nO,GAC9CsB,EAAyBF,EAAc9oO,SAAS2nO,GAChDsB,EAAkB3pP,EAAKohB,cAAc0lG,EAAiB,SACtDojI,GAAY,GAWhB,SAAS98O,EAAMoC,EAAKs3G,GAElB,OADmB,MAAnBA,IAA4BA,EAAkByiI,GACvCvpP,EAAK2B,IAAI3B,EAAKogB,aAAa5Q,GAAO,GAAIs3G,GAa/C,SAAS7hH,EAAMs0L,EAAOzyE,GACD,MAAnBA,IAA4BA,EAAkByiI,GAC9CY,EAAYrjI,GACZ,IAAIn8G,EAAY6+O,EAAc9oO,SAASwnO,GAAwB92O,eAC5C,MAAnBu4O,IAA4Bh/O,EAAUwG,KAAOw4O,GAC7C,IAAIzoP,EAAUlB,EAAKohB,cAAc0lG,EAAiB,WACvC,MAAX5lH,IAAoByJ,EAAUzJ,QAAUA,GACxC,IAAIy+B,EAAa45J,EAAQ6wD,EAAiB7wD,EAAOkwD,GAAwBA,EAOzE,OANAv/D,EAAYx9G,aAAa/hE,EAAWg1B,EAAY,KAAM,CACpDid,UAAW+sM,EACXhtM,YAAY,IAEdhyC,EAAUvF,KAAOu6B,EAAWsc,WAAW,QAAU55C,EAAO6xB,UAAUm1N,EAAah1L,kBAAkByyD,EAAiB,UAAW1tE,EAAgBp5C,EAAM8mH,IAAoB,KACvKyyE,GAAS8wD,EAAgB1/O,EAAW4uL,GAC7B5uL,EAST,SAASu+O,EAAc3vD,EAAOzyE,GACT,MAAnBA,IAA4BA,EAAkByiI,GAC9CY,EAAYrjI,GACZ,IAAIn8G,EAAY6+O,EAAc9oO,SAASynO,GAA0B/2O,eAC7DuuB,EAAa45J,EAAQ6wD,EAAiB7wD,EAAOmwD,GAA0BA,EAM3E,OALAx/D,EAAYx9G,aAAa/hE,EAAWg1B,EAAY,KAAM,CACpDgd,YAAY,IACX,GACHhyC,EAAUvF,KAAOu6B,EAAWsc,WAAW,QAAU55C,EAAOuzK,UAAUyzE,EAAah1L,kBAAkByyD,EAAiB,YAAauiI,EAAah1L,kBAAkByyD,EAAiB,UAAW1tE,EAAgBp5C,EAAM8mH,IAAoB,KACpOyyE,GAAS8wD,EAAgB1/O,EAAW4uL,GAC7B5uL,EAST,SAASsa,EAAOQ,EAAYqhG,GAE1B,OADmB,MAAnBA,IAA4BA,EAAkByiI,GACvCvpP,EAAKohB,cAAc0lG,EAAiBrhG,GAc7C,SAASokO,EAAU56O,GACjB,GAAInP,EAAS03B,YAAa,CACxB,IAAID,EAAWz3B,EAAS03B,cACxB,OAAO+9K,EAAgBlzM,EAAO6O,SAAS,CACrC/B,KAAMooB,GACLtoB,GAAMjJ,IASb,SAAS8jP,IACP,OAAOvqP,EAAQgqL,0BAajB,SAASlhJ,EAAKp5B,GACZ,OAAOi7K,EAAY7mL,QAAQ4L,EAAK1P,IAIpC,SAAS0qP,EAAcjqP,GACrB,IAAI24L,EAAY,GAUhB,OATAt2L,EAAOzD,KAAKoB,EAAK4B,YAAY,SAAUK,EAASH,GAC9C,IAAI+oF,EAAU7qF,EAAKirF,iBAAiBhpF,GAEpC,IAAK4oF,EAAQkF,aAAc,CACzB,IAAIH,EAAW/E,EAAQ+E,SACnB8zC,EAAWi1D,EAAU/oG,GAAY+oG,EAAU/oG,IAAa,GAC5D8zC,EAAS74C,EAAQgF,eAAiB/tF,MAG/B62L,EAGT,SAASnjJ,EAAetqB,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBltE,EAAO/C,GAGvE,OAFAkrB,EAAKo/N,EAAiBp/N,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBltE,EAAO/C,GAAM,GAC7EkrB,GAAMlrB,EAAKqhC,iBAAiBhhC,EAAW6qB,GAChCA,EAGT,SAASo/N,EAAiBp/N,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBltE,EAAO/C,EAAM8oP,GAU/E,IAAIyB,GAAgBh/G,EAEpBA,EAAWA,GAAY,GACvB,IAAIi/G,EAAej/G,EAASrsI,KACxBurP,EAAgBl/G,EAASt6H,MACzB87K,EAAgBxhD,EAAStmI,MAW7B,GATIimB,IAAOq/N,GAEQ,MAAhBC,GAAwBA,IAAiBt/N,EAAG09N,qBAAwC,SAAjB4B,GAA2BE,EAAeD,IAAkBjC,EAAYiC,KAAmBv/N,EAAGu9N,kBAAqC,UAAjB+B,GAA4BG,EAAO59D,EAAe,UAAYA,EAAc3nJ,QAAUla,EAAGw9N,mBAC7P,SAAjB8B,GAA2BG,EAAOF,EAAe,SAAW19D,EAAc3nL,OAAS8lB,EAAGy9N,gBACvF5lP,EAAM++B,OAAO5W,GACbA,EAAK,OAIHq/N,EAAJ,CAIA,IAAIpmO,GAAU+G,EAUd,OATCA,IAAOA,EAAKqgK,EAAShgD,IACtBs9G,EAAS39N,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBjwE,EAAMmkB,EAAQ2kO,GAE5C,UAAjB0B,GACFI,EAAc1/N,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBjwE,GAI1D+C,EAAMgC,IAAImmB,GACHA,GAmBT,SAAS0/N,EAAc1/N,EAAI7qB,EAAWkrI,EAAUt7D,EAAiBjwE,GAC/D,IAAIymG,EAAc8kC,EAASjtH,SACvBgc,EAASmsE,EAAcA,EAAY/7F,OAAS,EAC5CkgP,EAAgBr/G,EAASs/G,eAEzBC,EAA2B,WAAlBF,GAA8Br/G,EAASw/G,mBAChDxmI,GAA6B,IAAlBqmI,EAEf,GAAKtwN,GAAWwwN,GAAWvmI,EAI3B,GAAIumI,EACFE,EAAkB,CAChBtkJ,YAAax7E,EAAG5M,YAAc,GAC9BmoF,YAAaA,GAAe,GAC5BpmG,UAAWA,EACX4vE,gBAAiBA,EACjBltE,MAAOmoB,EACPlrB,KAAMA,QAPV,CAYAukH,GAAYr5F,EAAGloB,YAKf,IAFA,IAAI4D,EAAQ,EAELA,EAAQ0zB,EAAQ1zB,IACrB6/F,EAAY7/F,IAAU0jP,EAAiBp/N,EAAGqT,QAAQ33B,GAAQvG,EAAWomG,EAAY7/F,GAAQqpE,EAAiB/kD,EAAIlrB,IAIlH,SAASgrP,EAAkB3rO,GACzB,IAAIwhE,EAAWxhE,EAAQqnF,YAAarnF,EAAQonF,YAAaU,EAAQA,EAAQ9nF,GAASta,IAAIkmP,GAAkBjjP,OAAOijP,GAAkBnpN,OAAOopN,GAAe/sM,UAGzJ,SAASgpD,EAAOljG,EAAM0L,GACpB,IAAIvD,EAAOnI,GAAQA,EAAKmI,KACxB,OAAe,MAARA,EAAeA,EAAOk8O,EAAoB34O,EAGnD,SAASs7O,EAAiB7pJ,EAAUC,GAClC,IAAIhiF,EAAU5f,KAAK4f,QACf8rO,EAA0B,MAAZ/pJ,EAAmB/hF,EAAQonF,YAAYrF,GAAY,KACjEpiF,EAAoB,MAAZqiF,EAAmBhiF,EAAQqnF,YAAYrF,GAAY,KAC/DipJ,EAAiBtrO,EAAOK,EAAQhf,UAAW8qP,EAAa9rO,EAAQ4wD,gBAAiB5wD,EAAQtc,MAAOsc,EAAQrf,MAM1G,SAASoqP,EAAiB7wD,EAAOhqK,GAC/B,IAAI67N,EAAa,IAAIttO,EAAM,GAAIyR,GAM/B,OALAltB,EAAOzD,KAAKuoE,GAA+B,SAAUkkL,EAAe7rK,GAC9D+5G,EAAM/8K,eAAe6uO,KACvBD,EAAW9rP,OAAOkgF,GAAiB+5G,EAAM8xD,OAGtCD,EAGT,SAASf,EAAgB1/O,EAAW4uL,GAClC,IAAK,IAAI/xL,KAAO+xL,GACVA,EAAM/8K,eAAehV,IAAS2/D,EAA8B3qD,eAAehV,KAC7EmD,EAAUnD,GAAO+xL,EAAM/xL,IAK7B,SAAS0jP,EAAc7pJ,GACrB,IAAIhiF,EAAU5f,KAAK4f,QACfL,EAAQK,EAAQqnF,YAAYrF,GAChCriF,GAASK,EAAQtc,MAAM++B,OAAO9iB,GAGhC,SAASwpO,EAAYv3O,GAEnB,OAAOA,IAAUA,EAAM42D,UAAY52D,EAAMwrD,GAG3C,SAASiuL,EAAez5O,GACtB,OAAOA,IAAUA,EAAMuL,eAAe,aAAevL,EAAMuL,eAAe,MAG5E,SAASmuO,EAAO31L,EAAMviC,GACpB,OAAOuiC,GAAQA,EAAKx4C,eAAeiW,GAjlBrC3zB,EAAYG,OAAO,CACjBC,KAAM,gBACNC,aAAc,CAAC,OAAQ,QAAS,MAAO,aAAc,YACrDqB,cAAe,CACbT,iBAAkB,cAElBU,OAAQ,EACRC,EAAG,EACHqJ,iBAAiB,EACjBuhP,cAAc,EAKd9vO,MAAM,GAeRnc,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBU,KAAKC,YAAaD,OAM/C4J,cAAe,SAAUhJ,EAAWo8F,EAAUvxE,GAC5C,IAAI5hB,EAASxK,EAAYyO,UAAUlE,cAAc0c,MAAMtmB,KAAMkJ,WAE7D,OADAuiB,IAAO5hB,EAAOysE,KAAO7qD,EAAG6qD,MACjBzsE,KAMXggD,EAAUrqD,OAAO,CACfC,KAAM,SAMNm+C,MAAO,KAKPtsC,OAAQ,SAAUs4O,EAAc9pP,EAASyG,EAAK23B,GAC5C,IAAIyf,EAAU39C,KAAK49C,MACfr9C,EAAOqpP,EAAappP,UACpB8C,EAAQtD,KAAKsD,MACbiB,EAAaolP,EAAeC,EAAcrpP,EAAMT,EAASyG,GAM7DhG,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAUk5C,GAC/BzI,EAAe,KAAMyI,EAAQj6C,EAAWi6C,EAAQtgB,GAAU0rN,EAActmP,EAAO/C,MAC9EgI,QAAO,SAAUi2C,EAAQC,GAC1B,IAAIhzB,EAAKkyB,EAAQpE,iBAAiBkF,GAClC1I,EAAetqB,EAAI+yB,EAAQj6C,EAAWi6C,EAAQtgB,GAAU0rN,EAActmP,EAAO/C,MAC5E8hC,QAAO,SAAUoc,GAClB,IAAIhzB,EAAKkyB,EAAQpE,iBAAiBkF,GAClChzB,GAAMnoB,EAAM++B,OAAO5W,MAClBizB,UAEH,IAAI6M,EAAWq+L,EAAa1nP,IAAI,QAAQ,GAAQ8nD,EAAe4/L,EAAatpP,kBAAkB,EAAOspP,GAAgB,KAEjHr+L,EACFjoD,EAAMinC,YAAYghB,GAElBjoD,EAAMqkC,iBAGR3nC,KAAK49C,MAAQr9C,GAEfkqD,yBAA0B,SAAUm/L,EAAc9pP,EAASyG,GACzDvG,KAAKsD,MAAMC,YACXvD,KAAK49C,MAAQ,MAEf+M,kBAAmB,SAAU9gD,EAAQ+/O,EAAc9pP,EAASyG,EAAK23B,GAC/D,IAAI39B,EAAOqpP,EAAappP,UACpB+D,EAAaolP,EAAeC,EAAcrpP,EAAMT,EAASyG,GAE7D,SAASulP,EAA4BrgO,GAC9BA,EAAG2+C,UACN3+C,EAAGgwB,aAAc,EACjBhwB,EAAGiwB,eAAgB,GAIvB,IAAK,IAAIxrC,EAAMrG,EAAO0K,MAAOrE,EAAMrG,EAAOwwE,IAAKnqE,IAAO,CACpD,IAAIub,EAAKsqB,EAAe,KAAM7lC,EAAK3L,EAAW2L,EAAKguB,GAAU0rN,EAAc5pP,KAAKsD,MAAO/C,GACvFkrB,EAAGqX,SAASgpN,KAOhBv9N,QAAS3rB,EAAOg2C,KAKhB+0E,sBAAuB,SAAUpmE,EAAWnmB,EAAOwrF,EAAUC,GAC3D,IAAIk/H,EAAc3qN,EAAM69E,QAExB,GAAmB,MAAf8sI,GAAuBn/H,EAASjgH,OAASo/O,EAC3C,OAAO,EAKT,OAAQn/H,EAAWA,EAAS/qG,SAAW+qG,IAAa5sH,KAAKsD,MACvD,GAAIspH,EAASjgH,OAASo/O,EACpB,OAAO,EAIX,OAAO,M,qBC3NX,IAAInpP,EAAS,EAAQ,QAEjB8tH,EAAc,EAAQ,QAEtBjoH,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAEnBijB,EAAc,EAAQ,QAEtB41G,EAAqB51G,EAAY41G,mBACjCmB,EAA4B/2G,EAAY+2G,0BACxCC,EAAsBh3G,EAAYg3G,oBAoBlCj5H,EAAQhB,IAaZ,SAASyoJ,EAAiBhmL,GAExB,MAAqB,aAAdA,EAAKjQ,KAAsBusP,EAAmBt8O,GAAQu8O,EAAqBv8O,GAYpF,SAAS+lL,EAAgB/lL,EAAMkwI,GAE7B,MAAqB,aAAdlwI,EAAKjQ,KAAsBysP,EAAkBx8O,EAAMkwI,GAAa,CACrE12F,MAAOx5C,EAAKjB,MAAMw6C,YAItB,SAAS+iM,EAAmBt8O,GAC1B,IAAIwwB,EAAaxwB,EAAKwkB,gBAClBvN,EAASwlO,EAA2Bz8O,EAAMwwB,GAC9C,OAAQA,EAAWh+B,IAAI,SAAWwN,EAAKjB,MAAMiyC,UAAY,CACvDquD,OAAQ,GACRq9I,sBAAuBzlO,EAAOylO,uBAC5BzlO,EAGN,SAASwlO,EAA2Bz8O,EAAMwwB,GACxC,IAQI6uE,EACAs9I,EATAC,EAAcC,EAAa78O,EAAM,UACjC88O,EAAsBvlF,EAA0B/mI,GAChDvZ,EAAS8lO,EAAaH,EAAaE,GAEvC,OAAI7lO,IAOA/jB,EAAO+zC,WAAW61M,GACpBz9I,EAAS29I,EAAuCh9O,EAAM88O,IAEtDH,EAA+C,SAAxBG,EAAiCG,EAAyBj9O,GAAQ88O,EACzFz9I,EAAS69I,EAAoCl9O,EAAM28O,IAI9CQ,EAAaP,EAAaE,EAAqB,CACpDz9I,OAAQA,EACRq9I,sBAAuBC,KAI3B,SAASH,EAAkBx8O,EAAMkwI,GAC/B,IAQI12F,EACA4jM,EATAC,EAAaR,EAAa78O,EAAM,SAChCs9O,EAAqB/lF,EAA0BrnB,GAC/Cj5H,EAAS8lO,EAAaM,EAAYC,GAEtC,GAAIrmO,EACF,OAAOA,EAWT,GAJKi5H,EAAU19I,IAAI,UAAWwN,EAAKjB,MAAMiyC,YACvCwI,EAAQ,IAGNtmD,EAAO+zC,WAAWq2M,GACpB9jM,EAAQwjM,EAAuCh9O,EAAMs9O,GAAoB,QAItE,GAA2B,SAAvBA,EAA+B,CACpC,IAAIC,EAAed,EAA2Bz8O,EAAMA,EAAKwkB,iBACzD44N,EAAuBG,EAAab,sBACpCljM,EAAQtmD,EAAOqE,IAAIgmP,EAAal+I,QAAQ,SAAUE,GAChD,OAAOA,EAAUC,kBAGnB49I,EAAuBE,EACvB9jM,EAAQ0jM,EAAoCl9O,EAAMo9O,GAAsB,GAI5E,OAAOD,EAAaE,EAAYC,EAAoB,CAClD9jM,MAAOA,EACP4jM,qBAAsBA,IAI1B,SAASb,EAAqBv8O,GAC5B,IAAIw5C,EAAQx5C,EAAKjB,MAAMw6C,WACnB4xB,EAAiBirF,EAAmBp2J,GACxC,MAAO,CACLq/F,OAAQnsG,EAAOqE,IAAIiiD,GAAO,SAAUgmD,EAAWh/F,GAC7C,MAAO,CACLk/F,eAAgBv0B,EAAeq0B,EAAWh/F,GAC1CqmN,SAAU7mN,EAAKjB,MAAM06C,SAAS+lD,GAC9BA,UAAWA,OASnB,SAASq9I,EAAa78O,EAAMsjB,GAE1B,OAAOib,EAAMv+B,GAAMsjB,KAAUib,EAAMv+B,GAAMsjB,GAAQ,IAGnD,SAASy5N,EAAankC,EAAOvgN,GAC3B,IAAK,IAAIkG,EAAI,EAAGA,EAAIq6M,EAAMr9M,OAAQgD,IAChC,GAAIq6M,EAAMr6M,GAAGlG,MAAQA,EACnB,OAAOugN,EAAMr6M,GAAGN,MAKtB,SAASk/O,EAAavkC,EAAOvgN,EAAK4F,GAKhC,OAJA26M,EAAMznN,KAAK,CACTkH,IAAKA,EACL4F,MAAOA,IAEFA,EAGT,SAASg/O,EAAyBj9O,GAChC,IAAIiX,EAASsnB,EAAMv+B,GAAMw9O,aACzB,OAAiB,MAAVvmO,EAAiBA,EAASsnB,EAAMv+B,GAAMw9O,aAAex9O,EAAKimL,4BASnE,SAASA,EAA0BjmL,GACjC,IAAI7F,EAASsjP,EAA2Cz9O,GACpDmrE,EAAiBirF,EAAmBp2J,GACpCiB,GAAY9G,EAAOujP,WAAavjP,EAAOsH,aAAe,IAAMtF,KAAK+E,GACjEq3M,EAAev4M,EAAKjB,MACpBy5M,EAAgBD,EAAa1iM,YAI7B4gJ,EAAY8hD,EAAa9lM,QAE7B,GAAI+lM,EAAc,GAAKA,EAAc,GAAK,EACxC,OAAO,EAGT,IAAItmJ,EAAO,EAEPukG,EAAY,KACdvkG,EAAO/1D,KAAK4E,IAAI,EAAG5E,KAAK+N,MAAMusJ,EAAY,MAW5C,IARA,IAAIj3D,EAAYg5G,EAAc,GAC1BC,EAAWz4M,EAAKc,YAAY0+F,EAAY,GAAKx/F,EAAKc,YAAY0+F,GAC9Dm+I,EAAQxhP,KAAKC,IAAIq8M,EAAWt8M,KAAK04C,IAAI5zC,IACrCy3M,EAAQv8M,KAAKC,IAAIq8M,EAAWt8M,KAAKw4C,IAAI1zC,IACrC28O,EAAO,EACPjlC,EAAO,EAGJn5G,GAAag5G,EAAc,GAAIh5G,GAAattC,EAAM,CACvD,IAAIpgE,EAAQ,EACR0K,EAAS,EAGTF,EAAO0kH,EAAYzkH,gBAAgB4uE,EAAeq0B,GAAYrlG,EAAO++B,KAAM,SAAU,OAEzFpnC,EAAqB,IAAbwK,EAAKxK,MACb0K,EAAuB,IAAdF,EAAKE,OAEdohP,EAAOzhP,KAAK4E,IAAI68O,EAAM9rP,EAAO,GAC7B6mN,EAAOx8M,KAAK4E,IAAI43M,EAAMn8M,EAAQ,GAGhC,IAAIumH,EAAK66H,EAAOD,EACZ36H,EAAK21F,EAAOD,EAEhBrvM,MAAM05G,KAAQA,EAAK1/G,KACnBgG,MAAM25G,KAAQA,EAAK3/G,KACnB,IAAImU,EAAWrb,KAAK4E,IAAI,EAAG5E,KAAK+N,MAAM/N,KAAK6E,IAAI+hH,EAAIC,KAC/C41F,EAAQr6K,EAAMv+B,EAAKogB,OACnB+iC,EAAanjD,EAAK6V,YAClBgjM,EAAmBD,EAAMC,iBACzBC,EAAgBF,EAAME,cAsB1B,OAfwB,MAApBD,GAA6C,MAAjBC,GAAyB38M,KAAKC,IAAIy8M,EAAmBrhM,IAAa,GAAKrb,KAAKC,IAAI08M,EAAgBriD,IAAc,GAE3IoiD,EAAmBrhM,GAEnBohM,EAAMilC,cAAgB16L,EAAW,IAAMy1J,EAAMklC,cAAgB36L,EAAW,GACzE3rC,EAAWqhM,GAITD,EAAME,cAAgBriD,EACtBmiD,EAAMC,iBAAmBrhM,EACzBohM,EAAMilC,YAAc16L,EAAW,GAC/By1J,EAAMklC,YAAc36L,EAAW,IAG5B3rC,EAGT,SAASimO,EAA2Cz9O,GAClD,IAAIwwB,EAAaxwB,EAAKwkB,gBACtB,MAAO,CACLk5N,WAAY19O,EAAK+mL,UAAY/mL,EAAK+mL,YAAc/mL,EAAKykB,eAAiBzkB,EAAKykB,eAAiB,GAAK,EACjGhjB,YAAa+uB,EAAWh+B,IAAI,WAAa,EACzC0mC,KAAM1I,EAAWt8B,WAIrB,SAASgpP,EAAoCl9O,EAAM+9O,EAAkBC,GACnE,IAAI7yK,EAAiBirF,EAAmBp2J,GACpCu4M,EAAev4M,EAAKjB,MACpBy5M,EAAgBD,EAAa1iM,YAC7B2a,EAAaxwB,EAAKwkB,gBAClBvN,EAAS,GAETi7C,EAAO/1D,KAAK4E,KAAKg9O,GAAoB,GAAK,EAAG,GAC7CE,EAAYzlC,EAAc,GAC1B/hD,EAAY8hD,EAAa9lM,QAKX,IAAdwrO,GAAmB/rL,EAAO,GAAKukG,EAAYvkG,EAAO,IACpD+rL,EAAY9hP,KAAK8d,MAAM9d,KAAKyzD,KAAKquL,EAAY/rL,GAAQA,IAQvD,IAAIgsL,EAAe1mF,EAAoBx3J,GACnCm+O,EAAkB3tN,EAAWh+B,IAAI,iBAAmB0rP,EACpDE,EAAkB5tN,EAAWh+B,IAAI,iBAAmB0rP,EAEpDC,GAAmBF,IAAczlC,EAAc,IACjD6lC,EAAQ7lC,EAAc,IAMxB,IAFA,IAAIh5G,EAAYy+I,EAETz+I,GAAag5G,EAAc,GAAIh5G,GAAattC,EACjDmsL,EAAQ7+I,GAOV,SAAS6+I,EAAQC,GACfrnO,EAAO9lB,KAAK6sP,EAAWM,EAAO,CAC5B5+I,eAAgBv0B,EAAemzK,GAC/Bz3B,SAAUtO,EAAa9+J,SAAS6kM,GAChC9+I,UAAW8+I,IAIf,OAZIF,GAAmB5+I,EAAYttC,IAASsmJ,EAAc,IACxD6lC,EAAQ7lC,EAAc,IAWjBvhM,EAKT,SAAS+lO,EAAuCh9O,EAAM+9O,EAAkBC,GACtE,IAAIzlC,EAAev4M,EAAKjB,MACpBosE,EAAiBirF,EAAmBp2J,GACpCiX,EAAS,GAYb,OAXA/jB,EAAOzD,KAAK8oN,EAAah/J,YAAY,SAAUimD,GAC7C,IAAIqnH,EAAWtO,EAAa9+J,SAAS+lD,GAEjCu+I,EAAiBv+I,EAAWqnH,IAC9B5vM,EAAO9lB,KAAK6sP,EAAWx+I,EAAY,CACjCE,eAAgBv0B,EAAeq0B,GAC/BqnH,SAAUA,EACVrnH,UAAWA,OAIVvoF,EAGThkB,EAAQ+yL,iBAAmBA,EAC3B/yL,EAAQ8yL,gBAAkBA,EAC1B9yL,EAAQgzL,0BAA4BA,G,qBC/VpC,IAAI/yL,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAoBd3pB,EAAOyD,EAAOzD,KACd8mB,EAAWrjB,EAAOqjB,SAClBjD,EAAUpgB,EAAOogB,QAOjBirO,EAA8B,WAOlC,SAASl1I,EAAiBprG,GACxB,OAAOA,aAAiBoK,MAAQpK,EAAiB,MAATA,EAAgB,GAAK,CAACA,GAmBhE,SAASjF,EAAgB8G,EAAKzH,EAAKmmP,GAEjC,GAAI1+O,EAAK,CACPA,EAAIzH,GAAOyH,EAAIzH,IAAQ,GACvByH,EAAI9N,SAAW8N,EAAI9N,UAAY,GAC/B8N,EAAI9N,SAASqG,GAAOyH,EAAI9N,SAASqG,IAAQ,GAEzC,IAAK,IAAIkG,EAAI,EAAGqK,EAAM41O,EAAQjjP,OAAQgD,EAAIqK,EAAKrK,IAAK,CAClD,IAAIkgP,EAAaD,EAAQjgP,IAEpBuB,EAAI9N,SAASqG,GAAKgV,eAAeoxO,IAAe3+O,EAAIzH,GAAKgV,eAAeoxO,KAC3E3+O,EAAI9N,SAASqG,GAAKomP,GAAc3+O,EAAIzH,GAAKomP,MAMjD,IAAI7qK,EAAqB,CAAC,YAAa,aAAc,WAAY,aAAc,OAAQ,MAAO,QAAS,kBAAmB,kBAAmB,QAAS,SAAU,aAAc,QAAS,gBAAiB,WAAY,cAAe,aAAc,gBAAiB,gBAAiB,kBAAmB,iBAAkB,oBAAqB,oBAAqB,kBAAmB,cAAe,cAAe,eAAgB,WAena,SAASp2C,EAAiB3hC,GACxB,OAAO0a,EAAS1a,IAAcyX,EAAQzX,IAAeA,aAAoB00D,KAAyB10D,EAAjBA,EAASoC,MAS5F,SAASu7E,EAAiB39E,GACxB,OAAO0a,EAAS1a,MAAeA,aAAoBwM,OAcrD,SAASkwK,EAAgB7hK,EAAQgoO,GAO/BA,GAAiBA,GAAiB,IAAI9mP,QACtC,IAAIqf,EAAS/jB,EAAOqE,IAAImf,GAAU,IAAI,SAAUL,EAAK5e,GACnD,MAAO,CACLooC,MAAOxpB,MA+DX,OA3DA5mB,EAAKivP,GAAe,SAAUC,EAAWlnP,GACvC,GAAK8e,EAASooO,GAAd,CAKA,IAAK,IAAIpgP,EAAI,EAAGA,EAAI0Y,EAAO1b,OAAQgD,IACjC,IAAK0Y,EAAO1Y,GAAGpO,QACI,MAAhBwuP,EAAUlmP,IAAcwe,EAAO1Y,GAAGshC,MAAMpnC,KAAOkmP,EAAUlmP,GAAK,GAG/D,OAFAwe,EAAO1Y,GAAGpO,OAASwuP,OACnBD,EAAcjnP,GAAS,MAK3B,IAAS8G,EAAI,EAAGA,EAAI0Y,EAAO1b,OAAQgD,IAAK,CACtC,IAAIshC,EAAQ5oB,EAAO1Y,GAAGshC,MAEtB,IAAK5oB,EAAO1Y,GAAGpO,SAEC,MAAZ0vC,EAAMpnC,IAA8B,MAAhBkmP,EAAUlmP,KAAiC,MAAlBkmP,EAAU1hP,OAAiBk8K,EAAUwlE,KAAexlE,EAAUt5I,IAAUA,EAAM5iC,OAAS0hP,EAAU1hP,KAAO,GAGvJ,OAFAga,EAAO1Y,GAAGpO,OAASwuP,OACnBD,EAAcjnP,GAAS,WAM7BhI,EAAKivP,GAAe,SAAUC,EAAWlnP,GACvC,GAAK8e,EAASooO,GAAd,CAMA,IAFA,IAAIpgP,EAAI,EAEDA,EAAI0Y,EAAO1b,OAAQgD,IAAK,CAC7B,IAAIshC,EAAQ5oB,EAAO1Y,GAAGshC,MAEtB,IAAK5oB,EAAO1Y,GAAGpO,SAIXgpL,EAAUt5I,IAKK,MAAhB8+M,EAAUlmP,GAAY,CACvBwe,EAAO1Y,GAAGpO,OAASwuP,EACnB,OAIApgP,GAAK0Y,EAAO1b,QACd0b,EAAO9lB,KAAK,CACVhB,OAAQwuP,QAIP1nO,EAaT,SAASuhK,EAAcF,GAUrB,IAAIsmE,EAAQ1rP,EAAOxD,gBACnBD,EAAK6oL,GAAW,SAAUxjL,EAAM2C,GAC9B,IAAIonP,EAAW/pP,EAAK+qC,MACpBg/M,GAAYD,EAAM/rP,IAAIgsP,EAASpmP,GAAI3D,MAErCrF,EAAK6oL,GAAW,SAAUxjL,EAAM2C,GAC9B,IAAIqI,EAAMhL,EAAK3E,OACf+C,EAAOyqC,QAAQ79B,GAAiB,MAAVA,EAAIrH,KAAemmP,EAAMpsP,IAAIsN,EAAIrH,KAAOmmP,EAAMpsP,IAAIsN,EAAIrH,MAAQ3D,EAAM,mBAAqBgL,GAAOA,EAAIrH,KAC1HqH,GAAiB,MAAVA,EAAIrH,IAAcmmP,EAAM/rP,IAAIiN,EAAIrH,GAAI3D,IAC1CA,EAAK2jL,UAAY3jL,EAAK2jL,QAAU,OAGnChpL,EAAK6oL,GAAW,SAAUxjL,EAAM2C,GAC9B,IAAIonP,EAAW/pP,EAAK+qC,MAChB//B,EAAMhL,EAAK3E,OACXsoL,EAAU3jL,EAAK2jL,QAEnB,GAAKliK,EAASzW,GAAd,CAYA,GAJA24K,EAAQx7K,KAAmB,MAAZ6C,EAAI7C,KAAe6C,EAAI7C,KAAO,GAAK4hP,EAAWA,EAAS5hP,KAEpEshP,EAA8B9mP,EAE5BonP,EACFpmE,EAAQhgL,GAAKomP,EAASpmP,QACjB,GAAc,MAAVqH,EAAIrH,GACbggL,EAAQhgL,GAAKqH,EAAIrH,GAAK,OACjB,CAML,IAAIqmP,EAAQ,EAEZ,GACErmE,EAAQhgL,GAAK,KAAOggL,EAAQx7K,KAAO,KAAO6hP,UACnCF,EAAMpsP,IAAIimL,EAAQhgL,KAG7BmmP,EAAM/rP,IAAI4lL,EAAQhgL,GAAI3D,OAI1B,SAASg0I,EAAgBhxB,GACvB,IAAI76G,EAAO66G,EAAe76G,KAE1B,SAAUA,IAAQA,EAAKkmB,QAAQo7N,IASjC,SAASplE,EAAUwlE,GACjB,OAAOpoO,EAASooO,IAAcA,EAAUlmP,IAAkD,KAA3CkmP,EAAUlmP,GAAK,IAAI0qB,QAAQ,YAY5E,SAASisF,EAAgB2vI,EAAQC,GAC/B,IAAIC,EAAO,GACPC,EAAO,GAGX,OAFAC,EAAQJ,GAAU,GAAIE,GACtBE,EAAQH,GAAU,GAAIE,EAAMD,GACrB,CAACG,EAAWH,GAAOG,EAAWF,IAErC,SAASC,EAAQE,EAAa9nP,EAAK+nP,GACjC,IAAK,IAAI/gP,EAAI,EAAGqK,EAAMy2O,EAAY9jP,OAAQgD,EAAIqK,EAAKrK,IAKjD,IAJA,IAAI+Y,EAAW+nO,EAAY9gP,GAAG+Y,SAC1BH,EAAckyF,EAAiBg2I,EAAY9gP,GAAGrN,WAC9CquP,EAAmBD,GAAYA,EAAShoO,GAEnCxO,EAAI,EAAG8nO,EAAOz5N,EAAY5b,OAAQuN,EAAI8nO,EAAM9nO,IAAK,CACxD,IAAI5X,EAAYimB,EAAYrO,GAExBy2O,GAAoBA,EAAiBruP,GACvCquP,EAAiBruP,GAAa,MAE7BqG,EAAI+f,KAAc/f,EAAI+f,GAAY,KAAKpmB,GAAa,GAM7D,SAASkuP,EAAW7nP,EAAKioP,GACvB,IAAIvoO,EAAS,GAEb,IAAK,IAAI1Y,KAAKhH,EACZ,GAAIA,EAAI8V,eAAe9O,IAAgB,MAAVhH,EAAIgH,GAC/B,GAAIihP,EACFvoO,EAAO9lB,MAAMoN,OACR,CACL,IAAI4Y,EAAcioO,EAAW7nP,EAAIgH,IAAI,GACrC4Y,EAAY5b,QAAU0b,EAAO9lB,KAAK,CAChCmmB,SAAU/Y,EACVrN,UAAWimB,IAMnB,OAAOF,GAWX,SAAS2yB,EAAe/4C,EAAM29B,GAC5B,OAA+B,MAA3BA,EAAQmpF,gBACHnpF,EAAQmpF,gBACe,MAArBnpF,EAAQt9B,UACVgC,EAAOogB,QAAQkb,EAAQt9B,WAAagC,EAAOqE,IAAIi3B,EAAQt9B,WAAW,SAAU+M,GACjF,OAAOpN,EAAK+mH,gBAAgB35G,MACzBpN,EAAK+mH,gBAAgBppF,EAAQt9B,WACT,MAAhBs9B,EAAQvxB,KACV/J,EAAOogB,QAAQkb,EAAQvxB,MAAQ/J,EAAOqE,IAAIi3B,EAAQvxB,MAAM,SAAUgB,GACvE,OAAOpN,EAAK6/B,YAAYzyB,MACrBpN,EAAK6/B,YAAYlC,EAAQvxB,WAHzB,EA4BT,SAASsgC,IAEP,IAAIllC,EAAM,gBAAkBonP,IAAqB,IAAMtjP,KAAKixH,SAAS1yH,QAAQ,GAC7E,OAAO,SAAUglP,GACf,OAAOA,EAAQrnP,KAASqnP,EAAQrnP,GAAO,KAI3C,IAAIonP,EAAmB,EAqCvB,SAASprI,EAAYjkH,EAAS4N,EAAQ8B,GACpC,GAAI5M,EAAOid,SAASnS,GAAS,CAC3B,IAAIqY,EAAM,GACVA,EAAIrY,EAAS,SAAW,EACxBA,EAASqY,EAGX,IAAIqhG,EAAkB53G,GAAOA,EAAI43G,iBAE7BA,GAAoBthG,EAAIpY,EAAQ05G,EAAkB,UAAathG,EAAIpY,EAAQ05G,EAAkB,OAAUthG,EAAIpY,EAAQ05G,EAAkB,UACvI15G,EAAO05G,EAAkB,SAAW,GAGtC,IAAIzgG,EAAS,GA6Bb,OA5BAxnB,EAAKuO,GAAQ,SAAUC,EAAO5F,GACxB4F,EAAQD,EAAO3F,GAEnB,GAAY,cAARA,GAA+B,oBAARA,EAA3B,CAKA,IAAIsnP,EAAYtnP,EAAIk8D,MAAM,2BAA6B,GACnDhnC,EAAWoyN,EAAU,GACrBC,GAAaD,EAAU,IAAM,IAAI/8J,cAErC,MAAKr1D,IAAaqyN,GAAsB,MAAT3hP,GAA+B,UAAd2hP,GAAmC,SAAV3hP,GAAoB6B,GAAOA,EAAI8sN,kBAAoB15N,EAAOiwB,QAAQrjB,EAAI8sN,iBAAkBr/L,GAAY,GAA7K,CAIA,IAAIsyN,EAAa,CACftyN,SAAUA,GAGM,UAAdqyN,GAAmC,QAAV3hP,IAC3B4hP,EAAWD,GAAa3hP,GAG1B,IAAIw5G,EAASrnH,EAAQgxD,gBAAgBy+L,GACrC5oO,EAAOsW,EAAW,UAAYkqF,EAC9BxgG,EAAOsW,EAAW,SAAWkqF,EAAO,SAtBlCxgG,EAAO5e,GAAO4F,KAwBXgZ,EAGT,SAASb,EAAIC,EAAKiN,GAChB,OAAOjN,GAAOA,EAAIhJ,eAAeiW,GAGnC,SAAS+5F,EAAa/K,EAAKj6G,EAAK4F,GAC9Bq0G,EAAI+K,aAAe/K,EAAI+K,aAAahlH,EAAK4F,GAASq0G,EAAIj6G,GAAO4F,EAG/D,SAASolF,EAAaivB,EAAKj6G,GACzB,OAAOi6G,EAAIjvB,aAAeivB,EAAIjvB,aAAahrF,GAAOi6G,EAAIj6G,GAGxD,SAAS8sG,EAAqBI,GAC5B,MAAyB,SAArBA,EAEKnsF,EAAI46C,aAAe,OAAS,WAE5BuxC,GAAoB,OAgB/B,SAASu7E,EAAUz8K,EAAO2zF,GACxB,IAAIurF,EAAUrwL,EAAOxD,gBACjBkvF,EAAO,GAKX,OAJA1rF,EAAOzD,KAAK4U,GAAO,SAAUvP,GAC3B,IAAIuD,EAAM2/F,EAAOljG,IAChByuL,EAAQ/wL,IAAI6F,KAASumF,EAAKztF,KAAKkH,GAAMkrL,EAAQ1wL,IAAIwF,EAAK,MAAMlH,KAAK2D,MAE7D,CACL8pF,KAAMA,EACN2kG,QAASA,GAIbtwL,EAAQo2G,iBAAmBA,EAC3Bp2G,EAAQ+F,gBAAkBA,EAC1B/F,EAAQ2gF,mBAAqBA,EAC7B3gF,EAAQuqC,iBAAmBA,EAC3BvqC,EAAQumF,iBAAmBA,EAC3BvmF,EAAQslL,gBAAkBA,EAC1BtlL,EAAQulL,cAAgBA,EACxBvlL,EAAQ61I,gBAAkBA,EAC1B71I,EAAQkmL,UAAYA,EACpBlmL,EAAQm8G,gBAAkBA,EAC1Bn8G,EAAQ22C,eAAiBA,EACzB32C,EAAQsqC,UAAYA,EACpBtqC,EAAQohH,YAAcA,EACtBphH,EAAQoqH,aAAeA,EACvBpqH,EAAQowF,aAAeA,EACvBpwF,EAAQkyG,qBAAuBA,EAC/BlyG,EAAQ6tL,UAAYA,G,qBC9gBpB,IAAIu+B,EAAY,EAAQ,QA6BxB,SAASxmK,EAAM0gF,GACbjpI,KAAKwvP,SAAWvmH,GAAW,GAO3BjpI,KAAK6oD,QAAU,CAAC91C,KAAWA,KAO3B/S,KAAKygE,UAAY,EACjBzgE,KAAKgJ,MAAQhJ,KAAKgJ,KAAKsd,MAAMtmB,KAAMkJ,WASrCq/C,EAAMz6C,UAAU0N,MAAQ,SAAU/P,GAKhC,OAAOA,GAGT88C,EAAMz6C,UAAUqyD,WAAa,SAAUxzD,GACrC,OAAO3M,KAAKwvP,SAAS7iP,IAGvB47C,EAAMz6C,UAAUI,QAAU,SAAUzC,GAClC,IAAIosB,EAAS73B,KAAK6oD,QAClB,OAAOp9C,GAAOosB,EAAO,IAAMpsB,GAAOosB,EAAO,IAS3C0wB,EAAMz6C,UAAUk7C,UAAY,SAAUv9C,GACpC,IAAIosB,EAAS73B,KAAK6oD,QAElB,OAAIhxB,EAAO,KAAOA,EAAO,GAChB,IAGDpsB,EAAMosB,EAAO,KAAOA,EAAO,GAAKA,EAAO,KASjD0wB,EAAMz6C,UAAUW,MAAQ,SAAUhD,GAChC,IAAIosB,EAAS73B,KAAK6oD,QAClB,OAAOp9C,GAAOosB,EAAO,GAAKA,EAAO,IAAMA,EAAO,IAQhD0wB,EAAMz6C,UAAUu7C,YAAc,SAAU41H,GACtC,IAAIpnJ,EAAS73B,KAAK6oD,QAClBo2H,EAAM,GAAKpnJ,EAAO,KAAOA,EAAO,GAAKonJ,EAAM,IAC3CA,EAAM,GAAKpnJ,EAAO,KAAOA,EAAO,GAAKonJ,EAAM,KAU7C12H,EAAMz6C,UAAUs7C,oBAAsB,SAAU7oD,EAAMwP,GACpD/P,KAAKqpD,YAAY9oD,EAAK+oD,qBAAqBv5C,KAQ7Cw4C,EAAMz6C,UAAUyX,UAAY,WAC1B,OAAOvlB,KAAK6oD,QAAQvhD,SAStBihD,EAAMz6C,UAAUk1C,UAAY,SAAUzuC,EAAO8lE,GAC3C,IAAI6kH,EAAal/L,KAAK6oD,QAEjB9vC,MAAMxE,KACT2qL,EAAW,GAAK3qL,GAGbwE,MAAMshE,KACT6kH,EAAW,GAAK7kH,IASpB9xB,EAAMz6C,UAAU4yC,QAAU,WACxB,OAAO1gD,KAAKyvP,UAMdlnM,EAAMz6C,UAAUk3J,SAAW,SAAUtkH,GACnC1gD,KAAKyvP,SAAW/uM,GAQlB6H,EAAMz6C,UAAUq7C,SAAW,KAC3B4lK,EAAU7vF,kBAAkB32E,GAC5BwmK,EAAU7zD,sBAAsB3yG,EAAO,CACrCozG,oBAAoB,IAEtB,IAAIp8J,EAAWgpD,EACf7lD,EAAOC,QAAUpD,G,qBClMjB,IAAIqD,EAAS,EAAQ,QAEjB4pD,EAAU,EAAQ,QAElBjgD,EAAe,EAAQ,QA2BvB5H,EAAQ,SAAU2+B,GAIpB,IAAK,IAAIv7B,KAHTu7B,EAAOA,GAAQ,GACfkpB,EAAQ1/C,KAAK9M,KAAMsjC,GAEHA,EACVA,EAAKvmB,eAAehV,KACtB/H,KAAK+H,GAAOu7B,EAAKv7B,IAIrB/H,KAAK0sN,UAAY,GACjB1sN,KAAK2sN,UAAY,KACjB3sN,KAAK2sD,SAAU,GAGjBhoD,EAAMmJ,UAAY,CAChBC,YAAapJ,EACbylE,SAAS,EAKT3qE,KAAM,QAQNmS,QAAQ,EAKRiN,SAAU,WACR,OAAO7e,KAAK0sN,UAAUplN,SAQxBw3B,QAAS,SAAU5uB,GACjB,OAAOlQ,KAAK0sN,UAAUx8M,IAQxBg7B,YAAa,SAAUv+B,GAGrB,IAFA,IAAIkS,EAAW7e,KAAK0sN,UAEXz+M,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IACnC,GAAI4Q,EAAS5Q,GAAGtB,OAASA,EACvB,OAAOkS,EAAS5Q,IAQtByhP,WAAY,WACV,OAAO1vP,KAAK0sN,UAAUzhN,QAOxB3F,IAAK,SAAUia,GAOb,OANIA,GAASA,IAAUvf,MAAQuf,EAAMsC,SAAW7hB,OAC9CA,KAAK0sN,UAAU7rN,KAAK0e,GAEpBvf,KAAK2vP,OAAOpwO,IAGPvf,MAQT4vP,UAAW,SAAUrwO,EAAOgzE,GAC1B,GAAIhzE,GAASA,IAAUvf,MAAQuf,EAAMsC,SAAW7hB,MAAQuyF,GAAeA,EAAY1wE,SAAW7hB,KAAM,CAClG,IAAI6e,EAAW7e,KAAK0sN,UAChBx8M,EAAM2O,EAASgU,QAAQ0/D,GAEvBriF,GAAO,IACT2O,EAASo3C,OAAO/lD,EAAK,EAAGqP,GAExBvf,KAAK2vP,OAAOpwO,IAIhB,OAAOvf,MAET2vP,OAAQ,SAAUpwO,GACZA,EAAMsC,QACRtC,EAAMsC,OAAOwgB,OAAO9iB,GAGtBA,EAAMsC,OAAS7hB,KACf,IAAIwlH,EAAUxlH,KAAK2sN,UACfpiM,EAAKvqB,KAAKktD,KAEVs4D,GAAWA,IAAYjmG,EAAMotM,YAC/BnnG,EAAQ6iD,aAAa9oJ,GAEjBA,aAAiB5a,GACnB4a,EAAMqtM,qBAAqBpnG,IAI/Bj7F,GAAMA,EAAG4iC,WAOX9qB,OAAQ,SAAU9iB,GAChB,IAAIgL,EAAKvqB,KAAKktD,KACVs4D,EAAUxlH,KAAK2sN,UACf9tM,EAAW7e,KAAK0sN,UAChBx8M,EAAMtN,EAAOiwB,QAAQhU,EAAUU,GAEnC,OAAIrP,EAAM,IAIV2O,EAASo3C,OAAO/lD,EAAK,GACrBqP,EAAMsC,OAAS,KAEX2jG,IACFA,EAAQ2iD,eAAe5oJ,GAEnBA,aAAiB5a,GACnB4a,EAAMstM,uBAAuBrnG,IAIjCj7F,GAAMA,EAAG4iC,WAdAntD,MAqBXuD,UAAW,WACT,IAEIgc,EACAtR,EAHA4Q,EAAW7e,KAAK0sN,UAChBlnG,EAAUxlH,KAAK2sN,UAInB,IAAK1+M,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IAC/BsR,EAAQV,EAAS5Q,GAEbu3G,IACFA,EAAQ2iD,eAAe5oJ,GAEnBA,aAAiB5a,GACnB4a,EAAMstM,uBAAuBrnG,IAIjCjmG,EAAMsC,OAAS,KAIjB,OADAhD,EAAS5T,OAAS,EACXjL,MAQTo9B,UAAW,SAAUjf,EAAIyB,GAGvB,IAFA,IAAIf,EAAW7e,KAAK0sN,UAEXz+M,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IAAK,CACxC,IAAIsR,EAAQV,EAAS5Q,GACrBkQ,EAAGrR,KAAK8S,EAASL,EAAOtR,GAG1B,OAAOjO,MAQT8iC,SAAU,SAAU3kB,EAAIyB,GACtB,IAAK,IAAI3R,EAAI,EAAGA,EAAIjO,KAAK0sN,UAAUzhN,OAAQgD,IAAK,CAC9C,IAAIsR,EAAQvf,KAAK0sN,UAAUz+M,GAC3BkQ,EAAGrR,KAAK8S,EAASL,GAEE,UAAfA,EAAM9f,MACR8f,EAAMujB,SAAS3kB,EAAIyB,GAIvB,OAAO5f,MAET4sN,qBAAsB,SAAUpnG,GAC9B,IAAK,IAAIv3G,EAAI,EAAGA,EAAIjO,KAAK0sN,UAAUzhN,OAAQgD,IAAK,CAC9C,IAAIsR,EAAQvf,KAAK0sN,UAAUz+M,GAC3Bu3G,EAAQ6iD,aAAa9oJ,GAEjBA,aAAiB5a,GACnB4a,EAAMqtM,qBAAqBpnG,KAIjCqnG,uBAAwB,SAAUrnG,GAChC,IAAK,IAAIv3G,EAAI,EAAGA,EAAIjO,KAAK0sN,UAAUzhN,OAAQgD,IAAK,CAC9C,IAAIsR,EAAQvf,KAAK0sN,UAAUz+M,GAC3Bu3G,EAAQ2iD,eAAe5oJ,GAEnBA,aAAiB5a,GACnB4a,EAAMstM,uBAAuBrnG,KAInClzG,MAAO,WAGL,OAFAtS,KAAK2sD,SAAU,EACf3sD,KAAKktD,MAAQltD,KAAKktD,KAAKC,UAChBntD,MAMTiM,gBAAiB,SAAU4jP,GAOzB,IALA,IAAI7jP,EAAO,KACPwrM,EAAU,IAAIjrM,EAAa,EAAG,EAAG,EAAG,GACpCsS,EAAWgxO,GAAmB7vP,KAAK0sN,UACnCojC,EAAS,GAEJ7hP,EAAI,EAAGA,EAAI4Q,EAAS5T,OAAQgD,IAAK,CACxC,IAAIsR,EAAQV,EAAS5Q,GAErB,IAAIsR,EAAM+zB,SAAU/zB,EAAMirB,UAA1B,CAIA,IAAIgsE,EAAYj3F,EAAMtT,kBAClBqC,EAAYiR,EAAMskB,kBAAkBisN,GAQpCxhP,GACFkpM,EAAQzzK,KAAKyyE,GACbghG,EAAQtyK,eAAe52B,GACvBtC,EAAOA,GAAQwrM,EAAQ9vM,QACvBsE,EAAKyqG,MAAM+gG,KAEXxrM,EAAOA,GAAQwqG,EAAU9uG,QACzBsE,EAAKyqG,MAAMD,KAIf,OAAOxqG,GAAQwrM,IAGnB50M,EAAOwxB,SAASzvB,EAAO6nD,GACvB,IAAIjtD,EAAWoF,EACfjC,EAAOC,QAAUpD,G,qBCvTjB,IAAI4yC,EAAO,EAAQ,QAEfwlB,EAAQ,EAAQ,QAKhBa,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IACfqjD,EAAUjoD,KAAKw4C,IACfwP,EAAUhoD,KAAK04C,IACfihC,EAAgB,EAAV35E,KAAK+E,GACX2D,EAAQ49B,EAAKvO,SACby2C,EAAMloC,EAAKvO,SACXmsN,EAAY59M,EAAKvO,SASrB,SAAS6uI,EAAWl7J,EAAQ7G,EAAKD,GAC/B,GAAsB,IAAlB8G,EAAOtM,OAAX,CAIA,IAKIgD,EALAwJ,EAAIF,EAAO,GACXhN,EAAOkN,EAAE,GACThN,EAAQgN,EAAE,GACVjN,EAAMiN,EAAE,GACR/M,EAAS+M,EAAE,GAGf,IAAKxJ,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAQgD,IAC7BwJ,EAAIF,EAAOtJ,GACX1D,EAAOiuD,EAAQjuD,EAAMkN,EAAE,IACvBhN,EAAQguD,EAAQhuD,EAAOgN,EAAE,IACzBjN,EAAMguD,EAAQhuD,EAAKiN,EAAE,IACrB/M,EAAS+tD,EAAQ/tD,EAAQ+M,EAAE,IAG7B/G,EAAI,GAAKnG,EACTmG,EAAI,GAAKlG,EACTiG,EAAI,GAAKhG,EACTgG,EAAI,GAAK/F,GAaX,SAAS+xD,EAASzB,EAAIC,EAAIb,EAAIC,EAAI3pD,EAAKD,GACrCC,EAAI,GAAK8nD,EAAQwC,EAAIZ,GACrB1pD,EAAI,GAAK8nD,EAAQyC,EAAIZ,GACrB5pD,EAAI,GAAKgoD,EAAQuC,EAAIZ,GACrB3pD,EAAI,GAAKgoD,EAAQwC,EAAIZ,GAGvB,IAAI21L,EAAO,GACPC,EAAO,GAgBX,SAASvzL,EAAU1B,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI/pD,EAAKD,GACtD,IAEIxC,EAFAu8H,EAAe7yE,EAAM6yE,aACrBtuE,EAAUvE,EAAMuE,QAEhBtoD,EAAI42H,EAAaxvE,EAAIZ,EAAIE,EAAIE,EAAIw1L,GAMrC,IALAt/O,EAAI,GAAKqC,IACTrC,EAAI,GAAKqC,IACTtC,EAAI,IAAMsC,IACVtC,EAAI,IAAMsC,IAEL9E,EAAI,EAAGA,EAAI2F,EAAG3F,IAAK,CACtB,IAAIxI,EAAIy2D,EAAQlB,EAAIZ,EAAIE,EAAIE,EAAIw1L,EAAK/hP,IACrCyC,EAAI,GAAK8nD,EAAQ/yD,EAAGiL,EAAI,IACxBD,EAAI,GAAKgoD,EAAQhzD,EAAGgL,EAAI,IAK1B,IAFAmD,EAAI42H,EAAavvE,EAAIZ,EAAIE,EAAIE,EAAIw1L,GAE5BhiP,EAAI,EAAGA,EAAI2F,EAAG3F,IAAK,CACtB,IAAIvI,EAAIw2D,EAAQjB,EAAIZ,EAAIE,EAAIE,EAAIw1L,EAAKhiP,IACrCyC,EAAI,GAAK8nD,EAAQ9yD,EAAGgL,EAAI,IACxBD,EAAI,GAAKgoD,EAAQ/yD,EAAG+K,EAAI,IAG1BC,EAAI,GAAK8nD,EAAQwC,EAAItqD,EAAI,IACzBD,EAAI,GAAKgoD,EAAQuC,EAAIvqD,EAAI,IACzBC,EAAI,GAAK8nD,EAAQgC,EAAI9pD,EAAI,IACzBD,EAAI,GAAKgoD,EAAQ+B,EAAI/pD,EAAI,IACzBC,EAAI,GAAK8nD,EAAQyC,EAAIvqD,EAAI,IACzBD,EAAI,GAAKgoD,EAAQwC,EAAIxqD,EAAI,IACzBC,EAAI,GAAK8nD,EAAQiC,EAAI/pD,EAAI,IACzBD,EAAI,GAAKgoD,EAAQgC,EAAIhqD,EAAI,IAgB3B,SAASksD,EAAc3B,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAI7pD,EAAKD,GAClD,IAAI66H,EAAoB3zE,EAAM2zE,kBAC1Bl3F,EAAcujB,EAAMvjB,YAEpBE,EAAKmkB,EAAQD,EAAQ8yE,EAAkBtwE,EAAIZ,EAAIE,GAAK,GAAI,GACxD/lB,EAAKkkB,EAAQD,EAAQ8yE,EAAkBrwE,EAAIZ,EAAIE,GAAK,GAAI,GACxD90D,EAAI2uC,EAAY4mB,EAAIZ,EAAIE,EAAIhmB,GAC5B5uC,EAAI0uC,EAAY6mB,EAAIZ,EAAIE,EAAIhmB,GAChC7jC,EAAI,GAAK8nD,EAAQwC,EAAIV,EAAI70D,GACzBiL,EAAI,GAAK8nD,EAAQyC,EAAIV,EAAI70D,GACzB+K,EAAI,GAAKgoD,EAAQuC,EAAIV,EAAI70D,GACzBgL,EAAI,GAAKgoD,EAAQwC,EAAIV,EAAI70D,GAkB3B,SAASo3D,EAAQr3D,EAAGC,EAAGk3D,EAAIC,EAAI/a,EAAYC,EAAU+Y,EAAepqD,EAAKD,GACvE,IAAI8qO,EAAUppM,EAAKzhC,IACf8qO,EAAUrpM,EAAK1hC,IACfwpB,EAAOpuB,KAAKC,IAAIg2C,EAAaC,GAEjC,GAAI9nB,EAAOurD,EAAM,MAAQvrD,EAAO,KAM9B,OAJAvpB,EAAI,GAAKjL,EAAIm3D,EACblsD,EAAI,GAAKhL,EAAIm3D,EACbpsD,EAAI,GAAKhL,EAAIm3D,OACbnsD,EAAI,GAAK/K,EAAIm3D,GA6Bf,GAzBAtoD,EAAM,GAAKs/C,EAAQ/R,GAAc8a,EAAKn3D,EACtC8O,EAAM,GAAKu/C,EAAQhS,GAAc+a,EAAKn3D,EACtC20E,EAAI,GAAKxmB,EAAQ9R,GAAY6a,EAAKn3D,EAClC40E,EAAI,GAAKvmB,EAAQ/R,GAAY8a,EAAKn3D,EAClC61O,EAAQ7qO,EAAK6D,EAAO8lE,GACpBmhK,EAAQ/qO,EAAK8D,EAAO8lE,GAEpBv4B,GAA0B0jC,EAEtB1jC,EAAa,IACfA,GAA0B0jC,GAG5BzjC,GAAsByjC,EAElBzjC,EAAW,IACbA,GAAsByjC,GAGpB1jC,EAAaC,IAAa+Y,EAC5B/Y,GAAYyjC,EACH1jC,EAAaC,GAAY+Y,IAClChZ,GAAc0jC,GAGZ1qB,EAAe,CACjB,IAAI/lD,EAAMgtC,EACVA,EAAWD,EACXA,EAAa/sC,EAKf,IAAK,IAAIy9C,EAAQ,EAAGA,EAAQzQ,EAAUyQ,GAAS3mD,KAAK+E,GAAK,EACnD4hD,EAAQ1Q,IACViuM,EAAU,GAAKl8L,EAAQrB,GAASoK,EAAKn3D,EACrCsqP,EAAU,GAAKj8L,EAAQtB,GAASqK,EAAKn3D,EACrC61O,EAAQ7qO,EAAKq/O,EAAWr/O,GACxB8qO,EAAQ/qO,EAAKs/O,EAAWt/O,IAK9B9N,EAAQ8vK,WAAaA,EACrB9vK,EAAQ85D,SAAWA,EACnB95D,EAAQ+5D,UAAYA,EACpB/5D,EAAQg6D,cAAgBA,EACxBh6D,EAAQm6D,QAAUA,G,qBCxMlB,IAAIt0D,EAAmB,EAAQ,QAE3B5F,EAAS,EAAQ,QAEjB08F,EAAmB,EAAQ,QAE3BtO,EAAyBsO,EAAiBtO,uBAE1CroF,EAAgB,EAAQ,QAExB+mC,EAAkC/mC,EAAc+mC,gCAoBhD8rL,EAAmB,CAKrB00B,aAAc,KAKdtwP,eAAgB,SAAUC,EAAQC,GAIhC,IAAI6oD,EAKAwnM,EAJAjuG,EAAapiJ,EAAQmC,aAAa,QAASjC,KAAKkC,IAAI,eACpDigJ,EAAariJ,EAAQmC,aAAa,QAASjC,KAAKkC,IAAI,eACpDkuP,EAAYluG,EAAWhgJ,IAAI,QAC3BmuP,EAAYluG,EAAWjgJ,IAAI,QAIb,aAAdkuP,GACFvwP,EAAOoD,OAAS,aAChB0lD,EAAcu5F,EAAW34F,iBACzB4mM,GAAa,GACU,aAAdE,GACTxwP,EAAOoD,OAAS,WAChB0lD,EAAcw5F,EAAW54F,iBACzB4mM,GAAa,GAEbtwP,EAAOoD,OAASpD,EAAOoD,QAAU,aAGnC,IAAIkyB,EAAY,CAAC,IAAK,KAClBm7N,EAAqC,eAAlBzwP,EAAOoD,OAA0B,EAAI,EACxDm1M,EAAcp4M,KAAKkwP,aAAe/6N,EAAUm7N,GAC5CrvG,EAAe9rH,EAAU,EAAIm7N,GAC7BrtL,EAAa,CAACi/E,EAAYC,GAC1BouG,EAAettL,EAAWqtL,GAAkBpuP,IAAI,QAChDsuP,EAAgBvtL,EAAW,EAAIqtL,GAAkBpuP,IAAI,QACrD3B,EAAOV,EAAOU,KAGlB,GAAIA,GAAQ4vP,EAAY,CACtB,IAAIM,EAAgB,GACpB7tP,EAAOzD,KAAKoB,GAAM,SAAUiE,EAAM2C,GAChC,IAAIupP,EAEAlsP,EAAKmJ,OAAS/K,EAAOogB,QAAQxe,EAAKmJ,QACpC+iP,EAAUlsP,EAAKmJ,MAAMrG,QACrB9C,EAAKmJ,MAAM6Z,QAAQrgB,IACVvE,EAAOogB,QAAQxe,IACxBksP,EAAUlsP,EAAK8C,QACf9C,EAAKgjB,QAAQrgB,IAEbupP,EAAUlsP,EAGZisP,EAAc5vP,KAAK6vP,MAErB7wP,EAAOU,KAAOkwP,EAGhB,IAAI/0B,EAAyB17N,KAAK07N,uBAC9BpyN,EAAkB,CAAC,CACrBqD,KAAMyrM,EACN34M,KAAMuxF,EAAuBu/J,GAC7B5nM,YAAaA,EACb+nC,UAAW,CACT/mC,SAAS,EACThZ,SAAU,GAEZF,QAAS,CAAC,SACT,CACD9jC,KAAMs0I,EACNxhJ,KAAMuxF,EAAuBw/J,GAC7B//M,QAASirL,EAAuBp0N,UAElC,OAAOkB,EAAiBxI,KAAM,CAC5BsJ,gBAAiBA,EACjB4Z,gBAAiBw4M,EAAuBzwN,OAAS,EACjD1B,gBAAiB3G,EAAO4G,MAAMkmC,EAAiCpmC,EAAiBtJ,SAQpF+3B,YAAa,WACX,IAAIhoB,EAAM/P,KAAKkwP,aACf,OAAOlwP,KAAKF,QAAQmC,aAAa8N,EAAM,OAAQ/P,KAAKkC,IAAI6N,EAAM,cAAcL,OAGhF/M,EAAQ64N,iBAAmBA,G,qBC7H3B,IAAIh9M,EAAmB,EAAQ,QAE3BD,EAAO,EAAQ,QAEfrf,EAAQ,EAAQ,QAEhBM,EAASN,EAAMM,OACfwjB,EAAU9jB,EAAM8jB,QAqCpB,SAASzjB,EAASuC,EAAa0N,EAAKulJ,GAClCvlJ,EAAMwT,EAAQxT,IAAQ,CACpBlG,gBAAiBkG,IACdhQ,EAAO,GAAIgQ,GAChB,IAAIzP,EAAS+B,EAAY7B,YACrBgjB,EAAiBzE,EAAiBze,EAAQyP,GAC1C2T,EAAO,IAAI5E,EAAK0E,EAAgBnhB,GAEpC,OADAqhB,EAAKC,SAASrjB,EAAQg1J,GACf5xI,EAGTzgB,EAAOC,QAAUpD,G,qBCvDjB,IAAIkJ,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UACnB8rE,EAAmBtwG,EAAOswG,iBAoB1B9qE,EAAQhB,IAEZ,SAAS0jN,EAAuBv4H,EAAQqgB,GAGtC,IAFA,IAAIm4G,EAAax4H,EAAOntH,OAEfgD,EAAI,EAAGA,EAAI2iP,EAAY3iP,IAC9B,GAAImqH,EAAOnqH,GAAGhD,OAASwtI,EACrB,OAAOrgB,EAAOnqH,GAIlB,OAAOmqH,EAAOw4H,EAAa,GAG7B,IAAIrxP,EAAW,CACbsoH,kBAAmB,WACjB55E,EAAMjuC,MAAM6wP,SAAW,EACvB5iN,EAAMjuC,MAAM8wP,aAAe,IAU7BvqK,oBAAqB,SAAU55E,EAAM4hF,EAAOkqD,GAC1ClqD,EAAQA,GAASvuF,KACjB,IAAI+wP,EAAc9iN,EAAMsgD,GACpBsiK,EAAWE,EAAYF,UAAY,EACnCC,EAAeC,EAAYD,aAAeC,EAAYD,cAAgB,GAE1E,GAAIA,EAAa/zO,eAAepQ,GAC9B,OAAOmkP,EAAankP,GAGtB,IAAIqkP,EAAsBj4I,EAAiB/4G,KAAKkC,IAAI,SAAS,IACzD+uP,EAAsBjxP,KAAKkC,IAAI,cAAc,GAC7CgvP,EAAkC,MAAnBz4G,GAA4Bw4G,EAA4CN,EAAuBM,EAAqBx4G,GAAlEu4G,EAIrE,GAFAE,EAAeA,GAAgBF,EAE1BE,GAAiBA,EAAajmP,OAAnC,CAIA,IAAI2M,EAAQs5O,EAAaL,GAOzB,OALIlkP,IACFmkP,EAAankP,GAAQiL,GAGvBm5O,EAAYF,UAAYA,EAAW,GAAKK,EAAajmP,OAC9C2M,KAGXlV,EAAOC,QAAUpD,G,qBChFjB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,S,qBCZR,IAAIqD,EAAS,EAAQ,QAoCrB,SAASmvN,IACP,IAEIo/B,EAFA3rI,EAAU,GACV4rI,EAAc,GAElB,MAAO,CAmBL9rP,IAAK,SAAUmmB,EAAIrZ,EAAQ8I,EAAMiB,EAAOhC,GAMtC,OALIvX,EAAOid,SAAS1D,KAClBhC,EAASgC,EACTA,EAAQ,IAGNi1O,EAAY3lO,EAAGtjB,MAInBipP,EAAY3lO,EAAGtjB,IAAM,EACrBq9G,EAAQ3kH,KAAK,CACX4qB,GAAIA,EACJrZ,OAAQA,EACR8I,KAAMA,EACNiB,MAAOA,EACPhC,OAAQA,KAEH,IAST+D,KAAM,SAAUjB,GAEd,OADAk0O,EAAel0O,EACRjd,MAMTuU,MAAO,WAGL,IAFA,IAAI4N,EAAQqjG,EAAQv6G,OAEXgD,EAAI,EAAGqK,EAAMktG,EAAQv6G,OAAQgD,EAAIqK,EAAKrK,IAAK,CAClD,IAAIzJ,EAAOghH,EAAQv3G,GACnBzJ,EAAKinB,GAAGqwB,UAAUt3C,EAAK4N,OAAQ5N,EAAK0W,KAAM1W,EAAK2X,MAAO3X,EAAK2V,OAAQ+D,GAGrE,OAAOle,KAEP,SAASke,IACPiE,IAEKA,IACHqjG,EAAQv6G,OAAS,EACjBmmP,EAAc,GACdD,GAAgBA,QAO1BxuP,EAAQovN,WAAaA,G,qBCrHrB,IAAIjvN,EAAU,EAAQ,QAElB42C,EAAe,EAAQ,QAEvBC,EAAkBD,EAAaC,gBAoBnC,SAAS+gC,EAAS5Q,EAAavoC,EAAYpgB,EAAWvJ,EAAO9V,EAAalB,EAAW8hK,GACnF,IAAIxiI,EAAa/e,EAAUF,SAAS,SAChCkf,EAAkBhf,EAAUF,SAAS,kBACzCne,EAAQw+B,cAAcwoC,EAAavoC,EAAYrB,EAAYC,EAAiB,CAC1EgB,aAAcr/B,EACd0/B,eAAgB5gC,EAChB6gC,YAAakY,EAAgB73C,EAAYtB,UAAWI,GACpDs8C,YAAY,EACZC,UAAWvlC,IAEby5O,EAAYvnL,GACZunL,EAAY9vN,GAGd,SAAS8vN,EAAY7rP,EAAOk9J,GACC,YAAvBl9J,EAAMmoE,eACRnoE,EAAMmoE,aAAe+0F,GAIzB//J,EAAQ+3E,SAAWA,G,qBChEnB,IAAI/iB,EAAQ,EAAQ,QAiBpB,SAAS0sG,EAAcrpG,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIie,EAAWjzE,EAAGC,GACnE,GAAkB,IAAdgzE,EACF,OAAO,EAGT,IAAI4rF,EAAK5rF,EAET,GAAIhzE,EAAIu1D,EAAKqpG,GAAM5+J,EAAI20D,EAAKiqG,GAAM5+J,EAAI60D,EAAK+pG,GAAM5+J,EAAI+0D,EAAK6pG,GAAM5+J,EAAIu1D,EAAKqpG,GAAM5+J,EAAI20D,EAAKiqG,GAAM5+J,EAAI60D,EAAK+pG,GAAM5+J,EAAI+0D,EAAK6pG,GAAM7+J,EAAIu1D,EAAKspG,GAAM7+J,EAAI20D,EAAKkqG,GAAM7+J,EAAI60D,EAAKgqG,GAAM7+J,EAAI+0D,EAAK8pG,GAAM7+J,EAAIu1D,EAAKspG,GAAM7+J,EAAI20D,EAAKkqG,GAAM7+J,EAAI60D,EAAKgqG,GAAM7+J,EAAI+0D,EAAK8pG,EAC5O,OAAO,EAGT,IAAItnG,EAAIrF,EAAMszE,kBAAkBjwE,EAAIC,EAAIb,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIh1D,EAAGC,EAAG,MACtE,OAAOs3D,GAAKsnG,EAAK,EAGnB3hK,EAAQ0hK,cAAgBA,G,qBChCxB,IAAI93J,EAAe,EAAQ,QAEvB+4B,EAAc,EAAQ,QAEtBpmC,EAAQ,EAAQ,QAEhB26D,EAAa36D,EAAM26D,WACnBr6D,EAASN,EAAMM,OACfi1B,EAAYv1B,EAAMu1B,UAClB0hJ,EAAYj3K,EAAMi3K,UAClB9lG,EAAOnxE,EAAMmxE,KACbihL,EAAiB,GACjBC,EAAwB,EACxBC,EAAiB,IACjBC,EAAY,gCACZh+H,EAAe,kBAEfhqC,EAAU,GAEd,SAASwmC,EAAUtjH,EAAMmpC,GACvB2zC,EAAQ98E,GAAQmpC,EAUlB,SAAS9pB,EAASrmB,EAAMijC,GACtBA,EAAOA,GAAQ6qF,EACf,IAAI1rH,EAAMpC,EAAO,IAAMijC,EAEvB,GAAI0oN,EAAevpP,GACjB,OAAOupP,EAAevpP,GAMxB,IAHA,IAAIitH,GAAarvH,EAAO,IAAI2tF,MAAM,MAC9B9xF,EAAQ,EAEHyM,EAAI,EAAGmoD,EAAI4+D,EAAU/pH,OAAQgD,EAAImoD,EAAGnoD,IAE3CzM,EAAQqK,KAAK4E,IAAIihP,EAAY18H,EAAU/mH,GAAI26B,GAAMpnC,MAAOA,GAU1D,OAPI+vP,EAAwBC,IAC1BD,EAAwB,EACxBD,EAAiB,IAGnBC,IACAD,EAAevpP,GAAOvG,EACfA,EAeT,SAASyK,EAAgBtG,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAaN,EAAgBX,EAAMke,GACpG,OAAOle,EAAOqjL,EAAgBhsP,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAaN,EAAgBX,EAAMke,GAAYolK,EAAiBjsP,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAaN,EAAgBud,GAGjN,SAASolK,EAAiBjsP,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAaN,EAAgBud,GAC/F,IAAIqnC,EAAeE,EAAepuH,EAAMijC,EAAM2mC,EAAaN,EAAgBud,GACvEmxH,EAAa3xL,EAASrmB,EAAMijC,GAE5B2mC,IACFouI,GAAcpuI,EAAY,GAAKA,EAAY,IAG7C,IAAIykD,EAAcH,EAAaG,YAC3BvuH,EAAIo4M,EAAY,EAAGF,EAAY93M,GAC/BH,EAAI6uH,EAAY,EAAGP,EAAapuH,GAChCoG,EAAO,IAAIO,EAAa9G,EAAGC,EAAGi4M,EAAY3pF,GAE9C,OADAhoH,EAAKioH,WAAaJ,EAAaI,WACxBjoH,EAGT,SAAS2lP,EAAgBhsP,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAaN,EAAgBX,EAAMke,GACpG,IAAIqnC,EAAe0qF,EAAc54M,EAAM,CACrC2oE,KAAMA,EACNke,SAAUA,EACV5jD,KAAMA,EACN/iC,UAAWA,EACX0pE,YAAaA,EACbN,eAAgBA,IAEd0uI,EAAa9pF,EAAa8pF,WAC1B3pF,EAAcH,EAAaG,YAC3BvuH,EAAIo4M,EAAY,EAAGF,EAAY93M,GAC/BH,EAAI6uH,EAAY,EAAGP,EAAapuH,GACpC,OAAO,IAAI2G,EAAa9G,EAAGC,EAAGi4M,EAAY3pF,GAW5C,SAAS6pF,EAAYp4M,EAAGjE,EAAOqE,GAQ7B,MANkB,UAAdA,EACFJ,GAAKjE,EACkB,WAAdqE,IACTJ,GAAKjE,EAAQ,GAGRiE,EAWT,SAAS8uH,EAAY7uH,EAAGwG,EAAQtG,GAO9B,MAN0B,WAAtBA,EACFF,GAAKwG,EAAS,EACiB,WAAtBtG,IACTF,GAAKwG,GAGAxG,EAYT,SAAS4nD,EAAsBp+C,EAAK1J,EAAOwG,GACzC,IAAI2hE,EAAenoE,EAAMmoE,aACrB/jB,EAAWpkD,EAAMuoE,aACjBtoE,EAAIuG,EAAKvG,EACTC,EAAIsG,EAAKtG,EACbkkD,EAAWA,GAAY,EACvB,IAAI19C,EAASF,EAAKE,OACd1K,EAAQwK,EAAKxK,MACbqwP,EAAa3lP,EAAS,EACtBrG,EAAY,OACZD,EAAoB,MAExB,OAAQ+nE,GACN,IAAK,OACHloE,GAAKmkD,EACLlkD,GAAKmsP,EACLhsP,EAAY,QACZD,EAAoB,SACpB,MAEF,IAAK,QACHH,GAAKmkD,EAAWpoD,EAChBkE,GAAKmsP,EACLjsP,EAAoB,SACpB,MAEF,IAAK,MACHH,GAAKjE,EAAQ,EACbkE,GAAKkkD,EACL/jD,EAAY,SACZD,EAAoB,SACpB,MAEF,IAAK,SACHH,GAAKjE,EAAQ,EACbkE,GAAKwG,EAAS09C,EACd/jD,EAAY,SACZ,MAEF,IAAK,SACHJ,GAAKjE,EAAQ,EACbkE,GAAKmsP,EACLhsP,EAAY,SACZD,EAAoB,SACpB,MAEF,IAAK,aACHH,GAAKmkD,EACLlkD,GAAKmsP,EACLjsP,EAAoB,SACpB,MAEF,IAAK,cACHH,GAAKjE,EAAQooD,EACblkD,GAAKmsP,EACLhsP,EAAY,QACZD,EAAoB,SACpB,MAEF,IAAK,YACHH,GAAKjE,EAAQ,EACbkE,GAAKkkD,EACL/jD,EAAY,SACZ,MAEF,IAAK,eACHJ,GAAKjE,EAAQ,EACbkE,GAAKwG,EAAS09C,EACd/jD,EAAY,SACZD,EAAoB,SACpB,MAEF,IAAK,gBACHH,GAAKmkD,EACLlkD,GAAKkkD,EACL,MAEF,IAAK,iBACHnkD,GAAKjE,EAAQooD,EACblkD,GAAKkkD,EACL/jD,EAAY,QACZ,MAEF,IAAK,mBACHJ,GAAKmkD,EACLlkD,GAAKwG,EAAS09C,EACdhkD,EAAoB,SACpB,MAEF,IAAK,oBACHH,GAAKjE,EAAQooD,EACblkD,GAAKwG,EAAS09C,EACd/jD,EAAY,QACZD,EAAoB,SACpB,MAQJ,OALAsJ,EAAMA,GAAO,GACbA,EAAIzJ,EAAIA,EACRyJ,EAAIxJ,EAAIA,EACRwJ,EAAIrJ,UAAYA,EAChBqJ,EAAItJ,kBAAoBA,EACjBsJ,EAaT,SAAS4iP,EAAyBnkL,EAAc3hE,EAAM49C,GACpD,IAAImoM,EAAa,CACfpkL,aAAcA,EACdI,aAAcnkB,GAEhB,OAAO0D,EAAsB,GAAIykM,EAAY/lP,GAoB/C,SAAS8tN,EAAan0N,EAAMusM,EAAgBtpK,EAAM6uI,EAAU93J,GAC1D,IAAKuyL,EACH,MAAO,GAGT,IAAIl9E,GAAarvH,EAAO,IAAI2tF,MAAM,MAClC3zE,EAAUqyO,EAAuB9/C,EAAgBtpK,EAAM6uI,EAAU93J,GAGjE,IAAK,IAAI1R,EAAI,EAAGqK,EAAM08G,EAAU/pH,OAAQgD,EAAIqK,EAAKrK,IAC/C+mH,EAAU/mH,GAAKgkP,EAAmBj9H,EAAU/mH,GAAI0R,GAGlD,OAAOq1G,EAAUn7G,KAAK,MAGxB,SAASm4O,EAAuB9/C,EAAgBtpK,EAAM6uI,EAAU93J,GAC9DA,EAAUngB,EAAO,GAAImgB,GACrBA,EAAQipB,KAAOA,EACX6uI,EAAWhjJ,EAAUgjJ,EAAU,OACnC93J,EAAQuyO,cAAgBz9N,EAAU9U,EAAQuyO,cAAe,GACzD,IAAI/9B,EAAUx0M,EAAQw0M,QAAU1/L,EAAU9U,EAAQw0M,QAAS,GAG3Dx0M,EAAQwyO,YAAcnmO,EAAS,IAAK4c,GAGpC,IAAIwpN,EAAezyO,EAAQyyO,aAAepmO,EAAS,IAAK4c,GACxDjpB,EAAQ+3J,YAAcjjJ,EAAU9U,EAAQ+3J,YAAa,IAKrD,IAFA,IAAI+mC,EAAevM,EAAiBrmM,KAAK4E,IAAI,EAAGyhM,EAAiB,GAExDjkM,EAAI,EAAGA,EAAIkmN,GAAW1V,GAAgB2zC,EAAcnkP,IAC3DwwM,GAAgB2zC,EAGlB,IAAIC,EAAgBrmO,EAASyrJ,EAAU7uI,GAYvC,OAVIypN,EAAgB5zC,IAClBhnC,EAAW,GACX46E,EAAgB,GAGlB5zC,EAAevM,EAAiBmgD,EAChC1yO,EAAQ83J,SAAWA,EACnB93J,EAAQ0yO,cAAgBA,EACxB1yO,EAAQ8+L,aAAeA,EACvB9+L,EAAQuyL,eAAiBA,EAClBvyL,EAGT,SAASsyO,EAAmBvrC,EAAU/mM,GACpC,IAAIuyL,EAAiBvyL,EAAQuyL,eACzBtpK,EAAOjpB,EAAQipB,KACf61K,EAAe9+L,EAAQ8+L,aAE3B,IAAKvM,EACH,MAAO,GAGT,IAAIx5H,EAAY1sD,EAAS06L,EAAU99K,GAEnC,GAAI8vC,GAAaw5H,EACf,OAAOwU,EAGT,IAAK,IAAIluM,EAAI,GAAIA,IAAK,CACpB,GAAIkgE,GAAa+lI,GAAgBjmM,GAAKmH,EAAQuyO,cAAe,CAC3DxrC,GAAY/mM,EAAQ83J,SACpB,MAGF,IAAI66E,EAAkB,IAAN95O,EAAU+5O,EAAe7rC,EAAUjI,EAAc9+L,EAAQyyO,aAAczyO,EAAQwyO,aAAez5K,EAAY,EAAI7sE,KAAK+N,MAAM8sM,EAASz7M,OAASwzM,EAAe/lI,GAAa,EACvLguI,EAAWA,EAAStvF,OAAO,EAAGk7H,GAC9B55K,EAAY1sD,EAAS06L,EAAU99K,GAOjC,MAJiB,KAAb89K,IACFA,EAAW/mM,EAAQ+3J,aAGdgvC,EAGT,SAAS6rC,EAAe5sP,EAAM84M,EAAc2zC,EAAcD,GAIxD,IAHA,IAAI3wP,EAAQ,EACRyM,EAAI,EAECqK,EAAM3S,EAAKsF,OAAQgD,EAAIqK,GAAO9W,EAAQi9M,EAAcxwM,IAAK,CAChE,IAAIukP,EAAW7sP,EAAK0vI,WAAWpnI,GAC/BzM,GAAS,GAAKgxP,GAAYA,GAAY,IAAMJ,EAAeD,EAG7D,OAAOlkP,EAST,SAASwkP,EAAc7pN,GAErB,OAAO5c,EAAS,IAAK4c,GAUvB,SAAS8oN,EAAY/rP,EAAMijC,GACzB,OAAO6gD,EAAQioK,YAAY/rP,EAAMijC,GAsBnC,SAASmrF,EAAepuH,EAAMijC,EAAM5e,EAASilD,EAAgBud,GACnD,MAAR7mF,IAAiBA,GAAQ,IACzB,IAAIsuH,EAAax/F,EAAUw6C,EAAgBwjL,EAAc7pN,IACrD0Y,EAAQ37C,EAAOA,EAAK2tF,MAAM,MAAQ,GAClCpnF,EAASo1C,EAAMr2C,OAASgpH,EACxBD,EAAc9nH,EACduoH,GAAuB,EAM3B,GAJIzqG,IACFgqG,GAAehqG,EAAQ,GAAKA,EAAQ,IAGlCrkB,GAAQ6mF,EAAU,CACpBioC,GAAuB,EACvB,IAAIi+H,EAAmBlmK,EAASwnC,YAC5B2+H,EAAkBnmK,EAASmxH,WAE/B,GAAwB,MAApB+0C,GAA4B1+H,EAAc0+H,EAC5C/sP,EAAO,GACP27C,EAAQ,QACH,GAAuB,MAAnBqxM,EAOT,IANA,IAAIhzO,EAAUqyO,EAAuBW,GAAmB3oO,EAAUA,EAAQ,GAAKA,EAAQ,GAAK,GAAI4e,EAAM4jD,EAASirF,SAAU,CACvH08C,QAAS3nI,EAAS2nI,QAClBz8C,YAAalrF,EAASkrF,cAIfzpK,EAAI,EAAGqK,EAAMgpC,EAAMr2C,OAAQgD,EAAIqK,EAAKrK,IAC3CqzC,EAAMrzC,GAAKgkP,EAAmB3wM,EAAMrzC,GAAI0R,GAK9C,MAAO,CACL2hC,MAAOA,EACPp1C,OAAQA,EACR8nH,YAAaA,EACbC,WAAYA,EACZQ,qBAAsBA,GAmC1B,SAAS8pF,EAAc54M,EAAMH,GAC3B,IAAIquH,EAAe,CACjBvyE,MAAO,GACP9/C,MAAO,EACP0K,OAAQ,GAIV,GAFQ,MAARvG,IAAiBA,GAAQ,KAEpBA,EACH,OAAOkuH,EAGT,IACIltG,EADAovC,EAAY07L,EAAU17L,UAAY,EAGtC,MAA0C,OAAlCpvC,EAAS8qO,EAAUp7J,KAAK1wF,IAAgB,CAC9C,IAAIitP,EAAejsO,EAAOxf,MAEtByrP,EAAe78L,GACjB88L,EAAWh/H,EAAcluH,EAAKmtP,UAAU/8L,EAAW68L,IAGrDC,EAAWh/H,EAAcltG,EAAO,GAAIA,EAAO,IAC3CovC,EAAY07L,EAAU17L,UAGpBA,EAAYpwD,EAAKsF,QACnB4nP,EAAWh/H,EAAcluH,EAAKmtP,UAAU/8L,EAAWpwD,EAAKsF,SAG1D,IAAIq2C,EAAQuyE,EAAavyE,MACrB0yK,EAAgB,EAChBvV,EAAe,EAEfp2J,EAAc,GACd0qM,EAAavtP,EAAM+pE,YACnBid,EAAWhnF,EAAMgnF,SACjBwmK,EAAgBxmK,GAAYA,EAASmxH,WACrCs1C,EAAiBzmK,GAAYA,EAASwnC,YAEtC++H,IACe,MAAjBC,IAA0BA,GAAiBD,EAAW,GAAKA,EAAW,IACpD,MAAlBE,IAA2BA,GAAkBF,EAAW,GAAKA,EAAW,KAI1E,IAAK,IAAI9kP,EAAI,EAAGA,EAAIqzC,EAAMr2C,OAAQgD,IAAK,CAKrC,IAJA,IAAIi5E,EAAO5lC,EAAMrzC,GACbgmH,EAAa,EACbv7C,EAAY,EAEPlgE,EAAI,EAAGA,EAAI0uE,EAAK03H,OAAO3zM,OAAQuN,IAAK,CAC3C,IAAImmM,EAAQz3H,EAAK03H,OAAOpmM,GACpB0mM,EAAaP,EAAMh8H,WAAan9E,EAAM8oE,KAAKqwI,EAAMh8H,YAAc,GAE/DpT,EAAcovI,EAAMpvI,YAAc2vI,EAAW3vI,YAE7C3mC,EAAO+1K,EAAM/1K,KAAOs2K,EAAWt2K,MAAQpjC,EAAMojC,KAE7CsqN,EAAcv0C,EAAMxvI,WAAa16C,EAErCyqL,EAAW/vI,WAAYsjL,EAAc7pN,IAOrC,GANA2mC,IAAgB2jL,GAAe3jL,EAAY,GAAKA,EAAY,IAC5DovI,EAAMzyM,OAASgnP,EACfv0C,EAAM1qF,WAAakiD,EAAU+oC,EAAWjwI,eAAgBzpE,EAAMypE,eAAgBikL,GAC9Ev0C,EAAM94M,UAAYq5M,GAAcA,EAAWr5M,WAAaL,EAAMK,UAC9D84M,EAAM/4M,kBAAoBs5M,GAAcA,EAAWt5M,mBAAqB,SAElD,MAAlBqtP,GAA0Bj/B,EAAgBrV,EAAM1qF,WAAag/H,EAC/D,MAAO,CACL3xM,MAAO,GACP9/C,MAAO,EACP0K,OAAQ,GAIZyyM,EAAMzvI,UAAYljD,EAAS2yL,EAAMh5M,KAAMijC,GACvC,IAAIuqN,EAAaj0C,EAAWhwI,UACxBkkL,EAAuC,MAAdD,GAAqC,SAAfA,EAGnD,GAA0B,kBAAfA,GAAwE,MAA7CA,EAAW/oJ,OAAO+oJ,EAAWloP,OAAS,GAC1E0zM,EAAM00C,aAAeF,EACrB9qM,EAAYxnD,KAAK89M,GACjBw0C,EAAa,MAER,CACL,GAAIC,EAAwB,CAC1BD,EAAax0C,EAAMzvI,UAGnB,IAAII,EAAsB4vI,EAAW5vI,oBACjCgkL,EAAQhkL,GAAuBA,EAAoB3pC,MAWnD2tN,IACFA,EAAQhuN,EAAYuiH,eAAeyrG,GAE/BhuN,EAAYS,aAAautN,KAC3BH,EAAatnP,KAAK4E,IAAI0iP,EAAYG,EAAM9xP,MAAQ0xP,EAAcI,EAAMpnP,UAK1E,IAAIqnP,EAAWhkL,EAAcA,EAAY,GAAKA,EAAY,GAAK,EAC/D4jL,GAAcI,EACd,IAAIC,EAAoC,MAAjBR,EAAwBA,EAAgBt6K,EAAY,KAEnD,MAApB86K,GAA4BA,EAAmBL,KAC5CC,GAA0BI,EAAmBD,GAChD50C,EAAMh5M,KAAO,GACbg5M,EAAMzvI,UAAYikL,EAAa,IAE/Bx0C,EAAMh5M,KAAOm0N,EAAanb,EAAMh5M,KAAM6tP,EAAmBD,EAAU3qN,EAAM4jD,EAASirF,SAAU,CAC1F08C,QAAS3nI,EAAS2nI,UAEpBxV,EAAMzvI,UAAYljD,EAAS2yL,EAAMh5M,KAAMijC,GACvCuqN,EAAax0C,EAAMzvI,UAAYqkL,IAKrC76K,GAAaimI,EAAMn9M,MAAQ2xP,EAC3Bj0C,IAAejrF,EAAapoH,KAAK4E,IAAIwjH,EAAY0qF,EAAM1qF,aAGzD/sC,EAAK1lF,MAAQk3E,EACbwO,EAAK+sC,WAAaA,EAClB+/F,GAAiB//F,EACjBwqF,EAAe5yM,KAAK4E,IAAIguM,EAAc/lI,GAGxCm7C,EAAa8pF,WAAa9pF,EAAaryH,MAAQizB,EAAUjvB,EAAM0pE,UAAWuvI,GAC1E5qF,EAAaG,YAAcH,EAAa3nH,OAASuoB,EAAUjvB,EAAM2pE,WAAY6kJ,GAEzE++B,IACFl/H,EAAa8pF,YAAco1C,EAAW,GAAKA,EAAW,GACtDl/H,EAAaG,aAAe++H,EAAW,GAAKA,EAAW,IAGzD,IAAS9kP,EAAI,EAAGA,EAAIo6C,EAAYp9C,OAAQgD,IAAK,CACvC0wM,EAAQt2J,EAAYp6C,GAAxB,IACIolP,EAAe10C,EAAM00C,aAEzB10C,EAAMn9M,MAAQqmB,SAASwrO,EAAc,IAAM,IAAM50C,EAGnD,OAAO5qF,EAGT,SAASg/H,EAAWxoF,EAAOz0E,EAAKjT,GAK9B,IAJA,IAAI8wK,EAAqB,KAAR79J,EACb89J,EAAO99J,EAAItC,MAAM,MACjBhyC,EAAQ+oH,EAAM/oH,MAETrzC,EAAI,EAAGA,EAAIylP,EAAKzoP,OAAQgD,IAAK,CACpC,IAAItI,EAAO+tP,EAAKzlP,GACZ0wM,EAAQ,CACVh8H,UAAWA,EACXh9E,KAAMA,EACNw5M,cAAex5M,IAAS8tP,GAG1B,GAAKxlP,EAkBDqzC,EAAMzgD,KAAK,CACT+9M,OAAQ,CAACD,SAnBP,CACN,IAAIC,GAAUt9J,EAAMA,EAAMr2C,OAAS,KAAOq2C,EAAM,GAAK,CACnDs9J,OAAQ,MACNA,OAQA+0C,EAAY/0C,EAAO3zM,OACT,IAAd0oP,GAAmB/0C,EAAO,GAAGO,aAAeP,EAAO,GAAKD,GAEvDh5M,IAASguP,GAAaF,IAAe70C,EAAO/9M,KAAK89M,KAWxD,SAAS1B,EAASz3M,GAGhB,IAAIojC,GAAQpjC,EAAMkkB,UAAYlkB,EAAMwpE,aAAe,CAACxpE,EAAMspE,UAAWtpE,EAAMupE,YAAavpE,EAAMkkB,UAAY,IAAM,KAChHlkB,EAAMwpE,YAAc,cAAcn1D,KAAK,KACvC,OAAO+uB,GAAQynC,EAAKznC,IAASpjC,EAAM7B,UAAY6B,EAAMojC,KApSvD6gD,EAAQioK,YAAc,SAAU/rP,EAAMijC,GACpC,IAAInE,EAAMo1B,IAEV,OADAp1B,EAAImE,KAAOA,GAAQ6qF,EACZhvF,EAAIitN,YAAY/rP,IAoSzBhD,EAAQ8wH,aAAeA,EACvB9wH,EAAQstH,UAAYA,EACpBttH,EAAQqpB,SAAWA,EACnBrpB,EAAQsJ,gBAAkBA,EAC1BtJ,EAAQk7M,YAAcA,EACtBl7M,EAAQ4xH,YAAcA,EACtB5xH,EAAQ2qD,sBAAwBA,EAChC3qD,EAAQmvP,yBAA2BA,EACnCnvP,EAAQm3N,aAAeA,EACvBn3N,EAAQ8vP,cAAgBA,EACxB9vP,EAAQ+uP,YAAcA,EACtB/uP,EAAQoxH,eAAiBA,EACzBpxH,EAAQ47M,cAAgBA,EACxB57M,EAAQs6M,SAAWA,G,qBC1rBnB,IAAI/9M,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KAEbwF,EAAQ,EAAQ,QAEhBirK,EAAgB,EAAQ,QAExBm/C,EAAY,EAAQ,QAEpB31K,EAAY,EAAQ,QAEpBqxI,EAAc,EAAQ,QAEtBr0C,EAAQ,EAAQ,QAEhBC,EAAaD,EAAMC,WAEnB9hH,EAAsB,EAAQ,QAoB9B0Z,EAAQmL,EAAUnM,YAClB2mN,EAAgBr/N,IAEpB,SAASs/N,IAKP7zP,KAAKsD,MAAQ,IAAIqB,EAMjB3E,KAAKiI,IAAM2nK,EAAcxzI,OAAO,aAChCp8B,KAAK+qH,WAAasrB,EAAW,CAC3BxhH,KAAMi/N,EACNh/N,MAAOi/N,IAET/zP,KAAK+qH,WAAWnrG,QAAU,CACxBkmG,KAAM9lH,MAIV6zP,EAAM/lP,UAAY,CAChBrO,KAAM,QAONuJ,KAAM,SAAUlJ,EAASyG,KASzB+K,OAAQ,SAAUxP,EAAahC,EAASyG,EAAK23B,KAS7Cuc,UAAW,SAAU34C,EAAahC,EAASyG,EAAK23B,GAC9C81N,EAAgBlyP,EAAYtB,UAAW09B,EAAS,aAUlDwc,SAAU,SAAU54C,EAAahC,EAASyG,EAAK23B,GAC7C81N,EAAgBlyP,EAAYtB,UAAW09B,EAAS,WAQlDmE,OAAQ,SAAUviC,EAASyG,GACzBvG,KAAKsD,MAAMC,aAQbgrB,QAAS,aASTk8B,yBAA0B,KAU1BE,kBAAmB,KAUnBj8C,gBAAiB,KAiBjBi/G,sBAAuB,MAEzB,IAAIsmI,EAAaJ,EAAM/lP,UAavB,SAASomP,EAAWzoO,EAAIrG,EAAOumD,GAC7B,GAAIlgD,IACFA,EAAG6R,QAAQlY,EAAOumD,GAEdlgD,EAAG2+C,UACHqgH,EAAYt+G,qBAAqB1gD,IACnC,IAAK,IAAIxd,EAAI,EAAGqK,EAAMmT,EAAGikO,aAAczhP,EAAIqK,EAAKrK,IAC9CimP,EAAWzoO,EAAGqT,QAAQ7wB,GAAImX,EAAOumD,GAYzC,SAASqoL,EAAgBzzP,EAAM29B,EAAS9Y,GACtC,IAAIxkB,EAAYw4C,EAAUE,eAAe/4C,EAAM29B,GAC3CytC,EAAiBztC,GAAmC,MAAxBA,EAAQmuC,aAAuBo+G,EAAYr+G,kBAAkBluC,EAAQmuC,cAAgB,KAEpG,MAAbzrE,EACFzB,EAAKi6C,EAAU2/D,iBAAiBn4G,IAAY,SAAUg/B,GACpDs0N,EAAW3zP,EAAKg5C,iBAAiB3Z,GAAUxa,EAAOumD,MAGpDprE,EAAKo+C,mBAAkB,SAAUlzB,GAC/ByoO,EAAWzoO,EAAIrG,EAAOumD,MAgB5B,SAASmoL,EAAel0O,GACtB,OAAOg0O,EAAch0O,EAAQkQ,OAG/B,SAASikO,EAAgBn0O,GACvB,IAAI9d,EAAc8d,EAAQkQ,MACtBhwB,EAAU8f,EAAQ9f,QAClByG,EAAMqZ,EAAQrZ,IACd23B,EAAUte,EAAQse,QAElB0sI,EAAoB9oK,EAAY8zB,gBAAgBg1I,kBAChD9kD,EAAOlmG,EAAQkmG,KACf8D,EAAe1rF,GAAW+P,EAAM/P,GAAS0rF,aACzCn8G,EAAam9J,EAAoB,2BAA6BhhD,GAAgB9D,EAAK8D,GAAgBA,EAErG,SAMF,MAJmB,WAAfn8G,GACFq4G,EAAKr4G,GAAY3L,EAAahC,EAASyG,EAAK23B,GAGvCi2N,EAAkB1mP,GA7E3BwmP,EAAWxrI,WAAawrI,EAAWv/M,aAAeu/M,EAAWtrI,aAAe,SAAU7mH,EAAahC,EAASyG,EAAK23B,GAC/Gl+B,KAAKsR,OAAOxP,EAAahC,EAASyG,EAAK23B,IA6CzC6wL,EAAU7vF,kBAAkB20H,EAAO,CAAC,YAEpC9kC,EAAU7zD,sBAAsB24F,EAAO,CACrCl4F,oBAAoB,IAGtBk4F,EAAMnrI,iBAAmB,SAAUxqF,EAASzwB,GAC1CwgC,EAAM/P,GAAS0rF,aAAen8G,GA2BhC,IAAI0mP,EAAoB,CACtB1pM,yBAA0B,CACxB90B,SAAU,SAAU9rB,EAAQ+V,GAC1BA,EAAQkmG,KAAKn7D,kBAAkB9gD,EAAQ+V,EAAQkQ,MAAOlQ,EAAQ9f,QAAS8f,EAAQrZ,IAAKqZ,EAAQse,WAGhG5sB,OAAQ,CAKN8iP,oBAAoB,EACpBz+N,SAAU,SAAU9rB,EAAQ+V,GAC1BA,EAAQkmG,KAAKx0G,OAAOsO,EAAQkQ,MAAOlQ,EAAQ9f,QAAS8f,EAAQrZ,IAAKqZ,EAAQse,YAI3E3+B,EAAWs0P,EACfnxP,EAAOC,QAAUpD,G,qBC7RjB,IAAIknI,EAAW,EAAQ,QAEnB26E,EAAU,EAAQ,QAElBliN,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KAOjB,SAASojP,EAAW92O,GAClB,OAAOoc,SAASpc,EAAK,IAOvB,SAAS4oP,EAAWn1O,EAAMsmG,GACxB47F,EAAQ65B,UACRj7O,KAAKkf,KAAOA,EACZlf,KAAKwlH,QAAUA,EACf,IAAI8uI,EAActpO,SAASU,cAAc,OACrC+3L,EAAUz4L,SAASU,cAAc,OACrC4oO,EAAY9uP,MAAMikB,QAAU,mFAC5Bg6L,EAAQj+M,MAAMikB,QAAU,kCACxBvK,EAAKgN,YAAYooO,GACjBt0P,KAAKu0P,SAAW9wC,EAChBzjN,KAAKw0P,aAAeF,EACpBt0P,KAAKi9E,SAEL,IAAIirF,EAAoB1iD,EAAQ2iD,eAC5BC,EAAkB5iD,EAAQ6iD,aAE9B7iD,EAAQ2iD,eAAiB,SAAU18I,GACjCy8I,EAAkBp7J,KAAK04G,EAAS/5F,GAE5BA,GACFA,EAAGu4L,UAAYv4L,EAAGu4L,SAASP,IAI/Bj+F,EAAQ6iD,aAAe,SAAU58I,GAE/BA,EAAGw4L,OAASx4L,EAAGw4L,MAAMR,GACrBr7C,EAAgBt7J,KAAK04G,EAAS/5F,IAGhCzrB,KAAKy0P,aAAc,EAgHrB,SAASjR,EAAuBn9O,GAC9B,OAAO,WACLogI,EAAS,iDAAmDpgI,EAAS,MA/GzEguP,EAAWvmP,UAAY,CACrBC,YAAasmP,EACbruI,QAAS,WACP,MAAO,OAMTl7F,gBAAiB,WACf,OAAO9qB,KAAKw0P,cAEdrpO,sBAAuB,WACrB,IAAIs4N,EAAezjP,KAAK8qB,kBAExB,GAAI24N,EACF,MAAO,CACLr4N,WAAYq4N,EAAar4N,YAAc,EACvCC,UAAWo4N,EAAap4N,WAAa,IAQ3C8hC,QAAS,WACP,IAAIhqC,EAAOnjB,KAAKwlH,QAAQC,gBAAe,GAAM,GAE7CzlH,KAAK0jP,WAAWvgO,IAElBugO,WAAY,SAAUvgO,GAGpB,IAFA,IAAIsgM,EAAUzjN,KAAKu0P,SAEVtmP,EAAI,EAAGA,EAAIkV,EAAKlY,OAAQgD,IAAK,CACpC,IAAIwd,EAAKtI,EAAKlV,GAEVwd,EAAG+e,WAAa/e,EAAG6nB,QAChB7nB,EAAGipO,qBACNjpO,EAAGu4L,SAASP,GAIdh4L,EAAGipO,qBAAsB,IAErBjpO,EAAGipO,qBACLjpO,EAAGw4L,MAAMR,GAGXh4L,EAAGipO,qBAAsB,EAErBjpO,EAAGkhC,UACLlhC,EAAGqhC,aAAerhC,EAAGqhC,eACpBrhC,EAAG+3L,UAAY/3L,EAAG+Z,OAAO14B,KAAK2e,EAAIg4L,GACnCh4L,EAAGshC,YAActhC,EAAGshC,eAIxBthC,EAAGkhC,SAAU,EAGX3sD,KAAKy0P,cAIPz0P,KAAKw0P,aAAatoO,YAAYu3L,GAE9BzjN,KAAKy0P,aAAc,IAGvBx3K,OAAQ,SAAUz7E,EAAO0K,GACnB1K,EAAiB,MAATA,EAAgBxB,KAAK20P,YAAcnzP,EAC3C0K,EAAmB,MAAVA,EAAiBlM,KAAK40P,aAAe1oP,EAElD,GAAIlM,KAAKokP,SAAW5iP,GAASxB,KAAKqkP,UAAYn4O,EAAQ,CACpDlM,KAAKokP,OAAS5iP,EACdxB,KAAKqkP,QAAUn4O,EACf,IAAI2oP,EAAmB70P,KAAKw0P,aAAahvP,MACzCqvP,EAAiBrzP,MAAQA,EAAQ,KACjCqzP,EAAiB3oP,OAASA,EAAS,OAGvCqiB,QAAS,WACPvuB,KAAKkf,KAAKwO,UAAY,GACtB1tB,KAAKu0P,SAAWv0P,KAAKw0P,aAAex0P,KAAKwlH,QAAU,MAErDx5F,SAAU,WACR,OAAOhsB,KAAKokP,QAEdn4N,UAAW,WACT,OAAOjsB,KAAKqkP,SAEdvrN,MAAO,WACD94B,KAAKw0P,cACPx0P,KAAKkf,KAAKsP,YAAYxuB,KAAKw0P,eAG/BG,UAAW,WACT,IAAIz1O,EAAOlf,KAAKkf,KACZiO,EAAMjO,EAAKkO,aACf,OAAQlO,EAAK+O,aAAes0N,EAAWp1N,EAAI3rB,QAAU+gP,EAAWp1N,EAAI2nO,aAAevS,EAAWp1N,EAAI4nO,cAAgB,GAEpHH,WAAY,WACV,IAAI11O,EAAOlf,KAAKkf,KACZiO,EAAMjO,EAAKkO,aACf,OAAQlO,EAAKgP,cAAgBq0N,EAAWp1N,EAAIjhB,SAAWq2O,EAAWp1N,EAAI6nO,YAAczS,EAAWp1N,EAAI8nO,eAAiB,IAWxH91P,EAAK,CAAC,WAAY,cAAe,YAAa,mBAAoB,iBAAkB,YAAa,WAAY,WAAY,aAAc,YAAa,gBAAgB,SAAUwN,GAC5K0nP,EAAWvmP,UAAUnB,GAAQ62O,EAAuB72O,MAEtD,IAAIpN,EAAW80P,EACf3xP,EAAOC,QAAUpD,G,qBC1JjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASrD,EAASM,GACXA,GAAW+C,EAAOogB,QAAQnjB,EAAO22E,SAKtC5zE,EAAOzD,KAAKU,EAAO22E,QAAQ,SAAU0+K,GAC/BtyP,EAAOqjB,SAASivO,IAAmC,MAApBA,EAAWz1P,OAC5Cy1P,EAAWz1P,KAAO,kBAKxBiD,EAAOC,QAAUpD,G,qBCjCjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBkmB,EAAM,EAAQ,QAEdlF,EAAgB,EAAQ,QAExBD,EAAgB,EAAQ,QAExBgxB,EAAiB,EAAQ,QAEzByE,EAAY,EAAQ,QAEpB6lB,EAAa,EAAQ,QAoBrB+tF,EAAYrpI,EAAcqpI,UAC1BD,EAAappI,EAAcopI,WAC3B/pI,EAAUpgB,EAAOogB,QACjB7jB,EAAOyD,EAAOzD,KACdy0E,EAAM3U,EAAW2U,IACjBD,EAAY1U,EAAW0U,UACvB/6B,EAAOh2C,EAAOg2C,KACdl1B,EAAiBtb,EAAQ48C,qBAAqB,CAChDvlD,KAAM,YACNC,aAAc,CAAC,UAMf2mB,UAAW,CAAC,UAAW,cAMvB8uO,qBAAsB,CAAC,UAAW,aAAc,SAAU,aAAc,SAQxEC,UAAW,EAAEriP,IAAUA,KAMvBmhD,WAAY,CACVz0D,KAAM,MACNo8J,YAAY,GAMd96J,cAAe,CACbK,MAAM,EACNJ,OAAQ,EACRC,EAAG,EACH81C,YAAa,MAKbrmC,IAAK,EAELD,IAAK,IAELiQ,UAAW,KACX+6F,QAAS,KAGTF,WAAY,KAIZhxG,KAAM,EAENE,MAAO,KAEPD,IAAK,KAELE,OAAQ,EAERwZ,UAAW,KACXC,WAAY,KACZ/c,SAAS,EACTN,OAAQ,WAERijB,gBAAiB,gBACjB5e,YAAa,OAEbkqP,aAAc,UACdtrG,cAAe,OACf3+I,YAAa,EAEb4e,QAAS,EAGTvmB,QAAS,GAETmkB,UAAW,EAEXhQ,MAAO,KAEPk9C,UAAW,KACXnvD,KAAM,KAEN0nE,UAAW,CACTz1D,MAAO,SAQX5O,KAAM,SAAUnJ,EAAQq/C,EAAap/C,GAKnCE,KAAKmpO,YAKLnpO,KAAKqkI,cAAgB,GAKrBrkI,KAAK85K,kBAAoB,GAKzB95K,KAAK0D,eAOL1D,KAAKiE,SACLjE,KAAKy/E,qBAAqB5/E,EAAQC,IAMpC0T,cAAe,SAAUiR,EAAWC,GAClC,IAAI6B,EAAavmB,KAAKH,OAIjBipB,EAAImB,kBACP1D,EAAW40D,UAAW,IAGvBz2D,GAAUiwB,EAAe05C,oBAAoB9nE,EAAY9B,EAAWzkB,KAAKm1P,sBAC1En1P,KAAK0D,eAAiB1D,KAAKihB,SAAS,aACpCjhB,KAAK+2F,gBACL/2F,KAAKylB,wBAMPP,YAAa,SAAU2oE,GACrB,IAAIxnE,EAAYrmB,KAAKqmB,UACrBwnE,EAAyBjrF,EAAOiC,KAAKgpF,EAAwB7tF,MAC7DA,KAAK85K,kBAAoBnlI,EAAesD,qBAAqBj4C,KAAKH,OAAO4iC,WAAYpc,EAAWwnE,GAChG7tF,KAAKqkI,cAAgB1vF,EAAesD,qBAAqBj4C,KAAKH,OAAOuS,OAAQiU,EAAWwnE,IAO1FynK,uBAAwB,WACtB,IAAIC,EAAoBv1P,KAAKH,OAAOk3C,YAChCC,EAAgB,GAUpB,OARyB,MAArBu+M,GAAmD,QAAtBA,EAC/Bv1P,KAAKF,QAAQ04C,YAAW,SAAU12C,EAAaqF,GAC7C6vC,EAAcn2C,KAAKsG,MAGrB6vC,EAAgBoC,EAAU2/D,iBAAiBw8I,GAGtCv+M,GAMTpwB,iBAAkB,SAAU3J,EAAU2C,GACpChd,EAAOzD,KAAKa,KAAKs1P,0BAA0B,SAAUv+M,GACnD95B,EAASnQ,KAAK8S,EAAS5f,KAAKF,QAAQu5C,iBAAiBtC,MACpD/2C,OAMLg/G,eAAgB,SAAUl9G,GACxB,IAAI23G,GAAK,EAIT,OAHAz5G,KAAK4mB,kBAAiB,SAAUkJ,GAC9BA,IAAUhuB,IAAgB23G,GAAK,MAE1BA,GAiBTzxF,gBAAiB,SAAUra,EAAOkY,EAAY6C,GAC5C,IAII8sO,EACAx3I,EALAn+G,EAASG,KAAKH,OACd+nB,EAAY/nB,EAAO+nB,UACnBwtO,EAAYp1P,KAAKo1P,UACjBtgM,EAAYj1D,EAAOi1D,UAYvB,OATApsC,EAAcA,GAAe,CAAC,IAAK,KAE/B9lB,EAAOogB,QAAQrV,KACjBA,EAAQA,EAAMrG,QACdkuP,GAAW,GAGbx3I,EAAYn4F,EAAalY,EAAQ6nP,EAAW,CAACprP,EAAQuD,EAAM,IAAKvD,EAAQuD,EAAM,KAAOvD,EAAQuD,GAEzF/K,EAAOid,SAASi1C,GACXA,EAAUryD,QAAQ,UAAW+yP,EAAWx3I,EAAU,GAAKA,GAAWv7G,QAAQ,WAAY+yP,EAAWx3I,EAAU,GAAKA,GAC9Gp7G,EAAO+zC,WAAWme,GACpB0gM,EAAW1gM,EAAUnnD,EAAM,GAAIA,EAAM,IAAMmnD,EAAUnnD,GAG1D6nP,EACE7nP,EAAM,KAAOynP,EAAU,GAClB1sO,EAAY,GAAK,IAAMs1F,EAAU,GAC/BrwG,EAAM,KAAOynP,EAAU,GACzB1sO,EAAY,GAAK,IAAMs1F,EAAU,GAEjCA,EAAU,GAAK,MAAQA,EAAU,GAInCA,EAGT,SAAS5zG,EAAQqB,GACf,OAAOA,IAAQ2pP,EAAU,GAAK,MAAQ3pP,IAAQ2pP,EAAU,GAAK,QAAU3pP,GAAKrB,QAAQyB,KAAK6E,IAAIkX,EAAW,OAO5GhD,YAAa,WACX,IAAI2B,EAAavmB,KAAKH,OAIlBg4B,EAAS+7C,EAAI,CAACrtD,EAAW7V,IAAK6V,EAAW9V,MAC7CzQ,KAAKmpO,YAActxM,GASrB/Q,iBAAkB,SAAU3D,GAC1B,IAAIsyO,EAASz1P,KAAKH,OAAO6gB,UACrBg1O,EAAiBvyO,EAAKhhB,WAE1B,GAAc,MAAVszP,GAAmBC,EAAezqP,OAAtC,CAIA,GAAc,MAAVwqP,EACF,OAAOtyO,EAAKxC,aAAa80O,GAK3B,IAFA,IAAIl+K,EAAWp0D,EAAKhhB,WAEX8L,EAAIspE,EAAStsE,OAAS,EAAGgD,GAAK,EAAGA,IAAK,CAC7C,IAAIzL,EAAU+0E,EAAStpE,GACnBm9E,EAAUjoE,EAAKqoE,iBAAiBhpF,GAEpC,IAAK4oF,EAAQuqK,mBACX,OAAOnzP,KASb+iB,UAAW,WACT,OAAOvlB,KAAKmpO,YAAY7hO,SAM1Bme,qBAAsB,WACpB,IAAI3lB,EAAUE,KAAKF,QACfymB,EAAavmB,KAAKH,OAClBy7I,EAAO,CACT7/B,QAASl1F,EAAWk1F,QACpBF,WAAYh1F,EAAWg1F,YAErBnpG,EAASmU,EAAWnU,SAAWmU,EAAWnU,OAAS,IACnDqwB,EAAalc,EAAWkc,aAAelc,EAAWkc,WAAa,IACnE7/B,EAAOie,MAAMzO,EAAQkpI,GAErB14I,EAAOie,MAAM4hB,EAAY64G,GAEzB,IAAIz1H,EAAa7lB,KAAK6lB,aAOtB,SAAS+vO,EAAet6G,GAKlBt4H,EAAQuD,EAAW3O,SAEnB0jI,EAAK7/B,UACP6/B,EAAK7/B,QAAU,CACb7jG,MAAO2O,EAAW3O,MAAMtQ,QAAQD,YAUpCi0I,EAAK7/B,QAAU6/B,EAAK7/B,SAAW,CAC7B7jG,MAAO9X,EAAQoC,IAAI,kBAGrB/C,EAAKa,KAAKqmB,WAAW,SAAUjB,GAC7B,IAAIY,EAAas1H,EAAKl2H,GAEtB,GAAIxiB,EAAOid,SAASmG,GAAa,CAC/B,IAAI6vO,EAAOjyO,EAAc1hB,IAAI8jB,EAAY,SAAUH,GAE/CgwO,GACFv6G,EAAKl2H,GAAS,GACdk2H,EAAKl2H,GAAOY,GAAc6vO,UAGnBv6G,EAAKl2H,MAGfplB,MAGL,SAAS81P,EAAiBx6G,EAAMy6G,EAAYC,GAC1C,IAAIC,EAAW36G,EAAKy6G,GAChBG,EAAY56G,EAAK06G,GAEjBC,IAAaC,IACfA,EAAY56G,EAAK06G,GAAe,GAChC72P,EAAK82P,GAAU,SAAUjoK,EAAYhoE,GACnC,GAAKrC,EAAcsqE,YAAYjoE,GAA/B,CAIA,IAAI6vO,EAAOjyO,EAAc1hB,IAAI8jB,EAAY,WAAYH,GAEzC,MAARgwO,IACFK,EAAUlwO,GAAc6vO,EAIL,UAAf7vO,GAA2BkwO,EAAUn5O,eAAe,YAAem5O,EAAUn5O,eAAe,gBAC9Fm5O,EAAUz0P,QAAU,CAAC,EAAG,UAOlC,SAAS00P,EAAmB1zN,GAC1B,IAAI2zN,GAAgB3zN,EAAWg5E,SAAW,IAAI5oE,SAAWpQ,EAAW84E,YAAc,IAAI1oE,OAClFwjN,GAAoB5zN,EAAWg5E,SAAW,IAAI1hE,aAAetX,EAAW84E,YAAc,IAAIxhE,WAC1FgwG,EAAgB/pJ,KAAKkC,IAAI,iBAC7B/C,EAAKa,KAAKqmB,WAAW,SAAUjB,GAC7B,IAAInhB,EAAWjE,KAAKiE,SAChBq/L,EAAU7gK,EAAWrd,GAGpBk+K,IACHA,EAAU7gK,EAAWrd,GAAS,CAC5BxN,MAAOiO,EAAakkI,EAAgB,CAACA,KAKnB,MAAlBu5C,EAAQzwJ,SACVywJ,EAAQzwJ,OAASujN,GAAgBxzP,EAAO8E,MAAM0uP,KAAkBvwO,EAAa,YAAc,CAAC,eAGpE,MAAtBy9K,EAAQvpJ,aACVupJ,EAAQvpJ,WAAas8M,GAAoBzzP,EAAO8E,MAAM2uP,KAAsBxwO,EAAa5hB,EAAS,GAAK,CAACA,EAAS,GAAIA,EAAS,MAIhIq/L,EAAQzwJ,OAASm6G,EAAUs2C,EAAQzwJ,QAAQ,SAAUA,GACnD,MAAkB,SAAXA,GAAgC,WAAXA,EAAsB,YAAcA,KAGlE,IAAIkH,EAAaupJ,EAAQvpJ,WAEzB,GAAkB,MAAdA,EAAoB,CACtB,IAAItpC,GAAOsC,IAEXg6I,EAAWhzG,GAAY,SAAUpsC,GAC/BA,EAAQ8C,IAAQA,EAAM9C,MAExB21L,EAAQvpJ,WAAaizG,EAAUjzG,GAAY,SAAUpsC,GACnD,OAAOgmE,EAAUhmE,EAAO,CAAC,EAAG8C,GAAM,CAAC,EAAGxM,EAAS,KAAK,SAGvDjE,MAjHL41P,EAAe9oP,KAAK9M,KAAMoS,GAC1BwjP,EAAe9oP,KAAK9M,KAAMyiC,GAC1BqzN,EAAiBhpP,KAAK9M,KAAMoS,EAAQ,UAAW,cAE/C+jP,EAAmBrpP,KAAK9M,KAAMyiC,IAoHhCs0D,cAAe,WACb/2F,KAAKiE,SAAW,CAAC+uF,WAAWhzF,KAAKkC,IAAI,cAAe8wF,WAAWhzF,KAAKkC,IAAI,iBAM1E2jB,WAAY,WACV,QAAS7lB,KAAKH,OAAOykB,YAOvBmC,YAAamyB,EASbvzC,cAAeuzC,EAiBfzxB,cAAeyxB,IAEbr5C,EAAWmkB,EACfhhB,EAAOC,QAAUpD,G,qBC1gBjB,IAAIqD,EAAS,EAAQ,QAoBrB,SAASyI,EAAgBC,EAAUC,GAEjC,OAAO3I,EAAOqE,IAAI,CAAC,SAAU,UAAU,SAAU8I,EAAKvE,GACpD,IAAIkE,EAAO1P,KAAK,MAAQ+P,EAAM,UAC1BtE,EAAMF,EAASC,GACfE,EAAWJ,EAASE,GAAU,EAC9BnF,EAAS,SAAW0J,EACpB4W,EAAuB,aAAdjX,EAAKjQ,KAAsBiQ,EAAKuoB,eAAiBpsB,KAAKC,IAAI4D,EAAKrJ,GAAQoF,EAAMC,GAAYgE,EAAKrJ,GAAQoF,EAAMC,IAMzH,MAJY,UAARqE,IACF4W,EAASA,EAAS9a,KAAK+E,GAAK,KAGvB+V,IACN3mB,MAGL,SAAST,EAASc,GAChB,IAAIy/C,EAAaz/C,EAASiwD,gBACtBvQ,EAAY1/C,EAAS2/C,eACrBgG,EAASlG,EAAWv6B,YAExB,OADAygC,EAAO,GAAKA,EAAO,IAAMA,EAAO3+C,UACzB,CACLhH,SAAU,CACRZ,KAAM,QACN2+C,GAAI/9C,EAAS+9C,GACbC,GAAIh+C,EAASg+C,GACbxqC,EAAGmyC,EAAO,GACVnE,GAAImE,EAAO,IAEbz/C,IAAK,CACH8F,MAAOzJ,EAAOiC,MAAK,SAAUtE,GAC3B,IAAIylD,EAASlG,EAAWyS,aAAahyD,EAAK,IACtCiyD,EAAQzS,EAAU0S,YAAYlyD,EAAK,IACnC8L,EAAQhM,EAAS+8E,aAAa,CAACp3B,EAAQwM,IAE3C,OADAnmD,EAAMxL,KAAKmlD,EAAQwM,EAAQ3mD,KAAK+E,GAAK,KAC9BvE,KAETC,KAAM1J,EAAOiC,KAAKwG,EAAiBhL,KAKzCqC,EAAOC,QAAUpD,G,qBC/DjB,IAAIqD,EAAS,EAAQ,QAEjB6F,EAAS,EAAQ,QAEjBwkC,EAAYxkC,EAAOwkC,UAEnBqpN,EAAc,EAAQ,QAEtBp9H,EAAsB,EAAQ,QAoB9B/5H,EAAOyD,EAAOzD,KACdqK,EAAQ5G,EAAO4G,MACfykC,EAAQhB,IA6BZ,SAAS1tC,EAAS2+B,EAASp+B,EAASyG,GAClC,IAAI6hD,EAAclqB,EAAQkqB,YACtB9wB,EAAQ,CAAC4G,EAAQz4B,EAAGy4B,EAAQx4B,GAC5BgI,EAASwwB,EACT13B,EAAiB03B,EAAQ13B,gBAAkB5D,EAAOiC,KAAK0B,EAAIC,eAAgBD,GAC3Eu0H,EAAmBh7H,EAAQmC,aAAa,eAAe64H,iBAG3D,GAAKA,EAAL,CAIIy7H,EAAaj/N,KAGfA,EAAQ4hG,EAAoB,CAC1BniF,YAAarpC,EAAOqpC,YAGpBn2C,UAAW8M,EAAO9M,WACjBd,GAASw3B,OAGd,IAAIk/N,EAAiBD,EAAaj/N,GAK9Bm/N,EAAgB/oP,EAAO+9N,SACvBA,EAAW3wG,EAAiB2wG,SAC5BirB,EAA6B,UAAhBtuM,GAA2BmuM,EAAaj/N,GACrDq/N,EAAe,GACfC,EAAe,GACfp8H,EAAiB,CACnBr3G,KAAM,GACNlc,IAAK,IAEH4vP,EAAW,CACbC,YAAattP,EAAMstP,EAAaF,GAChCG,YAAavtP,EAAMutP,EAAav8H,IAGlCr7H,EAAK27H,EAAiB6wG,aAAa,SAAUtrO,EAAU4rO,GAErD,IAAI+qB,EAAwBR,GAAkBn2P,EAASqvD,aAAap4B,GACpEn4B,EAAK27H,EAAiBA,iBAAiBmxG,IAAc,SAAU9zI,EAAUpwF,GACvE,IAAI2H,EAAOyoF,EAASzoF,KAChBunP,EAAgBC,EAAkBT,EAAet+J,GAErD,IAAKu+J,GAAcM,KAA2BP,GAAiBQ,GAAgB,CAC7E,IAAIxrP,EAAMwrP,GAAiBA,EAActpP,MAE9B,MAAPlC,GAAgB+qP,IAClB/qP,EAAMiE,EAAK2tE,YAAY/lD,IAGlB,MAAP7rB,GAAe0rP,EAAch/J,EAAU1sF,EAAKorP,GAAU,EAAOF,UAKnE,IAAIS,EAAe,GAsBnB,OArBAj4P,EAAKssO,GAAU,SAAU4rB,EAAaC,GACpC,IAAItqB,EAAYqqB,EAAYrqB,UAExBA,IAAc4pB,EAAaU,IAC7Bn4P,EAAK6tO,EAAUvB,UAAU,SAAU8rB,EAAaC,GAC9C,IAAIC,EAAab,EAAaY,GAE9B,GAAID,IAAgBF,GAAeI,EAAY,CAC7C,IAAIhsP,EAAMgsP,EAAW9pP,MACrBq/N,EAAUC,SAAWxhO,EAAM4rP,EAAY3nP,KAAKjB,MAAM+M,MAAMwxN,EAAUC,OAAOxhO,EAAKisP,EAAgBH,GAAcG,EAAgBL,MAC5HD,EAAaC,EAAYtvP,KAAO0D,SAKxCtM,EAAKi4P,GAAc,SAAU3rP,EAAK6rP,GAChCH,EAAc1rB,EAAS6rB,GAAS7rP,EAAKorP,GAAU,EAAMF,MAEvDgB,EAAoBf,EAAcnrB,EAAUkrB,GAC5CiB,EAAwBp9H,EAAgBljG,EAAO4G,EAAS13B,GACxDqxP,EAAyBpsB,EAAUjlO,EAAgBD,GAC5CowP,GAGT,SAASQ,EAAch/J,EAAUzmE,EAAUmlO,EAAUiB,EAAUnB,GAC7D,IAAIjnP,EAAOyoF,EAASzoF,KAEpB,IAAIA,EAAKjB,MAAMiyC,WAAchxC,EAAKupF,YAAYvnE,GAI9C,GAAKymE,EAAS00I,cAAd,CAMA,IAAIma,EAAc+Q,EAAsBrmO,EAAUymE,GAC9C6/J,EAAehR,EAAYgR,aAC3BC,EAAcjR,EAAYiR,YAG1BD,EAAa,IAAkC,MAA5BrB,EAAa5/M,aAClCn0C,EAAOpD,OAAOm3P,EAAcqB,EAAa,KAKtCF,GAAY3/J,EAAS6tC,MACpBt2H,EAAKupF,YAAYg/J,IAA+B,MAAfA,IACnCvmO,EAAWumO,GAIfpB,EAASC,YAAY3+J,EAAUzmE,EAAUsmO,EAAcrB,GAGvDE,EAASE,YAAY5+J,EAAU6uJ,EAAaiR,QAzB1CpB,EAASC,YAAY3+J,EAAUzmE,GA4BnC,SAASqmO,EAAsBpqP,EAAOwqF,GACpC,IAAIzoF,EAAOyoF,EAASzoF,KAChBK,EAAML,EAAKK,IACXkoP,EAActqP,EACdqqP,EAAe,GACfrgG,EAAUt7F,OAAOC,UACjBs7F,GAAW,EA+Cf,OA9CAz4J,EAAKg5F,EAAS3gB,cAAc,SAAUhB,EAAQtmE,GAC5C,IACIgoP,EACArxO,EAFAkyH,EAAUviE,EAAOh2E,UAAUwJ,aAAa+F,GAAK,GAIjD,GAAIymE,EAAOmiE,mBAAoB,CAC7B,IAAIhyH,EAAS6vD,EAAOmiE,mBAAmBI,EAASprI,EAAO+B,GACvDmX,EAAcF,EAAOE,YACrBqxO,EAAqBvxO,EAAOyjM,iBACvB,CAML,GALAvjM,EAAc2vD,EAAOh2E,UAAUg3J,iBAAiBze,EAAQ,GAAIprI,EAG9C,aAAd+B,EAAKjQ,KAAsB,GAAM,OAE5BonB,EAAY5b,OACf,OAGFitP,EAAqB1hL,EAAOh2E,UAAU0B,IAAI62I,EAAQ,GAAIlyH,EAAY,IAGpE,GAA0B,MAAtBqxO,GAA+Bv+N,SAASu+N,GAA5C,CAIA,IAAIj+N,EAAOtsB,EAAQuqP,EACf3/N,EAAO1sB,KAAKC,IAAImuB,GAEhB1B,GAAQo/H,KACNp/H,EAAOo/H,GAAW19H,GAAQ,GAAK29H,EAAU,KAC3CD,EAAUp/H,EACVq/H,EAAU39H,EACVg+N,EAAcC,EACdF,EAAa/sP,OAAS,GAGxB9L,EAAK0nB,GAAa,SAAUjmB,GAC1Bo3P,EAAan3P,KAAK,CAChBk2C,YAAay/B,EAAOz/B,YACpBswE,gBAAiBzmH,EACjBA,UAAW41E,EAAOh2E,UAAUM,YAAYF,aAKzC,CACLo3P,aAAcA,EACdC,YAAaA,GAIjB,SAASnB,EAAYF,EAAcz+J,EAAUxqF,EAAOqqP,GAClDpB,EAAaz+J,EAASpwF,KAAO,CAC3B4F,MAAOA,EACPqqP,aAAcA,GAIlB,SAASjB,EAAYv8H,EAAgBriC,EAAU6uJ,EAAar5O,GAC1D,IAAIqqP,EAAehR,EAAYgR,aAC3BtoP,EAAOyoF,EAASzoF,KAChBH,EAAYG,EAAKogB,MACjBi8G,EAAmB5zC,EAAS4zC,iBAGhC,GAAK5zC,EAAS8tC,gBAAmB+xH,EAAa/sP,OAA9C,CAIA,IAAIoiN,EAAgBl1H,EAAS93F,SAASyvB,MAClCm8M,EAAcqqB,EAAYpqB,QAAQ7e,GAClC8qC,EAAe39H,EAAevzH,IAAIglO,GAEjCksB,IACHA,EAAe39H,EAAevzH,IAAIglO,GAAe,CAC/CmsB,WAAY/qC,EAAcllN,GAC1BkwP,cAAehrC,EAActrL,eAC7BiiG,aAAcqpF,EAAc5tN,KAC5B64P,iBAAkBjrC,EAAcpwL,SAChC2+F,WAAY,IAEdpB,EAAer3G,KAAKtiB,KAAKs3P,IAG3BA,EAAav8H,WAAW/6H,KAAK,CAC3BuB,QAASsN,EAAKK,IACdi9B,UAAWz9B,EAAUwyB,eACrB9N,SAAU1kB,EAAU9P,KACpB+5G,OAAQjqG,EAAUpH,GAClBwF,MAAOA,EAKPuuH,cAAe,CACbt0G,UAAWmkH,EAAiB7pI,IAAI,mBAChC4yD,UAAWi3E,EAAiB7pI,IAAI,oBAElC+5H,kBAAmB+7H,EAAa1wP,WAIpC,SAASqwP,EAAoBf,EAAcnrB,EAAUkrB,GACnD,IAAI4B,EAAiB5B,EAAalrB,SAAW,GAE7CtsO,EAAKssO,GAAU,SAAUtzI,EAAUpwF,GACjC,IAAIlI,EAASs4F,EAAS4zC,iBAAiBlsI,OACnC24P,EAAU5B,EAAa7uP,GAEvBywP,IACDrgK,EAASkjB,YAAcx7G,EAAOg1D,OAAS,QACxCh1D,EAAO8N,MAAQ6qP,EAAQ7qP,MAEvB9N,EAAOo8H,mBAAqBu8H,EAAQR,cAAgB,IAAI1wP,UAMrD6wF,EAASkjB,YAAcx7G,EAAOg1D,OAAS,QAI1B,SAAlBh1D,EAAOg1D,QAAqB0jM,EAAe13P,KAAK,CAC9CuB,QAAS+1F,EAASzoF,KAAKK,IACvBi9B,UAAWmrD,EAASzoF,KAAKogB,MAAMiS,eAC/Bp0B,MAAO9N,EAAO8N,WAKpB,SAASiqP,EAAwBp9H,EAAgBljG,EAAO4G,EAAS13B,GAE/D,IAAI+vP,EAAaj/N,IAAWkjG,EAAer3G,KAAKlY,OAAhD,CAWA,IAAIy1F,IAAe85B,EAAer3G,KAAK,GAAGy4G,WAAW,IAAM,IAAIK,mBAAqB,IAAI,IAAM,GAC9Fz1H,EAAe,CACb/G,KAAM,UACN8pH,eAAe,EACf9jH,EAAG6xB,EAAM,GACT5xB,EAAG4xB,EAAM,GACTmjG,cAAev8F,EAAQu8F,cACvBzvH,SAAUkzB,EAAQlzB,SAClBq8G,gBAAiB3mB,EAAW2mB,gBAC5BzmH,UAAW8/F,EAAW9/F,UACtBm2C,YAAa2pD,EAAW3pD,YACxByjF,eAAgBA,EAAer3G,YArB/B3c,EAAe,CACb/G,KAAM,YAwBZ,SAASo4P,EAAyBpsB,EAAUjlO,EAAgBD,GAI1D,IAAIgkB,EAAKhkB,EAAIslB,QACT4sO,EAAc,4BACdC,EAAiBzqN,EAAM1jB,GAAIkuO,IAAgB,GAC3CE,EAAgB1qN,EAAM1jB,GAAIkuO,GAAe,GAG7Ct5P,EAAKssO,GAAU,SAAUtzI,EAAUpwF,GACjC,IAAIlI,EAASs4F,EAAS4zC,iBAAiBlsI,OACrB,SAAlBA,EAAOg1D,QAAqB11D,EAAKU,EAAOo8H,mBAAmB,SAAU/R,GACnE,IAAIniH,EAAMmiH,EAAUnzE,YAAc,MAAQmzE,EAAUtpH,UACpD+3P,EAAc5wP,GAAOmiH,QAIzB,IAAI0uI,EAAc,GACdC,EAAa,GACjBj2P,EAAOzD,KAAKu5P,GAAgB,SAAUxuI,EAAWniH,IAC9C4wP,EAAc5wP,IAAQ8wP,EAAWh4P,KAAKqpH,MAEzCtnH,EAAOzD,KAAKw5P,GAAe,SAAUzuI,EAAWniH,IAC7C2wP,EAAe3wP,IAAQ6wP,EAAY/3P,KAAKqpH,MAE3C2uI,EAAW5tP,QAAU1E,EAAIC,eAAe,CACtC/G,KAAM,WACN8pH,eAAe,EACf9iH,MAAOoyP,IAETD,EAAY3tP,QAAU1E,EAAIC,eAAe,CACvC/G,KAAM,YACN8pH,eAAe,EACf9iH,MAAOmyP,IAIX,SAAS1B,EAAkBT,EAAet+J,GACxC,IAAK,IAAIlqF,EAAI,EAAGA,GAAKwoP,GAAiB,IAAIxrP,OAAQgD,IAAK,CACrD,IAAIgpP,EAAgBR,EAAcxoP,GAElC,GAAIkqF,EAASzoF,KAAKK,MAAQknP,EAAc70P,SAAW+1F,EAASzoF,KAAKogB,MAAMiS,iBAAmBk1N,EAAcjqN,UACtG,OAAOiqN,GAKb,SAASS,EAAgBv/J,GACvB,IAAI5oF,EAAY4oF,EAASzoF,KAAKogB,MAC1BtrB,EAAO,GACPuL,EAAMvL,EAAKpC,QAAU+1F,EAASzoF,KAAKK,IAIvC,OAHAvL,EAAKwoC,UAAYxoC,EAAKuL,EAAM,aAAeR,EAAUwyB,eACrDv9B,EAAK6/E,SAAW7/E,EAAKuL,EAAM,YAAcR,EAAU5C,KACnDnI,EAAKg1G,OAASh1G,EAAKuL,EAAM,UAAYR,EAAUpH,GACxC3D,EAGT,SAAS+xP,EAAaj/N,GACpB,OAAQA,GAAqB,MAAZA,EAAM,IAAcve,MAAMue,EAAM,KAAmB,MAAZA,EAAM,IAAcve,MAAMue,EAAM,IAG1F50B,EAAOC,QAAUpD,G,qBC1ZjB,IAAI6I,EAAU,EAAQ,QA2BtBA,EAAQC,eAAe,eAAgB,gBAAgB,SAAU61B,EAASp+B,GACxE,IAAIirC,EAAkB7M,EAAQ6M,gBACX,MAAnBA,GAA2BjrC,EAAQs+B,cAAc,CAC/CnB,SAAU,SACVoB,QAAS,SACT+C,MAAOlD,IACN,SAAU4J,GACXA,EAAYgxN,mBAAmB/tN,U,qBClCnC,IAAInoC,EAAS,EAAQ,QAEjBkxB,EAAO,EAAQ,QA+BfwsH,EAAS,SAAUvwI,EAAKtB,EAAOulB,EAAaC,EAAUjpB,GACxD8oB,EAAKhnB,KAAK9M,KAAM+P,EAAKtB,EAAOulB,GAU5Bh0B,KAAKP,KAAOw0B,GAAY,QASxBj0B,KAAKgL,SAAWA,GAAY,UAG9Bs1I,EAAOxyI,UAAY,CACjBC,YAAauyI,EAKbn5I,MAAO,EAQPyI,gBAAiB,KAMjBkgB,MAAO,KACPqE,aAAc,WACZ,IAAInpB,EAAWhL,KAAKgL,SACpB,MAAoB,QAAbA,GAAmC,WAAbA,GAW/BmhI,gBAAiB,SAAUv4D,GACzB,IAAIn6D,EAAMzZ,KAAKulB,YAIf,OAHA9L,EAAI,GAAKzZ,KAAKuQ,cAAckJ,EAAI,IAChCA,EAAI,GAAKzZ,KAAKuQ,cAAckJ,EAAI,IAChCm6D,GAAOn6D,EAAI,GAAKA,EAAI,IAAMA,EAAIpS,UACvBoS,GAETo4C,aAAc,WACZ7xD,KAAKyP,KAAKoiD,gBAMZwrB,YAAa,SAAU/lD,EAAOy6E,GAC5B,OAAO/xG,KAAK09E,YAAY19E,KAAKiwI,aAAa34G,EAAmB,MAAbt3B,KAAK+P,IAAc,EAAI,IAAKgiG,IAS9Ek+B,aAAc,KAQd1/H,cAAe,MAEjB3N,EAAOwxB,SAASksH,EAAQxsH,GACxB,IAAIv0B,EAAW+gJ,EACf59I,EAAOC,QAAUpD,G,qBC9HjB,IAAIikB,EAAU,EAAQ,QAIlBtkB,GAFUskB,EAAQC,QAEV,EAAQ,SAEhBrkB,EAAgBF,EAAME,cACtBygB,EAAW3gB,EAAM2gB,SACjBmD,EAAU9jB,EAAM8jB,QAChB7jB,EAAOD,EAAMC,KAGb0iO,GAFS3iO,EAAMmuC,OAEH,EAAQ,SAEpBykD,EAAW+vI,EAAU/vI,SAoBrB0zB,EAAUpmH,IAGVG,EAAW,CAGb68F,YAAa,SAAU75D,EAASw2N,EAAYC,GAC1C,IAAI7xM,EA8BJ,OA5BInkC,EAAQ+1O,GACV5xM,EAAU4xM,EACDA,EAAWhnK,IACpB5qC,EAAU,CAAC,CACT1nD,KAAM,MACNM,OAAQg5P,EAAWhnK,IACnBo+B,aAAc4oI,EAAW5oI,gBAIvB4oI,EAAW7oI,UAAY6oI,EAAWt7L,WACpCu7L,EAAkBD,EAAW5oI,aAC7B4oI,EAAaA,EAAW7oI,SAG1B/oE,EAAU,CAAC,CACT1nD,KAAM,UACNM,OAAQg5P,EACR5oI,aAAc6oI,KAIlB75P,EAAKgoD,GAAS,SAAUE,GACtB,IAAI5nD,EAAO4nD,EAAO5nD,KACT,YAATA,IAAuBA,EAAO4nD,EAAO5nD,KAAO,WAC5C,IAAI+b,EAAQy9O,EAAQx5P,GACpB+b,EAAM6rC,MAEDm+D,EAAQjjH,IAAIggC,EAAS4kB,IAE9BkpE,YAAa,SAAU9tF,GACrB,OAAOijF,EAAQtjH,IAAIqgC,KAGnB02N,EAAU,CACZ3oI,QAAS,SAAUjpE,GACjB,IAAItnD,EAASsnD,EAAOtnD,OACpBsnD,EAAOipE,QAAWzwG,EAAS9f,GAAmC,qBAATm5P,MAAwBA,KAAK19O,MAAQ09O,KAAK19O,MAAMzb,GAAU,IAAIs2K,SAAS,WAAat2K,EAAS,KAAnC,GAA1EA,GAQvCgyF,IAAK,SAAU1qC,GACbA,EAAO86K,OAASrwI,EAASzqC,EAAOtnD,UAGpC2C,EAAOC,QAAUpD,G,qBC5FjB,IAAIL,EAAQ,EAAQ,QAEhBE,EAAgBF,EAAME,cACtB+tC,EAAejuC,EAAMiuC,aAErB8xF,EAAS,EAAQ,QAEjBE,EAAmBF,EAAOE,iBAE1B/rH,EAAc,EAAQ,QAEtBk6B,EAAyBl6B,EAAYk6B,uBACrCj6B,EAA0BD,EAAYC,wBACtCq6B,EAAwBt6B,EAAYs6B,sBACpCC,EAA4Bv6B,EAAYu6B,0BACxCF,EAA8Br6B,EAAYq6B,4BAqE9C,SAASL,EAAO4iI,GAIdhwK,KAAKwuC,YAAcwhI,EAAOxhI,YAM1BxuC,KAAKO,KAAOyvK,EAAOzvK,OAASyvK,EAAO7hI,eAAiBV,EAA8B,GAAK,IAOvFztC,KAAKmuC,aAAe6hI,EAAO7hI,cAAgBT,EAO3C1tC,KAAKsT,eAAiB08J,EAAO18J,gBAAkBD,EAO/CrT,KAAKyuC,iBAAmBuhI,EAAOvhI,iBAO/BzuC,KAAK+B,aAAeiuK,EAAOjuK,cAAgB3C,EAAc4wK,EAAOjuK,cAMhE/B,KAAK8uC,WAAakhI,EAAOlhI,YAAc,EAMvC9uC,KAAK+uC,sBAAwBihI,EAAOjhI,sBAOtC3B,EAAOi8C,mBAAqB,SAAU9oF,GACpC,OAAO,IAAI6sC,EAAO,CAChB7sC,KAAMA,EACN4tC,aAAchB,EAAa5sC,GAAQotC,EAA4BL,EAC/DkB,aAAa,KAIjB2wF,EAAiB/xF,GACjB,IAAI7tC,EAAW6tC,EACf1qC,EAAOC,QAAUpD,G,qBCvJjB,IAAIqD,EAAS,EAAQ,QAEjBihB,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAoBvBr1B,EAAOyD,EAAOzD,KAElB,SAASI,EAASO,GAChB,IAAIkzL,EAAcmmE,EAAkBr5P,GACpCX,EAAK6zL,GAAa,SAAUomE,GAC1B,IAAI5hL,EAAe4hL,EAAU5hL,aAExBA,EAAavsE,SAIlBouP,EAAcD,GACdj6P,EAAKq4E,GAAc,SAAU11E,EAAaoO,GACxCopP,EAAmBx3P,EAAas3P,EAAUG,cAAcrpP,GAAMkpP,EAAUI,aAAatpP,WAS3F,SAASipP,EAAkBr5P,GACzB,IAAI6mB,EAAS,GACT8yO,EAAW,GAgBf,OAfA35P,EAAQumC,iBAAiB,WAAW,SAAUvkC,GAC5C,IAAIg2B,EAAWh2B,EAAYi2B,cACvB7nB,EAAMtN,EAAOiwB,QAAQ4mO,EAAU3hO,GAE/B5nB,EAAM,IACRA,EAAMupP,EAASxuP,OACfwuP,EAASvpP,GAAO4nB,EAChBnR,EAAOzW,GAAO,CACZR,KAAMooB,EACN0/C,aAAc,KAIlB7wD,EAAOzW,GAAKsnE,aAAa32E,KAAKiB,MAEzB6kB,EAOT,SAAS0yO,EAAcD,GACrB,IAAIvhO,EAOAG,EANAF,EAAWshO,EAAU1pP,KACrB8nE,EAAe4hL,EAAU5hL,aACzBkgJ,EAAclgJ,EAAavsE,OAC3BuuP,EAAeJ,EAAUI,aAAe,GACxCD,EAAgBH,EAAUG,cAAgB,GAC1CG,EAAY,GAGhB,GAAsB,aAAlB5hO,EAASr4B,KACXu4B,EAAYF,EAASG,mBAChB,CACL,IAAI0hO,EAAe,EACnBx6P,EAAKq4E,GAAc,SAAU11E,GAC3B63P,EAAe9tP,KAAK4E,IAAIkpP,EAAc73P,EAAYtB,UAAU2hB,YAE9D0V,EAASC,EAASvS,YAAa1Z,KAAKC,IAAI+rB,EAAO,GAAKA,EAAO,IAG7D14B,EAAKq4E,GAAc,SAAU11E,GAC3B,IAAI83P,EAAgB93P,EAAYI,IAAI,YAE/BU,EAAOogB,QAAQ42O,KAClBA,EAAgB,CAACA,EAAeA,IAGlCF,EAAU74P,KAAK,CAAC2zB,EAAaolO,EAAc,GAAI5hO,IAAc,EAAGxD,EAAaolO,EAAc,GAAI5hO,IAAc,OAE/G,IAAI6hO,EAA6B,GAAZ7hO,EAAkB,EACnC8hO,EAASD,EAAiBniC,EAAc,GACxCqiC,GAAYF,EAAiBC,GAAUpiC,EAAc,IAAMA,EAC3Dp8E,EAAOy+G,EAAW,EAAIF,EAAiB,EAC3C16P,EAAKq4E,GAAc,SAAU11E,EAAaoO,GACxCqpP,EAAc14P,KAAKy6I,GACnBA,GAAQw+G,EAASC,EACjBP,EAAa34P,KAAKgL,KAAK6E,IAAI7E,KAAK4E,IAAIspP,EAAUL,EAAUxpP,GAAK,IAAKwpP,EAAUxpP,GAAK,QAQrF,SAASopP,EAAmBx3P,EAAagT,EAAQilP,GAC/C,IAAI15P,EAAWyB,EAAYxB,iBACvBC,EAAOuB,EAAYtB,UACnBw5P,EAAYD,EAAW,EACvB9kO,EAAwC,eAA9BnzB,EAAYI,IAAI,UAA6B,EAAI,EAC3DgzB,EAAU,EAAID,EACdE,EAAY,CAAC,IAAK,KAClBC,EAAO70B,EAAKyJ,aAAamrB,EAAUF,IACnCI,EAAQ90B,EAAKyJ,aAAamrB,EAAUD,IAAU,GAElD,KAAY,MAARE,GAAgBC,EAAMpqB,OAAS,GAInC,IAAK,IAAIrK,EAAY,EAAGA,EAAYL,EAAK4hB,QAASvhB,IAAa,CAC7D,IAAIq1B,EAAa11B,EAAK2B,IAAIkzB,EAAMx0B,GAC5Bq5P,EAASxjO,EAASR,EAAYZ,EAAM,GAAIz0B,GACxCs5P,EAAOzjO,EAASR,EAAYZ,EAAM,GAAIz0B,GACtCu5P,EAAO1jO,EAASR,EAAYZ,EAAM,GAAIz0B,GACtCw5P,EAAO3jO,EAASR,EAAYZ,EAAM,GAAIz0B,GACtCy5P,EAAO5jO,EAASR,EAAYZ,EAAM,GAAIz0B,GACtCi2B,EAAO,GACXC,EAAWD,EAAMsjO,EAAM,GACvBrjO,EAAWD,EAAMujO,EAAM,GACvBvjO,EAAKh2B,KAAKq5P,EAAMC,EAAME,EAAMD,GAC5BE,EAAWzjO,EAAMqjO,GACjBI,EAAWzjO,EAAMwjO,GACjBC,EAAWzjO,EAAMojO,GACjB15P,EAAKugB,cAAclgB,EAAW,CAC5Bs2B,aAAc+iO,EAAO/kO,GACrB2B,KAAMA,IAIV,SAASJ,EAASR,EAAYzqB,EAAQ5K,GACpC,IAII02B,EAJA7rB,EAAMlL,EAAK2B,IAAIsJ,EAAQ5K,GACvB6W,EAAI,GAYR,OAXAA,EAAEwd,GAAWgB,EACbxe,EAAEyd,GAAWzpB,EAGTsN,MAAMkd,IAAeld,MAAMtN,GAC7B6rB,EAAQ,CAACD,IAAKA,MAEdC,EAAQj3B,EAAS0L,YAAY0L,GAC7B6f,EAAMrC,IAAYngB,GAGbwiB,EAGT,SAASR,EAAWD,EAAMS,EAAO/iB,GAC/B,IAAIgjB,EAASD,EAAMhwB,QACfkwB,EAASF,EAAMhwB,QACnBiwB,EAAOtC,IAAY+kO,EACnBxiO,EAAOvC,IAAY+kO,EACnBzlP,EAAQsiB,EAAKh2B,KAAK02B,EAAQC,GAAUX,EAAKh2B,KAAK22B,EAAQD,GAGxD,SAAS+iO,EAAWzjO,EAAM0jO,GACxB,IAAIvyP,EAAOuyP,EAAUjzP,QACjBwjC,EAAKyvN,EAAUjzP,QACnBU,EAAKitB,IAAY+kO,EACjBlvN,EAAG7V,IAAY+kO,EACfnjO,EAAKh2B,KAAKmH,EAAM8iC,IAIpBpoC,EAAOC,QAAUpD,G,qBC3MjB,IAAIikB,EAAU,EAAQ,SAElBq0C,EAAmBr0C,EAAQq0C,iBAE3B4iC,EAAO,EAAQ,QAEfgsC,EAAW,EAAQ,QAEnBl6H,EAAe,EAAQ,QAEvB8yG,EAAU,EAAQ,QAElBgnC,EAAQ,EAAQ,QAEhBzrD,EAAwB,EAAQ,QAEhC5zB,EAAQ,EAAQ,QAEhBl+C,EAAM,EAAQ,QAEd0xO,EAAqB,IACrBC,EAAgB,OAChBC,EAA2B,IAC3BC,EAAkB,KAEtB,SAASpY,EAAW92O,GAClB,OAAOoc,SAASpc,EAAK,IAGvB,SAASmvP,EAAathB,GACpB,QAAKA,MAIDA,EAAMuhB,aAIkB,oBAAjBvhB,EAAMr8J,QAAkD,oBAAlBq8J,EAAMnsL,SAOzD,IAAIqqJ,EAAU,IAAIjrM,EAAa,EAAG,EAAG,EAAG,GACpCu0E,EAAW,IAAIv0E,EAAa,EAAG,EAAG,EAAG,GAEzC,SAASuuP,EAAoBrvO,EAAIjqB,EAAO0K,GAStC,OARAsrM,EAAQzzK,KAAKtY,EAAGxf,mBAEZwf,EAAGnd,WACLkpM,EAAQtyK,eAAezZ,EAAGnd,WAG5BwyE,EAASt/E,MAAQA,EACjBs/E,EAAS50E,OAASA,GACVsrM,EAAQjrK,UAAUu0C,GAG5B,SAASi6K,EAAkBh8D,EAAWi8D,GAEpC,GAAIj8D,IAAci8D,EAChB,OAAO,EAGT,IAAKj8D,IAAci8D,GAAiBj8D,EAAU9zL,SAAW+vP,EAAc/vP,OACrE,OAAO,EAGT,IAAK,IAAIgD,EAAI,EAAGA,EAAI8wL,EAAU9zL,OAAQgD,IACpC,GAAI8wL,EAAU9wL,KAAO+sP,EAAc/sP,GACjC,OAAO,EAIX,OAAO,EAGT,SAASgtP,EAAOl8D,EAAWt6J,GACzB,IAAK,IAAIx2B,EAAI,EAAGA,EAAI8wL,EAAU9zL,OAAQgD,IAAK,CACzC,IAAIs9C,EAAWwzI,EAAU9wL,GACzBs9C,EAAS/mB,aAAaC,GACtBA,EAAIq1B,YACJvO,EAASE,UAAUhnB,EAAK8mB,EAAS/5C,OACjCizB,EAAI1oB,OAEJwvC,EAAS5mB,iBAAiBF,IAI9B,SAASy2N,EAAW15P,EAAO0K,GACzB,IAAIivP,EAAUnwO,SAASU,cAAc,OAUrC,OARAyvO,EAAQ31P,MAAMikB,QAAU,CAAC,oBAOzB,SAAWjoB,EAAQ,KAAM,UAAY0K,EAAS,KAAM,YAAa,WAAY,kBAAkB2N,KAAK,KAAO,IACpGshP,EAWT,IAAI7zF,EAAU,SAAUpoJ,EAAMsmG,EAASliF,GACrCtjC,KAAKP,KAAO,SAEZ,IAAI27P,GAAgBl8O,EAAKmzE,UACU,WAAhCnzE,EAAKmzE,SAASyhB,cACjB9zG,KAAK6iP,MAAQv/M,EAAOm3D,EAAKj7F,OAAO,GAAI8jC,GAAQ,IAK5CtjC,KAAK0kC,IAAMpB,EAAKu0B,kBAAoBA,EAMpC73D,KAAKq7P,cAAgBD,EAMrBp7P,KAAKkf,KAAOA,EACZ,IAAIo8O,EAAYp8O,EAAK1Z,MAEjB81P,IACFA,EAAU,+BAAiC,cAC3CA,EAAU,uBAAyBA,EAAU,eAAiBA,EAAU,yBAA2B,OACnGp8O,EAAKwO,UAAY,IAOnB1tB,KAAKwlH,QAAUA,EAMf,IAAI+1I,EAAav7P,KAAKw7P,YAAc,GAMhCC,EAASz7P,KAAKqhF,QAAU,GAa5B,GAPArhF,KAAK07P,aAAe,GAKpB17P,KAAK27P,2BAA4B,EAE5BP,EAKE,CACL,IAAI55P,EAAQ0d,EAAK1d,MACb0K,EAASgT,EAAKhT,OAEA,MAAdo3B,EAAK9hC,QACPA,EAAQ8hC,EAAK9hC,OAGI,MAAf8hC,EAAKp3B,SACPA,EAASo3B,EAAKp3B,QAGhBlM,KAAK0kC,IAAMpB,EAAKu0B,kBAAoB,EAEpC34C,EAAK1d,MAAQA,EAAQxB,KAAK0kC,IAC1BxlB,EAAKhT,OAASA,EAASlM,KAAK0kC,IAC5B1kC,KAAKokP,OAAS5iP,EACdxB,KAAKqkP,QAAUn4O,EAGf,IAAI0vP,EAAY,IAAIv1G,EAAMnnI,EAAMlf,KAAMA,KAAK0kC,KAC3Ck3N,EAAUf,aAAc,EACxBe,EAAU10G,cAGVu0G,EAAOhB,GAAiBmB,EACxBA,EAAU56P,OAASy5P,EAEnBc,EAAW16P,KAAK45P,GAChBz6P,KAAK67P,SAAW38O,MAlCC,CACjBlf,KAAKokP,OAASpkP,KAAKmkP,SAAS,GAC5BnkP,KAAKqkP,QAAUrkP,KAAKmkP,SAAS,GAC7B,IAAIgX,EAAUn7P,KAAK67P,SAAWX,EAAWl7P,KAAKokP,OAAQpkP,KAAKqkP,SAC3DnlO,EAAKgN,YAAYivO,GAsCnBn7P,KAAK87P,YAAc,KACnB97P,KAAK+7P,eAAiB,IAGxBz0F,EAAQx5J,UAAY,CAClBC,YAAau5J,EACbthD,QAAS,WACP,MAAO,UAOTg2I,eAAgB,WACd,OAAOh8P,KAAKq7P,eAMdvwO,gBAAiB,WACf,OAAO9qB,KAAK67P,UAEd1wO,sBAAuB,WACrB,IAAIs4N,EAAezjP,KAAK8qB,kBAExB,GAAI24N,EACF,MAAO,CACLr4N,WAAYq4N,EAAar4N,YAAc,EACvCC,UAAWo4N,EAAap4N,WAAa,IAS3C8hC,QAAS,SAAU8uM,GACjB,IAAI94O,EAAOnjB,KAAKwlH,QAAQC,gBAAe,GACnC81I,EAAav7P,KAAKw7P,YACtBx7P,KAAKk8P,UAAYrwP,KAAKixH,SAEtB98H,KAAK0jP,WAAWvgO,EAAM84O,EAAUj8P,KAAKk8P,WAGrC,IAAK,IAAIjuP,EAAI,EAAGA,EAAIstP,EAAWtwP,OAAQgD,IAAK,CAC1C,IAAIhN,EAAIs6P,EAAWttP,GACfqrO,EAAQt5O,KAAKqhF,QAAQpgF,GAEzB,IAAKq4O,EAAMuhB,aAAevhB,EAAMnsL,QAAS,CACvC,IAAIu5F,EAAmB,IAANz4I,EAAUjO,KAAKm8P,iBAAmB,KACnD7iB,EAAMnsL,QAAQu5F,IAKlB,OADA1mJ,KAAKgpK,eACEhpK,MAETuqE,SAAU,SAAU9+C,EAAI8V,GACtB,IAAI9V,EAAG2wO,WAAP,CAIA,IAAIrzF,EAAW,IAAIt9I,EAAG1d,YAAY,CAChCvI,MAAOimB,EAAGjmB,MACVgM,MAAOia,EAAGja,MACVvQ,EAAGwqB,EAAGxqB,EACNmQ,GAAIqa,EAAGra,GACPQ,OAAQ6Z,EAAG7Z,SAQb,OANAm3J,EAASrvE,OAASjuE,EAClBA,EAAG2wO,WAAarzF,EAChBxnI,GAAcwnI,EAASloI,SAASU,GAEhCvhC,KAAK+7P,eAAel7P,KAAKkoK,GAElBA,IAETj+F,YAAa,SAAUr/C,GACrB,IAAIs9I,EAAWt9I,EAAG2wO,WACdC,EAAgBr8P,KAAK+7P,eACrB7rP,EAAMuqF,EAAK5nE,QAAQwpO,EAAetzF,GAElC74J,GAAO,GACTmsP,EAAcpmM,OAAO/lD,EAAK,GAG5Bub,EAAG2wO,WAAa,MAElBnzF,WAAY,SAAUx9I,GAGpB,IAFA,IAAI4wO,EAAgBr8P,KAAK+7P,eAEhB9tP,EAAI,EAAGA,EAAIouP,EAAcpxP,OAAQgD,IAAK,CAC7C,IAAIjG,EAAOq0P,EAAcpuP,GAAGyrF,OAExB1xF,IACFA,EAAKo0P,WAAa,MAItBC,EAAcpxP,OAAS,GAEzB+9J,aAAc,WACZ,IAAIqzF,EAAgBr8P,KAAK+7P,eACrBzjP,EAAM+jP,EAAcpxP,OACpBqxP,EAAat8P,KAAK87P,YAGtB,GAFAQ,GAAcA,EAAWxjO,QAEpBxgB,EAAL,CAIA+mG,EAAQg9I,EAAer8P,KAAKwlH,QAAQunG,qBAG/BuvC,IACHA,EAAat8P,KAAK87P,YAAc97P,KAAK0qN,SAAS8vC,IAGhD,IAAIjsK,EAAQ,GACZ+tK,EAAW73N,IAAIijH,OAEf,IAAK,IAAIz5I,EAAI,EAAGA,EAAIqK,GAAM,CACxB,IAAImT,EAAK4wO,EAAcpuP,GACnBsuP,EAAa9wO,EAAGiuE,OAGd6iK,GAAcA,EAAWrvM,MAO/Bj/C,IAGKsuP,EAAW/xN,YACd/e,EAAGnd,UAAYiuP,EAAWjuP,UAC1Bmd,EAAG6Y,aAAei4N,EAAWj4N,aAC7B7Y,EAAGihC,YAAc6vM,EAAW7vM,YAE5B1sD,KAAKw8P,WAAW/wO,EAAI6wO,GAAY,EAAM/tK,MAdtC8tK,EAAcpmM,OAAOhoD,EAAG,GACxBsuP,EAAWH,WAAa,KACxB9jP,KAgBJgkP,EAAW73N,IAAI4iD,YAEjBo1K,cAAe,WACb,OAAOz8P,KAAK0qN,SAAS8vC,IAEvB9W,WAAY,SAAUvgO,EAAM84O,EAAUS,GACpC,GAAI18P,KAAKk8P,YAAcQ,EAAvB,CAIAT,EAAWA,IAAY,EAEvBj8P,KAAK28P,mBAAmBx5O,GAExB,IAAIy5O,EAAW58P,KAAK68P,aAAa15O,EAAM84O,GAMvC,GAJIj8P,KAAK27P,2BACP37P,KAAK88P,sBAGFF,EAAU,CACb,IAAIn/O,EAAOzd,KACX46F,GAAsB,WACpBn9E,EAAKimO,WAAWvgO,EAAM84O,EAAUS,SAItCI,mBAAoB,WAClB,IAAIr4N,EAAMzkC,KAAK0qN,SAAS+vC,GAAeh2N,IACnCjjC,EAAQxB,KAAK67P,SAASr6P,MACtB0K,EAASlM,KAAK67P,SAAS3vP,OAC3Bu4B,EAAI8iH,UAAU,EAAG,EAAG/lJ,EAAO0K,GAE3BlM,KAAK+8P,kBAAiB,SAAUzjB,GAC1BA,EAAM0jB,SACRv4N,EAAI0B,UAAUmzM,EAAMt3H,IAAK,EAAG,EAAGxgH,EAAO0K,OAI5C2wP,aAAc,SAAU15O,EAAM84O,GAG5B,IAFA,IAAIgB,EAAY,GAEPC,EAAK,EAAGA,EAAKl9P,KAAKw7P,YAAYvwP,OAAQiyP,IAAM,CACnD,IAAIl8P,EAAShB,KAAKw7P,YAAY0B,GAC1B5jB,EAAQt5O,KAAKqhF,QAAQrgF,GAErBs4O,EAAMuhB,aAAevhB,IAAUt5O,KAAK87P,cAAgBxiB,EAAM3sL,SAAWsvM,IACvEgB,EAAUp8P,KAAKy4O,GAMnB,IAFA,IAAIsjB,GAAW,EAEN3mP,EAAI,EAAGA,EAAIgnP,EAAUhyP,OAAQgL,IAAK,CACrCqjO,EAAQ2jB,EAAUhnP,GAAtB,IACIwuB,EAAM60M,EAAM70M,IACZ8pD,EAAQ,GACZ9pD,EAAIijH,OACJ,IAAInzI,EAAQ0nP,EAAW3iB,EAAMvyF,aAAeuyF,EAAMxyF,YAC9Cq2G,GAAYlB,GAAY3iB,EAAM79L,aAAewkB,KAAKm9L,IAClD74I,EAAY44I,GAAYl9L,KAAKm9L,MAC7B12G,EAAa4yF,EAAMt4O,SAAWhB,KAAKw7P,YAAY,GAAKx7P,KAAKm8P,iBAAmB,KAEhF,GAAI7iB,EAAMvyF,eAAiBuyF,EAAMtyF,WAC/BsyF,EAAMxgN,OAAM,EAAO4tH,QACd,GAAInyI,IAAU+kO,EAAMvyF,aAAc,CACvC,IAAIs2G,EAAUl6O,EAAK5O,GAEd8oP,EAAQ5hN,aAAgB4hN,EAAQrnJ,WAAYimJ,GAC/C3iB,EAAMxgN,OAAM,EAAO4tH,IAIR,IAAXnyI,IACFyd,QAAQmqE,MAAM,4CACd5nF,EAAQ+kO,EAAMvyF,cAGhB,IAAK,IAAI94I,EAAIsG,EAAOtG,EAAIqrO,EAAMtyF,WAAY/4I,IAAK,CAC7C,IAAIwd,EAAKtI,EAAKlV,GAMd,GAJAjO,KAAKw8P,WAAW/wO,EAAI6tN,EAAO2iB,EAAU1tK,GAErC9iE,EAAGkhC,QAAUlhC,EAAGwhC,aAAc,EAE1BkwM,EAAU,CAEZ,IAAIG,EAAQr9L,KAAKm9L,MAAQ74I,EAGzB,GAAI+4I,EAAQ,GACV,OAKNhkB,EAAMxyF,YAAc74I,EAEhBqrO,EAAMxyF,YAAcwyF,EAAMtyF,aAC5B41G,GAAW,GAGTruK,EAAMgvK,iBAER94N,EAAI4iD,UAGN5iD,EAAI4iD,UAYN,OATIv+D,EAAI0C,KAENivE,EAAKt7F,KAAKa,KAAKqhF,SAAS,SAAUi4J,GAC5BA,GAASA,EAAM70M,KAAO60M,EAAM70M,IAAIxG,MAClCq7M,EAAM70M,IAAIxG,UAKT2+N,GAETJ,WAAY,SAAU/wO,EAAI+xO,EAAcC,EAAYlvK,GAClD,IAAI9pD,EAAM+4N,EAAa/4N,IACnBzvB,EAAIyW,EAAGnd,UAEX,IAAKkvP,EAAa7wM,SAAW8wM,KAC5BhyO,EAAG+e,WACoB,IAArB/e,EAAGjmB,MAAM/D,WAGPuT,GAAMA,EAAE,IAAOA,EAAE,OACjByW,EAAGsV,UAAW+5N,EAAoBrvO,EAAIzrB,KAAKokP,OAAQpkP,KAAKqkP,UAAW,CACtE,IAAItlD,EAAYtzK,EAAGihC,YACf6wM,EAAkBhvK,EAAMgvK,gBAEvBA,IAAmBxC,EAAkBh8D,EAAWw+D,KAE/CA,IACF94N,EAAI4iD,UACJkH,EAAMgvK,gBAAkB,KAExBhvK,EAAM9oD,OAAS,MAIbs5J,IACFt6J,EAAIijH,OACJuzG,EAAOl8D,EAAWt6J,GAClB8pD,EAAMgvK,gBAAkBx+D,IAI5BtzK,EAAGqhC,aAAerhC,EAAGqhC,YAAYroB,GACjChZ,EAAG+Z,MAAMf,EAAK8pD,EAAM9oD,QAAU,MAC9B8oD,EAAM9oD,OAASha,EACfA,EAAGshC,YAActhC,EAAGshC,WAAWtoB,KAUnCimL,SAAU,SAAU1pN,EAAQg8P,GACtBh9P,KAAKq7P,gBAAkBr7P,KAAK27P,4BAC9B36P,EAASy5P,GAGX,IAAInhB,EAAQt5O,KAAKqhF,QAAQrgF,GAyBzB,OAvBKs4O,IAEHA,EAAQ,IAAIjzF,EAAM,MAAQrlJ,EAAQhB,KAAMA,KAAK0kC,KAC7C40M,EAAMt4O,OAASA,EACfs4O,EAAMuhB,aAAc,EAEhB76P,KAAK07P,aAAa16P,GACpBy5F,EAAK55E,MAAMy4N,EAAOt5O,KAAK07P,aAAa16P,IAAS,GAEtChB,KAAK07P,aAAa16P,EAAS05P,IAChCjgK,EAAK55E,MAAMy4N,EAAOt5O,KAAK07P,aAAa16P,EAAS05P,IAA2B,GAGxEsC,IACF1jB,EAAM0jB,QAAUA,GAGlBh9P,KAAK09P,YAAY18P,EAAQs4O,GAGzBA,EAAMpyF,eAGDoyF,GAETokB,YAAa,SAAU18P,EAAQs4O,GAC7B,IAAIqkB,EAAY39P,KAAKqhF,QACjBk6K,EAAav7P,KAAKw7P,YAClBljP,EAAMijP,EAAWtwP,OACjB2yP,EAAY,KACZ3vP,GAAK,EACLktP,EAAUn7P,KAAK67P,SAEnB,GAAI8B,EAAU38P,GACZylI,EAAS,UAAYzlI,EAAS,+BAKhC,GAAK45P,EAAathB,GAAlB,CAKA,GAAIhhO,EAAM,GAAKtX,EAASu6P,EAAW,GAAI,CACrC,IAAKttP,EAAI,EAAGA,EAAIqK,EAAM,EAAGrK,IACvB,GAAIstP,EAAWttP,GAAKjN,GAAUu6P,EAAWttP,EAAI,GAAKjN,EAChD,MAIJ48P,EAAYD,EAAUpC,EAAWttP,IAQnC,GALAstP,EAAWtlM,OAAOhoD,EAAI,EAAG,EAAGjN,GAC5B28P,EAAU38P,GAAUs4O,GAIfA,EAAM0jB,QACT,GAAIY,EAAW,CACb,IAAIC,EAAUD,EAAU57I,IAEpB67I,EAAQtrK,YACV4oK,EAAQtsH,aAAayqG,EAAMt3H,IAAK67I,EAAQtrK,aAExC4oK,EAAQjvO,YAAYotN,EAAMt3H,UAGxBm5I,EAAQ/oK,WACV+oK,EAAQtsH,aAAayqG,EAAMt3H,IAAKm5I,EAAQ/oK,YAExC+oK,EAAQjvO,YAAYotN,EAAMt3H,UAhC9BykB,EAAS,mBAAqBzlI,EAAS,kBAsC3C88P,UAAW,SAAU3/O,EAAIyB,GACvB,IACI3e,EACAgN,EAFAstP,EAAav7P,KAAKw7P,YAItB,IAAKvtP,EAAI,EAAGA,EAAIstP,EAAWtwP,OAAQgD,IACjChN,EAAIs6P,EAAWttP,GACfkQ,EAAGrR,KAAK8S,EAAS5f,KAAKqhF,QAAQpgF,GAAIA,IAItC87P,iBAAkB,SAAU5+O,EAAIyB,GAC9B,IACI05N,EACAr4O,EACAgN,EAHAstP,EAAav7P,KAAKw7P,YAKtB,IAAKvtP,EAAI,EAAGA,EAAIstP,EAAWtwP,OAAQgD,IACjChN,EAAIs6P,EAAWttP,GACfqrO,EAAQt5O,KAAKqhF,QAAQpgF,GAEjBq4O,EAAMuhB,aACR18O,EAAGrR,KAAK8S,EAAS05N,EAAOr4O,IAK9Bo4O,eAAgB,SAAUl7N,EAAIyB,GAC5B,IACI05N,EACAr4O,EACAgN,EAHAstP,EAAav7P,KAAKw7P,YAKtB,IAAKvtP,EAAI,EAAGA,EAAIstP,EAAWtwP,OAAQgD,IACjChN,EAAIs6P,EAAWttP,GACfqrO,EAAQt5O,KAAKqhF,QAAQpgF,GAEhBq4O,EAAMuhB,aACT18O,EAAGrR,KAAK8S,EAAS05N,EAAOr4O,IAS9B88P,UAAW,WACT,OAAO/9P,KAAKqhF,SAEds7K,mBAAoB,SAAUx5O,GAK5B,SAAS66O,EAAgB9tP,GACnB0tP,IACEA,EAAU52G,aAAe92I,IAC3B0tP,EAAUjxM,SAAU,GAGtBixM,EAAU52G,WAAa92I,GAI3B,GAdAlQ,KAAK+8P,kBAAiB,SAAUzjB,EAAOr4O,GACrCq4O,EAAM3sL,QAAU2sL,EAAMzyF,QAAS,KAa7B7mJ,KAAKq7P,cACP,IAAK,IAAIptP,EAAI,EAAGA,EAAIkV,EAAKlY,OAAQgD,IAAK,CACpC,IAAIwd,EAAKtI,EAAKlV,GAEd,GAAIwd,EAAGzqB,SAAWmiB,EAAKlV,EAAI,GAAGjN,QAAUyqB,EAAGgwB,YAAa,CACtDz7C,KAAK27P,2BAA4B,EACjC,OAKN,IAEIsC,EAFAL,EAAY,KACZM,EAAwB,EAG5B,IAASjwP,EAAI,EAAGA,EAAIkV,EAAKlY,OAAQgD,IAAK,CAChCwd,EAAKtI,EAAKlV,GAAd,IAEIqrO,EADAt4O,EAASyqB,EAAGzqB,OAGZi9P,IAAej9P,IACjBi9P,EAAaj9P,EACbk9P,EAAwB,GAWtBzyO,EAAGgwB,aACL69L,EAAQt5O,KAAK0qN,SAAS1pN,EAAS25P,EAAiB36P,KAAK27P,2BACrDriB,EAAM79L,aAAc,EACpByiN,EAAwB,GAExB5kB,EAAQt5O,KAAK0qN,SAAS1pN,GAAUk9P,EAAwB,EAAIxD,EAA2B,GAAI16P,KAAK27P,2BAG7FriB,EAAMuhB,aACTp0H,EAAS,UAAYzlI,EAAS,kCAAoCs4O,EAAMnxO,IAGtEmxO,IAAUskB,IACZtkB,EAAMzyF,QAAS,EAEXyyF,EAAMvyF,eAAiB94I,IACzBqrO,EAAM3sL,SAAU,GAGlB2sL,EAAMvyF,aAAe94I,EAEhBqrO,EAAM79L,YAIT69L,EAAMxyF,aAAe,EAHrBwyF,EAAMxyF,YAAc74I,EAMtB+vP,EAAgB/vP,GAChB2vP,EAAYtkB,GAGV7tN,EAAGkhC,UACL2sL,EAAM3sL,SAAU,EAEZ2sL,EAAM79L,aAAe69L,EAAMxyF,YAAc,IAE3CwyF,EAAMxyF,YAAc74I,IAK1B+vP,EAAgB/vP,GAChBjO,KAAK+8P,kBAAiB,SAAUzjB,EAAOr4O,IAEhCq4O,EAAMzyF,QAAUyyF,EAAMryF,kBAAoB,IAC7CqyF,EAAM3sL,SAAU,EAChB2sL,EAAMvyF,aAAeuyF,EAAMtyF,WAAasyF,EAAMxyF,YAAc,GAI1DwyF,EAAM3sL,SAAW2sL,EAAMxyF,YAAc,IACvCwyF,EAAMxyF,YAAcwyF,EAAMvyF,kBAQhCjuH,MAAO,WAEL,OADA94B,KAAK+8P,iBAAiB/8P,KAAK6qN,aACpB7qN,MAET6qN,YAAa,SAAUyuB,GACrBA,EAAMxgN,SAERkuF,mBAAoB,SAAUj9F,GAC5B/pB,KAAKm8P,iBAAmBpyO,GAa1B2+I,YAAa,SAAU1nK,EAAQylJ,GAC7B,GAAIA,EAAQ,CACV,IAAI03G,EAAcn+P,KAAK07P,aAElByC,EAAYn9P,GAGfy5F,EAAK55E,MAAMs9O,EAAYn9P,GAASylJ,GAAQ,GAFxC03G,EAAYn9P,GAAUylJ,EAKxB,IAAK,IAAIx4I,EAAI,EAAGA,EAAIjO,KAAKw7P,YAAYvwP,OAAQgD,IAAK,CAChD,IAAImwP,EAAUp+P,KAAKw7P,YAAYvtP,GAE/B,GAAImwP,IAAYp9P,GAAUo9P,IAAYp9P,EAAS05P,EAA0B,CACvE,IAAIphB,EAAQt5O,KAAKqhF,QAAQ+8K,GACzB3jK,EAAK55E,MAAMy4N,EAAO6kB,EAAYn9P,IAAS,OAU/Cq9P,SAAU,SAAUr9P,GAClB,IAAIy6P,EAASz7P,KAAKqhF,QACdk6K,EAAav7P,KAAKw7P,YAClBliB,EAAQmiB,EAAOz6P,GAEds4O,IAILA,EAAMt3H,IAAIpjG,WAAW4P,YAAY8qN,EAAMt3H,YAChCy5I,EAAOz6P,GACdu6P,EAAWtlM,OAAOwkC,EAAK5nE,QAAQ0oO,EAAYv6P,GAAS,KAMtDi8E,OAAQ,SAAUz7E,EAAO0K,GACvB,GAAKlM,KAAK67P,SAASr2P,MASZ,CACL,IAAI21P,EAAUn7P,KAAK67P,SAEnBV,EAAQ31P,MAAMioB,QAAU,OAExB,IAAI6V,EAAOtjC,KAAK6iP,MAOhB,GANS,MAATrhP,IAAkB8hC,EAAK9hC,MAAQA,GACrB,MAAV0K,IAAmBo3B,EAAKp3B,OAASA,GACjC1K,EAAQxB,KAAKmkP,SAAS,GACtBj4O,EAASlM,KAAKmkP,SAAS,GACvBgX,EAAQ31P,MAAMioB,QAAU,GAEpBztB,KAAKokP,SAAW5iP,GAAS0K,IAAWlM,KAAKqkP,QAAS,CAIpD,IAAK,IAAIl8O,KAHTgzP,EAAQ31P,MAAMhE,MAAQA,EAAQ,KAC9B25P,EAAQ31P,MAAM0G,OAASA,EAAS,KAEjBlM,KAAKqhF,QACdrhF,KAAKqhF,QAAQtkE,eAAe5U,IAC9BnI,KAAKqhF,QAAQl5E,GAAI80E,OAAOz7E,EAAO0K,GAInCuuF,EAAKt7F,KAAKa,KAAKs+P,oBAAoB,SAAUhlB,GAC3CA,EAAMr8J,OAAOz7E,EAAO0K,MAEtBlM,KAAKmtD,SAAQ,GAGfntD,KAAKokP,OAAS5iP,EACdxB,KAAKqkP,QAAUn4O,MAtCS,CAExB,GAAa,MAAT1K,GAA2B,MAAV0K,EACnB,OAGFlM,KAAKokP,OAAS5iP,EACdxB,KAAKqkP,QAAUn4O,EACflM,KAAK0qN,SAAS+vC,GAAex9K,OAAOz7E,EAAO0K,GAiC7C,OAAOlM,MAOTu+P,WAAY,SAAUv9P,GACpB,IAAIs4O,EAAQt5O,KAAKqhF,QAAQrgF,GAErBs4O,GACFA,EAAMxgN,SAOVvK,QAAS,WACPvuB,KAAKkf,KAAKwO,UAAY,GACtB1tB,KAAKkf,KAAOlf,KAAKwlH,QAAUxlH,KAAK67P,SAAW77P,KAAKqhF,QAAU,MAS5DgkC,kBAAmB,SAAU/hF,GAG3B,GAFAA,EAAOA,GAAQ,GAEXtjC,KAAKq7P,gBAAkBr7P,KAAK88P,mBAC9B,OAAO98P,KAAKqhF,QAAQo5K,GAAez4I,IAGrC,IAAIw8I,EAAa,IAAIn4G,EAAM,QAASrmJ,KAAMsjC,EAAKgiF,YAActlH,KAAK0kC,KAIlE,GAHA85N,EAAWt3G,cACXs3G,EAAW1lO,OAAM,EAAOwK,EAAKvZ,iBAAmB/pB,KAAKm8P,kBAEjD74N,EAAKgiF,YAActlH,KAAK0kC,IAAK,CAC/B1kC,KAAKmtD,UACL,IAAI3rD,EAAQg9P,EAAWx8I,IAAIxgH,MACvB0K,EAASsyP,EAAWx8I,IAAI91G,OACxBu4B,EAAM+5N,EAAW/5N,IACrBzkC,KAAK89P,WAAU,SAAUxkB,GACnBA,EAAMuhB,YACRp2N,EAAI0B,UAAUmzM,EAAMt3H,IAAK,EAAG,EAAGxgH,EAAO0K,GAC7BotO,EAAMmlB,iBACfD,EAAW/5N,IAAIijH,OACf4xF,EAAMmlB,eAAeD,EAAW/5N,KAChC+5N,EAAW/5N,IAAI4iD,mBAQnB,IAHA,IAAIkH,EAAQ,GACR69H,EAAcpsN,KAAKwlH,QAAQC,gBAAe,GAErCx3G,EAAI,EAAGA,EAAIm+M,EAAYnhN,OAAQgD,IAAK,CAC3C,IAAIwd,EAAK2gM,EAAYn+M,GAErBjO,KAAKw8P,WAAW/wO,EAAI+yO,GAAY,EAAMjwK,GAI1C,OAAOiwK,EAAWx8I,KAMpBh2F,SAAU,WACR,OAAOhsB,KAAKokP,QAMdn4N,UAAW,WACT,OAAOjsB,KAAKqkP,SAEdF,SAAU,SAAUI,GAClB,IAAIjhN,EAAOtjC,KAAK6iP,MACZ35M,EAAK,CAAC,QAAS,UAAUq7M,GACzBC,EAAM,CAAC,cAAe,gBAAgBD,GACtCE,EAAM,CAAC,cAAe,cAAcF,GACpCG,EAAM,CAAC,eAAgB,iBAAiBH,GAE5C,GAAgB,MAAZjhN,EAAK4F,IAA4B,SAAb5F,EAAK4F,GAC3B,OAAO8pD,WAAW1vD,EAAK4F,IAGzB,IAAIhqB,EAAOlf,KAAKkf,KAEZiO,EAAMnC,SAASqC,YAAYC,iBAAiBpO,GAChD,OAAQA,EAAKslO,IAAQjC,EAAWp1N,EAAI+b,KAAQq5M,EAAWrjO,EAAK1Z,MAAM0jC,MAASq5M,EAAWp1N,EAAIs3N,KAAS,IAAMlC,EAAWp1N,EAAIu3N,KAAS,GAAK,GAExIv7E,YAAa,SAAUjoJ,EAAMwjB,GAC3BA,EAAMA,GAAO1kC,KAAK0kC,IAClB,IAAI+hF,EAASz7F,SAASU,cAAc,UAChC+Y,EAAMgiF,EAAO5sD,WAAW,MACxB7tD,EAAOkV,EAAKjV,kBACZzG,EAAQ0b,EAAK1b,MACbk5P,EAAiBl5P,EAAMw2C,WAAatX,EACpCuX,EAAgBz2C,EAAMy2C,cAAgBvX,EACtCwX,EAAgB12C,EAAM02C,cAAgBxX,EACtCg0C,EAAYlzE,EAAM0nF,YAAc1nF,EAAMkzE,UAAY,EAClDimL,EAAa9yP,KAAK4E,IAAIioE,EAAY,GAAIz8B,EAAgByiN,GACtDE,EAAc/yP,KAAK4E,IAAIioE,EAAY,EAAGz8B,EAAgByiN,GACtDG,EAAYhzP,KAAK4E,IAAIioE,EAAY,GAAIx8B,EAAgBwiN,GACrDI,EAAejzP,KAAK4E,IAAIioE,EAAY,EAAGx8B,EAAgBwiN,GACvDl9P,EAAQwK,EAAKxK,MAAQm9P,EAAaC,EAClC1yP,EAASF,EAAKE,OAAS2yP,EAAYC,EACvCr4I,EAAOjlH,MAAQA,EAAQkjC,EACvB+hF,EAAOv6G,OAASA,EAASw4B,EACzBD,EAAIh2B,MAAMi2B,EAAKA,GACfD,EAAI8iH,UAAU,EAAG,EAAG/lJ,EAAO0K,GAC3Bu4B,EAAIC,IAAMA,EACV,IAAIq6N,EAAgB,CAClB/zP,SAAUkW,EAAKlW,SACf2F,SAAUuQ,EAAKvQ,SACflC,MAAOyS,EAAKzS,OAEdyS,EAAKlW,SAAW,CAAC2zP,EAAa3yP,EAAKvG,EAAGo5P,EAAY7yP,EAAKtG,GACvDwb,EAAKvQ,SAAW,EAChBuQ,EAAKzS,MAAQ,CAAC,EAAG,GACjByS,EAAKxS,kBAEDwS,GACFA,EAAKskB,MAAMf,GAGb,IAAIu6N,EAAah4L,EACbi4L,EAAW,IAAID,EAAW,CAC5Bx5P,MAAO,CACLC,EAAG,EACHC,EAAG,EACHigC,MAAO8gF,KAgBX,OAZ8B,MAA1Bs4I,EAAc/zP,WAChBi0P,EAASj0P,SAAWkW,EAAKlW,SAAW+zP,EAAc/zP,UAGtB,MAA1B+zP,EAAcpuP,WAChBsuP,EAAStuP,SAAWuQ,EAAKvQ,SAAWouP,EAAcpuP,UAGzB,MAAvBouP,EAActwP,QAChBwwP,EAASxwP,MAAQyS,EAAKzS,MAAQswP,EAActwP,OAGvCwwP,IAGX,IAAI1/P,EAAW+nK,EACf5kK,EAAOC,QAAUpD,G,qBCt/BjB,IAAIqD,EAAS,EAAQ,QAEjB8tH,EAAc,EAAQ,QAEtBzxD,EAAa,EAAQ,QA2BzB,SAASsgB,EAAU95E,GACjB,OAAIsT,MAAMtT,GACD,KAGTA,GAAKA,EAAI,IAAI6tF,MAAM,KACZ7tF,EAAE,GAAGhD,QAAQ,iCAAkC,QAAUgD,EAAEwF,OAAS,EAAI,IAAMxF,EAAE,GAAK,KAS9F,SAASujB,EAAY4sE,EAAKspK,GASxB,OARAtpK,GAAOA,GAAO,IAAItD,cAAc7vF,QAAQ,SAAS,SAAUwhE,EAAOk7L,GAChE,OAAOA,EAAOrrJ,iBAGZorJ,GAAkBtpK,IACpBA,EAAMA,EAAIwU,OAAO,GAAG0J,cAAgBle,EAAItuF,MAAM,IAGzCsuF,EAGT,IAAIvrE,EAAoBznB,EAAOynB,kBAC3B+0O,EAAa,aACbC,EAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACLC,IAAM,SAGR,SAAS1hM,EAAW79D,GAClB,OAAiB,MAAVA,EAAiB,IAAMA,EAAS,IAAI0C,QAAQ28P,GAAY,SAAUxpK,EAAKm0C,GAC5E,OAAOs1H,EAAWt1H,MAItB,IAAIw1H,EAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE/CC,EAAU,SAAUC,EAASC,GAC/B,MAAO,IAAMD,GAAwB,MAAbC,EAAoB,GAAKA,GAAa,KAWhE,SAAS9qJ,EAAUoxD,EAAK25F,EAAY3wN,GAC7BpsC,EAAOogB,QAAQ28O,KAClBA,EAAa,CAACA,IAGhB,IAAIC,EAAYD,EAAW10P,OAE3B,IAAK20P,EACH,MAAO,GAKT,IAFA,IAAIv1P,EAAQs1P,EAAW,GAAGt1P,OAAS,GAE1B4D,EAAI,EAAGA,EAAI5D,EAAMY,OAAQgD,IAAK,CACrC,IAAI4xP,EAAQN,EAActxP,GAC1B+3J,EAAMA,EAAIvjK,QAAQ+8P,EAAQK,GAAQL,EAAQK,EAAO,IAGnD,IAAK,IAAIH,EAAY,EAAGA,EAAYE,EAAWF,IAC7C,IAAK,IAAIzpP,EAAI,EAAGA,EAAI5L,EAAMY,OAAQgL,IAAK,CACrC,IAAIxK,EAAMk0P,EAAWD,GAAWr1P,EAAM4L,IACtC+vJ,EAAMA,EAAIvjK,QAAQ+8P,EAAQD,EAActpP,GAAIypP,GAAY1wN,EAAS4uB,EAAWnyD,GAAOA,GAIvF,OAAOu6J,EAYT,SAAS85F,EAAgB95F,EAAK98F,EAAOl6B,GAInC,OAHApsC,EAAOzD,KAAK+pE,GAAO,SAAUv7D,EAAO5F,GAClCi+J,EAAMA,EAAIvjK,QAAQ,IAAMsF,EAAM,IAAKinC,EAAS4uB,EAAWjwD,GAASA,MAE3Dq4J,EAaT,SAASrxD,EAAiBnlG,EAAKq4M,GAC7Br4M,EAAM5M,EAAOid,SAASrQ,GAAO,CAC3BoI,MAAOpI,EACPq4M,aAAcA,GACZr4M,GAAO,GACX,IAAIoI,EAAQpI,EAAIoI,MACZnY,EAAO+P,EAAI/P,KAEXy1G,GADA2yG,EAAer4M,EAAIq4M,aACNr4M,EAAI0lG,YAAc,QAC/ByiC,EAAWnoI,EAAImoI,UAAY,IAE/B,OAAK//H,EAIc,SAAfs9F,EACc,YAATz1G,EAAqB,oJAA2Jm+D,EAAWhmD,GAAS,KAAOiwM,GAAgB,IAAM,YAAc,iHAAwHjqJ,EAAWhmD,GAAS,KAAOiwM,GAAgB,IAAM,YAGxZ,CACL3yG,WAAYA,EACZrnF,QAAS,UAAY8pH,EAAW,OAChCnyI,MAAO,CACLoS,MAAOA,IAXJ,GAiBX,SAASmoP,EAAInqK,EAAKt9E,GAEhB,OADAs9E,GAAO,GACA,OAAOwhC,OAAO,EAAG9+G,EAAMs9E,EAAI3qF,QAAU2qF,EAa9C,SAAS11B,EAAW8lG,EAAKr4J,EAAOqyP,GAClB,SAARh6F,GAA0B,UAARA,GAA2B,YAARA,GAA6B,cAARA,GAA+B,SAARA,IACnFA,EAAM,eAGR,IAAIhmG,EAAOf,EAAWwC,UAAU9zD,GAC5BsyP,EAAMD,EAAQ,MAAQ,GACtBt6P,EAAIs6D,EAAK,MAAQigM,EAAM,cACvBloM,EAAIiI,EAAK,MAAQigM,EAAM,WAAa,EACpCjjM,EAAIgD,EAAK,MAAQigM,EAAM,UACvBvqM,EAAIsK,EAAK,MAAQigM,EAAM,WACvBjrP,EAAIgrD,EAAK,MAAQigM,EAAM,aACvB9zN,EAAI6zB,EAAK,MAAQigM,EAAM,aACvBvoI,EAAI13D,EAAK,MAAQigM,EAAM,kBAE3B,OADAj6F,EAAMA,EAAIvjK,QAAQ,KAAMs9P,EAAIhoM,EAAG,IAAIt1D,QAAQ,IAAKs1D,GAAGt1D,QAAQ,OAAQiD,GAAGjD,QAAQ,KAAMiD,EAAI,KAAKjD,QAAQ,KAAMs9P,EAAI/iM,EAAG,IAAIv6D,QAAQ,IAAKu6D,GAAGv6D,QAAQ,KAAMs9P,EAAIrqM,EAAG,IAAIjzD,QAAQ,IAAKizD,GAAGjzD,QAAQ,KAAMs9P,EAAI/qP,EAAG,IAAIvS,QAAQ,IAAKuS,GAAGvS,QAAQ,KAAMs9P,EAAI5zN,EAAG,IAAI1pC,QAAQ,IAAK0pC,GAAG1pC,QAAQ,MAAOs9P,EAAIroI,EAAG,IAChRsuC,EAST,SAAShsB,EAAapkD,GACpB,OAAOA,EAAMA,EAAIwU,OAAO,GAAG0J,cAAgBle,EAAIwhC,OAAO,GAAKxhC,EAG7D,IAAIkkI,EAAeppG,EAAYopG,aAe/B,SAASomC,EAAoB1wP,GAC3B,OAAOkhH,EAAYzkH,gBAAgBuD,EAAI7J,KAAM6J,EAAIo5B,KAAMp5B,EAAI3J,UAAW2J,EAAI5J,kBAAmB4J,EAAI+/D,YAAa//D,EAAIy/D,eAAgBz/D,EAAI8+D,KAAM9+D,EAAIg9E,UAUlJ,SAASmvB,EAAYh2G,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAajB,EAAMke,EAAUvd,GAC1F,OAAOyhD,EAAYzkH,gBAAgBtG,EAAMijC,EAAM/iC,EAAWD,EAAmB2pE,EAAaN,EAAgBX,EAAMke,GASlH,SAASga,EAAWtqB,EAAM9pE,GACxB,GAAe,WAAXA,GAAkC,UAAXA,EAAoB,CAC7C,IAAI+tP,EAAQvzO,OAAO6oH,OACnB0qH,EAAMC,OAAS,KACfD,EAAMnqL,SAAWkG,OAEjBtvD,OAAO6oH,KAAKv5D,EAAM9pE,GAItBzP,EAAQ48E,UAAYA,EACpB58E,EAAQqmB,YAAcA,EACtBrmB,EAAQ0nB,kBAAoBA,EAC5B1nB,EAAQi7D,WAAaA,EACrBj7D,EAAQiyG,UAAYA,EACpBjyG,EAAQm9P,gBAAkBA,EAC1Bn9P,EAAQgyG,iBAAmBA,EAC3BhyG,EAAQu9D,WAAaA,EACrBv9D,EAAQq3I,aAAeA,EACvBr3I,EAAQm3N,aAAeA,EACvBn3N,EAAQu9P,oBAAsBA,EAC9Bv9P,EAAQg5G,YAAcA,EACtBh5G,EAAQ6jG,WAAaA,G,qBChRrB,IAAI5jG,EAAS,EAAQ,QAEjBqQ,EAAiB,EAAQ,QAEzBsL,EAAO,EAAQ,QAEf66B,EAAY,EAAQ,QAoBpBouM,EAAgBv0O,EAAezT,OAAO,CACxCC,KAAM,WACNy0D,WAAY,MAKZnzD,cAAe,CACbC,OAAQ,EAERC,EAAG,EAEHG,MAAM,EACN6yB,SAAU,OAEVknD,UAAU,EACV5wE,KAAM,MACNC,IAAK,KACLC,MAAO,MACPC,OAAQ,EACRlJ,MAAO,KACP0K,OAAQ,GACR8d,QAAS,EACTgjF,gBAAiB,OAEjBqzJ,UAAU,EACVC,QAAQ,EAERrkP,MAAM,EACNskP,aAAc,IAEdxwJ,aAAc,EACd7kG,UAAW,GACX/J,MAAO,CACLyW,MAAO,QAETrX,KAAM,IAMRyI,KAAM,SAAUnJ,EAAQq/C,EAAap/C,GAKnCE,KAAK49C,MAML59C,KAAKwgQ,OACLxgQ,KAAKy/E,qBAAqB5/E,EAAQC,GAElCE,KAAKygQ,aAMP39L,YAAa,SAAUjjE,GACrB2nP,EAAcv+O,WAAWjJ,KAAM,cAAekJ,WAE9ClJ,KAAKygQ,aAMP9pJ,gBAAiB,SAAU5G,GACL,MAAhBA,IACFA,EAAe/vG,KAAKH,OAAOkwG,cAG7B,IAAI5tF,EAAQniB,KAAK49C,MAAMz7B,QAEnBniB,KAAKH,OAAOoc,KACd8zF,GAAgBA,EAAe5tF,EAAQA,GAASA,GAEhD4tF,GAAgB5tF,IAAU4tF,EAAe5tF,EAAQ,GACjD4tF,EAAe,IAAMA,EAAe,IAGtC/vG,KAAKH,OAAOkwG,aAAeA,GAM7BC,gBAAiB,WACf,OAAOhwG,KAAKH,OAAOkwG,cAMrB6G,WAAY,WACV,OAAO52G,KAAKgwG,mBAAqBhwG,KAAK49C,MAAMz7B,QAAU,GAMxD00F,aAAc,SAAUzxF,GACtBplB,KAAKH,OAAOwgQ,WAAaj7O,GAM3BmqF,aAAc,WACZ,QAASvvG,KAAKH,OAAOwgQ,UAMvBI,UAAW,WACT,IAAIl6O,EAAavmB,KAAKH,OAClB6gQ,EAAUn6O,EAAWhmB,MAAQ,GAC7B0zB,EAAW1N,EAAW0N,SACtBzL,EAAQxoB,KAAKwgQ,OAAS,GAE1B,GAAiB,aAAbvsO,EAAyB,CAC3B,IAAI0sO,EAAS,GACb/9P,EAAOzD,KAAKuhQ,GAAS,SAAUl8P,EAAM2C,GACnC,IACIupP,EADA/iP,EAAQyrC,EAAUlM,iBAAiB1oC,GAGnC5B,EAAOqjB,SAASzhB,IAClBksP,EAAU9tP,EAAO8E,MAAMlD,GACvBksP,EAAQ/iP,MAAQxG,GAEhBupP,EAAUvpP,EAGZw5P,EAAO9/P,KAAK6vP,GAEP9tP,EAAOid,SAASlS,IAAoB,MAATA,IAAiBoL,MAAMpL,KACrDA,EAAQ,IAGV6a,EAAM3nB,KAAK8M,EAAQ,OAErB+yP,EAAUC,EAGZ,IAAI/uN,EAAU,CACZ60C,SAAU,UACVvrE,KAAM,QACN+Y,IAAa,SACX1zB,EAAOP,KAAK49C,MAAQ,IAAIr/B,EAAK,CAAC,CAChC5R,KAAM,QACNlN,KAAMmyC,IACJ5xC,MACJO,EAAK6iB,SAASs9O,EAASl4O,IAEzBhoB,QAAS,WACP,OAAOR,KAAK49C,OAOdmnH,cAAe,WACb,GAA6B,aAAzB/kK,KAAKkC,IAAI,YACX,OAAOlC,KAAKwgQ,OAAOl5P,WAIrB/H,EAAWioP,EACf9kP,EAAOC,QAAUpD,G,qBCxMjB,IAAIqD,EAAS,EAAQ,QA4BrB,SAASK,EAAOsM,EAAWC,GACzBA,EAAMA,GAAO,GACb,IAAIi5E,EAASl5E,EAAUjP,iBACnBoP,EAAOH,EAAUG,KACjBzM,EAAS,GACT6M,EAAeJ,EAAK1E,SACpBlE,EAAS4I,EAAK5I,OACdkF,EAAOy8E,EAAOz4E,UACdC,EAAY,CAACjE,EAAKvG,EAAGuG,EAAKvG,EAAIuG,EAAKxK,MAAOwK,EAAKtG,EAAGsG,EAAKtG,EAAIsG,EAAKE,QAChE00P,EAAc,CAChB30J,WAAY,CACVzhG,IAAKyF,EAAU,GACfvF,OAAQuF,EAAU,IAEpBi8F,SAAU,CACR3hG,KAAM0F,EAAU,GAChBxF,MAAOwF,EAAU,KAGrBhN,EAAO+H,SAAW,CAAY,aAAXlE,EAAwB85P,EAAY10J,SAASp8F,GAAgBG,EAAU,GAAe,eAAXnJ,EAA0B85P,EAAY30J,WAAWn8F,GAAgBG,EAAU,IACzK,IAAI4D,EAAI,CACNo4F,WAAY,EACZC,SAAU,GAEZjpG,EAAO0N,SAAW9E,KAAK+E,GAAK,EAAIiD,EAAE/M,GAClC,IAAI+5P,EAAe,CACjBr2P,KAAM,EACNE,OAAQ,EACRD,MAAO,EACPF,MAAO,GAETtH,EAAO6N,eAAiB7N,EAAO8N,cAAgB9N,EAAO+N,cAAgB6vP,EAAa/wP,GAE/EP,EAAUrN,IAAI,qBAChBe,EAAO8N,eAAiB9N,EAAO8N,eAG7BnO,EAAO0B,SAASkL,EAAI0B,YAAa3B,EAAUrN,IAAI,uBACjDe,EAAO6N,gBAAkB7N,EAAO6N,gBAGlC,IAAIi8F,EAAgBv9F,EAAI41B,OAIxB,OAHiB,MAAjB2nE,IAA0BA,EAAgBx9F,EAAUrN,IAAI,qBACxDe,EAAO8pG,cAAiC,QAAjBj9F,GAA0Bi9F,EAAgBA,EACjE9pG,EAAOmO,GAAK,EACLnO,EAGTN,EAAQM,OAASA,G,qBC5EjB,IAAI/D,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KACb0gB,EAAW3gB,EAAM2gB,SAyCrB,SAASwiC,EAAgBvgD,EAAag4J,EAAmBtqJ,GACvDA,EAAMA,GAAO,GACb,IAIIsxP,EACAC,EACA7pB,EACA3+B,EAPAyoD,EAAUxxP,EAAIwxP,QACdC,EAAwBzxP,EAAIyxP,sBAE5BC,KAAcp/P,IAAeA,EAAYI,IAAI,UAkCjD,GA7BA/C,EAAK26J,GAAmB,SAAU/H,EAAe5qJ,GAC3C0Y,EAASkyI,KACX+H,EAAkB3yJ,GAAS4qJ,EAAgB,CACzCplJ,KAAMolJ,IAINmvG,IAAanvG,EAAczhE,eAExB0wK,GAAYF,IAAoB/uG,EAAcppG,cACjDm4M,EAAmB/uG,GAIhBgvG,GAAyC,YAAvBhvG,EAActyJ,MAA6C,SAAvBsyJ,EAActyJ,MAAqBwhQ,GAAyBA,IAA0BlvG,EAAc5hE,WAC7J4wK,EAAiBhvG,QAKnBgvG,GAAmBC,GAAYF,IAGjCE,GAAU,GAMRD,EAAgB,CAElB7pB,EAAuB,oBACvB3+B,EAAuB,oBAEnBuoD,IACFA,EAAiB7uG,uBAAwB,GAG3C,IAAIkvG,EAAqBJ,EAAe5wK,SACpCixK,EAAiBL,EAAethQ,KAChC4hQ,EAAuB,EAC3BliQ,EAAK26J,GAAmB,SAAU/H,GAC5BA,EAAc5hE,WAAagxK,GAC7BE,OAGJvnG,EAAkBj5J,KAAK,CACrB8L,KAAMuqO,EACN/mJ,SAAUgxK,EACV/wK,cAAeixK,EACf5hQ,KAAM2hQ,EACN9wK,cAAc,EACdqlK,oBAAoB,IAEtB0L,IACAvnG,EAAkBj5J,KAAK,CACrB8L,KAAM4rM,EAGNpoH,SAAUooH,EACVnoH,cAAeixK,EACf5hQ,KAAM2hQ,EACN9wK,cAAc,EACdqlK,oBAAoB,IAIxB,MAAO,CACLxe,iBAAkB4pB,GAAkBA,EAAep0P,KACnDyqO,mBAAoB0pB,GAAoBA,EAAiBn0P,KACzD0qO,iBAAkB2pB,EAClBzoD,qBAAsBA,EACtB2+B,qBAAsBA,GAS1B,SAAS50L,EAAmB/hD,EAAM+gQ,GAKhC,QAASA,GAAcA,IAAe/gQ,EAAK42J,mBAAmB,oBAehE,SAAS50G,EAAoBhiD,EAAMghQ,GACjC,OAAOj/M,EAAmB/hD,EAAMghQ,GAAahhQ,EAAK42J,mBAAmB,wBAA0BoqG,EAGjG5+P,EAAQ0/C,gBAAkBA,EAC1B1/C,EAAQ2/C,mBAAqBA,EAC7B3/C,EAAQ4/C,oBAAsBA,G,qBCjK9B,IAAIn6C,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElBimB,EAAa,EAAQ,QAErBk2C,EAAa,EAAQ,QAoBrBuiM,EAAa,CACfC,GAAI,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAClFC,GAAI,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,QAEtEC,EAAY,CACdF,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnCC,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAGjCniQ,EAAW6I,EAAQiJ,oBAAoB,CACzC5R,KAAM,WAMNmiQ,UAAW,KAMXC,UAAW,KAMXC,iBAAkB,KAMlBC,gBAAiB,KACjBzwP,OAAQ,SAAUgjO,EAAex0O,EAASyG,GACxC,IAAIjD,EAAQtD,KAAKsD,MACjBA,EAAMC,YACN,IAAIlD,EAAWi0O,EAAch0O,iBAEzB0hQ,EAAY3hQ,EAAS8hI,eACrBr7H,EAASzG,EAASqoC,YAEtB1oC,KAAKiiQ,eAAe3tB,EAAe0tB,EAAW1+P,GAG9CtD,KAAKkiQ,aAAa5tB,EAAe0tB,EAAWl7P,EAAQxD,GAEpDtD,KAAKmiQ,gBAAgB7tB,EAAe0tB,EAAWl7P,EAAQxD,GAEvDtD,KAAKoiQ,iBAAiB9tB,EAAextO,EAAQxD,GAE7CtD,KAAKqiQ,gBAAgB/tB,EAAe0tB,EAAWl7P,EAAQxD,IAGzD2+P,eAAgB,SAAU3tB,EAAe0tB,EAAW1+P,GAMlD,IALA,IAAIjD,EAAWi0O,EAAch0O,iBACzBgiQ,EAAqBhuB,EAAcrzN,SAAS,aAAatP,eACzDkzM,EAAKxkN,EAASgiI,eACdyiF,EAAKzkN,EAASkiI,gBAETt0H,EAAI+zP,EAAUztP,MAAM2G,KAAMjN,GAAK+zP,EAAU3nL,IAAIn/D,KAAMjN,EAAI5N,EAAS20O,YAAY/mO,EAAG,GAAGiN,KAAM,CAC/F,IAAIoc,EAAQj3B,EAAS6jI,WAAW,CAACj2H,IAAI,GAAO6nO,GAExC9pO,EAAO,IAAIlJ,EAAQyO,KAAK,CAC1BC,MAAO,CACL/L,EAAG6xB,EAAM,GACT5xB,EAAG4xB,EAAM,GACT91B,MAAOqjN,EACP34M,OAAQ44M,GAEV35K,OAAQ,UACR3lC,MAAO88P,IAETh/P,EAAMgC,IAAI0G,KAIdk2P,aAAc,SAAU5tB,EAAe0tB,EAAWl7P,EAAQxD,GACxD,IAAIma,EAAOzd,KACPK,EAAWi0O,EAAch0O,iBACzBugD,EAAiByzL,EAAcrzN,SAAS,uBAAuB29B,eAC/Dx9C,EAAOkzO,EAAcpyO,IAAI,kBACzBw2E,EAAY73B,EAAe63B,UAC/B14E,KAAK4hQ,UAAY,GACjB5hQ,KAAK6hQ,UAAY,GACjB7hQ,KAAK8hQ,iBAAmB,GACxB9hQ,KAAK+hQ,gBAAkB,GAGvB,IAFA,IAAIntE,EAAWotE,EAAUztP,MAEhBtG,EAAI,EAAG2mL,EAAS15K,MAAQ8mP,EAAU3nL,IAAIn/D,KAAMjN,IAAK,CACxDs0P,EAAU3tE,EAASmgD,cAET,IAAN9mO,IACF2mL,EAAWv0L,EAASu0O,YAAYotB,EAAUztP,MAAM7O,EAAI,IAAMs8P,EAAUztP,MAAMS,IAG5E,IAAIgrD,EAAO40H,EAAS50H,KACpBA,EAAKq2K,SAASr2K,EAAKK,WAAa,GAChCu0H,EAAWv0L,EAASu0O,YAAY50K,GAKlC,SAASuiM,EAAUviM,GACjBviD,EAAKqkP,iBAAiBjhQ,KAAKR,EAASu0O,YAAY50K,IAEhDviD,EAAKskP,gBAAgBlhQ,KAAKR,EAAS6jI,WAAW,CAAClkE,IAAO,GAAO81K,IAE7D,IAAIv+N,EAASkG,EAAK+kP,wBAAwBluB,EAAet0K,EAAMl5D,GAE/D2W,EAAKmkP,UAAU/gQ,KAAK0W,EAAO,IAE3BkG,EAAKokP,UAAUhhQ,KAAK0W,EAAOA,EAAOtM,OAAS,IAE3C7J,GAAQqc,EAAKglP,eAAelrP,EAAQspC,EAAgBv9C,GAbtDi/P,EAAUliQ,EAAS20O,YAAYgtB,EAAU3nL,IAAIn/D,KAAM,GAAG65N,cAiBtD3zO,GAAQpB,KAAKyiQ,eAAehlP,EAAKilP,gBAAgBjlP,EAAKmkP,UAAWlpL,EAAW5xE,GAAS+5C,EAAgBv9C,GAErGlC,GAAQpB,KAAKyiQ,eAAehlP,EAAKilP,gBAAgBjlP,EAAKokP,UAAWnpL,EAAW5xE,GAAS+5C,EAAgBv9C,IAGvGo/P,gBAAiB,SAAUnrP,EAAQmhE,EAAW5xE,GAC5C,IAAI67P,EAAK,CAACprP,EAAO,GAAGjQ,QAASiQ,EAAOA,EAAOtM,OAAS,GAAG3D,SACnD4I,EAAiB,eAAXpJ,EAA0B,EAAI,EAIxC,OAFA67P,EAAG,GAAGzyP,GAAOyyP,EAAG,GAAGzyP,GAAOwoE,EAAY,EACtCiqL,EAAG,GAAGzyP,GAAOyyP,EAAG,GAAGzyP,GAAOwoE,EAAY,EAC/BiqL,GAGTF,eAAgB,SAAUlrP,EAAQspC,EAAgBv9C,GAChD,IAAIs/P,EAAU,IAAI9/P,EAAQy7C,SAAS,CACjCntC,GAAI,GACJI,MAAO,CACL+F,OAAQA,GAEV/R,MAAOq7C,IAETv9C,EAAMgC,IAAIs9P,IAGZJ,wBAAyB,SAAUluB,EAAet0K,EAAMl5D,GACtD,IAAIzG,EAAWi0O,EAAch0O,iBAC7B0/D,EAAO3/D,EAASu0O,YAAY50K,GAG5B,IAFA,IAAIzoD,EAAS,GAEJtJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI40P,EAAOxiQ,EAAS20O,YAAYh1K,EAAK9kD,KAAMjN,GACvCqpB,EAAQj3B,EAAS6jI,WAAW,CAAC2+H,EAAK3nP,OAAO,GAC7C3D,EAAO,EAAIsrP,EAAKhuB,KAAOv9M,EAAMw+M,GAC7Bv+N,EAAO,EAAIsrP,EAAKhuB,IAAM,GAAKv9M,EAAiB,eAAXxwB,EAA0B,KAAO,MAGpE,OAAOyQ,GAETurP,gBAAiB,SAAUhuM,EAAWjrD,GACpC,MAAyB,kBAAdirD,GAA0BA,EAC5B/rC,EAAW+2O,gBAAgBhrM,EAAWjrD,GAGtB,oBAAdirD,EACFA,EAAUjrD,GAGZA,EAAO+C,SAEhBm2P,yBAA0B,SAAU1hO,EAAQ/J,EAAOxwB,EAAQkE,EAAUi3E,GACnE3qD,EAAQA,EAAMhwB,QACd,IAAI07P,EAAS,CAAC,SAAU,UAEP,WAAbh4P,GACFssB,EAAM,IAAM2qD,EACZ+gL,EAAS,CAAC,SAAU,QACE,SAAbh4P,EACTssB,EAAM,IAAM2qD,EACU,UAAbj3E,GACTssB,EAAM,IAAM2qD,EACZ+gL,EAAS,CAAC,SAAU,QAGpB1rO,EAAM,IAAM2qD,EAGd,IAAI78C,EAAS,EAMb,MAJiB,SAAbp6B,GAAoC,UAAbA,IACzBo6B,EAASv5B,KAAK+E,GAAK,GAGd,CACLD,SAAUy0B,EACVp6B,SAAUssB,EACV9xB,MAAO,CACLK,UAAWm9P,EAAO,GAClBp9P,kBAAmBo9P,EAAO,MAKhCb,gBAAiB,SAAU7tB,EAAe0tB,EAAWl7P,EAAQxD,GAC3D,IAAIwxL,EAAYw/C,EAAcrzN,SAAS,aAEvC,GAAK6zK,EAAU5yL,IAAI,QAAnB,CAIA,IAAI+/E,EAAS6yG,EAAU5yL,IAAI,UACvBmQ,EAAMyiL,EAAU5yL,IAAI,YAEnBmQ,IACHA,EAAiB,eAAXvL,EAA0B,MAAQ,QAG1C,IAAIyQ,EAAS,CAACvX,KAAK4hQ,UAAU5hQ,KAAK4hQ,UAAU32P,OAAS,GAAIjL,KAAK6hQ,UAAU,IACpEoB,GAAM1rP,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrC2rP,GAAM3rP,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCrH,EAAiB,eAAXpJ,EAA0B,EAAI,EACpCq8P,EAAY,CACd34P,IAAK,CAACy4P,EAAI1rP,EAAOrH,GAAK,IACtBxF,OAAQ,CAACu4P,EAAI1rP,EAAO,EAAIrH,GAAK,IAC7B3F,KAAM,CAACgN,EAAO,EAAIrH,GAAK,GAAIgzP,GAC3Bz4P,MAAO,CAAC8M,EAAOrH,GAAK,GAAIgzP,IAEtBv2P,EAAOq1P,EAAUztP,MAAM7O,GAEtBs8P,EAAU3nL,IAAI30E,GAAKs8P,EAAUztP,MAAM7O,IACtCiH,EAAOA,EAAO,IAAMq1P,EAAU3nL,IAAI30E,GAGpC,IAAIovD,EAAYggI,EAAU5yL,IAAI,aAC1B2H,EAAS,CACX0K,MAAOytP,EAAUztP,MAAM7O,EACvB20E,IAAK2nL,EAAU3nL,IAAI30E,EACnBkH,QAASD,GAGPkhB,EAAU7tB,KAAK8iQ,gBAAgBhuM,EAAWjrD,GAE1Cu5P,EAAW,IAAItgQ,EAAQyC,KAAK,CAC9B6L,GAAI,KAENtO,EAAQmqE,aAAam2L,EAAS59P,MAAOsvL,EAAW,CAC9CnvL,KAAMkoB,IACJu1O,EAASpjP,KAAKhgB,KAAK+iQ,yBAAyBK,EAAUD,EAAU9wP,GAAMvL,EAAQuL,EAAK4vE,IACvF3+E,EAAMgC,IAAI89P,KAEZC,0BAA2B,SAAU/rO,EAAOgsO,EAAUx8P,EAAQkE,EAAUi3E,GACtE,IAAIj7E,EAAQ,OACRs2H,EAAS,MACT73H,EAAI6xB,EAAM,GACV5xB,EAAI4xB,EAAM,GAwBd,MAtBe,eAAXxwB,GACFpB,GAAQu8E,EAEJqhL,IACFt8P,EAAQ,UAGO,UAAbgE,IACFsyH,EAAS,YAGX73H,GAAQw8E,EAEJqhL,IACFhmI,EAAS,UAGM,UAAbtyH,IACFhE,EAAQ,UAIL,CACLvB,EAAGA,EACHC,EAAGA,EACHG,UAAWmB,EACXpB,kBAAmB03H,IAIvB8kI,iBAAkB,SAAU9tB,EAAextO,EAAQxD,GACjD,IAAIuxL,EAAay/C,EAAcrzN,SAAS,cAExC,GAAK4zK,EAAW3yL,IAAI,QAApB,CAIA,IAAI0K,EAAUioL,EAAW3yL,IAAI,WACzB+/E,EAAS4yG,EAAW3yL,IAAI,UACxBmQ,EAAMwiL,EAAW3yL,IAAI,YACrB8E,EAAQ6tL,EAAW3yL,IAAI,SACvBqhQ,EAAa,CAACvjQ,KAAK4hQ,UAAW5hQ,KAAK6hQ,WAEnCj/P,EAAOid,SAASjT,KAClBA,EAAU40P,EAAW50P,EAAQknG,gBAAkB,IAGjD,IAAI5jG,EAAc,UAARmC,EAAkB,EAAI,EAC5B3C,EAAkB,eAAX5I,EAA0B,EAAI,EACzCm7E,EAAiB,UAAR5vE,GAAmB4vE,EAASA,EAGrC,IAFA,IAAIqhL,EAAqB,WAAVt8P,EAENiH,EAAI,EAAGA,EAAIs1P,EAAWrzP,GAAKjF,OAAS,EAAGgD,IAAK,CACnD,IAAI8G,EAAMwuP,EAAWrzP,GAAKjC,GAAG3G,QACzBstL,EAAW50L,KAAK8hQ,iBAAiB7zP,GAErC,GAAIq1P,EAAU,CACZ,IAAIE,EAAiBxjQ,KAAK+hQ,gBAAgB9zP,GAC1C8G,EAAIrF,IAAS8zP,EAAe9zP,GAAQ6zP,EAAW,GAAGt1P,EAAI,GAAGyB,IAAS,EAGpE,IAAIolD,EAAY+/H,EAAW3yL,IAAI,aAC3ByK,EAAOC,GAASgoL,EAAS5/K,EAAI,GAC7BnL,EAAS,CACX45P,KAAM7uE,EAASlvL,EACfg+P,IAAK9uE,EAASlvL,EAAI,IAAI4B,MAAM,GAC5Bq8P,GAAI/uE,EAAS5/K,EACb+iD,GAAI68H,EAAS5/K,EACbpI,QAASD,GAGPkhB,EAAU7tB,KAAK8iQ,gBAAgBhuM,EAAWjrD,GAE1C+5P,EAAY,IAAI9gQ,EAAQyC,KAAK,CAC/B6L,GAAI,KAENxO,EAAOpD,OAAOsD,EAAQmqE,aAAa22L,EAAUp+P,MAAOqvL,EAAY,CAC9DlvL,KAAMkoB,IACJ7tB,KAAKqjQ,0BAA0BtuP,EAAKuuP,EAAUx8P,EAAQuL,EAAK4vE,IAC/D3+E,EAAMgC,IAAIs+P,MAGdC,yBAA0B,SAAUvsO,EAAOxwB,EAAQkE,EAAUi3E,EAAQyyG,GACnE,IAAI1tL,EAAQ,SACRs2H,EAAS,SACT73H,EAAI6xB,EAAM,GACV5xB,EAAI4xB,EAAM,GACVwsO,EAAuB,UAAb94P,EAUd,MARe,eAAXlE,GACFrB,EAAIA,EAAIw8E,GAAU6hL,EAAU,GAAK,GAAKpvE,EAAS,GAAK,EACpD1tL,EAAQ88P,EAAU,QAAU,SAE5Bp+P,EAAIA,EAAIu8E,GAAU6hL,EAAU,GAAK,GAAKpvE,EAAS,GAAK,EACpDp3D,EAASwmI,EAAU,SAAW,OAGzB,CACLr+P,EAAGA,EACHC,EAAGA,EACHG,UAAWmB,EACXpB,kBAAmB03H,IAIvB+kI,gBAAiB,SAAU/tB,EAAe0tB,EAAWl7P,EAAQxD,GAC3D,IAAIqxL,EAAW2/C,EAAcrzN,SAAS,YAEtC,GAAK0zK,EAASzyL,IAAI,QAAlB,CAIA,IAAI7B,EAAWi0O,EAAch0O,iBACzB+R,EAAMsiL,EAASzyL,IAAI,YACnB0K,EAAU+nL,EAASzyL,IAAI,WACvB+/E,EAAS0yG,EAASzyL,IAAI,UACtB6hQ,EAAiB1jQ,EAASq0O,oBAE1B9xO,EAAOid,SAASjT,KAClBA,EAAU+0P,EAAU/0P,EAAQknG,gBAAkB,IAGhD,IAAIv/F,EAAQlU,EAAS20O,YAAYgtB,EAAU3nL,IAAIn/D,KAAM,EAAI8mP,EAAUrrB,OAAOz7N,KACtEw5K,EAAW,CAACr0L,EAASgiI,eAAgBhiI,EAASkiI,iBAClDtgD,EAAShjB,EAAWzqC,aAAaytD,EAAQyyG,EAAoB,eAAX5tL,EAA0B,EAAI,IAEpE,UAARuL,IACFkC,EAAQlU,EAAS20O,YAAYgtB,EAAUztP,MAAM2G,OAAQ,EAAI8mP,EAAUtrB,QAAQx7N,KAC3E+mE,GAAUA,GAGZ,IAAK,IAAIh0E,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI40P,EAAOxiQ,EAAS20O,YAAYzgO,EAAOtG,GACnCqpB,EAAQj3B,EAAS6jI,WAAW,CAAC2+H,EAAK3nP,OAAO,GAAOwd,OAChDm8M,EAAM5mO,EACV4mO,EAAMhpO,KAAKC,KAAKmC,EAAI81P,GAAkB,GACtC,IAAIC,EAAW,IAAIlhQ,EAAQyC,KAAK,CAC9B6L,GAAI,KAENxO,EAAOpD,OAAOsD,EAAQmqE,aAAa+2L,EAASx+P,MAAOmvL,EAAU,CAC3DhvL,KAAMiH,EAAQioO,KACZ70O,KAAK6jQ,yBAAyBvsO,EAAOxwB,EAAQuL,EAAK4vE,EAAQyyG,IAC9DpxL,EAAMgC,IAAI0+P,QAKhBthQ,EAAOC,QAAUpD,G,qBClcjB,IAAIs5D,EAAY,EAAQ,QAEpBqwE,EAAU,EAAQ,QAElBqnC,EAAmBrnC,EAAQhkG,eAC3B4yB,EAAMe,EAAUf,IAChBvgD,EAAS,CAAC,GAAI,GAAI,IAClBmhD,EAAW7sD,KAAK4sB,KAChBwrO,EAAYp4P,KAAKk5B,MAErB,SAASxlC,EAAS2hB,EAAMlM,GACtB,IACI2mD,EACA4nJ,EACAt1M,EACAuK,EACAvC,EALA1V,EAAO2gB,EAAK3gB,KAOZw3D,EAAID,EAAIC,EACRE,EAAIH,EAAIG,EACRD,EAAIF,EAAIE,EACRK,EAAIP,EAAIO,EACRF,EAAIL,EAAIK,EACRD,EAAIJ,EAAII,EAEZ,IAAKjqD,EAAI,EAAGuK,EAAI,EAAGvK,EAAI1N,EAAK0K,QAAS,CAKnC,OAJA0wD,EAAMp7D,EAAK0N,KACXuK,EAAIvK,EACJs1M,EAAS,EAED5nJ,GACN,KAAK5D,EACHwrJ,EAAS,EACT,MAEF,KAAKvrJ,EACHurJ,EAAS,EACT,MAEF,KAAKtrJ,EACHsrJ,EAAS,EACT,MAEF,KAAKrrJ,EACHqrJ,EAAS,EACT,MAEF,KAAKprJ,EACH,IAAI1yD,EAAIuP,EAAE,GACNtP,EAAIsP,EAAE,GACNovB,EAAKs0B,EAAS1jD,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACrCqvB,EAAKq0B,EAAS1jD,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACrCw9C,EAAQyxM,GAAWjvP,EAAE,GAAKqvB,EAAIrvB,EAAE,GAAKovB,GAEzC7jC,EAAK0N,IAAMm2B,EACX7jC,EAAK0N,MAAQxI,EAEblF,EAAK0N,IAAMo2B,EACX9jC,EAAK0N,MAAQvI,EAGbnF,EAAK0N,MAAQm2B,EACb7jC,EAAK0N,MAAQo2B,EAEb9jC,EAAK0N,MAAQukD,EAEbjyD,EAAK0N,MAAQukD,EAEbvkD,GAAK,EACLuK,EAAIvK,EACJ,MAEF,KAAKoqD,EAEH5gD,EAAE,GAAKlX,EAAK0N,KACZwJ,EAAE,GAAKlX,EAAK0N,KACZsiK,EAAiB94J,EAAGA,EAAGzC,GACvBzU,EAAKiY,KAAOf,EAAE,GACdlX,EAAKiY,KAAOf,EAAE,GAEdA,EAAE,IAAMlX,EAAK0N,KACbwJ,EAAE,IAAMlX,EAAK0N,KACbsiK,EAAiB94J,EAAGA,EAAGzC,GACvBzU,EAAKiY,KAAOf,EAAE,GACdlX,EAAKiY,KAAOf,EAAE,GAGlB,IAAKxB,EAAI,EAAGA,EAAIstM,EAAQttM,IAAK,CAC3B,IAAIwB,EAAIF,EAAOtB,GACfwB,EAAE,GAAKlX,EAAK0N,KACZwJ,EAAE,GAAKlX,EAAK0N,KACZsiK,EAAiB94J,EAAGA,EAAGzC,GAEvBzU,EAAKiY,KAAOf,EAAE,GACdlX,EAAKiY,KAAOf,EAAE,KAKpB/U,EAAOC,QAAUpD,G,qBC/EjB,IAAI6I,EAAU,EAAQ,QAElBsrB,EAAe,EAAQ,QAE3B,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAwBRtrB,EAAQyJ,qBAAqB6hB,I,mBChB7B,SAASs1B,EAAU3xC,GAKjB,OAJMA,aAAaU,QACjBV,EAAI,CAACA,EAAGA,IAGHA,EAGT,IAAI4wO,EAAe,oBAAoB30J,MAAM,KACzC/zF,EAAW,CACbq1B,WAAY,QACZE,MAAO,SAAUhzB,EAAahC,EAASyG,GACrC,IAAIqsC,EAAaoW,EAAUlnD,EAAYI,IAAI,WACvC63C,EAAaiP,EAAUlnD,EAAYI,IAAI,eACvC3B,EAAOuB,EAAYtB,UAOvB,SAAS4sK,EAAS7sK,EAAM2P,GACtB,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAC9B0iC,EAAaoW,EAAU7nC,EAAUq7B,WAAW,UAAU,IACtDzC,EAAaiP,EAAU7nC,EAAUq7B,WAAW,cAAc,IAC1D/6C,EAAU0f,EAAUjf,IAAI+lP,GAC5Br1M,EAAW,IAAMryC,EAAKihB,cAActR,EAAK,aAAc0iC,EAAW,IAClEA,EAAW,IAAMryC,EAAKihB,cAActR,EAAK,WAAY0iC,EAAW,IAChEmH,EAAW,IAAMx5C,EAAKihB,cAActR,EAAK,iBAAkB6pC,EAAW,IACtEA,EAAW,IAAMx5C,EAAKihB,cAActR,EAAK,eAAgB6pC,EAAW,IACpEx5C,EAAKihB,cAActR,EAAK,UAAWzO,GAGrC,OAlBAlB,EAAKghB,UAAU,aAAcqxB,GAAcA,EAAW,IACtDryC,EAAKghB,UAAU,WAAYqxB,GAAcA,EAAW,IACpDryC,EAAKghB,UAAU,iBAAkBw4B,GAAcA,EAAW,IAC1Dx5C,EAAKghB,UAAU,eAAgBw4B,GAAcA,EAAW,IACxDx5C,EAAKghB,UAAU,UAAWzf,EAAYI,IAAI+lP,IAcnC,CACL76E,SAAU7sK,EAAKg8C,cAAgB6wH,EAAW,QAIhD1qK,EAAOC,QAAUpD,G,qBCxDjB,IAAIikB,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjB8J,EAAM,EAAQ,QAEdzJ,EAAS,EAAQ,QAEjBg8D,EAAa,EAAQ,QAErBxyD,EAAmB,EAAQ,QAE3BuzG,EAAiB,EAAQ,QA0B7B,SAASkkJ,EAAUt2P,EAAUrH,GAC3B,IAAImuD,EAAiB9mD,EAAS1L,IAAI,kBAElC,GAAsB,MAAlBwyD,EAAwB,CAC1B,IAAIyvM,EAAUzvM,EAAe,GACzB0vM,EAAc1vM,EAAe,GAE7B37C,MAAMorP,EAAQ,KAAOprP,MAAMorP,EAAQ,KAAOprP,MAAMqrP,EAAY,KAAOrrP,MAAMqrP,EAAY,KACvFpkQ,KAAK4wK,gBAAgBuzF,EAAQ,GAAIA,EAAQ,GAAIC,EAAY,GAAKD,EAAQ,GAAIC,EAAY,GAAKD,EAAQ,IAIvG,IACIE,EADAr4P,EAAOhM,KAAKiM,kBAEZysB,EAAS9qB,EAAS1L,IAAI,gBACtBoK,EAAOsB,EAAS1L,IAAI,cACpBy7E,EAAYp3E,EAAIylB,WAChB4xD,EAAar3E,EAAI0lB,YACjB+Z,EAASh6B,EAAKxK,MAAQwK,EAAKE,OAASlM,KAAKy0D,YACzC6vM,GAAmB,EAavB,GAXI5rO,GAAUpsB,IACZosB,EAAS,CAACumC,EAAWzqC,aAAakE,EAAO,GAAIilD,GAAY1e,EAAWzqC,aAAakE,EAAO,GAAIklD,IAC5FtxE,EAAO2yD,EAAWzqC,aAAaloB,EAAMT,KAAK6E,IAAIitE,EAAWC,IAEpD7kE,MAAM2f,EAAO,KAAQ3f,MAAM2f,EAAO,KAAQ3f,MAAMzM,KACnDg4P,GAAmB,IAMnBA,EAAkB,CACpB,IAAIxjL,EAAW,GAEX96C,EAAS,GAEX86C,EAASt/E,MAAQ8K,EACjBw0E,EAAS50E,OAASI,EAAO05B,IAEzB86C,EAAS50E,OAASI,EAClBw0E,EAASt/E,MAAQ8K,EAAO05B,GAG1B86C,EAASp7E,EAAIgzB,EAAO,GAAKooD,EAAS50E,OAAS,EAC3C40E,EAASr7E,EAAIizB,EAAO,GAAKooD,EAASt/E,MAAQ,OAG1C6iQ,EAAkBz2P,EAASk4D,qBAE3Bu+L,EAAgBr+N,OAASA,EACzB86C,EAAW79E,EAAOk/C,cAAckiN,EAAiB,CAC/C7iQ,MAAOm8E,EACPzxE,OAAQ0xE,IAIZ59E,KAAK6wK,YAAY/vF,EAASr7E,EAAGq7E,EAASp7E,EAAGo7E,EAASt/E,MAAOs/E,EAAS50E,QAClElM,KAAKg1D,UAAUpnD,EAAS1L,IAAI,WAC5BlC,KAAK+0D,QAAQnnD,EAAS1L,IAAI,SAS5B,SAASqiQ,EAAa/lO,EAAK1O,GACzBltB,EAAOzD,KAAK2wB,EAAM5tB,IAAI,aAAa,SAAU6M,EAAUpC,GACrD6xB,EAAI1vB,YAAYnC,EAAMoC,MAI1B,IAAIilD,EAAa,CAEf7xD,WAAYuK,EAAIoB,UAAU3L,WAC1ByhC,OAAQ,SAAU9jC,EAASyG,GACzB,IAAIi+P,EAAU,GAEd1kQ,EAAQs+B,cAAc,OAAO,SAAUxwB,EAAUsC,GAC/C,IAAIvD,EAAOiB,EAAS1L,IAAI,OACpBuyD,EAAc7mD,EAAS1L,IAAI,eAC3B2K,GAAkB,EAClB84I,EAAa3lC,EAAeqQ,YAAY1jH,GAExCg5I,GAAcA,EAAW,IAA6B,QAAvBA,EAAW,GAAGlmJ,MAChC,MAAfg1D,IAAwBA,EAAc,GACtC5nD,GAAkB,GAEH,MAAf4nD,IAAwBA,EAAc,KAGxC,IAAIj2B,EAAM,IAAI9xB,EAAIC,EAAOuD,EAAKvD,EAAMiB,EAAS1L,IAAI,WAAY2K,GAC7D2xB,EAAIi2B,YAAcA,EAClBj2B,EAAI7rB,UAAY/E,EAAS1L,IAAI,cAC7BsiQ,EAAQ3jQ,KAAK29B,GACb+lO,EAAa/lO,EAAK5wB,GAClBA,EAAStN,iBAAmBk+B,EAC5BA,EAAI1O,MAAQliB,EAEZ4wB,EAAIy+C,OAASinL,EACb1lO,EAAIy+C,OAAOrvE,EAAUrH,MAEvBzG,EAAQ04C,YAAW,SAAU12C,GAC3B,IAAIzB,EAAWyB,EAAYI,IAAI,oBAE/B,GAAiB,QAAb7B,EAAoB,CACtB,IAAI2hC,EAAWlgC,EAAYI,IAAI,aAAe,EAC9CJ,EAAYxB,iBAAmBkkQ,EAAQxiO,OAI3C,IAAIyiO,EAAwB,GA0B5B,OAzBA3kQ,EAAQumC,iBAAiB,OAAO,SAAUvkC,GACxC,IAAKA,EAAYy8B,kBAAmB,CAClC,IAAI8nB,EAAUvkD,EAAY+wI,aAC1B4xH,EAAsBp+M,GAAWo+M,EAAsBp+M,IAAY,GACnEo+M,EAAsBp+M,GAASxlD,KAAKiB,OAGxCc,EAAOzD,KAAKslQ,GAAuB,SAAUnmO,EAAW+nB,GACtD,IAAIq+M,EAAc9hQ,EAAOqE,IAAIq3B,GAAW,SAAUqmO,GAChD,OAAOA,EAAgBziQ,IAAI,cAEzBs8B,EAAM,IAAI9xB,EAAI25C,EAASA,EAASzjD,EAAO6yK,SAASivF,IACpDlmO,EAAI7rB,UAAY/P,EAAO0B,SAASgiB,MAAM,KAAM1jB,EAAOqE,IAAIq3B,GAAW,SAAUqmO,GAC1E,OAAOA,EAAgBziQ,IAAI,kBAE7BsiQ,EAAQ3jQ,KAAK29B,GAEbA,EAAIy+C,OAASinL,EACb1lO,EAAIi2B,YAAcn2B,EAAU,GAAGp8B,IAAI,eACnCs8B,EAAIy+C,OAAO3+C,EAAU,GAAI/3B,GACzB3D,EAAOzD,KAAKm/B,GAAW,SAAUqmO,GAC/BA,EAAgBrkQ,iBAAmBk+B,EACnC+lO,EAAa/lO,EAAKmmO,SAGfH,GAUTrwM,iBAAkB,SAAUywM,EAAiBriO,EAAS31B,GAKpD,IAHA,IAAIi4P,GAAcD,GAAmB,IAAIt9P,QACrCmrI,EAAc7vI,EAAOxD,gBAEhB6O,EAAI,EAAGA,EAAI42P,EAAW55P,OAAQgD,IACrCwkI,EAAYlwI,IAAIsiQ,EAAW52P,GAAGtB,KAAMk4P,EAAW52P,IAGjD,IAAIlO,EAAS0M,EAAiBM,KAAKw1B,EAAS31B,GAO5C,OANAhK,EAAOzD,KAAKY,EAAOsN,SAAS,SAAU6vB,GACpC,IAAIvwB,EAAOuwB,EAAOvwB,MACjB8lI,EAAYvwI,IAAIyK,IAASk4P,EAAWhkQ,KAAK,CACxC8L,KAAMA,OAGHk4P,IAGXz8P,EAAQi3E,yBAAyB,MAAOrrB,GACxC,IAAIz0D,EAAWy0D,EACftxD,EAAOC,QAAUpD,G,qBCpNjB,IAAI4yC,EAAO,EAAQ,QA8BfmjF,EAAcnjF,EAAKmjF,YAIvB,SAASr2C,EAAY/8D,EAAO05D,EAAOt4C,GAiBjC,IAhBA,IAAIt3B,EAAOs3B,EAAKt3B,KACZxK,EAAQwK,EAAKxK,MACb0K,EAASF,EAAKE,OACdwsB,EAAS,CAAC1sB,EAAKvG,EAAIjE,EAAQ,EAAGwK,EAAKtG,EAAIwG,EAAS,GAEhDizI,EAA0B,MAAhB77G,EAAK67G,QAAkB,GAAM77G,EAAK67G,QAWvClxI,EAAI,EAAGA,EAAIiU,EAAMjX,OAAQgD,IAAK,CACrC,IAAI2F,EAAIsO,EAAMjU,GAET2F,EAAE6D,IACL7D,EAAE6D,EAAI06B,EAAKvO,OAAOpiC,GAASqK,KAAKixH,SAAW,IAAOpkG,EAAO,GAAIxsB,GAAUL,KAAKixH,SAAW,IAAOpkG,EAAO,KAGvG9kB,EAAEkxP,GAAK3yN,EAAKzqC,MAAMkM,EAAE6D,GACpB7D,EAAEgoE,MAAQ,KAMZ,IAAImpL,EAAmC,MAAjBzhO,EAAK87G,SAAmB,GAAM97G,EAAK87G,SACrDA,EAAW2lH,EACf,MAAO,CACLh2D,OAAQ,WACN3vD,EAA6B,GAAlB2lH,GAEb91D,SAAU,SAAU/+L,GAClBgS,EAAMhS,GAAK0uI,OAAQ,GAErBswD,WAAY,SAAUh/L,GACpBgS,EAAMhS,GAAK0uI,OAAQ,GASrBh9E,KAAM,SAAUzjD,GAId,IAHA,IAAI6mP,EAAM,GACNC,EAAO/iP,EAAMjX,OAERgD,EAAI,EAAGA,EAAI2tE,EAAM3wE,OAAQgD,IAAK,CACrC,IAAI0e,EAAIivD,EAAM3tE,GAEd,IAAI0e,EAAEsyH,kBAAN,CAIA,IAAIF,EAAKpyH,EAAEoyH,GACPC,EAAKryH,EAAEqyH,GACX7sG,EAAKg4E,IAAI66I,EAAKhmH,EAAGvnI,EAAGsnI,EAAGtnI,GACvB,IAAIulD,EAAI7qB,EAAK75B,IAAI0sP,GAAOr4O,EAAEqwC,EACtBxlD,EAAIwnI,EAAGxnI,GAAKunI,EAAGvnI,EAAIwnI,EAAGxnI,GAEtBuB,MAAMvB,KACRA,EAAI,GAGN26B,EAAK6W,UAAUg8M,EAAKA,IACnBjmH,EAAGH,OAAStpB,EAAYypB,EAAGtnI,EAAGsnI,EAAGtnI,EAAGutP,EAAKxtP,EAAIwlD,EAAIoiF,IACjDJ,EAAGJ,OAAStpB,EAAY0pB,EAAGvnI,EAAGunI,EAAGvnI,EAAGutP,IAAO,EAAIxtP,GAAKwlD,EAAIoiF,IAI3D,IAASnxI,EAAI,EAAGA,EAAIg3P,EAAMh3P,IAAK,CAC7B,IAAI2F,EAAIsO,EAAMjU,GAET2F,EAAEgrI,QACLzsG,EAAKg4E,IAAI66I,EAAKtsO,EAAQ9kB,EAAE6D,GAIxB69G,EAAY1hH,EAAE6D,EAAG7D,EAAE6D,EAAGutP,EAAK7lH,EAAUC,IAMzC,IAASnxI,EAAI,EAAGA,EAAIg3P,EAAMh3P,IACxB,CAAI8wI,EAAK78H,EAAMjU,GAEf,IAFA,IAESuK,EAAIvK,EAAI,EAAGuK,EAAIysP,EAAMzsP,IAAK,CAC7BwmI,EAAK98H,EAAM1J,GACf25B,EAAKg4E,IAAI66I,EAAKhmH,EAAGvnI,EAAGsnI,EAAGtnI,GACnBulD,EAAI7qB,EAAK75B,IAAI0sP,GAEP,IAANhoM,IAEF7qB,EAAK5vC,IAAIyiQ,EAAKn5P,KAAKixH,SAAW,GAAKjxH,KAAKixH,SAAW,IACnD9/D,EAAI,GAGN,IAAIkoM,GAAWnmH,EAAGJ,IAAMK,EAAGL,KAAO3hF,EAAIA,GACrC+hF,EAAGH,OAAStpB,EAAYypB,EAAG+lH,GAAI/lH,EAAG+lH,GAAIE,EAAKE,IAC3ClmH,EAAGJ,OAAStpB,EAAY0pB,EAAG8lH,GAAI9lH,EAAG8lH,GAAIE,GAAME,IAIjD,IAAI/+O,EAAI,GAER,IAASlY,EAAI,EAAGA,EAAIg3P,EAAMh3P,IAAK,CACzB2F,EAAIsO,EAAMjU,GAET2F,EAAEgrI,QACLzsG,EAAKg4E,IAAIhkG,EAAGvS,EAAE6D,EAAG7D,EAAEkxP,IACnBxvI,EAAY1hH,EAAE6D,EAAG7D,EAAE6D,EAAG0O,EAAGi5H,GACzBjtG,EAAKpO,KAAKnwB,EAAEkxP,GAAIlxP,EAAE6D,IAItB2nI,GAAsB,KACtBjhI,GAAMA,EAAG+D,EAAO05D,EAAOwjE,EAAW,OAKxCz8I,EAAQs8E,YAAcA,G,mBC5HtB,SAAS1/E,EAAS05E,EAAOC,EAAYrhD,EAAQ8gD,EAAaa,EAASC,GACjER,EAAQA,GAAS,EACjB,IAAIy9H,EAAa7+K,EAAO,GAAKA,EAAO,GAUpC,GARe,MAAX2hD,IACFA,EAAUmlK,EAASnlK,EAAS,CAAC,EAAGk9H,KAGnB,MAAXj9H,IACFA,EAAU5tE,KAAK4E,IAAIgpE,EAAoB,MAAXD,EAAkBA,EAAU,IAGtC,QAAhBb,EAAuB,CACzB,IAAIwsL,EAAat5P,KAAKC,IAAIotE,EAAW,GAAKA,EAAW,IACrDisL,EAAaxmB,EAASwmB,EAAY,CAAC,EAAGzuD,IACtCl9H,EAAUC,EAAUklK,EAASwmB,EAAY,CAAC3rL,EAASC,IACnDd,EAAc,EAGhBO,EAAW,GAAKylK,EAASzlK,EAAW,GAAIrhD,GACxCqhD,EAAW,GAAKylK,EAASzlK,EAAW,GAAIrhD,GACxC,IAAIutO,EAAmBC,EAAYnsL,EAAYP,GAC/CO,EAAWP,IAAgBM,EAE3B,IAAIqsL,EAAgB9rL,GAAW,EAC3B+rL,EAAa1tO,EAAOvwB,QACxB89P,EAAiBpuO,KAAO,EAAIuuO,EAAW,IAAMD,EAAgBC,EAAW,IAAMD,EAC9EpsL,EAAWP,GAAegmK,EAASzlK,EAAWP,GAAc4sL,GAE5D,IAAIC,EAAeH,EAAYnsL,EAAYP,GAE5B,MAAXa,IAAoBgsL,EAAaxuO,OAASouO,EAAiBpuO,MAAQwuO,EAAa3kM,KAAO2Y,KAEzFN,EAAW,EAAIP,GAAeO,EAAWP,GAAeysL,EAAiBpuO,KAAOwiD,GAI9EgsL,EAAeH,EAAYnsL,EAAYP,GAM3C,OAJe,MAAXc,GAAmB+rL,EAAa3kM,KAAO4Y,IACzCP,EAAW,EAAIP,GAAeO,EAAWP,GAAe6sL,EAAaxuO,KAAOyiD,GAGvEP,EAGT,SAASmsL,EAAYnsL,EAAYP,GAC/B,IAAIpgD,EAAO2gD,EAAWP,GAAeO,EAAW,EAAIP,GAGpD,MAAO,CACL9X,KAAMh1D,KAAKC,IAAIysB,GACfvB,KAAMuB,EAAO,GAAK,EAAIA,EAAO,EAAI,EAAIogD,GAAe,EAAI,GAI5D,SAASgmK,EAAShxO,EAAOnO,GACvB,OAAOqM,KAAK6E,IAAiB,MAAblR,EAAO,GAAaA,EAAO,GAAKuT,IAAUlH,KAAK4E,IAAiB,MAAbjR,EAAO,GAAaA,EAAO,IAAMuT,IAAUpF,IAGhHjL,EAAOC,QAAUpD,G,qBCnGjB,IAAI6I,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAI8wC,EAAe,EAAQ,QAEvBC,EAAe,EAAQ,QAEvBssN,EAAa,EAAQ,QAEzB,EAAQ,QAqBRr9P,EAAQ2mB,eAAemqB,EAAa,OAAQ,SAAU,SACtD9wC,EAAQyrB,eAAeslB,EAAa,SAEpC/wC,EAAQ+2E,kBAAkB/2E,EAAQ8sC,SAAS4rE,UAAUG,UAAWwkJ,EAAW,U,sBCpC3E,IAAIr9P,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAI8wC,EAAe,EAAQ,QAEvBwsN,EAAa,EAAQ,QAoBzBt9P,EAAQ2mB,eAAemqB,EAAa,OAAQ,WAC5C9wC,EAAQyrB,eAAe6xO,I,qBC/BvB,IAAI7kK,EAAU,EAAQ,QAElBm3G,EAAuBn3G,EAAQm3G,qBAC/BQ,EAAoB33G,EAAQ23G,kBA4ChC,SAASmtD,EAAShoN,EAASme,GACzB,IAAI8pM,EAAa,GAkBjB,OAjBA9pM,EAAQ7hC,KAAK0jB,GAASr4C,KAAI,SAAU4K,GAClC01P,EAAW/kQ,KAAK,CACd86D,IAAK,IACLzrD,IAAKA,OAEN3H,QAAO,SAAUi2C,EAAQC,GAC1BmnN,EAAW/kQ,KAAK,CACd86D,IAAK,IACLzrD,IAAKuuC,EACLonN,KAAMrnN,OAEPnc,QAAO,SAAUnyB,GAClB01P,EAAW/kQ,KAAK,CACd86D,IAAK,IACLzrD,IAAKA,OAENwuC,UACIknN,EAGT,SAASrmQ,EAASo+C,EAASme,EAASgqM,EAAoBC,EAAoBC,EAAaC,EAAaC,EAAgBC,GAkBpH,IAjBA,IAAIlsO,EAAO0rO,EAAShoN,EAASme,GAMzBsqM,EAAa,GACbC,EAAa,GAEbC,EAAoB,GACpBC,EAAoB,GACpB1xM,EAAS,GACT2xM,EAAgB,GAChBC,EAAa,GACbC,EAAsB1uD,EAAqBguD,EAAalqM,EAASoqM,GACjES,EAAsB3uD,EAAqBiuD,EAAatoN,EAASwoN,GAE5Dl4P,EAAI,EAAGA,EAAIgsB,EAAKhvB,OAAQgD,IAAK,CACpC,IAAI24P,EAAW3sO,EAAKhsB,GAChB44P,GAAa,EAGjB,OAAQD,EAASjrM,KACf,IAAK,IACH,IAAImrM,EAAYnpN,EAAQ38B,cAAc4lP,EAAS12P,KAC3C62P,EAASjrM,EAAQ96C,cAAc4lP,EAASf,OAExC9sP,MAAM+tP,EAAU,KAAO/tP,MAAM+tP,EAAU,OACzCA,EAAYC,EAAOz/P,SAGrB8+P,EAAWvlQ,KAAKimQ,GAChBT,EAAWxlQ,KAAKkmQ,GAChBT,EAAkBzlQ,KAAKilQ,EAAmBc,EAAS12P,MACnDq2P,EAAkB1lQ,KAAKklQ,EAAmBa,EAASf,OACnDY,EAAW5lQ,KAAKi7D,EAAQh7D,YAAY8lQ,EAASf,OAC7C,MAEF,IAAK,IACH,IAAI31P,EAAM02P,EAAS12P,IACnBk2P,EAAWvlQ,KAAKmlQ,EAAYj6P,YAAY,CAAC+vD,EAAQ55D,IAAIwkQ,EAAoBpuD,iBAAiB,GAAIpoM,GAAM4rD,EAAQ55D,IAAIwkQ,EAAoBpuD,iBAAiB,GAAIpoM,MACzJm2P,EAAWxlQ,KAAKi7D,EAAQ96C,cAAc9Q,GAAK5I,SAC3Cg/P,EAAkBzlQ,KAAK23M,EAAkBkuD,EAAqBV,EAAalqM,EAAS5rD,IACpFq2P,EAAkB1lQ,KAAKklQ,EAAmB71P,IAC1Cu2P,EAAW5lQ,KAAKi7D,EAAQh7D,YAAYoP,IACpC,MAEF,IAAK,IACCA,EAAM02P,EAAS12P,IAAnB,IACI8R,EAAW27B,EAAQ78C,YAAYoP,GAG/B8R,IAAa9R,GACfk2P,EAAWvlQ,KAAK88C,EAAQ38B,cAAc9Q,IACtCm2P,EAAWxlQ,KAAKolQ,EAAYl6P,YAAY,CAAC4xC,EAAQz7C,IAAIykQ,EAAoBruD,iBAAiB,GAAIpoM,GAAMytC,EAAQz7C,IAAIykQ,EAAoBruD,iBAAiB,GAAIpoM,MACzJo2P,EAAkBzlQ,KAAKilQ,EAAmB51P,IAC1Cq2P,EAAkB1lQ,KAAK23M,EAAkBmuD,EAAqBV,EAAatoN,EAASztC,IACpFu2P,EAAW5lQ,KAAKmhB,IAEhB6kP,GAAa,EAMfA,IACFhyM,EAAOh0D,KAAK+lQ,GACZJ,EAAc3lQ,KAAK2lQ,EAAcv7P,SAMrCu7P,EAAc37P,MAAK,SAAUwM,EAAGC,GAC9B,OAAOmvP,EAAWpvP,GAAKovP,EAAWnvP,MAEpC,IAAI0vP,EAAmB,GACnBC,EAAmB,GACnBC,EAA0B,GAC1BC,EAA0B,GAC1BC,EAAe,GAEnB,IAASn5P,EAAI,EAAGA,EAAIu4P,EAAcv7P,OAAQgD,IAAK,CACzCiC,EAAMs2P,EAAcv4P,GACxB+4P,EAAiB/4P,GAAKm4P,EAAWl2P,GACjC+2P,EAAiBh5P,GAAKo4P,EAAWn2P,GACjCg3P,EAAwBj5P,GAAKq4P,EAAkBp2P,GAC/Ci3P,EAAwBl5P,GAAKs4P,EAAkBr2P,GAC/Ck3P,EAAan5P,GAAK4mD,EAAO3kD,GAG3B,MAAO,CACLo7B,QAAS07N,EACThxO,KAAMixO,EACNI,iBAAkBH,EAClBI,cAAeH,EACftyM,OAAQuyM,GAIZ1kQ,EAAOC,QAAUpD,G,qBC1KjB,IAAIksI,EAAkB,EAAQ,QAE1BC,EAAa,EAAQ,QAErBivF,EAAmB,EAAQ,QAE3Bl7K,EAAW,EAAQ,QAoBnBvY,EAAK,CAAC,IAAK,KACXD,EAAK,CAAC,QAAS,UACfsgO,EAAoB97H,EAAgBjsI,OAAO,CAI7CqsI,aAAc,SAAUC,EAAUn+H,EAAO4B,EAAWw8H,EAAkBxlI,GACpE,IAAImJ,EAAOH,EAAUG,KACjBrP,EAAWqP,EAAKpP,iBAChB2rI,EAAcE,EAAgB9rI,EAAU,EAAImnQ,EAAiB93P,IAC7D08H,EAAa/rI,EAAS0L,YAAY4B,GAAO,GACzCq+H,EAAkBD,EAAiB7pI,IAAI,QAE3C,GAAI8pI,GAAuC,SAApBA,EAA4B,CACjD,IAAIvvF,EAAUivF,EAAWW,aAAaN,GAClCO,EAAgBC,EAAoBP,GAAiBt8H,EAAM08H,EAAYH,GAC3EK,EAAc9mI,MAAQi3C,EACtBqvF,EAASU,WAAaF,EAAc7sI,KACpCqsI,EAAS37B,QAAUm8B,EAGrB,IAAIzuE,EAAa88J,EAAiB13N,OAAOsM,GACzCm8H,EAAWe,kCAAkC9+H,EAAOm+H,EAAUjuE,EAAYtuD,EAAWw8H,EAAkBxlI,IAMzGmmI,mBAAoB,SAAU/+H,EAAO4B,EAAWw8H,GAC9C,IAAIluE,EAAa88J,EAAiB13N,OAAOsM,EAAW,CAClD2B,aAAa,IAGf,OADA2sD,EAAW8uE,YAAcZ,EAAiB7pI,IAAI,iBACvC,CACL8I,SAAU0gI,EAAWkB,uBAAuBr9H,EAAUG,KAAM/B,EAAOkwD,GACnEltD,SAAUktD,EAAWltD,UAAYktD,EAAW/sD,eAAiB,EAAIjF,KAAK+E,GAAK,KAO/Ei8H,sBAAuB,SAAUv+H,EAAW2qE,EAAO1pE,EAAWw8H,GAC5D,IAAIr8H,EAAOH,EAAUG,KACjBrP,EAAWqP,EAAKpP,iBAChBqxC,EAAW61N,EAAiB93P,GAC5BmjD,EAAas5E,EAAgB9rI,EAAUsxC,GACvCm7F,EAAex+H,EAAUtD,SAC7B8hI,EAAan7F,IAAasnC,EAAMtnC,GAChCm7F,EAAan7F,GAAY9lC,KAAK6E,IAAImiD,EAAW,GAAIi6E,EAAan7F,IAC9Dm7F,EAAan7F,GAAY9lC,KAAK4E,IAAIoiD,EAAW,GAAIi6E,EAAan7F,IAC9D,IAAIs6F,EAAcE,EAAgB9rI,EAAU,EAAIsxC,GAC5Co7F,GAAoBd,EAAY,GAAKA,EAAY,IAAM,EACvDe,EAAc,CAACD,EAAkBA,GAErC,OADAC,EAAYr7F,GAAYm7F,EAAan7F,GAC9B,CACL3mC,SAAU8hI,EACVn8H,SAAUrC,EAAUqC,SACpBq8H,YAAaA,EACbvS,cAAe,CACbxrE,cAAe,cAKnBs9E,EAAsB,CACxBrlD,KAAM,SAAUx3E,EAAM08H,EAAYH,GAChC,IAAIiB,EAAcxB,EAAWyB,cAAc,CAACf,EAAYH,EAAY,IAAK,CAACG,EAAYH,EAAY,IAAKu7H,EAAiB93P,IACxH,MAAO,CACLjQ,KAAM,OACN60B,kBAAkB,EAClB9iB,MAAO07H,IAGXG,OAAQ,SAAU39H,EAAM08H,EAAYH,GAClC,IAAIj0G,EAAYtoB,EAAKuoB,eACjB4oC,EAAOorE,EAAY,GAAKA,EAAY,GACxC,MAAO,CACLxsI,KAAM,OACN+R,MAAOk6H,EAAW4B,cAAc,CAAClB,EAAap0G,EAAY,EAAGi0G,EAAY,IAAK,CAACj0G,EAAW6oC,GAAO2mM,EAAiB93P,OAKxH,SAAS83P,EAAiB93P,GACxB,OAAOA,EAAKykB,eAAiB,EAAI,EAGnC,SAASg4G,EAAgB9rI,EAAUsxC,GACjC,IAAI3lC,EAAO3L,EAAS2P,UACpB,MAAO,CAAChE,EAAKk7B,EAAGyK,IAAY3lC,EAAKk7B,EAAGyK,IAAa3lC,EAAKi7B,EAAG0K,KAG3D8N,EAAS8tF,yBAAyB,oBAAqBg6H,GACvD,IAAIhoQ,EAAWgoQ,EACf7kQ,EAAOC,QAAUpD,G,qBCzHjB,IAAIq3L,EAAc,EAAQ,QAEtB10I,EAAU,EAAQ,QAElBi0F,EAAmBj0F,EAAQi0F,iBAC3BrgE,EAAkB5zB,EAAQ4zB,gBAoB1B2xL,EAAwB7wE,EAAYp3L,OAAO,CAC7CC,KAAM,gBAKNq5P,mBAAoB,SAAU/tN,GAC5B/qC,KAAKH,OAAOkrC,gBAAkBA,GAEhChqC,cAAe,CACbgqC,gBAAiB,EACjB28N,kBAAmB,EACnBt9N,cAAe,KACfC,mBAAoB,MAEpBgB,cAAe,oBAEfs8N,UAAW,CACT17J,WAAY,CAAC,qBAAsB,wBACnCC,SAAU,CAAC,oBAAqB,qBAElC07J,cAAe,UACfC,sBAAuB,OACvB1/N,aAAc,GAEd2/N,cAAe,CACblwP,MAAO,QAETonD,wBAAyB,KAM3Bh2D,KAAM,SAAUnJ,EAAQq/C,EAAap/C,EAASy2I,GAC5C,IAAIO,EAAsBhhE,EAAgBj2E,GAC1C4nQ,EAAsB39P,UAAU9J,KAAM,OAAQH,EAAQq/C,EAAap/C,EAASy2I,GAC5Ew+C,EAA8B/0L,KAAMH,EAAQi3I,IAM9Ch0E,YAAa,SAAUjjE,EAAQ02I,GAC7BkxH,EAAsB39P,UAAU9J,KAAM,cAAeH,EAAQ02I,GAC7Dw+C,EAA8B/0L,KAAMA,KAAKH,OAAQA,MAIrD,SAASk1L,EAA8BjtJ,EAAa11B,EAAQ4iL,GAC1D,IAAIluL,EAASghC,EAAYY,YACrBmzH,EAAa,CAAC,EAAG,GACrBA,EAAW/0J,EAAOK,OAAS,EAC3BgvI,EAAiB/jI,EAAQ4iL,EAAK,CAC5Bv1L,KAAM,MACNo8J,WAAYA,IAIhB,IAAIt8J,EAAWkoQ,EACf/kQ,EAAOC,QAAUpD,G,qBCzGjB,EAAQ,QAER,IAAIkjM,EAAW,EAAQ,SAEnB76B,EAAkB66B,EAAS76B,gBAE3BN,EAAU,EAAQ,QAEtBM,EAAgB,MAAON,I,qBCYvB,IAAI9jJ,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjBskP,EAAQ,EAAQ,QAEhBt1F,EAAas1F,EAAMt1F,WAEnB9vC,EAAa,EAAQ,QAErB/oF,EAAY,EAAQ,QAEpBouN,EAAoB,EAAQ,QAE5BllQ,EAAU,EAAQ,QAElBs2C,EAAY,EAAQ,QAEpB+nC,EAAQ,EAAQ,QAEhB5iC,EAAW4iC,EAAM5iC,SACjB7d,EAAUygD,EAAMzgD,QAEhBmpB,EAAY,EAAQ,QAEpBg3C,EAAU,EAAQ,QAElBm3G,EAAuBn3G,EAAQm3G,qBAC/BQ,EAAoB33G,EAAQ23G,kBAE5BzuJ,EAA8B,EAAQ,QAEtC6kK,EAAqB7kK,EAA4B6kK,mBACjDC,EAAsB9kK,EAA4B8kK,oBAqBtD,SAASo5C,EAAalmL,EAASmmL,GAC7B,GAAInmL,EAAQ92E,SAAWi9P,EAAQj9P,OAA/B,CAIA,IAAK,IAAIgD,EAAI,EAAGA,EAAI8zE,EAAQ92E,OAAQgD,IAAK,CACvC,IAAItC,EAAKo2E,EAAQ9zE,GACbrC,EAAKs8P,EAAQj6P,GAEjB,GAAItC,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,GAClC,OAIJ,OAAO,GAGT,SAASu8P,EAAgBpmL,EAASmmL,GAChC,IAAIE,EAAO,GACPC,EAAO,GACP/vM,EAAO,GACPC,EAAO,GAIX,OAHAk6G,EAAW1wF,EAASqmL,EAAMC,GAC1B51F,EAAWy1F,EAAS5vM,EAAMC,GAEnB1sD,KAAK4E,IAAI5E,KAAKC,IAAIs8P,EAAK,GAAK9vM,EAAK,IAAKzsD,KAAKC,IAAIs8P,EAAK,GAAK9vM,EAAK,IAAKzsD,KAAKC,IAAIu8P,EAAK,GAAK9vM,EAAK,IAAK1sD,KAAKC,IAAIu8P,EAAK,GAAK9vM,EAAK,KAGjI,SAAS+vM,EAAU1mQ,GACjB,MAAyB,kBAAXA,EAAsBA,EAASA,EAAS,GAAM,EAU9D,SAAS2mQ,EAAmBloQ,EAAUE,EAAMk4M,GAC1C,IAAKA,EAAc1uM,SACjB,MAAO,GAKT,IAFA,IAAIwN,EAAS,GAEJrH,EAAM,EAAGoI,EAAM/X,EAAK4hB,QAASjS,EAAMoI,EAAKpI,IAC/CqH,EAAO1W,KAAK23M,EAAkBC,EAAep4M,EAAUE,EAAM2P,IAG/D,OAAOqH,EAGT,SAASixP,EAAmBjxP,EAAQlX,EAAUooQ,GAK5C,IAJA,IAAI3wO,EAAWz3B,EAAS03B,cACpBygE,EAA6B,MAAjB1gE,EAAS/nB,KAAgC,WAAjB+nB,EAAS/nB,IAAmB,EAAI,EACpE24P,EAAa,GAERz6P,EAAI,EAAGA,EAAIsJ,EAAOtM,OAAS,EAAGgD,IAAK,CAC1C,IAAI84P,EAASxvP,EAAOtJ,EAAI,GACpBkwC,EAAK5mC,EAAOtJ,GAChBy6P,EAAW7nQ,KAAKs9C,GAChB,IAAIwqN,EAAS,GAEb,OAAQF,GACN,IAAK,MACHE,EAAOnwK,GAAauuK,EAAOvuK,GAC3BmwK,EAAO,EAAInwK,GAAar6C,EAAG,EAAIq6C,GAE/BkwK,EAAW7nQ,KAAK8nQ,GAChB,MAEF,IAAK,SAEH,IAAI5/K,GAAU5qC,EAAGq6C,GAAauuK,EAAOvuK,IAAc,EAC/CowK,EAAU,GACdD,EAAOnwK,GAAaowK,EAAQpwK,GAAazP,EACzC4/K,EAAO,EAAInwK,GAAar6C,EAAG,EAAIq6C,GAC/BowK,EAAQ,EAAIpwK,GAAauuK,EAAO,EAAIvuK,GACpCkwK,EAAW7nQ,KAAK8nQ,GAChBD,EAAW7nQ,KAAK+nQ,GAChB,MAEF,QACED,EAAOnwK,GAAar6C,EAAGq6C,GACvBmwK,EAAO,EAAInwK,GAAauuK,EAAO,EAAIvuK,GAEnCkwK,EAAW7nQ,KAAK8nQ,IAMtB,OADApxP,EAAOtJ,IAAMy6P,EAAW7nQ,KAAK0W,EAAOtJ,IAC7By6P,EAGT,SAASG,EAAkBtoQ,EAAMF,GAC/B,IAAIi0I,EAAiB/zI,EAAKkhB,UAAU,cAEpC,GAAK6yH,GAAmBA,EAAerpI,QAAW1K,EAAK4hB,SAKjC,gBAAlB9hB,EAASZ,KAAb,CAOA,IAHA,IAAI0wF,EACA04H,EAEK56M,EAAIqmI,EAAerpI,OAAS,EAAGgD,GAAK,EAAGA,IAAK,CACnD,IAAI0jC,EAAW2iG,EAAermI,GAAGyS,UAC7Ble,EAAUjC,EAAK4B,WAAWwvC,GAC1By5C,EAAU7qF,EAAKirF,iBAAiBhpF,GAGpC,GAFA2tF,EAAW/E,GAAWA,EAAQ+E,SAEb,MAAbA,GAAiC,MAAbA,EAAkB,CACxC04H,EAAav0E,EAAermI,GAC5B,OAIJ,GAAK46M,EAAL,CAUA,IAAIn5M,EAAOrP,EAASu3F,QAAQzH,GAExB1C,EAAa7qF,EAAOqE,IAAI4hN,EAAWxhM,OAAO,SAAUvJ,GACtD,MAAO,CACLzR,MAAOqD,EAAKa,cAAcb,EAAKc,YAAYsN,EAAKnQ,QAChDiK,MAAOkG,EAAKlG,UAGZkxP,EAAUr7K,EAAWxiF,OACrBqc,EAAcuhM,EAAWvhM,YAAYhgB,QAErCwhQ,GAAWr7K,EAAW,GAAGphF,MAAQohF,EAAWq7K,EAAU,GAAGz8P,QAC3DohF,EAAWpmF,UACXigB,EAAYjgB,WAGd,IAAI0hQ,EAAa,GAEbC,EAAWv7K,EAAW,GAAGphF,MAAQ08P,EACjCE,EAAWx7K,EAAWq7K,EAAU,GAAGz8P,MAAQ08P,EAC3CG,EAAYD,EAAWD,EAE3B,GAAIE,EAAY,KACd,MAAO,cAGTtmQ,EAAOzD,KAAKsuF,GAAY,SAAU3vE,GAChCA,EAAKhJ,QAAUgJ,EAAKzR,MAAQ28P,GAAYE,KAE1Cz7K,EAAW5sF,KAAK,CACdiU,OAAQg0P,EAAUr7K,EAAWq7K,EAAU,GAAGh0P,OAAS,GACnD8C,MAAO0P,EAAY,IAAM,gBAE3BmmE,EAAWjmE,QAAQ,CAEjB1S,OAAQg0P,EAAUr7K,EAAW,GAAG34E,OAAS,GACzC8C,MAAO0P,EAAY,IAAM,gBAM3B,IAAIktE,EAAW,IAAI1xF,EAAQskE,eAAe,EAAG,EAAG,EAAG,EAAGqmB,GAAY,GAGlE,OAFA+G,EAASrE,GAAY64K,EACrBx0K,EAASrE,EAAW,KAAO84K,EACpBz0K,IAGT,SAAS20K,EAAgBrnQ,EAAavB,EAAMF,GAC1C,IAAI0hE,EAAgBjgE,EAAYI,IAAI,iBAChCknQ,EAA2B,SAAlBrnM,EAEb,IAAIA,GAAkBqnM,EAAtB,CAIA,IAAIvxF,EAAex3K,EAASioO,eAAe,WAAW,GAEtD,GAAKzwD,KAODuxF,IACDC,EAA4BxxF,EAAct3K,IAD7C,CAMA,IAAI+oQ,EAAkB/oQ,EAAKyJ,aAAa6tK,EAAa9nK,KACjDw5P,EAAW,GAIf,OAHA3mQ,EAAOzD,KAAK04K,EAAa7oE,iBAAiB,SAAUC,GAClDs6J,EAASt6J,EAAUC,WAAa,KAE3B,SAAUtuG,GACf,OAAQ2oQ,EAASxsP,eAAexc,EAAK2B,IAAIonQ,EAAiB1oQ,OAI9D,SAASyoQ,EAA4BxxF,EAAct3K,GAKjD,IAAIsyD,EAAaglH,EAAatyJ,YAC1BikP,EAAY39P,KAAKC,IAAI+mD,EAAW,GAAKA,EAAW,IAAMglH,EAAappK,MAAM0T,QAC7EpJ,MAAMywP,KAAeA,EAAY,GAMjC,IAHA,IAAIv+F,EAAU1qK,EAAK4hB,QACfy/C,EAAO/1D,KAAK4E,IAAI,EAAG5E,KAAK8d,MAAMshJ,EAAU,IAEnCrqK,EAAY,EAAGA,EAAYqqK,EAASrqK,GAAaghE,EACxD,GAEE,IAFEhoB,EAAUE,cAAcv5C,EAAMK,GAChCi3K,EAAa1jJ,eAAiB,EAAI,GAC5Bq1O,EACN,OAAO,EAIX,OAAO,EAGT,SAASC,EAAmBppQ,EAAUmtD,EAAc1rD,GAClD,GAAsB,gBAAlBzB,EAASZ,KAAwB,CACnC,IAAI00B,EAAe9zB,EAAS03B,cAAc5D,eACtCo3B,EAAWqjK,EAAmBvuN,EAAUmtD,EAAc1rD,GAE1D,IAAKA,EAAYI,IAAI,QAAQ,GAAO,CAClC,IAAIwjG,EAAYn6C,EAAS/5C,MACrBquL,EAAah0L,KAAK4E,IAAIi1F,EAAUlkG,MAAOkkG,EAAUx5F,QAEjDioB,GACFuxE,EAAUhgG,GAAKm6L,EACfn6F,EAAUx5F,QAAuB,EAAb2zL,IAEpBn6F,EAAUjgG,GAAKo6L,EACfn6F,EAAUlkG,OAAsB,EAAbq+L,GAIvB,OAAOt0I,EAEP,OAAOsjK,EAAoBxuN,EAAUmtD,EAAc1rD,GAIvD,IAAIvC,EAAWsqD,EAAUrqD,OAAO,CAC9BC,KAAM,OACNuJ,KAAM,WACJ,IAAIw8K,EAAY,IAAI1iL,EAAQ6B,MACxByvL,EAAa,IAAIzxD,EACrB3iI,KAAKsD,MAAMgC,IAAI8uL,EAAW9wL,OAC1BtD,KAAK8iI,YAAcsxD,EACnBp0L,KAAK0pQ,WAAalkF,GAEpBl0K,OAAQ,SAAUxP,EAAahC,EAASyG,GACtC,IAAIlG,EAAWyB,EAAYxB,iBACvBgD,EAAQtD,KAAKsD,MACb/C,EAAOuB,EAAYtB,UACnBqgD,EAAiB/+C,EAAYmf,SAAS,aACtC69B,EAAiBh9C,EAAYmf,SAAS,aACtC1J,EAAShX,EAAKggF,SAAShgF,EAAKygB,eAC5B2oP,EAAoC,UAAlBtpQ,EAASZ,KAC3BmqQ,EAAe5pQ,KAAK6pQ,UACpBz1E,EAAap0L,KAAK8iI,YAClBxkF,EAAWt+C,KAAK8pQ,UAChB/wN,EAAU/4C,KAAK+pQ,SACfvkF,EAAYxlL,KAAK0pQ,WACjBl8M,EAAe1rD,EAAYI,IAAI,aAC/B8nQ,GAAelrN,EAAeG,UAC9Bg5J,EAAcn5J,EAAe58C,IAAI,UACjCu2M,EAAgBT,EAAqB33M,EAAUE,EAAM03M,GACrD91H,EAAkBomL,EAAmBloQ,EAAUE,EAAMk4M,GACrD32I,EAAahgE,EAAYI,IAAI,cAC7B+nQ,EAAenoM,IAAe6nM,GAAmBR,EAAgBrnQ,EAAavB,EAAMF,GAEpFs9C,EAAU39C,KAAK49C,MACnBD,GAAWA,EAAQgB,mBAAkB,SAAUlzB,EAAIvb,GAC7Cub,EAAGy+O,SACL5mQ,EAAM++B,OAAO5W,GACbkyB,EAAQ/b,iBAAiB1xB,EAAK,UAI7B4xD,GACHsyH,EAAW/xJ,SAGb/+B,EAAMgC,IAAIkgL,GAEV,IACI2kF,EADAvoM,GAAQ+nM,GAAmB7nQ,EAAYI,IAAI,QAG3C7B,GAAYA,EAAS4qD,SAAWnpD,EAAYI,IAAI,QAAQ,KAC1DioQ,EAAqB9pQ,EAAS4qD,UAGE,MAA5Bk/M,EAAmB3oQ,OACrB2oQ,EAAmB1kQ,GAAK,GACxB0kQ,EAAmBzkQ,GAAK,GACxBykQ,EAAmB3oQ,OAAS,GAC5B2oQ,EAAmBj+P,QAAU,IACpBi+P,EAAmBtoN,KAC5BsoN,EAAmBtoN,IAAM,GACzBsoN,EAAmBvsH,IAAM,KAI7B59I,KAAKoqQ,oBAAsBD,EAErB7rN,GAAYsrN,EAAanqQ,OAASY,EAASZ,MAAQmiE,IAAS5hE,KAAKqqQ,OAoBjEL,IAAgBjxN,EAElBA,EAAU/4C,KAAKsqQ,YAAY/yP,EAAQ4qE,EAAiB9hF,EAAUmtD,GACrDzU,IAAYixN,IAErBxkF,EAAUnjJ,OAAO0W,GACjBA,EAAU/4C,KAAK+pQ,SAAW,MAI5BvkF,EAAUj7I,YAAYk/N,EAAmBppQ,GAAU,EAAOyB,IAG1DggE,GAAcsyH,EAAWngJ,WAAW1zC,EAAM,CACxCgqQ,SAAUN,EACV3/N,UAAW6/N,IAIb5pQ,EAAKo+C,mBAAkB,SAAUlzB,GAC/BA,EAAGioB,eAAc,MAIdu0N,EAAajoQ,KAAKwqQ,iBAAkBroL,IAAqB8lL,EAAajoQ,KAAK+tK,QAASx2J,KACnFi2C,EACFxtD,KAAKyqQ,iBAAiBlqQ,EAAM4hF,EAAiB9hF,EAAUkG,EAAKq7D,EAAMq2I,IAG9Dr2I,IAEFrqD,EAASixP,EAAmBjxP,EAAQlX,EAAUuhE,GAC9CugB,EAAkBqmL,EAAmBrmL,EAAiB9hF,EAAUuhE,IAGlEtjB,EAAS6P,SAAS,CAChB52C,OAAQA,IAEVwhC,GAAWA,EAAQoV,SAAS,CAC1B52C,OAAQA,EACR4qE,gBAAiBA,QA3DvBrgB,GAAcsyH,EAAWngJ,WAAW1zC,EAAM,CACxCgqQ,SAAUN,EACV3/N,UAAW6/N,IAGTvoM,IAEFrqD,EAASixP,EAAmBjxP,EAAQlX,EAAUuhE,GAC9CugB,EAAkBqmL,EAAmBrmL,EAAiB9hF,EAAUuhE,IAGlEtjB,EAAWt+C,KAAK0qQ,aAAanzP,EAAQlX,EAAUmtD,GAE3Cw8M,IACFjxN,EAAU/4C,KAAKsqQ,YAAY/yP,EAAQ4qE,EAAiB9hF,EAAUmtD,IAGhEg4H,EAAUj7I,YAAYk/N,EAAmBppQ,GAAU,EAAMyB,KAgD3D,IAAIu+B,EAAcwoO,EAAkBtoQ,EAAMF,IAAaE,EAAKkhB,UAAU,SACtE68B,EAASvC,SAASn5C,EAAO6O,SACzBovC,EAAejC,eAAgB,CAC7BltC,KAAM,OACNmtC,OAAQxe,EACRguB,SAAU,WAEZ,IAAIzsD,EAASE,EAAYI,IAAI,UAQ7B,GAPAN,EAAS0mQ,EAAUxmQ,EAAYI,IAAI,WACnCo8C,EAAS6P,SAAS,CAChBvsD,OAAQA,EACRigE,eAAgB//D,EAAYI,IAAI,kBAChC8/D,aAAclgE,EAAYI,IAAI,kBAG5B62C,EAAS,CACX,IAAI4xN,EAAkBpqQ,EAAK42J,mBAAmB,mBAC1C/0E,EAAkB,EACtBrpC,EAAQgD,SAASn5C,EAAO6O,SAASqtC,EAAeM,eAAgB,CAC9D1tC,KAAM2uB,EACN5+B,QAAS,GACT4sD,SAAU,WAGRs8M,IACFvoL,EAAkBkmL,EAAUqC,EAAgBzoQ,IAAI,YAGlD62C,EAAQoV,SAAS,CACfvsD,OAAQA,EACRwgF,gBAAiBA,EACjBvgB,eAAgB//D,EAAYI,IAAI,kBAChC8/D,aAAclgE,EAAYI,IAAI,kBAIlClC,KAAK49C,MAAQr9C,EAEbP,KAAK6pQ,UAAYxpQ,EACjBL,KAAKwqQ,iBAAmBroL,EACxBniF,KAAK+tK,QAAUx2J,EACfvX,KAAKqqQ,MAAQzoM,EACb5hE,KAAK4qQ,aAAe3yD,GAEtB1pL,QAAS,aACTksB,UAAW,SAAU34C,EAAahC,EAASyG,EAAK23B,GAC9C,IAAI39B,EAAOuB,EAAYtB,UACnBI,EAAYw4C,EAAUE,eAAe/4C,EAAM29B,GAE/C,KAAMt9B,aAAqBmX,QAAuB,MAAbnX,GAAqBA,GAAa,EAAG,CACxE,IAAIiyC,EAAStyC,EAAKg5C,iBAAiB34C,GAEnC,IAAKiyC,EAAQ,CAEX,IAAIsL,EAAK59C,EAAKygB,cAAcpgB,GAE5B,IAAKu9C,EAEH,OAIF,GAAIn+C,KAAKoqQ,sBAAwBpqQ,KAAKoqQ,oBAAoBl8P,QAAQiwC,EAAG,GAAIA,EAAG,IAC1E,OAGFtL,EAAS,IAAI+G,EAAUr5C,EAAMK,GAC7BiyC,EAAO7nC,SAAWmzC,EAClBtL,EAAO8H,KAAK74C,EAAYI,IAAI,UAAWJ,EAAYI,IAAI,MACvD2wC,EAAOS,OAASv6B,MAAMolC,EAAG,KAAOplC,MAAMolC,EAAG,IACzCtL,EAAOq3N,QAAS,EAChB3pQ,EAAKqhC,iBAAiBhhC,EAAWiyC,GAEjCA,EAAOyH,qBAAoB,GAC3Bt6C,KAAKsD,MAAMgC,IAAIutC,GAGjBA,EAAO4H,iBAGPoP,EAAU/7C,UAAU2sC,UAAU3tC,KAAK9M,KAAM8B,EAAahC,EAASyG,EAAK23B,IAGxEwc,SAAU,SAAU54C,EAAahC,EAASyG,EAAK23B,GAC7C,IAAI39B,EAAOuB,EAAYtB,UACnBI,EAAYw4C,EAAUE,eAAe/4C,EAAM29B,GAE/C,GAAiB,MAAbt9B,GAAqBA,GAAa,EAAG,CACvC,IAAIiyC,EAAStyC,EAAKg5C,iBAAiB34C,GAE/BiyC,IACEA,EAAOq3N,QACT3pQ,EAAKqhC,iBAAiBhhC,EAAW,MACjCZ,KAAKsD,MAAM++B,OAAOwQ,IAElBA,EAAO6H,iBAOXmP,EAAU/7C,UAAU4sC,SAAS5tC,KAAK9M,KAAM8B,EAAahC,EAASyG,EAAK23B,IASvEwsO,aAAc,SAAUnzP,GACtB,IAAI+mC,EAAWt+C,KAAK8pQ,UAiBpB,OAfIxrN,GACFt+C,KAAK0pQ,WAAWrnO,OAAOic,GAGzBA,EAAW,IAAIC,EAAS,CACtB/sC,MAAO,CACL+F,OAAQA,GAEV3F,QAAQ,EACRR,GAAI,KAGNpR,KAAK0pQ,WAAWpkQ,IAAIg5C,GAEpBt+C,KAAK8pQ,UAAYxrN,EACVA,GASTgsN,YAAa,SAAU/yP,EAAQ4qE,GAC7B,IAAIppC,EAAU/4C,KAAK+pQ,SAiBnB,OAfIhxN,GACF/4C,KAAK0pQ,WAAWrnO,OAAO0W,GAGzBA,EAAU,IAAIrY,EAAQ,CACpBlvB,MAAO,CACL+F,OAAQA,EACR4qE,gBAAiBA,GAEnBvwE,QAAQ,IAGV5R,KAAK0pQ,WAAWpkQ,IAAIyzC,GAEpB/4C,KAAK+pQ,SAAWhxN,EACTA,GAOT0xN,iBAAkB,SAAUlqQ,EAAM4hF,EAAiB9hF,EAAUkG,EAAKq7D,EAAMq2I,GACtE,IAAI35J,EAAWt+C,KAAK8pQ,UAChB/wN,EAAU/4C,KAAK+pQ,SACfjoQ,EAAcvB,EAAKye,UACnBib,EAAO+tO,EAAkBhoQ,KAAK49C,MAAOr9C,EAAMP,KAAKwqQ,iBAAkBroL,EAAiBniF,KAAK6pQ,UAAWxpQ,EAAUL,KAAK4qQ,aAAc3yD,GAChI3sK,EAAUrR,EAAKqR,QACf+7N,EAAmBptO,EAAKotO,iBACxBrxO,EAAOiE,EAAKjE,KACZsxO,EAAgBrtO,EAAKqtO,cAazB,GAXI1lM,IAEFt2B,EAAUk9N,EAAmBvuO,EAAKqR,QAASjrC,EAAUuhE,GACrDylM,EAAmBmB,EAAmBvuO,EAAKotO,iBAAkBhnQ,EAAUuhE,GACvE5rC,EAAOwyO,EAAmBvuO,EAAKjE,KAAM31B,EAAUuhE,GAC/C0lM,EAAgBkB,EAAmBvuO,EAAKqtO,cAAejnQ,EAAUuhE,IAM/DumM,EAAgB78N,EAAStV,GAAQ,KAAQ+iB,GAAWovN,EAAgBd,EAAkBC,GAAiB,IAYzG,OAXAhpN,EAAS6P,SAAS,CAChB52C,OAAQye,SAGN+iB,GACFA,EAAQoV,SAAS,CACf52C,OAAQye,EACRmsD,gBAAiBmlL,KAUvBhpN,EAAS9sC,MAAMq5P,SAAW5wO,EAAKqR,QAC/BgT,EAAS9sC,MAAM+F,OAAS+zB,EACxBxoC,EAAQk8B,YAAYsf,EAAU,CAC5B9sC,MAAO,CACL+F,OAAQye,IAETl0B,GAECi3C,IACFA,EAAQoV,SAAS,CACf52C,OAAQ+zB,EACR62C,gBAAiBklL,IAEnBvkQ,EAAQk8B,YAAY+Z,EAAS,CAC3BvnC,MAAO,CACL+F,OAAQye,EACRmsD,gBAAiBmlL,IAElBxlQ,IAML,IAHA,IAAIgpQ,EAAkB,GAClBC,EAAa9wO,EAAK46B,OAEb5mD,EAAI,EAAGA,EAAI88P,EAAW9/P,OAAQgD,IAAK,CAC1C,IAAI0tD,EAAMovM,EAAW98P,GAAG0tD,IAExB,GAAY,MAARA,EAAa,CACf,IAAIlwC,EAAKlrB,EAAKg5C,iBAAiBwxN,EAAW98P,GAAG43P,MAEzCp6O,GACFq/O,EAAgBjqQ,KAAK,CACnB4qB,GAAIA,EACJu/O,MAAO/8P,KAOXqwC,EAAS29H,WAAa39H,EAAS29H,UAAUhxK,QAC3CqzC,EAAS29H,UAAU,GAAGj/J,QAAO,WAC3B,IAAK,IAAI/O,EAAI,EAAGA,EAAI68P,EAAgB7/P,OAAQgD,IAAK,CAC/C,IAAIwd,EAAKq/O,EAAgB78P,GAAGwd,GAC5BA,EAAGzL,KAAK,WAAYs+B,EAAS9sC,MAAMq5P,SAASC,EAAgB78P,GAAG+8P,aAKvE3oO,OAAQ,SAAUviC,GAChB,IAAIwD,EAAQtD,KAAKsD,MACbq6C,EAAU39C,KAAK49C,MAEnB59C,KAAK0pQ,WAAWnmQ,YAEhBvD,KAAK8iI,YAAYzgG,QAAO,GAGxBsb,GAAWA,EAAQgB,mBAAkB,SAAUlzB,EAAIvb,GAC7Cub,EAAGy+O,SACL5mQ,EAAM++B,OAAO5W,GACbkyB,EAAQ/b,iBAAiB1xB,EAAK,UAGlClQ,KAAK8pQ,UAAY9pQ,KAAK+pQ,SAAW/pQ,KAAK6pQ,UAAY7pQ,KAAK+tK,QAAU/tK,KAAKwqQ,iBAAmBxqQ,KAAK49C,MAAQ,QAI1Gl7C,EAAOC,QAAUpD,G,mBC5rBjB,IAAI0rQ,EAAgB,OAEhBC,EAAa,WACf,MAAO,CACLhmN,SAAU,CACR3jD,UAAW,CACTqW,MAAOqzP,IAGX9lN,SAAU,CACR5jD,UAAW,CACTqW,MAAOqzP,IAGX7lN,UAAW,CACTioB,UAAW,CACTz1D,MAAOqzP,IAGXhlN,UAAW,CACT1kD,UAAW,CACT9B,KAAM,SACNmY,MAAO,SAGXsuC,UAAW,CACTorD,UAAW,CACT15F,MAAOqzP,MAMX/Z,EAAe,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC9HjvI,EAAQ,CACVrqG,MAAOs5O,EACPnnO,gBAAiB,OACjB4/B,QAAS,CACP46B,YAAa,CACXhjF,UAAW,CACTqW,MAAOqzP,GAETnjD,WAAY,CACVlwM,MAAOqzP,GAET9pQ,MAAO,CACLyW,MAAO,UAIb8uE,OAAQ,CACNrZ,UAAW,CACTz1D,MAAOqzP,IAGX59L,UAAW,CACTz1D,MAAOqzP,GAET33O,MAAO,CACL+5C,UAAW,CACTz1D,MAAOqzP,IAGXhmL,QAAS,CACPs9G,UAAW,CACT1/G,OAAQ,CACN13E,YAAa8/P,KAInBlkL,SAAU,CACR1Z,UAAW,CACTz1D,MAAOqzP,IAGXr8K,UAAW,CACTvhB,UAAW,CACTz1D,MAAOqzP,IAGXlmL,SAAU,CACRxjF,UAAW,CACTqW,MAAOqzP,GAET//P,UAAW,CACT23E,OAAQ,CACNjrE,MAAOs5O,EAAa,KAGxB/vP,MAAO,CACL0hF,OAAQ,CACNxV,UAAW,CACTz1D,MAAOqzP,KAIb3rG,aAAc,CACZz8E,OAAQ,CACNjrE,MAAOqzP,EACP9/P,YAAa8/P,KAInB/yF,SAAUgzF,IACV/yF,QAAS+yF,IACTrmN,UAAWqmN,IACXrzF,aAAcqzF,IACdhkL,KAAM,CACJr0C,OAAQ,UAEVvM,MAAO,CACL1uB,MAAOs5O,GAETjpK,MAAO,CACL30D,MAAO,CACL+5C,UAAW,CACTz1D,MAAOqzP,KAIbpjL,YAAa,CACX38E,UAAW,CACT23E,OAAQ,CACNjrE,MAAO,UACP+jN,OAAQ,UACRxwN,YAAa,UACbywN,aAAc,cAKtB35G,EAAM41D,aAAa5xH,UAAU7kD,MAAO,EACpC,IAAI7B,EAAW0iH,EACfv/G,EAAOC,QAAUpD,G,qBCvJjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB08C,EAAc,EAAQ,QAEtBC,EAAW,EAAQ,QAEnBksF,EAAsB,EAAQ,QAE9BivF,EAAmB,EAAQ,QAE3Bp7E,EAA8Bo7E,EAAiBp7E,4BAC/CU,EAA4B06E,EAAiB16E,0BAoB7CxgG,EAAmB,CAAC,WAAY,gBAAiB,YACjDC,EAAmB,CAAC,YAAa,YAAa,kBAC9CwrN,EAAoB1rN,EAASjgD,OAAO,CACtCC,KAAM,gBACNmgD,iBAAkB,uBAKlBtuC,OAAQ,SAAU/B,EAAWzP,EAASyG,EAAK23B,GACzCl+B,KAAKsD,MAAMC,YACX,IAAI4pN,EAAentN,KAAKotN,WAIxB,GAHAptN,KAAKotN,WAAa,IAAItqN,EAAQ6B,MAC9B3E,KAAKsD,MAAMgC,IAAItF,KAAKotN,YAEf79M,EAAUrN,IAAI,QAAnB,CAIA,IAAIoN,EAAYC,EAAUynD,mBACtB/zD,EAAS0oI,EAAoB1oI,OAAOqM,EAAWC,GAC/CixC,EAAc,IAAIhB,EAAYjwC,EAAWtM,GAC7CL,EAAOzD,KAAKugD,EAAkBc,EAAYl7C,IAAKk7C,GAE/CxgD,KAAKotN,WAAW9nN,IAAIk7C,EAAYC,YAEhC79C,EAAOzD,KAAKwgD,GAAkB,SAAUhzC,GAClC4C,EAAUrN,IAAIyK,EAAO,UACvB3M,KAAK,IAAM2M,GAAM4C,EAAWD,KAE7BtP,MACH8C,EAAQsuE,gBAAgB+7I,EAAcntN,KAAKotN,WAAY79M,GACvD47P,EAAkBrhQ,UAAU9J,KAAM,SAAUuP,EAAWzP,EAASyG,EAAK23B,KAEvEmE,OAAQ,WACN69G,EAA0BlgJ,OAQ5B2gD,WAAY,SAAUpxC,EAAWD,GAC/B,IAAII,EAAOH,EAAUG,KAErB,IAAIA,EAAKjB,MAAMiyC,UAAf,CAIA,IAAIE,EAAiBrxC,EAAU0R,SAAS,aACpC4/B,EAAiBD,EAAe3/B,SAAS,aACzC6/B,EAAaD,EAAe3+C,IAAI,SACpC4+C,EAAal+C,EAAOogB,QAAQ89B,GAAcA,EAAa,CAACA,GAWxD,IAVA,IAAI6+F,EAAWrwI,EAAUhP,iBAAiB0P,UACtCmkB,EAAezkB,EAAKykB,eACpB4sB,EAAY,EACZd,EAAcvwC,EAAKwwC,eAAe,CACpC0/F,UAAWh/F,IAETj1C,EAAK,GACLC,EAAK,GACLrK,EAAYs/C,EAAejC,eAEtB3wC,EAAI,EAAGA,EAAIgyC,EAAYh1C,OAAQgD,IAAK,CAC3C,IAAIygG,EAAYh/F,EAAKa,cAAc0vC,EAAYhyC,GAAG5B,OAE9C8nB,GACFxoB,EAAG,GAAK+iG,EACR/iG,EAAG,GAAKg0I,EAASj6I,EACjBkG,EAAG,GAAK8iG,EACR9iG,EAAG,GAAK+zI,EAASj6I,EAAIi6I,EAASzzI,SAE9BP,EAAG,GAAKg0I,EAASl6I,EACjBkG,EAAG,GAAK+iG,EACR9iG,EAAG,GAAK+zI,EAASl6I,EAAIk6I,EAASn+I,MAC9BoK,EAAG,GAAK8iG,GAGV,IAAIztD,EAAaF,IAAcD,EAAW71C,OACtCikG,EAAYjvD,EAAYhyC,GAAGihG,UAE/BlvG,KAAKotN,WAAW9nN,IAAI,IAAIxC,EAAQovC,KAAK,CACnCu/B,KAAmB,MAAby9B,EAAoB,QAAUjvD,EAAYhyC,GAAGihG,UAAY,KAC/D56E,kBAAkB,EAClB9iB,MAAO,CACL4oD,GAAIzuD,EAAG,GACP0uD,GAAI1uD,EAAG,GACP2uD,GAAI1uD,EAAG,GACP2uD,GAAI3uD,EAAG,IAETpG,MAAO5C,EAAO6O,SAAS,CACrBotC,OAAQiC,EAAWG,IAClB1/C,GACHqQ,QAAQ,QAUdwvC,gBAAiB,SAAU7xC,EAAWD,GACpC,IAAII,EAAOH,EAAUG,KACjB2xC,EAAsB9xC,EAAU0R,SAAS,kBACzC4/B,EAAiBQ,EAAoBpgC,SAAS,aAC9C0+H,EAAWrwI,EAAUhP,iBAAiB0P,UACtCmkB,EAAezkB,EAAKykB,eACpBgsB,EAAmBzwC,EAAK0wC,sBAE5B,GAAKD,EAAiBl1C,OAQtB,IAJA,IAAIU,EAAK,GACLC,EAAK,GACLrK,EAAYs/C,EAAejC,eAEtB3wC,EAAI,EAAGA,EAAIkyC,EAAiBl1C,OAAQgD,IAC3C,IAAK,IAAIgI,EAAI,EAAGA,EAAIkqC,EAAiBlyC,GAAGhD,OAAQgL,IAAK,CACnD,IAAIy4F,EAAYh/F,EAAKa,cAAc4vC,EAAiBlyC,GAAGgI,GAAG5J,OAEtD8nB,GACFxoB,EAAG,GAAK+iG,EACR/iG,EAAG,GAAKg0I,EAASj6I,EACjBkG,EAAG,GAAK8iG,EACR9iG,EAAG,GAAK+zI,EAASj6I,EAAIi6I,EAASzzI,SAE9BP,EAAG,GAAKg0I,EAASl6I,EACjBkG,EAAG,GAAK+iG,EACR9iG,EAAG,GAAK+zI,EAASl6I,EAAIk6I,EAASn+I,MAC9BoK,EAAG,GAAK8iG,GAGV1uG,KAAKotN,WAAW9nN,IAAI,IAAIxC,EAAQovC,KAAK,CACnCu/B,KAAM,cAAgBtxB,EAAiBlyC,GAAGgI,GAAGi5F,UAC7C56E,kBAAkB,EAClB9iB,MAAO,CACL4oD,GAAIzuD,EAAG,GACP0uD,GAAI1uD,EAAG,GACP2uD,GAAI1uD,EAAG,GACP2uD,GAAI3uD,EAAG,IAETpG,MAAOjE,EACPqQ,QAAQ,OAWhB2vC,WAAY,SAAUhyC,EAAWD,GAC/BkwI,EAA4Bx/I,KAAMA,KAAKotN,WAAY79M,EAAWD,MAGlE67P,EAAkB3rQ,OAAO,CACvBC,KAAM,UAER0rQ,EAAkB3rQ,OAAO,CACvBC,KAAM,W,qBCtMR,IAAI8M,EAAe,EAAQ,QAEvBqrD,EAAO,EAAQ,QAEfzlB,EAAO,EAAQ,QAEf+0K,EAAiB,EAAQ,QA8B7B,SAAS7pH,EAAO1wF,EAAM4zB,EAAYgmB,GAahC,GARAvmD,KAAK2M,KAAOA,EAMZ3M,KAAKugC,WAAaA,EAEbgmB,EAIHA,EAAK,CAACA,EAAG,GAAIA,EAAG,QAJT,CACP,IAAIv6C,EAAOhM,KAAKiM,kBAChBs6C,EAAK,CAACv6C,EAAKvG,EAAIuG,EAAKxK,MAAQ,EAAGwK,EAAKtG,EAAIsG,EAAKE,OAAS,GASxDlM,KAAK04B,OAAS6tB,EAGhB82C,EAAOvvF,UAAY,CACjBC,YAAasvF,EACbhY,WAAY,KAKZp5E,gBAAiB,WACf,IAAID,EAAOhM,KAAKsN,MAEhB,GAAItB,EACF,OAAOA,EAUT,IAPA,IAAIo6G,EAAa/pD,OAAOC,UACpB5rD,EAAM,CAAC01G,EAAYA,GACnB31G,EAAM,EAAE21G,GAAaA,GACrB9tD,EAAO,GACPC,EAAO,GACPh4B,EAAavgC,KAAKugC,WAEbtyB,EAAI,EAAGA,EAAIsyB,EAAWt1B,OAAQgD,IAErC,GAA2B,YAAvBsyB,EAAWtyB,GAAGxO,KAAlB,CAKA,IAAIghC,EAAWF,EAAWtyB,GAAGwyB,SAC7Bm3B,EAAK66G,WAAWhyI,EAAU63B,EAAMC,GAChCpmB,EAAKzhC,IAAIA,EAAKA,EAAK4nD,GACnBnmB,EAAK1hC,IAAIA,EAAKA,EAAK8nD,GAQrB,OAJU,IAANtqD,IACFyC,EAAI,GAAKA,EAAI,GAAKD,EAAI,GAAKA,EAAI,GAAK,GAG/BzQ,KAAKsN,MAAQ,IAAIf,EAAamE,EAAI,GAAIA,EAAI,GAAID,EAAI,GAAKC,EAAI,GAAID,EAAI,GAAKC,EAAI,KAOrFxC,QAAS,SAAU7B,GACjB,IAAIL,EAAOhM,KAAKiM,kBACZs0B,EAAavgC,KAAKugC,WAEtB,IAAKv0B,EAAKkC,QAAQ7B,EAAM,GAAIA,EAAM,IAChC,OAAO,EAGT++P,EAAS,IAAK,IAAIn9P,EAAI,EAAGqK,EAAMioB,EAAWt1B,OAAQgD,EAAIqK,EAAKrK,IAEzD,GAA2B,YAAvBsyB,EAAWtyB,GAAGxO,KAAlB,CAIA,IAAIghC,EAAWF,EAAWtyB,GAAGwyB,SACzBE,EAAYJ,EAAWtyB,GAAG0yB,UAE9B,GAAIumL,EAAeh5M,QAAQuyB,EAAUp0B,EAAM,GAAIA,EAAM,IAAK,CAExD,IAAK,IAAI4J,EAAI,EAAGA,GAAK0qB,EAAYA,EAAU11B,OAAS,GAAIgL,IACtD,GAAIixM,EAAeh5M,QAAQyyB,EAAU1qB,IACnC,SAASm1P,EAIb,OAAO,GAIX,OAAO,GAETj9P,YAAa,SAAU1I,EAAGC,EAAGlE,EAAO0K,GAClC,IAAIF,EAAOhM,KAAKiM,kBACZ+5B,EAASh6B,EAAKxK,MAAQwK,EAAKE,OAE1B1K,EAEO0K,IACVA,EAAS1K,EAAQwkC,GAFjBxkC,EAAQwkC,EAAS95B,EASnB,IAJA,IAAIkG,EAAS,IAAI7F,EAAa9G,EAAGC,EAAGlE,EAAO0K,GACvCoC,EAAYtC,EAAKuC,mBAAmB6D,GACpCmuB,EAAavgC,KAAKugC,WAEbtyB,EAAI,EAAGA,EAAIsyB,EAAWt1B,OAAQgD,IAErC,GAA2B,YAAvBsyB,EAAWtyB,GAAGxO,KAAlB,CAOA,IAHA,IAAIghC,EAAWF,EAAWtyB,GAAGwyB,SACzBE,EAAYJ,EAAWtyB,GAAG0yB,UAErBlpB,EAAI,EAAGA,EAAIgpB,EAASx1B,OAAQwM,IACnC06B,EAAKjN,eAAezE,EAAShpB,GAAIgpB,EAAShpB,GAAInJ,GAGhD,IAAK,IAAIonD,EAAI,EAAGA,GAAK/0B,EAAYA,EAAU11B,OAAS,GAAIyqD,IACtD,IAASj+C,EAAI,EAAGA,EAAIkpB,EAAU+0B,GAAGzqD,OAAQwM,IACvC06B,EAAKjN,eAAevE,EAAU+0B,GAAGj+C,GAAIkpB,EAAU+0B,GAAGj+C,GAAInJ,GAK5DtC,EAAOhM,KAAKsN,MACZtB,EAAK+3B,KAAK3xB,GAEVpS,KAAK04B,OAAS,CAAC1sB,EAAKvG,EAAIuG,EAAKxK,MAAQ,EAAGwK,EAAKtG,EAAIsG,EAAKE,OAAS,IAEjEixF,aAAc,SAAUxwF,GACd,MAARA,IAAiBA,EAAO3M,KAAK2M,MAC7B,IAAI0+P,EAAY,IAAIhuK,EAAO1wF,EAAM3M,KAAKugC,WAAYvgC,KAAK04B,QAIvD,OAHA2yO,EAAU/9P,MAAQtN,KAAKsN,MACvB+9P,EAAUl9P,YAAc,KAEjBk9P,IAGX,IAAI9rQ,EAAW89F,EACf36F,EAAOC,QAAUpD,G,qBC7LjB,IAAI6I,EAAU,EAAQ,QAElBxF,EAAS,EAAQ,QAEjBgyC,EAAe,EAAQ,QAEvB02N,EAAuB,EAAQ,QAEnC,EAAQ,QAER,EAAQ,QAER,EAAQ,QAoBR,IAAIC,EAAkB,EAGtBnjQ,EAAQiJ,oBAAoB,CAC1B5R,KAAM,WACN6R,OAAQ,SAAUtP,EAAelC,EAASyG,GACxCvG,KAAKyI,OAASzG,EACdhC,KAAK8iH,KAAOv8G,EAEPvG,KAAKwrQ,YACRxrQ,KAAKwrQ,UAAY,GACjB5oQ,EAAOzD,KAAKgkL,GAAU,SAAUt2J,EAASsM,GACvC5yB,EAAIslB,QAAQjlB,GAAGuyB,EAAWn5B,KAAKwrQ,UAAUryO,GAAav2B,EAAOiC,KAAKgoB,EAAS7sB,SAC1EA,OAGL40C,EAAamB,eAAe/1C,KAAM,2BAA4BgC,EAAcE,IAAI,kBAAmB,YAErGqsB,QAAS,SAAUzuB,EAASyG,GAC1B3D,EAAOzD,KAAKa,KAAKwrQ,WAAW,SAAU3+O,EAASsM,GAC7C5yB,EAAIslB,QAAQgR,IAAI1D,EAAWtM,MAE7B7sB,KAAKwrQ,UAAY,MAMnBC,yBAA0B,SAAUj8P,GAClCxP,KAAK0rQ,gBAAgBl8P,IAEvBk8P,gBAAiB,SAAUl8P,GACzBA,GAAOxP,KAAK8iH,KAAKt8G,eAAe5D,EAAOpD,OAAO,CAC5CC,KAAM,sBACL+P,OAGP,IAAI2zK,EAAW,CACbl8C,UAAW,SAAUt6G,GACfg/O,EAAa3rQ,KAAM,WACrBA,KAAK4rQ,gBAAkB,CAACj/O,EAAE2uD,QAAS3uD,EAAE4uD,WAGzC8rD,QAAS,SAAU16G,GACjB,IAAIk/O,EAAiB7rQ,KAAK4rQ,gBAE1B,GAAID,EAAa3rQ,KAAM,UAAY6rQ,EAAgB,CACjD,IAAIv0O,EAAQ,CAAC3K,EAAE2uD,QAAS3uD,EAAE4uD,SACtBhjD,EAAO1sB,KAAKqyE,IAAI2tL,EAAe,GAAKv0O,EAAM,GAAI,GAAKzrB,KAAKqyE,IAAI2tL,EAAe,GAAKv0O,EAAM,GAAI,GAE9F,GAAIiB,EAAOgzO,EACT,OAGF,IAAI5kP,EAAS3mB,KAAKyI,OAAOnI,iBAAiBkgP,0BAA0B,CAAC7zN,EAAE2uD,QAAS3uD,EAAE4uD,UAE9D,SAApB50D,EAAO85N,UAAuBzgP,KAAK0rQ,gBAAgB,CACjDpsB,iBAAkB34N,EAAO24N,mBAI7Bt/O,KAAK4rQ,gBAAkB,MAEzBzkI,UAAW,SAAUx6G,GAEnB,IAAI3sB,KAAK4rQ,iBAAoBD,EAAa3rQ,KAAM,aAAhD,CAIA,IAAI8vB,EAAQ9vB,KAAKyI,OACbke,EAASmJ,EAAMxvB,iBAAiBkgP,0BAA0B,CAAC7zN,EAAE2uD,QAAS3uD,EAAE4uD,UACxEklK,EAAW95N,EAAO85N,SACT,SAAbA,GAAuBzgP,KAAKyrQ,yBAAyBrvE,iBAAiBtsK,EAAM5tB,IAAI,uBAEhFlC,KAAKyrQ,yBAAsC,SAAbhrB,EAAsB,KAClD,CACAnB,iBAAkB34N,EAAO24N,iBAEzB3hO,UAAwB,SAAb8iO,GAAsB,UAKvC,SAASkrB,EAAa7lJ,EAAMkU,GAC1B,IAAIlqG,EAAQg2F,EAAKr9G,OACjB,OAAOqnB,EAAM5tB,IAAI,mBAAqB4tB,EAAM5tB,IAAI,yBAA2B83H,EAG7E5xH,EAAQyJ,qBAAqBy5P,I,qBCxH7B,IAAI9nP,EAAU,EAAQ,QAIlBpb,GAFUob,EAAQC,QAER,EAAQ,SAElB7gB,EAAS,EAAQ,QAEjB+xC,EAAiB,EAAQ,QAEzBt2B,EAAQ,EAAQ,QAoBhBytP,EAA6B,CAAC,QAC9BC,EAAa3jQ,EAAQ48C,qBAAqB,CAC5CvlD,KAAM,QACNC,aAAc,CAAC,MAAO,OAAQ,QAAS,QAAS,WAAY,UAK5DqB,cAAe,CAGbkkF,QAAS,KAETvtC,UAAW,KAGXX,YAAa,MAEb/U,SAAU,KAEVu1E,WAAY,KACZC,WAAY,KACZnhE,UAAW,OAEX21N,UAAW,SAEXC,eAAe,EAEfjoF,WAAY,CAEV54K,YAAa,EACbwM,MAAO,wBACPzM,YAAa,yBAEfuqC,aAAc,UAGdC,cAAe,EAIf24K,eAAe,EACfrtN,EAAG,KAOLw0C,MAAO,GASPY,UAAW,KAQXgB,YAAa,GAMbqkC,cAAe,GACfloE,cAAe,SAAUiR,EAAWC,GAClC,IAAI6B,EAAavmB,KAAKH,QACrB6kB,GAAUiwB,EAAe05C,oBAAoB9nE,EAAY9B,EAAW,CAAC,UAAW,eACjF,IAAIynP,EAAU3lP,EAAW2lP,QAAU3lP,EAAW2lP,SAAW,GAEzD3lP,EAAW4lP,WAAa5lP,EAAW4lP,YAAc,CAC/Cv0P,MAAOk0P,GAGJI,EAAQnvP,eAAe,WAG1BmvP,EAAQtvN,MAAQ,IASpBs7K,SAAU,SAAUziL,GAIbA,IAILz1C,KAAKy1C,MAAQ7yC,EAAOqE,IAAIwuC,GAAO,SAAUW,GACvC,OAAOg2N,EAAoBpsQ,KAAKH,OAAQu2C,KACvCp2C,QAOLo3C,eAAgB,SAAUC,GACxBr3C,KAAKq3C,YAAc+0N,EAAoBpsQ,KAAKH,OAAQw3C,GACpDr3C,KAAKq2C,UAAYr2C,KAAKq3C,YAAYhB,aAItC,SAAS+1N,EAAoBvsQ,EAAQw3C,GACnC,OAAOz0C,EAAOie,MAAM,CAClBw1B,UAAWx2C,EAAOw2C,UAClB21N,UAAWnsQ,EAAOmsQ,UAClBC,cAAepsQ,EAAOosQ,cACtBjoF,WAAY,IAAI3lK,EAAMxe,EAAOmkL,YAAYryK,eACzC28M,cAAezuN,EAAOyuN,cACtBrtN,EAAGpB,EAAOoB,GACTo2C,GAAa,GAGlB,IAAI93C,EAAWwsQ,EACfrpQ,EAAOC,QAAUpD,G,qBC/JjB,IAAIL,EAAQ,EAAQ,QAGhB8jB,GADS9jB,EAAMmuC,OACLnuC,EAAM8jB,SAEhBQ,EAAU,EAAQ,QAERA,EAAQC,QAyBtB,SAAS4yH,EAAWg2H,GAClB,OAAO,IAAIC,EAAKD,GAYlB,SAASC,EAAKD,GACZA,EAASA,GAAU,GACnBrsQ,KAAKusQ,OAASF,EAAOv3O,MACrB90B,KAAKwsQ,MAAQH,EAAOx3O,KACpB70B,KAAKmyJ,OAASk6G,EAAOlqP,MACrBniB,KAAKysQ,SAAWJ,EAAO7/F,QACvBxsK,KAAK0sQ,QAAS,EAGd1sQ,KAAK4f,QAGP,IAAI+sP,EAAYL,EAAKx+P,UASrB6+P,EAAUvhJ,QAAU,SAAUg/C,GAC5B,IAcIwiG,EAdAC,EAAS7sQ,KAAK8sQ,UACdviG,EAAOH,GAAeA,EAAYG,KAItC,GAAIvqK,KAAK0sQ,QAAUG,EAAQ,CACzB,IAAIjtP,EAAU5f,KAAK4f,QACnBA,EAAQrf,KAAOqf,EAAQ43H,WAAaq1H,EAAOjtP,QAAQ43H,WAGjDx3I,KAAK8pK,aACP9pK,KAAK8pK,WAAW1wB,YAAcp5I,MAK5BA,KAAKwsQ,QAAUjiG,IACjBqiG,EAAa5sQ,KAAKwsQ,MAAMxsQ,KAAK4f,UAK/B,IAeIw0O,EAfA2Y,EAAYC,EAAehtQ,KAAKitQ,QAChCC,EAAmBltQ,KAAKmtQ,eAAiB,EACzCniG,EAAQgiG,EAAe5iG,GAAeA,EAAYY,OAClDD,EAAeX,GAAeA,EAAYW,cAAgB,EAM9D,SAASiiG,EAAevhQ,GAGtB,QAFEA,GAAO,KAAOA,EAAM,GAEfA,EAPLshQ,IAAc/hG,GAASkiG,IAAqBniG,IAC9C6hG,EAAa,UAWX5sQ,KAAK0sQ,QAAyB,UAAfE,KACjB5sQ,KAAK0sQ,QAAS,EACdtY,EAAqBt/N,EAAM90B,KAAMuqK,IAGnCvqK,KAAKitQ,OAASjiG,EACdhrK,KAAKmtQ,cAAgBpiG,EACrB,IAAInpG,EAAOwoG,GAAeA,EAAYxoG,KAWtC,GARE5hE,KAAKotQ,QADHP,EACaA,EAAOQ,cAGLrtQ,KAAKmyJ,OAASnyJ,KAAKmyJ,OAAOnyJ,KAAK4f,SAAW7M,IAKzD/S,KAAKstQ,UAAW,CAClB,IAAI/4P,EAAQvU,KAAKutQ,UACblzL,EAAMxuE,KAAK6E,IAAY,MAARkxD,EAAe5hE,KAAKutQ,UAAY3rM,EAAO7uD,IAAU/S,KAAKotQ,SAEzE,IAAK7iG,IAAS6pF,GAAsB7/O,EAAQ8lE,GAAM,CAChD,IAAI1kD,EAAW31B,KAAKstQ,UAEpB,GAAItqP,EAAQ2S,GACV,IAAK,IAAI1nB,EAAI,EAAGA,EAAI0nB,EAAS1qB,OAAQgD,IACnCu/P,EAAWxtQ,KAAM21B,EAAS1nB,GAAIsG,EAAO8lE,EAAK2wF,EAAOD,QAGnDyiG,EAAWxtQ,KAAM21B,EAAUphB,EAAO8lE,EAAK2wF,EAAOD,GAIlD/qK,KAAKutQ,UAAYlzL,EAGjB,IAAIozL,EAAwC,MAAzBztQ,KAAK0tQ,iBAA2B1tQ,KAAK0tQ,iBAAmBrzL,EAC3Er6E,KAAKqtQ,cAAgBI,OAKrBztQ,KAAKutQ,UAAYvtQ,KAAKqtQ,cAAyC,MAAzBrtQ,KAAK0tQ,iBAA2B1tQ,KAAK0tQ,iBAAmB1tQ,KAAKotQ,QAGrG,OAAOptQ,KAAKqkH,cAGd,IAAIspJ,EAAW,WACb,IAAItzL,EACA/uC,EACA0/H,EACAD,EACA6iG,EACAC,EAAK,CACP/4O,MAAO,SAAUqX,EAAGxf,EAAGmhP,EAAOC,GAC5BziO,EAAUa,EACVkuC,EAAM1tD,EACNq+I,EAAQ8iG,EACR/iG,EAAegjG,EACfH,EAAW/hQ,KAAKyzD,KAAKyrG,EAAeC,GACpC6iG,EAAG73O,KAAOg1I,EAAQ,GAAKD,EAAe,EAAIijG,EAAUC,IAGxD,OAAOJ,EAEP,SAASI,IACP,OAAO3iO,EAAU+uC,EAAM/uC,IAAY,KAGrC,SAAS0iO,IACP,IAAIptQ,EAAY0qC,EAAUsiO,EAAW5iG,EAAQn/J,KAAKyzD,KAAKh0B,EAAUsiO,GAC7DjnP,EAAS2kB,GAAW+uC,EAAM,KAAOz5E,EAAYmqK,EAAenqK,EAE9D0qC,EAEF,OADAA,IACO3kB,GA5BI,GAqCf,SAAS6mP,EAAWU,EAASv4O,EAAUphB,EAAO8lE,EAAK2wF,EAAOD,GACxD4iG,EAAS74O,MAAMvgB,EAAO8lE,EAAK2wF,EAAOD,GAClCmjG,EAAQC,iBAAmBx4O,EAE3Bu4O,EAAQC,iBAAiB,CACvB55P,MAAOA,EACP8lE,IAAKA,EACLl4D,MAAOk4D,EAAM9lE,EACbyhB,KAAM23O,EAAS33O,MACdk4O,EAAQtuP,SAGb,SAASkV,EAAMo5O,EAAS3jG,GAGtB,IAAI50I,EACAy+N,EAHJ8Z,EAAQX,UAAYW,EAAQb,cAAgBa,EAAQd,QAAU,EAC9Dc,EAAQR,iBAAmB,MAItBnjG,GAAQ2jG,EAAQ3B,SACnB52O,EAAWu4O,EAAQ3B,OAAO2B,EAAQtuP,SAE9B+V,GAAYA,EAASA,WACvBy+N,EAAqBz+N,EAASy+N,mBAC9Bz+N,EAAWA,EAASA,UAIlB3S,EAAQ2S,KAAcA,EAAS1qB,SACjC0qB,EAAW,OAIfu4O,EAAQZ,UAAY33O,EACpBu4O,EAAQjB,OAASiB,EAAQf,cAAgB,KACzC,IAAIiB,EAAaF,EAAQG,YAEzB,OADAD,GAAcA,EAAW97P,QAClB8hP,EAzCTuY,EAAUr6P,MAAQ,WAChBtS,KAAK0sQ,QAAS,EACd1sQ,KAAKysQ,UAAYzsQ,KAAKysQ,SAASzsQ,KAAK4f,UA8CtC+sP,EAAUtoJ,WAAa,WACrB,OAAOrkH,KAAKstQ,WAAattQ,KAAKutQ,UAAYvtQ,KAAKotQ,SAQjDT,EAAUrhG,KAAO,SAAUgjG,IAErBtuQ,KAAKquQ,cAAgBC,GAAYtuQ,KAAK0sQ,UACxC1sQ,KAAKquQ,YAAcC,EACnBA,EAASxB,UAAY9sQ,KACrBsuQ,EAASh8P,UAIbq6P,EAAUp+O,QAAU,WACdvuB,KAAK4hH,YAIT5hH,KAAK8sQ,YAAc9sQ,KAAK8sQ,UAAUuB,YAAc,MAChDruQ,KAAKquQ,cAAgBruQ,KAAKquQ,YAAYvB,UAAY,MAClD9sQ,KAAK0sQ,QAAS,EACd1sQ,KAAK4hH,WAAY,IAGnB+qJ,EAAUhhG,YAAc,WACtB,OAAO3rK,KAAK8sQ,WAGdH,EAAU7/F,cAAgB,WACxB,OAAO9sK,KAAKquQ,aAGd1B,EAAUp1H,aAAe,SAAUl9D,GAMjCr6E,KAAKqtQ,cAAgBrtQ,KAAK0tQ,iBAAmBrzL,GA8C/C13E,EAAQ0zI,WAAaA,G,qBCpUrB,IAAI9pI,EAAe,EAAQ,QAEvB0vB,EAAgB,EAAQ,QAExBC,EAAsBD,EAAcC,oBAEpCuuJ,EAAc,EAAQ,QAoB1B,SAASwjC,EAAsBjiN,GAE7B,OADAA,EAAOuiQ,EAAcviQ,GACd,SAAUwiQ,EAAalgQ,GAC5B,OAAOm8K,EAAY14G,iBAAiBy8L,EAAaxiQ,IAIrD,SAASqiN,EAA2BriN,EAAMyiQ,GAExC,OADAziQ,EAAOuiQ,EAAcviQ,GACd,SAAUo7M,GACf,IAAIl3M,EAA0B,MAApBu+P,EAA2BA,EAAmBrnD,EACpDsnD,EAAax+P,EAAMlE,EAAKxK,MAAQwK,EAAKE,OACrCovI,EAAOprI,EAAMlE,EAAKvG,EAAIuG,EAAKtG,EAC/B,MAAO,CAAC41I,EAAMA,GAAQozH,GAAc,KAIxC,SAASvgD,EAAyBniN,EAAMzF,EAAKooQ,GAE3C,OADA3iQ,EAAOuiQ,EAAcviQ,GACd,SAAU2gB,EAAGiiP,EAAkBtgQ,GACpC,OAAOtC,EAAKkC,QAAQ0gQ,EAAiB,GAAIA,EAAiB,MAAQ1yO,EAAoBvP,EAAGpmB,EAAKooQ,IAKlG,SAASJ,EAAcviQ,GACrB,OAAOO,EAAaq3B,OAAO53B,GAG7BrJ,EAAQsrN,sBAAwBA,EAChCtrN,EAAQ0rN,2BAA6BA,EACrC1rN,EAAQwrN,yBAA2BA,G,qBC5EnCzrN,EAAOC,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,qBCmB3E,EAAQ,QAER,EAAQ,S,qBCFR,IAAIG,EAAU,EAAQ,QAElBG,EAAS,EAAQ,QAEjBL,EAAS,EAAQ,QAEjB4iM,EAAc,EAAQ,QAEtBhoD,EAAmBgoD,EAAYhoD,iBAoB/BqxH,EAAe,EACfC,EAAW,EACXC,EAAe,EAEnB,SAASz/C,EAAWzlL,GAKlB7pC,KAAKsD,MAAQ,IAAIR,EAAQ6B,MACzBklC,EAAevkC,IAAItF,KAAKsD,OA6G1B,SAAS0rQ,EAAevpQ,EAAGC,EAAGwe,EAAWC,EAAYinJ,EAAMC,GACzD,IAAI9zJ,EAAS,CAAC,CAAC6zJ,EAAO3lK,EAAIA,EAAIspQ,EAAcrpQ,GAAI,CAACD,EAAIye,EAAWxe,GAAI,CAACD,EAAIye,EAAWxe,EAAIye,GAAa,CAACinJ,EAAO3lK,EAAIA,EAAIspQ,EAAcrpQ,EAAIye,IAGvI,OAFCknJ,GAAQ9zJ,EAAO0+C,OAAO,EAAG,EAAG,CAACxwD,EAAIye,EAAY6qP,EAAcrpQ,EAAIye,EAAa,KAC5EinJ,GAAQ7zJ,EAAO1W,KAAK,CAAC4E,EAAGC,EAAIye,EAAa,IACnC5M,EAIT,SAAS03P,EAAcxjP,EAAI3pB,EAAaotQ,GACtCzjP,EAAGoW,UAAY,CACbC,cAAe,SACfszE,iBAAkB,UAClBrzE,eAAgBjgC,EAAYigC,eAC5BgV,YAAaj1C,EAAYigC,eACzB6O,WAAY9uC,EAAY6K,KACxBioB,WAAY,UACZu6O,SAAU,aAEVnxM,SAAU,CACRp9D,UAAWsuQ,GAAYA,EAAStuQ,UAChC+L,KAAMuiQ,GAAYA,EAASviQ,MAE7B8wI,aAAcyxH,GAAY1xH,EAAiB0xH,EAAUptQ,IAhIzDwtN,EAAWxhN,UAAY,CACrBC,YAAauhN,EACbh+M,OAAQ,SAAUxP,EAAayE,EAAKkiG,EAAYoqH,GAC9C,IAAI/iM,EAAQhuB,EAAYmf,SAAS,cAC7B5d,EAAYrD,KAAKsD,MAGrB,GAFAD,EAAUE,YAELusB,EAAM5tB,IAAI,SAAYumG,EAA3B,CAIA,IAAI2mK,EAAmBt/O,EAAM7O,SAAS,aAElCvd,EAAiB0rQ,EAAiBnuP,SAAS,aAC3CouP,EAAc,CAChBh9P,IAAK,CACH9H,KAAMulB,EAAM5tB,IAAI,QAChBuI,MAAOqlB,EAAM5tB,IAAI,SACjBsI,IAAKslB,EAAM5tB,IAAI,OACfwI,OAAQolB,EAAM5tB,IAAI,WAEpB8D,IAAK,CACHxE,MAAO+E,EAAIylB,WACX9f,OAAQ3F,EAAI0lB,aAEd85K,eAAgBj2K,EAAM5tB,IAAI,kBAC1BotQ,WAAY,EACZC,WAAY,IAGdvvQ,KAAKwvQ,SAAS/mK,EAAY4mK,EAAa3rQ,GAEvC1D,KAAKyvQ,eAAe3tQ,EAAautQ,EAAaD,EAAkB1rQ,EAAgBmvN,GAEhF5vN,EAAO+2K,gBAAgB32K,EAAWgsQ,EAAYh9P,IAAKg9P,EAAYrpQ,OAOjEwpQ,SAAU,SAAU/mK,EAAY4mK,EAAa3rQ,GAC3C,IAAK,IAAI8b,EAAOipF,EAAYjpF,EAAMA,EAAOA,EAAKZ,WAAY,CACxD,IAAIjZ,EAAO6Z,EAAKyB,WAAW/e,IAAI,QAC3BmqF,EAAW3oF,EAAei4G,YAAYh2G,GACtCue,EAAYrY,KAAK4E,IAAI47E,EAAS7qF,MAAuB,EAAfqtQ,EAAkBQ,EAAYtpE,gBACxEspE,EAAYC,YAAcprP,EAAY4qP,EACtCO,EAAYE,WAAW1uQ,KAAK,CAC1B2e,KAAMA,EACN7Z,KAAMA,EACNnE,MAAO0iB,MAQburP,eAAgB,SAAU3tQ,EAAautQ,EAAaD,EAAkB1rQ,EAAgBmvN,GASpF,IAPA,IAAI68C,EAAQ,EACR3pE,EAAiBspE,EAAYtpE,eAC7B75L,EAASpK,EAAYI,IAAI,qBACzBytQ,EAAgB1sQ,EAAO2sQ,iBAAiBP,EAAYh9P,IAAKg9P,EAAYrpQ,KACrEspQ,EAAaD,EAAYC,WACzBC,EAAaF,EAAYE,WAEpBthQ,EAAIshQ,EAAWtkQ,OAAS,EAAGgD,GAAK,EAAGA,IAAK,CAC/C,IAAIzJ,EAAO+qQ,EAAWthQ,GAClBihQ,EAAW1qQ,EAAKgb,KAChB0E,EAAY1f,EAAKhD,MACjBmE,EAAOnB,EAAKmB,KAEZ2pQ,EAAaK,EAAcnuQ,QAC7B8tQ,GAAcprP,EAAY6hL,EAC1B7hL,EAAY6hL,EACZpgM,EAAO,MAGT,IAAI8lB,EAAK,IAAI3oB,EAAQ49B,QAAQ,CAC3BlvB,MAAO,CACL+F,OAAQy3P,EAAeU,EAAO,EAAGxrP,EAAWhY,EAAQ+B,IAAMshQ,EAAWtkQ,OAAS,EAAS,IAANgD,IAEnFzI,MAAO5C,EAAO6O,SAAS29P,EAAiBz9P,eAAgB,CACtD08C,SAAU,QACV1oD,KAAMA,EACN9B,SAAUH,EAAeI,eACzBH,SAAUD,EAAeE,YAE3B3C,EAAG,GACH2D,QAAShC,EAAO4G,MAAMqpN,EAAUq8C,KAElClvQ,KAAKsD,MAAMgC,IAAImmB,GACfwjP,EAAcxjP,EAAI3pB,EAAaotQ,GAC/BQ,GAASxrP,EAAY4qP,IAOzBzsO,OAAQ,WACNriC,KAAKsD,MAAMC,cA8Bf,IAAIhE,EAAW+vN,EACf5sN,EAAOC,QAAUpD,G,qBC9KjB,IAAIqD,EAAS,EAAQ,QA2BrB,SAASitQ,EAAetzL,EAAOuzL,GAC7B,IAAIr9H,EAAc,GAYlB,OAXA7vI,EAAOzD,KAAKo9E,GAAO,SAAUh8E,GAC3BA,EAAKpB,KAAKoB,EAAKyJ,aAAa,UAAU,SAAU2D,EAAOuC,GAErD,IAAI6/P,EAAS,MAAQxvQ,EAAK08C,QAAQ/sC,GAClCuiI,EAAYs9H,GAAUt9H,EAAYs9H,IAAW,GAExCh3P,MAAMpL,IACT8kI,EAAYs9H,GAAQlvQ,KAAK8M,SAIxB4uE,EAAM,GAAGt1E,IAAIs1E,EAAM,GAAGvyE,aAAa,UAAU,SAAU2D,EAAOuC,GAOnE,IANA,IAYIyW,EAZAopP,EAAS,MAAQxzL,EAAM,GAAGt/B,QAAQ/sC,GAClCjG,EAAM,EACNyG,EAAMqC,IACNtC,GAAOsC,IACPuF,EAAMm6H,EAAYs9H,GAAQ9kQ,OAErBgD,EAAI,EAAGA,EAAIqK,EAAKrK,IACvByC,EAAM7E,KAAK6E,IAAIA,EAAK+hI,EAAYs9H,GAAQ9hQ,IACxCwC,EAAM5E,KAAK4E,IAAIA,EAAKgiI,EAAYs9H,GAAQ9hQ,IACxChE,GAAOwoI,EAAYs9H,GAAQ9hQ,GAe7B,OATE0Y,EADoB,QAAlBmpP,EACOp/P,EACkB,QAAlBo/P,EACAr/P,EACkB,YAAlBq/P,EACA7lQ,EAAMqO,EAENrO,EAGI,IAARqO,EAAY+e,IAAM1Q,KAI7B,SAASpnB,EAASO,GAChB,IAAIkwQ,EAAe,GACnBlwQ,EAAQumC,iBAAiB,OAAO,SAAUvkC,GACxC,IAAImuQ,EAAenuQ,EAAYy8B,kBAC3Bx2B,EAAMkoQ,EAAe,IAAMA,EAAa9nQ,GAAK,IAAMrG,EAAY+wI,cAClEm9H,EAAajoQ,GAAOioQ,EAAajoQ,IAAQ,IAAIlH,KAAKiB,MAErDc,EAAOzD,KAAK6wQ,GAAc,SAAUE,EAAYnoQ,GAK9C,IAJA,IAAIxH,EAAOsvQ,EAAejtQ,EAAOqE,IAAIipQ,GAAY,SAAUpuQ,GACzD,OAAOA,EAAYtB,aACjB0vQ,EAAW,GAAGhuQ,IAAI,wBAEb+L,EAAI,EAAGA,EAAIiiQ,EAAWjlQ,OAAQgD,IACrCiiQ,EAAWjiQ,GAAGglI,aAAei9H,EAAWjiQ,GAAGzN,UAI7C,IAASyN,EAAI,EAAGA,EAAIiiQ,EAAWjlQ,OAAQgD,IACrCiiQ,EAAWjiQ,GAAG24H,YAAcspI,EAC5BA,EAAWjiQ,GAAGukI,aAAqB,IAANvkI,IAAYiiQ,EAAWjiQ,GAAGswB,kBACvD2xO,EAAWjiQ,GAAGstD,QAAQh7D,EAAK48F,gBAC3B+yK,EAAWjiQ,GAAGiuM,WAAag0D,EAAW,MAK5CxtQ,EAAOC,QAAUpD,G,qBC/FjB,IAAIuD,EAAU,EAAQ,QAElB82C,EAAY,EAAQ,QAEpB16C,EAAQ,EAAQ,QAEhB+mB,EAAW/mB,EAAM+mB,SA8BrB,SAAS08G,EAAWwtI,GAClBnwQ,KAAKsD,MAAQ,IAAIR,EAAQ6B,MACzB3E,KAAKowQ,YAAcD,GAAcv2N,EAGnC,IAAIy2N,EAAkB1tI,EAAW70H,UAEjC,SAASskK,EAAgB7xK,EAAM+2B,EAAOpnB,EAAKV,GACzC,OAAO8nB,IAAUve,MAAMue,EAAM,MAAQve,MAAMue,EAAM,OAAS9nB,EAAI+6P,UAAY/6P,EAAI+6P,SAASr6P,OAGlFV,EAAI86B,YAAc96B,EAAI86B,UAAUp8B,QAAQopB,EAAM,GAAIA,EAAM,MAA8C,SAAtC/2B,EAAKohB,cAAczR,EAAK,UAoH/F,SAASogQ,EAAmB9gQ,GAO1B,OANW,MAAPA,GAAgByW,EAASzW,KAC3BA,EAAM,CACJ+6P,SAAU/6P,IAIPA,GAAO,GAkBhB,SAASugJ,EAAgBxvJ,GACvB,IAAIuB,EAAcvB,EAAKye,UACvB,MAAO,CACL9T,UAAWpJ,EAAYmf,SAAS,aAAatP,aAAa,CAAC,UAC3DsuB,eAAgBn+B,EAAYmf,SAAS,sBAAsBtP,eAC3D+qC,aAAc56C,EAAYI,IAAI,gBAC9Bk6C,aAAct6C,EAAYI,IAAI,gBAC9Bm6C,eAAgBv6C,EAAYI,IAAI,kBAChCg+B,WAAYp+B,EAAYmf,SAAS,SACjCkf,gBAAiBr+B,EAAYmf,SAAS,kBACtCq7B,YAAax6C,EAAYI,IAAI,WA5IjCmuQ,EAAgBp8N,WAAa,SAAU1zC,EAAMiP,GAC3CA,EAAM8gQ,EAAmB9gQ,GACzB,IAAIlM,EAAQtD,KAAKsD,MACbxB,EAAcvB,EAAKye,UACnB2+B,EAAU39C,KAAK49C,MACf2yN,EAAavwQ,KAAKowQ,YAClB79N,EAAcw9G,EAAgBxvJ,GAG7Bo9C,GACHr6C,EAAMC,YAGRhD,EAAK05B,KAAK0jB,GAASr4C,KAAI,SAAUk5C,GAC/B,IAAIlnB,EAAQ/2B,EAAKygB,cAAcw9B,GAE/B,GAAI4zH,EAAgB7xK,EAAM+2B,EAAOknB,EAAQhvC,GAAM,CAC7C,IAAI8iK,EAAW,IAAIi+F,EAAWhwQ,EAAMi+C,EAAQjM,GAC5C+/H,EAAStyJ,KAAK,WAAYsX,GAC1B/2B,EAAKqhC,iBAAiB4c,EAAQ8zH,GAC9BhvK,EAAMgC,IAAIgtK,OAEX/pK,QAAO,SAAUi2C,EAAQC,GAC1B,IAAI6zH,EAAW30H,EAAQpE,iBAAiBkF,GACpCnnB,EAAQ/2B,EAAKygB,cAAcw9B,GAE1B4zH,EAAgB7xK,EAAM+2B,EAAOknB,EAAQhvC,IAKrC8iK,GAIHA,EAASr+H,WAAW1zC,EAAMi+C,EAAQjM,GAClCzvC,EAAQk8B,YAAYszI,EAAU,CAC5BtnK,SAAUssB,GACTx1B,KANHwwK,EAAW,IAAIi+F,EAAWhwQ,EAAMi+C,GAChC8zH,EAAStyJ,KAAK,WAAYsX,IAS5Bh0B,EAAMgC,IAAIgtK,GACV/xK,EAAKqhC,iBAAiB4c,EAAQ8zH,IAhB5BhvK,EAAM++B,OAAOiwI,MAiBdjwI,QAAO,SAAUoc,GAClB,IAAIhzB,EAAKkyB,EAAQpE,iBAAiBkF,GAClChzB,GAAMA,EAAG4xB,SAAQ,WACf/5C,EAAM++B,OAAO5W,SAEdizB,UACH1+C,KAAK49C,MAAQr9C,GAGf8vQ,EAAgBl0F,aAAe,WAC7B,OAAO,GAGTk0F,EAAgB37N,aAAe,WAC7B,IAAIn0C,EAAOP,KAAK49C,MAEZr9C,GAEFA,EAAKo+C,mBAAkB,SAAUlzB,EAAIvb,GACnC,IAAIonB,EAAQ/2B,EAAKygB,cAAc9Q,GAC/Bub,EAAGzL,KAAK,WAAYsX,OAK1B+4O,EAAgBh0F,yBAA2B,SAAU97K,GACnDP,KAAKs8K,aAAevsB,EAAgBxvJ,GACpCP,KAAK49C,MAAQ,KACb59C,KAAKsD,MAAMC,aAWb8sQ,EAAgB9zF,kBAAoB,SAAUlsB,EAAY9vJ,EAAMiP,GAG9D,SAASgtK,EAA0B/wJ,GAC5BA,EAAG2+C,UACN3+C,EAAGgwB,YAAchwB,EAAGiwB,eAAgB,GAJxClsC,EAAM8gQ,EAAmB9gQ,GAQzB,IAAK,IAAIU,EAAMmgJ,EAAW97I,MAAOrE,EAAMmgJ,EAAWh2E,IAAKnqE,IAAO,CAC5D,IAAIonB,EAAQ/2B,EAAKygB,cAAc9Q,GAE/B,GAAIkiK,EAAgB7xK,EAAM+2B,EAAOpnB,EAAKV,GAAM,CAC1C,IAAIic,EAAK,IAAIzrB,KAAKowQ,YAAY7vQ,EAAM2P,EAAKlQ,KAAKs8K,cAC9C7wJ,EAAGqX,SAAS05I,GACZ/wJ,EAAGzL,KAAK,WAAYsX,GACpBt3B,KAAKsD,MAAMgC,IAAImmB,GACflrB,EAAKqhC,iBAAiB1xB,EAAKub,MAejC4kP,EAAgBhuO,OAAS,SAAUmuO,GACjC,IAAIltQ,EAAQtD,KAAKsD,MACb/C,EAAOP,KAAK49C,MAEZr9C,GAAQiwQ,EACVjwQ,EAAKo+C,mBAAkB,SAAUlzB,GAC/BA,EAAG4xB,SAAQ,WACT/5C,EAAM++B,OAAO5W,SAIjBnoB,EAAMC,aAkBV,IAAIhE,EAAWojI,EACfjgI,EAAOC,QAAUpD,G,qBC3MjB,IAAI6I,EAAU,EAAQ,QAElBI,EAAmB,EAAQ,QAE3B5F,EAAS,EAAQ,QAEjBw2C,EAAY,EAAQ,QAEpBv1B,EAAU,EAAQ,QAElB+uF,EAA0B/uF,EAAQ+uF,wBAElC0/B,EAAsB,EAAQ,QAE9B59B,EAAgB,EAAQ,QAExBjpB,EAAkBipB,EAAcjpB,gBAEhC9iF,EAAgB,EAAQ,QAExBC,EAA+BD,EAAcC,6BAE7CC,EAAuB,EAAQ,QAoB/B4nQ,EAAYroQ,EAAQW,kBAAkB,CACxCtJ,KAAM,aAENuJ,KAAM,SAAUnJ,GACd4wQ,EAAUxnQ,WAAWjJ,KAAM,OAAQkJ,WAGnClJ,KAAKmJ,qBAAuB,IAAIN,EAAqBjG,EAAOiC,KAAK7E,KAAKQ,QAASR,MAAO4C,EAAOiC,KAAK7E,KAAKoJ,WAAYpJ,OACnHA,KAAKw0D,kBAAkBx0D,KAAK0wQ,yBAE5B1wQ,KAAKqJ,kBAAkBxJ,IAGzBijE,YAAa,SAAUr+C,GACrBgsP,EAAU3mQ,UAAU9J,KAAM,cAAeykB,GACzCzkB,KAAKw0D,kBAAkBx0D,KAAK0wQ,0BAE9B9wQ,eAAgB,SAAUC,EAAQC,GAChC,OAAO0I,EAAiBxI,KAAM,CAC5BsJ,gBAAiB,CAAC,SAClBC,gBAAiB3G,EAAO4G,MAAMZ,EAA8B5I,SAGhE0wQ,sBAAuB,WAKrB,IAJA,IAAInwQ,EAAOP,KAAKoJ,aACZW,EAAWxJ,EAAKyJ,aAAa,SAC7BwlH,EAAa,GAERvhH,EAAI,EAAGqK,EAAM/X,EAAK4hB,QAASlU,EAAIqK,EAAKrK,IAC3CuhH,EAAW3uH,KAAK,CACd8L,KAAMpM,EAAK08C,QAAQhvC,GACnBN,MAAOpN,EAAK2B,IAAI6H,EAAUkE,GAC1BxG,SAAUgkF,EAAgBlrF,EAAM0N,EAAG,cAIvC,OAAOuhH,GAGT5lH,cAAe,SAAUhJ,GACvB,IAAIL,EAAOP,KAAKQ,UACZqJ,EAAS4mQ,EAAU3mQ,UAAU9J,KAAM,gBAAiBY,GAEpDiyG,EAAY,GAMhB,OALAtyG,EAAKpB,KAAKoB,EAAKyJ,aAAa,UAAU,SAAU2D,GAC9CklG,EAAUhyG,KAAK8M,MAEjB9D,EAAOM,QAAUyoG,EAAwBC,EAAWjyG,EAAWL,EAAKye,UAAU9c,IAAI,qBAClF2H,EAAOQ,MAAMxJ,KAAK,WACXgJ,GAETR,kBAAmB,SAAUxJ,GAE3Bu5C,EAAU1wC,gBAAgB7I,EAAQ,YAAa,CAAC,SAChD,IAAI4J,EAAqB5J,EAAO6J,UAC5BC,EAAuB9J,EAAO6B,SAASgI,UAE3CD,EAAmBrI,KAAOqI,EAAmBrI,MAAQvB,EAAOsB,MAAMC,KAClEuI,EAAqBvI,KAAOuI,EAAqBvI,MAAQvB,EAAO6B,SAASP,MAAMC,MAEjFL,cAAe,CACbC,OAAQ,EACRC,EAAG,EACHqJ,iBAAiB,EACjB+xC,gBAAgB,EAEhB3jB,OAAQ,CAAC,MAAO,OAChBstB,OAAQ,CAAC,EAAG,OAEZwJ,WAAW,EACX1N,WAAY,GAEZ4jC,SAAU,EAGVirL,kBAAmB,EAEnBljN,eAAgB,GAEhBmjN,YAAa,GAEb5lE,mBAAmB,EAKnB0d,iBAAkB,EAElB5iI,kBAAkB,EAElBv7E,KAAM,EACNC,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRlJ,MAAO,KACP0K,OAAQ,KACR/K,MAAO,CAELikC,QAAQ,EACRhkC,MAAM,EAEN4J,SAAU,QAEV6lQ,QAAS,OAGT5uL,OAAQ,MAER43I,YAAa,GAEbi3C,oBAAqB,GAMvBpnQ,UAAW,CACTtI,MAAM,EAEN6J,OAAQ,GAER+K,QAAS,GACTpU,QAAQ,EACRL,UAAW,CAETC,MAAO,EACP/B,KAAM,UAGVyL,UAAW,CACTE,YAAa,GAGfgjD,cAAe,YAEfF,oBAAqB,aACrBrsD,gBAAiB,cAGrBe,EAAOyM,MAAMohQ,EAAWn+H,GACxB,IAAI/yI,EAAWkxQ,EACf/tQ,EAAOC,QAAUpD,G,qBCvLjB,IAAIqD,EAAS,EAAQ,QAEjB2J,EAAe,EAAQ,QAEvBsX,EAAU,EAAQ,QAElB2Q,EAAe3Q,EAAQ2Q,aAEvBzL,EAAa,EAAQ,QAqBrB5pB,EAAOyD,EAAOzD,KAKdmtL,EAAkB,CAAC,OAAQ,QAAS,MAAO,SAAU,QAAS,UAK9DykF,EAAW,CAAC,CAAC,QAAS,OAAQ,SAAU,CAAC,SAAU,MAAO,WAE9D,SAASC,EAAUlqQ,EAAQxD,EAAOwH,EAAKqoD,EAAU89M,GAC/C,IAAIxrQ,EAAI,EACJC,EAAI,EAEQ,MAAZytD,IACFA,EAAWpgD,KAGI,MAAbk+P,IACFA,EAAYl+P,KAGd,IAAIm+P,EAAqB,EACzB5tQ,EAAM85B,WAAU,SAAU7d,EAAOrP,GAC/B,IAIIihQ,EACAC,EALApmQ,EAAWuU,EAAMvU,SACjBgB,EAAOuT,EAAMtT,kBACbolQ,EAAY/tQ,EAAMw7B,QAAQ5uB,EAAM,GAChCohQ,EAAgBD,GAAaA,EAAUplQ,kBAI3C,GAAe,eAAXnF,EAAyB,CAC3B,IAAIyqQ,EAAQvlQ,EAAKxK,OAAS8vQ,GAAiBA,EAAc7rQ,EAAIuG,EAAKvG,EAAI,GACtE0rQ,EAAQ1rQ,EAAI8rQ,EAGRJ,EAAQh+M,GAAY5zC,EAAMmqI,SAC5BjkJ,EAAI,EACJ0rQ,EAAQI,EACR7rQ,GAAKwrQ,EAAqBpmQ,EAC1BomQ,EAAqBllQ,EAAKE,QAG1BglQ,EAAqBrlQ,KAAK4E,IAAIygQ,EAAoBllQ,EAAKE,YAEpD,CACL,IAAIslQ,EAAQxlQ,EAAKE,QAAUolQ,GAAiBA,EAAc5rQ,EAAIsG,EAAKtG,EAAI,GACvE0rQ,EAAQ1rQ,EAAI8rQ,EAERJ,EAAQH,GAAa1xP,EAAMmqI,SAC7BjkJ,GAAKyrQ,EAAqBpmQ,EAC1BpF,EAAI,EACJ0rQ,EAAQI,EACRN,EAAqBllQ,EAAKxK,OAE1B0vQ,EAAqBrlQ,KAAK4E,IAAIygQ,EAAoBllQ,EAAKxK,OAIvD+d,EAAMmqI,UAIV1+I,EAAS,GAAKvF,EACduF,EAAS,GAAKtF,EACH,eAAXoB,EAA0BrB,EAAI0rQ,EAAQrmQ,EAAMpF,EAAI0rQ,EAAQtmQ,MAa5D,IAAI9E,EAAMgrQ,EASNS,EAAO7uQ,EAAO4G,MAAMwnQ,EAAW,YAS/BU,EAAO9uQ,EAAO4G,MAAMwnQ,EAAW,cAiBnC,SAASpB,EAAiBh6L,EAAc+7L,EAAe1vL,GACrD,IAAIiwH,EAAiBy/D,EAAcnwQ,MAC/B2wM,EAAkBw/D,EAAczlQ,OAChCzG,EAAI+uB,EAAaohD,EAAanwE,EAAGysM,GACjCxsM,EAAI8uB,EAAaohD,EAAalwE,EAAGysM,GACjC73I,EAAK9lC,EAAaohD,EAAatb,GAAI43I,GACnC33I,EAAK/lC,EAAaohD,EAAarb,GAAI43I,GAMvC,OALCp5L,MAAMtT,IAAMsT,MAAMi6E,WAAWpd,EAAanwE,OAASA,EAAI,IACvDsT,MAAMuhD,IAAOvhD,MAAMi6E,WAAWpd,EAAatb,QAAUA,EAAK43I,IAC1Dn5L,MAAMrT,IAAMqT,MAAMi6E,WAAWpd,EAAalwE,OAASA,EAAI,IACvDqT,MAAMwhD,IAAOxhD,MAAMi6E,WAAWpd,EAAarb,QAAUA,EAAK43I,GAC3DlwH,EAASl5D,EAAWsB,kBAAkB43D,GAAU,GACzC,CACLzgF,MAAOqK,KAAK4E,IAAI6pD,EAAK70D,EAAIw8E,EAAO,GAAKA,EAAO,GAAI,GAChD/1E,OAAQL,KAAK4E,IAAI8pD,EAAK70D,EAAIu8E,EAAO,GAAKA,EAAO,GAAI,IAqBrD,SAAS9/B,EAAcyzB,EAAc+7L,EAAe1vL,GAClDA,EAASl5D,EAAWsB,kBAAkB43D,GAAU,GAChD,IAAIiwH,EAAiBy/D,EAAcnwQ,MAC/B2wM,EAAkBw/D,EAAczlQ,OAChC3B,EAAOiqB,EAAaohD,EAAarrE,KAAM2nM,GACvC1nM,EAAMgqB,EAAaohD,EAAaprE,IAAK2nM,GACrC1nM,EAAQ+pB,EAAaohD,EAAanrE,MAAOynM,GACzCxnM,EAAS8pB,EAAaohD,EAAalrE,OAAQynM,GAC3C3wM,EAAQgzB,EAAaohD,EAAap0E,MAAO0wM,GACzChmM,EAASsoB,EAAaohD,EAAa1pE,OAAQimM,GAC3Cy/D,EAAiB3vL,EAAO,GAAKA,EAAO,GACpC4vL,EAAmB5vL,EAAO,GAAKA,EAAO,GACtCj8C,EAAS4vC,EAAa5vC,OA8C1B,OA5CIjtB,MAAMvX,KACRA,EAAQ0wM,EAAiBznM,EAAQonQ,EAAmBtnQ,GAGlDwO,MAAM7M,KACRA,EAASimM,EAAkBznM,EAASknQ,EAAiBpnQ,GAGzC,MAAVw7B,IAQEjtB,MAAMvX,IAAUuX,MAAM7M,KACpB85B,EAASksK,EAAiBC,EAC5B3wM,EAAyB,GAAjB0wM,EAERhmM,EAA2B,GAAlBimM,GAKTp5L,MAAMvX,KACRA,EAAQwkC,EAAS95B,GAGf6M,MAAM7M,KACRA,EAAS1K,EAAQwkC,IAKjBjtB,MAAMxO,KACRA,EAAO2nM,EAAiBznM,EAAQjJ,EAAQqwQ,GAGtC94P,MAAMvO,KACRA,EAAM2nM,EAAkBznM,EAASwB,EAAS0lQ,GAIpCh8L,EAAarrE,MAAQqrE,EAAanrE,OACxC,IAAK,SACHF,EAAO2nM,EAAiB,EAAI1wM,EAAQ,EAAIygF,EAAO,GAC/C,MAEF,IAAK,QACH13E,EAAO2nM,EAAiB1wM,EAAQqwQ,EAChC,MAGJ,OAAQj8L,EAAaprE,KAAOorE,EAAalrE,QACvC,IAAK,SACL,IAAK,SACHF,EAAM2nM,EAAkB,EAAIjmM,EAAS,EAAI+1E,EAAO,GAChD,MAEF,IAAK,SACHz3E,EAAM2nM,EAAkBjmM,EAAS0lQ,EACjC,MAIJrnQ,EAAOA,GAAQ,EACfC,EAAMA,GAAO,EAETuO,MAAMvX,KAERA,EAAQ0wM,EAAiB2/D,EAAmBtnQ,GAAQE,GAAS,IAG3DsO,MAAM7M,KAERA,EAASimM,EAAkBy/D,EAAiBpnQ,GAAOE,GAAU,IAG/D,IAAIsB,EAAO,IAAIO,EAAahC,EAAO03E,EAAO,GAAIz3E,EAAMy3E,EAAO,GAAIzgF,EAAO0K,GAEtE,OADAF,EAAKi2E,OAASA,EACPj2E,EA0CT,SAASguK,EAAgBvuJ,EAAImqD,EAAc+7L,EAAe1vL,EAAQzyE,GAChE,IAAIkmD,GAAKlmD,IAAQA,EAAIs9K,IAAMt9K,EAAIs9K,GAAG,GAC9B3mK,GAAK3W,IAAQA,EAAIs9K,IAAMt9K,EAAIs9K,GAAG,GAC9BoB,EAAe1+K,GAAOA,EAAI0+K,cAAgB,MAE9C,GAAKx4H,GAAMvvC,EAAX,CAIA,IAAIna,EAEJ,GAAqB,QAAjBkiL,EACFliL,EAAmB,UAAZyf,EAAGhsB,KAAmB,IAAI8M,EAAa,EAAG,GAAIqpE,EAAap0E,OAAS,GAAIo0E,EAAa1pE,QAAU,GAAKuf,EAAGxf,uBAI9G,GAFAD,EAAOyf,EAAGxf,kBAENwf,EAAGgY,qBAAsB,CAC3B,IAAIn1B,EAAYmd,EAAGoY,oBAGnB73B,EAAOA,EAAKtE,QACZsE,EAAKk5B,eAAe52B,GAKxBsnE,EAAezzB,EAAcv/C,EAAO6O,SAAS,CAC3CjQ,MAAOwK,EAAKxK,MACZ0K,OAAQF,EAAKE,QACZ0pE,GAAe+7L,EAAe1vL,GAIjC,IAAI6vL,EAAQrmP,EAAGzgB,SACXkH,EAAKwjD,EAAIkgB,EAAanwE,EAAIuG,EAAKvG,EAAI,EACnC0M,EAAKgU,EAAIyvD,EAAalwE,EAAIsG,EAAKtG,EAAI,EACvC+lB,EAAGzL,KAAK,WAA6B,QAAjBkuK,EAAyB,CAACh8K,EAAIC,GAAM,CAAC2/P,EAAM,GAAK5/P,EAAI4/P,EAAM,GAAK3/P,KAQrF,SAASqiL,EAAe30L,EAAQo1L,GAC9B,OAAqC,MAA9Bp1L,EAAOkxQ,EAAS97E,GAAO,KAA6C,MAA9Bp1L,EAAOkxQ,EAAS97E,GAAO,KAA6C,MAA9Bp1L,EAAOkxQ,EAAS97E,GAAO,IA6B5G,SAAS9+C,EAAiB47H,EAActtP,EAAWjV,IAChD5M,EAAOqjB,SAASzW,KAASA,EAAM,IAChC,IAAIqsJ,EAAarsJ,EAAIqsJ,YACpBj5J,EAAOogB,QAAQ64I,KAAgBA,EAAa,CAACA,EAAYA,IAC1D,IAAIm2G,EAAUnxP,EAAMkwP,EAAS,GAAI,GAC7BkB,EAAUpxP,EAAMkwP,EAAS,GAAI,GAIjC,SAASlwP,EAAM2H,EAAOysK,GACpB,IAAIi9E,EAAY,GACZC,EAAgB,EAChBC,EAAS,GACTC,EAAmB,EACnBC,EAAoB,EAYxB,GAXAnzQ,EAAKqpB,GAAO,SAAU7b,GACpBylQ,EAAOzlQ,GAAQolQ,EAAaplQ,MAE9BxN,EAAKqpB,GAAO,SAAU7b,GAGpB4lQ,EAAQ9tP,EAAW9X,KAAUulQ,EAAUvlQ,GAAQylQ,EAAOzlQ,GAAQ8X,EAAU9X,IACxEu+C,EAASgnN,EAAWvlQ,IAASwlQ,IAC7BjnN,EAASknN,EAAQzlQ,IAAS0lQ,OAGxBx2G,EAAWo5B,GAQb,OANI/pI,EAASzmC,EAAW+D,EAAM,IAC5B4pP,EAAO5pP,EAAM,IAAM,KACV0iC,EAASzmC,EAAW+D,EAAM,MACnC4pP,EAAO5pP,EAAM,IAAM,MAGd4pP,EAOT,GAAIC,IAAqBC,GAAsBH,EAK1C,IAAIA,GAAiBG,EACtB,OAAOJ,EAGP,IAAK,IAAIjkQ,EAAI,EAAGA,EAAIua,EAAMvd,OAAQgD,IAAK,CACrC,IAAItB,EAAO6b,EAAMva,GAEjB,IAAKskQ,EAAQL,EAAWvlQ,IAAS4lQ,EAAQR,EAAcplQ,GAAO,CAC5DulQ,EAAUvlQ,GAAQolQ,EAAaplQ,GAC/B,OAIJ,OAAOulQ,EAjBT,OAAOE,EAqBX,SAASG,EAAQxsP,EAAKpZ,GACpB,OAAOoZ,EAAIhJ,eAAepQ,GAG5B,SAASu+C,EAASnlC,EAAKpZ,GACrB,OAAoB,MAAboZ,EAAIpZ,IAA+B,SAAdoZ,EAAIpZ,GAGlC,SAASo3B,EAAKvb,EAAOpW,EAAQrS,GAC3BZ,EAAKqpB,GAAO,SAAU7b,GACpByF,EAAOzF,GAAQ5M,EAAO4M,MAnE1Bo3B,EAAKgtO,EAAS,GAAIgB,EAAcC,GAChCjuO,EAAKgtO,EAAS,GAAIgB,EAAcE,GA6ElC,SAASn8L,EAAgB/1E,GACvB,OAAO6sL,EAAiB,GAAI7sL,GAS9B,SAAS6sL,EAAiBx6K,EAAQrS,GAIhC,OAHAA,GAAUqS,GAAUjT,EAAKmtL,GAAiB,SAAU3/K,GAClD5M,EAAOgd,eAAepQ,KAAUyF,EAAOzF,GAAQ5M,EAAO4M,OAEjDyF,EAGTzP,EAAQ2pL,gBAAkBA,EAC1B3pL,EAAQouQ,SAAWA,EACnBpuQ,EAAQqD,IAAMA,EACdrD,EAAQ8uQ,KAAOA,EACf9uQ,EAAQ+uQ,KAAOA,EACf/uQ,EAAQitQ,iBAAmBA,EAC3BjtQ,EAAQw/C,cAAgBA,EACxBx/C,EAAQq3K,gBAAkBA,EAC1Br3K,EAAQ6xL,eAAiBA,EACzB7xL,EAAQwzI,iBAAmBA,EAC3BxzI,EAAQmzE,gBAAkBA,EAC1BnzE,EAAQiqL,iBAAmBA,G,qBCtf3B,IAAIxkL,EAAU,EAAQ,QAEtB,EAAQ,QAER,EAAQ,QAER,IAAIoqQ,EAAgB,EAAQ,QAExBC,EAAgB,EAAQ,QAoB5BrqQ,EAAQ2mB,eAAeyjP,GACvBpqQ,EAAQyrB,eAAe4+O,I,qBC7BvB,IAAIvzQ,EAAQ,EAAQ,QAEhBoF,EAAWpF,EAAMoF,SACjBmN,EAAWvS,EAAMuS,SACjBjS,EAASN,EAAMM,OACfL,EAAOD,EAAMC,KAEb4pB,EAAa,EAAQ,QAErBjmB,EAAU,EAAQ,QAElBub,EAAQ,EAAQ,QAEhBwF,EAAU,EAAQ,QAElB8vF,EAAqB9vF,EAAQ8vF,mBAC7BF,EAAY5vF,EAAQ4vF,UAEpB1wG,EAAU,EAAQ,QAElBC,EAAeD,EAAQC,aAEvB0vQ,EAAa,EAAQ,QAErBxpI,EAAU,EAAQ,QAElBqnC,EAAmBrnC,EAAQhkG,eAE3BgrB,EAAc,EAAQ,QAEtBg3G,EAAsBh3G,EAAYg3G,oBAoBlCt2J,EAAK/E,KAAK+E,GAwCV4uC,EAAc,SAAUjwC,EAAWC,GAIrCxP,KAAKwP,IAAMA,EAKXxP,KAAKuP,UAAYA,EAEjBkC,EAASjC,EAAK,CACZyB,YAAa,EACbD,cAAe,EACfD,cAAe,EACfD,eAAgB,EAChBc,QAAQ,IAMV5R,KAAKsD,MAAQ,IAAIR,EAAQ6B,MAEzB,IAAIguQ,EAAY,IAAI7vQ,EAAQ6B,MAAM,CAChCqG,SAAUwE,EAAIxE,SAAS1D,QACvBqJ,SAAUnB,EAAImB,WAIhBgiQ,EAAUjkQ,kBACV1O,KAAK4yQ,WAAaD,EAAUrkQ,UAC5BtO,KAAK6yQ,WAAaF,GAGpBnzN,EAAY1xC,UAAY,CACtBC,YAAayxC,EACbszN,WAAY,SAAUnmQ,GACpB,QAASomQ,EAASpmQ,IAEpBrH,IAAK,SAAUqH,GACbomQ,EAASpmQ,GAAMG,KAAK9M,OAEtBygD,SAAU,WACR,OAAOzgD,KAAKsD,QAGhB,IAAIyvQ,EAAW,CAIb7tN,SAAU,WACR,IAAI11C,EAAMxP,KAAKwP,IACXD,EAAYvP,KAAKuP,UAErB,GAAKA,EAAUrN,IAAI,iBAAnB,CAIA,IAAI21B,EAAS73B,KAAKuP,UAAUG,KAAK6V,YAC7B0d,EAASjjC,KAAK4yQ,WACdI,EAAM,CAACn7O,EAAO,GAAI,GAClBo7O,EAAM,CAACp7O,EAAO,GAAI,GAElBoL,IACFstI,EAAiByiG,EAAKA,EAAK/vO,GAC3BstI,EAAiB0iG,EAAKA,EAAKhwO,IAG7B,IAAI1hC,EAAY/B,EAAO,CACrBgvG,QAAS,SACRj/F,EAAU0R,SAAS,sBAAsB29B,gBAC5C5+C,KAAKsD,MAAMgC,IAAI,IAAIxC,EAAQovC,KAAK,CAE9Bu/B,KAAM,OACNn9C,kBAAkB,EAClB9iB,MAAO,CACL4oD,GAAI44M,EAAI,GACR34M,GAAI24M,EAAI,GACR14M,GAAI24M,EAAI,GACR14M,GAAI04M,EAAI,IAEVztQ,MAAOjE,EACPqsN,uBAAwBp+M,EAAIo+M,wBAA0B,EACtDh8M,QAAQ,EACRR,GAAI,KAEN,IAAI8hQ,EAAS3jQ,EAAUrN,IAAI,mBACvBixQ,EAAY5jQ,EAAUrN,IAAI,uBAC1BkxQ,EAAc7jQ,EAAUrN,IAAI,0BAA4B,EAM5D,GAJ2B,kBAAhBkxQ,IACTA,EAAc,CAACA,EAAaA,IAGhB,MAAVF,EAAgB,CACI,kBAAXA,IAETA,EAAS,CAACA,EAAQA,IAGK,kBAAdC,GAA+C,kBAAdA,IAE1CA,EAAY,CAACA,EAAWA,IAG1B,IAAIE,EAAcF,EAAU,GACxBG,EAAeH,EAAU,GAC7Bh0Q,EAAK,CAAC,CACJimC,OAAQ51B,EAAImB,SAAW9E,KAAK+E,GAAK,EACjCkE,OAAQs+P,EAAY,GACpBv/P,EAAG,GACF,CACDuxB,OAAQ51B,EAAImB,SAAW9E,KAAK+E,GAAK,EACjCkE,OAAQs+P,EAAY,GACpBv/P,EAAGhI,KAAK4sB,MAAMu6O,EAAI,GAAKC,EAAI,KAAOD,EAAI,GAAKC,EAAI,KAAOD,EAAI,GAAKC,EAAI,KAAOD,EAAI,GAAKC,EAAI,QACrF,SAAU37O,EAAOnwB,GACnB,GAAsB,SAAlB+rQ,EAAO/rQ,IAAsC,MAAjB+rQ,EAAO/rQ,GAAgB,CACrD,IAAI0rC,EAAS7vC,EAAakwQ,EAAO/rQ,IAASksQ,EAAc,GAAIC,EAAe,EAAGD,EAAaC,EAAc/xQ,EAAUs9C,QAAQ,GAEvHhrC,EAAIyjB,EAAMzjB,EAAIyjB,EAAMxiB,OACpBzC,EAAM,CAAC2gQ,EAAI,GAAKn/P,EAAIhI,KAAK04C,IAAI/0C,EAAImB,UAAWqiQ,EAAI,GAAKn/P,EAAIhI,KAAKw4C,IAAI70C,EAAImB,WAC1EkiC,EAAO7yB,KAAK,CACVrP,SAAU2mB,EAAM8N,OAChBp6B,SAAUqH,EACVT,QAAQ,EACRR,GAAI,KAENpR,KAAKsD,MAAMgC,IAAIutC,MAEhB7yC,SAOPuzQ,cAAe,WACb,IAAIhkQ,EAAYvP,KAAKuP,UACjBC,EAAMxP,KAAKwP,IACXgkQ,EAAWC,EAAoBzzQ,KAAMuP,EAAWC,GAChDkkQ,EAAWC,EAAe3zQ,KAAMuP,EAAWC,GAC/CokQ,EAAmBrkQ,EAAWmkQ,EAAUF,GACxCK,EAAoB7zQ,KAAMuP,EAAWC,IAMvC60E,SAAU,WACR,IAAI70E,EAAMxP,KAAKwP,IACXD,EAAYvP,KAAKuP,UACjB5C,EAAOrI,EAASkL,EAAI60E,SAAU90E,EAAUrN,IAAI,SAEhD,GAAKyK,EAAL,CAIA,IASI+hD,EAOAqwL,EAhBAl5L,EAAet2C,EAAUrN,IAAI,gBAC7B8O,EAAgBxB,EAAIwB,cACpBtN,EAAiB6L,EAAU0R,SAAS,iBACpCnW,EAAMyE,EAAUrN,IAAI,YAAc,EAClC21B,EAAS73B,KAAKuP,UAAUG,KAAK6V,YAC7BuuP,EAAYj8O,EAAO,GAAKA,EAAO,IAAM,EAAI,EACzCxlB,EAAM,CAAkB,UAAjBwzC,EAA2BhuB,EAAO,GAAKi8O,EAAYhpQ,EAAuB,QAAjB+6C,EAAyBhuB,EAAO,GAAKi8O,EAAYhpQ,GAAO+sB,EAAO,GAAKA,EAAO,IAAM,EAErJk8O,EAAqBluN,GAAgBr2C,EAAIyB,YAAcD,EAAgBlG,EAAM,GAEzEkpQ,EAAezkQ,EAAUrN,IAAI,cAEb,MAAhB8xQ,IACFA,EAAeA,EAAepjQ,EAAK,KAKjCmjQ,EAAqBluN,GACvB6I,EAAcggH,EAAgBl/J,EAAImB,SAA0B,MAAhBqjQ,EAAuBA,EAAexkQ,EAAImB,SACtFK,IAEA09C,EAAculN,EAAczkQ,EAAKq2C,EAAcmuN,GAAgB,EAAGn8O,GAClEknN,EAAyBvvO,EAAIuvO,uBAEC,MAA1BA,IACFA,EAAyBlzO,KAAKC,IAAIizO,EAAyBlzO,KAAKw4C,IAAIqK,EAAY/9C,YAC/EgpB,SAASolN,KAA4BA,EAAyB,QAInE,IAAIp7O,EAAWD,EAAeE,UAC1BswQ,EAAc3kQ,EAAUrN,IAAI,gBAAgB,IAAS,GACrDu1K,EAAWy8F,EAAYz8F,SACvBtkH,EAAW7uD,EAASkL,EAAI0vO,qBAAsBg1B,EAAY/gN,SAAU4rL,GAGpEo1B,EAA4B,MAAZ18F,GAAgC,MAAZtkH,EAAmBpqC,EAAW+wM,aAAantN,EAAMwmD,EAAUxvD,EAAU8zK,EAAU,CACrH08C,QAAS,EACTz8C,YAAaw8F,EAAYx8F,cACtB/qK,EACDuwH,EAAa3tH,EAAUrN,IAAI,WAAW,GACtC+6B,EAAW1tB,EAAU0tB,SACrButH,EAAkB,CACpB1oH,cAAe7E,EACftwB,KAAMA,EACNtC,MAAO,CAAC,SAEVmgJ,EAAgBvtH,EAAW,SAAW1tB,EAAUwyB,eAChD,IAAIV,EAAS,IAAIv+B,EAAQyC,KAAK,CAE5BksE,KAAM,OACN2iM,WAAYznQ,EACZ0nQ,gBAAiBF,EACjBnpQ,SAAUqH,EACV1B,SAAU+9C,EAAY/9C,SACtBiB,OAAQwkN,EAAc7mN,GACtB6B,GAAI,EACJu4C,QAASuzE,GAAcA,EAAW97H,KAAO5B,EAAO,CAC9CquB,QAASlhB,EACTmoD,UAAW,WACT,OAAOnoD,GAET69I,gBAAiBA,GAChBttB,GAAc,OAEnBp6H,EAAQmqE,aAAa5rC,EAAO77B,MAAO9B,EAAgB,CACjDiC,KAAMwuQ,EACNxwQ,SAAUA,EACVE,SAAUH,EAAeI,gBAAkByL,EAAUrN,IAAI,4BACzD2D,UAAWnC,EAAexB,IAAI,UAAYwsD,EAAY7oD,UACtDD,kBAAmBlC,EAAexB,IAAI,kBAAoBwsD,EAAY9oD,oBAGpE2J,EAAUrN,IAAI,kBAChBm/B,EAAOQ,UAAYw0L,EAAsB9mN,GACzC8xB,EAAOQ,UAAUy0L,WAAa,WAC9Bj1L,EAAOQ,UAAUl1B,KAAOA,GAI1B3M,KAAK6yQ,WAAWvtQ,IAAI+7B,GAEpBA,EAAO3yB,kBACP1O,KAAKsD,MAAMgC,IAAI+7B,GACfA,EAAO7yB,wBAIP6nN,EAAwB72K,EAAY62K,sBAAwB,SAAU9mN,GACxE,IAAIsyB,EAAY,CACdC,cAAevyB,EAAU0tB,SACzB8E,eAAgBxyB,EAAUwyB,gBAG5B,OADAF,EAAUtyB,EAAU0tB,SAAW,SAAW1tB,EAAUwyB,eAC7CF,GAiBL6sI,EAAkBlvH,EAAYkvH,gBAAkB,SAAU4lG,EAAcxmM,EAAckD,GACxF,IACInrE,EACAD,EAFA2uQ,EAAe9gK,EAAU3lC,EAAewmM,GAsB5C,OAlBI3gK,EAAmB4gK,IAErB3uQ,EAAoBorE,EAAY,EAAI,MAAQ,SAC5CnrE,EAAY,UACH8tG,EAAmB4gK,EAAe3jQ,IAE3ChL,EAAoBorE,EAAY,EAAI,SAAW,MAC/CnrE,EAAY,WAEZD,EAAoB,SAGlBC,EADE0uQ,EAAe,GAAKA,EAAe3jQ,EACzBogE,EAAY,EAAI,QAAU,OAE1BA,EAAY,EAAI,OAAS,SAIlC,CACLrgE,SAAU4jQ,EACV1uQ,UAAWA,EACXD,kBAAmBA,IAIvB,SAASquQ,EAAczkQ,EAAKm+D,EAAc6mM,EAAY38O,GACpD,IACIhyB,EACAD,EAFA2uQ,EAAe9gK,EAAU+gK,EAAahlQ,EAAImB,UAG1CvJ,EAAUywB,EAAO,GAAKA,EAAO,GAC7B48O,EAA0B,UAAjB9mM,IAA6BvmE,GAA4B,UAAjBumE,GAA4BvmE,EAkBjF,OAhBIusG,EAAmB4gK,EAAe3jQ,EAAK,IACzChL,EAAoB6uQ,EAAS,SAAW,MACxC5uQ,EAAY,UACH8tG,EAAmB4gK,EAAoB,IAAL3jQ,IAC3ChL,EAAoB6uQ,EAAS,MAAQ,SACrC5uQ,EAAY,WAEZD,EAAoB,SAGlBC,EADE0uQ,EAAoB,IAAL3jQ,GAAY2jQ,EAAe3jQ,EAAK,EACrC6jQ,EAAS,OAAS,QAElBA,EAAS,QAAU,QAI5B,CACL9jQ,SAAU4jQ,EACV1uQ,UAAWA,EACXD,kBAAmBA,GAIvB,IAAIwwN,EAAgB52K,EAAY42K,cAAgB,SAAU7mN,GACxD,IAAI2tH,EAAa3tH,EAAUrN,IAAI,WAC/B,OAAOqN,EAAUrN,IAAI,aAChBqN,EAAUrN,IAAI,iBAAmBg7H,GAAcA,EAAW97H,OAGjE,SAASwyQ,EAAmBrkQ,EAAWmkQ,EAAUgB,GAC/C,IAAIxtG,EAAoB33J,EAAUG,MAAlC,CAOA,IAAIioK,EAAepoK,EAAUrN,IAAI,0BAC7B01K,EAAeroK,EAAUrN,IAAI,0BAGjCwxQ,EAAWA,GAAY,GACvBgB,EAAUA,GAAW,GACrB,IAAIC,EAAajB,EAAS,GACtBkB,EAAYlB,EAAS,GACrBmB,EAAYnB,EAASA,EAASzoQ,OAAS,GACvC6pQ,EAAYpB,EAASA,EAASzoQ,OAAS,GACvC8pQ,EAAYL,EAAQ,GACpBj1E,EAAWi1E,EAAQ,GACnBM,EAAWN,EAAQA,EAAQzpQ,OAAS,GACpCy0L,EAAWg1E,EAAQA,EAAQzpQ,OAAS,IAEnB,IAAjB0sK,GACFs9F,EAASN,GACTM,EAASF,IACAG,EAAqBP,EAAYC,KACtCj9F,GACFs9F,EAASL,GACTK,EAASx1E,KAETw1E,EAASN,GACTM,EAASF,MAIQ,IAAjBn9F,GACFq9F,EAASJ,GACTI,EAASD,IACAE,EAAqBJ,EAAWD,KACrCj9F,GACFq9F,EAASH,GACTG,EAASv1E,KAETu1E,EAASJ,GACTI,EAASD,MAKf,SAASC,EAASxpP,GAChBA,IAAOA,EAAG6nB,QAAS,GAGrB,SAAS4hO,EAAqB5pO,EAAStV,EAAM04B,GAE3C,IAAIymN,EAAY7pO,GAAWA,EAAQr/B,kBAAkBvE,QACjD0tQ,EAAWp/O,GAAQA,EAAK/pB,kBAAkBvE,QAE9C,GAAKytQ,GAAcC,EAAnB,CAMA,IAAIC,EAAgB3C,EAAWtvO,SAAS,IAIxC,OAHAsvO,EAAWttO,OAAOiwO,EAAeA,GAAgB/pO,EAAQ36B,UACzDwkQ,EAAUjwO,eAAewtO,EAAW5uO,IAAI,GAAIuxO,EAAe/pO,EAAQzH,sBACnEuxO,EAASlwO,eAAewtO,EAAW5uO,IAAI,GAAIuxO,EAAer/O,EAAK6N,sBACxDsxO,EAAU5oO,UAAU6oO,IAG7B,SAASrB,EAAqBluN,GAC5B,MAAwB,WAAjBA,GAA8C,WAAjBA,EAGtC,SAASyvN,EAAYr1N,EAAas1N,EAAeC,EAAc10D,EAAe20D,GAK5E,IAJA,IAAIf,EAAU,GACV1B,EAAM,GACNC,EAAM,GAEDhlQ,EAAI,EAAGA,EAAIgyC,EAAYh1C,OAAQgD,IAAK,CAC3C,IAAIygG,EAAYzuD,EAAYhyC,GAAG5B,MAC/B2mQ,EAAI,GAAKtkK,EACTskK,EAAI,GAAK,EACTC,EAAI,GAAKvkK,EACTukK,EAAI,GAAKuC,EAELD,IACFhlG,EAAiByiG,EAAKA,EAAKuC,GAC3BhlG,EAAiB0iG,EAAKA,EAAKsC,IAI7B,IAAIG,EAAS,IAAI5yQ,EAAQovC,KAAK,CAE5Bu/B,KAAMgkM,EAAQ,IAAMx1N,EAAYhyC,GAAGihG,UACnC56E,kBAAkB,EAClB9iB,MAAO,CACL4oD,GAAI44M,EAAI,GACR34M,GAAI24M,EAAI,GACR14M,GAAI24M,EAAI,GACR14M,GAAI04M,EAAI,IAEVztQ,MAAOs7M,EACP1vM,GAAI,EACJQ,QAAQ,IAEV8iQ,EAAQ7zQ,KAAK60Q,GAGf,OAAOhB,EAGT,SAASjB,EAAoBjzN,EAAajxC,EAAWC,GACnD,IAAIE,EAAOH,EAAUG,KACjBkwI,EAAYrwI,EAAU0R,SAAS,YAEnC,GAAK2+H,EAAU19I,IAAI,UAAWwN,EAAKjB,MAAMiyC,UAAzC,CAWA,IAPA,IAAIG,EAAiB++F,EAAU3+H,SAAS,aACpCu0P,EAAehmQ,EAAIuB,cAAgB6uI,EAAU19I,IAAI,UACjD+9C,EAAcvwC,EAAKwwC,iBACnBszN,EAAW8B,EAAYr1N,EAAaO,EAAYoyN,WAAY4C,EAAc/jQ,EAASovC,EAAejC,eAAgB,CACpHC,OAAQtvC,EAAUrN,IAAI,8BACpB,SAEK+L,EAAI,EAAGA,EAAIulQ,EAASvoQ,OAAQgD,IACnCuyC,EAAYl9C,MAAMgC,IAAIkuQ,EAASvlQ,IAGjC,OAAOulQ,GAGT,SAASK,EAAoBrzN,EAAajxC,EAAWC,GACnD,IAAIE,EAAOH,EAAUG,KACjB2mL,EAAiB9mL,EAAU0R,SAAS,aAExC,GAAKo1K,EAAen0L,IAAI,UAAWwN,EAAKjB,MAAMiyC,UAA9C,CAIA,IAAIP,EAAmBzwC,EAAK0wC,sBAE5B,GAAKD,EAAiBl1C,OAUtB,IANA,IAAI41C,EAAiBw1I,EAAep1K,SAAS,aACzCu0P,EAAehmQ,EAAIuB,cAAgBslL,EAAen0L,IAAI,UACtDyzQ,EAAqBlkQ,EAASovC,EAAejC,eAAgBntC,EAASlC,EAAU0R,SAAS,YAAY29B,eAAgB,CACvHC,OAAQtvC,EAAUrN,IAAI,+BAGf+L,EAAI,EAAGA,EAAIkyC,EAAiBl1C,OAAQgD,IAG3C,IAFA,IAAI2nQ,EAAgBN,EAAYn1N,EAAiBlyC,GAAIuyC,EAAYoyN,WAAY4C,EAAcG,EAAoB,cAAgB1nQ,GAEtHgI,EAAI,EAAGA,EAAI2/P,EAAc3qQ,OAAQgL,IACxCuqC,EAAYl9C,MAAMgC,IAAIswQ,EAAc3/P,KAK1C,SAAS09P,EAAenzN,EAAajxC,EAAWC,GAC9C,IAAIE,EAAOH,EAAUG,KACjBtO,EAAOkD,EAASkL,EAAIwvO,cAAezvO,EAAUrN,IAAI,mBAErD,GAAKd,IAAQsO,EAAKjB,MAAMiyC,UAAxB,CAIA,IAAIxgB,EAAa3wB,EAAU0R,SAAS,aAChC0rH,EAAczsG,EAAWh+B,IAAI,UAC7B6sG,EAASr/F,EAAKs/F,gBAEdjC,GAAiBzoG,EAASkL,EAAI2B,YAAa+uB,EAAWh+B,IAAI,YAAc,GAAK0O,EAAK,IAClF89C,EAAcggH,EAAgBl/J,EAAImB,SAAUo8F,EAAev9F,EAAIsB,gBAC/DklN,EAAkBzmN,EAAUw1J,eAAiBx1J,EAAUw1J,eAAc,GACrE2uG,EAAW,GACX9hQ,EAASwkN,EAAc7mN,GACvBk2C,EAAel2C,EAAUrN,IAAI,gBAkDjC,OAjDA/C,EAAK4vG,GAAQ,SAAUE,EAAW9nG,GAChC,IAAI+nG,EAAYD,EAAUC,UACtBE,EAAiBH,EAAUG,eAC3BmnH,EAAWtnH,EAAUsnH,SACrBs/C,EAAiB31O,EAEjB81L,GAAmBA,EAAgB9mH,IAAc8mH,EAAgB9mH,GAAW7hC,YAC9EwoM,EAAiB,IAAIx3P,EAAM23M,EAAgB9mH,GAAW7hC,UAAWntC,EAAY3wB,EAAUzP,UAGzF,IAAI8gL,EAAYi1F,EAAe/xQ,gBAAkByL,EAAUrN,IAAI,4BAC3DwsG,EAAYh/F,EAAKc,YAAY0+F,GAC7B78F,EAAM,CAACq8F,EAAWl/F,EAAIyB,YAAczB,EAAIsB,eAAiB67H,GACzDtrG,EAAS,IAAIv+B,EAAQyC,KAAK,CAE5BksE,KAAM,SAAWy9B,EACjBlkG,SAAUqH,EACV1B,SAAU+9C,EAAY/9C,SACtBiB,OAAQA,EACRR,GAAI,KAENtO,EAAQmqE,aAAa5rC,EAAO77B,MAAOqwQ,EAAgB,CACjDlwQ,KAAMypG,EACNvpG,UAAWgwQ,EAAer5N,WAAW,SAAS,IAASkS,EAAY7oD,UACnED,kBAAmBiwQ,EAAer5N,WAAW,iBAAiB,IAASq5N,EAAer5N,WAAW,YAAY,IAASkS,EAAY9oD,kBAClI/B,SAA+B,oBAAd+8K,EAA2BA,EAO9B,aAAdlxK,EAAKjQ,KAAsB82N,EAAyB,UAAd7mN,EAAKjQ,KAAmByvG,EAAY,GAAKA,EAAW/nG,GAASy5K,IAGjGn7H,IACFpkB,EAAOQ,UAAYw0L,EAAsB9mN,GACzC8xB,EAAOQ,UAAUy0L,WAAa,YAC9Bj1L,EAAOQ,UAAUl0B,MAAQ4oN,GAI3B/1K,EAAYqyN,WAAWvtQ,IAAI+7B,GAE3BA,EAAO3yB,kBACPglQ,EAAS7yQ,KAAKwgC,GACdmf,EAAYl9C,MAAMgC,IAAI+7B,GACtBA,EAAO7yB,wBAEFklQ,GAGT,IAAIn0Q,EAAWigD,EACf98C,EAAOC,QAAUpD,G,qBCtpBjB,IAAIL,EAAQ,EAAQ,QAEhBC,EAAOD,EAAMC,KACb6jB,EAAU9jB,EAAM8jB,QAChBiD,EAAW/mB,EAAM+mB,SAEjB6vP,EAAc,EAAQ,QAEtBrtQ,EAAS,EAAQ,QAEjBswG,EAAmBtwG,EAAOswG,iBAqB9B,SAAS72G,EAAIsN,EAAK0R,GAChBA,EAAOA,EAAKoyE,MAAM,KAGlB,IAFA,IAAIvtE,EAAMvW,EAEDvB,EAAI,EAAGA,EAAIiT,EAAKjW,OAAQgD,IAG/B,GAFA8X,EAAMA,GAAOA,EAAI7E,EAAKjT,IAEX,MAAP8X,EACF,MAIJ,OAAOA,EAGT,SAASxjB,EAAIiN,EAAK0R,EAAMzV,EAAK6hF,GAC3BpsE,EAAOA,EAAKoyE,MAAM,KAIlB,IAHA,IACIvrF,EADAge,EAAMvW,EAGDvB,EAAI,EAAGA,EAAIiT,EAAKjW,OAAS,EAAGgD,IACnClG,EAAMmZ,EAAKjT,GAEK,MAAZ8X,EAAIhe,KACNge,EAAIhe,GAAO,IAGbge,EAAMA,EAAIhe,IAGRulF,GAA6B,MAAhBvnE,EAAI7E,EAAKjT,OACxB8X,EAAI7E,EAAKjT,IAAMxC,GAInB,SAASsqQ,EAAuBl2Q,GAC9BV,EAAK62Q,GAAmB,SAAUhjP,GAC5BA,EAAK,KAAMnzB,KAAYmzB,EAAK,KAAMnzB,KACpCA,EAAOmzB,EAAK,IAAMnzB,EAAOmzB,EAAK,QAKpC,IAAIgjP,EAAoB,CAAC,CAAC,IAAK,QAAS,CAAC,IAAK,OAAQ,CAAC,KAAM,SAAU,CAAC,KAAM,WAC1EC,EAA0B,CAAC,OAAQ,MAAO,WAAY,SAAU,UAAW,QAAS,YAAa,WAAY,YAEjH,SAAS12Q,EAASM,EAAQskF,GACxB2xL,EAAYj2Q,EAAQskF,GAEpBtkF,EAAO22E,OAASuiC,EAAiBl5G,EAAO22E,QACxCr3E,EAAKU,EAAO22E,QAAQ,SAAUiN,GAC5B,GAAKx9D,EAASw9D,GAAd,CAIA,IAAI7uD,EAAa6uD,EAAUhkF,KAE3B,GAAmB,SAAfm1B,EAC4B,MAA1B6uD,EAAUyyL,eACZzyL,EAAU1nE,KAAO0nE,EAAUyyL,mBAExB,GAAmB,QAAfthP,GAAuC,UAAfA,EACN,MAAvB6uD,EAAU0yL,YACZ1yL,EAAUj0B,UAAYi0B,EAAU0yL,gBAE7B,GAAmB,UAAfvhP,EAAwB,CACjC,IAAIwhP,EAAel0Q,EAAIuhF,EAAW,iBAClB,MAAhB2yL,GAAwB7zQ,EAAIkhF,EAAW,kBAAmB2yL,GAG5DL,EAAuBtyL,OAGrB5jF,EAAOw2Q,YACTx2Q,EAAO+uF,UAAY/uF,EAAOw2Q,WAG5Bl3Q,EAAK82Q,GAAyB,SAAUK,GACtC,IAAI32P,EAAU9f,EAAOy2Q,GAEjB32P,IACGqD,EAAQrD,KACXA,EAAU,CAACA,IAGbxgB,EAAKwgB,GAAS,SAAU9f,GACtBk2Q,EAAuBl2Q,UAM/B6C,EAAOC,QAAUpD,G,qBC3HjB,IAAIikB,EAAU,EAAQ,QAIlB5gB,GAFU4gB,EAAQC,QAET,EAAQ,SAEjByxC,EAAW,EAAQ,QAEnBpyD,EAAU,EAAQ,QAElB+jI,EAAmB,EAAQ,QAE3BzlD,EAAa,EAAQ,QAoBrB53E,EAAQ5G,EAAO4G,MACfrK,EAAOyD,EAAOzD,KACd8H,EAAMrE,EAAOqE,IACbuxD,EAAU3sD,KAAK6E,IACf+nD,EAAU5sD,KAAK4E,IACf24H,EAAUv9H,KAAKqyE,IACfq4L,EAAU,IACVC,EAAqB,EACrBC,EAAwB,EACxBC,EAAqB,YACrBC,EAAgB,CAClBn/P,EAAG,CAAC,EAAG,GACPmV,EAAG,CAAC,EAAG,GACP/Y,EAAG,CAAC,EAAG,GACPu4B,EAAG,CAAC,EAAG,IAELyqO,EAAa,CACfp/P,EAAG,KACHmV,EAAG,KACH/Y,EAAG,KACHu4B,EAAG,KACH0qO,GAAI,OACJhyD,GAAI,OACJiyD,GAAI,OACJC,GAAI,QAEFC,EAAoB,CACtBhzF,WAAY,CACVtrG,UAAW,EACX75B,OAAQ,kBACRntC,KAAM,mBAERu6P,eAAe,EACfD,UAAW,SACX19C,eAAe,GAEb2oD,EAAU,EAiBd,SAAS10F,EAAgBh4J,GACvB2qC,EAASpoD,KAAK9M,MAMdA,KAAK4rB,IAAMrB,EAMXvqB,KAAKsD,MAAQ,IAAIR,EAAQ6B,MAUzB3E,KAAKk3Q,WAQLl3Q,KAAKm3Q,aAMLn3Q,KAAKo3Q,QAMLp3Q,KAAKs4B,OAAS,GAMdt4B,KAAK60E,UAML70E,KAAKq3Q,QAAU,GAMfr3Q,KAAKs3Q,eAOLt3Q,KAAKu3Q,eAMLv3Q,KAAKw3Q,iBAULx3Q,KAAKy3Q,KAAO,mBAAqBR,IAMjCj3Q,KAAKwrQ,UAAY,GACjBrsQ,EAAKu4Q,IAAiB,SAAU7qP,EAASsM,GACvCn5B,KAAKwrQ,UAAUryO,GAAav2B,EAAOiC,KAAKgoB,EAAS7sB,QAChDA,MA8IL,SAAS23Q,EAAcl1O,EAAY4U,GACjC,IAAI9sB,EAAKkY,EAAW7W,IAEf6W,EAAW+0O,kBACd3wI,EAAiBy0E,KAAK/wL,EAAImsP,EAAoBj0O,EAAWg1O,MAG3DG,EAAcrtP,EAAIkY,EAAW+oO,WAC7B/oO,EAAWy0O,WAAa7/N,EAAYhB,UACpC5T,EAAW00O,aAAev0Q,EAAOie,MAAMje,EAAO8E,MAAMsvQ,GAAoB3/N,GAAa,GAGvF,SAASwgO,EAAep1O,GACtB,IAAIlY,EAAKkY,EAAW7W,IACpBi7G,EAAiB60E,QAAQnxL,EAAImsP,EAAoBj0O,EAAWg1O,MAC5DK,EAAgBvtP,EAAIkY,EAAW+oO,WAC/B/oO,EAAWy0O,WAAaz0O,EAAW00O,aAAe,KAGpD,SAASS,EAAcrtP,EAAI44J,GACzBhkL,EAAKgkL,GAAU,SAAUt2J,EAASsM,GAChC5O,EAAG3jB,GAAGuyB,EAAWtM,MAIrB,SAASirP,EAAgBvtP,EAAI44J,GAC3BhkL,EAAKgkL,GAAU,SAAUt2J,EAASsM,GAChC5O,EAAGsS,IAAI1D,EAAWtM,MAItB,SAASkrP,EAAYt1O,EAAY4U,GAC/B,IAAI2gO,EAAQC,GAAe5gO,EAAYhB,WAAW0hO,YAAYt1O,EAAY4U,GAI1E,OAHA2gO,EAAME,cAAgB7gO,EACtB6zE,EAAQ8sJ,EAAO3gO,GACf5U,EAAWn/B,MAAMgC,IAAI0yQ,GACdA,EAGT,SAASG,EAAY11O,EAAY21O,GAC/B,IAAIC,EAAgBC,EAAiBF,GAOrC,OALIC,EAAcF,cAChBE,EAAcF,YAAY11O,EAAY21O,GACtCltJ,EAAQktJ,EAAeA,EAAcF,gBAGhCE,EAGT,SAASG,EAAiB91O,EAAYu1O,GACpC,IAAI3gO,EAAc2gO,EAAME,cACxBI,EAAiBN,GAAOO,iBAAiB91O,EAAYu1O,EAAO3gO,EAAYv7B,MAAOu7B,GAGjF,SAAS6zE,EAAQ8sJ,EAAO3gO,GACtB,IAAIp2C,EAAIo2C,EAAYp2C,EACf,MAALA,IAAcA,EAAIs1Q,GAClByB,EAAMl1O,UAAS,SAAUrX,GACvBA,EAAGxqB,EAAIA,EACPwqB,EAAGra,GAAKnQ,KAIZ,SAASu3Q,EAAyB/1O,EAAYu1O,GAC5CM,EAAiBN,GAAOt2K,aAAaj/D,EAAYu1O,GACjDO,EAAiB91O,EAAYu1O,GAG/B,SAASM,EAAiBN,GACxB,OAAOC,GAAeD,EAAME,cAAc7hO,WAI5C,SAASoiO,EAAgBh2O,EAAY9V,EAAGiiP,GACtC,IAMI8J,EANAC,EAASl2O,EAAW20O,QAExB,IAAKuB,EACH,OAAO,EAIT,IAAIrqQ,EAAYm0B,EAAWmwO,WAI3B,OAHAzzQ,EAAKw5Q,GAAQ,SAAUC,GACrBA,EAAG1qD,iBAAiBvhM,EAAGiiP,EAAkBtgQ,KAAeoqQ,EAAQE,MAE3DF,EAIT,SAASG,EAAgBp2O,EAAYu1O,GACnC,IAAIW,EAASl2O,EAAW20O,QAExB,IAAKuB,EACH,OAAO,EAGT,IAAI3qD,EAAUgqD,EAAME,cAAclqD,QAGlC,OAAkB,MAAXA,GAAkB2qD,EAAO3qD,GAGlC,SAAS8qD,EAAYr2O,GACnB,IAAIs2O,EAASt2O,EAAW40O,QACpB2B,EAAiBD,EAAO9tQ,OAK5B,OAJA9L,EAAK45Q,GAAQ,SAAUf,GACrBv1O,EAAWn/B,MAAM++B,OAAO21O,KACvBv1O,GACHs2O,EAAO9tQ,OAAS,IACP+tQ,EAGX,SAAS17O,EAAQmF,EAAYjzB,GAC3B,IAAIimC,EAAQxuC,EAAIw7B,EAAW40O,SAAS,SAAUW,GAC5C,IAAI3gO,EAAc2gO,EAAME,cACpBp8P,EAAQlZ,EAAO8E,MAAM2vC,EAAYv7B,OACrC,MAAO,CACLu6B,UAAWgB,EAAYhB,UACvB23K,QAAS32K,EAAY22K,QACrBlyM,MAAOA,MAGX2mB,EAAWnF,QAAQ,QAASmY,EAAO,CACjCgnE,QAASjtG,EAAIitG,MACb6xG,gBAAiB9+M,EAAI8+M,gBAIzB,SAAS2qD,EAAgBx2O,GACvB,IAAIlJ,EAAQkJ,EAAWnK,OAEvB,IAAKiB,EAAMtuB,OACT,OAAO,EAGT,IAAIW,EAAK2tB,EAAMA,EAAMtuB,OAAS,GAC1BU,EAAK4tB,EAAM,GACXrnB,EAAKtG,EAAG,GAAKD,EAAG,GAChBwG,EAAKvG,EAAG,GAAKD,EAAG,GAChB4sB,EAAO6wG,EAAQl3H,EAAKA,EAAKC,EAAKA,EAAI,IACtC,OAAOomB,EAAOi+O,EAGhB,SAAS0C,EAAa3/O,GACpB,IAAI8xI,EAAO9xI,EAAMtuB,OAAS,EAE1B,OADAogK,EAAO,IAAMA,EAAO,GACb,CAAC9xI,EAAM,GAAIA,EAAM8xI,IAG1B,SAAS8tG,EAAoBC,EAAS32O,EAAY4U,EAAagiO,GAC7D,IAAIrB,EAAQ,IAAIl1Q,EAAQ6B,MA2BxB,OA1BAqzQ,EAAM1yQ,IAAI,IAAIxC,EAAQyO,KAAK,CACzB5E,KAAM,OACNnH,MAAO8zQ,EAAUjiO,GACjBzlC,QAAQ,EACRipC,WAAW,EACX1P,OAAQ,OACR+O,MAAO1wC,EAAM4vQ,EAAS32O,EAAYu1O,EAAO,QACzC1/L,UAAW9uE,EAAM8zB,EAASmF,EAAY,CACpCg6E,OAAO,OAGXt9G,EAAKk6Q,GAAW,SAAU1sQ,GACxBqrQ,EAAM1yQ,IAAI,IAAIxC,EAAQyO,KAAK,CACzB5E,KAAMA,EACNnH,MAAO,CACL/D,QAAS,GAEXo5C,WAAW,EACXjpC,QAAQ,EACR44B,WAAW,EACX0P,MAAO1wC,EAAM4vQ,EAAS32O,EAAYu1O,EAAOrrQ,GACzC2rE,UAAW9uE,EAAM8zB,EAASmF,EAAY,CACpCg6E,OAAO,UAINu7J,EAGT,SAASuB,EAAe92O,EAAYu1O,EAAOwB,EAAYniO,GACrD,IAAIqhC,EAAYrhC,EAAY2sI,WAAWtrG,WAAa,EAChD+4B,EAAah5C,EAAQigB,EAAW+9L,GAChChxQ,EAAI+zQ,EAAW,GAAG,GAClB9zQ,EAAI8zQ,EAAW,GAAG,GAClBC,EAAKh0Q,EAAIizE,EAAY,EACrBghM,EAAKh0Q,EAAIgzE,EAAY,EACrBpe,EAAKk/M,EAAW,GAAG,GACnBj/M,EAAKi/M,EAAW,GAAG,GACnBG,EAAMr/M,EAAKm3C,EAAa/4B,EAAY,EACpCkhM,EAAMr/M,EAAKk3C,EAAa/4B,EAAY,EACpCl3E,EAAQ84D,EAAK70D,EACbyG,EAASquD,EAAK70D,EACdm0Q,EAASr4Q,EAAQk3E,EACjBohM,EAAU5tQ,EAASwsE,EACvBqhM,EAAgBt3O,EAAYu1O,EAAO,OAAQvyQ,EAAGC,EAAGlE,EAAO0K,GAEpDmrC,EAAY40N,gBACd8N,EAAgBt3O,EAAYu1O,EAAO,IAAKyB,EAAIC,EAAIjoK,EAAYqoK,GAC5DC,EAAgBt3O,EAAYu1O,EAAO,IAAK2B,EAAKD,EAAIjoK,EAAYqoK,GAC7DC,EAAgBt3O,EAAYu1O,EAAO,IAAKyB,EAAIC,EAAIG,EAAQpoK,GACxDsoK,EAAgBt3O,EAAYu1O,EAAO,IAAKyB,EAAIG,EAAKC,EAAQpoK,GACzDsoK,EAAgBt3O,EAAYu1O,EAAO,KAAMyB,EAAIC,EAAIjoK,EAAYA,GAC7DsoK,EAAgBt3O,EAAYu1O,EAAO,KAAM2B,EAAKD,EAAIjoK,EAAYA,GAC9DsoK,EAAgBt3O,EAAYu1O,EAAO,KAAMyB,EAAIG,EAAKnoK,EAAYA,GAC9DsoK,EAAgBt3O,EAAYu1O,EAAO,KAAM2B,EAAKC,EAAKnoK,EAAYA,IAInE,SAAS/P,EAAaj/D,EAAYu1O,GAChC,IAAI3gO,EAAc2gO,EAAME,cACpBjM,EAAgB50N,EAAY40N,cAC5B+N,EAAShC,EAAMl5O,QAAQ,GAC3Bk7O,EAAOj+N,SAASu9N,EAAUjiO,IAC1B2iO,EAAOh6P,KAAK,CACVpO,QAASq6P,EACT9gO,OAAQ8gO,EAAgB,OAAS,YAEnC9sQ,EAAK,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,OAAO,SAAUwN,GAC3D,IAAI8e,EAAKusP,EAAM9sO,YAAYv+B,GACvBstQ,EAAYC,EAAmBz3O,EAAY91B,GAC/C8e,GAAMA,EAAGzL,KAAK,CACZpO,QAASq6P,EACTzhO,WAAYyhO,EACZ9gO,OAAQ8gO,EAAgB2K,EAAWqD,GAAa,UAAY,UAKlE,SAASF,EAAgBt3O,EAAYu1O,EAAOrrQ,EAAMlH,EAAGC,EAAG8R,EAAGk+C,GACzD,IAAIjqC,EAAKusP,EAAM9sO,YAAYv+B,GAC3B8e,GAAMA,EAAG0iC,SAASgsN,EAAaC,EAAY33O,EAAYu1O,EAAO,CAAC,CAACvyQ,EAAGC,GAAI,CAACD,EAAI+R,EAAG9R,EAAIgwD,OAGrF,SAAS4jN,EAAUjiO,GACjB,OAAOz0C,EAAO6O,SAAS,CACrBqvB,eAAe,GACduW,EAAY2sI,YAGjB,SAASq2F,EAAgB50Q,EAAGC,EAAG40D,EAAIC,GACjC,IAAI7pD,EAAM,CAAC8nD,EAAQ/yD,EAAG60D,GAAK9B,EAAQ9yD,EAAG60D,IAClC9pD,EAAM,CAACgoD,EAAQhzD,EAAG60D,GAAK7B,EAAQ/yD,EAAG60D,IACtC,MAAO,CAAC,CAAC7pD,EAAI,GAAID,EAAI,IACrB,CAACC,EAAI,GAAID,EAAI,KAIf,SAASogE,EAAapuC,GACpB,OAAO3/B,EAAQ+tE,aAAapuC,EAAWn/B,OAGzC,SAAS42Q,EAAmBz3O,EAAY63O,GACtC,GAAIA,EAAervQ,OAAS,EAAG,CAC7BqvQ,EAAiBA,EAAehnL,MAAM,IACtC,IAAI2mL,EAAY,CAACC,EAAmBz3O,EAAY63O,EAAe,IAAKJ,EAAmBz3O,EAAY63O,EAAe,KAElH,OADkB,MAAjBL,EAAU,IAA+B,MAAjBA,EAAU,KAAeA,EAAU5yQ,UACrD4yQ,EAAUpgQ,KAAK,IAEtB,IAAI5S,EAAM,CACRuQ,EAAG,OACHmV,EAAG,QACH/Y,EAAG,MACHu4B,EAAG,UAEDouO,EAAa,CACfhwQ,KAAM,IACNE,MAAO,IACPD,IAAK,IACLE,OAAQ,KAENuvQ,EAAYn3Q,EAAQiuE,mBAAmB9pE,EAAIqzQ,GAAiBzpM,EAAapuC,IAC7E,OAAO83O,EAAWN,GAItB,SAASO,EAAUC,EAAaC,EAAej4O,EAAYu1O,EAAOrrQ,EAAMuF,EAAIC,EAAIwa,GAC9E,IAAI0qB,EAAc2gO,EAAME,cACpByC,EAAYF,EAAYpjO,EAAYv7B,OACpC8+P,EAAaC,EAAap4O,EAAYvwB,EAAIC,GAC9ChT,EAAKwN,EAAK2mF,MAAM,KAAK,SAAUwnL,GAC7B,IAAIC,EAAMpE,EAAcmE,GACxBH,EAAUI,EAAI,IAAIA,EAAI,KAAOH,EAAWG,EAAI,OAE9C1jO,EAAYv7B,MAAQ4+P,EAAcL,EAAgBM,EAAU,GAAG,GAAIA,EAAU,GAAG,GAAIA,EAAU,GAAG,GAAIA,EAAU,GAAG,KAClHnC,EAAyB/1O,EAAYu1O,GACrC16O,EAAQmF,EAAY,CAClBg6E,OAAO,IAIX,SAASu+J,EAAav4O,EAAYu1O,EAAO9lQ,EAAIC,EAAIwa,GAC/C,IAAI7Q,EAAQk8P,EAAME,cAAcp8P,MAC5B8+P,EAAaC,EAAap4O,EAAYvwB,EAAIC,GAC9ChT,EAAK2c,GAAO,SAAUwb,GACpBA,EAAM,IAAMsjP,EAAW,GACvBtjP,EAAM,IAAMsjP,EAAW,MAEzBpC,EAAyB/1O,EAAYu1O,GACrC16O,EAAQmF,EAAY,CAClBg6E,OAAO,IAIX,SAASo+J,EAAap4O,EAAYvwB,EAAIC,GACpC,IAAI9O,EAAYo/B,EAAWn/B,MACvB23Q,EAAS53Q,EAAU2hC,sBAAsB9yB,EAAIC,GAC7C+oQ,EAAY73Q,EAAU2hC,sBAAsB,EAAG,GACnD,MAAO,CAACi2O,EAAO,GAAKC,EAAU,GAAID,EAAO,GAAKC,EAAU,IAG1D,SAASd,EAAY33O,EAAYu1O,EAAOz3Q,GACtC,IAAIm4Q,EAAQG,EAAgBp2O,EAAYu1O,GACxC,OAAOU,IAAmB,IAAVA,EAAiBA,EAAMntN,SAAShrD,EAAMkiC,EAAWmwO,YAAchwQ,EAAO8E,MAAMnH,GAG9F,SAAS45Q,EAAa5iQ,GACpB,IAAI4jQ,EAAO3iN,EAAQjhD,EAAO,GAAG,GAAIA,EAAO,GAAG,IACvC6jQ,EAAO5iN,EAAQjhD,EAAO,GAAG,GAAIA,EAAO,GAAG,IACvC8jQ,EAAO5iN,EAAQlhD,EAAO,GAAG,GAAIA,EAAO,GAAG,IACvC+jQ,EAAO7iN,EAAQlhD,EAAO,GAAG,GAAIA,EAAO,GAAG,IAC3C,MAAO,CACL9R,EAAG01Q,EACHz1Q,EAAG01Q,EACH55Q,MAAO65Q,EAAOF,EACdjvQ,OAAQovQ,EAAOF,GAInB,SAASG,EAAY94O,EAAY9V,EAAGiiP,GAClC,GACCnsO,EAAWy0O,aAGTsE,GAAgB/4O,EAAY9V,GAJ/B,CAQA,IAAIpC,EAAKkY,EAAW7W,IAChBmtP,EAASt2O,EAAW40O,QACpBoE,EAAYhD,EAAgBh2O,EAAY9V,EAAGiiP,GAE/C,IAAKnsO,EAAWoyC,UACd,IAAK,IAAI5mE,EAAI,EAAGA,EAAI8qQ,EAAO9tQ,OAAQgD,IAAK,CACtC,IAAIopC,EAAc0hO,EAAO9qQ,GAAGiqQ,cAE5B,GAAIuD,KAA4B,IAAdA,GAAsBpkO,EAAY22K,UAAYytD,EAAUztD,UAAYiqD,GAAe5gO,EAAYhB,WAAWnoC,QAAQ6qQ,EAAO9qQ,GAAI2gQ,EAAiB,GAAIA,EAAiB,IAEnL,OAKN6M,GAAalxP,EAAG6+I,eAAe,cAGjC,SAASv5I,GAAelD,GACtB,IAAI+uP,EAAO/uP,EAAErkB,MACbozQ,EAAK7rP,gBAAkB6rP,EAAK7rP,iBAG9B,SAAS8rP,GAAiB3D,EAAOvyQ,EAAGC,GAClC,OAAOsyQ,EAAM9sO,YAAY,QAAQh9B,QAAQzI,EAAGC,GAG9C,SAASk2Q,GAAmBn5O,EAAY9V,EAAGiiP,EAAkBnyJ,GAC3D,IAGIo/J,EAHAzD,EAAgB31O,EAAW60O,eAC3BoB,EAAQj2O,EAAW80O,eACnBuE,EAAkBr5O,EAAW00O,aAKjC,GAFA10O,EAAWnK,OAAOz3B,KAAK+tQ,EAAiBtnQ,SAEpC2xQ,EAAgBx2O,IAAe21O,EAAe,CAChD,GAAIM,IAAUN,EAAe,CACG,WAA9B0D,EAAgB9P,WAA0B8M,EAAYr2O,GACtD,IAAI4U,EAAcz0C,EAAO8E,MAAMo0Q,GAC/BzkO,EAAYhB,UAAY0lO,GAAmB1kO,EAAYhB,UAAWqiO,GAClErhO,EAAY22K,SAAoB,IAAV0qD,EAAiB,KAAOA,EAAM1qD,QACpDoqD,EAAgB31O,EAAW60O,eAAiBS,EAAYt1O,EAAY4U,GAEpE5U,EAAW40O,QAAQx2Q,KAAKu3Q,GAG1B,GAAIA,EAAe,CACjB,IAAIC,EAAgBJ,GAAe8D,GAAmBt5O,EAAWy0O,WAAYwB,IACzEsD,EAAmB5D,EAAcF,cACrC8D,EAAiBlgQ,MAAQu8P,EAAc4D,iBAAiB7B,EAAY33O,EAAY21O,EAAe31O,EAAWnK,SAEtGmkF,IACF07J,EAAY11O,EAAY21O,GACxBC,EAAc32K,aAAaj/D,EAAY21O,IAGzCG,EAAiB91O,EAAY21O,GAC7ByD,EAAc,CACZp/J,MAAOA,SAGFA,GAAuC,WAA9Bq/J,EAAgB9P,WAA0B8P,EAAgBxtD,eAMxEmqD,EAAgBh2O,EAAY9V,EAAGiiP,IAAqBkK,EAAYr2O,KAClEo5O,EAAc,CACZp/J,MAAOA,EACP6xG,eAAe,IAKrB,OAAOutD,EAGT,SAASE,GAAmB1lO,EAAWqiO,GACrC,MAAkB,SAAdriO,EACKqiO,EAAMv7C,iBAGR9mL,EAjjBTksI,EAAgBz0K,UAAY,CAC1BC,YAAaw0K,EAmBbwB,YAAa,SAAU1sI,GAGrB,OAFAr3C,KAAKk3Q,YAAcW,EAAe73Q,MAClCq3C,EAAYhB,WAAashO,EAAc33Q,KAAMq3C,GACtCr3C,MAaT2jL,UAAW,SAAUu4F,GACnB,GAAIA,GAAaA,EAAUjxQ,OAAQ,CACjC,IAAI0tQ,EAAS34Q,KAAKo3Q,QAAU,GAC5Bx0Q,EAAOzD,KAAK+8Q,GAAW,SAAUA,GAC/BvD,EAAOuD,EAAUluD,SAAWprN,EAAO8E,MAAMw0Q,WAG3Cl8Q,KAAKo3Q,QAAU,KAGjB,OAAOp3Q,MAOT8iL,MAAO,SAAUtzK,GACfA,EAAMA,GAAO,GACbxP,KAAKw3Q,iBAAmBhoQ,EAAIu+M,gBAC5B,IAAI1qN,EAAYrD,KAAKsD,MAUrB,OARAtD,KAAK4rB,IAAItmB,IAAIjC,GAEbA,EAAU2c,KAAK,CACbhV,SAAUwE,EAAIxE,UAAY,CAAC,EAAG,GAC9B2F,SAAUnB,EAAImB,UAAY,EAC1BlC,MAAOe,EAAIf,OAAS,CAAC,EAAG,KAE1BzO,KAAK4yQ,WAAavvQ,EAAUwgC,oBACrB7jC,MAETm8Q,UAAW,SAAUh+P,EAAIyB,GACvBzgB,EAAKa,KAAKq3Q,QAASl5P,EAAIyB,IAgBzBqkK,aAAc,SAAUm4F,GACtBA,EAAkBx5Q,EAAOqE,IAAIm1Q,GAAiB,SAAU/kO,GACtD,OAAOz0C,EAAOie,MAAMje,EAAO8E,MAAMsvQ,GAAoB3/N,GAAa,MAEpE,IAAIglO,EAAc,kBACdC,EAAYt8Q,KAAKq3Q,QACjBkF,EAAYv8Q,KAAKq3Q,QAAU,GAC3B50O,EAAaziC,KACbo4Q,EAAgBp4Q,KAAKs3Q,eAEzB,OADA,IAAIl2L,EAAWk7L,EAAWF,EAAiBI,EAAW90K,GAAQpiG,IAAIm3Q,GAAal0Q,OAAOk0Q,GAAap6O,OAAOA,GAAQqc,UAC3G1+C,KAEP,SAAS0nG,EAAOrwD,EAAalwC,GAC3B,OAA0B,MAAlBkwC,EAAYlvC,GAAakvC,EAAYlvC,GAAKk0Q,EAAcl1Q,GAAS,IAAMkwC,EAAYhB,UAG7F,SAASmmO,EAAUxE,EAAO7wQ,GACxB,OAAOugG,EAAOswK,EAAME,cAAe/wQ,GAGrC,SAASs1Q,EAAY96K,EAAUC,GAC7B,IAAI86K,EAAiBN,EAAgBz6K,GAGrC,GAAgB,MAAZC,GAAoB06K,EAAU16K,KAAcw2K,EAC9CmE,EAAU56K,GAAY26K,EAAU16K,OAC3B,CACL,IAAIo2K,EAAQuE,EAAU56K,GAAwB,MAAZC,GAAoB06K,EAAU16K,GAAUs2K,cAAgBwE,EAAgBJ,EAAU16K,IAAau2K,EAAY11O,EAAYs1O,EAAYt1O,EAAYi6O,IACjLlE,EAAyB/1O,EAAYu1O,IAIzC,SAAS31O,EAAOu/D,GACV06K,EAAU16K,KAAcw2K,GAC1B31O,EAAWn/B,MAAM++B,OAAOi6O,EAAU16K,MAIxCwhF,QAAS,WAOP,OANApjL,KAAK+jL,aAAY,GAEjB+0F,EAAY94Q,MAEZA,KAAK4rB,IAAIyW,OAAOriC,KAAKsD,OAEdtD,MAETuuB,QAAS,WACPvuB,KAAKojL,UACLpjL,KAAK68B,QAGTj6B,EAAOyM,MAAMkzK,EAAiBrtH,GA2a9B,IAAIwiN,GAAkB,CACpBzwI,UAAW,SAAUt6G,GACnB,GAAI3sB,KAAK60E,UAGP8nM,GAAc38Q,KAAM2sB,QACf,IAAKA,EAAEva,SAAWua,EAAEva,OAAOyoC,UAAW,CAC3ChrB,GAAelD,GACf,IAAIiiP,EAAmB5uQ,KAAKsD,MAAM0hC,sBAAsBrY,EAAE2uD,QAAS3uD,EAAE4uD,SACrEv7E,KAAKs3Q,eAAiB,KACtB,IAAIoB,EAAQ14Q,KAAKu3Q,eAAiBkB,EAAgBz4Q,KAAM2sB,EAAGiiP,GAEvD8J,IACF14Q,KAAK60E,WAAY,EACjB70E,KAAKs4B,OAAS,CAACs2O,EAAiBtnQ,YAItC6/H,UAAW,SAAUx6G,GACnB,IAAIlnB,EAAIknB,EAAE2uD,QACN51E,EAAIinB,EAAE4uD,QACNqzL,EAAmB5uQ,KAAKsD,MAAM0hC,sBAAsBv/B,EAAGC,GAG3D,GAFA61Q,EAAYv7Q,KAAM2sB,EAAGiiP,GAEjB5uQ,KAAK60E,UAAW,CAClBhlD,GAAelD,GACf,IAAIkvP,EAAcD,GAAmB57Q,KAAM2sB,EAAGiiP,GAAkB,GAChEiN,GAAev+O,EAAQt9B,KAAM67Q,KAGjCx0I,QAAS,SAAU16G,GACjBgwP,GAAc38Q,KAAM2sB,KAIxB,SAASgwP,GAAcl6O,EAAY9V,GACjC,GAAI8V,EAAWoyC,UAAW,CACxBhlD,GAAelD,GACf,IAAIlnB,EAAIknB,EAAE2uD,QACN51E,EAAIinB,EAAE4uD,QACNqzL,EAAmBnsO,EAAWn/B,MAAM0hC,sBAAsBv/B,EAAGC,GAC7Dm2Q,EAAcD,GAAmBn5O,EAAY9V,EAAGiiP,GAAkB,GACtEnsO,EAAWoyC,WAAY,EACvBpyC,EAAWnK,OAAS,GACpBmK,EAAW60O,eAAiB,KAE5BuE,GAAev+O,EAAQmF,EAAYo5O,IAIvC,SAASL,GAAgB/4O,EAAYh9B,EAAGC,GACtC,IAAI6kB,EAAKkY,EAAW7W,IACpB,OAAOnmB,EAAI,GAAKA,EAAI8kB,EAAGyB,YAActmB,EAAI,GAAKA,EAAI6kB,EAAG0B,YAQvD,IAAIgsP,GAAiB,CACnBt/N,MAAOikO,GAAgB,GACvB/jO,MAAO+jO,GAAgB,GACvB5wQ,KAAM,CACJ+rQ,YAAa,SAAUt1O,EAAY4U,GACjC,OAAO8hO,EAAoB3vQ,EAAMgxQ,GAAW,SAAU1+P,GACpD,OAAOA,KACN,SAAUA,GACX,OAAOA,KACL2mB,EAAY4U,EAAa,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,QAEtE4kO,iBAAkB,SAAUY,GAC1B,IAAIhmP,EAAOqiP,EAAa2D,GACxB,OAAOxC,EAAgBxjP,EAAK,GAAG,GAAIA,EAAK,GAAG,GAAIA,EAAK,GAAG,GAAIA,EAAK,GAAG,KAErE0hP,iBAAkB,SAAU91O,EAAYu1O,EAAOwB,EAAYniO,GACzDkiO,EAAe92O,EAAYu1O,EAAOwB,EAAYniO,IAEhDqqD,aAAcA,EACdxzF,QAASytQ,IAEX5iO,QAAS,CACPg/N,YAAa,SAAUt1O,EAAY4U,GACjC,IAAI2gO,EAAQ,IAAIl1Q,EAAQ6B,MAQxB,OALAqzQ,EAAM1yQ,IAAI,IAAIxC,EAAQy7C,SAAS,CAC7B5xC,KAAM,OACNnH,MAAO8zQ,EAAUjiO,GACjBzlC,QAAQ,KAEHomQ,GAETiE,iBAAkB,SAAUY,GAC1B,OAAOA,GAET1E,YAAa,SAAU11O,EAAYu1O,GACjCA,EAAM31O,OAAO21O,EAAMl5O,QAAQ,IAE3Bk5O,EAAM1yQ,IAAI,IAAIxC,EAAQ49B,QAAQ,CAC5B/zB,KAAM,OACNkuC,WAAW,EACXX,MAAO1wC,EAAMwxQ,EAAcv4O,EAAYu1O,GACvC1/L,UAAW9uE,EAAM8zB,EAASmF,EAAY,CACpCg6E,OAAO,QAIb87J,iBAAkB,SAAU91O,EAAYu1O,EAAOwB,EAAYniO,GACzD2gO,EAAMl5O,QAAQ,GAAGqvB,SAAS,CACxB52C,OAAQ6iQ,EAAY33O,EAAYu1O,EAAOwB,MAG3C93K,aAAcA,EACdxzF,QAASytQ,KAIb,SAASiB,GAAgBx1D,GACvB,MAAO,CACL2wD,YAAa,SAAUt1O,EAAY4U,GACjC,OAAO8hO,EAAoB3vQ,EAAMgxQ,GAAW,SAAU1+P,GACpD,IAAI6+P,EAAY,CAAC7+P,EAAO,CAAC,EAAG,MAE5B,OADAsrM,GAAWuzD,EAAUtzQ,UACdszQ,KACN,SAAUA,GACX,OAAOA,EAAUvzD,MACf3kL,EAAY4U,EAAa,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,MAAM+vK,KAExD60D,iBAAkB,SAAUY,GAC1B,IAAIhmP,EAAOqiP,EAAa2D,GACpBnsQ,EAAM8nD,EAAQ3hC,EAAK,GAAGuwL,GAAUvwL,EAAK,GAAGuwL,IACxC32M,EAAMgoD,EAAQ5hC,EAAK,GAAGuwL,GAAUvwL,EAAK,GAAGuwL,IAC5C,MAAO,CAAC12M,EAAKD,IAEf8nQ,iBAAkB,SAAU91O,EAAYu1O,EAAOwB,EAAYniO,GACzD,IAAI40F,EAEAysI,EAAQG,EAAgBp2O,EAAYu1O,GAExC,IAAc,IAAVU,GAAkBA,EAAMtqD,0BAC1BniF,EAAcysI,EAAMtqD,0BAA0BhH,EAAS3kL,EAAWmwO,gBAC7D,CACL,IAAIroP,EAAKkY,EAAW7W,IACpBqgH,EAAc,CAAC,EAAG,CAAC1hH,EAAGyB,WAAYzB,EAAG0B,aAAa,EAAIm7L,IAGxD,IAAIuzD,EAAY,CAACnB,EAAYvtI,GAC7Bm7E,GAAWuzD,EAAUtzQ,UACrBkyQ,EAAe92O,EAAYu1O,EAAO2C,EAAWtjO,IAE/CqqD,aAAcA,EACdxzF,QAASytQ,IAIb,IAAIp8Q,GAAWgjL,EACf7/K,EAAOC,QAAUpD,I,qBCt4BjB,IAAI+lM,EAAa,EAAQ,QAErByiB,EAAY,EAAQ,QA8BpB93J,EAAQ,SAAUtjD,GAIpB3M,KAAK2M,KAAOA,GAAQ,GAMpB3M,KAAKo+C,GAAK,EAMVp+C,KAAKq+C,GAAK,EAMVr+C,KAAK88Q,YAAc,IAAIx3E,EAMvBtlM,KAAK+8Q,WAAa,IAAIh1D,EACtB/nN,KAAK88Q,YAAYp/N,MAAQ19C,KAAK+8Q,WAAWr/N,MAAQ19C,MAGnDiwD,EAAMniD,UAAY,CAChBrO,KAAM,QACNmwI,oBAAoB,EACpB7hI,YAAakiD,EAMb9tD,WAAY,CAAC,SAAU,SAKvB2tB,MAAO,KAOP4/B,aAAc,SAAUp4B,GACtB,IAAIjrB,EAAQrM,KAAKo/F,aAAa9nE,GAC9B,OAAOt3B,KAAK88Q,YAAY5uQ,QAAQ7B,EAAM,KAAOrM,KAAK+8Q,WAAW7uQ,QAAQ7B,EAAM,KAQ7E4sF,YAAa,SAAU14F,GACrB,OAAOP,KAAK88Q,YAAY7jL,YAAY14F,EAAK,KAAOP,KAAK+8Q,WAAW9jL,YAAY14F,EAAK,KAOnFq3F,QAAS,SAAU7nF,GACjB,OAAO/P,KAAK,IAAM+P,EAAM,SAM1BmgI,QAAS,WACP,MAAO,CAAClwI,KAAK88Q,YAAa98Q,KAAK+8Q,aAQjCz0C,eAAgB,SAAUzjE,GACxB,IAAIzgF,EAAO,GACPrkC,EAAY//C,KAAK+8Q,WACjBj9N,EAAa9/C,KAAK88Q,YAGtB,OAFA/8N,EAAUtxC,MAAMhP,OAASolK,GAAazgF,EAAKvjF,KAAKk/C,GAChDD,EAAWrxC,MAAMhP,OAASolK,GAAazgF,EAAKvjF,KAAKi/C,GAC1CskC,GAMTpkC,aAAc,WACZ,OAAOhgD,KAAK+8Q,YAMdzsN,cAAe,WACb,OAAOtwD,KAAK88Q,aAOdjrN,aAAc,SAAUniD,GACtB,IAAIqwC,EAAY//C,KAAK+8Q,WACrB,OAAOrtQ,IAASqwC,EAAY//C,KAAK88Q,YAAc/8N,GAQjDhoB,YAAa,WACX,OAAO/3B,KAAKsoO,eAAe,WAAW,IAAMtoO,KAAKsoO,eAAe,QAAQ,IAAMtoO,KAAKggD,gBAOrFmwF,eAAgB,SAAUpgI,GACxB,IAAI+nB,EAAkB,MAAP/nB,GAAuB,SAARA,EAAiB/P,KAAK43F,QAAQ7nF,GAAO/P,KAAK+3B,cACxE,MAAO,CACLq4G,SAAU,CAACt4G,GACXqpH,UAAW,CAACnhJ,KAAK6xD,aAAa/5B,MAWlC/rB,YAAa,SAAUxL,EAAMwxG,GAC3B,OAAO/xG,KAAKo9E,aAAa,CAACp9E,KAAK88Q,YAAYvqN,aAAahyD,EAAK,GAAIwxG,GAAQ/xG,KAAK+8Q,WAAWtqN,YAAYlyD,EAAK,GAAIwxG,MAShH10B,YAAa,SAAU/lD,EAAOy6E,GAC5B,IAAI1lG,EAAQrM,KAAKo/F,aAAa9nE,GAC9B,MAAO,CAACt3B,KAAK88Q,YAAYv3E,aAAal5L,EAAM,GAAI0lG,GAAQ/xG,KAAK+8Q,WAAW/0D,YAAY37M,EAAM,GAAI0lG,KAQhG3S,aAAc,SAAU9nE,GACtB,IAAIplB,EAAKolB,EAAM,GAAKt3B,KAAKo+C,GACrBjsC,EAAKmlB,EAAM,GAAKt3B,KAAKq+C,GACrB0B,EAAY//C,KAAKggD,eACjBnoB,EAASkoB,EAAUx6B,YACnBmgE,EAAW75E,KAAK6E,IAAImnB,EAAO,GAAIA,EAAO,IACtCmlP,EAAWnxQ,KAAK4E,IAAIonB,EAAO,GAAIA,EAAO,IAG1CkoB,EAAU34C,QAAUs+E,EAAWs3L,EAAW,IAAMA,EAAWt3L,EAAW,IACtE,IAAI1/B,EAASn6C,KAAK4sB,KAAKvmB,EAAKA,EAAKC,EAAKA,GACtCD,GAAM8zC,EACN7zC,GAAM6zC,EACN,IAAIu3B,EAAS1xE,KAAKk5B,OAAO5yB,EAAID,GAAMrG,KAAK+E,GAAK,IAEzCs1E,EAAM3I,EAASmI,EAAW,GAAK,EAEnC,MAAOnI,EAASmI,GAAYnI,EAASy/L,EACnCz/L,GAAgB,IAAN2I,EAGZ,MAAO,CAAClgC,EAAQu3B,IAQlBH,aAAc,SAAU/wE,GACtB,IAAI25C,EAAS35C,EAAM,GACfkxE,EAASlxE,EAAM,GAAK,IAAMR,KAAK+E,GAC/BnL,EAAIoG,KAAK04C,IAAIg5B,GAAUv3B,EAAShmD,KAAKo+C,GAErC14C,GAAKmG,KAAKw4C,IAAIk5B,GAAUv3B,EAAShmD,KAAKq+C,GAC1C,MAAO,CAAC54C,EAAGC,IAQbulD,QAAS,WACP,IAAIlL,EAAY//C,KAAKggD,eACjBF,EAAa9/C,KAAKswD,gBAClBhQ,EAAeR,EAAWv6B,YAAYje,QAC1Cg5C,EAAa,GAAKA,EAAa,IAAMA,EAAaj5C,UAClD,IAAI83F,EAAcp/C,EAAUx6B,YACxBkgE,EAAS55E,KAAK+E,GAAK,IACvB,MAAO,CACLwtC,GAAIp+C,KAAKo+C,GACTC,GAAIr+C,KAAKq+C,GACTwD,GAAIvB,EAAa,GACjBzsC,EAAGysC,EAAa,GAChBwB,YAAaq9C,EAAY,GAAK1Z,EAC9B1jC,UAAWo9C,EAAY,GAAK1Z,EAC5Bj2B,UAAWzP,EAAU34C,QACrB8G,QAAS,SAAUzI,EAAGC,GAGpB,IAAIwM,EAAKzM,EAAIzF,KAAKo+C,GACdjsC,EAAKzM,EAAI1F,KAAKq+C,GACd+sF,EAAKl5H,EAAKA,EAAKC,EAAKA,EACpB0B,EAAI7T,KAAK6T,EACTguC,EAAK7hD,KAAK6hD,GACd,OAAOupF,GAAMv3H,EAAIA,GAAKu3H,GAAMvpF,EAAKA,MAKzC,IAAItiD,EAAW0wD,EACfvtD,EAAOC,QAAUpD,G,qBC/QjB,IAAIy5H,EAAW,EAAQ,QAEnB95H,EAAQ,EAAQ,QAEhBy3C,EAAaz3C,EAAMy3C,WAoBnBp3C,EAAW,CACb2sK,mBAAmB,EACnB76B,kBAAkB,EAClBv8G,MAAO,SAAUhzB,EAAahC,GAC5B,IAAIS,EAAOuB,EAAYtB,UACnBy8Q,GAAmBn7Q,EAAYnC,uBAAyB,mBAAmB2zF,MAAM,KAEjF17E,EAAQ9V,EAAYI,IAAI+6Q,GACxBC,GAAgBvmO,EAAW/+B,IAAYA,aAAiBohH,EAAoB,KAARphH,EAEnEA,IAASslQ,IACZtlQ,EAAQ9V,EAAYykF,oBACpBzkF,EAAY6K,KAAM,KAAM7M,EAAQ6pL,mBAGlCppL,EAAKghB,UAAU,QAAS3J,GACxB,IAAIulQ,GAAyBr7Q,EAAYw0I,6BAA+B,yBAAyBhjD,MAAM,KACnGnoF,EAAcrJ,EAAYI,IAAIi7Q,GAGlC,GAFA58Q,EAAKghB,UAAU,cAAepW,IAEzBrL,EAAQyxD,iBAAiBzvD,GAAc,CACtCo7Q,GACF38Q,EAAKpB,MAAK,SAAU+Q,GAClB3P,EAAKihB,cAActR,EAAK,QAASgtQ,EAAcp7Q,EAAY8H,cAAcsG,QAK7E,IAAIk9J,EAAW,SAAU7sK,EAAM2P,GAC7B,IAAIiR,EAAY5gB,EAAK6gB,aAAalR,GAC9B0H,EAAQuJ,EAAUjf,IAAI+6Q,GAAiB,GACvC9xQ,EAAcgW,EAAUjf,IAAIi7Q,GAAuB,GAE1C,MAATvlQ,GACFrX,EAAKihB,cAActR,EAAK,QAAS0H,GAGhB,MAAfzM,GACF5K,EAAKihB,cAActR,EAAK,cAAe/E,IAI3C,MAAO,CACLiiK,SAAU7sK,EAAKg8C,cAAgB6wH,EAAW,SAKlD1qK,EAAOC,QAAUpD,G,mBCtDjB,IAAI69Q,EAAW,CACbj4E,QAAS,SAAUtpL,GAIjB,IAHA,IAAI5R,EAAM,EACNkY,EAAQ,EAEHlU,EAAI,EAAGA,EAAI4N,EAAM5Q,OAAQgD,IAC3B8K,MAAM8C,EAAM5N,MACfhE,GAAO4R,EAAM5N,GACbkU,KAKJ,OAAiB,IAAVA,EAAckV,IAAMptB,EAAMkY,GAEnClY,IAAK,SAAU4R,GAGb,IAFA,IAAI5R,EAAM,EAEDgE,EAAI,EAAGA,EAAI4N,EAAM5Q,OAAQgD,IAEhChE,GAAO4R,EAAM5N,IAAM,EAGrB,OAAOhE,GAETwG,IAAK,SAAUoL,GAGb,IAFA,IAAIpL,GAAOsC,IAEF9E,EAAI,EAAGA,EAAI4N,EAAM5Q,OAAQgD,IAChC4N,EAAM5N,GAAKwC,IAAQA,EAAMoL,EAAM5N,IAIjC,OAAO0rB,SAASlpB,GAAOA,EAAM4mB,KAE/B3mB,IAAK,SAAUmL,GAGb,IAFA,IAAInL,EAAMqC,IAED9E,EAAI,EAAGA,EAAI4N,EAAM5Q,OAAQgD,IAChC4N,EAAM5N,GAAKyC,IAAQA,EAAMmL,EAAM5N,IAIjC,OAAO0rB,SAASjpB,GAAOA,EAAM2mB,KAI/BgmP,QAAS,SAAUxhQ,GACjB,OAAOA,EAAM,KAIbyhQ,EAAe,SAAUzhQ,EAAOlO,GAClC,OAAO9B,KAAK8d,MAAM9N,EAAM5Q,OAAS,IAGnC,SAAS1L,EAASq1B,GAChB,MAAO,CACLA,WAAYA,EACZq6D,iBAAiB,EACjBn6D,MAAO,SAAUhzB,EAAahC,EAASyG,GACrC,IAAIhG,EAAOuB,EAAYtB,UACnByhE,EAAWngE,EAAYI,IAAI,YAC3B7B,EAAWyB,EAAYxB,iBAE3B,GAAsB,gBAAlBD,EAASZ,MAA0BwiE,EAAU,CAC/C,IAQMs7M,EARFzlP,EAAWz3B,EAAS03B,cACpB8sB,EAAYxkD,EAASwxD,aAAa/5B,GAClCD,EAASC,EAASvS,YAElBjZ,EAAOurB,EAAO,GAAKA,EAAO,GAC1BihI,EAAOjtJ,KAAK8d,MAAMppB,EAAK4hB,QAAU7V,GAErC,GAAIwsJ,EAAO,EAGe,kBAAb72F,EACTs7M,EAAUH,EAASn7M,GACU,oBAAbA,IAChBs7M,EAAUt7M,GAGRs7M,GAEFz7Q,EAAYy5D,QAAQh7D,EAAKs4J,WAAWt4J,EAAKyJ,aAAa66C,EAAU90C,KAAM,EAAI+oJ,EAAMykH,EAASD,OAQrG56Q,EAAOC,QAAUpD,G,qBC9GjB,IAAImxH,EAAc,EAAQ,QAEtB+5D,EAAc,EAAQ,QAoBtB+yF,EAAa,CAAC,YAAa,SAC3Bj+Q,EAAW,CAMbuE,aAAc,SAAUypE,GACtB,IAAIztE,EAAUE,KAAKF,QACnB,OAAOE,KAAKw8C,WAAW,YAAc+wB,GAAcztE,EAAUA,EAAQoC,IAAIs7Q,GAAc,OAOzF55Q,QAAS,WACP,OAAO6mL,EAAY7mL,QAAQ,CACzBkrE,UAAW9uE,KAAKw8C,WAAW,aAC3BuyB,WAAY/uE,KAAKw8C,WAAW,cAC5B9yB,SAAU1pB,KAAKw8C,WAAW,YAC1BwyB,WAAYhvE,KAAKw8C,WAAW,eAC3Bx8C,KAAKF,UAEV67G,YAAa,SAAUh2G,GACrB,OAAO+qH,EAAYzkH,gBAAgBtG,EAAM3F,KAAK4D,UAAW5D,KAAKw8C,WAAW,SAAUx8C,KAAKw8C,WAAW,kBAAoBx8C,KAAKw8C,WAAW,YAAax8C,KAAKw8C,WAAW,WAAYx8C,KAAKw8C,WAAW,cAAex8C,KAAKw8C,WAAW,QAASx8C,KAAKw8C,WAAW,mBAG5P95C,EAAOC,QAAUpD,G,qBClDjB,IAAIqD,EAAS,EAAQ,QAEjBvD,EAAc,EAAQ,QAEtBk8N,EAAoB,EAAQ,QAE5BC,EAAmBD,EAAkBC,iBAoBrCiiD,EAAgBp+Q,EAAYG,OAAO,CACrCC,KAAM,iBACNC,aAAc,CAAC,QAAS,QAAS,QAUjCg8N,uBAAwB,CAAC,CACvB/uN,KAAM,MACN6jF,gBAAgB,GACf,CACD7jF,KAAM,KACN6jF,gBAAgB,GACf,CACD7jF,KAAM,SACN6jF,gBAAgB,GACf,CACD7jF,KAAM,KACN6jF,gBAAgB,GACf,CACD7jF,KAAM,MACN6jF,gBAAgB,IAOlBruF,WAAY,KAKZpB,cAAe,CACbC,OAAQ,EAERC,EAAG,EAEHX,iBAAkB,cAClBgK,iBAAiB,EACjB+xC,gBAAgB,EAGhBp5C,OAAQ,KAER82P,SAAU,CAAC,EAAG,IAEd7uP,UAAW,CACT0M,MAAO,OACPxM,YAAa,GAEf1J,SAAU,CACRwJ,UAAW,CACTE,YAAa,EACb4wC,WAAY,EACZC,cAAe,EACfC,cAAe,EACfC,YAAa,oBAGjBt6C,gBAAiB,aACjBk9D,kBAAmB,OAGvBn8D,EAAOyM,MAAMouQ,EAAejiD,GAAkB,GAC9C,IAAIj8N,EAAWk+Q,EACf/6Q,EAAOC,QAAUpD,G,qBCjGjB,IAAIqD,EAAS,EAAQ,QAEjB8xI,EAAiB,EAAQ,QAEzB5tD,EAAO,EAAQ,QAoBf42L,EAAY52L,EAAK7B,QAAQz/C,MAE7B,SAASm4O,EAAM7tP,EAAOhwB,EAASyG,GAC7BvG,KAAK8vB,MAAQA,EACb9vB,KAAKF,QAAUA,EACfE,KAAKuG,IAAMA,EAMXvG,KAAKk3Q,WAMLl3Q,KAAK49Q,WAGPD,EAAM58Q,cAAgB,CACpBK,MAAM,EACN3B,KAAM,CAAC,OAAQ,UAAW,QAAS,QAAS,OAAQ,SACpD+oC,KAAM,CAEJx8B,KAAM,iQAEN+sC,QAAS,ubAETJ,MAAO,iNAEPE,MAAO,gMAEP+tC,KAAM,4KAEN9tD,MAAO,0MAMTxF,MAAO1wB,EAAO8E,MAAMg2Q,EAAUpqP,QAEhC,IAAIwhH,EAAQ6oI,EAAM7vQ,UAIlBgnI,EAAMxjI,OAENwjI,EAAMrsB,WAAa,SAAUu6D,EAAcljL,EAASyG,GAClD,IAAI8vC,EACA21N,EACA6R,EACJ/9Q,EAAQs+B,cAAc,CACpBnB,SAAU,UACT,SAAUqY,GACXe,EAAYf,EAAWe,UACvB21N,EAAY12N,EAAW+B,YAAY20N,WAAa,SAChD6R,GAAavoO,EAAWG,MAAMxqC,UAEhCjL,KAAKk3Q,WAAa7gO,EAClBr2C,KAAK49Q,WAAa5R,EAClBppQ,EAAOzD,KAAK6jL,EAAa9gL,IAAI,QAAQ,IAAO,SAAUzC,GACpDujL,EAAaQ,cAAc/jL,GAAgB,SAATA,EAAgC,aAAdusQ,EAAoC,UAATvsQ,EAAmBo+Q,EAAYp+Q,IAAS42C,GAAa,WAAa,cAIrJy+F,EAAMklG,SAAW,WACf,IAAIlqN,EAAQ9vB,KAAK8vB,MACbmqN,EAAiBnqN,EAAM5tB,IAAI,QAAQ,GACnCg4O,EAAQ,GAMZ,OALAt3O,EAAOzD,KAAK2wB,EAAM5tB,IAAI,QAAQ,IAAO,SAAUzC,GACzCw6O,EAAex6O,KACjBy6O,EAAMz6O,GAAQw6O,EAAex6O,OAG1By6O,GAGTplG,EAAMlwI,QAAU,SAAU9E,EAASyG,EAAK9G,GACtC,IAAI42C,EAAYr2C,KAAKk3Q,WACjBlL,EAAYhsQ,KAAK49Q,WAER,UAATn+Q,GAEF8G,EAAIC,eAAe,CACjB/G,KAAM,iBACN61L,UAAW,KAEb/uL,EAAIC,eAAe,CACjB/G,KAAM,QACNq+Q,QAAS,QAETroO,MAAO,MAGTlvC,EAAIC,eAAe,CACjB/G,KAAM,mBACNsI,IAAK,QACLsvC,YAAa,CACXhB,UAAoB,SAAT52C,EAAkB42C,EAAYA,IAAc52C,GAAeA,EACtEusQ,UAAoB,SAATvsQ,EAAgC,aAAdusQ,EAA2B,SAAW,WAAaA,MAMxFt3H,EAAextF,SAAS,QAASy2N,GACjC,IAAIp+Q,EAAWo+Q,EACfj7Q,EAAOC,QAAUpD,G,qBCrIjB,IAAIqD,EAAS,EAAQ,QAEjBE,EAAU,EAAQ,QAElB4tH,EAAc,EAAQ,QAEtB3nG,EAAa,EAAQ,QAErBka,EAAS,EAAQ,QAEjB+e,EAAa,EAAQ,QAErBxC,EAAc,EAAQ,QAwB1B,SAAS6sF,EAAaN,GACpB,IAEIvmI,EAFAwmI,EAAkBD,EAAiB7pI,IAAI,QACvC67Q,EAAahyI,EAAiB9qH,SAAS+qH,EAAkB,SAW7D,MARwB,SAApBA,GACFxmI,EAAQu4Q,EAAWn/N,eACnBp5C,EAAMkM,KAAO,MACgB,WAApBs6H,IACTxmI,EAAQu4Q,EAAW3+N,eACnB55C,EAAMq5C,OAAS,MAGVr5C,EAOT,SAASipK,EAAmB3iC,EAAUv8H,EAAWw8H,EAAkBxlI,EAAKgoK,GACtE,IAAI5gK,EAAQo+H,EAAiB7pI,IAAI,SAC7ByD,EAAOq2H,EAAcruH,EAAO4B,EAAUG,KAAMH,EAAUzP,QAASisI,EAAiB7pI,IAAI,qBAAsB,CAC5G0lB,UAAWmkH,EAAiB7pI,IAAI,mBAChC4yD,UAAWi3E,EAAiB7pI,IAAI,qBAE9Bg+B,EAAa6rG,EAAiB9qH,SAAS,SACvC+8P,EAAWj1P,EAAWsB,kBAAkB6V,EAAWh+B,IAAI,YAAc,GACrE0mC,EAAO1I,EAAWt8B,UAClByoF,EAAWqkC,EAAYzkH,gBAAgBtG,EAAMijC,GAC7C59B,EAAWujK,EAASvjK,SACpBxJ,EAAQ6qF,EAAS7qF,MAAQw8Q,EAAS,GAAKA,EAAS,GAChD9xQ,EAASmgF,EAASngF,OAAS8xQ,EAAS,GAAKA,EAAS,GAElDh3Q,EAAQunK,EAASvnK,MACX,UAAVA,IAAsBgE,EAAS,IAAMxJ,GAC3B,WAAVwF,IAAuBgE,EAAS,IAAMxJ,EAAQ,GAC9C,IAAIytD,EAAgBs/G,EAASt/G,cACX,WAAlBA,IAA+BjkD,EAAS,IAAMkB,GAC5B,WAAlB+iD,IAA+BjkD,EAAS,IAAMkB,EAAS,GAEvD+xQ,EAAmBjzQ,EAAUxJ,EAAO0K,EAAQ3F,GAC5C,IAAI23Q,EAAUh+O,EAAWh+B,IAAI,mBAExBg8Q,GAAuB,SAAZA,IACdA,EAAU3uQ,EAAUrN,IAAI,6BAG1B4pI,EAAS3qI,MAAQ,CACfqQ,MAAO,CACL/L,EAAG,EACHC,EAAG,EACHlE,MAAOA,EACP0K,OAAQA,EACR2H,EAAGqsB,EAAWh+B,IAAI,iBAEpB8I,SAAUA,EAAS1D,QAEnB9B,MAAO,CACLG,KAAMA,EACNhC,SAAUilC,EACV/kC,SAAUq8B,EAAWp8B,eACrB6pE,aAAc,SACd4B,YAAayuM,EACbtsQ,KAAMwsQ,EACNr/N,OAAQ3e,EAAWh+B,IAAI,gBAAkB,cACzCw2E,UAAWx4C,EAAWh+B,IAAI,gBAAkB,EAC5C85C,WAAY9b,EAAWh+B,IAAI,cAC3Bi6C,YAAajc,EAAWh+B,IAAI,eAC5B+5C,cAAe/b,EAAWh+B,IAAI,iBAC9Bg6C,cAAehc,EAAWh+B,IAAI,kBAGhCkP,GAAI,IAKR,SAAS6sQ,EAAmBjzQ,EAAUxJ,EAAO0K,EAAQ3F,GACnD,IAAIo3E,EAAYp3E,EAAIylB,WAChB4xD,EAAar3E,EAAI0lB,YACrBjhB,EAAS,GAAKa,KAAK6E,IAAI1F,EAAS,GAAKxJ,EAAOm8E,GAAan8E,EACzDwJ,EAAS,GAAKa,KAAK6E,IAAI1F,EAAS,GAAKkB,EAAQ0xE,GAAc1xE,EAC3DlB,EAAS,GAAKa,KAAK4E,IAAIzF,EAAS,GAAI,GACpCA,EAAS,GAAKa,KAAK4E,IAAIzF,EAAS,GAAI,GAatC,SAASgxH,EAAcruH,EAAO+B,EAAM5P,EAASm8H,EAAmBzsH,GAC9D7B,EAAQ+B,EAAKjB,MAAM+M,MAAM7N,GACzB,IAAIhI,EAAO+J,EAAKjB,MAAM06C,SAEtBx7C,EAAO,CACLia,UAAWpY,EAAIoY,YAEbktC,EAAYtlD,EAAIslD,UAEpB,GAAIA,EAAW,CACb,IAAIjrD,EAAS,CACX8D,MAAOq0C,EAAWq6E,gBAAgB3sH,EAAM/B,GACxCwwQ,cAAezuQ,EAAKK,IACpBi9B,UAAWt9B,EAAKvI,MAChB4yF,WAAY,IAEdn3F,EAAOzD,KAAK88H,GAAmB,SAAUE,GACvC,IAAI3lD,EAAS12E,EAAQu5C,iBAAiB8iF,EAAQplF,aAC1Cn2C,EAAYu7H,EAAQ9U,gBACpB+U,EAAa5lD,GAAUA,EAAO5sE,cAAchJ,GAChDw7H,GAAcvyH,EAAOkwF,WAAWl5F,KAAKu7H,MAGnCx5H,EAAOid,SAASi1C,GAClBnvD,EAAOmvD,EAAUryD,QAAQ,UAAWkD,GAC3B/C,EAAO+zC,WAAWme,KAC3BnvD,EAAOmvD,EAAUjrD,IAIrB,OAAOlE,EAWT,SAASinI,EAAuBl9H,EAAM/B,EAAOkwD,GAC3C,IAAIvvD,EAAY20B,EAAOW,SAGvB,OAFAX,EAAOmC,OAAO92B,EAAWA,EAAWuvD,EAAWltD,UAC/CsyB,EAAO2gB,UAAUt1C,EAAWA,EAAWuvD,EAAW7yD,UAC3ClI,EAAQoiC,eAAe,CAACx1B,EAAKc,YAAY7C,IAASkwD,EAAW5sD,aAAe,IAAM4sD,EAAW/sD,gBAAkB,IAAM+sD,EAAW8uE,aAAe,IAAKr+H,GAG7J,SAASm+H,EAAkC9+H,EAAOm+H,EAAUjuE,EAAYtuD,EAAWw8H,EAAkBxlI,GACnG,IAAIy7E,EAAaxiC,EAAYkvH,gBAAgB7wG,EAAWltD,SAAU,EAAGktD,EAAW/sD,gBAChF+sD,EAAW8uE,YAAcZ,EAAiB7pI,IAAI,gBAC9CusK,EAAmB3iC,EAAUv8H,EAAWw8H,EAAkBxlI,EAAK,CAC7DyE,SAAU4hI,EAAuBr9H,EAAUG,KAAM/B,EAAOkwD,GACxD72D,MAAOg7E,EAAWn8E,UAClBopD,cAAe+yB,EAAWp8E,oBAU9B,SAASunI,EAAcxhI,EAAIC,EAAIu7O,GAE7B,OADAA,EAAYA,GAAa,EAClB,CACL/sL,GAAIzuD,EAAGw7O,GACP9sL,GAAI1uD,EAAG,EAAIw7O,GACX7sL,GAAI1uD,EAAGu7O,GACP5sL,GAAI3uD,EAAG,EAAIu7O,IAUf,SAAS75G,EAAcnkG,EAAID,EAAIi+M,GAE7B,OADAA,EAAYA,GAAa,EAClB,CACL1hP,EAAG0jC,EAAGg+M,GACNzhP,EAAGyjC,EAAG,EAAIg+M,GACV3lP,MAAO0nC,EAAGi+M,GACVj7O,OAAQg9B,EAAG,EAAIi+M,IAInB,SAASx4E,EAAgBvwH,EAAIC,EAAIwD,EAAIhuC,EAAGiuC,EAAYC,GAClD,MAAO,CACL3D,GAAIA,EACJC,GAAIA,EACJwD,GAAIA,EACJhuC,EAAGA,EACHiuC,WAAYA,EACZC,SAAUA,EACVyN,WAAW,GAIf7sD,EAAQ0pI,aAAeA,EACvB1pI,EAAQ8rK,mBAAqBA,EAC7B9rK,EAAQq5H,cAAgBA,EACxBr5H,EAAQiqI,uBAAyBA,EACjCjqI,EAAQ8pI,kCAAoCA,EAC5C9pI,EAAQwqI,cAAgBA,EACxBxqI,EAAQ2qI,cAAgBA,EACxB3qI,EAAQgsK,gBAAkBA","file":"js/dashboard.4f933638.js","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.parallel',\n dependencies: ['parallel'],\n visualColorAccessPath: 'lineStyle.color',\n getInitialData: function (option, ecModel) {\n var source = this.getSource();\n setEncodeAndDimensions(source, this);\n return createListFromArray(source, this);\n },\n\n /**\n * User can get data raw indices on 'axisAreaSelected' event received.\n *\n * @public\n * @param {string} activeState 'active' or 'inactive' or 'normal'\n * @return {Array.} Raw indices\n */\n getRawIndicesByActiveState: function (activeState) {\n var coordSys = this.coordinateSystem;\n var data = this.getData();\n var indices = [];\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n if (activeState === theActiveState) {\n indices.push(data.getRawIndex(dataIndex));\n }\n });\n return indices;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'parallel',\n parallelIndex: 0,\n label: {\n show: false\n },\n inactiveOpacity: 0.05,\n activeOpacity: 1,\n lineStyle: {\n width: 1,\n opacity: 0.45,\n type: 'solid'\n },\n emphasis: {\n label: {\n show: false\n }\n },\n progressive: 500,\n smooth: false,\n // true | false | number\n animationEasing: 'linear'\n }\n});\n\nfunction setEncodeAndDimensions(source, seriesModel) {\n // The mapping of parallelAxis dimension to data dimension can\n // be specified in parallelAxis.option.dim. For example, if\n // parallelAxis.option.dim is 'dim3', it mapping to the third\n // dimension of data. But `data.encode` has higher priority.\n // Moreover, parallelModel.dimension should not be regarded as data\n // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];\n if (source.encodeDefine) {\n return;\n }\n\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n if (!parallelModel) {\n return;\n }\n\n var encodeDefine = source.encodeDefine = createHashMap();\n each(parallelModel.dimensions, function (axisDim) {\n var dataDimIndex = convertDimNameToNumber(axisDim);\n encodeDefine.set(axisDim, dataDimIndex);\n });\n}\n\nfunction convertDimNameToNumber(dimName) {\n return +dimName.replace('dim', '');\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapView = require(\"./VisualMapView\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar layout = require(\"../../util/layout\");\n\nvar helper = require(\"./helper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PiecewiseVisualMapView = VisualMapView.extend({\n type: 'visualMap.piecewise',\n\n /**\n * @protected\n * @override\n */\n doRender: function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var textStyleModel = visualMapModel.textStyleModel;\n var textFont = textStyleModel.getFont();\n var textFill = textStyleModel.getTextColor();\n\n var itemAlign = this._getItemAlign();\n\n var itemSize = visualMapModel.itemSize;\n\n var viewData = this._getViewData();\n\n var endsText = viewData.endsText;\n var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n zrUtil.each(viewData.viewPieceList, renderItem, this);\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n this.renderBackground(thisGroup);\n this.positionGroup(thisGroup);\n\n function renderItem(item) {\n var piece = item.piece;\n var itemGroup = new graphic.Group();\n itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n var representValue = visualMapModel.getRepresentValue(piece);\n\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n if (showLabel) {\n var visualState = this.visualMapModel.getValueState(representValue);\n itemGroup.add(new graphic.Text({\n style: {\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n y: itemSize[1] / 2,\n text: piece.text,\n textVerticalAlign: 'middle',\n textAlign: itemAlign,\n textFont: textFont,\n textFill: textFill,\n opacity: visualState === 'outOfRange' ? 0.5 : 1\n }\n }));\n }\n\n thisGroup.add(itemGroup);\n }\n },\n\n /**\n * @private\n */\n _enableHoverLink: function (itemGroup, pieceIndex) {\n itemGroup.on('mouseover', zrUtil.bind(onHoverLink, this, 'highlight')).on('mouseout', zrUtil.bind(onHoverLink, this, 'downplay'));\n\n function onHoverLink(method) {\n var visualMapModel = this.visualMapModel;\n visualMapModel.option.hoverLink && this.api.dispatchAction({\n type: method,\n batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n });\n }\n },\n\n /**\n * @private\n */\n _getItemAlign: function () {\n var visualMapModel = this.visualMapModel;\n var modelOption = visualMapModel.option;\n\n if (modelOption.orient === 'vertical') {\n return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n } else {\n // horizontal, most case left unless specifying right.\n var align = modelOption.align;\n\n if (!align || align === 'auto') {\n align = 'left';\n }\n\n return align;\n }\n },\n\n /**\n * @private\n */\n _renderEndsText: function (group, text, itemSize, showLabel, itemAlign) {\n if (!text) {\n return;\n }\n\n var itemGroup = new graphic.Group();\n var textStyleModel = this.visualMapModel.textStyleModel;\n itemGroup.add(new graphic.Text({\n style: {\n x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n y: itemSize[1] / 2,\n textVerticalAlign: 'middle',\n textAlign: showLabel ? itemAlign : 'center',\n text: text,\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n }));\n group.add(itemGroup);\n },\n\n /**\n * @private\n * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n */\n _getViewData: function () {\n var visualMapModel = this.visualMapModel;\n var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n return {\n piece: piece,\n indexInModelPieceList: index\n };\n });\n var endsText = visualMapModel.get('text'); // Consider orient and inverse.\n\n var orient = visualMapModel.get('orient');\n var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n if (orient === 'horizontal' ? inverse : !inverse) {\n viewPieceList.reverse();\n } // Origin order of endsText is [high, low]\n else if (endsText) {\n endsText = endsText.slice().reverse();\n }\n\n return {\n viewPieceList: viewPieceList,\n endsText: endsText\n };\n },\n\n /**\n * @private\n */\n _createItemSymbol: function (group, representValue, shapeParam) {\n group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n },\n\n /**\n * @private\n */\n _onItemClick: function (piece) {\n var visualMapModel = this.visualMapModel;\n var option = visualMapModel.option;\n var selected = zrUtil.clone(option.selected);\n var newKey = visualMapModel.getSelectedMapKey(piece);\n\n if (option.selectedMode === 'single') {\n selected[newKey] = true;\n zrUtil.each(selected, function (o, key) {\n selected[key] = key === newKey;\n });\n } else {\n selected[newKey] = !selected[newKey];\n }\n\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: selected\n });\n }\n});\nvar _default = PiecewiseVisualMapView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./tooltip/TooltipModel\");\n\nrequire(\"./tooltip/TooltipView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Better way to pack data in graphic element\n\n/**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\necharts.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n}, // noop\nfunction () {});\necharts.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n}, // noop\nfunction () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar _sourceHelper = require(\"../../data/helper/sourceHelper\");\n\nvar makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased;\n\nvar LegendVisualProvider = require(\"../../visual/LegendVisualProvider\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FunnelSeries = echarts.extendSeriesModel({\n type: 'series.funnel',\n init: function (option) {\n FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis\n\n this._defaultLabelLine(option);\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex);\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n legendHoverLink: true,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n // 默认取数据最小最大值\n // min: 0,\n // max: 100,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n // 'ascending', 'descending'\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n // color: 各异,\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = FunnelSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\n\nfunction _default(coordSys) {\n var rect = coordSys.getBoundingRect();\n return {\n coordSys: {\n type: 'geo',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n zoom: coordSys.getZoom()\n },\n api: {\n coord: function (data) {\n // do not provide \"out\" and noRoam param,\n // Compatible with this usage:\n // echarts.util.map(item.points, api.coord)\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar View = require(\"../View\");\n\nvar geoSourceManager = require(\"./geoSourceManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * [Geo description]\n * For backward compatibility, the orginal interface:\n * `name, map, geoJson, specialAreas, nameMap` is kept.\n *\n * @param {string|Object} name\n * @param {string} map Map type\n * Specify the positioned areas by left, top, width, height\n * @param {Object.} [nameMap]\n * Specify name alias\n * @param {boolean} [invertLongitute=true]\n */\nfunction Geo(name, map, nameMap, invertLongitute) {\n View.call(this, name);\n /**\n * Map type\n * @type {string}\n */\n\n this.map = map;\n var source = geoSourceManager.load(map, nameMap);\n this._nameCoordMap = source.nameCoordMap;\n this._regionsMap = source.regionsMap;\n this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n /**\n * @readOnly\n */\n\n this.regions = source.regions;\n /**\n * @type {module:zrender/src/core/BoundingRect}\n */\n\n this._rect = source.boundingRect;\n}\n\nGeo.prototype = {\n constructor: Geo,\n type: 'geo',\n\n /**\n * @param {Array.}\n * @readOnly\n */\n dimensions: ['lng', 'lat'],\n\n /**\n * If contain given lng,lat coord\n * @param {Array.}\n * @readOnly\n */\n containCoord: function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * @override\n */\n transformTo: function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var invertLongitute = this._invertLongitute;\n rect = rect.clone();\n\n if (invertLongitute) {\n // Longitute is inverted\n rect.y = -rect.y - rect.height;\n }\n\n var rawTransformable = this._rawTransformable;\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n rawTransformable.decomposeTransform();\n\n if (invertLongitute) {\n var scale = rawTransformable.scale;\n scale[1] = -scale[1];\n }\n\n rawTransformable.updateTransform();\n\n this._updateTransform();\n },\n\n /**\n * @param {string} name\n * @return {module:echarts/coord/geo/Region}\n */\n getRegion: function (name) {\n return this._regionsMap.get(name);\n },\n getRegionByCoord: function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return regions[i];\n }\n }\n },\n\n /**\n * Add geoCoord for indexing by name\n * @param {string} name\n * @param {Array.} geoCoord\n */\n addGeoCoord: function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n },\n\n /**\n * Get geoCoord by name\n * @param {string} name\n * @return {Array.}\n */\n getGeoCoord: function (name) {\n return this._nameCoordMap.get(name);\n },\n\n /**\n * @override\n */\n getBoundingRect: function () {\n return this._rect;\n },\n\n /**\n * @param {string|Array.} data\n * @param {boolean} noRoam\n * @param {Array.} [out]\n * @return {Array.}\n */\n dataToPoint: function (data, noRoam, out) {\n if (typeof data === 'string') {\n // Map area name to geoCoord\n data = this.getGeoCoord(data);\n }\n\n if (data) {\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\n }\n },\n\n /**\n * @override\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @override\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData')\n};\nzrUtil.mixin(Geo, View);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n var coordSys = geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map.\n || (seriesModel.getReferringComponents('geo')[0] || {}).coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = Geo;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Can only be called after coordinate system creation stage.\n * (Can be called before coordinate system update stage).\n *\n * @param {Object} opt {labelInside}\n * @return {Object} {\n * position, rotation, labelDirection, labelOffset,\n * tickDirection, labelRotate, z2\n * }\n */\nfunction layout(gridModel, axisModel, opt) {\n opt = opt || {};\n var grid = gridModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n var rawAxisPosition = axis.position;\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n var axisDim = axis.dim;\n var rect = grid.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var idx = {\n left: 0,\n right: 1,\n top: 0,\n bottom: 1,\n onZero: 2\n };\n var axisOffset = axisModel.get('offset') || 0;\n var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n if (otherAxisOnZeroOf) {\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n } // Axis position\n\n\n layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]]; // Axis rotation\n\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1); // Tick and label direction, x y is axisDim\n\n var dirMap = {\n top: -1,\n bottom: 1,\n left: -1,\n right: 1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n if (axisModel.get('axisTick.inside')) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get('axisLabel.inside'))) {\n layout.labelDirection = -layout.labelDirection;\n } // Special label rotation\n\n\n var labelRotate = axisModel.get('axisLabel.rotate');\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate; // Over splitLine and splitArea\n\n layout.z2 = 1;\n return layout;\n}\n\nexports.layout = layout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../util/graphic\");\n\nrequire(\"../coord/cartesian/Grid\");\n\nrequire(\"./axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Grid view\necharts.extendComponentView({\n type: 'grid',\n render: function (gridModel, ecModel) {\n this.group.removeAll();\n\n if (gridModel.get('show')) {\n this.group.add(new graphic.Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: zrUtil.defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n }\n});\necharts.registerPreprocessor(function (option) {\n // Only create grid when need\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\n }\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For geo and graph.\n *\n * @param {Object} controllerHost\n * @param {module:zrender/Element} controllerHost.target\n */\nfunction updateViewOnPan(controllerHost, dx, dy) {\n var target = controllerHost.target;\n var pos = target.position;\n pos[0] += dx;\n pos[1] += dy;\n target.dirty();\n}\n/**\n * For geo and graph.\n *\n * @param {Object} controllerHost\n * @param {module:zrender/Element} controllerHost.target\n * @param {number} controllerHost.zoom\n * @param {number} controllerHost.zoomLimit like: {min: 1, max: 2}\n */\n\n\nfunction updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n var target = controllerHost.target;\n var zoomLimit = controllerHost.zoomLimit;\n var pos = target.position;\n var scale = target.scale;\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n newZoom *= zoomDelta;\n\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n }\n\n var zoomScale = newZoom / controllerHost.zoom;\n controllerHost.zoom = newZoom; // Keep the mouse center when scaling\n\n pos[0] -= (zoomX - pos[0]) * (zoomScale - 1);\n pos[1] -= (zoomY - pos[1]) * (zoomScale - 1);\n scale[0] *= zoomScale;\n scale[1] *= zoomScale;\n target.dirty();\n}\n\nexports.updateViewOnPan = updateViewOnPan;\nexports.updateViewOnZoom = updateViewOnZoom;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar ComponentModel = require(\"../model/Component\");\n\nvar ComponentView = require(\"../view/Component\");\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar detectSourceFormat = _sourceHelper.detectSourceFormat;\n\nvar _sourceType = require(\"../data/helper/sourceType\");\n\nvar SERIES_LAYOUT_BY_COLUMN = _sourceType.SERIES_LAYOUT_BY_COLUMN;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * This module is imported by echarts directly.\n *\n * Notice:\n * Always keep this file exists for backward compatibility.\n * Because before 4.1.0, dataset is an optional component,\n * some users may import this module manually.\n */\nComponentModel.extend({\n type: 'dataset',\n\n /**\n * @protected\n */\n defaultOption: {\n // 'row', 'column'\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n // null/'auto': auto detect header, see \"module:echarts/data/helper/sourceHelper\"\n sourceHeader: null,\n dimensions: null,\n source: null\n },\n optionUpdated: function () {\n detectSourceFormat(this);\n }\n});\nComponentView.extend({\n type: 'dataset'\n});","// https://github.com/mziccard/node-timsort\nvar DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\n\nfunction minRunLength(n) {\n var r = 0;\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= n & 1;\n n >>= 1;\n }\n\n return n + r;\n}\n\nfunction makeAscendingRun(array, lo, hi, compare) {\n var runHi = lo + 1;\n\n if (runHi === hi) {\n return 1;\n }\n\n if (compare(array[runHi++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi++;\n }\n\n reverseRun(array, lo, runHi);\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi++;\n }\n }\n\n return runHi - lo;\n}\n\nfunction reverseRun(array, lo, hi) {\n hi--;\n\n while (lo < hi) {\n var t = array[lo];\n array[lo++] = array[hi];\n array[hi--] = t;\n }\n}\n\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n if (start === lo) {\n start++;\n }\n\n for (; start < hi; start++) {\n var pivot = array[start];\n var left = lo;\n var right = start;\n var mid;\n\n while (left < right) {\n mid = left + right >>> 1;\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid;\n } else {\n left = mid + 1;\n }\n }\n\n var n = start - left;\n\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2];\n\n case 2:\n array[left + 2] = array[left + 1];\n\n case 1:\n array[left + 1] = array[left];\n break;\n\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1];\n n--;\n }\n\n }\n\n array[left] = pivot;\n }\n}\n\nfunction gallopLeft(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint;\n\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n lastOffset += hint;\n offset += hint;\n } else {\n maxOffset = hint + 1;\n\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n\n lastOffset++;\n\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1;\n } else {\n offset = m;\n }\n }\n\n return offset;\n}\n\nfunction gallopRight(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1;\n\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n } else {\n maxOffset = length - hint;\n\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n lastOffset += hint;\n offset += hint;\n }\n\n lastOffset++;\n\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n\n if (compare(value, array[start + m]) < 0) {\n offset = m;\n } else {\n lastOffset = m + 1;\n }\n }\n\n return offset;\n}\n\nfunction TimSort(array, compare) {\n var minGallop = DEFAULT_MIN_GALLOPING;\n var length = 0;\n var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n var stackLength = 0;\n var runStart;\n var runLength;\n var stackSize = 0;\n length = array.length;\n\n if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n tmpStorageLength = length >>> 1;\n }\n\n var tmp = [];\n stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n runStart = [];\n runLength = [];\n\n function pushRun(_runStart, _runLength) {\n runStart[stackSize] = _runStart;\n runLength[stackSize] = _runLength;\n stackSize += 1;\n }\n\n function mergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n\n if (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1] || n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1]) {\n if (runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n } else if (runLength[n] > runLength[n + 1]) {\n break;\n }\n\n mergeAt(n);\n }\n }\n\n function forceMergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n\n mergeAt(n);\n }\n }\n\n function mergeAt(i) {\n var start1 = runStart[i];\n var length1 = runLength[i];\n var start2 = runStart[i + 1];\n var length2 = runLength[i + 1];\n runLength[i] = length1 + length2;\n\n if (i === stackSize - 3) {\n runStart[i + 1] = runStart[i + 2];\n runLength[i + 1] = runLength[i + 2];\n }\n\n stackSize--;\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n start1 += k;\n length1 -= k;\n\n if (length1 === 0) {\n return;\n }\n\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n\n if (length2 === 0) {\n return;\n }\n\n if (length1 <= length2) {\n mergeLow(start1, length1, start2, length2);\n } else {\n mergeHigh(start1, length1, start2, length2);\n }\n }\n\n function mergeLow(start1, length1, start2, length2) {\n var i = 0;\n\n for (i = 0; i < length1; i++) {\n tmp[i] = array[start1 + i];\n }\n\n var cursor1 = 0;\n var cursor2 = start2;\n var dest = start1;\n array[dest++] = array[cursor2++];\n\n if (--length2 === 0) {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n\n return;\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n array[dest + length2] = tmp[cursor1];\n return;\n }\n\n var _minGallop = minGallop;\n var count1;\n var count2;\n var exit;\n\n while (1) {\n count1 = 0;\n count2 = 0;\n exit = false;\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest++] = array[cursor2++];\n count2++;\n count1 = 0;\n\n if (--length2 === 0) {\n exit = true;\n break;\n }\n } else {\n array[dest++] = tmp[cursor1++];\n count1++;\n count2 = 0;\n\n if (--length1 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n\n if (exit) {\n break;\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n\n dest += count1;\n cursor1 += count1;\n length1 -= count1;\n\n if (length1 <= 1) {\n exit = true;\n break;\n }\n }\n\n array[dest++] = array[cursor2++];\n\n if (--length2 === 0) {\n exit = true;\n break;\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n dest += count2;\n cursor2 += count2;\n length2 -= count2;\n\n if (length2 === 0) {\n exit = true;\n break;\n }\n }\n\n array[dest++] = tmp[cursor1++];\n\n if (--length1 === 1) {\n exit = true;\n break;\n }\n\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n if (exit) {\n break;\n }\n\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n\n _minGallop += 2;\n }\n\n minGallop = _minGallop;\n minGallop < 1 && (minGallop = 1);\n\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n array[dest + length2] = tmp[cursor1];\n } else if (length1 === 0) {\n throw new Error(); // throw new Error('mergeLow preconditions were not respected');\n } else {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n }\n }\n\n function mergeHigh(start1, length1, start2, length2) {\n var i = 0;\n\n for (i = 0; i < length2; i++) {\n tmp[i] = array[start2 + i];\n }\n\n var cursor1 = start1 + length1 - 1;\n var cursor2 = length2 - 1;\n var dest = start2 + length2 - 1;\n var customCursor = 0;\n var customDest = 0;\n array[dest--] = array[cursor1--];\n\n if (--length1 === 0) {\n customCursor = dest - (length2 - 1);\n\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n\n return;\n }\n\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n array[dest] = tmp[cursor2];\n return;\n }\n\n var _minGallop = minGallop;\n\n while (true) {\n var count1 = 0;\n var count2 = 0;\n var exit = false;\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest--] = array[cursor1--];\n count1++;\n count2 = 0;\n\n if (--length1 === 0) {\n exit = true;\n break;\n }\n } else {\n array[dest--] = tmp[cursor2--];\n count2++;\n count1 = 0;\n\n if (--length2 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n\n if (exit) {\n break;\n }\n\n do {\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n\n if (count1 !== 0) {\n dest -= count1;\n cursor1 -= count1;\n length1 -= count1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = count1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n if (length1 === 0) {\n exit = true;\n break;\n }\n }\n\n array[dest--] = tmp[cursor2--];\n\n if (--length2 === 1) {\n exit = true;\n break;\n }\n\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n\n if (count2 !== 0) {\n dest -= count2;\n cursor2 -= count2;\n length2 -= count2;\n customDest = dest + 1;\n customCursor = cursor2 + 1;\n\n for (i = 0; i < count2; i++) {\n array[customDest + i] = tmp[customCursor + i];\n }\n\n if (length2 <= 1) {\n exit = true;\n break;\n }\n }\n\n array[dest--] = array[cursor1--];\n\n if (--length1 === 0) {\n exit = true;\n break;\n }\n\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n if (exit) {\n break;\n }\n\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n\n _minGallop += 2;\n }\n\n minGallop = _minGallop;\n\n if (minGallop < 1) {\n minGallop = 1;\n }\n\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n array[dest] = tmp[cursor2];\n } else if (length2 === 0) {\n throw new Error(); // throw new Error('mergeHigh preconditions were not respected');\n } else {\n customCursor = dest - (length2 - 1);\n\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n }\n }\n\n this.mergeRuns = mergeRuns;\n this.forceMergeRuns = forceMergeRuns;\n this.pushRun = pushRun;\n}\n\nfunction sort(array, compare, lo, hi) {\n if (!lo) {\n lo = 0;\n }\n\n if (!hi) {\n hi = array.length;\n }\n\n var remaining = hi - lo;\n\n if (remaining < 2) {\n return;\n }\n\n var runLength = 0;\n\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare);\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n return;\n }\n\n var ts = new TimSort(array, compare);\n var minRun = minRunLength(remaining);\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare);\n\n if (runLength < minRun) {\n var force = remaining;\n\n if (force > minRun) {\n force = minRun;\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n runLength = force;\n }\n\n ts.pushRun(lo, runLength);\n ts.mergeRuns();\n remaining -= runLength;\n lo += runLength;\n } while (remaining !== 0);\n\n ts.forceMergeRuns();\n}\n\nmodule.exports = sort;","var windingLine = require(\"./windingLine\");\n\nvar EPSILON = 1e-8;\n\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\n\nfunction contain(points, x, y) {\n var w = 0;\n var p = points[0];\n\n if (!p) {\n return false;\n }\n\n for (var i = 1; i < points.length; i++) {\n var p2 = points[i];\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n p = p2;\n } // Close polygon\n\n\n var p0 = points[0];\n\n if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n }\n\n return w !== 0;\n}\n\nexports.contain = contain;","var Clip = require(\"./Clip\");\n\nvar color = require(\"../tool/color\");\n\nvar _util = require(\"../core/util\");\n\nvar isArrayLike = _util.isArrayLike;\n\n/**\n * @module echarts/animation/Animator\n */\nvar arraySlice = Array.prototype.slice;\n\nfunction defaultGetter(target, key) {\n return target[key];\n}\n\nfunction defaultSetter(target, key, value) {\n target[key] = value;\n}\n/**\n * @param {number} p0\n * @param {number} p1\n * @param {number} percent\n * @return {number}\n */\n\n\nfunction interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\n/**\n * @param {string} p0\n * @param {string} p1\n * @param {number} percent\n * @return {string}\n */\n\n\nfunction interpolateString(p0, p1, percent) {\n return percent > 0.5 ? p1 : p0;\n}\n/**\n * @param {Array} p0\n * @param {Array} p1\n * @param {number} percent\n * @param {Array} out\n * @param {number} arrDim\n */\n\n\nfunction interpolateArray(p0, p1, percent, out, arrDim) {\n var len = p0.length;\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n out[i] = interpolateNumber(p0[i], p1[i], percent);\n }\n } else {\n var len2 = len && p0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n }\n }\n }\n} // arr0 is source array, arr1 is target array.\n// Do some preprocess to avoid error happened when interpolating from arr0 to arr1\n\n\nfunction fillArr(arr0, arr1, arrDim) {\n var arr0Len = arr0.length;\n var arr1Len = arr1.length;\n\n if (arr0Len !== arr1Len) {\n // FIXME Not work for TypedArray\n var isPreviousLarger = arr0Len > arr1Len;\n\n if (isPreviousLarger) {\n // Cut the previous\n arr0.length = arr1Len;\n } else {\n // Fill the previous\n for (var i = arr0Len; i < arr1Len; i++) {\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n }\n }\n } // Handling NaN value\n\n\n var len2 = arr0[0] && arr0[0].length;\n\n for (var i = 0; i < arr0.length; i++) {\n if (arrDim === 1) {\n if (isNaN(arr0[i])) {\n arr0[i] = arr1[i];\n }\n } else {\n for (var j = 0; j < len2; j++) {\n if (isNaN(arr0[i][j])) {\n arr0[i][j] = arr1[i][j];\n }\n }\n }\n }\n}\n/**\n * @param {Array} arr0\n * @param {Array} arr1\n * @param {number} arrDim\n * @return {boolean}\n */\n\n\nfunction isArraySame(arr0, arr1, arrDim) {\n if (arr0 === arr1) {\n return true;\n }\n\n var len = arr0.length;\n\n if (len !== arr1.length) {\n return false;\n }\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n if (arr0[i] !== arr1[i]) {\n return false;\n }\n }\n } else {\n var len2 = arr0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n if (arr0[i][j] !== arr1[i][j]) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n/**\n * Catmull Rom interpolate array\n * @param {Array} p0\n * @param {Array} p1\n * @param {Array} p2\n * @param {Array} p3\n * @param {number} t\n * @param {number} t2\n * @param {number} t3\n * @param {Array} out\n * @param {number} arrDim\n */\n\n\nfunction catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) {\n var len = p0.length;\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n }\n } else {\n var len2 = p0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n }\n }\n }\n}\n/**\n * Catmull Rom interpolate number\n * @param {number} p0\n * @param {number} p1\n * @param {number} p2\n * @param {number} p3\n * @param {number} t\n * @param {number} t2\n * @param {number} t3\n * @return {number}\n */\n\n\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\n\nfunction cloneValue(value) {\n if (isArrayLike(value)) {\n var len = value.length;\n\n if (isArrayLike(value[0])) {\n var ret = [];\n\n for (var i = 0; i < len; i++) {\n ret.push(arraySlice.call(value[i]));\n }\n\n return ret;\n }\n\n return arraySlice.call(value);\n }\n\n return value;\n}\n\nfunction rgba2String(rgba) {\n rgba[0] = Math.floor(rgba[0]);\n rgba[1] = Math.floor(rgba[1]);\n rgba[2] = Math.floor(rgba[2]);\n return 'rgba(' + rgba.join(',') + ')';\n}\n\nfunction getArrayDim(keyframes) {\n var lastValue = keyframes[keyframes.length - 1].value;\n return isArrayLike(lastValue && lastValue[0]) ? 2 : 1;\n}\n\nfunction createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) {\n var getter = animator._getter;\n var setter = animator._setter;\n var useSpline = easing === 'spline';\n var trackLen = keyframes.length;\n\n if (!trackLen) {\n return;\n } // Guess data type\n\n\n var firstVal = keyframes[0].value;\n var isValueArray = isArrayLike(firstVal);\n var isValueColor = false;\n var isValueString = false; // For vertices morphing\n\n var arrDim = isValueArray ? getArrayDim(keyframes) : 0;\n var trackMaxTime; // Sort keyframe as ascending\n\n keyframes.sort(function (a, b) {\n return a.time - b.time;\n });\n trackMaxTime = keyframes[trackLen - 1].time; // Percents of each keyframe\n\n var kfPercents = []; // Value of each keyframe\n\n var kfValues = [];\n var prevValue = keyframes[0].value;\n var isAllValueEqual = true;\n\n for (var i = 0; i < trackLen; i++) {\n kfPercents.push(keyframes[i].time / trackMaxTime); // Assume value is a color when it is a string\n\n var value = keyframes[i].value; // Check if value is equal, deep check if value is array\n\n if (!(isValueArray && isArraySame(value, prevValue, arrDim) || !isValueArray && value === prevValue)) {\n isAllValueEqual = false;\n }\n\n prevValue = value; // Try converting a string to a color array\n\n if (typeof value === 'string') {\n var colorArray = color.parse(value);\n\n if (colorArray) {\n value = colorArray;\n isValueColor = true;\n } else {\n isValueString = true;\n }\n }\n\n kfValues.push(value);\n }\n\n if (!forceAnimate && isAllValueEqual) {\n return;\n }\n\n var lastValue = kfValues[trackLen - 1]; // Polyfill array and NaN value\n\n for (var i = 0; i < trackLen - 1; i++) {\n if (isValueArray) {\n fillArr(kfValues[i], lastValue, arrDim);\n } else {\n if (isNaN(kfValues[i]) && !isNaN(lastValue) && !isValueString && !isValueColor) {\n kfValues[i] = lastValue;\n }\n }\n }\n\n isValueArray && fillArr(getter(animator._target, propName), lastValue, arrDim); // Cache the key of last frame to speed up when\n // animation playback is sequency\n\n var lastFrame = 0;\n var lastFramePercent = 0;\n var start;\n var w;\n var p0;\n var p1;\n var p2;\n var p3;\n\n if (isValueColor) {\n var rgba = [0, 0, 0, 0];\n }\n\n var onframe = function (target, percent) {\n // Find the range keyframes\n // kf1-----kf2---------current--------kf3\n // find kf2 and kf3 and do interpolation\n var frame; // In the easing function like elasticOut, percent may less than 0\n\n if (percent < 0) {\n frame = 0;\n } else if (percent < lastFramePercent) {\n // Start from next key\n // PENDING start from lastFrame ?\n start = Math.min(lastFrame + 1, trackLen - 1);\n\n for (frame = start; frame >= 0; frame--) {\n if (kfPercents[frame] <= percent) {\n break;\n }\n } // PENDING really need to do this ?\n\n\n frame = Math.min(frame, trackLen - 2);\n } else {\n for (frame = lastFrame; frame < trackLen; frame++) {\n if (kfPercents[frame] > percent) {\n break;\n }\n }\n\n frame = Math.min(frame - 1, trackLen - 2);\n }\n\n lastFrame = frame;\n lastFramePercent = percent;\n var range = kfPercents[frame + 1] - kfPercents[frame];\n\n if (range === 0) {\n return;\n } else {\n w = (percent - kfPercents[frame]) / range;\n }\n\n if (useSpline) {\n p1 = kfValues[frame];\n p0 = kfValues[frame === 0 ? frame : frame - 1];\n p2 = kfValues[frame > trackLen - 2 ? trackLen - 1 : frame + 1];\n p3 = kfValues[frame > trackLen - 3 ? trackLen - 1 : frame + 2];\n\n if (isValueArray) {\n catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim);\n } else {\n var value;\n\n if (isValueColor) {\n value = catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1);\n value = rgba2String(rgba);\n } else if (isValueString) {\n // String is step(0.5)\n return interpolateString(p1, p2, w);\n } else {\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n }\n\n setter(target, propName, value);\n }\n } else {\n if (isValueArray) {\n interpolateArray(kfValues[frame], kfValues[frame + 1], w, getter(target, propName), arrDim);\n } else {\n var value;\n\n if (isValueColor) {\n interpolateArray(kfValues[frame], kfValues[frame + 1], w, rgba, 1);\n value = rgba2String(rgba);\n } else if (isValueString) {\n // String is step(0.5)\n return interpolateString(kfValues[frame], kfValues[frame + 1], w);\n } else {\n value = interpolateNumber(kfValues[frame], kfValues[frame + 1], w);\n }\n\n setter(target, propName, value);\n }\n }\n };\n\n var clip = new Clip({\n target: animator._target,\n life: trackMaxTime,\n loop: animator._loop,\n delay: animator._delay,\n onframe: onframe,\n ondestroy: oneTrackDone\n });\n\n if (easing && easing !== 'spline') {\n clip.easing = easing;\n }\n\n return clip;\n}\n/**\n * @alias module:zrender/animation/Animator\n * @constructor\n * @param {Object} target\n * @param {boolean} loop\n * @param {Function} getter\n * @param {Function} setter\n */\n\n\nvar Animator = function (target, loop, getter, setter) {\n this._tracks = {};\n this._target = target;\n this._loop = loop || false;\n this._getter = getter || defaultGetter;\n this._setter = setter || defaultSetter;\n this._clipCount = 0;\n this._delay = 0;\n this._doneList = [];\n this._onframeList = [];\n this._clipList = [];\n};\n\nAnimator.prototype = {\n /**\n * Set Animation keyframe\n * @param {number} time 关键帧时间,单位是ms\n * @param {Object} props 关键帧的属性值,key-value表示\n * @return {module:zrender/animation/Animator}\n */\n when: function (time\n /* ms */\n , props) {\n var tracks = this._tracks;\n\n for (var propName in props) {\n if (!props.hasOwnProperty(propName)) {\n continue;\n }\n\n if (!tracks[propName]) {\n tracks[propName] = []; // Invalid value\n\n var value = this._getter(this._target, propName);\n\n if (value == null) {\n // zrLog('Invalid property ' + propName);\n continue;\n } // If time is 0\n // Then props is given initialize value\n // Else\n // Initialize value from current prop value\n\n\n if (time !== 0) {\n tracks[propName].push({\n time: 0,\n value: cloneValue(value)\n });\n }\n }\n\n tracks[propName].push({\n time: time,\n value: props[propName]\n });\n }\n\n return this;\n },\n\n /**\n * 添加动画每一帧的回调函数\n * @param {Function} callback\n * @return {module:zrender/animation/Animator}\n */\n during: function (callback) {\n this._onframeList.push(callback);\n\n return this;\n },\n pause: function () {\n for (var i = 0; i < this._clipList.length; i++) {\n this._clipList[i].pause();\n }\n\n this._paused = true;\n },\n resume: function () {\n for (var i = 0; i < this._clipList.length; i++) {\n this._clipList[i].resume();\n }\n\n this._paused = false;\n },\n isPaused: function () {\n return !!this._paused;\n },\n _doneCallback: function () {\n // Clear all tracks\n this._tracks = {}; // Clear all clips\n\n this._clipList.length = 0;\n var doneList = this._doneList;\n var len = doneList.length;\n\n for (var i = 0; i < len; i++) {\n doneList[i].call(this);\n }\n },\n\n /**\n * Start the animation\n * @param {string|Function} [easing]\n * 动画缓动函数,详见{@link module:zrender/animation/easing}\n * @param {boolean} forceAnimate\n * @return {module:zrender/animation/Animator}\n */\n start: function (easing, forceAnimate) {\n var self = this;\n var clipCount = 0;\n\n var oneTrackDone = function () {\n clipCount--;\n\n if (!clipCount) {\n self._doneCallback();\n }\n };\n\n var lastClip;\n\n for (var propName in this._tracks) {\n if (!this._tracks.hasOwnProperty(propName)) {\n continue;\n }\n\n var clip = createTrackClip(this, easing, oneTrackDone, this._tracks[propName], propName, forceAnimate);\n\n if (clip) {\n this._clipList.push(clip);\n\n clipCount++; // If start after added to animation\n\n if (this.animation) {\n this.animation.addClip(clip);\n }\n\n lastClip = clip;\n }\n } // Add during callback on the last clip\n\n\n if (lastClip) {\n var oldOnFrame = lastClip.onframe;\n\n lastClip.onframe = function (target, percent) {\n oldOnFrame(target, percent);\n\n for (var i = 0; i < self._onframeList.length; i++) {\n self._onframeList[i](target, percent);\n }\n };\n } // This optimization will help the case that in the upper application\n // the view may be refreshed frequently, where animation will be\n // called repeatly but nothing changed.\n\n\n if (!clipCount) {\n this._doneCallback();\n }\n\n return this;\n },\n\n /**\n * Stop animation\n * @param {boolean} forwardToLast If move to last frame before stop\n */\n stop: function (forwardToLast) {\n var clipList = this._clipList;\n var animation = this.animation;\n\n for (var i = 0; i < clipList.length; i++) {\n var clip = clipList[i];\n\n if (forwardToLast) {\n // Move to last frame before stop\n clip.onframe(this._target, 1);\n }\n\n animation && animation.removeClip(clip);\n }\n\n clipList.length = 0;\n },\n\n /**\n * Set when animation delay starts\n * @param {number} time 单位ms\n * @return {module:zrender/animation/Animator}\n */\n delay: function (time) {\n this._delay = time;\n return this;\n },\n\n /**\n * Add callback for animation end\n * @param {Function} cb\n * @return {module:zrender/animation/Animator}\n */\n done: function (cb) {\n if (cb) {\n this._doneList.push(cb);\n }\n\n return this;\n },\n\n /**\n * @return {Array.}\n */\n getClips: function () {\n return this._clipList;\n }\n};\nvar _default = Animator;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Model = require(\"../model/Model\");\n\nvar linkList = require(\"./helper/linkList\");\n\nvar List = require(\"./List\");\n\nvar createDimensions = require(\"./helper/createDimensions\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Tree data structure\n *\n * @module echarts/data/Tree\n */\n\n/**\n * @constructor module:echarts/data/Tree~TreeNode\n * @param {string} name\n * @param {module:echarts/data/Tree} hostTree\n */\nvar TreeNode = function (name, hostTree) {\n /**\n * @type {string}\n */\n this.name = name || '';\n /**\n * Depth of node\n *\n * @type {number}\n * @readOnly\n */\n\n this.depth = 0;\n /**\n * Height of the subtree rooted at this node.\n * @type {number}\n * @readOnly\n */\n\n this.height = 0;\n /**\n * @type {module:echarts/data/Tree~TreeNode}\n * @readOnly\n */\n\n this.parentNode = null;\n /**\n * Reference to list item.\n * Do not persistent dataIndex outside,\n * besause it may be changed by list.\n * If dataIndex -1,\n * this node is logical deleted (filtered) in list.\n *\n * @type {Object}\n * @readOnly\n */\n\n this.dataIndex = -1;\n /**\n * @type {Array.}\n * @readOnly\n */\n\n this.children = [];\n /**\n * @type {Array.}\n * @pubilc\n */\n\n this.viewChildren = [];\n /**\n * @type {moduel:echarts/data/Tree}\n * @readOnly\n */\n\n this.hostTree = hostTree;\n};\n\nTreeNode.prototype = {\n constructor: TreeNode,\n\n /**\n * The node is removed.\n * @return {boolean} is removed.\n */\n isRemoved: function () {\n return this.dataIndex < 0;\n },\n\n /**\n * Travel this subtree (include this node).\n * Usage:\n * node.eachNode(function () { ... }); // preorder\n * node.eachNode('preorder', function () { ... }); // preorder\n * node.eachNode('postorder', function () { ... }); // postorder\n * node.eachNode(\n * {order: 'postorder', attr: 'viewChildren'},\n * function () { ... }\n * ); // postorder\n *\n * @param {(Object|string)} options If string, means order.\n * @param {string=} options.order 'preorder' or 'postorder'\n * @param {string=} options.attr 'children' or 'viewChildren'\n * @param {Function} cb If in preorder and return false,\n * its subtree will not be visited.\n * @param {Object} [context]\n */\n eachNode: function (options, cb, context) {\n if (typeof options === 'function') {\n context = cb;\n cb = options;\n options = null;\n }\n\n options = options || {};\n\n if (zrUtil.isString(options)) {\n options = {\n order: options\n };\n }\n\n var order = options.order || 'preorder';\n var children = this[options.attr || 'children'];\n var suppressVisitSub;\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n children[i].eachNode(options, cb, context);\n }\n\n order === 'postorder' && cb.call(context, this);\n },\n\n /**\n * Update depth and height of this subtree.\n *\n * @param {number} depth\n */\n updateDepthAndHeight: function (depth) {\n var height = 0;\n this.depth = depth;\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n child.updateDepthAndHeight(depth + 1);\n\n if (child.height > height) {\n height = child.height;\n }\n }\n\n this.height = height + 1;\n },\n\n /**\n * @param {string} id\n * @return {module:echarts/data/Tree~TreeNode}\n */\n getNodeById: function (id) {\n if (this.getId() === id) {\n return this;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].getNodeById(id);\n\n if (res) {\n return res;\n }\n }\n },\n\n /**\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {boolean}\n */\n contains: function (node) {\n if (node === this) {\n return true;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].contains(node);\n\n if (res) {\n return res;\n }\n }\n },\n\n /**\n * @param {boolean} includeSelf Default false.\n * @return {Array.} order: [root, child, grandchild, ...]\n */\n getAncestors: function (includeSelf) {\n var ancestors = [];\n var node = includeSelf ? this : this.parentNode;\n\n while (node) {\n ancestors.push(node);\n node = node.parentNode;\n }\n\n ancestors.reverse();\n return ancestors;\n },\n\n /**\n * @param {string|Array=} [dimension='value'] Default 'value'. can be 0, 1, 2, 3\n * @return {number} Value.\n */\n getValue: function (dimension) {\n var data = this.hostTree.data;\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n },\n\n /**\n * @param {Object} layout\n * @param {boolean=} [merge=false]\n */\n setLayout: function (layout, merge) {\n this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n },\n\n /**\n * @return {Object} layout\n */\n getLayout: function () {\n return this.hostTree.data.getItemLayout(this.dataIndex);\n },\n\n /**\n * @param {string} [path]\n * @return {module:echarts/model/Model}\n */\n getModel: function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var hostTree = this.hostTree;\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\n var levelModel = this.getLevelModel(); // FIXME: refactor levelModel to \"beforeLink\", and remove levelModel here.\n\n if (levelModel) {\n return itemModel.getModel(path, levelModel.getModel(path));\n } else {\n return itemModel.getModel(path);\n }\n },\n\n /**\n * @return {module:echarts/model/Model}\n */\n getLevelModel: function () {\n return (this.hostTree.levelModels || [])[this.depth];\n },\n\n /**\n * @example\n * setItemVisual('color', color);\n * setItemVisual({\n * 'color': color\n * });\n */\n setVisual: function (key, value) {\n this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n },\n\n /**\n * Get item visual\n */\n getVisual: function (key, ignoreParent) {\n return this.hostTree.data.getItemVisual(this.dataIndex, key, ignoreParent);\n },\n\n /**\n * @public\n * @return {number}\n */\n getRawIndex: function () {\n return this.hostTree.data.getRawIndex(this.dataIndex);\n },\n\n /**\n * @public\n * @return {string}\n */\n getId: function () {\n return this.hostTree.data.getId(this.dataIndex);\n },\n\n /**\n * if this is an ancestor of another node\n *\n * @public\n * @param {TreeNode} node another node\n * @return {boolean} if is ancestor\n */\n isAncestorOf: function (node) {\n var parent = node.parentNode;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n },\n\n /**\n * if this is an descendant of another node\n *\n * @public\n * @param {TreeNode} node another node\n * @return {boolean} if is descendant\n */\n isDescendantOf: function (node) {\n return node !== this && node.isAncestorOf(this);\n }\n};\n/**\n * @constructor\n * @alias module:echarts/data/Tree\n * @param {module:echarts/model/Model} hostModel\n * @param {Array.} levelOptions\n */\n\nfunction Tree(hostModel, levelOptions) {\n /**\n * @type {module:echarts/data/Tree~TreeNode}\n * @readOnly\n */\n this.root;\n /**\n * @type {module:echarts/data/List}\n * @readOnly\n */\n\n this.data;\n /**\n * Index of each item is the same as the raw index of coresponding list item.\n * @private\n * @type {Array.} treeOptions.levels\n * @return module:echarts/data/Tree\n */\n\nTree.createTree = function (dataRoot, hostModel, treeOptions, beforeLink) {\n var tree = new Tree(hostModel, treeOptions && treeOptions.levels);\n var listData = [];\n var dimMax = 1;\n buildHierarchy(dataRoot);\n\n function buildHierarchy(dataNode, parentNode) {\n var value = dataNode.value;\n dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n listData.push(dataNode);\n var node = new TreeNode(dataNode.name, tree);\n parentNode ? addChild(node, parentNode) : tree.root = node;\n\n tree._nodes.push(node);\n\n var children = dataNode.children;\n\n if (children) {\n for (var i = 0; i < children.length; i++) {\n buildHierarchy(children[i], node);\n }\n }\n }\n\n tree.root.updateDepthAndHeight(0);\n var dimensionsInfo = createDimensions(listData, {\n coordDimensions: ['value'],\n dimensionsCount: dimMax\n });\n var list = new List(dimensionsInfo, hostModel);\n list.initData(listData);\n beforeLink && beforeLink(list);\n linkList({\n mainData: list,\n struct: tree,\n structAttr: 'tree'\n });\n tree.update();\n return tree;\n};\n/**\n * It is needed to consider the mess of 'list', 'hostModel' when creating a TreeNote,\n * so this function is not ready and not necessary to be public.\n *\n * @param {(module:echarts/data/Tree~TreeNode|Object)} child\n */\n\n\nfunction addChild(child, node) {\n var children = node.children;\n\n if (child.parentNode === node) {\n return;\n }\n\n children.push(child);\n child.parentNode = node;\n}\n\nvar _default = Tree;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapModel = require(\"./VisualMapModel\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar visualDefault = require(\"../../visual/visualDefault\");\n\nvar _number = require(\"../../util/number\");\n\nvar reformIntervals = _number.reformIntervals;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PiecewiseModel = VisualMapModel.extend({\n type: 'visualMap.piecewise',\n\n /**\n * Order Rule:\n *\n * option.categories / option.pieces / option.text / option.selected:\n * If !option.inverse,\n * Order when vertical: ['top', ..., 'bottom'].\n * Order when horizontal: ['left', ..., 'right'].\n * If option.inverse, the meaning of\n * the order should be reversed.\n *\n * this._pieceList:\n * The order is always [low, ..., high].\n *\n * Mapping from location to low-high:\n * If !option.inverse\n * When vertical, top is high.\n * When horizontal, right is high.\n * If option.inverse, reverse.\n */\n\n /**\n * @protected\n */\n defaultOption: {\n selected: null,\n // Object. If not specified, means selected.\n // When pieces and splitNumber: {'0': true, '5': true}\n // When categories: {'cate1': false, 'cate3': true}\n // When selected === false, means all unselected.\n minOpen: false,\n // Whether include values that smaller than `min`.\n maxOpen: false,\n // Whether include values that bigger than `max`.\n align: 'auto',\n // 'auto', 'left', 'right'\n itemWidth: 20,\n // When put the controller vertically, it is the length of\n // horizontal side of each item. Otherwise, vertical side.\n itemHeight: 14,\n // When put the controller vertically, it is the length of\n // vertical side of each item. Otherwise, horizontal side.\n itemSymbol: 'roundRect',\n pieceList: null,\n // Each item is Object, with some of those attrs:\n // {min, max, lt, gt, lte, gte, value,\n // color, colorSaturation, colorAlpha, opacity,\n // symbol, symbolSize}, which customize the range or visual\n // coding of the certain piece. Besides, see \"Order Rule\".\n categories: null,\n // category names, like: ['some1', 'some2', 'some3'].\n // Attr min/max are ignored when categories set. See \"Order Rule\"\n splitNumber: 5,\n // If set to 5, auto split five pieces equally.\n // If set to 0 and component type not set, component type will be\n // determined as \"continuous\". (It is less reasonable but for ec2\n // compatibility, see echarts/component/visualMap/typeDefaulter)\n selectedMode: 'multiple',\n // Can be 'multiple' or 'single'.\n itemGap: 10,\n // The gap between two items, in px.\n hoverLink: true,\n // Enable hover highlight.\n showLabel: null // By default, when text is used, label will hide (the logic\n // is remained for compatibility reason)\n\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n PiecewiseModel.superApply(this, 'optionUpdated', arguments);\n /**\n * The order is always [low, ..., high].\n * [{text: string, interval: Array.}, ...]\n * @private\n * @type {Array.}\n */\n\n this._pieceList = [];\n this.resetExtent();\n /**\n * 'pieces', 'categories', 'splitNumber'\n * @type {string}\n */\n\n var mode = this._mode = this._determineMode();\n\n resetMethods[this._mode].call(this);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n var piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n },\n\n /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = 0;\n zrUtil.each(this.stateList, function (state) {\n exists |= has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && (zrUtil.isObject(obj[state]) ? obj[state].hasOwnProperty(visualType) : obj[state] === visualType // e.g., inRange: 'symbol'\n );\n }\n\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n },\n _resetSelected: function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n // Ensure there is only one selected.\n var hasSel = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel ? selected[key] = false : hasSel = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n },\n\n /**\n * @public\n */\n getSelectedMapKey: function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n },\n\n /**\n * @public\n */\n getPieceList: function () {\n return this._pieceList;\n },\n\n /**\n * @private\n * @return {string}\n */\n _determineMode: function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n },\n\n /**\n * @public\n * @override\n */\n setSelected: function (selected) {\n this.option.selected = zrUtil.clone(selected);\n },\n\n /**\n * @public\n * @override\n */\n getValueState: function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n },\n\n /**\n * @public\n * @params {number} pieceIndex piece index in visualMapModel.getPieceList()\n * @return {Array.} [{seriesId, dataIndex: >}, ...]\n */\n findTargetDataIndices: function (pieceIndex) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, this._pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n },\n\n /**\n * @private\n * @param {Object} piece piece.value or piece.interval is required.\n * @return {number} Can be Infinity or -Infinity\n */\n getRepresentValue: function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n },\n getVisualMeta: function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = [];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n });\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n } // Suplement\n\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n // Fulfill gap.\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n }\n});\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n splitNumber: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n\n if (thisOption.minOpen) {\n pieceList.push({\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n pieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n pieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function () {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n this._pieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, this._pieceList);\n },\n pieces: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommanded.\n var interval = item.interval = [];\n var close = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close[1] = 0);\n\n if (interval[0] === interval[1] && close[0] && close[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n pieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, pieceList); // Only pieces\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nvar _default = PiecewiseModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar zrColor = require(\"zrender/lib/tool/color\");\n\nvar eventUtil = require(\"zrender/lib/core/event\");\n\nvar domUtil = require(\"zrender/lib/core/dom\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar formatUtil = require(\"../../util/format\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar toCamelCase = formatUtil.toCamelCase;\nvar vendors = ['', '-webkit-', '-moz-', '-o-'];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n/**\n * @param {number} duration\n * @return {string}\n * @inner\n */\n\nfunction assembleTransition(duration) {\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ',' + 'top ' + duration + 's ' + transitionCurve;\n return zrUtil.map(vendors, function (vendorPrefix) {\n return vendorPrefix + 'transition:' + transitionText;\n }).join(';');\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\n\n\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\n/**\n * @param {Object} tooltipModel\n * @return {string}\n * @inner\n */\n\n\nfunction assembleCssText(tooltipModel) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = tooltipModel.get('padding'); // Animation transition. Do not animate when transitionDuration is 0.\n\n transitionDuration && cssText.push(assembleTransition(transitionDuration));\n\n if (backgroundColor) {\n if (env.canvasSupported) {\n cssText.push('background-Color:' + backgroundColor);\n } else {\n // for ie\n cssText.push('background-Color:#' + zrColor.toHex(backgroundColor));\n cssText.push('filter:alpha(opacity=70)');\n }\n } // Border style\n\n\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n }); // Text style\n\n cssText.push(assembleFont(textStyleModel)); // Padding\n\n if (padding != null) {\n cssText.push('padding:' + formatUtil.normalizeCssArray(padding).join('px ') + 'px');\n }\n\n return cssText.join(';') + ';';\n} // If not able to make, do not modify the input `out`.\n\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n var zrPainter = zr && zr.painter;\n\n if (appendToBody) {\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n if (zrViewportRoot) {\n // Some APPs might use scale on body, so we support CSS transform here.\n domUtil.transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY; // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n if (viewportRootOffset) {\n out[0] += viewportRootOffset.offsetLeft;\n out[1] += viewportRootOffset.offsetTop;\n }\n }\n}\n/**\n * @alias module:echarts/component/tooltip/TooltipContent\n * @param {HTMLElement} container\n * @param {ExtensionAPI} api\n * @param {Object} [opt]\n * @param {boolean} [opt.appendToBody]\n * `false`: the DOM element will be inside the container. Default value.\n * `true`: the DOM element will be appended to HTML body, which avoid\n * some overflow clip but intrude outside of the container.\n * @constructor\n */\n\n\nfunction TooltipContent(container, api, opt) {\n if (env.wxa) {\n return null;\n }\n\n var el = document.createElement('div');\n el.domBelongToZr = true;\n this.el = el;\n var zr = this._zr = api.getZr();\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\n this._styleCoord = [0, 0];\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n if (appendToBody) {\n document.body.appendChild(el);\n } else {\n container.appendChild(el);\n }\n\n this._container = container;\n this._show = false;\n /**\n * @private\n */\n\n this._hideTimeout; // FIXME\n // Is it needed to trigger zr event manually if\n // the browser do not support `pointer-events: none`.\n\n var self = this;\n\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n };\n\n el.onmousemove = function (e) {\n e = e || window.event;\n\n if (!self._enterable) {\n // `pointer-events: none` is set to tooltip content div\n // if `enterable` is set as `false`, and `el.onmousemove`\n // can not be triggered. But in browser that do not\n // support `pointer-events`, we need to do this:\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n eventUtil.normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n\n el.onmouseleave = function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n };\n}\n\nTooltipContent.prototype = {\n constructor: TooltipContent,\n\n /**\n * @private\n * @type {boolean}\n */\n _enterable: true,\n\n /**\n * Update when tooltip is rendered\n */\n update: function () {\n // FIXME\n // Move this logic to ec main?\n var container = this._container;\n var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n var domStyle = container.style;\n\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n domStyle.position = 'relative';\n } // Hide the tooltip\n // PENDING\n // this.hide();\n\n },\n show: function (tooltipModel) {\n clearTimeout(this._hideTimeout);\n var el = this.el;\n var styleCoord = this._styleCoord;\n el.style.cssText = gCssText + assembleCssText(tooltipModel) // Because of the reason described in:\n // http://stackoverflow.com/questions/21125587/css3-transition-not-working-in-chrome-anymore\n // we should set initial value to `left` and `top`.\n + ';left:' + styleCoord[0] + 'px;top:' + styleCoord[1] + 'px;' + (tooltipModel.get('extraCssText') || '');\n el.style.display = el.innerHTML ? 'block' : 'none'; // If mouse occsionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cuase some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not suppored by IE8~IE10, fortunately it is a rare\n // scenario.\n\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n this._show = true;\n },\n setContent: function (content) {\n this.el.innerHTML = content == null ? '' : content;\n },\n setEnterable: function (enterable) {\n this._enterable = enterable;\n },\n getSize: function () {\n var el = this.el;\n return [el.clientWidth, el.clientHeight];\n },\n moveTo: function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n var style = this.el.style;\n style.left = styleCoord[0] + 'px';\n style.top = styleCoord[1] + 'px';\n },\n hide: function () {\n this.el.style.display = 'none';\n this._show = false;\n },\n hideLater: function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater mutiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n },\n isShow: function () {\n return this._show;\n },\n dispose: function () {\n this.el.parentNode.removeChild(this.el);\n },\n getOuterSize: function () {\n var width = this.el.clientWidth;\n var height = this.el.clientHeight; // Consider browser compatibility.\n // IE8 does not support getComputedStyle.\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n var stl = document.defaultView.getComputedStyle(this.el);\n\n if (stl) {\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n }\n }\n\n return {\n width: width,\n height: height\n };\n }\n};\nvar _default = TooltipContent;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./gauge/GaugeSeries\");\n\nrequire(\"./gauge/GaugeView\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"../component/parallel\");\n\nrequire(\"./parallel/ParallelSeries\");\n\nrequire(\"./parallel/ParallelView\");\n\nvar parallelVisual = require(\"./parallel/parallelVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(parallelVisual);","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-container\"},[_c('el-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hiddenQueryForm),expression:\"!hiddenQueryForm\"}],staticClass:\"row-bg\",attrs:{\"justify\":\"space-around\"}},[_c('el-form',{staticClass:\"query-form\",attrs:{\"inline\":true},nativeOn:{\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.queryForm),callback:function ($$v) {_vm.queryForm=$$v},expression:\"queryForm\"}},[_vm._t(\"condition\"),_c('el-button',{staticClass:\"margin-bottom-20\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleSearch}},[_c('i',{staticClass:\"el-icon-search\"}),_vm._v(\"查询 \")]),_c('el-button',{staticClass:\"margin-bottom-20\",attrs:{\"type\":\"default\"},on:{\"click\":_vm.handleResetSearch}},[_c('i',{staticClass:\"el-icon-refresh\"}),_vm._v(\"重置刷新 \")]),_vm._t(\"other-buttons\")],2)],1),_vm._t(\"buttons\"),(_vm.showTotalMoney)?_c('div',{staticClass:\"margin-bottom-20\"},[_vm._v(_vm._s(_vm.totalMoneyTitle)+\":\"+_vm._s(_vm._f(\"formatMoney\")(_vm.totalMoney))+\"元\")]):_vm._e(),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.table.listLoading),expression:\"table.listLoading\"}],attrs:{\"data\":_vm.tableItems,\"element-loading-text\":\"loading...\",\"border\":\"\",\"stripe\":\"\",\"fit\":\"\",\"highlight-current-row\":\"\"},on:{\"sort-change\":_vm.sort,\"selection-change\":_vm.handleSelectionChange}},[_vm._t(\"table\")],2),_c('el-pagination',{attrs:{\"current-page\":_vm.table.page,\"page-sizes\":_vm.pageSizeChoose,\"page-size\":_vm.table.pageSize,\"layout\":\"total,sizes, prev, pager, next\",\"total\":_vm.table.totalCount},on:{\"update:currentPage\":function($event){return _vm.$set(_vm.table, \"page\", $event)},\"update:current-page\":function($event){return _vm.$set(_vm.table, \"page\", $event)},\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.current_change}}),_c('el-drawer',{attrs:{\"title\":_vm.detailTitle,\"visible\":_vm.showDetail,\"before-close\":_vm.onCloseDetail},on:{\"update:visible\":function($event){_vm.showDetail=$event}}},[_c('router-view')],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {Component, Prop, Watch} from \"vue-property-decorator\";\r\n\r\ninterface ISoringPagedResultDto {\r\n sorting: string;\r\n maxResultCount: number;\r\n skipCount: number;\r\n}\r\n\r\nimport {Vue} from \"vue-property-decorator\";\r\nimport {constants} from \"http2\";\r\n\r\n@Component({name: \"PagedTableView\"})\r\nexport default class PagedTableView extends Vue {\r\n @Prop()\r\n queryForm: any;\r\n\r\n @Prop({required: true})\r\n searchFunction!: Function;\r\n\r\n @Prop({})\r\n pageSizes!: Array;\r\n\r\n @Prop({required: false, default: 10})\r\n pageSize!: number;\r\n\r\n @Prop({required: false, default: 0})\r\n showTotalMoney!: number;\r\n @Prop({required: false, default: 0})\r\n totalMoney!: number;\r\n @Prop({required: false, default: \"合计\"})\r\n totalMoneyTitle!: number;\r\n\r\n @Prop()\r\n resetForm!: Function;\r\n\r\n @Prop({required: false})\r\n excludeResetKeys!: Array;\r\n\r\n @Prop({required: false, default: false})\r\n hiddenQueryForm!: boolean;\r\n\r\n @Prop({required: false, default: ''})\r\n indexRouteName!: string;\r\n\r\n @Prop({required: false, default: 0})\r\n detailId: any;\r\n\r\n get pageSizeChoose() {\r\n if (this.pageSizes && this.pageSizes.length) {\r\n return this.pageSizes;\r\n } else {\r\n return [10, 20, 50, 100];\r\n }\r\n }\r\n\r\n showDetail: boolean = false;\r\n\r\n @Watch('detailId')\r\n onDetailIdChange(newValue: any) {\r\n if (newValue) {\r\n this.showDetail = true;\r\n } else {\r\n this.showDetail = false\r\n }\r\n }\r\n\r\n\r\n // private fields\r\n tableItems: any = [];\r\n table: any = {\r\n listLoading: true,\r\n page: 1,\r\n totalCount: 0,\r\n pageSize: 0,\r\n sorting: \"\",\r\n };\r\n\r\n\r\n created() {\r\n this.table.pageSize = this.pageSize;\r\n this.fetchData();\r\n\r\n let $bus = (this as any).$bus;\r\n if ($bus) {\r\n $bus.$on(\"data-updated\", () => this.fetchData());\r\n $bus.$on(\"data-created\", () => this.fetchData());\r\n $bus.$on(\"data-deleted\", () => this.fetchData());\r\n $bus.$on(\"api-action-completed\", () => this.fetchData());\r\n }\r\n }\r\n\r\n handleSelectionChange(selection: any[]) {\r\n this.$emit(\"selectionList\", selection);\r\n }\r\n\r\n refreshData() {\r\n console.log(\"pagedTableView:refreshData\");\r\n this.table.page = 1;\r\n this.fetchData();\r\n }\r\n\r\n\r\n fetchData() {\r\n const pageParameter: ISoringPagedResultDto = {\r\n skipCount: (this.table.page - 1) * this.table.pageSize,\r\n maxResultCount: this.table.pageSize,\r\n sorting: this.table.sorting,\r\n };\r\n this.table.listLoading = true;\r\n\r\n const fetchResult = this.searchFunction(\r\n Object.assign({}, this.queryForm, pageParameter)\r\n );\r\n fetchResult.then((res: any) => {\r\n this.table.listLoading = false;\r\n this.tableItems = res.items!;\r\n this.table.totalCount = res.totalCount!;\r\n if (this.table.totalCount) {\r\n this.$emit(\"fetchDataList\", this.tableItems);\r\n }\r\n });\r\n\r\n return fetchResult;\r\n }\r\n\r\n // events handles\r\n handleSearch() {\r\n this.table.page = 1;\r\n this.fetchData();\r\n }\r\n\r\n handleResetSearch() {\r\n if (this.resetForm !== null && typeof this.resetForm === \"function\") {\r\n this.resetForm();\r\n } else {\r\n if (this.queryForm) {\r\n for (let key in this.queryForm) {\r\n if (\r\n (this.excludeResetKeys &&\r\n this.excludeResetKeys.indexOf(key) === -1) ||\r\n !this.excludeResetKeys\r\n )\r\n this.queryForm[key] = undefined;\r\n }\r\n }\r\n }\r\n this.refreshData();\r\n }\r\n\r\n // 更新当前页\r\n async current_change(e: number) {\r\n this.table.page = e;\r\n await this.fetchData();\r\n }\r\n\r\n // Table排序\r\n async sort(e: any) {\r\n console.log(\"sort : \", e);\r\n if (e.prop && e.order) {\r\n this.table.sorting = `${e.prop} ${e.order}`;\r\n }\r\n this.fetchData();\r\n }\r\n\r\n // 修改一页显示的条目\r\n handleSizeChange(e: number) {\r\n this.table.pageSize = e;\r\n this.fetchData();\r\n }\r\n\r\n onCloseDetail() {\r\n this.showDetail = false\r\n this.$emit('detail-close')\r\n this.$router.push({\r\n name: this.indexRouteName\r\n })\r\n\r\n }\r\n\r\n get detailTitle() {\r\n if ((this as any).$route.meta.title) {\r\n return (this as any).$route.meta.title;\r\n } else {\r\n return \"详情\";\r\n }\r\n }\r\n\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4dfb1dff&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4dfb1dff\",\n null\n \n)\n\nexport default component.exports","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./candlestick/CandlestickSeries\");\n\nrequire(\"./candlestick/CandlestickView\");\n\nvar preprocessor = require(\"./candlestick/preprocessor\");\n\nvar candlestickVisual = require(\"./candlestick/candlestickVisual\");\n\nvar candlestickLayout = require(\"./candlestick/candlestickLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(preprocessor);\necharts.registerVisual(candlestickVisual);\necharts.registerLayout(candlestickLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../../coord/Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar TimelineAxis = function (dim, scale, coordExtent, axisType) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * Axis model\n * @param {module:echarts/component/TimelineModel}\n */\n\n this.model = null;\n};\n\nTimelineAxis.prototype = {\n constructor: TimelineAxis,\n\n /**\n * @override\n */\n getLabelModel: function () {\n return this.model.getModel('label');\n },\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.model.get('orient') === 'horizontal';\n }\n};\nzrUtil.inherits(TimelineAxis, Axis);\nvar _default = TimelineAxis;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _graphic = require(\"../../util/graphic\");\n\nvar subPixelOptimize = _graphic.subPixelOptimize;\n\nvar createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar retrieve2 = _util.retrieve2;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Float32Array */\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar _default = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var candleWidth = calculateCandleWidth(seriesModel, data);\n var cDimIdx = 0;\n var vDimIdx = 1;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimension(coordDims[vDimIdx], true);\n var openDim = vDims[0];\n var closeDim = vDims[1];\n var lowestDim = vDims[2];\n var highestDim = vDims[3];\n data.setLayout({\n candleWidth: candleWidth,\n // The value is experimented visually.\n isSimpleBox: candleWidth <= 1.3\n });\n\n if (cDim == null || vDims.length < 4) {\n return;\n }\n\n return {\n progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n };\n\n function normalProgress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n var ocLow = Math.min(openVal, closeVal);\n var ocHigh = Math.max(openVal, closeVal);\n var ocLowPoint = getPoint(ocLow, axisDimVal);\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\n var lowestPoint = getPoint(lowestVal, axisDimVal);\n var highestPoint = getPoint(highestVal, axisDimVal);\n var ends = [];\n addBodyEnd(ends, ocHighPoint, 0);\n addBodyEnd(ends, ocLowPoint, 1);\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n data.setItemLayout(dataIndex, {\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n // open point.\n ends: ends,\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n });\n }\n\n function getPoint(val, axisDimVal) {\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n var pmin = getPoint(lowestVal, axisDimVal);\n var pmax = getPoint(highestVal, axisDimVal);\n pmin[cDimIdx] -= candleWidth / 2;\n pmax[cDimIdx] -= candleWidth / 2;\n return {\n x: pmin[0],\n y: pmin[1],\n width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n };\n }\n\n function subPixelOptimizePoint(point) {\n point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n return point;\n }\n }\n\n function largeProgress(params, data) {\n // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n var points = new LargeArr(params.count * 4);\n var offset = 0;\n var point;\n var tmpIn = [];\n var tmpOut = [];\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n points[offset++] = NaN;\n offset += 3;\n continue;\n }\n\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n tmpIn[cDimIdx] = axisDimVal;\n tmpIn[vDimIdx] = lowestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n tmpIn[vDimIdx] = highestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[1] : NaN;\n }\n\n data.setLayout('largePoints', points);\n }\n }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n var sign;\n\n if (openVal > closeVal) {\n sign = -1;\n } else if (openVal < closeVal) {\n sign = 1;\n } else {\n sign = dataIndex > 0 // If close === open, compare with close of last record\n ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n 1;\n }\n\n return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n var baseAxis = seriesModel.getBaseAxis();\n var extent;\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n var barWidth = seriesModel.get('barWidth');\n return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./dataZoomSlider\");\n\nrequire(\"./dataZoomInside\");","var eventUtil = require(\"./event\");\n\n/**\n * Only implements needed gestures for mobile.\n */\nvar GestureMgr = function () {\n /**\n * @private\n * @type {Array.}\n */\n this._track = [];\n};\n\nGestureMgr.prototype = {\n constructor: GestureMgr,\n recognize: function (event, target, root) {\n this._doTrack(event, target, root);\n\n return this._recognize(event);\n },\n clear: function () {\n this._track.length = 0;\n return this;\n },\n _doTrack: function (event, target, root) {\n var touches = event.touches;\n\n if (!touches) {\n return;\n }\n\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\n\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n var pos = eventUtil.clientToLocal(root, touch, {});\n trackItem.points.push([pos.zrX, pos.zrY]);\n trackItem.touches.push(touch);\n }\n\n this._track.push(trackItem);\n },\n _recognize: function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n }\n};\n\nfunction dist(pointPair) {\n var dx = pointPair[1][0] - pointPair[0][0];\n var dy = pointPair[1][1] - pointPair[0][1];\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nfunction center(pointPair) {\n return [(pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2];\n}\n\nvar recognizers = {\n pinch: function (track, event) {\n var trackLen = track.length;\n\n if (!trackLen) {\n return;\n }\n\n var pinchEnd = (track[trackLen - 1] || {}).points;\n var pinchPre = (track[trackLen - 2] || {}).points || pinchEnd;\n\n if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) {\n var pinchScale = dist(pinchEnd) / dist(pinchPre);\n !isFinite(pinchScale) && (pinchScale = 1);\n event.pinchScale = pinchScale;\n var pinchCenter = center(pinchEnd);\n event.pinchX = pinchCenter[0];\n event.pinchY = pinchCenter[1];\n return {\n type: 'pinch',\n target: track[0].target,\n event: event\n };\n }\n } // Only pinch currently.\n\n};\nvar _default = GestureMgr;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./legend\");\n\nrequire(\"./legend/ScrollableLegendModel\");\n\nrequire(\"./legend/ScrollableLegendView\");\n\nrequire(\"./legend/scrollableLegendAction\");","// Myers' Diff Algorithm\n// Modified from https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js\nfunction Diff() {}\n\nDiff.prototype = {\n diff: function (oldArr, newArr, equals) {\n if (!equals) {\n equals = function (a, b) {\n return a === b;\n };\n }\n\n this.equals = equals;\n var self = this;\n oldArr = oldArr.slice();\n newArr = newArr.slice(); // Allow subclasses to massage the input prior to running\n\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newArr, oldArr, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n var indices = [];\n\n for (var i = 0; i < newArr.length; i++) {\n indices.push(i);\n } // Identity per the equality and tokenizer\n\n\n return [{\n indices: indices,\n count: newArr.length\n }];\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath;\n var addPath = bestPath[diagonalPath - 1];\n var removePath = bestPath[diagonalPath + 1];\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n oldPos = self.extractCommon(basePath, newArr, oldArr, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n return buildValues(self, basePath.components, newArr, oldArr);\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n }\n\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n },\n pushComponent: function (components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function (basePath, newArr, oldArr, diagonalPath) {\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var newPos = basePath.newPos;\n var oldPos = newPos - diagonalPath;\n var commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n tokenize: function (value) {\n return value.slice();\n },\n join: function (value) {\n return value.slice();\n }\n};\n\nfunction buildValues(diff, components, newArr, oldArr) {\n var componentPos = 0;\n var componentLen = components.length;\n var newPos = 0;\n var oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n var indices = [];\n\n for (var i = newPos; i < newPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n var indices = [];\n\n for (var i = oldPos; i < oldPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n oldPos += component.count;\n }\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n\nvar arrayDiff = new Diff();\n\nfunction _default(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar RoamController = require(\"./RoamController\");\n\nvar roamHelper = require(\"../../component/helper/roamHelper\");\n\nvar _cursorHelper = require(\"../../component/helper/cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar geoSourceManager = require(\"../../coord/geo/geoSourceManager\");\n\nvar _component = require(\"../../util/component\");\n\nvar getUID = _component.getUID;\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getFixedItemStyle(model) {\n var itemStyle = model.getItemStyle();\n var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover,\n // they should both set areaColor and color to be null.\n\n if (areaColor != null) {\n itemStyle.fill = areaColor;\n }\n\n return itemStyle;\n}\n\nfunction updateMapSelectHandler(mapDraw, mapOrGeoModel, regionsGroup, api, fromView) {\n regionsGroup.off('click');\n regionsGroup.off('mousedown');\n\n if (mapOrGeoModel.get('selectedMode')) {\n regionsGroup.on('mousedown', function () {\n mapDraw._mouseDownFlag = true;\n });\n regionsGroup.on('click', function (e) {\n if (!mapDraw._mouseDownFlag) {\n return;\n }\n\n mapDraw._mouseDownFlag = false;\n var el = e.target;\n\n while (!el.__regions) {\n el = el.parent;\n }\n\n if (!el) {\n return;\n }\n\n var action = {\n type: (mapOrGeoModel.mainType === 'geo' ? 'geo' : 'map') + 'ToggleSelect',\n batch: zrUtil.map(el.__regions, function (region) {\n return {\n name: region.name,\n from: fromView.uid\n };\n })\n };\n action[mapOrGeoModel.mainType + 'Id'] = mapOrGeoModel.id;\n api.dispatchAction(action);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n });\n }\n}\n\nfunction updateMapSelected(mapOrGeoModel, regionsGroup) {\n // FIXME\n regionsGroup.eachChild(function (otherRegionEl) {\n zrUtil.each(otherRegionEl.__regions, function (region) {\n otherRegionEl.trigger(mapOrGeoModel.isSelected(region.name) ? 'emphasis' : 'normal');\n });\n });\n}\n/**\n * @alias module:echarts/component/helper/MapDraw\n * @param {module:echarts/ExtensionAPI} api\n * @param {boolean} updateGroup\n */\n\n\nfunction MapDraw(api, updateGroup) {\n var group = new graphic.Group();\n /**\n * @type {string}\n * @private\n */\n\n this.uid = getUID('ec_map_draw');\n /**\n * @type {module:echarts/component/helper/RoamController}\n * @private\n */\n\n this._controller = new RoamController(api.getZr());\n /**\n * @type {Object} {target, zoom, zoomLimit}\n * @private\n */\n\n this._controllerHost = {\n target: updateGroup ? group : null\n };\n /**\n * @type {module:zrender/container/Group}\n * @readOnly\n */\n\n this.group = group;\n /**\n * @type {boolean}\n * @private\n */\n\n this._updateGroup = updateGroup;\n /**\n * This flag is used to make sure that only one among\n * `pan`, `zoom`, `click` can occurs, otherwise 'selected'\n * action may be triggered when `pan`, which is unexpected.\n * @type {booelan}\n */\n\n this._mouseDownFlag;\n /**\n * @type {string}\n */\n\n this._mapName;\n /**\n * @type {boolean}\n */\n\n this._initialized;\n /**\n * @type {module:zrender/container/Group}\n */\n\n group.add(this._regionsGroup = new graphic.Group());\n /**\n * @type {module:zrender/container/Group}\n */\n\n group.add(this._backgroundGroup = new graphic.Group());\n}\n\nMapDraw.prototype = {\n constructor: MapDraw,\n draw: function (mapOrGeoModel, ecModel, api, fromView, payload) {\n var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series\n // will be assigned with map data. Other GEO model has no data.\n\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n isGeo && ecModel.eachComponent({\n mainType: 'series',\n subType: 'map'\n }, function (mapSeries) {\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n data = mapSeries.getData();\n }\n });\n var geo = mapOrGeoModel.coordinateSystem;\n\n this._updateBackground(geo);\n\n var regionsGroup = this._regionsGroup;\n var group = this.group;\n var transformInfo = geo.getTransformInfo(); // No animation when first draw or in action\n\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\n var targetScale;\n\n if (isFirstDraw) {\n group.transform = transformInfo.roamTransform;\n group.decomposeTransform();\n group.dirty();\n } else {\n var target = new Transformable();\n target.transform = transformInfo.roamTransform;\n target.decomposeTransform();\n var props = {\n scale: target.scale,\n position: target.position\n };\n targetScale = target.scale;\n graphic.updateProps(group, props, mapOrGeoModel);\n }\n\n var scale = transformInfo.rawScale;\n var position = transformInfo.rawPosition;\n regionsGroup.removeAll();\n var itemStyleAccessPath = ['itemStyle'];\n var hoverItemStyleAccessPath = ['emphasis', 'itemStyle'];\n var labelAccessPath = ['label'];\n var hoverLabelAccessPath = ['emphasis', 'label'];\n var nameMap = zrUtil.createHashMap();\n zrUtil.each(geo.regions, function (region) {\n // Consider in GeoJson properties.name may be duplicated, for example,\n // there is multiple region named \"United Kindom\" or \"France\" (so many\n // colonies). And it is not appropriate to merge them in geo, which\n // will make them share the same label and bring trouble in label\n // location calculation.\n var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n var compoundPath = new graphic.CompoundPath({\n segmentIgnoreThreshold: 1,\n shape: {\n paths: []\n }\n });\n regionGroup.add(compoundPath);\n var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n var itemStyleModel = regionModel.getModel(itemStyleAccessPath);\n var hoverItemStyleModel = regionModel.getModel(hoverItemStyleAccessPath);\n var itemStyle = getFixedItemStyle(itemStyleModel);\n var hoverItemStyle = getFixedItemStyle(hoverItemStyleModel);\n var labelModel = regionModel.getModel(labelAccessPath);\n var hoverLabelModel = regionModel.getModel(hoverLabelAccessPath);\n var dataIdx; // Use the itemStyle in data if has data\n\n if (data) {\n dataIdx = data.indexOfName(region.name); // Only visual color of each item will be used. It can be encoded by dataRange\n // But visual color of series is used in symbol drawing\n //\n // Visual color for each series is for the symbol draw\n\n var visualColor = data.getItemVisual(dataIdx, 'color', true);\n\n if (visualColor) {\n itemStyle.fill = visualColor;\n }\n }\n\n var transformPoint = function (point) {\n return [point[0] * scale[0] + position[0], point[1] * scale[1] + position[1]];\n };\n\n zrUtil.each(region.geometries, function (geometry) {\n if (geometry.type !== 'polygon') {\n return;\n }\n\n var points = [];\n\n for (var i = 0; i < geometry.exterior.length; ++i) {\n points.push(transformPoint(geometry.exterior[i]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points\n }\n }));\n\n for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n var interior = geometry.interiors[i];\n var points = [];\n\n for (var j = 0; j < interior.length; ++j) {\n points.push(transformPoint(interior[j]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points\n }\n }));\n }\n });\n compoundPath.setStyle(itemStyle);\n compoundPath.style.strokeNoScale = true;\n compoundPath.culling = true; // Label\n\n var showLabel = labelModel.get('show');\n var hoverShowLabel = hoverLabelModel.get('show');\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn\n // 1. In map series and data value is NaN\n // 2. In geo component\n // 4. Region has no series legendSymbol, which will be add a showLabel flag in mapSymbolLayout\n\n if (isGeo || isDataNaN && (showLabel || hoverShowLabel) || itemLayout && itemLayout.showLabel) {\n var query = !isGeo ? dataIdx : region.name;\n var labelFetcher; // Consider dataIdx not found.\n\n if (!data || dataIdx >= 0) {\n labelFetcher = mapOrGeoModel;\n }\n\n var textEl = new graphic.Text({\n position: transformPoint(region.center.slice()),\n // FIXME\n // label rotation is not support yet in geo or regions of series-map\n // that has no data. The rotation will be effected by this `scale`.\n // So needed to change to RectText?\n scale: [1 / group.scale[0], 1 / group.scale[1]],\n z2: 10,\n silent: true\n });\n graphic.setLabelStyle(textEl.style, textEl.hoverStyle = {}, labelModel, hoverLabelModel, {\n labelFetcher: labelFetcher,\n labelDataIndex: query,\n defaultText: region.name,\n useInsideStyle: false\n }, {\n textAlign: 'center',\n textVerticalAlign: 'middle'\n });\n\n if (!isFirstDraw) {\n // Text animation\n var textScale = [1 / targetScale[0], 1 / targetScale[1]];\n graphic.updateProps(textEl, {\n scale: textScale\n }, mapOrGeoModel);\n }\n\n regionGroup.add(textEl);\n } // setItemGraphicEl, setHoverStyle after all polygons and labels\n // are added to the rigionGroup\n\n\n if (data) {\n data.setItemGraphicEl(dataIdx, regionGroup);\n } else {\n var regionModel = mapOrGeoModel.getRegionModel(region.name); // Package custom mouse event for geo component\n\n compoundPath.eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: region.name,\n region: regionModel && regionModel.option || {}\n };\n }\n\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n groupRegions.push(region);\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n graphic.setHoverStyle(regionGroup, hoverItemStyle);\n regionsGroup.add(regionGroup);\n });\n\n this._updateController(mapOrGeoModel, ecModel, api);\n\n updateMapSelectHandler(this, mapOrGeoModel, regionsGroup, api, fromView);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n },\n remove: function () {\n this._regionsGroup.removeAll();\n\n this._backgroundGroup.removeAll();\n\n this._controller.dispose();\n\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n this._mapName = null;\n this._controllerHost = {};\n },\n _updateBackground: function (geo) {\n var mapName = geo.map;\n\n if (this._mapName !== mapName) {\n zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n this._backgroundGroup.add(root);\n }, this);\n }\n\n this._mapName = mapName;\n },\n _updateController: function (mapOrGeoModel, ecModel, api) {\n var geo = mapOrGeoModel.coordinateSystem;\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null\n\n controller.enable(mapOrGeoModel.get('roam') || false);\n var mainType = mapOrGeoModel.mainType;\n\n function makeActionBase() {\n var action = {\n type: 'geoRoam',\n componentType: mainType\n };\n action[mainType + 'Id'] = mapOrGeoModel.id;\n return action;\n }\n\n controller.off('pan').on('pan', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n dx: e.dx,\n dy: e.dy\n }));\n }, this);\n controller.off('zoom').on('zoom', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n }));\n\n if (this._updateGroup) {\n var scale = this.group.scale;\n\n this._regionsGroup.traverse(function (el) {\n if (el.type === 'text') {\n el.attr('scale', [1 / scale[0], 1 / scale[1]]);\n }\n });\n }\n }, this);\n controller.setPointerChecker(function (e, x, y) {\n return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n });\n }\n};\nvar _default = MapDraw;\nmodule.exports = _default;","var matrix = require(\"../core/matrix\");\n\nvar vector = require(\"../core/vector\");\n\n/**\n * 提供变换扩展\n * @module zrender/mixin/Transformable\n * @author pissang (https://www.github.com/pissang)\n */\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\n\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\n/**\n * @alias module:zrender/mixin/Transformable\n * @constructor\n */\n\n\nvar Transformable = function (opts) {\n opts = opts || {}; // If there are no given position, rotation, scale\n\n if (!opts.position) {\n /**\n * 平移\n * @type {Array.}\n * @default [0, 0]\n */\n this.position = [0, 0];\n }\n\n if (opts.rotation == null) {\n /**\n * 旋转\n * @type {Array.}\n * @default 0\n */\n this.rotation = 0;\n }\n\n if (!opts.scale) {\n /**\n * 缩放\n * @type {Array.}\n * @default [1, 1]\n */\n this.scale = [1, 1];\n }\n /**\n * 旋转和缩放的原点\n * @type {Array.}\n * @default null\n */\n\n\n this.origin = this.origin || null;\n};\n\nvar transformableProto = Transformable.prototype;\ntransformableProto.transform = null;\n/**\n * 判断是否需要有坐标变换\n * 如果有坐标变换, 则从position, rotation, scale以及父节点的transform计算出自身的transform矩阵\n */\n\ntransformableProto.needLocalTransform = function () {\n return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1);\n};\n\nvar scaleTmp = [];\n\ntransformableProto.updateTransform = function () {\n var parent = this.parent;\n var parentHasTransform = parent && parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n\n if (!(needLocalTransform || parentHasTransform)) {\n m && mIdentity(m);\n return;\n }\n\n m = m || matrix.create();\n\n if (needLocalTransform) {\n this.getLocalTransform(m);\n } else {\n mIdentity(m);\n } // 应用父节点变换\n\n\n if (parentHasTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parent.transform, m);\n } else {\n matrix.copy(m, parent.transform);\n }\n } // 保存这个变换矩阵\n\n\n this.transform = m;\n var globalScaleRatio = this.globalScaleRatio;\n\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\n this.getGlobalScale(scaleTmp);\n var relX = scaleTmp[0] < 0 ? -1 : 1;\n var relY = scaleTmp[1] < 0 ? -1 : 1;\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n m[0] *= sx;\n m[1] *= sx;\n m[2] *= sy;\n m[3] *= sy;\n }\n\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n};\n\ntransformableProto.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n};\n/**\n * 将自己的transform应用到context上\n * @param {CanvasRenderingContext2D} ctx\n */\n\n\ntransformableProto.setTransform = function (ctx) {\n var m = this.transform;\n var dpr = ctx.dpr || 1;\n\n if (m) {\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n } else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n};\n\ntransformableProto.restoreTransform = function (ctx) {\n var dpr = ctx.dpr || 1;\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n};\n\nvar tmpTransform = [];\nvar originTransform = matrix.create();\n\ntransformableProto.setLocalTransform = function (m) {\n if (!m) {\n // TODO return or set identity?\n return;\n }\n\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n var position = this.position;\n var scale = this.scale;\n\n if (isNotAroundZero(sx - 1)) {\n sx = Math.sqrt(sx);\n }\n\n if (isNotAroundZero(sy - 1)) {\n sy = Math.sqrt(sy);\n }\n\n if (m[0] < 0) {\n sx = -sx;\n }\n\n if (m[3] < 0) {\n sy = -sy;\n }\n\n position[0] = m[4];\n position[1] = m[5];\n scale[0] = sx;\n scale[1] = sy;\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n};\n/**\n * 分解`transform`矩阵到`position`, `rotation`, `scale`\n */\n\n\ntransformableProto.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n\n var parent = this.parent;\n var m = this.transform;\n\n if (parent && parent.transform) {\n // Get local transform and decompose them to position, scale, rotation\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n\n var origin = this.origin;\n\n if (origin && (origin[0] || origin[1])) {\n originTransform[4] = origin[0];\n originTransform[5] = origin[1];\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= origin[0];\n tmpTransform[5] -= origin[1];\n m = tmpTransform;\n }\n\n this.setLocalTransform(m);\n};\n/**\n * Get global scale\n * @return {Array.}\n */\n\n\ntransformableProto.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\n\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n\n return out;\n};\n/**\n * 变换坐标位置到 shape 的局部坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n\n return v2;\n};\n/**\n * 变换局部坐标位置到全局坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n\n return v2;\n};\n/**\n * @static\n * @param {Object} target\n * @param {Array.} target.origin\n * @param {number} target.rotation\n * @param {Array.} target.position\n * @param {Array.} [m]\n */\n\n\nTransformable.getLocalTransform = function (target, m) {\n m = m || [];\n mIdentity(m);\n var origin = target.origin;\n var scale = target.scale || [1, 1];\n var rotation = target.rotation || 0;\n var position = target.position || [0, 0];\n\n if (origin) {\n // Translate to origin\n m[4] -= origin[0];\n m[5] -= origin[1];\n }\n\n matrix.scale(m, m, scale);\n\n if (rotation) {\n matrix.rotate(m, m, rotation);\n }\n\n if (origin) {\n // Translate back from origin\n m[4] += origin[0];\n m[5] += origin[1];\n }\n\n m[4] += position[0];\n m[5] += position[1];\n return m;\n};\n\nvar _default = Transformable;\nmodule.exports = _default;","var Displayable = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar imageHelper = require(\"./helper/image\");\n\n/**\n * @alias zrender/graphic/Image\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\nfunction ZImage(opts) {\n Displayable.call(this, opts);\n}\n\nZImage.prototype = {\n constructor: ZImage,\n type: 'image',\n brush: function (ctx, prevEl) {\n var style = this.style;\n var src = style.image; // Must bind each time\n\n style.bind(ctx, this, prevEl);\n var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload);\n\n if (!image || !imageHelper.isImageReady(image)) {\n return;\n } // 图片已经加载完成\n // if (image.nodeName.toUpperCase() == 'IMG') {\n // if (!image.complete) {\n // return;\n // }\n // }\n // Else is canvas\n\n\n var x = style.x || 0;\n var y = style.y || 0;\n var width = style.width;\n var height = style.height;\n var aspect = image.width / image.height;\n\n if (width == null && height != null) {\n // Keep image/height ratio\n width = height * aspect;\n } else if (height == null && width != null) {\n height = width / aspect;\n } else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n } // 设置transform\n\n\n this.setTransform(ctx);\n\n if (style.sWidth && style.sHeight) {\n var sx = style.sx || 0;\n var sy = style.sy || 0;\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n } else if (style.sx && style.sy) {\n var sx = style.sx;\n var sy = style.sy;\n var sWidth = width - sx;\n var sHeight = height - sy;\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n } else {\n ctx.drawImage(image, x, y, width, height);\n } // Draw rect text\n\n\n if (style.text != null) {\n // Only restore transform when needs draw text.\n this.restoreTransform(ctx);\n this.drawRectText(ctx, this.getBoundingRect());\n }\n },\n getBoundingRect: function () {\n var style = this.style;\n\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\n }\n\n return this._rect;\n }\n};\nzrUtil.inherits(ZImage, Displayable);\nvar _default = ZImage;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, payload) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n\n if (nodes.length) {\n var minValue = Infinity;\n var maxValue = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue, maxValue],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n var customColor = node.getModel().get('itemStyle.color');\n customColor != null ? node.setVisual('color', customColor) : node.setVisual('color', mapValueToColor);\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar LegendView = require(\"./LegendView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n type: 'legend.scroll',\n newlineDisabled: true,\n init: function () {\n ScrollableLegendView.superCall(this, 'init');\n /**\n * @private\n * @type {number} For `scroll`.\n */\n\n this._currentIndex = 0;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n\n this.group.add(this._controllerGroup = new Group());\n /**\n *\n * @private\n */\n\n this._showController;\n },\n\n /**\n * @override\n */\n resetInner: function () {\n ScrollableLegendView.superCall(this, 'resetInner');\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n },\n\n /**\n * @override\n */\n renderInner: function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var me = this; // Render content items.\n\n ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n\n if (!zrUtil.isArray(pageIconSize)) {\n pageIconSize = [pageIconSize, pageIconSize];\n }\n\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n textFill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n textVerticalAlign: 'middle',\n textAlign: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSize[0] / 2,\n y: -pageIconSize[1] / 2,\n width: pageIconSize[0],\n height: pageIconSize[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n },\n\n /**\n * @override\n */\n layoutInner: function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\n\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.attr('position', selectorPos);\n }\n\n return mainRect;\n },\n _layoutContentAndController: function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup.position[orientIdx];\n } // Layout container group based on 0.\n\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.attr('position', contentPos);\n containerGroup.attr('position', containerPos);\n controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n position: pageInfo.contentPosition\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : false);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n },\n _pageGo: function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n },\n _updatePageInfoView: function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var canJump = pageInfo[name + 'DataIndex'] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({\n current: current,\n total: total\n }));\n },\n\n /**\n * @param {module:echarts/model/Model} legendModel\n * @return {Object} {\n * contentPosition: Array., null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n _getPageInfo: function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: contentGroup.position.slice(),\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el.position[orientIdx];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n },\n _findTargetItemIndex: function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex; // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defualtIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\n\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n }\n});\nvar _default = ScrollableLegendView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @constructor module:echarts/coord/parallel/ParallelAxis\n * @extends {module:echarts/coord/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n */\nvar ParallelAxis = function (dim, scale, coordExtent, axisType, axisIndex) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * @type {number}\n * @readOnly\n */\n\n this.axisIndex = axisIndex;\n};\n\nParallelAxis.prototype = {\n constructor: ParallelAxis,\n\n /**\n * Axis model\n * @param {module:echarts/coord/parallel/AxisModel}\n */\n model: null,\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n }\n};\nzrUtil.inherits(ParallelAxis, Axis);\nvar _default = ParallelAxis;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\nvar getDataItemValue = _model.getDataItemValue;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\nvar map = _util.map;\nvar isArray = _util.isArray;\nvar isString = _util.isString;\nvar isObject = _util.isObject;\nvar isTypedArray = _util.isTypedArray;\nvar isArrayLike = _util.isArrayLike;\nvar extend = _util.extend;\nvar assert = _util.assert;\n\nvar Source = require(\"../Source\");\n\nvar _sourceType = require(\"./sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS;\nvar SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS;\nvar SOURCE_FORMAT_KEYED_COLUMNS = _sourceType.SOURCE_FORMAT_KEYED_COLUMNS;\nvar SOURCE_FORMAT_UNKNOWN = _sourceType.SOURCE_FORMAT_UNKNOWN;\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SERIES_LAYOUT_BY_ROW = _sourceType.SERIES_LAYOUT_BY_ROW;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// The result of `guessOrdinal`.\nvar BE_ORDINAL = {\n Must: 1,\n // Encounter string but not '-' and not number-like.\n Might: 2,\n // Encounter string but number-like.\n Not: 3 // Other cases\n\n};\nvar inner = makeInner();\n/**\n * @see {module:echarts/data/Source}\n * @param {module:echarts/component/dataset/DatasetModel} datasetModel\n * @return {string} sourceFormat\n */\n\nfunction detectSourceFormat(datasetModel) {\n var data = datasetModel.option.source;\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n if (isTypedArray(data)) {\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n } else if (isArray(data)) {\n // FIXME Whether tolerate null in top level array?\n if (data.length === 0) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n }\n\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i];\n\n if (item == null) {\n continue;\n } else if (isArray(item)) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n break;\n } else if (isObject(item)) {\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n break;\n }\n }\n } else if (isObject(data)) {\n for (var key in data) {\n if (data.hasOwnProperty(key) && isArrayLike(data[key])) {\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n break;\n }\n }\n } else if (data != null) {\n throw new Error('Invalid data');\n }\n\n inner(datasetModel).sourceFormat = sourceFormat;\n}\n/**\n * [Scenarios]:\n * (1) Provide source data directly:\n * series: {\n * encode: {...},\n * dimensions: [...]\n * seriesLayoutBy: 'row',\n * data: [[...]]\n * }\n * (2) Refer to datasetModel.\n * series: [{\n * encode: {...}\n * // Ignore datasetIndex means `datasetIndex: 0`\n * // and the dimensions defination in dataset is used\n * }, {\n * encode: {...},\n * seriesLayoutBy: 'column',\n * datasetIndex: 1\n * }]\n *\n * Get data from series itself or datset.\n * @return {module:echarts/data/Source} source\n */\n\n\nfunction getSource(seriesModel) {\n return inner(seriesModel).source;\n}\n/**\n * MUST be called before mergeOption of all series.\n * @param {module:echarts/model/Global} ecModel\n */\n\n\nfunction resetSourceDefaulter(ecModel) {\n // `datasetMap` is used to make default encode.\n inner(ecModel).datasetMap = createHashMap();\n}\n/**\n * [Caution]:\n * MUST be called after series option merged and\n * before \"series.getInitailData()\" called.\n *\n * [The rule of making default encode]:\n * Category axis (if exists) alway map to the first dimension.\n * Each other axis occupies a subsequent dimension.\n *\n * [Why make default encode]:\n * Simplify the typing of encode in option, avoiding the case like that:\n * series: [{encode: {x: 0, y: 1}}, {encode: {x: 0, y: 2}}, {encode: {x: 0, y: 3}}],\n * where the \"y\" have to be manually typed as \"1, 2, 3, ...\".\n *\n * @param {module:echarts/model/Series} seriesModel\n */\n\n\nfunction prepareSource(seriesModel) {\n var seriesOption = seriesModel.option;\n var data = seriesOption.data;\n var sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n var fromDataset = false;\n var seriesLayoutBy = seriesOption.seriesLayoutBy;\n var sourceHeader = seriesOption.sourceHeader;\n var dimensionsDefine = seriesOption.dimensions;\n var datasetModel = getDatasetModel(seriesModel);\n\n if (datasetModel) {\n var datasetOption = datasetModel.option;\n data = datasetOption.source;\n sourceFormat = inner(datasetModel).sourceFormat;\n fromDataset = true; // These settings from series has higher priority.\n\n seriesLayoutBy = seriesLayoutBy || datasetOption.seriesLayoutBy;\n sourceHeader == null && (sourceHeader = datasetOption.sourceHeader);\n dimensionsDefine = dimensionsDefine || datasetOption.dimensions;\n }\n\n var completeResult = completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine);\n inner(seriesModel).source = new Source({\n data: data,\n fromDataset: fromDataset,\n seriesLayoutBy: seriesLayoutBy,\n sourceFormat: sourceFormat,\n dimensionsDefine: completeResult.dimensionsDefine,\n startIndex: completeResult.startIndex,\n dimensionsDetectCount: completeResult.dimensionsDetectCount,\n // Note: dataset option does not have `encode`.\n encodeDefine: seriesOption.encode\n });\n} // return {startIndex, dimensionsDefine, dimensionsCount}\n\n\nfunction completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n if (!data) {\n return {\n dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine)\n };\n }\n\n var dimensionsDetectCount;\n var startIndex;\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n // Rule: Most of the first line are string: it is header.\n // Caution: consider a line with 5 string and 1 number,\n // it still can not be sure it is a head, because the\n // 5 string may be 5 values of category columns.\n if (sourceHeader === 'auto' || sourceHeader == null) {\n arrayRowsTravelFirst(function (val) {\n // '-' is regarded as null/undefined.\n if (val != null && val !== '-') {\n if (isString(val)) {\n startIndex == null && (startIndex = 1);\n } else {\n startIndex = 0;\n }\n } // 10 is an experience number, avoid long loop.\n\n }, seriesLayoutBy, data, 10);\n } else {\n startIndex = sourceHeader ? 1 : 0;\n }\n\n if (!dimensionsDefine && startIndex === 1) {\n dimensionsDefine = [];\n arrayRowsTravelFirst(function (val, index) {\n dimensionsDefine[index] = val != null ? val : '';\n }, seriesLayoutBy, data);\n }\n\n dimensionsDetectCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? data.length : data[0] ? data[0].length : null;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n if (!dimensionsDefine) {\n dimensionsDefine = objectRowsCollectDimensions(data);\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n if (!dimensionsDefine) {\n dimensionsDefine = [];\n each(data, function (colArr, key) {\n dimensionsDefine.push(key);\n });\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var value0 = getDataItemValue(data[0]);\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\n } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {}\n\n return {\n startIndex: startIndex,\n dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine),\n dimensionsDetectCount: dimensionsDetectCount\n };\n} // Consider dimensions defined like ['A', 'price', 'B', 'price', 'C', 'price'],\n// which is reasonable. But dimension name is duplicated.\n// Returns undefined or an array contains only object without null/undefiend or string.\n\n\nfunction normalizeDimensionsDefine(dimensionsDefine) {\n if (!dimensionsDefine) {\n // The meaning of null/undefined is different from empty array.\n return;\n }\n\n var nameMap = createHashMap();\n return map(dimensionsDefine, function (item, index) {\n item = extend({}, isObject(item) ? item : {\n name: item\n }); // User can set null in dimensions.\n // We dont auto specify name, othewise a given name may\n // cause it be refered unexpectedly.\n\n if (item.name == null) {\n return item;\n } // Also consider number form like 2012.\n\n\n item.name += ''; // User may also specify displayName.\n // displayName will always exists except user not\n // specified or dim name is not specified or detected.\n // (A auto generated dim name will not be used as\n // displayName).\n\n if (item.displayName == null) {\n item.displayName = item.name;\n }\n\n var exist = nameMap.get(item.name);\n\n if (!exist) {\n nameMap.set(item.name, {\n count: 1\n });\n } else {\n item.name += '-' + exist.count++;\n }\n\n return item;\n });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n maxLoop == null && (maxLoop = Infinity);\n\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n cb(data[i] ? data[i][0] : null, i);\n }\n } else {\n var value0 = data[0] || [];\n\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\n cb(value0[i], i);\n }\n }\n}\n\nfunction objectRowsCollectDimensions(data) {\n var firstIndex = 0;\n var obj;\n\n while (firstIndex < data.length && !(obj = data[firstIndex++])) {} // jshint ignore: line\n\n\n if (obj) {\n var dimensions = [];\n each(obj, function (value, key) {\n dimensions.push(key);\n });\n return dimensions;\n }\n}\n/**\n * [The strategy of the arrengment of data dimensions for dataset]:\n * \"value way\": all axes are non-category axes. So series one by one take\n * several (the number is coordSysDims.length) dimensions from dataset.\n * The result of data arrengment of data dimensions like:\n * | ser0_x | ser0_y | ser1_x | ser1_y | ser2_x | ser2_y |\n * \"category way\": at least one axis is category axis. So the the first data\n * dimension is always mapped to the first category axis and shared by\n * all of the series. The other data dimensions are taken by series like\n * \"value way\" does.\n * The result of data arrengment of data dimensions like:\n * | ser_shared_x | ser0_y | ser1_y | ser2_y |\n *\n * @param {Array.} coordDimensions [{name: , type: , dimsDef: }, ...]\n * @param {module:model/Series} seriesModel\n * @param {module:data/Source} source\n * @return {Object} encode Never be `null/undefined`.\n */\n\n\nfunction makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n var encode = {};\n var datasetModel = getDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur.\n\n if (!datasetModel || !coordDimensions) {\n return encode;\n }\n\n var encodeItemName = [];\n var encodeSeriesName = [];\n var ecModel = seriesModel.ecModel;\n var datasetMap = inner(ecModel).datasetMap;\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n var baseCategoryDimIndex;\n var categoryWayValueDimStart;\n coordDimensions = coordDimensions.slice();\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n !isObject(coordDimInfo) && (coordDimensions[coordDimIdx] = {\n name: coordDimInfo\n });\n\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n baseCategoryDimIndex = coordDimIdx;\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimensions[coordDimIdx]);\n }\n\n encode[coordDimInfo.name] = [];\n });\n var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n categoryWayDim: categoryWayValueDimStart,\n valueWayDim: 0\n }); // TODO\n // Auto detect first time axis and do arrangement.\n\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n var coordDimName = coordDimInfo.name;\n var count = getDataDimCountOnCoordDim(coordDimInfo); // In value way.\n\n if (baseCategoryDimIndex == null) {\n var start = datasetRecord.valueWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.valueWayDim += count; // ??? TODO give a better default series name rule?\n // especially when encode x y specified.\n // consider: when mutiple series share one dimension\n // category axis, series name should better use\n // the other dimsion name. On the other hand, use\n // both dimensions name.\n } // In category way, the first category axis.\n else if (baseCategoryDimIndex === coordDimIdx) {\n pushDim(encode[coordDimName], 0, count);\n pushDim(encodeItemName, 0, count);\n } // In category way, the other axis.\n else {\n var start = datasetRecord.categoryWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.categoryWayDim += count;\n }\n });\n\n function pushDim(dimIdxArr, idxFrom, idxCount) {\n for (var i = 0; i < idxCount; i++) {\n dimIdxArr.push(idxFrom + i);\n }\n }\n\n function getDataDimCountOnCoordDim(coordDimInfo) {\n var dimsDef = coordDimInfo.dimsDef;\n return dimsDef ? dimsDef.length : 1;\n }\n\n encodeItemName.length && (encode.itemName = encodeItemName);\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n return encode;\n}\n/**\n * Work for data like [{name: ..., value: ...}, ...].\n *\n * @param {module:model/Series} seriesModel\n * @param {module:data/Source} source\n * @return {Object} encode Never be `null/undefined`.\n */\n\n\nfunction makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n var encode = {};\n var datasetModel = getDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur.\n\n if (!datasetModel) {\n return encode;\n }\n\n var sourceFormat = source.sourceFormat;\n var dimensionsDefine = source.dimensionsDefine;\n var potentialNameDimIndex;\n\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n each(dimensionsDefine, function (dim, idx) {\n if ((isObject(dim) ? dim.name : dim) === 'name') {\n potentialNameDimIndex = idx;\n }\n });\n } // idxResult: {v, n}.\n\n\n var idxResult = function () {\n var idxRes0 = {};\n var idxRes1 = {};\n var guessRecords = []; // 5 is an experience value.\n\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n guessRecords.push(guessResult);\n var isPureNumber = guessResult === BE_ORDINAL.Not; // [Strategy of idxRes0]: find the first BE_ORDINAL.Not as the value dim,\n // and then find a name dim with the priority:\n // \"BE_ORDINAL.Might|BE_ORDINAL.Must\" > \"other dim\" > \"the value dim itself\".\n\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n idxRes0.v = i;\n }\n\n if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n idxRes0.n = i;\n }\n\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n return idxRes0;\n } // [Strategy of idxRes1]: if idxRes0 not satisfied (that is, no BE_ORDINAL.Not),\n // find the first BE_ORDINAL.Might as the value dim,\n // and then find a name dim with the priority:\n // \"other dim\" > \"the value dim itself\".\n // That is for backward compat: number-like (e.g., `'3'`, `'55'`) can be\n // treated as number.\n\n\n if (!isPureNumber) {\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n idxRes1.v = i;\n }\n\n if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n idxRes1.n = i;\n }\n }\n }\n\n function fulfilled(idxResult) {\n return idxResult.v != null && idxResult.n != null;\n }\n\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n }();\n\n if (idxResult) {\n encode.value = idxResult.v; // `potentialNameDimIndex` has highest priority.\n\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n; // By default, label use itemName in charts.\n // So we dont set encodeLabel here.\n\n encode.itemName = [nameDimIndex];\n encode.seriesName = [nameDimIndex];\n }\n\n return encode;\n}\n/**\n * If return null/undefined, indicate that should not use datasetModel.\n */\n\n\nfunction getDatasetModel(seriesModel) {\n var option = seriesModel.option; // Caution: consider the scenario:\n // A dataset is declared and a series is not expected to use the dataset,\n // and at the beginning `setOption({series: { noData })` (just prepare other\n // option but no data), then `setOption({series: {data: [...]}); In this case,\n // the user should set an empty array to avoid that dataset is used by default.\n\n var thisData = option.data;\n\n if (!thisData) {\n return seriesModel.ecModel.getComponent('dataset', option.datasetIndex || 0);\n }\n}\n/**\n * The rule should not be complex, otherwise user might not\n * be able to known where the data is wrong.\n * The code is ugly, but how to make it neat?\n *\n * @param {module:echars/data/Source} source\n * @param {number} dimIndex\n * @return {BE_ORDINAL} guess result.\n */\n\n\nfunction guessOrdinal(source, dimIndex) {\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n} // dimIndex may be overflow source data.\n// return {BE_ORDINAL}\n\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n var result; // Experience value.\n\n var maxLoop = 5;\n\n if (isTypedArray(data)) {\n return BE_ORDINAL.Not;\n } // When sourceType is 'objectRows' or 'keyedColumns', dimensionsDefine\n // always exists in source.\n\n\n var dimName;\n var dimType;\n\n if (dimensionsDefine) {\n var dimDefItem = dimensionsDefine[dimIndex];\n\n if (isObject(dimDefItem)) {\n dimName = dimDefItem.name;\n dimType = dimDefItem.type;\n } else if (isString(dimDefItem)) {\n dimName = dimDefItem;\n }\n }\n\n if (dimType != null) {\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n var sample = data[dimIndex];\n\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n if ((result = detectValue(sample[startIndex + i])) != null) {\n return result;\n }\n }\n } else {\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n var row = data[startIndex + i];\n\n if (row && (result = detectValue(row[dimIndex])) != null) {\n return result;\n }\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n var item = data[i];\n\n if (item && (result = detectValue(item[dimName])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n var sample = data[dimName];\n\n if (!sample || isTypedArray(sample)) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\n if ((result = detectValue(sample[i])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n var item = data[i];\n var val = getDataItemValue(item);\n\n if (!isArray(val)) {\n return BE_ORDINAL.Not;\n }\n\n if ((result = detectValue(val[dimIndex])) != null) {\n return result;\n }\n }\n }\n\n function detectValue(val) {\n var beStr = isString(val); // Consider usage convenience, '1', '2' will be treated as \"number\".\n // `isFinit('')` get `true`.\n\n if (val != null && isFinite(val) && val !== '') {\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n } else if (beStr && val !== '-') {\n return BE_ORDINAL.Must;\n }\n }\n\n return BE_ORDINAL.Not;\n}\n\nexports.BE_ORDINAL = BE_ORDINAL;\nexports.detectSourceFormat = detectSourceFormat;\nexports.getSource = getSource;\nexports.resetSourceDefaulter = resetSourceDefaulter;\nexports.prepareSource = prepareSource;\nexports.makeSeriesEncodeForAxisCoordSys = makeSeriesEncodeForAxisCoordSys;\nexports.makeSeriesEncodeForNameBased = makeSeriesEncodeForNameBased;\nexports.guessOrdinal = guessOrdinal;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Line = require(\"./Line\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar curveUtil = require(\"zrender/lib/core/curve\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Provide effect for line\n * @module echarts/chart/helper/EffectLine\n */\n\n/**\n * @constructor\n * @extends {module:zrender/graphic/Group}\n * @alias {module:echarts/chart/helper/Line}\n */\nfunction EffectLine(lineData, idx, seriesScope) {\n graphic.Group.call(this);\n this.add(this.createLine(lineData, idx, seriesScope));\n\n this._updateEffectSymbol(lineData, idx);\n}\n\nvar effectLineProto = EffectLine.prototype;\n\neffectLineProto.createLine = function (lineData, idx, seriesScope) {\n return new Line(lineData, idx, seriesScope);\n};\n\neffectLineProto._updateEffectSymbol = function (lineData, idx) {\n var itemModel = lineData.getItemModel(idx);\n var effectModel = itemModel.getModel('effect');\n var size = effectModel.get('symbolSize');\n var symbolType = effectModel.get('symbol');\n\n if (!zrUtil.isArray(size)) {\n size = [size, size];\n }\n\n var color = effectModel.get('color') || lineData.getItemVisual(idx, 'color');\n var symbol = this.childAt(1);\n\n if (this._symbolType !== symbolType) {\n // Remove previous\n this.remove(symbol);\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n symbol.z2 = 100;\n symbol.culling = true;\n this.add(symbol);\n } // Symbol may be removed if loop is false\n\n\n if (!symbol) {\n return;\n } // Shadow color is same with color in default\n\n\n symbol.setStyle('shadowColor', color);\n symbol.setStyle(effectModel.getItemStyle(['color']));\n symbol.attr('scale', size);\n symbol.setColor(color);\n symbol.attr('scale', size);\n this._symbolType = symbolType;\n this._symbolScale = size;\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\neffectLineProto._updateEffectAnimation = function (lineData, effectModel, idx) {\n var symbol = this.childAt(1);\n\n if (!symbol) {\n return;\n }\n\n var self = this;\n var points = lineData.getItemLayout(idx);\n var period = effectModel.get('period') * 1000;\n var loop = effectModel.get('loop');\n var constantSpeed = effectModel.get('constantSpeed');\n var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n return idx / lineData.count() * period / 3;\n });\n var isDelayFunc = typeof delayExpr === 'function'; // Ignore when updating\n\n symbol.ignore = true;\n this.updateAnimationPoints(symbol, points);\n\n if (constantSpeed > 0) {\n period = this.getLineLength(symbol) / constantSpeed * 1000;\n }\n\n if (period !== this._period || loop !== this._loop) {\n symbol.stopAnimation();\n var delay = delayExpr;\n\n if (isDelayFunc) {\n delay = delayExpr(idx);\n }\n\n if (symbol.__t > 0) {\n delay = -period * symbol.__t;\n }\n\n symbol.__t = 0;\n var animator = symbol.animate('', loop).when(period, {\n __t: 1\n }).delay(delay).during(function () {\n self.updateSymbolPosition(symbol);\n });\n\n if (!loop) {\n animator.done(function () {\n self.remove(symbol);\n });\n }\n\n animator.start();\n }\n\n this._period = period;\n this._loop = loop;\n};\n\neffectLineProto.getLineLength = function (symbol) {\n // Not so accurate\n return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n};\n\neffectLineProto.updateAnimationPoints = function (symbol, points) {\n symbol.__p1 = points[0];\n symbol.__p2 = points[1];\n symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n};\n\neffectLineProto.updateData = function (lineData, idx, seriesScope) {\n this.childAt(0).updateData(lineData, idx, seriesScope);\n\n this._updateEffectSymbol(lineData, idx);\n};\n\neffectLineProto.updateSymbolPosition = function (symbol) {\n var p1 = symbol.__p1;\n var p2 = symbol.__p2;\n var cp1 = symbol.__cp1;\n var t = symbol.__t;\n var pos = symbol.position;\n var lastPos = [pos[0], pos[1]];\n var quadraticAt = curveUtil.quadraticAt;\n var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t); // Tangent\n\n var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; // enable continuity trail for 'line', 'rect', 'roundRect' symbolType\n\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n var scaleY = vec2.dist(lastPos, pos) * 1.05;\n symbol.attr('scale', [symbol.scale[0], scaleY]); // make sure the last segment render within endPoint\n\n if (t === 1) {\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n }\n } else if (symbol.__lastT === 1) {\n // After first loop, symbol.__t does NOT start with 0, so connect p1 to pos directly.\n var scaleY = 2 * vec2.dist(p1, pos);\n symbol.attr('scale', [symbol.scale[0], scaleY]);\n } else {\n symbol.attr('scale', this._symbolScale);\n }\n }\n\n symbol.__lastT = symbol.__t;\n symbol.ignore = false;\n};\n\neffectLineProto.updateLayout = function (lineData, idx) {\n this.childAt(0).updateLayout(lineData, idx);\n var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\nzrUtil.inherits(EffectLine, graphic.Group);\nvar _default = EffectLine;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar selector = require(\"./selector\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\nvar BrushTargetManager = require(\"../helper/BrushTargetManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\nvar PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH;\n/**\n * Layout for visual, the priority higher than other layout, and before brush visual.\n */\n\necharts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n brushType: false\n });\n });\n layoutCovers(ecModel);\n});\n\nfunction layoutCovers(ecModel) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n });\n}\n/**\n * Register the visual encoding if this modules required.\n */\n\n\necharts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel, brushIndex) {\n var thisBrushSelected = {\n brushId: brushModel.id,\n brushIndex: brushIndex,\n brushName: brushModel.name,\n areas: zrUtil.clone(brushModel.areas),\n selected: []\n }; // Every brush component exists in event params, convenient\n // for user to find by index.\n\n brushSelected.push(thisBrushSelected);\n var brushOption = brushModel.option;\n var brushLink = brushOption.brushLink;\n var linkedSeriesMap = [];\n var selectedDataIndexForLink = [];\n var rangeInfoBySeries = [];\n var hasBrushExists = 0;\n\n if (!brushIndex) {\n // Only the first throttle setting works.\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n } // Add boundingRect and selectors to range.\n\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n return bindSelector(zrUtil.defaults({\n boundingRect: boundingRectBuilders[area.brushType](area)\n }, area));\n });\n var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n mappingOption.mappingMethod = 'fixed';\n });\n zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n linkedSeriesMap[seriesIndex] = 1;\n });\n\n function linkOthers(seriesIndex) {\n return brushLink === 'all' || linkedSeriesMap[seriesIndex];\n } // If no supported brush or no brush on the series,\n // all visuals should be in original state.\n\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n /**\n * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n *\n * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck.\n * !brushed┘ └nothing.\n * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing.\n */\n // Step A\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n hasBrushExists |= coordSys.hasAxisBrushed();\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n });\n }\n\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n\n if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area);\n hasBrushExists |= brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data = seriesModel.getData();\n data.each(function (dataIndex) {\n if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n } // Step B\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var seriesBrushSelected = {\n seriesId: seriesModel.id,\n seriesIndex: seriesIndex,\n seriesName: seriesModel.name,\n dataIndex: []\n }; // Every series exists in event params, convenient\n // for user to find series by seriesIndex.\n\n thisBrushSelected.selected.push(seriesBrushSelected);\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\n var data = seriesModel.getData();\n var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n } : function (dataIndex) {\n return checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n }; // If no supported brush or no brush, all visuals are in original state.\n\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n });\n });\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n});\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n // This event will not be triggered when `setOpion`, otherwise dead lock may\n // triggered when do `setOption` in event listener, which we do not find\n // satisfactory way to solve yet. Some considered resolutions:\n // (a) Diff with prevoius selected data ant only trigger event when changed.\n // But store previous data and diff precisely (i.e., not only by dataIndex, but\n // also detect value changes in selected data) might bring complexity or fragility.\n // (b) Use spectial param like `silent` to suppress event triggering.\n // But such kind of volatile param may be weird in `setOption`.\n if (!payload) {\n return;\n }\n\n var zr = api.getZr();\n\n if (zr[DISPATCH_FLAG]) {\n return;\n }\n\n if (!zr[DISPATCH_METHOD]) {\n zr[DISPATCH_METHOD] = doDispatch;\n }\n\n var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n if (!api.isDisposed()) {\n var zr = api.getZr();\n zr[DISPATCH_FLAG] = true;\n api.dispatchAction({\n type: 'brushSelect',\n batch: brushSelected\n });\n zr[DISPATCH_FLAG] = false;\n }\n}\n\nfunction checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction getSelectorsByBrushType(seriesModel) {\n var brushSelector = seriesModel.brushSelector;\n\n if (zrUtil.isString(brushSelector)) {\n var sels = [];\n zrUtil.each(selector, function (selectorsByElementType, brushType) {\n sels[brushType] = function (dataIndex, data, selectors, area) {\n var itemLayout = data.getItemLayout(dataIndex);\n return selectorsByElementType[brushSelector](itemLayout, selectors, area);\n };\n });\n return sels;\n } else if (zrUtil.isFunction(brushSelector)) {\n var bSelector = {};\n zrUtil.each(selector, function (sel, brushType) {\n bSelector[brushType] = brushSelector;\n });\n return bSelector;\n }\n\n return brushSelector;\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n var seriesIndices = brushModel.option.seriesIndex;\n return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nfunction bindSelector(area) {\n var selectors = area.selectors = {};\n zrUtil.each(selector[area.brushType], function (selFn, elType) {\n // Do not use function binding or curry for performance.\n selectors[elType] = function (itemLayout) {\n return selFn(itemLayout, selectors, area);\n };\n });\n return area;\n}\n\nvar boundingRectBuilders = {\n lineX: zrUtil.noop,\n lineY: zrUtil.noop,\n rect: function (area) {\n return getBoundingRectFromMinMax(area.range);\n },\n polygon: function (area) {\n var minMax;\n var range = area.range;\n\n for (var i = 0, len = range.length; i < len; i++) {\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n var rg = range[i];\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n }\n\n return minMax && getBoundingRectFromMinMax(minMax);\n }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}\n\nexports.layoutCovers = layoutCovers;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./effectScatter/EffectScatterSeries\");\n\nrequire(\"./effectScatter/EffectScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('effectScatter', 'circle'));\necharts.registerLayout(layoutPoints('effectScatter'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {Object} finder contains {seriesIndex, dataIndex, dataIndexInside}\n * @param {module:echarts/model/Global} ecModel\n * @return {Object} {point: [x, y], el: ...} point Will not be null.\n */\nfunction _default(finder, ecModel) {\n var point = [];\n var seriesIndex = finder.seriesIndex;\n var seriesModel;\n\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n return {\n point: []\n };\n }\n\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n return {\n point: []\n };\n }\n\n var el = data.getItemGraphicEl(dataIndex);\n var coordSys = seriesModel.coordinateSystem;\n\n if (seriesModel.getTooltipPosition) {\n point = seriesModel.getTooltipPosition(dataIndex) || [];\n } else if (coordSys && coordSys.dataToPoint) {\n point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }), dataIndex, true)) || [];\n } else if (el) {\n // Use graphic bounding rect\n var rect = el.getBoundingRect().clone();\n rect.applyTransform(el.transform);\n point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n }\n\n return {\n point: point,\n el: el\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _labelHelper = require(\"./labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/Symbol\n */\n\n/**\n * @constructor\n * @alias {module:echarts/chart/helper/Symbol}\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @extends {module:zrender/graphic/Group}\n */\nfunction SymbolClz(data, idx, seriesScope) {\n graphic.Group.call(this);\n this.updateData(data, idx, seriesScope);\n}\n\nvar symbolProto = SymbolClz.prototype;\n/**\n * @public\n * @static\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @return {Array.} [width, height]\n */\n\nvar getSymbolSize = SymbolClz.getSymbolSize = function (data, idx) {\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\n return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n};\n\nfunction getScale(symbolSize) {\n return [symbolSize[0] / 2, symbolSize[1] / 2];\n}\n\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\n\nsymbolProto._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n // Remove paths created before\n this.removeAll();\n var color = data.getItemVisual(idx, 'color'); // var symbolPath = createSymbol(\n // symbolType, -0.5, -0.5, 1, 1, color\n // );\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4150.\n\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, color, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scale: getScale(symbolSize)\n }); // Rewrite drift method\n\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n};\n/**\n * Stop animation\n * @param {boolean} toLastFrame\n */\n\n\nsymbolProto.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(toLastFrame);\n};\n/**\n * FIXME:\n * Caution: This method breaks the encapsulation of this module,\n * but it indeed brings convenience. So do not use the method\n * unless you detailedly know all the implements of `Symbol`,\n * especially animation.\n *\n * Get symbol path element.\n */\n\n\nsymbolProto.getSymbolPath = function () {\n return this.childAt(0);\n};\n/**\n * Get scale(aka, current symbol size).\n * Including the change caused by animation\n */\n\n\nsymbolProto.getScale = function () {\n return this.childAt(0).scale;\n};\n/**\n * Highlight symbol\n */\n\n\nsymbolProto.highlight = function () {\n this.childAt(0).trigger('emphasis');\n};\n/**\n * Downplay symbol\n */\n\n\nsymbolProto.downplay = function () {\n this.childAt(0).trigger('normal');\n};\n/**\n * @param {number} zlevel\n * @param {number} z\n */\n\n\nsymbolProto.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n};\n\nsymbolProto.setDraggable = function (draggable) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n};\n/**\n * Update symbol properties\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Object} [seriesScope]\n * @param {Object} [seriesScope.itemStyle]\n * @param {Object} [seriesScope.hoverItemStyle]\n * @param {Object} [seriesScope.symbolRotate]\n * @param {Object} [seriesScope.symbolOffset]\n * @param {module:echarts/model/Model} [seriesScope.labelModel]\n * @param {module:echarts/model/Model} [seriesScope.hoverLabelModel]\n * @param {boolean} [seriesScope.hoverAnimation]\n * @param {Object} [seriesScope.cursorStyle]\n * @param {module:echarts/model/Model} [seriesScope.itemModel]\n * @param {string} [seriesScope.symbolInnerColor]\n * @param {Object} [seriesScope.fadeIn=false]\n */\n\n\nsymbolProto.updateData = function (data, idx, seriesScope) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\n\n if (isInit) {\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n } else {\n var symbolPath = this.childAt(0);\n symbolPath.silent = false;\n graphic.updateProps(symbolPath, {\n scale: getScale(symbolSize)\n }, seriesModel, idx);\n }\n\n this._updateCommon(data, idx, symbolSize, seriesScope);\n\n if (isInit) {\n var symbolPath = this.childAt(0);\n var fadeIn = seriesScope && seriesScope.fadeIn;\n var target = {\n scale: symbolPath.scale.slice()\n };\n fadeIn && (target.style = {\n opacity: symbolPath.style.opacity\n });\n symbolPath.scale = [0, 0];\n fadeIn && (symbolPath.style.opacity = 0);\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n\n this._seriesModel = seriesModel;\n}; // Update common properties\n\n\nvar normalStyleAccessPath = ['itemStyle'];\nvar emphasisStyleAccessPath = ['emphasis', 'itemStyle'];\nvar normalLabelAccessPath = ['label'];\nvar emphasisLabelAccessPath = ['emphasis', 'label'];\n/**\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Array.} symbolSize\n * @param {Object} [seriesScope]\n */\n\nsymbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var color = data.getItemVisual(idx, 'color'); // Reset style\n\n if (symbolPath.type !== 'image') {\n symbolPath.useStyle({\n strokeNoScale: true\n });\n } else {\n symbolPath.setStyle({\n opacity: null,\n shadowBlur: null,\n shadowOffsetX: null,\n shadowOffsetY: null,\n shadowColor: null\n });\n }\n\n var itemStyle = seriesScope && seriesScope.itemStyle;\n var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle;\n var symbolOffset = seriesScope && seriesScope.symbolOffset;\n var labelModel = seriesScope && seriesScope.labelModel;\n var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel;\n var hoverAnimation = seriesScope && seriesScope.hoverAnimation;\n var cursorStyle = seriesScope && seriesScope.cursorStyle;\n\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']);\n hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();\n symbolOffset = itemModel.getShallow('symbolOffset');\n labelModel = itemModel.getModel(normalLabelAccessPath);\n hoverLabelModel = itemModel.getModel(emphasisLabelAccessPath);\n hoverAnimation = itemModel.getShallow('hoverAnimation');\n cursorStyle = itemModel.getShallow('cursor');\n } else {\n hoverItemStyle = zrUtil.extend({}, hoverItemStyle);\n }\n\n var elStyle = symbolPath.style;\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n if (symbolOffset) {\n symbolPath.attr('position', [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])]);\n }\n\n cursorStyle && symbolPath.attr('cursor', cursorStyle); // PENDING setColor before setStyle!!!\n\n symbolPath.setColor(color, seriesScope && seriesScope.symbolInnerColor);\n symbolPath.setStyle(itemStyle);\n var opacity = data.getItemVisual(idx, 'opacity');\n\n if (opacity != null) {\n elStyle.opacity = opacity;\n }\n\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = symbolPath.__z2Origin;\n\n if (liftZ != null) {\n if (z2Origin == null) {\n symbolPath.__z2Origin = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n symbolPath.__z2Origin = null;\n }\n\n var useNameLabel = seriesScope && seriesScope.useNameLabel;\n graphic.setLabelStyle(elStyle, hoverItemStyle, labelModel, hoverLabelModel, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n isRectText: true,\n autoColor: color\n }); // Do not execute util needed.\n\n function getLabelDefaultText(idx, opt) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n\n symbolPath.__symbolOriginalScale = getScale(symbolSize);\n symbolPath.hoverStyle = hoverItemStyle;\n symbolPath.highDownOnUpdate = hoverAnimation && seriesModel.isAnimationEnabled() ? highDownOnUpdate : null;\n graphic.setHoverStyle(symbolPath);\n};\n\nfunction highDownOnUpdate(fromState, toState) {\n // Do not support this hover animation util some scenario required.\n // Animation can only be supported in hover layer when using `el.incremetal`.\n if (this.incremental || this.useHoverLayer) {\n return;\n }\n\n if (toState === 'emphasis') {\n var scale = this.__symbolOriginalScale;\n var ratio = scale[1] / scale[0];\n var emphasisOpt = {\n scale: [Math.max(scale[0] * 1.1, scale[0] + 3), Math.max(scale[1] * 1.1, scale[1] + 3 * ratio)]\n }; // FIXME\n // modify it after support stop specified animation.\n // toState === fromState\n // ? (this.stopAnimation(), this.attr(emphasisOpt))\n\n this.animateTo(emphasisOpt, 400, 'elasticOut');\n } else if (toState === 'normal') {\n this.animateTo({\n scale: this.__symbolOriginalScale\n }, 400, 'elasticOut');\n }\n}\n/**\n * @param {Function} cb\n * @param {Object} [opt]\n * @param {Object} [opt.keepLabel=true]\n */\n\n\nsymbolProto.fadeOut = function (cb, opt) {\n var symbolPath = this.childAt(0); // Avoid mistaken hover when fading out\n\n this.silent = symbolPath.silent = true; // Not show text when animating\n\n !(opt && opt.keepLabel) && (symbolPath.style.text = null);\n graphic.updateProps(symbolPath, {\n style: {\n opacity: 0\n },\n scale: [0, 0]\n }, this._seriesModel, this.dataIndex, cb);\n};\n\nzrUtil.inherits(SymbolClz, graphic.Group);\nvar _default = SymbolClz;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar symbolUtil = require(\"../../util/symbol\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalizeSymbolSize(symbolSize) {\n if (!zrUtil.isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return symbolSize;\n}\n\nvar _default = echarts.extendChartView({\n type: 'radar',\n render: function (seriesModel, ecModel, api) {\n var polar = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n\n function createSymbol(data, idx) {\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var color = data.getItemVisual(idx, 'color');\n\n if (symbolType === 'none') {\n return;\n }\n\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2, color);\n symbolPath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 100,\n scale: [symbolSize[0] / 2, symbolSize[1] / 2]\n });\n return symbolPath;\n }\n\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n // Simply rerender all\n symbolGroup.removeAll();\n\n for (var i = 0; i < newPoints.length - 1; i++) {\n var symbolPath = createSymbol(data, idx);\n\n if (symbolPath) {\n symbolPath.__dimIdx = i;\n\n if (oldPoints[i]) {\n symbolPath.attr('position', oldPoints[i]);\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n position: newPoints[i]\n }, seriesModel, idx);\n } else {\n symbolPath.attr('position', newPoints[i]);\n }\n\n symbolGroup.add(symbolPath);\n }\n }\n }\n\n function getInitialPoints(points) {\n return zrUtil.map(points, function (pt) {\n return [polar.cx, polar.cy];\n });\n }\n\n data.diff(oldData).add(function (idx) {\n var points = data.getItemLayout(idx);\n\n if (!points) {\n return;\n }\n\n var polygon = new graphic.Polygon();\n var polyline = new graphic.Polyline();\n var target = {\n shape: {\n points: points\n }\n };\n polygon.shape.points = getInitialPoints(points);\n polyline.shape.points = getInitialPoints(points);\n graphic.initProps(polygon, target, seriesModel, idx);\n graphic.initProps(polyline, target, seriesModel, idx);\n var itemGroup = new graphic.Group();\n var symbolGroup = new graphic.Group();\n itemGroup.add(polyline);\n itemGroup.add(polygon);\n itemGroup.add(symbolGroup);\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n data.setItemGraphicEl(idx, itemGroup);\n }).update(function (newIdx, oldIdx) {\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var target = {\n shape: {\n points: data.getItemLayout(newIdx)\n }\n };\n\n if (!target.shape.points) {\n return;\n }\n\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n graphic.updateProps(polyline, target, seriesModel);\n graphic.updateProps(polygon, target, seriesModel);\n data.setItemGraphicEl(newIdx, itemGroup);\n }).remove(function (idx) {\n group.remove(oldData.getItemGraphicEl(idx));\n }).execute();\n data.eachItemGraphicEl(function (itemGroup, idx) {\n var itemModel = data.getItemModel(idx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var color = data.getItemVisual(idx, 'color');\n group.add(itemGroup);\n polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n fill: 'none',\n stroke: color\n }));\n polyline.hoverStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n var areaStyleModel = itemModel.getModel('areaStyle');\n var hoverAreaStyleModel = itemModel.getModel('emphasis.areaStyle');\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n var hoverPolygonIgnore = hoverAreaStyleModel.isEmpty() && hoverAreaStyleModel.parentModel.isEmpty();\n hoverPolygonIgnore = hoverPolygonIgnore && polygonIgnore;\n polygon.ignore = polygonIgnore;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: color,\n opacity: 0.7\n }));\n polygon.hoverStyle = hoverAreaStyleModel.getAreaStyle();\n var itemStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n var itemHoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n symbolGroup.eachChild(function (symbolPath) {\n symbolPath.setStyle(itemStyle);\n symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle);\n var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n graphic.setLabelStyle(symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n labelDimIndex: symbolPath.__dimIdx,\n defaultText: defaultText,\n autoColor: color,\n isRectText: true\n });\n });\n\n itemGroup.highDownOnUpdate = function (fromState, toState) {\n polygon.attr('ignore', toState === 'emphasis' ? hoverPolygonIgnore : polygonIgnore);\n };\n\n graphic.setHoverStyle(itemGroup);\n });\n this._data = data;\n },\n remove: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar _default = AxisView.extend({\n type: 'radiusAxis',\n axisPointerClass: 'PolarAxisPointer',\n render: function (radiusAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!radiusAxisModel.get('show')) {\n return;\n }\n\n var radiusAxis = radiusAxisModel.axis;\n var polar = radiusAxis.polar;\n var angleAxis = polar.getAngleAxis();\n var ticksCoords = radiusAxis.getTicksCoords();\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n var axisAngle = angleAxis.getExtent()[0];\n var radiusExtent = radiusAxis.getExtent();\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (radiusAxisModel.get(name + '.show') && !radiusAxis.scale.isBlank()) {\n this['_' + name](radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n }\n }, this);\n },\n\n /**\n * @private\n */\n _splitLine: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n var splitLineModel = radiusAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: ticksCoords[i].coord\n }\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length],\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n }\n },\n\n /**\n * @private\n */\n _minorSplitLine: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n if (!minorTicksCoords.length) {\n return;\n }\n\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n lines.push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: minorTicksCoords[i][k].coord\n }\n }));\n }\n }\n\n this.group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults({\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n },\n\n /**\n * @private\n */\n _splitArea: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n if (!ticksCoords.length) {\n return;\n }\n\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var prevRadius = ticksCoords[0].coord;\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: prevRadius,\n r: ticksCoords[i].coord,\n startAngle: 0,\n endAngle: Math.PI * 2\n },\n silent: true\n }));\n prevRadius = ticksCoords[i].coord;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n this.group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n});\n/**\n * @inner\n */\n\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n return {\n position: [polar.cx, polar.cy],\n rotation: axisAngle / 180 * Math.PI,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1,\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n // Over splitLine and splitArea\n z2: 1\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListFromArray = require(\"./chart/helper/createListFromArray\");\n\nvar axisHelper = require(\"./coord/axisHelper\");\n\nvar axisModelCommonMixin = require(\"./coord/axisModelCommonMixin\");\n\nvar Model = require(\"./model/Model\");\n\nvar _layout = require(\"./util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\nexports.getLayoutRect = _layout.getLayoutRect;\n\nvar _dataStackHelper = require(\"./data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nvar _completeDimensions = require(\"./data/helper/completeDimensions\");\n\nexports.completeDimensions = _completeDimensions;\n\nvar _createDimensions = require(\"./data/helper/createDimensions\");\n\nexports.createDimensions = _createDimensions;\n\nvar _symbol = require(\"./util/symbol\");\n\nexports.createSymbol = _symbol.createSymbol;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge';\n\n/**\n * Create a muti dimension List structure from seriesModel.\n * @param {module:echarts/model/Model} seriesModel\n * @return {module:echarts/data/List} list\n */\nfunction createList(seriesModel) {\n return createListFromArray(seriesModel.getSource(), seriesModel);\n} // export function createGraph(seriesModel) {\n// var nodes = seriesModel.get('data');\n// var links = seriesModel.get('links');\n// return createGraphFromNodeEdge(nodes, links, seriesModel);\n// }\n\n\nvar dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @param {string} symbolDesc\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n */\n\n/**\n * Create scale\n * @param {Array.} dataExtent\n * @param {Object|module:echarts/Model} option\n */\nfunction createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!Model.isInstance(option)) {\n axisModel = new Model(option);\n zrUtil.mixin(axisModel, axisModelCommonMixin);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\n/**\n * Mixin common methods to axis model,\n *\n * Inlcude methods\n * `getFormattedLabels() => Array.`\n * `getCategories() => Array.`\n * `getMin(origin: boolean) => number`\n * `getMax(origin: boolean) => number`\n * `getNeedCrossZero() => boolean`\n * `setRange(start: number, end: number)`\n * `resetRange()`\n */\n\n\nfunction mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, axisModelCommonMixin);\n}\n\nexports.createList = createList;\nexports.dataStack = dataStack;\nexports.createScale = createScale;\nexports.mixinAxisModelCommonMethods = mixinAxisModelCommonMethods;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./scatter/ScatterSeries\");\n\nrequire(\"./scatter/ScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\nrequire(\"../component/gridSimple\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import * as zrUtil from 'zrender/src/core/util';\n// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('scatter', 'circle'));\necharts.registerLayout(layoutPoints('scatter')); // echarts.registerProcessor(function (ecModel, api) {\n// ecModel.eachSeriesByType('scatter', function (seriesModel) {\n// var data = seriesModel.getData();\n// var coordSys = seriesModel.coordinateSystem;\n// if (coordSys.type !== 'geo') {\n// return;\n// }\n// var startPt = coordSys.pointToData([0, 0]);\n// var endPt = coordSys.pointToData([api.getWidth(), api.getHeight()]);\n// var dims = zrUtil.map(coordSys.dimensions, function (dim) {\n// return data.mapDimension(dim);\n// });\n// var range = {};\n// range[dims[0]] = [Math.min(startPt[0], endPt[0]), Math.max(startPt[0], endPt[0])];\n// range[dims[1]] = [Math.min(startPt[1], endPt[1]), Math.max(startPt[1], endPt[1])];\n// data.selectRange(range);\n// });\n// });","/**\n * 3x2矩阵操作类\n * @exports zrender/tool/matrix\n */\n\n/* global Float32Array */\nvar ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array;\n/**\n * Create a identity matrix.\n * @return {Float32Array|Array.}\n */\n\nfunction create() {\n var out = new ArrayCtor(6);\n identity(out);\n return out;\n}\n/**\n * 设置矩阵为单位矩阵\n * @param {Float32Array|Array.} out\n */\n\n\nfunction identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n/**\n * 复制矩阵\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} m\n */\n\n\nfunction copy(out, m) {\n out[0] = m[0];\n out[1] = m[1];\n out[2] = m[2];\n out[3] = m[3];\n out[4] = m[4];\n out[5] = m[5];\n return out;\n}\n/**\n * 矩阵相乘\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} m1\n * @param {Float32Array|Array.} m2\n */\n\n\nfunction mul(out, m1, m2) {\n // Consider matrix.mul(m, m2, m);\n // where out is the same as m2.\n // So use temp variable to escape error.\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = out3;\n out[4] = out4;\n out[5] = out5;\n return out;\n}\n/**\n * 平移变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {Float32Array|Array.} v\n */\n\n\nfunction translate(out, a, v) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4] + v[0];\n out[5] = a[5] + v[1];\n return out;\n}\n/**\n * 旋转变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {number} rad\n */\n\n\nfunction rotate(out, a, rad) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var st = Math.sin(rad);\n var ct = Math.cos(rad);\n out[0] = aa * ct + ab * st;\n out[1] = -aa * st + ab * ct;\n out[2] = ac * ct + ad * st;\n out[3] = -ac * st + ct * ad;\n out[4] = ct * atx + st * aty;\n out[5] = ct * aty - st * atx;\n return out;\n}\n/**\n * 缩放变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {Float32Array|Array.} v\n */\n\n\nfunction scale(out, a, v) {\n var vx = v[0];\n var vy = v[1];\n out[0] = a[0] * vx;\n out[1] = a[1] * vy;\n out[2] = a[2] * vx;\n out[3] = a[3] * vy;\n out[4] = a[4] * vx;\n out[5] = a[5] * vy;\n return out;\n}\n/**\n * 求逆矩阵\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n */\n\n\nfunction invert(out, a) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var det = aa * ad - ab * ac;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\n/**\n * Clone a new matrix.\n * @param {Float32Array|Array.} a\n */\n\n\nfunction clone(a) {\n var b = create();\n copy(b, a);\n return b;\n}\n\nexports.create = create;\nexports.identity = identity;\nexports.copy = copy;\nexports.mul = mul;\nexports.translate = translate;\nexports.rotate = rotate;\nexports.scale = scale;\nexports.invert = invert;\nexports.clone = clone;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisDefault = require(\"../axisDefault\");\n\nvar Model = require(\"../../model/Model\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar valueAxisDefault = axisDefault.valueAxis;\n\nfunction defaultsShow(opt, show) {\n return zrUtil.defaults({\n show: show\n }, opt);\n}\n\nvar RadarModel = echarts.extendComponentModel({\n type: 'radar',\n optionUpdated: function () {\n var boundaryGap = this.get('boundaryGap');\n var splitNumber = this.get('splitNumber');\n var scale = this.get('scale');\n var axisLine = this.get('axisLine');\n var axisTick = this.get('axisTick');\n var axisType = this.get('axisType');\n var axisLabel = this.get('axisLabel');\n var nameTextStyle = this.get('name');\n var showName = this.get('name.show');\n var nameFormatter = this.get('name.formatter');\n var nameGap = this.get('nameGap');\n var triggerEvent = this.get('triggerEvent');\n var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n // PENDING\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n indicatorOpt.min = 0;\n } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n indicatorOpt.max = 0;\n }\n\n var iNameTextStyle = nameTextStyle;\n\n if (indicatorOpt.color != null) {\n iNameTextStyle = zrUtil.defaults({\n color: indicatorOpt.color\n }, nameTextStyle);\n } // Use same configuration\n\n\n indicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n boundaryGap: boundaryGap,\n splitNumber: splitNumber,\n scale: scale,\n axisLine: axisLine,\n axisTick: axisTick,\n axisType: axisType,\n axisLabel: axisLabel,\n // Compatible with 2 and use text\n name: indicatorOpt.text,\n nameLocation: 'end',\n nameGap: nameGap,\n // min: 0,\n nameTextStyle: iNameTextStyle,\n triggerEvent: triggerEvent\n }, false);\n\n if (!showName) {\n indicatorOpt.name = '';\n }\n\n if (typeof nameFormatter === 'string') {\n var indName = indicatorOpt.name;\n indicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n } else if (typeof nameFormatter === 'function') {\n indicatorOpt.name = nameFormatter(indicatorOpt.name, indicatorOpt);\n }\n\n var model = zrUtil.extend(new Model(indicatorOpt, null, this.ecModel), axisModelCommonMixin); // For triggerEvent.\n\n model.mainType = 'radar';\n model.componentIndex = this.componentIndex;\n return model;\n }, this);\n\n this.getIndicatorModels = function () {\n return indicatorModels;\n };\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '75%',\n startAngle: 90,\n name: {\n show: true // formatter: null\n // textStyle: {}\n\n },\n boundaryGap: [0, 0],\n splitNumber: 5,\n nameGap: 15,\n scale: false,\n // Polygon or circle\n shape: 'polygon',\n axisLine: zrUtil.merge({\n lineStyle: {\n color: '#bbb'\n }\n }, valueAxisDefault.axisLine),\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n axisType: 'interval',\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n // {text, min, max}\n indicator: []\n }\n});\nvar _default = RadarModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n // 全国\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n //'北京': [-10, 0],\n '天津': [5, 5]\n};\n\nfunction _default(mapType, region) {\n if (mapType === 'china') {\n var coordFix = coordsOffsetMap[region.name];\n\n if (coordFix) {\n var cp = region.center;\n cp[0] += coordFix[0] / 10.5;\n cp[1] += -coordFix[1] / (10.5 / 0.75);\n }\n }\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar BaseBarSeries = require(\"./BaseBarSeries\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = BaseBarSeries.extend({\n type: 'series.bar',\n dependencies: ['grid', 'polar'],\n brushSelector: 'rect',\n\n /**\n * @override\n */\n getProgressive: function () {\n // Do not support progressive in normal mode.\n return this.get('large') ? this.get('progressive') : false;\n },\n\n /**\n * @override\n */\n getProgressiveThreshold: function () {\n // Do not support progressive in normal mode.\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n },\n defaultOption: {\n // If clipped\n // Only available on cartesian2d\n clip: true,\n // If use caps on two sides of bars\n // Only available on tangential polar bar\n roundCap: false,\n showBackground: false,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n borderColor: null,\n borderWidth: 0,\n borderType: 'solid',\n borderRadius: 0,\n shadowBlur: 0,\n shadowColor: null,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n }\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\nvar each = zrUtil.each;\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n * @param {Function} handler\n * param: {string} currTrigger\n * param: {Array.} point\n */\n\nfunction register(key, api, handler) {\n if (env.node) {\n return;\n }\n\n var zr = api.getZr();\n inner(zr).records || (inner(zr).records = {});\n initGlobalListeners(zr, api);\n var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n if (inner(zr).initialized) {\n return;\n }\n\n inner(zr).initialized = true;\n useHandler('click', zrUtil.curry(doEnter, 'click'));\n useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove')); // useHandler('mouseout', onLeave);\n\n useHandler('globalout', onLeave);\n\n function useHandler(eventType, cb) {\n zr.on(eventType, function (e) {\n var dis = makeDispatchAction(api);\n each(inner(zr).records, function (record) {\n record && cb(record, e, dis.dispatchAction);\n });\n dispatchTooltipFinally(dis.pendings, api);\n });\n }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n var showLen = pendings.showTip.length;\n var hideLen = pendings.hideTip.length;\n var actuallyPayload;\n\n if (showLen) {\n actuallyPayload = pendings.showTip[showLen - 1];\n } else if (hideLen) {\n actuallyPayload = pendings.hideTip[hideLen - 1];\n }\n\n if (actuallyPayload) {\n actuallyPayload.dispatchAction = null;\n api.dispatchAction(actuallyPayload);\n }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n var pendings = {\n showTip: [],\n hideTip: []\n }; // FIXME\n // better approach?\n // 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip,\n // which may be conflict, (axisPointer call showTip but tooltip call hideTip);\n // So we have to add \"final stage\" to merge those dispatched actions.\n\n var dispatchAction = function (payload) {\n var pendingList = pendings[payload.type];\n\n if (pendingList) {\n pendingList.push(payload);\n } else {\n payload.dispatchAction = dispatchAction;\n api.dispatchAction(payload);\n }\n };\n\n return {\n dispatchAction: dispatchAction,\n pendings: pendings\n };\n}\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction unregister(key, api) {\n if (env.node) {\n return;\n }\n\n var zr = api.getZr();\n var record = (inner(zr).records || {})[key];\n\n if (record) {\n inner(zr).records[key] = null;\n }\n}\n\nexports.register = register;\nexports.unregister = unregister;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Scale = require(\"./Scale\");\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Linear continuous scale\n * @module echarts/coord/scale/Ordinal\n *\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\nvar scaleProto = Scale.prototype;\nvar OrdinalScale = Scale.extend({\n type: 'ordinal',\n\n /**\n * @param {module:echarts/data/OrdianlMeta|Array.} ordinalMeta\n */\n init: function (ordinalMeta, extent) {\n // Caution: Should not use instanceof, consider ec-extensions using\n // import approach to get OrdinalMeta class.\n if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: ordinalMeta\n });\n }\n\n this._ordinalMeta = ordinalMeta;\n this._extent = extent || [0, ordinalMeta.categories.length - 1];\n },\n parse: function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float.\n : Math.round(val);\n },\n contain: function (rank) {\n rank = this.parse(rank);\n return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;\n },\n\n /**\n * Normalize given rank or name to linear [0, 1]\n * @param {number|string} [val]\n * @return {number}\n */\n normalize: function (val) {\n return scaleProto.normalize.call(this, this.parse(val));\n },\n scale: function (val) {\n return Math.round(scaleProto.scale.call(this, val));\n },\n\n /**\n * @return {Array}\n */\n getTicks: function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push(rank);\n rank++;\n }\n\n return ticks;\n },\n\n /**\n * Get item on rank n\n * @param {number} n\n * @return {string}\n */\n getLabel: function (n) {\n if (!this.isBlank()) {\n // Note that if no data, ordinalMeta.categories is an empty array.\n return this._ordinalMeta.categories[n];\n }\n },\n\n /**\n * @return {number}\n */\n count: function () {\n return this._extent[1] - this._extent[0] + 1;\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n },\n getOrdinalMeta: function () {\n return this._ordinalMeta;\n },\n niceTicks: zrUtil.noop,\n niceExtent: zrUtil.noop\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nOrdinalScale.create = function () {\n return new OrdinalScale();\n};\n\nvar _default = OrdinalScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MarkerModel = require(\"./MarkerModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n type: 'markLine',\n defaultOption: {\n zlevel: 0,\n z: 5,\n symbol: ['circle', 'arrow'],\n symbolSize: [8, 16],\n //symbolRotate: 0,\n precision: 2,\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'end',\n distance: 5\n },\n lineStyle: {\n type: 'dashed'\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n width: 3\n }\n },\n animationEasing: 'linear'\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar _createClipPathFromCoordSys = require(\"../helper/createClipPathFromCoordSys\");\n\nvar createClipPath = _createClipPathFromCoordSys.createClipPath;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0'];\nvar CandlestickView = ChartView.extend({\n type: 'candlestick',\n render: function (seriesModel, ecModel, api) {\n // If there is clipPath created in large mode. Remove it.\n this.group.removeClipPath();\n\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n },\n _updateDrawMode: function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n },\n _renderNormal: function (seriesModel) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var isSimpleBox = data.getLayout('isSimpleBox');\n var needsClip = seriesModel.get('clip', true);\n var coord = seriesModel.coordinateSystem;\n var clipArea = coord.getArea && coord.getArea(); // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var el;\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n return;\n }\n\n el = createNormalBox(itemLayout, newIdx, true);\n graphic.initProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(el);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n group.remove(el);\n return;\n }\n\n if (!el) {\n el = createNormalBox(itemLayout, newIdx);\n } else {\n graphic.updateProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n }\n\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n _renderLarge: function (seriesModel) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n },\n _incrementalRenderNormal: function (params, seriesModel) {\n var data = seriesModel.getData();\n var isSimpleBox = data.getLayout('isSimpleBox');\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var el;\n var itemLayout = data.getItemLayout(dataIndex);\n el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n }\n },\n _incrementalRenderLarge: function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n },\n remove: function (ecModel) {\n this._clear();\n },\n _clear: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: zrUtil.noop\n});\nvar NormalBoxPath = Path.extend({\n type: 'normalCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n\n if (this.__simpleBox) {\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[6][0], ends[6][1]);\n } else {\n ctx.moveTo(ends[0][0], ends[0][1]);\n ctx.lineTo(ends[1][0], ends[1][1]);\n ctx.lineTo(ends[2][0], ends[2][1]);\n ctx.lineTo(ends[3][0], ends[3][1]);\n ctx.closePath();\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[5][0], ends[5][1]);\n ctx.moveTo(ends[6][0], ends[6][1]);\n ctx.lineTo(ends[7][0], ends[7][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n var ends = itemLayout.ends;\n return new NormalBoxPath({\n shape: {\n points: isInit ? transInit(ends, itemLayout) : ends\n },\n z2: 100\n });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n var clipped = true;\n\n for (var i = 0; i < itemLayout.ends.length; i++) {\n // If any point are in the region.\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n clipped = false;\n break;\n }\n }\n\n return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.strokeNoScale = true;\n el.style.fill = color;\n el.style.stroke = borderColor;\n el.__simpleBox = isSimpleBox;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[1] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar LargeBoxPath = Path.extend({\n type: 'largeCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n\n for (var i = 0; i < points.length;) {\n if (this.__sign === points[i++]) {\n var x = points[i++];\n ctx.moveTo(x, points[i++]);\n ctx.lineTo(x, points[i++]);\n } else {\n i += 3;\n }\n }\n }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var largePoints = data.getLayout('largePoints');\n var elP = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 1\n });\n group.add(elP);\n var elN = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: -1\n });\n group.add(elN);\n setLargeStyle(1, elP, seriesModel, data);\n setLargeStyle(-1, elN, seriesModel, data);\n\n if (incremental) {\n elP.incremental = true;\n elN.incremental = true;\n }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n var suffix = sign > 0 ? 'P' : 'N';\n var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor; // No different\n // el.style.lineWidth = .5;\n}\n\nvar _default = CandlestickView;\nmodule.exports = _default;","var zrUtil = require(\"../core/util\");\n\nvar Style = require(\"./Style\");\n\nvar Element = require(\"../Element\");\n\nvar RectText = require(\"./mixin/RectText\");\n\n/**\n * Base class of all displayable graphic objects\n * @module zrender/graphic/Displayable\n */\n\n/**\n * @alias module:zrender/graphic/Displayable\n * @extends module:zrender/Element\n * @extends module:zrender/graphic/mixin/RectText\n */\nfunction Displayable(opts) {\n opts = opts || {};\n Element.call(this, opts); // Extend properties\n\n for (var name in opts) {\n if (opts.hasOwnProperty(name) && name !== 'style') {\n this[name] = opts[name];\n }\n }\n /**\n * @type {module:zrender/graphic/Style}\n */\n\n\n this.style = new Style(opts.style, this);\n this._rect = null; // Shapes for cascade clipping.\n // Can only be `null`/`undefined` or an non-empty array, MUST NOT be an empty array.\n // because it is easy to only using null to check whether clipPaths changed.\n\n this.__clipPaths = null; // FIXME Stateful must be mixined after style is setted\n // Stateful.call(this, opts);\n}\n\nDisplayable.prototype = {\n constructor: Displayable,\n type: 'displayable',\n\n /**\n * Dirty flag. From which painter will determine if this displayable object needs brush.\n * @name module:zrender/graphic/Displayable#__dirty\n * @type {boolean}\n */\n __dirty: true,\n\n /**\n * Whether the displayable object is visible. when it is true, the displayable object\n * is not drawn, but the mouse event can still trigger the object.\n * @name module:/zrender/graphic/Displayable#invisible\n * @type {boolean}\n * @default false\n */\n invisible: false,\n\n /**\n * @name module:/zrender/graphic/Displayable#z\n * @type {number}\n * @default 0\n */\n z: 0,\n\n /**\n * @name module:/zrender/graphic/Displayable#z\n * @type {number}\n * @default 0\n */\n z2: 0,\n\n /**\n * The z level determines the displayable object can be drawn in which layer canvas.\n * @name module:/zrender/graphic/Displayable#zlevel\n * @type {number}\n * @default 0\n */\n zlevel: 0,\n\n /**\n * Whether it can be dragged.\n * @name module:/zrender/graphic/Displayable#draggable\n * @type {boolean}\n * @default false\n */\n draggable: false,\n\n /**\n * Whether is it dragging.\n * @name module:/zrender/graphic/Displayable#draggable\n * @type {boolean}\n * @default false\n */\n dragging: false,\n\n /**\n * Whether to respond to mouse events.\n * @name module:/zrender/graphic/Displayable#silent\n * @type {boolean}\n * @default false\n */\n silent: false,\n\n /**\n * If enable culling\n * @type {boolean}\n * @default false\n */\n culling: false,\n\n /**\n * Mouse cursor when hovered\n * @name module:/zrender/graphic/Displayable#cursor\n * @type {string}\n */\n cursor: 'pointer',\n\n /**\n * If hover area is bounding rect\n * @name module:/zrender/graphic/Displayable#rectHover\n * @type {string}\n */\n rectHover: false,\n\n /**\n * Render the element progressively when the value >= 0,\n * usefull for large data.\n * @type {boolean}\n */\n progressive: false,\n\n /**\n * @type {boolean}\n */\n incremental: false,\n\n /**\n * Scale ratio for global scale.\n * @type {boolean}\n */\n globalScaleRatio: 1,\n beforeBrush: function (ctx) {},\n afterBrush: function (ctx) {},\n\n /**\n * Graphic drawing method.\n * @param {CanvasRenderingContext2D} ctx\n */\n // Interface\n brush: function (ctx, prevEl) {},\n\n /**\n * Get the minimum bounding box.\n * @return {module:zrender/core/BoundingRect}\n */\n // Interface\n getBoundingRect: function () {},\n\n /**\n * If displayable element contain coord x, y\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n contain: function (x, y) {\n return this.rectContain(x, y);\n },\n\n /**\n * @param {Function} cb\n * @param {} context\n */\n traverse: function (cb, context) {\n cb.call(context, this);\n },\n\n /**\n * If bounding rect of element contain coord x, y\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n rectContain: function (x, y) {\n var coord = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n return rect.contain(coord[0], coord[1]);\n },\n\n /**\n * Mark displayable element dirty and refresh next frame\n */\n dirty: function () {\n this.__dirty = this.__dirtyText = true;\n this._rect = null;\n this.__zr && this.__zr.refresh();\n },\n\n /**\n * If displayable object binded any event\n * @return {boolean}\n */\n // TODO, events bound by bind\n // isSilent: function () {\n // return !(\n // this.hoverable || this.draggable\n // || this.onmousemove || this.onmouseover || this.onmouseout\n // || this.onmousedown || this.onmouseup || this.onclick\n // || this.ondragenter || this.ondragover || this.ondragleave\n // || this.ondrop\n // );\n // },\n\n /**\n * Alias for animate('style')\n * @param {boolean} loop\n */\n animateStyle: function (loop) {\n return this.animate('style', loop);\n },\n attrKV: function (key, value) {\n if (key !== 'style') {\n Element.prototype.attrKV.call(this, key, value);\n } else {\n this.style.set(value);\n }\n },\n\n /**\n * @param {Object|string} key\n * @param {*} value\n */\n setStyle: function (key, value) {\n this.style.set(key, value);\n this.dirty(false);\n return this;\n },\n\n /**\n * Use given style object\n * @param {Object} obj\n */\n useStyle: function (obj) {\n this.style = new Style(obj, this);\n this.dirty(false);\n return this;\n },\n\n /**\n * The string value of `textPosition` needs to be calculated to a real postion.\n * For example, `'inside'` is calculated to `[rect.width/2, rect.height/2]`\n * by default. See `contain/text.js#calculateTextPosition` for more details.\n * But some coutom shapes like \"pin\", \"flag\" have center that is not exactly\n * `[width/2, height/2]`. So we provide this hook to customize the calculation\n * for those shapes. It will be called if the `style.textPosition` is a string.\n * @param {Obejct} [out] Prepared out object. If not provided, this method should\n * be responsible for creating one.\n * @param {module:zrender/graphic/Style} style\n * @param {Object} rect {x, y, width, height}\n * @return {Obejct} out The same as the input out.\n * {\n * x: number. mandatory.\n * y: number. mandatory.\n * textAlign: string. optional. use style.textAlign by default.\n * textVerticalAlign: string. optional. use style.textVerticalAlign by default.\n * }\n */\n calculateTextPosition: null\n};\nzrUtil.inherits(Displayable, Element);\nzrUtil.mixin(Displayable, RectText); // zrUtil.mixin(Displayable, Stateful);\n\nvar _default = Displayable;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar ChartView = require(\"../../view/Chart\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/model/Series} seriesModel\n * @param {boolean} hasAnimation\n * @inner\n */\nfunction updateDataSelected(uid, seriesModel, hasAnimation, api) {\n var data = seriesModel.getData();\n var dataIndex = this.dataIndex;\n var name = data.getName(dataIndex);\n var selectedOffset = seriesModel.get('selectedOffset');\n api.dispatchAction({\n type: 'pieToggleSelect',\n from: uid,\n name: name,\n seriesId: seriesModel.id\n });\n data.each(function (idx) {\n toggleItemSelected(data.getItemGraphicEl(idx), data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), selectedOffset, hasAnimation);\n });\n}\n/**\n * @param {module:zrender/graphic/Sector} el\n * @param {Object} layout\n * @param {boolean} isSelected\n * @param {number} selectedOffset\n * @param {boolean} hasAnimation\n * @inner\n */\n\n\nfunction toggleItemSelected(el, layout, isSelected, selectedOffset, hasAnimation) {\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var offset = isSelected ? selectedOffset : 0;\n var position = [dx * offset, dy * offset];\n hasAnimation // animateTo will stop revious animation like update transition\n ? el.animate().when(200, {\n position: position\n }).start('bounceOut') : el.attr('position', position);\n}\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction PiePiece(data, idx) {\n graphic.Group.call(this);\n var sector = new graphic.Sector({\n z2: 2\n });\n var polyline = new graphic.Polyline();\n var text = new graphic.Text();\n this.add(sector);\n this.add(polyline);\n this.add(text);\n this.updateData(data, idx, true);\n}\n\nvar piePieceProto = PiePiece.prototype;\n\npiePieceProto.updateData = function (data, idx, firstCreate) {\n var sector = this.childAt(0);\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n var animationTypeUpdate = seriesModel.getShallow('animationTypeUpdate');\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n\n if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n } // Expansion\n else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n } else {\n if (animationTypeUpdate === 'expansion') {\n // Sectors are set to be target shape and an overlaying clipPath is used for animation\n sector.setShape(sectorShape);\n } else {\n // Transition animation from the old shape\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n } // Update common style\n\n\n var visualColor = data.getItemVisual(idx, 'color');\n sector.useStyle(zrUtil.defaults({\n lineJoin: 'bevel',\n fill: visualColor\n }, itemModel.getModel('itemStyle').getItemStyle()));\n sector.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle); // Toggle selected\n\n toggleItemSelected(this, data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), seriesModel.get('selectedOffset'), seriesModel.get('animation')); // Label and text animation should be applied only for transition type animation when update\n\n var withAnimation = !firstCreate && animationTypeUpdate === 'transition';\n\n this._updateLabel(data, idx, withAnimation);\n\n this.highDownOnUpdate = !seriesModel.get('silent') ? function (fromState, toState) {\n var hasAnimation = seriesModel.isAnimationEnabled() && itemModel.get('hoverAnimation');\n\n if (toState === 'emphasis') {\n labelLine.ignore = labelLine.hoverIgnore;\n labelText.ignore = labelText.hoverIgnore; // Sector may has animation of updating data. Force to move to the last frame\n // Or it may stopped on the wrong shape\n\n if (hasAnimation) {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r + seriesModel.get('hoverOffset')\n }\n }, 300, 'elasticOut');\n }\n } else {\n labelLine.ignore = labelLine.normalIgnore;\n labelText.ignore = labelText.normalIgnore;\n\n if (hasAnimation) {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r\n }\n }, 300, 'elasticOut');\n }\n }\n } : null;\n graphic.setHoverStyle(this);\n};\n\npiePieceProto._updateLabel = function (data, idx, withAnimation) {\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var visualColor = data.getItemVisual(idx, 'color');\n\n if (!labelLayout || isNaN(labelLayout.x) || isNaN(labelLayout.y)) {\n labelText.ignore = labelText.normalIgnore = labelText.hoverIgnore = labelLine.ignore = labelLine.normalIgnore = labelLine.hoverIgnore = true;\n return;\n }\n\n var targetLineShape = {\n points: labelLayout.linePoints || [[labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y]]\n };\n var targetTextStyle = {\n x: labelLayout.x,\n y: labelLayout.y\n };\n\n if (withAnimation) {\n graphic.updateProps(labelLine, {\n shape: targetLineShape\n }, seriesModel, idx);\n graphic.updateProps(labelText, {\n style: targetTextStyle\n }, seriesModel, idx);\n } else {\n labelLine.attr({\n shape: targetLineShape\n });\n labelText.attr({\n style: targetTextStyle\n });\n }\n\n labelText.attr({\n rotation: labelLayout.rotation,\n origin: [labelLayout.x, labelLayout.y],\n z2: 10\n });\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultText: labelLayout.text,\n autoColor: visualColor,\n useInsideStyle: !!labelLayout.inside\n }, {\n textAlign: labelLayout.textAlign,\n textVerticalAlign: labelLayout.verticalAlign,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n labelText.hoverIgnore = !labelHoverModel.get('show');\n labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n labelLine.setStyle({\n stroke: visualColor,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n var smooth = labelLineModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.4;\n }\n\n labelLine.setShape({\n smooth: smooth\n });\n};\n\nzrUtil.inherits(PiePiece, graphic.Group); // Pie view\n\nvar PieView = ChartView.extend({\n type: 'pie',\n init: function () {\n var sectorGroup = new graphic.Group();\n this._sectorGroup = sectorGroup;\n },\n render: function (seriesModel, ecModel, api, payload) {\n if (payload && payload.from === this.uid) {\n return;\n }\n\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var hasAnimation = ecModel.get('animation');\n var isFirstRender = !oldData;\n var animationType = seriesModel.get('animationType');\n var animationTypeUpdate = seriesModel.get('animationTypeUpdate');\n var onSectorClick = zrUtil.curry(updateDataSelected, this.uid, seriesModel, hasAnimation, api);\n var selectedMode = seriesModel.get('selectedMode');\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx); // Default expansion animation\n\n if (isFirstRender && animationType !== 'scale') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n selectedMode && piePiece.on('click', onSectorClick);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n\n if (!isFirstRender && animationTypeUpdate !== 'transition') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n piePiece.updateData(data, newIdx);\n piePiece.off('click');\n selectedMode && piePiece.on('click', onSectorClick);\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n group.remove(piePiece);\n }).execute();\n\n if (hasAnimation && data.count() > 0 && (isFirstRender ? animationType !== 'scale' : animationTypeUpdate !== 'transition')) {\n var shape = data.getItemLayout(0);\n\n for (var s = 1; isNaN(shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n\n var r = Math.max(api.getWidth(), api.getHeight()) / 2;\n var removeClipPath = zrUtil.bind(group.removeClipPath, group);\n group.setClipPath(this._createClipPath(shape.cx, shape.cy, r, shape.startAngle, shape.clockwise, removeClipPath, seriesModel, isFirstRender));\n } else {\n // clipPath is used in first-time animation, so remove it when otherwise. See: #8994\n group.removeClipPath();\n }\n\n this._data = data;\n },\n dispose: function () {},\n _createClipPath: function (cx, cy, r, startAngle, clockwise, cb, seriesModel, isFirstRender) {\n var clipPath = new graphic.Sector({\n shape: {\n cx: cx,\n cy: cy,\n r0: 0,\n r: r,\n startAngle: startAngle,\n endAngle: startAngle,\n clockwise: clockwise\n }\n });\n var initOrUpdate = isFirstRender ? graphic.initProps : graphic.updateProps;\n initOrUpdate(clipPath, {\n shape: {\n endAngle: startAngle + (clockwise ? 1 : -1) * Math.PI * 2\n }\n }, seriesModel, cb);\n return clipPath;\n },\n\n /**\n * @implement\n */\n containPoint: function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n }\n});\nvar _default = PieView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction simpleLayout(seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var graph = seriesModel.getGraph();\n graph.eachNode(function (node) {\n var model = node.getModel();\n node.setLayout([+model.get('x'), +model.get('y')]);\n });\n simpleLayoutEdge(graph);\n}\n\nfunction simpleLayoutEdge(graph) {\n graph.eachEdge(function (edge) {\n var curveness = edge.getModel().get('lineStyle.curveness') || 0;\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var points = [p1, p2];\n\n if (+curveness) {\n points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n }\n\n edge.setLayout(points);\n });\n}\n\nexports.simpleLayout = simpleLayout;\nexports.simpleLayoutEdge = simpleLayoutEdge;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Polar = require(\"./Polar\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _axisHelper = require(\"../../coord/axisHelper\");\n\nvar createScaleByModel = _axisHelper.createScaleByModel;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nrequire(\"./PolarModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Axis scale\n\n/**\n * Resize method bound to the polar\n * @param {module:echarts/coord/polar/PolarModel} polarModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction resizePolar(polar, polarModel, api) {\n var center = polarModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n polar.cx = parsePercent(center[0], width);\n polar.cy = parsePercent(center[1], height);\n var radiusAxis = polar.getRadiusAxis();\n var size = Math.min(width, height) / 2;\n var radius = polarModel.get('radius');\n\n if (radius == null) {\n radius = [0, '100%'];\n } else if (!zrUtil.isArray(radius)) {\n // r0 = 0\n radius = [0, radius];\n }\n\n radius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n radiusAxis.inverse ? radiusAxis.setExtent(radius[1], radius[0]) : radiusAxis.setExtent(radius[0], radius[1]);\n}\n/**\n * Update polar\n */\n\n\nfunction updatePolarScale(ecModel, api) {\n var polar = this;\n var angleAxis = polar.getAngleAxis();\n var radiusAxis = polar.getRadiusAxis(); // Reset scale\n\n angleAxis.scale.setExtent(Infinity, -Infinity);\n radiusAxis.scale.setExtent(Infinity, -Infinity);\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === polar) {\n var data = seriesModel.getData();\n zrUtil.each(data.mapDimension('radius', true), function (dim) {\n radiusAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n });\n zrUtil.each(data.mapDimension('angle', true), function (dim) {\n angleAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n });\n }\n });\n niceScaleExtent(angleAxis.scale, angleAxis.model);\n niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis\n\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\n var extent = angleAxis.getExtent();\n var diff = 360 / angleAxis.scale.count();\n angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n angleAxis.setExtent(extent[0], extent[1]);\n }\n}\n/**\n * Set common axis properties\n * @param {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n * @param {module:echarts/coord/polar/AxisModel}\n * @inner\n */\n\n\nfunction setAxis(axis, axisModel) {\n axis.type = axisModel.get('type');\n axis.scale = createScaleByModel(axisModel);\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n axis.inverse = axisModel.get('inverse');\n\n if (axisModel.mainType === 'angleAxis') {\n axis.inverse ^= axisModel.get('clockwise');\n var startAngle = axisModel.get('startAngle');\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n } // Inject axis instance\n\n\n axisModel.axis = axis;\n axis.model = axisModel;\n}\n\nvar polarCreator = {\n dimensions: Polar.prototype.dimensions,\n create: function (ecModel, api) {\n var polarList = [];\n ecModel.eachComponent('polar', function (polarModel, idx) {\n var polar = new Polar(idx); // Inject resize and update method\n\n polar.update = updatePolarScale;\n var radiusAxis = polar.getRadiusAxis();\n var angleAxis = polar.getAngleAxis();\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n setAxis(radiusAxis, radiusAxisModel);\n setAxis(angleAxis, angleAxisModel);\n resizePolar(polar, polarModel, api);\n polarList.push(polar);\n polarModel.coordinateSystem = polar;\n polar.model = polarModel;\n }); // Inject coordinateSystem to series\n\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'polar') {\n var polarModel = ecModel.queryComponents({\n mainType: 'polar',\n index: seriesModel.get('polarIndex'),\n id: seriesModel.get('polarId')\n })[0];\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\n }\n });\n return polarList;\n }\n};\nCoordinateSystem.register('polar', polarCreator);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n return axis.dim + polar.model.componentIndex;\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n var lastStackCoords = {};\n var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n }));\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for polar only\n if (seriesModel.coordinateSystem.type !== 'polar') {\n return;\n }\n\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = polar.getOtherAxis(baseAxis);\n var cx = seriesModel.coordinateSystem.cx;\n var cy = seriesModel.coordinateSystem.cy;\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim\n /*, baseDim*/\n );\n var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n var valueAxisStart = valueAxis.getExtent()[0];\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n // Only ordinal axis can be stacked.\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n // Positive stack\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0;\n var r;\n var startAngle;\n var endAngle; // radial sector\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart;\n var angle = baseAxis.dataToAngle(baseValue);\n\n if (Math.abs(radiusSpan) < barMinHeight) {\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n }\n\n r0 = baseCoord;\n r = baseCoord + radiusSpan;\n startAngle = angle - columnOffset;\n endAngle = startAngle - columnWidth;\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n } // tangential sector\n else {\n var angleSpan = valueAxis.dataToAngle(value, clampLayout) - valueAxisStart;\n var radius = baseAxis.dataToRadius(baseValue);\n\n if (Math.abs(angleSpan) < barMinAngle) {\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n }\n\n r0 = radius + columnOffset;\n r = r0 + columnWidth;\n startAngle = baseCoord;\n endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n // add a round to differentiate it from origin\n // var extent = angleAxis.getExtent();\n // var stackCoord = angle;\n // if (stackCoord === extent[0] && value > 0) {\n // stackCoord = extent[1];\n // }\n // else if (stackCoord === extent[1] && value < 0) {\n // stackCoord = extent[0];\n // }\n\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n }\n\n data.setItemLayout(idx, {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n // Consider that positive angle is anti-clockwise,\n // while positive radian of sector is clockwise\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180\n });\n }\n }, this);\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries, api) {\n // Columns info on each category axis. Key is polar name\n var columnsMap = {};\n zrUtil.each(barSeries, function (seriesModel, idx) {\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var axisExtent = baseAxis.getExtent();\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = getSeriesStackId(seriesModel);\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n\n if (barWidth && !stacks[stackId].width) {\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n stacks[stackId].width = barWidth;\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n barGap != null && (columnsOnAxis.gap = barGap);\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n zrUtil.each(stacks, function (column, stack) {\n var maxWidth = column.maxWidth;\n\n if (maxWidth && maxWidth < autoWidth) {\n maxWidth = Math.min(maxWidth, remainedWidth);\n\n if (column.width) {\n maxWidth = Math.min(maxWidth, column.width);\n }\n\n remainedWidth -= maxWidth;\n column.width = maxWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nvar _default = barLayoutPolar;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Path.extend({\n type: 'echartsGaugePointer',\n shape: {\n angle: 0,\n width: 10,\n r: 10,\n x: 0,\n y: 0\n },\n buildPath: function (ctx, shape) {\n var mathCos = Math.cos;\n var mathSin = Math.sin;\n var r = shape.r;\n var width = shape.width;\n var angle = shape.angle;\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n angle = shape.angle - Math.PI / 2;\n ctx.moveTo(x, y);\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n ctx.lineTo(x, y);\n return;\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar Model = require(\"../../model/Model\");\n\nvar selectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar geoCreator = require(\"./geoCreator\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GeoModel = ComponentModel.extend({\n type: 'geo',\n\n /**\n * @type {module:echarts/coord/geo/Geo}\n */\n coordinateSystem: null,\n layoutMode: 'box',\n init: function (option) {\n ComponentModel.prototype.init.apply(this, arguments); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n },\n optionUpdated: function () {\n var option = this.option;\n var self = this;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n if (regionOpt.name) {\n optionModelMap.set(regionOpt.name, new Model(regionOpt, self));\n }\n\n return optionModelMap;\n }, zrUtil.createHashMap());\n this.updateSelectedMap(option.regions);\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n // width:,\n // height:,\n // right\n // bottom\n // Aspect is width / height. Inited to be geoJson bbox aspect\n // This parameter is used for scale this aspect\n // If svg used, aspectScale is 1 by default.\n // aspectScale: 0.75,\n aspectScale: null,\n ///// Layout with center and size\n // If you wan't to put map in a fixed size box with right aspect ratio\n // This two properties may more conveninet\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n silent: false,\n // Map type\n map: '',\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ]\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n // selectedMode: false\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n // color: 各异,\n borderWidth: 0.5,\n borderColor: '#444',\n color: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n regions: []\n },\n\n /**\n * Get model of region\n * @param {string} name\n * @return {module:echarts/model/Model}\n */\n getRegionModel: function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n },\n\n /**\n * Format label\n * @param {string} name Region name\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @return {string}\n */\n getFormattedLabel: function (name, status) {\n var regionModel = this.getRegionModel(name);\n var formatter = regionModel.get('label' + (status === 'normal' ? '.' : status + '.') + 'formatter');\n var params = {\n name: name\n };\n\n if (typeof formatter === 'function') {\n params.status = status;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n return formatter.replace('{a}', name != null ? name : '');\n }\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n }\n});\nzrUtil.mixin(GeoModel, selectableMixin);\nvar _default = GeoModel;\nmodule.exports = _default;","/**\n * Event Mixin\n * @module zrender/mixin/Eventful\n * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)\n * pissang (https://www.github.com/pissang)\n */\nvar arrySlice = Array.prototype.slice;\n/**\n * Event dispatcher.\n *\n * @alias module:zrender/mixin/Eventful\n * @constructor\n * @param {Object} [eventProcessor] The object eventProcessor is the scope when\n * `eventProcessor.xxx` called.\n * @param {Function} [eventProcessor.normalizeQuery]\n * param: {string|Object} Raw query.\n * return: {string|Object} Normalized query.\n * @param {Function} [eventProcessor.filter] Event will be dispatched only\n * if it returns `true`.\n * param: {string} eventType\n * param: {string|Object} query\n * return: {boolean}\n * @param {Function} [eventProcessor.afterTrigger] Called after all handlers called.\n * param: {string} eventType\n */\n\nvar Eventful = function (eventProcessor) {\n this._$handlers = {};\n this._$eventProcessor = eventProcessor;\n};\n\nEventful.prototype = {\n constructor: Eventful,\n\n /**\n * The handler can only be triggered once, then removed.\n *\n * @param {string} event The event name.\n * @param {string|Object} [query] Condition used on event filter.\n * @param {Function} handler The event handler.\n * @param {Object} context\n */\n one: function (event, query, handler, context) {\n return on(this, event, query, handler, context, true);\n },\n\n /**\n * Bind a handler.\n *\n * @param {string} event The event name.\n * @param {string|Object} [query] Condition used on event filter.\n * @param {Function} handler The event handler.\n * @param {Object} [context]\n */\n on: function (event, query, handler, context) {\n return on(this, event, query, handler, context, false);\n },\n\n /**\n * Whether any handler has bound.\n *\n * @param {string} event\n * @return {boolean}\n */\n isSilent: function (event) {\n var _h = this._$handlers;\n return !_h[event] || !_h[event].length;\n },\n\n /**\n * Unbind a event.\n *\n * @param {string} [event] The event name.\n * If no `event` input, \"off\" all listeners.\n * @param {Function} [handler] The event handler.\n * If no `handler` input, \"off\" all listeners of the `event`.\n */\n off: function (event, handler) {\n var _h = this._$handlers;\n\n if (!event) {\n this._$handlers = {};\n return this;\n }\n\n if (handler) {\n if (_h[event]) {\n var newList = [];\n\n for (var i = 0, l = _h[event].length; i < l; i++) {\n if (_h[event][i].h !== handler) {\n newList.push(_h[event][i]);\n }\n }\n\n _h[event] = newList;\n }\n\n if (_h[event] && _h[event].length === 0) {\n delete _h[event];\n }\n } else {\n delete _h[event];\n }\n\n return this;\n },\n\n /**\n * Dispatch a event.\n *\n * @param {string} type The event name.\n */\n trigger: function (type) {\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n\n if (argLen > 3) {\n args = arrySlice.call(args, 1);\n }\n\n var len = _h.length;\n\n for (var i = 0; i < len;) {\n var hItem = _h[i];\n\n if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {\n i++;\n continue;\n } // Optimize advise from backbone\n\n\n switch (argLen) {\n case 1:\n hItem.h.call(hItem.ctx);\n break;\n\n case 2:\n hItem.h.call(hItem.ctx, args[1]);\n break;\n\n case 3:\n hItem.h.call(hItem.ctx, args[1], args[2]);\n break;\n\n default:\n // have more than 2 given arguments\n hItem.h.apply(hItem.ctx, args);\n break;\n }\n\n if (hItem.one) {\n _h.splice(i, 1);\n\n len--;\n } else {\n i++;\n }\n }\n }\n\n eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);\n return this;\n },\n\n /**\n * Dispatch a event with context, which is specified at the last parameter.\n *\n * @param {string} type The event name.\n */\n triggerWithContext: function (type) {\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n\n if (argLen > 4) {\n args = arrySlice.call(args, 1, args.length - 1);\n }\n\n var ctx = args[args.length - 1];\n var len = _h.length;\n\n for (var i = 0; i < len;) {\n var hItem = _h[i];\n\n if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {\n i++;\n continue;\n } // Optimize advise from backbone\n\n\n switch (argLen) {\n case 1:\n hItem.h.call(ctx);\n break;\n\n case 2:\n hItem.h.call(ctx, args[1]);\n break;\n\n case 3:\n hItem.h.call(ctx, args[1], args[2]);\n break;\n\n default:\n // have more than 2 given arguments\n hItem.h.apply(ctx, args);\n break;\n }\n\n if (hItem.one) {\n _h.splice(i, 1);\n\n len--;\n } else {\n i++;\n }\n }\n }\n\n eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);\n return this;\n }\n};\n\nfunction normalizeQuery(host, query) {\n var eventProcessor = host._$eventProcessor;\n\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n query = eventProcessor.normalizeQuery(query);\n }\n\n return query;\n}\n\nfunction on(eventful, event, query, handler, context, isOnce) {\n var _h = eventful._$handlers;\n\n if (typeof query === 'function') {\n context = handler;\n handler = query;\n query = null;\n }\n\n if (!handler || !event) {\n return eventful;\n }\n\n query = normalizeQuery(eventful, query);\n\n if (!_h[event]) {\n _h[event] = [];\n }\n\n for (var i = 0; i < _h[event].length; i++) {\n if (_h[event][i].h === handler) {\n return eventful;\n }\n }\n\n var wrap = {\n h: handler,\n one: isOnce,\n query: query,\n ctx: context || eventful,\n // FIXME\n // Do not publish this feature util it is proved that it makes sense.\n callAtLast: handler.zrEventfulCallAtLast\n };\n var lastIndex = _h[event].length - 1;\n var lastWrap = _h[event][lastIndex];\n lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap);\n return eventful;\n} // ----------------------\n// The events in zrender\n// ----------------------\n\n/**\n * @event module:zrender/mixin/Eventful#onclick\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseout\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousemove\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousewheel\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousedown\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseup\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrag\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragstart\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragend\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragenter\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragleave\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrop\n * @type {Function}\n * @default null\n */\n\n\nvar _default = Eventful;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import * as axisHelper from './axisHelper';\nvar _default = {\n /**\n * @param {boolean} origin\n * @return {number|string} min value or 'dataMin' or null/undefined (means auto) or NaN\n */\n getMin: function (origin) {\n var option = this.option;\n var min = !origin && option.rangeStart != null ? option.rangeStart : option.min;\n\n if (this.axis && min != null && min !== 'dataMin' && typeof min !== 'function' && !zrUtil.eqNaN(min)) {\n min = this.axis.scale.parse(min);\n }\n\n return min;\n },\n\n /**\n * @param {boolean} origin\n * @return {number|string} max value or 'dataMax' or null/undefined (means auto) or NaN\n */\n getMax: function (origin) {\n var option = this.option;\n var max = !origin && option.rangeEnd != null ? option.rangeEnd : option.max;\n\n if (this.axis && max != null && max !== 'dataMax' && typeof max !== 'function' && !zrUtil.eqNaN(max)) {\n max = this.axis.scale.parse(max);\n }\n\n return max;\n },\n\n /**\n * @return {boolean}\n */\n getNeedCrossZero: function () {\n var option = this.option;\n return option.rangeStart != null || option.rangeEnd != null ? false : !option.scale;\n },\n\n /**\n * Should be implemented by each axis model if necessary.\n * @return {module:echarts/model/Component} coordinate system model\n */\n getCoordSysModel: zrUtil.noop,\n\n /**\n * @param {number} rangeStart Can only be finite number or null/undefined or NaN.\n * @param {number} rangeEnd Can only be finite number or null/undefined or NaN.\n */\n setRange: function (rangeStart, rangeEnd) {\n this.option.rangeStart = rangeStart;\n this.option.rangeEnd = rangeEnd;\n },\n\n /**\n * Reset range\n */\n resetRange: function () {\n // rangeStart and rangeEnd is readonly.\n this.option.rangeStart = this.option.rangeEnd = null;\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordinateSystemCreators = {};\n\nfunction CoordinateSystemManager() {\n this._coordinateSystems = [];\n}\n\nCoordinateSystemManager.prototype = {\n constructor: CoordinateSystemManager,\n create: function (ecModel, api) {\n var coordinateSystems = [];\n zrUtil.each(coordinateSystemCreators, function (creater, type) {\n var list = creater.create(ecModel, api);\n coordinateSystems = coordinateSystems.concat(list || []);\n });\n this._coordinateSystems = coordinateSystems;\n },\n update: function (ecModel, api) {\n zrUtil.each(this._coordinateSystems, function (coordSys) {\n coordSys.update && coordSys.update(ecModel, api);\n });\n },\n getCoordinateSystems: function () {\n return this._coordinateSystems.slice();\n }\n};\n\nCoordinateSystemManager.register = function (type, coordinateSystemCreator) {\n coordinateSystemCreators[type] = coordinateSystemCreator;\n};\n\nCoordinateSystemManager.get = function (type) {\n return coordinateSystemCreators[type];\n};\n\nvar _default = CoordinateSystemManager;\nmodule.exports = _default;","var curve = require(\"./curve\");\n\nvar vec2 = require(\"./vector\");\n\nvar bbox = require(\"./bbox\");\n\nvar BoundingRect = require(\"./BoundingRect\");\n\nvar _config = require(\"../config\");\n\nvar dpr = _config.devicePixelRatio;\n\n/**\n * Path 代理,可以在`buildPath`中用于替代`ctx`, 会保存每个path操作的命令到pathCommands属性中\n * 可以用于 isInsidePath 判断以及获取boundingRect\n *\n * @module zrender/core/PathProxy\n * @author Yi Shen (http://www.github.com/pissang)\n */\n// TODO getTotalLength, getPointAtLength\n\n/* global Float32Array */\nvar CMD = {\n M: 1,\n L: 2,\n C: 3,\n Q: 4,\n A: 5,\n Z: 6,\n // Rect\n R: 7\n}; // var CMD_MEM_SIZE = {\n// M: 3,\n// L: 3,\n// C: 7,\n// Q: 5,\n// A: 9,\n// R: 5,\n// Z: 1\n// };\n\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\n/**\n * @alias module:zrender/core/PathProxy\n * @constructor\n */\n\nvar PathProxy = function (notSaveData) {\n this._saveData = !(notSaveData || false);\n\n if (this._saveData) {\n /**\n * Path data. Stored as flat array\n * @type {Array.}\n */\n this.data = [];\n }\n\n this._ctx = null;\n};\n/**\n * 快速计算Path包围盒(并不是最小包围盒)\n * @return {Object}\n */\n\n\nPathProxy.prototype = {\n constructor: PathProxy,\n _xi: 0,\n _yi: 0,\n _x0: 0,\n _y0: 0,\n // Unit x, Unit y. Provide for avoiding drawing that too short line segment\n _ux: 0,\n _uy: 0,\n _len: 0,\n _lineDash: null,\n _dashOffset: 0,\n _dashIdx: 0,\n _dashSum: 0,\n\n /**\n * @readOnly\n */\n setScale: function (sx, sy, segmentIgnoreThreshold) {\n // Compat. Previously there is no segmentIgnoreThreshold.\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n },\n getContext: function () {\n return this._ctx;\n },\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n beginPath: function (ctx) {\n this._ctx = ctx;\n ctx && ctx.beginPath();\n ctx && (this.dpr = ctx.dpr); // Reset\n\n if (this._saveData) {\n this._len = 0;\n }\n\n if (this._lineDash) {\n this._lineDash = null;\n this._dashOffset = 0;\n }\n\n return this;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @return {module:zrender/core/PathProxy}\n */\n moveTo: function (x, y) {\n this.addData(CMD.M, x, y);\n this._ctx && this._ctx.moveTo(x, y); // x0, y0, xi, yi 是记录在 _dashedXXXXTo 方法中使用\n // xi, yi 记录当前点, x0, y0 在 closePath 的时候回到起始点。\n // 有可能在 beginPath 之后直接调用 lineTo,这时候 x0, y0 需要\n // 在 lineTo 方法中记录,这里先不考虑这种情况,dashed line 也只在 IE10- 中不支持\n\n this._x0 = x;\n this._y0 = y;\n this._xi = x;\n this._yi = y;\n return this;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @return {module:zrender/core/PathProxy}\n */\n lineTo: function (x, y) {\n var exceedUnit = mathAbs(x - this._xi) > this._ux || mathAbs(y - this._yi) > this._uy // Force draw the first segment\n || this._len < 5;\n this.addData(CMD.L, x, y);\n\n if (this._ctx && exceedUnit) {\n this._needsDash() ? this._dashedLineTo(x, y) : this._ctx.lineTo(x, y);\n }\n\n if (exceedUnit) {\n this._xi = x;\n this._yi = y;\n }\n\n return this;\n },\n\n /**\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {number} x3\n * @param {number} y3\n * @return {module:zrender/core/PathProxy}\n */\n bezierCurveTo: function (x1, y1, x2, y2, x3, y3) {\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n\n if (this._ctx) {\n this._needsDash() ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3) : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n\n this._xi = x3;\n this._yi = y3;\n return this;\n },\n\n /**\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @return {module:zrender/core/PathProxy}\n */\n quadraticCurveTo: function (x1, y1, x2, y2) {\n this.addData(CMD.Q, x1, y1, x2, y2);\n\n if (this._ctx) {\n this._needsDash() ? this._dashedQuadraticTo(x1, y1, x2, y2) : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n }\n\n this._xi = x2;\n this._yi = y2;\n return this;\n },\n\n /**\n * @param {number} cx\n * @param {number} cy\n * @param {number} r\n * @param {number} startAngle\n * @param {number} endAngle\n * @param {boolean} anticlockwise\n * @return {module:zrender/core/PathProxy}\n */\n arc: function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n this.addData(CMD.A, cx, cy, r, r, startAngle, endAngle - startAngle, 0, anticlockwise ? 0 : 1);\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n this._xi = mathCos(endAngle) * r + cx;\n this._yi = mathSin(endAngle) * r + cy;\n return this;\n },\n // TODO\n arcTo: function (x1, y1, x2, y2, radius) {\n if (this._ctx) {\n this._ctx.arcTo(x1, y1, x2, y2, radius);\n }\n\n return this;\n },\n // TODO\n rect: function (x, y, w, h) {\n this._ctx && this._ctx.rect(x, y, w, h);\n this.addData(CMD.R, x, y, w, h);\n return this;\n },\n\n /**\n * @return {module:zrender/core/PathProxy}\n */\n closePath: function () {\n this.addData(CMD.Z);\n var ctx = this._ctx;\n var x0 = this._x0;\n var y0 = this._y0;\n\n if (ctx) {\n this._needsDash() && this._dashedLineTo(x0, y0);\n ctx.closePath();\n }\n\n this._xi = x0;\n this._yi = y0;\n return this;\n },\n\n /**\n * Context 从外部传入,因为有可能是 rebuildPath 完之后再 fill。\n * stroke 同样\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n fill: function (ctx) {\n ctx && ctx.fill();\n this.toStatic();\n },\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n stroke: function (ctx) {\n ctx && ctx.stroke();\n this.toStatic();\n },\n\n /**\n * 必须在其它绘制命令前调用\n * Must be invoked before all other path drawing methods\n * @return {module:zrender/core/PathProxy}\n */\n setLineDash: function (lineDash) {\n if (lineDash instanceof Array) {\n this._lineDash = lineDash;\n this._dashIdx = 0;\n var lineDashSum = 0;\n\n for (var i = 0; i < lineDash.length; i++) {\n lineDashSum += lineDash[i];\n }\n\n this._dashSum = lineDashSum;\n }\n\n return this;\n },\n\n /**\n * 必须在其它绘制命令前调用\n * Must be invoked before all other path drawing methods\n * @return {module:zrender/core/PathProxy}\n */\n setLineDashOffset: function (offset) {\n this._dashOffset = offset;\n return this;\n },\n\n /**\n *\n * @return {boolean}\n */\n len: function () {\n return this._len;\n },\n\n /**\n * 直接设置 Path 数据\n */\n setData: function (data) {\n var len = data.length;\n\n if (!(this.data && this.data.length === len) && hasTypedArray) {\n this.data = new Float32Array(len);\n }\n\n for (var i = 0; i < len; i++) {\n this.data[i] = data[i];\n }\n\n this._len = len;\n },\n\n /**\n * 添加子路径\n * @param {module:zrender/core/PathProxy|Array.} path\n */\n appendPath: function (path) {\n if (!(path instanceof Array)) {\n path = [path];\n }\n\n var len = path.length;\n var appendSize = 0;\n var offset = this._len;\n\n for (var i = 0; i < len; i++) {\n appendSize += path[i].len();\n }\n\n if (hasTypedArray && this.data instanceof Float32Array) {\n this.data = new Float32Array(offset + appendSize);\n }\n\n for (var i = 0; i < len; i++) {\n var appendPathData = path[i].data;\n\n for (var k = 0; k < appendPathData.length; k++) {\n this.data[offset++] = appendPathData[k];\n }\n }\n\n this._len = offset;\n },\n\n /**\n * 填充 Path 数据。\n * 尽量复用而不申明新的数组。大部分图形重绘的指令数据长度都是不变的。\n */\n addData: function (cmd) {\n if (!this._saveData) {\n return;\n }\n\n var data = this.data;\n\n if (this._len + arguments.length > data.length) {\n // 因为之前的数组已经转换成静态的 Float32Array\n // 所以不够用时需要扩展一个新的动态数组\n this._expandData();\n\n data = this.data;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n data[this._len++] = arguments[i];\n }\n\n this._prevCmd = cmd;\n },\n _expandData: function () {\n // Only if data is Float32Array\n if (!(this.data instanceof Array)) {\n var newData = [];\n\n for (var i = 0; i < this._len; i++) {\n newData[i] = this.data[i];\n }\n\n this.data = newData;\n }\n },\n\n /**\n * If needs js implemented dashed line\n * @return {boolean}\n * @private\n */\n _needsDash: function () {\n return this._lineDash;\n },\n _dashedLineTo: function (x1, y1) {\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var x0 = this._xi;\n var y0 = this._yi;\n var dx = x1 - x0;\n var dy = y1 - y0;\n var dist = mathSqrt(dx * dx + dy * dy);\n var x = x0;\n var y = y0;\n var dash;\n var nDash = lineDash.length;\n var idx;\n dx /= dist;\n dy /= dist;\n\n if (offset < 0) {\n // Convert to positive offset\n offset = dashSum + offset;\n }\n\n offset %= dashSum;\n x -= offset * dx;\n y -= offset * dy;\n\n while (dx > 0 && x <= x1 || dx < 0 && x >= x1 || dx === 0 && (dy > 0 && y <= y1 || dy < 0 && y >= y1)) {\n idx = this._dashIdx;\n dash = lineDash[idx];\n x += dx * dash;\n y += dy * dash;\n this._dashIdx = (idx + 1) % nDash; // Skip positive offset\n\n if (dx > 0 && x < x0 || dx < 0 && x > x0 || dy > 0 && y < y0 || dy < 0 && y > y0) {\n continue;\n }\n\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n } // Offset for next lineTo\n\n\n dx = x - x1;\n dy = y - y1;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n },\n // Not accurate dashed line to\n _dashedBezierTo: function (x1, y1, x2, y2, x3, y3) {\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var x0 = this._xi;\n var y0 = this._yi;\n var t;\n var dx;\n var dy;\n var cubicAt = curve.cubicAt;\n var bezierLen = 0;\n var idx = this._dashIdx;\n var nDash = lineDash.length;\n var x;\n var y;\n var tmpLen = 0;\n\n if (offset < 0) {\n // Convert to positive offset\n offset = dashSum + offset;\n }\n\n offset %= dashSum; // Bezier approx length\n\n for (t = 0; t < 1; t += 0.1) {\n dx = cubicAt(x0, x1, x2, x3, t + 0.1) - cubicAt(x0, x1, x2, x3, t);\n dy = cubicAt(y0, y1, y2, y3, t + 0.1) - cubicAt(y0, y1, y2, y3, t);\n bezierLen += mathSqrt(dx * dx + dy * dy);\n } // Find idx after add offset\n\n\n for (; idx < nDash; idx++) {\n tmpLen += lineDash[idx];\n\n if (tmpLen > offset) {\n break;\n }\n }\n\n t = (tmpLen - offset) / bezierLen;\n\n while (t <= 1) {\n x = cubicAt(x0, x1, x2, x3, t);\n y = cubicAt(y0, y1, y2, y3, t); // Use line to approximate dashed bezier\n // Bad result if dash is long\n\n idx % 2 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);\n t += lineDash[idx] / bezierLen;\n idx = (idx + 1) % nDash;\n } // Finish the last segment and calculate the new offset\n\n\n idx % 2 !== 0 && ctx.lineTo(x3, y3);\n dx = x3 - x;\n dy = y3 - y;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n },\n _dashedQuadraticTo: function (x1, y1, x2, y2) {\n // Convert quadratic to cubic using degree elevation\n var x3 = x2;\n var y3 = y2;\n x2 = (x2 + 2 * x1) / 3;\n y2 = (y2 + 2 * y1) / 3;\n x1 = (this._xi + 2 * x1) / 3;\n y1 = (this._yi + 2 * y1) / 3;\n\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n },\n\n /**\n * 转成静态的 Float32Array 减少堆内存占用\n * Convert dynamic array to static Float32Array\n */\n toStatic: function () {\n var data = this.data;\n\n if (data instanceof Array) {\n data.length = this._len;\n\n if (hasTypedArray) {\n this.data = new Float32Array(data);\n }\n }\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n getBoundingRect: function () {\n min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n var data = this.data;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n\n if (i === 1) {\n // 如果第一个命令是 L, C, Q\n // 则 previous point 同绘制命令的第一个 point\n //\n // 第一个命令为 Arc 的情况下会在后面特殊处理\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n switch (cmd) {\n case CMD.M:\n // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点\n // 在 closePath 的时候使用\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n min2[0] = x0;\n min2[1] = y0;\n max2[0] = x0;\n max2[1] = y0;\n break;\n\n case CMD.L:\n bbox.fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n bbox.fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.Q:\n bbox.fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.A:\n // TODO Arc 判断的开销比较大\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle; // TODO Arc 旋转\n\n i += 1;\n var anticlockwise = 1 - data[i++];\n\n if (i === 1) {\n // 直接使用 arc 命令\n // 第一个命令起点还未定义\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n\n bbox.fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++]; // Use fromLine\n\n bbox.fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n break;\n\n case CMD.Z:\n xi = x0;\n yi = y0;\n break;\n } // Union\n\n\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n } // No data\n\n\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n\n return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n },\n\n /**\n * Rebuild path from current data\n * Rebuild path will not consider javascript implemented line dash.\n * @param {CanvasRenderingContext2D} ctx\n */\n rebuildPath: function (ctx) {\n var d = this.data;\n var x0;\n var y0;\n var xi;\n var yi;\n var x;\n var y;\n var ux = this._ux;\n var uy = this._uy;\n var len = this._len;\n\n for (var i = 0; i < len;) {\n var cmd = d[i++];\n\n if (i === 1) {\n // 如果第一个命令是 L, C, Q\n // 则 previous point 同绘制命令的第一个 point\n //\n // 第一个命令为 Arc 的情况下会在后面特殊处理\n xi = d[i];\n yi = d[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n switch (cmd) {\n case CMD.M:\n x0 = xi = d[i++];\n y0 = yi = d[i++];\n ctx.moveTo(xi, yi);\n break;\n\n case CMD.L:\n x = d[i++];\n y = d[i++]; // Not draw too small seg between\n\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n ctx.lineTo(x, y);\n xi = x;\n yi = y;\n }\n\n break;\n\n case CMD.C:\n ctx.bezierCurveTo(d[i++], d[i++], d[i++], d[i++], d[i++], d[i++]);\n xi = d[i - 2];\n yi = d[i - 1];\n break;\n\n case CMD.Q:\n ctx.quadraticCurveTo(d[i++], d[i++], d[i++], d[i++]);\n xi = d[i - 2];\n yi = d[i - 1];\n break;\n\n case CMD.A:\n var cx = d[i++];\n var cy = d[i++];\n var rx = d[i++];\n var ry = d[i++];\n var theta = d[i++];\n var dTheta = d[i++];\n var psi = d[i++];\n var fs = d[i++];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n var isEllipse = Math.abs(rx - ry) > 1e-3;\n var endAngle = theta + dTheta;\n\n if (isEllipse) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, endAngle, 1 - fs);\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n } else {\n ctx.arc(cx, cy, r, theta, endAngle, 1 - fs);\n }\n\n if (i === 1) {\n // 直接使用 arc 命令\n // 第一个命令起点还未定义\n x0 = mathCos(theta) * rx + cx;\n y0 = mathSin(theta) * ry + cy;\n }\n\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = d[i];\n y0 = yi = d[i + 1];\n ctx.rect(d[i++], d[i++], d[i++], d[i++]);\n break;\n\n case CMD.Z:\n ctx.closePath();\n xi = x0;\n yi = y0;\n }\n }\n }\n};\nPathProxy.CMD = CMD;\nvar _default = PathProxy;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar features = {};\n\nfunction register(name, ctor) {\n features[name] = ctor;\n}\n\nfunction get(name) {\n return features[name];\n}\n\nexports.register = register;\nexports.get = get;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar Tree = require(\"../../data/Tree\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar Model = require(\"../../model/Model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.tree',\n layoutInfo: null,\n // can support the position parameters 'left', 'top','right','bottom', 'width',\n // 'height' in the setOption() with 'merge' mode normal.\n layoutMode: 'box',\n\n /**\n * Init a tree data structure from data in option series\n * @param {Object} option the object used to config echarts view\n * @return {module:echarts/data/List} storage initial data\n */\n getInitialData: function (option) {\n //create an virtual root\n var root = {\n name: option.name,\n children: option.data\n };\n var leaves = option.leaves || {};\n var leavesModel = new Model(leaves, this, this.ecModel);\n var tree = Tree.createTree(root, this, {}, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n\n if (!node.children.length || !node.isExpand) {\n model.parentModel = leavesModel;\n }\n\n return model;\n });\n }\n\n var treeDepth = 0;\n tree.eachNode('preorder', function (node) {\n if (node.depth > treeDepth) {\n treeDepth = node.depth;\n }\n });\n var expandAndCollapse = option.expandAndCollapse;\n var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n tree.root.eachNode('preorder', function (node) {\n var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data.\n\n node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n });\n return tree.data;\n },\n\n /**\n * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n * @returns {string} orient\n */\n getOrient: function () {\n var orient = this.get('orient');\n\n if (orient === 'horizontal') {\n orient = 'LR';\n } else if (orient === 'vertical') {\n orient = 'TB';\n }\n\n return orient;\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n\n /**\n * @override\n * @param {number} dataIndex\n */\n formatTooltip: function (dataIndex) {\n var tree = this.getData().tree;\n var realRoot = tree.root.children[0];\n var node = tree.getNodeByDataIndex(dataIndex);\n var value = node.getValue();\n var name = node.name;\n\n while (node && node !== realRoot) {\n name = node.parentNode.name + '.' + name;\n node = node.parentNode;\n }\n\n return encodeHTML(name + (isNaN(value) || value == null ? '' : ' : ' + value));\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // the position of the whole view\n left: '12%',\n top: '12%',\n right: '12%',\n bottom: '12%',\n // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n layout: 'orthogonal',\n // value can be 'polyline'\n edgeShape: 'curve',\n edgeForkPosition: '50%',\n // true | false | 'move' | 'scale', see module:component/helper/RoamController.\n roam: false,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.4,\n // Default on center of graph\n center: null,\n zoom: 1,\n // The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'.\n // and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'.\n orient: 'LR',\n symbol: 'emptyCircle',\n symbolSize: 7,\n expandAndCollapse: true,\n initialTreeDepth: 2,\n lineStyle: {\n color: '#ccc',\n width: 1.5,\n curveness: 0.5\n },\n itemStyle: {\n color: 'lightsteelblue',\n borderColor: '#c23531',\n borderWidth: 1.5\n },\n label: {\n show: true,\n color: '#555'\n },\n leaves: {\n label: {\n show: true\n }\n },\n animationEasing: 'linear',\n animationDuration: 700,\n animationDurationUpdate: 1000\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar scaleHelper = require(\"./helper\");\n\nvar IntervalScale = require(\"./Interval\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The \"scaleLevels\" was originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment on the definition of \"scaleLevels\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design have\n// concidered these common case:\n// (1) Time that is persistent in server is in UTC, but it is needed to be diplayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\nvar intervalScaleProto = IntervalScale.prototype;\nvar mathCeil = Math.ceil;\nvar mathFloor = Math.floor;\nvar ONE_SECOND = 1000;\nvar ONE_MINUTE = ONE_SECOND * 60;\nvar ONE_HOUR = ONE_MINUTE * 60;\nvar ONE_DAY = ONE_HOUR * 24; // FIXME 公用?\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n/**\n * @alias module:echarts/coord/scale/Time\n * @constructor\n */\n\n\nvar TimeScale = IntervalScale.extend({\n type: 'time',\n\n /**\n * @override\n */\n getLabel: function (val) {\n var stepLvl = this._stepLvl;\n var date = new Date(val);\n return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC'));\n },\n\n /**\n * @override\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n // Expand extent\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n } // If there are no data and extent are [Infinity, -Infinity]\n\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);\n }\n },\n\n /**\n * @override\n */\n niceTicks: function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n var approxInterval = span / approxTickNum;\n\n if (minInterval != null && approxInterval < minInterval) {\n approxInterval = minInterval;\n }\n\n if (maxInterval != null && approxInterval > maxInterval) {\n approxInterval = maxInterval;\n }\n\n var scaleLevelsLen = scaleLevels.length;\n var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen);\n var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)];\n var interval = level[1]; // Same with interval scale if span is much larger than 1 year\n\n if (level[0] === 'year') {\n var yearSpan = span / interval; // From \"Nice Numbers for Graph Labels\" of Graphic Gems\n // var niceYearSpan = numberUtil.nice(yearSpan, false);\n\n var yearStep = numberUtil.nice(yearSpan / approxTickNum, true);\n interval *= yearStep;\n }\n\n var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000;\n var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)];\n scaleHelper.fixExtent(niceExtent, extent);\n this._stepLvl = level; // Interval will be used in getTicks\n\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n parse: function (val) {\n // val might be float.\n return +numberUtil.parseDate(val);\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n TimeScale.prototype[methodName] = function (val) {\n return intervalScaleProto[methodName].call(this, this.parse(val));\n };\n});\n/**\n * This implementation was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nvar scaleLevels = [// Format interval\n['hh:mm:ss', ONE_SECOND], // 1s\n['hh:mm:ss', ONE_SECOND * 5], // 5s\n['hh:mm:ss', ONE_SECOND * 10], // 10s\n['hh:mm:ss', ONE_SECOND * 15], // 15s\n['hh:mm:ss', ONE_SECOND * 30], // 30s\n['hh:mm\\nMM-dd', ONE_MINUTE], // 1m\n['hh:mm\\nMM-dd', ONE_MINUTE * 5], // 5m\n['hh:mm\\nMM-dd', ONE_MINUTE * 10], // 10m\n['hh:mm\\nMM-dd', ONE_MINUTE * 15], // 15m\n['hh:mm\\nMM-dd', ONE_MINUTE * 30], // 30m\n['hh:mm\\nMM-dd', ONE_HOUR], // 1h\n['hh:mm\\nMM-dd', ONE_HOUR * 2], // 2h\n['hh:mm\\nMM-dd', ONE_HOUR * 6], // 6h\n['hh:mm\\nMM-dd', ONE_HOUR * 12], // 12h\n['MM-dd\\nyyyy', ONE_DAY], // 1d\n['MM-dd\\nyyyy', ONE_DAY * 2], // 2d\n['MM-dd\\nyyyy', ONE_DAY * 3], // 3d\n['MM-dd\\nyyyy', ONE_DAY * 4], // 4d\n['MM-dd\\nyyyy', ONE_DAY * 5], // 5d\n['MM-dd\\nyyyy', ONE_DAY * 6], // 6d\n['week', ONE_DAY * 7], // 7d\n['MM-dd\\nyyyy', ONE_DAY * 10], // 10d\n['week', ONE_DAY * 14], // 2w\n['week', ONE_DAY * 21], // 3w\n['month', ONE_DAY * 31], // 1M\n['week', ONE_DAY * 42], // 6w\n['month', ONE_DAY * 62], // 2M\n['week', ONE_DAY * 70], // 10w\n['quarter', ONE_DAY * 95], // 3M\n['month', ONE_DAY * 31 * 4], // 4M\n['month', ONE_DAY * 31 * 5], // 5M\n['half-year', ONE_DAY * 380 / 2], // 6M\n['month', ONE_DAY * 31 * 8], // 8M\n['month', ONE_DAY * 31 * 10], // 10M\n['year', ONE_DAY * 380] // 1Y\n];\n/**\n * @param {module:echarts/model/Model}\n * @return {module:echarts/scale/Time}\n */\n\nTimeScale.create = function (model) {\n return new TimeScale({\n useUTC: model.ecModel.get('useUTC')\n });\n};\n\nvar _default = TimeScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.line',\n dependencies: ['grid', 'polar'],\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // stack: null\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // polarIndex: 0,\n // If clip the overflow value\n clip: true,\n // cursor: null,\n label: {\n position: 'top'\n },\n // itemStyle: {\n // },\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n // areaStyle: {\n // origin of areaStyle. Valid values:\n // `'auto'/null/undefined`: from axisLine to data\n // `'start'`: from min to data\n // `'end'`: from data to max\n // origin: 'auto'\n // },\n // false, 'start', 'end', 'middle'\n step: false,\n // Disabled if step is true\n smooth: false,\n smoothMonotone: null,\n symbol: 'emptyCircle',\n symbolSize: 4,\n symbolRotate: null,\n showSymbol: true,\n // `false`: follow the label interval strategy.\n // `true`: show all symbols.\n // `'auto'`: If possible, show all symbols, otherwise\n // follow the label interval strategy.\n showAllSymbol: 'auto',\n // Whether to connect break point.\n connectNulls: false,\n // Sampling for large data. Can be: 'average', 'max', 'min', 'sum'.\n sampling: 'none',\n animationEasing: 'linear',\n // Disable progressive\n progressive: 0,\n hoverLayerThreshold: Infinity\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Component = require(\"../../model/Component\");\n\nrequire(\"./AxisModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Component.extend({\n type: 'parallel',\n dependencies: ['parallelAxis'],\n\n /**\n * @type {module:echarts/coord/parallel/Parallel}\n */\n coordinateSystem: null,\n\n /**\n * Each item like: 'dim0', 'dim1', 'dim2', ...\n * @type {Array.}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * Coresponding to dimensions.\n * @type {Array.}\n * @readOnly\n */\n parallelAxisIndex: null,\n layoutMode: 'box',\n defaultOption: {\n zlevel: 0,\n z: 0,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n layout: 'horizontal',\n // 'horizontal' or 'vertical'\n // FIXME\n // naming?\n axisExpandable: false,\n axisExpandCenter: null,\n axisExpandCount: 0,\n axisExpandWidth: 50,\n // FIXME '10%' ?\n axisExpandRate: 17,\n axisExpandDebounce: 50,\n // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n // Do not doc to user until necessary.\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n axisExpandTriggerOn: 'click',\n // 'mousemove' or 'click'\n parallelAxisDefault: null\n },\n\n /**\n * @override\n */\n init: function () {\n Component.prototype.init.apply(this, arguments);\n this.mergeOption({});\n },\n\n /**\n * @override\n */\n mergeOption: function (newOption) {\n var thisOption = this.option;\n newOption && zrUtil.merge(thisOption, newOption, true);\n\n this._initDimensions();\n },\n\n /**\n * Whether series or axis is in this coordinate system.\n * @param {module:echarts/model/Series|module:echarts/coord/parallel/AxisModel} model\n * @param {module:echarts/model/Global} ecModel\n */\n contains: function (model, ecModel) {\n var parallelIndex = model.get('parallelIndex');\n return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n },\n setAxisExpand: function (opt) {\n zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n if (opt.hasOwnProperty(name)) {\n this.option[name] = opt[name];\n }\n }, this);\n },\n\n /**\n * @private\n */\n _initDimensions: function () {\n var dimensions = this.dimensions = [];\n var parallelAxisIndex = this.parallelAxisIndex = [];\n var axisModels = zrUtil.filter(this.dependentModels.parallelAxis, function (axisModel) {\n // Can not use this.contains here, because\n // initialization has not been completed yet.\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n }, this);\n zrUtil.each(axisModels, function (axisModel) {\n dimensions.push('dim' + axisModel.get('dim'));\n parallelAxisIndex.push(axisModel.componentIndex);\n });\n }\n});\n\nmodule.exports = _default;","/**\n * echarts设备环境识别\n *\n * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。\n * @author firede[firede@firede.us]\n * @desc thanks zepto.\n */\n\n/* global wx */\nvar env = {};\n\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n // In Weixin Application\n env = {\n browser: {},\n os: {},\n node: false,\n wxa: true,\n // Weixin Application\n canvasSupported: true,\n svgSupported: false,\n touchEventsSupported: true,\n domSupported: false\n };\n} else if (typeof document === 'undefined' && typeof self !== 'undefined') {\n // In worker\n env = {\n browser: {},\n os: {},\n node: false,\n worker: true,\n canvasSupported: true,\n domSupported: false\n };\n} else if (typeof navigator === 'undefined') {\n // In node\n env = {\n browser: {},\n os: {},\n node: true,\n worker: false,\n // Assume canvas is supported\n canvasSupported: true,\n svgSupported: true,\n domSupported: false\n };\n} else {\n env = detect(navigator.userAgent);\n}\n\nvar _default = env; // Zepto.js\n// (c) 2010-2013 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\nfunction detect(ua) {\n var os = {};\n var browser = {}; // var webkit = ua.match(/Web[kK]it[\\/]{0,1}([\\d.]+)/);\n // var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n // var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n // var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n // var iphone = !ipad && ua.match(/(iPhone\\sOS)\\s([\\d_]+)/);\n // var webos = ua.match(/(webOS|hpwOS)[\\s\\/]([\\d.]+)/);\n // var touchpad = webos && ua.match(/TouchPad/);\n // var kindle = ua.match(/Kindle\\/([\\d.]+)/);\n // var silk = ua.match(/Silk\\/([\\d._]+)/);\n // var blackberry = ua.match(/(BlackBerry).*Version\\/([\\d.]+)/);\n // var bb10 = ua.match(/(BB10).*Version\\/([\\d.]+)/);\n // var rimtabletos = ua.match(/(RIM\\sTablet\\sOS)\\s([\\d.]+)/);\n // var playbook = ua.match(/PlayBook/);\n // var chrome = ua.match(/Chrome\\/([\\d.]+)/) || ua.match(/CriOS\\/([\\d.]+)/);\n\n var firefox = ua.match(/Firefox\\/([\\d.]+)/); // var safari = webkit && ua.match(/Mobile\\//) && !chrome;\n // var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome;\n\n var ie = ua.match(/MSIE\\s([\\d.]+)/) // IE 11 Trident/7.0; rv:11.0\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n var edge = ua.match(/Edge\\/([\\d.]+)/); // IE 12 and 12+\n\n var weChat = /micromessenger/i.test(ua); // Todo: clean this up with a better OS/browser seperation:\n // - discern (more) between multiple browsers on android\n // - decide if kindle fire in silk mode is android or not\n // - Firefox on Android doesn't specify the Android version\n // - possibly devide in os, device and browser hashes\n // if (browser.webkit = !!webkit) browser.version = webkit[1];\n // if (android) os.android = true, os.version = android[2];\n // if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.');\n // if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.');\n // if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n // if (webos) os.webos = true, os.version = webos[2];\n // if (touchpad) os.touchpad = true;\n // if (blackberry) os.blackberry = true, os.version = blackberry[2];\n // if (bb10) os.bb10 = true, os.version = bb10[2];\n // if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2];\n // if (playbook) browser.playbook = true;\n // if (kindle) os.kindle = true, os.version = kindle[1];\n // if (silk) browser.silk = true, browser.version = silk[1];\n // if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true;\n // if (chrome) browser.chrome = true, browser.version = chrome[1];\n\n if (firefox) {\n browser.firefox = true;\n browser.version = firefox[1];\n } // if (safari && (ua.match(/Safari/) || !!os.ios)) browser.safari = true;\n // if (webview) browser.webview = true;\n\n\n if (ie) {\n browser.ie = true;\n browser.version = ie[1];\n }\n\n if (edge) {\n browser.edge = true;\n browser.version = edge[1];\n } // It is difficult to detect WeChat in Win Phone precisely, because ua can\n // not be set on win phone. So we do not consider Win Phone.\n\n\n if (weChat) {\n browser.weChat = true;\n } // os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) ||\n // (firefox && ua.match(/Tablet/)) || (ie && !ua.match(/Phone/) && ua.match(/Touch/)));\n // os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos ||\n // (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\\/([\\d.]+)/)) ||\n // (firefox && ua.match(/Mobile/)) || (ie && ua.match(/Touch/))));\n\n\n return {\n browser: browser,\n os: os,\n node: false,\n // 原生canvas支持,改极端点了\n // canvasSupported : !(browser.ie && parseFloat(browser.version) < 9)\n canvasSupported: !!document.createElement('canvas').getContext,\n svgSupported: typeof SVGRect !== 'undefined',\n // works on most browsers\n // IE10/11 does not support touch event, and MS Edge supports them but not by\n // default, so we dont check navigator.maxTouchPoints for them here.\n touchEventsSupported: 'ontouchstart' in window && !browser.ie && !browser.edge,\n // .\n pointerEventsSupported: // (1) Firefox supports pointer but not by default, only MS browsers are reliable on pointer\n // events currently. So we dont use that on other browsers unless tested sufficiently.\n // For example, in iOS 13 Mobile Chromium 78, if the touching behavior starts page\n // scroll, the `pointermove` event can not be fired any more. That will break some\n // features like \"pan horizontally to move something and pan vertically to page scroll\".\n // The horizontal pan probably be interrupted by the casually triggered page scroll.\n // (2) Although IE 10 supports pointer event, it use old style and is different from the\n // standard. So we exclude that. (IE 10 is hardly used on touch device)\n 'onpointerdown' in window && (browser.edge || browser.ie && browser.version >= 11),\n // passiveSupported: detectPassiveSupport()\n domSupported: typeof document !== 'undefined'\n };\n} // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n// function detectPassiveSupport() {\n// // Test via a getter in the options object to see if the passive property is accessed\n// var supportsPassive = false;\n// try {\n// var opts = Object.defineProperty({}, 'passive', {\n// get: function() {\n// supportsPassive = true;\n// }\n// });\n// window.addEventListener('testPassive', function() {}, opts);\n// } catch (e) {\n// }\n// return supportsPassive;\n// }\n\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = require(\"../../util/layout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The tree layoutHelper implementation was originally copied from\n* \"d3.js\"(https://github.com/d3/d3-hierarchy) with\n* some modifications made for this project.\n* (see more details in the comment of the specific method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the licence of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n\n/**\n * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing\n * the tree.\n */\n\n/**\n * Initialize all computational message for following algorithm.\n *\n * @param {module:echarts/data/Tree~TreeNode} root The virtual root of the tree.\n */\nfunction init(root) {\n root.hierNode = {\n defaultAncestor: null,\n ancestor: root,\n prelim: 0,\n modifier: 0,\n change: 0,\n shift: 0,\n i: 0,\n thread: null\n };\n var nodes = [root];\n var node;\n var children;\n\n while (node = nodes.pop()) {\n // jshint ignore:line\n children = node.children;\n\n if (node.isExpand && children.length) {\n var n = children.length;\n\n for (var i = n - 1; i >= 0; i--) {\n var child = children[i];\n child.hierNode = {\n defaultAncestor: null,\n ancestor: child,\n prelim: 0,\n modifier: 0,\n change: 0,\n shift: 0,\n i: i,\n thread: null\n };\n nodes.push(child);\n }\n }\n }\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes a preliminary x coordinate for node. Before that, this function is\n * applied recursively to the children of node, as well as the function\n * apportion(). After spacing out the children by calling executeShifts(), the\n * node is placed to the midpoint of its outermost children.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {Function} separation\n */\n\n\nfunction firstWalk(node, separation) {\n var children = node.isExpand ? node.children : [];\n var siblings = node.parentNode.children;\n var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n if (children.length) {\n executeShifts(node);\n var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n if (subtreeW) {\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n node.hierNode.modifier = node.hierNode.prelim - midPoint;\n } else {\n node.hierNode.prelim = midPoint;\n }\n } else if (subtreeW) {\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n }\n\n node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes all real x-coordinates by summing up the modifiers recursively.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n */\n\n\nfunction secondWalk(node) {\n var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n node.setLayout({\n x: nodeX\n }, true);\n node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\n\nfunction separation(cb) {\n return arguments.length ? cb : defaultSeparation;\n}\n/**\n * Transform the common coordinate to radial coordinate.\n *\n * @param {number} x\n * @param {number} y\n * @return {Object}\n */\n\n\nfunction radialCoordinate(x, y) {\n var radialCoor = {};\n x -= Math.PI / 2;\n radialCoor.x = y * Math.cos(x);\n radialCoor.y = y * Math.sin(x);\n return radialCoor;\n}\n/**\n * Get the layout position of the whole view.\n *\n * @param {module:echarts/model/Series} seriesModel the model object of sankey series\n * @param {module:echarts/ExtensionAPI} api provide the API list that the developer can call\n * @return {module:zrender/core/BoundingRect} size of rect to draw the sankey view\n */\n\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n/**\n * All other shifts, applied to the smaller subtrees between w- and w+, are\n * performed by this function.\n *\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n */\n\n\nfunction executeShifts(node) {\n var children = node.children;\n var n = children.length;\n var shift = 0;\n var change = 0;\n\n while (--n >= 0) {\n var child = children[n];\n child.hierNode.prelim += shift;\n child.hierNode.modifier += shift;\n change += child.hierNode.change;\n shift += child.hierNode.shift + change;\n }\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * The core of the algorithm. Here, a new subtree is combined with the\n * previous subtrees. Threads are used to traverse the inside and outside\n * contours of the left and right subtree up to the highest common level.\n * Whenever two nodes of the inside contours conflict, we compute the left\n * one of the greatest uncommon ancestors using the function nextAncestor()\n * and call moveSubtree() to shift the subtree and prepare the shifts of\n * smaller subtrees. Finally, we add a new thread (if necessary).\n *\n * @param {module:echarts/data/Tree~TreeNode} subtreeV\n * @param {module:echarts/data/Tree~TreeNode} subtreeW\n * @param {module:echarts/data/Tree~TreeNode} ancestor\n * @param {Function} separation\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n if (subtreeW) {\n var nodeOutRight = subtreeV;\n var nodeInRight = subtreeV;\n var nodeOutLeft = nodeInRight.parentNode.children[0];\n var nodeInLeft = subtreeW;\n var sumOutRight = nodeOutRight.hierNode.modifier;\n var sumInRight = nodeInRight.hierNode.modifier;\n var sumOutLeft = nodeOutLeft.hierNode.modifier;\n var sumInLeft = nodeInLeft.hierNode.modifier;\n\n while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n nodeOutRight = nextRight(nodeOutRight);\n nodeOutLeft = nextLeft(nodeOutLeft);\n nodeOutRight.hierNode.ancestor = subtreeV;\n var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n if (shift > 0) {\n moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n sumInRight += shift;\n sumOutRight += shift;\n }\n\n sumInLeft += nodeInLeft.hierNode.modifier;\n sumInRight += nodeInRight.hierNode.modifier;\n sumOutRight += nodeOutRight.hierNode.modifier;\n sumOutLeft += nodeOutLeft.hierNode.modifier;\n }\n\n if (nodeInLeft && !nextRight(nodeOutRight)) {\n nodeOutRight.hierNode.thread = nodeInLeft;\n nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n }\n\n if (nodeInRight && !nextLeft(nodeOutLeft)) {\n nodeOutLeft.hierNode.thread = nodeInRight;\n nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n ancestor = subtreeV;\n }\n }\n\n return ancestor;\n}\n/**\n * This function is used to traverse the right contour of a subtree.\n * It returns the rightmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextRight(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n/**\n * This function is used to traverse the left contour of a subtree (or a subforest).\n * It returns the leftmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextLeft(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n/**\n * If nodeInLeft’s ancestor is a sibling of node, returns nodeInLeft’s ancestor.\n * Otherwise, returns the specified ancestor.\n *\n * @param {module:echarts/data/Tree~TreeNode} nodeInLeft\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {module:echarts/data/Tree~TreeNode} ancestor\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Shifts the current subtree rooted at wr.\n * This is done by increasing prelim(w+) and modifier(w+) by shift.\n *\n * @param {module:echarts/data/Tree~TreeNode} wl\n * @param {module:echarts/data/Tree~TreeNode} wr\n * @param {number} shift [description]\n */\n\n\nfunction moveSubtree(wl, wr, shift) {\n var change = shift / (wr.hierNode.i - wl.hierNode.i);\n wr.hierNode.change -= change;\n wr.hierNode.shift += shift;\n wr.hierNode.modifier += shift;\n wr.hierNode.prelim += shift;\n wl.hierNode.change += change;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\n\nfunction defaultSeparation(node1, node2) {\n return node1.parentNode === node2.parentNode ? 1 : 2;\n}\n\nexports.init = init;\nexports.firstWalk = firstWalk;\nexports.secondWalk = secondWalk;\nexports.separation = separation;\nexports.radialCoordinate = radialCoordinate;\nexports.getViewRect = getViewRect;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar pathTool = require(\"zrender/lib/tool/path\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\n\nvar ZImage = require(\"zrender/lib/graphic/Image\");\n\nexports.Image = ZImage;\n\nvar Group = require(\"zrender/lib/container/Group\");\n\nexports.Group = Group;\n\nvar Text = require(\"zrender/lib/graphic/Text\");\n\nexports.Text = Text;\n\nvar Circle = require(\"zrender/lib/graphic/shape/Circle\");\n\nexports.Circle = Circle;\n\nvar Sector = require(\"zrender/lib/graphic/shape/Sector\");\n\nexports.Sector = Sector;\n\nvar Ring = require(\"zrender/lib/graphic/shape/Ring\");\n\nexports.Ring = Ring;\n\nvar Polygon = require(\"zrender/lib/graphic/shape/Polygon\");\n\nexports.Polygon = Polygon;\n\nvar Polyline = require(\"zrender/lib/graphic/shape/Polyline\");\n\nexports.Polyline = Polyline;\n\nvar Rect = require(\"zrender/lib/graphic/shape/Rect\");\n\nexports.Rect = Rect;\n\nvar Line = require(\"zrender/lib/graphic/shape/Line\");\n\nexports.Line = Line;\n\nvar BezierCurve = require(\"zrender/lib/graphic/shape/BezierCurve\");\n\nexports.BezierCurve = BezierCurve;\n\nvar Arc = require(\"zrender/lib/graphic/shape/Arc\");\n\nexports.Arc = Arc;\n\nvar CompoundPath = require(\"zrender/lib/graphic/CompoundPath\");\n\nexports.CompoundPath = CompoundPath;\n\nvar LinearGradient = require(\"zrender/lib/graphic/LinearGradient\");\n\nexports.LinearGradient = LinearGradient;\n\nvar RadialGradient = require(\"zrender/lib/graphic/RadialGradient\");\n\nexports.RadialGradient = RadialGradient;\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nexports.BoundingRect = BoundingRect;\n\nvar IncrementalDisplayable = require(\"zrender/lib/graphic/IncrementalDisplayable\");\n\nexports.IncrementalDisplayable = IncrementalDisplayable;\n\nvar subPixelOptimizeUtil = require(\"zrender/lib/graphic/helper/subPixelOptimize\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar EMPTY_OBJ = {};\nvar Z2_EMPHASIS_LIFT = 1; // key: label model property nane, value: style property name.\n\nvar CACHED_LABEL_STYLE_PROPERTIES = {\n color: 'textFill',\n textBorderColor: 'textStroke',\n textBorderWidth: 'textStrokeWidth'\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal'; // Reserve 0 as default.\n\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar _customShapeMap = {};\n/**\n * Extend shape with parameters\n */\n\nfunction extendShape(opts) {\n return Path.extend(opts);\n}\n/**\n * Extend path\n */\n\n\nfunction extendPath(pathData, opts) {\n return pathTool.extendFromString(pathData, opts);\n}\n/**\n * Register a user defined shape.\n * The shape class can be fetched by `getShapeClass`\n * This method will overwrite the registered shapes, including\n * the registered built-in shapes, if using the same `name`.\n * The shape can be used in `custom series` and\n * `graphic component` by declaring `{type: name}`.\n *\n * @param {string} name\n * @param {Object} ShapeClass Can be generated by `extendShape`.\n */\n\n\nfunction registerShape(name, ShapeClass) {\n _customShapeMap[name] = ShapeClass;\n}\n/**\n * Find shape class registered by `registerShape`. Usually used in\n * fetching user defined shape.\n *\n * [Caution]:\n * (1) This method **MUST NOT be used inside echarts !!!**, unless it is prepared\n * to use user registered shapes.\n * Because the built-in shape (see `getBuiltInShape`) will be registered by\n * `registerShape` by default. That enables users to get both built-in\n * shapes as well as the shapes belonging to themsleves. But users can overwrite\n * the built-in shapes by using names like 'circle', 'rect' via calling\n * `registerShape`. So the echarts inner featrues should not fetch shapes from here\n * in case that it is overwritten by users, except that some features, like\n * `custom series`, `graphic component`, do it deliberately.\n *\n * (2) In the features like `custom series`, `graphic component`, the user input\n * `{tpye: 'xxx'}` does not only specify shapes but also specify other graphic\n * elements like `'group'`, `'text'`, `'image'` or event `'path'`. Those names\n * are reserved names, that is, if some user register a shape named `'image'`,\n * the shape will not be used. If we intending to add some more reserved names\n * in feature, that might bring break changes (disable some existing user shape\n * names). But that case probably rearly happen. So we dont make more mechanism\n * to resolve this issue here.\n *\n * @param {string} name\n * @return {Object} The shape class. If not found, return nothing.\n */\n\n\nfunction getShapeClass(name) {\n if (_customShapeMap.hasOwnProperty(name)) {\n return _customShapeMap[name];\n }\n}\n/**\n * Create a path element from path data string\n * @param {string} pathData\n * @param {Object} opts\n * @param {module:zrender/core/BoundingRect} rect\n * @param {string} [layout=cover] 'center' or 'cover'\n */\n\n\nfunction makePath(pathData, opts, rect, layout) {\n var path = pathTool.createFromString(pathData, opts);\n\n if (rect) {\n if (layout === 'center') {\n rect = centerGraphic(rect, path.getBoundingRect());\n }\n\n resizePath(path, rect);\n }\n\n return path;\n}\n/**\n * Create a image element from image url\n * @param {string} imageUrl image url\n * @param {Object} opts options\n * @param {module:zrender/core/BoundingRect} rect constrain rect\n * @param {string} [layout=cover] 'center' or 'cover'\n */\n\n\nfunction makeImage(imageUrl, rect, layout) {\n var path = new ZImage({\n style: {\n image: imageUrl,\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n onload: function (img) {\n if (layout === 'center') {\n var boundingRect = {\n width: img.width,\n height: img.height\n };\n path.setStyle(centerGraphic(rect, boundingRect));\n }\n }\n });\n return path;\n}\n/**\n * Get position of centered element in bounding box.\n *\n * @param {Object} rect element local bounding box\n * @param {Object} boundingRect constraint bounding box\n * @return {Object} element position containing x, y, width, and height\n */\n\n\nfunction centerGraphic(rect, boundingRect) {\n // Set rect to center, keep width / height ratio.\n var aspect = boundingRect.width / boundingRect.height;\n var width = rect.height * aspect;\n var height;\n\n if (width <= rect.width) {\n height = rect.height;\n } else {\n width = rect.width;\n height = width / aspect;\n }\n\n var cx = rect.x + rect.width / 2;\n var cy = rect.y + rect.height / 2;\n return {\n x: cx - width / 2,\n y: cy - height / 2,\n width: width,\n height: height\n };\n}\n\nvar mergePath = pathTool.mergePath;\n/**\n * Resize a path to fit the rect\n * @param {module:zrender/graphic/Path} path\n * @param {Object} rect\n */\n\nfunction resizePath(path, rect) {\n if (!path.applyTransform) {\n return;\n }\n\n var pathRect = path.getBoundingRect();\n var m = pathRect.calculateTransform(rect);\n path.applyTransform(m);\n}\n/**\n * Sub pixel optimize line for canvas\n *\n * @param {Object} param\n * @param {Object} [param.shape]\n * @param {number} [param.shape.x1]\n * @param {number} [param.shape.y1]\n * @param {number} [param.shape.x2]\n * @param {number} [param.shape.y2]\n * @param {Object} [param.style]\n * @param {number} [param.style.lineWidth]\n * @return {Object} Modified param\n */\n\n\nfunction subPixelOptimizeLine(param) {\n subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n return param;\n}\n/**\n * Sub pixel optimize rect for canvas\n *\n * @param {Object} param\n * @param {Object} [param.shape]\n * @param {number} [param.shape.x]\n * @param {number} [param.shape.y]\n * @param {number} [param.shape.width]\n * @param {number} [param.shape.height]\n * @param {Object} [param.style]\n * @param {number} [param.style.lineWidth]\n * @return {Object} Modified param\n */\n\n\nfunction subPixelOptimizeRect(param) {\n subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n return param;\n}\n/**\n * Sub pixel optimize for canvas\n *\n * @param {number} position Coordinate, such as x, y\n * @param {number} lineWidth Should be nonnegative integer.\n * @param {boolean=} positiveOrNegative Default false (negative).\n * @return {number} Optimized position.\n */\n\n\nvar subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n} // Most lifted color are duplicated.\n\n\nvar liftedColorMap = zrUtil.createHashMap();\nvar liftedColorCount = 0;\n\nfunction liftColor(color) {\n if (typeof color !== 'string') {\n return color;\n }\n\n var liftedColor = liftedColorMap.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n\n if (liftedColorCount < 10000) {\n liftedColorMap.set(color, liftedColor);\n liftedColorCount++;\n }\n }\n\n return liftedColor;\n}\n\nfunction cacheElementStl(el) {\n if (!el.__hoverStlDirty) {\n return;\n }\n\n el.__hoverStlDirty = false;\n var hoverStyle = el.__hoverStl;\n\n if (!hoverStyle) {\n el.__cachedNormalStl = el.__cachedNormalZ2 = null;\n return;\n }\n\n var normalStyle = el.__cachedNormalStl = {};\n el.__cachedNormalZ2 = el.z2;\n var elStyle = el.style;\n\n for (var name in hoverStyle) {\n // See comment in `singleEnterEmphasis`.\n if (hoverStyle[name] != null) {\n normalStyle[name] = elStyle[name];\n }\n } // Always cache fill and stroke to normalStyle for lifting color.\n\n\n normalStyle.fill = elStyle.fill;\n normalStyle.stroke = elStyle.stroke;\n}\n\nfunction singleEnterEmphasis(el) {\n var hoverStl = el.__hoverStl;\n\n if (!hoverStl || el.__highlighted) {\n return;\n }\n\n var zr = el.__zr;\n var useHoverLayer = el.useHoverLayer && zr && zr.painter.type === 'canvas';\n el.__highlighted = useHoverLayer ? 'layer' : 'plain';\n\n if (el.isGroup || !zr && el.useHoverLayer) {\n return;\n }\n\n var elTarget = el;\n var targetStyle = el.style;\n\n if (useHoverLayer) {\n elTarget = zr.addHover(el);\n targetStyle = elTarget.style;\n }\n\n rollbackDefaultTextStyle(targetStyle);\n\n if (!useHoverLayer) {\n cacheElementStl(elTarget);\n } // styles can be:\n // {\n // label: {\n // show: false,\n // position: 'outside',\n // fontSize: 18\n // },\n // emphasis: {\n // label: {\n // show: true\n // }\n // }\n // },\n // where properties of `emphasis` may not appear in `normal`. We previously use\n // module:echarts/util/model#defaultEmphasis to merge `normal` to `emphasis`.\n // But consider rich text and setOption in merge mode, it is impossible to cover\n // all properties in merge. So we use merge mode when setting style here.\n // But we choose the merge strategy that only properties that is not `null/undefined`.\n // Because when making a textStyle (espacially rich text), it is not easy to distinguish\n // `hasOwnProperty` and `null/undefined` in code, so we trade them as the same for simplicity.\n // But this strategy brings a trouble that `null/undefined` can not be used to remove\n // style any more in `emphasis`. Users can both set properties directly on normal and\n // emphasis to avoid this issue, or we might support `'none'` for this case if required.\n\n\n targetStyle.extendFrom(hoverStl);\n setDefaultHoverFillStroke(targetStyle, hoverStl, 'fill');\n setDefaultHoverFillStroke(targetStyle, hoverStl, 'stroke');\n applyDefaultTextStyle(targetStyle);\n\n if (!useHoverLayer) {\n el.dirty(false);\n el.z2 += Z2_EMPHASIS_LIFT;\n }\n}\n\nfunction setDefaultHoverFillStroke(targetStyle, hoverStyle, prop) {\n if (!hasFillOrStroke(hoverStyle[prop]) && hasFillOrStroke(targetStyle[prop])) {\n targetStyle[prop] = liftColor(targetStyle[prop]);\n }\n}\n\nfunction singleEnterNormal(el) {\n var highlighted = el.__highlighted;\n\n if (!highlighted) {\n return;\n }\n\n el.__highlighted = false;\n\n if (el.isGroup) {\n return;\n }\n\n if (highlighted === 'layer') {\n el.__zr && el.__zr.removeHover(el);\n } else {\n var style = el.style;\n var normalStl = el.__cachedNormalStl;\n\n if (normalStl) {\n rollbackDefaultTextStyle(style);\n el.setStyle(normalStl);\n applyDefaultTextStyle(style);\n } // `__cachedNormalZ2` will not be reset if calling `setElementHoverStyle`\n // when `el` is on emphasis state. So here by comparing with 1, we try\n // hard to make the bug case rare.\n\n\n var normalZ2 = el.__cachedNormalZ2;\n\n if (normalZ2 != null && el.z2 - normalZ2 === Z2_EMPHASIS_LIFT) {\n el.z2 = normalZ2;\n }\n }\n}\n\nfunction traverseUpdate(el, updater, commonParam) {\n // If root is group, also enter updater for `highDownOnUpdate`.\n var fromState = NORMAL;\n var toState = NORMAL;\n var trigger; // See the rule of `highDownOnUpdate` on `graphic.setAsHighDownDispatcher`.\n\n el.__highlighted && (fromState = EMPHASIS, trigger = true);\n updater(el, commonParam);\n el.__highlighted && (toState = EMPHASIS, trigger = true);\n el.isGroup && el.traverse(function (child) {\n !child.isGroup && updater(child, commonParam);\n });\n trigger && el.__highDownOnUpdate && el.__highDownOnUpdate(fromState, toState);\n}\n/**\n * Set hover style (namely \"emphasis style\") of element, based on the current\n * style of the given `el`.\n * This method should be called after all of the normal styles have been adopted\n * to the `el`. See the reason on `setHoverStyle`.\n *\n * @param {module:zrender/Element} el Should not be `zrender/container/Group`.\n * @param {Object} [el.hoverStyle] Can be set on el or its descendants,\n * e.g., `el.hoverStyle = ...; graphic.setHoverStyle(el); `.\n * Often used when item group has a label element and it's hoverStyle is different.\n * @param {Object|boolean} [hoverStl] The specified hover style.\n * If set as `false`, disable the hover style.\n * Similarly, The `el.hoverStyle` can alse be set\n * as `false` to disable the hover style.\n * Otherwise, use the default hover style if not provided.\n */\n\n\nfunction setElementHoverStyle(el, hoverStl) {\n // For performance consideration, it might be better to make the \"hover style\" only the\n // difference properties from the \"normal style\", but not a entire copy of all styles.\n hoverStl = el.__hoverStl = hoverStl !== false && (el.hoverStyle || hoverStl || {});\n el.__hoverStlDirty = true; // FIXME\n // It is not completely right to save \"normal\"/\"emphasis\" flag on elements.\n // It probably should be saved on `data` of series. Consider the cases:\n // (1) A highlighted elements are moved out of the view port and re-enter\n // again by dataZoom.\n // (2) call `setOption` and replace elements totally when they are highlighted.\n\n if (el.__highlighted) {\n // Consider the case:\n // The styles of a highlighted `el` is being updated. The new \"emphasis style\"\n // should be adapted to the `el`. Notice here new \"normal styles\" should have\n // been set outside and the cached \"normal style\" is out of date.\n el.__cachedNormalStl = null; // Do not clear `__cachedNormalZ2` here, because setting `z2` is not a constraint\n // of this method. In most cases, `z2` is not set and hover style should be able\n // to rollback. Of course, that would bring bug, but only in a rare case, see\n // `doSingleLeaveHover` for details.\n\n singleEnterNormal(el);\n singleEnterEmphasis(el);\n }\n}\n\nfunction onElementMouseOver(e) {\n !shouldSilent(this, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !this.__highByOuter && traverseUpdate(this, singleEnterEmphasis);\n}\n\nfunction onElementMouseOut(e) {\n !shouldSilent(this, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !this.__highByOuter && traverseUpdate(this, singleEnterNormal);\n}\n\nfunction onElementEmphasisEvent(highlightDigit) {\n this.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdate(this, singleEnterEmphasis);\n}\n\nfunction onElementNormalEvent(highlightDigit) {\n !(this.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdate(this, singleEnterNormal);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n/**\n * Set hover style (namely \"emphasis style\") of element,\n * based on the current style of the given `el`.\n *\n * (1)\n * **CONSTRAINTS** for this method:\n * This method MUST be called after all of the normal styles having been adopted\n * to the `el`.\n * The input `hoverStyle` (that is, \"emphasis style\") MUST be the subset of the\n * \"normal style\" having been set to the el.\n * `color` MUST be one of the \"normal styles\" (because color might be lifted as\n * a default hover style).\n *\n * The reason: this method treat the current style of the `el` as the \"normal style\"\n * and cache them when enter/update the \"emphasis style\". Consider the case: the `el`\n * is in \"emphasis\" state and `setOption`/`dispatchAction` trigger the style updating\n * logic, where the el should shift from the original emphasis style to the new\n * \"emphasis style\" and should be able to \"downplay\" back to the new \"normal style\".\n *\n * Indeed, it is error-prone to make a interface has so many constraints, but I have\n * not found a better solution yet to fit the backward compatibility, performance and\n * the current programming style.\n *\n * (2)\n * Call the method for a \"root\" element once. Do not call it for each descendants.\n * If the descendants elemenets of a group has itself hover style different from the\n * root group, we can simply mount the style on `el.hoverStyle` for them, but should\n * not call this method for them.\n *\n * (3) These input parameters can be set directly on `el`:\n *\n * @param {module:zrender/Element} el\n * @param {Object} [el.hoverStyle] See `graphic.setElementHoverStyle`.\n * @param {boolean} [el.highDownSilentOnTouch=false] See `graphic.setAsHighDownDispatcher`.\n * @param {Function} [el.highDownOnUpdate] See `graphic.setAsHighDownDispatcher`.\n * @param {Object|boolean} [hoverStyle] See `graphic.setElementHoverStyle`.\n */\n\n\nfunction setHoverStyle(el, hoverStyle) {\n setAsHighDownDispatcher(el, true);\n traverseUpdate(el, setElementHoverStyle, hoverStyle);\n}\n/**\n * @param {module:zrender/Element} el\n * @param {Function} [el.highDownOnUpdate] Called when state updated.\n * Since `setHoverStyle` has the constraint that it must be called after\n * all of the normal style updated, `highDownOnUpdate` is not needed to\n * trigger if both `fromState` and `toState` is 'normal', and needed to\n * trigger if both `fromState` and `toState` is 'emphasis', which enables\n * to sync outside style settings to \"emphasis\" state.\n * @this {string} This dispatcher `el`.\n * @param {string} fromState Can be \"normal\" or \"emphasis\".\n * `fromState` might equal to `toState`,\n * for example, when this method is called when `el` is\n * on \"emphasis\" state.\n * @param {string} toState Can be \"normal\" or \"emphasis\".\n *\n * FIXME\n * CAUTION: Do not expose `highDownOnUpdate` outside echarts.\n * Because it is not a complete solution. The update\n * listener should not have been mount in element,\n * and the normal/emphasis state should not have\n * mantained on elements.\n *\n * @param {boolean} [el.highDownSilentOnTouch=false]\n * In touch device, mouseover event will be trigger on touchstart event\n * (see module:zrender/dom/HandlerProxy). By this mechanism, we can\n * conveniently use hoverStyle when tap on touch screen without additional\n * code for compatibility.\n * But if the chart/component has select feature, which usually also use\n * hoverStyle, there might be conflict between 'select-highlight' and\n * 'hover-highlight' especially when roam is enabled (see geo for example).\n * In this case, `highDownSilentOnTouch` should be used to disable\n * hover-highlight on touch device.\n * @param {boolean} [asDispatcher=true] If `false`, do not set as \"highDownDispatcher\".\n */\n\n\nfunction setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false; // Make `highDownSilentOnTouch` and `highDownOnUpdate` only work after\n // `setAsHighDownDispatcher` called. Avoid it is modified by user unexpectedly.\n\n el.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n el.__highDownOnUpdate = el.highDownOnUpdate; // Simple optimize, since this method might be\n // called for each elements of a group in some cases.\n\n if (!disable || el.__highDownDispatcher) {\n var method = disable ? 'off' : 'on'; // Duplicated function will be auto-ignored, see Eventful.js.\n\n el[method]('mouseover', onElementMouseOver)[method]('mouseout', onElementMouseOut); // Emphasis, normal can be triggered manually by API or other components like hover link.\n\n el[method]('emphasis', onElementEmphasisEvent)[method]('normal', onElementNormalEvent); // Also keep previous record.\n\n el.__highByOuter = el.__highByOuter || 0;\n el.__highDownDispatcher = !disable;\n }\n}\n/**\n * @param {module:zrender/src/Element} el\n * @return {boolean}\n */\n\n\nfunction isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\n/**\n * Support hightlight/downplay record on each elements.\n * For the case: hover highlight/downplay (legend, visualMap, ...) and\n * user triggerred hightlight/downplay should not conflict.\n * Only all of the highlightDigit cleared, return to normal.\n * @param {string} highlightKey\n * @return {number} highlightDigit\n */\n\n\nfunction getHighlightDigit(highlightKey) {\n var highlightDigit = _highlightKeyMap[highlightKey];\n\n if (highlightDigit == null && _highlightNextDigit <= 32) {\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n }\n\n return highlightDigit;\n}\n/**\n * See more info in `setTextStyleCommon`.\n * @param {Object|module:zrender/graphic/Style} normalStyle\n * @param {Object} emphasisStyle\n * @param {module:echarts/model/Model} normalModel\n * @param {module:echarts/model/Model} emphasisModel\n * @param {Object} opt Check `opt` of `setTextStyleCommon` to find other props.\n * @param {string|Function} [opt.defaultText]\n * @param {module:echarts/model/Model} [opt.labelFetcher] Fetch text by\n * `opt.labelFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {number} [opt.labelDataIndex] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {number} [opt.labelDimIndex] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {string} [opt.labelProp] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {Object} [normalSpecified]\n * @param {Object} [emphasisSpecified]\n */\n\n\nfunction setLabelStyle(normalStyle, emphasisStyle, normalModel, emphasisModel, opt, normalSpecified, emphasisSpecified) {\n opt = opt || EMPTY_OBJ;\n var labelFetcher = opt.labelFetcher;\n var labelDataIndex = opt.labelDataIndex;\n var labelDimIndex = opt.labelDimIndex;\n var labelProp = opt.labelProp; // This scenario, `label.normal.show = true; label.emphasis.show = false`,\n // is not supported util someone requests.\n\n var showNormal = normalModel.getShallow('show');\n var showEmphasis = emphasisModel.getShallow('show'); // Consider performance, only fetch label when necessary.\n // If `normal.show` is `false` and `emphasis.show` is `true` and `emphasis.formatter` is not set,\n // label should be displayed, where text is fetched by `normal.formatter` or `opt.defaultText`.\n\n var baseText;\n\n if (showNormal || showEmphasis) {\n if (labelFetcher) {\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, labelProp);\n }\n\n if (baseText == null) {\n baseText = zrUtil.isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\n }\n }\n\n var normalStyleText = showNormal ? baseText : null;\n var emphasisStyleText = showEmphasis ? zrUtil.retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, 'emphasis', null, labelDimIndex, labelProp) : null, baseText) : null; // Optimize: If style.text is null, text will not be drawn.\n\n if (normalStyleText != null || emphasisStyleText != null) {\n // Always set `textStyle` even if `normalStyle.text` is null, because default\n // values have to be set on `normalStyle`.\n // If we set default values on `emphasisStyle`, consider case:\n // Firstly, `setOption(... label: {normal: {text: null}, emphasis: {show: true}} ...);`\n // Secondly, `setOption(... label: {noraml: {show: true, text: 'abc', color: 'red'} ...);`\n // Then the 'red' will not work on emphasis.\n setTextStyle(normalStyle, normalModel, normalSpecified, opt);\n setTextStyle(emphasisStyle, emphasisModel, emphasisSpecified, opt, true);\n }\n\n normalStyle.text = normalStyleText;\n emphasisStyle.text = emphasisStyleText;\n}\n/**\n * Modify label style manually.\n * Only works after `setLabelStyle` and `setElementHoverStyle` called.\n *\n * @param {module:zrender/src/Element} el\n * @param {Object} [normalStyleProps] optional\n * @param {Object} [emphasisStyleProps] optional\n */\n\n\nfunction modifyLabelStyle(el, normalStyleProps, emphasisStyleProps) {\n var elStyle = el.style;\n\n if (normalStyleProps) {\n rollbackDefaultTextStyle(elStyle);\n el.setStyle(normalStyleProps);\n applyDefaultTextStyle(elStyle);\n }\n\n elStyle = el.__hoverStl;\n\n if (emphasisStyleProps && elStyle) {\n rollbackDefaultTextStyle(elStyle);\n zrUtil.extend(elStyle, emphasisStyleProps);\n applyDefaultTextStyle(elStyle);\n }\n}\n/**\n * Set basic textStyle properties.\n * See more info in `setTextStyleCommon`.\n * @param {Object|module:zrender/graphic/Style} textStyle\n * @param {module:echarts/model/Model} model\n * @param {Object} [specifiedTextStyle] Can be overrided by settings in model.\n * @param {Object} [opt] See `opt` of `setTextStyleCommon`.\n * @param {boolean} [isEmphasis]\n */\n\n\nfunction setTextStyle(textStyle, textStyleModel, specifiedTextStyle, opt, isEmphasis) {\n setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis);\n specifiedTextStyle && zrUtil.extend(textStyle, specifiedTextStyle); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n\n return textStyle;\n}\n/**\n * Set text option in the style.\n * See more info in `setTextStyleCommon`.\n * @deprecated\n * @param {Object} textStyle\n * @param {module:echarts/model/Model} labelModel\n * @param {string|boolean} defaultColor Default text color.\n * If set as false, it will be processed as a emphasis style.\n */\n\n\nfunction setText(textStyle, labelModel, defaultColor) {\n var opt = {\n isRectText: true\n };\n var isEmphasis;\n\n if (defaultColor === false) {\n isEmphasis = true;\n } else {\n // Support setting color as 'auto' to get visual color.\n opt.autoColor = defaultColor;\n }\n\n setTextStyleCommon(textStyle, labelModel, opt, isEmphasis); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n}\n/**\n * The uniform entry of set text style, that is, retrieve style definitions\n * from `model` and set to `textStyle` object.\n *\n * Never in merge mode, but in overwrite mode, that is, all of the text style\n * properties will be set. (Consider the states of normal and emphasis and\n * default value can be adopted, merge would make the logic too complicated\n * to manage.)\n *\n * The `textStyle` object can either be a plain object or an instance of\n * `zrender/src/graphic/Style`, and either be the style of normal or emphasis.\n * After this mothod called, the `textStyle` object can then be used in\n * `el.setStyle(textStyle)` or `el.hoverStyle = textStyle`.\n *\n * Default value will be adopted and `insideRollbackOpt` will be created.\n * See `applyDefaultTextStyle` `rollbackDefaultTextStyle` for more details.\n *\n * opt: {\n * disableBox: boolean, Whether diable drawing box of block (outer most).\n * isRectText: boolean,\n * autoColor: string, specify a color when color is 'auto',\n * for textFill, textStroke, textBackgroundColor, and textBorderColor.\n * If autoColor specified, it is used as default textFill.\n * useInsideStyle:\n * `true`: Use inside style (textFill, textStroke, textStrokeWidth)\n * if `textFill` is not specified.\n * `false`: Do not use inside style.\n * `null/undefined`: use inside style if `isRectText` is true and\n * `textFill` is not specified and textPosition contains `'inside'`.\n * forceRich: boolean\n * }\n */\n\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis) {\n // Consider there will be abnormal when merge hover style to normal style if given default value.\n opt = opt || EMPTY_OBJ;\n\n if (opt.isRectText) {\n var textPosition;\n\n if (opt.getTextPosition) {\n textPosition = opt.getTextPosition(textStyleModel, isEmphasis);\n } else {\n textPosition = textStyleModel.getShallow('position') || (isEmphasis ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used\n // in bar series, and magric type should be considered.\n\n textPosition === 'outside' && (textPosition = 'top');\n }\n\n textStyle.textPosition = textPosition;\n textStyle.textOffset = textStyleModel.getShallow('offset');\n var labelRotate = textStyleModel.getShallow('rotate');\n labelRotate != null && (labelRotate *= Math.PI / 180);\n textStyle.textRotation = labelRotate;\n textStyle.textDistance = zrUtil.retrieve2(textStyleModel.getShallow('distance'), isEmphasis ? null : 5);\n }\n\n var ecModel = textStyleModel.ecModel;\n var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case:\n // {\n // data: [{\n // value: 12,\n // label: {\n // rich: {\n // // no 'a' here but using parent 'a'.\n // }\n // }\n // }],\n // rich: {\n // a: { ... }\n // }\n // }\n\n var richItemNames = getRichItemNames(textStyleModel);\n var richResult;\n\n if (richItemNames) {\n richResult = {};\n\n for (var name in richItemNames) {\n if (richItemNames.hasOwnProperty(name)) {\n // Cascade is supported in rich.\n var richTextStyle = textStyleModel.getModel(['rich', name]); // In rich, never `disableBox`.\n // FIXME: consider `label: {formatter: '{a|xx}', color: 'blue', rich: {a: {}}}`,\n // the default color `'blue'` will not be adopted if no color declared in `rich`.\n // That might confuses users. So probably we should put `textStyleModel` as the\n // root ancestor of the `richTextStyle`. But that would be a break change.\n\n setTokenTextStyle(richResult[name] = {}, richTextStyle, globalTextStyle, opt, isEmphasis);\n }\n }\n }\n\n textStyle.rich = richResult;\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, true);\n\n if (opt.forceRich && !opt.textStyle) {\n opt.textStyle = {};\n }\n\n return textStyle;\n} // Consider case:\n// {\n// data: [{\n// value: 12,\n// label: {\n// rich: {\n// // no 'a' here but using parent 'a'.\n// }\n// }\n// }],\n// rich: {\n// a: { ... }\n// }\n// }\n\n\nfunction getRichItemNames(textStyleModel) {\n // Use object to remove duplicated names.\n var richItemNameMap;\n\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n if (rich) {\n richItemNameMap = richItemNameMap || {};\n\n for (var name in rich) {\n if (rich.hasOwnProperty(name)) {\n richItemNameMap[name] = 1;\n }\n }\n }\n\n textStyleModel = textStyleModel.parentModel;\n }\n\n return richItemNameMap;\n}\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, isBlock) {\n // In merge mode, default value should not be given.\n globalTextStyle = !isEmphasis && globalTextStyle || EMPTY_OBJ;\n textStyle.textFill = getAutoColor(textStyleModel.getShallow('color'), opt) || globalTextStyle.color;\n textStyle.textStroke = getAutoColor(textStyleModel.getShallow('textBorderColor'), opt) || globalTextStyle.textBorderColor;\n textStyle.textStrokeWidth = zrUtil.retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n if (!isEmphasis) {\n if (isBlock) {\n textStyle.insideRollbackOpt = opt;\n applyDefaultTextStyle(textStyle);\n } // Set default finally.\n\n\n if (textStyle.textFill == null) {\n textStyle.textFill = opt.autoColor;\n }\n } // Do not use `getFont` here, because merge should be supported, where\n // part of these properties may be changed in emphasis style, and the\n // others should remain their original value got from normal style.\n\n\n textStyle.fontStyle = textStyleModel.getShallow('fontStyle') || globalTextStyle.fontStyle;\n textStyle.fontWeight = textStyleModel.getShallow('fontWeight') || globalTextStyle.fontWeight;\n textStyle.fontSize = textStyleModel.getShallow('fontSize') || globalTextStyle.fontSize;\n textStyle.fontFamily = textStyleModel.getShallow('fontFamily') || globalTextStyle.fontFamily;\n textStyle.textAlign = textStyleModel.getShallow('align');\n textStyle.textVerticalAlign = textStyleModel.getShallow('verticalAlign') || textStyleModel.getShallow('baseline');\n textStyle.textLineHeight = textStyleModel.getShallow('lineHeight');\n textStyle.textWidth = textStyleModel.getShallow('width');\n textStyle.textHeight = textStyleModel.getShallow('height');\n textStyle.textTag = textStyleModel.getShallow('tag');\n\n if (!isBlock || !opt.disableBox) {\n textStyle.textBackgroundColor = getAutoColor(textStyleModel.getShallow('backgroundColor'), opt);\n textStyle.textPadding = textStyleModel.getShallow('padding');\n textStyle.textBorderColor = getAutoColor(textStyleModel.getShallow('borderColor'), opt);\n textStyle.textBorderWidth = textStyleModel.getShallow('borderWidth');\n textStyle.textBorderRadius = textStyleModel.getShallow('borderRadius');\n textStyle.textBoxShadowColor = textStyleModel.getShallow('shadowColor');\n textStyle.textBoxShadowBlur = textStyleModel.getShallow('shadowBlur');\n textStyle.textBoxShadowOffsetX = textStyleModel.getShallow('shadowOffsetX');\n textStyle.textBoxShadowOffsetY = textStyleModel.getShallow('shadowOffsetY');\n }\n\n textStyle.textShadowColor = textStyleModel.getShallow('textShadowColor') || globalTextStyle.textShadowColor;\n textStyle.textShadowBlur = textStyleModel.getShallow('textShadowBlur') || globalTextStyle.textShadowBlur;\n textStyle.textShadowOffsetX = textStyleModel.getShallow('textShadowOffsetX') || globalTextStyle.textShadowOffsetX;\n textStyle.textShadowOffsetY = textStyleModel.getShallow('textShadowOffsetY') || globalTextStyle.textShadowOffsetY;\n}\n\nfunction getAutoColor(color, opt) {\n return color !== 'auto' ? color : opt && opt.autoColor ? opt.autoColor : null;\n}\n/**\n * Give some default value to the input `textStyle` object, based on the current settings\n * in this `textStyle` object.\n *\n * The Scenario:\n * when text position is `inside` and `textFill` is not specified, we show\n * text border by default for better view. But it should be considered that text position\n * might be changed when hovering or being emphasis, where the `insideRollback` is used to\n * restore the style.\n *\n * Usage (& NOTICE):\n * When a style object (eithor plain object or instance of `zrender/src/graphic/Style`) is\n * about to be modified on its text related properties, `rollbackDefaultTextStyle` should\n * be called before the modification and `applyDefaultTextStyle` should be called after that.\n * (For the case that all of the text related properties is reset, like `setTextStyleCommon`\n * does, `rollbackDefaultTextStyle` is not needed to be called).\n */\n\n\nfunction applyDefaultTextStyle(textStyle) {\n var textPosition = textStyle.textPosition;\n var opt = textStyle.insideRollbackOpt;\n var insideRollback;\n\n if (opt && textStyle.textFill == null) {\n var autoColor = opt.autoColor;\n var isRectText = opt.isRectText;\n var useInsideStyle = opt.useInsideStyle;\n var useInsideStyleCache = useInsideStyle !== false && (useInsideStyle === true || isRectText && textPosition // textPosition can be [10, 30]\n && typeof textPosition === 'string' && textPosition.indexOf('inside') >= 0);\n var useAutoColorCache = !useInsideStyleCache && autoColor != null; // All of the props declared in `CACHED_LABEL_STYLE_PROPERTIES` are to be cached.\n\n if (useInsideStyleCache || useAutoColorCache) {\n insideRollback = {\n textFill: textStyle.textFill,\n textStroke: textStyle.textStroke,\n textStrokeWidth: textStyle.textStrokeWidth\n };\n }\n\n if (useInsideStyleCache) {\n textStyle.textFill = '#fff'; // Consider text with #fff overflow its container.\n\n if (textStyle.textStroke == null) {\n textStyle.textStroke = autoColor;\n textStyle.textStrokeWidth == null && (textStyle.textStrokeWidth = 2);\n }\n }\n\n if (useAutoColorCache) {\n textStyle.textFill = autoColor;\n }\n } // Always set `insideRollback`, so that the previous one can be cleared.\n\n\n textStyle.insideRollback = insideRollback;\n}\n/**\n * Consider the case: in a scatter,\n * label: {\n * normal: {position: 'inside'},\n * emphasis: {position: 'top'}\n * }\n * In the normal state, the `textFill` will be set as '#fff' for pretty view (see\n * `applyDefaultTextStyle`), but when switching to emphasis state, the `textFill`\n * should be retured to 'autoColor', but not keep '#fff'.\n */\n\n\nfunction rollbackDefaultTextStyle(style) {\n var insideRollback = style.insideRollback;\n\n if (insideRollback) {\n // Reset all of the props in `CACHED_LABEL_STYLE_PROPERTIES`.\n style.textFill = insideRollback.textFill;\n style.textStroke = insideRollback.textStroke;\n style.textStrokeWidth = insideRollback.textStrokeWidth;\n style.insideRollback = null;\n }\n}\n\nfunction getFont(opt, ecModel) {\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n return zrUtil.trim([// FIXME in node-canvas fontWeight is before fontStyle\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\n\nfunction animateOrSetProps(isUpdate, el, props, animatableModel, dataIndex, cb) {\n if (typeof dataIndex === 'function') {\n cb = dataIndex;\n dataIndex = null;\n } // Do not check 'animation' property directly here. Consider this case:\n // animation model is an `itemModel`, whose does not have `isAnimationEnabled`\n // but its parent model (`seriesModel`) does.\n\n\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n if (animationEnabled) {\n var postfix = isUpdate ? 'Update' : '';\n var duration = animatableModel.getShallow('animationDuration' + postfix);\n var animationEasing = animatableModel.getShallow('animationEasing' + postfix);\n var animationDelay = animatableModel.getShallow('animationDelay' + postfix);\n\n if (typeof animationDelay === 'function') {\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n }\n\n if (typeof duration === 'function') {\n duration = duration(dataIndex);\n }\n\n duration > 0 ? el.animateTo(props, duration, animationDelay || 0, animationEasing, cb, !!cb) : (el.stopAnimation(), el.attr(props), cb && cb());\n } else {\n el.stopAnimation();\n el.attr(props);\n cb && cb();\n }\n}\n/**\n * Update graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n *\n * @param {module:zrender/Element} el\n * @param {Object} props\n * @param {module:echarts/model/Model} [animatableModel]\n * @param {number} [dataIndex]\n * @param {Function} [cb]\n * @example\n * graphic.updateProps(el, {\n * position: [100, 100]\n * }, seriesModel, dataIndex, function () { console.log('Animation done!'); });\n * // Or\n * graphic.updateProps(el, {\n * position: [100, 100]\n * }, seriesModel, function () { console.log('Animation done!'); });\n */\n\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb) {\n animateOrSetProps(true, el, props, animatableModel, dataIndex, cb);\n}\n/**\n * Init graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n *\n * @param {module:zrender/Element} el\n * @param {Object} props\n * @param {module:echarts/model/Model} [animatableModel]\n * @param {number} [dataIndex]\n * @param {Function} cb\n */\n\n\nfunction initProps(el, props, animatableModel, dataIndex, cb) {\n animateOrSetProps(false, el, props, animatableModel, dataIndex, cb);\n}\n/**\n * Get transform matrix of target (param target),\n * in coordinate of its ancestor (param ancestor)\n *\n * @param {module:zrender/mixin/Transformable} target\n * @param {module:zrender/mixin/Transformable} [ancestor]\n */\n\n\nfunction getTransform(target, ancestor) {\n var mat = matrix.identity([]);\n\n while (target && target !== ancestor) {\n matrix.mul(mat, target.getLocalTransform(), mat);\n target = target.parent;\n }\n\n return mat;\n}\n/**\n * Apply transform to an vertex.\n * @param {Array.} target [x, y]\n * @param {Array.|TypedArray.|Object} transform Can be:\n * + Transform matrix: like [1, 0, 0, 1, 0, 0]\n * + {position, rotation, scale}, the same as `zrender/Transformable`.\n * @param {boolean=} invert Whether use invert matrix.\n * @return {Array.} [x, y]\n */\n\n\nfunction applyTransform(target, transform, invert) {\n if (transform && !zrUtil.isArrayLike(transform)) {\n transform = Transformable.getLocalTransform(transform);\n }\n\n if (invert) {\n transform = matrix.invert([], transform);\n }\n\n return vector.applyTransform([], target, transform);\n}\n/**\n * @param {string} direction 'left' 'right' 'top' 'bottom'\n * @param {Array.} transform Transform matrix: like [1, 0, 0, 1, 0, 0]\n * @param {boolean=} invert Whether use invert matrix.\n * @return {string} Transformed direction. 'left' 'right' 'top' 'bottom'\n */\n\n\nfunction transformDirection(direction, transform, invert) {\n // Pick a base, ensure that transform result will not be (0, 0).\n var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n vertex = applyTransform(vertex, transform, invert);\n return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n/**\n * Apply group transition animation from g1 to g2.\n * If no animatableModel, no animation.\n */\n\n\nfunction groupTransition(g1, g2, animatableModel, cb) {\n if (!g1 || !g2) {\n return;\n }\n\n function getElMap(g) {\n var elMap = {};\n g.traverse(function (el) {\n if (!el.isGroup && el.anid) {\n elMap[el.anid] = el;\n }\n });\n return elMap;\n }\n\n function getAnimatableProps(el) {\n var obj = {\n position: vector.clone(el.position),\n rotation: el.rotation\n };\n\n if (el.shape) {\n obj.shape = zrUtil.extend({}, el.shape);\n }\n\n return obj;\n }\n\n var elMap1 = getElMap(g1);\n g2.traverse(function (el) {\n if (!el.isGroup && el.anid) {\n var oldEl = elMap1[el.anid];\n\n if (oldEl) {\n var newProp = getAnimatableProps(el);\n el.attr(getAnimatableProps(oldEl));\n updateProps(el, newProp, animatableModel, el.dataIndex);\n } // else {\n // if (el.previousProps) {\n // graphic.updateProps\n // }\n // }\n\n }\n });\n}\n/**\n * @param {Array.>} points Like: [[23, 44], [53, 66], ...]\n * @param {Object} rect {x, y, width, height}\n * @return {Array.>} A new clipped points.\n */\n\n\nfunction clipPointsByRect(points, rect) {\n // FIXME: this way migth be incorrect when grpahic clipped by a corner.\n // and when element have border.\n return zrUtil.map(points, function (point) {\n var x = point[0];\n x = mathMax(x, rect.x);\n x = mathMin(x, rect.x + rect.width);\n var y = point[1];\n y = mathMax(y, rect.y);\n y = mathMin(y, rect.y + rect.height);\n return [x, y];\n });\n}\n/**\n * @param {Object} targetRect {x, y, width, height}\n * @param {Object} rect {x, y, width, height}\n * @return {Object} A new clipped rect. If rect size are negative, return undefined.\n */\n\n\nfunction clipRectByRect(targetRect, rect) {\n var x = mathMax(targetRect.x, rect.x);\n var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n var y = mathMax(targetRect.y, rect.y);\n var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height); // If the total rect is cliped, nothing, including the border,\n // should be painted. So return undefined.\n\n if (x2 >= x && y2 >= y) {\n return {\n x: x,\n y: y,\n width: x2 - x,\n height: y2 - y\n };\n }\n}\n/**\n * @param {string} iconStr Support 'image://' or 'path://' or direct svg path.\n * @param {Object} [opt] Properties of `module:zrender/Element`, except `style`.\n * @param {Object} [rect] {x, y, width, height}\n * @return {module:zrender/Element} Icon path or image element.\n */\n\n\nfunction createIcon(iconStr, opt, rect) {\n opt = zrUtil.extend({\n rectHover: true\n }, opt);\n var style = opt.style = {\n strokeNoScale: true\n };\n rect = rect || {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n };\n\n if (iconStr) {\n return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), zrUtil.defaults(style, rect), new ZImage(opt)) : makePath(iconStr.replace('path://', ''), opt, rect, 'center');\n }\n}\n/**\n * Return `true` if the given line (line `a`) and the given polygon\n * are intersect.\n * Note that we do not count colinear as intersect here because no\n * requirement for that. We could do that if required in future.\n *\n * @param {number} a1x\n * @param {number} a1y\n * @param {number} a2x\n * @param {number} a2y\n * @param {Array.>} points Points of the polygon.\n * @return {boolean}\n */\n\n\nfunction linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n var p = points[i];\n\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n return true;\n }\n\n p2 = p;\n }\n}\n/**\n * Return `true` if the given two lines (line `a` and line `b`)\n * are intersect.\n * Note that we do not count colinear as intersect here because no\n * requirement for that. We could do that if required in future.\n *\n * @param {number} a1x\n * @param {number} a1y\n * @param {number} a2x\n * @param {number} a2y\n * @param {number} b1x\n * @param {number} b1y\n * @param {number} b2x\n * @param {number} b2y\n * @return {boolean}\n */\n\n\nfunction lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n // let `vec_m` to be `vec_a2 - vec_a1` and `vec_n` to be `vec_b2 - vec_b1`.\n var mx = a2x - a1x;\n var my = a2y - a1y;\n var nx = b2x - b1x;\n var ny = b2y - b1y; // `vec_m` and `vec_n` are parallel iff\n // exising `k` such that `vec_m = k · vec_n`, equivalent to `vec_m X vec_n = 0`.\n\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n if (nearZero(nmCrossProduct)) {\n return false;\n } // `vec_m` and `vec_n` are intersect iff\n // existing `p` and `q` in [0, 1] such that `vec_a1 + p * vec_m = vec_b1 + q * vec_n`,\n // such that `q = ((vec_a1 - vec_b1) X vec_m) / (vec_n X vec_m)`\n // and `p = ((vec_a1 - vec_b1) X vec_n) / (vec_n X vec_m)`.\n\n\n var b1a1x = a1x - b1x;\n var b1a1y = a1y - b1y;\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n if (q < 0 || q > 1) {\n return false;\n }\n\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n if (p < 0 || p > 1) {\n return false;\n }\n\n return true;\n}\n/**\n * Cross product of 2-dimension vector.\n */\n\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n return val <= 1e-6 && val >= -1e-6;\n} // Register built-in shapes. These shapes might be overwirtten\n// by users, although we do not recommend that.\n\n\nregisterShape('circle', Circle);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexports.Z2_EMPHASIS_LIFT = Z2_EMPHASIS_LIFT;\nexports.CACHED_LABEL_STYLE_PROPERTIES = CACHED_LABEL_STYLE_PROPERTIES;\nexports.extendShape = extendShape;\nexports.extendPath = extendPath;\nexports.registerShape = registerShape;\nexports.getShapeClass = getShapeClass;\nexports.makePath = makePath;\nexports.makeImage = makeImage;\nexports.mergePath = mergePath;\nexports.resizePath = resizePath;\nexports.subPixelOptimizeLine = subPixelOptimizeLine;\nexports.subPixelOptimizeRect = subPixelOptimizeRect;\nexports.subPixelOptimize = subPixelOptimize;\nexports.setElementHoverStyle = setElementHoverStyle;\nexports.setHoverStyle = setHoverStyle;\nexports.setAsHighDownDispatcher = setAsHighDownDispatcher;\nexports.isHighDownDispatcher = isHighDownDispatcher;\nexports.getHighlightDigit = getHighlightDigit;\nexports.setLabelStyle = setLabelStyle;\nexports.modifyLabelStyle = modifyLabelStyle;\nexports.setTextStyle = setTextStyle;\nexports.setText = setText;\nexports.getFont = getFont;\nexports.updateProps = updateProps;\nexports.initProps = initProps;\nexports.getTransform = getTransform;\nexports.applyTransform = applyTransform;\nexports.transformDirection = transformDirection;\nexports.groupTransition = groupTransition;\nexports.clipPointsByRect = clipPointsByRect;\nexports.clipRectByRect = clipRectByRect;\nexports.createIcon = createIcon;\nexports.linePolygonIntersect = linePolygonIntersect;\nexports.lineLineIntersect = lineLineIntersect;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar throttle = require(\"../../util/throttle\");\n\nvar DataZoomView = require(\"./DataZoomView\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar layout = require(\"../../util/layout\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar Rect = graphic.Rect;\nvar linearMap = numberUtil.linearMap;\nvar asc = numberUtil.asc;\nvar bind = zrUtil.bind;\nvar each = zrUtil.each; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar SliderZoomView = DataZoomView.extend({\n type: 'dataZoom.slider',\n init: function (ecModel, api) {\n /**\n * @private\n * @type {Object}\n */\n this._displayables = {};\n /**\n * @private\n * @type {string}\n */\n\n this._orient;\n /**\n * [0, 100]\n * @private\n */\n\n this._range;\n /**\n * [coord of the first handle, coord of the second handle]\n * @private\n */\n\n this._handleEnds;\n /**\n * [length, thick]\n * @private\n * @type {Array.}\n */\n\n this._size;\n /**\n * @private\n * @type {number}\n */\n\n this._handleWidth;\n /**\n * @private\n * @type {number}\n */\n\n this._handleHeight;\n /**\n * @private\n */\n\n this._location;\n /**\n * @private\n */\n\n this._dragging;\n /**\n * @private\n */\n\n this._dataShadowInfo;\n this.api = api;\n },\n\n /**\n * @override\n */\n render: function (dataZoomModel, ecModel, api, payload) {\n SliderZoomView.superApply(this, 'render', arguments);\n throttle.createOrUpdate(this, '_dispatchZoomAction', this.dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.get('orient');\n\n if (this.dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n } // Notice: this._resetInterval() should not be executed when payload.type\n // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n },\n\n /**\n * @override\n */\n remove: function () {\n SliderZoomView.superApply(this, 'remove', arguments);\n throttle.clear(this, '_dispatchZoomAction');\n },\n\n /**\n * @override\n */\n dispose: function () {\n SliderZoomView.superApply(this, 'dispose', arguments);\n throttle.clear(this, '_dispatchZoomAction');\n },\n _buildView: function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.barGroup = new graphic.Group();\n\n this._renderBackground();\n\n this._renderHandle();\n\n this._renderDataShadow();\n\n thisGroup.add(barGroup);\n\n this._positionGroup();\n },\n\n /**\n * @private\n */\n _resetLocation: function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api; // If some of x/y/width/height are not specified,\n // auto-adapt according to target grid.\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n }; // Default align by coordinate system rect.\n\n var positionInfo = this._orient === HORIZONTAL ? {\n // Why using 'right', because right should be used in vertical,\n // and it is better to be consistent for dealing with position param merge.\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n // vertical\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n }; // Do not write back to option and replace value 'ph', because\n // the 'ph' value should be recalculated when resize.\n\n var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n zrUtil.each(['right', 'top', 'width', 'height'], function (name) {\n if (layoutParams[name] === 'ph') {\n layoutParams[name] = positionInfo[name];\n }\n });\n var layoutRect = layout.getLayoutRect(layoutParams, ecSize, dataZoomModel.padding);\n this._location = {\n x: layoutRect.x,\n y: layoutRect.y\n };\n this._size = [layoutRect.width, layoutRect.height];\n this._orient === VERTICAL && this._size.reverse();\n },\n\n /**\n * @private\n */\n _positionGroup: function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient; // Just use the first axis to determine mapping.\n\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var barGroup = this._displayables.barGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n barGroup.attr(orient === HORIZONTAL && !inverse ? {\n scale: otherAxisInverse ? [1, 1] : [1, -1]\n } : orient === HORIZONTAL && inverse ? {\n scale: otherAxisInverse ? [-1, 1] : [-1, -1]\n } : orient === VERTICAL && !inverse ? {\n scale: otherAxisInverse ? [1, -1] : [1, 1],\n rotation: Math.PI / 2 // Dont use Math.PI, considering shadow direction.\n\n } : {\n scale: otherAxisInverse ? [-1, -1] : [-1, 1],\n rotation: Math.PI / 2\n }); // Position barGroup\n\n var rect = thisGroup.getBoundingRect([barGroup]);\n thisGroup.attr('position', [location.x - rect.x, location.y - rect.y]);\n },\n\n /**\n * @private\n */\n _getViewExtent: function () {\n return [0, this._size[0]];\n },\n _renderBackground: function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.barGroup;\n barGroup.add(new Rect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: dataZoomModel.get('backgroundColor')\n },\n z2: -40\n })); // Click panel, over shadow, below handles.\n\n barGroup.add(new Rect({\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: 'transparent'\n },\n z2: 0,\n onclick: zrUtil.bind(this._onClickPanelClick, this)\n }));\n },\n _renderDataShadow: function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n if (!info) {\n return;\n }\n\n var size = this._size;\n var seriesModel = info.series;\n var data = seriesModel.getRawData();\n var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() // @see candlestick\n : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var otherDataExtent = data.getDataExtent(otherDim); // Nice extent.\n\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n var otherShadowExtent = [0, size[1]];\n var thisShadowExtent = [0, size[0]];\n var areaPoints = [[size[0], 0], [0, 0]];\n var linePoints = [];\n var step = thisShadowExtent[1] / (data.count() - 1);\n var thisCoord = 0; // Optimize for large data shadow\n\n var stride = Math.round(data.count() / size[0]);\n var lastIsEmpty;\n data.each([otherDim], function (value, index) {\n if (stride > 0 && index % stride) {\n thisCoord += step;\n return;\n } // FIXME\n // Should consider axis.min/axis.max when drawing dataShadow.\n // FIXME\n // 应该使用统一的空判断?还是在list里进行空判断?\n\n\n var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true); // Attempt to draw data shadow precisely when there are empty value.\n\n if (isEmpty && !lastIsEmpty && index) {\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n } else if (!isEmpty && lastIsEmpty) {\n areaPoints.push([thisCoord, 0]);\n linePoints.push([thisCoord, 0]);\n }\n\n areaPoints.push([thisCoord, otherCoord]);\n linePoints.push([thisCoord, otherCoord]);\n thisCoord += step;\n lastIsEmpty = isEmpty;\n });\n var dataZoomModel = this.dataZoomModel; // var dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n this._displayables.barGroup.add(new graphic.Polygon({\n shape: {\n points: areaPoints\n },\n style: zrUtil.defaults({\n fill: dataZoomModel.get('dataBackgroundColor')\n }, dataZoomModel.getModel('dataBackground.areaStyle').getAreaStyle()),\n silent: true,\n z2: -20\n }));\n\n this._displayables.barGroup.add(new graphic.Polyline({\n shape: {\n points: linePoints\n },\n style: dataZoomModel.getModel('dataBackground.lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n }));\n },\n _prepareDataShadowInfo: function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n } // Find a representative series.\n\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(dimNames.name, axisIndex).getTargetSeriesModels();\n zrUtil.each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && zrUtil.indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(dimNames.axis, axisIndex).axis;\n var otherDim = getOtherDim(dimNames.name);\n var otherAxisInverse;\n var coordSys = seriesModel.coordinateSystem;\n\n if (otherDim != null && coordSys.getOtherAxis) {\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n }\n\n otherDim = seriesModel.getData().mapDimension(otherDim);\n result = {\n thisAxis: thisAxis,\n series: seriesModel,\n thisDim: dimNames.name,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n },\n _renderHandle: function () {\n var displaybles = this._displayables;\n var handles = displaybles.handles = [];\n var handleLabels = displaybles.handleLabels = [];\n var barGroup = this._displayables.barGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n barGroup.add(displaybles.filler = new Rect({\n draggable: true,\n cursor: getCursor(this._orient),\n drift: bind(this._onDragMove, this, 'all'),\n ondragstart: bind(this._showDataInfo, this, true),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false),\n style: {\n fill: dataZoomModel.get('fillerColor'),\n textPosition: 'inside'\n }\n })); // Frame border.\n\n barGroup.add(new Rect({\n silent: true,\n subPixelOptimize: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n fill: 'rgba(0,0,0,0)'\n }\n }));\n each([0, 1], function (handleIndex) {\n var path = graphic.createIcon(dataZoomModel.get('handleIcon'), {\n cursor: getCursor(this._orient),\n draggable: true,\n drift: bind(this._onDragMove, this, handleIndex),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false)\n }, {\n x: -1,\n y: 0,\n width: 2,\n height: 2\n });\n var bRect = path.getBoundingRect();\n this._handleHeight = numberUtil.parsePercent(dataZoomModel.get('handleSize'), this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n var handleColor = dataZoomModel.get('handleColor'); // Compatitable with previous version\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n barGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.textStyleModel;\n this.group.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n textVerticalAlign: 'middle',\n textAlign: 'center',\n textFill: textStyleModel.getTextColor(),\n textFont: textStyleModel.getFont()\n },\n z2: 10\n }));\n }, this);\n },\n\n /**\n * @private\n */\n _resetInterval: function () {\n var range = this._range = this.dataZoomModel.getPercentRange();\n\n var viewExtent = this._getViewExtent();\n\n this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n },\n\n /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} delta\n * @return {boolean} changed\n */\n _updateInterval: function (handleIndex, delta) {\n var dataZoomModel = this.dataZoomModel;\n var handleEnds = this._handleEnds;\n\n var viewExtend = this._getViewExtent();\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n var percentExtent = [0, 100];\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n var lastRange = this._range;\n var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n },\n\n /**\n * @private\n */\n _updateView: function (nonRealtime) {\n var displaybles = this._displayables;\n var handleEnds = this._handleEnds;\n var handleInterval = asc(handleEnds.slice());\n var size = this._size;\n each([0, 1], function (handleIndex) {\n // Handles\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scale: [handleHeight / 2, handleHeight / 2],\n position: [handleEnds[handleIndex], size[1] / 2 - handleHeight / 2]\n });\n }, this); // Filler\n\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n\n this._updateDataInfo(nonRealtime);\n },\n\n /**\n * @private\n */\n _updateDataInfo: function (nonRealtime) {\n var dataZoomModel = this.dataZoomModel;\n var displaybles = this._displayables;\n var handleLabels = displaybles.handleLabels;\n var orient = this._orient;\n var labelTexts = ['', '']; // FIXME\n // date型,支持formatter,autoformatter(ec2 date.getAutoFormatter)\n\n if (dataZoomModel.get('showDetail')) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var axis = axisProxy.getAxisModel().axis;\n var range = this._range;\n var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n ? axisProxy.calculateDataWindow({\n start: range[0],\n end: range[1]\n }).valueWindow : axisProxy.getDataValueWindow();\n labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n }\n }\n\n var orderedHandleEnds = asc(this._handleEnds.slice());\n setLabel.call(this, 0);\n setLabel.call(this, 1);\n\n function setLabel(handleIndex) {\n // Label\n // Text should not transform by barGroup.\n // Ignore handlers transform\n var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n var offset = this._handleWidth / 2 + LABEL_GAP;\n var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n textVerticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n textAlign: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n },\n\n /**\n * @private\n */\n _formatLabel: function (value, axis) {\n var dataZoomModel = this.dataZoomModel;\n var labelFormatter = dataZoomModel.get('labelFormatter');\n var labelPrecision = dataZoomModel.get('labelPrecision');\n\n if (labelPrecision == null || labelPrecision === 'auto') {\n labelPrecision = axis.getPixelPrecision();\n }\n\n var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel(Math.round(value)) // param of toFixed should less then 20.\n : value.toFixed(Math.min(labelPrecision, 20));\n return zrUtil.isFunction(labelFormatter) ? labelFormatter(value, valueStr) : zrUtil.isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n },\n\n /**\n * @private\n * @param {boolean} showOrHide true: show, false: hide\n */\n _showDataInfo: function (showOrHide) {\n // Always show when drgging.\n showOrHide = this._dragging || showOrHide;\n var handleLabels = this._displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide);\n },\n _onDragMove: function (handleIndex, dx, dy, event) {\n this._dragging = true; // For mobile device, prevent screen slider on the button.\n\n eventTool.stop(event.event); // Transform dx, dy to bar coordination.\n\n var barTransform = this._displayables.barGroup.getLocalTransform();\n\n var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n var changed = this._updateInterval(handleIndex, vertex[0]);\n\n var realtime = this.dataZoomModel.get('realtime');\n\n this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n // which cause bad visual effect when progressive enabled.\n\n\n changed && realtime && this._dispatchZoomAction();\n },\n _onDragEnd: function () {\n this._dragging = false;\n\n this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n // drag end will cause the whole view rerender, which is unnecessary.\n\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction();\n },\n _onClickPanelClick: function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.barGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n return;\n }\n\n var handleEnds = this._handleEnds;\n var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n var changed = this._updateInterval('all', localPoint[0] - center);\n\n this._updateView();\n\n changed && this._dispatchZoomAction();\n },\n\n /**\n * This action will be throttled.\n * @private\n */\n _dispatchZoomAction: function () {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n start: range[0],\n end: range[1]\n });\n },\n\n /**\n * @private\n */\n _findCoordRect: function () {\n // Find the grid coresponding to the first axis referred by dataZoom.\n var rect;\n each(this.getTargetCoordInfo(), function (coordInfoList) {\n if (!rect && coordInfoList.length) {\n var coordSys = coordInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\n });\n\n if (!rect) {\n var width = this.api.getWidth();\n var height = this.api.getHeight();\n rect = {\n x: width * 0.2,\n y: height * 0.2,\n width: width * 0.6,\n height: height * 0.6\n };\n }\n\n return rect;\n }\n});\n\nfunction getOtherDim(thisDim) {\n // FIXME\n // 这个逻辑和getOtherAxis里一致,但是写在这里是否不好\n var map = {\n x: 'y',\n y: 'x',\n radius: 'angle',\n angle: 'radius'\n };\n return map[thisDim];\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nvar _default = SliderZoomView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar Graph = require(\"../../data/Graph\");\n\nvar linkList = require(\"../../data/helper/linkList\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar createListFromArray = require(\"./createListFromArray\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(nodes, edges, seriesModel, directed, beforeLink) {\n // ??? TODO\n // support dataset?\n var graph = new Graph(directed);\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(zrUtil.retrieve( // Id, name, dataIndex\n nodes[i].id, nodes[i].name, i), i);\n }\n\n var linkNameList = [];\n var validEdges = [];\n var linkCount = 0;\n\n for (var i = 0; i < edges.length; i++) {\n var link = edges[i];\n var source = link.source;\n var target = link.target; // addEdge may fail when source or target not exists\n\n if (graph.addEdge(source, target, linkCount)) {\n validEdges.push(link);\n linkNameList.push(zrUtil.retrieve(link.id, source + ' > ' + target));\n linkCount++;\n }\n }\n\n var coordSys = seriesModel.get('coordinateSystem');\n var nodeData;\n\n if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n nodeData = createListFromArray(nodes, seriesModel);\n } else {\n var coordSysCtor = CoordinateSystem.get(coordSys);\n var coordDimensions = coordSysCtor && coordSysCtor.type !== 'view' ? coordSysCtor.dimensions || [] : []; // FIXME: Some geo do not need `value` dimenson, whereas `calendar` needs\n // `value` dimension, but graph need `value` dimension. It's better to\n // uniform this behavior.\n\n if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n coordDimensions.concat(['value']);\n }\n\n var dimensionNames = createDimensions(nodes, {\n coordDimensions: coordDimensions\n });\n nodeData = new List(dimensionNames, seriesModel);\n nodeData.initData(nodes);\n }\n\n var edgeData = new List(['value'], seriesModel);\n edgeData.initData(validEdges, linkNameList);\n beforeLink && beforeLink(nodeData, edgeData);\n linkList({\n mainData: nodeData,\n struct: graph,\n structAttr: 'graph',\n datas: {\n node: nodeData,\n edge: edgeData\n },\n datasAttr: {\n node: 'data',\n edge: 'edgeData'\n }\n }); // Update dataIndex of nodes and edges because invalid edge may be removed\n\n graph.update();\n return graph;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar IndicatorAxis = require(\"./IndicatorAxis\");\n\nvar IntervalScale = require(\"../../scale/Interval\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _axisHelper = require(\"../axisHelper\");\n\nvar getScaleExtent = _axisHelper.getScaleExtent;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar LogScale = require(\"../../scale/Log\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO clockwise\nfunction Radar(radarModel, ecModel, api) {\n this._model = radarModel;\n /**\n * Radar dimensions\n * @type {Array.}\n */\n\n this.dimensions = [];\n this._indicatorAxes = zrUtil.map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n var dim = 'indicator_' + idx;\n var indicatorAxis = new IndicatorAxis(dim, indicatorModel.get('axisType') === 'log' ? new LogScale() : new IntervalScale());\n indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis\n\n indicatorAxis.model = indicatorModel;\n indicatorModel.axis = indicatorAxis;\n this.dimensions.push(dim);\n return indicatorAxis;\n }, this);\n this.resize(radarModel, api);\n /**\n * @type {number}\n * @readOnly\n */\n\n this.cx;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.cy;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.r;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.r0;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.startAngle;\n}\n\nRadar.prototype.getIndicatorAxes = function () {\n return this._indicatorAxes;\n};\n\nRadar.prototype.dataToPoint = function (value, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n};\n\nRadar.prototype.coordToPoint = function (coord, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n var angle = indicatorAxis.angle;\n var x = this.cx + coord * Math.cos(angle);\n var y = this.cy - coord * Math.sin(angle);\n return [x, y];\n};\n\nRadar.prototype.pointToData = function (pt) {\n var dx = pt[0] - this.cx;\n var dy = pt[1] - this.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx); // Find the closest angle\n // FIXME index can calculated directly\n\n var minRadianDiff = Infinity;\n var closestAxis;\n var closestAxisIdx = -1;\n\n for (var i = 0; i < this._indicatorAxes.length; i++) {\n var indicatorAxis = this._indicatorAxes[i];\n var diff = Math.abs(radian - indicatorAxis.angle);\n\n if (diff < minRadianDiff) {\n closestAxis = indicatorAxis;\n closestAxisIdx = i;\n minRadianDiff = diff;\n }\n }\n\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n};\n\nRadar.prototype.resize = function (radarModel, api) {\n var center = radarModel.get('center');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\n this.cx = numberUtil.parsePercent(center[0], viewWidth);\n this.cy = numberUtil.parsePercent(center[1], viewHeight);\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180; // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']`\n\n var radius = radarModel.get('radius');\n\n if (typeof radius === 'string' || typeof radius === 'number') {\n radius = [0, radius];\n }\n\n this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n this.r = numberUtil.parsePercent(radius[1], viewSize);\n zrUtil.each(this._indicatorAxes, function (indicatorAxis, idx) {\n indicatorAxis.setExtent(this.r0, this.r);\n var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; // Normalize to [-PI, PI]\n\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n indicatorAxis.angle = angle;\n }, this);\n};\n\nRadar.prototype.update = function (ecModel, api) {\n var indicatorAxes = this._indicatorAxes;\n var radarModel = this._model;\n zrUtil.each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\n });\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n return;\n }\n\n var data = radarSeries.getData();\n zrUtil.each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n });\n }, this);\n var splitNumber = radarModel.get('splitNumber');\n\n function increaseInterval(interval) {\n var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10)); // Increase interval\n\n var f = interval / exp10;\n\n if (f === 2) {\n f = 5;\n } else {\n // f is 2 or 5\n f *= 2;\n }\n\n return f * exp10;\n } // Force all the axis fixing the maxSplitNumber.\n\n\n zrUtil.each(indicatorAxes, function (indicatorAxis, idx) {\n var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\n niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n var axisModel = indicatorAxis.model;\n var scale = indicatorAxis.scale;\n var fixedMin = axisModel.getMin();\n var fixedMax = axisModel.getMax();\n var interval = scale.getInterval();\n\n if (fixedMin != null && fixedMax != null) {\n // User set min, max, divide to get new interval\n scale.setExtent(+fixedMin, +fixedMax);\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\n } else if (fixedMin != null) {\n var max; // User set min, expand extent on the other side\n\n do {\n max = fixedMin + interval * splitNumber;\n scale.setExtent(+fixedMin, max); // Interval must been set after extent\n // FIXME\n\n scale.setInterval(interval);\n interval = increaseInterval(interval);\n } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n } else if (fixedMax != null) {\n var min; // User set min, expand extent on the other side\n\n do {\n min = fixedMax - interval * splitNumber;\n scale.setExtent(min, +fixedMax);\n scale.setInterval(interval);\n interval = increaseInterval(interval);\n } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n } else {\n var nicedSplitNumber = scale.getTicks().length - 1;\n\n if (nicedSplitNumber > splitNumber) {\n interval = increaseInterval(interval);\n } // TODO\n\n\n var max = Math.ceil(rawExtent[1] / interval) * interval;\n var min = numberUtil.round(max - interval * splitNumber);\n scale.setExtent(min, max);\n scale.setInterval(interval);\n }\n });\n};\n/**\n * Radar dimensions is based on the data\n * @type {Array}\n */\n\n\nRadar.dimensions = [];\n\nRadar.create = function (ecModel, api) {\n var radarList = [];\n ecModel.eachComponent('radar', function (radarModel) {\n var radar = new Radar(radarModel, ecModel, api);\n radarList.push(radar);\n radarModel.coordinateSystem = radar;\n });\n ecModel.eachSeriesByType('radar', function (radarSeries) {\n if (radarSeries.get('coordinateSystem') === 'radar') {\n // Inject coordinate system\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n }\n });\n return radarList;\n};\n\nCoordinateSystem.register('radar', Radar);\nvar _default = Radar;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./graph/GraphSeries\");\n\nrequire(\"./graph/GraphView\");\n\nrequire(\"./graph/graphAction\");\n\nvar categoryFilter = require(\"./graph/categoryFilter\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar categoryVisual = require(\"./graph/categoryVisual\");\n\nvar edgeVisual = require(\"./graph/edgeVisual\");\n\nvar simpleLayout = require(\"./graph/simpleLayout\");\n\nvar circularLayout = require(\"./graph/circularLayout\");\n\nvar forceLayout = require(\"./graph/forceLayout\");\n\nvar createView = require(\"./graph/createView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerProcessor(categoryFilter);\necharts.registerVisual(visualSymbol('graph', 'circle', null));\necharts.registerVisual(categoryVisual);\necharts.registerVisual(edgeVisual);\necharts.registerLayout(simpleLayout);\necharts.registerLayout(echarts.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\necharts.registerLayout(forceLayout); // Graph view coordinate system\n\necharts.registerCoordinateSystem('graphView', {\n create: createView\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar dataFormatMixin = require(\"../../model/mixin/dataFormat\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar addCommas = formatUtil.addCommas;\nvar encodeHTML = formatUtil.encodeHTML;\n\nfunction fillLabel(opt) {\n modelUtil.defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar MarkerModel = echarts.extendComponentModel({\n type: 'marker',\n dependencies: ['series', 'grid', 'polar', 'geo'],\n\n /**\n * @overrite\n */\n init: function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._mergeOption(option, ecModel, false, true);\n },\n\n /**\n * @return {boolean}\n */\n isAnimationEnabled: function () {\n if (env.node) {\n return false;\n }\n\n var hostSeries = this.__hostSeries;\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n },\n\n /**\n * @overrite\n */\n mergeOption: function (newOpt, ecModel) {\n this._mergeOption(newOpt, ecModel, false, false);\n },\n _mergeOption: function (newOpt, ecModel, createdBySelf, isInit) {\n var MarkerModel = this.constructor;\n var modelPropName = this.mainType + 'Model';\n\n if (!createdBySelf) {\n ecModel.eachSeries(function (seriesModel) {\n var markerOpt = seriesModel.get(this.mainType, true);\n var markerModel = seriesModel[modelPropName];\n\n if (!markerOpt || !markerOpt.data) {\n seriesModel[modelPropName] = null;\n return;\n }\n\n if (!markerModel) {\n if (isInit) {\n // Default label emphasis `position` and `show`\n fillLabel(markerOpt);\n }\n\n zrUtil.each(markerOpt.data, function (item) {\n // FIXME Overwrite fillLabel method ?\n if (item instanceof Array) {\n fillLabel(item[0]);\n fillLabel(item[1]);\n } else {\n fillLabel(item);\n }\n });\n markerModel = new MarkerModel(markerOpt, this, ecModel);\n zrUtil.extend(markerModel, {\n mainType: this.mainType,\n // Use the same series index and name\n seriesIndex: seriesModel.seriesIndex,\n name: seriesModel.name,\n createdBySelf: true\n });\n markerModel.__hostSeries = seriesModel;\n } else {\n markerModel._mergeOption(markerOpt, ecModel, true);\n }\n\n seriesModel[modelPropName] = markerModel;\n }, this);\n }\n },\n formatTooltip: function (dataIndex) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value);\n var name = data.getName(dataIndex);\n var html = encodeHTML(this.name);\n\n if (value != null || name) {\n html += '
';\n }\n\n if (name) {\n html += encodeHTML(name);\n\n if (value != null) {\n html += ' : ';\n }\n }\n\n if (value != null) {\n html += encodeHTML(formattedValue);\n }\n\n return html;\n },\n getData: function () {\n return this._data;\n },\n setData: function (data) {\n this._data = data;\n }\n});\nzrUtil.mixin(MarkerModel, dataFormatMixin);\nvar _default = MarkerModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = require(\"../../util/layout\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction getSortedIndices(data, sort) {\n var valueDim = data.mapDimension('value');\n var valueArr = data.mapArray(valueDim, function (val) {\n return val;\n });\n var indices = [];\n var isAscending = sort === 'ascending';\n\n for (var i = 0, len = data.count(); i < len; i++) {\n indices[i] = i;\n } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n if (typeof sort === 'function') {\n indices.sort(sort);\n } else if (sort !== 'none') {\n indices.sort(function (a, b) {\n return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n });\n }\n\n return indices;\n}\n\nfunction labelLayout(data) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var labelLineModel = itemModel.getModel('labelLine');\n var layout = data.getItemLayout(idx);\n var points = layout.points;\n var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n var textAlign;\n var textX;\n var textY;\n var linePoints;\n\n if (isLabelInside) {\n if (labelPosition === 'insideLeft') {\n textX = (points[0][0] + points[3][0]) / 2 + 5;\n textY = (points[0][1] + points[3][1]) / 2;\n textAlign = 'left';\n } else if (labelPosition === 'insideRight') {\n textX = (points[1][0] + points[2][0]) / 2 - 5;\n textY = (points[1][1] + points[2][1]) / 2;\n textAlign = 'right';\n } else {\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n textAlign = 'center';\n }\n\n linePoints = [[textX, textY], [textX, textY]];\n } else {\n var x1;\n var y1;\n var x2;\n var labelLineLen = labelLineModel.get('length');\n\n if (labelPosition === 'left') {\n // Left side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'right') {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n } else if (labelPosition === 'rightTop') {\n // RightTop side\n x1 = points[1][0];\n y1 = points[1][1];\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'top';\n } else if (labelPosition === 'rightBottom') {\n // RightBottom side\n x1 = points[2][0];\n y1 = points[2][1];\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'bottom';\n } else if (labelPosition === 'leftTop') {\n // LeftTop side\n x1 = points[0][0];\n y1 = points[1][1];\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'leftBottom') {\n // LeftBottom side\n x1 = points[3][0];\n y1 = points[2][1];\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n }\n\n var y2 = y1;\n linePoints = [[x1, y1], [x2, y2]];\n textY = y2;\n }\n\n layout.label = {\n linePoints: linePoints,\n x: textX,\n y: textY,\n verticalAlign: 'middle',\n textAlign: textAlign,\n inside: isLabelInside\n };\n });\n}\n\nfunction _default(ecModel, api, payload) {\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var sort = seriesModel.get('sort');\n var viewRect = getViewRect(seriesModel, api);\n var indices = getSortedIndices(data, sort);\n var sizeExtent = [parsePercent(seriesModel.get('minSize'), viewRect.width), parsePercent(seriesModel.get('maxSize'), viewRect.width)];\n var dataExtent = data.getDataExtent(valueDim);\n var min = seriesModel.get('min');\n var max = seriesModel.get('max');\n\n if (min == null) {\n min = Math.min(dataExtent[0], 0);\n }\n\n if (max == null) {\n max = dataExtent[1];\n }\n\n var funnelAlign = seriesModel.get('funnelAlign');\n var gap = seriesModel.get('gap');\n var itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\n var y = viewRect.y;\n\n var getLinePoints = function (idx, offY) {\n // End point index is data.count() and we assign it 0\n var val = data.get(valueDim, idx) || 0;\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n var x0;\n\n switch (funnelAlign) {\n case 'left':\n x0 = viewRect.x;\n break;\n\n case 'center':\n x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = viewRect.x + viewRect.width - itemWidth;\n break;\n }\n\n return [[x0, offY], [x0 + itemWidth, offY]];\n };\n\n if (sort === 'ascending') {\n // From bottom to top\n itemHeight = -itemHeight;\n gap = -gap;\n y += viewRect.height;\n indices = indices.reverse();\n }\n\n for (var i = 0; i < indices.length; i++) {\n var idx = indices[i];\n var nextIdx = indices[i + 1];\n var itemModel = data.getItemModel(idx);\n var height = itemModel.get('itemStyle.height');\n\n if (height == null) {\n height = itemHeight;\n } else {\n height = parsePercent(height, viewRect.height);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = getLinePoints(idx, y);\n var end = getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n\n labelLayout(data);\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar _poly = require(\"../line/poly\");\n\nvar Polygon = _poly.Polygon;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar bind = _util.bind;\nvar extend = _util.extend;\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n type: 'themeRiver',\n init: function () {\n this._layers = [];\n },\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var layerSeries = seriesModel.getLayerSeries();\n var layoutInfo = data.getLayout('layoutInfo');\n var rect = layoutInfo.rect;\n var boundaryGap = layoutInfo.boundaryGap;\n group.attr('position', [0, rect.y + boundaryGap[0]]);\n\n function keyGetter(item) {\n return item.name;\n }\n\n var dataDiffer = new DataDiffer(this._layersSeries || [], layerSeries, keyGetter, keyGetter);\n var newLayersGroups = {};\n dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n function process(status, idx, oldIdx) {\n var oldLayersGroups = this._layers;\n\n if (status === 'remove') {\n group.remove(oldLayersGroups[idx]);\n return;\n }\n\n var points0 = [];\n var points1 = [];\n var color;\n var indices = layerSeries[idx].indices;\n\n for (var j = 0; j < indices.length; j++) {\n var layout = data.getItemLayout(indices[j]);\n var x = layout.x;\n var y0 = layout.y0;\n var y = layout.y;\n points0.push([x, y0]);\n points1.push([x, y0 + y]);\n color = data.getItemVisual(indices[j], 'color');\n }\n\n var polygon;\n var text;\n var textLayout = data.getItemLayout(indices[0]);\n var itemModel = data.getItemModel(indices[j - 1]);\n var labelModel = itemModel.getModel('label');\n var margin = labelModel.get('margin');\n\n if (status === 'add') {\n var layerGroup = newLayersGroups[idx] = new graphic.Group();\n polygon = new Polygon({\n shape: {\n points: points0,\n stackedOnPoints: points1,\n smooth: 0.4,\n stackedOnSmooth: 0.4,\n smoothConstraint: false\n },\n z2: 0\n });\n text = new graphic.Text({\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n });\n layerGroup.add(polygon);\n layerGroup.add(text);\n group.add(layerGroup);\n polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n polygon.removeClipPath();\n }));\n } else {\n var layerGroup = oldLayersGroups[oldIdx];\n polygon = layerGroup.childAt(0);\n text = layerGroup.childAt(1);\n group.add(layerGroup);\n newLayersGroups[idx] = layerGroup;\n graphic.updateProps(polygon, {\n shape: {\n points: points0,\n stackedOnPoints: points1\n }\n }, seriesModel);\n graphic.updateProps(text, {\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n }, seriesModel);\n }\n\n var hoverItemStyleModel = itemModel.getModel('emphasis.itemStyle');\n var itemStyleModel = itemModel.getModel('itemStyle');\n graphic.setTextStyle(text.style, labelModel, {\n text: labelModel.get('show') ? seriesModel.getFormattedLabel(indices[j - 1], 'normal') || data.getName(indices[j - 1]) : null,\n textVerticalAlign: 'middle'\n });\n polygon.setStyle(extend({\n fill: color\n }, itemStyleModel.getItemStyle(['color'])));\n graphic.setHoverStyle(polygon, hoverItemStyleModel.getItemStyle());\n }\n\n this._layersSeries = layerSeries;\n this._layers = newLayersGroups;\n },\n dispose: function () {}\n}); // add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width + 20,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n // Timeline controlStyle has other properties besides normal and emphasis\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine'); // treemap\n\n convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n // Check whether is not object (string\\null\\undefined ...)\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var propName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(propName)) {\n labelOptSingle[propName] = textStyle[propName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label'); // treemap\n\n compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option,\n // then the backward compat based on option type will not be performed.\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n } // mark point data\n\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n } // mark line data\n\n\n var markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n } // Series\n\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n } // sunburst starts from ec4, so it does not need to compat levels.\n\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nfunction _default(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n }); // radar.name.textStyle\n\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Parse shadow style\n// TODO Only shallow path support\nfunction _default(properties) {\n // Normalize\n for (var i = 0; i < properties.length; i++) {\n if (!properties[i][1]) {\n properties[i][1] = properties[i][0];\n }\n }\n\n return function (model, excludes, includes) {\n var style = {};\n\n for (var i = 0; i < properties.length; i++) {\n var propName = properties[i][1];\n\n if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n continue;\n }\n\n var val = model.getShallow(propName);\n\n if (val != null) {\n style[properties[i][0]] = val;\n }\n }\n\n return style;\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\nvar layout = require(\"../../util/layout\");\n\nvar labelLayout = require(\"./labelLayout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction _default(seriesType, ecModel, api, payload) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var viewRect = getViewRect(seriesModel, api);\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = parsePercent(viewRect.width, api.getWidth());\n var height = parsePercent(viewRect.height, api.getHeight());\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width) + viewRect.x;\n var cy = parsePercent(center[1], height) + viewRect.y;\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim); // Sum may be 0\n\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max]\n\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n var dir = clockwise ? 1 : -1;\n data.each(valueDim, function (value, idx) {\n var angle;\n\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r,\n viewRect: viewRect\n });\n return;\n } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\n\n\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = PI2 / validDataCount;\n }\n\n if (angle < minAngle) {\n angle = minAngle;\n restAngle -= minAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n\n var endAngle = currentAngle + dir * angle;\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: currentAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r,\n viewRect: viewRect\n });\n currentAngle = endAngle;\n }); // Some sector is constrained by minAngle\n // Rest sectors needs recalculate angle\n\n if (restAngle < PI2 && validDataCount) {\n // Average the angle if rest angle is not enough after all angles is\n // Constrained by minAngle\n if (restAngle <= 1e-3) {\n var angle = PI2 / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout = data.getItemLayout(idx);\n layout.angle = angle;\n layout.startAngle = startAngle + dir * idx * angle;\n layout.endAngle = startAngle + dir * (idx + 1) * angle;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout = data.getItemLayout(idx);\n var angle = layout.angle === minAngle ? minAngle : value * unitRadian;\n layout.startAngle = currentAngle;\n layout.endAngle = currentAngle + dir * angle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n\n labelLayout(seriesModel, r, viewRect.width, viewRect.height, viewRect.x, viewRect.y);\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n var paletteScope = {};\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var categoriesData = seriesModel.getCategoriesData();\n var data = seriesModel.getData();\n var categoryNameIdxMap = {};\n categoriesData.each(function (idx) {\n var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype.\n\n categoryNameIdxMap['ec-' + name] = idx;\n var itemModel = categoriesData.getItemModel(idx);\n var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(name, paletteScope);\n categoriesData.setItemVisual(idx, 'color', color);\n var itemStyleList = ['opacity', 'symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < itemStyleList.length; i++) {\n var itemStyle = itemModel.getShallow(itemStyleList[i], true);\n\n if (itemStyle != null) {\n categoriesData.setItemVisual(idx, itemStyleList[i], itemStyle);\n }\n }\n }); // Assign category color to visual\n\n if (categoriesData.count()) {\n data.each(function (idx) {\n var model = data.getItemModel(idx);\n var category = model.getShallow('category');\n\n if (category != null) {\n if (typeof category === 'string') {\n category = categoryNameIdxMap['ec-' + category];\n }\n\n var itemStyleList = ['color', 'opacity', 'symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < itemStyleList.length; i++) {\n if (data.getItemVisual(idx, itemStyleList[i], true) == null) {\n data.setItemVisual(idx, itemStyleList[i], categoriesData.getItemVisual(category, itemStyleList[i]));\n }\n }\n }\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Language: (Simplified) Chinese.\n */\nvar _default = {\n legend: {\n selector: {\n all: '全选',\n inverse: '反选'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: '矩形选择',\n polygon: '圈选',\n lineX: '横向选择',\n lineY: '纵向选择',\n keep: '保持选择',\n clear: '清除选择'\n }\n },\n dataView: {\n title: '数据视图',\n lang: ['数据视图', '关闭', '刷新']\n },\n dataZoom: {\n title: {\n zoom: '区域缩放',\n back: '区域缩放还原'\n }\n },\n magicType: {\n title: {\n line: '切换为折线图',\n bar: '切换为柱状图',\n stack: '切换为堆叠',\n tiled: '切换为平铺'\n }\n },\n restore: {\n title: '还原'\n },\n saveAsImage: {\n title: '保存为图片',\n lang: ['右键另存为图片']\n }\n },\n series: {\n typeNames: {\n pie: '饼图',\n bar: '柱状图',\n line: '折线图',\n scatter: '散点图',\n effectScatter: '涟漪散点图',\n radar: '雷达图',\n tree: '树图',\n treemap: '矩形树图',\n boxplot: '箱型图',\n candlestick: 'K线图',\n k: 'K线图',\n heatmap: '热力图',\n map: '地图',\n parallel: '平行坐标图',\n lines: '线图',\n graph: '关系图',\n sankey: '桑基图',\n funnel: '漏斗图',\n gauge: '仪表盘图',\n pictorialBar: '象形柱图',\n themeRiver: '主题河流图',\n sunburst: '旭日图'\n }\n },\n aria: {\n general: {\n withTitle: '这是一个关于“{title}”的图表。',\n withoutTitle: '这是一个图表,'\n },\n series: {\n single: {\n prefix: '',\n withName: '图表类型是{seriesType},表示{seriesName}。',\n withoutName: '图表类型是{seriesType}。'\n },\n multiple: {\n prefix: '它由{seriesCount}个图表系列组成。',\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n withoutName: '第{seriesId}个系列是一个{seriesType},',\n separator: {\n middle: ';',\n end: '。'\n }\n }\n },\n data: {\n allData: '其数据是——',\n partialData: '其中,前{displayCnt}项是——',\n withName: '{name}的数据是{value}',\n withoutName: '{value}',\n separator: {\n middle: ',',\n end: ''\n }\n }\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./visualMap/preprocessor\");\n\nrequire(\"./visualMap/typeDefaulter\");\n\nrequire(\"./visualMap/visualEncoding\");\n\nrequire(\"./visualMap/PiecewiseModel\");\n\nrequire(\"./visualMap/PiecewiseView\");\n\nrequire(\"./visualMap/visualMapAction\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar isTypedArray = _util.isTypedArray;\nvar extend = _util.extend;\nvar assert = _util.assert;\nvar each = _util.each;\nvar isObject = _util.isObject;\n\nvar _model = require(\"../../util/model\");\n\nvar getDataItemValue = _model.getDataItemValue;\nvar isDataItemOption = _model.isDataItemOption;\n\nvar _number = require(\"../../util/number\");\n\nvar parseDate = _number.parseDate;\n\nvar Source = require(\"../Source\");\n\nvar _sourceType = require(\"./sourceType\");\n\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS;\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO\n// ??? refactor? check the outer usage of data provider.\n// merge with defaultDimValueGetter?\n\n/**\n * If normal array used, mutable chunk size is supported.\n * If typed array used, chunk size must be fixed.\n */\nfunction DefaultDataProvider(source, dimSize) {\n if (!Source.isInstance(source)) {\n source = Source.seriesDataToSource(source);\n }\n\n this._source = source;\n var data = this._data = source.data;\n var sourceFormat = source.sourceFormat; // Typed array. TODO IE10+?\n\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n this._offset = 0;\n this._dimSize = dimSize;\n this._data = data;\n }\n\n var methods = providerMethods[sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + source.seriesLayoutBy : sourceFormat];\n extend(this, methods);\n}\n\nvar providerProto = DefaultDataProvider.prototype; // If data is pure without style configuration\n\nproviderProto.pure = false; // If data is persistent and will not be released after use.\n\nproviderProto.persistent = true; // ???! FIXME legacy data provider do not has method getSource\n\nproviderProto.getSource = function () {\n return this._source;\n};\n\nvar providerMethods = {\n 'arrayRows_column': {\n pure: true,\n count: function () {\n return Math.max(0, this._data.length - this._source.startIndex);\n },\n getItem: function (idx) {\n return this._data[idx + this._source.startIndex];\n },\n appendData: appendDataSimply\n },\n 'arrayRows_row': {\n pure: true,\n count: function () {\n var row = this._data[0];\n return row ? Math.max(0, row.length - this._source.startIndex) : 0;\n },\n getItem: function (idx) {\n idx += this._source.startIndex;\n var item = [];\n var data = this._data;\n\n for (var i = 0; i < data.length; i++) {\n var row = data[i];\n item.push(row ? row[idx] : null);\n }\n\n return item;\n },\n appendData: function () {\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n }\n },\n 'objectRows': {\n pure: true,\n count: countSimply,\n getItem: getItemSimply,\n appendData: appendDataSimply\n },\n 'keyedColumns': {\n pure: true,\n count: function () {\n var dimName = this._source.dimensionsDefine[0].name;\n var col = this._data[dimName];\n return col ? col.length : 0;\n },\n getItem: function (idx) {\n var item = [];\n var dims = this._source.dimensionsDefine;\n\n for (var i = 0; i < dims.length; i++) {\n var col = this._data[dims[i].name];\n item.push(col ? col[idx] : null);\n }\n\n return item;\n },\n appendData: function (newData) {\n var data = this._data;\n each(newData, function (newCol, key) {\n var oldCol = data[key] || (data[key] = []);\n\n for (var i = 0; i < (newCol || []).length; i++) {\n oldCol.push(newCol[i]);\n }\n });\n }\n },\n 'original': {\n count: countSimply,\n getItem: getItemSimply,\n appendData: appendDataSimply\n },\n 'typedArray': {\n persistent: false,\n pure: true,\n count: function () {\n return this._data ? this._data.length / this._dimSize : 0;\n },\n getItem: function (idx, out) {\n idx = idx - this._offset;\n out = out || [];\n var offset = this._dimSize * idx;\n\n for (var i = 0; i < this._dimSize; i++) {\n out[i] = this._data[offset + i];\n }\n\n return out;\n },\n appendData: function (newData) {\n this._data = newData;\n },\n // Clean self if data is already used.\n clean: function () {\n // PENDING\n this._offset += this.count();\n this._data = null;\n }\n }\n};\n\nfunction countSimply() {\n return this._data.length;\n}\n\nfunction getItemSimply(idx) {\n return this._data[idx];\n}\n\nfunction appendDataSimply(newData) {\n for (var i = 0; i < newData.length; i++) {\n this._data.push(newData[i]);\n }\n}\n\nvar rawValueGetters = {\n arrayRows: getRawValueSimply,\n objectRows: function (dataItem, dataIndex, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimName] : dataItem;\n },\n keyedColumns: getRawValueSimply,\n original: function (dataItem, dataIndex, dimIndex, dimName) {\n // FIXME\n // In some case (markpoint in geo (geo-map.html)), dataItem\n // is {coord: [...]}\n var value = getDataItemValue(dataItem);\n return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n },\n typedArray: getRawValueSimply\n};\n\nfunction getRawValueSimply(dataItem, dataIndex, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\n}\n\nvar defaultDimValueGetters = {\n arrayRows: getDimValueSimply,\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n return converDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n },\n keyedColumns: getDimValueSimply,\n original: function (dataItem, dimName, dataIndex, dimIndex) {\n // Performance sensitive, do not use modelUtil.getDataItemValue.\n // If dataItem is an plain object with no value field, the var `value`\n // will be assigned with the object, but it will be tread correctly\n // in the `convertDataValue`.\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value); // If any dataItem is like { value: 10 }\n\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\n this.hasItemOption = true;\n }\n\n return converDataValue(value instanceof Array ? value[dimIndex] // If value is a single number or something else not array.\n : value, this._dimensionInfos[dimName]);\n },\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n return dataItem[dimIndex];\n }\n};\n\nfunction getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n return converDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n}\n/**\n * This helper method convert value in data.\n * @param {string|number|Date} value\n * @param {Object|string} [dimInfo] If string (like 'x'), dimType defaults 'number'.\n * If \"dimInfo.ordinalParseAndSave\", ordinal value can be parsed.\n */\n\n\nfunction converDataValue(value, dimInfo) {\n // Performance sensitive.\n var dimType = dimInfo && dimInfo.type;\n\n if (dimType === 'ordinal') {\n // If given value is a category string\n var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n }\n\n if (dimType === 'time' // spead up when using timestamp\n && typeof value !== 'number' && value != null && value !== '-') {\n value = +parseDate(value);\n } // dimType defaults 'number'.\n // If dimType is not ordinal and value is null or undefined or NaN or '-',\n // parse to NaN.\n\n\n return value == null || value === '' ? NaN // If string (like '-'), using '+' parse to NaN\n // If object, also parse to NaN\n : +value;\n} // ??? FIXME can these logic be more neat: getRawValue, getRawDataItem,\n// Consider persistent.\n// Caution: why use raw value to display on label or tooltip?\n// A reason is to avoid format. For example time value we do not know\n// how to format is expected. More over, if stack is used, calculated\n// value may be 0.91000000001, which have brings trouble to display.\n// TODO: consider how to treat null/undefined/NaN when display?\n\n/**\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @param {string|number} [dim] dimName or dimIndex\n * @return {Array.|string|number} can be null/undefined.\n */\n\n\nfunction retrieveRawValue(data, dataIndex, dim) {\n if (!data) {\n return;\n } // Consider data may be not persistent.\n\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (dataItem == null) {\n return;\n }\n\n var sourceFormat = data.getProvider().getSource().sourceFormat;\n var dimName;\n var dimIndex;\n var dimInfo = data.getDimensionInfo(dim);\n\n if (dimInfo) {\n dimName = dimInfo.name;\n dimIndex = dimInfo.index;\n }\n\n return rawValueGetters[sourceFormat](dataItem, dataIndex, dimIndex, dimName);\n}\n/**\n * Compatible with some cases (in pie, map) like:\n * data: [{name: 'xx', value: 5, selected: true}, ...]\n * where only sourceFormat is 'original' and 'objectRows' supported.\n *\n * ??? TODO\n * Supported detail options in data item when using 'arrayRows'.\n *\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @param {string} attr like 'selected'\n */\n\n\nfunction retrieveRawAttr(data, dataIndex, attr) {\n if (!data) {\n return;\n }\n\n var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n return;\n }\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n dataItem = null;\n }\n\n if (dataItem) {\n return dataItem[attr];\n }\n}\n\nexports.DefaultDataProvider = DefaultDataProvider;\nexports.defaultDimValueGetters = defaultDimValueGetters;\nexports.retrieveRawValue = retrieveRawValue;\nexports.retrieveRawAttr = retrieveRawAttr;","var fixShadow = require(\"./helper/fixShadow\");\n\nvar _constant = require(\"./constant\");\n\nvar ContextCachedBy = _constant.ContextCachedBy;\nvar STYLE_COMMON_PROPS = [['shadowBlur', 0], ['shadowOffsetX', 0], ['shadowOffsetY', 0], ['shadowColor', '#000'], ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]]; // var SHADOW_PROPS = STYLE_COMMON_PROPS.slice(0, 4);\n// var LINE_PROPS = STYLE_COMMON_PROPS.slice(4);\n\nvar Style = function (opts) {\n this.extendFrom(opts, false);\n};\n\nfunction createLinearGradient(ctx, obj, rect) {\n var x = obj.x == null ? 0 : obj.x;\n var x2 = obj.x2 == null ? 1 : obj.x2;\n var y = obj.y == null ? 0 : obj.y;\n var y2 = obj.y2 == null ? 0 : obj.y2;\n\n if (!obj.global) {\n x = x * rect.width + rect.x;\n x2 = x2 * rect.width + rect.x;\n y = y * rect.height + rect.y;\n y2 = y2 * rect.height + rect.y;\n } // Fix NaN when rect is Infinity\n\n\n x = isNaN(x) ? 0 : x;\n x2 = isNaN(x2) ? 1 : x2;\n y = isNaN(y) ? 0 : y;\n y2 = isNaN(y2) ? 0 : y2;\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n return canvasGradient;\n}\n\nfunction createRadialGradient(ctx, obj, rect) {\n var width = rect.width;\n var height = rect.height;\n var min = Math.min(width, height);\n var x = obj.x == null ? 0.5 : obj.x;\n var y = obj.y == null ? 0.5 : obj.y;\n var r = obj.r == null ? 0.5 : obj.r;\n\n if (!obj.global) {\n x = x * width + rect.x;\n y = y * height + rect.y;\n r = r * min;\n }\n\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n return canvasGradient;\n}\n\nStyle.prototype = {\n constructor: Style,\n\n /**\n * @type {string}\n */\n fill: '#000',\n\n /**\n * @type {string}\n */\n stroke: null,\n\n /**\n * @type {number}\n */\n opacity: 1,\n\n /**\n * @type {number}\n */\n fillOpacity: null,\n\n /**\n * @type {number}\n */\n strokeOpacity: null,\n\n /**\n * `true` is not supported.\n * `false`/`null`/`undefined` are the same.\n * `false` is used to remove lineDash in some\n * case that `null`/`undefined` can not be set.\n * (e.g., emphasis.lineStyle in echarts)\n * @type {Array.|boolean}\n */\n lineDash: null,\n\n /**\n * @type {number}\n */\n lineDashOffset: 0,\n\n /**\n * @type {number}\n */\n shadowBlur: 0,\n\n /**\n * @type {number}\n */\n shadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n shadowOffsetY: 0,\n\n /**\n * @type {number}\n */\n lineWidth: 1,\n\n /**\n * If stroke ignore scale\n * @type {Boolean}\n */\n strokeNoScale: false,\n // Bounding rect text configuration\n // Not affected by element transform\n\n /**\n * @type {string}\n */\n text: null,\n\n /**\n * If `fontSize` or `fontFamily` exists, `font` will be reset by\n * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`.\n * So do not visit it directly in upper application (like echarts),\n * but use `contain/text#makeFont` instead.\n * @type {string}\n */\n font: null,\n\n /**\n * The same as font. Use font please.\n * @deprecated\n * @type {string}\n */\n textFont: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontStyle: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontWeight: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * Should be 12 but not '12px'.\n * @type {number}\n */\n fontSize: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontFamily: null,\n\n /**\n * Reserved for special functinality, like 'hr'.\n * @type {string}\n */\n textTag: null,\n\n /**\n * @type {string}\n */\n textFill: '#000',\n\n /**\n * @type {string}\n */\n textStroke: null,\n\n /**\n * @type {number}\n */\n textWidth: null,\n\n /**\n * Only for textBackground.\n * @type {number}\n */\n textHeight: null,\n\n /**\n * textStroke may be set as some color as a default\n * value in upper applicaion, where the default value\n * of textStrokeWidth should be 0 to make sure that\n * user can choose to do not use text stroke.\n * @type {number}\n */\n textStrokeWidth: 0,\n\n /**\n * @type {number}\n */\n textLineHeight: null,\n\n /**\n * 'inside', 'left', 'right', 'top', 'bottom'\n * [x, y]\n * Based on x, y of rect.\n * @type {string|Array.}\n * @default 'inside'\n */\n textPosition: 'inside',\n\n /**\n * If not specified, use the boundingRect of a `displayable`.\n * @type {Object}\n */\n textRect: null,\n\n /**\n * [x, y]\n * @type {Array.}\n */\n textOffset: null,\n\n /**\n * @type {string}\n */\n textAlign: null,\n\n /**\n * @type {string}\n */\n textVerticalAlign: null,\n\n /**\n * @type {number}\n */\n textDistance: 5,\n\n /**\n * @type {string}\n */\n textShadowColor: 'transparent',\n\n /**\n * @type {number}\n */\n textShadowBlur: 0,\n\n /**\n * @type {number}\n */\n textShadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n textShadowOffsetY: 0,\n\n /**\n * @type {string}\n */\n textBoxShadowColor: 'transparent',\n\n /**\n * @type {number}\n */\n textBoxShadowBlur: 0,\n\n /**\n * @type {number}\n */\n textBoxShadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n textBoxShadowOffsetY: 0,\n\n /**\n * Whether transform text.\n * Only available in Path and Image element,\n * where the text is called as `RectText`.\n * @type {boolean}\n */\n transformText: false,\n\n /**\n * Text rotate around position of Path or Image.\n * The origin of the rotation can be specified by `textOrigin`.\n * Only available in Path and Image element,\n * where the text is called as `RectText`.\n */\n textRotation: 0,\n\n /**\n * Text origin of text rotation.\n * Useful in the case like label rotation of circular symbol.\n * Only available in Path and Image element, where the text is called\n * as `RectText` and the element is called as \"host element\".\n * The value can be:\n * + If specified as a coordinate like `[10, 40]`, it is the `[x, y]`\n * base on the left-top corner of the rect of its host element.\n * + If specified as a string `center`, it is the center of the rect of\n * its host element.\n * + By default, this origin is the `textPosition`.\n * @type {string|Array.}\n */\n textOrigin: null,\n\n /**\n * @type {string}\n */\n textBackgroundColor: null,\n\n /**\n * @type {string}\n */\n textBorderColor: null,\n\n /**\n * @type {number}\n */\n textBorderWidth: 0,\n\n /**\n * @type {number}\n */\n textBorderRadius: 0,\n\n /**\n * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]`\n * @type {number|Array.}\n */\n textPadding: null,\n\n /**\n * Text styles for rich text.\n * @type {Object}\n */\n rich: null,\n\n /**\n * {outerWidth, outerHeight, ellipsis, placeholder}\n * @type {Object}\n */\n truncate: null,\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n * @type {string}\n */\n blend: null,\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n */\n bind: function (ctx, el, prevEl) {\n var style = this;\n var prevStyle = prevEl && prevEl.style; // If no prevStyle, it means first draw.\n // Only apply cache if the last time cachced by this function.\n\n var notCheckCache = !prevStyle || ctx.__attrCachedBy !== ContextCachedBy.STYLE_BIND;\n ctx.__attrCachedBy = ContextCachedBy.STYLE_BIND;\n\n for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n var prop = STYLE_COMMON_PROPS[i];\n var styleName = prop[0];\n\n if (notCheckCache || style[styleName] !== prevStyle[styleName]) {\n // FIXME Invalid property value will cause style leak from previous element.\n ctx[styleName] = fixShadow(ctx, styleName, style[styleName] || prop[1]);\n }\n }\n\n if (notCheckCache || style.fill !== prevStyle.fill) {\n ctx.fillStyle = style.fill;\n }\n\n if (notCheckCache || style.stroke !== prevStyle.stroke) {\n ctx.strokeStyle = style.stroke;\n }\n\n if (notCheckCache || style.opacity !== prevStyle.opacity) {\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n }\n\n if (notCheckCache || style.blend !== prevStyle.blend) {\n ctx.globalCompositeOperation = style.blend || 'source-over';\n }\n\n if (this.hasStroke()) {\n var lineWidth = style.lineWidth;\n ctx.lineWidth = lineWidth / (this.strokeNoScale && el && el.getLineScale ? el.getLineScale() : 1);\n }\n },\n hasFill: function () {\n var fill = this.fill;\n return fill != null && fill !== 'none';\n },\n hasStroke: function () {\n var stroke = this.stroke;\n return stroke != null && stroke !== 'none' && this.lineWidth > 0;\n },\n\n /**\n * Extend from other style\n * @param {zrender/graphic/Style} otherStyle\n * @param {boolean} overwrite true: overwrirte any way.\n * false: overwrite only when !target.hasOwnProperty\n * others: overwrite when property is not null/undefined.\n */\n extendFrom: function (otherStyle, overwrite) {\n if (otherStyle) {\n for (var name in otherStyle) {\n if (otherStyle.hasOwnProperty(name) && (overwrite === true || (overwrite === false ? !this.hasOwnProperty(name) : otherStyle[name] != null))) {\n this[name] = otherStyle[name];\n }\n }\n }\n },\n\n /**\n * Batch setting style with a given object\n * @param {Object|string} obj\n * @param {*} [obj]\n */\n set: function (obj, value) {\n if (typeof obj === 'string') {\n this[obj] = value;\n } else {\n this.extendFrom(obj, true);\n }\n },\n\n /**\n * Clone\n * @return {zrender/graphic/Style} [description]\n */\n clone: function () {\n var newStyle = new this.constructor();\n newStyle.extendFrom(this, true);\n return newStyle;\n },\n getGradient: function (ctx, obj, rect) {\n var method = obj.type === 'radial' ? createRadialGradient : createLinearGradient;\n var canvasGradient = method(ctx, obj, rect);\n var colorStops = obj.colorStops;\n\n for (var i = 0; i < colorStops.length; i++) {\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n }\n\n return canvasGradient;\n }\n};\nvar styleProto = Style.prototype;\n\nfor (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n var prop = STYLE_COMMON_PROPS[i];\n\n if (!(prop[0] in styleProto)) {\n styleProto[prop[0]] = prop[1];\n }\n} // Provide for others\n\n\nStyle.getGradient = styleProto.getGradient;\nvar _default = Style;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapping = require(\"./VisualMapping\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual solution, for consistent option specification.\n */\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n if (obj) {\n for (var name in obj) {\n if (obj.hasOwnProperty(name)) {\n return true;\n }\n }\n }\n}\n/**\n * @param {Object} option\n * @param {Array.} stateList\n * @param {Function} [supplementVisualOption]\n * @return {Object} visualMappings >\n */\n\n\nfunction createVisualMappings(option, stateList, supplementVisualOption) {\n var visualMappings = {};\n each(stateList, function (state) {\n var mappings = visualMappings[state] = createMappings();\n each(option[state], function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var mappingOption = {\n type: visualType,\n visual: visualData\n };\n supplementVisualOption && supplementVisualOption(mappingOption, state);\n mappings[visualType] = new VisualMapping(mappingOption); // Prepare a alpha for opacity, for some case that opacity\n // is not supported, such as rendering using gradient color.\n\n if (visualType === 'opacity') {\n mappingOption = zrUtil.clone(mappingOption);\n mappingOption.type = 'colorAlpha';\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n }\n });\n });\n return visualMappings;\n\n function createMappings() {\n var Creater = function () {}; // Make sure hidden fields will not be visited by\n // object iteration (with hasOwnProperty checking).\n\n\n Creater.prototype.__hidden = Creater.prototype;\n var obj = new Creater();\n return obj;\n }\n}\n/**\n * @param {Object} thisOption\n * @param {Object} newOption\n * @param {Array.} keys\n */\n\n\nfunction replaceVisualOption(thisOption, newOption, keys) {\n // Visual attributes merge is not supported, otherwise it\n // brings overcomplicated merge logic. See #2853. So if\n // newOption has anyone of these keys, all of these keys\n // will be reset. Otherwise, all keys remain.\n var has;\n zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n has = true;\n }\n });\n has && zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n thisOption[key] = zrUtil.clone(newOption[key]);\n } else {\n delete thisOption[key];\n }\n });\n}\n/**\n * @param {Array.} stateList\n * @param {Object} visualMappings >\n * @param {module:echarts/data/List} list\n * @param {Function} getValueState param: valueOrIndex, return: state.\n * @param {object} [scope] Scope for getValueState\n * @param {string} [dimension] Concrete dimension, if used.\n */\n// ???! handle brush?\n\n\nfunction applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n var dataIndex;\n\n function getVisual(key) {\n return data.getItemVisual(dataIndex, key);\n }\n\n function setVisual(key, value) {\n data.setItemVisual(dataIndex, key, value);\n }\n\n if (dimension == null) {\n data.each(eachItem);\n } else {\n data.each([dimension], eachItem);\n }\n\n function eachItem(valueOrIndex, index) {\n dataIndex = dimension == null ? valueOrIndex : index;\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n return;\n }\n\n var valueState = getValueState.call(scope, valueOrIndex);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n }\n }\n}\n/**\n * @param {module:echarts/data/List} data\n * @param {Array.} stateList\n * @param {Object} visualMappings >\n * @param {Function} getValueState param: valueOrIndex, return: state.\n * @param {number} [dim] dimension or dimension index.\n */\n\n\nfunction incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n\n function progress(params, data) {\n if (dim != null) {\n dim = data.getDimension(dim);\n }\n\n function getVisual(key) {\n return data.getItemVisual(dataIndex, key);\n }\n\n function setVisual(key, value) {\n data.setItemVisual(dataIndex, key, value);\n }\n\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n continue;\n }\n\n var value = dim != null ? data.get(dim, dataIndex, true) : dataIndex;\n var valueState = getValueState(value);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n }\n }\n }\n\n return {\n progress: progress\n };\n}\n\nexports.createVisualMappings = createVisualMappings;\nexports.replaceVisualOption = replaceVisualOption;\nexports.applyVisual = applyVisual;\nexports.incrementalApplyVisual = incrementalApplyVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerProcessor({\n // `dataZoomProcessor` will only be performed in needed series. Consider if\n // there is a line series and a pie series, it is better not to update the\n // line series if only pie series is needed to be updated.\n getTargetSeries: function (ecModel) {\n var seriesModelMap = createHashMap();\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n var axisProxy = dataZoomModel.getAxisProxy(dimNames.name, axisIndex);\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n seriesModelMap.set(seriesModel.uid, seriesModel);\n });\n });\n });\n return seriesModelMap;\n },\n modifyOutputEnd: true,\n // Consider appendData, where filter should be performed. Because data process is\n // in block mode currently, it is not need to worry about that the overallProgress\n // execute every frame.\n overallReset: function (ecModel, api) {\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n // We calculate window and reset axis here but not in model\n // init stage and not after action dispatch handler, because\n // reset should be called after seriesData.restoreData.\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n dataZoomModel.getAxisProxy(dimNames.name, axisIndex).reset(dataZoomModel, api);\n }); // Caution: data zoom filtering is order sensitive when using\n // percent range and no min/max/scale set on axis.\n // For example, we have dataZoom definition:\n // [\n // {xAxisIndex: 0, start: 30, end: 70},\n // {yAxisIndex: 0, start: 20, end: 80}\n // ]\n // In this case, [20, 80] of y-dataZoom should be based on data\n // that have filtered by x-dataZoom using range of [30, 70],\n // but should not be based on full raw data. Thus sliding\n // x-dataZoom will change both ranges of xAxis and yAxis,\n // while sliding y-dataZoom will only change the range of yAxis.\n // So we should filter x-axis after reset x-axis immediately,\n // and then reset y-axis and filter y-axis.\n\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n dataZoomModel.getAxisProxy(dimNames.name, axisIndex).filterData(dataZoomModel, api);\n });\n });\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n // Fullfill all of the range props so that user\n // is able to get them from chart.getOption().\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n var percentRange = axisProxy.getDataPercentWindow();\n var valueRange = axisProxy.getDataValueWindow();\n dataZoomModel.setCalculatedRange({\n start: percentRange[0],\n end: percentRange[1],\n startValue: valueRange[0],\n endValue: valueRange[1]\n });\n });\n }\n});","var dpr = 1; // If in browser environment\n\nif (typeof window !== 'undefined') {\n dpr = Math.max(window.devicePixelRatio || 1, 1);\n}\n/**\n * config默认配置项\n * @exports zrender/config\n * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)\n */\n\n/**\n * Debug log mode:\n * 0: Do nothing, for release.\n * 1: console.error, for debug.\n */\n\n\nvar debugMode = 0; // retina 屏幕优化\n\nvar devicePixelRatio = dpr;\nexports.debugMode = debugMode;\nexports.devicePixelRatio = devicePixelRatio;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"../coord/single/singleCreator\");\n\nrequire(\"./axis/SingleAxisView\");\n\nrequire(\"../coord/single/AxisModel\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./axisPointer/SingleAxisPointer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.extendComponentView({\n type: 'single'\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./brush/preprocessor\");\n\nrequire(\"./brush/visualEncoding\");\n\nrequire(\"./brush/BrushModel\");\n\nrequire(\"./brush/BrushView\");\n\nrequire(\"./brush/brushAction\");\n\nrequire(\"./toolbox/feature/Brush\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Brush component entry\n */\necharts.registerPreprocessor(preprocessor);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\nvar assert = _util.assert;\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar OTHER_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\n\nfunction summarizeDimensions(data) {\n var summary = {};\n var encode = summary.encode = {};\n var notExtraCoordDimMap = createHashMap();\n var defaultedLabel = [];\n var defaultedTooltip = []; // See the comment of `List.js#userOutput`.\n\n var userOutput = summary.userOutput = {\n dimensionNames: data.dimensions.slice(),\n encode: {}\n };\n each(data.dimensions, function (dimName) {\n var dimItem = data.getDimensionInfo(dimName);\n var coordDim = dimItem.coordDim;\n\n if (coordDim) {\n var coordDimIndex = dimItem.coordDimIndex;\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n if (!dimItem.isExtraCoord) {\n notExtraCoordDimMap.set(coordDim, 1); // Use the last coord dim (and label friendly) as default label,\n // because when dataset is used, it is hard to guess which dimension\n // can be value dimension. If both show x, y on label is not look good,\n // and conventionally y axis is focused more.\n\n if (mayLabelDimType(dimItem.type)) {\n defaultedLabel[0] = dimName;\n } // User output encode do not contain generated coords.\n // And it only has index. User can use index to retrieve value from the raw item array.\n\n\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n }\n\n if (dimItem.defaultTooltip) {\n defaultedTooltip.push(dimName);\n }\n }\n\n OTHER_DIMENSIONS.each(function (v, otherDim) {\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n var dimIndex = dimItem.otherDims[otherDim];\n\n if (dimIndex != null && dimIndex !== false) {\n encodeArr[dimIndex] = dimItem.name;\n }\n });\n });\n var dataDimsOnCoord = [];\n var encodeFirstDimNotExtra = {};\n notExtraCoordDimMap.each(function (v, coordDim) {\n var dimArr = encode[coordDim]; // ??? FIXME extra coord should not be set in dataDimsOnCoord.\n // But should fix the case that radar axes: simplify the logic\n // of `completeDimension`, remove `extraPrefix`.\n\n encodeFirstDimNotExtra[coordDim] = dimArr[0]; // Not necessary to remove duplicate, because a data\n // dim canot on more than one coordDim.\n\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n });\n summary.dataDimsOnCoord = dataDimsOnCoord;\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n var encodeLabel = encode.label; // FIXME `encode.label` is not recommanded, because formatter can not be set\n // in this way. Use label.formatter instead. May be remove this approach someday.\n\n if (encodeLabel && encodeLabel.length) {\n defaultedLabel = encodeLabel.slice();\n }\n\n var encodeTooltip = encode.tooltip;\n\n if (encodeTooltip && encodeTooltip.length) {\n defaultedTooltip = encodeTooltip.slice();\n } else if (!defaultedTooltip.length) {\n defaultedTooltip = defaultedLabel.slice();\n }\n\n encode.defaultedLabel = defaultedLabel;\n encode.defaultedTooltip = defaultedTooltip;\n return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n if (!encode.hasOwnProperty(dim)) {\n encode[dim] = [];\n }\n\n return encode[dim];\n}\n\nfunction getDimensionTypeByAxis(axisType) {\n return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n // In most cases, ordinal and time do not suitable for label.\n // Ordinal info can be displayed on axis. Time is too long.\n return !(dimType === 'ordinal' || dimType === 'time');\n} // function findTheLastDimMayLabel(data) {\n// // Get last value dim\n// var dimensions = data.dimensions.slice();\n// var valueType;\n// var valueDim;\n// while (dimensions.length && (\n// valueDim = dimensions.pop(),\n// valueType = data.getDimensionInfo(valueDim).type,\n// valueType === 'ordinal' || valueType === 'time'\n// )) {} // jshint ignore:line\n// return valueDim;\n// }\n\n\nexports.OTHER_DIMENSIONS = OTHER_DIMENSIONS;\nexports.summarizeDimensions = summarizeDimensions;\nexports.getDimensionTypeByAxis = getDimensionTypeByAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar barPolar = require(\"../layout/barPolar\");\n\nrequire(\"../coord/polar/polarCreator\");\n\nrequire(\"./angleAxis\");\n\nrequire(\"./radiusAxis\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./axisPointer/PolarAxisPointer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// For reducing size of echarts.min, barLayoutPolar is required by polar.\necharts.registerLayout(zrUtil.curry(barPolar, 'bar')); // Polar view\n\necharts.extendComponentView({\n type: 'polar'\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar borderColorQuery = ['itemStyle', 'borderColor'];\n\nfunction _default(ecModel, api) {\n var globalColors = ecModel.get('color');\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n var defaulColor = globalColors[seriesModel.seriesIndex % globalColors.length];\n var data = seriesModel.getData();\n data.setVisual({\n legendSymbol: 'roundRect',\n // Use name 'color' but not 'borderColor' for legend usage and\n // visual coding from other component like dataRange.\n color: seriesModel.get(borderColorQuery) || defaulColor\n }); // Only visible series has each data be visual encoded\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n data.setItemVisual(idx, {\n color: itemModel.get(borderColorQuery, true)\n });\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.__base_bar__',\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n },\n getMarkerPosition: function (value) {\n var coordSys = this.coordinateSystem;\n\n if (coordSys) {\n // PENDING if clamp ?\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\n var data = this.getData();\n var offset = data.getLayout('offset');\n var size = data.getLayout('size');\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n pt[offsetIndex] += offset + size / 2;\n return pt;\n }\n\n return [NaN, NaN];\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n // stack: null\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // 最小高度改为0\n barMinHeight: 0,\n // 最小角度为0,仅对极坐标系下的柱状图有效\n barMinAngle: 0,\n // cursor: null,\n large: false,\n largeThreshold: 400,\n progressive: 3e3,\n progressiveChunkMode: 'mod',\n // barMaxWidth: null,\n // In cartesian, the default value is 1. Otherwise null.\n // barMinWidth: null,\n // 默认自适应\n // barWidth: null,\n // 柱间距离,默认为柱形宽度的30%,可设固定值\n // barGap: '30%',\n // 类目间柱形距离,默认为类目间距的20%,可设固定值\n // barCategoryGap: '20%',\n // label: {\n // show: false\n // },\n itemStyle: {},\n emphasis: {}\n }\n});\n\nmodule.exports = _default;","var Group = require(\"../container/Group\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar Text = require(\"../graphic/Text\");\n\nvar Circle = require(\"../graphic/shape/Circle\");\n\nvar Rect = require(\"../graphic/shape/Rect\");\n\nvar Ellipse = require(\"../graphic/shape/Ellipse\");\n\nvar Line = require(\"../graphic/shape/Line\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar Polygon = require(\"../graphic/shape/Polygon\");\n\nvar Polyline = require(\"../graphic/shape/Polyline\");\n\nvar LinearGradient = require(\"../graphic/LinearGradient\");\n\nvar Style = require(\"../graphic/Style\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar _path = require(\"./path\");\n\nvar createFromString = _path.createFromString;\n\nvar _util = require(\"../core/util\");\n\nvar isString = _util.isString;\nvar extend = _util.extend;\nvar defaults = _util.defaults;\nvar trim = _util.trim;\nvar each = _util.each;\n// import RadialGradient from '../graphic/RadialGradient';\n// import Pattern from '../graphic/Pattern';\n// import * as vector from '../core/vector';\n// Most of the values can be separated by comma and/or white space.\nvar DILIMITER_REG = /[\\s,]+/;\n/**\n * For big svg string, this method might be time consuming.\n *\n * @param {string} svg xml string\n * @return {Object} xml root.\n */\n\nfunction parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n } // Document node. If using $.get, doc node may be input.\n\n\n if (svg.nodeType === 9) {\n svg = svg.firstChild;\n } // nodeName of is also 'svg'.\n\n\n while (svg.nodeName.toLowerCase() !== 'svg' || svg.nodeType !== 1) {\n svg = svg.nextSibling;\n }\n\n return svg;\n}\n\nfunction SVGParser() {\n this._defs = {};\n this._root = null;\n this._isDefine = false;\n this._isText = false;\n}\n\nSVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n\n if (!svg) {\n throw new Error('Illegal svg');\n }\n\n var root = new Group();\n this._root = root; // parse view port\n\n var viewBox = svg.getAttribute('viewBox') || ''; // If width/height not specified, means \"100%\" of `opt.width/height`.\n // TODO: Other percent value not supported yet.\n\n var width = parseFloat(svg.getAttribute('width') || opt.width);\n var height = parseFloat(svg.getAttribute('height') || opt.height); // If width/height not specified, set as null for output.\n\n isNaN(width) && (width = null);\n isNaN(height) && (height = null); // Apply inline style on svg element.\n\n parseAttributes(svg, root, null, true);\n var child = svg.firstChild;\n\n while (child) {\n this._parseNode(child, root);\n\n child = child.nextSibling;\n }\n\n var viewBoxRect;\n var viewBoxTransform;\n\n if (viewBox) {\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG); // Some invalid case like viewBox: 'none'.\n\n if (viewBoxArr.length >= 4) {\n viewBoxRect = {\n x: parseFloat(viewBoxArr[0] || 0),\n y: parseFloat(viewBoxArr[1] || 0),\n width: parseFloat(viewBoxArr[2]),\n height: parseFloat(viewBoxArr[3])\n };\n }\n }\n\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n\n if (!opt.ignoreViewBox) {\n // If set transform on the output group, it probably bring trouble when\n // some users only intend to show the clipped content inside the viewBox,\n // but not intend to transform the output group. So we keep the output\n // group no transform. If the user intend to use the viewBox as a\n // camera, just set `opt.ignoreViewBox` as `true` and set transfrom\n // manually according to the viewBox info in the output of this method.\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scale = viewBoxTransform.scale.slice();\n elRoot.position = viewBoxTransform.position.slice();\n }\n } // Some shapes might be overflow the viewport, which should be\n // clipped despite whether the viewBox is used, as the SVG does.\n\n\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n }));\n } // Set width/height on group just for output the viewport size.\n\n\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform\n };\n};\n\nSVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n var nodeName = xmlNode.nodeName.toLowerCase(); // TODO\n // support in svg, where nodeName is 'style',\n // CSS classes is defined globally wherever the style tags are declared.\n\n if (nodeName === 'defs') {\n // define flag\n this._isDefine = true;\n } else if (nodeName === 'text') {\n this._isText = true;\n }\n\n var el;\n\n if (this._isDefine) {\n var parser = defineParsers[nodeName];\n\n if (parser) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n\n if (id) {\n this._defs[id] = def;\n }\n }\n } else {\n var parser = nodeParsers[nodeName];\n\n if (parser) {\n el = parser.call(this, xmlNode, parentGroup);\n parentGroup.add(el);\n }\n }\n\n var child = xmlNode.firstChild;\n\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el);\n } // Is text\n\n\n if (child.nodeType === 3 && this._isText) {\n this._parseText(child, el);\n }\n\n child = child.nextSibling;\n } // Quit define\n\n\n if (nodeName === 'defs') {\n this._isDefine = false;\n } else if (nodeName === 'text') {\n this._isText = false;\n }\n};\n\nSVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n if (xmlNode.nodeType === 1) {\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n }\n\n var text = new Text({\n style: {\n text: xmlNode.textContent,\n transformText: true\n },\n position: [this._textX || 0, this._textY || 0]\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defs);\n var fontSize = text.style.fontSize;\n\n if (fontSize && fontSize < 9) {\n // PENDING\n text.style.fontSize = 9;\n text.scale = text.scale || [1, 1];\n text.scale[0] *= fontSize / 9;\n text.scale[1] *= fontSize / 9;\n }\n\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n};\n\nvar nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defs);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || 0),\n y: parseFloat(xmlNode.getAttribute('y') || 0),\n width: parseFloat(xmlNode.getAttribute('width') || 0),\n height: parseFloat(xmlNode.getAttribute('height') || 0)\n }); // console.log(xmlNode.getAttribute('transform'));\n // console.log(rect.transform);\n\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defs);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || 0),\n cy: parseFloat(xmlNode.getAttribute('cy') || 0),\n r: parseFloat(xmlNode.getAttribute('r') || 0)\n });\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defs);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || 0),\n y1: parseFloat(xmlNode.getAttribute('y1') || 0),\n x2: parseFloat(xmlNode.getAttribute('x2') || 0),\n y2: parseFloat(xmlNode.getAttribute('y2') || 0)\n });\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defs);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || 0),\n cy: parseFloat(xmlNode.getAttribute('cy') || 0),\n rx: parseFloat(xmlNode.getAttribute('rx') || 0),\n ry: parseFloat(xmlNode.getAttribute('ry') || 0)\n });\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polygon = new Polygon({\n shape: {\n points: points || []\n }\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defs);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var path = new Path();\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n var points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polyline = new Polyline({\n shape: {\n points: points || []\n }\n });\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defs);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href'),\n x: xmlNode.getAttribute('x'),\n y: xmlNode.getAttribute('y'),\n width: xmlNode.getAttribute('width'),\n height: xmlNode.getAttribute('height')\n });\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || 0;\n var y = xmlNode.getAttribute('y') || 0;\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n\n if (x != null) {\n // new offset x\n this._textX = parseFloat(x);\n }\n\n if (y != null) {\n // new offset y\n this._textY = parseFloat(y);\n }\n\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n this._textX += dx;\n this._textY += dy;\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n // TODO svg fill rule\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule\n // path.style.globalCompositeOperation = 'xor';\n var d = xmlNode.getAttribute('d') || ''; // Performance sensitive.\n\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n return path;\n }\n};\nvar defineParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || 0, 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || 0, 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || 10, 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || 0, 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n\n _parseGradientColorStops(xmlNode, gradient);\n\n return gradient;\n },\n 'radialgradient': function (xmlNode) {}\n};\n\nfunction _parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n\n while (stop) {\n if (stop.nodeType === 1) {\n var offset = stop.getAttribute('offset');\n\n if (offset.indexOf('%') > 0) {\n // percentage\n offset = parseInt(offset, 10) / 100;\n } else if (offset) {\n // number from 0 to 1\n offset = parseFloat(offset);\n } else {\n offset = 0;\n }\n\n var stopColor = stop.getAttribute('stop-color') || '#000000';\n gradient.addColorStop(offset, stopColor);\n }\n\n stop = stop.nextSibling;\n }\n}\n\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\n\nfunction parsePoints(pointsString) {\n var list = trim(pointsString).split(DILIMITER_REG);\n var points = [];\n\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n\n return points;\n}\n\nvar attributesMap = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-align': 'textAlign',\n 'alignment-baseline': 'textBaseline'\n};\n\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n var zrStyle = el.__inheritedStyle || {};\n var isTextEl = el.type === 'text'; // TODO Shadow\n\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n extend(zrStyle, parseStyleAttribute(xmlNode));\n\n if (!onlyInlineStyle) {\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName)) {\n var attrValue = xmlNode.getAttribute(svgAttrName);\n\n if (attrValue != null) {\n zrStyle[attributesMap[svgAttrName]] = attrValue;\n }\n }\n }\n }\n }\n\n var elFillProp = isTextEl ? 'textFill' : 'fill';\n var elStrokeProp = isTextEl ? 'textStroke' : 'stroke';\n el.style = el.style || new Style();\n var elStyle = el.style;\n zrStyle.fill != null && elStyle.set(elFillProp, getPaint(zrStyle.fill, defs));\n zrStyle.stroke != null && elStyle.set(elStrokeProp, getPaint(zrStyle.stroke, defs));\n each(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (propName) {\n var elPropName = propName === 'lineWidth' && isTextEl ? 'textStrokeWidth' : propName;\n zrStyle[propName] != null && elStyle.set(elPropName, parseFloat(zrStyle[propName]));\n });\n\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n zrStyle.textBaseline = 'alphabetic';\n }\n\n if (zrStyle.textBaseline === 'alphabetic') {\n zrStyle.textBaseline = 'bottom';\n }\n\n if (zrStyle.textAlign === 'start') {\n zrStyle.textAlign = 'left';\n }\n\n if (zrStyle.textAlign === 'end') {\n zrStyle.textAlign = 'right';\n }\n\n each(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'], function (propName) {\n zrStyle[propName] != null && elStyle.set(propName, zrStyle[propName]);\n });\n\n if (zrStyle.lineDash) {\n el.style.lineDash = trim(zrStyle.lineDash).split(DILIMITER_REG);\n }\n\n if (elStyle[elStrokeProp] && elStyle[elStrokeProp] !== 'none') {\n // enable stroke\n el[elStrokeProp] = true;\n }\n\n el.__inheritedStyle = zrStyle;\n}\n\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\n\nfunction getPaint(str, defs) {\n // if (str === 'none') {\n // return;\n // }\n var urlMatch = defs && str && str.match(urlRegex);\n\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n var def = defs[url];\n return def;\n }\n\n return str;\n}\n\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\n\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var m = null;\n var transformOps = [];\n transform.replace(transformRegex, function (str, type, value) {\n transformOps.push(type, value);\n });\n\n for (var i = transformOps.length - 1; i > 0; i -= 2) {\n var value = transformOps[i];\n var type = transformOps[i - 1];\n m = m || matrix.create();\n\n switch (type) {\n case 'translate':\n value = trim(value).split(DILIMITER_REG);\n matrix.translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]);\n break;\n\n case 'scale':\n value = trim(value).split(DILIMITER_REG);\n matrix.scale(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]);\n break;\n\n case 'rotate':\n value = trim(value).split(DILIMITER_REG);\n matrix.rotate(m, m, parseFloat(value[0]));\n break;\n\n case 'skew':\n value = trim(value).split(DILIMITER_REG);\n console.warn('Skew transform is not supported yet');\n break;\n\n case 'matrix':\n var value = trim(value).split(DILIMITER_REG);\n m[0] = parseFloat(value[0]);\n m[1] = parseFloat(value[1]);\n m[2] = parseFloat(value[2]);\n m[3] = parseFloat(value[3]);\n m[4] = parseFloat(value[4]);\n m[5] = parseFloat(value[5]);\n break;\n }\n }\n\n node.setLocalTransform(m);\n }\n} // Value may contain space.\n\n\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\n\nfunction parseStyleAttribute(xmlNode) {\n var style = xmlNode.getAttribute('style');\n var result = {};\n\n if (!style) {\n return result;\n }\n\n var styleList = {};\n styleRegex.lastIndex = 0;\n var styleRegResult;\n\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n styleList[styleRegResult[1]] = styleRegResult[2];\n }\n\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n }\n }\n\n return result;\n}\n/**\n * @param {Array.} viewBoxRect\n * @param {number} width\n * @param {number} height\n * @return {Object} {scale, position}\n */\n\n\nfunction makeViewBoxTransform(viewBoxRect, width, height) {\n var scaleX = width / viewBoxRect.width;\n var scaleY = height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY); // preserveAspectRatio 'xMidYMid'\n\n var viewBoxScale = [scale, scale];\n var viewBoxPosition = [-(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2, -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2];\n return {\n scale: viewBoxScale,\n position: viewBoxPosition\n };\n}\n/**\n * @param {string|XMLElement} xml\n * @param {Object} [opt]\n * @param {number} [opt.width] Default width if svg width not specified or is a percent value.\n * @param {number} [opt.height] Default height if svg height not specified or is a percent value.\n * @param {boolean} [opt.ignoreViewBox]\n * @param {boolean} [opt.ignoreRootClip]\n * @return {Object} result:\n * {\n * root: Group, The root of the the result tree of zrender shapes,\n * width: number, the viewport width of the SVG,\n * height: number, the viewport height of the SVG,\n * viewBoxRect: {x, y, width, height}, the declared viewBox rect of the SVG, if exists,\n * viewBoxTransform: the {scale, position} calculated by viewBox and viewport, is exists.\n * }\n */\n\n\nfunction parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\n\nexports.parseXML = parseXML;\nexports.makeViewBoxTransform = makeViewBoxTransform;\nexports.parseSVG = parseSVG;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapModel = require(\"./VisualMapModel\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Constant\nvar DEFAULT_BAR_BOUND = [20, 140];\nvar ContinuousModel = VisualMapModel.extend({\n type: 'visualMap.continuous',\n\n /**\n * @protected\n */\n defaultOption: {\n align: 'auto',\n // 'auto', 'left', 'right', 'top', 'bottom'\n calculable: false,\n // This prop effect default component type determine,\n // See echarts/component/visualMap/typeDefaulter.\n range: null,\n // selected range. In default case `range` is [min, max]\n // and can auto change along with modification of min max,\n // util use specifid a range.\n realtime: true,\n // Whether realtime update.\n itemHeight: null,\n // The length of the range control edge.\n itemWidth: null,\n // The length of the other side.\n hoverLink: true,\n // Enable hover highlight.\n hoverLinkDataSize: null,\n // The size of hovered data.\n hoverLinkOnHandle: null // Whether trigger hoverLink when hover handle.\n // If not specified, follow the value of `realtime`.\n\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n ContinuousModel.superApply(this, 'optionUpdated', arguments);\n this.resetExtent();\n this.resetVisual(function (mappingOption) {\n mappingOption.mappingMethod = 'linear';\n mappingOption.dataExtent = this.getExtent();\n });\n\n this._resetRange();\n },\n\n /**\n * @protected\n * @override\n */\n resetItemSize: function () {\n ContinuousModel.superApply(this, 'resetItemSize', arguments);\n var itemSize = this.itemSize;\n this._orient === 'horizontal' && itemSize.reverse();\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n },\n\n /**\n * @private\n */\n _resetRange: function () {\n var dataExtent = this.getExtent();\n var range = this.option.range;\n\n if (!range || range.auto) {\n // `range` should always be array (so we dont use other\n // value like 'auto') for user-friend. (consider getOption).\n dataExtent.auto = 1;\n this.option.range = dataExtent;\n } else if (zrUtil.isArray(range)) {\n if (range[0] > range[1]) {\n range.reverse();\n }\n\n range[0] = Math.max(range[0], dataExtent[0]);\n range[1] = Math.min(range[1], dataExtent[1]);\n }\n },\n\n /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n zrUtil.each(this.stateList, function (state) {\n var symbolSize = this.option.controller[state].symbolSize;\n\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n symbolSize[0] = 0; // For good looking.\n }\n }, this);\n },\n\n /**\n * @override\n */\n setSelected: function (selected) {\n this.option.range = selected.slice();\n\n this._resetRange();\n },\n\n /**\n * @public\n */\n getSelected: function () {\n var dataExtent = this.getExtent();\n var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n return dataInterval;\n },\n\n /**\n * @override\n */\n getValueState: function (value) {\n var range = this.option.range;\n var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n // range[1] is processed likewise.\n\n return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n },\n\n /**\n * @params {Array.} range target value: range[0] <= value && value <= range[1]\n * @return {Array.} [{seriesId, dataIndices: >}, ...]\n */\n findTargetDataIndices: function (range) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n },\n\n /**\n * @implement\n */\n getVisualMeta: function (getColorVisual) {\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n var stops = [];\n\n function setStop(value, valueState) {\n stops.push({\n value: value,\n color: getColorVisual(value, valueState)\n });\n } // Format to: outOfRange -- inRange -- outOfRange.\n\n\n var iIdx = 0;\n var oIdx = 0;\n var iLen = iVals.length;\n var oLen = oVals.length;\n\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\n if (oVals[oIdx] < iVals[iIdx]) {\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n // If range is full, value beyond min, max will be clamped.\n // make a singularity\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n setStop(iVals[iIdx], 'inRange');\n }\n\n for (var first = 1; oIdx < oLen; oIdx++) {\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n // make a singularity\n if (first) {\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n first = 0;\n }\n\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n var stopsLen = stops.length;\n return {\n stops: stops,\n outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n };\n }\n});\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n if (dataExtent[0] === dataExtent[1]) {\n return dataExtent.slice();\n } // When using colorHue mapping, it is not linear color any more.\n // Moreover, canvas gradient seems not to be accurate linear.\n // FIXME\n // Should be arbitrary value 100? or based on pixel size?\n\n\n var count = 200;\n var step = (dataExtent[1] - dataExtent[0]) / count;\n var value = dataExtent[0];\n var stopValues = [];\n\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n stopValues.push(value);\n value += step;\n }\n\n stopValues.push(dataExtent[1]);\n return stopValues;\n}\n\nvar _default = ContinuousModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\n var axis = this.getAxis();\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nfunction _default(coordSys) {\n var rect = coordSys.getRect();\n return {\n coordSys: {\n type: 'singleAxis',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (val) {\n // do not provide \"out\" param\n return coordSys.dataToPoint(val);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar markerHelper = require(\"./markerHelper\");\n\nvar LineDraw = require(\"../../chart/helper/LineDraw\");\n\nvar MarkerView = require(\"./MarkerView\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData(); // Special type markLine like 'min', 'max', 'average', 'median'\n\n var mlType = item.type;\n\n if (!zrUtil.isArray(item) && (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n // data: [{\n // yAxis: 10\n // }]\n || item.xAxis != null || item.yAxis != null)) {\n var valueAxis;\n var value;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n value = zrUtil.retrieve(item.yAxis, item.xAxis);\n } else {\n var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n valueAxis = axisInfo.valueAxis;\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n value = markerHelper.numCalculate(data, valueDataDim, mlType);\n }\n\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n var baseIndex = 1 - valueIndex;\n var mlFrom = zrUtil.clone(item);\n var mlTo = {};\n mlFrom.type = null;\n mlFrom.coord = [];\n mlTo.coord = [];\n mlFrom.coord[baseIndex] = -Infinity;\n mlTo.coord[baseIndex] = Infinity;\n var precision = mlModel.get('precision');\n\n if (precision >= 0 && typeof value === 'number') {\n value = +value.toFixed(Math.min(precision, 20));\n }\n\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n item = [mlFrom, mlTo, {\n // Extra option for tooltip and label\n type: mlType,\n valueIndex: item.valueIndex,\n // Force to use the value of calculated value.\n value: value\n }];\n }\n\n item = [markerHelper.dataTransform(seriesModel, item[0]), markerHelper.dataTransform(seriesModel, item[1]), zrUtil.extend({}, item[2])]; // Avoid line data type is extended by from(to) data type\n\n item[2].type = item[2].type || ''; // Merge from option and to option into line option\n\n zrUtil.merge(item[2], item[0]);\n zrUtil.merge(item[2], item[1]);\n return item;\n};\n\nfunction isInifinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n var dimName = coordSys.dimensions[dimIndex];\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n if (coordSys.type === 'cartesian2d') {\n var fromCoord = item[0].coord;\n var toCoord = item[1].coord; // In case\n // {\n // markLine: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPoisition\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n } else {\n var dims = coordSys.dimensions;\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Expand line to the edge of grid if value on one axis is Inifnity\n // In case\n // markLine: {\n // data: [{\n // yAxis: 2\n // // or\n // type: 'average'\n // }]\n // }\n\n\n if (coordSys.type === 'cartesian2d') {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var dims = coordSys.dimensions;\n\n if (isInifinity(data.get(dims[0], idx))) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n } else if (isInifinity(data.get(dims[1], idx))) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n data.setItemLayout(idx, point);\n}\n\nvar _default = MarkerView.extend({\n type: 'markLine',\n // updateLayout: function (markLineModel, ecModel, api) {\n // ecModel.eachSeries(function (seriesModel) {\n // var mlModel = seriesModel.markLineModel;\n // if (mlModel) {\n // var mlData = mlModel.getData();\n // var fromData = mlModel.__from;\n // var toData = mlModel.__to;\n // // Update visual and layout of from symbol and to symbol\n // fromData.each(function (idx) {\n // updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n // updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n // });\n // // Update layout of line\n // mlData.each(function (idx) {\n // mlData.setItemLayout(idx, [\n // fromData.getItemLayout(idx),\n // toData.getItemLayout(idx)\n // ]);\n // });\n // this.markerGroupMap.get(seriesModel.id).updateLayout();\n // }\n // }, this);\n // },\n updateTransform: function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = seriesModel.markLineModel;\n\n if (mlModel) {\n var mlData = mlModel.getData();\n var fromData = mlModel.__from;\n var toData = mlModel.__to; // Update visual and layout of from symbol and to symbol\n\n fromData.each(function (idx) {\n updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n }); // Update layout of line\n\n mlData.each(function (idx) {\n mlData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n },\n renderSeries: function (seriesModel, mlModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var lineDrawMap = this.markerGroupMap;\n var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n this.group.add(lineDraw.group);\n var mlData = createList(coordSys, seriesModel, mlModel);\n var fromData = mlData.from;\n var toData = mlData.to;\n var lineData = mlData.line;\n mlModel.__from = fromData;\n mlModel.__to = toData; // Line data for tooltip and formatter\n\n mlModel.setData(lineData);\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n\n if (!zrUtil.isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (typeof symbolSize === 'number') {\n symbolSize = [symbolSize, symbolSize];\n } // Update visual and layout of from symbol and to symbol\n\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n }); // Update visual and layout of line\n\n lineData.each(function (idx) {\n var lineColor = lineData.getItemModel(idx).get('lineStyle.color');\n lineData.setItemVisual(idx, {\n color: lineColor || fromData.getItemVisual(idx, 'color')\n });\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n lineData.setItemVisual(idx, {\n 'fromSymbolSize': fromData.getItemVisual(idx, 'symbolSize'),\n 'fromSymbol': fromData.getItemVisual(idx, 'symbol'),\n 'toSymbolSize': toData.getItemVisual(idx, 'symbolSize'),\n 'toSymbol': toData.getItemVisual(idx, 'symbol')\n });\n });\n lineDraw.updateData(lineData); // Set host model for tooltip\n // FIXME\n\n mlData.line.eachItemGraphicEl(function (el, idx) {\n el.traverse(function (child) {\n child.dataModel = mlModel;\n });\n });\n\n function updateDataVisualAndLayout(data, idx, isFrom) {\n var itemModel = data.getItemModel(idx);\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n data.setItemVisual(idx, {\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n color: itemModel.get('itemStyle.color') || seriesData.getVisual('color')\n });\n }\n\n lineDraw.__keep = true;\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} coordSys\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return zrUtil.defaults({\n name: coordDim\n }, info);\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var fromData = new List(coordDimsInfos, mlModel);\n var toData = new List(coordDimsInfos, mlModel); // No dimensions\n\n var lineData = new List([], mlModel);\n var optData = zrUtil.map(mlModel.get('data'), zrUtil.curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = zrUtil.filter(optData, zrUtil.curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n return item.value;\n };\n fromData.initData(zrUtil.map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(zrUtil.map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(zrUtil.map(optData, function (item) {\n return item[2];\n }));\n lineData.hasItemOption = true;\n return {\n from: fromData,\n to: toData,\n line: lineData\n };\n}\n\nmodule.exports = _default;","var util = require(\"../core/util\");\n\nvar _event = require(\"../core/event\");\n\nvar Dispatcher = _event.Dispatcher;\n\nvar requestAnimationFrame = require(\"./requestAnimationFrame\");\n\nvar Animator = require(\"./Animator\");\n\n/**\n * Animation main class, dispatch and manage all animation controllers\n *\n * @module zrender/animation/Animation\n * @author pissang(https://github.com/pissang)\n */\n// TODO Additive animation\n// http://iosoteric.com/additive-animations-animatewithduration-in-ios-8/\n// https://developer.apple.com/videos/wwdc2014/#236\n\n/**\n * @typedef {Object} IZRenderStage\n * @property {Function} update\n */\n\n/**\n * @alias module:zrender/animation/Animation\n * @constructor\n * @param {Object} [options]\n * @param {Function} [options.onframe]\n * @param {IZRenderStage} [options.stage]\n * @example\n * var animation = new Animation();\n * var obj = {\n * x: 100,\n * y: 100\n * };\n * animation.animate(node.position)\n * .when(1000, {\n * x: 500,\n * y: 500\n * })\n * .when(2000, {\n * x: 100,\n * y: 100\n * })\n * .start('spline');\n */\nvar Animation = function (options) {\n options = options || {};\n this.stage = options.stage || {};\n\n this.onframe = options.onframe || function () {}; // private properties\n\n\n this._clips = [];\n this._running = false;\n this._time;\n this._pausedTime;\n this._pauseStart;\n this._paused = false;\n Dispatcher.call(this);\n};\n\nAnimation.prototype = {\n constructor: Animation,\n\n /**\n * Add clip\n * @param {module:zrender/animation/Clip} clip\n */\n addClip: function (clip) {\n this._clips.push(clip);\n },\n\n /**\n * Add animator\n * @param {module:zrender/animation/Animator} animator\n */\n addAnimator: function (animator) {\n animator.animation = this;\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.addClip(clips[i]);\n }\n },\n\n /**\n * Delete animation clip\n * @param {module:zrender/animation/Clip} clip\n */\n removeClip: function (clip) {\n var idx = util.indexOf(this._clips, clip);\n\n if (idx >= 0) {\n this._clips.splice(idx, 1);\n }\n },\n\n /**\n * Delete animation clip\n * @param {module:zrender/animation/Animator} animator\n */\n removeAnimator: function (animator) {\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.removeClip(clips[i]);\n }\n\n animator.animation = null;\n },\n _update: function () {\n var time = new Date().getTime() - this._pausedTime;\n\n var delta = time - this._time;\n var clips = this._clips;\n var len = clips.length;\n var deferredEvents = [];\n var deferredClips = [];\n\n for (var i = 0; i < len; i++) {\n var clip = clips[i];\n var e = clip.step(time, delta); // Throw out the events need to be called after\n // stage.update, like destroy\n\n if (e) {\n deferredEvents.push(e);\n deferredClips.push(clip);\n }\n } // Remove the finished clip\n\n\n for (var i = 0; i < len;) {\n if (clips[i]._needsRemove) {\n clips[i] = clips[len - 1];\n clips.pop();\n len--;\n } else {\n i++;\n }\n }\n\n len = deferredEvents.length;\n\n for (var i = 0; i < len; i++) {\n deferredClips[i].fire(deferredEvents[i]);\n }\n\n this._time = time;\n this.onframe(delta); // 'frame' should be triggered before stage, because upper application\n // depends on the sequence (e.g., echarts-stream and finish\n // event judge)\n\n this.trigger('frame', delta);\n\n if (this.stage.update) {\n this.stage.update();\n }\n },\n _startLoop: function () {\n var self = this;\n this._running = true;\n\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self._update();\n }\n }\n\n requestAnimationFrame(step);\n },\n\n /**\n * Start animation.\n */\n start: function () {\n this._time = new Date().getTime();\n this._pausedTime = 0;\n\n this._startLoop();\n },\n\n /**\n * Stop animation.\n */\n stop: function () {\n this._running = false;\n },\n\n /**\n * Pause animation.\n */\n pause: function () {\n if (!this._paused) {\n this._pauseStart = new Date().getTime();\n this._paused = true;\n }\n },\n\n /**\n * Resume animation.\n */\n resume: function () {\n if (this._paused) {\n this._pausedTime += new Date().getTime() - this._pauseStart;\n this._paused = false;\n }\n },\n\n /**\n * Clear animation.\n */\n clear: function () {\n this._clips = [];\n },\n\n /**\n * Whether animation finished.\n */\n isFinished: function () {\n return !this._clips.length;\n },\n\n /**\n * Creat animator for a target, whose props can be animated.\n *\n * @param {Object} target\n * @param {Object} options\n * @param {boolean} [options.loop=false] Whether loop animation.\n * @param {Function} [options.getter=null] Get value from target.\n * @param {Function} [options.setter=null] Set value to target.\n * @return {module:zrender/animation/Animation~Animator}\n */\n // TODO Gap\n animate: function (target, options) {\n options = options || {};\n var animator = new Animator(target, options.loop, options.getter, options.setter);\n this.addAnimator(animator);\n return animator;\n }\n};\nutil.mixin(Animation, Dispatcher);\nvar _default = Animation;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./sankey/SankeySeries\");\n\nrequire(\"./sankey/SankeyView\");\n\nrequire(\"./sankey/sankeyAction\");\n\nvar sankeyLayout = require(\"./sankey/sankeyLayout\");\n\nvar sankeyVisual = require(\"./sankey/sankeyVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(sankeyLayout);\necharts.registerVisual(sankeyVisual);","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports', 'echarts'], factory);\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n // CommonJS\n factory(exports, require('echarts'));\n } else {\n // Browser globals\n factory({}, root.echarts);\n }\n}(this, function (exports, echarts) {\n var log = function (msg) {\n if (typeof console !== 'undefined') {\n console && console.error && console.error(msg);\n }\n }\n if (!echarts) {\n log('ECharts is not Loaded');\n return;\n }\n if (!echarts.registerMap) {\n log('ECharts Map is not loaded')\n return;\n }\n echarts.registerMap('china', {\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"id\":\"710000\",\"properties\":{\"id\":\"710000\",\"cp\":[121.509062,24.044332],\"name\":\"台湾\",\"childNum\":6},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@°Ü¯Û\"],[\"@@ƛĴÕƊÉɼģºðʀ\\\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ\"],[\"@@\\\\p|WoYG¿¥I†j@¢\"],[\"@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I\"],[\"@@ÆEE—„kWqë @œ\"],[\"@@fced\"],[\"@@„¯ɜÄèaì¯ØǓIġĽ\"],[\"@@çûĖ롖hòř \"]],\"encodeOffsets\":[[[122886,24033]],[[123335,22980]],[[122375,24193]],[[122518,24117]],[[124427,22618]],[[124862,26043]],[[126259,26318]],[[127671,26683]]]}},{\"type\":\"Feature\",\"id\":\"130000\",\"properties\":{\"id\":\"130000\",\"cp\":[114.502461,38.045474],\"name\":\"河北\",\"childNum\":3},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e\"],[\"@@U`Ts¿m‚\"],[\"@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~žKŨ¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„^®’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–ZÔ’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€T̒Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧĖ¸fŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgʊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇O¡“gÚ¡IwÃ鑦ÅB‡Ï|Ç°…N«úmH¯‹âŸDùŽyŜžŲIÄuШDž•¸dɂ‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃĶš¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\\\tŽa\\\\tĕtû{ġŒȧXýĪÓjùÎRb›š^ΛfK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”pŞlNut®Etq‚nsÁŠgA‹iú‹oH‡qCX‡”hfgu“~ϋWP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\\\mĆJfl@cĢ¬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®VŠ¹d^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qᵧš™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚\"]],\"encodeOffsets\":[[[119712,40641]],[[121616,39981]],[[116462,37237]]]}},{\"type\":\"Feature\",\"id\":\"140000\",\"properties\":{\"id\":\"140000\",\"cp\":[111.849248,36.857014],\"name\":\"山西\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@Þĩ҃S‰ra}Á€yWix±Üe´lè“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Yӎ•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœn±“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَUȌ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz\"],\"encodeOffsets\":[[116874,41716]]}},{\"type\":\"Feature\",\"id\":\"150000\",\"properties\":{\"id\":\"150000\",\"cp\":[111.670801,41.818311],\"name\":\"内蒙古\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–Rë¥_ŽsgÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸkŇ¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉv¦wĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\\\ƒ‡@áügQ͋u¥Fƒ“T՛¿Jû‡]|mvāÎYua^WoÀa·­ząÒot׶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’_ĥ‘¿ãZ•»X\\\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚ᠞ŒG°ùnM¬¯†{ȈÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µsKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„_¹„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚĒ¸ĞGȖƴƀj`ĢçĶāàŃºēĢƒĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTЪŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄN¦¾O¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣFʉɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\\\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†^¦–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚r¤–`[|òDŞĔöxElÖdH„ÀI`„Ď\\\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFĒœƌXƲąo½Ę‘\\\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ġu¦öČ^â£Ăh–šĖMÈÄw‚\\\\fŦ°W ¢¾luŸD„wŠ\\\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ\"]],\"encodeOffsets\":[[[129102,52189]]]}},{\"type\":\"Feature\",\"id\":\"210000\",\"properties\":{\"id\":\"210000\",\"cp\":[123.429096,41.796767],\"name\":\"辽宁\",\"childNum\":16},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@L–Ž@@s™a\"],[\"@@MnNm\"],[\"@@d‚c\"],[\"@@eÀ‚C@b‚“‰\"],[\"@@f‡…Xwkbr–Ä`qg\"],[\"@@^jtW‘Q\"],[\"@@~ Y]c\"],[\"@@G`ĔN^_¿Z‚ÃM\"],[\"@@iX¶B‹Y\"],[\"@@„YƒZ\"],[\"@@L_{Epf\"],[\"@@^WqCT\\\\\"],[\"@@\\\\[“‹§t|”¤_\"],[\"@@m`n_\"],[\"@@Ïxnj{q_×^Giip\"],[\"@@@œé^B†‡ntˆaÊU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–C¨¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\\\ÀøíDm¦ÎbŨab‰œaĘ\\\\ľã‚¸a˜tÎSƐ´©v\\\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œhæm‰–sHy¨SðÑÌ\\\\\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] Â¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA\"]],\"encodeOffsets\":[[[123686,41445]],[[126019,40435]],[[124393,40128]],[[126117,39963]],[[125322,40140]],[[126686,40700]],[[126041,40374]],[[125584,40168]],[[125453,40165]],[[125362,40214]],[[125280,40291]],[[125774,39997]],[[125976,40496]],[[125822,39993]],[[125509,40217]],[[122731,40949]]]}},{\"type\":\"Feature\",\"id\":\"220000\",\"properties\":{\"id\":\"220000\",\"cp\":[125.3245,43.886841],\"name\":\"吉林\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@‘p䔳PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHlEŕ‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\\\rµÄl”iˆdā]|DÂVŒœH¹ˆÞ®ÜWnŒC”Œķ W‹§@\\\\¸‹ƒ~¤‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia É‰™È¹`\\\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚OðŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWžvЉˆzƦZЎ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@v¶eň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹}Ǟ“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae^§„GK}iã\\\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗYƅŒ»…é\\\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘L¡‘ýŸqT^rme™\\\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG\"],\"encodeOffsets\":[[130196,42528]]}},{\"type\":\"Feature\",\"id\":\"230000\",\"properties\":{\"id\":\"230000\",\"cp\":[128.642464,46.756967],\"name\":\"黑龙江\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐZ΋ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tŽ¸ĻN_yŸX`biN™Ku…P›£k‚ZĮ—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFćš}¢‰A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”Oµ—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡yϊu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰}ć…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUΠlkš^p{f¤lˆºlÆW –€A²˜PVܜPH”Êâ]ÎĈÌÜk´\\\\@qàsĔÄQºpRij¼èi†`¶—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆Oƒ‡ŊŒvŞ”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹšL¤‹¤‡eˌƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\\\kzţ¦šnņäÔVĂîĪ¬|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”eŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”ƦYĜ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]\"]],\"encodeOffsets\":[[[134456,44547]]]}},{\"type\":\"Feature\",\"id\":\"320000\",\"properties\":{\"id\":\"320000\",\"cp\":[119.767413,33.041544],\"name\":\"江苏\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@cþÅPiŠ`ZŸRu¥É\\\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’|ДiZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@Ę¹hågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœR®òLh‰›Ěs©»œ}OӌGZz¶A\\\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ\"],\"encodeOffsets\":[[121740,32276]]}},{\"type\":\"Feature\",\"id\":\"330000\",\"properties\":{\"id\":\"330000\",\"cp\":[120.153576,29.287459],\"name\":\"浙江\",\"childNum\":45},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@E^dQ]K\"],[\"@@jX^j‡\"],[\"@@sfŠbU‡\"],[\"@@qP\\\\xz[ck\"],[\"@@‘Rƒ¢‚FX}°[s_\"],[\"@@Cbœ\\\\—}\"],[\"@@e|v\\\\la{u\"],[\"@@v~u}\"],[\"@@QxÂF¯}\"],[\"@@¹nŒvÞs¯o\"],[\"@@rSkUEj\"],[\"@@bi­ZŒP\"],[\"@@p[}INf\"],[\"@@À¿€\"],[\"@@¹dnbŒ…\"],[\"@@rSŸBnR\"],[\"@@g~h}\"],[\"@@FlEk\"],[\"@@OdPc\"],[\"@@v[u\\\\\"],[\"@@FjâL~wyoo~›sµL–\\\\\"],[\"@@¬e¹aNˆ\"],[\"@@\\\\nÔ¡q]L³ë\\\\ÿ®ŒQ֎\"],[\"@@ÊA­©[¬\"],[\"@@KxŒv­\"],[\"@@@hlIk]\"],[\"@@pW{o||j\"],[\"@@Md|_mC\"],[\"@@¢…X£ÏylD¼XˆtH\"],[\"@@hlÜ[LykAvyfw^Ež›¤\"],[\"@@fp¤Mus“R\"],[\"@@®_ma~•LÁ¬šZ\"],[\"@@iM„xZ\"],[\"@@ZcYd\"],[\"@@Z~dOSo|A¿qZv\"],[\"@@@`”EN¡v\"],[\"@@|–TY{\"],[\"@@@n@m\"],[\"@@XWkCT\\\\\"],[\"@@ºwšZRkĕWO¢\"],[\"@@™X®±Grƪ\\\\ÔáXq{‹\"],[\"@@ůTG°ĄLHm°UC‹\"],[\"@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВjē¢·ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰Qª…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•L¨¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈڜĒ±„hŖ‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst\"],[\"@@o\\\\V’zRZ}y\"],[\"@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™\"]],\"encodeOffsets\":[[[125592,31553]],[[125785,31436]],[[125729,31431]],[[125513,31380]],[[125223,30438]],[[125115,30114]],[[124815,29155]],[[124419,28746]],[[124095,28635]],[[124005,28609]],[[125000,30713]],[[125111,30698]],[[125078,30682]],[[125150,30684]],[[124014,28103]],[[125008,31331]],[[125411,31468]],[[125329,31479]],[[125626,30916]],[[125417,30956]],[[125254,30976]],[[125199,30997]],[[125095,31058]],[[125083,30915]],[[124885,31015]],[[125218,30798]],[[124867,30838]],[[124755,30788]],[[124802,30809]],[[125267,30657]],[[125218,30578]],[[125200,30562]],[[124968,30474]],[[125167,30396]],[[124955,29879]],[[124714,29781]],[[124762,29462]],[[124325,28754]],[[123990,28459]],[[125366,31477]],[[125115,30363]],[[125369,31139]],[[122495,31878]],[[125329,30690]],[[125192,30787]]]}},{\"type\":\"Feature\",\"id\":\"340000\",\"properties\":{\"id\":\"340000\",\"cp\":[117.283042,31.26119],\"name\":\"安徽\",\"childNum\":3},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@^iuLX^\"],[\"@@‚e©Ehl\"],[\"@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆx¢„gPícOl_iCveaOjCh߸i݋bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDE¶zAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥f¥—őaSÕė™NµñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜƶĊJhšp“c¹˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆߎF¶žX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴĖ¶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´\"]],\"encodeOffsets\":[[[121722,32278]],[[119475,30423]],[[119168,35472]]]}},{\"type\":\"Feature\",\"id\":\"350000\",\"properties\":{\"id\":\"350000\",\"cp\":[118.306239,26.075302],\"name\":\"福建\",\"childNum\":18},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@“zht´‡]\"],[\"@@aj^~ĆG—©O\"],[\"@@ed¨„C}}i\"],[\"@@@vˆPGsQ\"],[\"@@‰sBz‚ddW]Q\"],[\"@@SŽ¨Q“{\"],[\"@@NŽVucW\"],[\"@@qptBAq\"],[\"@@‰’¸[mu\"],[\"@@Q\\\\pD]_\"],[\"@@jSwUadpF\"],[\"@@eXª~ƒ•\"],[\"@@AjvFso\"],[\"@@fT–›_Çí\\\\Ÿ™—v|ba¦jZÆy€°\"],[\"@@IjJi\"],[\"@@wJI€ˆxš«¼AoNe{M­\"],[\"@@K‰±¡Óˆ”ČäeZ\"],[\"@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\\\@ åA¬ˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž`¶“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸m±“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\\\_\"]],\"encodeOffsets\":[[[123250,27563]],[[122541,27268]],[[123020,27189]],[[122916,27125]],[[122887,26845]],[[122808,26762]],[[122568,25912]],[[122778,26197]],[[122515,26757]],[[122816,26587]],[[123388,27005]],[[122450,26243]],[[122578,25962]],[[121255,25103]],[[120987,24903]],[[122339,25802]],[[121042,25093]],[[122439,26024]]]}},{\"type\":\"Feature\",\"id\":\"360000\",\"properties\":{\"id\":\"360000\",\"cp\":[115.592151,27.676493],\"name\":\"江西\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@ĢĨƐgļˆ¼ÂMD~ņªe^\\\\^§„ý©j׍cZ†Ø¨zdÒa¶ˆlҍJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ð딠¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\\\OkxtL E¢‹ƒ‘Ú^~ýê‹Pó–qo슱_Êw§ÑªåƗā¼‹mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\\\˜„L‚‘²\"],\"encodeOffsets\":[[116689,26234]]}},{\"type\":\"Feature\",\"id\":\"370000\",\"properties\":{\"id\":\"370000\",\"cp\":[118.000923,36.275807],\"name\":\"山东\",\"childNum\":13},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@Xjd]{K\"],[\"@@itbFHy\"],[\"@@HlGk\"],[\"@@T‚ŒGŸy\"],[\"@@K¬˜•‹U\"],[\"@@WdXc\"],[\"@@PtOs\"],[\"@@•LnXhc\"],[\"@@ppVƒu]Or\"],[\"@@cdzAUa\"],[\"@@udRhnCI‡\"],[\"@@ˆoIƒpR„\"],[\"@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞƄLĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌĒœbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐĖ¹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡¶d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPk¶Môlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøCǷ돡ąuhÛ¡^Kx•C`C\\\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~Ż¸Y’I“] P‰umŝrƿ›‰›Iā‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuŁŒg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰`Ä Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ\"]],\"encodeOffsets\":[[[123806,39303]],[[123821,39266]],[[123742,39256]],[[123702,39203]],[[123649,39066]],[[123847,38933]],[[123580,38839]],[[123894,37288]],[[123043,36624]],[[123344,38676]],[[123522,38857]],[[123628,38858]],[[118260,36742]]]}},{\"type\":\"Feature\",\"id\":\"410000\",\"properties\":{\"id\":\"410000\",\"cp\":[113.665412,33.757975],\"name\":\"河南\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@•ýL™ùµP³swIÓxcŢĞð†´E®žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡nύ­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„tĠ—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”~؋ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\\\d\\\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\\\ÀœEhŽİgÞē X¼Pk–„|m\"],\"encodeOffsets\":[[118256,37017]]}},{\"type\":\"Feature\",\"id\":\"420000\",\"properties\":{\"id\":\"420000\",\"cp\":[113.298572,30.684355],\"name\":\"湖北\",\"childNum\":3},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@AB‚\"],[\"@@lskt\"],[\"@@¾«}{ra®pîÃ\\\\™›{øCŠËyyB±„b\\\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙ抚ŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYŠ§HK„«Qy‰]¢“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\\\É[T·™k¹œ©oĕ@A¾w•ya¥Y\\\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊU¶eD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆĢ¶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ ^²­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤\"]],\"encodeOffsets\":[[[113712,34000]],[[115612,30507]],[[113649,34054]]]}},{\"type\":\"Feature\",\"id\":\"430000\",\"properties\":{\"id\":\"430000\",\"cp\":[111.782279,28.09409],\"name\":\"湖南\",\"childNum\":3},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@—n„FTs\"],[\"@@ßÅÆችÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–Ģ¾ŠedžÄ©ĸG…œàGh‚€M¤–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M\"],[\"@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹MąıuZœmZcÒ IJĪ²SÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUŠ¾Å‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPĪ±œ£EXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\\\Ø  i”ćymnú¨cj ¢»–GČìƊÿШXeĈĀ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\\\Ĕ[N¥ˀmĎă’J\\\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎŪƒƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\\\pē˜XhÆRC­üWGġu…T靧Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Rşs·€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ\"]],\"encodeOffsets\":[[[115640,30489]],[[112543,27312]],[[116690,26230]]]}},{\"type\":\"Feature\",\"id\":\"440000\",\"properties\":{\"id\":\"440000\",\"cp\":[113.280637,23.125178],\"name\":\"广东\",\"childNum\":24},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@QdˆAua\"],[\"@@ƒlxDLo\"],[\"@@sbhNLo\"],[\"@@Ă āŸ\"],[\"@@WltO[[\"],[\"@@Krœ]S\"],[\"@@e„„I]y\"],[\"@@I|„Mym\"],[\"@@ƒÛ³LSŒž¼Y\"],[\"@@nvºB–ëui©`¾\"],[\"@@zdšÛ›Jw®\"],[\"@@†°…¯\"],[\"@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o\"],[\"@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh\"],[\"@@‹¶Ý’Ì‚vmĞh­ı‡Q\"],[\"@@HœŠdSjĒ¢D}war…“u«ZqadYM\"],[\"@@elŒ\\\\LqqU\"],[\"@@~rMo\\\\\"],[\"@@f„^ƒC\"],[\"@@øPªoj÷ÍÝħXČx”°Q¨ıXNv\"],[\"@@gÇƳˆŽˆ”oˆŠˆ[~tly\"],[\"@@E–ÆC¿‘\"],[\"@@OŽP\"],[\"@@w‹†đóg‰™ĝ—[³‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š–FĤ–‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžEÀˆ˜©Œž\\\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéʌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i\"]],\"encodeOffsets\":[[[117381,22988]],[[116552,22934]],[[116790,22617]],[[116973,22545]],[[116444,22536]],[[116931,22515]],[[116496,22490]],[[116453,22449]],[[113301,21439]],[[118726,21604]],[[118709,21486]],[[113210,20816]],[[115482,22082]],[[113171,21585]],[[113199,21590]],[[115232,22102]],[[115739,22373]],[[115134,22184]],[[113056,21175]],[[119573,21271]],[[119957,24020]],[[115859,22356]],[[116561,22649]],[[116285,22746]]]}},{\"type\":\"Feature\",\"id\":\"450000\",\"properties\":{\"id\":\"450000\",\"cp\":[108.320004,22.82402],\"name\":\"广西\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@H– TQ§•A\"],[\"@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝz¯šlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloŽ¤™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹qǀcz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆƌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FĻ¼Ĺ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…C̀Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•Eģ‰•E“ďs‡’mǖŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠhŒ‹\\\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…qĂXËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢J\"]],\"encodeOffsets\":[[[111707,21520]],[[107619,25527]]]}},{\"type\":\"Feature\",\"id\":\"460000\",\"properties\":{\"id\":\"460000\",\"cp\":[109.83119,19.031971],\"name\":\"海南\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒšZdž™zÐŘΰH¨Ƣb²_Ġ \"],\"encodeOffsets\":[[112750,20508]]}},{\"type\":\"Feature\",\"id\":\"510000\",\"properties\":{\"id\":\"510000\",\"cp\":[104.065735,30.659462],\"name\":\"四川\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@LqKr\"],[\"@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽiÍıƣıĻmHH}siaX@iÇ°ÁÃ×t«ƒ­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žB²ŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–uå‡mni{fk”\\\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†y£„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›Zϕ‹œÅĭ€Ƌ•ěpwDóÖሯneQˌq·•GCœýS]xŸ·ý‹q³•O՜Œ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZŽ°Iä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎkµ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºTĀ£ŚæœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïžPȆ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“sÖ×_͖_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`ĀŠz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„NΆL€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒu¨ŦyhoÚD®¯¢˜ WòàFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\\\Z{åû^›\"]],\"encodeOffsets\":[[[108815,30935]],[[110617,31811]]]}},{\"type\":\"Feature\",\"id\":\"520000\",\"properties\":{\"id\":\"520000\",\"cp\":[106.713478,26.578343],\"name\":\"贵州\",\"childNum\":3},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@†G\\\\†lY£‘in\"],[\"@@q‚|ˆ‚mc¯tχVSÎ\"],[\"@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\\\}—ƒG®u\\\\åPFq‹wÅaD…žK°ºâ_£ùbµ”mÁ‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„cȁbe¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pН`oÒhŽ¶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KŠ³ŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„z¤…ž£Tl®ctĽÚó{G­A‡ŒÇgeš~Αd¿æaSba¥KKûj®_ć^\\\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}Ž±žGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝƀ‚sª–B`„s¶œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½\"]],\"encodeOffsets\":[[[112158,27383]],[[112105,27474]],[[112095,27476]]]}},{\"type\":\"Feature\",\"id\":\"530000\",\"properties\":{\"id\":\"530000\",\"cp\":[101.512251,24.740609],\"name\":\"云南\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚cʋlHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèƶStǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ  ¶®dNœĄÄpªyŽ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†}®BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށqóžSį¯‘³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀžaü„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\\\Ī¼Ä£UsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\\\_gz—]W¼ž~CÔē]bµogpў_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\\\lˆMFlư£Ĝ„ÆyH“„F¨‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇W¥˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`\"],\"encodeOffsets\":[[104636,22969]]}},{\"type\":\"Feature\",\"id\":\"540000\",\"properties\":{\"id\":\"540000\",\"cp\":[89.132212,30.860361],\"name\":\"西藏\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@hžľxŽŖ‰xƒÒVŽ†ºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœdĊ…œ\\\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´|Ł˜¦AvŽ¦w`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdŠ‰ªB]pj„•TO–tĊ‚n¤}®¦ƒČ¥d¢¼»ddš”Y¼Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀŻ¦¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒIij€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…v½ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVŠµ‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£àč²‹ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæńhnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™n鄧żćŠ˜ĆK„Ē°¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜Uú´xx[xˆvĐCûĀŠìÖT¬¸^}Ìsòd´_Ž‡KgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxŠ¶F”œkĄźRzŀˆ~¶[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀRšŶUńšĖ[QhlLüA†‹Ü\\\\†qR›Ą©\"],\"encodeOffsets\":[[90849,37210]]}},{\"type\":\"Feature\",\"id\":\"610000\",\"properties\":{\"id\":\"610000\",\"cp\":[108.948024,34.263161],\"name\":\"陕西\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@˜p¢—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎwܔ¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’Y¹‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍKù’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸwƇˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡tƇÏ˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸX¡—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OĻ¹S|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cĎ°Â[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~Š¦UbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆY§‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj\"],\"encodeOffsets\":[[110234,38774]]}},{\"type\":\"Feature\",\"id\":\"620000\",\"properties\":{\"id\":\"620000\",\"cp\":[103.823557,36.058039],\"name\":\"甘肃\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@VuUv\"],[\"@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡ŠjΑBŠ°aZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„K¨jWk’ɱŠOq›Wij\\\\a­‹Q\\\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aŠ¹cčecÇN•ĊãÁ\\\\č¯—dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒE·®ƒ«|@Xwg]Aģ±¯‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒUŻ”Å}QÂ|̋°ƅ¤ĩŪU ęĄžÌZҞ\\\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”]ȏb•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\\\h¹¶v†·À|\\\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮŽ°Ɲ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰Iɐ_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹tÓ̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹D½†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK\"]],\"encodeOffsets\":[[[108619,36299]],[[108589,36341]]]}},{\"type\":\"Feature\",\"id\":\"630000\",\"properties\":{\"id\":\"630000\",\"cp\":[96.778916,35.623178],\"name\":\"青海\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@InJm\"],[\"@@CƒÆ½OŃĦsΰ~Ē³¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNĪŒĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\\\m `Un„˜~ʌŸ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\\\ZŽjҕ¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kĀŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoį£ŸÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Óļ©•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒs»”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSòėš£˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\\\_»™kϊ±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›[ĉ†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\\\ijŬű”YÂÿ¬jĖqŽßbŠ¸•L«¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹b¯‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňbĚ°ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\\\ªÚŒU\\\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\\\oäõ–F礻Ŷ×h¹]Clـ\\\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌĪ¶ƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg\"]],\"encodeOffsets\":[[[105308,37219]],[[95370,40081]]]}},{\"type\":\"Feature\",\"id\":\"640000\",\"properties\":{\"id\":\"640000\",\"cp\":[106.278179,37.26637],\"name\":\"宁夏\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\\\âÙH\\\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥Že֎ŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEuj¨‚IÆ¢¥dXªƅx¿]mtÏwßRĶŒX¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–r°Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀĖ¾iİbjÕ\"],[\"@@mfwěwMrŢªv@G‰\"]],\"encodeOffsets\":[[[109366,40242]],[[108600,36303]]]}},{\"type\":\"Feature\",\"id\":\"650000\",\"properties\":{\"id\":\"650000\",\"cp\":[85.617733,40.792818],\"name\":\"新疆\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@QØĔ²X¨”~ǘBºjʐßØvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZĶƒèH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYwē¨ƒ{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\\\‚ś’nkO›w¥±ƒT»ƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\\\“}µĿ‡QyŹl㓛µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\\\wwwù³—V›LŕƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~ź¯šf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\\\ªÑò˜Üìc\\\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆšońéŒGš\\\\”¼C°ÌƁn´nxšÊOĨ’Ūƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FŽ‡Rěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜S¤„s²‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ\"],\"encodeOffsets\":[[88824,50096]]}},{\"type\":\"Feature\",\"id\":\"110000\",\"properties\":{\"id\":\"110000\",\"cp\":[116.405285,39.904989],\"name\":\"北京\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`Š¹­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwŚ¨Ud®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\\\‡¥A¨Ï‘Ѩj¯ŠX\\\\¯œMK‘pA³[H…īu}}\"],\"encodeOffsets\":[[120023,41045]]}},{\"type\":\"Feature\",\"id\":\"120000\",\"properties\":{\"id\":\"120000\",\"cp\":[117.190182,39.125596],\"name\":\"天津\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒpù‚Š^L‚ˆrzWxˆZ^¨´T\\\\|~@I‰zƒ–bĤ‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~\"],\"encodeOffsets\":[[120237,41215]]}},{\"type\":\"Feature\",\"id\":\"310000\",\"properties\":{\"id\":\"310000\",\"cp\":[121.472644,31.231706],\"name\":\"上海\",\"childNum\":6},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@ɧư¬EpƸÁxc‡\"],[\"@@©„ªƒ\"],[\"@@”MA‹‘š\"],[\"@@Qp݁E§ÉC¾\"],[\"@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó\"],[\"@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį\"]],\"encodeOffsets\":[[[124702,32062]],[[124547,32200]],[[124808,31991]],[[124726,32110]],[[124903,32376]],[[124438,32149]]]}},{\"type\":\"Feature\",\"id\":\"500000\",\"properties\":{\"id\":\"500000\",\"cp\":[107.304962,29.533155],\"name\":\"重庆\",\"childNum\":2},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚S栓Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”F¦›L‘ØgTkïƵNï¶}Gy“w\\\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\\\ÂoVnŽÓØ͙²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\\\¨\\\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBŠ¦zG¸rHe‚„N\\\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN\"],[\"@@ifjN@s\"]],\"encodeOffsets\":[[[109628,30765]],[[111725,31320]]]}},{\"type\":\"Feature\",\"id\":\"810000\",\"properties\":{\"id\":\"810000\",\"cp\":[114.173355,22.320048],\"name\":\"香港\",\"childNum\":5},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[\"@@AlBk\"],[\"@@mŽn\"],[\"@@EpFo\"],[\"@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒfёKŽ°ä¬XJmРđhI®æÔtSHn€Eˆ„ÒrÈc\"],[\"@@rMUw‡AS®€e\"]],\"encodeOffsets\":[[[117111,23002]],[[117072,22876]],[[117045,22887]],[[116975,23082]],[[116882,22747]]]}},{\"type\":\"Feature\",\"id\":\"820000\",\"properties\":{\"id\":\"820000\",\"cp\":[113.54909,22.198951],\"name\":\"澳门\",\"childNum\":1},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[\"@@kÊd°å§s\"],\"encodeOffsets\":[[116279,22639]]}}],\"UTF8Encoding\":true});\n}));\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _echarts = require(\"./lib/echarts\");\n\n(function () {\n for (var key in _echarts) {\n if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n exports[key] = _echarts[key];\n }\n})();\n\nvar _export = require(\"./lib/export\");\n\n(function () {\n for (var key in _export) {\n if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n exports[key] = _export[key];\n }\n})();\n\nrequire(\"./lib/component/dataset\");\n\nrequire(\"./lib/chart/line\");\n\nrequire(\"./lib/chart/bar\");\n\nrequire(\"./lib/chart/pie\");\n\nrequire(\"./lib/chart/scatter\");\n\nrequire(\"./lib/chart/radar\");\n\nrequire(\"./lib/chart/map\");\n\nrequire(\"./lib/chart/tree\");\n\nrequire(\"./lib/chart/treemap\");\n\nrequire(\"./lib/chart/graph\");\n\nrequire(\"./lib/chart/gauge\");\n\nrequire(\"./lib/chart/funnel\");\n\nrequire(\"./lib/chart/parallel\");\n\nrequire(\"./lib/chart/sankey\");\n\nrequire(\"./lib/chart/boxplot\");\n\nrequire(\"./lib/chart/candlestick\");\n\nrequire(\"./lib/chart/effectScatter\");\n\nrequire(\"./lib/chart/lines\");\n\nrequire(\"./lib/chart/heatmap\");\n\nrequire(\"./lib/chart/pictorialBar\");\n\nrequire(\"./lib/chart/themeRiver\");\n\nrequire(\"./lib/chart/sunburst\");\n\nrequire(\"./lib/chart/custom\");\n\nrequire(\"./lib/component/grid\");\n\nrequire(\"./lib/component/polar\");\n\nrequire(\"./lib/component/geo\");\n\nrequire(\"./lib/component/singleAxis\");\n\nrequire(\"./lib/component/parallel\");\n\nrequire(\"./lib/component/calendar\");\n\nrequire(\"./lib/component/graphic\");\n\nrequire(\"./lib/component/toolbox\");\n\nrequire(\"./lib/component/tooltip\");\n\nrequire(\"./lib/component/axisPointer\");\n\nrequire(\"./lib/component/brush\");\n\nrequire(\"./lib/component/title\");\n\nrequire(\"./lib/component/timeline\");\n\nrequire(\"./lib/component/markPoint\");\n\nrequire(\"./lib/component/markLine\");\n\nrequire(\"./lib/component/markArea\");\n\nrequire(\"./lib/component/legendScroll\");\n\nrequire(\"./lib/component/legend\");\n\nrequire(\"./lib/component/dataZoom\");\n\nrequire(\"./lib/component/dataZoomInside\");\n\nrequire(\"./lib/component/dataZoomSlider\");\n\nrequire(\"./lib/component/visualMap\");\n\nrequire(\"./lib/component/visualMapContinuous\");\n\nrequire(\"./lib/component/visualMapPiecewise\");\n\nrequire(\"zrender/lib/vml/vml\");\n\nrequire(\"zrender/lib/svg/svg\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Link lists and struct (graph or tree)\n */\nvar each = zrUtil.each;\nvar DATAS = '\\0__link_datas';\nvar MAIN_DATA = '\\0__link_mainData'; // Caution:\n// In most case, either list or its shallow clones (see list.cloneShallow)\n// is active in echarts process. So considering heap memory consumption,\n// we do not clone tree or graph, but share them among list and its shallow clones.\n// But in some rare case, we have to keep old list (like do animation in chart). So\n// please take care that both the old list and the new list share the same tree/graph.\n\n/**\n * @param {Object} opt\n * @param {module:echarts/data/List} opt.mainData\n * @param {Object} [opt.struct] For example, instance of Graph or Tree.\n * @param {string} [opt.structAttr] designation: list[structAttr] = struct;\n * @param {Object} [opt.datas] {dataType: data},\n * like: {node: nodeList, edge: edgeList}.\n * Should contain mainData.\n * @param {Object} [opt.datasAttr] {dataType: attr},\n * designation: struct[datasAttr[dataType]] = list;\n */\n\nfunction linkList(opt) {\n var mainData = opt.mainData;\n var datas = opt.datas;\n\n if (!datas) {\n datas = {\n main: mainData\n };\n opt.datasAttr = {\n main: 'data'\n };\n }\n\n opt.datas = opt.mainData = null;\n linkAll(mainData, datas, opt); // Porxy data original methods.\n\n each(datas, function (data) {\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(transferInjection, opt));\n });\n }); // Beyond transfer, additional features should be added to `cloneShallow`.\n\n mainData.wrapMethod('cloneShallow', zrUtil.curry(cloneShallowInjection, opt)); // Only mainData trigger change, because struct.update may trigger\n // another changable methods, which may bring about dead lock.\n\n each(mainData.CHANGABLE_METHODS, function (methodName) {\n mainData.wrapMethod(methodName, zrUtil.curry(changeInjection, opt));\n }); // Make sure datas contains mainData.\n\n zrUtil.assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n if (isMainData(this)) {\n // Transfer datas to new main data.\n var datas = zrUtil.extend({}, this[DATAS]);\n datas[this.dataType] = res;\n linkAll(res, datas, opt);\n } else {\n // Modify the reference in main data to point newData.\n linkSingle(res, this.dataType, this[MAIN_DATA], opt);\n }\n\n return res;\n}\n\nfunction changeInjection(opt, res) {\n opt.struct && opt.struct.update(this);\n return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n // cloneShallow, which brings about some fragilities, may be inappropriate\n // to be exposed as an API. So for implementation simplicity we can make\n // the restriction that cloneShallow of not-mainData should not be invoked\n // outside, but only be invoked here.\n each(res[DATAS], function (data, dataType) {\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n });\n return res;\n}\n/**\n * Supplement method to List.\n *\n * @public\n * @param {string} [dataType] If not specified, return mainData.\n * @return {module:echarts/data/List}\n */\n\n\nfunction getLinkedData(dataType) {\n var mainData = this[MAIN_DATA];\n return dataType == null || mainData == null ? mainData : mainData[DATAS][dataType];\n}\n\nfunction isMainData(data) {\n return data[MAIN_DATA] === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n mainData[DATAS] = {};\n each(datas, function (data, dataType) {\n linkSingle(data, dataType, mainData, opt);\n });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n mainData[DATAS][dataType] = data;\n data[MAIN_DATA] = mainData;\n data.dataType = dataType;\n\n if (opt.struct) {\n data[opt.structAttr] = opt.struct;\n opt.struct[opt.datasAttr[dataType]] = data;\n } // Supplement method.\n\n\n data.getLinkedData = getLinkedData;\n}\n\nvar _default = linkList;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Region = require(\"../Region\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 南海诸岛\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n for (var k = 0; k < points[i].length; k++) {\n points[i][k][0] /= 10.5;\n points[i][k][1] /= -10.5 / 0.75;\n points[i][k][0] += geoCoord[0];\n points[i][k][1] += geoCoord[1];\n }\n}\n\nfunction _default(mapType, regions) {\n if (mapType === 'china') {\n regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n return {\n type: 'polygon',\n exterior: exterior\n };\n }), geoCoord));\n }\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar DataZoomView = require(\"./DataZoomView\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\nvar roams = require(\"./roams\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar InsideZoomView = DataZoomView.extend({\n type: 'dataZoom.inside',\n\n /**\n * @override\n */\n init: function (ecModel, api) {\n /**\n * 'throttle' is used in this.dispatchAction, so we save range\n * to avoid missing some 'pan' info.\n * @private\n * @type {Array.}\n */\n this._range;\n },\n\n /**\n * @override\n */\n render: function (dataZoomModel, ecModel, api, payload) {\n InsideZoomView.superApply(this, 'render', arguments); // Hence the `throttle` util ensures to preserve command order,\n // here simply updating range all the time will not cause missing\n // any of the the roam change.\n\n this._range = dataZoomModel.getPercentRange(); // Reset controllers.\n\n zrUtil.each(this.getTargetCoordInfo(), function (coordInfoList, coordSysName) {\n var allCoordIds = zrUtil.map(coordInfoList, function (coordInfo) {\n return roams.generateCoordId(coordInfo.model);\n });\n zrUtil.each(coordInfoList, function (coordInfo) {\n var coordModel = coordInfo.model;\n var getRange = {};\n zrUtil.each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n getRange[eventName] = bind(roamHandlers[eventName], this, coordInfo, coordSysName);\n }, this);\n roams.register(api, {\n coordId: roams.generateCoordId(coordModel),\n allCoordIds: allCoordIds,\n containsPoint: function (e, x, y) {\n return coordModel.coordinateSystem.containPoint([x, y]);\n },\n dataZoomId: dataZoomModel.id,\n dataZoomModel: dataZoomModel,\n getRange: getRange\n });\n }, this);\n }, this);\n },\n\n /**\n * @override\n */\n dispose: function () {\n roams.unregister(this.api, this.dataZoomModel.id);\n InsideZoomView.superApply(this, 'dispose', arguments);\n this._range = null;\n }\n});\nvar roamHandlers = {\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n zoom: function (coordInfo, coordSysName, controller, e) {\n var lastRange = this._range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var directionInfo = getDirectionInfo[coordSysName](null, [e.originX, e.originY], axisModel, controller, coordInfo);\n var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n var scale = Math.max(1 / e.scale, 0);\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\n range[1] = (range[1] - percentPoint) * scale + percentPoint; // Restrict range.\n\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n this._range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n },\n\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n pan: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) {\n var directionInfo = getDirectionInfo[coordSysName]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordInfo);\n return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n }),\n\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n scrollMove: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) {\n var directionInfo = getDirectionInfo[coordSysName]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordInfo);\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n })\n};\n\nfunction makeMover(getPercentDelta) {\n return function (coordInfo, coordSysName, controller, e) {\n var lastRange = this._range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var percentDelta = getPercentDelta(range, axisModel, coordInfo, coordSysName, controller, e);\n sliderMove(percentDelta, range, [0, 100], 'all');\n this._range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n };\n}\n\nvar getDirectionInfo = {\n grid: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var rect = coordInfo.model.coordinateSystem.getRect();\n oldPoint = oldPoint || [0, 0];\n\n if (axis.dim === 'x') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // axis.dim === 'y'\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n polar: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var polar = coordInfo.model.coordinateSystem;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var angleExtent = polar.getAngleAxis().getExtent();\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n newPoint = polar.pointToCoord(newPoint);\n\n if (axisModel.mainType === 'radiusAxis') {\n ret.pixel = newPoint[0] - oldPoint[0]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]);\n // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]);\n\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n ret.pixelStart = radiusExtent[0];\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'angleAxis'\n ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]);\n // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]);\n\n ret.pixelLength = angleExtent[1] - angleExtent[0];\n ret.pixelStart = angleExtent[0];\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n var axis = axisModel.axis;\n var rect = coordInfo.model.coordinateSystem.getRect();\n var ret = {};\n oldPoint = oldPoint || [0, 0];\n\n if (axis.orient === 'horizontal') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'vertical'\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n }\n};\nvar _default = InsideZoomView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar _sourceType = require(\"../../data/helper/sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\n\nvar _dimensionHelper = require(\"../../data/helper/dimensionHelper\");\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\n\nvar _model = require(\"../../util/model\");\n\nvar getDataItemValue = _model.getDataItemValue;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _referHelper = require(\"../../model/referHelper\");\n\nvar getCoordSysInfoBySeries = _referHelper.getCoordSysInfoBySeries;\n\nvar Source = require(\"../../data/Source\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\n\nvar _sourceHelper = require(\"../../data/helper/sourceHelper\");\n\nvar makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/data/Source|Array} source Or raw data.\n * @param {module:echarts/model/Series} seriesModel\n * @param {Object} [opt]\n * @param {string} [opt.generateCoord]\n * @param {boolean} [opt.useEncodeDefaulter]\n */\nfunction createListFromArray(source, seriesModel, opt) {\n opt = opt || {};\n\n if (!Source.isInstance(source)) {\n source = Source.seriesDataToSource(source);\n }\n\n var coordSysName = seriesModel.get('coordinateSystem');\n var registeredCoordSys = CoordinateSystem.get(coordSysName);\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n var coordSysDimDefs;\n\n if (coordSysInfo) {\n coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n var dimInfo = {\n name: dim\n };\n var axisModel = coordSysInfo.axisMap.get(dim);\n\n if (axisModel) {\n var axisType = axisModel.get('type');\n dimInfo.type = getDimensionTypeByAxis(axisType); // dimInfo.stackable = isStackable(axisType);\n }\n\n return dimInfo;\n });\n }\n\n if (!coordSysDimDefs) {\n // Get dimensions from registered coordinate system\n coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n }\n\n var dimInfoList = createDimensions(source, {\n coordDimensions: coordSysDimDefs,\n generateCoord: opt.generateCoord,\n encodeDefaulter: opt.useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n });\n var firstCategoryDimIndex;\n var hasNameEncode;\n coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n var coordDim = dimInfo.coordDim;\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n if (categoryAxisModel) {\n if (firstCategoryDimIndex == null) {\n firstCategoryDimIndex = dimIndex;\n }\n\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n }\n\n if (dimInfo.otherDims.itemName != null) {\n hasNameEncode = true;\n }\n });\n\n if (!hasNameEncode && firstCategoryDimIndex != null) {\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n }\n\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n var list = new List(dimInfoList, seriesModel);\n list.setCalculationInfo(stackCalculationInfo);\n var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n // Use dataIndex as ordinal value in categoryAxis\n return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n } : null;\n list.hasItemOption = false;\n list.initData(source, null, dimValueGetter);\n return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var sampleItem = firstDataNotNull(source.data || []);\n return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n }\n}\n\nfunction firstDataNotNull(data) {\n var i = 0;\n\n while (i < data.length && data[i] == null) {\n i++;\n }\n\n return data[i];\n}\n\nvar _default = createListFromArray;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar isNumeric = _number.isNumeric;\n\nvar _helper = require(\"./helper\");\n\nvar setLabel = _helper.setLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal\n\nvar LAYOUT_ATTRS = [{\n xy: 'x',\n wh: 'width',\n index: 0,\n posDesc: ['left', 'right']\n}, {\n xy: 'y',\n wh: 'height',\n index: 1,\n posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\nvar BarView = echarts.extendChartView({\n type: 'pictorialBar',\n render: function (seriesModel, ecModel, api) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = !!baseAxis.isHorizontal();\n var coordSysRect = cartesian.grid.getRect();\n var opt = {\n ecSize: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n seriesModel: seriesModel,\n coordSys: cartesian,\n coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n isHorizontal: isHorizontal,\n valueDim: LAYOUT_ATTRS[+isHorizontal],\n categoryDim: LAYOUT_ATTRS[1 - isHorizontal]\n };\n data.diff(oldData).add(function (dataIndex) {\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var itemModel = getItemModel(data, dataIndex);\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n var bar = createBar(data, opt, symbolMeta);\n data.setItemGraphicEl(dataIndex, bar);\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).update(function (newIndex, oldIndex) {\n var bar = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(bar);\n return;\n }\n\n var itemModel = getItemModel(data, newIndex);\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n group.remove(bar);\n data.setItemGraphicEl(newIndex, null);\n bar = null;\n }\n\n if (bar) {\n updateBar(bar, opt, symbolMeta);\n } else {\n bar = createBar(data, opt, symbolMeta, true);\n }\n\n data.setItemGraphicEl(newIndex, bar);\n bar.__pictorialSymbolMeta = symbolMeta; // Add back\n\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).remove(function (dataIndex) {\n var bar = oldData.getItemGraphicEl(dataIndex);\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n }).execute();\n this._data = data;\n return this.group;\n },\n dispose: zrUtil.noop,\n remove: function (ecModel, api) {\n var group = this.group;\n var data = this._data;\n\n if (ecModel.get('animation')) {\n if (data) {\n data.eachItemGraphicEl(function (bar) {\n removeBar(data, bar.dataIndex, ecModel, bar);\n });\n }\n } else {\n group.removeAll();\n }\n }\n}); // Set or calculate default value about symbol, and calculate layout info.\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n var layout = data.getItemLayout(dataIndex);\n var symbolRepeat = itemModel.get('symbolRepeat');\n var symbolClip = itemModel.get('symbolClip');\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\n var symbolRotate = itemModel.get('symbolRotate');\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n var isAnimationEnabled = itemModel.isAnimationEnabled();\n var symbolMeta = {\n dataIndex: dataIndex,\n layout: layout,\n itemModel: itemModel,\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n color: data.getItemVisual(dataIndex, 'color'),\n symbolClip: symbolClip,\n symbolRepeat: symbolRepeat,\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n symbolPatternSize: symbolPatternSize,\n rotation: rotation,\n animationModel: isAnimationEnabled ? itemModel : null,\n hoverAnimation: isAnimationEnabled && itemModel.get('hoverAnimation'),\n z2: itemModel.getShallow('z', true) || 0\n };\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n var symbolSize = symbolMeta.symbolSize;\n var symbolOffset = itemModel.get('symbolOffset');\n\n if (zrUtil.isArray(symbolOffset)) {\n symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n }\n\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n return symbolMeta;\n} // bar length can be negative.\n\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, output) {\n var valueDim = opt.valueDim;\n var symbolBoundingData = itemModel.get('symbolBoundingData');\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n var boundingLength;\n\n if (zrUtil.isArray(symbolBoundingData)) {\n var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n boundingLength = symbolBoundingExtent[pxSignIdx];\n } else if (symbolBoundingData != null) {\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n } else if (symbolRepeat) {\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n } else {\n boundingLength = layout[valueDim.wh];\n }\n\n output.boundingLength = boundingLength;\n\n if (symbolRepeat) {\n output.repeatCutLength = layout[valueDim.wh];\n }\n\n output.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n} // Support ['100%', '100%']\n\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, output) {\n var valueDim = opt.valueDim;\n var categoryDim = opt.categoryDim;\n var categorySize = Math.abs(layout[categoryDim.wh]);\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n\n if (zrUtil.isArray(symbolSize)) {\n symbolSize = symbolSize.slice();\n } else {\n if (symbolSize == null) {\n symbolSize = '100%';\n }\n\n symbolSize = [symbolSize, symbolSize];\n } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is\n // to complicated to calculate real percent value if considering scaled lineWidth.\n // So the actual size will bigger than layout size if lineWidth is bigger than zero,\n // which can be tolerated in pictorial chart.\n\n\n symbolSize[categoryDim.index] = parsePercent(symbolSize[categoryDim.index], categorySize);\n symbolSize[valueDim.index] = parsePercent(symbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n output.symbolSize = symbolSize; // If x or y is less than zero, show reversed shape.\n\n var symbolScale = output.symbolScale = [symbolSize[0] / symbolPatternSize, symbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale.\n\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, output) {\n // In symbols are drawn with scale, so do not need to care about the case that width\n // or height are too small. But symbol use strokeNoScale, where acture lineWidth should\n // be calculated.\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n if (valueLineWidth) {\n pathForLineWidth.attr({\n scale: symbolScale.slice(),\n rotation: rotation\n });\n pathForLineWidth.updateTransform();\n valueLineWidth /= pathForLineWidth.getLineScale();\n valueLineWidth *= symbolScale[opt.valueDim.index];\n }\n\n output.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, output) {\n var categoryDim = opt.categoryDim;\n var valueDim = opt.valueDim;\n var pxSign = output.pxSign;\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may\n // want symbols to rotate on its center, which should not be translated\n // when rotating.\n\n if (symbolRepeat) {\n var absBoundingLength = Math.abs(boundingLength);\n var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n var hasEndGap = false;\n\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n hasEndGap = true;\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n }\n\n symbolMargin = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n var uLenWithMargin = Math.max(unitLength + symbolMargin * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted\n // to ensure that all of the symbols will not be overflow the given area.\n\n var endFix = hasEndGap ? 0 : symbolMargin * 2; // Both final repeatTimes and final symbolMargin area calculated based on\n // boundingLength.\n\n var repeatSpecified = isNumeric(symbolRepeat);\n var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed\n // entirely in the given layout area.\n\n var mDiff = absBoundingLength - repeatTimes * unitLength;\n symbolMargin = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n uLenWithMargin = unitLength + symbolMargin * 2;\n endFix = hasEndGap ? 0 : symbolMargin * 2; // Update repeatTimes when not all symbol will be shown.\n\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\n repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n }\n\n pathLen = repeatTimes * uLenWithMargin - endFix;\n output.repeatTimes = repeatTimes;\n output.symbolMargin = symbolMargin;\n }\n\n var sizeFix = pxSign * (pathLen / 2);\n var pathPosition = output.pathPosition = [];\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center'\n\n if (symbolOffset) {\n pathPosition[0] += symbolOffset[0];\n pathPosition[1] += symbolOffset[1];\n }\n\n var bundlePosition = output.bundlePosition = [];\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n bundlePosition[valueDim.index] = layout[valueDim.xy];\n var barRectShape = output.barRectShape = zrUtil.extend({}, layout);\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n var clipShape = output.clipShape = {}; // Consider that symbol may be overflow layout rect.\n\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n clipShape[valueDim.xy] = 0;\n clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n var symbolPatternSize = symbolMeta.symbolPatternSize;\n var path = createSymbol( // Consider texture img, make a big size.\n symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize, symbolMeta.color);\n path.attr({\n culling: true\n });\n path.type !== 'image' && path.setStyle({\n strokeNoScale: true\n });\n return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var symbolSize = symbolMeta.symbolSize;\n var valueLineWidth = symbolMeta.valueLineWidth;\n var pathPosition = symbolMeta.pathPosition;\n var valueDim = opt.valueDim;\n var repeatTimes = symbolMeta.repeatTimes || 0;\n var index = 0;\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n eachPath(bar, function (path) {\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n\n if (index < repeatTimes) {\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n } else {\n updateAttr(path, null, {\n scale: [0, 0]\n }, symbolMeta, isUpdate, function () {\n bundle.remove(path);\n });\n }\n\n updateHoverAnimation(path, symbolMeta);\n index++;\n });\n\n for (; index < repeatTimes; index++) {\n var path = createPath(symbolMeta);\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n bundle.add(path);\n var target = makeTarget(index);\n updateAttr(path, {\n position: target.position,\n scale: [0, 0]\n }, {\n scale: target.scale,\n rotation: target.rotation\n }, symbolMeta, isUpdate); // FIXME\n // If all emphasis/normal through action.\n\n path.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n updateHoverAnimation(path, symbolMeta);\n }\n\n function makeTarget(index) {\n var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index\n // Otherwise: i = index;\n\n var pxSign = symbolMeta.pxSign;\n var i = index;\n\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n i = repeatTimes - 1 - index;\n }\n\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n return {\n position: position,\n scale: symbolMeta.symbolScale.slice(),\n rotation: symbolMeta.rotation\n };\n }\n\n function onMouseOver() {\n eachPath(bar, function (path) {\n path.trigger('emphasis');\n });\n }\n\n function onMouseOut() {\n eachPath(bar, function (path) {\n path.trigger('normal');\n });\n }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var mainPath = bar.__pictorialMainPath;\n\n if (!mainPath) {\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n bundle.add(mainPath);\n updateAttr(mainPath, {\n position: symbolMeta.pathPosition.slice(),\n scale: [0, 0],\n rotation: symbolMeta.rotation\n }, {\n scale: symbolMeta.symbolScale.slice()\n }, symbolMeta, isUpdate);\n mainPath.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n } else {\n updateAttr(mainPath, null, {\n position: symbolMeta.pathPosition.slice(),\n scale: symbolMeta.symbolScale.slice(),\n rotation: symbolMeta.rotation\n }, symbolMeta, isUpdate);\n }\n\n updateHoverAnimation(mainPath, symbolMeta);\n\n function onMouseOver() {\n this.trigger('emphasis');\n }\n\n function onMouseOut() {\n this.trigger('normal');\n }\n} // bar rect is used for label.\n\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n var barRect = bar.__pictorialBarRect;\n\n if (!barRect) {\n barRect = bar.__pictorialBarRect = new graphic.Rect({\n z2: 2,\n shape: rectShape,\n silent: true,\n style: {\n stroke: 'transparent',\n fill: 'transparent',\n lineWidth: 0\n }\n });\n bar.add(barRect);\n } else {\n updateAttr(barRect, null, {\n shape: rectShape\n }, symbolMeta, isUpdate);\n }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n // If not clip, symbol will be remove and rebuilt.\n if (symbolMeta.symbolClip) {\n var clipPath = bar.__pictorialClipPath;\n var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n var valueDim = opt.valueDim;\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n\n if (clipPath) {\n graphic.updateProps(clipPath, {\n shape: clipShape\n }, animationModel, dataIndex);\n } else {\n clipShape[valueDim.wh] = 0;\n clipPath = new graphic.Rect({\n shape: clipShape\n });\n\n bar.__pictorialBundle.setClipPath(clipPath);\n\n bar.__pictorialClipPath = clipPath;\n var target = {};\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n shape: target\n }, animationModel, dataIndex);\n }\n }\n}\n\nfunction getItemModel(data, dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\n itemModel.isAnimationEnabled = isAnimationEnabled;\n return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n // The order is the same as the z-order, see `symbolRepeatDiretion`.\n return {\n index: path.__pictorialAnimationIndex,\n count: path.__pictorialRepeatTimes\n };\n}\n\nfunction isAnimationEnabled() {\n // `animation` prop can be set on itemModel in pictorial bar chart.\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction updateHoverAnimation(path, symbolMeta) {\n path.off('emphasis').off('normal');\n var scale = symbolMeta.symbolScale.slice();\n symbolMeta.hoverAnimation && path.on('emphasis', function () {\n this.animateTo({\n scale: [scale[0] * 1.1, scale[1] * 1.1]\n }, 400, 'elasticOut');\n }).on('normal', function () {\n this.animateTo({\n scale: scale.slice()\n }, 400, 'elasticOut');\n });\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n // bar is the main element for each data.\n var bar = new graphic.Group(); // bundle is used for location and clip.\n\n var bundle = new graphic.Group();\n bar.add(bundle);\n bar.__pictorialBundle = bundle;\n bundle.attr('position', symbolMeta.bundlePosition.slice());\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n bar.__pictorialSymbolMeta = symbolMeta;\n return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n var bundle = bar.__pictorialBundle;\n graphic.updateProps(bundle, {\n position: symbolMeta.bundlePosition.slice()\n }, animationModel, dataIndex);\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, true);\n createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n // Not show text when animating\n var labelRect = bar.__pictorialBarRect;\n labelRect && (labelRect.style.text = null);\n var pathes = [];\n eachPath(bar, function (path) {\n pathes.push(path);\n });\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet.\n\n bar.__pictorialClipPath && (animationModel = null);\n zrUtil.each(pathes, function (path) {\n graphic.updateProps(path, {\n scale: [0, 0]\n }, animationModel, dataIndex, function () {\n bar.parent && bar.parent.remove(bar);\n });\n });\n data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n // Do not use Group#eachChild, because it do not support remove.\n zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n el !== bar.__pictorialBarRect && cb.call(context, el);\n });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n immediateAttrs && el.attr(immediateAttrs); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect.\n\n if (symbolMeta.symbolClip && !isUpdate) {\n animationAttrs && el.attr(animationAttrs);\n } else {\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n var color = symbolMeta.color;\n var dataIndex = symbolMeta.dataIndex;\n var itemModel = symbolMeta.itemModel; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var normalStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n var hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n eachPath(bar, function (path) {\n // PENDING setColor should be before setStyle!!!\n path.setColor(color);\n path.setStyle(zrUtil.defaults({\n fill: color,\n opacity: symbolMeta.opacity\n }, normalStyle));\n graphic.setHoverStyle(path, hoverStyle);\n cursorStyle && (path.cursor = cursorStyle);\n path.z2 = symbolMeta.z2;\n });\n var barRectHoverStyle = {};\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n var barRect = bar.__pictorialBarRect;\n setLabel(barRect.style, barRectHoverStyle, itemModel, color, opt.seriesModel, dataIndex, barPositionOutside);\n graphic.setHoverStyle(barRect, barRectHoverStyle);\n}\n\nfunction toIntTimes(times) {\n var roundedTimes = Math.round(times); // Escapse accurate error\n\n return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nvar _default = BarView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar SunburstPiece = require(\"./SunburstPiece\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\nvar _format = require(\"../../util/format\");\n\nvar windowOpen = _format.windowOpen;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar SunburstView = ChartView.extend({\n type: 'sunburst',\n init: function () {},\n render: function (seriesModel, ecModel, api, payload) {\n var that = this;\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var data = seriesModel.getData();\n var virtualRoot = data.tree.root;\n var newRoot = seriesModel.getViewRoot();\n var group = this.group;\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n var newChildren = [];\n newRoot.eachNode(function (node) {\n newChildren.push(node);\n });\n var oldChildren = this._oldChildren || [];\n dualTravel(newChildren, oldChildren);\n renderRollUp(virtualRoot, newRoot);\n\n if (payload && payload.highlight && payload.highlight.piece) {\n var highlightPolicy = seriesModel.getShallow('highlightPolicy');\n payload.highlight.piece.onEmphasis(highlightPolicy);\n } else if (payload && payload.unhighlight) {\n var piece = this.virtualPiece;\n\n if (!piece && virtualRoot.children.length) {\n piece = virtualRoot.children[0].piece;\n }\n\n if (piece) {\n piece.onNormal();\n }\n }\n\n this._initEvents();\n\n this._oldChildren = newChildren;\n\n function dualTravel(newChildren, oldChildren) {\n if (newChildren.length === 0 && oldChildren.length === 0) {\n return;\n }\n\n new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n function getKey(node) {\n return node.getId();\n }\n\n function processNode(newId, oldId) {\n var newNode = newId == null ? null : newChildren[newId];\n var oldNode = oldId == null ? null : oldChildren[oldId];\n doRenderNode(newNode, oldNode);\n }\n }\n\n function doRenderNode(newNode, oldNode) {\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n // Not render data with value 0\n newNode = null;\n }\n\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n if (oldNode && oldNode.piece) {\n if (newNode) {\n // Update\n oldNode.piece.updateData(false, newNode, 'normal', seriesModel, ecModel); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n } else {\n // Remove\n removeNode(oldNode);\n }\n } else if (newNode) {\n // Add\n var piece = new SunburstPiece(newNode, seriesModel, ecModel);\n group.add(piece); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, piece);\n }\n }\n }\n\n function removeNode(node) {\n if (!node) {\n return;\n }\n\n if (node.piece) {\n group.remove(node.piece);\n node.piece = null;\n }\n }\n\n function renderRollUp(virtualRoot, viewRoot) {\n if (viewRoot.depth > 0) {\n // Render\n if (that.virtualPiece) {\n // Update\n that.virtualPiece.updateData(false, virtualRoot, 'normal', seriesModel, ecModel);\n } else {\n // Add\n that.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel);\n group.add(that.virtualPiece);\n }\n\n if (viewRoot.piece._onclickEvent) {\n viewRoot.piece.off('click', viewRoot.piece._onclickEvent);\n }\n\n var event = function (e) {\n that._rootToNode(viewRoot.parentNode);\n };\n\n viewRoot.piece._onclickEvent = event;\n that.virtualPiece.on('click', event);\n } else if (that.virtualPiece) {\n // Remove\n group.remove(that.virtualPiece);\n that.virtualPiece = null;\n }\n }\n },\n dispose: function () {},\n\n /**\n * @private\n */\n _initEvents: function () {\n var that = this;\n\n var event = function (e) {\n var targetFound = false;\n var viewRoot = that.seriesModel.getViewRoot();\n viewRoot.eachNode(function (node) {\n if (!targetFound && node.piece && node.piece.childAt(0) === e.target) {\n var nodeClick = node.getModel().get('nodeClick');\n\n if (nodeClick === 'rootToNode') {\n that._rootToNode(node);\n } else if (nodeClick === 'link') {\n var itemModel = node.getModel();\n var link = itemModel.get('link');\n\n if (link) {\n var linkTarget = itemModel.get('target', true) || '_blank';\n windowOpen(link, linkTarget);\n }\n }\n\n targetFound = true;\n }\n });\n };\n\n if (this.group._onclickEvent) {\n this.group.off('click', this.group._onclickEvent);\n }\n\n this.group.on('click', event);\n this.group._onclickEvent = event;\n },\n\n /**\n * @private\n */\n _rootToNode: function (node) {\n if (node !== this.seriesModel.getViewRoot()) {\n this.api.dispatchAction({\n type: ROOT_TO_NODE_ACTION,\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: node\n });\n }\n },\n\n /**\n * @implement\n */\n containPoint: function (point, seriesModel) {\n var treeRoot = seriesModel.getData();\n var itemLayout = treeRoot.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n }\n});\nvar _default = SunburstView;\nmodule.exports = _default;","var Path = require(\"../graphic/Path\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar transformPath = require(\"./transformPath\");\n\n// command chars\n// var cc = [\n// 'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z',\n// 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'\n// ];\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nvar vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n};\n\nvar vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n};\n\nvar vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n};\n\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0 + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n\n var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0 + mathCos(psi) * cxp - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * PI;\n }\n\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * PI;\n }\n\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; // Consider case:\n// (1) delimiter can be comma or space, where continuous commas\n// or spaces should be seen as one comma.\n// (2) value can be like:\n// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',\n// 'l-.5E1,54', '121-23-44-11' (no delimiter)\n\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g; // var valueSplitReg = /[\\s,]+/;\n\nfunction createPathProxyFromString(data) {\n if (!data) {\n return new PathProxy();\n } // var data = data.replace(/-/g, ' -')\n // .replace(/ /g, ' ')\n // .replace(/ /g, ',')\n // .replace(/,,/g, ',');\n // var n;\n // create pipes so that we can split the data\n // for (n = 0; n < cc.length; n++) {\n // cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n // }\n // data = data.replace(/-/g, ',-');\n // create array\n // var arr = cs.split('|');\n // init context point\n\n\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var path = new PathProxy();\n var CMD = PathProxy.CMD; // commandReg.lastIndex = 0;\n // var cmdResult;\n // while ((cmdResult = commandReg.exec(data)) != null) {\n // var cmdStr = cmdResult[1];\n // var cmdContent = cmdResult[2];\n\n var cmdList = data.match(commandReg);\n\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd; // String#split is faster a little bit than String#replace or RegExp#exec.\n // var p = cmdContent.split(valueSplitReg);\n // var pLen = 0;\n // for (var i = 0; i < p.length; i++) {\n // // '' and other invalid str => NaN\n // var val = parseFloat(p[i]);\n // !isNaN(val) && (p[pLen++] = val);\n // }\n\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n\n var off = 0;\n\n while (off < pLen) {\n var ctlPtx;\n var ctlPty;\n var rx;\n var ry;\n var psi;\n var fa;\n var fs;\n var x1 = cpx;\n var y1 = cpy; // convert l, H, h, V, and v to L\n\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd); // z may be in the middle of the path.\n\n cpx = subpathX;\n cpy = subpathY;\n }\n\n prevCmd = cmd;\n }\n\n path.toStatic();\n return path;\n} // TODO Optimize double memory cost problem\n\n\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n opts = opts || {};\n\n opts.buildPath = function (path) {\n if (path.setData) {\n path.setData(pathProxy.data); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n } else {\n var ctx = path;\n pathProxy.rebuildPath(ctx);\n }\n };\n\n opts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirty(true);\n };\n\n return opts;\n}\n/**\n * Create a Path object from path string data\n * http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {Object} opts Other options\n */\n\n\nfunction createFromString(str, opts) {\n return new Path(createPathOptions(str, opts));\n}\n/**\n * Create a Path class from path string data\n * @param {string} str\n * @param {Object} opts Other options\n */\n\n\nfunction extendFromString(str, opts) {\n return Path.extend(createPathOptions(str, opts));\n}\n/**\n * Merge multiple paths\n */\n// TODO Apply transform\n// TODO stroke dash\n// TODO Optimize double memory cost problem\n\n\nfunction mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n\n if (pathEl.__dirtyPath) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n\n pathList.push(pathEl.path);\n }\n\n var pathBundle = new Path(opts); // Need path proxy.\n\n pathBundle.createPathProxy();\n\n pathBundle.buildPath = function (path) {\n path.appendPath(pathList); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n };\n\n return pathBundle;\n}\n\nexports.createFromString = createFromString;\nexports.extendFromString = extendFromString;\nexports.mergePath = mergePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layout = require(\"../../util/layout\");\n\nvar TimelineView = require(\"./TimelineView\");\n\nvar TimelineAxis = require(\"./TimelineAxis\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar PI = Math.PI;\n\nvar _default = TimelineView.extend({\n type: 'timeline.slider',\n init: function (ecModel, api) {\n this.api = api;\n /**\n * @private\n * @type {module:echarts/component/timeline/TimelineAxis}\n */\n\n this._axis;\n /**\n * @private\n * @type {module:zrender/core/BoundingRect}\n */\n\n this._viewRect;\n /**\n * @type {number}\n */\n\n this._timer;\n /**\n * @type {module:zrender/Element}\n */\n\n this._currentPointer;\n /**\n * @type {module:zrender/container/Group}\n */\n\n this._mainGroup;\n /**\n * @type {module:zrender/container/Group}\n */\n\n this._labelGroup;\n },\n\n /**\n * @override\n */\n render: function (timelineModel, ecModel, api, payload) {\n this.model = timelineModel;\n this.api = api;\n this.ecModel = ecModel;\n this.group.removeAll();\n\n if (timelineModel.get('show', true)) {\n var layoutInfo = this._layout(timelineModel, api);\n\n var mainGroup = this._createGroup('mainGroup');\n\n var labelGroup = this._createGroup('labelGroup');\n /**\n * @private\n * @type {module:echarts/component/timeline/TimelineAxis}\n */\n\n\n var axis = this._axis = this._createAxis(layoutInfo, timelineModel);\n\n timelineModel.formatTooltip = function (dataIndex) {\n return encodeHTML(axis.scale.getLabel(dataIndex));\n };\n\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n this['_render' + name](layoutInfo, mainGroup, axis, timelineModel);\n }, this);\n\n this._renderAxisLabel(layoutInfo, labelGroup, axis, timelineModel);\n\n this._position(layoutInfo, timelineModel);\n }\n\n this._doPlayStop();\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearTimer();\n\n this.group.removeAll();\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clearTimer();\n },\n _layout: function (timelineModel, api) {\n var labelPosOpt = timelineModel.get('label.position');\n var orient = timelineModel.get('orient');\n var viewRect = getViewRect(timelineModel, api); // Auto label offset.\n\n if (labelPosOpt == null || labelPosOpt === 'auto') {\n labelPosOpt = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n } else if (isNaN(labelPosOpt)) {\n labelPosOpt = {\n horizontal: {\n top: '-',\n bottom: '+'\n },\n vertical: {\n left: '-',\n right: '+'\n }\n }[orient][labelPosOpt];\n }\n\n var labelAlignMap = {\n horizontal: 'center',\n vertical: labelPosOpt >= 0 || labelPosOpt === '+' ? 'left' : 'right'\n };\n var labelBaselineMap = {\n horizontal: labelPosOpt >= 0 || labelPosOpt === '+' ? 'top' : 'bottom',\n vertical: 'middle'\n };\n var rotationMap = {\n horizontal: 0,\n vertical: PI / 2\n }; // Position\n\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n var controlModel = timelineModel.getModel('controlStyle');\n var showControl = controlModel.get('show', true);\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\n var sizePlusGap = controlSize + controlGap; // Special label rotate.\n\n var labelRotation = timelineModel.get('label.rotate') || 0;\n labelRotation = labelRotation * PI / 180; // To radian.\n\n var playPosition;\n var prevBtnPosition;\n var nextBtnPosition;\n var axisExtent;\n var controlPosition = controlModel.get('position', true);\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n var xLeft = 0;\n var xRight = mainLength; // position[0] means left, position[1] means middle.\n\n if (controlPosition === 'left' || controlPosition === 'bottom') {\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n } else {\n // 'top' 'right'\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n }\n\n axisExtent = [xLeft, xRight];\n\n if (timelineModel.get('inverse')) {\n axisExtent.reverse();\n }\n\n return {\n viewRect: viewRect,\n mainLength: mainLength,\n orient: orient,\n rotation: rotationMap[orient],\n labelRotation: labelRotation,\n labelPosOpt: labelPosOpt,\n labelAlign: timelineModel.get('label.align') || labelAlignMap[orient],\n labelBaseline: timelineModel.get('label.verticalAlign') || timelineModel.get('label.baseline') || labelBaselineMap[orient],\n // Based on mainGroup.\n playPosition: playPosition,\n prevBtnPosition: prevBtnPosition,\n nextBtnPosition: nextBtnPosition,\n axisExtent: axisExtent,\n controlSize: controlSize,\n controlGap: controlGap\n };\n },\n _position: function (layoutInfo, timelineModel) {\n // Position is be called finally, because bounding rect is needed for\n // adapt content to fill viewRect (auto adapt offset).\n // Timeline may be not all in the viewRect when 'offset' is specified\n // as a number, because it is more appropriate that label aligns at\n // 'offset' but not the other edge defined by viewRect.\n var mainGroup = this._mainGroup;\n var labelGroup = this._labelGroup;\n var viewRect = layoutInfo.viewRect;\n\n if (layoutInfo.orient === 'vertical') {\n // transform to horizontal, inverse rotate by left-top point.\n var m = matrix.create();\n var rotateOriginX = viewRect.x;\n var rotateOriginY = viewRect.y + viewRect.height;\n matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n matrix.rotate(m, m, -PI / 2);\n matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n viewRect = viewRect.clone();\n viewRect.applyTransform(m);\n }\n\n var viewBound = getBound(viewRect);\n var mainBound = getBound(mainGroup.getBoundingRect());\n var labelBound = getBound(labelGroup.getBoundingRect());\n var mainPosition = mainGroup.position;\n var labelsPosition = labelGroup.position;\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n var labelPosOpt = layoutInfo.labelPosOpt;\n\n if (isNaN(labelPosOpt)) {\n // '+' or '-'\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n } else {\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\n }\n\n mainGroup.attr('position', mainPosition);\n labelGroup.attr('position', labelsPosition);\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n setOrigin(mainGroup);\n setOrigin(labelGroup);\n\n function setOrigin(targetGroup) {\n var pos = targetGroup.position;\n targetGroup.origin = [viewBound[0][0] - pos[0], viewBound[1][0] - pos[1]];\n }\n\n function getBound(rect) {\n // [[xmin, xmax], [ymin, ymax]]\n return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n }\n\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n }\n },\n _createAxis: function (layoutInfo, timelineModel) {\n var data = timelineModel.getData();\n var axisType = timelineModel.get('axisType');\n var scale = axisHelper.createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`.\n\n scale.getTicks = function () {\n return data.mapArray(['value'], function (value) {\n return value;\n });\n };\n\n var dataExtent = data.getDataExtent('value');\n scale.setExtent(dataExtent[0], dataExtent[1]);\n scale.niceTicks();\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n axis.model = timelineModel;\n return axis;\n },\n _createGroup: function (name) {\n var newGroup = this['_' + name] = new graphic.Group();\n this.group.add(newGroup);\n return newGroup;\n },\n _renderAxisLine: function (layoutInfo, group, axis, timelineModel) {\n var axisExtent = axis.getExtent();\n\n if (!timelineModel.get('lineStyle.show')) {\n return;\n }\n\n group.add(new graphic.Line({\n shape: {\n x1: axisExtent[0],\n y1: 0,\n x2: axisExtent[1],\n y2: 0\n },\n style: zrUtil.extend({\n lineCap: 'round'\n }, timelineModel.getModel('lineStyle').getLineStyle()),\n silent: true,\n z2: 1\n }));\n },\n\n /**\n * @private\n */\n _renderAxisTick: function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy.\n\n var ticks = axis.scale.getTicks(); // The value is dataIndex, see the costomized scale.\n\n each(ticks, function (value) {\n var tickCoord = axis.dataToCoord(value);\n var itemModel = data.getItemModel(value);\n var itemStyleModel = itemModel.getModel('itemStyle');\n var hoverStyleModel = itemModel.getModel('emphasis.itemStyle');\n var symbolOpt = {\n position: [tickCoord, 0],\n onclick: bind(this._changeTimeline, this, value)\n };\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n graphic.setHoverStyle(el, hoverStyleModel.getItemStyle());\n\n if (itemModel.get('tooltip')) {\n el.dataIndex = value;\n el.dataModel = timelineModel;\n } else {\n el.dataIndex = el.dataModel = null;\n }\n }, this);\n },\n\n /**\n * @private\n */\n _renderAxisLabel: function (layoutInfo, group, axis, timelineModel) {\n var labelModel = axis.getLabelModel();\n\n if (!labelModel.get('show')) {\n return;\n }\n\n var data = timelineModel.getData();\n var labels = axis.getViewLabels();\n each(labels, function (labelItem) {\n // The tickValue is dataIndex, see the costomized scale.\n var dataIndex = labelItem.tickValue;\n var itemModel = data.getItemModel(dataIndex);\n var normalLabelModel = itemModel.getModel('label');\n var hoverLabelModel = itemModel.getModel('emphasis.label');\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\n var textEl = new graphic.Text({\n position: [tickCoord, 0],\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n onclick: bind(this._changeTimeline, this, dataIndex),\n silent: false\n });\n graphic.setTextStyle(textEl.style, normalLabelModel, {\n text: labelItem.formattedLabel,\n textAlign: layoutInfo.labelAlign,\n textVerticalAlign: layoutInfo.labelBaseline\n });\n group.add(textEl);\n graphic.setHoverStyle(textEl, graphic.setTextStyle({}, hoverLabelModel));\n }, this);\n },\n\n /**\n * @private\n */\n _renderControl: function (layoutInfo, group, axis, timelineModel) {\n var controlSize = layoutInfo.controlSize;\n var rotation = layoutInfo.rotation;\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n var hoverStyle = timelineModel.getModel('emphasis.controlStyle').getItemStyle();\n var rect = [0, -controlSize / 2, controlSize, controlSize];\n var playState = timelineModel.getPlayState();\n var inverse = timelineModel.get('inverse', true);\n makeBtn(layoutInfo.nextBtnPosition, 'controlStyle.nextIcon', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n makeBtn(layoutInfo.prevBtnPosition, 'controlStyle.prevIcon', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n makeBtn(layoutInfo.playPosition, 'controlStyle.' + (playState ? 'stopIcon' : 'playIcon'), bind(this._handlePlayClick, this, !playState), true);\n\n function makeBtn(position, iconPath, onclick, willRotate) {\n if (!position) {\n return;\n }\n\n var opt = {\n position: position,\n origin: [controlSize / 2, 0],\n rotation: willRotate ? -rotation : 0,\n rectHover: true,\n style: itemStyle,\n onclick: onclick\n };\n var btn = makeIcon(timelineModel, iconPath, rect, opt);\n group.add(btn);\n graphic.setHoverStyle(btn, hoverStyle);\n }\n },\n _renderCurrentPointer: function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData();\n var currentIndex = timelineModel.getCurrentIndex();\n var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n var me = this;\n var callback = {\n onCreate: function (pointer) {\n pointer.draggable = true;\n pointer.drift = bind(me._handlePointerDrag, me);\n pointer.ondragend = bind(me._handlePointerDragend, me);\n pointerMoveTo(pointer, currentIndex, axis, timelineModel, true);\n },\n onUpdate: function (pointer) {\n pointerMoveTo(pointer, currentIndex, axis, timelineModel);\n }\n }; // Reuse when exists, for animation and drag.\n\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n },\n _handlePlayClick: function (nextState) {\n this._clearTimer();\n\n this.api.dispatchAction({\n type: 'timelinePlayChange',\n playState: nextState,\n from: this.uid\n });\n },\n _handlePointerDrag: function (dx, dy, e) {\n this._clearTimer();\n\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n },\n _handlePointerDragend: function (e) {\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n },\n _pointerChangeTimeline: function (mousePos, trigger) {\n var toCoord = this._toAxisCoord(mousePos)[0];\n\n var axis = this._axis;\n var axisExtent = numberUtil.asc(axis.getExtent().slice());\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n this._currentPointer.position[0] = toCoord;\n\n this._currentPointer.dirty();\n\n var targetDataIndex = this._findNearestTick(toCoord);\n\n var timelineModel = this.model;\n\n if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n this._changeTimeline(targetDataIndex);\n }\n },\n _doPlayStop: function () {\n this._clearTimer();\n\n if (this.model.getPlayState()) {\n this._timer = setTimeout(bind(handleFrame, this), this.model.get('playInterval'));\n }\n\n function handleFrame() {\n // Do not cache\n var timelineModel = this.model;\n\n this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n }\n },\n _toAxisCoord: function (vertex) {\n var trans = this._mainGroup.getLocalTransform();\n\n return graphic.applyTransform(vertex, trans, true);\n },\n _findNearestTick: function (axisCoord) {\n var data = this.model.getData();\n var dist = Infinity;\n var targetDataIndex;\n var axis = this._axis;\n data.each(['value'], function (value, dataIndex) {\n var coord = axis.dataToCoord(value);\n var d = Math.abs(coord - axisCoord);\n\n if (d < dist) {\n dist = d;\n targetDataIndex = dataIndex;\n }\n });\n return targetDataIndex;\n },\n _clearTimer: function () {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n },\n _changeTimeline: function (nextIndex) {\n var currentIndex = this.model.getCurrentIndex();\n\n if (nextIndex === '+') {\n nextIndex = currentIndex + 1;\n } else if (nextIndex === '-') {\n nextIndex = currentIndex - 1;\n }\n\n this.api.dispatchAction({\n type: 'timelineChange',\n currentIndex: nextIndex,\n from: this.uid\n });\n }\n});\n\nfunction getViewRect(model, api) {\n return layout.getLayoutRect(model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n }, model.get('padding'));\n}\n\nfunction makeIcon(timelineModel, objPath, rect, opts) {\n var icon = graphic.makePath(timelineModel.get(objPath).replace(/^path:\\/\\//, ''), zrUtil.clone(opts || {}), new BoundingRect(rect[0], rect[1], rect[2], rect[3]), 'center');\n return icon;\n}\n/**\n * Create symbol or update symbol\n * opt: basic position and event handlers\n */\n\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n var color = itemStyleModel.get('color');\n\n if (!symbol) {\n var symbolType = hostModel.get('symbol');\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n symbol.setStyle('strokeNoScale', true);\n group.add(symbol);\n callback && callback.onCreate(symbol);\n } else {\n symbol.setColor(color);\n group.add(symbol); // Group may be new, also need to add.\n\n callback && callback.onUpdate(symbol);\n } // Style\n\n\n var itemStyle = itemStyleModel.getItemStyle(['color', 'symbol', 'symbolSize']);\n symbol.setStyle(itemStyle); // Transform and events.\n\n opt = zrUtil.merge({\n rectHover: true,\n z2: 100\n }, opt, true);\n var symbolSize = hostModel.get('symbolSize');\n symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n symbolSize[0] /= 2;\n symbolSize[1] /= 2;\n opt.scale = symbolSize;\n var symbolOffset = hostModel.get('symbolOffset');\n\n if (symbolOffset) {\n var pos = opt.position = opt.position || [0, 0];\n pos[0] += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n pos[1] += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n var symbolRotate = hostModel.get('symbolRotate');\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n symbol.attr(opt); // FIXME\n // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed,\n // getBoundingRect will return wrong result.\n // (This is supposed to be resolved in zrender, but it is a little difficult to\n // leverage performance and auto updateTransform)\n // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol.\n\n symbol.updateTransform();\n return symbol;\n}\n\nfunction pointerMoveTo(pointer, dataIndex, axis, timelineModel, noAnimation) {\n if (pointer.dragging) {\n return;\n }\n\n var pointerModel = timelineModel.getModel('checkpointStyle');\n var toCoord = axis.dataToCoord(timelineModel.getData().get(['value'], dataIndex));\n\n if (noAnimation || !pointerModel.get('animation', true)) {\n pointer.attr({\n position: [toCoord, 0]\n });\n } else {\n pointer.stopAnimation(true);\n pointer.animateTo({\n position: [toCoord, 0]\n }, pointerModel.get('animationDuration', true), pointerModel.get('animationEasing', true));\n }\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar DataZoomModel = require(\"./DataZoomModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar SliderZoomModel = DataZoomModel.extend({\n type: 'dataZoom.slider',\n layoutMode: 'box',\n\n /**\n * @protected\n */\n defaultOption: {\n show: true,\n // ph => placeholder. Using placehoder here because\n // deault value can only be drived in view stage.\n right: 'ph',\n // Default align to grid rect.\n top: 'ph',\n // Default align to grid rect.\n width: 'ph',\n // Default align to grid rect.\n height: 'ph',\n // Default align to grid rect.\n left: null,\n // Default align to grid rect.\n bottom: null,\n // Default align to grid rect.\n backgroundColor: 'rgba(47,69,84,0)',\n // Background of slider zoom component.\n // dataBackgroundColor: '#ddd', // Background coor of data shadow and border of box,\n // highest priority, remain for compatibility of\n // previous version, but not recommended any more.\n dataBackground: {\n lineStyle: {\n color: '#2f4554',\n width: 0.5,\n opacity: 0.3\n },\n areaStyle: {\n color: 'rgba(47,69,84,0.3)',\n opacity: 0.3\n }\n },\n borderColor: '#ddd',\n // border color of the box. For compatibility,\n // if dataBackgroundColor is set, borderColor\n // is ignored.\n fillerColor: 'rgba(167,183,204,0.4)',\n // Color of selected area.\n // handleColor: 'rgba(89,170,216,0.95)', // Color of handle.\n // handleIcon: 'path://M4.9,17.8c0-1.4,4.5-10.5,5.5-12.4c0-0.1,0.6-1.1,0.9-1.1c0.4,0,0.9,1,0.9,1.1c1.1,2.2,5.4,11,5.4,12.4v17.8c0,1.5-0.6,2.1-1.3,2.1H6.1c-0.7,0-1.3-0.6-1.3-2.1V17.8z',\n\n /* eslint-disable */\n handleIcon: 'M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z',\n\n /* eslint-enable */\n // Percent of the slider height\n handleSize: '100%',\n handleStyle: {\n color: '#a7b7cc'\n },\n labelPrecision: null,\n labelFormatter: null,\n showDetail: true,\n showDataShadow: 'auto',\n // Default auto decision.\n realtime: true,\n zoomLock: false,\n // Whether disable zoom.\n textStyle: {\n color: '#333'\n }\n }\n});\nvar _default = SliderZoomModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The method \"quantile\" was copied from \"d3.js\".\n* (See more details in the comment of the method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Linear mapping a value from domain to range\n * @memberOf module:echarts/util/number\n * @param {(number|Array.)} val\n * @param {Array.} domain Domain extent domain[0] can be bigger than domain[1]\n * @param {Array.} range Range extent range[0] can be bigger than range[1]\n * @param {boolean} clamp\n * @return {(number|Array.}\n */\n\n\nfunction linearMap(val, domain, range, clamp) {\n var subDomain = domain[1] - domain[0];\n var subRange = range[1] - range[0];\n\n if (subDomain === 0) {\n return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n } // Avoid accuracy problem in edge, such as\n // 146.39 - 62.83 === 83.55999999999999.\n // See echarts/test/ut/spec/util/number.js#linearMap#accuracyError\n // It is a little verbose for efficiency considering this method\n // is a hotspot.\n\n\n if (clamp) {\n if (subDomain > 0) {\n if (val <= domain[0]) {\n return range[0];\n } else if (val >= domain[1]) {\n return range[1];\n }\n } else {\n if (val >= domain[0]) {\n return range[0];\n } else if (val <= domain[1]) {\n return range[1];\n }\n }\n } else {\n if (val === domain[0]) {\n return range[0];\n }\n\n if (val === domain[1]) {\n return range[1];\n }\n }\n\n return (val - domain[0]) / subDomain * subRange + range[0];\n}\n/**\n * Convert a percent string to absolute number.\n * Returns NaN if percent is not a valid string or number\n * @memberOf module:echarts/util/number\n * @param {string|number} percent\n * @param {number} all\n * @return {number}\n */\n\n\nfunction parsePercent(percent, all) {\n switch (percent) {\n case 'center':\n case 'middle':\n percent = '50%';\n break;\n\n case 'left':\n case 'top':\n percent = '0%';\n break;\n\n case 'right':\n case 'bottom':\n percent = '100%';\n break;\n }\n\n if (typeof percent === 'string') {\n if (_trim(percent).match(/%$/)) {\n return parseFloat(percent) / 100 * all;\n }\n\n return parseFloat(percent);\n }\n\n return percent == null ? NaN : +percent;\n}\n/**\n * (1) Fix rounding error of float numbers.\n * (2) Support return string to avoid scientific notation like '3.5e-7'.\n *\n * @param {number} x\n * @param {number} [precision]\n * @param {boolean} [returnStr]\n * @return {number|string}\n */\n\n\nfunction round(x, precision, returnStr) {\n if (precision == null) {\n precision = 10;\n } // Avoid range error\n\n\n precision = Math.min(Math.max(0, precision), 20);\n x = (+x).toFixed(precision);\n return returnStr ? x : +x;\n}\n/**\n * asc sort arr.\n * The input arr will be modified.\n *\n * @param {Array} arr\n * @return {Array} The input arr.\n */\n\n\nfunction asc(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n return arr;\n}\n/**\n * Get precision\n * @param {number} val\n */\n\n\nfunction getPrecision(val) {\n val = +val;\n\n if (isNaN(val)) {\n return 0;\n } // It is much faster than methods converting number to string as follows\n // var tmp = val.toString();\n // return tmp.length - 1 - tmp.indexOf('.');\n // especially when precision is low\n\n\n var e = 1;\n var count = 0;\n\n while (Math.round(val * e) / e !== val) {\n e *= 10;\n count++;\n }\n\n return count;\n}\n/**\n * @param {string|number} val\n * @return {number}\n */\n\n\nfunction getPrecisionSafe(val) {\n var str = val.toString(); // Consider scientific notation: '3.4e-12' '3.4e+12'\n\n var eIndex = str.indexOf('e');\n\n if (eIndex > 0) {\n var precision = +str.slice(eIndex + 1);\n return precision < 0 ? -precision : 0;\n } else {\n var dotIndex = str.indexOf('.');\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n }\n}\n/**\n * Minimal dicernible data precisioin according to a single pixel.\n *\n * @param {Array.} dataExtent\n * @param {Array.} pixelExtent\n * @return {number} precision\n */\n\n\nfunction getPixelPrecision(dataExtent, pixelExtent) {\n var log = Math.log;\n var LN10 = Math.LN10;\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); // toFixed() digits argument must be between 0 and 20.\n\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n return !isFinite(precision) ? 20 : precision;\n}\n/**\n * Get a data of given precision, assuring the sum of percentages\n * in valueList is 1.\n * The largest remainer method is used.\n * https://en.wikipedia.org/wiki/Largest_remainder_method\n *\n * @param {Array.} valueList a list of all data\n * @param {number} idx index of the data to be processed in valueList\n * @param {number} precision integer number showing digits of precision\n * @return {number} percent ranging from 0 to 100\n */\n\n\nfunction getPercentWithPrecision(valueList, idx, precision) {\n if (!valueList[idx]) {\n return 0;\n }\n\n var sum = zrUtil.reduce(valueList, function (acc, val) {\n return acc + (isNaN(val) ? 0 : val);\n }, 0);\n\n if (sum === 0) {\n return 0;\n }\n\n var digits = Math.pow(10, precision);\n var votesPerQuota = zrUtil.map(valueList, function (val) {\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\n });\n var targetSeats = digits * 100;\n var seats = zrUtil.map(votesPerQuota, function (votes) {\n // Assign automatic seats.\n return Math.floor(votes);\n });\n var currentSum = zrUtil.reduce(seats, function (acc, val) {\n return acc + val;\n }, 0);\n var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n return votes - seats[idx];\n }); // Has remainding votes.\n\n while (currentSum < targetSeats) {\n // Find next largest remainder.\n var max = Number.NEGATIVE_INFINITY;\n var maxId = null;\n\n for (var i = 0, len = remainder.length; i < len; ++i) {\n if (remainder[i] > max) {\n max = remainder[i];\n maxId = i;\n }\n } // Add a vote to max remainder.\n\n\n ++seats[maxId];\n remainder[maxId] = 0;\n ++currentSum;\n }\n\n return seats[idx] / digits;\n} // Number.MAX_SAFE_INTEGER, ie do not support.\n\n\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * To 0 - 2 * PI, considering negative radian.\n * @param {number} radian\n * @return {number}\n */\n\nfunction remRadian(radian) {\n var pi2 = Math.PI * 2;\n return (radian % pi2 + pi2) % pi2;\n}\n/**\n * @param {type} radian\n * @return {boolean}\n */\n\n\nfunction isRadianAroundZero(val) {\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\n/* eslint-disable */\n\n\nvar TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d\\d)(?::(\\d\\d)(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/; // jshint ignore:line\n\n/* eslint-enable */\n\n/**\n * @param {string|Date|number} value These values can be accepted:\n * + An instance of Date, represent a time in its own time zone.\n * + Or string in a subset of ISO 8601, only including:\n * + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06',\n * + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123',\n * + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00',\n * all of which will be treated as local time if time zone is not specified\n * (see ).\n * + Or other string format, including (all of which will be treated as loacal time):\n * '2012', '2012-3-1', '2012/3/1', '2012/03/01',\n * '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'\n * + a timestamp, which represent a time in UTC.\n * @return {Date} date\n */\n\nfunction parseDate(value) {\n if (value instanceof Date) {\n return value;\n } else if (typeof value === 'string') {\n // Different browsers parse date in different way, so we parse it manually.\n // Some other issues:\n // new Date('1970-01-01') is UTC,\n // new Date('1970/01/01') and new Date('1970-1-01') is local.\n // See issue #3623\n var match = TIME_REG.exec(value);\n\n if (!match) {\n // return Invalid Date.\n return new Date(NaN);\n } // Use local time when no timezone offset specifed.\n\n\n if (!match[8]) {\n // match[n] can only be string or undefined.\n // But take care of '12' + 1 => '121'.\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\n } // Timezoneoffset of Javascript Date has considered DST (Daylight Saving Time,\n // https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment).\n // For example, system timezone is set as \"Time Zone: America/Toronto\",\n // then these code will get different result:\n // `new Date(1478411999999).getTimezoneOffset(); // get 240`\n // `new Date(1478412000000).getTimezoneOffset(); // get 300`\n // So we should not use `new Date`, but use `Date.UTC`.\n else {\n var hour = +match[4] || 0;\n\n if (match[8].toUpperCase() !== 'Z') {\n hour -= match[8].slice(0, 3);\n }\n\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\n }\n } else if (value == null) {\n return new Date(NaN);\n }\n\n return new Date(Math.round(value));\n}\n/**\n * Quantity of a number. e.g. 0.1, 1, 10, 100\n *\n * @param {number} val\n * @return {number}\n */\n\n\nfunction quantity(val) {\n return Math.pow(10, quantityExponent(val));\n}\n/**\n * Exponent of the quantity of a number\n * e.g., 1234 equals to 1.234*10^3, so quantityExponent(1234) is 3\n *\n * @param {number} val non-negative value\n * @return {number}\n */\n\n\nfunction quantityExponent(val) {\n if (val === 0) {\n return 0;\n }\n\n var exp = Math.floor(Math.log(val) / Math.LN10);\n /**\n * exp is expected to be the rounded-down result of the base-10 log of val.\n * But due to the precision loss with Math.log(val), we need to restore it\n * using 10^exp to make sure we can get val back from exp. #11249\n */\n\n if (val / Math.pow(10, exp) >= 10) {\n exp++;\n }\n\n return exp;\n}\n/**\n * find a “nice” number approximately equal to x. Round the number if round = true,\n * take ceiling if round = false. The primary observation is that the “nicest”\n * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.\n *\n * See \"Nice Numbers for Graph Labels\" of Graphic Gems.\n *\n * @param {number} val Non-negative value.\n * @param {boolean} round\n * @return {number}\n */\n\n\nfunction nice(val, round) {\n var exponent = quantityExponent(val);\n var exp10 = Math.pow(10, exponent);\n var f = val / exp10; // 1 <= f < 10\n\n var nf;\n\n if (round) {\n if (f < 1.5) {\n nf = 1;\n } else if (f < 2.5) {\n nf = 2;\n } else if (f < 4) {\n nf = 3;\n } else if (f < 7) {\n nf = 5;\n } else {\n nf = 10;\n }\n } else {\n if (f < 1) {\n nf = 1;\n } else if (f < 2) {\n nf = 2;\n } else if (f < 3) {\n nf = 3;\n } else if (f < 5) {\n nf = 5;\n } else {\n nf = 10;\n }\n }\n\n val = nf * exp10; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754).\n // 20 is the uppper bound of toFixed.\n\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\n/**\n * This code was copied from \"d3.js\"\n * .\n * See the license statement at the head of this file.\n * @param {Array.} ascArr\n */\n\n\nfunction quantile(ascArr, p) {\n var H = (ascArr.length - 1) * p + 1;\n var h = Math.floor(H);\n var v = +ascArr[h - 1];\n var e = H - h;\n return e ? v + e * (ascArr[h] - v) : v;\n}\n/**\n * Order intervals asc, and split them when overlap.\n * expect(numberUtil.reformIntervals([\n * {interval: [18, 62], close: [1, 1]},\n * {interval: [-Infinity, -70], close: [0, 0]},\n * {interval: [-70, -26], close: [1, 1]},\n * {interval: [-26, 18], close: [1, 1]},\n * {interval: [62, 150], close: [1, 1]},\n * {interval: [106, 150], close: [1, 1]},\n * {interval: [150, Infinity], close: [0, 0]}\n * ])).toEqual([\n * {interval: [-Infinity, -70], close: [0, 0]},\n * {interval: [-70, -26], close: [1, 1]},\n * {interval: [-26, 18], close: [0, 1]},\n * {interval: [18, 62], close: [0, 1]},\n * {interval: [62, 150], close: [0, 1]},\n * {interval: [150, Infinity], close: [0, 0]}\n * ]);\n * @param {Array.} list, where `close` mean open or close\n * of the interval, and Infinity can be used.\n * @return {Array.} The origin list, which has been reformed.\n */\n\n\nfunction reformIntervals(list) {\n list.sort(function (a, b) {\n return littleThan(a, b, 0) ? -1 : 1;\n });\n var curr = -Infinity;\n var currClose = 1;\n\n for (var i = 0; i < list.length;) {\n var interval = list[i].interval;\n var close = list[i].close;\n\n for (var lg = 0; lg < 2; lg++) {\n if (interval[lg] <= curr) {\n interval[lg] = curr;\n close[lg] = !lg ? 1 - currClose : 1;\n }\n\n curr = interval[lg];\n currClose = close[lg];\n }\n\n if (interval[0] === interval[1] && close[0] * close[1] !== 1) {\n list.splice(i, 1);\n } else {\n i++;\n }\n }\n\n return list;\n\n function littleThan(a, b, lg) {\n return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n }\n}\n/**\n * parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n * ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n * subtraction forces infinities to NaN\n *\n * @param {*} v\n * @return {boolean}\n */\n\n\nfunction isNumeric(v) {\n return v - parseFloat(v) >= 0;\n}\n\nexports.linearMap = linearMap;\nexports.parsePercent = parsePercent;\nexports.round = round;\nexports.asc = asc;\nexports.getPrecision = getPrecision;\nexports.getPrecisionSafe = getPrecisionSafe;\nexports.getPixelPrecision = getPixelPrecision;\nexports.getPercentWithPrecision = getPercentWithPrecision;\nexports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;\nexports.remRadian = remRadian;\nexports.isRadianAroundZero = isRadianAroundZero;\nexports.parseDate = parseDate;\nexports.quantity = quantity;\nexports.quantityExponent = quantityExponent;\nexports.nice = nice;\nexports.quantile = quantile;\nexports.reformIntervals = reformIntervals;\nexports.isNumeric = isNumeric;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\nvar _format = require(\"../../util/format\");\n\nvar getTooltipMarker = _format.getTooltipMarker;\nvar formatTpl = _format.formatTpl;\n\nvar _model = require(\"../../util/model\");\n\nvar getTooltipRenderMode = _model.getTooltipRenderMode;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g; // PENDING A little ugly\n\nvar _default = {\n /**\n * Get params for formatter\n * @param {number} dataIndex\n * @param {string} [dataType]\n * @return {Object}\n */\n getDataParams: function (dataIndex, dataType) {\n var data = this.getData(dataType);\n var rawValue = this.getRawValue(dataIndex, dataType);\n var rawDataIndex = data.getRawIndex(dataIndex);\n var name = data.getName(dataIndex);\n var itemOpt = data.getRawDataItem(dataIndex);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor');\n var tooltipModel = this.ecModel.getComponent('tooltip');\n var renderModeOption = tooltipModel && tooltipModel.get('renderMode');\n var renderMode = getTooltipRenderMode(renderModeOption);\n var mainType = this.mainType;\n var isSeries = mainType === 'series';\n var userOutput = data.userOutput;\n return {\n componentType: mainType,\n componentSubType: this.subType,\n componentIndex: this.componentIndex,\n seriesType: isSeries ? this.subType : null,\n seriesIndex: this.seriesIndex,\n seriesId: isSeries ? this.id : null,\n seriesName: isSeries ? this.name : null,\n name: name,\n dataIndex: rawDataIndex,\n data: itemOpt,\n dataType: dataType,\n value: rawValue,\n color: color,\n borderColor: borderColor,\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\n encode: userOutput ? userOutput.encode : null,\n marker: getTooltipMarker({\n color: color,\n renderMode: renderMode\n }),\n // Param name list for mapping `a`, `b`, `c`, `d`, `e`\n $vars: ['seriesName', 'name', 'value']\n };\n },\n\n /**\n * Format label\n * @param {number} dataIndex\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @param {string} [dataType]\n * @param {number} [dimIndex] Only used in some chart that\n * use formatter in different dimensions, like radar.\n * @param {string} [labelProp='label']\n * @return {string} If not formatter, return null/undefined\n */\n getFormattedLabel: function (dataIndex, status, dataType, dimIndex, labelProp) {\n status = status || 'normal';\n var data = this.getData(dataType);\n var itemModel = data.getItemModel(dataIndex);\n var params = this.getDataParams(dataIndex, dataType);\n\n if (dimIndex != null && params.value instanceof Array) {\n params.value = params.value[dimIndex];\n }\n\n var formatter = itemModel.get(status === 'normal' ? [labelProp || 'label', 'formatter'] : [status, labelProp || 'label', 'formatter']);\n\n if (typeof formatter === 'function') {\n params.status = status;\n params.dimensionIndex = dimIndex;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n var str = formatTpl(formatter, params); // Support 'aaa{@[3]}bbb{@product}ccc'.\n // Do not support '}' in dim name util have to.\n\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\n var len = dim.length;\n\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\n dim = +dim.slice(1, len - 1); // Also: '[]' => 0\n }\n\n return retrieveRawValue(data, dataIndex, dim);\n });\n }\n },\n\n /**\n * Get raw value in option\n * @param {number} idx\n * @param {string} [dataType]\n * @return {Array|number|string}\n */\n getRawValue: function (idx, dataType) {\n return retrieveRawValue(this.getData(dataType), idx);\n },\n\n /**\n * Should be implemented.\n * @param {number} dataIndex\n * @param {boolean} [multipleSeries=false]\n * @param {number} [dataType]\n * @return {string} tooltip string\n */\n formatTooltip: function () {// Empty function\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n getLineStyle: function (excludes) {\n var style = getLineStyle(this, excludes); // Always set lineDash whether dashed, otherwise we can not\n // erase the previous style when assigning to el.style.\n\n style.lineDash = this.getLineDash(style.lineWidth);\n return style;\n },\n getLineDash: function (lineWidth) {\n if (lineWidth == null) {\n lineWidth = 1;\n }\n\n var lineType = this.get('type');\n var dotSize = Math.max(lineWidth, 2);\n var dashSize = lineWidth * 4;\n return lineType === 'solid' || lineType == null ? // Use `false` but not `null` for the solid line here, because `null` might be\n // ignored when assigning to `el.style`. e.g., when setting `lineStyle.type` as\n // `'dashed'` and `emphasis.lineStyle.type` as `'solid'` in graph series, the\n // `lineDash` gotten form the latter one is not able to erase that from the former\n // one if using `null` here according to the emhpsis strategy in `util/graphic.js`.\n false : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize];\n }\n};\nmodule.exports = _default;","var _util = require(\"../core/util\");\n\nvar inherits = _util.inherits;\n\nvar Displayble = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\n/**\n * Displayable for incremental rendering. It will be rendered in a separate layer\n * IncrementalDisplay have two main methods. `clearDisplayables` and `addDisplayables`\n * addDisplayables will render the added displayables incremetally.\n *\n * It use a not clearFlag to tell the painter don't clear the layer if it's the first element.\n */\n// TODO Style override ?\nfunction IncrementalDisplayble(opts) {\n Displayble.call(this, opts);\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.notClear = true;\n}\n\nIncrementalDisplayble.prototype.incremental = true;\n\nIncrementalDisplayble.prototype.clearDisplaybles = function () {\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.dirty();\n this.notClear = false;\n};\n\nIncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\n if (notPersistent) {\n this._temporaryDisplayables.push(displayable);\n } else {\n this._displayables.push(displayable);\n }\n\n this.dirty();\n};\n\nIncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\n notPersistent = notPersistent || false;\n\n for (var i = 0; i < displayables.length; i++) {\n this.addDisplayable(displayables[i], notPersistent);\n }\n};\n\nIncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\n for (var i = this._cursor; i < this._displayables.length; i++) {\n cb && cb(this._displayables[i]);\n }\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n cb && cb(this._temporaryDisplayables[i]);\n }\n};\n\nIncrementalDisplayble.prototype.update = function () {\n this.updateTransform();\n\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i]; // PENDING\n\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i]; // PENDING\n\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n};\n\nIncrementalDisplayble.prototype.brush = function (ctx, prevEl) {\n // Render persistant displayables.\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n displayable.beforeBrush && displayable.beforeBrush(ctx);\n displayable.brush(ctx, i === this._cursor ? null : this._displayables[i - 1]);\n displayable.afterBrush && displayable.afterBrush(ctx);\n }\n\n this._cursor = i; // Render temporary displayables.\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i];\n displayable.beforeBrush && displayable.beforeBrush(ctx);\n displayable.brush(ctx, i === 0 ? null : this._temporaryDisplayables[i - 1]);\n displayable.afterBrush && displayable.afterBrush(ctx);\n }\n\n this._temporaryDisplayables = [];\n this.notClear = true;\n};\n\nvar m = [];\n\nIncrementalDisplayble.prototype.getBoundingRect = function () {\n if (!this._rect) {\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n var childRect = displayable.getBoundingRect().clone();\n\n if (displayable.needLocalTransform()) {\n childRect.applyTransform(displayable.getLocalTransform(m));\n }\n\n rect.union(childRect);\n }\n\n this._rect = rect;\n }\n\n return this._rect;\n};\n\nIncrementalDisplayble.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n\n if (rect.contain(localPos[0], localPos[1])) {\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n\n if (displayable.contain(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\ninherits(IncrementalDisplayble, Displayble);\nvar _default = IncrementalDisplayble;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction({\n type: 'timelineChange',\n event: 'timelineChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.currentIndex != null) {\n timelineModel.setCurrentIndex(payload.currentIndex);\n\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n timelineModel.setPlayState(false);\n }\n } // Set normalized currentIndex to payload.\n\n\n ecModel.resetOption('timeline');\n return zrUtil.defaults({\n currentIndex: timelineModel.option.currentIndex\n }, payload);\n});\necharts.registerAction({\n type: 'timelinePlayChange',\n event: 'timelinePlayChanged',\n update: 'update'\n}, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.playState != null) {\n timelineModel.setPlayState(payload.playState);\n }\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.heatmap',\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n generateCoord: 'value'\n });\n },\n preventIncremental: function () {\n var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n if (coordSysCreator && coordSysCreator.dimensions) {\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n }\n },\n defaultOption: {\n // Cartesian2D or geo\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Geo coordinate system\n geoIndex: 0,\n blurSize: 30,\n pointSize: 20,\n maxOpacity: 1,\n minOpacity: 0\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar helper = require(\"./helper\");\n\nvar AxisProxy = require(\"./AxisProxy\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar eachAxisDim = helper.eachAxisDim;\nvar DataZoomModel = echarts.extendComponentModel({\n type: 'dataZoom',\n dependencies: ['xAxis', 'yAxis', 'zAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series'],\n\n /**\n * @protected\n */\n defaultOption: {\n zlevel: 0,\n z: 4,\n // Higher than normal component (z: 2).\n orient: null,\n // Default auto by axisIndex. Possible value: 'horizontal', 'vertical'.\n xAxisIndex: null,\n // Default the first horizontal category axis.\n yAxisIndex: null,\n // Default the first vertical category axis.\n filterMode: 'filter',\n // Possible values: 'filter' or 'empty' or 'weakFilter'.\n // 'filter': data items which are out of window will be removed. This option is\n // applicable when filtering outliers. For each data item, it will be\n // filtered if one of the relevant dimensions is out of the window.\n // 'weakFilter': data items which are out of window will be removed. This option\n // is applicable when filtering outliers. For each data item, it will be\n // filtered only if all of the relevant dimensions are out of the same\n // side of the window.\n // 'empty': data items which are out of window will be set to empty.\n // This option is applicable when user should not neglect\n // that there are some data items out of window.\n // 'none': Do not filter.\n // Taking line chart as an example, line will be broken in\n // the filtered points when filterModel is set to 'empty', but\n // be connected when set to 'filter'.\n throttle: null,\n // Dispatch action by the fixed rate, avoid frequency.\n // default 100. Do not throttle when use null/undefined.\n // If animation === true and animationDurationUpdate > 0,\n // default value is 100, otherwise 20.\n start: 0,\n // Start percent. 0 ~ 100\n end: 100,\n // End percent. 0 ~ 100\n startValue: null,\n // Start value. If startValue specified, start is ignored.\n endValue: null,\n // End value. If endValue specified, end is ignored.\n minSpan: null,\n // 0 ~ 100\n maxSpan: null,\n // 0 ~ 100\n minValueSpan: null,\n // The range of dataZoom can not be smaller than that.\n maxValueSpan: null,\n // The range of dataZoom can not be larger than that.\n rangeMode: null // Array, can be 'value' or 'percent'.\n\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel) {\n /**\n * key like x_0, y_1\n * @private\n * @type {Object}\n */\n this._dataIntervalByAxis = {};\n /**\n * @private\n */\n\n this._dataInfo = {};\n /**\n * key like x_0, y_1\n * @private\n */\n\n this._axisProxies = {};\n /**\n * @readOnly\n */\n\n this.textStyleModel;\n /**\n * @private\n */\n\n this._autoThrottle = true;\n /**\n * It is `[rangeModeForMin, rangeModeForMax]`.\n * The optional values for `rangeMode`:\n * + `'value'` mode: the axis extent will always be determined by\n * `dataZoom.startValue` and `dataZoom.endValue`, despite\n * how data like and how `axis.min` and `axis.max` are.\n * + `'percent'` mode: `100` represents 100% of the `[dMin, dMax]`,\n * where `dMin` is `axis.min` if `axis.min` specified, otherwise `data.extent[0]`,\n * and `dMax` is `axis.max` if `axis.max` specified, otherwise `data.extent[1]`.\n * Axis extent will be determined by the result of the percent of `[dMin, dMax]`.\n *\n * For example, when users are using dynamic data (update data periodically via `setOption`),\n * if in `'value`' mode, the window will be kept in a fixed value range despite how\n * data are appended, while if in `'percent'` mode, whe window range will be changed alone with\n * the appended data (suppose `axis.min` and `axis.max` are not specified).\n *\n * @private\n */\n\n this._rangePropMode = ['percent', 'percent'];\n var inputRawOption = retrieveRawOption(option);\n /**\n * Suppose a \"main process\" start at the point that model prepared (that is,\n * model initialized or merged or method called in `action`).\n * We should keep the `main process` idempotent, that is, given a set of values\n * on `option`, we get the same result.\n *\n * But sometimes, values on `option` will be updated for providing users\n * a \"final calculated value\" (`dataZoomProcessor` will do that). Those value\n * should not be the base/input of the `main process`.\n *\n * So in that case we should save and keep the input of the `main process`\n * separately, called `settledOption`.\n *\n * For example, consider the case:\n * (Step_1) brush zoom the grid by `toolbox.dataZoom`,\n * where the original input `option.startValue`, `option.endValue` are earsed by\n * calculated value.\n * (Step)2) click the legend to hide and show a series,\n * where the new range is calculated by the earsed `startValue` and `endValue`,\n * which brings incorrect result.\n *\n * @readOnly\n */\n\n this.settledOption = inputRawOption;\n this.mergeDefaultAndTheme(option, ecModel);\n this.doInit(inputRawOption);\n },\n\n /**\n * @override\n */\n mergeOption: function (newOption) {\n var inputRawOption = retrieveRawOption(newOption); //FIX #2591\n\n zrUtil.merge(this.option, newOption, true);\n zrUtil.merge(this.settledOption, inputRawOption, true);\n this.doInit(inputRawOption);\n },\n\n /**\n * @protected\n */\n doInit: function (inputRawOption) {\n var thisOption = this.option; // Disable realtime view update if canvas is not supported.\n\n if (!env.canvasSupported) {\n thisOption.realtime = false;\n }\n\n this._setDefaultThrottle(inputRawOption);\n\n updateRangeUse(this, inputRawOption);\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n // start/end has higher priority over startValue/endValue if they\n // both set, but we should make chart.setOption({endValue: 1000})\n // effective, rather than chart.setOption({endValue: 1000, end: null}).\n if (this._rangePropMode[index] === 'value') {\n thisOption[names[0]] = settledOption[names[0]] = null;\n } // Otherwise do nothing and use the merge result.\n\n }, this);\n this.textStyleModel = this.getModel('textStyle');\n\n this._resetTarget();\n\n this._giveAxisProxies();\n },\n\n /**\n * @private\n */\n _giveAxisProxies: function () {\n var axisProxies = this._axisProxies;\n this.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel, ecModel) {\n var axisModel = this.dependentModels[dimNames.axis][axisIndex]; // If exists, share axisProxy with other dataZoomModels.\n\n var axisProxy = axisModel.__dzAxisProxy || ( // Use the first dataZoomModel as the main model of axisProxy.\n axisModel.__dzAxisProxy = new AxisProxy(dimNames.name, axisIndex, this, ecModel)); // FIXME\n // dispose __dzAxisProxy\n\n axisProxies[dimNames.name + '_' + axisIndex] = axisProxy;\n }, this);\n },\n\n /**\n * @private\n */\n _resetTarget: function () {\n var thisOption = this.option;\n\n var autoMode = this._judgeAutoMode();\n\n eachAxisDim(function (dimNames) {\n var axisIndexName = dimNames.axisIndex;\n thisOption[axisIndexName] = modelUtil.normalizeToArray(thisOption[axisIndexName]);\n }, this);\n\n if (autoMode === 'axisIndex') {\n this._autoSetAxisIndex();\n } else if (autoMode === 'orient') {\n this._autoSetOrient();\n }\n },\n\n /**\n * @private\n */\n _judgeAutoMode: function () {\n // Auto set only works for setOption at the first time.\n // The following is user's reponsibility. So using merged\n // option is OK.\n var thisOption = this.option;\n var hasIndexSpecified = false;\n eachAxisDim(function (dimNames) {\n // When user set axisIndex as a empty array, we think that user specify axisIndex\n // but do not want use auto mode. Because empty array may be encountered when\n // some error occured.\n if (thisOption[dimNames.axisIndex] != null) {\n hasIndexSpecified = true;\n }\n }, this);\n var orient = thisOption.orient;\n\n if (orient == null && hasIndexSpecified) {\n return 'orient';\n } else if (!hasIndexSpecified) {\n if (orient == null) {\n thisOption.orient = 'horizontal';\n }\n\n return 'axisIndex';\n }\n },\n\n /**\n * @private\n */\n _autoSetAxisIndex: function () {\n var autoAxisIndex = true;\n var orient = this.get('orient', true);\n var thisOption = this.option;\n var dependentModels = this.dependentModels;\n\n if (autoAxisIndex) {\n // Find axis that parallel to dataZoom as default.\n var dimName = orient === 'vertical' ? 'y' : 'x';\n\n if (dependentModels[dimName + 'Axis'].length) {\n thisOption[dimName + 'AxisIndex'] = [0];\n autoAxisIndex = false;\n } else {\n each(dependentModels.singleAxis, function (singleAxisModel) {\n if (autoAxisIndex && singleAxisModel.get('orient', true) === orient) {\n thisOption.singleAxisIndex = [singleAxisModel.componentIndex];\n autoAxisIndex = false;\n }\n });\n }\n }\n\n if (autoAxisIndex) {\n // Find the first category axis as default. (consider polar)\n eachAxisDim(function (dimNames) {\n if (!autoAxisIndex) {\n return;\n }\n\n var axisIndices = [];\n var axisModels = this.dependentModels[dimNames.axis];\n\n if (axisModels.length && !axisIndices.length) {\n for (var i = 0, len = axisModels.length; i < len; i++) {\n if (axisModels[i].get('type') === 'category') {\n axisIndices.push(i);\n }\n }\n }\n\n thisOption[dimNames.axisIndex] = axisIndices;\n\n if (axisIndices.length) {\n autoAxisIndex = false;\n }\n }, this);\n }\n\n if (autoAxisIndex) {\n // FIXME\n // 这里是兼容ec2的写法(没指定xAxisIndex和yAxisIndex时把scatter和双数值轴折柱纳入dataZoom控制),\n // 但是实际是否需要Grid.js#getScaleByOption来判断(考虑time,log等axis type)?\n // If both dataZoom.xAxisIndex and dataZoom.yAxisIndex is not specified,\n // dataZoom component auto adopts series that reference to\n // both xAxis and yAxis which type is 'value'.\n this.ecModel.eachSeries(function (seriesModel) {\n if (this._isSeriesHasAllAxesTypeOf(seriesModel, 'value')) {\n eachAxisDim(function (dimNames) {\n var axisIndices = thisOption[dimNames.axisIndex];\n var axisIndex = seriesModel.get(dimNames.axisIndex);\n var axisId = seriesModel.get(dimNames.axisId);\n var axisModel = seriesModel.ecModel.queryComponents({\n mainType: dimNames.axis,\n index: axisIndex,\n id: axisId\n })[0];\n axisIndex = axisModel.componentIndex;\n\n if (zrUtil.indexOf(axisIndices, axisIndex) < 0) {\n axisIndices.push(axisIndex);\n }\n });\n }\n }, this);\n }\n },\n\n /**\n * @private\n */\n _autoSetOrient: function () {\n var dim; // Find the first axis\n\n this.eachTargetAxis(function (dimNames) {\n !dim && (dim = dimNames.name);\n }, this);\n this.option.orient = dim === 'y' ? 'vertical' : 'horizontal';\n },\n\n /**\n * @private\n */\n _isSeriesHasAllAxesTypeOf: function (seriesModel, axisType) {\n // FIXME\n // 需要series的xAxisIndex和yAxisIndex都首先自动设置上。\n // 例如series.type === scatter时。\n var is = true;\n eachAxisDim(function (dimNames) {\n var seriesAxisIndex = seriesModel.get(dimNames.axisIndex);\n var axisModel = this.dependentModels[dimNames.axis][seriesAxisIndex];\n\n if (!axisModel || axisModel.get('type') !== axisType) {\n is = false;\n }\n }, this);\n return is;\n },\n\n /**\n * @private\n */\n _setDefaultThrottle: function (inputRawOption) {\n // When first time user set throttle, auto throttle ends.\n if (inputRawOption.hasOwnProperty('throttle')) {\n this._autoThrottle = false;\n }\n\n if (this._autoThrottle) {\n var globalOption = this.ecModel.option;\n this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n }\n },\n\n /**\n * @public\n */\n getFirstTargetAxisModel: function () {\n var firstAxisModel;\n eachAxisDim(function (dimNames) {\n if (firstAxisModel == null) {\n var indices = this.get(dimNames.axisIndex);\n\n if (indices.length) {\n firstAxisModel = this.dependentModels[dimNames.axis][indices[0]];\n }\n }\n }, this);\n return firstAxisModel;\n },\n\n /**\n * @public\n * @param {Function} callback param: axisModel, dimNames, axisIndex, dataZoomModel, ecModel\n */\n eachTargetAxis: function (callback, context) {\n var ecModel = this.ecModel;\n eachAxisDim(function (dimNames) {\n each(this.get(dimNames.axisIndex), function (axisIndex) {\n callback.call(context, dimNames, axisIndex, this, ecModel);\n }, this);\n }, this);\n },\n\n /**\n * @param {string} dimName\n * @param {number} axisIndex\n * @return {module:echarts/component/dataZoom/AxisProxy} If not found, return null/undefined.\n */\n getAxisProxy: function (dimName, axisIndex) {\n return this._axisProxies[dimName + '_' + axisIndex];\n },\n\n /**\n * @param {string} dimName\n * @param {number} axisIndex\n * @return {module:echarts/model/Model} If not found, return null/undefined.\n */\n getAxisModel: function (dimName, axisIndex) {\n var axisProxy = this.getAxisProxy(dimName, axisIndex);\n return axisProxy && axisProxy.getAxisModel();\n },\n\n /**\n * If not specified, set to undefined.\n *\n * @public\n * @param {Object} opt\n * @param {number} [opt.start]\n * @param {number} [opt.end]\n * @param {number} [opt.startValue]\n * @param {number} [opt.endValue]\n */\n setRawRange: function (opt) {\n var thisOption = this.option;\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n // Consider the pair :\n // If one has value and the other one is `null/undefined`, we both set them\n // to `settledOption`. This strategy enables the feature to clear the original\n // value in `settledOption` to `null/undefined`.\n // But if both of them are `null/undefined`, we do not set them to `settledOption`\n // and keep `settledOption` with the original value. This strategy enables users to\n // only set but not set when calling\n // `dispatchAction`.\n // The pair is treated in the same way.\n if (opt[names[0]] != null || opt[names[1]] != null) {\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n }\n }, this);\n updateRangeUse(this, opt);\n },\n\n /**\n * @public\n * @param {Object} opt\n * @param {number} [opt.start]\n * @param {number} [opt.end]\n * @param {number} [opt.startValue]\n * @param {number} [opt.endValue]\n */\n setCalculatedRange: function (opt) {\n var option = this.option;\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\n option[name] = opt[name];\n });\n },\n\n /**\n * @public\n * @return {Array.} [startPercent, endPercent]\n */\n getPercentRange: function () {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataPercentWindow();\n }\n },\n\n /**\n * @public\n * For example, chart.getModel().getComponent('dataZoom').getValueRange('y', 0);\n *\n * @param {string} [axisDimName]\n * @param {number} [axisIndex]\n * @return {Array.} [startValue, endValue] value can only be '-' or finite number.\n */\n getValueRange: function (axisDimName, axisIndex) {\n if (axisDimName == null && axisIndex == null) {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataValueWindow();\n }\n } else {\n return this.getAxisProxy(axisDimName, axisIndex).getDataValueWindow();\n }\n },\n\n /**\n * @public\n * @param {module:echarts/model/Model} [axisModel] If axisModel given, find axisProxy\n * corresponding to the axisModel\n * @return {module:echarts/component/dataZoom/AxisProxy}\n */\n findRepresentativeAxisProxy: function (axisModel) {\n if (axisModel) {\n return axisModel.__dzAxisProxy;\n } // Find the first hosted axisProxy\n\n\n var axisProxies = this._axisProxies;\n\n for (var key in axisProxies) {\n if (axisProxies.hasOwnProperty(key) && axisProxies[key].hostedBy(this)) {\n return axisProxies[key];\n }\n } // If no hosted axis find not hosted axisProxy.\n // Consider this case: dataZoomModel1 and dataZoomModel2 control the same axis,\n // and the option.start or option.end settings are different. The percentRange\n // should follow axisProxy.\n // (We encounter this problem in toolbox data zoom.)\n\n\n for (var key in axisProxies) {\n if (axisProxies.hasOwnProperty(key) && !axisProxies[key].hostedBy(this)) {\n return axisProxies[key];\n }\n }\n },\n\n /**\n * @return {Array.}\n */\n getRangePropMode: function () {\n return this._rangePropMode.slice();\n }\n});\n/**\n * Retrieve the those raw params from option, which will be cached separately.\n * becasue they will be overwritten by normalized/calculated values in the main\n * process.\n */\n\nfunction retrieveRawOption(option) {\n var ret = {};\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n option.hasOwnProperty(name) && (ret[name] = option[name]);\n });\n return ret;\n}\n\nfunction updateRangeUse(dataZoomModel, inputRawOption) {\n var rangePropMode = dataZoomModel._rangePropMode;\n var rangeModeInOption = dataZoomModel.get('rangeMode');\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n var percentSpecified = inputRawOption[names[0]] != null;\n var valueSpecified = inputRawOption[names[1]] != null;\n\n if (percentSpecified && !valueSpecified) {\n rangePropMode[index] = 'percent';\n } else if (!percentSpecified && valueSpecified) {\n rangePropMode[index] = 'value';\n } else if (rangeModeInOption) {\n rangePropMode[index] = rangeModeInOption[index];\n } else if (percentSpecified) {\n // percentSpecified && valueSpecified\n rangePropMode[index] = 'percent';\n } // else remain its original setting.\n\n });\n}\n\nvar _default = DataZoomModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar LinearGradient = require(\"zrender/lib/graphic/LinearGradient\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar VisualMapView = require(\"./VisualMapView\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\nvar helper = require(\"./helper\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView = VisualMapView.extend({\n type: 'visualMap.continuous',\n\n /**\n * @override\n */\n init: function () {\n ContinuousView.superApply(this, 'init', arguments);\n /**\n * @private\n */\n\n this._shapes = {};\n /**\n * @private\n */\n\n this._dataInterval = [];\n /**\n * @private\n */\n\n this._handleEnds = [];\n /**\n * @private\n */\n\n this._orient;\n /**\n * @private\n */\n\n this._useHandle;\n /**\n * @private\n */\n\n this._hoverLinkDataIndices = [];\n /**\n * @private\n */\n\n this._dragging;\n /**\n * @private\n */\n\n this._hovering;\n },\n\n /**\n * @protected\n * @override\n */\n doRender: function (visualMapModel, ecModel, api, payload) {\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n this._buildView();\n }\n },\n\n /**\n * @private\n */\n _buildView: function () {\n this.group.removeAll();\n var visualMapModel = this.visualMapModel;\n var thisGroup = this.group;\n this._orient = visualMapModel.get('orient');\n this._useHandle = visualMapModel.get('calculable');\n\n this._resetInterval();\n\n this._renderBar(thisGroup);\n\n var dataRangeText = visualMapModel.get('text');\n\n this._renderEndsText(thisGroup, dataRangeText, 0);\n\n this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation.\n\n\n this._updateView(true); // After updating view, inner shapes is built completely,\n // and then background can be rendered.\n\n\n this.renderBackground(thisGroup); // Real update view\n\n this._updateView();\n\n this._enableHoverLinkToSeries();\n\n this._enableHoverLinkFromSeries();\n\n this.positionGroup(thisGroup);\n },\n\n /**\n * @private\n */\n _renderEndsText: function (group, dataRangeText, endsIndex) {\n if (!dataRangeText) {\n return;\n } // Compatible with ec2, text[0] map to high value, text[1] map low value.\n\n\n var text = dataRangeText[1 - endsIndex];\n text = text != null ? text + '' : '';\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var itemSize = visualMapModel.itemSize;\n var barGroup = this._shapes.barGroup;\n\n var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n var orient = this._orient;\n var textStyleModel = this.visualMapModel.textStyleModel;\n this.group.add(new graphic.Text({\n style: {\n x: position[0],\n y: position[1],\n textVerticalAlign: orient === 'horizontal' ? 'middle' : align,\n textAlign: orient === 'horizontal' ? align : 'center',\n text: text,\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n }));\n },\n\n /**\n * @private\n */\n _renderBar: function (targetGroup) {\n var visualMapModel = this.visualMapModel;\n var shapes = this._shapes;\n var itemSize = visualMapModel.itemSize;\n var orient = this._orient;\n var useHandle = this._useHandle;\n var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n var barGroup = shapes.barGroup = this._createBarGroup(itemAlign); // Bar\n\n\n barGroup.add(shapes.outOfRange = createPolygon());\n barGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\n var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n if (useHandle) {\n shapes.handleThumbs = [];\n shapes.handleLabels = [];\n shapes.handleLabelPoints = [];\n\n this._createHandle(barGroup, 0, itemSize, textSize, orient, itemAlign);\n\n this._createHandle(barGroup, 1, itemSize, textSize, orient, itemAlign);\n }\n\n this._createIndicator(barGroup, itemSize, textSize, orient);\n\n targetGroup.add(barGroup);\n },\n\n /**\n * @private\n */\n _createHandle: function (barGroup, handleIndex, itemSize, textSize, orient) {\n var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n var handleThumb = createPolygon(createHandlePoints(handleIndex, textSize), getCursor(this._orient), onDrift, onDragEnd);\n handleThumb.position[0] = itemSize[0];\n barGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n // transform (orient/inverse). So label is built separately but not\n // use zrender/graphic/helper/RectText, and is located based on view\n // group (according to handleLabelPoint) but not barGroup.\n\n var textStyleModel = this.visualMapModel.textStyleModel;\n var handleLabel = new graphic.Text({\n draggable: true,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd,\n style: {\n x: 0,\n y: 0,\n text: '',\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n });\n this.group.add(handleLabel);\n var handleLabelPoint = [orient === 'horizontal' ? textSize / 2 : textSize * 1.5, orient === 'horizontal' ? handleIndex === 0 ? -(textSize * 1.5) : textSize * 1.5 : handleIndex === 0 ? -textSize / 2 : textSize / 2];\n var shapes = this._shapes;\n shapes.handleThumbs[handleIndex] = handleThumb;\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n shapes.handleLabels[handleIndex] = handleLabel;\n },\n\n /**\n * @private\n */\n _createIndicator: function (barGroup, itemSize, textSize, orient) {\n var indicator = createPolygon([[0, 0]], 'move');\n indicator.position[0] = itemSize[0];\n indicator.attr({\n invisible: true,\n silent: true\n });\n barGroup.add(indicator);\n var textStyleModel = this.visualMapModel.textStyleModel;\n var indicatorLabel = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n });\n this.group.add(indicatorLabel);\n var indicatorLabelPoint = [orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT + 3, 0];\n var shapes = this._shapes;\n shapes.indicator = indicator;\n shapes.indicatorLabel = indicatorLabel;\n shapes.indicatorLabelPoint = indicatorLabelPoint;\n },\n\n /**\n * @private\n */\n _dragHandle: function (handleIndex, isEnd, dx, dy) {\n if (!this._useHandle) {\n return;\n }\n\n this._dragging = !isEnd;\n\n if (!isEnd) {\n // Transform dx, dy to bar coordination.\n var vertex = this._applyTransform([dx, dy], this._shapes.barGroup, true);\n\n this._updateInterval(handleIndex, vertex[1]); // Considering realtime, update view should be executed\n // before dispatch action.\n\n\n this._updateView();\n } // dragEnd do not dispatch action when realtime.\n\n\n if (isEnd === !this.visualMapModel.get('realtime')) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: this._dataInterval.slice()\n });\n }\n\n if (isEnd) {\n !this._hovering && this._clearHoverLinkToSeries();\n } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n }\n },\n\n /**\n * @private\n */\n _resetInterval: function () {\n var visualMapModel = this.visualMapModel;\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\n var dataExtent = visualMapModel.getExtent();\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n },\n\n /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} dx\n * @param {number} dy\n */\n _updateInterval: function (handleIndex, delta) {\n delta = delta || 0;\n var visualMapModel = this.visualMapModel;\n var handleEnds = this._handleEnds;\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbiden\n 0);\n var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n },\n\n /**\n * @private\n */\n _updateView: function (forSketch) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var shapes = this._shapes;\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n shapes.inRange.setStyle({\n fill: visualInRange.barColor,\n opacity: visualInRange.opacity\n }).setShape('points', visualInRange.barPoints);\n shapes.outOfRange.setStyle({\n fill: visualOutOfRange.barColor,\n opacity: visualOutOfRange.opacity\n }).setShape('points', visualOutOfRange.barPoints);\n\n this._updateHandle(inRangeHandleEnds, visualInRange);\n },\n\n /**\n * @private\n */\n _createBarVisual: function (dataInterval, dataExtent, handleEnds, forceState) {\n var opts = {\n forceState: forceState,\n convertOpacityToAlpha: true\n };\n\n var colorStops = this._makeColorGradient(dataInterval, opts);\n\n var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n return {\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n barPoints: barPoints,\n handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n };\n },\n\n /**\n * @private\n */\n _makeColorGradient: function (dataInterval, opts) {\n // Considering colorHue, which is not linear, so we have to sample\n // to calculate gradient color stops, but not only caculate head\n // and tail.\n var sampleNumber = 100; // Arbitrary value.\n\n var colorStops = [];\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n colorStops.push({\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\n offset: 0\n });\n\n for (var i = 1; i < sampleNumber; i++) {\n var currValue = dataInterval[0] + step * i;\n\n if (currValue > dataInterval[1]) {\n break;\n }\n\n colorStops.push({\n color: this.getControllerVisual(currValue, 'color', opts),\n offset: i / sampleNumber\n });\n }\n\n colorStops.push({\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\n offset: 1\n });\n return colorStops;\n },\n\n /**\n * @private\n */\n _createBarPoints: function (handleEnds, symbolSizes) {\n var itemSize = this.visualMapModel.itemSize;\n return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n },\n\n /**\n * @private\n */\n _createBarGroup: function (itemAlign) {\n var orient = this._orient;\n var inverse = this.visualMapModel.get('inverse');\n return new graphic.Group(orient === 'horizontal' && !inverse ? {\n scale: itemAlign === 'bottom' ? [1, 1] : [-1, 1],\n rotation: Math.PI / 2\n } : orient === 'horizontal' && inverse ? {\n scale: itemAlign === 'bottom' ? [-1, 1] : [1, 1],\n rotation: -Math.PI / 2\n } : orient === 'vertical' && !inverse ? {\n scale: itemAlign === 'left' ? [1, -1] : [-1, -1]\n } : {\n scale: itemAlign === 'left' ? [1, 1] : [-1, 1]\n });\n },\n\n /**\n * @private\n */\n _updateHandle: function (handleEnds, visualInRange) {\n if (!this._useHandle) {\n return;\n }\n\n var shapes = this._shapes;\n var visualMapModel = this.visualMapModel;\n var handleThumbs = shapes.handleThumbs;\n var handleLabels = shapes.handleLabels;\n each([0, 1], function (handleIndex) {\n var handleThumb = handleThumbs[handleIndex];\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n handleThumb.position[1] = handleEnds[handleIndex]; // Update handle label position.\n\n var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n textVerticalAlign: 'middle',\n textAlign: this._applyTransform(this._orient === 'horizontal' ? handleIndex === 0 ? 'bottom' : 'top' : 'left', shapes.barGroup)\n });\n }, this);\n },\n\n /**\n * @private\n * @param {number} cursorValue\n * @param {number} textValue\n * @param {string} [rangeSymbol]\n * @param {number} [halfHoverLinkSize]\n */\n _showIndicator: function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var itemSize = visualMapModel.itemSize;\n var sizeExtent = [0, itemSize[1]];\n var pos = linearMap(cursorValue, dataExtent, sizeExtent, true);\n var shapes = this._shapes;\n var indicator = shapes.indicator;\n\n if (!indicator) {\n return;\n }\n\n indicator.position[1] = pos;\n indicator.attr('invisible', false);\n indicator.setShape('points', createIndicatorPoints(!!rangeSymbol, halfHoverLinkSize, pos, itemSize[1]));\n var opts = {\n convertOpacityToAlpha: true\n };\n var color = this.getControllerVisual(cursorValue, 'color', opts);\n indicator.setStyle('fill', color); // Update handle label position.\n\n var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n var indicatorLabel = shapes.indicatorLabel;\n indicatorLabel.attr('invisible', false);\n\n var align = this._applyTransform('left', shapes.barGroup);\n\n var orient = this._orient;\n indicatorLabel.setStyle({\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n textVerticalAlign: orient === 'horizontal' ? align : 'middle',\n textAlign: orient === 'horizontal' ? 'center' : align,\n x: textPoint[0],\n y: textPoint[1]\n });\n },\n\n /**\n * @private\n */\n _enableHoverLinkToSeries: function () {\n var self = this;\n\n this._shapes.barGroup.on('mousemove', function (e) {\n self._hovering = true;\n\n if (!self._dragging) {\n var itemSize = self.visualMapModel.itemSize;\n\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.barGroup, true, true); // For hover link show when hover handle, which might be\n // below or upper than sizeExtent.\n\n\n pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n }\n }).on('mouseout', function () {\n // When mouse is out of handle, hoverLink still need\n // to be displayed when realtime is set as false.\n self._hovering = false;\n !self._dragging && self._clearHoverLinkToSeries();\n });\n },\n\n /**\n * @private\n */\n _enableHoverLinkFromSeries: function () {\n var zr = this.api.getZr();\n\n if (this.visualMapModel.option.hoverLink) {\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n zr.on('mouseout', this._hideIndicator, this);\n } else {\n this._clearHoverLinkFromSeries();\n }\n },\n\n /**\n * @private\n */\n _doHoverLinkToSeries: function (cursorPos, hoverOnBar) {\n var visualMapModel = this.visualMapModel;\n var itemSize = visualMapModel.itemSize;\n\n if (!visualMapModel.option.hoverLink) {\n return;\n }\n\n var sizeExtent = [0, itemSize[1]];\n var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\n cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n // where china and india has very large population.\n\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n // otherwise labels overlap, especially when dragging.\n\n if (hoverOnBar) {\n if (valueRange[0] === -Infinity) {\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n } else if (valueRange[1] === Infinity) {\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n } else {\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n }\n } // When realtime is set as false, handles, which are in barGroup,\n // also trigger hoverLink, which help user to realize where they\n // focus on when dragging. (see test/heatmap-large.html)\n // When realtime is set as true, highlight will not show when hover\n // handle, because the label on handle, which displays a exact value\n // but not range, might mislead users.\n\n\n var oldBatch = this._hoverLinkDataIndices;\n var newBatch = [];\n\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n }\n\n var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n },\n\n /**\n * @private\n */\n _hoverLinkFromSeriesMouseOver: function (e) {\n var el = e.target;\n var visualMapModel = this.visualMapModel;\n\n if (!el || el.dataIndex == null) {\n return;\n }\n\n var dataModel = this.ecModel.getSeriesByIndex(el.seriesIndex);\n\n if (!visualMapModel.isTargetSeries(dataModel)) {\n return;\n }\n\n var data = dataModel.getData(el.dataType);\n var value = data.get(visualMapModel.getDataDimension(data), el.dataIndex, true);\n\n if (!isNaN(value)) {\n this._showIndicator(value, value);\n }\n },\n\n /**\n * @private\n */\n _hideIndicator: function () {\n var shapes = this._shapes;\n shapes.indicator && shapes.indicator.attr('invisible', true);\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n },\n\n /**\n * @private\n */\n _clearHoverLinkToSeries: function () {\n this._hideIndicator();\n\n var indices = this._hoverLinkDataIndices;\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n indices.length = 0;\n },\n\n /**\n * @private\n */\n _clearHoverLinkFromSeries: function () {\n this._hideIndicator();\n\n var zr = this.api.getZr();\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n zr.off('mouseout', this._hideIndicator);\n },\n\n /**\n * @private\n */\n _applyTransform: function (vertex, element, inverse, global) {\n var transform = graphic.getTransform(element, global ? null : this.group);\n return graphic[zrUtil.isArray(vertex) ? 'applyTransform' : 'transformDirection'](vertex, transform, inverse);\n },\n\n /**\n * @private\n */\n _dispatchHighDown: function (type, batch) {\n batch && batch.length && this.api.dispatchAction({\n type: type,\n batch: batch\n });\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n }\n});\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n return new graphic.Polygon({\n shape: {\n points: points\n },\n draggable: !!onDrift,\n cursor: cursor,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd\n });\n}\n\nfunction createHandlePoints(handleIndex, textSize) {\n return handleIndex === 0 ? [[0, 0], [textSize, 0], [textSize, -textSize]] : [[0, 0], [textSize, 0], [textSize, textSize]];\n}\n\nfunction createIndicatorPoints(isRange, halfHoverLinkSize, pos, extentMax) {\n return isRange ? [// indicate range\n [0, -mathMin(halfHoverLinkSize, mathMax(pos, 0))], [HOVER_LINK_OUT, 0], [0, mathMin(halfHoverLinkSize, mathMax(extentMax - pos, 0))]] : [// indicate single value\n [0, 0], [5, -5], [5, 5]];\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n if (hoverLinkDataSize) {\n halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n }\n\n return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nvar _default = ContinuousView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"./config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrender = require(\"zrender/lib/zrender\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar timsort = require(\"zrender/lib/core/timsort\");\n\nvar Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar GlobalModel = require(\"./model/Global\");\n\nvar ExtensionAPI = require(\"./ExtensionAPI\");\n\nvar CoordinateSystemManager = require(\"./CoordinateSystem\");\n\nvar OptionManager = require(\"./model/OptionManager\");\n\nvar backwardCompat = require(\"./preprocessor/backwardCompat\");\n\nvar dataStack = require(\"./processor/dataStack\");\n\nvar ComponentModel = require(\"./model/Component\");\n\nvar SeriesModel = require(\"./model/Series\");\n\nvar ComponentView = require(\"./view/Component\");\n\nvar ChartView = require(\"./view/Chart\");\n\nvar graphic = require(\"./util/graphic\");\n\nvar modelUtil = require(\"./util/model\");\n\nvar _throttle = require(\"./util/throttle\");\n\nvar throttle = _throttle.throttle;\n\nvar seriesColor = require(\"./visual/seriesColor\");\n\nvar aria = require(\"./visual/aria\");\n\nvar loadingDefault = require(\"./loading/default\");\n\nvar Scheduler = require(\"./stream/Scheduler\");\n\nvar lightTheme = require(\"./theme/light\");\n\nvar darkTheme = require(\"./theme/dark\");\n\nrequire(\"./component/dataset\");\n\nvar mapDataStorage = require(\"./coord/geo/mapDataStorage\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar parseClassType = ComponentModel.parseClassType;\nvar version = '4.8.0';\nvar dependencies = {\n zrender: '4.3.1'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\nvar PRIORITY_VISUAL_COMPONENT = 4000; // FIXME\n// necessary?\n\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY = {\n PROCESSOR: {\n FILTER: PRIORITY_PROCESSOR_FILTER,\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n },\n VISUAL: {\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\n CHART: PRIORITY_VISUAL_CHART,\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\n BRUSH: PRIORITY_VISUAL_BRUSH\n }\n}; // Main process have three entries: `setOption`, `dispatchAction` and `resize`,\n// where they must not be invoked nestedly, except the only case: invoke\n// dispatchAction with updateMethod \"none\" in main process.\n// This flag is used to carry out this rule.\n// All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]).\n\nvar IN_MAIN_PROCESS = '__flagInMainProcess';\nvar OPTION_UPDATED = '__optionUpdated';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\n\nfunction createRegisterEventWithLowercaseName(method, ignoreDisposed) {\n return function (eventName, handler, context) {\n if (!ignoreDisposed && this._disposed) {\n disposedWarning(this.id);\n return;\n } // Event name is all lowercase\n\n\n eventName = eventName && eventName.toLowerCase();\n Eventful.prototype[method].call(this, eventName, handler, context);\n };\n}\n/**\n * @module echarts~MessageCenter\n */\n\n\nfunction MessageCenter() {\n Eventful.call(this);\n}\n\nMessageCenter.prototype.on = createRegisterEventWithLowercaseName('on', true);\nMessageCenter.prototype.off = createRegisterEventWithLowercaseName('off', true);\nMessageCenter.prototype.one = createRegisterEventWithLowercaseName('one', true);\nzrUtil.mixin(MessageCenter, Eventful);\n/**\n * @module echarts~ECharts\n */\n\nfunction ECharts(dom, theme, opts) {\n opts = opts || {}; // Get theme by name\n\n if (typeof theme === 'string') {\n theme = themeStorage[theme];\n }\n /**\n * @type {string}\n */\n\n\n this.id;\n /**\n * Group id\n * @type {string}\n */\n\n this.group;\n /**\n * @type {HTMLElement}\n * @private\n */\n\n this._dom = dom;\n var defaultRenderer = 'canvas';\n\n /**\n * @type {module:zrender/ZRender}\n * @private\n */\n var zr = this._zr = zrender.init(dom, {\n renderer: opts.renderer || defaultRenderer,\n devicePixelRatio: opts.devicePixelRatio,\n width: opts.width,\n height: opts.height\n });\n /**\n * Expect 60 fps.\n * @type {Function}\n * @private\n */\n\n this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n var theme = zrUtil.clone(theme);\n theme && backwardCompat(theme, true);\n /**\n * @type {Object}\n * @private\n */\n\n this._theme = theme;\n /**\n * @type {Array.}\n * @private\n */\n\n this._chartsViews = [];\n /**\n * @type {Object.}\n * @private\n */\n\n this._chartsMap = {};\n /**\n * @type {Array.}\n * @private\n */\n\n this._componentsViews = [];\n /**\n * @type {Object.}\n * @private\n */\n\n this._componentsMap = {};\n /**\n * @type {module:echarts/CoordinateSystem}\n * @private\n */\n\n this._coordSysMgr = new CoordinateSystemManager();\n /**\n * @type {module:echarts/ExtensionAPI}\n * @private\n */\n\n var api = this._api = createExtensionAPI(this); // Sort on demand\n\n function prioritySortFunc(a, b) {\n return a.__prio - b.__prio;\n }\n\n timsort(visualFuncs, prioritySortFunc);\n timsort(dataProcessorFuncs, prioritySortFunc);\n /**\n * @type {module:echarts/stream/Scheduler}\n */\n\n this._scheduler = new Scheduler(this, api, dataProcessorFuncs, visualFuncs);\n Eventful.call(this, this._ecEventProcessor = new EventProcessor());\n /**\n * @type {module:echarts~MessageCenter}\n * @private\n */\n\n this._messageCenter = new MessageCenter(); // Init mouse events\n\n this._initEvents(); // In case some people write `window.onresize = chart.resize`\n\n\n this.resize = zrUtil.bind(this.resize, this); // Can't dispatch action during rendering procedure\n\n this._pendingActions = [];\n zr.animation.on('frame', this._onframe, this);\n bindRenderedEvent(zr, this); // ECharts instance can be used as value.\n\n zrUtil.setAsPrimitive(this);\n}\n\nvar echartsProto = ECharts.prototype;\n\nechartsProto._onframe = function () {\n if (this._disposed) {\n return;\n }\n\n var scheduler = this._scheduler; // Lazy update\n\n if (this[OPTION_UPDATED]) {\n var silent = this[OPTION_UPDATED].silent;\n this[IN_MAIN_PROCESS] = true;\n prepare(this);\n updateMethods.update.call(this);\n this[IN_MAIN_PROCESS] = false;\n this[OPTION_UPDATED] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n } // Avoid do both lazy update and progress in one frame.\n else if (scheduler.unfinished) {\n // Stream progress.\n var remainTime = TEST_FRAME_REMAIN_TIME;\n var ecModel = this._model;\n var api = this._api;\n scheduler.unfinished = false;\n\n do {\n var startTime = +new Date();\n scheduler.performSeriesTasks(ecModel); // Currently dataProcessorFuncs do not check threshold.\n\n scheduler.performDataProcessorTasks(ecModel);\n updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in\n // each frame is not a good user experience. So we follow the rule that\n // the extent of the coordinate system is determin in the first frame (the\n // frame is executed immedietely after task reset.\n // this._coordSysMgr.update(ecModel, api);\n // console.log('--- ec frame visual ---', remainTime);\n\n scheduler.performVisualTasks(ecModel);\n renderSeries(this, this._model, api, 'remain');\n remainTime -= +new Date() - startTime;\n } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event.\n\n\n if (!scheduler.unfinished) {\n this._zr.flush();\n } // Else, zr flushing be ensue within the same frame,\n // because zr flushing is after onframe event.\n\n }\n};\n/**\n * @return {HTMLElement}\n */\n\n\nechartsProto.getDom = function () {\n return this._dom;\n};\n/**\n * @return {module:zrender~ZRender}\n */\n\n\nechartsProto.getZr = function () {\n return this._zr;\n};\n/**\n * Usage:\n * chart.setOption(option, notMerge, lazyUpdate);\n * chart.setOption(option, {\n * notMerge: ...,\n * lazyUpdate: ...,\n * silent: ...\n * });\n *\n * @param {Object} option\n * @param {Object|boolean} [opts] opts or notMerge.\n * @param {boolean} [opts.notMerge=false]\n * @param {boolean} [opts.lazyUpdate=false] Useful when setOption frequently.\n */\n\n\nechartsProto.setOption = function (option, notMerge, lazyUpdate) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var silent;\n\n if (isObject(notMerge)) {\n lazyUpdate = notMerge.lazyUpdate;\n silent = notMerge.silent;\n notMerge = notMerge.notMerge;\n }\n\n this[IN_MAIN_PROCESS] = true;\n\n if (!this._model || notMerge) {\n var optionManager = new OptionManager(this._api);\n var theme = this._theme;\n var ecModel = this._model = new GlobalModel();\n ecModel.scheduler = this._scheduler;\n ecModel.init(null, null, theme, optionManager);\n }\n\n this._model.setOption(option, optionPreprocessorFuncs);\n\n if (lazyUpdate) {\n this[OPTION_UPDATED] = {\n silent: silent\n };\n this[IN_MAIN_PROCESS] = false;\n } else {\n prepare(this);\n updateMethods.update.call(this); // Ensure zr refresh sychronously, and then pixel in canvas can be\n // fetched after `setOption`.\n\n this._zr.flush();\n\n this[OPTION_UPDATED] = false;\n this[IN_MAIN_PROCESS] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n};\n/**\n * @DEPRECATED\n */\n\n\nechartsProto.setTheme = function () {\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n};\n/**\n * @return {module:echarts/model/Global}\n */\n\n\nechartsProto.getModel = function () {\n return this._model;\n};\n/**\n * @return {Object}\n */\n\n\nechartsProto.getOption = function () {\n return this._model && this._model.getOption();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getWidth = function () {\n return this._zr.getWidth();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getHeight = function () {\n return this._zr.getHeight();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getDevicePixelRatio = function () {\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\n};\n/**\n * Get canvas which has all thing rendered\n * @param {Object} opts\n * @param {string} [opts.backgroundColor]\n * @return {string}\n */\n\n\nechartsProto.getRenderedCanvas = function (opts) {\n if (!env.canvasSupported) {\n return;\n }\n\n opts = opts || {};\n opts.pixelRatio = opts.pixelRatio || 1;\n opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n var zr = this._zr; // var list = zr.storage.getDisplayList();\n // Stop animations\n // Never works before in init animation, so remove it.\n // zrUtil.each(list, function (el) {\n // el.stopAnimation(true);\n // });\n\n return zr.painter.getRenderedCanvas(opts);\n};\n/**\n * Get svg data url\n * @return {string}\n */\n\n\nechartsProto.getSvgDataURL = function () {\n if (!env.svgSupported) {\n return;\n }\n\n var zr = this._zr;\n var list = zr.storage.getDisplayList(); // Stop animations\n\n zrUtil.each(list, function (el) {\n el.stopAnimation(true);\n });\n return zr.painter.toDataURL();\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n * @param {string} [opts.excludeComponents]\n */\n\n\nechartsProto.getDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n opts = opts || {};\n var excludeComponents = opts.excludeComponents;\n var ecModel = this._model;\n var excludesComponentViews = [];\n var self = this;\n each(excludeComponents, function (componentType) {\n ecModel.eachComponent({\n mainType: componentType\n }, function (component) {\n var view = self._componentsMap[component.__viewId];\n\n if (!view.group.ignore) {\n excludesComponentViews.push(view);\n view.group.ignore = true;\n }\n });\n });\n var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n each(excludesComponentViews, function (view) {\n view.group.ignore = false;\n });\n return url;\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n */\n\n\nechartsProto.getConnectedDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!env.canvasSupported) {\n return;\n }\n\n var isSvg = opts.type === 'svg';\n var groupId = this.group;\n var mathMin = Math.min;\n var mathMax = Math.max;\n var MAX_NUMBER = Infinity;\n\n if (connectedGroups[groupId]) {\n var left = MAX_NUMBER;\n var top = MAX_NUMBER;\n var right = -MAX_NUMBER;\n var bottom = -MAX_NUMBER;\n var canvasList = [];\n var dpr = opts && opts.pixelRatio || 1;\n zrUtil.each(instances, function (chart, id) {\n if (chart.group === groupId) {\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n var boundingRect = chart.getDom().getBoundingClientRect();\n left = mathMin(boundingRect.left, left);\n top = mathMin(boundingRect.top, top);\n right = mathMax(boundingRect.right, right);\n bottom = mathMax(boundingRect.bottom, bottom);\n canvasList.push({\n dom: canvas,\n left: boundingRect.left,\n top: boundingRect.top\n });\n }\n });\n left *= dpr;\n top *= dpr;\n right *= dpr;\n bottom *= dpr;\n var width = right - left;\n var height = bottom - top;\n var targetCanvas = zrUtil.createCanvas();\n var zr = zrender.init(targetCanvas, {\n renderer: isSvg ? 'svg' : 'canvas'\n });\n zr.resize({\n width: width,\n height: height\n });\n\n if (isSvg) {\n var content = '';\n each(canvasList, function (item) {\n var x = item.left - left;\n var y = item.top - top;\n content += '' + item.dom + '';\n });\n zr.painter.getSvgRoot().innerHTML = content;\n\n if (opts.connectedBackgroundColor) {\n zr.painter.setBackgroundColor(opts.connectedBackgroundColor);\n }\n\n zr.refreshImmediately();\n return zr.painter.toDataURL();\n } else {\n // Background between the charts\n if (opts.connectedBackgroundColor) {\n zr.add(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n style: {\n fill: opts.connectedBackgroundColor\n }\n }));\n }\n\n each(canvasList, function (item) {\n var img = new graphic.Image({\n style: {\n x: item.left * dpr - left,\n y: item.top * dpr - top,\n image: item.dom\n }\n });\n zr.add(img);\n });\n zr.refreshImmediately();\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n }\n } else {\n return this.getDataURL(opts);\n }\n};\n/**\n * Convert from logical coordinate system to pixel coordinate system.\n * See CoordinateSystem#convertToPixel.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId, geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName,\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\n\nechartsProto.convertToPixel = zrUtil.curry(doConvertPixel, 'convertToPixel');\n/**\n * Convert from pixel coordinate system to logical coordinate system.\n * See CoordinateSystem#convertFromPixel.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId / geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\nechartsProto.convertFromPixel = zrUtil.curry(doConvertPixel, 'convertFromPixel');\n\nfunction doConvertPixel(methodName, finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n\n var coordSysList = this._coordSysMgr.getCoordinateSystems();\n\n var result;\n finder = modelUtil.parseFinder(ecModel, finder);\n\n for (var i = 0; i < coordSysList.length; i++) {\n var coordSys = coordSysList[i];\n\n if (coordSys[methodName] && (result = coordSys[methodName](ecModel, finder, value)) != null) {\n return result;\n }\n }\n}\n/**\n * Is the specified coordinate systems or components contain the given pixel point.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId / geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName,\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {boolean} result\n */\n\n\nechartsProto.containPixel = function (finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n var result;\n finder = modelUtil.parseFinder(ecModel, finder);\n zrUtil.each(finder, function (models, key) {\n key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n var coordSys = model.coordinateSystem;\n\n if (coordSys && coordSys.containPoint) {\n result |= !!coordSys.containPoint(value);\n } else if (key === 'seriesModels') {\n var view = this._chartsMap[model.__viewId];\n\n if (view && view.containPoint) {\n result |= view.containPoint(value, model);\n } else {}\n } else {}\n }, this);\n }, this);\n return !!result;\n};\n/**\n * Get visual from series or data.\n * @param {string|Object} finder\n * If string, e.g., 'series', means {seriesIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * dataIndex / dataIndexInside\n * }\n * If dataIndex is not specified, series visual will be fetched,\n * but not data item visual.\n * If all of seriesIndex, seriesId, seriesName are not specified,\n * visual will be fetched from first series.\n * @param {string} visualType 'color', 'symbol', 'symbolSize'\n */\n\n\nechartsProto.getVisual = function (finder, visualType) {\n var ecModel = this._model;\n finder = modelUtil.parseFinder(ecModel, finder, {\n defaultMainType: 'series'\n });\n var seriesModel = finder.seriesModel;\n var data = seriesModel.getData();\n var dataIndexInside = finder.hasOwnProperty('dataIndexInside') ? finder.dataIndexInside : finder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(finder.dataIndex) : null;\n return dataIndexInside != null ? data.getItemVisual(dataIndexInside, visualType) : data.getVisual(visualType);\n};\n/**\n * Get view of corresponding component model\n * @param {module:echarts/model/Component} componentModel\n * @return {module:echarts/view/Component}\n */\n\n\nechartsProto.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n};\n/**\n * Get view of corresponding series model\n * @param {module:echarts/model/Series} seriesModel\n * @return {module:echarts/view/Chart}\n */\n\n\nechartsProto.getViewOfSeriesModel = function (seriesModel) {\n return this._chartsMap[seriesModel.__viewId];\n};\n\nvar updateMethods = {\n prepareAndUpdate: function (payload) {\n prepare(this);\n updateMethods.update.call(this, payload);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n update: function (payload) {\n // console.profile && console.profile('update');\n var ecModel = this._model;\n var api = this._api;\n var zr = this._zr;\n var coordSysMgr = this._coordSysMgr;\n var scheduler = this._scheduler; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n scheduler.restoreData(ecModel, payload);\n scheduler.performSeriesTasks(ecModel); // TODO\n // Save total ecModel here for undo/redo (after restoring data and before processing data).\n // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call.\n // Create new coordinate system each update\n // In LineView may save the old coordinate system and use it to get the orignal point\n\n coordSysMgr.create(ecModel, api);\n scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update\n // stream modes after data processing, where the filtered data is used to\n // deteming whether use progressive rendering.\n\n updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info\n // can be fetched when coord sys updating (consider the barGrid extent fix). But\n // the drawback is the full coord info can not be fetched. Fortunately this full\n // coord is not requied in stream mode updater currently.\n\n coordSysMgr.update(ecModel, api);\n clearColorPalette(ecModel);\n scheduler.performVisualTasks(ecModel, payload);\n render(this, ecModel, api, payload); // Set background\n\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent'; // In IE8\n\n if (!env.canvasSupported) {\n var colorArr = colorTool.parse(backgroundColor);\n backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n if (colorArr[3] === 0) {\n backgroundColor = 'transparent';\n }\n } else {\n zr.setBackgroundColor(backgroundColor);\n }\n\n performPostUpdateFuncs(ecModel, api); // console.profile && console.profileEnd('update');\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateTransform: function (payload) {\n var ecModel = this._model;\n var ecIns = this;\n var api = this._api; // update before setOption\n\n if (!ecModel) {\n return;\n } // ChartView.markUpdateMethod(payload, 'updateTransform');\n\n\n var componentDirtyList = [];\n ecModel.eachComponent(function (componentType, componentModel) {\n var componentView = ecIns.getViewOfComponentModel(componentModel);\n\n if (componentView && componentView.__alive) {\n if (componentView.updateTransform) {\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n result && result.update && componentDirtyList.push(componentView);\n } else {\n componentDirtyList.push(componentView);\n }\n }\n });\n var seriesDirtyMap = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n if (chartView.updateTransform) {\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n } else {\n seriesDirtyMap.set(seriesModel.uid, 1);\n }\n });\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true,\n dirtyMap: seriesDirtyMap\n }); // Currently, not call render of components. Geo render cost a lot.\n // renderComponents(ecIns, ecModel, api, payload, componentDirtyList);\n\n\n renderSeries(ecIns, ecModel, api, payload, seriesDirtyMap);\n performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateView: function (payload) {\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ChartView.markUpdateMethod(payload, 'updateView');\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true\n });\n\n render(this, this._model, this._api, payload);\n performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateVisual: function (payload) {\n updateMethods.update.call(this, payload); // var ecModel = this._model;\n // // update before setOption\n // if (!ecModel) {\n // return;\n // }\n // ChartView.markUpdateMethod(payload, 'updateVisual');\n // clearColorPalette(ecModel);\n // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, {visualType: 'visual', setDirty: true});\n // render(this, this._model, this._api, payload);\n // performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateLayout: function (payload) {\n updateMethods.update.call(this, payload); // var ecModel = this._model;\n // // update before setOption\n // if (!ecModel) {\n // return;\n // }\n // ChartView.markUpdateMethod(payload, 'updateLayout');\n // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n // this._scheduler.performVisualTasks(ecModel, payload, {setDirty: true});\n // render(this, this._model, this._api, payload);\n // performPostUpdateFuncs(ecModel, this._api);\n }\n};\n\nfunction prepare(ecIns) {\n var ecModel = ecIns._model;\n var scheduler = ecIns._scheduler;\n scheduler.restorePipelines(ecModel);\n scheduler.prepareStageTasks();\n prepareView(ecIns, 'component', ecModel, scheduler);\n prepareView(ecIns, 'chart', ecModel, scheduler);\n scheduler.plan();\n}\n/**\n * @private\n */\n\n\nfunction updateDirectly(ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model; // broadcast\n\n if (!mainType) {\n // FIXME\n // Chart will not be update directly here, except set dirty.\n // But there is no such scenario now.\n each(ecIns._componentsViews.concat(ecIns._chartsViews), callView);\n return;\n }\n\n var query = {};\n query[mainType + 'Id'] = payload[mainType + 'Id'];\n query[mainType + 'Index'] = payload[mainType + 'Index'];\n query[mainType + 'Name'] = payload[mainType + 'Name'];\n var condition = {\n mainType: mainType,\n query: query\n };\n subType && (condition.subType = subType); // subType may be '' by parseClassType;\n\n var excludeSeriesId = payload.excludeSeriesId;\n\n if (excludeSeriesId != null) {\n excludeSeriesId = zrUtil.createHashMap(modelUtil.normalizeToArray(excludeSeriesId));\n } // If dispatchAction before setOption, do nothing.\n\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n if (!excludeSeriesId || excludeSeriesId.get(model.id) == null) {\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n }\n }, ecIns);\n\n function callView(view) {\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n }\n}\n/**\n * Resize the chart\n * @param {Object} opts\n * @param {number} [opts.width] Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Can be 'auto' (the same as null/undefined)\n * @param {boolean} [opts.silent=false]\n */\n\n\nechartsProto.resize = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._zr.resize(opts);\n\n var ecModel = this._model; // Resize loading effect\n\n this._loadingFX && this._loadingFX.resize();\n\n if (!ecModel) {\n return;\n }\n\n var optionChanged = ecModel.resetOption('media');\n var silent = opts && opts.silent;\n this[IN_MAIN_PROCESS] = true;\n optionChanged && prepare(this);\n updateMethods.update.call(this);\n this[IN_MAIN_PROCESS] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n};\n\nfunction updateStreamModes(ecIns, ecModel) {\n var chartsMap = ecIns._chartsMap;\n var scheduler = ecIns._scheduler;\n ecModel.eachSeries(function (seriesModel) {\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n });\n}\n/**\n * Show loading effect\n * @param {string} [name='default']\n * @param {Object} [cfg]\n */\n\n\nechartsProto.showLoading = function (name, cfg) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (isObject(name)) {\n cfg = name;\n name = '';\n }\n\n name = name || 'default';\n this.hideLoading();\n\n if (!loadingEffects[name]) {\n return;\n }\n\n var el = loadingEffects[name](this._api, cfg);\n var zr = this._zr;\n this._loadingFX = el;\n zr.add(el);\n};\n/**\n * Hide loading effect\n */\n\n\nechartsProto.hideLoading = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._loadingFX && this._zr.remove(this._loadingFX);\n this._loadingFX = null;\n};\n/**\n * @param {Object} eventObj\n * @return {Object}\n */\n\n\nechartsProto.makeActionFromEvent = function (eventObj) {\n var payload = zrUtil.extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n};\n/**\n * @pubilc\n * @param {Object} payload\n * @param {string} [payload.type] Action type\n * @param {Object|boolean} [opt] If pass boolean, means opt.silent\n * @param {boolean} [opt.silent=false] Whether trigger events.\n * @param {boolean} [opt.flush=undefined]\n * true: Flush immediately, and then pixel in canvas can be fetched\n * immediately. Caution: it might affect performance.\n * false: Not flush.\n * undefined: Auto decide whether perform flush.\n */\n\n\nechartsProto.dispatchAction = function (payload, opt) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!isObject(opt)) {\n opt = {\n silent: !!opt\n };\n }\n\n if (!actions[payload.type]) {\n return;\n } // Avoid dispatch action before setOption. Especially in `connect`.\n\n\n if (!this._model) {\n return;\n } // May dispatchAction in rendering procedure\n\n\n if (this[IN_MAIN_PROCESS]) {\n this._pendingActions.push(payload);\n\n return;\n }\n\n doDispatchAction.call(this, payload, opt.silent);\n\n if (opt.flush) {\n this._zr.flush(true);\n } else if (opt.flush !== false && env.browser.weChat) {\n // In WeChat embeded browser, `requestAnimationFrame` and `setInterval`\n // hang when sliding page (on touch event), which cause that zr does not\n // refresh util user interaction finished, which is not expected.\n // But `dispatchAction` may be called too frequently when pan on touch\n // screen, which impacts performance if do not throttle them.\n this._throttledZrFlush();\n }\n\n flushPendingActions.call(this, opt.silent);\n triggerUpdatedEvent.call(this, opt.silent);\n};\n\nfunction doDispatchAction(payload, silent) {\n var payloadType = payload.type;\n var escapeConnect = payload.escapeConnect;\n var actionWrap = actions[payloadType];\n var actionInfo = actionWrap.actionInfo;\n var cptType = (actionInfo.update || 'update').split(':');\n var updateMethod = cptType.pop();\n cptType = cptType[0] != null && parseClassType(cptType[0]);\n this[IN_MAIN_PROCESS] = true;\n var payloads = [payload];\n var batched = false; // Batch action\n\n if (payload.batch) {\n batched = true;\n payloads = zrUtil.map(payload.batch, function (item) {\n item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n item.batch = null;\n return item;\n });\n }\n\n var eventObjBatch = [];\n var eventObj;\n var isHighDown = payloadType === 'highlight' || payloadType === 'downplay';\n each(payloads, function (batchItem) {\n // Action can specify the event by return it.\n eventObj = actionWrap.action(batchItem, this._model, this._api); // Emit event outside\n\n eventObj = eventObj || zrUtil.extend({}, batchItem); // Convert type to eventType\n\n eventObj.type = actionInfo.event || eventObj.type;\n eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual.\n\n if (isHighDown) {\n // method, payload, mainType, subType\n updateDirectly(this, updateMethod, batchItem, 'series');\n } else if (cptType) {\n updateDirectly(this, updateMethod, batchItem, cptType.main, cptType.sub);\n }\n }, this);\n\n if (updateMethod !== 'none' && !isHighDown && !cptType) {\n // Still dirty\n if (this[OPTION_UPDATED]) {\n // FIXME Pass payload ?\n prepare(this);\n updateMethods.update.call(this, payload);\n this[OPTION_UPDATED] = false;\n } else {\n updateMethods[updateMethod].call(this, payload);\n }\n } // Follow the rule of action batch\n\n\n if (batched) {\n eventObj = {\n type: actionInfo.event || payloadType,\n escapeConnect: escapeConnect,\n batch: eventObjBatch\n };\n } else {\n eventObj = eventObjBatch[0];\n }\n\n this[IN_MAIN_PROCESS] = false;\n !silent && this._messageCenter.trigger(eventObj.type, eventObj);\n}\n\nfunction flushPendingActions(silent) {\n var pendingActions = this._pendingActions;\n\n while (pendingActions.length) {\n var payload = pendingActions.shift();\n doDispatchAction.call(this, payload, silent);\n }\n}\n\nfunction triggerUpdatedEvent(silent) {\n !silent && this.trigger('updated');\n}\n/**\n * Event `rendered` is triggered when zr\n * rendered. It is useful for realtime\n * snapshot (reflect animation).\n *\n * Event `finished` is triggered when:\n * (1) zrender rendering finished.\n * (2) initial animation finished.\n * (3) progressive rendering finished.\n * (4) no pending action.\n * (5) no delayed setOption needs to be processed.\n */\n\n\nfunction bindRenderedEvent(zr, ecIns) {\n zr.on('rendered', function () {\n ecIns.trigger('rendered'); // The `finished` event should not be triggered repeatly,\n // so it should only be triggered when rendering indeed happend\n // in zrender. (Consider the case that dipatchAction is keep\n // triggering when mouse move).\n\n if ( // Although zr is dirty if initial animation is not finished\n // and this checking is called on frame, we also check\n // animation finished for robustness.\n zr.animation.isFinished() && !ecIns[OPTION_UPDATED] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n}\n/**\n * @param {Object} params\n * @param {number} params.seriesIndex\n * @param {Array|TypedArray} params.data\n */\n\n\nechartsProto.appendData = function (params) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var seriesIndex = params.seriesIndex;\n var ecModel = this.getModel();\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n seriesModel.appendData(params); // Note: `appendData` does not support that update extent of coordinate\n // system, util some scenario require that. In the expected usage of\n // `appendData`, the initial extent of coordinate system should better\n // be fixed by axis `min`/`max` setting or initial data, otherwise if\n // the extent changed while `appendData`, the location of the painted\n // graphic elements have to be changed, which make the usage of\n // `appendData` meaningless.\n\n this._scheduler.unfinished = true;\n};\n/**\n * Register event\n * @method\n */\n\n\nechartsProto.on = createRegisterEventWithLowercaseName('on', false);\nechartsProto.off = createRegisterEventWithLowercaseName('off', false);\nechartsProto.one = createRegisterEventWithLowercaseName('one', false);\n/**\n * Prepare view instances of charts and components\n * @param {module:echarts/model/Global} ecModel\n * @private\n */\n\nfunction prepareView(ecIns, type, ecModel, scheduler) {\n var isComponent = type === 'component';\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n var zr = ecIns._zr;\n var api = ecIns._api;\n\n for (var i = 0; i < viewList.length; i++) {\n viewList[i].__alive = false;\n }\n\n isComponent ? ecModel.eachComponent(function (componentType, model) {\n componentType !== 'series' && doPrepare(model);\n }) : ecModel.eachSeries(doPrepare);\n\n function doPrepare(model) {\n // Consider: id same and type changed.\n var viewId = '_ec_' + model.id + '_' + model.type;\n var view = viewMap[viewId];\n\n if (!view) {\n var classType = parseClassType(model.type);\n var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n view = new Clazz();\n view.init(ecModel, api);\n viewMap[viewId] = view;\n viewList.push(view);\n zr.add(view.group);\n }\n\n model.__viewId = view.__id = viewId;\n view.__alive = true;\n view.__model = model;\n view.group.__ecComponentInfo = {\n mainType: model.mainType,\n index: model.componentIndex\n };\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\n }\n\n for (var i = 0; i < viewList.length;) {\n var view = viewList[i];\n\n if (!view.__alive) {\n !isComponent && view.renderTask.dispose();\n zr.remove(view.group);\n view.dispose(ecModel, api);\n viewList.splice(i, 1);\n delete viewMap[view.__id];\n view.__id = view.group.__ecComponentInfo = null;\n } else {\n i++;\n }\n }\n} // /**\n// * Encode visual infomation from data after data processing\n// *\n// * @param {module:echarts/model/Global} ecModel\n// * @param {object} layout\n// * @param {boolean} [layoutFilter] `true`: only layout,\n// * `false`: only not layout,\n// * `null`/`undefined`: all.\n// * @param {string} taskBaseTag\n// * @private\n// */\n// function startVisualEncoding(ecIns, ecModel, api, payload, layoutFilter) {\n// each(visualFuncs, function (visual, index) {\n// var isLayout = visual.isLayout;\n// if (layoutFilter == null\n// || (layoutFilter === false && !isLayout)\n// || (layoutFilter === true && isLayout)\n// ) {\n// visual.func(ecModel, api, payload);\n// }\n// });\n// }\n\n\nfunction clearColorPalette(ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n}\n\nfunction render(ecIns, ecModel, api, payload) {\n renderComponents(ecIns, ecModel, api, payload);\n each(ecIns._chartsViews, function (chart) {\n chart.__alive = false;\n });\n renderSeries(ecIns, ecModel, api, payload); // Remove groups of unrendered charts\n\n each(ecIns._chartsViews, function (chart) {\n if (!chart.__alive) {\n chart.remove(ecModel, api);\n }\n });\n}\n\nfunction renderComponents(ecIns, ecModel, api, payload, dirtyList) {\n each(dirtyList || ecIns._componentsViews, function (componentView) {\n var componentModel = componentView.__model;\n componentView.render(componentModel, ecModel, api, payload);\n updateZ(componentModel, componentView);\n });\n}\n/**\n * Render each chart and component\n * @private\n */\n\n\nfunction renderSeries(ecIns, ecModel, api, payload, dirtyMap) {\n // Render all charts\n var scheduler = ecIns._scheduler;\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n chartView.__alive = true;\n var renderTask = chartView.renderTask;\n scheduler.updatePayload(renderTask, payload);\n\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n renderTask.dirty();\n }\n\n unfinished |= renderTask.perform(scheduler.getPerformArgs(renderTask));\n chartView.group.silent = !!seriesModel.get('silent');\n updateZ(seriesModel, chartView);\n updateBlend(seriesModel, chartView);\n });\n scheduler.unfinished |= unfinished; // If use hover layer\n\n updateHoverLayerStatus(ecIns, ecModel); // Add aria\n\n aria(ecIns._zr.dom, ecModel);\n}\n\nfunction performPostUpdateFuncs(ecModel, api) {\n each(postUpdateFuncs, function (func) {\n func(ecModel, api);\n });\n}\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n/**\n * @private\n */\n\nechartsProto._initEvents = function () {\n each(MOUSE_EVENT_NAMES, function (eveName) {\n var handler = function (e) {\n var ecModel = this.getModel();\n var el = e.target;\n var params;\n var isGlobalOut = eveName === 'globalout'; // no e.target when 'globalout'.\n\n if (isGlobalOut) {\n params = {};\n } else if (el && el.dataIndex != null) {\n var dataModel = el.dataModel || ecModel.getSeriesByIndex(el.seriesIndex);\n params = dataModel && dataModel.getDataParams(el.dataIndex, el.dataType, el) || {};\n } // If element has custom eventData of components\n else if (el && el.eventData) {\n params = zrUtil.extend({}, el.eventData);\n } // Contract: if params prepared in mouse event,\n // these properties must be specified:\n // {\n // componentType: string (component main type)\n // componentIndex: number\n // }\n // Otherwise event query can not work.\n\n\n if (params) {\n var componentType = params.componentType;\n var componentIndex = params.componentIndex; // Special handling for historic reason: when trigger by\n // markLine/markPoint/markArea, the componentType is\n // 'markLine'/'markPoint'/'markArea', but we should better\n // enable them to be queried by seriesIndex, since their\n // option is set in each series.\n\n if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n componentType = 'series';\n componentIndex = params.seriesIndex;\n }\n\n var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n var view = model && this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n params.event = e;\n params.type = eveName;\n this._ecEventProcessor.eventInfo = {\n targetEl: el,\n packedEvent: params,\n model: model,\n view: view\n };\n this.trigger(eveName, params);\n }\n }; // Consider that some component (like tooltip, brush, ...)\n // register zr event handler, but user event handler might\n // do anything, such as call `setOption` or `dispatchAction`,\n // which probably update any of the content and probably\n // cause problem if it is called previous other inner handlers.\n\n\n handler.zrEventfulCallAtLast = true;\n\n this._zr.on(eveName, handler, this);\n }, this);\n each(eventActionMap, function (actionType, eventType) {\n this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, this);\n }, this);\n};\n/**\n * @return {boolean}\n */\n\n\nechartsProto.isDisposed = function () {\n return this._disposed;\n};\n/**\n * Clear\n */\n\n\nechartsProto.clear = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this.setOption({\n series: []\n }, true);\n};\n/**\n * Dispose instance\n */\n\n\nechartsProto.dispose = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._disposed = true;\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n var api = this._api;\n var ecModel = this._model;\n each(this._componentsViews, function (component) {\n component.dispose(ecModel, api);\n });\n each(this._chartsViews, function (chart) {\n chart.dispose(ecModel, api);\n }); // Dispose after all views disposed\n\n this._zr.dispose();\n\n delete instances[this.id];\n};\n\nzrUtil.mixin(ECharts, Eventful);\n\nfunction disposedWarning(id) {}\n\nfunction updateHoverLayerStatus(ecIns, ecModel) {\n var zr = ecIns._zr;\n var storage = zr.storage;\n var elCount = 0;\n storage.traverse(function (el) {\n elCount++;\n });\n\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.preventUsingHoverLayer) {\n return;\n }\n\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n if (chartView.__alive) {\n chartView.group.traverse(function (el) {\n // Don't switch back.\n el.useHoverLayer = true;\n });\n }\n });\n }\n}\n/**\n * Update chart progressive and blend.\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n chartView.group.traverse(function (el) {\n // FIXME marker and other components\n if (!el.isGroup) {\n // Only set if blendMode is changed. In case element is incremental and don't wan't to rerender.\n if (el.style.blend !== blendMode) {\n el.setStyle('blend', blendMode);\n }\n }\n\n if (el.eachPendingDisplayable) {\n el.eachPendingDisplayable(function (displayable) {\n displayable.setStyle('blend', blendMode);\n });\n }\n });\n}\n/**\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateZ(model, view) {\n var z = model.get('z');\n var zlevel = model.get('zlevel'); // Set z and zlevel\n\n view.group.traverse(function (el) {\n if (el.type !== 'group') {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n }\n });\n}\n\nfunction createExtensionAPI(ecInstance) {\n var coordSysMgr = ecInstance._coordSysMgr;\n return zrUtil.extend(new ExtensionAPI(ecInstance), {\n // Inject methods\n getCoordinateSystems: zrUtil.bind(coordSysMgr.getCoordinateSystems, coordSysMgr),\n getComponentByElement: function (el) {\n while (el) {\n var modelInfo = el.__ecComponentInfo;\n\n if (modelInfo != null) {\n return ecInstance._model.getComponent(modelInfo.mainType, modelInfo.index);\n }\n\n el = el.parent;\n }\n }\n });\n}\n/**\n * @class\n * Usage of query:\n * `chart.on('click', query, handler);`\n * The `query` can be:\n * + The component type query string, only `mainType` or `mainType.subType`,\n * like: 'xAxis', 'series', 'xAxis.category' or 'series.line'.\n * + The component query object, like:\n * `{seriesIndex: 2}`, `{seriesName: 'xx'}`, `{seriesId: 'some'}`,\n * `{xAxisIndex: 2}`, `{xAxisName: 'xx'}`, `{xAxisId: 'some'}`.\n * + The data query object, like:\n * `{dataIndex: 123}`, `{dataType: 'link'}`, `{name: 'some'}`.\n * + The other query object (cmponent customized query), like:\n * `{element: 'some'}` (only available in custom series).\n *\n * Caveat: If a prop in the `query` object is `null/undefined`, it is the\n * same as there is no such prop in the `query` object.\n */\n\n\nfunction EventProcessor() {\n // These info required: targetEl, packedEvent, model, view\n this.eventInfo;\n}\n\nEventProcessor.prototype = {\n constructor: EventProcessor,\n normalizeQuery: function (query) {\n var cptQuery = {};\n var dataQuery = {};\n var otherQuery = {}; // `query` is `mainType` or `mainType.subType` of component.\n\n if (zrUtil.isString(query)) {\n var condCptType = parseClassType(query); // `.main` and `.sub` may be ''.\n\n cptQuery.mainType = condCptType.main || null;\n cptQuery.subType = condCptType.sub || null;\n } // `query` is an object, convert to {mainType, index, name, id}.\n else {\n // `xxxIndex`, `xxxName`, `xxxId`, `name`, `dataIndex`, `dataType` is reserved,\n // can not be used in `compomentModel.filterForExposedEvent`.\n var suffixes = ['Index', 'Name', 'Id'];\n var dataKeys = {\n name: 1,\n dataIndex: 1,\n dataType: 1\n };\n zrUtil.each(query, function (val, key) {\n var reserved = false;\n\n for (var i = 0; i < suffixes.length; i++) {\n var propSuffix = suffixes[i];\n var suffixPos = key.lastIndexOf(propSuffix);\n\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n var mainType = key.slice(0, suffixPos); // Consider `dataIndex`.\n\n if (mainType !== 'data') {\n cptQuery.mainType = mainType;\n cptQuery[propSuffix.toLowerCase()] = val;\n reserved = true;\n }\n }\n }\n\n if (dataKeys.hasOwnProperty(key)) {\n dataQuery[key] = val;\n reserved = true;\n }\n\n if (!reserved) {\n otherQuery[key] = val;\n }\n });\n }\n\n return {\n cptQuery: cptQuery,\n dataQuery: dataQuery,\n otherQuery: otherQuery\n };\n },\n filter: function (eventType, query, args) {\n // They should be assigned before each trigger call.\n var eventInfo = this.eventInfo;\n\n if (!eventInfo) {\n return true;\n }\n\n var targetEl = eventInfo.targetEl;\n var packedEvent = eventInfo.packedEvent;\n var model = eventInfo.model;\n var view = eventInfo.view; // For event like 'globalout'.\n\n if (!model || !view) {\n return true;\n }\n\n var cptQuery = query.cptQuery;\n var dataQuery = query.dataQuery;\n return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n function check(query, host, prop, propOnHost) {\n return query[prop] == null || host[propOnHost || prop] === query[prop];\n }\n },\n afterTrigger: function () {\n // Make sure the eventInfo wont be used in next trigger.\n this.eventInfo = null;\n }\n};\n/**\n * @type {Object} key: actionType.\n * @inner\n */\n\nvar actions = {};\n/**\n * Map eventType to actionType\n * @type {Object}\n */\n\nvar eventActionMap = {};\n/**\n * Data processor functions of each stage\n * @type {Array.>}\n * @inner\n */\n\nvar dataProcessorFuncs = [];\n/**\n * @type {Array.}\n * @inner\n */\n\nvar optionPreprocessorFuncs = [];\n/**\n * @type {Array.}\n * @inner\n */\n\nvar postUpdateFuncs = [];\n/**\n * Visual encoding functions of each stage\n * @type {Array.>}\n */\n\nvar visualFuncs = [];\n/**\n * Theme storage\n * @type {Object.}\n */\n\nvar themeStorage = {};\n/**\n * Loading effects\n */\n\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = new Date() - 0;\nvar groupIdBase = new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\n\nfunction enableConnect(chart) {\n var STATUS_PENDING = 0;\n var STATUS_UPDATING = 1;\n var STATUS_UPDATED = 2;\n var STATUS_KEY = '__connectUpdateStatus';\n\n function updateConnectedChartsStatus(charts, status) {\n for (var i = 0; i < charts.length; i++) {\n var otherChart = charts[i];\n otherChart[STATUS_KEY] = status;\n }\n }\n\n each(eventActionMap, function (actionType, eventType) {\n chart._messageCenter.on(eventType, function (event) {\n if (connectedGroups[chart.group] && chart[STATUS_KEY] !== STATUS_PENDING) {\n if (event && event.escapeConnect) {\n return;\n }\n\n var action = chart.makeActionFromEvent(event);\n var otherCharts = [];\n each(instances, function (otherChart) {\n if (otherChart !== chart && otherChart.group === chart.group) {\n otherCharts.push(otherChart);\n }\n });\n updateConnectedChartsStatus(otherCharts, STATUS_PENDING);\n each(otherCharts, function (otherChart) {\n if (otherChart[STATUS_KEY] !== STATUS_UPDATING) {\n otherChart.dispatchAction(action);\n }\n });\n updateConnectedChartsStatus(otherCharts, STATUS_UPDATED);\n }\n });\n });\n}\n/**\n * @param {HTMLElement} dom\n * @param {Object} [theme]\n * @param {Object} opts\n * @param {number} [opts.devicePixelRatio] Use window.devicePixelRatio by default\n * @param {string} [opts.renderer] Can choose 'canvas' or 'svg' to render the chart.\n * @param {number} [opts.width] Use clientWidth of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Use clientHeight of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n */\n\n\nfunction init(dom, theme, opts) {\n var existInstance = getInstanceByDom(dom);\n\n if (existInstance) {\n return existInstance;\n }\n\n var chart = new ECharts(dom, theme, opts);\n chart.id = 'ec_' + idBase++;\n instances[chart.id] = chart;\n modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n enableConnect(chart);\n return chart;\n}\n/**\n * @return {string|Array.} groupId\n */\n\n\nfunction connect(groupId) {\n // Is array of charts\n if (zrUtil.isArray(groupId)) {\n var charts = groupId;\n groupId = null; // If any chart has group\n\n each(charts, function (chart) {\n if (chart.group != null) {\n groupId = chart.group;\n }\n });\n groupId = groupId || 'g_' + groupIdBase++;\n each(charts, function (chart) {\n chart.group = groupId;\n });\n }\n\n connectedGroups[groupId] = true;\n return groupId;\n}\n/**\n * @DEPRECATED\n * @return {string} groupId\n */\n\n\nfunction disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\n/**\n * @return {string} groupId\n */\n\n\nvar disconnect = disConnect;\n/**\n * Dispose a chart instance\n * @param {module:echarts~ECharts|HTMLDomElement|string} chart\n */\n\nfunction dispose(chart) {\n if (typeof chart === 'string') {\n chart = instances[chart];\n } else if (!(chart instanceof ECharts)) {\n // Try to treat as dom\n chart = getInstanceByDom(chart);\n }\n\n if (chart instanceof ECharts && !chart.isDisposed()) {\n chart.dispose();\n }\n}\n/**\n * @param {HTMLElement} dom\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceByDom(dom) {\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\n/**\n * @param {string} key\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceById(key) {\n return instances[key];\n}\n/**\n * Register theme\n */\n\n\nfunction registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\n/**\n * Register option preprocessor\n * @param {Function} preprocessorFunc\n */\n\n\nfunction registerPreprocessor(preprocessorFunc) {\n optionPreprocessorFuncs.push(preprocessorFunc);\n}\n/**\n * @param {number} [priority=1000]\n * @param {Object|Function} processor\n */\n\n\nfunction registerProcessor(priority, processor) {\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_FILTER);\n}\n/**\n * Register postUpdater\n * @param {Function} postUpdateFunc\n */\n\n\nfunction registerPostUpdate(postUpdateFunc) {\n postUpdateFuncs.push(postUpdateFunc);\n}\n/**\n * Usage:\n * registerAction('someAction', 'someEvent', function () { ... });\n * registerAction('someAction', function () { ... });\n * registerAction(\n * {type: 'someAction', event: 'someEvent', update: 'updateView'},\n * function () { ... }\n * );\n *\n * @param {(string|Object)} actionInfo\n * @param {string} actionInfo.type\n * @param {string} [actionInfo.event]\n * @param {string} [actionInfo.update]\n * @param {string} [eventName]\n * @param {Function} action\n */\n\n\nfunction registerAction(actionInfo, eventName, action) {\n if (typeof eventName === 'function') {\n action = eventName;\n eventName = '';\n }\n\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n event: eventName\n }][0]; // Event name is all lowercase\n\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event; // Validate action type and event name.\n\n assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n if (!actions[actionType]) {\n actions[actionType] = {\n action: action,\n actionInfo: actionInfo\n };\n }\n\n eventActionMap[eventName] = actionType;\n}\n/**\n * @param {string} type\n * @param {*} CoordinateSystem\n */\n\n\nfunction registerCoordinateSystem(type, CoordinateSystem) {\n CoordinateSystemManager.register(type, CoordinateSystem);\n}\n/**\n * Get dimensions of specified coordinate system.\n * @param {string} type\n * @return {Array.}\n */\n\n\nfunction getCoordinateSystemDimensions(type) {\n var coordSysCreator = CoordinateSystemManager.get(type);\n\n if (coordSysCreator) {\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n }\n}\n/**\n * Layout is a special stage of visual encoding\n * Most visual encoding like color are common for different chart\n * But each chart has it's own layout algorithm\n *\n * @param {number} [priority=1000]\n * @param {Function} layoutTask\n */\n\n\nfunction registerLayout(priority, layoutTask) {\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n/**\n * @param {number} [priority=3000]\n * @param {module:echarts/stream/Task} visualTask\n */\n\n\nfunction registerVisual(priority, visualTask) {\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n/**\n * @param {Object|Function} fn: {seriesType, createOnAllSeries, performRawSeries, reset}\n */\n\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n if (isFunction(priority) || isObject(priority)) {\n fn = priority;\n priority = defaultPriority;\n }\n\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n stageHandler.__prio = priority;\n stageHandler.__raw = fn;\n targetList.push(stageHandler);\n return stageHandler;\n}\n/**\n * @param {string} name\n */\n\n\nfunction registerLoading(name, loadingFx) {\n loadingEffects[name] = loadingFx;\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentModel(opts\n/*, superClass*/\n) {\n // var Clazz = ComponentModel;\n // if (superClass) {\n // var classType = parseClassType(superClass);\n // Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n // }\n return ComponentModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentView(opts\n/*, superClass*/\n) {\n // var Clazz = ComponentView;\n // if (superClass) {\n // var classType = parseClassType(superClass);\n // Clazz = ComponentView.getClass(classType.main, classType.sub, true);\n // }\n return ComponentView.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendSeriesModel(opts\n/*, superClass*/\n) {\n // var Clazz = SeriesModel;\n // if (superClass) {\n // superClass = 'series.' + superClass.replace('series.', '');\n // var classType = parseClassType(superClass);\n // Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n // }\n return SeriesModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendChartView(opts\n/*, superClass*/\n) {\n // var Clazz = ChartView;\n // if (superClass) {\n // superClass = superClass.replace('series.', '');\n // var classType = parseClassType(superClass);\n // Clazz = ChartView.getClass(classType.main, true);\n // }\n return ChartView.extend(opts);\n}\n/**\n * ZRender need a canvas context to do measureText.\n * But in node environment canvas may be created by node-canvas.\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\n *\n * Be careful of using it in the browser.\n *\n * @param {Function} creator\n * @example\n * var Canvas = require('canvas');\n * var echarts = require('echarts');\n * echarts.setCanvasCreator(function () {\n * // Small size is enough.\n * return new Canvas(32, 32);\n * });\n */\n\n\nfunction setCanvasCreator(creator) {\n zrUtil.$override('createCanvas', creator);\n}\n/**\n * @param {string} mapName\n * @param {Array.|Object|string} geoJson\n * @param {Object} [specialAreas]\n *\n * @example GeoJSON\n * $.get('USA.json', function (geoJson) {\n * echarts.registerMap('USA', geoJson);\n * // Or\n * echarts.registerMap('USA', {\n * geoJson: geoJson,\n * specialAreas: {}\n * })\n * });\n *\n * $.get('airport.svg', function (svg) {\n * echarts.registerMap('airport', {\n * svg: svg\n * }\n * });\n *\n * echarts.registerMap('eu', [\n * {svg: eu-topographic.svg},\n * {geoJSON: eu.json}\n * ])\n */\n\n\nfunction registerMap(mapName, geoJson, specialAreas) {\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\n/**\n * @param {string} mapName\n * @return {Object}\n */\n\n\nfunction getMap(mapName) {\n // For backward compatibility, only return the first one.\n var records = mapDataStorage.retrieveMap(mapName);\n return records && records[0] && {\n geoJson: records[0].geoJSON,\n specialAreas: records[0].specialAreas\n };\n}\n\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesColor);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault); // Default actions\n\nregisterAction({\n type: 'highlight',\n event: 'highlight',\n update: 'highlight'\n}, zrUtil.noop);\nregisterAction({\n type: 'downplay',\n event: 'downplay',\n update: 'downplay'\n}, zrUtil.noop); // Default theme\n\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will\n// be mounted on `echarts` is the extension `dataTool` is imported.\n\nvar dataTool = {};\nexports.version = version;\nexports.dependencies = dependencies;\nexports.PRIORITY = PRIORITY;\nexports.init = init;\nexports.connect = connect;\nexports.disConnect = disConnect;\nexports.disconnect = disconnect;\nexports.dispose = dispose;\nexports.getInstanceByDom = getInstanceByDom;\nexports.getInstanceById = getInstanceById;\nexports.registerTheme = registerTheme;\nexports.registerPreprocessor = registerPreprocessor;\nexports.registerProcessor = registerProcessor;\nexports.registerPostUpdate = registerPostUpdate;\nexports.registerAction = registerAction;\nexports.registerCoordinateSystem = registerCoordinateSystem;\nexports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\nexports.registerLayout = registerLayout;\nexports.registerVisual = registerVisual;\nexports.registerLoading = registerLoading;\nexports.extendComponentModel = extendComponentModel;\nexports.extendComponentView = extendComponentView;\nexports.extendSeriesModel = extendSeriesModel;\nexports.extendChartView = extendChartView;\nexports.setCanvasCreator = setCanvasCreator;\nexports.registerMap = registerMap;\nexports.getMap = getMap;\nexports.dataTool = dataTool;\nvar ___ec_export = require(\"./export\");\n(function () {\n for (var key in ___ec_export) {\n if (___ec_export.hasOwnProperty(key)) {\n exports[key] = ___ec_export[key];\n }\n }\n})();","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"../graphic/helper/text\");\n\nvar Text = require(\"../graphic/Text\");\n\n// TODO\n// 1. shadow\n// 2. Image: sx, sy, sw, sh\nvar CMD = PathProxy.CMD;\nvar arrayJoin = Array.prototype.join;\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\n\nfunction round4(val) {\n return mathRound(val * 1e4) / 1e4;\n}\n\nfunction isAroundZero(val) {\n return val < EPSILON && val > -EPSILON;\n}\n\nfunction pathHasFill(style, isText) {\n var fill = isText ? style.textFill : style.fill;\n return fill != null && fill !== NONE;\n}\n\nfunction pathHasStroke(style, isText) {\n var stroke = isText ? style.textStroke : style.stroke;\n return stroke != null && stroke !== NONE;\n}\n\nfunction setTransform(svgEl, m) {\n if (m) {\n attr(svgEl, 'transform', 'matrix(' + arrayJoin.call(m, ',') + ')');\n }\n}\n\nfunction attr(el, key, val) {\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\n // Don't set attribute for gradient, since it need new dom nodes\n el.setAttribute(key, val);\n }\n}\n\nfunction attrXLink(el, key, val) {\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\n\nfunction bindStyle(svgEl, style, isText, el) {\n if (pathHasFill(style, isText)) {\n var fill = isText ? style.textFill : style.fill;\n fill = fill === 'transparent' ? NONE : fill;\n attr(svgEl, 'fill', fill);\n attr(svgEl, 'fill-opacity', style.fillOpacity != null ? style.fillOpacity * style.opacity : style.opacity);\n } else {\n attr(svgEl, 'fill', NONE);\n }\n\n if (pathHasStroke(style, isText)) {\n var stroke = isText ? style.textStroke : style.stroke;\n stroke = stroke === 'transparent' ? NONE : stroke;\n attr(svgEl, 'stroke', stroke);\n var strokeWidth = isText ? style.textStrokeWidth : style.lineWidth;\n var strokeScale = !isText && style.strokeNoScale ? el.getLineScale() : 1;\n attr(svgEl, 'stroke-width', strokeWidth / strokeScale); // stroke then fill for text; fill then stroke for others\n\n attr(svgEl, 'paint-order', isText ? 'stroke' : 'fill');\n attr(svgEl, 'stroke-opacity', style.strokeOpacity != null ? style.strokeOpacity : style.opacity);\n var lineDash = style.lineDash;\n\n if (lineDash) {\n attr(svgEl, 'stroke-dasharray', style.lineDash.join(','));\n attr(svgEl, 'stroke-dashoffset', mathRound(style.lineDashOffset || 0));\n } else {\n attr(svgEl, 'stroke-dasharray', '');\n } // PENDING\n\n\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit);\n } else {\n attr(svgEl, 'stroke', NONE);\n }\n}\n/***************************************************\n * PATH\n **************************************************/\n\n\nfunction pathDataToString(path) {\n var str = [];\n var data = path.data;\n var dataLength = path.len();\n\n for (var i = 0; i < dataLength;) {\n var cmd = data[i++];\n var cmdStr = '';\n var nData = 0;\n\n switch (cmd) {\n case CMD.M:\n cmdStr = 'M';\n nData = 2;\n break;\n\n case CMD.L:\n cmdStr = 'L';\n nData = 2;\n break;\n\n case CMD.Q:\n cmdStr = 'Q';\n nData = 4;\n break;\n\n case CMD.C:\n cmdStr = 'C';\n nData = 6;\n break;\n\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n var psi = data[i++];\n var clockwise = data[i++];\n var dThetaPositive = Math.abs(dTheta);\n var isCircle = isAroundZero(dThetaPositive - PI2) || (clockwise ? dTheta >= PI2 : -dTheta >= PI2); // Mapping to 0~2PI\n\n var unifiedTheta = dTheta > 0 ? dTheta % PI2 : dTheta % PI2 + PI2;\n var large = false;\n\n if (isCircle) {\n large = true;\n } else if (isAroundZero(dThetaPositive)) {\n large = false;\n } else {\n large = unifiedTheta >= PI === !!clockwise;\n }\n\n var x0 = round4(cx + rx * mathCos(theta));\n var y0 = round4(cy + ry * mathSin(theta)); // It will not draw if start point and end point are exactly the same\n // We need to shift the end point with a small value\n // FIXME A better way to draw circle ?\n\n if (isCircle) {\n if (clockwise) {\n dTheta = PI2 - 1e-4;\n } else {\n dTheta = -PI2 + 1e-4;\n }\n\n large = true;\n\n if (i === 9) {\n // Move to (x0, y0) only when CMD.A comes at the\n // first position of a shape.\n // For instance, when drawing a ring, CMD.A comes\n // after CMD.M, so it's unnecessary to move to\n // (x0, y0).\n str.push('M', x0, y0);\n }\n }\n\n var x = round4(cx + rx * mathCos(theta + dTheta));\n var y = round4(cy + ry * mathSin(theta + dTheta)); // FIXME Ellipse\n\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n break;\n\n case CMD.Z:\n cmdStr = 'Z';\n break;\n\n case CMD.R:\n var x = round4(data[i++]);\n var y = round4(data[i++]);\n var w = round4(data[i++]);\n var h = round4(data[i++]);\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\n break;\n }\n\n cmdStr && str.push(cmdStr);\n\n for (var j = 0; j < nData; j++) {\n // PENDING With scale\n str.push(round4(data[i++]));\n }\n }\n\n return str.join(' ');\n}\n\nvar svgPath = {};\n\nsvgPath.brush = function (el) {\n var style = el.style;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('path');\n el.__svgEl = svgEl;\n }\n\n if (!el.path) {\n el.createPathProxy();\n }\n\n var path = el.path;\n\n if (el.__dirtyPath) {\n path.beginPath();\n path.subPixelOptimize = false;\n el.buildPath(path, el.shape);\n el.__dirtyPath = false;\n var pathStr = pathDataToString(path);\n\n if (pathStr.indexOf('NaN') < 0) {\n // Ignore illegal path, which may happen such in out-of-range\n // data in Calendar series.\n attr(svgEl, 'd', pathStr);\n }\n }\n\n bindStyle(svgEl, style, false, el);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * IMAGE\n **************************************************/\n\n\nvar svgImage = {};\n\nsvgImage.brush = function (el) {\n var style = el.style;\n var image = style.image;\n\n if (image instanceof HTMLImageElement) {\n var src = image.src;\n image = src;\n }\n\n if (!image) {\n return;\n }\n\n var x = style.x || 0;\n var y = style.y || 0;\n var dw = style.width;\n var dh = style.height;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('image');\n el.__svgEl = svgEl;\n }\n\n if (image !== el.__imageSrc) {\n attrXLink(svgEl, 'href', image); // Caching image src\n\n el.__imageSrc = image;\n }\n\n attr(svgEl, 'width', dw);\n attr(svgEl, 'height', dh);\n attr(svgEl, 'x', x);\n attr(svgEl, 'y', y);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * TEXT\n **************************************************/\n\n\nvar svgText = {};\n\nvar _tmpTextHostRect = new BoundingRect();\n\nvar _tmpTextBoxPos = {};\nvar _tmpTextTransform = [];\nvar TEXT_ALIGN_TO_ANCHRO = {\n left: 'start',\n right: 'end',\n center: 'middle',\n middle: 'middle'\n};\n/**\n * @param {module:zrender/Element} el\n * @param {Object|boolean} [hostRect] {x, y, width, height}\n * If set false, rect text is not used.\n */\n\nvar svgTextDrawRectText = function (el, hostRect) {\n var style = el.style;\n var elTransform = el.transform;\n var needTransformTextByHostEl = el instanceof Text || style.transformText;\n el.__dirty && textHelper.normalizeTextStyle(style, true);\n var text = style.text; // Convert to string\n\n text != null && (text += '');\n\n if (!textHelper.needDrawText(text, style)) {\n return;\n } // render empty text for svg if no text but need draw text.\n\n\n text == null && (text = ''); // Follow the setting in the canvas renderer, if not transform the\n // text, transform the hostRect, by which the text is located.\n\n if (!needTransformTextByHostEl && elTransform) {\n _tmpTextHostRect.copy(hostRect);\n\n _tmpTextHostRect.applyTransform(elTransform);\n\n hostRect = _tmpTextHostRect;\n }\n\n var textSvgEl = el.__textSvgEl;\n\n if (!textSvgEl) {\n textSvgEl = createElement('text');\n el.__textSvgEl = textSvgEl;\n } // style.font has been normalized by `normalizeTextStyle`.\n\n\n var textSvgElStyle = textSvgEl.style;\n var font = style.font || textContain.DEFAULT_FONT;\n var computedFont = textSvgEl.__computedFont;\n\n if (font !== textSvgEl.__styleFont) {\n textSvgElStyle.font = textSvgEl.__styleFont = font; // The computedFont might not be the orginal font if it is illegal font.\n\n computedFont = textSvgEl.__computedFont = textSvgElStyle.font;\n }\n\n var textPadding = style.textPadding;\n var textLineHeight = style.textLineHeight;\n var contentBlock = el.__textCotentBlock;\n\n if (!contentBlock || el.__dirtyText) {\n contentBlock = el.__textCotentBlock = textContain.parsePlainText(text, computedFont, textPadding, textLineHeight, style.truncate);\n }\n\n var outerHeight = contentBlock.outerHeight;\n var lineHeight = contentBlock.lineHeight;\n textHelper.getBoxPosition(_tmpTextBoxPos, el, style, hostRect);\n var baseX = _tmpTextBoxPos.baseX;\n var baseY = _tmpTextBoxPos.baseY;\n var textAlign = _tmpTextBoxPos.textAlign || 'left';\n var textVerticalAlign = _tmpTextBoxPos.textVerticalAlign;\n setTextTransform(textSvgEl, needTransformTextByHostEl, elTransform, style, hostRect, baseX, baseY);\n var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign);\n var textX = baseX;\n var textY = boxY; // TODO needDrawBg\n\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n textY += textPadding[0];\n } // `textBaseline` is set as 'middle'.\n\n\n textY += lineHeight / 2;\n bindStyle(textSvgEl, style, true, el); // FIXME\n // Add a