{"version":3,"file":"useSelection.cjs","sources":["../../../../../../../packages/components/table/src/hooks/useSelection.tsx"],"sourcesContent":["import type { Key } from '@antdv/types';\nimport type { GetCheckDisabled } from '@antdv/vue-components';\nimport type { FixedType } from '@antdv/vue-components/vc-table/src/interface';\nimport type { Ref } from 'vue';\nimport type { CheckboxProps } from '../../../checkbox';\nimport type { DataNode } from '../../../tree';\n\nimport type {\n  SelectionItem,\n  TableColumnsType,\n  TableColumnType,\n  TableRowSelection,\n  TransformColumns,\n  UseSelectionConfig,\n} from '../interface';\nimport { DownOutlined } from '@ant-design/icons-vue';\n\nimport { useMergedState, useState } from '@antdv/hooks';\n\nimport { devWarning } from '@antdv/utils';\nimport {\n  arrAdd,\n  arrDel,\n  conductCheck,\n  convertDataToEntities,\n  INTERNAL_COL_DEFINE,\n  useMaxLevel,\n} from '@antdv/vue-components';\nimport { computed, shallowRef, watchEffect } from 'vue';\nimport Checkbox from '../../../checkbox';\n\nimport Dropdown from '../../../dropdown';\nimport Menu from '../../../menu';\nimport Radio from '../../../radio';\n\n// TODO: warning if use ajax!!!\n\nexport const SELECTION_COLUMN = {} as const;\nexport const SELECTION_ALL = 'SELECT_ALL' as const;\nexport const SELECTION_INVERT = 'SELECT_INVERT' as const;\nexport const SELECTION_NONE = 'SELECT_NONE' as const;\nconst EMPTY_LIST: Key[] = [];\n\nexport type INTERNAL_SELECTION_ITEM =\n  | SelectionItem\n  | typeof SELECTION_ALL\n  | typeof SELECTION_INVERT\n  | typeof SELECTION_NONE;\n\nfunction flattenData<RecordType>(childrenColumnName: string, data: RecordType[]): RecordType[] {\n  let list: RecordType[] = [];\n  (data || []).forEach((record) => {\n    list.push(record);\n\n    if (record && typeof record === 'object' && childrenColumnName in record && record[childrenColumnName]) {\n      list = [\n        ...list,\n        ...flattenData<RecordType>(childrenColumnName, (record as any)[childrenColumnName]),\n      ];\n    }\n  });\n\n  return list;\n}\n\nexport default function useSelection<RecordType>(\n  rowSelectionRef: Ref<TableRowSelection<RecordType> | undefined>,\n  configRef: UseSelectionConfig<RecordType>,\n): [TransformColumns<RecordType>, Ref<Set<Key>>] {\n  const mergedRowSelection = computed(() => {\n    const temp = rowSelectionRef.value || {};\n    const { checkStrictly = true } = temp;\n    return { ...temp, checkStrictly };\n  });\n\n  // ========================= Keys =========================\n  const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(\n    mergedRowSelection.value.selectedRowKeys\n      || mergedRowSelection.value.defaultSelectedRowKeys\n      || EMPTY_LIST,\n    {\n      value: computed(() => mergedRowSelection.value.selectedRowKeys),\n    },\n  );\n\n  // ======================== Caches ========================\n  const preserveRecordsRef = shallowRef(new Map<Key, RecordType>());\n\n  const updatePreserveRecordsCache = (keys: Key[]) => {\n    if (mergedRowSelection.value.preserveSelectedRowKeys) {\n      const newCache = new Map<Key, RecordType>();\n      // Keep key if mark as preserveSelectedRowKeys\n      keys.forEach((key) => {\n        let record = configRef.getRecordByKey(key);\n\n        if (!record && preserveRecordsRef.value.has(key))\n          record = preserveRecordsRef.value.get(key)!;\n\n        newCache.set(key, record);\n      });\n      // Refresh to new cache\n      preserveRecordsRef.value = newCache;\n    }\n  };\n\n  watchEffect(() => {\n    updatePreserveRecordsCache(mergedSelectedKeys.value);\n  });\n\n  const keyEntities = computed(() =>\n    mergedRowSelection.value.checkStrictly\n      ? null\n      : convertDataToEntities(configRef.data.value as unknown as DataNode[], {\n        externalGetKey: configRef.getRowKey.value as any,\n        childrenPropName: configRef.childrenColumnName.value,\n      }).keyEntities,\n  );\n\n  // Get flatten data\n  const flattedData = computed(() =>\n    flattenData(configRef.childrenColumnName.value, configRef.pageData.value),\n  );\n\n  // Get all checkbox props\n  const checkboxPropsMap = computed(() => {\n    const map = new Map<Key, Partial<CheckboxProps>>();\n    const getRowKey = configRef.getRowKey.value;\n    const getCheckboxProps = mergedRowSelection.value.getCheckboxProps;\n    flattedData.value.forEach((record, index) => {\n      const key = getRowKey(record, index);\n      const checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n      map.set(key, checkboxProps);\n\n      if (\n        process.env.NODE_ENV !== 'production'\n        && ('checked' in checkboxProps || 'defaultChecked' in checkboxProps)\n      ) {\n        devWarning(\n          false,\n          'Table',\n          'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.',\n        );\n      }\n    });\n    return map;\n  });\n  const { maxLevel, levelEntities } = useMaxLevel(keyEntities);\n  const isCheckboxDisabled: GetCheckDisabled<RecordType> = (r: RecordType) =>\n    !!checkboxPropsMap.value.get(configRef.getRowKey.value(r))?.disabled;\n\n  const selectKeysState = computed(() => {\n    if (mergedRowSelection.value.checkStrictly)\n      return [mergedSelectedKeys.value || [], []];\n\n    const { checkedKeys, halfCheckedKeys } = conductCheck(\n      mergedSelectedKeys.value,\n      true,\n      keyEntities.value,\n      maxLevel.value,\n      levelEntities.value,\n      isCheckboxDisabled as any,\n    );\n    return [checkedKeys || [], halfCheckedKeys];\n  });\n\n  const derivedSelectedKeys = computed(() => selectKeysState.value[0]);\n  const derivedHalfSelectedKeys = computed(() => selectKeysState.value[1]);\n\n  const derivedSelectedKeySet = computed<Set<Key>>(() => {\n    const keys\n      = mergedRowSelection.value.type === 'radio'\n        ? derivedSelectedKeys.value.slice(0, 1)\n        : derivedSelectedKeys.value;\n    return new Set(keys);\n  });\n  const derivedHalfSelectedKeySet = computed(() =>\n    mergedRowSelection.value.type === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys.value),\n  );\n\n  // Save last selected key to enable range selection\n  const [lastSelectedKey, setLastSelectedKey] = useState<Key | null>(null);\n\n  // // Reset if rowSelection reset\n  // we use computed to reset, donot need setMergedSelectedKeys again like react\n  // https://github.com/vueComponent/ant-design-vue/issues/4885\n  // watchEffect(() => {\n  //   if (!rowSelectionRef.value) {\n  //     setMergedSelectedKeys([]);\n  //   }\n  // });\n\n  const setSelectedKeys = (keys: Key[]) => {\n    let availableKeys: Key[];\n    let records: RecordType[];\n    updatePreserveRecordsCache(keys);\n    const { preserveSelectedRowKeys, onChange: onSelectionChange } = mergedRowSelection.value;\n    const { getRecordByKey } = configRef;\n    if (preserveSelectedRowKeys) {\n      availableKeys = keys;\n      records = keys.map(key => preserveRecordsRef.value.get(key)!);\n    } else {\n      // Filter key which not exist in the `dataSource`\n      availableKeys = [];\n      records = [];\n\n      keys.forEach((key) => {\n        const record = getRecordByKey(key);\n        if (record !== undefined) {\n          availableKeys.push(key);\n          records.push(record);\n        }\n      });\n    }\n\n    setMergedSelectedKeys(availableKeys);\n\n    onSelectionChange?.(availableKeys, records);\n  };\n\n  // ====================== Selections ======================\n  // Trigger single `onSelect` event\n  const triggerSingleSelection = (key: Key, selected: boolean, keys: Key[], event: Event) => {\n    const { onSelect } = mergedRowSelection.value;\n    const { getRecordByKey } = configRef || {};\n    if (onSelect) {\n      const rows = keys.map(k => getRecordByKey(k));\n      onSelect(getRecordByKey(key), selected, rows, event);\n    }\n\n    setSelectedKeys(keys);\n  };\n\n  const mergedSelections = computed(() => {\n    const { onSelectInvert, onSelectNone, selections, hideSelectAll } = mergedRowSelection.value;\n\n    const { data, pageData, getRowKey, locale: tableLocale } = configRef;\n\n    if (!selections || hideSelectAll)\n      return null;\n\n    const selectionList: INTERNAL_SELECTION_ITEM[]\n      = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n\n    return selectionList.map((selection: INTERNAL_SELECTION_ITEM) => {\n      if (selection === SELECTION_ALL) {\n        return {\n          key: 'all',\n          text: tableLocale.value.selectionAll,\n          onSelect() {\n            setSelectedKeys(\n              data.value\n                .map((record, index) => getRowKey.value(record, index))\n                .filter((key) => {\n                  const checkProps = checkboxPropsMap.value.get(key);\n                  return !checkProps?.disabled || derivedSelectedKeySet.value.has(key);\n                }),\n            );\n          },\n        };\n      }\n      if (selection === SELECTION_INVERT) {\n        return {\n          key: 'invert',\n          text: tableLocale.value.selectInvert,\n          onSelect() {\n            const keySet = new Set(derivedSelectedKeySet.value);\n            pageData.value.forEach((record, index) => {\n              const key = getRowKey.value(record, index);\n              const checkProps = checkboxPropsMap.value.get(key);\n              if (!checkProps?.disabled) {\n                if (keySet.has(key))\n                  keySet.delete(key);\n                else\n                  keySet.add(key);\n              }\n            });\n\n            const keys = Array.from(keySet);\n            if (onSelectInvert) {\n              devWarning(\n                false,\n                'Table',\n                '`onSelectInvert` will be removed in future. Please use `onChange` instead.',\n              );\n              onSelectInvert(keys);\n            }\n\n            setSelectedKeys(keys);\n          },\n        };\n      }\n      if (selection === SELECTION_NONE) {\n        return {\n          key: 'none',\n          text: tableLocale.value.selectNone,\n          onSelect() {\n            onSelectNone?.();\n            setSelectedKeys(\n              Array.from(derivedSelectedKeySet.value).filter((key) => {\n                const checkProps = checkboxPropsMap.value.get(key);\n                return checkProps?.disabled;\n              }),\n            );\n          },\n        };\n      }\n      return selection as SelectionItem;\n    });\n  });\n  const flattedDataLength = computed(() => flattedData.value.length);\n  // ======================= Columns ========================\n  const transformColumns = (columns: TableColumnsType<RecordType>): TableColumnsType<RecordType> => {\n    const {\n      onSelectAll,\n      onSelectMultiple,\n      columnWidth: selectionColWidth,\n      type: selectionType,\n      fixed,\n      renderCell: customizeRenderCell,\n      hideSelectAll,\n      checkStrictly,\n    } = mergedRowSelection.value;\n\n    const { prefixCls, getRecordByKey, getRowKey, expandType, getPopupContainer } = configRef;\n    if (!rowSelectionRef.value) {\n      if (process.env.NODE_ENV !== 'production') {\n        devWarning(\n          !columns.includes(SELECTION_COLUMN),\n          'Table',\n          '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.',\n        );\n      }\n\n      return columns.filter(col => col !== SELECTION_COLUMN);\n    }\n\n    // Support selection\n    let cloneColumns = columns.slice();\n    const keySet = new Set(derivedSelectedKeySet.value);\n\n    // Record key only need check with enabled\n    const recordKeys = flattedData.value\n      .map(getRowKey.value)\n      .filter(key => !checkboxPropsMap.value.get(key)!.disabled);\n    const checkedCurrentAll = recordKeys.every(key => keySet.has(key));\n    const checkedCurrentSome = recordKeys.some(key => keySet.has(key));\n\n    const onSelectAllChange = () => {\n      const changeKeys: Key[] = [];\n\n      if (checkedCurrentAll) {\n        recordKeys.forEach((key) => {\n          keySet.delete(key);\n          changeKeys.push(key);\n        });\n      } else {\n        recordKeys.forEach((key) => {\n          if (!keySet.has(key)) {\n            keySet.add(key);\n            changeKeys.push(key);\n          }\n        });\n      }\n\n      const keys = Array.from(keySet);\n\n      onSelectAll?.(\n        !checkedCurrentAll,\n        keys.map(k => getRecordByKey(k)),\n        changeKeys.map(k => getRecordByKey(k)),\n      );\n\n      setSelectedKeys(keys);\n    };\n\n    // ===================== Render =====================\n    // Title Cell\n    let title;\n    if (selectionType !== 'radio') {\n      let customizeSelections;\n      if (mergedSelections.value) {\n        const menu = (\n          <Menu getPopupContainer={getPopupContainer.value}>\n            {mergedSelections.value.map((selection, index) => {\n              const { key, text, onSelect: onSelectionClick } = selection;\n              return (\n                <Menu.Item\n                  key={key || index}\n                  onClick={() => {\n                    onSelectionClick?.(recordKeys);\n                  }}\n                >\n                  {text}\n                </Menu.Item>\n              );\n            })}\n          </Menu>\n        );\n        customizeSelections = (\n          <div class={`${prefixCls.value}-selection-extra`}>\n            <Dropdown overlay={menu} getPopupContainer={getPopupContainer.value}>\n              <span>\n                <DownOutlined />\n              </span>\n            </Dropdown>\n          </div>\n        );\n      }\n\n      const allDisabledData = flattedData.value\n        .map((record, index) => {\n          const key = getRowKey.value(record, index);\n          const checkboxProps = checkboxPropsMap.value.get(key) || {};\n          return { checked: keySet.has(key), ...checkboxProps };\n        })\n        .filter(({ disabled }) => disabled);\n\n      const allDisabled\n        = !!allDisabledData.length && allDisabledData.length === flattedDataLength.value;\n\n      const allDisabledAndChecked = allDisabled && allDisabledData.every(({ checked }) => checked);\n      const allDisabledSomeChecked = allDisabled && allDisabledData.some(({ checked }) => checked);\n\n      title = !hideSelectAll && (\n        <div class={`${prefixCls.value}-selection`}>\n          <Checkbox\n            checked={\n              !allDisabled ? (!!flattedDataLength.value && checkedCurrentAll) : allDisabledAndChecked\n            }\n            indeterminate={\n              !allDisabled\n                ? (!checkedCurrentAll && checkedCurrentSome)\n                : (!allDisabledAndChecked && allDisabledSomeChecked)\n            }\n            onChange={onSelectAllChange}\n            disabled={flattedDataLength.value === 0 || allDisabled}\n            aria-label={customizeSelections ? 'Custom selection' : 'Select all'}\n            skipGroup\n          />\n          {customizeSelections}\n        </div>\n      );\n    }\n\n    // Body Cell\n    let renderCell: ({ record, index }: { record: RecordType, index: number }) => {\n      node: any\n      checked: boolean\n    };\n    if (selectionType === 'radio') {\n      renderCell = ({ record, index }) => {\n        const key = getRowKey.value(record, index);\n        const checked = keySet.has(key);\n\n        return {\n          node: (\n            <Radio\n              {...checkboxPropsMap.value.get(key)}\n              checked={checked}\n              onClick={e => e.stopPropagation()}\n              onChange={(event) => {\n                if (!keySet.has(key))\n                  triggerSingleSelection(key, true, [key], event.nativeEvent);\n              }}\n            />\n          ),\n          checked,\n        };\n      };\n    } else {\n      renderCell = ({ record, index }) => {\n        const key = getRowKey.value(record, index);\n        const checked = keySet.has(key);\n        const indeterminate = derivedHalfSelectedKeySet.value.has(key);\n        const checkboxProps = checkboxPropsMap.value.get(key);\n        let mergedIndeterminate: boolean;\n        if (expandType.value === 'nest') {\n          mergedIndeterminate = indeterminate;\n          devWarning(\n            typeof checkboxProps?.indeterminate !== 'boolean',\n            'Table',\n            'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n          );\n        } else {\n          mergedIndeterminate = checkboxProps?.indeterminate ?? indeterminate;\n        }\n        // Record checked\n        return {\n          node: (\n            <Checkbox\n              {...checkboxProps}\n              indeterminate={mergedIndeterminate}\n              checked={checked}\n              skipGroup\n              onClick={e => e.stopPropagation()}\n              onChange={({ nativeEvent }) => {\n                const { shiftKey } = nativeEvent;\n\n                let startIndex = -1;\n                let endIndex = -1;\n\n                // Get range of this\n                if (shiftKey && checkStrictly) {\n                  const pointKeys = new Set([lastSelectedKey.value, key]);\n\n                  recordKeys.some((recordKey, recordIndex) => {\n                    if (pointKeys.has(recordKey)) {\n                      if (startIndex === -1) {\n                        startIndex = recordIndex;\n                      } else {\n                        endIndex = recordIndex;\n                        return true;\n                      }\n                    }\n\n                    return false;\n                  });\n                }\n\n                if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n                  // Batch update selections\n                  const rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n                  const changedKeys: Key[] = [];\n\n                  if (checked) {\n                    rangeKeys.forEach((recordKey) => {\n                      if (keySet.has(recordKey)) {\n                        changedKeys.push(recordKey);\n                        keySet.delete(recordKey);\n                      }\n                    });\n                  } else {\n                    rangeKeys.forEach((recordKey) => {\n                      if (!keySet.has(recordKey)) {\n                        changedKeys.push(recordKey);\n                        keySet.add(recordKey);\n                      }\n                    });\n                  }\n\n                  const keys = Array.from(keySet);\n                  onSelectMultiple?.(\n                    !checked,\n                    keys.map(recordKey => getRecordByKey(recordKey)),\n                    changedKeys.map(recordKey => getRecordByKey(recordKey)),\n                  );\n\n                  setSelectedKeys(keys);\n                } else {\n                  // Single record selected\n                  const originCheckedKeys = derivedSelectedKeys.value;\n                  if (checkStrictly) {\n                    const checkedKeys = checked\n                      ? arrDel(originCheckedKeys, key)\n                      : arrAdd(originCheckedKeys, key);\n                    triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n                  } else {\n                    // Always fill first\n                    const result = conductCheck(\n                      [...originCheckedKeys, key],\n                      true,\n                      keyEntities.value,\n                      maxLevel.value,\n                      levelEntities.value,\n                      isCheckboxDisabled as any,\n                    );\n                    const { checkedKeys, halfCheckedKeys } = result;\n                    let nextCheckedKeys = checkedKeys;\n\n                    // If remove, we do it again to correction\n                    if (checked) {\n                      const tempKeySet = new Set(checkedKeys);\n                      tempKeySet.delete(key);\n                      nextCheckedKeys = conductCheck(\n                        Array.from(tempKeySet),\n                        { checked: false, halfCheckedKeys },\n                        keyEntities.value,\n                        maxLevel.value,\n                        levelEntities.value,\n                        isCheckboxDisabled as any,\n                      ).checkedKeys;\n                    }\n\n                    triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n                  }\n                }\n\n                setLastSelectedKey(key);\n              }}\n            />\n          ),\n          checked,\n        };\n      };\n    }\n\n    const renderSelectionCell: TableColumnType<RecordType>['customRender'] = ({ record, index }) => {\n      const { node, checked } = renderCell({ record, index });\n\n      if (customizeRenderCell)\n        return customizeRenderCell(checked, record, index, node);\n\n      return node;\n    };\n\n    // Insert selection column if not exist\n    if (!cloneColumns.includes(SELECTION_COLUMN)) {\n      // Always after expand icon\n      if (\n        cloneColumns.findIndex(\n          (col: any) => col[INTERNAL_COL_DEFINE]?.columnType === 'EXPAND_COLUMN',\n        ) === 0\n      ) {\n        const [expandColumn, ...restColumns] = cloneColumns;\n        cloneColumns = [expandColumn, SELECTION_COLUMN, ...restColumns];\n      } else {\n        // Normal insert at first column\n        cloneColumns = [SELECTION_COLUMN, ...cloneColumns];\n      }\n    }\n\n    // Deduplicate selection column\n    const selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n    if (\n      process.env.NODE_ENV !== 'production'\n      && cloneColumns.filter(col => col === SELECTION_COLUMN).length > 1\n    ) {\n      devWarning(false, 'Table', 'Multiple `SELECTION_COLUMN` exist in `columns`.');\n    }\n\n    cloneColumns = cloneColumns.filter(\n      (column, index) => column !== SELECTION_COLUMN || index === selectionColumnIndex,\n    );\n\n    // Fixed column logic\n    const prevCol: TableColumnType<RecordType> & Record<string, any>\n      = cloneColumns[selectionColumnIndex - 1];\n    const nextCol: TableColumnType<RecordType> & Record<string, any>\n      = cloneColumns[selectionColumnIndex + 1];\n\n    let mergedFixed: FixedType | undefined = fixed;\n\n    if (mergedFixed === undefined) {\n      if (nextCol?.fixed !== undefined)\n        mergedFixed = nextCol.fixed;\n      else if (prevCol?.fixed !== undefined)\n        mergedFixed = prevCol.fixed;\n    }\n\n    if (\n      mergedFixed\n      && prevCol\n      && prevCol[INTERNAL_COL_DEFINE]?.columnType === 'EXPAND_COLUMN'\n      && prevCol.fixed === undefined\n    ) {\n      prevCol.fixed = mergedFixed;\n    }\n\n    // Replace with real selection column\n    const selectionColumn = {\n      fixed: mergedFixed,\n      width: selectionColWidth,\n      className: `${prefixCls.value}-selection-column`,\n      title: mergedRowSelection.value.columnTitle || title,\n      customRender: renderSelectionCell,\n      [INTERNAL_COL_DEFINE]: {\n        class: `${prefixCls.value}-selection-col`,\n      },\n    };\n\n    return cloneColumns.map(col => (col === SELECTION_COLUMN ? selectionColumn : col));\n  };\n\n  return [transformColumns, derivedSelectedKeySet];\n}\n"],"names":["SELECTION_COLUMN","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","EMPTY_LIST","flattenData","childrenColumnName","data","list","forEach","record","push","useSelection","rowSelectionRef","configRef","mergedRowSelection","computed","temp","value","checkStrictly","mergedSelectedKeys","setMergedSelectedKeys","useMergedState","selectedRowKeys","defaultSelectedRowKeys","preserveRecordsRef","shallowRef","Map","updatePreserveRecordsCache","keys","preserveSelectedRowKeys","newCache","key","getRecordByKey","has","get","set","watchEffect","keyEntities","convertDataToEntities","externalGetKey","getRowKey","childrenPropName","flattedData","pageData","checkboxPropsMap","map","getCheckboxProps","index","checkboxProps","process","env","NODE_ENV","devWarning","maxLevel","levelEntities","useMaxLevel","isCheckboxDisabled","r","disabled","selectKeysState","checkedKeys","halfCheckedKeys","conductCheck","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","type","slice","Set","derivedHalfSelectedKeySet","lastSelectedKey","setLastSelectedKey","useState","setSelectedKeys","availableKeys","records","onChange","onSelectionChange","undefined","triggerSingleSelection","selected","event","onSelect","rows","k","mergedSelections","onSelectInvert","onSelectNone","selections","hideSelectAll","locale","tableLocale","selectionList","selection","text","selectionAll","filter","checkProps","selectInvert","keySet","delete","add","Array","from","selectNone","flattedDataLength","length","transformColumns","columns","onSelectAll","onSelectMultiple","columnWidth","selectionColWidth","selectionType","fixed","renderCell","customizeRenderCell","prefixCls","expandType","getPopupContainer","includes","col","cloneColumns","recordKeys","checkedCurrentAll","every","checkedCurrentSome","some","onSelectAllChange","changeKeys","title","customizeSelections","menu","_createVNode","Menu","default","onSelectionClick","Item","onClick","Dropdown","DownOutlined","allDisabledData","checked","allDisabled","allDisabledAndChecked","allDisabledSomeChecked","Checkbox","node","Radio","e","stopPropagation","nativeEvent","indeterminate","mergedIndeterminate","shiftKey","startIndex","endIndex","pointKeys","recordKey","recordIndex","rangeKeys","changedKeys","originCheckedKeys","arrDel","arrAdd","result","nextCheckedKeys","tempKeySet","renderSelectionCell","findIndex","INTERNAL_COL_DEFINE","columnType","expandColumn","restColumns","selectionColumnIndex","indexOf","column","prevCol","nextCol","mergedFixed","selectionColumn","width","className","columnTitle","customRender","class"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqCO,MAAMA,mBAAmB,GAAC;AAC1B,MAAMC,aAAgB,GAAA,aAAA;AACtB,MAAMC,gBAAmB,GAAA,gBAAA;AACzB,MAAMC,cAAiB,GAAA,cAAA;AAC9B,MAAMC,aAAoB,EAAE,CAAA;AAQ5B,SAASC,WAAAA,CAAwBC,oBAA4BC,IAAkC,EAAA;AAC7F,EAAA,IAAIC,OAAqB,EAAE,CAAA;AAC3B,EAAA,CAACD,IAAQ,IAAA,EAAIE,EAAAA,OAAAA,CAASC,CAAW,MAAA,KAAA;AAC/BF,IAAAA,IAAAA,CAAKG,KAAKD,MAAM,CAAA,CAAA;AAEhB,IAAIA,IAAAA,MAAAA,IAAU,OAAOA,MAAW,KAAA,QAAA,IAAYJ,sBAAsBI,MAAUA,IAAAA,MAAAA,CAAOJ,kBAAkB,CAAG,EAAA;AACtGE,MAAO,IAAA,GAAA,CACL,GAAGA,IACH,EAAA,GAAGH,YAAwBC,kBAAqBI,EAAAA,MAAAA,CAAeJ,kBAAkB,CAAC,CAAC,CAAA,CAAA;AAAA,KAEvF;AAAA,GACD,CAAA,CAAA;AAED,EAAOE,OAAAA,IAAAA,CAAAA;AACT,CAAA;AAEwBI,SAAAA,YAAAA,CACtBC,iBACAC,SAC+C,EAAA;AAC/C,EAAMC,MAAAA,kBAAAA,GAAqBC,aAAS,MAAM;AACxC,IAAMC,MAAAA,IAAAA,GAAOJ,eAAgBK,CAAAA,KAAAA,IAAS,EAAC,CAAA;AACvC,IAAM,MAAA;AAAA,MAAEC,aAAgB,GAAA,IAAA;AAAA,KAASF,GAAAA,IAAAA,CAAAA;AACjC,IAAO,OAAA;AAAA,MAAE,GAAGA,IAAAA;AAAAA,MAAME,aAAAA;AAAAA,KAAc,CAAA;AAAA,GACjC,CAAA,CAAA;AAGD,EAAM,MAAA,CAACC,kBAAoBC,EAAAA,qBAAqB,CAAIC,GAAAA,oBAAAA,CAClDP,kBAAmBG,CAAAA,KAAAA,CAAMK,eACpBR,IAAAA,kBAAAA,CAAmBG,KAAMM,CAAAA,sBAAAA,IACzBpB,UACL,EAAA;AAAA,IACEc,KAAOF,EAAAA,YAAAA,CAAS,MAAMD,kBAAAA,CAAmBG,MAAMK,eAAe,CAAA;AAAA,GAElE,CAAA,CAAA;AAGA,EAAA,MAAME,kBAAqBC,GAAAA,cAAAA,iBAAeC,IAAAA,GAAAA,EAAsB,CAAA,CAAA;AAEhE,EAAA,MAAMC,6BAA8BC,CAAgB,IAAA,KAAA;AAClD,IAAId,IAAAA,kBAAAA,CAAmBG,MAAMY,uBAAyB,EAAA;AACpD,MAAMC,MAAAA,QAAAA,uBAAeJ,GAAqB,EAAA,CAAA;AAE1CE,MAAAA,IAAAA,CAAKpB,QAASuB,CAAQ,GAAA,KAAA;AACpB,QAAItB,IAAAA,MAAAA,GAASI,SAAUmB,CAAAA,cAAAA,CAAeD,GAAG,CAAA,CAAA;AAEzC,QAAA,IAAI,CAACtB,MAAAA,IAAUe,kBAAmBP,CAAAA,KAAAA,CAAMgB,IAAIF,GAAG,CAAA;AAC7CtB,UAASe,MAAAA,GAAAA,kBAAAA,CAAmBP,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAA,CAAA;AAE3CD,QAASK,QAAAA,CAAAA,GAAAA,CAAIJ,KAAKtB,MAAM,CAAA,CAAA;AAAA,OACzB,CAAA,CAAA;AAEDe,MAAAA,kBAAAA,CAAmBP,KAAQa,GAAAA,QAAAA,CAAAA;AAAAA,KAC7B;AAAA,GACF,CAAA;AAEAM,EAAAA,eAAAA,CAAY,MAAM;AAChBT,IAAAA,0BAAAA,CAA2BR,mBAAmBF,KAAK,CAAA,CAAA;AAAA,GACpD,CAAA,CAAA;AAED,EAAMoB,MAAAA,WAAAA,GAActB,YAAS,CAAA,MAC3BD,kBAAmBG,CAAAA,KAAAA,CAAMC,gBACrB,IACAoB,GAAAA,8BAAAA,CAAsBzB,SAAUP,CAAAA,IAAAA,CAAKW,KAAgC,EAAA;AAAA,IACrEsB,cAAAA,EAAgB1B,UAAU2B,SAAUvB,CAAAA,KAAAA;AAAAA,IACpCwB,gBAAAA,EAAkB5B,UAAUR,kBAAmBY,CAAAA,KAAAA;AAAAA,GAChD,EAAEoB,WACP,CAAA,CAAA;AAGA,EAAMK,MAAAA,WAAAA,GAAc3B,YAAS,CAAA,MAC3BX,WAAYS,CAAAA,SAAAA,CAAUR,mBAAmBY,KAAOJ,EAAAA,SAAAA,CAAU8B,QAAS1B,CAAAA,KAAK,CAC1E,CAAA,CAAA;AAGA,EAAM2B,MAAAA,gBAAAA,GAAmB7B,aAAS,MAAM;AACtC,IAAM8B,MAAAA,GAAAA,uBAAUnB,GAAiC,EAAA,CAAA;AACjD,IAAMc,MAAAA,SAAAA,GAAY3B,UAAU2B,SAAUvB,CAAAA,KAAAA,CAAAA;AACtC,IAAM6B,MAAAA,gBAAAA,GAAmBhC,mBAAmBG,KAAM6B,CAAAA,gBAAAA,CAAAA;AAClDJ,IAAAA,WAAAA,CAAYzB,KAAMT,CAAAA,OAAAA,CAAQ,CAACC,MAAAA,EAAQsC,KAAU,KAAA;AAC3C,MAAMhB,MAAAA,GAAAA,GAAMS,SAAU/B,CAAAA,MAAAA,EAAQsC,KAAK,CAAA,CAAA;AACnC,MAAA,MAAMC,iBAAiBF,gBAAmBA,GAAAA,gBAAAA,CAAiBrC,MAAM,CAAA,GAAI,SAAS,EAAC,CAAA;AAC/EoC,MAAIV,GAAAA,CAAAA,GAAAA,CAAIJ,KAAKiB,aAAa,CAAA,CAAA;AAE1B,MAAA,IACEC,QAAQC,GAAIC,CAAAA,QAAAA,KAAa,iBACrB,SAAaH,IAAAA,aAAAA,IAAiB,oBAAoBA,aACtD,CAAA,EAAA;AACAI,QACEA,cAAA,CAAA,KAAA,EACA,SACA,uGACF,CAAA,CAAA;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AACD,IAAOP,OAAAA,GAAAA,CAAAA;AAAAA,GACR,CAAA,CAAA;AACD,EAAM,MAAA;AAAA,IAAEQ,QAAAA;AAAAA,IAAUC,aAAAA;AAAAA,GAAc,GAAIC,oBAAYlB,WAAW,CAAA,CAAA;AAC3D,EAAA,MAAMmB,qBAAoDC,CAAa,CAAA,KAAA;;AACrE,IAAC,OAAA,CAAA,EAAA,CAACb,EAAiB3B,GAAAA,gBAAAA,CAAAA,KAAAA,CAAMiB,GAAIrB,CAAAA,SAAAA,CAAU2B,UAAUvB,KAAMwC,CAAAA,CAAC,CAAC,CAAA,KAAvDb,IAA0Dc,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,QAAAA,CAAAA,CAAAA;AAAAA,GAAAA,CAAAA;AAE9D,EAAMC,MAAAA,eAAAA,GAAkB5C,aAAS,MAAM;AACrC,IAAA,IAAID,mBAAmBG,KAAMC,CAAAA,aAAAA;AAC3B,MAAA,OAAO,CAACC,kBAAmBF,CAAAA,KAAAA,IAAS,EAAE,EAAE,EAAE,CAAA,CAAA;AAE5C,IAAM,MAAA;AAAA,MAAE2C,WAAAA;AAAAA,MAAaC,eAAAA;AAAAA,KAAgB,GAAIC,wBACvC3C,CAAAA,kBAAAA,CAAmBF,KACnB,EAAA,IAAA,EACAoB,WAAYpB,CAAAA,KAAAA,EACZoC,QAASpC,CAAAA,KAAAA,EACTqC,aAAcrC,CAAAA,KAAAA,EACduC,kBACF,CAAA,CAAA;AACA,IAAA,OAAO,CAACI,WAAAA,IAAe,EAAE,EAAEC,eAAe,CAAA,CAAA;AAAA,GAC3C,CAAA,CAAA;AAED,EAAA,MAAME,sBAAsBhD,YAAS,CAAA,MAAM4C,eAAgB1C,CAAAA,KAAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACnE,EAAA,MAAM+C,0BAA0BjD,YAAS,CAAA,MAAM4C,eAAgB1C,CAAAA,KAAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAEvE,EAAMgD,MAAAA,qBAAAA,GAAwBlD,aAAmB,MAAM;AACrD,IAAMa,MAAAA,IAAAA,GACFd,kBAAmBG,CAAAA,KAAAA,CAAMiD,IAAS,KAAA,OAAA,GAChCH,mBAAoB9C,CAAAA,KAAAA,CAAMkD,KAAM,CAAA,CAAA,EAAG,CAAC,CAAA,GACpCJ,mBAAoB9C,CAAAA,KAAAA,CAAAA;AAC1B,IAAO,OAAA,IAAImD,IAAIxC,IAAI,CAAA,CAAA;AAAA,GACpB,CAAA,CAAA;AACD,EAAA,MAAMyC,yBAA4BtD,GAAAA,YAAAA,CAAS,MACzCD,kBAAAA,CAAmBG,MAAMiD,IAAS,KAAA,OAAA,mBAAcE,IAAAA,GAAAA,EAAQ,GAAA,IAAIA,GAAIJ,CAAAA,uBAAAA,CAAwB/C,KAAK,CAC/F,CAAA,CAAA;AAGA,EAAA,MAAM,CAACqD,eAAAA,EAAiBC,kBAAkB,CAAA,GAAIC,iBAAqB,IAAI,CAAA,CAAA;AAWvE,EAAA,MAAMC,kBAAmB7C,CAAgB,IAAA,KAAA;AACvC,IAAI8C,IAAAA,aAAAA,CAAAA;AACJ,IAAIC,IAAAA,OAAAA,CAAAA;AACJhD,IAAAA,0BAAAA,CAA2BC,IAAI,CAAA,CAAA;AAC/B,IAAM,MAAA;AAAA,MAAEC,uBAAAA;AAAAA,MAAyB+C,QAAUC,EAAAA,iBAAAA;AAAAA,QAAsB/D,kBAAmBG,CAAAA,KAAAA,CAAAA;AACpF,IAAM,MAAA;AAAA,MAAEe,cAAAA;AAAAA,KAAmBnB,GAAAA,SAAAA,CAAAA;AAC3B,IAAA,IAAIgB,uBAAyB,EAAA;AAC3B6C,MAAgB9C,aAAAA,GAAAA,IAAAA,CAAAA;AAChB+C,MAAAA,OAAAA,GAAU/C,KAAKiB,GAAId,CAAAA,CAAAA,GAAAA,KAAOP,mBAAmBP,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAE,CAAA,CAAA;AAAA,KACvD,MAAA;AAEL2C,MAAAA,aAAAA,GAAgB,EAAE,CAAA;AAClBC,MAAAA,OAAAA,GAAU,EAAE,CAAA;AAEZ/C,MAAAA,IAAAA,CAAKpB,QAASuB,CAAQ,GAAA,KAAA;AACpB,QAAMtB,MAAAA,MAAAA,GAASuB,eAAeD,GAAG,CAAA,CAAA;AACjC,QAAA,IAAItB,WAAWqE,KAAW,CAAA,EAAA;AACxBJ,UAAAA,aAAAA,CAAchE,KAAKqB,GAAG,CAAA,CAAA;AACtB4C,UAAAA,OAAAA,CAAQjE,KAAKD,MAAM,CAAA,CAAA;AAAA,SACrB;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAEAW,IAAAA,qBAAAA,CAAsBsD,aAAa,CAAA,CAAA;AAEnCG,IAAAA,iBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAAA,CAAoBH,aAAeC,EAAAA,OAAAA,CAAAA,CAAAA;AAAAA,GACrC,CAAA;AAIA,EAAA,MAAMI,sBAAyBA,GAAAA,CAAChD,GAAUiD,EAAAA,QAAAA,EAAmBpD,MAAaqD,KAAiB,KAAA;AACzF,IAAM,MAAA;AAAA,MAAEC,QAAAA;AAAAA,QAAapE,kBAAmBG,CAAAA,KAAAA,CAAAA;AACxC,IAAM,MAAA;AAAA,MAAEe,cAAAA;AAAAA,KAAe,GAAInB,aAAa,EAAC,CAAA;AACzC,IAAA,IAAIqE,QAAU,EAAA;AACZ,MAAA,MAAMC,OAAOvD,IAAKiB,CAAAA,GAAAA,CAAIuC,CAAKpD,CAAAA,KAAAA,cAAAA,CAAeoD,CAAC,CAAC,CAAA,CAAA;AAC5CF,MAAAA,QAAAA,CAASlD,cAAeD,CAAAA,GAAG,CAAGiD,EAAAA,QAAAA,EAAUG,MAAMF,KAAK,CAAA,CAAA;AAAA,KACrD;AAEAR,IAAAA,eAAAA,CAAgB7C,IAAI,CAAA,CAAA;AAAA,GACtB,CAAA;AAEA,EAAMyD,MAAAA,gBAAAA,GAAmBtE,aAAS,MAAM;AACtC,IAAM,MAAA;AAAA,MAAEuE,cAAAA;AAAAA,MAAgBC,YAAAA;AAAAA,MAAcC,UAAAA;AAAAA,MAAYC,aAAAA;AAAAA,QAAkB3E,kBAAmBG,CAAAA,KAAAA,CAAAA;AAEvF,IAAM,MAAA;AAAA,MAAEX,IAAAA;AAAAA,MAAMqC,QAAAA;AAAAA,MAAUH,SAAAA;AAAAA,MAAWkD,MAAQC,EAAAA,WAAAA;AAAAA,KAAgB9E,GAAAA,SAAAA,CAAAA;AAE3D,IAAA,IAAI,CAAC2E,UAAcC,IAAAA,aAAAA;AACjB,MAAO,OAAA,IAAA,CAAA;AAET,IAAA,MAAMG,gBACFJ,UAAe,KAAA,IAAA,GAAO,CAACxF,aAAeC,EAAAA,gBAAAA,EAAkBC,cAAc,CAAIsF,GAAAA,UAAAA,CAAAA;AAE9E,IAAOI,OAAAA,aAAAA,CAAc/C,IAAKgD,CAAuC,SAAA,KAAA;AAC/D,MAAA,IAAIA,cAAc7F,aAAe,EAAA;AAC/B,QAAO,OAAA;AAAA,UACL+B,GAAK,EAAA,KAAA;AAAA,UACL+D,IAAAA,EAAMH,YAAY1E,KAAM8E,CAAAA,YAAAA;AAAAA,UACxBb,QAAW,GAAA;AACTT,YAAAA,eAAAA,CACEnE,IAAKW,CAAAA,KAAAA,CACF4B,GAAI,CAAA,CAACpC,MAAQsC,EAAAA,KAAAA,KAAUP,SAAUvB,CAAAA,KAAAA,CAAMR,MAAQsC,EAAAA,KAAK,CAAC,CAAA,CACrDiD,OAAQjE,CAAQ,GAAA,KAAA;AACf,cAAA,MAAMkE,UAAarD,GAAAA,gBAAAA,CAAiB3B,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAA,CAAA;AACjD,cAAA,OAAO,EAACkE,UAAYvC,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAAA,CAAAA,QAAAA,CAAAA,IAAYO,qBAAsBhD,CAAAA,KAAAA,CAAMgB,IAAIF,GAAG,CAAA,CAAA;AAAA,aACpE,CACL,CAAA,CAAA;AAAA,WACF;AAAA,SACF,CAAA;AAAA,OACF;AACA,MAAA,IAAI8D,cAAc5F,gBAAkB,EAAA;AAClC,QAAO,OAAA;AAAA,UACL8B,GAAK,EAAA,QAAA;AAAA,UACL+D,IAAAA,EAAMH,YAAY1E,KAAMiF,CAAAA,YAAAA;AAAAA,UACxBhB,QAAW,GAAA;AACT,YAAA,MAAMiB,MAAS,GAAA,IAAI/B,GAAIH,CAAAA,qBAAAA,CAAsBhD,KAAK,CAAA,CAAA;AAClD0B,YAAAA,QAAAA,CAAS1B,KAAMT,CAAAA,OAAAA,CAAQ,CAACC,MAAAA,EAAQsC,KAAU,KAAA;AACxC,cAAA,MAAMhB,GAAMS,GAAAA,SAAAA,CAAUvB,KAAMR,CAAAA,MAAAA,EAAQsC,KAAK,CAAA,CAAA;AACzC,cAAA,MAAMkD,UAAarD,GAAAA,gBAAAA,CAAiB3B,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAA,CAAA;AACjD,cAAI,IAAA,EAACkE,yCAAYvC,QAAU,CAAA,EAAA;AACzB,gBAAIyC,IAAAA,MAAAA,CAAOlE,IAAIF,GAAG,CAAA;AAChBoE,kBAAAA,MAAAA,CAAOC,OAAOrE,GAAG,CAAA,CAAA;AAAA;AAEjBoE,kBAAAA,MAAAA,CAAOE,IAAItE,GAAG,CAAA,CAAA;AAAA,eAClB;AAAA,aACD,CAAA,CAAA;AAED,YAAMH,MAAAA,IAAAA,GAAO0E,KAAMC,CAAAA,IAAAA,CAAKJ,MAAM,CAAA,CAAA;AAC9B,YAAA,IAAIb,cAAgB,EAAA;AAClBlC,cACEA,cAAA,CAAA,KAAA,EACA,SACA,4EACF,CAAA,CAAA;AACAkC,cAAAA,cAAAA,CAAe1D,IAAI,CAAA,CAAA;AAAA,aACrB;AAEA6C,YAAAA,eAAAA,CAAgB7C,IAAI,CAAA,CAAA;AAAA,WACtB;AAAA,SACF,CAAA;AAAA,OACF;AACA,MAAA,IAAIiE,cAAc3F,cAAgB,EAAA;AAChC,QAAO,OAAA;AAAA,UACL6B,GAAK,EAAA,MAAA;AAAA,UACL+D,IAAAA,EAAMH,YAAY1E,KAAMuF,CAAAA,UAAAA;AAAAA,UACxBtB,QAAW,GAAA;AACTK,YAAAA,YAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAAA,EAAAA,CAAAA;AACAd,YAAAA,eAAAA,CACE6B,MAAMC,IAAKtC,CAAAA,qBAAAA,CAAsBhD,KAAK,CAAA,CAAE+E,OAAQjE,CAAQ,GAAA,KAAA;AACtD,cAAA,MAAMkE,UAAarD,GAAAA,gBAAAA,CAAiB3B,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAA,CAAA;AACjD,cAAA,OAAOkE,UAAYvC,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAAA,CAAAA,QAAAA,CAAAA;AAAAA,aACpB,CACH,CAAA,CAAA;AAAA,WACF;AAAA,SACF,CAAA;AAAA,OACF;AACA,MAAOmC,OAAAA,SAAAA,CAAAA;AAAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AACD,EAAA,MAAMY,iBAAoB1F,GAAAA,YAAAA,CAAS,MAAM2B,WAAAA,CAAYzB,MAAMyF,MAAM,CAAA,CAAA;AAEjE,EAAA,MAAMC,mBAAoBC,CAAwE,OAAA,KAAA;;AAChG,IAAM,MAAA;AAAA,MACJC,WAAAA;AAAAA,MACAC,gBAAAA;AAAAA,MACAC,WAAaC,EAAAA,iBAAAA;AAAAA,MACb9C,IAAM+C,EAAAA,aAAAA;AAAAA,MACNC,KAAAA;AAAAA,MACAC,UAAYC,EAAAA,mBAAAA;AAAAA,MACZ3B,aAAAA;AAAAA,MACAvE,aAAAA;AAAAA,QACEJ,kBAAmBG,CAAAA,KAAAA,CAAAA;AAEvB,IAAM,MAAA;AAAA,MAAEoG,SAAAA;AAAAA,MAAWrF,cAAAA;AAAAA,MAAgBQ,SAAAA;AAAAA,MAAW8E,UAAAA;AAAAA,MAAYC,iBAAAA;AAAAA,KAAsB1G,GAAAA,SAAAA,CAAAA;AAChF,IAAI,IAAA,CAACD,gBAAgBK,KAAO,EAAA;AAC1B,MAAIgC,IAAAA,OAAAA,CAAQC,GAAIC,CAAAA,QAAAA,KAAa,YAAc,EAAA;AACzCC,QAAAA,cAAAA,CACE,CAACwD,OAAQY,CAAAA,QAAAA,CAASzH,gBAAgB,CAAA,EAClC,SACA,8EACF,CAAA,CAAA;AAAA,OACF;AAEA,MAAA,OAAO6G,OAAQZ,CAAAA,MAAAA,CAAOyB,CAAOA,GAAAA,KAAAA,GAAAA,KAAQ1H,gBAAgB,CAAA,CAAA;AAAA,KACvD;AAGA,IAAI2H,IAAAA,YAAAA,GAAed,QAAQzC,KAAM,EAAA,CAAA;AACjC,IAAA,MAAMgC,MAAS,GAAA,IAAI/B,GAAIH,CAAAA,qBAAAA,CAAsBhD,KAAK,CAAA,CAAA;AAGlD,IAAA,MAAM0G,UAAajF,GAAAA,WAAAA,CAAYzB,KAC5B4B,CAAAA,GAAAA,CAAIL,UAAUvB,KAAK,CAAA,CACnB+E,MAAOjE,CAAAA,CAAAA,GAAAA,KAAO,CAACa,gBAAiB3B,CAAAA,KAAAA,CAAMiB,GAAIH,CAAAA,GAAG,EAAG2B,QAAQ,CAAA,CAAA;AAC3D,IAAA,MAAMkE,oBAAoBD,UAAWE,CAAAA,KAAAA,CAAM9F,SAAOoE,MAAOlE,CAAAA,GAAAA,CAAIF,GAAG,CAAC,CAAA,CAAA;AACjE,IAAA,MAAM+F,qBAAqBH,UAAWI,CAAAA,IAAAA,CAAKhG,SAAOoE,MAAOlE,CAAAA,GAAAA,CAAIF,GAAG,CAAC,CAAA,CAAA;AAEjE,IAAA,MAAMiG,oBAAoBA,MAAM;AAC9B,MAAA,MAAMC,aAAoB,EAAE,CAAA;AAE5B,MAAA,IAAIL,iBAAmB,EAAA;AACrBD,QAAAA,UAAAA,CAAWnH,QAASuB,CAAQ,GAAA,KAAA;AAC1BoE,UAAAA,MAAAA,CAAOC,OAAOrE,GAAG,CAAA,CAAA;AACjBkG,UAAAA,UAAAA,CAAWvH,KAAKqB,GAAG,CAAA,CAAA;AAAA,SACpB,CAAA,CAAA;AAAA,OACI,MAAA;AACL4F,QAAAA,UAAAA,CAAWnH,QAASuB,CAAQ,GAAA,KAAA;AAC1B,UAAA,IAAI,CAACoE,MAAAA,CAAOlE,GAAIF,CAAAA,GAAG,CAAG,EAAA;AACpBoE,YAAAA,MAAAA,CAAOE,IAAItE,GAAG,CAAA,CAAA;AACdkG,YAAAA,UAAAA,CAAWvH,KAAKqB,GAAG,CAAA,CAAA;AAAA,WACrB;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAEA,MAAMH,MAAAA,IAAAA,GAAO0E,KAAMC,CAAAA,IAAAA,CAAKJ,MAAM,CAAA,CAAA;AAE9BU,MAAAA,WAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAAA,CACE,CAACe,iBAAAA,EACDhG,IAAKiB,CAAAA,GAAAA,CAAIuC,OAAKpD,cAAeoD,CAAAA,CAAC,CAAC,CAAA,EAC/B6C,UAAWpF,CAAAA,GAAAA,CAAIuC,CAAKpD,CAAAA,KAAAA,cAAAA,CAAeoD,CAAC,CAAC,CAAA,CAAA,CAAA;AAGvCX,MAAAA,eAAAA,CAAgB7C,IAAI,CAAA,CAAA;AAAA,KACtB,CAAA;AAIA,IAAIsG,IAAAA,KAAAA,CAAAA;AACJ,IAAA,IAAIjB,kBAAkB,OAAS,EAAA;AAC7B,MAAIkB,IAAAA,mBAAAA,CAAAA;AACJ,MAAA,IAAI9C,iBAAiBpE,KAAO,EAAA;AAC1B,QAAMmH,MAAAA,IAAAA,GAAIC,gBAAAC,YAAA,EAAA;AAAA,UAAA,qBACiBf,iBAAkBtG,CAAAA,KAAAA;AAAAA,SAAK,EAAA;AAAA,UAAAsH,OAAAA,EAAAA,MAC7ClD,CAAAA,gBAAAA,CAAiBpE,MAAM4B,GAAI,CAAA,CAACgD,WAAW9C,KAAU,KAAA;AAChD,YAAM,MAAA;AAAA,cAAEhB,GAAAA;AAAAA,cAAK+D,IAAAA;AAAAA,cAAMZ,QAAUsD,EAAAA,gBAAAA;AAAAA,aAAqB3C,GAAAA,SAAAA,CAAAA;AAClD,YAAAwC,OAAAA,eAAAA,CAAAC,aAAAG,IAAA,EAAA;AAAA,cAAA,OAES1G,GAAOgB,IAAAA,KAAAA;AAAAA,cAAK,WACR2F,MAAM;AACbF,gBAAmBb,gBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAAA,CAAAA,UAAAA,CAAAA,CAAAA;AAAAA,eACrB;AAAA,aAAC,EAAA;AAAA,cAAAY,OAAAA,EAAAA,MAAA,CAEAzC,IAAI,CAAA;AAAA,aAAA,CAAA,CAAA;AAAA,WAGV,CAAC,CAAA;AAAA,SAEL,CAAA,CAAA;AACDqC,QAAAA,mBAAAA,GAAmBE,gBAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACJ,CAAEhB,EAAAA,SAAAA,CAAUpG,KAAM,CAAA,gBAAA,CAAA;AAAA,SAAiB,EAAAoH,CAAAA,eAAAA,CAAAM,gBAAA,EAAA;AAAA,UAAA,SAC3BP,EAAAA,IAAAA;AAAAA,UAAI,qBAAqBb,iBAAkBtG,CAAAA,KAAAA;AAAAA,SAAK,EAAA;AAAA,UAAAsH,OAAAA,EAAAA,MAAA,CAAAF,eAAAA,CAAAA,MAAAA,EAAAA,IAAAA,EAAAA,CAAAA,eAAAA,CAAAO,qBAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SAMtE,CAAA,CAAA,CAAA,CAAA;AAAA,OACH;AAEA,MAAA,MAAMC,kBAAkBnG,WAAYzB,CAAAA,KAAAA,CACjC4B,GAAI,CAAA,CAACpC,QAAQsC,KAAU,KAAA;AACtB,QAAA,MAAMhB,GAAMS,GAAAA,SAAAA,CAAUvB,KAAMR,CAAAA,MAAAA,EAAQsC,KAAK,CAAA,CAAA;AACzC,QAAA,MAAMC,gBAAgBJ,gBAAiB3B,CAAAA,KAAAA,CAAMiB,GAAIH,CAAAA,GAAG,KAAK,EAAC,CAAA;AAC1D,QAAO,OAAA;AAAA,UAAE+G,OAAAA,EAAS3C,MAAOlE,CAAAA,GAAAA,CAAIF,GAAG,CAAA;AAAA,UAAG,GAAGiB,aAAAA;AAAAA,SAAc,CAAA;AAAA,OACrD,CACAgD,CAAAA,MAAAA,CAAO,CAAC;AAAA,QAAEtC,QAAAA;AAAAA,YAAeA,QAAQ,CAAA,CAAA;AAEpC,MAAA,MAAMqF,cACF,CAAC,CAACF,gBAAgBnC,MAAUmC,IAAAA,eAAAA,CAAgBnC,WAAWD,iBAAkBxF,CAAAA,KAAAA,CAAAA;AAE7E,MAAA,MAAM+H,qBAAwBD,GAAAA,WAAAA,IAAeF,eAAgBhB,CAAAA,KAAAA,CAAM,CAAC;AAAA,QAAEiB,OAAAA;AAAAA,YAAcA,OAAO,CAAA,CAAA;AAC3F,MAAA,MAAMG,sBAAyBF,GAAAA,WAAAA,IAAeF,eAAgBd,CAAAA,IAAAA,CAAK,CAAC;AAAA,QAAEe,OAAAA;AAAAA,YAAcA,OAAO,CAAA,CAAA;AAE3FZ,MAAQ,KAAA,GAAA,CAACzC,aAAa4C,IAAAA,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACP,CAAEhB,EAAAA,SAAAA,CAAUpG,KAAM,CAAA,UAAA,CAAA;AAAA,OAAW,EAAAoH,CAAAA,eAAAA,CAAAa,gBAAA,EAAA;AAAA,QAAA,WAGpC,CAACH,WAAAA,GAAe,CAAC,CAACtC,iBAAAA,CAAkBxF,SAAS2G,iBAAqBoB,GAAAA,qBAAAA;AAAAA,QAAqB,iBAGvF,CAACD,WAAAA,GACI,CAACnB,iBAAqBE,IAAAA,kBAAAA,GACtB,CAACkB,qBAAyBC,IAAAA,sBAAAA;AAAAA,QAAuB,UAE9CjB,EAAAA,iBAAAA;AAAAA,QAAiB,UAAA,EACjBvB,iBAAkBxF,CAAAA,KAAAA,KAAU,CAAK8H,IAAAA,WAAAA;AAAAA,QAAW,YAAA,EAC1CZ,sBAAsB,kBAAqB,GAAA,YAAA;AAAA,QAAY,WAAA,EAAA,IAAA;AAAA,OAAA,EAAA,IAAA,CAGpEA,EAAAA,mBAAmB,CAEvB,CAAA,CAAA;AAAA,KACH;AAGA,IAAIhB,IAAAA,UAAAA,CAAAA;AAIJ,IAAA,IAAIF,kBAAkB,OAAS,EAAA;AAC7BE,MAAAA,UAAAA,GAAaA,CAAC;AAAA,QAAE1G,MAAAA;AAAAA,QAAQsC,KAAAA;AAAAA,OAAY,KAAA;AAClC,QAAA,MAAMhB,GAAMS,GAAAA,SAAAA,CAAUvB,KAAMR,CAAAA,MAAAA,EAAQsC,KAAK,CAAA,CAAA;AACzC,QAAM+F,MAAAA,OAAAA,GAAU3C,MAAOlE,CAAAA,GAAAA,CAAIF,GAAG,CAAA,CAAA;AAE9B,QAAO,OAAA;AAAA,UACLoH,IAAAA,EAAId,gBAAAe,aAAA,EAAA;AAAA,YAAA,GAEIxG,gBAAAA,CAAiB3B,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAA;AAAA,YAAC,SAC1B+G,EAAAA,OAAAA;AAAAA,YAAO,SAAA,EACPO,CAAKA,CAAAA,KAAAA,CAAAA,CAAEC,eAAgB,EAAA;AAAA,YAAC,YACtBrE,CAAU,KAAA,KAAA;AACnB,cAAI,IAAA,CAACkB,MAAOlE,CAAAA,GAAAA,CAAIF,GAAG,CAAA;AACjBgD,gBAAAA,sBAAAA,CAAuBhD,KAAK,IAAM,EAAA,CAACA,GAAG,CAAA,EAAGkD,MAAMsE,WAAW,CAAA,CAAA;AAAA,aAC9D;AAAA,aAEH,IAAA,CAAA;AAAA,UACDT,OAAAA;AAAAA,SACF,CAAA;AAAA,OACF,CAAA;AAAA,KACK,MAAA;AACL3B,MAAAA,UAAAA,GAAaA,CAAC;AAAA,QAAE1G,MAAAA;AAAAA,QAAQsC,KAAAA;AAAAA,OAAY,KAAA;;AAClC,QAAA,MAAMhB,GAAMS,GAAAA,SAAAA,CAAUvB,KAAMR,CAAAA,MAAAA,EAAQsC,KAAK,CAAA,CAAA;AACzC,QAAM+F,MAAAA,OAAAA,GAAU3C,MAAOlE,CAAAA,GAAAA,CAAIF,GAAG,CAAA,CAAA;AAC9B,QAAA,MAAMyH,aAAgBnF,GAAAA,yBAAAA,CAA0BpD,KAAMgB,CAAAA,GAAAA,CAAIF,GAAG,CAAA,CAAA;AAC7D,QAAA,MAAMiB,aAAgBJ,GAAAA,gBAAAA,CAAiB3B,KAAMiB,CAAAA,GAAAA,CAAIH,GAAG,CAAA,CAAA;AACpD,QAAI0H,IAAAA,mBAAAA,CAAAA;AACJ,QAAInC,IAAAA,UAAAA,CAAWrG,UAAU,MAAQ,EAAA;AAC/BwI,UAAsBD,mBAAAA,GAAAA,aAAAA,CAAAA;AACtBpG,UAAAA,cAAAA,CACE,QAAOJ,aAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAAA,CAAewG,aAAkB,CAAA,KAAA,SAAA,EACxC,SACA,2GACF,CAAA,CAAA;AAAA,SACK,MAAA;AACLC,UAAAA,mBAAAA,GAAAA,CAAsBzG,GAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAAA,CAAewG,aAAfxG,KAAAA,IAAAA,GAAAA,GAAgCwG,GAAAA,aAAAA,CAAAA;AAAAA,SACxD;AAEA,QAAO,OAAA;AAAA,UACLL,IAAAA,EAAId,gBAAAa,gBAAA,EAAA;AAAA,YAAA,GAEIlG,aAAAA;AAAAA,YAAa,eACFyG,EAAAA,mBAAAA;AAAAA,YAAmB,SACzBX,EAAAA,OAAAA;AAAAA,YAAO,WAAA,EAAA,IAAA;AAAA,YAAA,SAAA,EAEPO,CAAKA,CAAAA,KAAAA,CAAAA,CAAEC,eAAgB,EAAA;AAAA,YAAC,YACvB1E,CAAC;AAAA,cAAE2E,WAAAA;AAAAA,aAAkB,KAAA;AAC7B,cAAM,MAAA;AAAA,gBAAEG,QAAAA;AAAAA,eAAaH,GAAAA,WAAAA,CAAAA;AAErB,cAAA,IAAII,UAAa,GAAA,CAAA,CAAA,CAAA;AACjB,cAAA,IAAIC,QAAW,GAAA,CAAA,CAAA,CAAA;AAGf,cAAA,IAAIF,YAAYxI,aAAe,EAAA;AAC7B,gBAAA,MAAM2I,4BAAgBzF,IAAAA,GAAAA,CAAI,CAACE,eAAgBrD,CAAAA,KAAAA,EAAOc,GAAG,CAAC,CAAA,CAAA;AAEtD4F,gBAAWI,UAAAA,CAAAA,IAAAA,CAAK,CAAC+B,SAAAA,EAAWC,WAAgB,KAAA;AAC1C,kBAAIF,IAAAA,SAAAA,CAAU5H,GAAI6H,CAAAA,SAAS,CAAG,EAAA;AAC5B,oBAAA,IAAIH,eAAe,CAAI,CAAA,EAAA;AACrBA,sBAAaI,UAAAA,GAAAA,WAAAA,CAAAA;AAAAA,qBACR,MAAA;AACLH,sBAAWG,QAAAA,GAAAA,WAAAA,CAAAA;AACX,sBAAO,OAAA,IAAA,CAAA;AAAA,qBACT;AAAA,mBACF;AAEA,kBAAO,OAAA,KAAA,CAAA;AAAA,iBACR,CAAA,CAAA;AAAA,eACH;AAEA,cAAA,IAAIH,QAAa,KAAA,CAAA,CAAA,IAAMD,UAAeC,KAAAA,QAAAA,IAAY1I,aAAe,EAAA;AAE/D,gBAAA,MAAM8I,SAAYrC,GAAAA,UAAAA,CAAWxD,KAAMwF,CAAAA,UAAAA,EAAYC,WAAW,CAAC,CAAA,CAAA;AAC3D,gBAAA,MAAMK,cAAqB,EAAE,CAAA;AAE7B,gBAAA,IAAInB,OAAS,EAAA;AACXkB,kBAAAA,SAAAA,CAAUxJ,QAASsJ,CAAc,SAAA,KAAA;AAC/B,oBAAI3D,IAAAA,MAAAA,CAAOlE,GAAI6H,CAAAA,SAAS,CAAG,EAAA;AACzBG,sBAAAA,WAAAA,CAAYvJ,KAAKoJ,SAAS,CAAA,CAAA;AAC1B3D,sBAAAA,MAAAA,CAAOC,OAAO0D,SAAS,CAAA,CAAA;AAAA,qBACzB;AAAA,mBACD,CAAA,CAAA;AAAA,iBACI,MAAA;AACLE,kBAAAA,SAAAA,CAAUxJ,QAASsJ,CAAc,SAAA,KAAA;AAC/B,oBAAA,IAAI,CAAC3D,MAAAA,CAAOlE,GAAI6H,CAAAA,SAAS,CAAG,EAAA;AAC1BG,sBAAAA,WAAAA,CAAYvJ,KAAKoJ,SAAS,CAAA,CAAA;AAC1B3D,sBAAAA,MAAAA,CAAOE,IAAIyD,SAAS,CAAA,CAAA;AAAA,qBACtB;AAAA,mBACD,CAAA,CAAA;AAAA,iBACH;AAEA,gBAAMlI,MAAAA,IAAAA,GAAO0E,KAAMC,CAAAA,IAAAA,CAAKJ,MAAM,CAAA,CAAA;AAC9BW,gBAAAA,gBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAAA,CACE,CAACgC,OAAAA,EACDlH,IAAKiB,CAAAA,GAAAA,CAAIiH,eAAa9H,cAAe8H,CAAAA,SAAS,CAAC,CAAA,EAC/CG,WAAYpH,CAAAA,GAAAA,CAAIiH,CAAa9H,SAAAA,KAAAA,cAAAA,CAAe8H,SAAS,CAAC,CAAA,CAAA,CAAA;AAGxDrF,gBAAAA,eAAAA,CAAgB7C,IAAI,CAAA,CAAA;AAAA,eACf,MAAA;AAEL,gBAAA,MAAMsI,oBAAoBnG,mBAAoB9C,CAAAA,KAAAA,CAAAA;AAC9C,gBAAA,IAAIC,aAAe,EAAA;AACjB,kBAAM0C,MAAAA,WAAAA,GAAckF,UAChBqB,WAAOD,CAAAA,iBAAAA,EAAmBnI,GAAG,CAC7BqI,GAAAA,WAAAA,CAAOF,mBAAmBnI,GAAG,CAAA,CAAA;AACjCgD,kBAAAA,sBAAAA,CAAuBhD,GAAK,EAAA,CAAC+G,OAASlF,EAAAA,WAAAA,EAAa2F,WAAW,CAAA,CAAA;AAAA,iBACzD,MAAA;AAEL,kBAAA,MAAMc,MAASvG,GAAAA,wBAAAA,CACb,CAAC,GAAGoG,mBAAmBnI,GAAG,CAAA,EAC1B,IACAM,EAAAA,WAAAA,CAAYpB,KACZoC,EAAAA,QAAAA,CAASpC,KACTqC,EAAAA,aAAAA,CAAcrC,OACduC,kBACF,CAAA,CAAA;AACA,kBAAM,MAAA;AAAA,oBAAEI,WAAAA;AAAAA,oBAAaC,eAAAA;AAAAA,mBAAoBwG,GAAAA,MAAAA,CAAAA;AACzC,kBAAA,IAAIC,eAAkB1G,GAAAA,WAAAA,CAAAA;AAGtB,kBAAA,IAAIkF,OAAS,EAAA;AACX,oBAAMyB,MAAAA,UAAAA,GAAa,IAAInG,GAAAA,CAAIR,WAAW,CAAA,CAAA;AACtC2G,oBAAAA,UAAAA,CAAWnE,OAAOrE,GAAG,CAAA,CAAA;AACrBuI,oBAAAA,eAAAA,GAAkBxG,wBAChBwC,CAAAA,KAAAA,CAAMC,IAAKgE,CAAAA,UAAU,CACrB,EAAA;AAAA,sBAAEzB,OAAS,EAAA,KAAA;AAAA,sBAAOjF,eAAAA;AAAAA,qBAAgB,EAClCxB,YAAYpB,KACZoC,EAAAA,QAAAA,CAASpC,OACTqC,aAAcrC,CAAAA,KAAAA,EACduC,kBACF,CAAEI,CAAAA,WAAAA,CAAAA;AAAAA,mBACJ;AAEAmB,kBAAAA,sBAAAA,CAAuBhD,GAAK,EAAA,CAAC+G,OAASwB,EAAAA,eAAAA,EAAiBf,WAAW,CAAA,CAAA;AAAA,iBACpE;AAAA,eACF;AAEAhF,cAAAA,kBAAAA,CAAmBxC,GAAG,CAAA,CAAA;AAAA,aACxB;AAAA,aAEH,IAAA,CAAA;AAAA,UACD+G,OAAAA;AAAAA,SACF,CAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEA,IAAA,MAAM0B,sBAAmEA,CAAC;AAAA,MAAE/J,MAAAA;AAAAA,MAAQsC,KAAAA;AAAAA,KAAY,KAAA;AAC9F,MAAM,MAAA;AAAA,QAAEoG,IAAAA;AAAAA,QAAML,OAAAA;AAAAA,UAAY3B,UAAW,CAAA;AAAA,QAAE1G,MAAAA;AAAAA,QAAQsC,KAAAA;AAAAA,OAAO,CAAA,CAAA;AAEtD,MAAIqE,IAAAA,mBAAAA;AACF,QAAA,OAAOA,mBAAoB0B,CAAAA,OAAAA,EAASrI,MAAQsC,EAAAA,KAAAA,EAAOoG,IAAI,CAAA,CAAA;AAEzD,MAAOA,OAAAA,IAAAA,CAAAA;AAAAA,KACT,CAAA;AAGA,IAAA,IAAI,CAACzB,YAAAA,CAAaF,QAASzH,CAAAA,gBAAgB,CAAG,EAAA;AAE5C,MACE2H,IAAAA,YAAAA,CAAa+C,UACVhD;;AAAaA,QAAAA,OAAAA,CAAAA,CAAAA,MAAAA,GAAIiD,CAAAA,8BAAmB,CAAvBjD,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAA0BkD,UAAe,MAAA,eAAA,CAAA;AAAA,OACzD,MAAM,CACN,EAAA;AACA,QAAA,MAAM,CAACC,YAAAA,EAAc,GAAGC,WAAW,CAAInD,GAAAA,YAAAA,CAAAA;AACvCA,QAAAA,YAAAA,GAAe,CAACkD,YAAAA,EAAc7K,gBAAkB,EAAA,GAAG8K,WAAW,CAAA,CAAA;AAAA,OACzD,MAAA;AAELnD,QAAe,YAAA,GAAA,CAAC3H,gBAAkB,EAAA,GAAG2H,YAAY,CAAA,CAAA;AAAA,OACnD;AAAA,KACF;AAGA,IAAMoD,MAAAA,oBAAAA,GAAuBpD,YAAaqD,CAAAA,OAAAA,CAAQhL,gBAAgB,CAAA,CAAA;AAClE,IACEkD,IAAAA,OAAAA,CAAQC,GAAIC,CAAAA,QAAAA,KAAa,YACtBuE,IAAAA,YAAAA,CAAa1B,MAAOyB,CAAAA,CAAAA,GAAAA,KAAOA,GAAQ1H,KAAAA,gBAAgB,CAAE2G,CAAAA,MAAAA,GAAS,CACjE,EAAA;AACAtD,MAAWA,cAAA,CAAA,KAAA,EAAO,SAAS,iDAAiD,CAAA,CAAA;AAAA,KAC9E;AAEAsE,IAAeA,YAAAA,GAAAA,YAAAA,CAAa1B,OAC1B,CAACgF,MAAAA,EAAQjI,UAAUiI,MAAWjL,KAAAA,gBAAAA,IAAoBgD,UAAU+H,oBAC9D,CAAA,CAAA;AAGA,IAAMG,MAAAA,OAAAA,GACFvD,YAAaoD,CAAAA,oBAAAA,GAAuB,CAAC,CAAA,CAAA;AACzC,IAAMI,MAAAA,OAAAA,GACFxD,YAAaoD,CAAAA,oBAAAA,GAAuB,CAAC,CAAA,CAAA;AAEzC,IAAA,IAAIK,WAAqCjE,GAAAA,KAAAA,CAAAA;AAEzC,IAAA,IAAIiE,gBAAgBrG,KAAW,CAAA,EAAA;AAC7B,MAAA,IAAA,CAAIoG,mCAAShE,KAAUpC,MAAAA,KAAAA,CAAAA;AACrBqG,QAAAA,WAAAA,GAAcD,OAAQhE,CAAAA,KAAAA,CAAAA;AAAAA,WAAAA,IAAAA,CACf+D,mCAAS/D,KAAUpC,MAAAA,KAAAA,CAAAA;AAC1BqG,QAAAA,WAAAA,GAAcF,OAAQ/D,CAAAA,KAAAA,CAAAA;AAAAA,KAC1B;AAEA,IACEiE,IAAAA,WAAAA,IACGF,OACAA,IAAAA,CAAAA,CAAAA,EAAAA,GAAAA,OAAAA,CAAQP,8BAAmB,CAAA,KAA3BO,mBAA8BN,UAAe,MAAA,eAAA,IAC7CM,OAAQ/D,CAAAA,KAAAA,KAAUpC,KACrB,CAAA,EAAA;AACAmG,MAAAA,OAAAA,CAAQ/D,KAAQiE,GAAAA,WAAAA,CAAAA;AAAAA,KAClB;AAGA,IAAA,MAAMC,eAAkB,GAAA;AAAA,MACtBlE,KAAOiE,EAAAA,WAAAA;AAAAA,MACPE,KAAOrE,EAAAA,iBAAAA;AAAAA,MACPsE,SAAAA,EAAY,CAAEjE,EAAAA,SAAAA,CAAUpG,KAAM,CAAA,iBAAA,CAAA;AAAA,MAC9BiH,KAAAA,EAAOpH,kBAAmBG,CAAAA,KAAAA,CAAMsK,WAAerD,IAAAA,KAAAA;AAAAA,MAC/CsD,YAAchB,EAAAA,mBAAAA;AAAAA,MACd,CAACE,8BAAmB,GAAG;AAAA,QACrBe,KAAAA,EAAQ,CAAEpE,EAAAA,SAAAA,CAAUpG,KAAM,CAAA,cAAA,CAAA;AAAA,OAC5B;AAAA,KACF,CAAA;AAEA,IAAA,OAAOyG,aAAa7E,GAAI4E,CAAAA,CAAAA,GAAAA,KAAQA,GAAQ1H,KAAAA,gBAAAA,GAAmBqL,kBAAkB3D,GAAI,CAAA,CAAA;AAAA,GACnF,CAAA;AAEA,EAAO,OAAA,CAACd,kBAAkB1C,qBAAqB,CAAA,CAAA;AACjD;;;;;;;;"}