@ecan-bi/indicator-library 1.1.10 → 1.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/editor.worker-02df2e61.js +1 -1
- package/dist/assets/json.worker-867823a6.js +1 -1
- package/dist/assets/ts.worker-7254b425.js +1 -1
- package/dist/index-2d12b4f2.mjs +76217 -0
- package/dist/index-2d12b4f2.mjs.map +1 -0
- package/dist/index-37849a29.mjs +3922 -0
- package/dist/index-37849a29.mjs.map +1 -0
- package/dist/index.es.js +11 -18955
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +388 -17
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +2 -2
- package/package.json +1 -1
- package/types/indicator/indicator-library/IndicatorLibrary.vue.d.ts +2 -2
- package/types/utils/loadAsyncComponent.d.ts +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-37849a29.mjs","sources":["../src/utils/withInstall.ts","../src/utils/constant.ts","../src/indicator/indicator-library/data-config/style-config-group/chart-props/bar/props.ts","../src/indicator/indicator-library/data-config/style-config-group/chart-props/line/props.ts","../src/indicator/indicator-library/data-config/style-config-group/chart-props/pie/props.ts","../src/indicator/indicator-library/data-config/style-config-group/chart-props/custom-graph/props.ts","../src/indicator/indicator-library/data-config/style-config-group/chart-props/combo-graph/props.ts","../src/indicator/indicator-library/data-config/style-config-group/chart-props/index.ts","../src/indicator/indicator-library/data-config/style-config-group/table-props/props.ts","../src/indicator/indicator-library/data-list/DataViewList.vue","../src/indicator/indicator-library/data-list/DataViewList.vue","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons-vue/es/insert-css.js","../node_modules/@ant-design/icons-vue/es/utils.js","../node_modules/@ant-design/icons-vue/es/components/IconBase.js","../node_modules/@ant-design/icons-vue/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons-vue/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js","../node_modules/@ecan-bi/tools/lib/index.es.js","../src/utils/util.ts","../src/indicator/indicator-library/data-list/IndSourceList.vue","../src/indicator/indicator-library/data-list/IndSourceList.vue","../src/indicator/indicator-library/data-list/DataSourceList.vue","../src/indicator/indicator-library/data-list/DataSourceList.vue","../src/indicator/indicator-library/data-list/DataList.vue","../src/indicator/indicator-library/data-list/DataList.vue","../src/utils/loadAsyncComponent.ts","../src/indicator/indicator-library/IndicatorLibrary.vue","../src/indicator/indicator-library/IndicatorLibrary.vue","../src/indicator/indicator-library/index.ts","../src/hooks/useIndicatorData.ts","../src/indicator/chart-graph/ChartGraph.vue","../src/indicator/chart-graph/ChartGraph.vue","../src/indicator/chart-graph/index.ts","../src/index.ts"],"sourcesContent":["// import { NOOP } from '@vue/shared'\n// import { Plugin } from 'vue'\n\n// export type SFCWithInstall<T> = T & Plugin\n\n// export const withInstall = <T, E extends Record<string, any>>(\n// main: T,\n// extra?: E\n// ) => {\n// (main as SFCWithInstall<T>).install = (app): void => {\n// for (const comp of [main, ...Object.values(extra ?? {})]) {\n// app.component(comp.name, comp)\n// }\n// }\n\n// if (extra) {\n// for (const [key, comp] of Object.entries(extra)) {\n// (main as any)[key] = comp\n// }\n// }\n// return main as SFCWithInstall<T> & E\n// }\n\n// export const withInstallFunction = <T>(fn: T, name: string) => {\n// (fn as SFCWithInstall<T>).install = (app) => {\n// app.config.globalProperties[name] = fn\n// }\n\n// return fn as SFCWithInstall<T>\n// }\n\n// export const withNoopInstall = <T>(component: T) => {\n// (component as SFCWithInstall<T>).install = NOOP\n\n// return component as SFCWithInstall<T>\n// }\nexport const withInstall = (comp) => {\n comp.install = (app) => {\n // 注册组件\n app.component(comp.name, comp)\n }\n return comp\n}\n","export const REQUEST = '$request'\n// @ts-ignore\nexport const INDICATOR_URL = window?.config?.indicatorURL || ''\n\nexport const INDICATOR_TOKEN = 'INDICATOR_TOKEN'\n\nexport const CONTAINER_TYPES = ['tabs', 'border']\n\nexport const CACHE_STEP = 'CACHE_STEP'\n\nexport const UPDATE_SNAPSHOT_LIST = 'UPDATE_SNAPSHOT_LIST'\n\nexport const REQUEST_MODEL = 'REQUEST_MODEL'\n\nexport const DATA_LIST = 'DATA_LIST'\n\nexport const SELECTED_COMPONENT = 'SELECTED_COMPONENT'\n\nexport const GRAPHIC_CONFIG = 'GRAPHIC_CONFIG'\n\nexport const UPDATE_GRAPHIC_CONFIG = 'UPDATE_GRAPHIC_CONFIG'\n\nexport const SHOW_STYLE_CONFIG = 'SHOW_STYLE_CONFIG'\n\nexport const REFRESH_DATA = 'REFRESH_DATA'\n\nexport const CHARTS_OPTIONS = 'CHARTS_OPTIONS'\n\nexport const TABLE_OPTIONS = 'TABLE_OPTIONS'\n\nexport const ZOOM_FONT_SIZE = 18\n\nexport const UPDATE_CHARTS_OPTIONS = 'UPDATE_CHARTS_OPTIONS'\n\nexport const UPDATE_TABLE_OPTIONS = 'UPDATE_TABLE_OPTIONS'\n\nexport const SOURCE_TYPE = 'SOURCE_TYPE'\n\nexport const CHANGE_CONDITION = 'CHANGE_CONDITION'\n\nexport const DATA_VIEW_COLUMNS = 'DATA_VIEW_COLUMNS'\n\nexport const RENDER_USED_COMPONENTS = 'RENDER_USED_COMPONENTS'\n\nexport const UPDATE_USED_COMPONENT = 'UPDATE_USED_COMPONENT'\n\nexport const UPDATE_COMPONENTS_CONFIG = 'UPDATE_COMPONENTS_CONFIG'\n\nexport const MAP_ATTRIBUTE_PROPS = 'MAP_ATTRIBUTE_PROPS'\n\nexport const PAGE_CONFIG = 'PAGE_CONFIG'\n\nexport const IS_PIVOT_TABLE = 'IS_PIVOT_TABLE'\n\nexport const IS_IFRAME_MODE = 'IS_IFRAME_MODE'\n","export interface BarProps {\n name: String,\n type: String,\n width: string // 图表宽度\n height: string // 图表高度\n titleText: string\n titleSubtext: string\n titleFontSize: string\n titleColor: string\n fontWeight: number\n textAlign: 'left' | 'right' | 'center'\n colors: string []\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisLabelInterval: number\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisSplitAreaShow: boolean // x轴展示分割区域\n xAxisSplitLineInterval: number // x轴分割线间隔\n xAxisLabelColor: string // x轴名称颜色\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // x轴名称溢出操作\n xAxisLabelRotate: number // x轴名称旋转\n xAxisLineShow: boolean // x轴线显示\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n xAxisLabelFormatter: string\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n xAxisInverse: boolean\n xAxisMinInterval: number\n yAxisMinInterval: number\n yAxisInverse: boolean\n yAxisLabelWidth: number | undefined // y轴名称宽度\n yAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // y轴名称溢出操作\n yAxisLabelRotate: number // y轴名称旋转\n yAxisSplitLineShow: boolean // y轴展示分割线\n yAxisSplitAreaShow: boolean // y轴展示分割区域\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLabelFormatter: string\n yAxisLineAlwaysDisplay: boolean // 总是显示y轴\n valueTypeDataFieldNames: any\n keyTypeDataFieldNames: any\n dataFieldConfigType: 'key' | 'value'\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string,\n tooltipPosition: string\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n barWidth: string\n graphicConfig: { [key:string]: any }\n toolboxShow: boolean\n toolboxLocation: boolean\n toolboxDownloadShow:boolean\n toolboxDataZoomShow: boolean\n toolboxInfoShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top'| 'middle'| 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n isUseHorizontalAxis: boolean\n axisInverse: boolean\n isStack: boolean\n stackColumns: string[],\n labelShow: boolean\n labelFontSize: string\n labelPosition: 'inside' | 'top' | 'bottom' | 'right' | 'left'\n labelColor: string\n labelWidth: number\n labelOverflow: 'none' | 'truncate' | 'break'\n labelFormatter: string\n gradientShow: boolean // 柱状图渐变设置\n gradientColors: string []\n gradientOffset: number\n barBorderRadius: string // 柱状图圆角设置\n yAxisLabelShow: boolean // 是否显示y轴坐标轴刻度标签\n yAxisSplitLineType: 'solid' | 'dashed' | 'dotted' // 分割线类型\n xAxisSplitLineType: 'solid' | 'dashed' | 'dotted' // 分割线类型\n legendItemGap: number\n legendItemWidth: number\n legendItemHeight: number\n showBarBackground: boolean\n legendType: string\n legendFontSize: string\n xAxisLabelFontSize: string\n yAxisLabelFontSize: string\n graphicType: string\n isShowMarkLine: boolean\n markLineType: 'min' | 'max' | 'average' | 'median'\n legendFormatter: string\n legendWidth: number | null\n legendHeight: number | null\n legendTextWidth: number | null\n legendScroll: boolean\n yAxisName: string\n xAxisName: string\n defaultRangeValue: boolean\n startValue: string\n endValue: string\n xAxisMaxValue: number\n yAxisMaxValue: number\n colorsType: string\n}\n\nexport const barProps: BarProps = {\n name: '柱状图',\n type: 'bar',\n width: '400px',\n height: '400px',\n xAxisLabelFormatter: '{value}',\n yAxisLabelFormatter: '{value}',\n yAxisLineAlwaysDisplay: false,\n titleText: '',\n titleSubtext: '',\n titleFontSize: '12px',\n titleColor: '#333',\n fontWeight: 400,\n textAlign: 'left',\n colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{marker} {a} {c}',\n xAxisSplitLineShow: true,\n xAxisSplitLineInterval: 0,\n xAxisSplitAreaShow: false,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelInterval: 0,\n xAxisLabelColor: '#333',\n xAxisLabelWidth: undefined,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLineShow: true,\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisMinInterval: 0,\n yAxisMinInterval: 0,\n yAxisLabelWidth: undefined,\n yAxisLabelRotate: 0,\n yAxisLabelOverflow: 'none',\n yAxisSplitLineShow: true,\n yAxisSplitAreaShow: false,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n barWidth: '40%',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n graphicConfig: {},\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n isUseHorizontalAxis: false,\n axisInverse: false,\n xAxisInverse: false,\n yAxisInverse: false,\n isStack: false,\n stackColumns: [],\n labelShow: false,\n labelFontSize: '12px',\n labelPosition: 'inside',\n labelColor: '',\n labelWidth: 100,\n labelOverflow: 'none',\n labelFormatter: '{c}',\n toolboxLocation: false,\n toolboxDownloadShow: true,\n toolboxDataZoomShow: true,\n toolboxInfoShow: true,\n gradientShow: false,\n gradientColors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n gradientOffset: 1,\n barBorderRadius: '',\n yAxisLabelShow: true,\n yAxisSplitLineType: 'solid',\n xAxisSplitLineType: 'solid',\n legendItemGap: 10,\n legendItemWidth: 25,\n legendItemHeight: 14,\n showBarBackground: false,\n legendType: '',\n legendFontSize: '12px',\n xAxisLabelFontSize: '12px',\n yAxisLabelFontSize: '12px',\n graphicType: 'ecanBar',\n tooltipPosition: '',\n isShowMarkLine: false,\n markLineType: 'average',\n legendFormatter: '{name}',\n legendWidth: null,\n legendHeight: null,\n legendTextWidth: null,\n legendScroll: false,\n yAxisName: '',\n xAxisName: '',\n defaultRangeValue: false,\n startValue: '',\n endValue: '',\n xAxisMaxValue: null,\n yAxisMaxValue: null,\n colorsType: '默认'\n}\n","export interface LineProps {\n name: String\n type: String\n width: string // 图表宽度\n height: string // 图表高度\n colors: string[]\n colorsType: string\n titleText: string\n titleSubtext: string\n legendShow: boolean\n legendLeft: 'left' | 'center' | 'right'\n legendCustomPosition: boolean\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal' // 标记点大小\n legendTextStyleColor: string\n legendTextStyleFontSize: number\n legendTextItemGap: number\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n xAxisName: string\n xAxisShow: boolean\n xAxisLabelInterval: number\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisLabelColor: string // x轴名称颜色\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n xAxisTickShow: boolean // 展示刻度\n xAxisLabelFormatter: string // 格式化\n xAxisInverse: boolean\n xAxisMinInterval: number\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLabelOverflow: 'none' | 'truncate' | 'break' | 'breakAll' // x轴名称溢出操作\n xAxisLabelRotate: number // x轴名称旋转\n xAxisType: 'value' | 'category' | 'time' | 'log'\n yAxisName: string\n yAxisMinInterval: number\n yAxisInverse: boolean\n yAxisSplitLineShow: boolean // y轴展示分割线\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLineAlwaysDisplay: boolean // 总是显示y轴\n yAxisLabelFormatter: string // 格式化\n yAxisLabelShow: boolean\n yAxisSplitLineType: 'solid' | 'dashed' | 'dotted' // 分割线类型\n xAxisSplitLineType: 'solid' | 'dashed' | 'dotted' // 分割线类型\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string\n tooltipBorderColor: string\n tooltipBackgroundColor: string\n toolboxShow: boolean\n toolboxDownloadShow: boolean\n toolboxDataZoomShow: boolean\n toolboxInfoShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top' | 'middle' | 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n areaStyleOpacity: number\n // 新加属性\n titleFontSize: string\n titleColor: string\n fontWeight: number\n textAlign: 'left' | 'right' | 'center'\n titleLeft: string\n xAxisSplitAreaShow: boolean // x轴展示分割区域\n xAxisSplitLineInterval: number // x轴分割间隔\n xAxisLineShow: boolean // 显示轴线\n valueTypeDataFieldNames: any\n keyTypeDataFieldNames: any\n dataFieldConfigType: 'key' | 'value'\n graphicConfig: { [key:string]: any }\n areaGradientShow: boolean // 分隔区域渐变\n areaGradientColor: string // 分隔区域渐变颜色\n isBoundaryGap: boolean // 是否两边留白\n legendItemGap: number\n legendItemWidth: number\n legendItemHeight: number\n legendType: string // 图例类型\n shadowColor: string // 阴影颜色\n shadowBlur: number // 阴影模糊度\n shadowOffsetY: number // 阴影偏移量-Y\n shadowOffsetX: number // 阴影偏移量-X\n legendFontSize: string\n xAxisLabelFontSize: string\n yAxisLabelFontSize: string\n graphicType: string\n tooltipPosition: string\n isShowMarkLine: boolean\n markLineType: 'min' | 'max' | 'average' | 'median'\n legendFormatter: string\n legendWidth: number | null\n legendHeight: number | null\n legendTextWidth: number | null\n legendScroll: boolean\n xAxisMaxValue: number\n yAxisMaxValue: number\n}\n\nexport const lineProps = {\n name: '折线图',\n type: 'line',\n width: '400px',\n height: '400px',\n\n colors: ['#FFBF53', '#04B1C2', '#F07474', '#C55784', '#9A5FB3', '#CF62D7', '#5E78EA', '#51B3F0', '#69D4DC', '#49B788', '#9CCC66', '#C18C00'],\n colorsType: '默认',\n\n legendShow: true,\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n legendCustomPosition: false,\n legendTextStyleColor: '#333',\n legendTextStyleFontSize: '12px',\n legendTextItemGap: 10,\n legendTopPadding: 10,\n legendBottomPadding: 10,\n legendLeftPadding: 10,\n legendRightPadding: 10,\n titleText: '',\n titleSubtext: '',\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n xAxisName: '',\n xAxisType: 'category',\n xAxisShow: true,\n xAxisLabelWidth: undefined,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLabelInterval: 0,\n xAxisSplitLineShow: true,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisLabelFormatter: '{value}', // 格式化\n xAxisMinInterval: 0,\n yAxisName: '',\n yAxisMinInterval: 0,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLineAlwaysDisplay: false,\n yAxisLabelShow: true,\n yAxisLabelFormatter: '{value}',\n yAxisSplitLineType: 'solid',\n xAxisSplitLineType: 'solid',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipFormatter: '{marker} {a} {c}',\n tooltipBorderColor: '#333',\n tooltipBackgroundColor: '#fff',\n toolboxShow: false,\n toolboxDownloadShow: true,\n toolboxDataZoomShow: true,\n toolboxInfoShow: true,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n areaStyleOpacity: 0,\n\n // 新加属性\n titleFontSize: '12px',\n titleColor: '#333',\n fontWeight: 400,\n textAlign: 'left',\n titleLeft: '',\n xAxisSplitAreaShow: false,\n xAxisSplitLineInterval: 0,\n xAxisLineShow: true,\n yAxisSplitAreaShow: false,\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n keyTypeDataFieldNames: { name: 'name', types: [] },\n dataFieldConfigType: 'value',\n graphicConfig: {},\n areaGradientShow: false,\n areaGradientColor: '',\n isBoundaryGap: true,\n legendItemGap: 10,\n legendItemWidth: 25,\n legendItemHeight: 14,\n legendType: '',\n shadowColor: '',\n shadowBlur: 0,\n shadowOffsetY: 0,\n shadowOffsetX: 0,\n legendFontSize: '12px',\n xAxisLabelFontSize: '12px',\n yAxisLabelFontSize: '12px',\n graphicType: 'ecanLine',\n tooltipPosition: '',\n isShowMarkLine: false,\n markLineType: 'average',\n legendFormatter: '{name}',\n legendWidth: null,\n legendHeight: null,\n legendTextWidth: null,\n legendScroll: false,\n xAxisMaxValue: null,\n yAxisMaxValue: null\n}\n","\nexport interface PieProps {\n name: String,\n type: String,\n width: string // 图表宽度\n height: string // 图表高度\n colors: string[]\n colorsType: string\n titleText: string\n titleSubtext: string\n backgroundColor: string\n toolboxDownloadShow: boolean\n toolboxDataZoomShow: boolean\n toolboxInfoShow: boolean\n tooltipShow: boolean\n tooltipTrigger: 'item' | 'axis' | 'none'\n tooltipTextStyleColor: string\n tooltipFormatter: string\n tooltipBorderColor: string\n tooltipBackgroundColor: string\n legendShow: boolean\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n legendTextStyleColor: string\n innerRadius: string\n outerRadius: string\n centerLeft: string\n centerTop: string\n minAngle: number\n labelShow: boolean\n labelFormatter: string\n labelFontSize: number\n labelPosition: 'outside' | 'inside' | 'center'\n labelLineShow: boolean\n labelColor: string\n isUseLabelColors: boolean\n labelLineLength: number\n labelLineLength2: number\n roseType: '' | 'radius' | 'area'\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n toolboxShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top' | 'middle' | 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n\n titleFontSize: string\n titleColor: string\n fontWeight: number\n textAlign: 'left' | 'right' | 'center'\n titleLeft: string\n labelWidth: number\n labelOverflow: 'none' | 'truncate' | 'break'\n valueTypeDataFieldNames: any,\n dataFieldConfigType: 'key' | 'value',\n graphicConfig: { [key:string]: any }\n legendItemGap: number\n legendItemWidth: number\n legendItemHeight: number\n legendFormatter: string\n legendFontSize: string\n graphicType: string\n legendWidth: number | null\n legendHeight: number | null\n legendTextWidth: number | null\n legendScroll: boolean\n}\n\nexport const pieProps: PieProps = {\n name: '饼图',\n type: 'pie',\n width: '400px',\n height: '400px',\n titleText: '',\n titleSubtext: '',\n\n colors: ['#FFBF53', '#04B1C2', '#F07474', '#C55784', '#9A5FB3', '#CF62D7', '#5E78EA', '#51B3F0', '#69D4DC', '#49B788', '#9CCC66', '#C18C00'],\n colorsType: '默认',\n\n backgroundColor: '',\n toolboxDownloadShow: true,\n toolboxDataZoomShow: true,\n toolboxInfoShow: true,\n\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '{marker} {b} {c} ({d}%)',\n tooltipBorderColor: '#333',\n tooltipBackgroundColor: '#fff',\n\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'vertical',\n legendTop: 'top',\n legendLeft: 'left',\n innerRadius: '0%',\n outerRadius: '60%',\n centerLeft: '50%',\n centerTop: '50%',\n minAngle: 0,\n labelShow: true,\n labelColor: '#333',\n isUseLabelColors: false,\n labelFontSize: 12,\n labelPosition: 'outside',\n labelFormatter: '{b}\\\\n{d}%',\n labelLineShow: true,\n labelLineLength: 10,\n labelLineLength2: 15,\n roseType: '',\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n toolboxShow: false,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n\n titleFontSize: '12px',\n titleColor: '#333',\n fontWeight: 400,\n textAlign: 'left',\n titleLeft: '',\n labelWidth: 100,\n labelOverflow: 'none',\n valueTypeDataFieldNames: { name: 'name', value: 'value', type: 'type' },\n dataFieldConfigType: 'value',\n graphicConfig: {},\n legendItemGap: 10,\n legendItemWidth: 25,\n legendItemHeight: 14,\n legendFormatter: '{name}',\n legendFontSize: '12px',\n graphicType: 'ecanPie',\n legendWidth: null,\n legendHeight: null,\n legendTextWidth: null,\n legendScroll: false\n}\n","export interface CustomGraphProps {\n name: String,\n type: String,\n width: string // 图表宽度\n height: string // 图表高度\n option: { [key: string]: any }\n optionCode: string\n}\n\nexport const customGraphProps: CustomGraphProps = {\n name: '自定义图表',\n type: 'customGraph',\n width: '400px',\n height: '400px',\n option: {},\n optionCode: ''\n}\n","\nexport interface ComboGraphProps {\n name: String,\n type: String,\n width: string // 图表宽度\n height: string // 图表高度\n colors: string[]\n colorsType: string\n titleText: string\n titleSubtext: string\n legendShow: boolean\n legendTextStyleColor: string\n legendLeft: 'left' | 'center' | 'right'\n legendTop: 'top' | 'middle' | 'bottom'\n legendOrient: 'vertical' | 'horizontal'\n xAxisLabelInterval: number\n xAxisSplitLineShow: boolean // x轴展示分割线\n xAxisMinInterval: number // 最小间距\n xAxisLabelColor: string // x轴名称颜色\n xAxisLabelRotate: number\n xAxisLabelOverflow: string\n xAxisLabelWidth: number | undefined // x轴名称宽度\n xAxisLineStyleColor: string // x轴名称颜色\n xAxisTickShow: boolean // 展示刻度\n yAxisSplitLineShow: boolean // y轴展示分割线\n xAxisSplitLineStyleColor: string // x轴分割线颜色\n yAxisSplitLineStyleColor: string // y轴分割线颜色\n yAxisLabelColor: string // y轴名称颜色\n yAxisLineStyleColor: string // y轴名称颜色\n yAxisLineAlwaysDisplay: boolean // 总是显示y轴\n yAxisLabelShow: boolean\n\n tooltipShow: boolean\n tooltipTextStyleColor: string\n tooltipFormatter: string\n tooltipBorderColor: string\n tooltipBackgroundColor: string\n tooltipTrigger: 'item' | 'axis' | 'none'\n\n seriesTypes: { [key: string]: any }[]\n yAxis: { [key: string]: any }[]\n yAxisMinInterval: number\n gridContainLabel: boolean\n gridTop: string\n gridBottom: string\n gridLeft: string\n gridRight: string\n toolboxShow: boolean\n toolboxLocation: boolean\n toolboxDownloadShow: boolean\n toolboxDataZoomShow: boolean\n toolboxInfoShow: boolean\n toolboxOrient: 'horizontal' | 'vertical'\n toolboxItemSize: number // 工具栏 icon 的大小。\n toolboxItemGap: number // 工具栏 icon 每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。\n toolboxLeft: 'left' | 'center' | 'right'\n toolboxTop: 'top' | 'middle' | 'bottom'\n toolboxIconStyleBorderColor: string\n toolboxDownloadUrl: string\n toolboxInfoText: string\n symbolSize: number // 线宽度\n lineStyleWidth: number // 线宽\n smooth: boolean // 光滑\n areaStyleOpacity: number\n barWidth: string\n}\n\nexport const comboGraphProps: ComboGraphProps = {\n name: '组合图表',\n type: 'comboGraph',\n width: '400px',\n height: '400px',\n titleText: '',\n titleSubtext: '',\n colors: ['#FFBF53', '#04B1C2', '#F07474', '#C55784', '#9A5FB3', '#CF62D7', '#5E78EA', '#51B3F0', '#69D4DC', '#49B788', '#9CCC66', '#C18C00'],\n colorsType: '默认',\n legendShow: true,\n legendTextStyleColor: '#333',\n legendOrient: 'horizontal',\n legendTop: 'top',\n legendLeft: 'center',\n\n tooltipShow: true,\n tooltipTextStyleColor: '',\n tooltipTrigger: 'item',\n tooltipFormatter: '{marker} {a} {c}',\n tooltipBorderColor: '#333',\n tooltipBackgroundColor: '#fff',\n\n xAxisLabelInterval: 0,\n xAxisSplitLineShow: true,\n xAxisLabelRotate: 0,\n xAxisLabelOverflow: 'none',\n xAxisLabelWidth: undefined,\n xAxisSplitLineStyleColor: '#333',\n xAxisLabelColor: '#333',\n xAxisLineStyleColor: '#333',\n xAxisTickShow: true,\n xAxisMinInterval: 0,\n yAxisMinInterval: 0,\n yAxisSplitLineShow: true,\n yAxisSplitLineStyleColor: '#333',\n yAxisLabelColor: '#333',\n yAxisLineStyleColor: '#333',\n yAxisLineAlwaysDisplay: false,\n yAxisLabelShow: true,\n seriesTypes: [\n {\n type: 'bar',\n axisIndex: 0\n },\n {\n type: 'line',\n axisIndex: 0\n }\n ],\n yAxis: [\n {\n axisLabelFormatter: '{value}'\n },\n {\n axisLabelFormatter: '{value}'\n }\n ],\n gridContainLabel: true,\n gridTop: '10%',\n gridBottom: '10%',\n gridLeft: '5%',\n gridRight: '5%',\n toolboxShow: false,\n toolboxLocation: false,\n toolboxDownloadShow: true,\n toolboxDataZoomShow: true,\n toolboxInfoShow: true,\n toolboxOrient: 'horizontal',\n toolboxItemSize: 16,\n toolboxItemGap: 8,\n toolboxLeft: 'right',\n toolboxTop: 'top',\n toolboxIconStyleBorderColor: '#666',\n toolboxDownloadUrl: '',\n toolboxInfoText: '当前无说明信息',\n areaStyleOpacity: 0,\n symbolSize: 4,\n lineStyleWidth: 2,\n smooth: false,\n barWidth: '40%'\n}\n","import { barProps } from './bar'\nimport { lineProps } from './line'\nimport { pieProps } from './pie'\nimport { customGraphProps } from './custom-graph'\nimport { comboGraphProps } from './combo-graph'\n\nexport default {\n bar: barProps,\n line: lineProps,\n pie: pieProps,\n customGraph: customGraphProps,\n comboGraph: comboGraphProps\n}\n","\r\nexport interface TableProps {\r\n name: String\r\n type: String\r\n size: String // 尺寸\r\n allOverflow: String // 内容超出\r\n hoverRow: Boolean // 点击行高亮\r\n hoverColor: String // hover行颜色\r\n headerCellStyleMethod: String // 表头单元格样式\r\n rowStyleMethod: String // 行样式\r\n boderList: Array<String> // 边框不显示\r\n columnDropEnable: Boolean // 列拖拽\r\n showTotalBool: Boolean // 显示汇总行\r\n totalName: String // 汇总行名\r\n expandAll: Boolean // 展开所有节点\r\n}\r\n\r\nexport const tableProps: TableProps = {\r\n name: '表格',\r\n type: 'table',\r\n size: 'medium',\r\n allOverflow: 'title',\r\n hoverRow: true,\r\n hoverColor: '#f5f7fa',\r\n headerCellStyleMethod: '',\r\n rowStyleMethod: '',\r\n boderList: [],\r\n columnDropEnable: true,\r\n showTotalBool: false,\r\n totalName: '',\r\n expandAll: false\r\n}\r\n","<template>\n <div class=\"data-view-list\">\n <a-spin\n wrapper-class-name=\"tree-spin\"\n :spinning=\"treeSelectLoading\"\n tip=\"视图加载中...\"\n >\n <a-tree-select\n :value=\"dataViewId\"\n style=\"width: 100%\"\n placeholder=\"请选择视图\"\n :dropdown-style=\"{ maxHeight: '400px', overflow: 'auto' }\"\n :tree-data=\"treeSelectData\"\n :load-data=\"handleLoadData\"\n tree-data-simple-mode\n @change=\"onDataViewIdChange\"\n />\n </a-spin>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataViewLoading\"\n tip=\"数据加载中...\"\n >\n <draggable\n v-model=\"dataViewList\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n @start=\"onDragStart($event, dataViewList)\"\n >\n <template #item=\"{ element: dataView }\">\n <div class=\"column-item\">\n 【{{ mapGenericType(dataView.genericType) }}】\n <span class=\"column-item-name\">\n {{ dataView.name }}\n </span>\n </div>\n </template>\n </draggable>\n </a-spin>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n reactive,\n ref,\n computed,\n unref,\n onMounted,\n inject\n} from 'vue'\nimport { TreeSelectProps, Spin as ASpin, TreeSelect as ATreeSelect } from 'ant-design-vue'\nimport {\n REQUEST,\n INDICATOR_URL,\n INDICATOR_TOKEN,\n DATA_LIST,\n GRAPHIC_CONFIG,\n UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport Draggable from 'vuedraggable'\nexport default defineComponent({\n name: 'DataViewList',\n components: {\n ASpin,\n ATreeSelect,\n Draggable\n },\n setup () {\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const dataViewId = computed(() => unref(graphicConfig)?.dataViewId || null)\n const treeSelectLoading = ref(false)\n const treeSelectData = ref<TreeSelectProps['treeData']>([])\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n interface TreeDom {\n id: string\n pId: string\n title: string\n value: string\n isLeaf?: boolean\n disabled?: boolean\n selectable?: boolean\n }\n // 当前选中树节点\n const selectedItem = reactive<TreeDom>({\n title: '已选',\n value: 'YXJG',\n id: 'YXJG',\n pId: '0',\n disabled: true,\n selectable: false,\n isLeaf: true\n })\n // 回显已选节点\n const echoSelectedNode = async () => {\n const id = dataViewId.value\n treeSelectLoading.value = true\n try {\n const { data } = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId: id,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n treeSelectLoading.value = false\n if (data.success) {\n treeSelectData.value?.push(selectedItem)\n treeSelectData.value = treeSelectData.value?.concat(\n transTreeData([data.data.rows[0]] as any, 'YXJG')\n )\n }\n } catch (error) {\n treeSelectLoading.value = false\n }\n }\n // 树的数据转换\n const transTreeData = (\n data: { [key: string]: any }[] = [],\n pId?: string\n ) => {\n const list: TreeSelectProps['treeData'] = []\n data.forEach((item) => {\n list.push({\n id: item.id,\n pId: pId ?? item.parentId,\n value: item.id,\n title: item.name,\n isLeaf: item.leaf || false,\n nature: item.nature,\n selectable: item.leaf || false\n })\n })\n return list\n }\n const handleLoadData = async (treeNode?: any, isFirst?: boolean) => {\n let id = 0\n if (treeNode) {\n const { value } = treeNode.dataRef\n id = value\n }\n const { data } = await request.post(\n `${INDICATOR_URL}/dataview/treetable`,\n {\n pageFlag: true,\n pageId: PAGE_ID,\n parentId: id\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n\n if (data.success) {\n treeSelectData.value = unref(treeSelectData)?.concat(\n transTreeData(data.data)\n )\n if (isFirst && unref(dataViewId)) {\n await echoSelectedNode()\n }\n }\n }\n\n const onDataViewIdChange = (dataViewId: string) => {\n handleDataViewColumns(dataViewId)\n updateGraphicConfig({\n dataViewId,\n // 重制数据\n classificationList: [],\n seriesList: [],\n leftAxisList: [],\n rightAxisList: [],\n indicators: [],\n controlList: []\n })\n }\n\n const { setDataList } = inject(DATA_LIST, {\n // eslint-disable-next-line\n setDataList: (list: { [key: string]: any }[]) => list\n })\n\n const dataViewLoading = ref(false)\n\n const dataViewList = ref<{ [key: string]: any }[]>([])\n\n const handleDataViewColumns = async (dataViewId: string) => {\n if (!dataViewId) return\n dataViewList.value = []\n dataViewLoading.value = true\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n })\n const { success, data = {} } = res.data\n dataViewLoading.value = false\n if (success) {\n const { rows = [] } = data\n rows?.forEach((row: any) => {\n const columns =\n row?.dataViewColumns?.map((column: any) => {\n return {\n ...column,\n // 复选框\n show: true\n }\n }) || []\n dataViewList.value = [...unref(dataViewList), ...columns]\n })\n setDataList(unref(dataViewList))\n }\n } catch (error) {\n dataViewLoading.value = false\n }\n }\n const mapGenericType = (genericType: 'TEXT' | 'NUMBER' | 'DATE') => {\n const map = {\n TEXT: '字符',\n NUMBER: '数字',\n DATE: '时间'\n }\n return map[genericType]\n }\n\n const onDragStart = (\n event: any,\n dataViews: { [key: string]: any }[]\n ) => {\n const dataView = dataViews[event.oldIndex]\n if (dataView) {\n const copyItem = {\n ...dataView,\n label: dataView.name,\n name: dataView.label\n }\n sessionStorage.setItem('indicator-list-item', JSON.stringify(copyItem))\n }\n }\n\n onMounted(async () => {\n await handleLoadData(undefined, true)\n handleDataViewColumns(unref(dataViewId))\n })\n return {\n dataViewId,\n handleLoadData,\n treeSelectData,\n treeSelectLoading,\n dataViewList,\n dataViewLoading,\n onDataViewIdChange,\n mapGenericType,\n onDragStart\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-view-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n .tree-spin {\n height: auto;\n }\n}\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-item:hover {\n background: #eee;\n}\n\n.column-item-name {\n margin-left: 5px;\n}\n</style>\n","<template>\n <div class=\"data-view-list\">\n <a-spin\n wrapper-class-name=\"tree-spin\"\n :spinning=\"treeSelectLoading\"\n tip=\"视图加载中...\"\n >\n <a-tree-select\n :value=\"dataViewId\"\n style=\"width: 100%\"\n placeholder=\"请选择视图\"\n :dropdown-style=\"{ maxHeight: '400px', overflow: 'auto' }\"\n :tree-data=\"treeSelectData\"\n :load-data=\"handleLoadData\"\n tree-data-simple-mode\n @change=\"onDataViewIdChange\"\n />\n </a-spin>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataViewLoading\"\n tip=\"数据加载中...\"\n >\n <draggable\n v-model=\"dataViewList\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n @start=\"onDragStart($event, dataViewList)\"\n >\n <template #item=\"{ element: dataView }\">\n <div class=\"column-item\">\n 【{{ mapGenericType(dataView.genericType) }}】\n <span class=\"column-item-name\">\n {{ dataView.name }}\n </span>\n </div>\n </template>\n </draggable>\n </a-spin>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n reactive,\n ref,\n computed,\n unref,\n onMounted,\n inject\n} from 'vue'\nimport { TreeSelectProps, Spin as ASpin, TreeSelect as ATreeSelect } from 'ant-design-vue'\nimport {\n REQUEST,\n INDICATOR_URL,\n INDICATOR_TOKEN,\n DATA_LIST,\n GRAPHIC_CONFIG,\n UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport Draggable from 'vuedraggable'\nexport default defineComponent({\n name: 'DataViewList',\n components: {\n ASpin,\n ATreeSelect,\n Draggable\n },\n setup () {\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const dataViewId = computed(() => unref(graphicConfig)?.dataViewId || null)\n const treeSelectLoading = ref(false)\n const treeSelectData = ref<TreeSelectProps['treeData']>([])\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n interface TreeDom {\n id: string\n pId: string\n title: string\n value: string\n isLeaf?: boolean\n disabled?: boolean\n selectable?: boolean\n }\n // 当前选中树节点\n const selectedItem = reactive<TreeDom>({\n title: '已选',\n value: 'YXJG',\n id: 'YXJG',\n pId: '0',\n disabled: true,\n selectable: false,\n isLeaf: true\n })\n // 回显已选节点\n const echoSelectedNode = async () => {\n const id = dataViewId.value\n treeSelectLoading.value = true\n try {\n const { data } = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId: id,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n treeSelectLoading.value = false\n if (data.success) {\n treeSelectData.value?.push(selectedItem)\n treeSelectData.value = treeSelectData.value?.concat(\n transTreeData([data.data.rows[0]] as any, 'YXJG')\n )\n }\n } catch (error) {\n treeSelectLoading.value = false\n }\n }\n // 树的数据转换\n const transTreeData = (\n data: { [key: string]: any }[] = [],\n pId?: string\n ) => {\n const list: TreeSelectProps['treeData'] = []\n data.forEach((item) => {\n list.push({\n id: item.id,\n pId: pId ?? item.parentId,\n value: item.id,\n title: item.name,\n isLeaf: item.leaf || false,\n nature: item.nature,\n selectable: item.leaf || false\n })\n })\n return list\n }\n const handleLoadData = async (treeNode?: any, isFirst?: boolean) => {\n let id = 0\n if (treeNode) {\n const { value } = treeNode.dataRef\n id = value\n }\n const { data } = await request.post(\n `${INDICATOR_URL}/dataview/treetable`,\n {\n pageFlag: true,\n pageId: PAGE_ID,\n parentId: id\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n\n if (data.success) {\n treeSelectData.value = unref(treeSelectData)?.concat(\n transTreeData(data.data)\n )\n if (isFirst && unref(dataViewId)) {\n await echoSelectedNode()\n }\n }\n }\n\n const onDataViewIdChange = (dataViewId: string) => {\n handleDataViewColumns(dataViewId)\n updateGraphicConfig({\n dataViewId,\n // 重制数据\n classificationList: [],\n seriesList: [],\n leftAxisList: [],\n rightAxisList: [],\n indicators: [],\n controlList: []\n })\n }\n\n const { setDataList } = inject(DATA_LIST, {\n // eslint-disable-next-line\n setDataList: (list: { [key: string]: any }[]) => list\n })\n\n const dataViewLoading = ref(false)\n\n const dataViewList = ref<{ [key: string]: any }[]>([])\n\n const handleDataViewColumns = async (dataViewId: string) => {\n if (!dataViewId) return\n dataViewList.value = []\n dataViewLoading.value = true\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n })\n const { success, data = {} } = res.data\n dataViewLoading.value = false\n if (success) {\n const { rows = [] } = data\n rows?.forEach((row: any) => {\n const columns =\n row?.dataViewColumns?.map((column: any) => {\n return {\n ...column,\n // 复选框\n show: true\n }\n }) || []\n dataViewList.value = [...unref(dataViewList), ...columns]\n })\n setDataList(unref(dataViewList))\n }\n } catch (error) {\n dataViewLoading.value = false\n }\n }\n const mapGenericType = (genericType: 'TEXT' | 'NUMBER' | 'DATE') => {\n const map = {\n TEXT: '字符',\n NUMBER: '数字',\n DATE: '时间'\n }\n return map[genericType]\n }\n\n const onDragStart = (\n event: any,\n dataViews: { [key: string]: any }[]\n ) => {\n const dataView = dataViews[event.oldIndex]\n if (dataView) {\n const copyItem = {\n ...dataView,\n label: dataView.name,\n name: dataView.label\n }\n sessionStorage.setItem('indicator-list-item', JSON.stringify(copyItem))\n }\n }\n\n onMounted(async () => {\n await handleLoadData(undefined, true)\n handleDataViewColumns(unref(dataViewId))\n })\n return {\n dataViewId,\n handleLoadData,\n treeSelectData,\n treeSelectLoading,\n dataViewList,\n dataViewLoading,\n onDataViewIdChange,\n mapGenericType,\n onDragStart\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-view-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n .tree-spin {\n height: auto;\n }\n}\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-item:hover {\n background: #eee;\n}\n\n.column-item-name {\n margin-left: 5px;\n}\n</style>\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","// https://github.com/substack/insert-css\nvar containers = []; // will store container HTMLElement references\n\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container); // first time we see this container, create the necessary entries\n\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n } // try to get the correponding container + position styleElement, create it otherwise\n\n\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n } // strip potential UTF-8 BOM if css was read from a file\n\n\n if (css.charCodeAt(0) === 0xfeff) {\n css = css.substr(1, css.length);\n } // actually add the stylesheet\n\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css;\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n}\n\nexport default insertCss;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { nextTick, h } from 'vue';\nimport { generate as generateColor } from '@ant-design/colors';\nimport insertCss from './insert-css';\nexport function warn(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons-vue] \".concat(message));\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc[\"class\"];\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return h(node.tag, _objectSpread({\n key: key\n }, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return h(node.tag, _objectSpread({\n key: key\n }, rootProps, node.attrs), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar cssInjectedFlag = false;\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n nextTick(function () {\n if (!cssInjectedFlag) {\n if (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n insertCss(styleStr, {\n prepend: true\n });\n }\n\n cssInjectedFlag = true;\n }\n });\n};","var _excluded = [\"icon\", \"primaryColor\", \"secondaryColor\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props, context) {\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n icon = _props$context$attrs.icon,\n primaryColor = _props$context$attrs.primaryColor,\n secondaryColor = _props$context$attrs.secondaryColor,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread({}, target, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({}, restProps, {\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n })); // },\n};\n\nIconBase.props = {\n icon: Object,\n primaryColor: String,\n secondaryColor: String,\n focusable: String\n};\nIconBase.inheritAttrs = false;\nIconBase.displayName = 'IconBase';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport VueIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return VueIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = VueIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","var _excluded = [\"class\", \"icon\", \"spin\", \"rotate\", \"tabindex\", \"twoToneColor\", \"onClick\"];\nimport { createVNode as _createVNode } from \"vue\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport VueIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n\nsetTwoToneColor('#1890ff');\n\nvar Icon = function Icon(props, context) {\n var _classObj;\n\n var _props$context$attrs = _objectSpread({}, props, context.attrs),\n cls = _props$context$attrs[\"class\"],\n icon = _props$context$attrs.icon,\n spin = _props$context$attrs.spin,\n rotate = _props$context$attrs.rotate,\n tabindex = _props$context$attrs.tabindex,\n twoToneColor = _props$context$attrs.twoToneColor,\n onClick = _props$context$attrs.onClick,\n restProps = _objectWithoutProperties(_props$context$attrs, _excluded);\n\n var classObj = (_classObj = {\n anticon: true\n }, _defineProperty(_classObj, \"anticon-\".concat(icon.name), Boolean(icon.name)), _defineProperty(_classObj, cls, cls), _classObj);\n var svgClassString = spin === '' || !!spin || icon.name === 'loading' ? 'anticon-spin' : '';\n var iconTabIndex = tabindex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n restProps.tabindex = iconTabIndex;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return _createVNode(\"span\", _objectSpread({\n \"role\": \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n \"onClick\": onClick,\n \"class\": classObj\n }), [_createVNode(VueIcon, {\n \"class\": svgClassString,\n \"icon\": icon,\n \"primaryColor\": primaryColor,\n \"secondaryColor\": secondaryColor,\n \"style\": svgStyle\n }, null)]);\n};\n\nIcon.props = {\n spin: Boolean,\n rotate: Number,\n icon: Object,\n twoToneColor: String\n};\nIcon.displayName = 'AntdIcon';\nIcon.inheritAttrs = false;\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretDownOutlined = function CaretDownOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CaretDownOutlinedSvg\n }), null);\n};\n\nCaretDownOutlined.displayName = 'CaretDownOutlined';\nCaretDownOutlined.inheritAttrs = false;\nexport default CaretDownOutlined;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretRightOutlined = function CaretRightOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CaretRightOutlinedSvg\n }), null);\n};\n\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nCaretRightOutlined.inheritAttrs = false;\nexport default CaretRightOutlined;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LoadingOutlinedSvg\n }), null);\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nLoadingOutlined.inheritAttrs = false;\nexport default LoadingOutlined;","function e(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}function t(e,t,n,o){return new(n||(n=Promise))((function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,l)}s((o=o.apply(e,t||[])).next())}))}const n=()=>{},o=Object.assign,r=Array.isArray,i=e=>\"function\"==typeof e,a=e=>\"symbol\"==typeof e;let l;const s=()=>l||(l=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:{});const c=e=>{const t=new Set(e);return t.w=0,t.n=0,t},u=e=>(e.w&p)>0,d=e=>(e.n&p)>0;let f=0,p=1;let h;class y{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t){t&&t.active&&t.effects.push(e)}(this,n)}run(){if(!this.active)return this.fn();let e=h,t=b;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=h,h=this,b=!0,p=1<<++f,f<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=p})(this):m(this),this.fn()}finally{f<=30&&(e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const r=t[o];u(r)&&!d(r)?r.delete(e):t[n++]=r,r.w&=~p,r.n&=~p}t.length=n}})(this),p=1<<--f,h=this.parent,b=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){h===this?this.deferStop=!0:this.active&&(m(this),this.onStop&&this.onStop(),this.active=!1)}}function m(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let b=!0;const g=[];function v(e,t){let n=!1;f<=30?d(e)||(e.n|=p,n=!u(e)):n=!e.has(h),n&&(e.add(h),h.deps.push(e),\"production\"!==process.env.NODE_ENV&&h.onTrack&&h.onTrack(o({effect:h},t)))}function x(e,t){const n=r(e)?e:[...e];for(const e of n)e.computed&&w(e,t);for(const e of n)e.computed||w(e,t)}function w(e,t){(e!==h||e.allowRecurse)&&(\"production\"!==process.env.NODE_ENV&&e.onTrigger&&e.onTrigger(o({effect:e},t)),e.scheduler?e.scheduler():e.run())}function S(e){const t=e&&e.__v_raw;return t?S(t):e}function A(e){return!(!e||!0!==e.__v_isRef)}function _(e){return A(e)?e.value:e}new Set(Object.getOwnPropertyNames(Symbol).filter((e=>\"arguments\"!==e&&\"caller\"!==e)).map((e=>Symbol[e])).filter(a));class j{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new y(e,(()=>{this._dirty||(this._dirty=!0,function(e,t){const n=(e=S(e)).dep;n&&(\"production\"!==process.env.NODE_ENV?x(n,{target:e,type:\"set\",key:\"value\",newValue:t}):x(n))}(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=S(this);var t;return t=e,b&&h&&(t=S(t),\"production\"!==process.env.NODE_ENV?v(t.dep||(t.dep=c()),{target:t,type:\"get\",key:\"value\"}):v(t.dep||(t.dep=c()))),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}const O=[];function C(e,...t){if(\"production\"===process.env.NODE_ENV)return;g.push(b),b=!1;const n=O.length?O[O.length-1].component:null,o=n&&n.appContext.config.warnHandler,r=function(){let e=O[O.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}();if(o)$(o,n,11,[e+t.join(\"\"),n&&n.proxy,r.map((({vnode:e})=>`at <${oe(n,e.type)}>`)).join(\"\\n\"),r]);else{const n=[`[Vue warn]: ${e}`,...t];r.length&&n.push(\"\\n\",...function(e){const t=[];return e.forEach(((e,n)=>{t.push(...0===n?[]:[\"\\n\"],...function({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:\"\",o=!!e.component&&null==e.component.parent,r=` at <${oe(e.component,e.type,o)}`,i=\">\"+n;return e.props?[r,...L(e.props),i]:[r+i]}(e))})),t}(r)),console.warn(...n)}!function(){const e=g.pop();b=void 0===e||e}()}function L(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach((n=>{t.push(...T(n,e[n]))})),n.length>3&&t.push(\" ...\"),t}function T(e,t,n){return\"string\"==typeof t?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):\"number\"==typeof t||\"boolean\"==typeof t||null==t?n?t:[`${e}=${t}`]:A(t)?(t=T(e,S(t.value),!0),n?t:[`${e}=Ref<`,t,\">\"]):i(t)?[`${e}=fn${t.name?`<${t.name}>`:\"\"}`]:(t=S(t),n?t:[`${e}=`,t])}const N={sp:\"serverPrefetch hook\",bc:\"beforeCreate hook\",c:\"created hook\",bm:\"beforeMount hook\",m:\"mounted hook\",bu:\"beforeUpdate hook\",u:\"updated\",bum:\"beforeUnmount hook\",um:\"unmounted hook\",a:\"activated hook\",da:\"deactivated hook\",ec:\"errorCaptured hook\",rtc:\"renderTracked hook\",rtg:\"renderTriggered hook\",0:\"setup function\",1:\"render function\",2:\"watcher getter\",3:\"watcher callback\",4:\"watcher cleanup function\",5:\"native event handler\",6:\"component event handler\",7:\"vnode hook\",8:\"directive hook\",9:\"transition hook\",10:\"app errorHandler\",11:\"app warnHandler\",12:\"ref function\",13:\"async component loader\",14:\"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"};function $(e,t,n,o){let r;try{r=o?e(...o):e()}catch(e){!function(e,t,n,o=!0){const r=t?t.vnode:null;if(t){let o=t.parent;const r=t.proxy,i=\"production\"!==process.env.NODE_ENV?N[n]:n;for(;o;){const t=o.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,r,i))return;o=o.parent}const a=t.appContext.config.errorHandler;if(a)return void $(a,null,10,[e,r,i])}!function(e,t,n,o=!0){if(\"production\"!==process.env.NODE_ENV){const i=N[t];if(n&&(r=n,O.push(r)),C(\"Unhandled error\"+(i?` during execution of ${i}`:\"\")),n&&O.pop(),o)throw e;console.error(e)}else console.error(e);var r}(e,n,r,o)}(e,t,n)}return r}let k=!1,D=!1;const M=[];let E=0;const I=[];let V=null,F=0;const z=Promise.resolve();function R(e){M.length&&M.includes(e,k&&e.allowRecurse?E+1:E)||(null==e.id?M.push(e):M.splice(function(e){let t=E+1,n=M.length;for(;t<n;){const o=t+n>>>1,r=M[o],i=P(r);i<e||i===e&&r.pre?t=o+1:n=o}return t}(e.id),0,e),U())}function U(){k||D||(D=!0,z.then(Y))}const P=e=>null==e.id?1/0:e.id,G=(e,t)=>{const n=P(e)-P(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Y(e){D=!1,k=!0,\"production\"!==process.env.NODE_ENV&&(e=e||new Map),M.sort(G);const t=\"production\"!==process.env.NODE_ENV?t=>W(e,t):n;try{for(E=0;E<M.length;E++){const e=M[E];if(e&&!1!==e.active){if(\"production\"!==process.env.NODE_ENV&&t(e))continue;$(e,null,14)}}}finally{E=0,M.length=0,function(e){if(I.length){const t=[...new Set(I)];if(I.length=0,V)return void V.push(...t);for(V=t,\"production\"!==process.env.NODE_ENV&&(e=e||new Map),V.sort(((e,t)=>P(e)-P(t))),F=0;F<V.length;F++)\"production\"!==process.env.NODE_ENV&&W(e,V[F])||V[F]();V=null,F=0}}(e),k=!1,(M.length||I.length)&&Y(e)}}function W(e,t){if(e.has(t)){const n=e.get(t);if(n>100){const e=t.ownerInstance,n=e&&ne(e.type);return C(`Maximum recursive updates exceeded${n?` in component <${n}>`:\"\"}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}e.set(t,n+1)}else e.set(t,1)}const H=new Set;\"production\"!==process.env.NODE_ENV&&(s().__VUE_HMR_RUNTIME__={createRecord:Q((function(e,t){if(B.has(e))return!1;return B.set(e,{initialDef:K(t),instances:new Set}),!0})),rerender:Q((function(e,t){const n=B.get(e);if(!n)return;n.initialDef.render=t,[...n.instances].forEach((e=>{t&&(e.render=t,K(e.type).render=t),e.renderCache=[],e.update()}))})),reload:Q((function(e,t){const n=B.get(e);if(!n)return;t=K(t),q(n.initialDef,t);const o=[...n.instances];for(const e of o){const o=K(e.type);H.has(o)||(o!==n.initialDef&&q(o,t),H.add(o)),e.appContext.propsCache.delete(e.type),e.appContext.emitsCache.delete(e.type),e.appContext.optionsCache.delete(e.type),e.ceReload?(H.add(o),e.ceReload(t.styles),H.delete(o)):e.parent?R(e.parent.update):e.appContext.reload?e.appContext.reload():\"undefined\"!=typeof window?window.location.reload():console.warn(\"[HMR] Root or manually mounted instance modified. Full reload required.\")}i=()=>{for(const e of o)H.delete(K(e.type))},r(i)?I.push(...i):V&&V.includes(i,i.allowRecurse?F+1:F)||I.push(i),U();var i}))});const B=new Map;function K(e){return i(t=e)&&\"__vccOpts\"in t?e.__vccOpts:e;var t}function q(e,t){o(e,t);for(const n in e)\"__file\"===n||n in t||delete e[n]}function Q(e){return(t,n)=>{try{return e(t,n)}catch(e){console.error(e),console.warn(\"[HMR] Something went wrong during Vue component hot-reload. Full reload required.\")}}}const J={};let X;\"production\"!==process.env.NODE_ENV&&(J.ownKeys=e=>(C(\"Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.\"),Reflect.ownKeys(e)));let Z=\"__VUE_INSTANCE_SETTERS__\";(X=s()[Z])||(X=s()[Z]=[]),X.push((e=>e));const ee=/(?:^|[-_])(\\w)/g,te=e=>e.replace(ee,(e=>e.toUpperCase())).replace(/[-_]/g,\"\");function ne(e,t=!0){return i(e)?e.displayName||e.name:e.name||t&&e.__name}function oe(e,t,n=!1){let o=ne(t);if(!o&&t.__file){const e=t.__file.match(/([^/\\\\]+)\\.\\w+$/);e&&(o=e[1])}if(!o&&e&&e.parent){const n=e=>{for(const n in e)if(e[n]===t)return n};o=n(e.components||e.parent.type.components)||n(e.appContext.components)}return o?te(o):n?\"App\":\"Anonymous\"}const re=(e,t)=>function(e,t,o=!1){let r,a;const l=i(e);return l?(r=e,a=\"production\"!==process.env.NODE_ENV?()=>{console.warn(\"Write operation failed: computed value is readonly\")}:n):(r=e.get,a=e.set),new j(r,a,l||!a,o)}(e,0,false);function ie(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var ae,le={exports:{}};function se(){return ae||(ae=1,le.exports=function(){var e=1e3,t=6e4,n=36e5,o=\"millisecond\",r=\"second\",i=\"minute\",a=\"hour\",l=\"day\",s=\"week\",c=\"month\",u=\"quarter\",d=\"year\",f=\"date\",p=\"Invalid Date\",h=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(e){var t=[\"th\",\"st\",\"nd\",\"rd\"],n=e%100;return\"[\"+e+(t[(n-20)%10]||t[n]||t[0])+\"]\"}},b=function(e,t,n){var o=String(e);return!o||o.length>=t?e:\"\"+Array(t+1-o.length).join(n)+e},g={s:b,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),o=Math.floor(n/60),r=n%60;return(t<=0?\"+\":\"-\")+b(o,2,\"0\")+\":\"+b(r,2,\"0\")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var o=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(o,c),i=n-r<0,a=t.clone().add(o+(i?-1:1),c);return+(-(o+(n-r)/(i?r-a:a-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:d,w:s,d:l,D:f,h:a,m:i,s:r,ms:o,Q:u}[e]||String(e||\"\").toLowerCase().replace(/s$/,\"\")},u:function(e){return void 0===e}},v=\"en\",x={};x[v]=m;var w=\"$isDayjsObject\",S=function(e){return e instanceof O||!(!e||!e[w])},A=function e(t,n,o){var r;if(!t)return v;if(\"string\"==typeof t){var i=t.toLowerCase();x[i]&&(r=i),n&&(x[i]=n,r=i);var a=t.split(\"-\");if(!r&&a.length>1)return e(a[0])}else{var l=t.name;x[l]=t,r=l}return!o&&r&&(v=r),r||!o&&v},_=function(e,t){if(S(e))return e.clone();var n=\"object\"==typeof t?t:{};return n.date=e,n.args=arguments,new O(n)},j=g;j.l=A,j.i=S,j.w=function(e,t){return _(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var O=function(){function m(e){this.$L=A(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[w]=!0}var b=m.prototype;return b.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(j.u(t))return new Date;if(t instanceof Date)return new Date(t);if(\"string\"==typeof t&&!/Z$/i.test(t)){var o=t.match(h);if(o){var r=o[2]-1||0,i=(o[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(o[1],r,o[3]||1,o[4]||0,o[5]||0,o[6]||0,i)):new Date(o[1],r,o[3]||1,o[4]||0,o[5]||0,o[6]||0,i)}}return new Date(t)}(e),this.init()},b.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},b.$utils=function(){return j},b.isValid=function(){return!(this.$d.toString()===p)},b.isSame=function(e,t){var n=_(e);return this.startOf(t)<=n&&n<=this.endOf(t)},b.isAfter=function(e,t){return _(e)<this.startOf(t)},b.isBefore=function(e,t){return this.endOf(t)<_(e)},b.$g=function(e,t,n){return j.u(e)?this[t]:this.set(n,e)},b.unix=function(){return Math.floor(this.valueOf()/1e3)},b.valueOf=function(){return this.$d.getTime()},b.startOf=function(e,t){var n=this,o=!!j.u(t)||t,u=j.p(e),p=function(e,t){var r=j.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return o?r:r.endOf(l)},h=function(e,t){return j.w(n.toDate()[e].apply(n.toDate(\"s\"),(o?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},y=this.$W,m=this.$M,b=this.$D,g=\"set\"+(this.$u?\"UTC\":\"\");switch(u){case d:return o?p(1,0):p(31,11);case c:return o?p(1,m):p(0,m+1);case s:var v=this.$locale().weekStart||0,x=(y<v?y+7:y)-v;return p(o?b-x:b+(6-x),m);case l:case f:return h(g+\"Hours\",0);case a:return h(g+\"Minutes\",1);case i:return h(g+\"Seconds\",2);case r:return h(g+\"Milliseconds\",3);default:return this.clone()}},b.endOf=function(e){return this.startOf(e,!1)},b.$set=function(e,t){var n,s=j.p(e),u=\"set\"+(this.$u?\"UTC\":\"\"),p=(n={},n[l]=u+\"Date\",n[f]=u+\"Date\",n[c]=u+\"Month\",n[d]=u+\"FullYear\",n[a]=u+\"Hours\",n[i]=u+\"Minutes\",n[r]=u+\"Seconds\",n[o]=u+\"Milliseconds\",n)[s],h=s===l?this.$D+(t-this.$W):t;if(s===c||s===d){var y=this.clone().set(f,1);y.$d[p](h),y.init(),this.$d=y.set(f,Math.min(this.$D,y.daysInMonth())).$d}else p&&this.$d[p](h);return this.init(),this},b.set=function(e,t){return this.clone().$set(e,t)},b.get=function(e){return this[j.p(e)]()},b.add=function(o,u){var f,p=this;o=Number(o);var h=j.p(u),y=function(e){var t=_(p);return j.w(t.date(t.date()+Math.round(e*o)),p)};if(h===c)return this.set(c,this.$M+o);if(h===d)return this.set(d,this.$y+o);if(h===l)return y(1);if(h===s)return y(7);var m=(f={},f[i]=t,f[a]=n,f[r]=e,f)[h]||1,b=this.$d.getTime()+o*m;return j.w(b,this)},b.subtract=function(e,t){return this.add(-1*e,t)},b.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var o=e||\"YYYY-MM-DDTHH:mm:ssZ\",r=j.z(this),i=this.$H,a=this.$m,l=this.$M,s=n.weekdays,c=n.months,u=n.meridiem,d=function(e,n,r,i){return e&&(e[n]||e(t,o))||r[n].slice(0,i)},f=function(e){return j.s(i%12||12,e,\"0\")},h=u||function(e,t,n){var o=e<12?\"AM\":\"PM\";return n?o.toLowerCase():o};return o.replace(y,(function(e,o){return o||function(e){switch(e){case\"YY\":return String(t.$y).slice(-2);case\"YYYY\":return j.s(t.$y,4,\"0\");case\"M\":return l+1;case\"MM\":return j.s(l+1,2,\"0\");case\"MMM\":return d(n.monthsShort,l,c,3);case\"MMMM\":return d(c,l);case\"D\":return t.$D;case\"DD\":return j.s(t.$D,2,\"0\");case\"d\":return String(t.$W);case\"dd\":return d(n.weekdaysMin,t.$W,s,2);case\"ddd\":return d(n.weekdaysShort,t.$W,s,3);case\"dddd\":return s[t.$W];case\"H\":return String(i);case\"HH\":return j.s(i,2,\"0\");case\"h\":return f(1);case\"hh\":return f(2);case\"a\":return h(i,a,!0);case\"A\":return h(i,a,!1);case\"m\":return String(a);case\"mm\":return j.s(a,2,\"0\");case\"s\":return String(t.$s);case\"ss\":return j.s(t.$s,2,\"0\");case\"SSS\":return j.s(t.$ms,3,\"0\");case\"Z\":return r}return null}(e)||r.replace(\":\",\"\")}))},b.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},b.diff=function(o,f,p){var h,y=this,m=j.p(f),b=_(o),g=(b.utcOffset()-this.utcOffset())*t,v=this-b,x=function(){return j.m(y,b)};switch(m){case d:h=x()/12;break;case c:h=x();break;case u:h=x()/3;break;case s:h=(v-g)/6048e5;break;case l:h=(v-g)/864e5;break;case a:h=v/n;break;case i:h=v/t;break;case r:h=v/e;break;default:h=v}return p?h:j.a(h)},b.daysInMonth=function(){return this.endOf(c).$D},b.$locale=function(){return x[this.$L]},b.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),o=A(e,t,!0);return o&&(n.$L=o),n},b.clone=function(){return j.w(this.$d,this)},b.toDate=function(){return new Date(this.valueOf())},b.toJSON=function(){return this.isValid()?this.toISOString():null},b.toISOString=function(){return this.$d.toISOString()},b.toString=function(){return this.$d.toUTCString()},m}(),C=O.prototype;return _.prototype=C,[[\"$ms\",o],[\"$s\",r],[\"$m\",i],[\"$H\",a],[\"$W\",l],[\"$M\",c],[\"$y\",d],[\"$D\",f]].forEach((function(e){C[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),_.extend=function(e,t){return e.$i||(e(t,O,_),e.$i=!0),_},_.locale=A,_.isDayjs=S,_.unix=function(e){return _(1e3*e)},_.en=x[v],_.Ls=x,_.p={},_}()),le.exports}var ce=ie(se()),ue=\"object\"==typeof global&&global&&global.Object===Object&&global,de=\"object\"==typeof self&&self&&self.Object===Object&&self,fe=ue||de||Function(\"return this\")(),pe=fe.Symbol,he=Object.prototype,ye=he.hasOwnProperty,me=he.toString,be=pe?pe.toStringTag:void 0;var ge=Object.prototype.toString;var ve=pe?pe.toStringTag:void 0;function xe(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":ve&&ve in Object(e)?function(e){var t=ye.call(e,be),n=e[be];try{e[be]=void 0;var o=!0}catch(e){}var r=me.call(e);return o&&(t?e[be]=n:delete e[be]),r}(e):function(e){return ge.call(e)}(e)}function we(e){return null!=e&&\"object\"==typeof e}var Se=Array.isArray;function Ae(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function _e(e){if(!Ae(e))return!1;var t=xe(e);return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t}var je,Oe=fe[\"__core-js_shared__\"],Ce=(je=/[^.]+$/.exec(Oe&&Oe.keys&&Oe.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+je:\"\";var Le=Function.prototype.toString;function Te(e){if(null!=e){try{return Le.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}var Ne=/^\\[object .+?Constructor\\]$/,$e=Function.prototype,ke=Object.prototype,De=$e.toString,Me=ke.hasOwnProperty,Ee=RegExp(\"^\"+De.call(Me).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");function Ie(e){return!(!Ae(e)||(t=e,Ce&&Ce in t))&&(_e(e)?Ee:Ne).test(Te(e));var t}function Ve(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Ie(n)?n:void 0}var Fe=Ve(fe,\"WeakMap\"),ze=Object.create,Re=function(){function e(){}return function(t){if(!Ae(t))return{};if(ze)return ze(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),Ue=function(){try{var e=Ve(Object,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}();var Pe=/^(?:0|[1-9]\\d*)$/;function Ge(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&(\"number\"==n||\"symbol\"!=n&&Pe.test(e))&&e>-1&&e%1==0&&e<t}function Ye(e,t){return e===t||e!=e&&t!=t}var We=Object.prototype.hasOwnProperty;function He(e,t,n){var o=e[t];We.call(e,t)&&Ye(o,n)&&(void 0!==n||t in e)||function(e,t,n){\"__proto__\"==t&&Ue?Ue(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}(e,t,n)}function Be(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var Ke=Object.prototype;function qe(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||Ke)}function Qe(e){return we(e)&&\"[object Arguments]\"==xe(e)}var Je=Object.prototype,Xe=Je.hasOwnProperty,Ze=Je.propertyIsEnumerable,et=Qe(function(){return arguments}())?Qe:function(e){return we(e)&&Xe.call(e,\"callee\")&&!Ze.call(e,\"callee\")};var tt=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,nt=tt&&\"object\"==typeof module&&module&&!module.nodeType&&module,ot=nt&&nt.exports===tt?fe.Buffer:void 0,rt=(ot?ot.isBuffer:void 0)||function(){return!1},it={};function at(e){return function(t){return e(t)}}it[\"[object Float32Array]\"]=it[\"[object Float64Array]\"]=it[\"[object Int8Array]\"]=it[\"[object Int16Array]\"]=it[\"[object Int32Array]\"]=it[\"[object Uint8Array]\"]=it[\"[object Uint8ClampedArray]\"]=it[\"[object Uint16Array]\"]=it[\"[object Uint32Array]\"]=!0,it[\"[object Arguments]\"]=it[\"[object Array]\"]=it[\"[object ArrayBuffer]\"]=it[\"[object Boolean]\"]=it[\"[object DataView]\"]=it[\"[object Date]\"]=it[\"[object Error]\"]=it[\"[object Function]\"]=it[\"[object Map]\"]=it[\"[object Number]\"]=it[\"[object Object]\"]=it[\"[object RegExp]\"]=it[\"[object Set]\"]=it[\"[object String]\"]=it[\"[object WeakMap]\"]=!1;var lt=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,st=lt&&\"object\"==typeof module&&module&&!module.nodeType&&module,ct=st&&st.exports===lt&&ue.process,ut=function(){try{var e=st&&st.require&&st.require(\"util\").types;return e||ct&&ct.binding&&ct.binding(\"util\")}catch(e){}}(),dt=ut&&ut.isTypedArray,ft=dt?at(dt):function(e){return we(e)&&Be(e.length)&&!!it[xe(e)]},pt=Object.prototype.hasOwnProperty;function ht(e,t){var n=Se(e),o=!n&&et(e),r=!n&&!o&&rt(e),i=!n&&!o&&!r&&ft(e),a=n||o||r||i,l=a?function(e,t){for(var n=-1,o=Array(e);++n<e;)o[n]=t(n);return o}(e.length,String):[],s=l.length;for(var c in e)!pt.call(e,c)||a&&(\"length\"==c||r&&(\"offset\"==c||\"parent\"==c)||i&&(\"buffer\"==c||\"byteLength\"==c||\"byteOffset\"==c)||Ge(c,s))||l.push(c);return l}function yt(e,t){return function(n){return e(t(n))}}var mt=yt(Object.keys,Object),bt=Object.prototype.hasOwnProperty;function gt(e){return null!=(t=e)&&Be(t.length)&&!_e(t)?ht(e):function(e){if(!qe(e))return mt(e);var t=[];for(var n in Object(e))bt.call(e,n)&&\"constructor\"!=n&&t.push(n);return t}(e);var t}var vt=Ve(Object,\"create\");var xt=Object.prototype.hasOwnProperty;var wt=Object.prototype.hasOwnProperty;function St(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}function At(e,t){for(var n=e.length;n--;)if(Ye(e[n][0],t))return n;return-1}St.prototype.clear=function(){this.__data__=vt?vt(null):{},this.size=0},St.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},St.prototype.get=function(e){var t=this.__data__;if(vt){var n=t[e];return\"__lodash_hash_undefined__\"===n?void 0:n}return xt.call(t,e)?t[e]:void 0},St.prototype.has=function(e){var t=this.__data__;return vt?void 0!==t[e]:wt.call(t,e)},St.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=vt&&void 0===t?\"__lodash_hash_undefined__\":t,this};var _t=Array.prototype.splice;function jt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}jt.prototype.clear=function(){this.__data__=[],this.size=0},jt.prototype.delete=function(e){var t=this.__data__,n=At(t,e);return!(n<0)&&(n==t.length-1?t.pop():_t.call(t,n,1),--this.size,!0)},jt.prototype.get=function(e){var t=this.__data__,n=At(t,e);return n<0?void 0:t[n][1]},jt.prototype.has=function(e){return At(this.__data__,e)>-1},jt.prototype.set=function(e,t){var n=this.__data__,o=At(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this};var Ot=Ve(fe,\"Map\");function Ct(e,t){var n,o,r=e.__data__;return(\"string\"==(o=typeof(n=t))||\"number\"==o||\"symbol\"==o||\"boolean\"==o?\"__proto__\"!==n:null===n)?r[\"string\"==typeof t?\"string\":\"hash\"]:r.map}function Lt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}Lt.prototype.clear=function(){this.size=0,this.__data__={hash:new St,map:new(Ot||jt),string:new St}},Lt.prototype.delete=function(e){var t=Ct(this,e).delete(e);return this.size-=t?1:0,t},Lt.prototype.get=function(e){return Ct(this,e).get(e)},Lt.prototype.has=function(e){return Ct(this,e).has(e)},Lt.prototype.set=function(e,t){var n=Ct(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this};var Tt=yt(Object.getPrototypeOf,Object);function Nt(e){var t=this.__data__=new jt(e);this.size=t.size}Nt.prototype.clear=function(){this.__data__=new jt,this.size=0},Nt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Nt.prototype.get=function(e){return this.__data__.get(e)},Nt.prototype.has=function(e){return this.__data__.has(e)},Nt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof jt){var o=n.__data__;if(!Ot||o.length<199)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new Lt(o)}return n.set(e,t),this.size=n.size,this};var $t=Object.prototype.propertyIsEnumerable,kt=Object.getOwnPropertySymbols,Dt=kt?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,o=null==e?0:e.length,r=0,i=[];++n<o;){var a=e[n];t(a,n,e)&&(i[r++]=a)}return i}(kt(e),(function(t){return $t.call(e,t)})))}:function(){return[]};function Mt(e){return function(e,t,n){var o=t(e);return Se(e)?o:function(e,t){for(var n=-1,o=t.length,r=e.length;++n<o;)e[r+n]=t[n];return e}(o,n(e))}(e,gt,Dt)}var Et=Ve(fe,\"DataView\"),It=Ve(fe,\"Promise\"),Vt=Ve(fe,\"Set\"),Ft=\"[object Map]\",zt=\"[object Promise]\",Rt=\"[object Set]\",Ut=\"[object WeakMap]\",Pt=\"[object DataView]\",Gt=Te(Et),Yt=Te(Ot),Wt=Te(It),Ht=Te(Vt),Bt=Te(Fe),Kt=xe;(Et&&Kt(new Et(new ArrayBuffer(1)))!=Pt||Ot&&Kt(new Ot)!=Ft||It&&Kt(It.resolve())!=zt||Vt&&Kt(new Vt)!=Rt||Fe&&Kt(new Fe)!=Ut)&&(Kt=function(e){var t=xe(e),n=\"[object Object]\"==t?e.constructor:void 0,o=n?Te(n):\"\";if(o)switch(o){case Gt:return Pt;case Yt:return Ft;case Wt:return zt;case Ht:return Rt;case Bt:return Ut}return t});var qt=Object.prototype.hasOwnProperty;var Qt=fe.Uint8Array;function Jt(e){var t=new e.constructor(e.byteLength);return new Qt(t).set(new Qt(e)),t}var Xt=/\\w*$/;var Zt=pe?pe.prototype:void 0,en=Zt?Zt.valueOf:void 0;function tn(e,t,n){var o,r,i,a,l,s=e.constructor;switch(t){case\"[object ArrayBuffer]\":return Jt(e);case\"[object Boolean]\":case\"[object Date]\":return new s(+e);case\"[object DataView]\":return l=Jt((a=e).buffer),new a.constructor(l,a.byteOffset,a.byteLength);case\"[object Float32Array]\":case\"[object Float64Array]\":case\"[object Int8Array]\":case\"[object Int16Array]\":case\"[object Int32Array]\":case\"[object Uint8Array]\":case\"[object Uint8ClampedArray]\":case\"[object Uint16Array]\":case\"[object Uint32Array]\":return function(e){var t=Jt(e.buffer);return new e.constructor(t,e.byteOffset,e.length)}(e);case\"[object Map]\":case\"[object Set]\":return new s;case\"[object Number]\":case\"[object String]\":return new s(e);case\"[object RegExp]\":return(i=new(r=e).constructor(r.source,Xt.exec(r))).lastIndex=r.lastIndex,i;case\"[object Symbol]\":return o=e,en?Object(en.call(o)):{}}}var nn=ut&&ut.isMap,on=nn?at(nn):function(e){return we(e)&&\"[object Map]\"==Kt(e)};var rn=ut&&ut.isSet,an=rn?at(rn):function(e){return we(e)&&\"[object Set]\"==Kt(e)},ln=\"[object Arguments]\",sn=\"[object Function]\",cn=\"[object Object]\",un={};function dn(e,t,n,o,r,i){var a;if(void 0!==a)return a;if(!Ae(e))return e;var l=Se(e);if(l)a=function(e){var t=e.length,n=new e.constructor(t);return t&&\"string\"==typeof e[0]&&qt.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}(e);else{var s=Kt(e),c=s==sn||\"[object GeneratorFunction]\"==s;if(rt(e))return e.slice();if(s==cn||s==ln||c&&!r)a=c?{}:function(e){return\"function\"!=typeof e.constructor||qe(e)?{}:Re(Tt(e))}(e);else{if(!un[s])return r?e:{};a=tn(e,s)}}i||(i=new Nt);var u=i.get(e);if(u)return u;i.set(e,a),an(e)?e.forEach((function(o){a.add(dn(o,t,n,o,e,i))})):on(e)&&e.forEach((function(o,r){a.set(r,dn(o,t,n,r,e,i))}));var d=l?void 0:Mt(e);return function(e,t){for(var n=-1,o=null==e?0:e.length;++n<o&&!1!==t(e[n],n,e););}(d||e,(function(o,r){d&&(o=e[r=o]),He(a,r,dn(o,t,n,r,e,i))})),a}un[ln]=un[\"[object Array]\"]=un[\"[object ArrayBuffer]\"]=un[\"[object DataView]\"]=un[\"[object Boolean]\"]=un[\"[object Date]\"]=un[\"[object Float32Array]\"]=un[\"[object Float64Array]\"]=un[\"[object Int8Array]\"]=un[\"[object Int16Array]\"]=un[\"[object Int32Array]\"]=un[\"[object Map]\"]=un[\"[object Number]\"]=un[cn]=un[\"[object RegExp]\"]=un[\"[object Set]\"]=un[\"[object String]\"]=un[\"[object Symbol]\"]=un[\"[object Uint8Array]\"]=un[\"[object Uint8ClampedArray]\"]=un[\"[object Uint16Array]\"]=un[\"[object Uint32Array]\"]=!0,un[\"[object Error]\"]=un[sn]=un[\"[object WeakMap]\"]=!1;function fn(e){return dn(e,5)}const pn=(e,t)=>{const n=Object.assign({dayjs:ce},t);let o=\"\";const r=[];for(const e in n)o+=`${e},`,r.push(n[e]);o=o.replace(/,$/,\"\");const i=`function (${o}){return ${e}}`;let a;try{a=Function(`\"use strict\";return (${i})`)()(...r)}catch(t){return e}return a},hn=(e=\"\",{textData:t,codeData:n}={},{useNewline:o=!1,useSpace:r=!1}={})=>{const i=window.config||{},a=Object.assign(Object.assign({},i),t),l=String(e||\"\").match(/\\{(.+?)\\}/g);if(null==l||0===l.length)return e;for(let t=0;t<l.length;t++){const o=l[t];let r=o.slice(1,-1).trim();const i=/[\\u4e00-\\u9fa5a-z-_A-Z0-9]*/g,s=r.match(i);for(let e=0;e<s.length;e++){const t=s[e],n=a[t];null!=n&&\"function\"!=typeof n&&(r=r.replace(t,n))}(/\\(.*\\)/g.test(r)||/[+/\\\\*]/g.test(r))&&(r=pn(r,n)),e=e.replace(o,r)}return o&&(e=null==e?void 0:e.replace(/\\n|\\\\n/g,\"<br/>\")),r&&(e=null==e?void 0:e.replace(/\\s{2,}?/g,\" \")),e=e.replace(/Qfw\\((.*?)\\)/,((e,n)=>(null==t?void 0:t.Qfw)?null==t?void 0:t.Qfw(n):n))},yn=(e,t)=>{if(\"string\"==typeof e&&\"string\"==typeof t)return e.toLocaleLowerCase().includes(t.toLocaleLowerCase());if(\"string\"==typeof e&&Array.isArray(t)){const n=t.length;for(let o=0;o<n;o++){const n=t[o];if(\"string\"==typeof n&&e.toLocaleLowerCase().includes(n.toLocaleLowerCase()))return!0}}return!1},mn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),bn=e=>{const t=[];for(const n of e)n.conditions?t.push(...bn(n.conditions)):\"component\"===(null==n?void 0:n.dataType)&&t.push(n);return t};function gn(e){let t=\"\",n=\"\",o=\"\",r=\"\";e.indexOf(\".\")>-1?(n=e.split(\".\")[0],o=e.split(\".\")[1]):n=e;let i=0,a=0;for(a=n.length-1;a>=0;)i%3==0&&0!==i?\"-\"===n[a]?t+=n[a]:t+=\",\"+n[a]:t+=n[a],a--,i++;return t=t.split(\"\").reverse().join(\"\"),r=e.indexOf(\".\")>-1?t+\".\"+o:t,r}function vn(e){return t(this,arguments,void 0,(function*({graphicConfig:e,request:t,INDICATOR_URL:n=\"\",PAGE_ID:o,dataSourceId:r}){var i;try{const{leftAxisList:a=[],rightAxisList:l=[],queryColumnList:s=[],indicators:c=[]}=_(e),u=[...a,...l,...s,...c],d={};for(const e of u){const{indexCode:t=\"\",parentId:n=\"\"}=e;!n||mn(e,\"calcType\")||d[n]||(d[n]=t)}if(null===(i=Object.keys(d))||void 0===i?void 0:i.length){const e=[];for(const i in d)e.push(new Promise(((e,a)=>{t.post(`${n}/diagram/hrpIndexWithComplex`,{pageId:o,indexGuid:i,indexCode:d[i],dataSourceId:r}).then((t=>{var n;const{success:o,data:r=[]}=t.data;o&&(null===(n=null==r?void 0:r.dataViewColumns)||void 0===n?void 0:n.length)?e(r.dataViewColumns):a(r)})).catch((e=>{console.error(e),a(e)}))})));const i=yield Promise.all(e);return i.reduce(((e,t)=>e.filter((e=>t.find((t=>t.typeGuid===e.typeGuid)))))).filter((e=>e.typeGuid))}}catch(e){console.error(e)}return[]}))}const xn=[\"table\",\"bar\",\"combograph\",\"line\",\"pie\",\"radar\",\"scatter\",\"list\",\"circulate\"];let wn=new Map;const Sn=[\"keyValue\",\"conditionKey\",\"conditionLabel\",\"conditionName\",\"conditionValueType\",\"customValue\",\"id\",\"keyName\"],An=e=>wn.get(e),_n=(e,t)=>{if(t)mn(e,\"indexCode\")&&(e.hrpIndexCode=e.indexCode,delete e.indexCode),mn(e,\"indexCodeNum\")&&(e.hrpIndexCodeNum=e.indexCodeNum,delete e.indexCodeNum),mn(e,\"dataType\")&&delete e.dataType,e.fieldValue||delete e.fieldValue;else{const{calcWays:t=[],dateCalcTypes:n=[],activeKey:o,componentId:r=\"\"}=e;if(5===o&&(null==t?void 0:t.length)&&(null==n?void 0:n.length)&&r){const o=t[0].split(\"-\");(null==o?void 0:o.length)>1&&\"rangeValue\"===o[0]&&(e.calcWays=((e,t={})=>{const{around:n,unit:o,id:r}=e;let i=\"\";const{pageMode:a=\"\",componentList:l=[]}=(null==t?void 0:t.graphicConfig)||{};let s=null,c=null;if(\"design\"===a){const e=null==l?void 0:l.find((e=>e.id===r));if(!e)return[];const{interval:t,intervalUnit:n,startTime:o,endTime:i,operate:a,useCurrentTime:u}=e||{};if(u&&(s=ce().subtract(t,n),c=ce()),o&&(s=ce(o)),i&&(c=ce(i)),a){const{type:e,value:t,mode:n}=a;switch(e){case\"add\":s=s?s.add(t,n):s,c=c?c.add(t,n):c;break;case\"minus\":s=s?s.subtract(t,n):s,c=c?c.subtract(t,n):c}}}else{const e=An(r)||{};_(e.startTime)&&(s=ce(_(e.startTime))),_(e.endTime)&&(c=ce(_(e.endTime)))}s&&c&&(i=`${\"before\"===n?\"-\":\"\"}${c.diff(s,o.toLowerCase())+1}`);return i?[i]:[]})({around:o[1],unit:n[0],id:r})),delete e.radioValue}if(mn(e,\"dataType\")){if(\"DATE\"===e.fieldType&&(e.label=e.fieldName),\"component\"===e.dataType)if(\"PARENT\"===e.fieldValue){let t=e.modelKey;t&&e.prop&&(t+=`-${e.prop}`),e.fieldValue=\"${\"+t+\"}\"}else e.fieldValue=\"${\"+e.fieldValue+\"}\";delete e.dataType}mn(e,\"activeKey\")&&delete e.activeKey,mn(e,\"radioValue\")&&delete e.radioValue,mn(e,\"indexCode\")&&(e.hrpIndexCode=e.indexCode,delete e.indexCode),mn(e,\"indexCodeNum\")&&(e.hrpIndexCodeNum=e.indexCodeNum,delete e.indexCodeNum),\"component\"!==e.dataType&&e.useCurrentTime&&(e.fieldValue=ce().format(e.dateFormat)),mn(e,\"modelKey\")&&delete e.modelKey,mn(e,\"prop\")&&delete e.prop,delete e.useCurrentTime}},jn=(e,t)=>{const n=[];return(null==e?void 0:e.length)&&fn(e).forEach((e=>{if(e.join&&e.conditions){const o=!e.conditions.some((e=>e.join&&e.conditions));e.conditions.forEach(((r,i)=>{_n(r,t);const a={};if(i<e.conditions.length-1&&(a.join=e.join),o)n.push(Object.assign(Object.assign({},a),r));else if(r.join&&r.conditions){const e=t?\"sqlConditions\":\"conditions\";n.push(Object.assign({[e]:jn([r],t)},a))}else n.push(Object.assign(Object.assign({},a),r))}))}else _n(e,t),n.push(e)})),n},On=(e={},t)=>{if((null==e?void 0:e.sortCpnts)&&t){const n=kn(e);n&&(t.sort=n)}const{label:n,name:o,location:r,show:i,indexCode:a,indexCodeNum:l,calcType:s=\"COLUMN\",builtInFormula:c,builtInValueSource:u,builtInCalcWay:d,formula:f,conditions:p,aggregate:h,distinct:y,dimByCount:m,dataTo:b,sort:g}=e;let v;if(p&&(v=jn(p)),\"COMPONENT\"===s){const e={};return Nn(e,u),{label:n.trim(),columnName:o,show:i,calcType:s,componentAlias:d,componentValue:e.fieldValue||null}}const x={label:n.trim(),columnName:o,location:r,show:i,calcType:\"1\"===b?\"VIEW\":s,hrpIndexCode:a,hrpIndexCodeNum:l,aggregate:h,builtInFormula:c,builtInValueSource:u,formula:f,conditions:v};if(g&&(x.sort={columnName:o,label:x.label,order:g,type:\"NORMAL\"}),\"DATE_OFFSET\"!==c)return\"the_count\"===o&&(x.calcType=\"AGGREGATE\",x.distinct=!!y,x.typeGuid=m),Object.assign(Object.assign({},x),{builtInCalcWay:d});{const e=d.split(\"-\");if(3===(null==e?void 0:e.length)){let t=e[0];return\"before\"===e[2]&&\"0\"!==e[0]&&(t=`-${e[0]}`),Object.assign(Object.assign({},x),{calcWays:[t],dateCalcTypes:[e[1]]})}}},Cn=e=>{if(!e)return[];const t=fn((null==e?void 0:e.controlList)||[]).filter((e=>\"parentCode\"!==e.conditionKey)),{classificationList:n=[],rowHeaderList:o=[],dimensionList:r=[],seriesList:i=[],leftAxisList:a=[],rightAxisList:l=[],queryColumnList:s=[],indexLibColumns:c=[],indicators:u=[]}=e;Tn(t);const d=[...n,...o,...r,...i,...a,...l,...s,...c,...u],f=[];for(const e of d){const t=bn((null==e?void 0:e.conditions)||[]);if(null==t?void 0:t.length){const e=t.filter((e=>\"component\"===(null==e?void 0:e.dataType))).map((e=>{const t={};return(null==e?void 0:e.dateFormat)&&(t.format=e.dateFormat),\"PARENT\"===e.fieldValue&&(t.id=\"PARENT\",t.keyName=e.modelKey,t.modelKey=e.modelKey,t.prop=e.prop),Object.assign({conditionKey:e.fieldName,conditionLabel:e.fieldName,conditionName:e.fieldName,conditionValueType:e.fieldType,id:e.componentId,keyName:e.fieldValue,rule:e.rule,notGlobal:!0,indexCode:e.indexCode,typeGuid:e.typeGuid,indexCodeNum:e.indexCodeNum},t)}));if(null==e?void 0:e.length)for(const t of e)f.find((e=>e.keyName===t.keyName))||f.push(t)}}const p=f.length,h=t;for(let e=0;e<p;e++){const t=f[e];if(\"parentCode\"===(null==t?void 0:t.conditionKey))continue;const{id:n,keyName:o,prop:r,format:i,modelKey:a,dataType:l=\"component\",customValue:s}=t,c=Ln(t);Nn(c,n,{prop:r,dateFormat:i,modelKey:a,keyName:o}),\"\"===l&&(c.fieldValue=s||\"\"),h.push(c)}for(let e=h.length-1;e>=0;e--){const t=h[e];if(!t.globalCondition){bn(h).find((e=>e.alias===t.alias&&e.globalCondition))&&h.splice(e,1)}}return h};function Ln(e){const{id:t,keyName:n,conditionLabel:o,conditionKey:r,conditionValueType:i,prop:a,rule:l=\"NONE\",notGlobal:s=!1,indexCode:c,typeGuid:u,indexCodeNum:d,dataType:f=\"component\"}=e;let p=n||t;p&&a&&(p+=`-${a}`);let h=l;return\"NONE\"===h&&(h=[\"startTime\",\"endTime\"].includes(a)?\"startTime\"===a?\"GREATER_EQUAL\":\"LESS_EQUAL\":(null==n?void 0:n.includes(\"startTime\"))?\"GREATER_EQUAL\"===a:(null==n?void 0:n.includes(\"endTime\"))?\"LESS_EQUAL\"===a:\"EQUAL\"),\"PARENT\"===t&&(p=e.modelKey,p&&a&&(p+=`-${a}`),h=l),{rule:h,label:o,fieldName:r,fieldValue:\"\",valueType:i,alias:p,globalCondition:!s,indexCode:c,typeGuid:u,indexCodeNum:d,dataType:f}}function Tn(e){if(null==e?void 0:e.length)for(const t of e)if(null==t?void 0:t.conditions)Tn(t.conditions);else{const{id:e,keyName:n,prop:o,modelKey:r,format:i,dataType:a=\"component\",customValue:l}=t,s=Ln(t);Nn(s,e,{prop:o,dateFormat:i,modelKey:r,keyName:n}),\"\"===a&&(s.fieldValue=l||\"\");for(const e in s)t[e]=s[e];for(const e of Sn)delete t[e]}}function Nn(e,t,n){const{prop:o=\"\",dateFormat:r=\"\",modelKey:i=\"\",keyName:a=\"\",operateValue:l,operateMode:s,operateType:c}=n||{},u=i||a;if(\"PARENT\"===t&&u&&o){const t=window.config.record;let n=o,i=r;const a=o.match(/\\{(.+?)\\}/g);if(null==a?void 0:a.length){const t=a[0].slice(1,-1).trim();n=o.replace(a[0],\"\"),i=t,e.dateFormat=i}if(t&&t[u]){const o=_(t[u][n]);ce.isDayjs(o)?e.fieldValue=o.format(i||\"YYYY-MM-DD\"):e.fieldValue=o}return}const d=An(t)||{},{value:f,format:p=\"YYYY-MM-DD\",type:h=\"\",useCurrentTime:y,RECORD:m}=d||{},b=r||p;if(yn(h,\"date\")){let t;if(t=y?f?_(f):ce():_(f),\"string\"==typeof t&&(t=ce(t)),l&&s&&c)switch(c){case\"add\":t=t.add(l,s);break;case\"minus\":t=t.subtract(l,s)}e.fieldValue=null==t?void 0:t.format(b),e.dateFormat=b}else if(yn(h,\"rangepicker\")){let t=o;if(!o){const e=a&&a.split(\"-\");(null==e?void 0:e.length)&&(t=e[e.length-1])}if(!t)return;let n=null;if(_(d[t])&&(n=ce(_(d[t]))),l&&s&&c)if(\"rangeValue\"===l){if(d.startTime&&d.endTime){const e=_(d.endTime).diff(_(d.startTime),s)+1;switch(c){case\"add\":n=n?n.add(e,s):n;break;case\"minus\":n=n?n.subtract(e,s):n}}}else if(!isNaN(+l))switch(c){case\"add\":n=n?n.add(l,s):n;break;case\"minus\":n=n?n.subtract(l,s):n}if(n&&(e.fieldValue=null==n?void 0:n.format(b)),\"rangeValue\"===t&&d.startTime&&d.endTime){const t=function(e){const t=e.split(\"-\");let n=\"\";if(null==t?void 0:t.length)switch(t[t.length-1]){case\"YYYY\":n=\"year\";break;case\"MM\":n=\"month\";break;case\"DD\":n=\"day\"}return n}(b);t&&(e.fieldValue=_(d.endTime).diff(_(d.startTime),t)+1)}e.dateFormat=b}else yn(h,xn)?e.fieldValue=i&&m?m[i]:!i&&m?m.value:_(f):yn(h,\"select\")&&Array.isArray(_(f))?e.fieldValue=_(f).join(\",\"):e.fieldValue=_(f)}const $n=e=>{var t;if(e){const n=Array.isArray(e)?fn(e):[fn(e)];let o=\"\",r=[];const i=[],a=[],l=[];for(const e of n){if(e.defaultCode&&(e.label=e.columnName,delete e.defaultCode),\"CUSTOM\"===e.type&&(r=e.customOrderColumns),o=e.type,i.push(e.label),null===(t=e.columnName)||void 0===t?void 0:t.includes(\"_ecanrepeat_\")){const t=e.columnName.split(\"_ecanrepeat_\");a.push(t[0])}else a.push(e.columnName);l.push(e.order)}return\"CUSTOM\"!==o&&(null==i?void 0:i.length)>1&&(o=\"COMBINATION\"),\"CUSTOM\"===o?{label:i.join(\",\"),columnName:a.join(\",\"),type:o,customOrderColumns:r}:{label:i.join(\",\"),columnName:a.join(\",\"),order:l.join(\",\"),type:o}}return e},kn=e=>{const{sortCpnts:t=[]}=e;let n,o=\"\";for(const e of t){const t=An(e)||{},{type:n,RECORD:r}=t;if(yn(n,\"image\")&&yn(null==r?void 0:r.value,[\"asc\",\"desc\"])){o=r.value.toUpperCase();break}}return o&&(n={label:e.label,columnName:e.name,order:o,type:\"NORMAL\"}),n},Dn=(t,n={})=>{var o,r,i,a,l,s,c,u;const{graphicConfig:d,type:f,globalModel:p,isGroupTable:h=!1}=t;p&&(wn=p);const y=yn(f,\"pivottable\");let m,{source:b,dataViewId:g,plugin:v=\"1\",layer:x,chartType:w,classificationList:S=[],rowHeaderList:A=[],dimensionList:_=[],seriesList:j=[],leftAxisList:O=[],rightAxisList:C=[],queryColumnList:L=[],indexLibColumns:T=[],indicators:N=[],controlList:$=[],formFields:k={},variableList:D=[],variableConditions:M=[],dataSourceId:E=\"\",idxLibMode:I,preview:V=!1,edvDataSetId:F,compositeIndicator:z}=d||{},R=[];if(\"design\"===(null==d?void 0:d.pageMode)?(R=(null!==(o=d.sqlConditions)&&void 0!==o?o:[]).map((e=>{const t={};if(mn(e,\"globalCondition\")||e.join||(t.globalCondition=!0),!e.join){const n=e.rule||\"EQUAL\";t.rule=\"NONE\"===n?\"EQUAL\":n}return Object.assign(Object.assign({},e),t)})),(null==M?void 0:M.length)&&(R=R.concat(M))):(R=Cn(d),(null==D?void 0:D.length)&&(R=R.concat(function(e){const t=[];if(null==e?void 0:e.length)for(const n of e)if(n.variableName){const e={variateName:n.variableName,globalCondition:!1,valueType:n.variableType,alias:n.keyName||\"\"};Nn(e,n.id,{dateFormat:n.format,prop:n.dateTypeValue,keyName:n.keyName,operateType:n.operateType,operateMode:n.operateMode,operateValue:n.operateValue}),\"\"===n.dataType&&(e.fieldValue=n.variableValue),n.format&&(e.dateFormat=n.format),n.label&&(e.label=n.label),t.push(e)}return t}(D)))),null==R?void 0:R.length){const e=R.filter((e=>e.globalCondition)),t=R.filter((e=>!e.globalCondition));(null==e?void 0:e.length)>1&&(R=[{join:\"&&\",conditions:e},...t])}(null==R?void 0:R.length)&&(R=jn(R,\"1\")),null==x&&(x=yn(f,[\"table\",\"card\"])||yn(f,[\"list\",\"circulate\"])&&(null==S?void 0:S.length)>1?\"1\":yn(f,[\"select\",\"checkbox\",\"radio\"])?\"3\":yn(f,[\"indexPanel\"])?\"4\":\"2\"),yn(f,[\"indexPanel\"])&&(v=\"3\");const U=[];let P,G=\"\";if(Array.isArray(S)&&S.length>0&&(![\"ecanList\",\"ecanCirculate\"].includes(f)||1===(null==S?void 0:S.length))){const e=S.length;for(let t=0;t<e;t++){const n=S[t]||{},{label:o=\"\",name:i=\"\",show:a=!1,sort:l,customGroup:s,conditions:c,dateFormat:u,typeGuid:d=\"\",truncations:p=[]}=n;if(a||1===e){G=d,m={label:o.trim(),columnName:i,show:a,sort:kn(n)||$n(l)||l,customGroup:s,conditions:jn(c),typeGuid:d},u&&(m.dateFormat=u),\"the_date\"!==i||m.dateFormat||(m.dateFormat=\"YYYY-MM-DD\");const e={};if(Array.isArray(p)&&p.length>0){const t=p.length;for(let n=0;n<t;n++){const t=p[n]||{},{rule:o=\"\",num:r=0,name:i=\"\"}=t;o&&r&&(e.num=r,e.rule=o,i&&(e.otherGroupName=i))}}if((null===(r=Object.keys(e))||void 0===r?void 0:r.length)&&(m.truncation=e),!yn(f,[\"scatter\",\"valueline\"]))break;U.push(m)}}}if(Array.isArray(j)&&j.length>0){const e=j.length;for(let t=0;t<e;t++){const n=j[t]||{},{label:o=\"\",name:r=\"\",show:i=!1,sort:a,customGroup:l,conditions:s,typeGuid:c,dateFormat:u=\"\"}=n;if(i||1===e){P={label:o.trim(),columnName:r,show:i,sort:$n(a),customGroup:l,conditions:jn(s),typeGuid:c},u?P.dateFormat=u:\"the_date\"===r&&(P.dateFormat=\"YYYY-MM-DD\");break}}}const Y=[];null==O||O.forEach((e=>{e.location=\"LEFT\",Y.push(On(e,m))})),null==C||C.forEach((e=>{e.location=\"RIGHT\",Y.push(On(e,m))}));let W=N;(null==n?void 0:n.pivotTableCal)&&(W=(null===(i=n.pivotTableCal)||void 0===i?void 0:i.indicators)||[]),null==W||W.forEach((e=>{e.location=\"LEFT\",Y.push(On(e,m))}));const H=[];[\"ecanList\",\"ecanCirculate\"].includes(f)&&(null==S?void 0:S.length)>1&&(L=S),(null==n?void 0:n.pivotTableCal)&&(L=(null===(a=n.pivotTableCal)||void 0===a?void 0:a.dimensions)||[]),null==L||L.forEach((e=>{const{label:t,name:o,location:r,show:i,indexCode:a,sort:l,typeGuid:s,indexCodeNum:c,dateFormat:u,conditions:d}=e;let f=$n(l);if(n.sort){const{field:o,order:r}=n.sort;let i=Y.find((e=>e.label===o));i||t!==o||(i=e),i&&(f={columnName:i.columnName,label:n.sort.field,order:r.toUpperCase(),type:\"NORMAL\"})}const p={label:t,columnName:o,location:r,show:i,sort:f,calcType:\"COLUMN\",hrpIndexCode:a,hrpIndexCodeNum:c,conditions:jn(d),typeGuid:s};u&&(p.dateFormat=u),\"the_date\"!==o||p.dateFormat||(p.dateFormat=\"YYYY-MM-DD\"),H.push(p)}));const B=[];[\"ecanTable\"].includes(f)&&d.isIndexSet&&T.forEach((e=>{const t={label:e.label,calcType:e.calcType,show:e.show};e.formula&&(t.formula=e.formula),B.push(t)}));let K=[],q=[];if(Array.isArray(A)&&A.length>0?q=A:Array.isArray(_)&&_.length>0&&(q=_),null==q?void 0:q.length){const e=q.length;for(let t=0;t<e;t++){const e=q[t]||{},{label:o=\"\",name:r=\"\",show:i=!1,sort:a,customGroup:s,conditions:c,truncations:u,typeGuid:d=\"\",dateFormat:f}=e;let p=$n(a);if(n.sort){const{field:t,order:o}=n.sort;let r=Y.find((e=>e.label===t));r||e.label!==t||(r=e),r&&(p={columnName:r.columnName,label:n.sort.field,order:o.toUpperCase(),type:\"NORMAL\"})}const h={label:o.trim(),columnName:r,show:i,sort:p,customGroup:s,conditions:jn(c),typeGuid:d};f&&(h.dateFormat=f),\"the_date\"!==r||h.dateFormat||(h.dateFormat=\"YYYY-MM-DD\");const y={};if(Array.isArray(u)&&u.length>0){const e=u.length;for(let t=0;t<e;t++){const e=u[t]||{},{rule:n=\"\",num:o=0,name:r=\"\"}=e;n&&o&&(y.num=o,y.rule=n,r&&(y.otherGroupName=r))}}(null===(l=Object.keys(y))||void 0===l?void 0:l.length)&&(h.truncation=y),K.push(h)}}let Q,J=[];const X=[];if(null==n?void 0:n.pivotTableCal){let t=[];const{calc:o=[],filter:r=[],truncations:i=[],sorts:a=[],aggregateMethod:l=[],rowDimensionKeys:u=[],colDimensionKeys:d=[]}=n.pivotTableCal;if(Y.push(...o),null==r?void 0:r.length){const n=function e(t){const n=[];for(const o of t)o.conditions?n.push(...e(o.conditions)):\"the_date\"===o.conditionKey&&n.push(o);return n}($);for(const o of r){const{type:r}=o,i=e(o,[\"type\"]);\"indicators\"===r?t=Y:\"dimension\"===r&&(t=H);const a=t.find((e=>e.columnName===o.fieldName&&e.label===o.label));if(a)if(\"indicators\"===r)a.filter={rule:i.rule,fieldValue:i.fieldValue};else if(\"dimension\"===r){let e=!0;\"the_date\"===i.fieldName&&2===(null==n?void 0:n.length)&&(e=!1,X.push(i)),e&&(a.conditions||(a.conditions=[]),a.conditions.push(i))}}}if(null==i?void 0:i.length)for(const e of i){const t=H.find((t=>t.label===e.key));t&&(t.truncation={num:e.num,rule:e.rule})}if(null==a?void 0:a.length)for(const n of a){const{fieldType:o,columnData:r}=n,i=e(n,[\"fieldType\",\"columnData\"]);\"indicators\"===o?(t=Y,Q=r):\"dimension\"===o&&(t=H);const a=t.find((e=>e.label===i.label));a&&(a.sort=Object.assign(Object.assign({},i),{columnName:a.columnName}))}if(null===(s=Object.keys(l))||void 0===s?void 0:s.length)for(const e in l){const t=H.find((t=>t.label===e));t&&(null===(c=l[e])||void 0===c?void 0:c.length)&&(t.aggregateMethod=l[e])}K=[],J=[];for(const e of H)u.includes(e.columnName)?K.push(e):d.includes(e.columnName)&&J.push(e)}if(yn(f,[\"text\",\"proportion\",\"counter\"])?w=\"zb\":yn(f,[\"valueline\"])?w=\"valueline\":yn(f,[\"indexPanel\"])&&(w=\"indexPanel\"),h||\"card\"===f){if(0===K.length||0===Y.length)return;w=\"grouptable\"}else{if(\"1\"===x&&!H.length&&!B.length)return;if([\"2\",\"4\"].includes(x)&&0===Y.length)return;if(!(\"3\"!==x||(G||\"EDV_DATA_SET\"===b)&&k.labelField&&k.valueField))return;if(\"3\"===x&&\"ecanDataSelect\"===f&&0===Y.length)return}let Z;if((null==_?void 0:_.length)&&(x=\"1\",w=\"grouptable\"),!yn(f,[\"scatter\",\"valueline\"])&&(null===(u=Object.keys(k))||void 0===u?void 0:u.length)){const e=bn($).find((e=>\"parentCode\"===e.conditionKey)),n={};if(e){const t=An(e.id)||{};if(!(null==t?void 0:t.itemCodes))return;n.parentItemCodes=t.itemCodes}\"ecanDataSelect\"===f&&(n.indicatorList=Y.filter((e=>e.show))),\"EDV_DATA_SET\"===b&&(n.edvDataSetId=F),m.sort&&(n.sort=m.sort),Z=Object.assign({url:\"/diagram/formData\",source:b,dataViewId:g,plugin:\"4\",layer:x,chartType:\"normalSelect\",rangeIndexTypeGuid:G,type:\"ecanDataSelect\"===f?\"normalSelectData\":\"normalSelect\",labelField:k.labelField,valueField:k.valueField,sqlConditions:R,idxLibMode:\"WITH_DATE_DIM_TABLE\",dataSourceId:E,keyName:t.keyName},n)}else{let e={};e=yn(f,[\"scatter\",\"valueline\"])?{classifications:U}:{classification:m},(null==B?void 0:B.length)&&(e.indexLibColumns=B,e.isIndexSet=!0),yn(f,\"table\")&&d.isIndexSet&&(e.compositeIndicator=z);const n=R.map((e=>{const{fieldValue:t}=e,n={};return t&&Array.isArray(t)&&(n.fieldValue=JSON.stringify(t)),Object.assign(Object.assign({},e),n)}));(null==X?void 0:X.length)&&function e(t){for(const n of t)if(n.sqlConditions)e(n.sqlConditions);else if(\"the_date\"===n.fieldName){const e=X.find((e=>e.prop===n.prop));e&&(n.fieldValue=e.fieldValue)}}(n),Z=Object.assign({url:\"/diagram\",source:b,dataViewId:g,plugin:y?\"5\":v,layer:x,chartType:y?\"pivot-table\":w,series:P,indicatorList:Y,queryColumns:h?[]:H,pageFlag:!0,edvDataSetId:F||\"\",sqlConditions:n,idxLibMode:I,dataSourceId:E,preview:V,rowHeaders:K,keyName:t.keyName,columnData:Q,columnHeaders:J},e)}return Z},Mn=(e=[],t,n=!1)=>{let{name:o=\"name\",types:r=[]}=t||{};o=(null==o?void 0:o.trim())||o;const i=new Set,a=new Map,l=e.length,s=r.length;if(1!==l||n)for(let t=0;t<l;t++){const n=e[t],l=n[o];i.add(l);for(let e=0;e<s;e++){const t=r[e],{label:o,value:i}=t,l=Object.assign(Object.assign({},n),{value:n[i]});if(a.has(o)){const e=a.get(o);e.push(l),a.set(o,e)}else a.set(o,[l])}}else{const t=[];for(let n=0;n<s;n++){const o=r[n],{label:a,value:l}=o,s=Object.assign(Object.assign({},e[0]),{value:e[0][l]});i.add(a),t.push(s)}const n=e[0][o]||\"\";a.set(n,t)}const c=Array.from(i),u=[];for(const[e,t]of a)u.push({name:e,data:t});return{dimensions:c,dataset:u}},En=(e,t)=>{let{name:n=\"name\",value:o=\"value\",type:r=\"type\"}=t||{};n=null==n?void 0:n.trim(),o=null==o?void 0:o.trim(),r=null==r?void 0:r.trim();const i=new Map,a=e.length;for(let t=0;t<a;t++){const a=e[t],l=a[n]||\"\",s=a[o]||\"\",c=a[r]||\"\";if(i.has(c)){const e=i.get(c);e.push(Object.assign({name:l,value:s},a)),i.set(c,e)}else i.set(c,[Object.assign({name:l,value:s},a)])}const l=[],s=[];for(const[e,t]of i)if(s.push({name:e,data:t}),null==t?void 0:t.length)if(l.length)for(const e of t)l.includes(e.name)||l.push(e.name);else l.push(...t.map((e=>e.name)));return{dimensions:l,dataset:s}},In=(e,t)=>{var n;if(null==e)return t;const o=e.match(/\\{.*\\}/g);if(null==o||0===o.length)return t;const r=o.length;for(let i=0;i<r;i++){const r=o[i];if(null==r||\"\"===r)break;let a=null===(n=r.slice(1,-1))||void 0===n?void 0:n.trim();a=null==a?void 0:a.replace(/value/g,t);try{let t=a;(/\\(.*\\)/g.test(a)||/[+/\\\\*]/g.test(a))&&(t=pn(a)),e=e.replace(r,t)}catch(t){e=e.replace(r,a)}}return e};function Vn(e){return e.isShowMarkLine?{markLine:{data:[{type:e.markLineType}]}}:{}}const Fn=(e,t,n)=>{const o=e.yAxisLabelFormatter,r=e.xAxisLabelFormatter,{dimensions:i=[],dataset:a=[]}=t,l=re((()=>{const{gradientShow:t,gradientColors:n,gradientOffset:o,barBorderRadius:r}=e,i=a,l=i.length,s=[];for(let a=0;a<l;a++){const l=Object.assign(Object.assign({},i[a]),{type:\"bar\",barWidth:e.barWidth,showBackground:e.showBarBackground}),{isStack:c,stackColumns:u}=e;if(c&&u.includes(i[a].name||!u)&&(l.stack=\"stack\"),l.label={show:e.labelShow,fontSize:e.labelFontSize,position:e.labelPosition,color:e.labelColor,width:e.labelWidth,overflow:e.labelOverflow,formatter:t=>{let n=\"\",o=e.labelFormatter;\"\"===o&&(o=\"{c}\");const{seriesName:r,name:i,value:a,data:l}=t||{};return n+=hn(o,{textData:Object.assign({name:i,value:a,a:r,b:i,c:a||0},l)},{useNewline:!0,useSpace:!0}),n}},l.itemStyle={},t&&(l.itemStyle={color:{x:e.isUseHorizontalAxis?1:0,y:0,x2:0,y2:e.isUseHorizontalAxis?0:1,colorStops:[{offset:0,color:e.colors[a]},{offset:o,color:n[a]},{offset:1,color:n[a]}]}}),r){const e=r.split(\",\");if(null==e?void 0:e.length){const t=[];for(const n of e){const e=parseFloat(n);isNaN(e)||t.push(e)}l.itemStyle.barBorderRadius=t}}e.isShowMarkLine&&(l.markLine={data:[{type:e.markLineType}]}),s.push(l)}return s})),s=re((()=>i.map((e=>{let t={};return t=e&&\"object\"==typeof e?Object.assign(Object.assign({},e),{textStyle:{fontSize:n}}):{value:e,textStyle:{fontSize:n}},t}))));return{tooltip:{trigger:\"axis\",show:e.tooltipShow,formatter:t=>{const n=t.length;let o=\"\",i=e.tooltipFormatter;\"\"===i&&(i=\"{marker} {a} {c}\");for(let e=0;e<n;e++){const{marker:n,seriesName:a,name:l,value:s,data:c}=t[e]||{};if(0===e){let e=l;\"string\"!=typeof l||\"0\"!==l[0]||isNaN(+l)||(e=(+l).toString()),o+=`${In(r,e)}<br/>`}o+=hn(i,{textData:Object.assign({marker:n,name:l,value:s,Qfw:gn,a:a,b:l,c:s||0},c)},{useNewline:!0,useSpace:!0}),o+=\"<br/>\"}return o},textStyle:{color:e.tooltipTextStyleColor,fontSize:n},position:e.tooltipPosition||void 0,backgroundColor:e.tooltipBackgroundColor||\"#fff\"},legend:{type:e.legendScroll?\"scroll\":\"plain\",width:e.legendWidth,height:e.legendHeight,show:e.legendShow,orient:e.legendOrient,top:e.legendTop,left:e.legendLeft,textStyle:{rich:{text:{width:e.legendTextWidth,color:e.legendTextStyleColor,fontSize:e.legendFontSize}}},itemHeight:e.legendItemHeight,itemWidth:e.legendItemWidth,itemGap:e.legendItemGap,data:a.map(((t,n)=>({name:t.name,itemStyle:{color:e.colors[n]},icon:e.legendType}))),formatter:t=>((e=\"\",t)=>{var n;const o=e.match(/\\{(.+?)\\}/g),r=(null===(n=e.split(\"\\n\"))||void 0===n?void 0:n.length)-1;let i=\"\";if(r)for(let e=0;e<r;e++)i+=\"\\n\";let a=e;if(null==o?void 0:o.length){for(const e of o){const n=hn(e,{textData:t},{useNewline:!1,useSpace:!1});n&&(a=a.replace(e,n))}return`${i}{text|${a}}`}return e})(e.legendFormatter,{name:t})},xAxis:{type:e.isUseHorizontalAxis?\"value\":\"category\",data:e.isUseHorizontalAxis?null:_(s),inverse:e.isUseHorizontalAxis?e.xAxisInverse:e.axisInverse,minInterval:e.xAxisMinInterval,splitLine:{show:e.xAxisSplitLineShow,lineStyle:{color:e.xAxisSplitLineStyleColor,type:e.xAxisSplitLineType},interval:e.xAxisSplitLineInterval},splitArea:{show:e.xAxisSplitAreaShow},axisLabel:{color:e.xAxisLabelColor,interval:e.xAxisLabelInterval||0,rotate:e.xAxisLabelRotate,width:e.xAxisLabelWidth,overflow:e.xAxisLabelOverflow,fontSize:e.xAxisLabelFontSize,formatter:e=>(\"string\"!=typeof e||\"0\"!==e[0]||isNaN(+e)||(e=(+e).toString()),In(r,e))},axisLine:{show:e.xAxisLineShow,lineStyle:{color:e.xAxisLineStyleColor}},axisTick:{show:e.xAxisTickShow},name:e.xAxisName,nameTextStyle:{fontSize:e.xAxisLabelFontSize,color:e.xAxisLabelColor,align:\"left\"},max:e.xAxisMaxValue||null},yAxis:{type:e.isUseHorizontalAxis?\"category\":\"value\",data:e.isUseHorizontalAxis?_(i):null,inverse:e.isUseHorizontalAxis?e.axisInverse:e.yAxisInverse,minInterval:e.yAxisMinInterval,splitLine:{show:e.yAxisSplitLineShow,lineStyle:{color:e.yAxisSplitLineStyleColor,type:e.yAxisSplitLineType}},splitArea:{show:e.yAxisSplitAreaShow},axisLabel:{show:e.yAxisLabelShow,fontSize:e.yAxisLabelFontSize,color:e.yAxisLabelColor,rotate:e.yAxisLabelRotate,width:e.yAxisLabelWidth,overflow:e.yAxisLabelOverflow,formatter:e=>In(o,e)},axisLine:{show:e.yAxisLineAlwaysDisplay,lineStyle:{color:e.yAxisLineStyleColor}},name:e.yAxisName,nameTextStyle:{fontSize:e.yAxisLabelFontSize,color:e.yAxisLabelColor,align:\"right\"},max:e.yAxisMaxValue||null},series:_(l)}},zn=(e,t,n)=>{const o=e.yAxisLabelFormatter,r=e.xAxisLabelFormatter,{dimensions:i=[],dataset:a=[]}=t,l=re((()=>i.map((e=>{let t={};return t=e&&\"object\"==typeof e?Object.assign(Object.assign({},e),{textStyle:{fontSize:n}}):{value:e,textStyle:{fontSize:n}},t})))),s=re((()=>{const t=[],n=a.length;for(let o=0;o<n;o++){const n={};e.shadowColor&&(n.shadowColor=e.shadowColor,n.shadowBlur=e.shadowBlur,n.shadowOffsetY=e.shadowOffsetY,n.shadowOffsetX=e.shadowOffsetX),t.push(Object.assign(Object.assign(Object.assign({type:\"line\"},a[o]),{symbolSize:e.symbolSize,smooth:e.smooth,areaStyle:{color:e.areaGradientShow?{type:\"linear\",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:e.colors[o]},{offset:1,color:e.areaGradientColor||\"transparent\"}],global:!1}:e.colors[o],opacity:e.areaStyleOpacity},lineStyle:Object.assign({width:e.lineStyleWidth},n)}),Vn(e)))}return t}));return{tooltip:{trigger:\"axis\",show:e.tooltipShow,formatter:t=>{const n=t.length;let o=\"\",r=e.tooltipFormatter;\"\"===r&&(r=\"{marker} {a} {c}\");for(let e=0;e<n;e++){const{marker:n,seriesName:i,name:a,value:l,data:s}=t[e]||{};0===e&&(o+=`${a}<br/>`),o+=hn(r,{textData:Object.assign({marker:n,name:a,value:l,a:i,b:a,c:l},s)},{useNewline:!0,useSpace:!0}),o+=\"<br/>\"}return o},textStyle:{color:e.tooltipTextStyleColor,fontSize:n.value},position:e.tooltipPosition||void 0,backgroundColor:e.tooltipBackgroundColor||\"#fff\"},xAxis:{name:e.xAxisName,type:\"category\",data:_(l),minInterval:e.xAxisMinInterval,splitLine:{show:e.xAxisSplitLineShow,lineStyle:{color:e.xAxisSplitLineStyleColor}},axisLabel:{color:e.xAxisLabelColor,interval:e.xAxisLabelInterval||0,rotate:e.xAxisLabelRotate,width:e.xAxisLabelWidth,overflow:e.xAxisLabelOverflow,formatter:e=>In(r,e)},axisLine:{lineStyle:{color:e.xAxisLineStyleColor}},axisTick:{show:e.xAxisTickShow}},yAxis:{type:\"value\",name:e.yAxisName,minInterval:e.yAxisMinInterval,splitLine:{show:e.yAxisSplitLineShow,lineStyle:{color:e.yAxisSplitLineStyleColor}},axisLabel:{fontSize:n,color:e.yAxisLabelColor,formatter:e=>In(o,e)},axisLine:{show:e.yAxisLineAlwaysDisplay,lineStyle:{color:e.yAxisLineStyleColor}}},legend:{show:e.legendShow,orient:e.legendOrient,top:e.legendTop,left:e.legendLeft,textStyle:{fontSize:n}},series:_(s)}},Rn=(e,t,n)=>{const{dataset:o=[]}=t;let{data:r=[]}=o[0]||{};if(Array.isArray(e.colors)){const t=e.isUseLabelColors,n=e.colors;r=r.map(((e,o)=>Object.assign({label:t?{color:n[o]}:{}},e)))}return{title:{text:e.titleText,subtext:e.titleSubtext,textStyle:{fontSize:e.titleFontSize,fontWeight:e.fontWeight,color:e.titleColor},left:e.textAlign||\"center\"},tooltip:{show:e.tooltipShow,trigger:e.tooltipTrigger,formatter:t=>{const{marker:n,seriesName:o,name:r,value:i,percent:a,data:l}=t||{};return hn(e.tooltipFormatter,{textData:Object.assign({marker:n,name:r,value:i,percent:a,a:o,b:r,c:i,d:a},l)},{useNewline:!0,useSpace:!0})},textStyle:{color:e.tooltipTextStyleColor||\"#333\"},backgroundColor:e.tooltipBackgroundColor||\"#fff\",borderColor:e.tooltipBorderColor||\"#eee\"},legend:{show:e.legendShow,orient:e.legendOrient,top:e.legendTop,left:e.legendLeft,textStyle:{color:e.legendTextStyleColor,fontSize:18===n?n:e.labelFontSize}},series:[{data:r,type:\"pie\",radius:[e.innerRadius,e.outerRadius],center:[e.centerLeft,e.centerTop],roseType:e.roseType,avoidLabelOverlap:!1,minAngle:e.minAngle,label:{show:\"center\"!==e.labelPosition&&e.labelShow,color:e.labelColor,fontSize:18===n?n:e.labelFontSize,position:e.labelPosition,formatter:(i=e.labelFormatter,i.replace(/\\\\n/g,\"\\n\"))},labelLine:{show:e.labelLineShow,length:e.labelLineLength,length2:e.labelLineLength2},emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:\"rgba(0, 0, 0, 0.5)\"},label:{}}}]};var i},Un=(e,t,n)=>{const{dimensions:o=[],dataset:r=[]}=t,i=re((()=>o.map((e=>{let t={};return t=e&&\"object\"==typeof e?Object.assign(Object.assign({},e),{textStyle:{fontSize:n}}):{value:e,textStyle:{fontSize:n}},t})))),a=re((()=>{const t=[],n=r.length,o=e.seriesTypes;for(let i=0;i<n;i++){const n=o[i],{type:a,axisIndex:l}=n||{};let s=Object.assign({type:a,yAxisIndex:l},r[i]);if(\"line\"===a){const t={};e.shadowColor&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetY=e.shadowOffsetY,t.shadowOffsetX=e.shadowOffsetX),s=Object.assign(Object.assign({},s),{symbolSize:e.symbolSize,smooth:e.smooth,itemStyle:{color:e.colors[i]},areaStyle:{color:e.areaGradientShow?{type:\"linear\",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:e.colors[i]},{offset:1,color:e.areaGradientColor||\"transparent\"}],global:!1}:e.colors[i],opacity:e.areaStyleOpacity},lineStyle:Object.assign({width:e.lineStyleWidth},t)})}if(\"bar\"===a){const{gradientShow:t,gradientColors:n,gradientOffset:o}=e,r={};if(e.barBorderRadius){const t=e.barBorderRadius.split(\",\");if(null==t?void 0:t.length){const e=[];for(const n of t){const t=parseFloat(n);isNaN(t)||e.push(t)}r.borderRadius=e}}t&&(r.color={x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:e.colors[i]},{offset:o,color:n[i]},{offset:1,color:n[i]}]}),s=Object.assign(Object.assign({},s),{barWidth:e.barWidth,itemStyle:r})}e.isShowMarkLine&&(s.markLine={data:[{type:e.markLineType}]}),t.push(s)}return t})),l=re((()=>{const t=e.yAxis;return null==t?void 0:t.map(((t,o)=>({type:\"value\",minInterval:e.yAxisMinInterval,splitLine:{show:0===o?e.yAxisLeftSplitLineShow:e.yAxisRightSplitLineShow,lineStyle:{color:e.yAxisSplitLineStyleColor,type:0===o?e.yAxisLeftSplitLineType:e.yAxisRightSplitLineType}},splitArea:{show:e.yAxisSplitAreaShow},axisLabel:{fontSize:n,show:e.yAxisLabelShow,color:e.yAxisLabelColor,formatter:e=>In(t.axisLabelFormatter,e)},axisLine:{show:e.yAxisLineAlwaysDisplay,lineStyle:{color:e.yAxisLineStyleColor}},name:0===o?e.yAxisLeftName:e.yAxisRightName,nameTextStyle:{fontSize:e.yAxisLabelFontSize,color:e.yAxisLabelColor,align:0===o?\"right\":\"left\"},max:e.yAxisMaxValue||null})))}));return{legend:{show:e.legendShow,orient:e.legendOrient,top:e.legendTop,left:e.legendLeft,textStyle:{color:e.legendTextStyleColor,fontSize:n}},tooltip:{trigger:\"axis\",show:e.tooltipShow,formatter:t=>{const n=t.length;let o=\"\",r=e.tooltipFormatter;\"\"===r&&(r=\"{marker} {a} {c}\");const i=e.seriesTypes;for(let e=0;e<n;e++){const n=i[e],{tooltipFormatter:a}=n||{},{marker:l,seriesName:s,name:c,value:u,data:d}=t[e]||{};0===e&&(o+=`${c}<br/>`),o+=hn(a||r,{textData:Object.assign({marker:l,name:c,value:u,seriesName:s,a:s,b:c,c:u},d)},{useNewline:!0,useSpace:!0}),o+=\"<br/>\"}return o},textStyle:{color:e.tooltipTextStyleColor||\"#333\",fontSize:n},backgroundColor:e.tooltipBackgroundColor||\"#fff\",borderColor:e.tooltipBorderColor||\"#eee\"},xAxis:{name:e.xAxisName,minInterval:e.xAxisMinInterval,type:\"category\",data:_(i),splitLine:{show:e.xAxisSplitLineShow,lineStyle:{color:e.xAxisSplitLineStyleColor}},axisLabel:{color:e.xAxisLabelColor,interval:e.xAxisLabelInterval||0,rotate:e.xAxisLabelRotate,width:e.xAxisLabelWidth,overflow:e.xAxisLabelOverflow},axisLine:{lineStyle:{color:e.xAxisLineStyleColor}},axisTick:{show:e.xAxisTickShow}},yAxis:_(l),series:_(a)}},Pn=(e,t,n=12)=>Object.assign(Object.assign({},(e=>({title:{text:e.titleText,subtext:e.titleSubtext,textStyle:{fontSize:e.titleFontSize,fontWeight:e.fontWeight,color:e.titleColor},left:e.textAlign||\"center\"},grid:{top:e.gridTop,bottom:e.gridBottom,left:e.gridLeft,right:e.gridRight,containLabel:e.gridContainLabel},color:e.colors}))(e)),((e,t,n)=>{switch(e.type){case\"bar\":return Fn(e,t,n);case\"line\":return zn(e,t,n);case\"pie\":return Rn(e,t,n);case\"comboGraph\":return Un(e,t,n);default:return{}}})(e,t,n));export{Dn as formatIndicatorParams,vn as getIndicatorParams,mn as hasOwn,yn as lowerCaseIncludes,pn as runCode,Pn as transformProps,Mn as useTransformChartDataByAttrKey,En as useTransformChartDataByAttrValue,In as useValueFormatter,hn as useVariablesInText};\n","import dayjs from 'dayjs'\r\nimport { cloneDeep } from 'lodash-es'\r\nimport { useVariablesInText, lowerCaseIncludes, hasOwn } from '@ecan-bi/tools'\r\n// import { Big } from 'big.js'\r\nimport { unref } from 'vue'\r\n\r\nexport const handleFormatter = (formatter: string) => {\r\n return formatter.replace(/\\\\n/g, '\\n')\r\n}\r\n\r\nexport const getConditions = (conditions: { [key: string]: any }[]) => {\r\n const result = []\r\n if (conditions?.length) {\r\n for (const item of conditions) {\r\n if (item.conditions) {\r\n result.push(...getConditions(item.conditions))\r\n } else if (item?.dataType === 'component') {\r\n result.push(item)\r\n }\r\n }\r\n }\r\n return result\r\n}\r\nexport const getSqlConditions = (graphicConfig: { [key: string]: any }, renderUsedComponents: { [key: string]: any }[]) => {\r\n const controlList = cloneDeep(graphicConfig?.controlList || [])\r\n const {\r\n classificationList = [],\r\n rowHeaderList = [],\r\n dimensionList = [],\r\n seriesList = [],\r\n leftAxisList = [],\r\n rightAxisList = [],\r\n queryColumnList = [],\r\n indicators = []\r\n } = graphicConfig\r\n handleControlList(controlList, renderUsedComponents)\r\n const sqlConditions = controlList\r\n // console.log('controlList', controlList)\r\n const otherList = [\r\n ...classificationList,\r\n ...rowHeaderList,\r\n ...dimensionList,\r\n ...seriesList,\r\n ...leftAxisList,\r\n ...rightAxisList,\r\n ...queryColumnList,\r\n ...indicators\r\n ]\r\n const conditionList = []\r\n for (const ol of otherList) {\r\n const conditions = getConditions(ol?.conditions || [])\r\n if (conditions?.length) {\r\n const list = conditions\r\n .filter((v: any) => {\r\n const target = getComponent(v, renderUsedComponents)\r\n if (target) {\r\n return v?.dataType === 'component'\r\n }\r\n return false\r\n })\r\n .map((item: any) => {\r\n const target = getComponent(item, renderUsedComponents)\r\n const params: any = {}\r\n if (item?.dateFormat) {\r\n params.format = item.dateFormat\r\n }\r\n return {\r\n conditionKey: item.fieldName,\r\n conditionLabel: item.fieldName,\r\n conditionName: item.fieldName,\r\n conditionValueType: item.fieldType,\r\n id: target.id,\r\n keyName: item.fieldValue,\r\n rule: item.rule,\r\n notGlobal: true,\r\n indexCode: item.indexCode,\r\n typeGuid: item.typeGuid,\r\n indexCodeNum: item.indexCodeNum,\r\n ...params\r\n }\r\n })\r\n if (list?.length) {\r\n for (const l of list) {\r\n if (!conditionList.find(cItem => cItem.keyName === l.keyName)) {\r\n conditionList.push(l)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const len = conditionList.length\r\n for (let i = 0; i < len; i++) {\r\n const control = conditionList[i]\r\n if (control && !Object.keys(control)?.length) {\r\n continue\r\n }\r\n if (control?.conditionKey === 'parentCode') {\r\n continue\r\n }\r\n const {\r\n id,\r\n keyName,\r\n prop,\r\n format: dateFormat,\r\n dataType = 'component',\r\n customValue\r\n } = control\r\n let alias = keyName || id\r\n if (alias && prop) {\r\n alias += `-${prop}`\r\n }\r\n const sqlCondition: { [key: string]: any } = getConditionItem(control)\r\n setFieldValue({\r\n sqlCondition,\r\n renderUsedComponents,\r\n id,\r\n dateFormat,\r\n prop,\r\n keyName,\r\n dataType,\r\n customValue\r\n })\r\n sqlConditions.push(sqlCondition)\r\n }\r\n // globalCondition=false时,如果全局过滤里面已经配置了该组件的信息,则不用再传globalCondition=false的组件信息\r\n for (let j = sqlConditions.length - 1; j >= 0; j--) {\r\n const item = sqlConditions[j]\r\n if (!item.globalCondition) {\r\n const cond = getConditions(sqlConditions).find(v => v.alias === item.alias && v.globalCondition)\r\n if (cond) {\r\n sqlConditions.splice(j, 1)\r\n }\r\n }\r\n }\r\n return sqlConditions\r\n}\r\n\r\nexport const handleVariableList = (variableList: { [key: string]: any }[], renderUsedComponents: { [key:string]: any }[]) => {\r\n const handleVarList = []\r\n if (variableList?.length) {\r\n for (const item of variableList) {\r\n if (item.variableName) {\r\n const variableItem: any = {\r\n variateName: item.variableName,\r\n globalCondition: false,\r\n valueType: item.variableType,\r\n alias: item.keyName || ''\r\n }\r\n setFieldValue({\r\n sqlCondition: variableItem,\r\n renderUsedComponents,\r\n id: item.id,\r\n dateFormat: item.format,\r\n prop: item.dateTypeValue,\r\n keyName: item.keyName,\r\n dataType: item.dataType,\r\n customValue: item.variableValue,\r\n operateType: item.operateType,\r\n operateMode: item.operateMode,\r\n operateValue: item.operateValue\r\n })\r\n if (item.format) {\r\n // 日期格式化\r\n variableItem.dateFormat = item.format\r\n }\r\n if (item.label) {\r\n variableItem.label = item.label\r\n }\r\n handleVarList.push(variableItem)\r\n }\r\n }\r\n }\r\n return handleVarList\r\n}\r\n\r\nfunction getConditionItem (control: { [key:string]:any }) {\r\n const {\r\n id,\r\n keyName,\r\n conditionLabel,\r\n conditionKey,\r\n conditionValueType,\r\n prop,\r\n rule = 'NONE',\r\n notGlobal = false,\r\n indexCode,\r\n indexCodeNum,\r\n typeGuid,\r\n dataType = 'component'\r\n } = control\r\n let alias = keyName || id\r\n if (alias && prop) {\r\n alias += `-${prop}`\r\n }\r\n return {\r\n rule,\r\n label: conditionLabel,\r\n fieldName: conditionKey,\r\n fieldValue: '', // 在关联控件中取\r\n valueType: conditionValueType,\r\n alias,\r\n globalCondition: !notGlobal,\r\n indexCode,\r\n indexCodeNum,\r\n typeGuid,\r\n dataType\r\n }\r\n}\r\n\r\nconst excludeAttr = [\r\n 'keyValue',\r\n 'conditionKey',\r\n 'conditionLabel',\r\n 'conditionName',\r\n 'conditionValueType',\r\n 'customValue',\r\n 'id',\r\n 'keyName'\r\n]\r\nfunction handleControlList (controlList: { [key: string]: any }[], renderUsedComponents: { [key: string]: any }[]) {\r\n if (controlList?.length) {\r\n for (const control of controlList) {\r\n if (control?.conditions) {\r\n handleControlList(control.conditions, renderUsedComponents)\r\n } else {\r\n const {\r\n id,\r\n keyName,\r\n prop,\r\n format: dateFormat,\r\n dataType = 'component',\r\n customValue\r\n } = control\r\n let alias = keyName || id\r\n if (alias && prop) {\r\n alias += `-${prop}`\r\n }\r\n const sqlCondition: { [key: string]: any } = getConditionItem(control)\r\n setFieldValue({\r\n sqlCondition,\r\n renderUsedComponents,\r\n id,\r\n dateFormat,\r\n prop,\r\n keyName,\r\n dataType,\r\n customValue\r\n })\r\n for (const key in sqlCondition) {\r\n control[key] = sqlCondition[key]\r\n }\r\n for (const attr of excludeAttr) {\r\n delete control[attr]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setFieldValue (data: any) {\r\n const {\r\n sqlCondition,\r\n renderUsedComponents,\r\n id,\r\n dateFormat,\r\n prop,\r\n keyName,\r\n dataType,\r\n customValue,\r\n operateValue,\r\n operateMode,\r\n operateType\r\n } = data\r\n const component: any = unref(renderUsedComponents).find((v: { [key: string]: any }) => v.id === id)\r\n // 获取组件属性\r\n const { value, format = 'YYYY-MM-DD', operate, type = '', useCurrentTime } = component || {}\r\n const customFormat = dateFormat || format\r\n if (lowerCaseIncludes(type, 'date')) {\r\n let dateValue\r\n if (useCurrentTime) {\r\n dateValue = dayjs()\r\n } else {\r\n dateValue = dayjs(value)\r\n }\r\n if (operate && value) {\r\n const { mode, type: opType, value: opValue } = operate\r\n if (opValue) {\r\n switch (opType) {\r\n case 'add':\r\n dateValue = dateValue.add(opValue, mode)\r\n break\r\n case 'minus':\r\n dateValue = dateValue.subtract(opValue, mode)\r\n break\r\n }\r\n }\r\n }\r\n if (operateValue && operateMode && operateType) {\r\n switch (operateType) {\r\n case 'add':\r\n dateValue = dateValue.add(operateValue, operateMode)\r\n break\r\n case 'minus':\r\n dateValue = dateValue.subtract(operateValue, operateMode)\r\n break\r\n }\r\n }\r\n sqlCondition.fieldValue = dateValue?.format(customFormat) || ''\r\n sqlCondition.dateFormat = customFormat\r\n } else if (type === 'ecanRangePicker') {\r\n const { interval, intervalUnit, startTime, endTime } = component || {}\r\n let propValue = prop\r\n if (!prop) {\r\n const knList = keyName?.split('-')\r\n if (knList?.length) {\r\n propValue = knList[knList.length - 1]\r\n }\r\n }\r\n if (!propValue) {\r\n return\r\n }\r\n let _time = null\r\n if (useCurrentTime) {\r\n if (propValue === 'startTime') {\r\n _time = dayjs().subtract(interval, intervalUnit)\r\n } else if (propValue === 'endTime') {\r\n _time = dayjs()\r\n }\r\n }\r\n if (component[propValue]) {\r\n _time = dayjs(component[propValue])\r\n }\r\n if (operate) {\r\n const { type, value, mode } = operate\r\n switch (type) {\r\n case 'add':\r\n _time = _time ? _time.add(value, mode) : _time\r\n break\r\n case 'minus':\r\n _time = _time ? _time.subtract(value, mode) : _time\r\n }\r\n }\r\n if (operateValue && operateMode && operateType) {\r\n if (operateValue === 'rangeValue') {\r\n // 自定义偏移,目前只有范围差\r\n if (startTime && endTime) {\r\n const interval = dayjs(endTime).diff(dayjs(startTime), operateMode) + 1\r\n switch (operateType) {\r\n case 'add':\r\n _time = _time ? _time.add(interval, operateMode) : _time\r\n break\r\n case 'minus':\r\n _time = _time ? _time.subtract(interval, operateMode) : _time\r\n }\r\n }\r\n } else if (!isNaN(+operateValue)) {\r\n switch (operateType) {\r\n case 'add':\r\n _time = _time ? _time.add(operateValue, operateMode) : _time\r\n break\r\n case 'minus':\r\n _time = _time ? _time.subtract(operateValue, operateMode) : _time\r\n }\r\n }\r\n }\r\n if (_time) {\r\n sqlCondition.fieldValue = _time?.format(customFormat)\r\n }\r\n\r\n if (propValue === 'rangeValue') {\r\n // 全局变量的日期范围间隔值计算\r\n if (startTime && endTime) {\r\n const step: any = getFormatStep(customFormat)\r\n if (step) {\r\n sqlCondition.fieldValue = dayjs(endTime).diff(dayjs(startTime), step) + 1\r\n }\r\n }\r\n }\r\n sqlCondition.dateFormat = customFormat\r\n } else {\r\n const variables = value && (value).match(/\\{(.+?)\\}/g)\r\n if (variables?.length) {\r\n // 使用了表达式\r\n sqlCondition.fieldValue = ''\r\n } else {\r\n sqlCondition.fieldValue = value\r\n }\r\n }\r\n if (dataType === '') {\r\n sqlCondition.fieldValue = customValue || ''\r\n }\r\n}\r\n\r\nexport const getEventName = (type: string) => {\r\n let event = ''\r\n switch (type) {\r\n case 'ecanDatePicker':\r\n case 'ecanRangePicker':\r\n event = 'dateChange'\r\n break\r\n case 'ecanTimeDisplay':\r\n event = 'timeChange'\r\n break\r\n case 'ecanSelect':\r\n case 'ecanTreeSelect':\r\n event = 'selectChange'\r\n break\r\n case 'ecanTabs':\r\n event = 'tabChange'\r\n break\r\n case 'ecanInput':\r\n event = 'inputChange'\r\n break\r\n case 'ecanCheckbox':\r\n case 'ecanRadio':\r\n event = 'checkboxChange'\r\n break\r\n case 'ecanText':\r\n event = 'valueChange'\r\n break\r\n case 'ecanImage':\r\n event = 'click'\r\n break\r\n default:\r\n break\r\n }\r\n return event\r\n}\r\n\r\nfunction getComponent (data: any, componentList: any) {\r\n if (data.componentId) {\r\n return componentList.find((f: any) => f.id === data.componentId)\r\n } else {\r\n if (data.dataType === 'component') {\r\n if (data.fieldType === 'DATE') {\r\n const dateList = data.fieldValue?.split('-')\r\n if (dateList?.length) {\r\n return dateList[0]\r\n } else {\r\n return null\r\n }\r\n } else {\r\n return componentList.find((f: any) => f.keyName === data.fieldValue)\r\n }\r\n } else {\r\n return null\r\n }\r\n }\r\n}\r\n\r\nexport function getFormatStep (format: string) {\r\n const value = format.split('-')\r\n let formatStep = ''\r\n if (value?.length) {\r\n switch (value[value.length - 1]) {\r\n case 'YYYY':\r\n formatStep = 'year'\r\n break\r\n case 'MM':\r\n formatStep = 'month'\r\n break\r\n case 'DD':\r\n formatStep = 'day'\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n return formatStep\r\n}\r\n// 格式化\r\nexport function handleFormat (row: any, item: any) {\r\n let value = row[item.label]\r\n if ((value || value === 0) && value !== '') {\r\n // 值不为空\r\n if (item.dataFormat && item.dataFormat.length !== 0) {\r\n // 保留两位小数需得提前执行\r\n if (item.dataFormat.includes('#.00')) {\r\n // 先执行保留小数\r\n if (typeof value !== 'number') {\r\n value = value.replace(/,/g, '')\r\n }\r\n // 排除输入为 字符类型 ,保留不转化\r\n if (Number(value) || Number(value) === 0) {\r\n const retentiondigit = item.retentiondigit ? item.retentiondigit - 0 : item.retentiondigit\r\n value = Number(value).toFixed(retentiondigit)\r\n }\r\n }\r\n if (item.dataFormat.includes('#,000')) {\r\n // 千分位处理部分\r\n const str = value.toString()\r\n if (!str.includes(',')) {\r\n value = formatQfw(str)\r\n }\r\n }\r\n }\r\n }\r\n return value\r\n}\r\n// 千分位转换\r\nexport function formatQfw (str: string) {\r\n let result = ''\r\n let str1 = ''\r\n let str2 = ''\r\n let value = ''\r\n if (str.indexOf('.') > -1) {\r\n str1 = str.split('.')[0] // 千分位处理部分\r\n str2 = str.split('.')[1] // 小数值\r\n } else {\r\n str1 = str\r\n }\r\n let index = 0\r\n let len = 0\r\n len = str1.length - 1\r\n while (len >= 0) {\r\n index % 3 === 0 && index !== 0\r\n ? str1[len] === '-'\r\n ? (result += str1[len])\r\n : (result += ',' + str1[len])\r\n : (result += str1[len])\r\n len--\r\n index++\r\n }\r\n result = result\r\n .split('')\r\n .reverse()\r\n .join('')\r\n if (str.indexOf('.') > -1) {\r\n value = result + '.' + str2\r\n } else {\r\n value = result\r\n }\r\n return value\r\n}\r\n// 根据指标获取其他参数-用于条件查询\r\nexport async function getIndicatorParams ({ graphicConfig, request, INDICATOR_URL = '', PAGE_ID, dataSourceId }) {\r\n try {\r\n const { leftAxisList = [], rightAxisList = [], queryColumnList = [], indicators = [] } = unref(graphicConfig)\r\n const otherList = [...leftAxisList, ...rightAxisList, ...queryColumnList, ...indicators]\r\n const idMap: any = {}\r\n for (const item of otherList) {\r\n const { indexCode = '', parentId = '' } = item\r\n if (parentId && !hasOwn(item, 'calcType') && !idMap[parentId]) {\r\n idMap[parentId] = indexCode\r\n }\r\n }\r\n if (Object.keys(idMap)?.length) {\r\n const promiseList = []\r\n for (const id in idMap) {\r\n promiseList.push(\r\n new Promise((resolve, reject) => {\r\n request\r\n .post(\r\n `${INDICATOR_URL}/diagram/hrpIndexWithComplex`,\r\n {\r\n pageId: PAGE_ID,\r\n indexGuid: id,\r\n indexCode: idMap[id],\r\n dataSourceId\r\n }\r\n )\r\n .then((res: any) => {\r\n const { success, data = [] } = res.data\r\n if (success && data?.dataViewColumns?.length) {\r\n resolve(data.dataViewColumns)\r\n } else {\r\n reject(data)\r\n }\r\n })\r\n .catch((e) => {\r\n reject(e)\r\n })\r\n })\r\n )\r\n }\r\n const res = await Promise.all(promiseList)\r\n const resultList = res.reduce((a: any, b: any) =>\r\n a.filter((c: any) => b.find((v: any) => v.typeGuid === c.typeGuid))\r\n )\r\n return resultList.filter((v: any) => v.typeGuid)\r\n }\r\n } catch (err) { }\r\n return ([])\r\n}\r\n/**\r\n * 图表的图例格式化\r\n * @param format 表达式\r\n * @param textData 传入参数\r\n * @returns 显示的图例文本\r\n */\r\nexport const getLegendFormat = (format: string = '', textData: any) => {\r\n const variables = format.match(/\\{(.+?)\\}/g)\r\n // 换行符个数\r\n const lineBreakCount = format.split('\\n')?.length - 1\r\n let lineBreakStr = ''\r\n if (lineBreakCount) {\r\n for (let i = 0; i < lineBreakCount; i++) {\r\n lineBreakStr += '\\n'\r\n }\r\n }\r\n let text = format\r\n if (variables?.length) {\r\n for (const item of variables) {\r\n const str = useVariablesInText(\r\n item,\r\n {\r\n textData\r\n },\r\n {\r\n useNewline: false,\r\n useSpace: false\r\n }\r\n )\r\n if (str) {\r\n text = text.replace(item, str)\r\n }\r\n }\r\n return `${lineBreakStr}{text|${text}}`\r\n } else {\r\n return format\r\n }\r\n}\r\nexport const mapScope = (scope: 'DIM' | 'IDX' | 'BUILT_IN_DIM') => {\r\n const map = {\r\n DIM: '维度',\r\n BUILT_IN_DIM: '维度',\r\n IDX: '指标',\r\n BUILT_IN_IDX: '指标',\r\n FIELD: '数据集'\r\n }\r\n return map[scope]\r\n}\r\nexport const mapDataSetScope = (scope: '0' | '1' | '2') => {\r\n const map = {\r\n 0: '文本',\r\n 1: '数值',\r\n 2: '日期'\r\n\r\n }\r\n return map[scope]\r\n}\r\n\r\nexport const getLoadType = (type: string) => {\r\n if (!type) {\r\n return ''\r\n }\r\n const list = type.split(',')\r\n const result = []\r\n for (const item of list) {\r\n if (item === '0') {\r\n result.push('手工录入')\r\n } else if (item === '1') {\r\n result.push('系统取数')\r\n } else if (item === '2') {\r\n result.push('运算加工')\r\n }\r\n }\r\n return result.join('、')\r\n}\r\n\r\nexport const getUseType = (type: string) => {\r\n if (!type) {\r\n return ''\r\n }\r\n const list = type.split(',')\r\n const result = []\r\n for (const item of list) {\r\n switch (item) {\r\n case '1':\r\n result.push('人力系统')\r\n break\r\n case '2':\r\n result.push('绩效系统')\r\n break\r\n case '3':\r\n result.push('预算系统')\r\n break\r\n case '4':\r\n result.push('财务系统')\r\n break\r\n case '5':\r\n result.push('成本系统')\r\n break\r\n case '6':\r\n result.push('物流系统')\r\n break\r\n case '7':\r\n result.push('固定资产系统')\r\n break\r\n case '8':\r\n result.push('OA办公系统')\r\n break\r\n case '9':\r\n result.push('电子档案系统')\r\n break\r\n case '10':\r\n result.push('个人收入系统')\r\n break\r\n case '11':\r\n result.push('奖金二次分配系统')\r\n break\r\n case '12':\r\n result.push('财务管理系统')\r\n break\r\n case '13':\r\n result.push('报销系统')\r\n break\r\n case '14':\r\n result.push('科研管理系统')\r\n break\r\n case '15':\r\n result.push('审计系统')\r\n break\r\n case '16':\r\n result.push('分组器系统')\r\n break\r\n case '17':\r\n result.push('消毒供应系统')\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n return result.join('、')\r\n}\r\n\r\nexport const getSourceType = (dataTo: string) => {\r\n if (dataTo === '0') {\r\n return '指标库'\r\n } else if (dataTo === '1') {\r\n return '视图'\r\n } else if (dataTo === '2') {\r\n return '数据集'\r\n } else {\r\n return '其他'\r\n }\r\n}\r\n","<template>\r\n <div class=\"columns\" :class=\"isSub ? 'sub-columns' : ''\" ref=\"columnRef\">\r\n <a-spin\r\n :spinning=\"searchLoading\"\r\n tip=\"数据源加载中...\"\r\n >\r\n <div class=\"no-data\" v-if=\"!sourceList?.length && !searchLoading\">暂无数据</div>\r\n <template v-else-if=\"hasChildren\">\r\n <div\r\n v-for=\"(source, index) in sourceList\"\r\n :key=\"source.indexTypeGuid || source.id\"\r\n >\r\n <div class=\"column-item\">\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleGroup(index)\"\r\n >\r\n <loading-outlined v-if=\"source.loading\" />\r\n <caret-down-outlined v-else-if=\"source.show\" />\r\n <caret-right-outlined v-else />\r\n <span v-if=\"source.isLeaf\" class=\"item-name\">{{ source.indexTypeCode + '.' + source.indexTypeName }}</span>\r\n </span>\r\n </div>\r\n <div v-if=\"source.show\">\r\n <ind-source-list\r\n :data=\"source.children\"\r\n :isSub=\"true\"\r\n :hasChildren=\"source.isLeaf === '0'\"\r\n :graphicConfig=\"graphicConfig\"\r\n source=\"INDICATOR_LIB\"\r\n @onDragStart=\"onDragStart\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <div\r\n v-for=\"dataSource in sourceList\"\r\n :key=\"dataSource.id\"\r\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\r\n >\r\n <div class=\"column-item\">\r\n <a-tooltip>\r\n <template #title>\r\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\r\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\r\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\r\n <div v-if=\"dataSource.dataTo\">数据来源:{{ getSourceType(dataSource.dataTo) }}</div>\r\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\r\n </template>\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleSource(dataSource)\"\r\n >\r\n <caret-down-outlined v-if=\"dataSource.show\" />\r\n <caret-right-outlined v-else />\r\n {{ (dataSource.indexCode ? dataSource.indexCode : '') + ' ' + dataSource.name }}\r\n </span>\r\n </a-tooltip>\r\n </div>\r\n <template v-if=\"dataSource.show\">\r\n <draggable\r\n v-model=\"dataSource.dataViewColumns\"\r\n :group=\"{\r\n name: 'cardItem',\r\n pull: 'clone',\r\n put: false\r\n }\"\r\n item-key=\"id\"\r\n :sort=\"false\"\r\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\r\n @start=\"onDragStart($event, dataSource)\"\r\n >\r\n <template #item=\"{ element: dataViewColumn }\">\r\n <div class=\"column-child-item\">\r\n <span class=\"field\">\r\n 【{{ dataViewColumn.scope === 'FIELD' ? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\r\n </span>\r\n <span class=\"column-child-item-name\">\r\n {{ dataViewColumn.label }}\r\n </span>\r\n </div>\r\n </template>\r\n </draggable>\r\n </template>\r\n </div>\r\n </template>\r\n </a-spin>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, PropType, ref, watch, inject, unref, onMounted, onUnmounted, reactive, nextTick } from 'vue'\r\nimport { CaretRightOutlined, CaretDownOutlined, LoadingOutlined } from '@ant-design/icons-vue'\r\nimport { REQUEST, INDICATOR_URL, INDICATOR_TOKEN } from '@/utils/constant'\r\nimport Draggable from 'vuedraggable'\r\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\r\nimport { Tooltip as ATooltip } from 'ant-design-vue'\r\nexport default defineComponent({\r\n name: 'IndSourceList',\r\n components: {\r\n CaretRightOutlined,\r\n CaretDownOutlined,\r\n LoadingOutlined,\r\n Draggable,\r\n ATooltip\r\n },\r\n props: {\r\n data: {\r\n type: Array as PropType<any[]>,\r\n default: () => []\r\n },\r\n source: {\r\n type: String,\r\n default: ''\r\n },\r\n isSub: {\r\n type: Boolean,\r\n default: false\r\n },\r\n hasChildren: {\r\n type: Boolean,\r\n default: false\r\n },\r\n total: {\r\n type: Number,\r\n default: 0\r\n },\r\n graphicConfig: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n setup (props, { emit, expose }) {\r\n // @ts-ignore\r\n const PAGE_ID = window?.config?.pageId\r\n const request = inject(REQUEST) as any\r\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\r\n const setItemDisabled = inject('setItemDisabled', (_value: any) => false)\r\n const sourceList = ref<{ [key: string]: any }[]>([])\r\n const columnRef = ref()\r\n const pagination = reactive({\r\n pageSize: 20,\r\n currentPage: 1,\r\n totalResult: 0\r\n })\r\n const isLoading = ref(false)\r\n const indexName = ref('')\r\n const searchLoading = ref(false)\r\n\r\n watch(() => props.data, (data: { [key: string]: any }[]) => {\r\n if (props.isSub) {\r\n data?.forEach((row: { [key: string]: any }) => {\r\n if (!row?.isLeaf) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n }\r\n })\r\n sourceList.value = data\r\n }\r\n }, {\r\n deep: true,\r\n immediate: true\r\n })\r\n\r\n const removeScroll = () => {\r\n if (!props.isSub) {\r\n unref(columnRef)?.removeEventListener('scroll', scrollRequest)\r\n }\r\n }\r\n\r\n const requestData = async (item?: { [key: string]: any }) => {\r\n if (unref(isLoading)) {\r\n return\r\n }\r\n const dataSourceId = props.graphicConfig ? props.graphicConfig.dataSourceId : ''\r\n isLoading.value = true\r\n const params: any = {\r\n source: props.source,\r\n pageId: PAGE_ID,\r\n dataSourceId,\r\n indexName: indexName.value\r\n }\r\n if (item) {\r\n item.loading = true\r\n params.indexTypeGuid = item.indexTypeGuid\r\n params.isLeaf = item.isLeaf\r\n } else if (pagination) {\r\n // item不存在的时候,是最外一层,需要滚动加载\r\n params.queryRequest = {\r\n pageSize: pagination.pageSize,\r\n pageNum: pagination.currentPage\r\n }\r\n }\r\n try {\r\n const res = await request.post(\r\n `${INDICATOR_URL}/diagram/sourceList`,\r\n params,\r\n {\r\n headers: {\r\n Authentication: indicatorToken,\r\n operateContext: 'ygt'\r\n }\r\n }\r\n )\r\n const { success, data = {} } = res.data\r\n if (success) {\r\n const { rows = [], total = 0 } = data\r\n rows?.forEach((row: { [key: string]: any }) => {\r\n if (item?.isLeaf === '1' || props.graphicConfig.dataSourceId) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n } else {\r\n row.show = false\r\n }\r\n })\r\n if (item) {\r\n item.children = rows\r\n item.show = true\r\n if (!rows?.length) {\r\n item.noData = true\r\n }\r\n } else {\r\n sourceList.value = unref(sourceList).concat(rows)\r\n pagination.totalResult = +total\r\n if (unref(sourceList)?.length >= total) {\r\n removeScroll()\r\n }\r\n }\r\n }\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n } catch (error) {\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n }\r\n }\r\n\r\n const onToggleGroup = async (index: number) => {\r\n const item = sourceList.value[index]\r\n const { children = [] } = item\r\n if (children?.length) {\r\n // 已经展开过\r\n item.show = !item.show\r\n } else if (!item.noData && item.isLeaf) {\r\n // 没有展开过,需要懒加载\r\n requestData(item)\r\n } else if (item.noData) {\r\n item.show = !item.show\r\n }\r\n }\r\n\r\n const onDragStart = (\r\n event: any,\r\n dataSource: { [key: string]: any }\r\n ) => {\r\n emit('onDragStart', event, dataSource)\r\n }\r\n\r\n const onToggleSource = (dataSource: { [key: string]: any }) => {\r\n dataSource.show = !dataSource.show\r\n }\r\n\r\n const scrollRequest = (e: any) => {\r\n if (e.target.scrollTop + e.target.clientHeight + 20 >= e.target.scrollHeight) {\r\n pagination.currentPage++\r\n requestData()\r\n }\r\n }\r\n\r\n // 首次加载的时候,如果滚动条没出现,循环请求至滚动条出现\r\n const loopRequest = async () => {\r\n await requestData()\r\n nextTick(async () => {\r\n if (unref(columnRef).scrollHeight === unref(columnRef).clientHeight) {\r\n // 滚动条未出现\r\n if (pagination.totalResult > unref(sourceList).length) {\r\n pagination.currentPage++\r\n loopRequest()\r\n }\r\n }\r\n })\r\n }\r\n\r\n const handleSearch = async (name: string) => {\r\n removeScroll()\r\n searchLoading.value = true\r\n pagination.currentPage = 1\r\n pagination.totalResult = 0\r\n sourceList.value = []\r\n indexName.value = name\r\n await loopRequest()\r\n searchLoading.value = false\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n\r\n onMounted(async () => {\r\n if (!props.isSub) {\r\n loopRequest()\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n removeScroll()\r\n })\r\n\r\n expose({\r\n handleSearch\r\n })\r\n\r\n return {\r\n columnRef,\r\n sourceList,\r\n searchLoading,\r\n onToggleGroup,\r\n onToggleSource,\r\n setItemDisabled,\r\n onDragStart,\r\n mapDataSetScope,\r\n mapScope,\r\n getLoadType,\r\n getUseType,\r\n getSourceType\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.columns {\r\n height: 100%;\r\n overflow: auto;\r\n flex: 1;\r\n padding-top: 10px;\r\n &.sub-columns {\r\n padding-top: 0;\r\n margin-left: 15px;\r\n }\r\n .no-data {\r\n color: #b1b1b1;\r\n font-size: 12px;\r\n margin-left: 10px;\r\n }\r\n}\r\n\r\n.column-item {\r\n display: flow-root;\r\n margin: 3px 0;\r\n padding: 2px 0;\r\n .item-name {\r\n margin-left: 5px;\r\n }\r\n}\r\n\r\n.column-child-item {\r\n display: flex;\r\n padding: 3px 10px;\r\n cursor: pointer;\r\n word-break: break-all;\r\n .field {\r\n white-space: nowrap;\r\n }\r\n}\r\n\r\n.column-disabled {\r\n .column-item {\r\n color: #b3b3b3;\r\n :deep(.anticon) {\r\n color: #b3b3b3;\r\n }\r\n }\r\n .column-child-item {\r\n color: #b3b3b3;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"columns\" :class=\"isSub ? 'sub-columns' : ''\" ref=\"columnRef\">\r\n <a-spin\r\n :spinning=\"searchLoading\"\r\n tip=\"数据源加载中...\"\r\n >\r\n <div class=\"no-data\" v-if=\"!sourceList?.length && !searchLoading\">暂无数据</div>\r\n <template v-else-if=\"hasChildren\">\r\n <div\r\n v-for=\"(source, index) in sourceList\"\r\n :key=\"source.indexTypeGuid || source.id\"\r\n >\r\n <div class=\"column-item\">\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleGroup(index)\"\r\n >\r\n <loading-outlined v-if=\"source.loading\" />\r\n <caret-down-outlined v-else-if=\"source.show\" />\r\n <caret-right-outlined v-else />\r\n <span v-if=\"source.isLeaf\" class=\"item-name\">{{ source.indexTypeCode + '.' + source.indexTypeName }}</span>\r\n </span>\r\n </div>\r\n <div v-if=\"source.show\">\r\n <ind-source-list\r\n :data=\"source.children\"\r\n :isSub=\"true\"\r\n :hasChildren=\"source.isLeaf === '0'\"\r\n :graphicConfig=\"graphicConfig\"\r\n source=\"INDICATOR_LIB\"\r\n @onDragStart=\"onDragStart\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <div\r\n v-for=\"dataSource in sourceList\"\r\n :key=\"dataSource.id\"\r\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\r\n >\r\n <div class=\"column-item\">\r\n <a-tooltip>\r\n <template #title>\r\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\r\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\r\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\r\n <div v-if=\"dataSource.dataTo\">数据来源:{{ getSourceType(dataSource.dataTo) }}</div>\r\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\r\n </template>\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleSource(dataSource)\"\r\n >\r\n <caret-down-outlined v-if=\"dataSource.show\" />\r\n <caret-right-outlined v-else />\r\n {{ (dataSource.indexCode ? dataSource.indexCode : '') + ' ' + dataSource.name }}\r\n </span>\r\n </a-tooltip>\r\n </div>\r\n <template v-if=\"dataSource.show\">\r\n <draggable\r\n v-model=\"dataSource.dataViewColumns\"\r\n :group=\"{\r\n name: 'cardItem',\r\n pull: 'clone',\r\n put: false\r\n }\"\r\n item-key=\"id\"\r\n :sort=\"false\"\r\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\r\n @start=\"onDragStart($event, dataSource)\"\r\n >\r\n <template #item=\"{ element: dataViewColumn }\">\r\n <div class=\"column-child-item\">\r\n <span class=\"field\">\r\n 【{{ dataViewColumn.scope === 'FIELD' ? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\r\n </span>\r\n <span class=\"column-child-item-name\">\r\n {{ dataViewColumn.label }}\r\n </span>\r\n </div>\r\n </template>\r\n </draggable>\r\n </template>\r\n </div>\r\n </template>\r\n </a-spin>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, PropType, ref, watch, inject, unref, onMounted, onUnmounted, reactive, nextTick } from 'vue'\r\nimport { CaretRightOutlined, CaretDownOutlined, LoadingOutlined } from '@ant-design/icons-vue'\r\nimport { REQUEST, INDICATOR_URL, INDICATOR_TOKEN } from '@/utils/constant'\r\nimport Draggable from 'vuedraggable'\r\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\r\nimport { Tooltip as ATooltip } from 'ant-design-vue'\r\nexport default defineComponent({\r\n name: 'IndSourceList',\r\n components: {\r\n CaretRightOutlined,\r\n CaretDownOutlined,\r\n LoadingOutlined,\r\n Draggable,\r\n ATooltip\r\n },\r\n props: {\r\n data: {\r\n type: Array as PropType<any[]>,\r\n default: () => []\r\n },\r\n source: {\r\n type: String,\r\n default: ''\r\n },\r\n isSub: {\r\n type: Boolean,\r\n default: false\r\n },\r\n hasChildren: {\r\n type: Boolean,\r\n default: false\r\n },\r\n total: {\r\n type: Number,\r\n default: 0\r\n },\r\n graphicConfig: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n setup (props, { emit, expose }) {\r\n // @ts-ignore\r\n const PAGE_ID = window?.config?.pageId\r\n const request = inject(REQUEST) as any\r\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\r\n const setItemDisabled = inject('setItemDisabled', (_value: any) => false)\r\n const sourceList = ref<{ [key: string]: any }[]>([])\r\n const columnRef = ref()\r\n const pagination = reactive({\r\n pageSize: 20,\r\n currentPage: 1,\r\n totalResult: 0\r\n })\r\n const isLoading = ref(false)\r\n const indexName = ref('')\r\n const searchLoading = ref(false)\r\n\r\n watch(() => props.data, (data: { [key: string]: any }[]) => {\r\n if (props.isSub) {\r\n data?.forEach((row: { [key: string]: any }) => {\r\n if (!row?.isLeaf) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n }\r\n })\r\n sourceList.value = data\r\n }\r\n }, {\r\n deep: true,\r\n immediate: true\r\n })\r\n\r\n const removeScroll = () => {\r\n if (!props.isSub) {\r\n unref(columnRef)?.removeEventListener('scroll', scrollRequest)\r\n }\r\n }\r\n\r\n const requestData = async (item?: { [key: string]: any }) => {\r\n if (unref(isLoading)) {\r\n return\r\n }\r\n const dataSourceId = props.graphicConfig ? props.graphicConfig.dataSourceId : ''\r\n isLoading.value = true\r\n const params: any = {\r\n source: props.source,\r\n pageId: PAGE_ID,\r\n dataSourceId,\r\n indexName: indexName.value\r\n }\r\n if (item) {\r\n item.loading = true\r\n params.indexTypeGuid = item.indexTypeGuid\r\n params.isLeaf = item.isLeaf\r\n } else if (pagination) {\r\n // item不存在的时候,是最外一层,需要滚动加载\r\n params.queryRequest = {\r\n pageSize: pagination.pageSize,\r\n pageNum: pagination.currentPage\r\n }\r\n }\r\n try {\r\n const res = await request.post(\r\n `${INDICATOR_URL}/diagram/sourceList`,\r\n params,\r\n {\r\n headers: {\r\n Authentication: indicatorToken,\r\n operateContext: 'ygt'\r\n }\r\n }\r\n )\r\n const { success, data = {} } = res.data\r\n if (success) {\r\n const { rows = [], total = 0 } = data\r\n rows?.forEach((row: { [key: string]: any }) => {\r\n if (item?.isLeaf === '1' || props.graphicConfig.dataSourceId) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n } else {\r\n row.show = false\r\n }\r\n })\r\n if (item) {\r\n item.children = rows\r\n item.show = true\r\n if (!rows?.length) {\r\n item.noData = true\r\n }\r\n } else {\r\n sourceList.value = unref(sourceList).concat(rows)\r\n pagination.totalResult = +total\r\n if (unref(sourceList)?.length >= total) {\r\n removeScroll()\r\n }\r\n }\r\n }\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n } catch (error) {\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n }\r\n }\r\n\r\n const onToggleGroup = async (index: number) => {\r\n const item = sourceList.value[index]\r\n const { children = [] } = item\r\n if (children?.length) {\r\n // 已经展开过\r\n item.show = !item.show\r\n } else if (!item.noData && item.isLeaf) {\r\n // 没有展开过,需要懒加载\r\n requestData(item)\r\n } else if (item.noData) {\r\n item.show = !item.show\r\n }\r\n }\r\n\r\n const onDragStart = (\r\n event: any,\r\n dataSource: { [key: string]: any }\r\n ) => {\r\n emit('onDragStart', event, dataSource)\r\n }\r\n\r\n const onToggleSource = (dataSource: { [key: string]: any }) => {\r\n dataSource.show = !dataSource.show\r\n }\r\n\r\n const scrollRequest = (e: any) => {\r\n if (e.target.scrollTop + e.target.clientHeight + 20 >= e.target.scrollHeight) {\r\n pagination.currentPage++\r\n requestData()\r\n }\r\n }\r\n\r\n // 首次加载的时候,如果滚动条没出现,循环请求至滚动条出现\r\n const loopRequest = async () => {\r\n await requestData()\r\n nextTick(async () => {\r\n if (unref(columnRef).scrollHeight === unref(columnRef).clientHeight) {\r\n // 滚动条未出现\r\n if (pagination.totalResult > unref(sourceList).length) {\r\n pagination.currentPage++\r\n loopRequest()\r\n }\r\n }\r\n })\r\n }\r\n\r\n const handleSearch = async (name: string) => {\r\n removeScroll()\r\n searchLoading.value = true\r\n pagination.currentPage = 1\r\n pagination.totalResult = 0\r\n sourceList.value = []\r\n indexName.value = name\r\n await loopRequest()\r\n searchLoading.value = false\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n\r\n onMounted(async () => {\r\n if (!props.isSub) {\r\n loopRequest()\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n removeScroll()\r\n })\r\n\r\n expose({\r\n handleSearch\r\n })\r\n\r\n return {\r\n columnRef,\r\n sourceList,\r\n searchLoading,\r\n onToggleGroup,\r\n onToggleSource,\r\n setItemDisabled,\r\n onDragStart,\r\n mapDataSetScope,\r\n mapScope,\r\n getLoadType,\r\n getUseType,\r\n getSourceType\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.columns {\r\n height: 100%;\r\n overflow: auto;\r\n flex: 1;\r\n padding-top: 10px;\r\n &.sub-columns {\r\n padding-top: 0;\r\n margin-left: 15px;\r\n }\r\n .no-data {\r\n color: #b1b1b1;\r\n font-size: 12px;\r\n margin-left: 10px;\r\n }\r\n}\r\n\r\n.column-item {\r\n display: flow-root;\r\n margin: 3px 0;\r\n padding: 2px 0;\r\n .item-name {\r\n margin-left: 5px;\r\n }\r\n}\r\n\r\n.column-child-item {\r\n display: flex;\r\n padding: 3px 10px;\r\n cursor: pointer;\r\n word-break: break-all;\r\n .field {\r\n white-space: nowrap;\r\n }\r\n}\r\n\r\n.column-disabled {\r\n .column-item {\r\n color: #b3b3b3;\r\n :deep(.anticon) {\r\n color: #b3b3b3;\r\n }\r\n }\r\n .column-child-item {\r\n color: #b3b3b3;\r\n }\r\n}\r\n</style>\r\n","<template>\n <div class=\"data-source-list\">\n <a-input-search\n v-model:value=\"searchText\"\n placeholder=\"请输入关键字\"\n style=\"width: 100%\"\n @change=\"onChange\"\n @search=\"onSearch\"\n />\n <template v-if=\"graphicConfig.source === 'INDICATOR_LIB'\">\n <ind-source-list\n ref=\"indSourceRef\"\n :data=\"dataSourceList\"\n :hasChildren=\"true\"\n :isSub=\"false\"\n :graphicConfig=\"graphicConfig\"\n source=\"INDICATOR_LIB\"\n @setItemDisabled=\"setItemDisabled\"\n @onDragStart=\"onDragStart\"\n />\n </template>\n <template v-else>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataSourceLoading\"\n tip=\"数据源加载中...\"\n >\n <div\n v-for=\"(dataSource, index) in dataSourceList\"\n :key=\"dataSource.id\"\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\n >\n <div class=\"column-item\">\n <a-tooltip>\n <template #title>\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\n </template>\n <span\n style=\"cursor: pointer\"\n @click=\"onToggleGroup(index)\"\n >\n <caret-down-outlined v-if=\"dataSource.show\" />\n <caret-right-outlined v-else />\n {{ (dataSource.indexCode?dataSource.indexCode:'') + ' ' + dataSource.name }}【{{ getSourceType(dataSource.dataTo) }}】\n </span>\n </a-tooltip>\n </div>\n <div v-if=\"dataSource.show\">\n <draggable\n v-model=\"dataSource.dataViewColumns\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\n @start=\"onDragStart($event, dataSource)\"\n >\n <template #item=\"{ element: dataViewColumn }\">\n <div class=\"column-child-item\">\n 【{{ dataViewColumn.scope==='FIELD'? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\n <span class=\"column-child-item-name\">\n {{ dataViewColumn.label }}\n </span>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </a-spin>\n </div>\n <a-pagination\n size=\"small\"\n show-quick-jumper\n v-model:pageSize=\"pagination.pageSize\"\n :total=\"pagination.totalResult\"\n :show-total=\"(total) => `共 ${total} 条`\"\n v-model:current=\"pagination.currentPage\"\n @change=\"onPaginationChange\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n ref,\n unref,\n inject,\n provide\n} from 'vue'\nimport { CaretRightOutlined, CaretDownOutlined } from '@ant-design/icons-vue'\nimport {\n InputSearch as AInputSearch,\n Spin as ASpin,\n Pagination as APagination,\n Tooltip as ATooltip\n} from 'ant-design-vue'\nimport { debounce } from 'lodash-es'\nimport {\n INDICATOR_URL,\n REQUEST,\n INDICATOR_TOKEN,\n SELECTED_COMPONENT,\n GRAPHIC_CONFIG,\n SOURCE_TYPE\n // UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\nimport Draggable from 'vuedraggable'\nimport IndSourceList from './IndSourceList.vue'\nexport default defineComponent({\n name: 'DataSourceList',\n components: {\n CaretRightOutlined,\n CaretDownOutlined,\n IndSourceList,\n AInputSearch,\n ASpin,\n APagination,\n Draggable,\n ATooltip\n },\n setup () {\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const selectedComponent = inject(SELECTED_COMPONENT) as any\n // const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const selectedConfig = computed(\n () => unref(selectedComponent)?.graphicConfig\n )\n const dataSourceId = computed(() => unref(selectedConfig)?.dataSourceId)\n const dataSourceList = ref<{ [key: string]: any }[]>([])\n const dataSourceLoading = ref(false)\n const indSourceRef = ref()\n // 分页数据\n const pagination = reactive({\n pageSize: 20,\n currentPage: 1,\n totalResult: 0\n })\n const source = inject(SOURCE_TYPE)\n const searchText = ref('')\n const handleDataSourceList = async () => {\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n return\n }\n dataSourceLoading.value = true\n const params: any = {\n source: unref(source),\n indexName: unref(searchText),\n pageId: PAGE_ID,\n dataSourceId: unref(dataSourceId),\n queryRequest: {\n pageSize: pagination.pageSize,\n pageNum: pagination.currentPage\n }\n }\n if (params.source === 'EDV_DATA_SET') {\n params.edvDataSetName = params.indexName\n delete params.indexName\n }\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n params,\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n dataSourceLoading.value = false\n const { success, data = {} } = res.data\n if (success) {\n const { rows = [], total = 0 } = data\n rows?.forEach((row: { [key: string]: any }) => {\n row.show = false\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\n column.show = true\n // 编辑名字\n column.edit = false\n if (column.title) {\n column.label = column.title\n }\n })\n })\n dataSourceList.value = rows\n pagination.totalResult = +total\n // if (params.source === 'EDV_DATA_SET') {\n // // 过滤列表使用\n // updateGraphicConfig({\n // dataSourceList: rows\n // })\n // }\n }\n } catch (error) {\n dataSourceLoading.value = false\n }\n }\n\n const onToggleGroup = (index: number) => {\n dataSourceList.value[index].show = !dataSourceList.value[index].show\n }\n\n const onSearch = () => {\n pagination.currentPage = 1\n handleDataSourceList()\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n unref(indSourceRef)?.handleSearch(unref(searchText))\n }\n }\n\n const onChange = debounce(() => {\n pagination.currentPage = 1\n handleDataSourceList()\n }, 200)\n\n const onPaginationChange = (page: number, pageSize: number) => {\n pagination.pageSize = pageSize\n pagination.currentPage = page\n handleDataSourceList()\n }\n\n onMounted(() => {\n handleDataSourceList()\n })\n\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n // 维度列表\n const dimensions = computed<any>(() => {\n const types = ['classificationList', 'rowHeaderList', 'dimensionList', 'queryColumnList']\n let options = [] as { key:string } []\n for (const key in unref(graphicConfig)) {\n if (Object.prototype.hasOwnProperty.call(unref(graphicConfig), key) && types.includes(key)) {\n const value = unref(graphicConfig)[key]\n if (Array.isArray(value)) {\n options = options.concat(value)\n }\n }\n }\n return options\n })\n const setItemDisabled = (dataViewColumns: any[] = []) => {\n // 维度不存在指标中,则禁用该指标中所有的维度和值\n let lostDim = false\n\n if (unref(source) === 'EDV_DATA_SET') {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.parentId === item.parentId)\n if (!target) {\n lostDim = true\n break\n }\n }\n } else {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.typeGuid === item.typeGuid)\n if (!target) {\n lostDim = true\n break\n }\n }\n }\n\n return lostDim\n }\n\n provide('setItemDisabled', setItemDisabled)\n\n const onDragStart = (\n event: any,\n dataSource: { [key: string]: any }\n ) => {\n const dataView = dataSource.dataViewColumns[event.oldIndex]\n let dataSetParams = {}\n if (dataSource.dataSetParams) {\n dataSetParams = dataSource.dataSetParams\n }\n if (dataView) {\n sessionStorage.setItem('indicator-list-item', JSON.stringify({\n ...dataView,\n dataTo: dataSource.dataTo,\n dataSetParams: dataSetParams,\n meaning: dataSource.meaning,\n theFormula: dataSource.theFormula,\n theUnit: dataSource.theUnit\n }))\n if (dataSource.dataTo === '1' && dataSource?.hrpIndexVariates) {\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.hrpIndexVariates))\n }\n if (dataSource.dataTo === '2' && dataSource?.dataSetParams) {\n // sessionStorage.setItem('dataSource-list', JSON.stringify(dataSource))\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.dataSetParams))\n }\n }\n }\n\n return {\n dataSourceList,\n dataSourceLoading,\n pagination,\n onToggleGroup,\n mapScope,\n mapDataSetScope,\n onSearch,\n onChange,\n source,\n onPaginationChange,\n searchText,\n setItemDisabled,\n onDragStart,\n getSourceType,\n getLoadType,\n getUseType,\n graphicConfig,\n indSourceRef\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-source-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-child-item {\n padding: 3px 10px;\n cursor: pointer;\n}\n\n.column-disabled {\n .column-item {\n color: #b3b3b3;\n :deep(.anticon) {\n color: #b3b3b3;\n }\n }\n .column-child-item {\n color: #b3b3b3;\n }\n}\n</style>\n","<template>\n <div class=\"data-source-list\">\n <a-input-search\n v-model:value=\"searchText\"\n placeholder=\"请输入关键字\"\n style=\"width: 100%\"\n @change=\"onChange\"\n @search=\"onSearch\"\n />\n <template v-if=\"graphicConfig.source === 'INDICATOR_LIB'\">\n <ind-source-list\n ref=\"indSourceRef\"\n :data=\"dataSourceList\"\n :hasChildren=\"true\"\n :isSub=\"false\"\n :graphicConfig=\"graphicConfig\"\n source=\"INDICATOR_LIB\"\n @setItemDisabled=\"setItemDisabled\"\n @onDragStart=\"onDragStart\"\n />\n </template>\n <template v-else>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataSourceLoading\"\n tip=\"数据源加载中...\"\n >\n <div\n v-for=\"(dataSource, index) in dataSourceList\"\n :key=\"dataSource.id\"\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\n >\n <div class=\"column-item\">\n <a-tooltip>\n <template #title>\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\n </template>\n <span\n style=\"cursor: pointer\"\n @click=\"onToggleGroup(index)\"\n >\n <caret-down-outlined v-if=\"dataSource.show\" />\n <caret-right-outlined v-else />\n {{ (dataSource.indexCode?dataSource.indexCode:'') + ' ' + dataSource.name }}【{{ getSourceType(dataSource.dataTo) }}】\n </span>\n </a-tooltip>\n </div>\n <div v-if=\"dataSource.show\">\n <draggable\n v-model=\"dataSource.dataViewColumns\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\n @start=\"onDragStart($event, dataSource)\"\n >\n <template #item=\"{ element: dataViewColumn }\">\n <div class=\"column-child-item\">\n 【{{ dataViewColumn.scope==='FIELD'? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\n <span class=\"column-child-item-name\">\n {{ dataViewColumn.label }}\n </span>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </a-spin>\n </div>\n <a-pagination\n size=\"small\"\n show-quick-jumper\n v-model:pageSize=\"pagination.pageSize\"\n :total=\"pagination.totalResult\"\n :show-total=\"(total) => `共 ${total} 条`\"\n v-model:current=\"pagination.currentPage\"\n @change=\"onPaginationChange\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n ref,\n unref,\n inject,\n provide\n} from 'vue'\nimport { CaretRightOutlined, CaretDownOutlined } from '@ant-design/icons-vue'\nimport {\n InputSearch as AInputSearch,\n Spin as ASpin,\n Pagination as APagination,\n Tooltip as ATooltip\n} from 'ant-design-vue'\nimport { debounce } from 'lodash-es'\nimport {\n INDICATOR_URL,\n REQUEST,\n INDICATOR_TOKEN,\n SELECTED_COMPONENT,\n GRAPHIC_CONFIG,\n SOURCE_TYPE\n // UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\nimport Draggable from 'vuedraggable'\nimport IndSourceList from './IndSourceList.vue'\nexport default defineComponent({\n name: 'DataSourceList',\n components: {\n CaretRightOutlined,\n CaretDownOutlined,\n IndSourceList,\n AInputSearch,\n ASpin,\n APagination,\n Draggable,\n ATooltip\n },\n setup () {\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const selectedComponent = inject(SELECTED_COMPONENT) as any\n // const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const selectedConfig = computed(\n () => unref(selectedComponent)?.graphicConfig\n )\n const dataSourceId = computed(() => unref(selectedConfig)?.dataSourceId)\n const dataSourceList = ref<{ [key: string]: any }[]>([])\n const dataSourceLoading = ref(false)\n const indSourceRef = ref()\n // 分页数据\n const pagination = reactive({\n pageSize: 20,\n currentPage: 1,\n totalResult: 0\n })\n const source = inject(SOURCE_TYPE)\n const searchText = ref('')\n const handleDataSourceList = async () => {\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n return\n }\n dataSourceLoading.value = true\n const params: any = {\n source: unref(source),\n indexName: unref(searchText),\n pageId: PAGE_ID,\n dataSourceId: unref(dataSourceId),\n queryRequest: {\n pageSize: pagination.pageSize,\n pageNum: pagination.currentPage\n }\n }\n if (params.source === 'EDV_DATA_SET') {\n params.edvDataSetName = params.indexName\n delete params.indexName\n }\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n params,\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n dataSourceLoading.value = false\n const { success, data = {} } = res.data\n if (success) {\n const { rows = [], total = 0 } = data\n rows?.forEach((row: { [key: string]: any }) => {\n row.show = false\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\n column.show = true\n // 编辑名字\n column.edit = false\n if (column.title) {\n column.label = column.title\n }\n })\n })\n dataSourceList.value = rows\n pagination.totalResult = +total\n // if (params.source === 'EDV_DATA_SET') {\n // // 过滤列表使用\n // updateGraphicConfig({\n // dataSourceList: rows\n // })\n // }\n }\n } catch (error) {\n dataSourceLoading.value = false\n }\n }\n\n const onToggleGroup = (index: number) => {\n dataSourceList.value[index].show = !dataSourceList.value[index].show\n }\n\n const onSearch = () => {\n pagination.currentPage = 1\n handleDataSourceList()\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n unref(indSourceRef)?.handleSearch(unref(searchText))\n }\n }\n\n const onChange = debounce(() => {\n pagination.currentPage = 1\n handleDataSourceList()\n }, 200)\n\n const onPaginationChange = (page: number, pageSize: number) => {\n pagination.pageSize = pageSize\n pagination.currentPage = page\n handleDataSourceList()\n }\n\n onMounted(() => {\n handleDataSourceList()\n })\n\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n // 维度列表\n const dimensions = computed<any>(() => {\n const types = ['classificationList', 'rowHeaderList', 'dimensionList', 'queryColumnList']\n let options = [] as { key:string } []\n for (const key in unref(graphicConfig)) {\n if (Object.prototype.hasOwnProperty.call(unref(graphicConfig), key) && types.includes(key)) {\n const value = unref(graphicConfig)[key]\n if (Array.isArray(value)) {\n options = options.concat(value)\n }\n }\n }\n return options\n })\n const setItemDisabled = (dataViewColumns: any[] = []) => {\n // 维度不存在指标中,则禁用该指标中所有的维度和值\n let lostDim = false\n\n if (unref(source) === 'EDV_DATA_SET') {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.parentId === item.parentId)\n if (!target) {\n lostDim = true\n break\n }\n }\n } else {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.typeGuid === item.typeGuid)\n if (!target) {\n lostDim = true\n break\n }\n }\n }\n\n return lostDim\n }\n\n provide('setItemDisabled', setItemDisabled)\n\n const onDragStart = (\n event: any,\n dataSource: { [key: string]: any }\n ) => {\n const dataView = dataSource.dataViewColumns[event.oldIndex]\n let dataSetParams = {}\n if (dataSource.dataSetParams) {\n dataSetParams = dataSource.dataSetParams\n }\n if (dataView) {\n sessionStorage.setItem('indicator-list-item', JSON.stringify({\n ...dataView,\n dataTo: dataSource.dataTo,\n dataSetParams: dataSetParams,\n meaning: dataSource.meaning,\n theFormula: dataSource.theFormula,\n theUnit: dataSource.theUnit\n }))\n if (dataSource.dataTo === '1' && dataSource?.hrpIndexVariates) {\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.hrpIndexVariates))\n }\n if (dataSource.dataTo === '2' && dataSource?.dataSetParams) {\n // sessionStorage.setItem('dataSource-list', JSON.stringify(dataSource))\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.dataSetParams))\n }\n }\n }\n\n return {\n dataSourceList,\n dataSourceLoading,\n pagination,\n onToggleGroup,\n mapScope,\n mapDataSetScope,\n onSearch,\n onChange,\n source,\n onPaginationChange,\n searchText,\n setItemDisabled,\n onDragStart,\n getSourceType,\n getLoadType,\n getUseType,\n graphicConfig,\n indSourceRef\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-source-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-child-item {\n padding: 3px 10px;\n cursor: pointer;\n}\n\n.column-disabled {\n .column-item {\n color: #b3b3b3;\n :deep(.anticon) {\n color: #b3b3b3;\n }\n }\n .column-child-item {\n color: #b3b3b3;\n }\n}\n</style>\n","<template>\n <data-view-list v-if=\"source === 'SQL_VIEW'\" />\n <data-source-list v-if=\"source === 'INDICATOR_LIB' || source === 'EDV_DATA_SET' \" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject } from 'vue'\nimport DataViewList from './DataViewList.vue'\nimport DataSourceList from './DataSourceList.vue'\nimport { SOURCE_TYPE } from '@/utils/constant'\nexport default defineComponent({\n name: 'DataList',\n components: {\n DataSourceList,\n DataViewList\n },\n setup () {\n const source = inject(SOURCE_TYPE)\n return {\n source\n }\n }\n})\n</script>\n\n<style scoped></style>\n","<template>\n <data-view-list v-if=\"source === 'SQL_VIEW'\" />\n <data-source-list v-if=\"source === 'INDICATOR_LIB' || source === 'EDV_DATA_SET' \" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject } from 'vue'\nimport DataViewList from './DataViewList.vue'\nimport DataSourceList from './DataSourceList.vue'\nimport { SOURCE_TYPE } from '@/utils/constant'\nexport default defineComponent({\n name: 'DataList',\n components: {\n DataSourceList,\n DataViewList\n },\n setup () {\n const source = inject(SOURCE_TYPE)\n return {\n source\n }\n }\n})\n</script>\n\n<style scoped></style>\n","import { defineAsyncComponent, AsyncComponentLoader } from 'vue'\nconst loadAsyncComponent = (loader: AsyncComponentLoader<any>) => defineAsyncComponent({\n loader,\n delay: 200\n})\n\nexport default loadAsyncComponent\n","<template>\n <div class=\"config-modal\" v-if=\"!isUpdate\">\n <div class=\"config-modal-left\" v-if=\"!isPivotTable\">\n <data-list />\n </div>\n <div class=\"config-modal-right\" :class=\"isPivotTable ? 'full' : ''\">\n <data-config ref=\"dataConfigRef\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, provide, nextTick, PropType } from 'vue'\nimport { cloneDeep } from 'lodash-es'\nimport {\n DATA_LIST,\n INDICATOR_TOKEN,\n GRAPHIC_CONFIG,\n CHARTS_OPTIONS,\n TABLE_OPTIONS,\n SOURCE_TYPE,\n SHOW_STYLE_CONFIG,\n UPDATE_GRAPHIC_CONFIG,\n UPDATE_CHARTS_OPTIONS,\n UPDATE_TABLE_OPTIONS,\n SELECTED_COMPONENT,\n REQUEST,\n RENDER_USED_COMPONENTS,\n UPDATE_USED_COMPONENT,\n UPDATE_COMPONENTS_CONFIG,\n MAP_ATTRIBUTE_PROPS,\n PAGE_CONFIG,\n IS_PIVOT_TABLE,\n IS_IFRAME_MODE\n} from '@/utils/constant'\nimport propsMap from './data-config/style-config-group/chart-props'\nimport tableProps from './data-config/style-config-group/table-props'\nimport DataList from './data-list'\nimport loadAsyncComponent from '@/utils/loadAsyncComponent'\nexport default defineComponent({\n name: 'IndicatorLibrary',\n components: {\n DataList,\n DataConfig: loadAsyncComponent(() => import('./data-config'))\n },\n props: {\n isShowStyleConfig: {\n // 是否显示样式配置\n type: Boolean,\n default: false\n },\n sourceType: {\n // 数据源类型\n type: String,\n default: ''\n },\n indicatorToken: {\n // 指标库token\n type: String,\n default: ''\n },\n selectedComponent: {\n // 当前组件\n type: Object,\n default: () => {}\n },\n request: {\n // 外部请求方法\n default: null\n },\n renderUsedComponentList: {\n // 当前画布上渲染的组件\n type: Array as PropType<any[]>,\n default: () => []\n },\n mapAttributeProps: {\n type: Object,\n default: () => ({\n startTime: {\n label: '开始时间值',\n component: 'time-pick'\n },\n endTime: {\n label: '结束时间值',\n component: 'time-pick'\n }\n })\n },\n pageConfig: {\n type: Object,\n default: () => {}\n },\n isIframeMode: {\n type: Boolean,\n default: false\n }\n },\n setup (props, { expose, emit }) {\n const dataConfigRef = ref()\n const isUpdate = ref(false)\n const sourceType = computed(() => props.sourceType)\n const indicatorToken = computed(() => props.indicatorToken || '')\n const component = computed(() => props.selectedComponent)\n const usedComponentList = computed(() => props.renderUsedComponentList)\n const tableColumns = computed(\n () => unref(component)?.tableColumns || []\n )\n const isShowStyleConfig = computed(() => props.isShowStyleConfig)\n const isPivotTable = computed(() => unref(component)?.type?.includes('PivotTable'))\n // 图形化配置\n let graphicConfig = unref(component).graphicConfig\n ? cloneDeep(unref(component).graphicConfig)\n : ref({})\n graphicConfig = ref(graphicConfig)\n // 图表样式配置\n let chartsOptions = unref(component).chartsOptions\n ? cloneDeep(unref(component).chartsOptions)\n : ref(cloneDeep(propsMap.line))\n chartsOptions = ref(chartsOptions)\n let tableOptions = unref(component).tableOptions\n ? cloneDeep(unref(component).tableOptions)\n : ref(cloneDeep(tableProps))\n tableOptions = ref(tableOptions)\n // 设置数据列表\n const dataList = ref<{ [key: string]: any }[]>([])\n const setDataList = (list: { [key: string]: any }[]) => {\n dataList.value = list\n }\n const updateGraphicConfig = (config: { [key: string]: any }) => {\n graphicConfig.value = {\n ...unref(graphicConfig),\n ...unref(config)\n }\n }\n const updateChartsOptions = (\n options: { [key: string]: any },\n isMerge: Boolean = true\n ) => {\n if (isMerge) {\n chartsOptions.value = {\n ...unref(chartsOptions),\n ...unref(options)\n }\n } else {\n chartsOptions.value = {\n ...unref(options)\n }\n }\n }\n const updateTableOptions = (options: { [key: string]: any }) => {\n tableOptions.value = {\n ...unref(tableOptions),\n ...unref(options)\n }\n }\n const getDataList = () => dataList\n const updateIndicatorData = () => {\n isUpdate.value = true\n if (unref(component).graphicConfig) {\n graphicConfig.value = cloneDeep(unref(component).graphicConfig)\n }\n if (unref(component).chartsOptions) {\n chartsOptions.value = cloneDeep(unref(component).chartsOptions || propsMap.line)\n }\n nextTick(() => {\n isUpdate.value = false\n })\n }\n const getIndicatorData = () => {\n return {\n graphicConfig: unref(graphicConfig),\n chartsOptions: unref(chartsOptions),\n tableOptions: unref(tableOptions),\n tableColumns: unref(tableColumns),\n columnsConfigMap: unref(component).columnsConfigMap\n }\n }\n const getPivotGraphicData = () => {\n const pivotTableData = unref(dataConfigRef).getSaveData()\n return {\n ...pivotTableData,\n graphicConfig: unref(graphicConfig)\n }\n }\n (window as any).getIndicatorData = getIndicatorData;\n (window as any).getPivotGraphicData = getPivotGraphicData\n if (props.request) {\n provide(REQUEST, props.request)\n }\n provide(DATA_LIST, {\n setDataList,\n getDataList\n })\n\n const updateUsedComponent = (data: any) => {\n emit('updateUsedComponent', data)\n }\n const updateComponentsConfig = (ids: string[], controlList: any[]) => {\n emit('updateComponentsConfig', ids, { controlList })\n }\n provide(IS_PIVOT_TABLE, isPivotTable)\n provide(IS_IFRAME_MODE, props.isIframeMode)\n provide(SELECTED_COMPONENT, component)\n provide(GRAPHIC_CONFIG, graphicConfig)\n provide(CHARTS_OPTIONS, chartsOptions)\n provide(TABLE_OPTIONS, tableOptions)\n provide(SOURCE_TYPE, sourceType)\n provide(SHOW_STYLE_CONFIG, isShowStyleConfig)\n provide(INDICATOR_TOKEN, indicatorToken)\n provide(UPDATE_GRAPHIC_CONFIG, updateGraphicConfig)\n provide(UPDATE_CHARTS_OPTIONS, updateChartsOptions)\n provide(UPDATE_TABLE_OPTIONS, updateTableOptions)\n provide(RENDER_USED_COMPONENTS, usedComponentList)\n provide(UPDATE_USED_COMPONENT, updateUsedComponent)\n provide(UPDATE_COMPONENTS_CONFIG, updateComponentsConfig)\n provide(MAP_ATTRIBUTE_PROPS, props.mapAttributeProps)\n provide(PAGE_CONFIG, props.pageConfig)\n expose({\n graphicConfig,\n chartsOptions,\n updateIndicatorData\n })\n return {\n isUpdate,\n isPivotTable,\n dataConfigRef\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.config-modal {\n width: 100%;\n height: 100%;\n display: flex;\n padding: 10px;\n}\n\n.config-modal-left {\n width: 300px;\n height: 100%;\n margin-right: 10px;\n padding: 10px;\n}\n\n.config-modal-right {\n width: calc(100% - 310px);\n &.full {\n width: 100%;\n }\n}\n</style>\n","<template>\n <div class=\"config-modal\" v-if=\"!isUpdate\">\n <div class=\"config-modal-left\" v-if=\"!isPivotTable\">\n <data-list />\n </div>\n <div class=\"config-modal-right\" :class=\"isPivotTable ? 'full' : ''\">\n <data-config ref=\"dataConfigRef\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, provide, nextTick, PropType } from 'vue'\nimport { cloneDeep } from 'lodash-es'\nimport {\n DATA_LIST,\n INDICATOR_TOKEN,\n GRAPHIC_CONFIG,\n CHARTS_OPTIONS,\n TABLE_OPTIONS,\n SOURCE_TYPE,\n SHOW_STYLE_CONFIG,\n UPDATE_GRAPHIC_CONFIG,\n UPDATE_CHARTS_OPTIONS,\n UPDATE_TABLE_OPTIONS,\n SELECTED_COMPONENT,\n REQUEST,\n RENDER_USED_COMPONENTS,\n UPDATE_USED_COMPONENT,\n UPDATE_COMPONENTS_CONFIG,\n MAP_ATTRIBUTE_PROPS,\n PAGE_CONFIG,\n IS_PIVOT_TABLE,\n IS_IFRAME_MODE\n} from '@/utils/constant'\nimport propsMap from './data-config/style-config-group/chart-props'\nimport tableProps from './data-config/style-config-group/table-props'\nimport DataList from './data-list'\nimport loadAsyncComponent from '@/utils/loadAsyncComponent'\nexport default defineComponent({\n name: 'IndicatorLibrary',\n components: {\n DataList,\n DataConfig: loadAsyncComponent(() => import('./data-config'))\n },\n props: {\n isShowStyleConfig: {\n // 是否显示样式配置\n type: Boolean,\n default: false\n },\n sourceType: {\n // 数据源类型\n type: String,\n default: ''\n },\n indicatorToken: {\n // 指标库token\n type: String,\n default: ''\n },\n selectedComponent: {\n // 当前组件\n type: Object,\n default: () => {}\n },\n request: {\n // 外部请求方法\n default: null\n },\n renderUsedComponentList: {\n // 当前画布上渲染的组件\n type: Array as PropType<any[]>,\n default: () => []\n },\n mapAttributeProps: {\n type: Object,\n default: () => ({\n startTime: {\n label: '开始时间值',\n component: 'time-pick'\n },\n endTime: {\n label: '结束时间值',\n component: 'time-pick'\n }\n })\n },\n pageConfig: {\n type: Object,\n default: () => {}\n },\n isIframeMode: {\n type: Boolean,\n default: false\n }\n },\n setup (props, { expose, emit }) {\n const dataConfigRef = ref()\n const isUpdate = ref(false)\n const sourceType = computed(() => props.sourceType)\n const indicatorToken = computed(() => props.indicatorToken || '')\n const component = computed(() => props.selectedComponent)\n const usedComponentList = computed(() => props.renderUsedComponentList)\n const tableColumns = computed(\n () => unref(component)?.tableColumns || []\n )\n const isShowStyleConfig = computed(() => props.isShowStyleConfig)\n const isPivotTable = computed(() => unref(component)?.type?.includes('PivotTable'))\n // 图形化配置\n let graphicConfig = unref(component).graphicConfig\n ? cloneDeep(unref(component).graphicConfig)\n : ref({})\n graphicConfig = ref(graphicConfig)\n // 图表样式配置\n let chartsOptions = unref(component).chartsOptions\n ? cloneDeep(unref(component).chartsOptions)\n : ref(cloneDeep(propsMap.line))\n chartsOptions = ref(chartsOptions)\n let tableOptions = unref(component).tableOptions\n ? cloneDeep(unref(component).tableOptions)\n : ref(cloneDeep(tableProps))\n tableOptions = ref(tableOptions)\n // 设置数据列表\n const dataList = ref<{ [key: string]: any }[]>([])\n const setDataList = (list: { [key: string]: any }[]) => {\n dataList.value = list\n }\n const updateGraphicConfig = (config: { [key: string]: any }) => {\n graphicConfig.value = {\n ...unref(graphicConfig),\n ...unref(config)\n }\n }\n const updateChartsOptions = (\n options: { [key: string]: any },\n isMerge: Boolean = true\n ) => {\n if (isMerge) {\n chartsOptions.value = {\n ...unref(chartsOptions),\n ...unref(options)\n }\n } else {\n chartsOptions.value = {\n ...unref(options)\n }\n }\n }\n const updateTableOptions = (options: { [key: string]: any }) => {\n tableOptions.value = {\n ...unref(tableOptions),\n ...unref(options)\n }\n }\n const getDataList = () => dataList\n const updateIndicatorData = () => {\n isUpdate.value = true\n if (unref(component).graphicConfig) {\n graphicConfig.value = cloneDeep(unref(component).graphicConfig)\n }\n if (unref(component).chartsOptions) {\n chartsOptions.value = cloneDeep(unref(component).chartsOptions || propsMap.line)\n }\n nextTick(() => {\n isUpdate.value = false\n })\n }\n const getIndicatorData = () => {\n return {\n graphicConfig: unref(graphicConfig),\n chartsOptions: unref(chartsOptions),\n tableOptions: unref(tableOptions),\n tableColumns: unref(tableColumns),\n columnsConfigMap: unref(component).columnsConfigMap\n }\n }\n const getPivotGraphicData = () => {\n const pivotTableData = unref(dataConfigRef).getSaveData()\n return {\n ...pivotTableData,\n graphicConfig: unref(graphicConfig)\n }\n }\n (window as any).getIndicatorData = getIndicatorData;\n (window as any).getPivotGraphicData = getPivotGraphicData\n if (props.request) {\n provide(REQUEST, props.request)\n }\n provide(DATA_LIST, {\n setDataList,\n getDataList\n })\n\n const updateUsedComponent = (data: any) => {\n emit('updateUsedComponent', data)\n }\n const updateComponentsConfig = (ids: string[], controlList: any[]) => {\n emit('updateComponentsConfig', ids, { controlList })\n }\n provide(IS_PIVOT_TABLE, isPivotTable)\n provide(IS_IFRAME_MODE, props.isIframeMode)\n provide(SELECTED_COMPONENT, component)\n provide(GRAPHIC_CONFIG, graphicConfig)\n provide(CHARTS_OPTIONS, chartsOptions)\n provide(TABLE_OPTIONS, tableOptions)\n provide(SOURCE_TYPE, sourceType)\n provide(SHOW_STYLE_CONFIG, isShowStyleConfig)\n provide(INDICATOR_TOKEN, indicatorToken)\n provide(UPDATE_GRAPHIC_CONFIG, updateGraphicConfig)\n provide(UPDATE_CHARTS_OPTIONS, updateChartsOptions)\n provide(UPDATE_TABLE_OPTIONS, updateTableOptions)\n provide(RENDER_USED_COMPONENTS, usedComponentList)\n provide(UPDATE_USED_COMPONENT, updateUsedComponent)\n provide(UPDATE_COMPONENTS_CONFIG, updateComponentsConfig)\n provide(MAP_ATTRIBUTE_PROPS, props.mapAttributeProps)\n provide(PAGE_CONFIG, props.pageConfig)\n expose({\n graphicConfig,\n chartsOptions,\n updateIndicatorData\n })\n return {\n isUpdate,\n isPivotTable,\n dataConfigRef\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.config-modal {\n width: 100%;\n height: 100%;\n display: flex;\n padding: 10px;\n}\n\n.config-modal-left {\n width: 300px;\n height: 100%;\n margin-right: 10px;\n padding: 10px;\n}\n\n.config-modal-right {\n width: calc(100% - 310px);\n &.full {\n width: 100%;\n }\n}\n</style>\n","import { withInstall } from '@/utils/withInstall'\r\nimport IndicatorLibrary from './IndicatorLibrary.vue'\r\nexport const EcanIndicatorLibrary = withInstall(IndicatorLibrary)\r\nexport default EcanIndicatorLibrary\r\n","import { lowerCaseIncludes, hasOwn } from '@ecan-bi/tools'\r\nimport {\r\n INDICATOR_URL\r\n} from '@/utils/constant'\r\n\r\nexport const useIndicatorData = (props: { [key:string]: any } = {}) => {\r\n const handleQueryColumn = (queryColumn: { [key:string]: any } = {}) => {\r\n const { label, name, location, show, indexCode, typeGuid } = queryColumn\r\n return {\r\n label,\r\n columnName: name,\r\n location,\r\n show,\r\n calcType: 'COLUMN',\r\n hrpIndexCode: indexCode,\r\n typeGuid\r\n }\r\n }\r\n\r\n const handleParams = (params: any) => {\r\n if (hasOwn(params, 'dataType')) {\r\n if (params.fieldType === 'DATE') {\r\n params.label = params.fieldName\r\n if (params.dataType === 'component') {\r\n params.fieldValue = '${' + params.fieldValue + '}'\r\n }\r\n }\r\n delete params.dataType\r\n }\r\n if (hasOwn(params, 'activeKey')) {\r\n delete params.activeKey\r\n }\r\n if (hasOwn(params, 'radioValue')) {\r\n delete params.radioValue\r\n }\r\n }\r\n // 递归格式化conditions的数据\r\n const handleConditions = (list: { [key: string]: any } []) => {\r\n const result = []\r\n if (list?.length) {\r\n list.forEach((item) => {\r\n if (item.join && item.conditions) {\r\n const isSameLevel = !item.conditions.some((v: any) => v.join && v.conditions)\r\n item.conditions.forEach((cs: any, index: number) => {\r\n handleParams(cs)\r\n if (isSameLevel) {\r\n if (index < item.conditions.length - 1) {\r\n result.push({\r\n join: item.join,\r\n ...cs\r\n })\r\n } else {\r\n result.push(cs)\r\n }\r\n } else {\r\n if (cs.join && cs.conditions) {\r\n result.push({\r\n conditions: handleConditions([cs]),\r\n join: item.join\r\n })\r\n } else {\r\n result.push(cs)\r\n }\r\n }\r\n })\r\n } else {\r\n handleParams(item)\r\n result.push(item)\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n\r\n const handleIndicator = (indicator: { [key:string]: any } = {}) => {\r\n const {\r\n label,\r\n name,\r\n location,\r\n show,\r\n indexCode,\r\n calcType = 'COLUMN',\r\n builtInFormula,\r\n builtInValueSource,\r\n builtInCalcWay,\r\n formula,\r\n conditions,\r\n aggregate\r\n } = indicator\r\n let conditionData\r\n if (conditions) {\r\n conditionData = handleConditions(conditions)\r\n }\r\n return {\r\n label: label.trim(),\r\n columnName: name,\r\n location,\r\n show,\r\n calcType,\r\n hrpIndexCode: indexCode,\r\n aggregate,\r\n builtInFormula,\r\n builtInValueSource,\r\n builtInCalcWay,\r\n formula,\r\n conditions: conditionData\r\n }\r\n }\r\n\r\n return async () => {\r\n const { graphicConfig, type, request, isGroupTable } = props\r\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\r\n let {\r\n source,\r\n dataViewId,\r\n plugin = '1', // 插件类型\r\n layer, // 后台图表类型,值分0,1\r\n chartType, // 前端图表类型,实测没用\r\n classificationList = [],\r\n seriesList = [],\r\n leftAxisList = [],\r\n rightAxisList = [],\r\n queryColumnList = [],\r\n indicators = [],\r\n // controlList = [],\r\n dataSourceId, // 所属数据源ID\r\n idxLibMode, // 指标库模式, source= INDICATOR_LIB时候必填, NORMAL_YEAR_TABLE = 普通年表, WITH_DATE_DIM_TABLE = 带有时间维度表\r\n preview = false, // 预览开关\r\n sqlConditions = [],\r\n rowHeaderList = []\r\n } = graphicConfig || {}\r\n // 图类型,1=表 2=图\r\n if (layer == null) {\r\n if (lowerCaseIncludes(type, ['table', 'card'])) {\r\n layer = '1'\r\n } else {\r\n layer = '2'\r\n }\r\n }\r\n // console.log('classificationList', classificationList)\r\n // console.log('seriesList', seriesList)\r\n // console.log('leftAxisList', leftAxisList)\r\n // console.log('rightAxisList', rightAxisList)\r\n // console.log('indicators', indicators)\r\n // console.log('controlList', controlList)\r\n // 重点处理 classificationList、seriesList、leftAxisList、rightAxisList、indicators\r\n // classificationList (取第一项) => classification\r\n let classification: Object\r\n if (Array.isArray(classificationList) && classificationList.length > 0) {\r\n const len = classificationList.length\r\n for (let i = 0; i < len; i++) {\r\n const item = classificationList[i] || {}\r\n const { label = '', name = '', show = false, sort, customGroup, conditions, typeGuid } = item\r\n // 如果是 show 直接提取 classification,停止遍历\r\n if (show || len === 1) {\r\n classification = {\r\n label: label.trim(),\r\n columnName: name,\r\n show,\r\n sort,\r\n customGroup,\r\n typeGuid,\r\n conditions: handleConditions(conditions)\r\n }\r\n break\r\n }\r\n }\r\n }\r\n // seriesList (取第一项) => series\r\n let series: Object\r\n if (Array.isArray(seriesList) && seriesList.length > 0) {\r\n const len = seriesList.length\r\n for (let i = 0; i < len; i++) {\r\n const item = seriesList[i] || {}\r\n const { label = '', name = '', show = false, sort, customGroup, conditions, typeGuid } = item\r\n // 如果是 show 直接提取 seriesList,停止遍历\r\n if (show || len === 1) {\r\n series = {\r\n label: label.trim(),\r\n columnName: name,\r\n show,\r\n sort,\r\n customGroup,\r\n conditions: handleConditions(conditions),\r\n typeGuid\r\n }\r\n break\r\n }\r\n }\r\n }\r\n // 行表头\r\n const rowHeaders = []\r\n if (Array.isArray(rowHeaderList) && rowHeaderList.length > 0) {\r\n const len = rowHeaderList.length\r\n for (let i = 0; i < len; i++) {\r\n const item = rowHeaderList[i] || {}\r\n const { label = '', name = '', show = false, sort, customGroup, conditions, typeGuid } = item\r\n rowHeaders.push({\r\n typeGuid,\r\n label: label.trim(),\r\n columnName: name,\r\n show,\r\n sort,\r\n customGroup,\r\n conditions: handleConditions(conditions)\r\n })\r\n }\r\n }\r\n // queryColumnList => queryColumns\r\n const queryColumns = []\r\n queryColumnList?.forEach((queryColumn: { [key:string]: any }) => {\r\n queryColumns.push(handleQueryColumn(queryColumn))\r\n })\r\n\r\n // leftAxisList + rightAxisList + indicators => indicatorList\r\n const indicatorList = []\r\n leftAxisList?.forEach((leftAxis: { [key:string]: any }) => {\r\n leftAxis.location = 'LEFT'\r\n indicatorList.push(handleIndicator(leftAxis))\r\n })\r\n rightAxisList?.forEach((rightAxis: { [key:string]: any }) => {\r\n rightAxis.location = 'RIGHT'\r\n indicatorList.push(handleIndicator(rightAxis))\r\n })\r\n indicators?.forEach((indicator: { [key:string]: any }) => {\r\n indicator.location = 'LEFT'\r\n indicatorList.push(handleIndicator(indicator))\r\n })\r\n\r\n if (isGroupTable || type === 'card') {\r\n // 分组表和指标卡片\r\n chartType = 'grouptable'\r\n if (indicatorList.length === 0 || rowHeaders.length === 0) {\r\n return\r\n }\r\n // queryColumns 表格配置为空返回\r\n } else if (layer === '1' && queryColumns.length === 0) {\r\n return\r\n // queryColumns 图表配置为空返回\r\n } else if (layer === '2' && indicatorList.length === 0) {\r\n return\r\n }\r\n try {\r\n // @ts-ignore\r\n const res = await request.post(`${INDICATOR_URL}/diagram`, {\r\n source,\r\n dataViewId,\r\n plugin,\r\n layer,\r\n chartType,\r\n classification,\r\n series,\r\n indicatorList,\r\n queryColumns,\r\n pageFlag: true,\r\n sqlConditions,\r\n rowHeaders,\r\n dataSourceId,\r\n idxLibMode,\r\n preview\r\n })\r\n return res\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n}\r\n\r\nexport default useIndicatorData\r\n","<template>\r\n <div class=\"ecan-chart-graph\" ref=\"chartWrapRef\">\r\n <a-spin :spinning=\"loading\" wrapperClassName=\"chart-spin\" tip=\"数据加载中...\">\r\n <div style=\"width: 100%; height: 100%\" ref=\"echartRef\"></div>\r\n </a-spin>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport * as echarts from 'echarts'\r\nimport { defineComponent, onMounted, onBeforeUnmount, computed, ref, inject, unref, watch } from 'vue'\r\nimport { Spin as ASpin } from 'ant-design-vue'\r\nimport useIndicatorData from '@/hooks/useIndicatorData'\r\nimport * as generalTools from '@ecan-bi/tools'\r\nimport { CHARTS_OPTIONS, GRAPHIC_CONFIG, ZOOM_FONT_SIZE, REQUEST, INDICATOR_TOKEN } from '@/utils/constant'\r\nexport default defineComponent({\r\n name: 'ChartGraph',\r\n components: {\r\n ASpin\r\n },\r\n props: {\r\n graphicConfig: {\r\n // 指标库配置\r\n type: Object,\r\n default: () => {}\r\n },\r\n chartsOptions: {\r\n // 图表配置\r\n type: Object,\r\n default: () => {}\r\n }\r\n },\r\n setup (props, { expose }) {\r\n interface KeyTypeDataFieldNames {\r\n name: string\r\n types: {\r\n label: string\r\n value: string\r\n } []\r\n }\r\n\r\n interface ValueTypeDataFieldNames {\r\n name: string\r\n value: string\r\n type: string\r\n }\r\n\r\n const chartsOptions = computed(() => {\r\n if (props.chartsOptions) {\r\n return unref(props.chartsOptions)\r\n } else {\r\n return chartGraphicOptions as {\r\n [key: string]: any\r\n }\r\n }\r\n })\r\n const graphicConfig = computed(() => {\r\n if (props.graphicConfig) {\r\n return unref(props.graphicConfig)\r\n } else {\r\n return chartGraphicConfig as {\r\n [key: string]: any\r\n }\r\n }\r\n })\r\n const request = inject(REQUEST)\r\n let observer: ResizeObserver | null = null\r\n const indicatorToken = inject(INDICATOR_TOKEN) || ''\r\n const chartGraphicConfig = inject(GRAPHIC_CONFIG) || {}\r\n const chartGraphicOptions = inject(CHARTS_OPTIONS) || {}\r\n const echartRef = ref<HTMLElement>(null)\r\n const chartWrapRef = ref<HTMLElement>(null)\r\n const myChart = ref<any>()\r\n const loading = ref(false)\r\n const visible = ref(false)\r\n const fontSize = computed(() => (visible.value ? ZOOM_FONT_SIZE : 12))\r\n const chartData = ref<any>({})\r\n const myOption = ref()\r\n const chartOption = computed(() => {\r\n // 这样写为了触发响应式\r\n const chartsOptionsValue = unref(chartsOptions.value)\r\n if (chartsOptionsValue?.type === 'customGraph') {\r\n return myOption.value\r\n }\r\n return generalTools.transformProps(chartsOptionsValue, unref(chartData), fontSize.value)\r\n })\r\n const handleIndicatorDataset = (\r\n data: any = [],\r\n keyTypeDataFieldNames: KeyTypeDataFieldNames,\r\n useDataFieldNames: boolean = false\r\n ) => {\r\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\r\n chartData.value = generalTools.useTransformChartDataByAttrKey(data, dataFieldNames)\r\n }\r\n const handleIndicatorPieDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\r\n chartData.value = generalTools.useTransformChartDataByAttrValue(data, dataFieldNames)\r\n }\r\n const handleIndicatorData = async () => {\r\n try {\r\n const indicatorData = useIndicatorData({\r\n graphicConfig: unref(graphicConfig.value),\r\n type: unref(chartsOptions.value)?.type,\r\n request,\r\n indicatorToken\r\n })\r\n loading.value = true\r\n const res = await indicatorData()\r\n const { columns = [], rows = [] } = res?.data?.data ?? {}\r\n if (unref(chartsOptions.value)?.type === 'pie') {\r\n let arr = []\r\n if (columns.length > 0) {\r\n const name = columns[0]\r\n const value = columns[1]\r\n arr = rows.map((item) => {\r\n return {\r\n name: item[name],\r\n value: item[value]\r\n }\r\n })\r\n }\r\n handleIndicatorPieDataset(arr)\r\n } else {\r\n let fieldNames\r\n if (columns.length > 0) {\r\n fieldNames = {\r\n name: columns[0],\r\n types: columns.slice(1).map((column) => {\r\n return {\r\n label: column,\r\n value: column\r\n }\r\n })\r\n }\r\n }\r\n handleIndicatorDataset(rows, fieldNames, true)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false\r\n }\r\n }\r\n const emptyOption = {\r\n title: {\r\n text: '暂无数据',\r\n x: 'center',\r\n y: 'center',\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal'\r\n }\r\n }\r\n }\r\n const setChartOption = () => {\r\n const isEmpty = unref(chartData).dataset.length === 0\r\n if (isEmpty) {\r\n myChart.value.setOption(emptyOption, true)\r\n } else {\r\n myChart.value.setOption(chartOption.value, true)\r\n }\r\n }\r\n const refreshData = () => {\r\n if (unref(chartsOptions.value).type !== 'customGraph') {\r\n handleIndicatorData()\r\n }\r\n }\r\n const handleResize = () => {\r\n myChart.value?.resize()\r\n }\r\n watch(\r\n chartOption,\r\n () => {\r\n setChartOption()\r\n },\r\n {\r\n deep: true\r\n }\r\n )\r\n watch(\r\n () => unref(chartsOptions.value).optionCode,\r\n (optionCode: string) => {\r\n try {\r\n // eslint-disable-next-line\r\n const evalCopy = eval\r\n myOption.value = evalCopy(optionCode)\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\r\n )\r\n onMounted(() => {\r\n if (chartWrapRef.value) {\r\n observer = new ResizeObserver(handleResize)\r\n observer.observe(chartWrapRef.value)\r\n }\r\n myChart.value = echarts.init(echartRef.value)\r\n })\r\n onBeforeUnmount(() => {\r\n myChart.value.dispose()\r\n if (observer) {\r\n observer.disconnect()\r\n observer = null\r\n }\r\n })\r\n expose({\r\n refreshData\r\n })\r\n return {\r\n echartRef,\r\n loading\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.ecan-chart-graph {\r\n width: 100%;\r\n height: 100%;\r\n .chart-spin {\r\n width: 100%;\r\n height: 100%;\r\n :deep(.ant-spin-container) {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"ecan-chart-graph\" ref=\"chartWrapRef\">\r\n <a-spin :spinning=\"loading\" wrapperClassName=\"chart-spin\" tip=\"数据加载中...\">\r\n <div style=\"width: 100%; height: 100%\" ref=\"echartRef\"></div>\r\n </a-spin>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport * as echarts from 'echarts'\r\nimport { defineComponent, onMounted, onBeforeUnmount, computed, ref, inject, unref, watch } from 'vue'\r\nimport { Spin as ASpin } from 'ant-design-vue'\r\nimport useIndicatorData from '@/hooks/useIndicatorData'\r\nimport * as generalTools from '@ecan-bi/tools'\r\nimport { CHARTS_OPTIONS, GRAPHIC_CONFIG, ZOOM_FONT_SIZE, REQUEST, INDICATOR_TOKEN } from '@/utils/constant'\r\nexport default defineComponent({\r\n name: 'ChartGraph',\r\n components: {\r\n ASpin\r\n },\r\n props: {\r\n graphicConfig: {\r\n // 指标库配置\r\n type: Object,\r\n default: () => {}\r\n },\r\n chartsOptions: {\r\n // 图表配置\r\n type: Object,\r\n default: () => {}\r\n }\r\n },\r\n setup (props, { expose }) {\r\n interface KeyTypeDataFieldNames {\r\n name: string\r\n types: {\r\n label: string\r\n value: string\r\n } []\r\n }\r\n\r\n interface ValueTypeDataFieldNames {\r\n name: string\r\n value: string\r\n type: string\r\n }\r\n\r\n const chartsOptions = computed(() => {\r\n if (props.chartsOptions) {\r\n return unref(props.chartsOptions)\r\n } else {\r\n return chartGraphicOptions as {\r\n [key: string]: any\r\n }\r\n }\r\n })\r\n const graphicConfig = computed(() => {\r\n if (props.graphicConfig) {\r\n return unref(props.graphicConfig)\r\n } else {\r\n return chartGraphicConfig as {\r\n [key: string]: any\r\n }\r\n }\r\n })\r\n const request = inject(REQUEST)\r\n let observer: ResizeObserver | null = null\r\n const indicatorToken = inject(INDICATOR_TOKEN) || ''\r\n const chartGraphicConfig = inject(GRAPHIC_CONFIG) || {}\r\n const chartGraphicOptions = inject(CHARTS_OPTIONS) || {}\r\n const echartRef = ref<HTMLElement>(null)\r\n const chartWrapRef = ref<HTMLElement>(null)\r\n const myChart = ref<any>()\r\n const loading = ref(false)\r\n const visible = ref(false)\r\n const fontSize = computed(() => (visible.value ? ZOOM_FONT_SIZE : 12))\r\n const chartData = ref<any>({})\r\n const myOption = ref()\r\n const chartOption = computed(() => {\r\n // 这样写为了触发响应式\r\n const chartsOptionsValue = unref(chartsOptions.value)\r\n if (chartsOptionsValue?.type === 'customGraph') {\r\n return myOption.value\r\n }\r\n return generalTools.transformProps(chartsOptionsValue, unref(chartData), fontSize.value)\r\n })\r\n const handleIndicatorDataset = (\r\n data: any = [],\r\n keyTypeDataFieldNames: KeyTypeDataFieldNames,\r\n useDataFieldNames: boolean = false\r\n ) => {\r\n const dataFieldNames = useDataFieldNames ? keyTypeDataFieldNames : null\r\n chartData.value = generalTools.useTransformChartDataByAttrKey(data, dataFieldNames)\r\n }\r\n const handleIndicatorPieDataset = (data: any = [], dataFieldNames?: ValueTypeDataFieldNames) => {\r\n chartData.value = generalTools.useTransformChartDataByAttrValue(data, dataFieldNames)\r\n }\r\n const handleIndicatorData = async () => {\r\n try {\r\n const indicatorData = useIndicatorData({\r\n graphicConfig: unref(graphicConfig.value),\r\n type: unref(chartsOptions.value)?.type,\r\n request,\r\n indicatorToken\r\n })\r\n loading.value = true\r\n const res = await indicatorData()\r\n const { columns = [], rows = [] } = res?.data?.data ?? {}\r\n if (unref(chartsOptions.value)?.type === 'pie') {\r\n let arr = []\r\n if (columns.length > 0) {\r\n const name = columns[0]\r\n const value = columns[1]\r\n arr = rows.map((item) => {\r\n return {\r\n name: item[name],\r\n value: item[value]\r\n }\r\n })\r\n }\r\n handleIndicatorPieDataset(arr)\r\n } else {\r\n let fieldNames\r\n if (columns.length > 0) {\r\n fieldNames = {\r\n name: columns[0],\r\n types: columns.slice(1).map((column) => {\r\n return {\r\n label: column,\r\n value: column\r\n }\r\n })\r\n }\r\n }\r\n handleIndicatorDataset(rows, fieldNames, true)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false\r\n }\r\n }\r\n const emptyOption = {\r\n title: {\r\n text: '暂无数据',\r\n x: 'center',\r\n y: 'center',\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal'\r\n }\r\n }\r\n }\r\n const setChartOption = () => {\r\n const isEmpty = unref(chartData).dataset.length === 0\r\n if (isEmpty) {\r\n myChart.value.setOption(emptyOption, true)\r\n } else {\r\n myChart.value.setOption(chartOption.value, true)\r\n }\r\n }\r\n const refreshData = () => {\r\n if (unref(chartsOptions.value).type !== 'customGraph') {\r\n handleIndicatorData()\r\n }\r\n }\r\n const handleResize = () => {\r\n myChart.value?.resize()\r\n }\r\n watch(\r\n chartOption,\r\n () => {\r\n setChartOption()\r\n },\r\n {\r\n deep: true\r\n }\r\n )\r\n watch(\r\n () => unref(chartsOptions.value).optionCode,\r\n (optionCode: string) => {\r\n try {\r\n // eslint-disable-next-line\r\n const evalCopy = eval\r\n myOption.value = evalCopy(optionCode)\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\r\n )\r\n onMounted(() => {\r\n if (chartWrapRef.value) {\r\n observer = new ResizeObserver(handleResize)\r\n observer.observe(chartWrapRef.value)\r\n }\r\n myChart.value = echarts.init(echartRef.value)\r\n })\r\n onBeforeUnmount(() => {\r\n myChart.value.dispose()\r\n if (observer) {\r\n observer.disconnect()\r\n observer = null\r\n }\r\n })\r\n expose({\r\n refreshData\r\n })\r\n return {\r\n echartRef,\r\n loading\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.ecan-chart-graph {\r\n width: 100%;\r\n height: 100%;\r\n .chart-spin {\r\n width: 100%;\r\n height: 100%;\r\n :deep(.ant-spin-container) {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n}\r\n</style>\r\n","import { withInstall } from '@/utils/withInstall'\r\nimport ChartGraph from './ChartGraph.vue'\r\nexport const EcanChartGraph = withInstall(ChartGraph)\r\nexport default EcanChartGraph\r\n","import { App } from 'vue'\nimport * as components from './components'\nconst install = (app: App, options: any) => {\n const { request } = options\n app.provide('$request', request)\n Object.keys(components).forEach((key) => {\n const component = components[key]\n if (component.install) {\n app.use(component)\n }\n })\n}\n\n// 部分导出\nexport * from './components'\n// 全局安装\nexport default {\n install\n}\n"],"names":["withInstall","comp","app","REQUEST","INDICATOR_URL","_a","INDICATOR_TOKEN","DATA_LIST","SELECTED_COMPONENT","GRAPHIC_CONFIG","UPDATE_GRAPHIC_CONFIG","SHOW_STYLE_CONFIG","REFRESH_DATA","CHARTS_OPTIONS","TABLE_OPTIONS","ZOOM_FONT_SIZE","UPDATE_CHARTS_OPTIONS","UPDATE_TABLE_OPTIONS","SOURCE_TYPE","CHANGE_CONDITION","DATA_VIEW_COLUMNS","RENDER_USED_COMPONENTS","UPDATE_USED_COMPONENT","UPDATE_COMPONENTS_CONFIG","MAP_ATTRIBUTE_PROPS","PAGE_CONFIG","IS_PIVOT_TABLE","IS_IFRAME_MODE","barProps","lineProps","pieProps","customGraphProps","comboGraphProps","propsMap","tableProps","_sfc_main$5","defineComponent","ASpin","ATreeSelect","Draggable","request","inject","indicatorToken","unref","graphicConfig","updateGraphicConfig","dataViewId","computed","treeSelectLoading","ref","treeSelectData","PAGE_ID","selectedItem","reactive","echoSelectedNode","id","data","_b","transTreeData","pId","list","item","handleLoadData","treeNode","isFirst","value","onDataViewIdChange","handleDataViewColumns","setDataList","dataViewLoading","dataViewList","res","success","rows","row","columns","column","mapGenericType","genericType","onDragStart","event","dataViews","dataView","copyItem","onMounted","_hoisted_1","_component_draggable","_resolveComponent","_openBlock","_createElementBlock","_createVNode","_component_a_spin","_ctx","_withCtx","_component_a_tree_select","_createElementVNode","_hoisted_2","_cache","$event","_hoisted_3","_createTextVNode","_toDisplayString","bound01","n","max","isOnePointZero","isPercent","isPercentage","boundAlpha","a","convertToPercentage","pad2","c","rgbToRgb","r","g","b","hue2rgb","p","q","hslToRgb","h","s","l","rgbToHsv","min","v","d","hsvToRgb","i","f","t","mod","rgbToHex","allow3Char","hex","convertHexToDecimal","parseIntFromHex","val","names","inputToRGB","color","rgb","ok","format","stringInputToObject","isValidCSSUnit","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","named","match","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","_ref","hsv","toHex","_ref2","mix","rgb1","rgb2","amount","getHue","light","hue","getSaturation","saturation","getValue","generate","opts","patterns","pColor","colorString","_i","_hsv","_colorString","_ref3","index","opacity","darkColorString","presetPrimaryColors","presetPalettes","presetDarkPalettes","key","containers","styleElements","usage","createStyleElement","styleElement","insertCss","css","options","position","container","containerId","_objectSpread","target","source","ownKeys","sym","_defineProperty","obj","warn","valid","message","warning","isIconDefinition","node","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","cssInjectedFlag","useInsertStyles","styleStr","nextTick","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","props","context","_props$context$attrs","icon","restProps","colors","VueIcon","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","len","arr2","_arr","_n","_d","_s","_e","err","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","getTwoToneColor","Icon","_classObj","cls","spin","rotate","tabindex","onClick","classObj","svgClassString","iconTabIndex","svgStyle","AntdIcon","CaretDownOutlined","CaretDownOutlinedSvg","CaretDownOutlined$1","CaretRightOutlined","CaretRightOutlinedSvg","CaretRightOutlined$1","LoadingOutlined","LoadingOutlinedSvg","LoadingOutlined$1","u","y","e","m","x","w","S","A","_","j","O","C","$","oe","L","T","N","k","D","M","E","I","V","F","z","R","P","U","Y","G","W","ne","H","Q","B","K","X","Z","ee","te","re","ie","ae","le","se","ce","ue","de","fe","pe","he","ye","me","be","ge","ve","xe","we","Ae","je","Oe","Ce","Le","Te","Ne","$e","ke","De","Me","Ee","Ie","Ve","Fe","Qe","Je","Xe","Ze","tt","nt","ot","lt","st","ct","ut","Ot","Et","It","Vt","Ft","zt","Rt","Ut","Pt","Gt","Yt","Wt","Ht","Bt","Kt","Zt","pn","hn","yn","mn","gn","Mn","En","In","Vn","Fn","zn","Rn","Un","Pn","getConditions","conditions","result","getSqlConditions","renderUsedComponents","controlList","cloneDeep","classificationList","rowHeaderList","dimensionList","seriesList","leftAxisList","rightAxisList","queryColumnList","indicators","handleControlList","sqlConditions","otherList","conditionList","ol","getComponent","params","cItem","control","keyName","prop","dateFormat","dataType","customValue","sqlCondition","getConditionItem","setFieldValue","handleVariableList","variableList","handleVarList","variableItem","conditionLabel","conditionKey","conditionValueType","rule","notGlobal","indexCode","indexCodeNum","typeGuid","alias","excludeAttr","attr","operateValue","operateMode","operateType","component","operate","type","useCurrentTime","customFormat","lowerCaseIncludes","dateValue","dayjs","mode","opType","opValue","interval","intervalUnit","startTime","endTime","propValue","knList","_time","step","getFormatStep","variables","getEventName","componentList","dateList","formatStep","handleFormat","retentiondigit","str","formatQfw","str1","str2","mapScope","scope","mapDataSetScope","getLoadType","getUseType","getSourceType","dataTo","_sfc_main$4","ATooltip","emit","expose","setItemDisabled","_value","sourceList","columnRef","pagination","isLoading","indexName","searchLoading","watch","removeScroll","scrollRequest","requestData","dataSourceId","total","onToggleGroup","children","dataSource","onToggleSource","loopRequest","handleSearch","name","onUnmounted","_hoisted_4","_hoisted_10","_hoisted_11","_normalizeClass","_Fragment","_renderList","_createBlock","_component_loading_outlined","_component_caret_down_outlined","_createCommentVNode","_hoisted_5","_component_ind_source_list","_hoisted_6","_component_a_tooltip","_hoisted_7","_hoisted_8","_hoisted_9","_component_caret_right_outlined","dataViewColumn","_hoisted_12","_hoisted_13","_sfc_main$3","IndSourceList","AInputSearch","APagination","selectedComponent","selectedConfig","dataSourceList","dataSourceLoading","indSourceRef","searchText","handleDataSourceList","onSearch","onChange","debounce","onPaginationChange","page","pageSize","dimensions","types","dataViewColumns","lostDim","provide","dataSetParams","_component_a_input_search","_component_a_pagination","_sfc_main$2","DataSourceList","DataViewList","_component_data_view_list","_component_data_source_list","loadAsyncComponent","loader","defineAsyncComponent","_sfc_main$1","DataList","dataConfigRef","isUpdate","sourceType","usedComponentList","tableColumns","isShowStyleConfig","isPivotTable","chartsOptions","tableOptions","dataList","config","updateChartsOptions","isMerge","updateTableOptions","getDataList","updateIndicatorData","getIndicatorData","getPivotGraphicData","updateUsedComponent","updateComponentsConfig","ids","_component_data_config","EcanIndicatorLibrary","IndicatorLibrary","useIndicatorData","handleQueryColumn","queryColumn","label","location","show","handleParams","hasOwn","handleConditions","isSameLevel","cs","handleIndicator","indicator","calcType","builtInFormula","builtInValueSource","builtInCalcWay","formula","aggregate","conditionData","isGroupTable","plugin","layer","chartType","idxLibMode","preview","classification","sort","customGroup","series","rowHeaders","queryColumns","indicatorList","leftAxis","rightAxis","_sfc_main","chartGraphicOptions","chartGraphicConfig","observer","echartRef","chartWrapRef","myChart","loading","visible","fontSize","chartData","myOption","chartOption","chartsOptionsValue","generalTools.transformProps","handleIndicatorDataset","keyTypeDataFieldNames","useDataFieldNames","dataFieldNames","generalTools.useTransformChartDataByAttrKey","handleIndicatorPieDataset","generalTools.useTransformChartDataByAttrValue","handleIndicatorData","indicatorData","_c","fieldNames","emptyOption","setChartOption","refreshData","handleResize","optionCode","evalCopy","echarts","onBeforeUnmount","EcanChartGraph","ChartGraph","install","components"],"mappings":";;;;;;AAoCa,MAAAA,KAAc,CAACC,OACrBA,EAAA,UAAU,CAACC,MAAQ;AAElB,EAAAA,EAAA,UAAUD,EAAK,MAAMA,CAAI;AAAA,GAExBA,ICzCIE,KAAU;;AAEV,MAAAC,OAAgBC,KAAA,iCAAQ,WAAR,gBAAAA,GAAgB,iBAAgB,IAEhDC,KAAkB,mBAUlBC,KAAY,aAEZC,KAAqB,sBAErBC,KAAiB,kBAEjBC,KAAwB,yBAExBC,KAAoB,qBAEpBC,KAAe,gBAEfC,KAAiB,kBAEjBC,KAAgB,iBAEhBC,KAAiB,IAEjBC,KAAwB,yBAExBC,KAAuB,wBAEvBC,KAAc,eAEdC,KAAmB,oBAEnBC,KAAoB,qBAEpBC,KAAyB,0BAEzBC,KAAwB,yBAExBC,KAA2B,4BAE3BC,KAAsB,uBAEtBC,KAAc,eAEdC,KAAiB,kBAEjBC,KAAiB,kBC6DjBC,KAAqB;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAC1G,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,yBAAyB,EAAE,MAAM,QAAQ,OAAO,SAAS,MAAM,OAAO;AAAA,EACtE,uBAAuB,EAAE,MAAM,QAAQ,OAAO,CAAA,EAAG;AAAA,EACjD,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,6BAA6B;AAAA,EAC7B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,SAAS;AAAA,EACT,cAAc,CAAC;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,gBAAgB,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAClH,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AACd,GCtHaC,KAAY;AAAA,EACvB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EAER,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAC3I,YAAY;AAAA,EAEZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,qBAAqB;AAAA;AAAA,EACrB,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,6BAA6B;AAAA,EAC7B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA;AAAA,EAGlB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,yBAAyB,EAAE,MAAM,QAAQ,OAAO,SAAS,MAAM,OAAO;AAAA,EACtE,uBAAuB,EAAE,MAAM,QAAQ,OAAO,CAAA,EAAG;AAAA,EACjD,qBAAqB;AAAA,EACrB,eAAe,CAAC;AAAA,EAChB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AACjB,GCnJaC,KAAqB;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,cAAc;AAAA,EAEd,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAC3I,YAAY;AAAA,EAEZ,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EAEjB,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EAExB,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,6BAA6B;AAAA,EAC7B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EAEjB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,yBAAyB,EAAE,MAAM,QAAQ,OAAO,SAAS,MAAM,OAAO;AAAA,EACtE,qBAAqB;AAAA,EACrB,eAAe,CAAC;AAAA,EAChB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,cAAc;AAChB,GClJaC,KAAqC;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ,CAAC;AAAA,EACT,YAAY;AACd,GCmDaC,KAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,EAC3I,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EAEZ,aAAa;AAAA,EACb,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EAExB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,gBAAgB;AAAA,EAChB,aAAa;AAAA,IACX;AAAA,MACE,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,oBAAoB;AAAA,IACtB;AAAA,IACA;AAAA,MACE,oBAAoB;AAAA,IACtB;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,6BAA6B;AAAA,EAC7B,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,UAAU;AACZ,GC7IeC,KAAA;AAAA,EACb,KAAKL;AAAA,EACL,MAAMC;AAAA,EACN,KAAKC;AAAA,EACL,aAAaC;AAAA,EACb,YAAYC;AACd,GCKaE,KAAyB;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,WAAW,CAAC;AAAA,EACZ,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AACb,GCqCAC,KAAeC,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IAAA,OACVC;AAAAA,IAAA,aACAC;AAAAA,IACA,WAAAC;AAAA,EACF;AAAA,EACA,QAAS;;AACD,UAAAC,IAAUC,EAAOtC,EAAO,GACxBuC,IAAiBC,EAAMF,EAAOnC,EAAe,CAAC,GAC9CsC,IAAgBH,EAAOhC,EAAc,GACrCoC,IAAsBJ,EAAO/B,EAAqB,GAClDoC,IAAaC,EAAS,MAAM;;AAAA,eAAA1C,IAAAsC,EAAMC,CAAa,MAAnB,gBAAAvC,EAAsB,eAAc;AAAA,KAAI,GACpE2C,IAAoBC,EAAI,EAAK,GAC7BC,IAAiBD,EAAiC,CAAA,CAAE,GAEpDE,KAAU9C,IAAA,iCAAQ,WAAR,gBAAAA,EAAgB,QAW1B+C,IAAeC,GAAkB;AAAA,MACrC,OAAO;AAAA,MACP,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,IAAA,CACT,GAEKC,IAAmB,YAAY;;AACnC,YAAMC,IAAKT,EAAW;AACtB,MAAAE,EAAkB,QAAQ;AACtB,UAAA;AACF,cAAM,EAAE,MAAAQ,EAAA,IAAS,MAAMhB,EAAQ;AAAA,UAC/B,GAAGpC;AAAA,UACH;AAAA,YACE,QAAQ;AAAA,YACR,YAAYmD;AAAA,YACZ,QAAQJ;AAAA,YACR,UAAU;AAAA,UACZ;AAAA,UACA;AAAA,YACE,SAAS;AAAA,cACP,gBAAgBT;AAAA,cAChB,gBAAgB;AAAA,YAClB;AAAA,UACF;AAAA,QAAA;AAEA,QAAAM,EAAkB,QAAQ,IACtBQ,EAAK,aACQnD,IAAA6C,EAAA,UAAA,QAAA7C,EAAO,KAAK+C,IACZF,EAAA,SAAQO,IAAAP,EAAe,UAAf,gBAAAO,EAAsB;AAAA,UAC3CC,EAAc,CAACF,EAAK,KAAK,KAAK,CAAC,CAAC,GAAU,MAAM;AAAA;AAAA;AAIpD,QAAAR,EAAkB,QAAQ;AAAA,MAC5B;AAAA,IAAA,GAGIU,IAAgB,CACpBF,IAAiC,CAAA,GACjCG,MACG;AACH,YAAMC,IAAoC,CAAA;AACrC,aAAAJ,EAAA,QAAQ,CAACK,MAAS;AACrB,QAAAD,EAAK,KAAK;AAAA,UACR,IAAIC,EAAK;AAAA,UACT,KAAKF,KAAOE,EAAK;AAAA,UACjB,OAAOA,EAAK;AAAA,UACZ,OAAOA,EAAK;AAAA,UACZ,QAAQA,EAAK,QAAQ;AAAA,UACrB,QAAQA,EAAK;AAAA,UACb,YAAYA,EAAK,QAAQ;AAAA,QAAA,CAC1B;AAAA,MAAA,CACF,GACMD;AAAA,IAAA,GAEHE,IAAiB,OAAOC,GAAgBC,MAAsB;;AAClE,UAAIT,IAAK;AACT,UAAIQ,GAAU;AACN,cAAA,EAAE,OAAAE,EAAM,IAAIF,EAAS;AACtB,QAAAR,IAAAU;AAAA;AAEP,YAAM,EAAE,MAAAT,EAAA,IAAS,MAAMhB,EAAQ;AAAA,QAC7B,GAAGpC;AAAA,QACH;AAAA,UACE,UAAU;AAAA,UACV,QAAQ+C;AAAA,UACR,UAAUI;AAAA,QACZ;AAAA,QACA;AAAA,UACE,SAAS;AAAA,YACP,gBAAgBb;AAAA,YAChB,gBAAgB;AAAA,UAClB;AAAA,QACF;AAAA,MAAA;AAGF,MAAIc,EAAK,YACQN,EAAA,SAAQ7C,IAAAsC,EAAMO,CAAc,MAApB,gBAAA7C,EAAuB;AAAA,QAC5CqD,EAAcF,EAAK,IAAI;AAAA,SAErBQ,KAAWrB,EAAMG,CAAU,KAC7B,MAAMQ,EAAiB;AAAA,IAE3B,GAGIY,IAAqB,CAACpB,MAAuB;AACjD,MAAAqB,EAAsBrB,CAAU,GACZD,EAAA;AAAA,QAClB,YAAAC;AAAAA;AAAAA,QAEA,oBAAoB,CAAC;AAAA,QACrB,YAAY,CAAC;AAAA,QACb,cAAc,CAAC;AAAA,QACf,eAAe,CAAC;AAAA,QAChB,YAAY,CAAC;AAAA,QACb,aAAa,CAAC;AAAA,MAAA,CACf;AAAA,IAAA,GAGG,EAAE,aAAAsB,EAAA,IAAgB3B,EAAOlC,IAAW;AAAA;AAAA,MAExC,aAAa,CAACqD,MAAmCA;AAAA,IAAA,CAClD,GAEKS,IAAkBpB,EAAI,EAAK,GAE3BqB,IAAerB,EAA8B,CAAA,CAAE,GAE/CkB,IAAwB,OAAOrB,MAAuB;AAC1D,UAAKA,GACL;AAAA,QAAAwB,EAAa,QAAQ,IACrBD,EAAgB,QAAQ;AACpB,YAAA;AACI,gBAAAE,IAAM,MAAM/B,EAAQ;AAAA,YAC1B,GAAGpC;AAAA,YACH;AAAA,cACE,QAAQ;AAAA,cACR,YAAA0C;AAAAA,cACA,QAAQK;AAAA,cACR,UAAU;AAAA,YACZ;AAAA,YACA;AAAA,cACE,SAAS;AAAA,gBACP,gBAAgBT;AAAA,gBAChB,gBAAgB;AAAA,cAClB;AAAA,YACF;AAAA,UAAA,GACM,EAAE,SAAA8B,GAAS,MAAAhB,IAAO,CAAC,EAAA,IAAMe,EAAI;AAEnC,cADAF,EAAgB,QAAQ,IACpBG,GAAS;AACX,kBAAM,EAAE,MAAAC,IAAO,GAAO,IAAAjB;AAChB,YAAAiB,KAAA,QAAAA,EAAA,QAAQ,CAACC,MAAa;;AAC1B,oBAAMC,MACNtE,IAAAqE,KAAA,gBAAAA,EAAK,oBAAL,gBAAArE,EAAsB,IAAI,CAACuE,OAClB;AAAA,gBACL,GAAGA;AAAA;AAAA,gBAEH,MAAM;AAAA,cAAA,QAEJ,CAAA;AACN,cAAAN,EAAa,QAAQ,CAAC,GAAG3B,EAAM2B,CAAY,GAAG,GAAGK,CAAO;AAAA,YAAA,IAE9CP,EAAAzB,EAAM2B,CAAY,CAAC;AAAA;AAAA;AAGjC,UAAAD,EAAgB,QAAQ;AAAA,QAC1B;AAAA;AAAA,IAAA,GAEIQ,IAAiB,CAACC,OACV;AAAA,MACV,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA,GAEGA,CAAW,GAGlBC,IAAc,CAClBC,GACAC,MACG;AACG,YAAAC,IAAWD,EAAUD,EAAM,QAAQ;AACzC,UAAIE,GAAU;AACZ,cAAMC,IAAW;AAAA,UACf,GAAGD;AAAA,UACH,OAAOA,EAAS;AAAA,UAChB,MAAMA,EAAS;AAAA,QAAA;AAEjB,uBAAe,QAAQ,uBAAuB,KAAK,UAAUC,CAAQ,CAAC;AAAA;AAAA,IACxE;AAGF,WAAAC,GAAU,YAAY;AACd,YAAAtB,EAAe,QAAW,EAAI,GACdK,EAAAxB,EAAMG,CAAU,CAAC;AAAA,IAAA,CACxC,GACM;AAAA,MACL,YAAAA;AAAA,MACA,gBAAAgB;AAAA,MACA,gBAAAZ;AAAA,MACA,mBAAAF;AAAA,MACA,cAAAsB;AAAA,MACA,iBAAAD;AAAA,MACA,oBAAAH;AAAA,MACA,gBAAAW;AAAA,MACA,aAAAE;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;;;;GC7PgBM,KAAA,EAAA,OAAM,2BAEH,OAAM;;iDApCxBC,IAAAC,EA4CM,WA5CN;SAEIC,EAA8B,GAAAC,EAAA,OAAAJ,IAAA;AAAA,IACnBK,EAAAC,GAAA;AAAA,MACX,sBAAc;AAAA,MAAA,UAAAC,EAAA;AAAA;;eAGNC,GAAE,MAAA;AAAA,QAAAH,EACRI,GAAmB;AAAA,UACnB,OAAWF,EAAA;AAAA,UACV,gBAAc,OAAE;AAAA,UAChB,aAAW;AAAA,UACX,kBAAW,EAAc,WAAA,SAAA,UAAA,OAAA;AAAA,UAC1B,aAAAA,EAAA;AAAA,UACC,aAAQA,EAAA;AAAA,UAAA,yBAAA;AAAA;;;MAGb,GAAA;AAAA,IAAA,GACE,GAwBS,CAAA,UAAA,CAAA;AAAA,IAAAG,EAvBI,OAAeC,IAAA;AAAA,MAAAN,EACtBC,GAAU;AAAA,QAAA,UAAAC,EAAA;AAAA;;QAGH,SAAAC,GAAA,MAAA;AAAA,UAAAH,EAAAJ,GAAA;AAAA,YACR,YAAOM,EAAA;AAAA,YAAA,uBAAAK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAN,EAAA,eAAAM;AAAA;;cAIP,MAAA;AAAA,cACD,KAAA;AAAA,YAAA;AAAA,YAEC,YAAK;AAAA,YAAA,MAAA;AAAA,YAEK,SAAID,EAMP,SANoB,CAAQ,IAAA,CAAAC,MAAAN,EAAA,YAAAM,GAAAN,EAAA,YAAA;AAAA,UAAA,GAAA;AAAA,YAE/B,MAAAC,GAAA,CAAA,EAAA,SAAAX,EAAA,MAAA;AAAA,cAAAa,EACD,OAEOI,IAFP;AAAA,gBAAAC,GAAA,OAAAC,EAAAT,EAAA,eAAAV,EAAA,WAAA,CAAA,IAAA,MAAA,CAAA;AAAA;;;;;;;;;;;;ACjCP,SAASoB,GAAQC,GAAGC,GAAK;AAC5B,EAAIC,GAAeF,CAAC,MAChBA,IAAI;AAER,MAAIG,IAAYC,GAAaJ,CAAC;AAO9B,SANAA,IAAIC,MAAQ,MAAMD,IAAI,KAAK,IAAIC,GAAK,KAAK,IAAI,GAAG,WAAWD,CAAC,CAAC,CAAC,GAE1DG,MACAH,IAAI,SAAS,OAAOA,IAAIC,CAAG,GAAG,EAAE,IAAI,MAGpC,KAAK,IAAID,IAAIC,CAAG,IAAI,OACb,KAGPA,MAAQ,MAIRD,KAAKA,IAAI,IAAKA,IAAIC,IAAOA,IAAMD,IAAIC,KAAO,WAAW,OAAOA,CAAG,CAAC,IAKhED,IAAKA,IAAIC,IAAO,WAAW,OAAOA,CAAG,CAAC,GAEnCD;AACX;AAaO,SAASE,GAAeF,GAAG;AAC9B,SAAO,OAAOA,KAAM,YAAYA,EAAE,QAAQ,GAAG,MAAM,MAAM,WAAWA,CAAC,MAAM;AAC/E;AAKO,SAASI,GAAaJ,GAAG;AAC5B,SAAO,OAAOA,KAAM,YAAYA,EAAE,QAAQ,GAAG,MAAM;AACvD;AAKO,SAASK,GAAWC,GAAG;AAC1B,SAAAA,IAAI,WAAWA,CAAC,IACZ,MAAMA,CAAC,KAAKA,IAAI,KAAKA,IAAI,OACzBA,IAAI,IAEDA;AACX;AAKO,SAASC,GAAoBP,GAAG;AACnC,SAAIA,KAAK,IACE,GAAG,OAAO,OAAOA,CAAC,IAAI,KAAK,GAAG,IAElCA;AACX;AAKO,SAASQ,GAAKC,GAAG;AACpB,SAAOA,EAAE,WAAW,IAAI,MAAMA,IAAI,OAAOA,CAAC;AAC9C;ACxEO,SAASC,GAASC,GAAGC,GAAGC,GAAG;AAC9B,SAAO;AAAA,IACH,GAAGd,GAAQY,GAAG,GAAG,IAAI;AAAA,IACrB,GAAGZ,GAAQa,GAAG,GAAG,IAAI;AAAA,IACrB,GAAGb,GAAQc,GAAG,GAAG,IAAI;AAAA,EAC7B;AACA;AAuCA,SAASC,GAAQC,GAAGC,GAAG,GAAG;AAOtB,SANI,IAAI,MACJ,KAAK,IAEL,IAAI,MACJ,KAAK,IAEL,IAAI,IAAI,IACDD,KAAKC,IAAID,MAAM,IAAI,KAE1B,IAAI,IAAI,IACDC,IAEP,IAAI,IAAI,IACDD,KAAKC,IAAID,MAAM,IAAI,IAAI,KAAK,IAEhCA;AACX;AAOO,SAASE,GAASC,GAAGC,GAAGC,GAAG;AAC9B,MAAIT,GACAC,GACAC;AAIJ,MAHAK,IAAInB,GAAQmB,GAAG,GAAG,GAClBC,IAAIpB,GAAQoB,GAAG,GAAG,GAClBC,IAAIrB,GAAQqB,GAAG,GAAG,GACdD,MAAM;AAEN,IAAAP,IAAIQ,GACJP,IAAIO,GACJT,IAAIS;AAAA,OAEH;AACD,QAAIJ,IAAII,IAAI,MAAMA,KAAK,IAAID,KAAKC,IAAID,IAAIC,IAAID,GACxCJ,IAAI,IAAIK,IAAIJ;AAChB,IAAAL,IAAIG,GAAQC,GAAGC,GAAGE,IAAI,IAAI,CAAC,GAC3BN,IAAIE,GAAQC,GAAGC,GAAGE,CAAC,GACnBL,IAAIC,GAAQC,GAAGC,GAAGE,IAAI,IAAI,CAAC;AAAA;AAE/B,SAAO,EAAE,GAAGP,IAAI,KAAK,GAAGC,IAAI,KAAK,GAAGC,IAAI;AAC5C;AAOO,SAASQ,GAASV,GAAGC,GAAGC,GAAG;AAC9B,EAAAF,IAAIZ,GAAQY,GAAG,GAAG,GAClBC,IAAIb,GAAQa,GAAG,GAAG,GAClBC,IAAId,GAAQc,GAAG,GAAG;AAClB,MAAIZ,IAAM,KAAK,IAAIU,GAAGC,GAAGC,CAAC,GACtBS,IAAM,KAAK,IAAIX,GAAGC,GAAGC,CAAC,GACtBK,IAAI,GACJK,IAAItB,GACJuB,IAAIvB,IAAMqB,GACVH,IAAIlB,MAAQ,IAAI,IAAIuB,IAAIvB;AAC5B,MAAIA,MAAQqB;AACR,IAAAJ,IAAI;AAAA,OAEH;AACD,YAAQjB,GAAG;AAAA,MACP,KAAKU;AACD,QAAAO,KAAKN,IAAIC,KAAKW,KAAKZ,IAAIC,IAAI,IAAI;AAC/B;AAAA,MACJ,KAAKD;AACD,QAAAM,KAAKL,IAAIF,KAAKa,IAAI;AAClB;AAAA,MACJ,KAAKX;AACD,QAAAK,KAAKP,IAAIC,KAAKY,IAAI;AAClB;AAAA,IAGP;AACD,IAAAN,KAAK;AAAA;AAET,SAAO,EAAE,GAAGA,GAAG,GAAGC,GAAG,GAAGI;AAC5B;AAOO,SAASE,GAASP,GAAGC,GAAGI,GAAG;AAC9B,EAAAL,IAAInB,GAAQmB,GAAG,GAAG,IAAI,GACtBC,IAAIpB,GAAQoB,GAAG,GAAG,GAClBI,IAAIxB,GAAQwB,GAAG,GAAG;AAClB,MAAIG,IAAI,KAAK,MAAMR,CAAC,GAChBS,IAAIT,IAAIQ,GACRX,IAAIQ,KAAK,IAAIJ,IACbH,IAAIO,KAAK,IAAII,IAAIR,IACjBS,IAAIL,KAAK,KAAK,IAAII,KAAKR,IACvBU,IAAMH,IAAI,GACVf,IAAI,CAACY,GAAGP,GAAGD,GAAGA,GAAGa,GAAGL,CAAC,EAAEM,CAAG,GAC1BjB,IAAI,CAACgB,GAAGL,GAAGA,GAAGP,GAAGD,GAAGA,CAAC,EAAEc,CAAG,GAC1BhB,IAAI,CAACE,GAAGA,GAAGa,GAAGL,GAAGA,GAAGP,CAAC,EAAEa,CAAG;AAC9B,SAAO,EAAE,GAAGlB,IAAI,KAAK,GAAGC,IAAI,KAAK,GAAGC,IAAI;AAC5C;AAOO,SAASiB,GAASnB,GAAGC,GAAGC,GAAGkB,GAAY;AAC1C,MAAIC,IAAM;AAAA,IACNxB,GAAK,KAAK,MAAMG,CAAC,EAAE,SAAS,EAAE,CAAC;AAAA,IAC/BH,GAAK,KAAK,MAAMI,CAAC,EAAE,SAAS,EAAE,CAAC;AAAA,IAC/BJ,GAAK,KAAK,MAAMK,CAAC,EAAE,SAAS,EAAE,CAAC;AAAA,EACvC;AAEI,SAAIkB,KACAC,EAAI,CAAC,EAAE,WAAWA,EAAI,CAAC,EAAE,OAAO,CAAC,CAAC,KAClCA,EAAI,CAAC,EAAE,WAAWA,EAAI,CAAC,EAAE,OAAO,CAAC,CAAC,KAClCA,EAAI,CAAC,EAAE,WAAWA,EAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAC3BA,EAAI,CAAC,EAAE,OAAO,CAAC,IAAIA,EAAI,CAAC,EAAE,OAAO,CAAC,IAAIA,EAAI,CAAC,EAAE,OAAO,CAAC,IAEzDA,EAAI,KAAK,EAAE;AACtB;AA2CO,SAASC,GAAoBf,GAAG;AACnC,SAAOgB,EAAgBhB,CAAC,IAAI;AAChC;AAEO,SAASgB,EAAgBC,GAAK;AACjC,SAAO,SAASA,GAAK,EAAE;AAC3B;AC/NO,IAAIC,KAAQ;AAAA,EACf,WAAW;AAAA,EACX,cAAc;AAAA,EACd,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,KAAK;AAAA,EACL,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AACjB;ACnIO,SAASC,GAAWC,GAAO;AAC9B,MAAIC,IAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KACvBjC,IAAI,GACJa,IAAI,MACJI,IAAI,MACJH,IAAI,MACJoB,IAAK,IACLC,IAAS;AACb,SAAI,OAAOH,KAAU,aACjBA,IAAQI,GAAoBJ,CAAK,IAEjC,OAAOA,KAAU,aACbK,GAAeL,EAAM,CAAC,KAAKK,GAAeL,EAAM,CAAC,KAAKK,GAAeL,EAAM,CAAC,KAC5EC,IAAM7B,GAAS4B,EAAM,GAAGA,EAAM,GAAGA,EAAM,CAAC,GACxCE,IAAK,IACLC,IAAS,OAAOH,EAAM,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,SAAS,SAElDK,GAAeL,EAAM,CAAC,KAAKK,GAAeL,EAAM,CAAC,KAAKK,GAAeL,EAAM,CAAC,KACjFnB,IAAIZ,GAAoB+B,EAAM,CAAC,GAC/Bf,IAAIhB,GAAoB+B,EAAM,CAAC,GAC/BC,IAAMd,GAASa,EAAM,GAAGnB,GAAGI,CAAC,GAC5BiB,IAAK,IACLC,IAAS,SAEJE,GAAeL,EAAM,CAAC,KAAKK,GAAeL,EAAM,CAAC,KAAKK,GAAeL,EAAM,CAAC,MACjFnB,IAAIZ,GAAoB+B,EAAM,CAAC,GAC/BlB,IAAIb,GAAoB+B,EAAM,CAAC,GAC/BC,IAAMtB,GAASqB,EAAM,GAAGnB,GAAGC,CAAC,GAC5BoB,IAAK,IACLC,IAAS,QAET,OAAO,UAAU,eAAe,KAAKH,GAAO,GAAG,MAC/ChC,IAAIgC,EAAM,KAGlBhC,IAAID,GAAWC,CAAC,GACT;AAAA,IACH,IAAIkC;AAAA,IACJ,QAAQF,EAAM,UAAUG;AAAA,IACxB,GAAG,KAAK,IAAI,KAAK,KAAK,IAAIF,EAAI,GAAG,CAAC,CAAC;AAAA,IACnC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAIA,EAAI,GAAG,CAAC,CAAC;AAAA,IACnC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAIA,EAAI,GAAG,CAAC,CAAC;AAAA,IACnC,GAAGjC;AAAA,EACX;AACA;AAEA,IAAIsC,KAAc,iBAEdC,KAAa,wBAEbC,KAAW,MAAM,OAAOD,IAAY,OAAO,EAAE,OAAOD,IAAa,GAAG,GAIpEG,KAAoB,cAAc,OAAOD,IAAU,YAAY,EAAE,OAAOA,IAAU,YAAY,EAAE,OAAOA,IAAU,WAAW,GAC5HE,KAAoB,cAAc,OAAOF,IAAU,YAAY,EAAE,OAAOA,IAAU,YAAY,EAAE,OAAOA,IAAU,YAAY,EAAE,OAAOA,IAAU,WAAW,GAC3JG,KAAW;AAAA,EACX,UAAU,IAAI,OAAOH,EAAQ;AAAA,EAC7B,KAAK,IAAI,OAAO,QAAQC,EAAiB;AAAA,EACzC,MAAM,IAAI,OAAO,SAASC,EAAiB;AAAA,EAC3C,KAAK,IAAI,OAAO,QAAQD,EAAiB;AAAA,EACzC,MAAM,IAAI,OAAO,SAASC,EAAiB;AAAA,EAC3C,KAAK,IAAI,OAAO,QAAQD,EAAiB;AAAA,EACzC,MAAM,IAAI,OAAO,SAASC,EAAiB;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACV;AAKO,SAASN,GAAoBJ,GAAO;AAEvC,MADAA,IAAQA,EAAM,KAAM,EAAC,YAAW,GAC5BA,EAAM,WAAW;AACjB,WAAO;AAEX,MAAIY,IAAQ;AACZ,MAAId,GAAME,CAAK;AACX,IAAAA,IAAQF,GAAME,CAAK,GACnBY,IAAQ;AAAA,WAEHZ,MAAU;AACf,WAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,OAAM;AAMnD,MAAIa,IAAQF,GAAS,IAAI,KAAKX,CAAK;AACnC,SAAIa,IACO,EAAE,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,EAAC,KAElDA,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO,EAAE,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,OAE9DA,IAAQF,GAAS,IAAI,KAAKX,CAAK,GAC3Ba,IACO,EAAE,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,EAAC,KAElDA,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO,EAAE,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,OAE9DA,IAAQF,GAAS,IAAI,KAAKX,CAAK,GAC3Ba,IACO,EAAE,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,EAAC,KAElDA,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO,EAAE,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,GAAG,GAAGA,EAAM,CAAC,OAE9DA,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO;AAAA,IACH,GAAGjB,EAAgBiB,EAAM,CAAC,CAAC;AAAA,IAC3B,GAAGjB,EAAgBiB,EAAM,CAAC,CAAC;AAAA,IAC3B,GAAGjB,EAAgBiB,EAAM,CAAC,CAAC;AAAA,IAC3B,GAAGlB,GAAoBkB,EAAM,CAAC,CAAC;AAAA,IAC/B,QAAQD,IAAQ,SAAS;AAAA,EACrC,KAEIC,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO;AAAA,IACH,GAAGjB,EAAgBiB,EAAM,CAAC,CAAC;AAAA,IAC3B,GAAGjB,EAAgBiB,EAAM,CAAC,CAAC;AAAA,IAC3B,GAAGjB,EAAgBiB,EAAM,CAAC,CAAC;AAAA,IAC3B,QAAQD,IAAQ,SAAS;AAAA,EACrC,KAEIC,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO;AAAA,IACH,GAAGjB,EAAgBiB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IACtC,GAAGjB,EAAgBiB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IACtC,GAAGjB,EAAgBiB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IACtC,GAAGlB,GAAoBkB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IAC1C,QAAQD,IAAQ,SAAS;AAAA,EACrC,KAEIC,IAAQF,GAAS,KAAK,KAAKX,CAAK,GAC5Ba,IACO;AAAA,IACH,GAAGjB,EAAgBiB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IACtC,GAAGjB,EAAgBiB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IACtC,GAAGjB,EAAgBiB,EAAM,CAAC,IAAIA,EAAM,CAAC,CAAC;AAAA,IACtC,QAAQD,IAAQ,SAAS;AAAA,EACrC,IAEW;AACX;AAKO,SAASP,GAAeL,GAAO;AAClC,SAAO,EAAQW,GAAS,SAAS,KAAK,OAAOX,CAAK,CAAC;AACvD;ACpLA,IAAIc,KAAU,GAEVC,KAAiB,MAEjBC,KAAkB,MAElBC,KAAkB,MAElBC,KAAkB,MAElBC,KAAkB,GAElBC,KAAiB,GAGjBC,KAAe,CAAC;AAAA,EAClB,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,GAAG;AAAA,EACD,OAAO;AAAA,EACP,SAAS;AACX,CAAC;AAGD,SAASC,GAAMC,GAAM;AACnB,MAAIlD,IAAIkD,EAAK,GACTjD,IAAIiD,EAAK,GACThD,IAAIgD,EAAK,GACTC,IAAMzC,GAASV,GAAGC,GAAGC,CAAC;AAC1B,SAAO;AAAA,IACL,GAAGiD,EAAI,IAAI;AAAA,IACX,GAAGA,EAAI;AAAA,IACP,GAAGA,EAAI;AAAA,EACX;AACA;AAIA,SAASC,GAAMC,GAAO;AACpB,MAAIrD,IAAIqD,EAAM,GACVpD,IAAIoD,EAAM,GACVnD,IAAImD,EAAM;AACd,SAAO,IAAI,OAAOlC,GAASnB,GAAGC,GAAGC,GAAG,EAAK,CAAC;AAC5C;AAKA,SAASoD,GAAIC,GAAMC,GAAMC,GAAQ;AAC/B,MAAIrD,IAAIqD,IAAS,KACb7B,IAAM;AAAA,IACR,IAAI4B,EAAK,IAAID,EAAK,KAAKnD,IAAImD,EAAK;AAAA,IAChC,IAAIC,EAAK,IAAID,EAAK,KAAKnD,IAAImD,EAAK;AAAA,IAChC,IAAIC,EAAK,IAAID,EAAK,KAAKnD,IAAImD,EAAK;AAAA,EACpC;AACE,SAAO3B;AACT;AAEA,SAAS8B,GAAOP,GAAKpC,GAAG4C,GAAO;AAC7B,MAAIC;AAEJ,SAAI,KAAK,MAAMT,EAAI,CAAC,KAAK,MAAM,KAAK,MAAMA,EAAI,CAAC,KAAK,MAClDS,IAAMD,IAAQ,KAAK,MAAMR,EAAI,CAAC,IAAIV,KAAU1B,IAAI,KAAK,MAAMoC,EAAI,CAAC,IAAIV,KAAU1B,IAE9E6C,IAAMD,IAAQ,KAAK,MAAMR,EAAI,CAAC,IAAIV,KAAU1B,IAAI,KAAK,MAAMoC,EAAI,CAAC,IAAIV,KAAU1B,GAG5E6C,IAAM,IACRA,KAAO,MACEA,KAAO,QAChBA,KAAO,MAGFA;AACT;AAEA,SAASC,GAAcV,GAAKpC,GAAG4C,GAAO;AAEpC,MAAIR,EAAI,MAAM,KAAKA,EAAI,MAAM;AAC3B,WAAOA,EAAI;AAGb,MAAIW;AAEJ,SAAIH,IACFG,IAAaX,EAAI,IAAIT,KAAiB3B,IAC7BA,MAAMgC,KACfe,IAAaX,EAAI,IAAIT,KAErBoB,IAAaX,EAAI,IAAIR,KAAkB5B,GAIrC+C,IAAa,MACfA,IAAa,IAIXH,KAAS5C,MAAM+B,MAAmBgB,IAAa,QACjDA,IAAa,MAGXA,IAAa,SACfA,IAAa,OAGR,OAAOA,EAAW,QAAQ,CAAC,CAAC;AACrC;AAEA,SAASC,GAASZ,GAAKpC,GAAG4C,GAAO;AAC/B,MAAI5G;AAEJ,SAAI4G,IACF5G,IAAQoG,EAAI,IAAIP,KAAkB7B,IAElChE,IAAQoG,EAAI,IAAIN,KAAkB9B,GAGhChE,IAAQ,MACVA,IAAQ,IAGH,OAAOA,EAAM,QAAQ,CAAC,CAAC;AAChC;AAEA,SAASiH,GAASrC,GAAO;AAKvB,WAJIsC,IAAO,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC3EC,IAAW,CAAA,GACXC,IAASzC,GAAWC,CAAK,GAEpBZ,IAAI+B,IAAiB/B,IAAI,GAAGA,KAAK,GAAG;AAC3C,QAAIoC,IAAMF,GAAMkB,CAAM,GAClBC,IAAchB,GAAM1B,GAAW;AAAA,MACjC,GAAGgC,GAAOP,GAAKpC,GAAG,EAAI;AAAA,MACtB,GAAG8C,GAAcV,GAAKpC,GAAG,EAAI;AAAA,MAC7B,GAAGgD,GAASZ,GAAKpC,GAAG,EAAI;AAAA,IACzB,CAAA,CAAC;AACF,IAAAmD,EAAS,KAAKE,CAAW;AAAA;AAG3B,EAAAF,EAAS,KAAKd,GAAMe,CAAM,CAAC;AAE3B,WAASE,IAAK,GAAGA,KAAMtB,IAAgBsB,KAAM,GAAG;AAC9C,QAAIC,IAAOrB,GAAMkB,CAAM,GAEnBI,IAAenB,GAAM1B,GAAW;AAAA,MAClC,GAAGgC,GAAOY,GAAMD,CAAE;AAAA,MAClB,GAAGR,GAAcS,GAAMD,CAAE;AAAA,MACzB,GAAGN,GAASO,GAAMD,CAAE;AAAA,IACrB,CAAA,CAAC;AAEF,IAAAH,EAAS,KAAKK,CAAY;AAAA;AAI5B,SAAIN,EAAK,UAAU,SACVjB,GAAa,IAAI,SAAUwB,GAAO;AACvC,QAAIC,IAAQD,EAAM,OACdE,IAAUF,EAAM,SAChBG,IAAkBvB,GAAME,GAAI5B,GAAWuC,EAAK,mBAAmB,SAAS,GAAGvC,GAAWwC,EAASO,CAAK,CAAC,GAAGC,IAAU,GAAG,CAAC;AAC1H,WAAOC;AAAA,EACb,CAAK,IAGIT;AACT;AAEA,IAAIU,KAAsB;AAAA,EACxB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AACR,GACIC,KAAiB,CAAA,GACjBC,KAAqB,CAAA;AACzB,OAAO,KAAKF,EAAmB,EAAE,QAAQ,SAAUG,GAAK;AACtD,EAAAF,GAAeE,CAAG,IAAIf,GAASY,GAAoBG,CAAG,CAAC,GACvDF,GAAeE,CAAG,EAAE,UAAUF,GAAeE,CAAG,EAAE,CAAC,GAEnDD,GAAmBC,CAAG,IAAIf,GAASY,GAAoBG,CAAG,GAAG;AAAA,IAC3D,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB,CAAG,GACDD,GAAmBC,CAAG,EAAE,UAAUD,GAAmBC,CAAG,EAAE,CAAC;AAC7D,CAAC;AC1ND,IAAIC,KAAa,CAAA,GAEbC,KAAgB,CAAA,GAEhBC,KAAQ;AAEZ,SAASC,KAAqB;AAC5B,MAAIC,IAAe,SAAS,cAAc,OAAO;AACjD,SAAAA,EAAa,aAAa,QAAQ,UAAU,GACrCA;AACT;AAGA,SAASC,GAAUC,GAAKC,GAAS;AAG/B,MAFAA,IAAUA,KAAW,IAEjBD,MAAQ;AACV,UAAM,IAAI,MAAMJ,EAAK;AAGvB,MAAIM,IAAWD,EAAQ,YAAY,KAAO,YAAY,UAClDE,IAAYF,EAAQ,cAAc,SAAYA,EAAQ,YAAY,SAAS,cAAc,MAAM,GAC/FG,IAAcV,GAAW,QAAQS,CAAS;AAE9C,EAAIC,MAAgB,OAClBA,IAAcV,GAAW,KAAKS,CAAS,IAAI,GAC3CR,GAAcS,CAAW,IAAI;AAI/B,MAAIN;AAEJ,SAAIH,GAAcS,CAAW,MAAM,UAAaT,GAAcS,CAAW,EAAEF,CAAQ,MAAM,SACvFJ,IAAeH,GAAcS,CAAW,EAAEF,CAAQ,KAElDJ,IAAeH,GAAcS,CAAW,EAAEF,CAAQ,IAAIL,GAAkB,GAEpEK,MAAa,YACfC,EAAU,aAAaL,GAAcK,EAAU,WAAW,CAAC,CAAC,IAE5DA,EAAU,YAAYL,CAAY,IAKlCE,EAAI,WAAW,CAAC,MAAM,UACxBA,IAAMA,EAAI,OAAO,GAAGA,EAAI,MAAM,IAI5BF,EAAa,aACfA,EAAa,WAAW,WAAWE,IAEnCF,EAAa,eAAeE,GAGvBF;AACT;AC1DA,SAASO,GAAcC,GAAQ;AAAE,WAAS7E,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8E,IAAS,UAAU9E,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+E,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUf,GAAK;AAAEiB,MAAAA,GAAgBJ,GAAQb,GAAKc,EAAOd,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOa;AAAS;AAEze,SAASI,GAAgBC,GAAKlB,GAAKhI,GAAO;AAAE,SAAIgI,KAAOkB,IAAO,OAAO,eAAeA,GAAKlB,GAAK,EAAE,OAAOhI,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYkJ,EAAIlB,CAAG,IAAIhI,GAAgBkJ;AAAM;AAK1M,SAASC,GAAKC,GAAOC,GAAS;AAEnC,EAAI,QAAQ,IAAI,aAAa,gBAAgB,CAACD,KAAS,YAAY,UACjE,QAAQ,MAAM,YAAY,OAAOC,CAAO,CAAC;AAE7C;AACO,SAASC,GAAQF,GAAOC,GAAS;AACtC,EAAAF,GAAKC,GAAO,2BAA2B,OAAOC,CAAO,CAAC;AACxD;AAEO,SAASE,GAAiBV,GAAQ;AACvC,SAAO,OAAOA,KAAW,YAAY,OAAOA,EAAO,QAAS,YAAY,OAAOA,EAAO,SAAU,aAAa,OAAOA,EAAO,QAAS,YAAY,OAAOA,EAAO,QAAS;AACzK;AAmBO,SAAS5B,GAASuC,GAAMxB,GAAKyB,GAAW;AAC7C,SAAKA,IAQEjG,GAAEgG,EAAK,KAAKZ,GAAc;AAAA,IAC/B,KAAKZ;AAAA,EACN,GAAEyB,GAAWD,EAAK,KAAK,IAAIA,EAAK,YAAY,IAAI,IAAI,SAAUE,GAAOhC,GAAO;AAC3E,WAAOT,GAASyC,GAAO,GAAG,OAAO1B,GAAK,GAAG,EAAE,OAAOwB,EAAK,KAAK,GAAG,EAAE,OAAO9B,CAAK,CAAC;AAAA,EAC/E,CAAA,CAAC,IAXOlE,GAAEgG,EAAK,KAAKZ,GAAc;AAAA,IAC/B,KAAKZ;AAAA,EACX,GAAOwB,EAAK,KAAK,IAAIA,EAAK,YAAY,CAAA,GAAI,IAAI,SAAUE,GAAOhC,GAAO;AAChE,WAAOT,GAASyC,GAAO,GAAG,OAAO1B,GAAK,GAAG,EAAE,OAAOwB,EAAK,KAAK,GAAG,EAAE,OAAO9B,CAAK,CAAC;AAAA,EAC/E,CAAA,CAAC;AAQN;AACO,SAASiC,GAAkBC,GAAc;AAE9C,SAAOC,GAAcD,CAAY,EAAE,CAAC;AACtC;AACO,SAASE,GAAuBC,GAAc;AACnD,SAAKA,IAIE,MAAM,QAAQA,CAAY,IAAIA,IAAe,CAACA,CAAY,IAHxD;AAIX;AAUO,IAAIC,KAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GACpBC,KAAkB,IACXC,KAAkB,WAA2B;AACtD,MAAIC,IAAW,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIH;AACnF,EAAAI,GAAS,WAAY;AACnB,IAAKH,OACC,OAAO,SAAW,OAAe,OAAO,YAAY,OAAO,SAAS,mBACtE3B,GAAU6B,GAAU;AAAA,MAClB,SAAS;AAAA,IACnB,CAAS,GAGHF,KAAkB;AAAA,EAExB,CAAG;AACH,GCxFII,KAAY,CAAC,QAAQ,gBAAgB,gBAAgB;AAEzD,SAASC,GAAyBxB,GAAQyB,GAAU;AAAE,MAAIzB,KAAU;AAAM,WAAO;AAAI,MAAID,IAAS2B,GAA8B1B,GAAQyB,CAAQ,GAAOvC,GAAKhE;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIyG,IAAmB,OAAO,sBAAsB3B,CAAM;AAAG,SAAK9E,IAAI,GAAGA,IAAIyG,EAAiB,QAAQzG;AAAkC,MAA3BgE,IAAMyC,EAAiBzG,CAAC,GAAO,EAAAuG,EAAS,QAAQvC,CAAG,KAAK,MAAkB,OAAO,UAAU,qBAAqB,KAAKc,GAAQd,CAAG,MAAaa,EAAOb,CAAG,IAAIc,EAAOd,CAAG;AAAA;AAAO,SAAOa;AAAS;AAE5e,SAAS2B,GAA8B1B,GAAQyB,GAAU;AAAE,MAAIzB,KAAU;AAAM,WAAO,CAAE;AAAE,MAAID,IAAS,CAAE,GAAM6B,IAAa,OAAO,KAAK5B,CAAM,GAAOd,GAAKhE;AAAG,OAAKA,IAAI,GAAGA,IAAI0G,EAAW,QAAQ1G;AAA4B,IAArBgE,IAAM0C,EAAW1G,CAAC,GAAO,EAAAuG,EAAS,QAAQvC,CAAG,KAAK,OAAaa,EAAOb,CAAG,IAAIc,EAAOd,CAAG;AAAK,SAAOa;AAAS;AAEnT,SAASD,GAAcC,GAAQ;AAAE,WAAS7E,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8E,IAAS,UAAU9E,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+E,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUf,GAAK;AAAEiB,MAAAA,GAAgBJ,GAAQb,GAAKc,EAAOd,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOa;AAAS;AAEze,SAASI,GAAgBC,GAAKlB,GAAKhI,GAAO;AAAE,SAAIgI,KAAOkB,IAAO,OAAO,eAAeA,GAAKlB,GAAK,EAAE,OAAOhI,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYkJ,EAAIlB,CAAG,IAAIhI,GAAgBkJ;AAAM;AAGjN,IAAIyB,KAAsB;AAAA,EACxB,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,YAAY;AACd;AAEA,SAASC,GAAiBzE,GAAM;AAC9B,MAAIyD,IAAezD,EAAK,cACpB0E,IAAiB1E,EAAK;AAC1B,EAAAwE,GAAoB,eAAef,GACnCe,GAAoB,iBAAiBE,KAAkBlB,GAAkBC,CAAY,GACrFe,GAAoB,aAAa,CAAC,CAACE;AACrC;AAEA,SAASC,KAAmB;AAC1B,SAAOlC,GAAc,IAAI+B,EAAmB;AAC9C;AAEA,IAAII,KAAW,SAAkBC,GAAOC,GAAS;AAC/C,MAAIC,IAAuBtC,GAAc,CAAA,GAAIoC,GAAOC,EAAQ,KAAK,GAC7DE,IAAOD,EAAqB,MAC5BtB,IAAesB,EAAqB,cACpCL,IAAiBK,EAAqB,gBACtCE,IAAYd,GAAyBY,GAAsBb,EAAS,GAEpEgB,IAASV;AAYb,MAVIf,MACFyB,IAAS;AAAA,IACP,cAAczB;AAAA,IACd,gBAAgBiB,KAAkBlB,GAAkBC,CAAY;AAAA,EACtE,IAGEM,MACAZ,GAAQC,GAAiB4B,CAAI,GAAG,0CAA0C,OAAOA,CAAI,CAAC,GAElF,CAAC5B,GAAiB4B,CAAI;AACxB,WAAO;AAGT,MAAItC,IAASsC;AAEb,SAAItC,KAAU,OAAOA,EAAO,QAAS,eACnCA,IAASD,GAAc,CAAE,GAAEC,GAAQ;AAAA,IACjC,MAAMA,EAAO,KAAKwC,EAAO,cAAcA,EAAO,cAAc;AAAA,EAClE,CAAK,IAGIpE,GAAS4B,EAAO,MAAM,OAAO,OAAOA,EAAO,IAAI,GAAGD,GAAc,CAAA,GAAIwC,GAAW;AAAA,IACpF,aAAavC,EAAO;AAAA,IACpB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,eAAe;AAAA,EAChB,CAAA,CAAC;AACJ;AAEAkC,GAAS,QAAQ;AAAA,EACf,MAAM;AAAA,EACN,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,WAAW;AACb;AACAA,GAAS,eAAe;AACxBA,GAAS,cAAc;AACvBA,GAAS,mBAAmBD;AAC5BC,GAAS,mBAAmBH;AAC5B,MAAAU,KAAeP;AC/Ef,SAASQ,GAAeC,GAAKxH,GAAG;AAAE,SAAOyH,GAAgBD,CAAG,KAAKE,GAAsBF,GAAKxH,CAAC,KAAK2H,GAA4BH,GAAKxH,CAAC,KAAK4H,GAAgB;AAAK;AAE9J,SAASA,KAAmB;AAAE,QAAM,IAAI,UAAU;AAAA,mFAA2I;AAAI;AAEjM,SAASD,GAA4BE,GAAGC,GAAQ;AAAE,MAAKD,GAAW;AAAA,QAAI,OAAOA,KAAM;AAAU,aAAOE,GAAkBF,GAAGC,CAAM;AAAG,QAAIxJ,IAAI,OAAO,UAAU,SAAS,KAAKuJ,CAAC,EAAE,MAAM,GAAG,EAAE;AAAgE,QAAzDvJ,MAAM,YAAYuJ,EAAE,gBAAavJ,IAAIuJ,EAAE,YAAY,OAAUvJ,MAAM,SAASA,MAAM;AAAO,aAAO,MAAM,KAAKuJ,CAAC;AAAG,QAAIvJ,MAAM,eAAe,2CAA2C,KAAKA,CAAC;AAAG,aAAOyJ,GAAkBF,GAAGC,CAAM;AAAA;AAAI;AAEha,SAASC,GAAkBP,GAAKQ,GAAK;AAAE,GAAIA,KAAO,QAAQA,IAAMR,EAAI,YAAQQ,IAAMR,EAAI;AAAQ,WAASxH,IAAI,GAAGiI,IAAO,IAAI,MAAMD,CAAG,GAAGhI,IAAIgI,GAAKhI;AAAO,IAAAiI,EAAKjI,CAAC,IAAIwH,EAAIxH,CAAC;AAAK,SAAOiI;AAAO;AAEvL,SAASP,GAAsBF,GAAKxH,GAAG;AAAE,MAAIsD,IAAKkE,KAAO,OAAO,OAAO,OAAO,SAAW,OAAeA,EAAI,OAAO,QAAQ,KAAKA,EAAI,YAAY;AAAG,MAAIlE,KAAM,MAAc;AAAA,QAAI4E,IAAO,CAAE,GAAMC,IAAK,IAAUC,IAAK,IAAWC,GAAIC;AAAI,QAAI;AAAE,WAAKhF,IAAKA,EAAG,KAAKkE,CAAG,GAAG,EAAEW,KAAME,IAAK/E,EAAG,QAAQ,UAAoB4E,EAAK,KAAKG,EAAG,KAAK,GAAO,EAAArI,KAAKkI,EAAK,WAAWlI,KAA3DmI,IAAK;AAA6B;AAAA,IAAoC,SAAUI,GAAP;AAAc,MAAAH,IAAK,IAAME,IAAKC;AAAA,cAAe;AAAE,UAAI;AAAE,QAAI,CAACJ,KAAM7E,EAAG,UAAa,QAAMA,EAAG,OAAW;AAAA,gBAAY;AAAE,YAAI8E;AAAI,gBAAME;AAAA,MAAK;AAAA,IAAA;AAAG,WAAOJ;AAAA;AAAO;AAEjgB,SAAST,GAAgBD,GAAK;AAAE,MAAI,MAAM,QAAQA,CAAG;AAAG,WAAOA;AAAM;AAI9D,SAASgB,GAAgBzC,GAAc;AAC5C,MAAI0C,IAAwB3C,GAAuBC,CAAY,GAC3D2C,IAAyBnB,GAAekB,GAAuB,CAAC,GAChE7C,IAAe8C,EAAuB,CAAC,GACvC7B,IAAiB6B,EAAuB,CAAC;AAE7C,SAAOpB,GAAQ,iBAAiB;AAAA,IAC9B,cAAc1B;AAAA,IACd,gBAAgBiB;AAAA,EACpB,CAAG;AACH;AACO,SAAS8B,KAAkB;AAChC,MAAItB,IAASC,GAAQ;AAErB,SAAKD,EAAO,aAIL,CAACA,EAAO,cAAcA,EAAO,cAAc,IAHzCA,EAAO;AAIlB;ACjCA,IAAIhB,KAAY,CAAC,SAAS,QAAQ,QAAQ,UAAU,YAAY,gBAAgB,SAAS;AAGzF,SAASkB,GAAeC,GAAKxH,GAAG;AAAE,SAAOyH,GAAgBD,CAAG,KAAKE,GAAsBF,GAAKxH,CAAC,KAAK2H,GAA4BH,GAAKxH,CAAC,KAAK4H,GAAgB;AAAK;AAE9J,SAASA,KAAmB;AAAE,QAAM,IAAI,UAAU;AAAA,mFAA2I;AAAI;AAEjM,SAASD,GAA4BE,GAAGC,GAAQ;AAAE,MAAKD,GAAW;AAAA,QAAI,OAAOA,KAAM;AAAU,aAAOE,GAAkBF,GAAGC,CAAM;AAAG,QAAIxJ,IAAI,OAAO,UAAU,SAAS,KAAKuJ,CAAC,EAAE,MAAM,GAAG,EAAE;AAAgE,QAAzDvJ,MAAM,YAAYuJ,EAAE,gBAAavJ,IAAIuJ,EAAE,YAAY,OAAUvJ,MAAM,SAASA,MAAM;AAAO,aAAO,MAAM,KAAKuJ,CAAC;AAAG,QAAIvJ,MAAM,eAAe,2CAA2C,KAAKA,CAAC;AAAG,aAAOyJ,GAAkBF,GAAGC,CAAM;AAAA;AAAI;AAEha,SAASC,GAAkBP,GAAKQ,GAAK;AAAE,GAAIA,KAAO,QAAQA,IAAMR,EAAI,YAAQQ,IAAMR,EAAI;AAAQ,WAASxH,IAAI,GAAGiI,IAAO,IAAI,MAAMD,CAAG,GAAGhI,IAAIgI,GAAKhI;AAAO,IAAAiI,EAAKjI,CAAC,IAAIwH,EAAIxH,CAAC;AAAK,SAAOiI;AAAO;AAEvL,SAASP,GAAsBF,GAAKxH,GAAG;AAAE,MAAIsD,IAAKkE,KAAO,OAAO,OAAO,OAAO,SAAW,OAAeA,EAAI,OAAO,QAAQ,KAAKA,EAAI,YAAY;AAAG,MAAIlE,KAAM,MAAc;AAAA,QAAI4E,IAAO,CAAE,GAAMC,IAAK,IAAUC,IAAK,IAAWC,GAAIC;AAAI,QAAI;AAAE,WAAKhF,IAAKA,EAAG,KAAKkE,CAAG,GAAG,EAAEW,KAAME,IAAK/E,EAAG,QAAQ,UAAoB4E,EAAK,KAAKG,EAAG,KAAK,GAAO,EAAArI,KAAKkI,EAAK,WAAWlI,KAA3DmI,IAAK;AAA6B;AAAA,IAAoC,SAAUI,GAAP;AAAc,MAAAH,IAAK,IAAME,IAAKC;AAAA,cAAe;AAAE,UAAI;AAAE,QAAI,CAACJ,KAAM7E,EAAG,UAAa,QAAMA,EAAG,OAAW;AAAA,gBAAY;AAAE,YAAI8E;AAAI,gBAAME;AAAA,MAAK;AAAA,IAAA;AAAG,WAAOJ;AAAA;AAAO;AAEjgB,SAAST,GAAgBD,GAAK;AAAE,MAAI,MAAM,QAAQA,CAAG;AAAG,WAAOA;AAAM;AAErE,SAAS5C,GAAcC,GAAQ;AAAE,WAAS7E,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8E,IAAS,UAAU9E,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+E,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUf,GAAK;AAAEiB,MAAAA,GAAgBJ,GAAQb,GAAKc,EAAOd,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOa;AAAS;AAEze,SAASI,GAAgBC,GAAKlB,GAAKhI,GAAO;AAAE,SAAIgI,KAAOkB,IAAO,OAAO,eAAeA,GAAKlB,GAAK,EAAE,OAAOhI,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYkJ,EAAIlB,CAAG,IAAIhI,GAAgBkJ;AAAM;AAEjN,SAASoB,GAAyBxB,GAAQyB,GAAU;AAAE,MAAIzB,KAAU;AAAM,WAAO;AAAI,MAAID,IAAS2B,GAA8B1B,GAAQyB,CAAQ,GAAOvC,GAAKhE;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAIyG,IAAmB,OAAO,sBAAsB3B,CAAM;AAAG,SAAK9E,IAAI,GAAGA,IAAIyG,EAAiB,QAAQzG;AAAkC,MAA3BgE,IAAMyC,EAAiBzG,CAAC,GAAO,EAAAuG,EAAS,QAAQvC,CAAG,KAAK,MAAkB,OAAO,UAAU,qBAAqB,KAAKc,GAAQd,CAAG,MAAaa,EAAOb,CAAG,IAAIc,EAAOd,CAAG;AAAA;AAAO,SAAOa;AAAS;AAE5e,SAAS2B,GAA8B1B,GAAQyB,GAAU;AAAE,MAAIzB,KAAU;AAAM,WAAO,CAAE;AAAE,MAAID,IAAS,CAAE,GAAM6B,IAAa,OAAO,KAAK5B,CAAM,GAAOd,GAAKhE;AAAG,OAAKA,IAAI,GAAGA,IAAI0G,EAAW,QAAQ1G;AAA4B,IAArBgE,IAAM0C,EAAW1G,CAAC,GAAO,EAAAuG,EAAS,QAAQvC,CAAG,KAAK,OAAaa,EAAOb,CAAG,IAAIc,EAAOd,CAAG;AAAK,SAAOa;AAAS;AAMnT2D,GAAgB,SAAS;AAEzB,IAAII,KAAO,SAAc5B,GAAOC,GAAS;AACvC,MAAI4B,GAEA3B,IAAuBtC,GAAc,CAAA,GAAIoC,GAAOC,EAAQ,KAAK,GAC7D6B,IAAM5B,EAAqB,OAC3BC,IAAOD,EAAqB,MAC5B6B,IAAO7B,EAAqB,MAC5B8B,IAAS9B,EAAqB,QAC9B+B,IAAW/B,EAAqB,UAChCnB,IAAemB,EAAqB,cACpCgC,IAAUhC,EAAqB,SAC/BE,IAAYd,GAAyBY,GAAsBb,EAAS,GAEpE8C,KAAYN,IAAY;AAAA,IAC1B,SAAS;AAAA,EACb,GAAK5D,GAAgB4D,GAAW,WAAW,OAAO1B,EAAK,IAAI,GAAG,EAAQA,EAAK,IAAK,GAAGlC,GAAgB4D,GAAWC,GAAKA,CAAG,GAAGD,IACnHO,IAAiBL,MAAS,MAAQA,KAAQ5B,EAAK,SAAS,YAAY,iBAAiB,IACrFkC,IAAeJ;AAEnB,EAAII,MAAiB,UAAaH,MAChCG,IAAe,IACfjC,EAAU,WAAWiC;AAGvB,MAAIC,IAAWN,IAAS;AAAA,IACtB,aAAa,UAAU,OAAOA,GAAQ,MAAM;AAAA,IAC5C,WAAW,UAAU,OAAOA,GAAQ,MAAM;AAAA,EAC3C,IAAG,QAEAP,IAAwB3C,GAAuBC,CAAY,GAC3D2C,IAAyBnB,GAAekB,GAAuB,CAAC,GAChE7C,IAAe8C,EAAuB,CAAC,GACvC7B,IAAiB6B,EAAuB,CAAC;AAE7C,SAAOjL,EAAa,QAAQmH,GAAc;AAAA,IACxC,MAAQ;AAAA,IACR,cAAcuC,EAAK;AAAA,EACpB,GAAEC,GAAW;AAAA,IACZ,SAAW8B;AAAA,IACX,OAASC;AAAA,EACb,CAAG,GAAG,CAAC1L,EAAa6J,IAAS;AAAA,IACzB,OAAS8B;AAAA,IACT,MAAQjC;AAAA,IACR,cAAgBvB;AAAA,IAChB,gBAAkBiB;AAAA,IAClB,OAASyC;AAAA,EACb,GAAK,IAAI,CAAC,CAAC;AACX;AAEAV,GAAK,QAAQ;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,cAAc;AAChB;AACAA,GAAK,cAAc;AACnBA,GAAK,eAAe;AACpBA,GAAK,kBAAkBD;AACvBC,GAAK,kBAAkBJ;AACvB,MAAAe,KAAeX;ACvFf,IAAIY,KAAoB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAS,GAAE,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,qHAAoH,GAAI,EAAC,GAAI,MAAQ,cAAc,OAAS,WAAU;AACrU,MAAAC,KAAeD;ACAf,SAAS5E,GAAcC,GAAQ;AAAE,WAAS7E,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8E,IAAS,UAAU9E,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+E,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUf,GAAK;AAAEiB,MAAAA,GAAgBJ,GAAQb,GAAKc,EAAOd,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOa;AAAS;AAEze,SAASI,GAAgBC,GAAKlB,GAAKhI,GAAO;AAAE,SAAIgI,KAAOkB,IAAO,OAAO,eAAeA,GAAKlB,GAAK,EAAE,OAAOhI,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYkJ,EAAIlB,CAAG,IAAIhI,GAAgBkJ;AAAM;AAOjN,IAAIsE,KAAoB,SAA2BxC,GAAOC,GAAS;AACjE,MAAI5H,IAAIuF,GAAc,CAAA,GAAIoC,GAAOC,EAAQ,KAAK;AAE9C,SAAOxJ,EAAa8L,IAAU3E,GAAc,CAAA,GAAIvF,GAAG;AAAA,IACjD,MAAQoK;AAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAkB,cAAc;AAChCA,GAAkB,eAAe;AACjC,MAAAE,KAAeF;ACpBf,IAAIG,KAAqB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAS,GAAE,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,uHAAsH,GAAI,EAAC,GAAI,MAAQ,eAAe,OAAS,WAAU;AACzU,MAAAC,KAAeD;ACAf,SAAS/E,GAAcC,GAAQ;AAAE,WAAS7E,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8E,IAAS,UAAU9E,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+E,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUf,GAAK;AAAEiB,MAAAA,GAAgBJ,GAAQb,GAAKc,EAAOd,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOa;AAAS;AAEze,SAASI,GAAgBC,GAAKlB,GAAKhI,GAAO;AAAE,SAAIgI,KAAOkB,IAAO,OAAO,eAAeA,GAAKlB,GAAK,EAAE,OAAOhI,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYkJ,EAAIlB,CAAG,IAAIhI,GAAgBkJ;AAAM;AAOjN,IAAIyE,KAAqB,SAA4B3C,GAAOC,GAAS;AACnE,MAAI5H,IAAIuF,GAAc,CAAA,GAAIoC,GAAOC,EAAQ,KAAK;AAE9C,SAAOxJ,EAAa8L,IAAU3E,GAAc,CAAA,GAAIvF,GAAG;AAAA,IACjD,MAAQuK;AAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAmB,cAAc;AACjCA,GAAmB,eAAe;AAClC,MAAAE,KAAeF;ACpBf,IAAIG,KAAkB,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAS,GAAE,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,8TAA6T,GAAI,EAAC,GAAI,MAAQ,WAAW,OAAS,WAAU;AACzgB,MAAAC,KAAeD;ACAf,SAASlF,GAAcC,GAAQ;AAAE,WAAS7E,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,QAAI8E,IAAS,UAAU9E,CAAC,KAAK,OAAO,OAAO,UAAUA,CAAC,CAAC,IAAI,CAAA,GAAQ+E,IAAU,OAAO,KAAKD,CAAM;AAAG,IAAI,OAAO,OAAO,yBAA0B,eAAcC,IAAUA,EAAQ,OAAO,OAAO,sBAAsBD,CAAM,EAAE,OAAO,SAAUE,GAAK;AAAE,aAAO,OAAO,yBAAyBF,GAAQE,CAAG,EAAE;AAAA,KAAa,CAAC,IAAKD,EAAQ,QAAQ,SAAUf,GAAK;AAAE,MAAAiB,GAAgBJ,GAAQb,GAAKc,EAAOd,CAAG,CAAC;AAAA,IAAE,CAAE;AAAA;AAAK,SAAOa;AAAS;AAEze,SAASI,GAAgBC,GAAKlB,GAAKhI,GAAO;AAAE,SAAIgI,KAAOkB,IAAO,OAAO,eAAeA,GAAKlB,GAAK,EAAE,OAAOhI,GAAO,YAAY,IAAM,cAAc,IAAM,UAAU,GAAM,CAAA,IAAYkJ,EAAIlB,CAAG,IAAIhI,GAAgBkJ;AAAM;AAOjN,IAAI4E,KAAkB,SAAyB9C,GAAOC,GAAS;AAC7D,MAAI5H,IAAIuF,GAAc,CAAA,GAAIoC,GAAOC,EAAQ,KAAK;AAE9C,SAAOxJ,EAAa8L,IAAU3E,GAAc,CAAA,GAAIvF,GAAG;AAAA,IACjD,MAAQ0K;AAAA,EACZ,CAAG,GAAG,IAAI;AACV;AAEAD,GAAgB,cAAc;AAC9BA,GAAgB,eAAe;AAC/B,MAAAE,KAAeF,ICrBumBxL,KAAE,MAAI;AAAA,GAAGuJ,KAAE,OAAO,QAAO5I,KAAE,MAAM,SAAQe,KAAE,OAAe,OAAO,KAAnB,YAAqBpB,KAAE,OAAa,OAAO,KAAjB;AAAmB,IAAIc;AAAE,MAAMD,KAAE,MAAIC,OAAIA,KAAe,OAAO,aAApB,MAA+B,aAAwB,OAAO,OAApB,MAAyB,OAAkB,OAAO,SAApB,MAA2B,SAAoB,OAAO,SAApB,MAA2B,SAAO,KAAUX,KAAE,OAAG;AAAC,QAAMmB,IAAE,IAAI,IAAI,CAAC;AAAE,SAAOA,EAAE,IAAE,GAAEA,EAAE,IAAE,GAAEA;AAAC,GAAE+J,KAAE,QAAI,EAAE,IAAE5K,MAAG,GAAES,KAAE,QAAI,EAAE,IAAET,MAAG;AAAE,IAAIY,KAAE,GAAEZ,KAAE,GAAMG;AAAE,MAAM0K,GAAC;AAAA,EAAC,YAAYC,GAAE,IAAE,MAAK7L,GAAE;AAAC,SAAK,KAAG6L,GAAE,KAAK,YAAU,GAAE,KAAK,SAAO,IAAG,KAAK,OAAK,CAAE,GAAC,KAAK,SAAO,QAAO,SAASA,GAAEjK,GAAE;AAAC,MAAAA,KAAGA,EAAE,UAAQA,EAAE,QAAQ,KAAKiK,CAAC;AAAA,IAAC,EAAE,MAAK7L,CAAC;AAAA,EAAC;AAAA,EAAC,MAAK;AAAC,QAAG,CAAC,KAAK;AAAO,aAAO,KAAK,GAAE;AAAG,QAAI6L,IAAE3K,IAAE,IAAEL;AAAE,WAAKgL,KAAG;AAAC,UAAGA,MAAI;AAAK;AAAO,MAAAA,IAAEA,EAAE;AAAA;AAAO,QAAG;AAAC,aAAO,KAAK,SAAO3K,IAAEA,KAAE,MAAKL,KAAE,IAAGE,KAAE,KAAG,EAAEY,IAAEA,MAAG,MAAI,CAAC,EAAC,MAAKkK,EAAC,MAAI;AAAC,YAAGA,EAAE;AAAO,mBAAQjK,IAAE,GAAEA,IAAEiK,EAAE,QAAOjK;AAAI,YAAAiK,EAAEjK,CAAC,EAAE,KAAGb;AAAA,MAAC,GAAG,IAAI,IAAE+K,GAAE,IAAI,GAAE,KAAK;IAAI,UAAC;AAAQ,MAAAnK,MAAG,OAAK,CAAAkK,MAAG;AAAC,cAAK,EAAC,MAAKjK,EAAC,IAAEiK;AAAE,YAAGjK,EAAE,QAAO;AAAC,cAAI5B,IAAE;AAAE,mBAAQuJ,IAAE,GAAEA,IAAE3H,EAAE,QAAO2H,KAAI;AAAC,kBAAM5I,IAAEiB,EAAE2H,CAAC;AAAE,YAAAoC,GAAEhL,CAAC,KAAG,CAACa,GAAEb,CAAC,IAAEA,EAAE,OAAOkL,CAAC,IAAEjK,EAAE5B,GAAG,IAAEW,GAAEA,EAAE,KAAG,CAACI,IAAEJ,EAAE,KAAG,CAACI;AAAA;AAAE,UAAAa,EAAE,SAAO5B;AAAA;AAAA,MAAE,GAAG,IAAI,GAAEe,KAAE,KAAG,EAAEY,IAAET,KAAE,KAAK,QAAOL,KAAE,GAAE,KAAK,SAAO,QAAO,KAAK,aAAW,KAAK,KAAI;AAAA,IAAE;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,IAAAK,OAAI,OAAK,KAAK,YAAU,KAAG,KAAK,WAAS4K,GAAE,IAAI,GAAE,KAAK,UAAQ,KAAK,OAAM,GAAG,KAAK,SAAO;AAAA,EAAG;AAAC;AAAC,SAASA,GAAE,GAAE;AAAC,QAAK,EAAC,MAAKlK,EAAC,IAAE;AAAE,MAAGA,EAAE,QAAO;AAAC,aAAQ5B,IAAE,GAAEA,IAAE4B,EAAE,QAAO5B;AAAI,MAAA4B,EAAE5B,CAAC,EAAE,OAAO,CAAC;AAAE,IAAA4B,EAAE,SAAO;AAAA;AAAE;AAAC,IAAIf,KAAE;AAAG,MAAMD,KAAE;AAAG,SAASW,GAAE,GAAEK,GAAE;AAAC,MAAI5B,IAAE;AAAG,EAAA2B,MAAG,KAAGH,GAAE,CAAC,MAAI,EAAE,KAAGT,IAAEf,IAAE,CAAC2L,GAAE,CAAC,KAAG3L,IAAE,CAAC,EAAE,IAAIkB,EAAC,GAAElB,MAAI,EAAE,IAAIkB,EAAC,GAAEA,GAAE,KAAK,KAAK,CAAC,GAAiB,QAAQ,IAAI,aAA3B,gBAAqCA,GAAE,WAASA,GAAE,QAAQqI,GAAE,EAAC,QAAOrI,GAAC,GAAEU,CAAC,CAAC;AAAE;AAAC,SAASmK,GAAE,GAAEnK,GAAE;AAAC,QAAM5B,IAAEW,GAAE,CAAC,IAAE,IAAE,CAAC,GAAG,CAAC;AAAE,aAAUkL,KAAK7L;AAAE,IAAA6L,EAAE,YAAUG,GAAEH,GAAEjK,CAAC;AAAE,aAAUiK,KAAK7L;AAAE,IAAA6L,EAAE,YAAUG,GAAEH,GAAEjK,CAAC;AAAC;AAAC,SAASoK,GAAE,GAAEpK,GAAE;AAAC,GAAC,MAAIV,MAAG,EAAE,kBAA+B,QAAQ,IAAI,aAA3B,gBAAqC,EAAE,aAAW,EAAE,UAAUqI,GAAE,EAAC,QAAO,EAAC,GAAE3H,CAAC,CAAC,GAAE,EAAE,YAAU,EAAE,UAAS,IAAG,EAAE,IAAG;AAAG;AAAC,SAASqK,GAAE,GAAE;AAAC,QAAMrK,IAAE,KAAG,EAAE;AAAQ,SAAOA,IAAEqK,GAAErK,CAAC,IAAE;AAAC;AAAC,SAASsK,GAAE,GAAE;AAAC,SAAM,EAAE,CAAC,KAAQ,EAAE,cAAP;AAAiB;AAAC,SAASC,GAAE,GAAE;AAAC,SAAOD,GAAE,CAAC,IAAE,EAAE,QAAM;AAAC;AAAC,IAAI,IAAI,OAAO,oBAAoB,MAAM,EAAE,OAAQ,OAAiB,MAAd,eAA4B,MAAX,QAAY,EAAG,IAAK,OAAG,OAAO,CAAC,GAAI,OAAO5L,EAAC,CAAC;AAAE,MAAM8L,GAAC;AAAA,EAAC,YAAYP,GAAE,GAAE7L,GAAEuJ,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,MAAI,QAAO,KAAK,YAAU,IAAG,KAAK,iBAAe,IAAG,KAAK,SAAO,IAAG,KAAK,SAAO,IAAIqC,GAAEC,GAAG,MAAI;AAAC,WAAK,WAAS,KAAK,SAAO,IAAG,SAASA,GAAEjK,GAAE;AAAC,cAAM5B,KAAG6L,IAAEI,GAAEJ,CAAC,GAAG;AAAI,QAAA7L,MAAmB,QAAQ,IAAI,aAA3B,eAAoC+L,GAAE/L,GAAE,EAAC,QAAO6L,GAAE,MAAK,OAAM,KAAI,SAAQ,UAASjK,EAAC,CAAC,IAAEmK,GAAE/L,CAAC;AAAA,MAAE,EAAE,IAAI;AAAA,IAAE,CAAG,GAAC,KAAK,OAAO,WAAS,MAAK,KAAK,OAAO,SAAO,KAAK,aAAW,CAACuJ,GAAE,KAAK,iBAAevJ;AAAA,EAAC;AAAA,EAAC,IAAI,QAAO;AAAC,UAAM6L,IAAEI,GAAE,IAAI;AAAE,QAAI;AAAE,WAAO,IAAEJ,GAAEhL,MAAGK,OAAI,IAAE+K,GAAE,CAAC,GAAiB,QAAQ,IAAI,aAA3B,eAAoC1K,GAAE,EAAE,QAAM,EAAE,MAAId,GAAG,IAAE,EAAC,QAAO,GAAE,MAAK,OAAM,KAAI,QAAO,CAAC,IAAEc,GAAE,EAAE,QAAM,EAAE,MAAId,KAAI,IAAG,CAACoL,EAAE,UAAQA,EAAE,eAAaA,EAAE,SAAO,IAAGA,EAAE,SAAOA,EAAE,OAAO,IAAG,IAAIA,EAAE;AAAA,EAAM;AAAA,EAAC,IAAI,MAAMA,GAAE;AAAC,SAAK,QAAQA,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMQ,KAAE,CAAE;AAAC,SAASC,GAAE,MAAK1K,GAAE;AAAC,MAAkB,QAAQ,IAAI,aAA3B;AAAoC;AAAO,EAAAhB,GAAE,KAAKC,EAAC,GAAEA,KAAE;AAAG,QAAMb,IAAEqM,GAAE,SAAOA,GAAEA,GAAE,SAAO,CAAC,EAAE,YAAU,MAAK,IAAErM,KAAGA,EAAE,WAAW,OAAO,aAAYW,IAAE,WAAU;AAAC,QAAIkL,IAAEQ,GAAEA,GAAE,SAAO,CAAC;AAAE,QAAG,CAACR;AAAE,aAAM;AAAG,UAAMjK,IAAE,CAAE;AAAC,WAAKiK,KAAG;AAAC,YAAM7L,IAAE4B,EAAE,CAAC;AAAE,MAAA5B,KAAGA,EAAE,UAAQ6L,IAAE7L,EAAE,iBAAe4B,EAAE,KAAK,EAAC,OAAMiK,GAAE,cAAa,EAAC,CAAC;AAAE,YAAMtC,IAAEsC,EAAE,aAAWA,EAAE,UAAU;AAAO,MAAAA,IAAEtC,KAAGA,EAAE;AAAA;AAAM,WAAO3H;AAAA,EAAC,EAAC;AAAG,MAAG;AAAE,IAAA2K,GAAE,GAAEvM,GAAE,IAAG,CAAC,IAAE4B,EAAE,KAAK,EAAE,GAAE5B,KAAGA,EAAE,OAAMW,EAAE,IAAK,CAAC,EAAC,OAAMkL,EAAC,MAAI,OAAOW,GAAGxM,GAAE6L,EAAE,IAAI,MAAO,KAAK;AAAA,CAAI,GAAElL,CAAC,CAAC;AAAA,OAAM;AAAC,UAAMX,IAAE,CAAC,eAAe,KAAI,GAAG4B,CAAC;AAAE,IAAAjB,EAAE,UAAQX,EAAE,KAAK;AAAA,GAAK,GAAG,SAAS6L,GAAE;AAAC,YAAMjK,IAAE,CAAA;AAAG,aAAOiK,EAAE,QAAS,CAACA,GAAE7L,MAAI;AAAC,QAAA4B,EAAE,KAAK,GAAO5B,MAAJ,IAAM,CAAE,IAAC,CAAC;AAAA,CAAI,GAAE,GAAG,SAAS,EAAC,OAAM6L,GAAE,cAAajK,EAAC,GAAE;AAAC,gBAAM5B,IAAE4B,IAAE,IAAE,QAAQA,uBAAqB,IAAG2H,IAAE,CAAC,CAACsC,EAAE,aAAiBA,EAAE,UAAU,UAAlB,MAAyBlL,IAAE,QAAQ6L,GAAGX,EAAE,WAAUA,EAAE,MAAKtC,CAAC,KAAI7H,IAAE,MAAI1B;AAAE,iBAAO6L,EAAE,QAAM,CAAClL,GAAE,GAAG8L,GAAEZ,EAAE,KAAK,GAAEnK,CAAC,IAAE,CAACf,IAAEe,CAAC;AAAA,QAAC,EAAEmK,CAAC,CAAC;AAAA,MAAC,CAAC,GAAGjK;AAAA,IAAC,EAAEjB,CAAC,CAAC,GAAE,QAAQ,KAAK,GAAGX,CAAC;AAAA;AAAE,GAAC,WAAU;AAAC,UAAM6L,IAAEjL,GAAE;AAAM,IAAAC,KAAWgL,MAAT,UAAYA;AAAA,EAAC,GAAC;AAAE;AAAC,SAASY,GAAE,GAAE;AAAC,QAAM7K,IAAE,CAAE,GAAC5B,IAAE,OAAO,KAAK,CAAC;AAAE,SAAOA,EAAE,MAAM,GAAE,CAAC,EAAE,QAAS,CAAAA,MAAG;AAAC,IAAA4B,EAAE,KAAK,GAAG8K,GAAE1M,GAAE,EAAEA,CAAC,CAAC,CAAC;AAAA,EAAC,CAAG,GAACA,EAAE,SAAO,KAAG4B,EAAE,KAAK,MAAM,GAAEA;AAAC;AAAC,SAAS8K,GAAE,GAAE9K,GAAE5B,GAAE;AAAC,SAAgB,OAAO4B,KAAjB,YAAoBA,IAAE,KAAK,UAAUA,CAAC,GAAE5B,IAAE4B,IAAE,CAAC,GAAG,KAAKA,GAAG,KAAa,OAAOA,KAAjB,YAA+B,OAAOA,KAAlB,aAA2BA,KAAN,OAAQ5B,IAAE4B,IAAE,CAAC,GAAG,KAAKA,GAAG,IAAEsK,GAAEtK,CAAC,KAAGA,IAAE8K,GAAE,GAAET,GAAErK,EAAE,KAAK,GAAE,EAAE,GAAE5B,IAAE4B,IAAE,CAAC,GAAG,UAASA,GAAE,GAAG,KAAGF,GAAEE,CAAC,IAAE,CAAC,GAAG,OAAOA,EAAE,OAAK,IAAIA,EAAE,UAAQ,IAAI,KAAGA,IAAEqK,GAAErK,CAAC,GAAE5B,IAAE4B,IAAE,CAAC,GAAG,MAAKA,CAAC;AAAE;AAAC,MAAM+K,KAAE,EAAC,IAAG,uBAAsB,IAAG,qBAAoB,GAAE,gBAAe,IAAG,oBAAmB,GAAE,gBAAe,IAAG,qBAAoB,GAAE,WAAU,KAAI,sBAAqB,IAAG,kBAAiB,GAAE,kBAAiB,IAAG,oBAAmB,IAAG,sBAAqB,KAAI,sBAAqB,KAAI,wBAAuB,GAAE,kBAAiB,GAAE,mBAAkB,GAAE,kBAAiB,GAAE,oBAAmB,GAAE,4BAA2B,GAAE,wBAAuB,GAAE,2BAA0B,GAAE,cAAa,GAAE,kBAAiB,GAAE,mBAAkB,IAAG,oBAAmB,IAAG,mBAAkB,IAAG,gBAAe,IAAG,0BAAyB,IAAG,4HAA2H;AAAE,SAASJ,GAAE,GAAE3K,GAAE5B,GAAE,GAAE;AAAC,MAAIW;AAAE,MAAG;AAAC,IAAAA,IAAE,IAAE,EAAE,GAAG,CAAC,IAAE,EAAC;AAAA,EAAE,SAAOkL,GAAN;AAAS,KAAC,SAASA,GAAEjK,GAAE5B,GAAEuJ,IAAE,IAAG;AAAC,YAAM5I,IAAEiB,IAAEA,EAAE,QAAM;AAAK,UAAGA,GAAE;AAAC,YAAI2H,IAAE3H,EAAE;AAAO,cAAMjB,IAAEiB,EAAE,OAAMF,IAAiB,QAAQ,IAAI,aAA3B,eAAoCiL,GAAE3M,CAAC,IAAEA;AAAE,eAAKuJ,KAAG;AAAC,gBAAM3H,IAAE2H,EAAE;AAAG,cAAG3H;AAAE,qBAAQ5B,IAAE,GAAEA,IAAE4B,EAAE,QAAO5B;AAAI,kBAAQ4B,EAAE5B,CAAC,EAAE6L,GAAElL,GAAEe,CAAC,MAAf;AAAiB;AAAA;AAAO,UAAA6H,IAAEA,EAAE;AAAA;AAAO,cAAMjJ,IAAEsB,EAAE,WAAW,OAAO;AAAa,YAAGtB;AAAE,iBAAO,KAAKiM,GAAEjM,GAAE,MAAK,IAAG,CAACuL,GAAElL,GAAEe,CAAC,CAAC;AAAA;AAAE,OAAC,SAASmK,GAAEjK,GAAE5B,GAAEuJ,IAAE,IAAG;AAAC,YAAkB,QAAQ,IAAI,aAA3B,cAAoC;AAAC,gBAAM7H,IAAEiL,GAAE/K,CAAC;AAAE,cAAG5B,MAAIW,IAAEX,GAAEqM,GAAE,KAAK1L,CAAC,IAAG2L,GAAE,qBAAmB5K,IAAE,wBAAwBA,MAAI,GAAG,GAAE1B,KAAGqM,GAAE,IAAK,GAAC9C;AAAE,kBAAMsC;AAAE,kBAAQ,MAAMA,CAAC;AAAA;AAAO,kBAAQ,MAAMA,CAAC;AAAE,YAAIlL;AAAA,MAAC,GAAEkL,GAAE7L,GAAEW,GAAE4I,CAAC;AAAA,IAAC,GAAEsC,GAAEjK,GAAE5B,CAAC;AAAA,EAAC;AAAC,SAAOW;AAAC;AAAC,IAAIiM,KAAE,IAAGC,KAAE;AAAG,MAAMC,KAAE,CAAA;AAAG,IAAIC,KAAE;AAAE,MAAMC,KAAE,CAAA;AAAG,IAAIC,KAAE,MAAKC,KAAE;AAAE,MAAMC,KAAE,QAAQ,QAAS;AAAC,SAASC,GAAE,GAAE;AAAC,EAAAN,GAAE,UAAQA,GAAE,SAAS,GAAEF,MAAG,EAAE,eAAaG,KAAE,IAAEA,EAAC,MAAU,EAAE,MAAR,OAAWD,GAAE,KAAK,CAAC,IAAEA,GAAE,OAAO,SAASjB,GAAE;AAAC,QAAI,IAAEkB,KAAE,GAAE/M,IAAE8M,GAAE;AAAO,WAAK,IAAE9M,KAAG;AAAC,YAAMuJ,IAAE,IAAEvJ,MAAI,GAAE,IAAE8M,GAAEvD,CAAC,GAAE7H,IAAE2L,GAAE,CAAC;AAAE,MAAA3L,IAAEmK,KAAGnK,MAAImK,KAAG,EAAE,MAAI,IAAEtC,IAAE,IAAEvJ,IAAEuJ;AAAA;AAAE,WAAO;AAAA,EAAC,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,GAAE+D,GAAG;AAAC;AAAC,SAASA,KAAG;AAAC,EAAAV,MAAGC,OAAIA,KAAE,IAAGM,GAAE,KAAKI,EAAC;AAAE;AAAC,MAAMF,KAAE,OAAS,EAAE,MAAR,OAAW,IAAE,IAAE,EAAE,IAAGG,KAAE,CAAC,GAAE5L,MAAI;AAAC,QAAM5B,IAAEqN,GAAE,CAAC,IAAEA,GAAEzL,CAAC;AAAE,MAAO5B,MAAJ,GAAM;AAAC,QAAG,EAAE,OAAK,CAAC4B,EAAE;AAAI,aAAM;AAAG,QAAGA,EAAE,OAAK,CAAC,EAAE;AAAI,aAAO;AAAA;AAAE,SAAO5B;AAAC;AAAE,SAASuN,GAAE,GAAE;AAAC,EAAAV,KAAE,IAAGD,KAAE,IAAkB,QAAQ,IAAI,aAA3B,iBAAsC,IAAE,KAAG,oBAAI,QAAKE,GAAE,KAAKU,EAAC;AAAE,QAAM5L,IAAiB,QAAQ,IAAI,aAA3B,eAAoC,OAAG6L,GAAE,GAAE,CAAC,IAAEzN;AAAE,MAAG;AAAC,SAAI+M,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,YAAMlB,IAAEiB,GAAEC,EAAC;AAAE,UAAGlB,KAAQA,EAAE,WAAP,IAAc;AAAC,YAAkB,QAAQ,IAAI,aAA3B,gBAAqCjK,EAAEiK,CAAC;AAAE;AAAS,QAAAU,GAAEV,GAAE,MAAK,EAAE;AAAA;AAAA;AAAA,EAAG,UAAC;AAAQ,IAAAkB,KAAE,GAAED,GAAE,SAAO,GAAE,SAASjB,GAAE;AAAC,UAAGmB,GAAE,QAAO;AAAC,cAAMpL,IAAE,CAAC,GAAG,IAAI,IAAIoL,EAAC,CAAC;AAAE,YAAGA,GAAE,SAAO,GAAEC;AAAE,iBAAO,KAAKA,GAAE,KAAK,GAAGrL,CAAC;AAAE,aAAIqL,KAAErL,GAAiB,QAAQ,IAAI,aAA3B,iBAAsCiK,IAAEA,KAAG,oBAAI,QAAKoB,GAAE,KAAM,CAACpB,GAAEjK,MAAIyL,GAAExB,CAAC,IAAEwB,GAAEzL,CAAC,CAAC,GAAGsL,KAAE,GAAEA,KAAED,GAAE,QAAOC;AAAI,UAAe,QAAQ,IAAI,aAA3B,gBAAqCO,GAAE5B,GAAEoB,GAAEC,EAAC,CAAC,KAAGD,GAAEC,EAAC,EAAC;AAAG,QAAAD,KAAE,MAAKC,KAAE;AAAA;AAAA,IAAE,EAAE,CAAC,GAAEN,KAAE,KAAIE,GAAE,UAAQE,GAAE,WAASO,GAAE,CAAC;AAAA,EAAC;AAAC;AAAC,SAASE,GAAE,GAAE7L,GAAE;AAAC,MAAG,EAAE,IAAIA,CAAC,GAAE;AAAC,UAAM5B,IAAE,EAAE,IAAI4B,CAAC;AAAE,QAAG5B,IAAE,KAAI;AAAC,YAAM6L,IAAEjK,EAAE,eAAc5B,IAAE6L,KAAG6B,GAAG7B,EAAE,IAAI;AAAE,aAAOS,GAAE,qCAAqCtM,IAAE,kBAAkBA,OAAK,gOAAgO,GAAE;AAAA;AAAG,MAAE,IAAI4B,GAAE5B,IAAE,CAAC;AAAA;AAAO,MAAE,IAAI4B,GAAE,CAAC;AAAC;AAAC,MAAM+L,KAAE,oBAAI;AAAmB,QAAQ,IAAI,aAA3B,iBAAsCxM,GAAG,EAAC,sBAAoB,EAAC,cAAayM,GAAG,SAAS,GAAEhM,GAAE;AAAC,SAAGiM,GAAE,IAAI,CAAC,IAAQ,MAAUA,GAAE,IAAI,GAAE,EAAC,YAAWC,GAAElM,CAAC,GAAE,WAAU,oBAAI,MAAG,CAAC,GAAE;AAAE,CAAC,GAAG,UAASgM,GAAG,SAAS,GAAEhM,GAAE;AAAC,QAAM5B,IAAE6N,GAAE,IAAI,CAAC;AAAE,EAAI7N,MAASA,EAAE,WAAW,SAAO4B,GAAE,CAAC,GAAG5B,EAAE,SAAS,EAAE,QAAS,CAAA6L,MAAG;AAAC,IAAAjK,MAAIiK,EAAE,SAAOjK,GAAEkM,GAAEjC,EAAE,IAAI,EAAE,SAAOjK,IAAGiK,EAAE,cAAY,IAAGA,EAAE,OAAQ;AAAA,EAAA;AAAG,CAAC,GAAG,QAAO+B,GAAG,SAAS,GAAEhM,GAAE;AAAC,QAAM5B,IAAE6N,GAAE,IAAI,CAAC;AAAE,MAAG,CAAC7N;AAAE;AAAO,EAAA4B,IAAEkM,GAAElM,CAAC,GAAEZ,GAAEhB,EAAE,YAAW4B,CAAC;AAAE,QAAM,IAAE,CAAC,GAAG5B,EAAE,SAAS;AAAE,aAAU6L,KAAK,GAAE;AAAC,UAAMtC,IAAEuE,GAAEjC,EAAE,IAAI;AAAE,IAAA8B,GAAE,IAAIpE,CAAC,MAAIA,MAAIvJ,EAAE,cAAYgB,GAAEuI,GAAE3H,CAAC,GAAE+L,GAAE,IAAIpE,CAAC,IAAGsC,EAAE,WAAW,WAAW,OAAOA,EAAE,IAAI,GAAEA,EAAE,WAAW,WAAW,OAAOA,EAAE,IAAI,GAAEA,EAAE,WAAW,aAAa,OAAOA,EAAE,IAAI,GAAEA,EAAE,YAAU8B,GAAE,IAAIpE,CAAC,GAAEsC,EAAE,SAASjK,EAAE,MAAM,GAAE+L,GAAE,OAAOpE,CAAC,KAAGsC,EAAE,SAAOuB,GAAEvB,EAAE,OAAO,MAAM,IAAEA,EAAE,WAAW,SAAOA,EAAE,WAAW,OAAM,IAAgB,OAAO,SAApB,MAA2B,OAAO,SAAS,WAAS,QAAQ,KAAK,yEAAyE;AAAA;AAAE,EAAAnK,IAAE,MAAI;AAAC,eAAUmK,KAAK;AAAE,MAAA8B,GAAE,OAAOG,GAAEjC,EAAE,IAAI,CAAC;AAAA,EAAC,GAAElL,GAAEe,CAAC,IAAEsL,GAAE,KAAK,GAAGtL,CAAC,IAAEuL,MAAGA,GAAE,SAASvL,GAAEA,EAAE,eAAawL,KAAE,IAAEA,EAAC,KAAGF,GAAE,KAAKtL,CAAC,GAAE4L,GAAC;AAAG,MAAI5L;AAAC,CAAG,EAAA;AAAG,MAAMmM,KAAE,oBAAI;AAAI,SAASC,GAAE,GAAE;AAAC,SAAOpM,GAAEE,IAAE,CAAC,KAAG,eAAcA,IAAE,EAAE,YAAU;AAAE,MAAIA;AAAC;AAAC,SAASZ,GAAE,GAAEY,GAAE;AAAC,EAAA2H,GAAE,GAAE3H,CAAC;AAAE,aAAU5B,KAAK;AAAE,IAAWA,MAAX,YAAcA,KAAK4B,KAAG,OAAO,EAAE5B,CAAC;AAAC;AAAC,SAAS4N,GAAE,GAAE;AAAC,SAAM,CAAChM,GAAE5B,MAAI;AAAC,QAAG;AAAC,aAAO,EAAE4B,GAAE5B,CAAC;AAAA,IAAC,SAAO6L,GAAN;AAAS,cAAQ,MAAMA,CAAC,GAAE,QAAQ,KAAK,mFAAmF;AAAA,IAAC;AAAA,EAAC;AAAC;AAAY,IAAIkC;AAAiB,QAAQ,IAAI;AAAqM,IAAIC,KAAE;AAAA,CAA4BD,KAAE5M,GAAG,EAAC6M,EAAC,OAAKD,KAAE5M,GAAC,EAAG6M,EAAC,IAAE,CAAA,IAAID,GAAE,KAAM,OAAG;AAAI,MAAME,KAAG,mBAAkBC,KAAG,OAAG,EAAE,QAAQD,IAAI,CAAApC,MAAGA,EAAE,YAAa,CAAA,EAAG,QAAQ,SAAQ,EAAE;AAAE,SAAS6B,GAAG,GAAE9L,IAAE,IAAG;AAAC,SAAOF,GAAE,CAAC,IAAE,EAAE,eAAa,EAAE,OAAK,EAAE,QAAME,KAAG,EAAE;AAAM;AAAC,SAAS4K,GAAG,GAAE5K,GAAE5B,IAAE,IAAG;AAAC,MAAI,IAAE0N,GAAG9L,CAAC;AAAE,MAAG,CAAC,KAAGA,EAAE,QAAO;AAAC,UAAMiK,IAAEjK,EAAE,OAAO,MAAM,iBAAiB;AAAE,IAAAiK,MAAI,IAAEA,EAAE,CAAC;AAAA;AAAG,MAAG,CAAC,KAAG,KAAG,EAAE,QAAO;AAAC,UAAM7L,IAAE,CAAA6L,MAAG;AAAC,iBAAU7L,KAAK6L;AAAE,YAAGA,EAAE7L,CAAC,MAAI4B;AAAE,iBAAO5B;AAAA,IAAC;AAAE,QAAEA,EAAE,EAAE,cAAY,EAAE,OAAO,KAAK,UAAU,KAAGA,EAAE,EAAE,WAAW,UAAU;AAAA;AAAE,SAAO,IAAEkO,GAAG,CAAC,IAAElO,IAAE,QAAM;AAAW;AAAC,MAAMmO,KAAG,CAAC,GAAEvM,MAAI,SAASiK,GAAEjK,GAAE2H,IAAE,IAAG;AAAC,MAAI,GAAEjJ;AAAE,QAAMc,IAAEM,GAAEmK,CAAC;AAAE,SAAOzK,KAAG,IAAEyK,GAAEvL,IAAiB,QAAQ,IAAI,aAA3B,eAAoC,MAAI;AAAC,YAAQ,KAAK,oDAAoD;AAAA,EAAC,IAAEN,OAAI,IAAE6L,EAAE,KAAIvL,IAAEuL,EAAE,MAAK,IAAIO,GAAE,GAAE9L,GAAEc,KAAG,CAACd,GAAEiJ,CAAC;AAAC,EAAE,GAAE,GAAE,EAAK;AAAE,SAAS6E,GAAG,GAAE;AAAC,SAAO,KAAG,EAAE,cAAY,OAAO,UAAU,eAAe,KAAK,GAAE,SAAS,IAAE,EAAE,UAAQ;AAAC;AAAC,IAAIC,IAAGC,KAAG,EAAC,SAAQ,CAAE,EAAA;AAAE,SAASC,KAAI;AAAC,SAAOF,OAAKA,KAAG,GAAEC,GAAG,UAAQ,WAAU;AAAC,QAAI,IAAE,KAAI1M,IAAE,KAAI5B,IAAE,MAAK,IAAE,eAAcW,IAAE,UAASe,IAAE,UAASpB,IAAE,QAAOc,IAAE,OAAMD,IAAE,QAAOV,IAAE,SAAQkL,IAAE,WAAUnK,IAAE,QAAOG,IAAE,QAAOZ,IAAE,gBAAeG,IAAE,8FAA6F0K,IAAE,uFAAsFE,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASD,GAAE;AAAC,UAAIjK,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAE5B,IAAE6L,IAAE;AAAI,aAAM,MAAIA,KAAGjK,GAAG5B,IAAE,MAAI,EAAE,KAAG4B,EAAE5B,CAAC,KAAG4B,EAAE,CAAC,KAAG;AAAA,IAAG,EAAC,GAAEf,IAAE,SAASgL,GAAEjK,GAAE5B,GAAE;AAAC,UAAIuJ,IAAE,OAAOsC,CAAC;AAAE,aAAM,CAACtC,KAAGA,EAAE,UAAQ3H,IAAEiK,IAAE,KAAG,MAAMjK,IAAE,IAAE2H,EAAE,MAAM,EAAE,KAAKvJ,CAAC,IAAE6L;AAAA,IAAC,GAAEjL,IAAE,EAAC,GAAEC,GAAE,GAAE,SAASgL,GAAE;AAAC,UAAIjK,IAAE,CAACiK,EAAE,UAAS,GAAG7L,IAAE,KAAK,IAAI4B,CAAC,GAAE2H,IAAE,KAAK,MAAMvJ,IAAE,EAAE,GAAEW,IAAEX,IAAE;AAAG,cAAO4B,KAAG,IAAE,MAAI,OAAKf,EAAE0I,GAAE,GAAE,GAAG,IAAE,MAAI1I,EAAEF,GAAE,GAAE,GAAG;AAAA,IAAC,GAAE,GAAE,SAASkL,EAAEjK,GAAE5B,GAAE;AAAC,UAAG4B,EAAE,SAAO5B,EAAE,KAAM;AAAC,eAAM,CAAC6L,EAAE7L,GAAE4B,CAAC;AAAE,UAAI2H,IAAE,MAAIvJ,EAAE,KAAM,IAAC4B,EAAE,KAAM,MAAG5B,EAAE,UAAQ4B,EAAE,MAAO,IAAEjB,IAAEiB,EAAE,MAAK,EAAG,IAAI2H,GAAE9I,CAAC,GAAEiB,IAAE1B,IAAEW,IAAE,GAAEL,IAAEsB,EAAE,QAAQ,IAAI2H,KAAG7H,IAAE,KAAG,IAAGjB,CAAC;AAAE,aAAM,EAAE,EAAE8I,KAAGvJ,IAAEW,MAAIe,IAAEf,IAAEL,IAAEA,IAAEK,OAAK;AAAA,IAAE,GAAE,GAAE,SAASkL,GAAE;AAAC,aAAOA,IAAE,IAAE,KAAK,KAAKA,CAAC,KAAG,IAAE,KAAK,MAAMA,CAAC;AAAA,IAAC,GAAE,GAAE,SAASA,GAAE;AAAC,aAAM,EAAC,GAAEpL,GAAE,GAAEe,GAAE,GAAEL,GAAE,GAAEC,GAAE,GAAEO,GAAE,GAAErB,GAAE,GAAEoB,GAAE,GAAEf,GAAE,IAAG,GAAE,GAAEgL,EAAC,EAAEE,CAAC,KAAG,OAAOA,KAAG,EAAE,EAAE,YAAW,EAAG,QAAQ,MAAK,EAAE;AAAA,IAAC,GAAE,GAAE,SAASA,GAAE;AAAC,aAAgBA,MAAT;AAAA,IAAU,EAAC,GAAEtK,IAAE,MAAKwK,IAAE,CAAE;AAAC,IAAAA,EAAExK,CAAC,IAAEuK;AAAE,QAAIE,IAAE,kBAAiBC,IAAE,SAASJ,GAAE;AAAC,aAAOA,aAAaQ,KAAG,EAAE,CAACR,KAAG,CAACA,EAAEG,CAAC;AAAA,IAAE,GAAEE,IAAE,SAASL,EAAEjK,GAAE5B,GAAEuJ,GAAE;AAAC,UAAI5I;AAAE,UAAG,CAACiB;AAAE,eAAOL;AAAE,UAAa,OAAOK,KAAjB,UAAmB;AAAC,YAAIF,IAAEE,EAAE,YAAW;AAAG,QAAAmK,EAAErK,CAAC,MAAIf,IAAEe,IAAG1B,MAAI+L,EAAErK,CAAC,IAAE1B,GAAEW,IAAEe;AAAG,YAAIpB,IAAEsB,EAAE,MAAM,GAAG;AAAE,YAAG,CAACjB,KAAGL,EAAE,SAAO;AAAE,iBAAOuL,EAAEvL,EAAE,CAAC,CAAC;AAAA,aAAM;AAAC,YAAIc,IAAEQ,EAAE;AAAK,QAAAmK,EAAE3K,CAAC,IAAEQ,GAAEjB,IAAES;AAAA;AAAE,aAAM,CAACmI,KAAG5I,MAAIY,IAAEZ,IAAGA,KAAG,CAAC4I,KAAGhI;AAAA,IAAC,GAAE4K,IAAE,SAASN,GAAEjK,GAAE;AAAC,UAAGqK,EAAEJ,CAAC;AAAE,eAAOA,EAAE,MAAO;AAAC,UAAI7L,IAAY,OAAO4B,KAAjB,WAAmBA,IAAE,CAAE;AAAC,aAAO5B,EAAE,OAAK6L,GAAE7L,EAAE,OAAK,WAAU,IAAIqM,EAAErM,CAAC;AAAA,IAAC,GAAEoM,IAAExL;AAAE,IAAAwL,EAAE,IAAEF,GAAEE,EAAE,IAAEH,GAAEG,EAAE,IAAE,SAASP,GAAEjK,GAAE;AAAC,aAAOuK,EAAEN,GAAE,EAAC,QAAOjK,EAAE,IAAG,KAAIA,EAAE,IAAG,GAAEA,EAAE,IAAG,SAAQA,EAAE,QAAO,CAAC;AAAA,IAAC;AAAE,QAAIyK,IAAE,WAAU;AAAC,eAASP,EAAED,GAAE;AAAC,aAAK,KAAGK,EAAEL,EAAE,QAAO,MAAK,EAAE,GAAE,KAAK,MAAMA,CAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,EAAE,KAAG,CAAE,GAAC,KAAKG,CAAC,IAAE;AAAA,MAAE;AAAC,UAAInL,IAAEiL,EAAE;AAAU,aAAOjL,EAAE,QAAM,SAASgL,GAAE;AAAC,aAAK,KAAG,SAASA,GAAE;AAAC,cAAIjK,IAAEiK,EAAE,MAAK7L,IAAE6L,EAAE;AAAI,cAAUjK,MAAP;AAAS,mBAAO,oBAAI,KAAK,GAAG;AAAE,cAAGwK,EAAE,EAAExK,CAAC;AAAE,mBAAO,oBAAI;AAAK,cAAGA,aAAa;AAAK,mBAAO,IAAI,KAAKA,CAAC;AAAE,cAAa,OAAOA,KAAjB,YAAoB,CAAC,MAAM,KAAKA,CAAC,GAAE;AAAC,gBAAI2H,IAAE3H,EAAE,MAAMV,CAAC;AAAE,gBAAGqI,GAAE;AAAC,kBAAI5I,IAAE4I,EAAE,CAAC,IAAE,KAAG,GAAE7H,KAAG6H,EAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,qBAAOvJ,IAAE,IAAI,KAAK,KAAK,IAAIuJ,EAAE,CAAC,GAAE5I,GAAE4I,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE7H,CAAC,CAAC,IAAE,IAAI,KAAK6H,EAAE,CAAC,GAAE5I,GAAE4I,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE7H,CAAC;AAAA;AAAA;AAAG,iBAAO,IAAI,KAAKE,CAAC;AAAA,QAAC,EAAEiK,CAAC,GAAE,KAAK;MAAM,GAAEhL,EAAE,OAAK,WAAU;AAAC,YAAIgL,IAAE,KAAK;AAAG,aAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,QAAO,GAAG,KAAK,KAAGA,EAAE,OAAQ,GAAC,KAAK,KAAGA,EAAE,SAAU,GAAC,KAAK,KAAGA,EAAE,WAAY,GAAC,KAAK,KAAGA,EAAE,cAAa,KAAK,MAAIA,EAAE,gBAAe;AAAA,MAAE,GAAEhL,EAAE,SAAO,WAAU;AAAC,eAAOuL;AAAA,MAAC,GAAEvL,EAAE,UAAQ,WAAU;AAAC,eAAQ,KAAK,GAAG,eAAaE;AAAA,MAAE,GAAEF,EAAE,SAAO,SAASgL,GAAEjK,GAAE;AAAC,YAAI5B,IAAEmM,EAAEN,CAAC;AAAE,eAAO,KAAK,QAAQjK,CAAC,KAAG5B,KAAGA,KAAG,KAAK,MAAM4B,CAAC;AAAA,MAAC,GAAEf,EAAE,UAAQ,SAASgL,GAAEjK,GAAE;AAAC,eAAOuK,EAAEN,CAAC,IAAE,KAAK,QAAQjK,CAAC;AAAA,MAAC,GAAEf,EAAE,WAAS,SAASgL,GAAEjK,GAAE;AAAC,eAAO,KAAK,MAAMA,CAAC,IAAEuK,EAAEN,CAAC;AAAA,MAAC,GAAEhL,EAAE,KAAG,SAASgL,GAAEjK,GAAE5B,GAAE;AAAC,eAAOoM,EAAE,EAAEP,CAAC,IAAE,KAAKjK,CAAC,IAAE,KAAK,IAAI5B,GAAE6L,CAAC;AAAA,MAAC,GAAEhL,EAAE,OAAK,WAAU;AAAC,eAAO,KAAK,MAAM,KAAK,QAAO,IAAG,GAAG;AAAA,MAAC,GAAEA,EAAE,UAAQ,WAAU;AAAC,eAAO,KAAK,GAAG,QAAO;AAAA,MAAE,GAAEA,EAAE,UAAQ,SAASgL,GAAEjK,GAAE;AAAC,YAAI5B,IAAE,MAAKuJ,IAAE,CAAC,CAAC6C,EAAE,EAAExK,CAAC,KAAGA,GAAE+J,IAAES,EAAE,EAAEP,CAAC,GAAE9K,IAAE,SAAS8K,IAAEjK,GAAE;AAAC,cAAIjB,KAAEyL,EAAE,EAAEpM,EAAE,KAAG,KAAK,IAAIA,EAAE,IAAG4B,GAAEiK,EAAC,IAAE,IAAI,KAAK7L,EAAE,IAAG4B,GAAEiK,EAAC,GAAE7L,CAAC;AAAE,iBAAOuJ,IAAE5I,KAAEA,GAAE,MAAMS,CAAC;AAAA,QAAC,GAAEF,IAAE,SAAS2K,IAAEjK,GAAE;AAAC,iBAAOwK,EAAE,EAAEpM,EAAE,SAAS6L,EAAC,EAAE,MAAM7L,EAAE,OAAO,GAAG,IAAGuJ,IAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAM3H,CAAC,CAAC,GAAE5B,CAAC;AAAA,QAAC,GAAE4L,IAAE,KAAK,IAAGE,IAAE,KAAK,IAAGjL,IAAE,KAAK,IAAGD,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,gBAAO+K;UAAG,KAAKnK;AAAE,mBAAO+H,IAAExI,EAAE,GAAE,CAAC,IAAEA,EAAE,IAAG,EAAE;AAAA,UAAE,KAAKN;AAAE,mBAAO8I,IAAExI,EAAE,GAAE+K,CAAC,IAAE/K,EAAE,GAAE+K,IAAE,CAAC;AAAA,UAAE,KAAK3K;AAAE,gBAAII,KAAE,KAAK,QAAO,EAAG,aAAW,GAAEwK,MAAGH,IAAErK,KAAEqK,IAAE,IAAEA,KAAGrK;AAAE,mBAAOR,EAAEwI,IAAE1I,IAAEkL,KAAElL,KAAG,IAAEkL,KAAGD,CAAC;AAAA,UAAE,KAAK1K;AAAA,UAAE,KAAKO;AAAE,mBAAOT,EAAEN,KAAE,SAAQ,CAAC;AAAA,UAAE,KAAKN;AAAE,mBAAOY,EAAEN,KAAE,WAAU,CAAC;AAAA,UAAE,KAAKc;AAAE,mBAAOR,EAAEN,KAAE,WAAU,CAAC;AAAA,UAAE,KAAKD;AAAE,mBAAOO,EAAEN,KAAE,gBAAe,CAAC;AAAA,UAAE;AAAQ,mBAAO,KAAK;QAAO;AAAA,MAAC,GAAEC,EAAE,QAAM,SAASgL,GAAE;AAAC,eAAO,KAAK,QAAQA,GAAE,EAAE;AAAA,MAAC,GAAEhL,EAAE,OAAK,SAASgL,GAAEjK,GAAE;AAAC,YAAI5B,GAAEmB,IAAEiL,EAAE,EAAEP,CAAC,GAAEF,IAAE,SAAO,KAAK,KAAG,QAAM,KAAI5K,KAAGf,IAAE,CAAE,GAACA,EAAEoB,CAAC,IAAEuK,IAAE,QAAO3L,EAAE2B,CAAC,IAAEgK,IAAE,QAAO3L,EAAES,CAAC,IAAEkL,IAAE,SAAQ3L,EAAEwB,CAAC,IAAEmK,IAAE,YAAW3L,EAAEM,CAAC,IAAEqL,IAAE,SAAQ3L,EAAE0B,CAAC,IAAEiK,IAAE,WAAU3L,EAAEW,CAAC,IAAEgL,IAAE,WAAU3L,EAAE,CAAC,IAAE2L,IAAE,gBAAe3L,GAAGmB,CAAC,GAAED,IAAEC,MAAIC,IAAE,KAAK,MAAIQ,IAAE,KAAK,MAAIA;AAAE,YAAGT,MAAIV,KAAGU,MAAIK,GAAE;AAAC,cAAIoK,IAAE,KAAK,MAAO,EAAC,IAAIjK,GAAE,CAAC;AAAE,UAAAiK,EAAE,GAAG7K,CAAC,EAAEG,CAAC,GAAE0K,EAAE,KAAI,GAAG,KAAK,KAAGA,EAAE,IAAIjK,GAAE,KAAK,IAAI,KAAK,IAAGiK,EAAE,aAAa,CAAC,EAAE;AAAA;AAAQ,UAAA7K,KAAG,KAAK,GAAGA,CAAC,EAAEG,CAAC;AAAE,eAAO,KAAK,KAAI,GAAG;AAAA,MAAI,GAAEL,EAAE,MAAI,SAASgL,GAAEjK,GAAE;AAAC,eAAO,KAAK,QAAQ,KAAKiK,GAAEjK,CAAC;AAAA,MAAC,GAAEf,EAAE,MAAI,SAASgL,GAAE;AAAC,eAAO,KAAKO,EAAE,EAAEP,CAAC,CAAC;MAAG,GAAEhL,EAAE,MAAI,SAAS0I,GAAEoC,GAAE;AAAC,YAAIhK,GAAEZ,IAAE;AAAK,QAAAwI,IAAE,OAAOA,CAAC;AAAE,YAAIrI,IAAEkL,EAAE,EAAET,CAAC,GAAEC,IAAE,SAASC,GAAE;AAAC,cAAIjK,IAAEuK,EAAEpL,CAAC;AAAE,iBAAOqL,EAAE,EAAExK,EAAE,KAAKA,EAAE,SAAO,KAAK,MAAMiK,IAAEtC,CAAC,CAAC,GAAExI,CAAC;AAAA,QAAC;AAAE,YAAGG,MAAIT;AAAE,iBAAO,KAAK,IAAIA,GAAE,KAAK,KAAG8I,CAAC;AAAE,YAAGrI,MAAIM;AAAE,iBAAO,KAAK,IAAIA,GAAE,KAAK,KAAG+H,CAAC;AAAE,YAAGrI,MAAIE;AAAE,iBAAOwK,EAAE,CAAC;AAAE,YAAG1K,MAAIC;AAAE,iBAAOyK,EAAE,CAAC;AAAE,YAAIE,KAAGnK,IAAE,CAAA,GAAGA,EAAED,CAAC,IAAEE,GAAED,EAAErB,CAAC,IAAEN,GAAE2B,EAAEhB,CAAC,IAAE,GAAEgB,GAAGT,CAAC,KAAG,GAAEL,IAAE,KAAK,GAAG,QAAS,IAAC0I,IAAEuC;AAAE,eAAOM,EAAE,EAAEvL,GAAE,IAAI;AAAA,MAAC,GAAEA,EAAE,WAAS,SAASgL,GAAEjK,GAAE;AAAC,eAAO,KAAK,IAAI,KAAGiK,GAAEjK,CAAC;AAAA,MAAC,GAAEf,EAAE,SAAO,SAASgL,GAAE;AAAC,YAAIjK,IAAE,MAAK5B,IAAE,KAAK,QAAO;AAAG,YAAG,CAAC,KAAK,QAAO;AAAG,iBAAOA,EAAE,eAAae;AAAE,YAAIwI,IAAEsC,KAAG,wBAAuBlL,IAAEyL,EAAE,EAAE,IAAI,GAAE1K,IAAE,KAAK,IAAGpB,IAAE,KAAK,IAAGc,IAAE,KAAK,IAAGD,IAAEnB,EAAE,UAASS,IAAET,EAAE,QAAO2L,KAAE3L,EAAE,UAASwB,KAAE,SAASqK,GAAE7L,IAAEW,IAAEe,IAAE;AAAC,iBAAOmK,MAAIA,EAAE7L,EAAC,KAAG6L,EAAEjK,GAAE2H,CAAC,MAAI5I,GAAEX,EAAC,EAAE,MAAM,GAAE0B,EAAC;AAAA,QAAC,GAAEC,KAAE,SAASkK,GAAE;AAAC,iBAAOO,EAAE,EAAE1K,IAAE,MAAI,IAAGmK,GAAE,GAAG;AAAA,QAAC,GAAE3K,KAAEyK,MAAG,SAASE,GAAEjK,IAAE5B,IAAE;AAAC,cAAIuJ,KAAEsC,IAAE,KAAG,OAAK;AAAK,iBAAO7L,KAAEuJ,GAAE,YAAa,IAACA;AAAA,QAAC;AAAE,eAAOA,EAAE,QAAQqC,GAAG,SAASC,GAAEtC,IAAE;AAAC,iBAAOA,MAAG,SAASsC,IAAE;AAAC,oBAAOA,IAAC;AAAA,cAAE,KAAI;AAAK,uBAAO,OAAOjK,EAAE,EAAE,EAAE,MAAM,EAAE;AAAA,cAAE,KAAI;AAAO,uBAAOwK,EAAE,EAAExK,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOR,IAAE;AAAA,cAAE,KAAI;AAAK,uBAAOgL,EAAE,EAAEhL,IAAE,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAM,uBAAOI,GAAExB,EAAE,aAAYoB,GAAEX,GAAE,CAAC;AAAA,cAAE,KAAI;AAAO,uBAAOe,GAAEf,GAAEW,CAAC;AAAA,cAAE,KAAI;AAAI,uBAAOQ,EAAE;AAAA,cAAG,KAAI;AAAK,uBAAOwK,EAAE,EAAExK,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOA,EAAE,EAAE;AAAA,cAAE,KAAI;AAAK,uBAAOJ,GAAExB,EAAE,aAAY4B,EAAE,IAAGT,GAAE,CAAC;AAAA,cAAE,KAAI;AAAM,uBAAOK,GAAExB,EAAE,eAAc4B,EAAE,IAAGT,GAAE,CAAC;AAAA,cAAE,KAAI;AAAO,uBAAOA,EAAES,EAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOF,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAO0K,EAAE,EAAE1K,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOC,GAAE,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAOA,GAAE,CAAC;AAAA,cAAE,KAAI;AAAI,uBAAOT,GAAEQ,GAAEpB,GAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAOY,GAAEQ,GAAEpB,GAAE,EAAE;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOA,CAAC;AAAA,cAAE,KAAI;AAAK,uBAAO8L,EAAE,EAAE9L,GAAE,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAO,OAAOsB,EAAE,EAAE;AAAA,cAAE,KAAI;AAAK,uBAAOwK,EAAE,EAAExK,EAAE,IAAG,GAAE,GAAG;AAAA,cAAE,KAAI;AAAM,uBAAOwK,EAAE,EAAExK,EAAE,KAAI,GAAE,GAAG;AAAA,cAAE,KAAI;AAAI,uBAAOjB;AAAA,YAAC;AAAC,mBAAO;AAAA,UAAI,EAAEkL,CAAC,KAAGlL,EAAE,QAAQ,KAAI,EAAE;AAAA,QAAC,CAAG;AAAA,MAAA,GAAEE,EAAE,YAAU,WAAU;AAAC,eAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAiB,IAAG,EAAE;AAAA,MAAC,GAAEA,EAAE,OAAK,SAAS0I,GAAE5H,GAAEZ,GAAE;AAAC,YAAIG,GAAE0K,IAAE,MAAKE,IAAEM,EAAE,EAAEzK,CAAC,GAAEd,IAAEsL,EAAE5C,CAAC,GAAE3I,KAAGC,EAAE,UAAW,IAAC,KAAK,UAAW,KAAEe,GAAEL,IAAE,OAAKV,GAAEkL,IAAE,WAAU;AAAC,iBAAOK,EAAE,EAAER,GAAE/K,CAAC;AAAA,QAAC;AAAE,gBAAOiL;UAAG,KAAKtK;AAAE,YAAAN,IAAE6K,MAAI;AAAG;AAAA,UAAM,KAAKtL;AAAE,YAAAS,IAAE6K,EAAC;AAAG;AAAA,UAAM,KAAKJ;AAAE,YAAAzK,IAAE6K,EAAC,IAAG;AAAE;AAAA,UAAM,KAAK5K;AAAE,YAAAD,KAAGK,IAAEX,KAAG;AAAO;AAAA,UAAM,KAAKQ;AAAE,YAAAF,KAAGK,IAAEX,KAAG;AAAM;AAAA,UAAM,KAAKN;AAAE,YAAAY,IAAEK,IAAEvB;AAAE;AAAA,UAAM,KAAK0B;AAAE,YAAAR,IAAEK,IAAEK;AAAE;AAAA,UAAM,KAAKjB;AAAE,YAAAO,IAAEK,IAAE;AAAE;AAAA,UAAM;AAAQ,YAAAL,IAAEK;AAAA,QAAC;AAAC,eAAOR,IAAEG,IAAEkL,EAAE,EAAElL,CAAC;AAAA,MAAC,GAAEL,EAAE,cAAY,WAAU;AAAC,eAAO,KAAK,MAAMJ,CAAC,EAAE;AAAA,MAAE,GAAEI,EAAE,UAAQ,WAAU;AAAC,eAAOkL,EAAE,KAAK,EAAE;AAAA,MAAC,GAAElL,EAAE,SAAO,SAASgL,GAAEjK,GAAE;AAAC,YAAG,CAACiK;AAAE,iBAAO,KAAK;AAAG,YAAI7L,IAAE,KAAK,MAAK,GAAGuJ,IAAE2C,EAAEL,GAAEjK,GAAE,EAAE;AAAE,eAAO2H,MAAIvJ,EAAE,KAAGuJ,IAAGvJ;AAAA,MAAC,GAAEa,EAAE,QAAM,WAAU;AAAC,eAAOuL,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,MAAC,GAAEvL,EAAE,SAAO,WAAU;AAAC,eAAO,IAAI,KAAK,KAAK,QAAO,CAAE;AAAA,MAAC,GAAEA,EAAE,SAAO,WAAU;AAAC,eAAO,KAAK,QAAO,IAAG,KAAK,YAAW,IAAG;AAAA,MAAI,GAAEA,EAAE,cAAY,WAAU;AAAC,eAAO,KAAK,GAAG;MAAa,GAAEA,EAAE,WAAS,WAAU;AAAC,eAAO,KAAK,GAAG,YAAa;AAAA,MAAA,GAAEiL;AAAA,IAAC,EAAC,GAAGQ,IAAED,EAAE;AAAU,WAAOF,EAAE,YAAUG,GAAE,CAAC,CAAC,OAAM,CAAC,GAAE,CAAC,MAAK3L,CAAC,GAAE,CAAC,MAAKe,CAAC,GAAE,CAAC,MAAKpB,CAAC,GAAE,CAAC,MAAKc,CAAC,GAAE,CAAC,MAAKX,CAAC,GAAE,CAAC,MAAKe,CAAC,GAAE,CAAC,MAAKG,CAAC,CAAC,EAAE,QAAS,SAASkK,GAAE;AAAC,MAAAS,EAAET,EAAE,CAAC,CAAC,IAAE,SAASjK,GAAE;AAAC,eAAO,KAAK,GAAGA,GAAEiK,EAAE,CAAC,GAAEA,EAAE,CAAC,CAAC;AAAA,MAAC;AAAA,IAAC,CAAG,GAACM,EAAE,SAAO,SAASN,GAAEjK,GAAE;AAAC,aAAOiK,EAAE,OAAKA,EAAEjK,GAAEyK,GAAEF,CAAC,GAAEN,EAAE,KAAG,KAAIM;AAAA,IAAC,GAAEA,EAAE,SAAOD,GAAEC,EAAE,UAAQF,GAAEE,EAAE,OAAK,SAASN,GAAE;AAAC,aAAOM,EAAE,MAAIN,CAAC;AAAA,IAAC,GAAEM,EAAE,KAAGJ,EAAExK,CAAC,GAAE4K,EAAE,KAAGJ,GAAEI,EAAE,IAAE,CAAE,GAACA;AAAA,EAAC,EAAC,IAAImC,GAAG;AAAO;AAAC,IAAIE,KAAGJ,GAAGG,GAAI,CAAA,GAAEE,KAAa,OAAO,UAAjB,YAAyB,UAAQ,OAAO,WAAS,UAAQ,QAAOC,KAAa,OAAO,QAAjB,YAAuB,QAAM,KAAK,WAAS,UAAQ,MAAKC,KAAGF,MAAIC,MAAI,SAAS,aAAa,KAAIE,KAAGD,GAAG,QAAOE,KAAG,OAAO,WAAUC,KAAGD,GAAG,gBAAeE,KAAGF,GAAG,UAASG,KAAGJ,KAAGA,GAAG,cAAY,QAAWK,KAAG,OAAO,UAAU,UAAaC,KAAGN,KAAGA,GAAG,cAAY;AAAO,SAASO,GAAG,GAAE;AAAC,SAAa,KAAN,OAAiB,MAAT,SAAW,uBAAqB,kBAAgBD,MAAIA,MAAM,OAAO,CAAC,IAAE,SAASrD,GAAE;AAAC,QAAI,IAAEiD,GAAG,KAAKjD,GAAEmD,EAAE,GAAEhP,IAAE6L,EAAEmD,EAAE;AAAE,QAAG;AAAC,MAAAnD,EAAEmD,EAAE,IAAE;AAAO,UAAIzF,IAAE;AAAA,IAAE,QAAC;AAAA,IAAQ;AAAE,QAAI,IAAEwF,GAAG,KAAKlD,CAAC;AAAE,WAAOtC,MAAI,IAAEsC,EAAEmD,EAAE,IAAEhP,IAAE,OAAO6L,EAAEmD,EAAE,IAAG;AAAA,EAAC,EAAE,CAAC,IAAE,SAASnD,GAAE;AAAC,WAAOoD,GAAG,KAAKpD,CAAC;AAAA,EAAC,EAAE,CAAC;AAAC;AAAC,SAASuD,GAAG,GAAE;AAAC,SAAa,KAAN,QAAmB,OAAO,KAAjB;AAAkB;AAAsB,SAASC,GAAG,GAAE;AAAC,MAAIzN,IAAE,OAAO;AAAE,SAAa,KAAN,SAAoBA,KAAV,YAAyBA,KAAZ;AAAc;AAAC,SAASoI,GAAG,GAAE;AAAC,MAAG,CAACqF,GAAG,CAAC;AAAE,WAAM;AAAG,MAAIzN,IAAEuN,GAAG,CAAC;AAAE,SAA2BvN,KAArB,uBAAsDA,KAA9B,gCAA2DA,KAA1B,4BAA+CA,KAAlB;AAAmB;AAAC,IAAI0N,IAAGC,KAAGZ,GAAG,oBAAoB,GAAEa,MAAIF,KAAG,SAAS,KAAKC,MAAIA,GAAG,QAAMA,GAAG,KAAK,YAAU,EAAE,KAAG,mBAAiBD,KAAG,IAAOG,KAAG,SAAS,UAAU;AAAS,SAASC,GAAG,GAAE;AAAC,MAAS,KAAN,MAAQ;AAAC,QAAG;AAAC,aAAOD,GAAG,KAAK,CAAC;AAAA,IAAC,QAAC;AAAA,IAAU;AAAA,QAAG;AAAC,aAAO,IAAE;AAAA,IAAE,QAAC;AAAA,IAAQ;AAAA;AAAG,SAAM;AAAE;AAAC,IAAIE,KAAG,+BAA8BC,KAAG,SAAS,WAAUC,KAAG,OAAO,WAAUC,KAAGF,GAAG,UAASG,KAAGF,GAAG,gBAAeG,KAAG,OAAO,MAAIF,GAAG,KAAKC,EAAE,EAAE,QAAQ,uBAAsB,MAAM,EAAE,QAAQ,0DAAyD,OAAO,IAAE,GAAG;AAAE,SAASE,GAAG,GAAE;AAAC,SAAM,EAAE,CAACZ,GAAG,CAAC,MAAIzN,IAAE,GAAE4N,MAAIA,MAAM5N,QAAMoI,GAAG,CAAC,IAAEgG,KAAGL,IAAI,KAAKD,GAAG,CAAC,CAAC;AAAE,MAAI9N;AAAC;AAAC,SAASsO,GAAG,GAAEtO,GAAE;AAAC,MAAI5B,IAAE,SAAS6L,GAAEjK,GAAE;AAAC,WAAaiK,KAAN,OAAQ,SAAOA,EAAEjK,CAAC;AAAA,EAAC,EAAE,GAAEA,CAAC;AAAE,SAAOqO,GAAGjQ,CAAC,IAAEA,IAAE;AAAM;AAAI,IAACmQ,KAAGD,GAAGvB,IAAG,SAAS;AAAA,CAAqK,WAAU;AAAC,MAAG;AAAC,QAAI,IAAEuB,GAAG,QAAO,gBAAgB;AAAE,WAAO,EAAE,CAAA,GAAG,IAAG,CAAE,CAAA,GAAE;AAAA,EAAC,QAAC;AAAA,EAAQ;AAAE,GAAC;AAAqmB,SAASE,GAAG,GAAE;AAAC,SAAOhB,GAAG,CAAC,KAAyBD,GAAG,CAAC,KAA1B;AAA2B;AAAI,IAACkB,KAAG,OAAO,WAAUC,KAAGD,GAAG,gBAAeE,KAAGF,GAAG;AAAwBD,GAAG,WAAU;AAAC,SAAO;AAAS,EAAG,CAAA;AAA6E,IAACI,KAAa,OAAO,WAAjB,YAA0B,WAAS,CAAC,QAAQ,YAAU,SAAQC,KAAGD,MAAc,OAAO,UAAjB,YAAyB,UAAQ,CAAC,OAAO,YAAU,QAAOE,KAAGD,MAAIA,GAAG,YAAUD,KAAG7B,GAAG,SAAO;AAAW+B,MAAGA,GAAG;AAAyqB,IAACC,KAAa,OAAO,WAAjB,YAA0B,WAAS,CAAC,QAAQ,YAAU,SAAQC,KAAGD,MAAc,OAAO,UAAjB,YAAyB,UAAQ,CAAC,OAAO,YAAU,QAAOE,KAAGD,MAAIA,GAAG,YAAUD,MAAIlC,GAAG,SAAQqC,KAAG,WAAU;AAAC,MAAG;AAAC,QAAI,IAAEF,MAAIA,GAAG,WAASA,GAAG,QAAQ,MAAM,EAAE;AAAM,WAAO,KAAGC,MAAIA,GAAG,WAASA,GAAG,QAAQ,MAAM;AAAA,EAAC,QAAC;AAAA,EAAU;AAAA,EAAG;AAAIC,MAAIA,GAAG;AAAywBZ,GAAG,QAAO,QAAQ;AAAg3C,IAAIa,KAAGb,GAAGvB,IAAG,KAAK,GAAktDqC,KAAGd,GAAGvB,IAAG,UAAU,GAAEsC,KAAGf,GAAGvB,IAAG,SAAS,GAAEuC,KAAGhB,GAAGvB,IAAG,KAAK,GAAEwC,KAAG,gBAAeC,KAAG,oBAAmBC,KAAG,gBAAeC,KAAG,oBAAmBC,KAAG,qBAAoBC,KAAG9B,GAAGsB,EAAE,GAAES,KAAG/B,GAAGqB,EAAE,GAAEW,KAAGhC,GAAGuB,EAAE,GAAEU,KAAGjC,GAAGwB,EAAE,GAAEU,KAAGlC,GAAGS,EAAE,GAAE0B,KAAG1C;AAAA,CAAI6B,MAAIa,GAAG,IAAIb,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,KAAGO,MAAIR,MAAIc,GAAG,IAAId,IAAE,KAAGI,MAAIF,MAAIY,GAAGZ,GAAG,QAAS,CAAA,KAAGG,MAAIF,MAAIW,GAAG,IAAIX,IAAE,KAAGG,MAAIlB,MAAI0B,GAAG,IAAI1B,IAAE,KAAGmB,QAAMO,KAAG,SAAS,GAAE;AAAC,MAAIjQ,IAAEuN,GAAG,CAAC,GAAEnP,IAAqB4B,KAAnB,oBAAqB,EAAE,cAAY,QAAO,IAAE5B,IAAE0P,GAAG1P,CAAC,IAAE;AAAG,MAAG;AAAE,YAAO,GAAC;AAAA,MAAE,KAAKwR;AAAG,eAAOD;AAAA,MAAG,KAAKE;AAAG,eAAON;AAAA,MAAG,KAAKO;AAAG,eAAON;AAAA,MAAG,KAAKO;AAAG,eAAON;AAAA,MAAG,KAAKO;AAAG,eAAON;AAAA,IAAE;AAAC,SAAO1P;AAAC;AAAiD+M,GAAG;AAAmH,IAACmD,KAAGlD,KAAGA,GAAG,YAAU;AAAUkD,MAAGA,GAAG;AAAo3BhB,MAAIA,GAAG;AAA2EA,MAAIA,GAAG;AAA+/C,MAACiB,KAAG,CAAC,GAAEnQ,MAAI;AAAC,QAAM5B,IAAE,OAAO,OAAO,EAAC,OAAMwO,GAAE,GAAE5M,CAAC;AAAE,MAAI,IAAE;AAAG,QAAMjB,IAAE,CAAE;AAAC,aAAUkL,KAAK7L;AAAE,SAAG,GAAG6L,MAAKlL,EAAE,KAAKX,EAAE6L,CAAC,CAAC;AAAE,MAAE,EAAE,QAAQ,MAAK,EAAE;AAAE,QAAMnK,IAAE,aAAa,aAAa;AAAK,MAAIpB;AAAE,MAAG;AAAC,IAAAA,IAAE,SAAS,wBAAwBoB,IAAI,EAAG,EAAC,GAAGf,CAAC;AAAA,EAAC,QAAC;AAAS,WAAO;AAAA,EAAC;AAAC,SAAOL;AAAC,GAAE0R,KAAG,CAAC,IAAE,IAAG,EAAC,UAASpQ,GAAE,UAAS5B,EAAC,IAAE,CAAE,GAAC,EAAC,YAAW,IAAE,IAAG,UAASW,IAAE,GAAE,IAAE,OAAK;AAAC,QAAMe,IAAE,OAAO,UAAQ,CAAE,GAACpB,IAAE,OAAO,OAAO,OAAO,OAAO,CAAE,GAACoB,CAAC,GAAEE,CAAC,GAAER,IAAE,OAAO,KAAG,EAAE,EAAE,MAAM,YAAY;AAAE,MAASA,KAAN,QAAaA,EAAE,WAAN;AAAa,WAAO;AAAE,WAAQQ,IAAE,GAAEA,IAAER,EAAE,QAAOQ,KAAI;AAAC,UAAM2H,IAAEnI,EAAEQ,CAAC;AAAE,QAAIjB,IAAE4I,EAAE,MAAM,GAAE,EAAE,EAAE,KAAM;AAAC,UAAM7H,IAAE,gCAA+BP,IAAER,EAAE,MAAMe,CAAC;AAAE,aAAQmK,IAAE,GAAEA,IAAE1K,EAAE,QAAO0K,KAAI;AAAC,YAAMjK,IAAET,EAAE0K,CAAC,GAAE7L,IAAEM,EAAEsB,CAAC;AAAE,MAAM5B,KAAN,QAAqB,OAAOA,KAAnB,eAAuBW,IAAEA,EAAE,QAAQiB,GAAE5B,CAAC;AAAA;AAAG,KAAC,UAAU,KAAKW,CAAC,KAAG,WAAW,KAAKA,CAAC,OAAKA,IAAEoR,GAAGpR,GAAEX,CAAC,IAAG,IAAE,EAAE,QAAQuJ,GAAE5I,CAAC;AAAA;AAAE,SAAO,MAAI,IAAQ,KAAN,OAAQ,SAAO,EAAE,QAAQ,WAAU,OAAO,IAAGA,MAAI,IAAQ,KAAN,OAAQ,SAAO,EAAE,QAAQ,YAAW,cAAc,IAAG,IAAE,EAAE,QAAQ,gBAAgB,CAACkL,GAAE7L,MAAW4B,KAAN,QAAeA,EAAE,MAAWA,KAAN,OAAQ,SAAOA,EAAE,IAAI5B,CAAC,IAAEA,CAAC;AAAE,GAAEiS,KAAG,CAAC,GAAErQ,MAAI;AAAC,MAAa,OAAO,KAAjB,YAA8B,OAAOA,KAAjB;AAAmB,WAAO,EAAE,kBAAiB,EAAG,SAASA,EAAE,kBAAiB,CAAE;AAAE,MAAa,OAAO,KAAjB,YAAoB,MAAM,QAAQA,CAAC,GAAE;AAAC,UAAM5B,IAAE4B,EAAE;AAAO,aAAQ,IAAE,GAAE,IAAE5B,GAAE,KAAI;AAAC,YAAMA,IAAE4B,EAAE,CAAC;AAAE,UAAa,OAAO5B,KAAjB,YAAoB,EAAE,kBAAmB,EAAC,SAASA,EAAE,kBAAmB,CAAA;AAAE,eAAM;AAAA;AAAA;AAAI,SAAM;AAAE,GAAEkS,KAAG,CAAC,GAAEtQ,MAAI,OAAO,UAAU,eAAe,KAAK,GAAEA,CAAC;AAA6I,SAASuQ,GAAG,GAAE;AAAC,MAAIvQ,IAAE,IAAG5B,IAAE,IAAG,IAAE,IAAGW,IAAE;AAAG,IAAE,QAAQ,GAAG,IAAE,MAAIX,IAAE,EAAE,MAAM,GAAG,EAAE,CAAC,GAAE,IAAE,EAAE,MAAM,GAAG,EAAE,CAAC,KAAGA,IAAE;AAAE,MAAI0B,IAAE,GAAEpB,IAAE;AAAE,OAAIA,IAAEN,EAAE,SAAO,GAAEM,KAAG;AAAG,IAAAoB,IAAE,KAAG,KAAOA,MAAJ,IAAY1B,EAAEM,CAAC,MAAT,MAAWsB,KAAG5B,EAAEM,CAAC,IAAEsB,KAAG,MAAI5B,EAAEM,CAAC,IAAEsB,KAAG5B,EAAEM,CAAC,GAAEA,KAAIoB;AAAI,SAAOE,IAAEA,EAAE,MAAM,EAAE,EAAE,QAAS,EAAC,KAAK,EAAE,GAAEjB,IAAE,EAAE,QAAQ,GAAG,IAAE,KAAGiB,IAAE,MAAI,IAAEA,GAAEjB;AAAC;AAA0gR,MAAyvSyR,KAAG,CAAC,IAAE,CAAE,GAACxQ,GAAE5B,IAAE,OAAK;AAAC,MAAG,EAAC,MAAK,IAAE,QAAO,OAAMW,IAAE,CAAA,EAAE,IAAEiB,KAAG;AAAG,OAAS,KAAN,OAAQ,SAAO,EAAE,KAAM,MAAG;AAAE,QAAMF,IAAE,oBAAI,OAAIpB,IAAE,oBAAI,OAAIc,IAAE,EAAE,QAAOD,IAAER,EAAE;AAAO,MAAOS,MAAJ,KAAOpB;AAAE,aAAQ4B,IAAE,GAAEA,IAAER,GAAEQ,KAAI;AAAC,YAAM5B,IAAE,EAAE4B,CAAC,GAAER,IAAEpB,EAAE,CAAC;AAAE,MAAA0B,EAAE,IAAIN,CAAC;AAAE,eAAQyK,IAAE,GAAEA,IAAE1K,GAAE0K,KAAI;AAAC,cAAMjK,IAAEjB,EAAEkL,CAAC,GAAE,EAAC,OAAMtC,GAAE,OAAM7H,EAAC,IAAEE,GAAER,IAAE,OAAO,OAAO,OAAO,OAAO,CAAA,GAAGpB,CAAC,GAAE,EAAC,OAAMA,EAAE0B,CAAC,EAAC,CAAC;AAAE,YAAGpB,EAAE,IAAIiJ,CAAC,GAAE;AAAC,gBAAMsC,IAAEvL,EAAE,IAAIiJ,CAAC;AAAE,UAAAsC,EAAE,KAAKzK,CAAC,GAAEd,EAAE,IAAIiJ,GAAEsC,CAAC;AAAA;AAAO,UAAAvL,EAAE,IAAIiJ,GAAE,CAACnI,CAAC,CAAC;AAAA;AAAA;AAAA,OAAO;AAAC,UAAMQ,IAAE,CAAA;AAAG,aAAQ5B,IAAE,GAAEA,IAAEmB,GAAEnB,KAAI;AAAC,YAAMuJ,IAAE5I,EAAEX,CAAC,GAAE,EAAC,OAAMM,GAAE,OAAMc,EAAC,IAAEmI,GAAEpI,IAAE,OAAO,OAAO,OAAO,OAAO,CAAA,GAAG,EAAE,CAAC,CAAC,GAAE,EAAC,OAAM,EAAE,CAAC,EAAEC,CAAC,EAAC,CAAC;AAAE,MAAAM,EAAE,IAAIpB,CAAC,GAAEsB,EAAE,KAAKT,CAAC;AAAA;AAAE,UAAMnB,IAAE,EAAE,CAAC,EAAE,CAAC,KAAG;AAAG,IAAAM,EAAE,IAAIN,GAAE4B,CAAC;AAAA;AAAE,QAAMnB,IAAE,MAAM,KAAKiB,CAAC,GAAEiK,IAAE,CAAA;AAAG,aAAS,CAACE,GAAEjK,CAAC,KAAItB;AAAE,IAAAqL,EAAE,KAAK,EAAC,MAAKE,GAAE,MAAKjK,EAAC,CAAC;AAAE,SAAM,EAAC,YAAWnB,GAAE,SAAQkL,EAAC;AAAC,GAAE0G,KAAG,CAAC,GAAEzQ,MAAI;AAAC,MAAG,EAAC,MAAK5B,IAAE,QAAO,OAAM,IAAE,SAAQ,MAAKW,IAAE,OAAM,IAAEiB,KAAG,CAAA;AAAG,EAAA5B,IAAQA,KAAN,OAAQ,SAAOA,EAAE,KAAI,GAAG,IAAQ,KAAN,OAAQ,SAAO,EAAE,KAAI,GAAGW,IAAQA,KAAN,OAAQ,SAAOA,EAAE,KAAI;AAAG,QAAMe,IAAE,oBAAI,OAAIpB,IAAE,EAAE;AAAO,WAAQsB,IAAE,GAAEA,IAAEtB,GAAEsB,KAAI;AAAC,UAAMtB,IAAE,EAAEsB,CAAC,GAAER,IAAEd,EAAEN,CAAC,KAAG,IAAGmB,IAAEb,EAAE,CAAC,KAAG,IAAGG,IAAEH,EAAEK,CAAC,KAAG;AAAG,QAAGe,EAAE,IAAIjB,CAAC,GAAE;AAAC,YAAMoL,IAAEnK,EAAE,IAAIjB,CAAC;AAAE,MAAAoL,EAAE,KAAK,OAAO,OAAO,EAAC,MAAKzK,GAAE,OAAMD,EAAC,GAAEb,CAAC,CAAC,GAAEoB,EAAE,IAAIjB,GAAEoL,CAAC;AAAA;AAAO,MAAAnK,EAAE,IAAIjB,GAAE,CAAC,OAAO,OAAO,EAAC,MAAKW,GAAE,OAAMD,EAAC,GAAEb,CAAC,CAAC,CAAC;AAAA;AAAE,QAAMc,IAAE,CAAE,GAACD,IAAE;AAAG,aAAS,CAAC0K,GAAEjK,CAAC,KAAIF;AAAE,QAAGP,EAAE,KAAK,EAAC,MAAK0K,GAAE,MAAKjK,EAAC,CAAC,GAAQA,KAAN,OAAQ,SAAOA,EAAE;AAAO,UAAGR,EAAE;AAAO,mBAAUyK,KAAKjK;AAAE,UAAAR,EAAE,SAASyK,EAAE,IAAI,KAAGzK,EAAE,KAAKyK,EAAE,IAAI;AAAA;AAAO,QAAAzK,EAAE,KAAK,GAAGQ,EAAE,IAAK,CAAAiK,MAAGA,EAAE,IAAI,CAAE;AAAE,SAAM,EAAC,YAAWzK,GAAE,SAAQD,EAAC;AAAC,GAAEmR,KAAG,CAAC,GAAE1Q,MAAI;AAAC,MAAI5B;AAAE,MAAS,KAAN;AAAQ,WAAO4B;AAAE,QAAM,IAAE,EAAE,MAAM,SAAS;AAAE,MAAS,KAAN,QAAa,EAAE,WAAN;AAAa,WAAOA;AAAE,QAAMjB,IAAE,EAAE;AAAO,WAAQe,IAAE,GAAEA,IAAEf,GAAEe,KAAI;AAAC,UAAMf,IAAE,EAAEe,CAAC;AAAE,QAASf,KAAN,QAAcA,MAAL;AAAO;AAAM,QAAIL,KAAUN,IAAEW,EAAE,MAAM,GAAE,EAAE,OAAtB,QAAmCX,MAAT,SAAW,SAAOA,EAAE;AAAO,IAAAM,IAAQA,KAAN,OAAQ,SAAOA,EAAE,QAAQ,UAASsB,CAAC;AAAE,QAAG;AAAC,UAAIA,IAAEtB;AAAE,OAAC,UAAU,KAAKA,CAAC,KAAG,WAAW,KAAKA,CAAC,OAAKsB,IAAEmQ,GAAGzR,CAAC,IAAG,IAAE,EAAE,QAAQK,GAAEiB,CAAC;AAAA,IAAC,QAAC;AAAS,UAAE,EAAE,QAAQjB,GAAEL,CAAC;AAAA,IAAC;AAAA;AAAE,SAAO;AAAC;AAAE,SAASiS,GAAG,GAAE;AAAC,SAAO,EAAE,iBAAe,EAAC,UAAS,EAAC,MAAK,CAAC,EAAC,MAAK,EAAE,aAAY,CAAC,EAAC,EAAC,IAAE,CAAA;AAAE;AAAC,MAAMC,KAAG,CAAC,GAAE5Q,GAAE5B,MAAI;AAAC,QAAM,IAAE,EAAE,qBAAoBW,IAAE,EAAE,qBAAoB,EAAC,YAAWe,IAAE,CAAE,GAAC,SAAQpB,IAAE,GAAE,IAAEsB,GAAER,IAAE+M,GAAI,MAAI;AAAC,UAAK,EAAC,cAAavM,GAAE,gBAAe5B,GAAE,gBAAeuJ,GAAE,iBAAgB5I,EAAC,IAAE,GAAEe,IAAEpB,GAAEc,IAAEM,EAAE,QAAOP,IAAE,CAAA;AAAG,aAAQb,IAAE,GAAEA,IAAEc,GAAEd,KAAI;AAAC,YAAMc,IAAE,OAAO,OAAO,OAAO,OAAO,CAAE,GAACM,EAAEpB,CAAC,CAAC,GAAE,EAAC,MAAK,OAAM,UAAS,EAAE,UAAS,gBAAe,EAAE,kBAAiB,CAAC,GAAE,EAAC,SAAQG,GAAE,cAAakL,EAAC,IAAE;AAAE,UAAGlL,KAAGkL,EAAE,SAASjK,EAAEpB,CAAC,EAAE,QAAM,CAACqL,CAAC,MAAIvK,EAAE,QAAM,UAASA,EAAE,QAAM,EAAC,MAAK,EAAE,WAAU,UAAS,EAAE,eAAc,UAAS,EAAE,eAAc,OAAM,EAAE,YAAW,OAAM,EAAE,YAAW,UAAS,EAAE,eAAc,WAAU,CAAAQ,MAAG;AAAC,YAAI5B,IAAE,IAAGuJ,IAAE,EAAE;AAAe,QAAKA,MAAL,OAASA,IAAE;AAAO,cAAK,EAAC,YAAW5I,GAAE,MAAKe,GAAE,OAAMpB,GAAE,MAAKc,EAAC,IAAEQ,KAAG,CAAA;AAAG,eAAO5B,KAAGgS,GAAGzI,GAAE,EAAC,UAAS,OAAO,OAAO,EAAC,MAAK7H,GAAE,OAAMpB,GAAE,GAAEK,GAAE,GAAEe,GAAE,GAAEpB,KAAG,EAAC,GAAEc,CAAC,EAAC,GAAE,EAAC,YAAW,IAAG,UAAS,GAAE,CAAC,GAAEpB;AAAA,MAAC,EAAC,GAAEoB,EAAE,YAAU,CAAE,GAACQ,MAAIR,EAAE,YAAU,EAAC,OAAM,EAAC,GAAE,EAAE,sBAAoB,IAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,EAAE,sBAAoB,IAAE,GAAE,YAAW,CAAC,EAAC,QAAO,GAAE,OAAM,EAAE,OAAOd,CAAC,EAAC,GAAE,EAAC,QAAOiJ,GAAE,OAAMvJ,EAAEM,CAAC,EAAC,GAAE,EAAC,QAAO,GAAE,OAAMN,EAAEM,CAAC,EAAC,CAAC,EAAC,EAAC,IAAGK,GAAE;AAAC,cAAMkL,IAAElL,EAAE,MAAM,GAAG;AAAE,YAASkL,KAAN,QAAeA,EAAE,QAAO;AAAC,gBAAMjK,IAAE,CAAA;AAAG,qBAAU5B,KAAK6L,GAAE;AAAC,kBAAMA,IAAE,WAAW7L,CAAC;AAAE,kBAAM6L,CAAC,KAAGjK,EAAE,KAAKiK,CAAC;AAAA;AAAE,UAAAzK,EAAE,UAAU,kBAAgBQ;AAAA;AAAA;AAAG,QAAE,mBAAiBR,EAAE,WAAS,EAAC,MAAK,CAAC,EAAC,MAAK,EAAE,aAAY,CAAC,EAAC,IAAGD,EAAE,KAAKC,CAAC;AAAA;AAAE,WAAOD;AAAA,EAAC,CAAG,GAACA,IAAEgN,GAAI,MAAIzM,EAAE,IAAK,CAAAmK,MAAG;AAAC,QAAIjK,IAAE,CAAA;AAAG,WAAOA,IAAEiK,KAAa,OAAOA,KAAjB,WAAmB,OAAO,OAAO,OAAO,OAAO,CAAE,GAACA,CAAC,GAAE,EAAC,WAAU,EAAC,UAAS7L,EAAC,EAAC,CAAC,IAAE,EAAC,OAAM6L,GAAE,WAAU,EAAC,UAAS7L,EAAC,EAAC,GAAE4B;AAAA,EAAC,EAAK;AAAC,SAAM,EAAC,SAAQ,EAAC,SAAQ,QAAO,MAAK,EAAE,aAAY,WAAU,CAAAA,MAAG;AAAC,UAAM5B,IAAE4B,EAAE;AAAO,QAAI2H,IAAE,IAAG7H,IAAE,EAAE;AAAiB,IAAKA,MAAL,OAASA,IAAE;AAAuB,aAAQmK,IAAE,GAAEA,IAAE7L,GAAE6L,KAAI;AAAC,YAAK,EAAC,QAAO7L,GAAE,YAAWM,GAAE,MAAKc,GAAE,OAAMD,GAAE,MAAKV,EAAC,IAAEmB,EAAEiK,CAAC,KAAG,CAAE;AAAC,UAAOA,MAAJ,GAAM;AAAC,YAAIA,IAAEzK;AAAE,QAAU,OAAOA,KAAjB,YAA0BA,EAAE,CAAC,MAAT,OAAY,MAAM,CAACA,CAAC,MAAIyK,KAAG,CAACzK,GAAG,SAAU,IAAEmI,KAAG,GAAG+I,GAAG3R,GAAEkL,CAAC;AAAA;AAAS,MAAAtC,KAAGyI,GAAGtQ,GAAE,EAAC,UAAS,OAAO,OAAO,EAAC,QAAO1B,GAAE,MAAKoB,GAAE,OAAMD,GAAE,KAAIgR,IAAG,GAAE7R,GAAEc,GAAI,GAAED,KAAG,EAAC,GAAEV,CAAC,EAAC,GAAE,EAAC,YAAW,IAAG,UAAS,GAAE,CAAC,GAAE8I,KAAG;AAAA;AAAQ,WAAOA;AAAA,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,uBAAsB,UAASvJ,EAAC,GAAE,UAAS,EAAE,mBAAiB,QAAO,iBAAgB,EAAE,0BAAwB,OAAM,GAAE,QAAO,EAAC,MAAK,EAAE,eAAa,WAAS,SAAQ,OAAM,EAAE,aAAY,QAAO,EAAE,cAAa,MAAK,EAAE,YAAW,QAAO,EAAE,cAAa,KAAI,EAAE,WAAU,MAAK,EAAE,YAAW,WAAU,EAAC,MAAK,EAAC,MAAK,EAAC,OAAM,EAAE,iBAAgB,OAAM,EAAE,sBAAqB,UAAS,EAAE,eAAc,EAAC,EAAC,GAAE,YAAW,EAAE,kBAAiB,WAAU,EAAE,iBAAgB,SAAQ,EAAE,eAAc,MAAKM,EAAE,IAAK,CAACsB,GAAE5B,OAAK,EAAC,MAAK4B,EAAE,MAAK,WAAU,EAAC,OAAM,EAAE,OAAO5B,CAAC,EAAC,GAAE,MAAK,EAAE,WAAU,EAAE,GAAG,WAAU,CAAA4B,OAAI,CAACiK,IAAE,IAAGjK,MAAI;AAAC,QAAI5B;AAAE,UAAMuJ,IAAEsC,EAAE,MAAM,YAAY,GAAElL,MAAWX,IAAE6L,EAAE,MAAM;AAAA,CAAI,OAAtB,QAAmC7L,MAAT,SAAW,SAAOA,EAAE,UAAQ;AAAE,QAAI0B,IAAE;AAAG,QAAGf;AAAE,eAAQkL,IAAE,GAAEA,IAAElL,GAAEkL;AAAI,QAAAnK,KAAG;AAAA;AAAK,QAAIpB,IAAEuL;AAAE,QAAStC,KAAN,QAAeA,EAAE,QAAO;AAAC,iBAAUsC,KAAKtC,GAAE;AAAC,cAAMvJ,IAAEgS,GAAGnG,GAAE,EAAC,UAASjK,EAAC,GAAE,EAAC,YAAW,IAAG,UAAS,GAAE,CAAC;AAAE,QAAA5B,MAAIM,IAAEA,EAAE,QAAQuL,GAAE7L,CAAC;AAAA;AAAG,aAAM,GAAG0B,UAAUpB;AAAA;AAAK,WAAOuL;AAAA,EAAC,GAAG,EAAE,iBAAgB,EAAC,MAAKjK,EAAC,CAAC,EAAC,GAAE,OAAM,EAAC,MAAK,EAAE,sBAAoB,UAAQ,YAAW,MAAK,EAAE,sBAAoB,OAAKuK,GAAEhL,CAAC,GAAE,SAAQ,EAAE,sBAAoB,EAAE,eAAa,EAAE,aAAY,aAAY,EAAE,kBAAiB,WAAU,EAAC,MAAK,EAAE,oBAAmB,WAAU,EAAC,OAAM,EAAE,0BAAyB,MAAK,EAAE,mBAAkB,GAAE,UAAS,EAAE,uBAAsB,GAAE,WAAU,EAAC,MAAK,EAAE,mBAAkB,GAAE,WAAU,EAAC,OAAM,EAAE,iBAAgB,UAAS,EAAE,sBAAoB,GAAE,QAAO,EAAE,kBAAiB,OAAM,EAAE,iBAAgB,UAAS,EAAE,oBAAmB,UAAS,EAAE,oBAAmB,WAAU,CAAA0K,OAAc,OAAOA,KAAjB,YAA0BA,EAAE,CAAC,MAAT,OAAY,MAAM,CAACA,CAAC,MAAIA,KAAG,CAACA,GAAG,aAAYyG,GAAG3R,GAAEkL,CAAC,GAAE,GAAE,UAAS,EAAC,MAAK,EAAE,eAAc,WAAU,EAAC,OAAM,EAAE,oBAAmB,EAAC,GAAE,UAAS,EAAC,MAAK,EAAE,cAAa,GAAE,MAAK,EAAE,WAAU,eAAc,EAAC,UAAS,EAAE,oBAAmB,OAAM,EAAE,iBAAgB,OAAM,OAAM,GAAE,KAAI,EAAE,iBAAe,KAAI,GAAE,OAAM,EAAC,MAAK,EAAE,sBAAoB,aAAW,SAAQ,MAAK,EAAE,sBAAoBM,GAAEzK,CAAC,IAAE,MAAK,SAAQ,EAAE,sBAAoB,EAAE,cAAY,EAAE,cAAa,aAAY,EAAE,kBAAiB,WAAU,EAAC,MAAK,EAAE,oBAAmB,WAAU,EAAC,OAAM,EAAE,0BAAyB,MAAK,EAAE,mBAAkB,EAAC,GAAE,WAAU,EAAC,MAAK,EAAE,mBAAkB,GAAE,WAAU,EAAC,MAAK,EAAE,gBAAe,UAAS,EAAE,oBAAmB,OAAM,EAAE,iBAAgB,QAAO,EAAE,kBAAiB,OAAM,EAAE,iBAAgB,UAAS,EAAE,oBAAmB,WAAU,CAAAmK,MAAGyG,GAAG,GAAEzG,CAAC,EAAC,GAAE,UAAS,EAAC,MAAK,EAAE,wBAAuB,WAAU,EAAC,OAAM,EAAE,oBAAmB,EAAC,GAAE,MAAK,EAAE,WAAU,eAAc,EAAC,UAAS,EAAE,oBAAmB,OAAM,EAAE,iBAAgB,OAAM,QAAO,GAAE,KAAI,EAAE,iBAAe,KAAI,GAAE,QAAOM,GAAE/K,CAAC,EAAC;AAAC,GAAEqR,KAAG,CAAC,GAAE7Q,GAAE5B,MAAI;AAAC,QAAM,IAAE,EAAE,qBAAoBW,IAAE,EAAE,qBAAoB,EAAC,YAAWe,IAAE,CAAE,GAAC,SAAQpB,IAAE,CAAA,EAAE,IAAEsB,GAAER,IAAE+M,GAAI,MAAIzM,EAAE,IAAK,CAAAmK,MAAG;AAAC,QAAIjK,IAAE,CAAE;AAAC,WAAOA,IAAEiK,KAAa,OAAOA,KAAjB,WAAmB,OAAO,OAAO,OAAO,OAAO,IAAGA,CAAC,GAAE,EAAC,WAAU,EAAC,UAAS7L,EAAC,EAAC,CAAC,IAAE,EAAC,OAAM6L,GAAE,WAAU,EAAC,UAAS7L,EAAC,EAAC,GAAE4B;AAAA,EAAC,CAAC,CAAI,GAACT,IAAEgN,GAAI,MAAI;AAAC,UAAMvM,IAAE,CAAA,GAAG5B,IAAEM,EAAE;AAAO,aAAQiJ,IAAE,GAAEA,IAAEvJ,GAAEuJ,KAAI;AAAC,YAAMvJ,IAAE;AAAG,QAAE,gBAAcA,EAAE,cAAY,EAAE,aAAYA,EAAE,aAAW,EAAE,YAAWA,EAAE,gBAAc,EAAE,eAAcA,EAAE,gBAAc,EAAE,gBAAe4B,EAAE,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,EAAC,MAAK,OAAM,GAAEtB,EAAEiJ,CAAC,CAAC,GAAE,EAAC,YAAW,EAAE,YAAW,QAAO,EAAE,QAAO,WAAU,EAAC,OAAM,EAAE,mBAAiB,EAAC,MAAK,UAAS,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,YAAW,CAAC,EAAC,QAAO,GAAE,OAAM,EAAE,OAAOA,CAAC,EAAC,GAAE,EAAC,QAAO,GAAE,OAAM,EAAE,qBAAmB,cAAa,CAAC,GAAE,QAAO,GAAE,IAAE,EAAE,OAAOA,CAAC,GAAE,SAAQ,EAAE,iBAAgB,GAAE,WAAU,OAAO,OAAO,EAAC,OAAM,EAAE,eAAc,GAAEvJ,CAAC,EAAC,CAAC,GAAEuS,GAAG,CAAC,CAAC,CAAC;AAAA;AAAE,WAAO3Q;AAAA,EAAC,CAAC;AAAG,SAAM,EAAC,SAAQ,EAAC,SAAQ,QAAO,MAAK,EAAE,aAAY,WAAU,CAAAA,MAAG;AAAC,UAAM5B,IAAE4B,EAAE;AAAO,QAAI2H,IAAE,IAAG5I,IAAE,EAAE;AAAiB,IAAKA,MAAL,OAASA,IAAE;AAAuB,aAAQkL,IAAE,GAAEA,IAAE7L,GAAE6L,KAAI;AAAC,YAAK,EAAC,QAAO7L,GAAE,YAAW0B,GAAE,MAAKpB,GAAE,OAAMc,GAAE,MAAKD,EAAC,IAAES,EAAEiK,CAAC,KAAG,CAAA;AAAG,MAAIA,MAAJ,MAAQtC,KAAG,GAAGjJ,WAAUiJ,KAAGyI,GAAGrR,GAAE,EAAC,UAAS,OAAO,OAAO,EAAC,QAAOX,GAAE,MAAKM,GAAE,OAAMc,GAAE,GAAEM,GAAEpB,GAAI,GAAEc,EAAC,GAAED,CAAC,EAAC,GAAE,EAAC,YAAW,IAAG,UAAS,GAAE,CAAC,GAAEoI,KAAG;AAAA;AAAQ,WAAOA;AAAA,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,uBAAsB,UAASvJ,EAAE,MAAK,GAAE,UAAS,EAAE,mBAAiB,QAAO,iBAAgB,EAAE,0BAAwB,OAAM,GAAE,OAAM,EAAC,MAAK,EAAE,WAAU,MAAK,YAAW,MAAKmM,GAAE/K,CAAC,GAAE,aAAY,EAAE,kBAAiB,WAAU,EAAC,MAAK,EAAE,oBAAmB,WAAU,EAAC,OAAM,EAAE,yBAAwB,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,iBAAgB,UAAS,EAAE,sBAAoB,GAAE,QAAO,EAAE,kBAAiB,OAAM,EAAE,iBAAgB,UAAS,EAAE,oBAAmB,WAAU,CAAAyK,MAAGyG,GAAG3R,GAAEkL,CAAC,EAAC,GAAE,UAAS,EAAC,WAAU,EAAC,OAAM,EAAE,oBAAmB,EAAC,GAAE,UAAS,EAAC,MAAK,EAAE,cAAa,EAAC,GAAE,OAAM,EAAC,MAAK,SAAQ,MAAK,EAAE,WAAU,aAAY,EAAE,kBAAiB,WAAU,EAAC,MAAK,EAAE,oBAAmB,WAAU,EAAC,OAAM,EAAE,yBAAwB,EAAC,GAAE,WAAU,EAAC,UAAS7L,GAAE,OAAM,EAAE,iBAAgB,WAAU,CAAA6L,MAAGyG,GAAG,GAAEzG,CAAC,EAAC,GAAE,UAAS,EAAC,MAAK,EAAE,wBAAuB,WAAU,EAAC,OAAM,EAAE,oBAAmB,EAAC,EAAC,GAAE,QAAO,EAAC,MAAK,EAAE,YAAW,QAAO,EAAE,cAAa,KAAI,EAAE,WAAU,MAAK,EAAE,YAAW,WAAU,EAAC,UAAS7L,EAAC,EAAC,GAAE,QAAOmM,GAAEhL,CAAC,EAAC;AAAC,GAAEuR,KAAG,CAAC,GAAE9Q,GAAE5B,MAAI;AAAC,QAAK,EAAC,SAAQ,IAAE,CAAA,EAAE,IAAE4B;AAAE,MAAG,EAAC,MAAKjB,IAAE,CAAE,EAAA,IAAE,EAAE,CAAC,KAAG,CAAA;AAAG,MAAG,MAAM,QAAQ,EAAE,MAAM,GAAE;AAAC,UAAMiB,IAAE,EAAE,kBAAiB5B,IAAE,EAAE;AAAO,IAAAW,IAAEA,EAAE,IAAK,CAACkL,GAAEtC,MAAI,OAAO,OAAO,EAAC,OAAM3H,IAAE,EAAC,OAAM5B,EAAEuJ,CAAC,EAAC,IAAE,CAAE,EAAA,GAAEsC,CAAC,CAAG;AAAA;AAAC,SAAM,EAAC,OAAM,EAAC,MAAK,EAAE,WAAU,SAAQ,EAAE,cAAa,WAAU,EAAC,UAAS,EAAE,eAAc,YAAW,EAAE,YAAW,OAAM,EAAE,WAAU,GAAE,MAAK,EAAE,aAAW,SAAQ,GAAE,SAAQ,EAAC,MAAK,EAAE,aAAY,SAAQ,EAAE,gBAAe,WAAU,CAAAjK,MAAG;AAAC,UAAK,EAAC,QAAO5B,GAAE,YAAWuJ,GAAE,MAAK5I,GAAE,OAAMe,GAAE,SAAQpB,GAAE,MAAKc,EAAC,IAAEQ,KAAG,CAAE;AAAC,WAAOoQ,GAAG,EAAE,kBAAiB,EAAC,UAAS,OAAO,OAAO,EAAC,QAAOhS,GAAE,MAAKW,GAAE,OAAMe,GAAE,SAAQpB,GAAE,GAAEiJ,GAAE,GAAE5I,GAAE,GAAEe,GAAE,GAAEpB,EAAC,GAAEc,CAAC,EAAC,GAAE,EAAC,YAAW,IAAG,UAAS,GAAE,CAAC;AAAA,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,yBAAuB,OAAM,GAAE,iBAAgB,EAAE,0BAAwB,QAAO,aAAY,EAAE,sBAAoB,OAAM,GAAE,QAAO,EAAC,MAAK,EAAE,YAAW,QAAO,EAAE,cAAa,KAAI,EAAE,WAAU,MAAK,EAAE,YAAW,WAAU,EAAC,OAAM,EAAE,sBAAqB,UAAcpB,MAAL,KAAOA,IAAE,EAAE,cAAa,EAAC,GAAE,QAAO,CAAC,EAAC,MAAKW,GAAE,MAAK,OAAM,QAAO,CAAC,EAAE,aAAY,EAAE,WAAW,GAAE,QAAO,CAAC,EAAE,YAAW,EAAE,SAAS,GAAE,UAAS,EAAE,UAAS,mBAAkB,IAAG,UAAS,EAAE,UAAS,OAAM,EAAC,MAAgB,EAAE,kBAAb,YAA4B,EAAE,WAAU,OAAM,EAAE,YAAW,UAAcX,MAAL,KAAOA,IAAE,EAAE,eAAc,UAAS,EAAE,eAAc,YAAW0B,IAAE,EAAE,gBAAeA,EAAE,QAAQ,QAAO;AAAA,CAAI,GAAE,GAAE,WAAU,EAAC,MAAK,EAAE,eAAc,QAAO,EAAE,iBAAgB,SAAQ,EAAE,iBAAgB,GAAE,UAAS,EAAC,WAAU,EAAC,YAAW,IAAG,eAAc,GAAE,aAAY,qBAAoB,GAAE,OAAM,CAAE,EAAA,EAAC,CAAC,EAAC;AAAE,MAAIA;AAAC,GAAEiR,KAAG,CAAC,GAAE/Q,GAAE5B,MAAI;AAAC,QAAK,EAAC,YAAW,IAAE,CAAE,GAAC,SAAQW,IAAE,CAAA,EAAE,IAAEiB,GAAEF,IAAEyM,GAAI,MAAI,EAAE,IAAK,CAAAtC,MAAG;AAAC,QAAIjK,IAAE,CAAE;AAAC,WAAOA,IAAEiK,KAAa,OAAOA,KAAjB,WAAmB,OAAO,OAAO,OAAO,OAAO,CAAE,GAACA,CAAC,GAAE,EAAC,WAAU,EAAC,UAAS7L,EAAC,EAAC,CAAC,IAAE,EAAC,OAAM6L,GAAE,WAAU,EAAC,UAAS7L,EAAC,EAAC,GAAE4B;AAAA,EAAC,CAAG,CAAA,GAAGtB,IAAE6N,GAAI,MAAI;AAAC,UAAMvM,IAAE,CAAE,GAAC5B,IAAEW,EAAE,QAAO4I,IAAE,EAAE;AAAY,aAAQ7H,IAAE,GAAEA,IAAE1B,GAAE0B,KAAI;AAAC,YAAM1B,IAAEuJ,EAAE7H,CAAC,GAAE,EAAC,MAAKpB,GAAE,WAAUc,EAAC,IAAEpB,KAAG,CAAA;AAAG,UAAImB,IAAE,OAAO,OAAO,EAAC,MAAKb,GAAE,YAAWc,EAAC,GAAET,EAAEe,CAAC,CAAC;AAAE,UAAYpB,MAAT,QAAW;AAAC,cAAMsB,IAAE,CAAE;AAAC,UAAE,gBAAcA,EAAE,cAAY,EAAE,aAAYA,EAAE,aAAW,EAAE,YAAWA,EAAE,gBAAc,EAAE,eAAcA,EAAE,gBAAc,EAAE,gBAAeT,IAAE,OAAO,OAAO,OAAO,OAAO,CAAE,GAACA,CAAC,GAAE,EAAC,YAAW,EAAE,YAAW,QAAO,EAAE,QAAO,WAAU,EAAC,OAAM,EAAE,OAAOO,CAAC,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,mBAAiB,EAAC,MAAK,UAAS,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,YAAW,CAAC,EAAC,QAAO,GAAE,OAAM,EAAE,OAAOA,CAAC,EAAC,GAAE,EAAC,QAAO,GAAE,OAAM,EAAE,qBAAmB,cAAa,CAAC,GAAE,QAAO,GAAE,IAAE,EAAE,OAAOA,CAAC,GAAE,SAAQ,EAAE,iBAAgB,GAAE,WAAU,OAAO,OAAO,EAAC,OAAM,EAAE,eAAc,GAAEE,CAAC,EAAC,CAAC;AAAA;AAAE,UAAWtB,MAAR,OAAU;AAAC,cAAK,EAAC,cAAasB,GAAE,gBAAe5B,GAAE,gBAAeuJ,EAAC,IAAE,GAAE5I,IAAE,CAAA;AAAG,YAAG,EAAE,iBAAgB;AAAC,gBAAMiB,IAAE,EAAE,gBAAgB,MAAM,GAAG;AAAE,cAASA,KAAN,QAAeA,EAAE,QAAO;AAAC,kBAAMiK,IAAE;AAAG,uBAAU7L,KAAK4B,GAAE;AAAC,oBAAMA,IAAE,WAAW5B,CAAC;AAAE,oBAAM4B,CAAC,KAAGiK,EAAE,KAAKjK,CAAC;AAAA;AAAE,YAAAjB,EAAE,eAAakL;AAAA;AAAA;AAAG,QAAAjK,MAAIjB,EAAE,QAAM,EAAC,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,YAAW,CAAC,EAAC,QAAO,GAAE,OAAM,EAAE,OAAOe,CAAC,EAAC,GAAE,EAAC,QAAO6H,GAAE,OAAMvJ,EAAE0B,CAAC,EAAC,GAAE,EAAC,QAAO,GAAE,OAAM1B,EAAE0B,CAAC,EAAC,CAAC,EAAC,IAAGP,IAAE,OAAO,OAAO,OAAO,OAAO,CAAE,GAACA,CAAC,GAAE,EAAC,UAAS,EAAE,UAAS,WAAUR,EAAC,CAAC;AAAA;AAAE,QAAE,mBAAiBQ,EAAE,WAAS,EAAC,MAAK,CAAC,EAAC,MAAK,EAAE,aAAY,CAAC,EAAC,IAAGS,EAAE,KAAKT,CAAC;AAAA;AAAE,WAAOS;AAAA,EAAC,IAAIR,IAAE+M,GAAI,MAAI;AAAC,UAAMvM,IAAE,EAAE;AAAM,WAAaA,KAAN,OAAQ,SAAOA,EAAE,IAAK,CAACA,GAAE2H,OAAK,EAAC,MAAK,SAAQ,aAAY,EAAE,kBAAiB,WAAU,EAAC,MAASA,MAAJ,IAAM,EAAE,yBAAuB,EAAE,yBAAwB,WAAU,EAAC,OAAM,EAAE,0BAAyB,MAASA,MAAJ,IAAM,EAAE,yBAAuB,EAAE,wBAAuB,EAAC,GAAE,WAAU,EAAC,MAAK,EAAE,mBAAkB,GAAE,WAAU,EAAC,UAASvJ,GAAE,MAAK,EAAE,gBAAe,OAAM,EAAE,iBAAgB,WAAU,CAAA6L,MAAGyG,GAAG1Q,EAAE,oBAAmBiK,CAAC,EAAC,GAAE,UAAS,EAAC,MAAK,EAAE,wBAAuB,WAAU,EAAC,OAAM,EAAE,oBAAmB,EAAC,GAAE,MAAStC,MAAJ,IAAM,EAAE,gBAAc,EAAE,gBAAe,eAAc,EAAC,UAAS,EAAE,oBAAmB,OAAM,EAAE,iBAAgB,OAAUA,MAAJ,IAAM,UAAQ,OAAM,GAAE,KAAI,EAAE,iBAAe,KAAI,EAAE;AAAA,EAAE,CAAC;AAAG,SAAM,EAAC,QAAO,EAAC,MAAK,EAAE,YAAW,QAAO,EAAE,cAAa,KAAI,EAAE,WAAU,MAAK,EAAE,YAAW,WAAU,EAAC,OAAM,EAAE,sBAAqB,UAASvJ,EAAC,EAAC,GAAE,SAAQ,EAAC,SAAQ,QAAO,MAAK,EAAE,aAAY,WAAU,CAAA4B,MAAG;AAAC,UAAM5B,IAAE4B,EAAE;AAAO,QAAI2H,IAAE,IAAG5I,IAAE,EAAE;AAAiB,IAAKA,MAAL,OAASA,IAAE;AAAuB,UAAMe,IAAE,EAAE;AAAY,aAAQmK,IAAE,GAAEA,IAAE7L,GAAE6L,KAAI;AAAC,YAAM7L,IAAE0B,EAAEmK,CAAC,GAAE,EAAC,kBAAiBvL,EAAC,IAAEN,KAAG,CAAA,GAAG,EAAC,QAAOoB,GAAE,YAAWD,GAAE,MAAKV,GAAE,OAAMkL,GAAE,MAAKnK,EAAC,IAAEI,EAAEiK,CAAC,KAAG,CAAE;AAAC,MAAIA,MAAJ,MAAQtC,KAAG,GAAG9I,WAAU8I,KAAGyI,GAAG1R,KAAGK,GAAE,EAAC,UAAS,OAAO,OAAO,EAAC,QAAOS,GAAE,MAAKX,GAAE,OAAMkL,GAAE,YAAWxK,GAAE,GAAEA,GAAE,GAAEV,GAAE,GAAEkL,EAAC,GAAEnK,CAAC,EAAC,GAAE,EAAC,YAAW,IAAG,UAAS,GAAE,CAAC,GAAE+H,KAAG;AAAA;AAAQ,WAAOA;AAAA,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,yBAAuB,QAAO,UAASvJ,EAAC,GAAE,iBAAgB,EAAE,0BAAwB,QAAO,aAAY,EAAE,sBAAoB,OAAM,GAAE,OAAM,EAAC,MAAK,EAAE,WAAU,aAAY,EAAE,kBAAiB,MAAK,YAAW,MAAKmM,GAAEzK,CAAC,GAAE,WAAU,EAAC,MAAK,EAAE,oBAAmB,WAAU,EAAC,OAAM,EAAE,yBAAwB,EAAC,GAAE,WAAU,EAAC,OAAM,EAAE,iBAAgB,UAAS,EAAE,sBAAoB,GAAE,QAAO,EAAE,kBAAiB,OAAM,EAAE,iBAAgB,UAAS,EAAE,mBAAkB,GAAE,UAAS,EAAC,WAAU,EAAC,OAAM,EAAE,oBAAmB,EAAC,GAAE,UAAS,EAAC,MAAK,EAAE,cAAa,EAAC,GAAE,OAAMyK,GAAE/K,CAAC,GAAE,QAAO+K,GAAE7L,CAAC,EAAC;AAAC,GAAEsS,KAAG,CAAC,GAAEhR,GAAE5B,IAAE,OAAK,OAAO,OAAO,OAAO,OAAO,CAAA,IAAI,CAAA6L,OAAI,EAAC,OAAM,EAAC,MAAKA,EAAE,WAAU,SAAQA,EAAE,cAAa,WAAU,EAAC,UAASA,EAAE,eAAc,YAAWA,EAAE,YAAW,OAAMA,EAAE,WAAU,GAAE,MAAKA,EAAE,aAAW,SAAQ,GAAE,MAAK,EAAC,KAAIA,EAAE,SAAQ,QAAOA,EAAE,YAAW,MAAKA,EAAE,UAAS,OAAMA,EAAE,WAAU,cAAaA,EAAE,iBAAgB,GAAE,OAAMA,EAAE,OAAM,IAAI,CAAC,CAAC,IAAG,CAACA,GAAEjK,GAAE5B,MAAI;AAAC,UAAO6L,EAAE,MAAM;AAAA,IAAA,KAAI;AAAM,aAAO2G,GAAG3G,GAAEjK,GAAE5B,CAAC;AAAA,IAAE,KAAI;AAAO,aAAOyS,GAAG5G,GAAEjK,GAAE5B,CAAC;AAAA,IAAE,KAAI;AAAM,aAAO0S,GAAG7G,GAAEjK,GAAE5B,CAAC;AAAA,IAAE,KAAI;AAAa,aAAO2S,GAAG9G,GAAEjK,GAAE5B,CAAC;AAAA,IAAE;AAAQ,aAAM,CAAA;AAAA,EAAE;AAAC,GAAG,GAAE4B,GAAE5B,CAAC,CAAC,GCUv53D6S,KAAgB,CAACC,MAAyC;AACrE,QAAMC,IAAS,CAAA;AACf,MAAID,KAAA,QAAAA,EAAY;AACd,eAAWxV,KAAQwV;AACjB,MAAIxV,EAAK,aACPyV,EAAO,KAAK,GAAGF,GAAcvV,EAAK,UAAU,CAAC,KACpCA,KAAA,gBAAAA,EAAM,cAAa,eAC5ByV,EAAO,KAAKzV,CAAI;AAIf,SAAAyV;AACT,GACaC,KAAmB,CAAC3W,GAAuC4W,MAAmD;;AACzH,QAAMC,IAAcC,IAAU9W,KAAA,gBAAAA,EAAe,gBAAe,CAAE,CAAA,GACxD;AAAA,IACJ,oBAAA+W,IAAqB,CAAC;AAAA,IACtB,eAAAC,IAAgB,CAAC;AAAA,IACjB,eAAAC,IAAgB,CAAC;AAAA,IACjB,YAAAC,IAAa,CAAC;AAAA,IACd,cAAAC,IAAe,CAAC;AAAA,IAChB,eAAAC,IAAgB,CAAC;AAAA,IACjB,iBAAAC,IAAkB,CAAC;AAAA,IACnB,YAAAC,IAAa,CAAC;AAAA,EACZ,IAAAtX;AACJ,EAAAuX,GAAkBV,GAAaD,CAAoB;AACnD,QAAMY,IAAgBX,GAEhBY,IAAY;AAAA,IAChB,GAAGV;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,IACH,GAAGC;AAAA,EAAA,GAECI,IAAgB,CAAA;AACtB,aAAWC,KAAMF,GAAW;AAC1B,UAAMhB,IAAaD,IAAcmB,KAAA,gBAAAA,EAAI,eAAc,CAAE,CAAA;AACrD,QAAIlB,KAAA,QAAAA,EAAY,QAAQ;AACtB,YAAMzV,IAAOyV,EACV,OAAO,CAACvR,MACQ0S,GAAa1S,GAAG0R,CAAoB,KAE1C1R,KAAA,gBAAAA,EAAG,cAAa,cAElB,EACR,EACA,IAAI,CAACjE,MAAc;AACZ,cAAAiJ,IAAS0N,GAAa3W,GAAM2V,CAAoB,GAChDiB,IAAc,CAAA;AACpB,eAAI5W,KAAA,QAAAA,EAAM,eACR4W,EAAO,SAAS5W,EAAK,aAEhB;AAAA,UACL,cAAcA,EAAK;AAAA,UACnB,gBAAgBA,EAAK;AAAA,UACrB,eAAeA,EAAK;AAAA,UACpB,oBAAoBA,EAAK;AAAA,UACzB,IAAIiJ,EAAO;AAAA,UACX,SAASjJ,EAAK;AAAA,UACd,MAAMA,EAAK;AAAA,UACX,WAAW;AAAA,UACX,WAAWA,EAAK;AAAA,UAChB,UAAUA,EAAK;AAAA,UACf,cAAcA,EAAK;AAAA,UACnB,GAAG4W;AAAA,QAAA;AAAA,MACL,CACD;AACH,UAAI7W,KAAA,QAAAA,EAAM;AACR,mBAAW+D,KAAK/D;AACV,UAAC0W,EAAc,KAAK,CAAAI,MAASA,EAAM,YAAY/S,EAAE,OAAO,KAC1D2S,EAAc,KAAK3S,CAAC;AAAA;AAAA;AAM9B,QAAMsI,IAAMqK,EAAc;AAC1B,WAASrS,IAAI,GAAGA,IAAIgI,GAAKhI,KAAK;AACtB,UAAA0S,IAAUL,EAAcrS,CAAC;AAI3B,QAHA0S,KAAW,GAACta,IAAA,OAAO,KAAKsa,CAAO,MAAnB,QAAAta,EAAsB,YAGlCsa,KAAA,gBAAAA,EAAS,kBAAiB;AAC5B;AAEI,UAAA;AAAA,MACJ,IAAApX;AAAA,MACA,SAAAqX;AAAA,MACA,MAAAC;AAAA,MACA,QAAQC;AAAA,MACR,UAAAC,IAAW;AAAA,MACX,aAAAC;AAAA,IACE,IAAAL,GAKEM,IAAuCC,GAAiBP,CAAO;AACvD,IAAAQ,GAAA;AAAA,MACZ,cAAAF;AAAA,MACA,sBAAAzB;AAAA,MACA,IAAAjW;AAAA,MACA,YAAAuX;AAAA,MACA,MAAAD;AAAA,MACA,SAAAD;AAAA,MACA,UAAAG;AAAA,MACA,aAAAC;AAAA,IAAA,CACD,GACDZ,EAAc,KAAKa,CAAY;AAAA;AAGjC,WAAStI,IAAIyH,EAAc,SAAS,GAAGzH,KAAK,GAAGA,KAAK;AAC5C,UAAA9O,IAAOuW,EAAczH,CAAC;AACxB,IAAC9O,EAAK,mBACKuV,GAAcgB,CAAa,EAAE,KAAK,CAAKtS,MAAAA,EAAE,UAAUjE,EAAK,SAASiE,EAAE,eAAe,KAE/EsS,EAAA,OAAOzH,GAAG,CAAC;AAAA;AAIxB,SAAAyH;AACT,GAEagB,KAAqB,CAACC,GAAwC7B,MAAkD;AAC3H,QAAM8B,IAAgB,CAAA;AACtB,MAAID,KAAA,QAAAA,EAAc;AAChB,eAAWxX,KAAQwX;AACjB,UAAIxX,EAAK,cAAc;AACrB,cAAM0X,IAAoB;AAAA,UACxB,aAAa1X,EAAK;AAAA,UAClB,iBAAiB;AAAA,UACjB,WAAWA,EAAK;AAAA,UAChB,OAAOA,EAAK,WAAW;AAAA,QAAA;AAEX,QAAAsX,GAAA;AAAA,UACZ,cAAcI;AAAA,UACd,sBAAA/B;AAAA,UACA,IAAI3V,EAAK;AAAA,UACT,YAAYA,EAAK;AAAA,UACjB,MAAMA,EAAK;AAAA,UACX,SAASA,EAAK;AAAA,UACd,UAAUA,EAAK;AAAA,UACf,aAAaA,EAAK;AAAA,UAClB,aAAaA,EAAK;AAAA,UAClB,aAAaA,EAAK;AAAA,UAClB,cAAcA,EAAK;AAAA,QAAA,CACpB,GACGA,EAAK,WAEP0X,EAAa,aAAa1X,EAAK,SAE7BA,EAAK,UACP0X,EAAa,QAAQ1X,EAAK,QAE5ByX,EAAc,KAAKC,CAAY;AAAA;AAAA;AAI9B,SAAAD;AACT;AAEA,SAASJ,GAAkBP,GAA+B;AAClD,QAAA;AAAA,IACJ,IAAApX;AAAA,IACA,SAAAqX;AAAA,IACA,gBAAAY;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,MAAAb;AAAA,IACA,MAAAc,IAAO;AAAA,IACP,WAAAC,IAAY;AAAA,IACZ,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAhB,IAAW;AAAA,EACT,IAAAJ;AACJ,MAAIqB,IAAQpB,KAAWrX;AACvB,SAAIyY,KAASnB,MACXmB,KAAS,IAAInB,MAER;AAAA,IACL,MAAAc;AAAA,IACA,OAAOH;AAAA,IACP,WAAWC;AAAA,IACX,YAAY;AAAA;AAAA,IACZ,WAAWC;AAAA,IACX,OAAAM;AAAA,IACA,iBAAiB,CAACJ;AAAA,IAClB,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAhB;AAAA,EAAA;AAEJ;AAEA,MAAMkB,KAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,SAAS9B,GAAmBV,GAAuCD,GAAgD;AACjH,MAAIC,KAAA,QAAAA,EAAa;AACf,eAAWkB,KAAWlB;AACpB,UAAIkB,KAAA,QAAAA,EAAS;AACO,QAAAR,GAAAQ,EAAQ,YAAYnB,CAAoB;AAAA,WACrD;AACC,cAAA;AAAA,UACJ,IAAAjW;AAAA,UACA,SAAAqX;AAAA,UACA,MAAAC;AAAA,UACA,QAAQC;AAAA,UACR,UAAAC,IAAW;AAAA,UACX,aAAAC;AAAA,QACE,IAAAL,GAKEM,IAAuCC,GAAiBP,CAAO;AACvD,QAAAQ,GAAA;AAAA,UACZ,cAAAF;AAAA,UACA,sBAAAzB;AAAA,UACA,IAAAjW;AAAA,UACA,YAAAuX;AAAA,UACA,MAAAD;AAAA,UACA,SAAAD;AAAA,UACA,UAAAG;AAAA,UACA,aAAAC;AAAA,QAAA,CACD;AACD,mBAAW/O,KAAOgP;AACR,UAAAN,EAAA1O,CAAG,IAAIgP,EAAahP,CAAG;AAEjC,mBAAWiQ,KAAQD;AACjB,iBAAOtB,EAAQuB,CAAI;AAAA;AAK7B;AAEA,SAASf,GAAe3X,GAAW;AAC3B,QAAA;AAAA,IACJ,cAAAyX;AAAA,IACA,sBAAAzB;AAAA,IACA,IAAAjW;AAAA,IACA,YAAAuX;AAAA,IACA,MAAAD;AAAA,IACA,SAAAD;AAAA,IACA,UAAAG;AAAA,IACA,aAAAC;AAAA,IACA,cAAAmB;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,EACE,IAAA7Y,GACE8Y,IAAiB3Z,EAAM6W,CAAoB,EAAE,KAAK,CAAC1R,MAA8BA,EAAE,OAAOvE,CAAE,GAE5F,EAAE,OAAAU,GAAO,QAAA+E,IAAS,cAAc,SAAAuT,GAAS,MAAAC,IAAO,IAAI,gBAAAC,EAAA,IAAmBH,KAAa,IACpFI,IAAe5B,KAAc9R;AAC/B,MAAA2T,GAAkBH,GAAM,MAAM,GAAG;AAC/B,QAAAI;AAMJ,QALIH,IACFG,IAAYC,GAAM,IAElBD,IAAYC,GAAM5Y,CAAK,GAErBsY,KAAWtY,GAAO;AACpB,YAAM,EAAE,MAAA6Y,GAAM,MAAMC,GAAQ,OAAOC,EAAY,IAAAT;AAC/C,UAAIS;AACF,gBAAQD,GAAQ;AAAA,UACd,KAAK;AACS,YAAAH,IAAAA,EAAU,IAAII,GAASF,CAAI;AACvC;AAAA,UACF,KAAK;AACS,YAAAF,IAAAA,EAAU,SAASI,GAASF,CAAI;AAC5C;AAAA,QACJ;AAAA;AAGA,QAAAX,KAAgBC,KAAeC;AACjC,cAAQA,GAAa;AAAA,QACnB,KAAK;AACS,UAAAO,IAAAA,EAAU,IAAIT,GAAcC,CAAW;AACnD;AAAA,QACF,KAAK;AACS,UAAAQ,IAAAA,EAAU,SAAST,GAAcC,CAAW;AACxD;AAAA,MACJ;AAEF,IAAAnB,EAAa,cAAa2B,KAAA,gBAAAA,EAAW,OAAOF,OAAiB,IAC7DzB,EAAa,aAAayB;AAAA,aACjBF,MAAS,mBAAmB;AACrC,UAAM,EAAE,UAAAS,GAAU,cAAAC,GAAc,WAAAC,GAAW,SAAAC,EAAQ,IAAId,KAAa;AACpE,QAAIe,IAAYxC;AAChB,QAAI,CAACA,GAAM;AACH,YAAAyC,IAAS1C,KAAA,gBAAAA,EAAS,MAAM;AAC9B,MAAI0C,KAAA,QAAAA,EAAQ,WACED,IAAAC,EAAOA,EAAO,SAAS,CAAC;AAAA;AAGxC,QAAI,CAACD;AACH;AAEF,QAAIE,IAAQ;AAWZ,QAVId,MACEY,MAAc,cAChBE,IAAQV,GAAM,EAAE,SAASI,GAAUC,CAAY,IACtCG,MAAc,cACvBE,IAAQV,GAAM,KAGdP,EAAUe,CAAS,MACbE,IAAAV,GAAMP,EAAUe,CAAS,CAAC,IAEhCd,GAAS;AACX,YAAM,EAAE,MAAAC,GAAM,OAAAvY,GAAO,MAAA6Y,EAAS,IAAAP;AAC9B,cAAQC,GAAM;AAAA,QACZ,KAAK;AACH,UAAAe,IAAQA,KAAQA,EAAM,IAAItZ,GAAO6Y,CAAI;AACrC;AAAA,QACF,KAAK;AACH,UAAAS,IAAQA,KAAQA,EAAM,SAAStZ,GAAO6Y,CAAI;AAAA,MAC9C;AAAA;AAEE,QAAAX,KAAgBC,KAAeC;AACjC,UAAIF,MAAiB;AAEnB,YAAIgB,KAAaC,GAAS;AAClBH,gBAAAA,IAAWJ,GAAMO,CAAO,EAAE,KAAKP,GAAMM,CAAS,GAAGf,CAAW,IAAI;AACtE,kBAAQC,GAAa;AAAA,YACnB,KAAK;AACH,cAAAkB,IAAQA,KAAQA,EAAM,IAAIN,GAAUb,CAAW;AAC/C;AAAA,YACF,KAAK;AACH,cAAAmB,IAAQA,KAAQA,EAAM,SAASN,GAAUb,CAAW;AAAA,UACxD;AAAA;AAAA,iBAEO,CAAC,MAAM,CAACD,CAAY;AAC7B,gBAAQE,GAAa;AAAA,UACnB,KAAK;AACH,YAAAkB,IAAQA,KAAQA,EAAM,IAAIpB,GAAcC,CAAW;AACnD;AAAA,UACF,KAAK;AACH,YAAAmB,IAAQA,KAAQA,EAAM,SAASpB,GAAcC,CAAW;AAAA,QAC5D;AAAA;AAOJ,QAJImB,MACWtC,EAAA,aAAasC,KAAA,gBAAAA,EAAO,OAAOb,KAGtCW,MAAc,gBAEZF,KAAaC,GAAS;AAClB,YAAAI,IAAYC,GAAcf,CAAY;AAC5C,MAAIc,MACWvC,EAAA,aAAa4B,GAAMO,CAAO,EAAE,KAAKP,GAAMM,CAAS,GAAGK,CAAI,IAAI;AAAA;AAI9E,IAAAvC,EAAa,aAAayB;AAAA,SACrB;AACL,UAAMgB,IAAYzZ,KAAUA,EAAO,MAAM,YAAY;AACrD,IAAIyZ,KAAA,QAAAA,EAAW,SAEbzC,EAAa,aAAa,KAE1BA,EAAa,aAAahX;AAAA;AAG9B,EAAI8W,MAAa,OACfE,EAAa,aAAaD,KAAe;AAE7C;AAEa,MAAA2C,KAAe,CAACnB,MAAiB;AAC5C,MAAIxX,IAAQ;AACZ,UAAQwX,GAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AACK,MAAAxX,IAAA;AACR;AAAA,IACF,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,IACF,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,IACF,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,IACF,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,IACF,KAAK;AACK,MAAAA,IAAA;AACR;AAAA,EAGJ;AACO,SAAAA;AACT;AAEA,SAASwV,GAAchX,GAAWoa,GAAoB;;AACpD,MAAIpa,EAAK;AACP,WAAOoa,EAAc,KAAK,CAAC1V,MAAWA,EAAE,OAAO1E,EAAK,WAAW;AAE3D,MAAAA,EAAK,aAAa;AAChB,QAAAA,EAAK,cAAc,QAAQ;AAC7B,YAAMqa,KAAWxd,IAAAmD,EAAK,eAAL,gBAAAnD,EAAiB,MAAM;AACxC,aAAIwd,KAAA,QAAAA,EAAU,SACLA,EAAS,CAAC,IAEV;AAAA;AAGT,aAAOD,EAAc,KAAK,CAAC1V,MAAWA,EAAE,YAAY1E,EAAK,UAAU;AAAA;AAG9D,WAAA;AAGb;AAEO,SAASia,GAAezU,GAAgB;AACvC,QAAA/E,IAAQ+E,EAAO,MAAM,GAAG;AAC9B,MAAI8U,IAAa;AACjB,MAAI7Z,KAAA,QAAAA,EAAO;AACT,YAAQA,EAAMA,EAAM,SAAS,CAAC,GAAG;AAAA,MAC/B,KAAK;AACU,QAAA6Z,IAAA;AACb;AAAA,MACF,KAAK;AACU,QAAAA,IAAA;AACb;AAAA,MACF,KAAK;AACU,QAAAA,IAAA;AACb;AAAA,IAGJ;AAEK,SAAAA;AACT;AAEgB,SAAAC,GAAcrZ,GAAUb,GAAW;AAC7C,MAAAI,IAAQS,EAAIb,EAAK,KAAK;AAC1B,OAAKI,KAASA,MAAU,MAAMA,MAAU,MAElCJ,EAAK,cAAcA,EAAK,WAAW,WAAW,GAAG;AAEnD,QAAIA,EAAK,WAAW,SAAS,MAAM,MAE7B,OAAOI,KAAU,aACXA,IAAAA,EAAM,QAAQ,MAAM,EAAE,IAG5B,OAAOA,CAAK,KAAK,OAAOA,CAAK,MAAM,IAAG;AACxC,YAAM+Z,IAAiBna,EAAK,iBAAiBA,EAAK,iBAAiB,IAAIA,EAAK;AAC5E,MAAAI,IAAQ,OAAOA,CAAK,EAAE,QAAQ+Z,CAAc;AAAA;AAGhD,QAAIna,EAAK,WAAW,SAAS,OAAO,GAAG;AAE/B,YAAAoa,IAAMha,EAAM;AAClB,MAAKga,EAAI,SAAS,GAAG,MACnBha,IAAQia,GAAUD,CAAG;AAAA;AAAA;AAKtB,SAAAha;AACT;AAEO,SAASia,GAAWD,GAAa;AACtC,MAAI3E,IAAS,IACT6E,IAAO,IACPC,IAAO,IACPna,IAAQ;AACZ,EAAIga,EAAI,QAAQ,GAAG,IAAI,MACrBE,IAAOF,EAAI,MAAM,GAAG,EAAE,CAAC,GACvBG,IAAOH,EAAI,MAAM,GAAG,EAAE,CAAC,KAEhBE,IAAAF;AAET,MAAItS,IAAQ,GACRsE,IAAM;AAEV,OADAA,IAAMkO,EAAK,SAAS,GACblO,KAAO;AACZ,IAAAtE,IAAQ,MAAM,KAAKA,MAAU,IACzBwS,EAAKlO,CAAG,MAAM,MACXqJ,KAAU6E,EAAKlO,CAAG,IAClBqJ,KAAU,MAAM6E,EAAKlO,CAAG,IAC1BqJ,KAAU6E,EAAKlO,CAAG,GACvBA,KACAtE;AAEF,SAAA2N,IAASA,EACN,MAAM,EAAE,EACR,UACA,KAAK,EAAE,GACN2E,EAAI,QAAQ,GAAG,IAAI,KACrBha,IAAQqV,IAAS,MAAM8E,IAEfna,IAAAqV,GAEHrV;AACT;AAyFa,MAAAoa,KAAW,CAACC,OACX;AAAA,EACV,KAAK;AAAA,EACL,cAAc;AAAA,EACd,KAAK;AAAA,EACL,cAAc;AAAA,EACd,OAAO;AAAA,GAEEA,CAAK,GAELC,KAAkB,CAACD,OAClB;AAAA,EACV,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,GAGMA,CAAK,GAGLE,KAAc,CAAChC,MAAiB;AAC3C,MAAI,CAACA;AACI,WAAA;AAEH,QAAA5Y,IAAO4Y,EAAK,MAAM,GAAG,GACrBlD,IAAS,CAAA;AACf,aAAWzV,KAAQD;AACjB,IAAIC,MAAS,MACXyV,EAAO,KAAK,MAAM,IACTzV,MAAS,MAClByV,EAAO,KAAK,MAAM,IACTzV,MAAS,OAClByV,EAAO,KAAK,MAAM;AAGf,SAAAA,EAAO,KAAK,GAAG;AACxB,GAEamF,KAAa,CAACjC,MAAiB;AAC1C,MAAI,CAACA;AACI,WAAA;AAEH,QAAA5Y,IAAO4Y,EAAK,MAAM,GAAG,GACrBlD,IAAS,CAAA;AACf,aAAWzV,KAAQD;AACjB,YAAQC,GAAM;AAAA,MACZ,KAAK;AACH,QAAAyV,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,UAAU;AACtB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,OAAO;AACnB;AAAA,MACF,KAAK;AACH,QAAAA,EAAO,KAAK,QAAQ;AACpB;AAAA,IAGJ;AAEK,SAAAA,EAAO,KAAK,GAAG;AACxB,GAEaoF,KAAgB,CAACC,MACxBA,MAAW,MACN,QACEA,MAAW,MACb,OACEA,MAAW,MACb,QAEA,MC5nBXC,KAAexc,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IAAA,oBACVwP;AAAAA,IAAA,mBACAH;AAAAA,IAAA,iBACAM;AAAAA,IACA,WAAAxP;AAAA,IAAA,UACAsc;AAAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAO5P,GAAO,EAAE,MAAA6P,GAAM,QAAAC,KAAU;;AAExB,UAAA5b,KAAU9C,IAAA,iCAAQ,WAAR,gBAAAA,EAAgB,QAC1BmC,IAAUC,EAAOtC,EAAO,GACxBuC,IAAiBC,EAAMF,EAAOnC,EAAe,CAAC,GAC9C0e,IAAkBvc,EAAO,mBAAmB,CAACwc,MAAgB,EAAK,GAClEC,IAAajc,EAA8B,CAAA,CAAE,GAC7Ckc,IAAYlc,KACZmc,IAAa/b,GAAS;AAAA,MAC1B,UAAU;AAAA,MACV,aAAa;AAAA,MACb,aAAa;AAAA,IAAA,CACd,GACKgc,IAAYpc,EAAI,EAAK,GACrBqc,IAAYrc,EAAI,EAAE,GAClBsc,IAAgBtc,EAAI,EAAK;AAE/B,IAAAuc,GAAM,MAAMvQ,EAAM,MAAM,CAACzL,MAAmC;AAC1D,MAAIyL,EAAM,UACFzL,KAAA,QAAAA,EAAA,QAAQ,CAACkB,MAAgC;;AACzC,QAACA,KAAA,QAAAA,EAAK,WACJrE,IAAAqE,EAAA,oBAAA,QAAArE,EAAiB,QAAQ,CAACuE,MAAmC;AAC/D,UAAAA,EAAO,OAAO,IAEdA,EAAO,OAAO,IACVA,EAAO,UACTA,EAAO,QAAQA,EAAO;AAAA,QACxB;AAAA,MAEJ,IAEFsa,EAAW,QAAQ1b;AAAA,IACrB,GACC;AAAA,MACD,MAAM;AAAA,MACN,WAAW;AAAA,IAAA,CACZ;AAED,UAAMic,IAAe,MAAM;;AACrB,MAACxQ,EAAM,UACT5O,IAAAsC,EAAMwc,CAAS,MAAf,QAAA9e,EAAkB,oBAAoB,UAAUqf;AAAA,IAClD,GAGIC,IAAc,OAAO9b,MAAkC;;AACvD,UAAAlB,EAAM0c,CAAS;AACjB;AAEF,YAAMO,IAAe3Q,EAAM,gBAAgBA,EAAM,cAAc,eAAe;AAC9E,MAAAoQ,EAAU,QAAQ;AAClB,YAAM5E,IAAc;AAAA,QAClB,QAAQxL,EAAM;AAAA,QACd,QAAQ9L;AAAA,QACR,cAAAyc;AAAA,QACA,WAAWN,EAAU;AAAA,MAAA;AAEvB,MAAIzb,KACFA,EAAK,UAAU,IACf4W,EAAO,gBAAgB5W,EAAK,eAC5B4W,EAAO,SAAS5W,EAAK,UACZub,MAET3E,EAAO,eAAe;AAAA,QACpB,UAAU2E,EAAW;AAAA,QACrB,SAASA,EAAW;AAAA,MAAA;AAGpB,UAAA;AACI,cAAA7a,IAAM,MAAM/B,EAAQ;AAAA,UACxB,GAAGpC;AAAA,UACHqa;AAAA,UACA;AAAA,YACE,SAAS;AAAA,cACP,gBAAgB/X;AAAA,cAChB,gBAAgB;AAAA,YAClB;AAAA,UACF;AAAA,QAAA,GAEI,EAAE,SAAA8B,GAAS,MAAAhB,IAAO,CAAC,EAAA,IAAMe,EAAI;AACnC,YAAIC,GAAS;AACX,gBAAM,EAAE,MAAAC,IAAO,CAAI,GAAA,OAAAob,IAAQ,MAAMrc;AAC3B,UAAAiB,KAAA,QAAAA,EAAA,QAAQ,CAACC,MAAgC;;AAC7C,aAAIb,KAAA,gBAAAA,EAAM,YAAW,OAAOoL,EAAM,cAAc,gBAC1C5O,IAAAqE,EAAA,oBAAA,QAAArE,EAAiB,QAAQ,CAACuE,MAAmC;AAC/D,cAAAA,EAAO,OAAO,IAEdA,EAAO,OAAO,IACVA,EAAO,UACTA,EAAO,QAAQA,EAAO;AAAA,YACxB,KAGFF,EAAI,OAAO;AAAA,UACb,IAEEb,KACFA,EAAK,WAAWY,GAChBZ,EAAK,OAAO,IACPY,KAAA,QAAAA,EAAM,WACTZ,EAAK,SAAS,QAGhBqb,EAAW,QAAQvc,EAAMuc,CAAU,EAAE,OAAOza,CAAI,GAChD2a,EAAW,cAAc,CAACS,KACtBxf,IAAAsC,EAAMuc,CAAU,MAAhB,gBAAA7e,EAAmB,WAAUwf,KAClBJ;;AAInB,QAAI5b,MACFA,EAAK,UAAU,KAEjBwb,EAAU,QAAQ;AAAA;AAElB,QAAIxb,MACFA,EAAK,UAAU,KAEjBwb,EAAU,QAAQ;AAAA,MACpB;AAAA,IAAA,GAGIS,IAAgB,OAAOnU,MAAkB;AACvC,YAAA9H,IAAOqb,EAAW,MAAMvT,CAAK,GAC7B,EAAE,UAAAoU,IAAW,GAAO,IAAAlc;AAC1B,MAAIkc,KAAA,QAAAA,EAAU,SAEPlc,EAAA,OAAO,CAACA,EAAK,OACT,CAACA,EAAK,UAAUA,EAAK,SAE9B8b,EAAY9b,CAAI,IACPA,EAAK,WACTA,EAAA,OAAO,CAACA,EAAK;AAAA,IACpB,GAGIkB,IAAc,CAClBC,GACAgb,MACG;AACE,MAAAlB,EAAA,eAAe9Z,GAAOgb,CAAU;AAAA,IAAA,GAGjCC,IAAiB,CAACD,MAAuC;AAClD,MAAAA,EAAA,OAAO,CAACA,EAAW;AAAA,IAAA,GAG1BN,IAAgB,CAACtN,MAAW;AAC5B,MAAAA,EAAE,OAAO,YAAYA,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,iBACnDgN,EAAA,eACCO;IACd,GAIIO,IAAc,YAAY;AAC9B,YAAMP,EAAY,GAClBtR,GAAS,YAAY;AACnB,QAAI1L,EAAMwc,CAAS,EAAE,iBAAiBxc,EAAMwc,CAAS,EAAE,gBAEjDC,EAAW,cAAczc,EAAMuc,CAAU,EAAE,WAClCE,EAAA,eACCc;MAEhB,CACD;AAAA,IAAA,GAGGC,IAAe,OAAOC,MAAiB;;AAC9B,MAAAX,KACbF,EAAc,QAAQ,IACtBH,EAAW,cAAc,GACzBA,EAAW,cAAc,GACzBF,EAAW,QAAQ,IACnBI,EAAU,QAAQc,GAClB,MAAMF,EAAY,GAClBX,EAAc,QAAQ,KACtBlf,IAAAsC,EAAMwc,CAAS,MAAf,QAAA9e,EAAkB,iBAAiB,UAAUqf;AAAA,IAAa;AAG5D,WAAAta,GAAU,YAAY;;AAChB,MAAC6J,EAAM,UACGiR,MACZ7f,IAAAsC,EAAMwc,CAAS,MAAf,QAAA9e,EAAkB,iBAAiB,UAAUqf;AAAA,IAC/C,CACD,GAEDW,GAAY,MAAM;AACH,MAAAZ;IAAA,CACd,GAEMV,EAAA;AAAA,MACL,cAAAoB;AAAA,IAAA,CACD,GAEM;AAAA,MACL,WAAAhB;AAAA,MACA,YAAAD;AAAA,MACA,eAAAK;AAAA,MACA,eAAAO;AAAA,MACA,gBAAAG;AAAA,MACA,iBAAAjB;AAAA,MACA,aAAAja;AAAA,MACA,iBAAAwZ;AAAA,MACA,UAAAF;AAAA,MACA,aAAAG;AAAA,MACA,YAAAC;AAAA,MACA,eAAAC;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;MChVUrZ,KAAe;AAAA,EAAA,KAAA;AAAA;oDAceib,KAAM;AAAA,EAAA,KAAA;AAAA;sGAsD1BC,KAAA,EAAA,KAAK,KACIC,KAAA,CAAA,SAAA,UAGN,OAAM;;0KA7E5Bjb,EAuFM,QAAA;SAvFuDC,EAAW,GAAAC,EAAA,OAAA;AAAA,IAAA,OAAAgb,GAAA,CAAA,WAAA7a,EAAA,QAAA,gBAAA,EAAA,CAAA;AAAA,IACtE,KAAA;AAAA,EAAA,GAAA;AAAA,MAEMD,GAAW;AAAA,MAAA,UAAAC,EAAA;AAAA;;MAEf,SAAAC,GAAA,MAAA;;AAAA;AAAA,UAAA,GAAAxF,IAAAuF,EACqB,eADrB,QAAAvF,aACgC,CAC9BuF,EAAA,iBAAAJ,EAAA,GAAAC,EAAA,OAyBMJ,IAvBE,MAAA,KAAAO,EAAA,eAAAJ,EAAA,EAAO,KAAuBkb,IAAG,EAAA,KAAA,EAAA,GAAAC,GAAA/a,EAAA,YAAA,CAAAmH,GAAApB;YAEvC,KAAAoB,EAAA,iBAAAA,EAAA;AAAA,UAAA,GAAA;AAAA,cAEI,OAAuB/G,IAAA;AAAA,cAAAD,EACjB,QAAE;AAAA,gBAAA,OAAA,EAAA,QAAA,UAAA;AAAA,yBAEuB,CAAOG,MAAAN,EAAA,cAAA+F,CAAA;AAAA,cAAA,GAAA;AAAA,gBACNoB,EAAA,WAAAvH,EAAA,GAAAob,GAAhCC,GAA+C,EAAA,KAAA,EAAA,CAAA,KAAA9T,EAAA,QAE7BvH,EAAO,GAAAob,GAAAE,GAAA,EAAA,KAAA,EAAA,CAAA,MAAAtb,KAAzBob,MAA2G,EAA3D,KAAA,EAAA,CAAA;AAAA,gBAAA7T,EAAA,UAAAvH,EAAA,GAAAC,EAAA,QAAA6a,IAAAja,EAAA0G,EAAA,gBAAA,MAAAA,EAAA,aAAA,GAAA,CAAA,KAAAgU,EAAA,IAAA,EAAA;AAAA,cAGzC,GAAA,GAAO5a,EAAI;AAAA,YAAA,CAAA;AAAA,YACpB4G,EAAA,QAAAvH,EAAA,GACwBC,EAAA,OAAAub,IAAA;AAAA,cACVtb,EAAAub,GAAA;AAAA,gBACX,MAAalU,EAAA;AAAA,gBACb,OAAA;AAAA,gBACD,aAAOA,EAAe,WAAA;AAAA,gBACrB,eAAanH,EAAA;AAAA,gBAAA,QAAA;AAAA;;;aAQZ,GAAA,GAAA,MAAAJ,EAAA,EAAA,GAAUC,EAAGib,IAAA,EAAA,KAAA,EAAA,GAAAC,GAAA/a,EAAA,YAAA,CAAAoa,OACbxa,EAAA,GAAAC,EAAE,OAAgB;AAAA,YAAA,KAAAua,EAAA;AAAA,YAExB,OAAAS,GAkBM7a,EAlBN,gBAkBMoa,EAAA,eAAA,IAAA,oBAAA,EAAA;AAAA,UAAA,GAAA;AAAA,cAfA,OAAsDkB,IAAA;AAAA,cAAAxb,EAAtDyb,GAAsD,MAAjD;AAAA,gBAAA,OACMtb,GAAW,MAAO;AAAA,kBAA7BE,EAAA,OAAA,MAAA,UAAgFM,EAAjDT,EAAA,YAAOoa,EAAG,QAAA,CAAA,GAAA,CAAA;AAAA,kBAC9BA,EAAA,WAAAxa,OAAuB,OAAlC4b,IAAA,YAAA/a,EAAAT,EAAA,WAAAoa,EAAA,OAAA,CAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,kBACWf,EAAA,gBAAAxa,EAAA,GAAiBC,EAA5B,OAAA4b,IAAA,UAAAhb,EAAA2Z,EAAA,YAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,kBACWf,EAAA,UAAAxa,KAAkBC,EAA7B,OAAA6b,IAAA,UAAAjb,EAAAT,EAAA,cAAAoa,EAAA,MAAA,CAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,kBASKf,EAAA,WAAAxa,EAAA,GAAAC,EAAA,OAAA8a,IAAA,UAAAla,EAAA2Z,EAAA,OAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,gBAAA,CAAA;AAAA,yBANkBlb,GAAvB,MAAA;AAAA,kBAAAE,EACM,QAAE;AAAA,oBAAA,OAAA,EAAA,QAAA,UAAA;AAAA,6BAEmB,CAAeG,MAAAN,EAAA,eAAAoa,CAAA;AAAA,kBAAA,GAAA;AAAA,oBACXA,EAAA,QAAAxa,EAAA,GAAAob,GAC/BE,GAA2B,EAAU,KAAA,EAAA,CAAA,MAAAtb,EAAA,GAAAob,GAAAW,GAAA,EAAA,KAAA,EAAA,CAAA;AAAA;;;;cAI3B,GAAA,IAAA;AAAA,YAAA,CAAA;AAAA,YAEHvB,EAAA,QAAAxa,KAAAob,GAAWtb,GAAe;AAAA,cAAA,KAAA;AAAA,cAClC,YAAO0a,EAAA;AAAA,cAAA,uBAAA,CAAA9Z,MAAA8Z,EAAA,kBAAA9Z;AAAA;;gBAIP,MAAA;AAAA,gBAAA,KAAA;AAAA;cAGA,YAAU;AAAA,cACV,MAAA;AAAA,cAAA,UAAAN,EAAA,gBAAAoa,EAAA,eAAA;AAAA,cAEU,SAAI,CAAA9Z,MAQPN,cARoBM,GAAc8Z,CAAA;AAAA,YAAA,GAAA;AAAA,cAEtC,MAAAna,GAAA,CAAA,EAAA,SAEO2b,QAFa;AAAA,gBAAAzb,EAGpB,OAEO0b,IAFP;AAAA,kBAAA1b,EAAA,QAAA2b,IAAA,OAAArb,EAAAmb,EAAA,UAAA,UAAA5b,EAAA,gBAAA4b,EAAA,WAAA,IAAA5b,EAAA,SAAA4b,EAAA,KAAA,CAAA,IAAA,MAAA,CAAA;AAAA;;;;;;;;;;;;uFC0ClBG,KAAevf,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IAAA,oBACVwP;AAAAA,IAAA,mBACAH;AAAAA,IACA,eAAAmQ;AAAA,IAAA,cACAC;AAAAA,IAAA,OACAxf;AAAAA,IAAA,aACAyf;AAAAA,IACA,WAAAvf;AAAA,IAAA,UACAsc;AAAAA,EACF;AAAA,EACA,QAAS;;AAED,UAAA1b,KAAU9C,IAAA,iCAAQ,WAAR,gBAAAA,EAAgB,QAC1BmC,IAAUC,EAAOtC,EAAO,GACxBuC,IAAiBC,EAAMF,EAAOnC,EAAe,CAAC,GAC9CyhB,IAAoBtf,EAAOjC,EAAkB,GAE7CwhB,IAAiBjf;AAAA,MACrB;;AAAM,gBAAA1C,IAAAsC,EAAMof,CAAiB,MAAvB,gBAAA1hB,EAA0B;AAAA;AAAA,IAAA,GAE5Buf,IAAe7c,EAAS,MAAA;;AAAM,cAAA1C,IAAAsC,EAAMqf,CAAc,MAApB,gBAAA3hB,EAAuB;AAAA,KAAY,GACjE4hB,IAAiBhf,EAA8B,CAAA,CAAE,GACjDif,IAAoBjf,EAAI,EAAK,GAC7Bkf,IAAelf,KAEfmc,IAAa/b,GAAS;AAAA,MAC1B,UAAU;AAAA,MACV,aAAa;AAAA,MACb,aAAa;AAAA,IAAA,CACd,GACK0J,IAAStK,EAAOvB,EAAW,GAC3BkhB,IAAanf,EAAI,EAAE,GACnBof,IAAuB,YAAY;AACvC,UAAI1f,EAAMC,CAAa,EAAE,WAAW;AAClC;AAEF,MAAAsf,EAAkB,QAAQ;AAC1B,YAAMzH,IAAc;AAAA,QAClB,QAAQ9X,EAAMoK,CAAM;AAAA,QACpB,WAAWpK,EAAMyf,CAAU;AAAA,QAC3B,QAAQjf;AAAA,QACR,cAAcR,EAAMid,CAAY;AAAA,QAChC,cAAc;AAAA,UACZ,UAAUR,EAAW;AAAA,UACrB,SAASA,EAAW;AAAA,QACtB;AAAA,MAAA;AAEE,MAAA3E,EAAO,WAAW,mBACpBA,EAAO,iBAAiBA,EAAO,WAC/B,OAAOA,EAAO;AAEZ,UAAA;AACI,cAAAlW,IAAM,MAAM/B,EAAQ;AAAA,UACxB,GAAGpC;AAAA,UACHqa;AAAA,UACA;AAAA,YACE,SAAS;AAAA,cACP,gBAAgB/X;AAAA,cAChB,gBAAgB;AAAA,YAClB;AAAA,UACF;AAAA,QAAA;AAEF,QAAAwf,EAAkB,QAAQ;AAC1B,cAAM,EAAE,SAAA1d,GAAS,MAAAhB,IAAO,CAAC,EAAA,IAAMe,EAAI;AACnC,YAAIC,GAAS;AACX,gBAAM,EAAE,MAAAC,IAAO,CAAI,GAAA,OAAAob,IAAQ,MAAMrc;AAC3B,UAAAiB,KAAA,QAAAA,EAAA,QAAQ,CAACC,MAAgC;;AAC7C,YAAAA,EAAI,OAAO,KACPrE,IAAAqE,EAAA,oBAAA,QAAArE,EAAiB,QAAQ,CAACuE,MAAmC;AAC/D,cAAAA,EAAO,OAAO,IAEdA,EAAO,OAAO,IACVA,EAAO,UACTA,EAAO,QAAQA,EAAO;AAAA,YACxB;AAAA,UACD,IAEHqd,EAAe,QAAQxd,GACvB2a,EAAW,cAAc,CAACS;AAAA;AAAA;AAS5B,QAAAqC,EAAkB,QAAQ;AAAA,MAC5B;AAAA,IAAA,GAGIpC,IAAgB,CAACnU,MAAkB;AACxB,MAAAsW,EAAA,MAAMtW,CAAK,EAAE,OAAO,CAACsW,EAAe,MAAMtW,CAAK,EAAE;AAAA,IAAA,GAG5D2W,IAAW,MAAM;;AACrB,MAAAlD,EAAW,cAAc,GACJiD,KACjB1f,EAAMC,CAAa,EAAE,WAAW,qBAClCvC,IAAAsC,EAAMwf,CAAY,MAAlB,QAAA9hB,EAAqB,aAAasC,EAAMyf,CAAU;AAAA,IACpD,GAGIG,IAAWC,GAAS,MAAM;AAC9B,MAAApD,EAAW,cAAc,GACJiD;OACpB,GAAG,GAEAI,IAAqB,CAACC,GAAcC,MAAqB;AAC7D,MAAAvD,EAAW,WAAWuD,GACtBvD,EAAW,cAAcsD,GACJL;IAAA;AAGvB,IAAAjd,GAAU,MAAM;AACO,MAAAid;IAAA,CACtB;AAEK,UAAAzf,IAAgBH,EAAOhC,EAAc,GAErCmiB,IAAa7f,EAAc,MAAM;AACrC,YAAM8f,IAAQ,CAAC,sBAAsB,iBAAiB,iBAAiB,iBAAiB;AACxF,UAAIpW,IAAU,CAAA;AACH,iBAAAR,KAAOtJ,EAAMC,CAAa;AACnC,YAAI,OAAO,UAAU,eAAe,KAAKD,EAAMC,CAAa,GAAGqJ,CAAG,KAAK4W,EAAM,SAAS5W,CAAG,GAAG;AAC1F,gBAAMhI,IAAQtB,EAAMC,CAAa,EAAEqJ,CAAG;AAClC,UAAA,MAAM,QAAQhI,CAAK,MACXwI,IAAAA,EAAQ,OAAOxI,CAAK;AAAA;AAI7B,aAAAwI;AAAA,IAAA,CACR,GACKuS,IAAkB,CAAC8D,IAAyB,OAAO;AAEvD,UAAIC,IAAU;AAEV,UAAApgB,EAAMoK,CAAM,MAAM;AACT,mBAAAlJ,KAAQlB,EAAMigB,CAAU;AAEjC,cAAI,CADWE,EAAgB,KAAK,OAAKhb,EAAE,aAAajE,EAAK,QAAQ,GACxD;AACD,YAAAkf,IAAA;AACV;AAAA;AAAA;AAIO,mBAAAlf,KAAQlB,EAAMigB,CAAU;AAEjC,cAAI,CADWE,EAAgB,KAAK,OAAKhb,EAAE,aAAajE,EAAK,QAAQ,GACxD;AACD,YAAAkf,IAAA;AACV;AAAA;AAKC,aAAAA;AAAA,IAAA;AAGT,WAAAC,EAAQ,mBAAmBhE,CAAe,GA8BnC;AAAA,MACL,gBAAAiD;AAAA,MACA,mBAAAC;AAAA,MACA,YAAA9C;AAAA,MACA,eAAAU;AAAA,MACA,UAAAzB;AAAA,MACA,iBAAAE;AAAA,MACA,UAAA+D;AAAA,MACA,UAAAC;AAAA,MACA,QAAAxV;AAAA,MACA,oBAAA0V;AAAA,MACA,YAAAL;AAAA,MACA,iBAAApD;AAAA,MACA,aAzCkB,CAClBha,GACAgb,MACG;AACH,cAAM9a,IAAW8a,EAAW,gBAAgBhb,EAAM,QAAQ;AAC1D,YAAIie,IAAgB,CAAA;AACpB,QAAIjD,EAAW,kBACbiD,IAAgBjD,EAAW,gBAEzB9a,MACa,eAAA,QAAQ,uBAAuB,KAAK,UAAU;AAAA,UAC3D,GAAGA;AAAA,UACH,QAAQ8a,EAAW;AAAA,UACnB,eAAAiD;AAAA,UACA,SAASjD,EAAW;AAAA,UACpB,YAAYA,EAAW;AAAA,UACvB,SAASA,EAAW;AAAA,QACrB,CAAA,CAAC,GACEA,EAAW,WAAW,QAAOA,KAAA,QAAAA,EAAY,qBAC3C,eAAe,QAAQ,sBAAsB,KAAK,UAAUA,EAAW,gBAAgB,CAAC,GAEtFA,EAAW,WAAW,QAAOA,KAAA,QAAAA,EAAY,kBAE3C,eAAe,QAAQ,sBAAsB,KAAK,UAAUA,EAAW,aAAa,CAAC;AAAA,MAEzF;AAAA,MAiBA,eAAAtB;AAAA,MACA,aAAAF;AAAA,MACA,YAAAC;AAAA,MACA,eAAA7b;AAAA,MACA,cAAAuf;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;AC3SgB,MAAA9c,KAAA,EAAA,OAAM,mIAgCM+b,KAAA,CAAA,SAAA,eAEH;;qLAjExB7b,EAqFM,cAAA;AAnFM,SAAAC,EAAiB,GAAAC,EAAA,OAAAJ,IAAA;AAAA,IAAAK,EAAAwd,GAAA;AAAA,MACzB,OAAWtd,EAAA;AAAA,MACX,kBAAmBK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAN,EAAA,aAAAM;AAAA,MAClB,aAAQ;AAAA,MACR,SAAM,OAAE,OAAA;AAAA,MAAA,UAAAN,EAAA;AAAA,MAEK,UAAAA,EAAA;AAAA,IAAA,GAAA,MAAA,GAAA,CAAA,SACd,YASE,UAAA,CAAA;AAAA,IAAAA,EAAA,cAAA,WAAA,mBAAAJ,EARkB,GAAAob,GAAAK,GAAA;AAAA,MACjB,KAAI;AAAA,MACJ,KAAA;AAAA,MACA,MAAKrb,EAAE;AAAA,MACP,aAAa;AAAA,MACd,OAAM;AAAA,MACL,eAAiBA,EAAA;AAAA,MACjB,QAAA;AAAA,MAAA,mBAAAA,EAAA;AAAA,MAGL,eAAAA,EAAA;AAAA,IAAA,GACE,MAAA,GAAA,CAAA,QAAA,iBAAA,qBAqDM,2BADKH,EAAAib,IAAA,EAAA,KAAA,EAAA,GAAA;AAAA,MAAA3a,EAlDI,OAAiBC,IAAA;AAAA,QAAAN,EACxBC,GAAW;AAAA,UAAA,UAAAC,EAAA;AAAA;;;aAIPJ,EAAA,EAAA,GAAUC,EAAGib,IAAA,MAAAC,GAAA/a,EAAA,gBAAA,CAAAoa,GAAArU,OACbnG,EAAA,GAAAC,EAAE,OAAgB;AAAA,cAAA,KAAAua,EAAA;AAAA,cAExB,OAAAS,GAiBM7a,EAjBN,gBAiBMoa,EAAA,eAAA,IAAA,oBAAA,EAAA;AAAA,YAAA,GAAA;AAAA,gBAdA,OAAsD7Z,IAAA;AAAA,gBAAAT,EAAtDyb,GAAsD,MAAjD;AAAA,kBAAA,OACMtb,GAAW,MAAO;AAAA,oBAA7BE,EAAA,OAAA,MAAA,UAAgFM,EAAjDT,EAAA,YAAOoa,EAAG,QAAA,CAAA,GAAA,CAAA;AAAA,oBAC9BA,EAAA,WAAAxa,OAAuB,OAAlC8a,IAAA,YAAAja,EAAAT,EAAA,WAAAoa,EAAA,OAAA,CAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,oBACWf,EAAA,gBAAAxa,EAAA,GAAkBC,EAA7B,OAAAub,IAAA,UAAA3a,EAAA2Z,EAAA,YAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,oBASKf,EAAA,WAAAxa,EAAA,GAAAC,EAAA,OAAAyb,IAAA,UAAA7a,EAAA2Z,EAAA,OAAA,GAAA,CAAA,KAAAe,EAAA,IAAA,EAAA;AAAA,kBAAA,CAAA;AAAA,2BANkBlb,GAAvB,MAAA;AAAA,oBAAAE,EACM,QAAE;AAAA,sBAAA,OAAA,EAAA,QAAA,UAAA;AAAA,+BAEmB,CAAeG,MAAAN,EAAA,cAAA+F,CAAA;AAAA,oBAAA,GAAA;AAAA,sBACXqU,EAAA,QAAAxa,EAAA,GAAAob,GAC/BE,GAAyB,EAAW,KAAA,EAAA,CAAA,MAAAtb,EAAA,GAAAob,GAAAW,GAAA,EAAA,KAAA,EAAA,CAAA;AAAA;;;;gBAI/B,GAAA,IAAA;AAAA,cAAA,CAAA;AAAA,cACTvB,EAAA,QAAAxa,EAAA,GAAAC,EACsB,OAAe4b,IAAA;AAAA,gBAAA3b,EAAAJ,GAAA;AAAA,kBAClC,YAAO0a,EAAA;AAAA,kBAAA,uBAAA,CAAA9Z,MAAA8Z,EAAA,kBAAA9Z;AAAA;;oBAIP,MAAA;AAAA,oBAAA,KAAA;AAAA;kBAGA,YAAU;AAAA,kBACV,MAAA;AAAA,kBAAA,UAAAN,EAAA,gBAAAoa,EAAA,eAAA;AAAA,kBAEU,SAAI,CAAA9Z,MAMPN,cANoBM,GAAc8Z,CAAA;AAAA,gBAAA,GAAA;AAAA,uCAErCwB,EAAG,MAAA;AAAA,oBAAAzb,EACJ,OAEOub,IAFP;AAAA,sBAAAlb,GAAA,OAAAC,EAAAmb,EAAA,UAAA,UAAA5b,EAAA,gBAAA4b,EAAA,WAAA,IAAA5b,EAAA,SAAA4b,EAAA,KAAA,CAAA,IAAA,MAAA,CAAA;AAAA;;;;;;;;;WAkBZ,GAAA,CAAA,UAAA,CAAA;AAAA,MAAA,CAAA;AAAA,QANA2B,GAAiB;AAAA,QACT,MAAA;AAAA,QAAA,qBAAA;AAAA,QACP,UAAOvd,EAAW,WAAA;AAAA,QAClB,qBAAkBK,EAAe,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAN,EAAA,WAAA,WAAAM;AAAA,QAC1B,OAAON,EAAE,WAAA;AAAA,QAAA,cAAA,CAAAia,MAAA,KAAAA;AAAA,QAChB,SAAMja,EAAE,WAAA;AAAA,QAAA,oBAAAK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAN,EAAA,WAAA,cAAAM;AAAA;;;;;uFCzEjBkd,KAAehhB,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,gBAAAihB;AAAA,IACA,cAAAC;AAAA,EACF;AAAA,EACA,QAAS;AAEA,WAAA;AAAA,MACL,QAFa7gB,EAAOvB,EAAW;AAAA,IAE/B;AAAA,EAEJ;AACF,CAAC;;;cCrBCuE,EAA+Cib,IAAA,MAAA;AAAA,IACvB9a,EAAA,WAAA,cAAAJ,EAAA,GAAoCob,GAAA2C,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAxC,EAA5D,IAAoF,EAAA;AAAA,IAAAnb,EAAA,WAAA,mBAAAA,EAAA,WAAA,kBAAAJ,EAAA,GAAAob,GAAA4C,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAzC,EAAA,IAAA,EAAA;AAAA;;qDCDhF0C,KAAqB,CAACC,MAAsCC,GAAqB;AAAA,EACrF,QAAAD;AAAA,EACA,OAAO;AACT,CAAC,GCmCDE,KAAexhB,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAAyhB;AAAA,IACA,YAAYJ,GAAmB,MAAM,OAAO,sBAAe,CAAC;AAAA,EAC9D;AAAA,EACA,OAAO;AAAA,IACL,mBAAmB;AAAA;AAAA,MAEjB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA;AAAA,MAEV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA;AAAA,MAEd,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,mBAAmB;AAAA;AAAA,MAEjB,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,SAAS;AAAA;AAAA,MAEP,SAAS;AAAA,IACX;AAAA,IACA,yBAAyB;AAAA;AAAA,MAEvB,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,OAAO;AAAA,QACd,WAAW;AAAA,UACT,OAAO;AAAA,UACP,WAAW;AAAA,QACb;AAAA,QACA,SAAS;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,QACb;AAAA,MAAA;AAAA,IAEJ;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,MAAOxU,GAAO,EAAE,QAAA8P,GAAQ,MAAAD,KAAQ;AAC9B,UAAMgF,IAAgB7gB,KAChB8gB,IAAW9gB,EAAI,EAAK,GACpB+gB,IAAajhB,EAAS,MAAMkM,EAAM,UAAU,GAC5CvM,IAAiBK,EAAS,MAAMkM,EAAM,kBAAkB,EAAE,GAC1DqN,IAAYvZ,EAAS,MAAMkM,EAAM,iBAAiB,GAClDgV,IAAoBlhB,EAAS,MAAMkM,EAAM,uBAAuB,GAChEiV,IAAenhB;AAAA,MACnB,MAAA;;AAAM,iBAAA1C,IAAAsC,EAAM2Z,CAAS,MAAf,gBAAAjc,EAAkB,iBAAgB,CAAC;AAAA;AAAA,IAAA,GAErC8jB,IAAoBphB,EAAS,MAAMkM,EAAM,iBAAiB,GAC1DmV,IAAerhB,EAAS,MAAA;;AAAM,cAAAU,KAAApD,IAAAsC,EAAM2Z,CAAS,MAAf,gBAAAjc,EAAkB,SAAlB,gBAAAoD,EAAwB,SAAS;AAAA,KAAa;AAElF,QAAIb,IAAgBD,EAAM2Z,CAAS,EAAE,gBACjC5C,GAAU/W,EAAM2Z,CAAS,EAAE,aAAa,IACxCrZ,EAAI,CAAE,CAAA;AACV,IAAAL,IAAgBK,EAAIL,CAAa;AAEjC,QAAIyhB,IAAgB1hB,EAAM2Z,CAAS,EAAE,gBACjC5C,GAAU/W,EAAM2Z,CAAS,EAAE,aAAa,IACxCrZ,EAAIyW,GAAUzX,GAAS,IAAI,CAAC;AAChC,IAAAoiB,IAAgBphB,EAAIohB,CAAa;AACjC,QAAIC,IAAe3hB,EAAM2Z,CAAS,EAAE,eAChC5C,GAAU/W,EAAM2Z,CAAS,EAAE,YAAY,IACvCrZ,EAAIyW,GAAUxX,EAAU,CAAC;AAC7B,IAAAoiB,IAAerhB,EAAIqhB,CAAY;AAEzB,UAAAC,IAAWthB,EAA8B,CAAA,CAAE,GAC3CmB,IAAc,CAACR,MAAmC;AACtD,MAAA2gB,EAAS,QAAQ3gB;AAAA,IAAA,GAEbf,IAAsB,CAAC2hB,MAAmC;AAC9D,MAAA5hB,EAAc,QAAQ;AAAA,QACpB,GAAGD,EAAMC,CAAa;AAAA,QACtB,GAAGD,EAAM6hB,CAAM;AAAA,MAAA;AAAA,IACjB,GAEIC,IAAsB,CAC1BhY,GACAiY,IAAmB,OAChB;AACH,MAAIA,IACFL,EAAc,QAAQ;AAAA,QACpB,GAAG1hB,EAAM0hB,CAAa;AAAA,QACtB,GAAG1hB,EAAM8J,CAAO;AAAA,MAAA,IAGlB4X,EAAc,QAAQ;AAAA,QACpB,GAAG1hB,EAAM8J,CAAO;AAAA,MAAA;AAAA,IAEpB,GAEIkY,IAAqB,CAAClY,MAAoC;AAC9D,MAAA6X,EAAa,QAAQ;AAAA,QACnB,GAAG3hB,EAAM2hB,CAAY;AAAA,QACrB,GAAG3hB,EAAM8J,CAAO;AAAA,MAAA;AAAA,IAClB,GAEImY,IAAc,MAAML,GACpBM,IAAsB,MAAM;AAChC,MAAAd,EAAS,QAAQ,IACbphB,EAAM2Z,CAAS,EAAE,kBACnB1Z,EAAc,QAAQ8W,GAAU/W,EAAM2Z,CAAS,EAAE,aAAa,IAE5D3Z,EAAM2Z,CAAS,EAAE,kBACnB+H,EAAc,QAAQ3K,GAAU/W,EAAM2Z,CAAS,EAAE,iBAAiBra,GAAS,IAAI,IAEjFoM,GAAS,MAAM;AACb,QAAA0V,EAAS,QAAQ;AAAA,MAAA,CAClB;AAAA,IAAA,GAEGe,IAAmB,OAChB;AAAA,MACL,eAAeniB,EAAMC,CAAa;AAAA,MAClC,eAAeD,EAAM0hB,CAAa;AAAA,MAClC,cAAc1hB,EAAM2hB,CAAY;AAAA,MAChC,cAAc3hB,EAAMuhB,CAAY;AAAA,MAChC,kBAAkBvhB,EAAM2Z,CAAS,EAAE;AAAA,IAAA,IAGjCyI,IAAsB,OAEnB;AAAA,MACL,GAFqBpiB,EAAMmhB,CAAa,EAAE,YAAY;AAAA,MAGtD,eAAenhB,EAAMC,CAAa;AAAA,IAAA;AAGrC,WAAe,mBAAmBkiB,GAClC,OAAe,sBAAsBC,GAClC9V,EAAM,WACA+T,EAAA7iB,IAAS8O,EAAM,OAAO,GAEhC+T,EAAQziB,IAAW;AAAA,MACjB,aAAA6D;AAAA,MACA,aAAAwgB;AAAA,IAAA,CACD;AAEK,UAAAI,IAAsB,CAACxhB,MAAc;AACzC,MAAAsb,EAAK,uBAAuBtb,CAAI;AAAA,IAAA,GAE5ByhB,IAAyB,CAACC,GAAezL,MAAuB;AACpE,MAAAqF,EAAK,0BAA0BoG,GAAK,EAAE,aAAAzL,EAAa,CAAA;AAAA,IAAA;AAErD,WAAAuJ,EAAQthB,IAAgB0iB,CAAY,GAC5BpB,EAAArhB,IAAgBsN,EAAM,YAAY,GAC1C+T,EAAQxiB,IAAoB8b,CAAS,GACrC0G,EAAQviB,IAAgBmC,CAAa,GACrCogB,EAAQniB,IAAgBwjB,CAAa,GACrCrB,EAAQliB,IAAewjB,CAAY,GACnCtB,EAAQ9hB,IAAa8iB,CAAU,GAC/BhB,EAAQriB,IAAmBwjB,CAAiB,GAC5CnB,EAAQ1iB,IAAiBoC,CAAc,GACvCsgB,EAAQtiB,IAAuBmC,CAAmB,GAClDmgB,EAAQhiB,IAAuByjB,CAAmB,GAClDzB,EAAQ/hB,IAAsB0jB,CAAkB,GAChD3B,EAAQ3hB,IAAwB4iB,CAAiB,GACjDjB,EAAQ1hB,IAAuB0jB,CAAmB,GAClDhC,EAAQzhB,IAA0B0jB,CAAsB,GAChDjC,EAAAxhB,IAAqByN,EAAM,iBAAiB,GAC5C+T,EAAAvhB,IAAawN,EAAM,UAAU,GAC9B8P,EAAA;AAAA,MACL,eAAAnc;AAAA,MACA,eAAAyhB;AAAA,MACA,qBAAAQ;AAAA,IAAA,CACD,GACM;AAAA,MACL,UAAAd;AAAA,MACA,cAAAK;AAAA,MACA,eAAAN;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;MCnOMze,KAAM;AAAA,EAAA,KAAA;AAAA;GACJW,KAAM;AAAA,EAAA,KAAA;AAAA;;;4BAD4Bmf,IAAA5f,EAAA,aAAA;AACD,SAAAK,EAAA,wBAAAJ,EAAA,GAAAC,EAAtC,OAEMJ,IAFN;AAAA,IACEO,EAAA,eAEGmb,EAAK,IAAC,EAAA,KAFTvb,EAAA,GAAAC,EAAA,OAAAO,IAAA;AAAA;IAEF,CAAA;AAAA,IAAWD,EAAA,OAAA;AAAA,MACT,OAAA0a,GAAmC,uBAAlB7a,EAAe,eAAA,SAAA,EAAA,CAAA;AAAA,IAAA,GAAA;AAAA;;;;uFCJzBwf,KAAuBplB,GAAYqlB,EAAgB,GCGnDC,KAAmB,CAACrW,IAA+B,OAAO;AACrE,QAAMsW,IAAoB,CAACC,IAAqC,OAAO;AACrE,UAAM,EAAE,OAAAC,GAAO,MAAArF,GAAM,UAAAsF,GAAU,MAAAC,GAAM,WAAA9J,GAAW,UAAAE,EAAa,IAAAyJ;AACtD,WAAA;AAAA,MACL,OAAAC;AAAA,MACA,YAAYrF;AAAA,MACZ,UAAAsF;AAAA,MACA,MAAAC;AAAA,MACA,UAAU;AAAA,MACV,cAAc9J;AAAA,MACd,UAAAE;AAAA,IAAA;AAAA,EACF,GAGI6J,IAAe,CAACnL,MAAgB;AAChC,IAAAoL,GAAOpL,GAAQ,UAAU,MACvBA,EAAO,cAAc,WACvBA,EAAO,QAAQA,EAAO,WAClBA,EAAO,aAAa,gBACfA,EAAA,aAAa,OAAOA,EAAO,aAAa,OAGnD,OAAOA,EAAO,WAEZoL,GAAOpL,GAAQ,WAAW,KAC5B,OAAOA,EAAO,WAEZoL,GAAOpL,GAAQ,YAAY,KAC7B,OAAOA,EAAO;AAAA,EAChB,GAGIqL,IAAmB,CAACliB,MAAoC;AAC5D,UAAM0V,IAAS,CAAA;AACf,WAAI1V,KAAA,QAAAA,EAAM,UACHA,EAAA,QAAQ,CAACC,MAAS;AACjB,UAAAA,EAAK,QAAQA,EAAK,YAAY;AAC1B,cAAAkiB,IAAc,CAACliB,EAAK,WAAW,KAAK,CAACiE,MAAWA,EAAE,QAAQA,EAAE,UAAU;AAC5E,QAAAjE,EAAK,WAAW,QAAQ,CAACmiB,GAASra,MAAkB;AAClD,UAAAia,EAAaI,CAAE,GACXD,IACEpa,IAAQ9H,EAAK,WAAW,SAAS,IACnCyV,EAAO,KAAK;AAAA,YACV,MAAMzV,EAAK;AAAA,YACX,GAAGmiB;AAAA,UAAA,CACJ,IAED1M,EAAO,KAAK0M,CAAE,IAGZA,EAAG,QAAQA,EAAG,aAChB1M,EAAO,KAAK;AAAA,YACV,YAAYwM,EAAiB,CAACE,CAAE,CAAC;AAAA,YACjC,MAAMniB,EAAK;AAAA,UAAA,CACZ,IAEDyV,EAAO,KAAK0M,CAAE;AAAA,QAElB,CACD;AAAA;AAED,QAAAJ,EAAa/hB,CAAI,GACjByV,EAAO,KAAKzV,CAAI;AAAA,IAClB,CACD,GAEIyV;AAAA,EAAA,GAGH2M,IAAkB,CAACC,IAAmC,OAAO;AAC3D,UAAA;AAAA,MACJ,OAAAT;AAAA,MACA,MAAArF;AAAA,MACA,UAAAsF;AAAA,MACA,MAAAC;AAAA,MACA,WAAA9J;AAAA,MACA,UAAAsK,IAAW;AAAA,MACX,gBAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,YAAAlN;AAAA,MACA,WAAAmN;AAAA,IACE,IAAAN;AACA,QAAAO;AACJ,WAAIpN,MACFoN,IAAgBX,EAAiBzM,CAAU,IAEtC;AAAA,MACL,OAAOoM,EAAM,KAAK;AAAA,MAClB,YAAYrF;AAAA,MACZ,UAAAsF;AAAA,MACA,MAAAC;AAAA,MACA,UAAAQ;AAAA,MACA,cAActK;AAAA,MACd,WAAA2K;AAAA,MACA,gBAAAJ;AAAA,MACA,oBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,YAAYE;AAAA,IAAA;AAAA,EACd;AAGF,SAAO,YAAY;AACjB,UAAM,EAAE,eAAA7jB,GAAe,MAAA4Z,GAAM,SAAAha,GAAS,cAAAkkB,MAAiBzX;AAEnD,QAAA;AAAA,MACF,QAAAlC;AAAA,MACA,YAAAjK;AAAA,MACA,QAAA6jB,IAAS;AAAA;AAAA,MACT,OAAAC;AAAA;AAAA,MACA,WAAAC;AAAA;AAAA,MACA,oBAAAlN,IAAqB,CAAC;AAAA,MACtB,YAAAG,IAAa,CAAC;AAAA,MACd,cAAAC,IAAe,CAAC;AAAA,MAChB,eAAAC,IAAgB,CAAC;AAAA,MACjB,iBAAAC,IAAkB,CAAC;AAAA,MACnB,YAAAC,IAAa,CAAC;AAAA;AAAA,MAEd,cAAA0F;AAAA;AAAA,MACA,YAAAkH;AAAA;AAAA,MACA,SAAAC,IAAU;AAAA;AAAA,MACV,eAAA3M,IAAgB,CAAC;AAAA,MACjB,eAAAR,IAAgB,CAAC;AAAA,IAAA,IACfhX,KAAiB,CAAA;AAErB,IAAIgkB,KAAS,SACPjK,GAAkBH,GAAM,CAAC,SAAS,MAAM,CAAC,IACnCoK,IAAA,MAEAA,IAAA;AAWR,QAAAI;AACJ,QAAI,MAAM,QAAQrN,CAAkB,KAAKA,EAAmB,SAAS,GAAG;AACtE,YAAM1J,IAAM0J,EAAmB;AAC/B,eAAS1R,IAAI,GAAGA,IAAIgI,GAAKhI,KAAK;AAC5B,cAAMpE,IAAO8V,EAAmB1R,CAAC,KAAK,CAAA,GAChC,EAAE,OAAAwd,IAAQ,IAAI,MAAArF,IAAO,IAAI,MAAAuF,IAAO,IAAO,MAAAsB,GAAM,aAAAC,GAAa,YAAA7N,GAAY,UAAA0C,EAAA,IAAalY;AAErF,YAAA8hB,KAAQ1V,MAAQ,GAAG;AACJ,UAAA+W,IAAA;AAAA,YACf,OAAOvB,EAAM,KAAK;AAAA,YAClB,YAAYrF;AAAA,YACZ,MAAAuF;AAAA,YACA,MAAAsB;AAAA,YACA,aAAAC;AAAA,YACA,UAAAnL;AAAA,YACA,YAAY+J,EAAiBzM,CAAU;AAAA,UAAA;AAEzC;AAAA;AAAA;AAAA;AAKF,QAAA8N;AACJ,QAAI,MAAM,QAAQrN,CAAU,KAAKA,EAAW,SAAS,GAAG;AACtD,YAAM7J,IAAM6J,EAAW;AACvB,eAAS7R,IAAI,GAAGA,IAAIgI,GAAKhI,KAAK;AAC5B,cAAMpE,IAAOiW,EAAW7R,CAAC,KAAK,CAAA,GACxB,EAAE,OAAAwd,IAAQ,IAAI,MAAArF,IAAO,IAAI,MAAAuF,IAAO,IAAO,MAAAsB,GAAM,aAAAC,GAAa,YAAA7N,GAAY,UAAA0C,EAAA,IAAalY;AAErF,YAAA8hB,KAAQ1V,MAAQ,GAAG;AACZ,UAAAkX,IAAA;AAAA,YACP,OAAO1B,EAAM,KAAK;AAAA,YAClB,YAAYrF;AAAA,YACZ,MAAAuF;AAAA,YACA,MAAAsB;AAAA,YACA,aAAAC;AAAA,YACA,YAAYpB,EAAiBzM,CAAU;AAAA,YACvC,UAAA0C;AAAA,UAAA;AAEF;AAAA;AAAA;AAAA;AAKN,UAAMqL,IAAa,CAAA;AACnB,QAAI,MAAM,QAAQxN,CAAa,KAAKA,EAAc,SAAS,GAAG;AAC5D,YAAM3J,IAAM2J,EAAc;AAC1B,eAAS3R,IAAI,GAAGA,IAAIgI,GAAKhI,KAAK;AAC5B,cAAMpE,IAAO+V,EAAc3R,CAAC,KAAK,CAAA,GAC3B,EAAE,OAAAwd,IAAQ,IAAI,MAAArF,IAAO,IAAI,MAAAuF,IAAO,IAAO,MAAAsB,GAAM,aAAAC,GAAa,YAAA7N,GAAY,UAAA0C,EAAA,IAAalY;AACzF,QAAAujB,EAAW,KAAK;AAAA,UACd,UAAArL;AAAA,UACA,OAAO0J,EAAM,KAAK;AAAA,UAClB,YAAYrF;AAAA,UACZ,MAAAuF;AAAA,UACA,MAAAsB;AAAA,UACA,aAAAC;AAAA,UACA,YAAYpB,EAAiBzM,CAAU;AAAA,QAAA,CACxC;AAAA;AAAA;AAIL,UAAMgO,IAAe,CAAA;AACJ,IAAApN,KAAA,QAAAA,EAAA,QAAQ,CAACuL,MAAuC;AAClD,MAAA6B,EAAA,KAAK9B,EAAkBC,CAAW,CAAC;AAAA,IAAA;AAIlD,UAAM8B,IAAgB,CAAA;AAclB,QAbUvN,KAAA,QAAAA,EAAA,QAAQ,CAACwN,MAAoC;AACzD,MAAAA,EAAS,WAAW,QACND,EAAA,KAAKrB,EAAgBsB,CAAQ,CAAC;AAAA,IAAA,IAE/BvN,KAAA,QAAAA,EAAA,QAAQ,CAACwN,MAAqC;AAC3D,MAAAA,EAAU,WAAW,SACPF,EAAA,KAAKrB,EAAgBuB,CAAS,CAAC;AAAA,IAAA,IAEnCtN,KAAA,QAAAA,EAAA,QAAQ,CAACgM,MAAqC;AACxD,MAAAA,EAAU,WAAW,QACPoB,EAAA,KAAKrB,EAAgBC,CAAS,CAAC;AAAA,IAAA,IAG3CQ,KAAgBlK,MAAS;AAG3B,UADYqK,IAAA,cACRS,EAAc,WAAW,KAAKF,EAAW,WAAW;AACtD;AAAA,WAGO;AAAA,UAAAR,MAAU,OAAOS,EAAa,WAAW;AAClD;AAES,UAAAT,MAAU,OAAOU,EAAc,WAAW;AACnD;AAAA;AAEE,QAAA;AAmBK,aAjBK,MAAM9kB,EAAQ,KAAK,GAAGpC,cAAyB;AAAA,QACzD,QAAA2M;AAAA,QACA,YAAAjK;AAAA,QACA,QAAA6jB;AAAA,QACA,OAAAC;AAAA,QACA,WAAAC;AAAA,QACA,gBAAAG;AAAA,QACA,QAAAG;AAAA,QACA,eAAAG;AAAA,QACA,cAAAD;AAAA,QACA,UAAU;AAAA,QACV,eAAAjN;AAAA,QACA,YAAAgN;AAAA,QACA,cAAAxH;AAAA,QACA,YAAAkH;AAAA,QACA,SAAAC;AAAA,MAAA,CACD;AAAA,aAEM3U;AACP,cAAQ,MAAMA,CAAC;AAAA,IACjB;AAAA,EAAA;AAEJ,GC3PAqV,KAAerlB,GAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IAAA,OACVC;AAAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,eAAe;AAAA;AAAA,MAEb,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,IACA,eAAe;AAAA;AAAA,MAEb,MAAM;AAAA,MACN,SAAS,MAAM;AAAA,MAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAO4M,GAAO,EAAE,QAAA8P,KAAU;AAelB,UAAAsF,IAAgBthB,EAAS,MACzBkM,EAAM,gBACDtM,EAAMsM,EAAM,aAAa,IAEzByY,CAIV,GACK9kB,IAAgBG,EAAS,MACzBkM,EAAM,gBACDtM,EAAMsM,EAAM,aAAa,IAEzB0Y,CAIV,GACKnlB,IAAUC,EAAOtC,EAAO;AAC9B,QAAIynB,IAAkC;AAChC,UAAAllB,IAAiBD,EAAOnC,EAAe,KAAK,IAC5CqnB,IAAqBllB,EAAOhC,EAAc,KAAK,CAAA,GAC/CinB,IAAsBjlB,EAAO5B,EAAc,KAAK,CAAA,GAChDgnB,IAAY5kB,EAAiB,IAAI,GACjC6kB,IAAe7kB,EAAiB,IAAI,GACpC8kB,IAAU9kB,KACV+kB,IAAU/kB,EAAI,EAAK,GACnBglB,IAAUhlB,EAAI,EAAK,GACnBilB,IAAWnlB,EAAS,MAAOklB,EAAQ,QAAQlnB,KAAiB,EAAG,GAC/DonB,IAAYllB,EAAS,CAAA,CAAE,GACvBmlB,IAAWnlB,KACXolB,IAActlB,EAAS,MAAM;AAE3B,YAAAulB,IAAqB3lB,EAAM0hB,EAAc,KAAK;AAChD,cAAAiE,KAAA,gBAAAA,EAAoB,UAAS,gBACxBF,EAAS,QAEXG,GAA4BD,GAAoB3lB,EAAMwlB,CAAS,GAAGD,EAAS,KAAK;AAAA,IAAA,CACxF,GACKM,IAAyB,CAC7BhlB,IAAY,CACZ,GAAAilB,GACAC,IAA6B,OAC1B;AACG,YAAAC,IAAiBD,IAAoBD,IAAwB;AACnE,MAAAN,EAAU,QAAQS,GAA4CplB,GAAMmlB,CAAc;AAAA,IAAA,GAE9EE,IAA4B,CAACrlB,IAAY,CAAA,GAAImlB,MAA6C;AAC9F,MAAAR,EAAU,QAAQW,GAA8CtlB,GAAMmlB,CAAc;AAAA,IAAA,GAEhFI,IAAsB,YAAY;;AAClC,UAAA;AACF,cAAMC,IAAgB1D,GAAiB;AAAA,UACrC,eAAe3iB,EAAMC,EAAc,KAAK;AAAA,UACxC,OAAMvC,IAAAsC,EAAM0hB,EAAc,KAAK,MAAzB,gBAAAhkB,EAA4B;AAAA,UAClC,SAAAmC;AAAA,UACA,gBAAAE;AAAA,QAAA,CACD;AACD,QAAAslB,EAAQ,QAAQ;AACV,cAAAzjB,IAAM,MAAMykB,KACZ,EAAE,SAAArkB,IAAU,CAAI,GAAA,MAAAF,IAAO,CAAA,EAAO,MAAAhB,IAAAc,KAAA,gBAAAA,EAAK,SAAL,gBAAAd,EAAW,SAAQ;AACvD,cAAIwlB,IAAAtmB,EAAM0hB,EAAc,KAAK,MAAzB,gBAAA4E,EAA4B,UAAS,OAAO;AAC9C,cAAIxZ,IAAM,CAAA;AACN,cAAA9K,EAAQ,SAAS,GAAG;AAChB,kBAAAyb,IAAOzb,EAAQ,CAAC,GAChBV,IAAQU,EAAQ,CAAC;AACjB,YAAA8K,IAAAhL,EAAK,IAAI,CAACZ,OACP;AAAA,cACL,MAAMA,EAAKuc,CAAI;AAAA,cACf,OAAOvc,EAAKI,CAAK;AAAA,YAAA,EAEpB;AAAA;AAEH,UAAA4kB,EAA0BpZ,CAAG;AAAA,eACxB;AACD,cAAAyZ;AACA,UAAAvkB,EAAQ,SAAS,MACNukB,IAAA;AAAA,YACX,MAAMvkB,EAAQ,CAAC;AAAA,YACf,OAAOA,EAAQ,MAAM,CAAC,EAAE,IAAI,CAACC,OACpB;AAAA,cACL,OAAOA;AAAA,cACP,OAAOA;AAAA,YAAA,EAEV;AAAA,UAAA,IAGkB4jB,EAAA/jB,GAAMykB,GAAY,EAAI;AAAA;AAAA,eAExC9W;AACP,gBAAQ,MAAMA,CAAC;AAAA,MAAA,UACf;AACA,QAAA4V,EAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA,GAEImB,IAAc;AAAA,MAClB,OAAO;AAAA,QACL,MAAM;AAAA,QACN,GAAG;AAAA,QACH,GAAG;AAAA,QACH,WAAW;AAAA,UACT,UAAU;AAAA,UACV,YAAY;AAAA,QACd;AAAA,MACF;AAAA,IAAA,GAEIC,IAAiB,MAAM;AAE3B,MADgBzmB,EAAMwlB,CAAS,EAAE,QAAQ,WAAW,IAE1CJ,EAAA,MAAM,UAAUoB,GAAa,EAAI,IAEzCpB,EAAQ,MAAM,UAAUM,EAAY,OAAO,EAAI;AAAA,IACjD,GAEIgB,IAAc,MAAM;AACxB,MAAI1mB,EAAM0hB,EAAc,KAAK,EAAE,SAAS,iBAClB0E;IACtB,GAEIO,IAAe,MAAM;;AACzB,OAAAjpB,IAAA0nB,EAAQ,UAAR,QAAA1nB,EAAe;AAAA,IAAO;AAExB,WAAAmf;AAAA,MACE6I;AAAA,MACA,MAAM;AACW,QAAAe;MACjB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,MACR;AAAA,IAAA,GAEF5J;AAAA,MACE,MAAM7c,EAAM0hB,EAAc,KAAK,EAAE;AAAA,MACjC,CAACkF,MAAuB;AAClB,YAAA;AAEF,gBAAMC,IAAW;AACR,UAAApB,EAAA,QAAQoB,EAASD,CAAU;AAAA,iBAC7BnX;AACP,kBAAQ,MAAMA,CAAC;AAAA,QACjB;AAAA,MACF;AAAA,MACA;AAAA,QACE,WAAW;AAAA,MACb;AAAA,IAAA,GAEFhN,GAAU,MAAM;AACd,MAAI0iB,EAAa,UACJF,IAAA,IAAI,eAAe0B,CAAY,GACjC1B,EAAA,QAAQE,EAAa,KAAK,IAErCC,EAAQ,QAAQ0B,GAAQ,KAAK5B,EAAU,KAAK;AAAA,IAAA,CAC7C,GACD6B,GAAgB,MAAM;AACpB,MAAA3B,EAAQ,MAAM,WACVH,MACFA,EAAS,WAAW,GACTA,IAAA;AAAA,IACb,CACD,GACM7I,EAAA;AAAA,MACL,aAAAsK;AAAA,IAAA,CACD,GACM;AAAA,MACL,WAAAxB;AAAA,MACA,SAAAG;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;MCtNkC3iB,KAAC;AAAA,EAAA,OAAA;AAAA;GAEYW,KAAY;AAAA,EAAA,OAAA,EAAA,OAAA,QAAA,QAAA,OAAA;AAAA;;;AAF1D,QAAAL,IAAAJ,EAIM,QAJN;AACW,SAAAC,EAAiB,GAAAC,EAAA,OAAAJ,IAAA;AAAA,IAAAK,EAAEC,GAA6B;AAAA,MAAC,UAAIC,EAAU;AAAA,MAAA,kBAAA;AAAA;;;;;;;;;uFCA/D+jB,KAAiB3pB,GAAY4pB,EAAU;;;;8CCA9CC,KAAU,CAAC3pB,GAAUuM,MAAiB;AACpC,QAAA,EAAE,SAAAjK,EAAY,IAAAiK;AAChB,EAAAvM,EAAA,QAAQ,YAAYsC,CAAO,GAC/B,OAAO,KAAKsnB,EAAU,EAAE,QAAQ,CAAC7d,MAAQ;AACjC,UAAAqQ,IAAYwN,GAAW7d,CAAG;AAChC,IAAIqQ,EAAU,WACZpc,EAAI,IAAIoc,CAAS;AAAA,EACnB,CACD;AACH,GAKe3Q,KAAA;AAAA,EACb,SAAAke;AACF;","x_google_ignoreList":[11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
|