seeder-st2110-components 2.0.0 → 2.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/i18n/debug.js","../src/i18n/index.js","../src/componnets/UsageItem.jsx","../src/hooks/useHardwareWebSocket.js","../src/hooks/useHardwareUsage.js","../src/componnets/StyledModal.jsx","../src/componnets/AuthorizationModal.jsx","../src/hooks/useAuth.js","../src/hooks/useUpgrade.js","../src/hooks/useSystemOperations.js","../src/hooks/usePageReload.js","../src/hooks/advanced/useWebSocketWithFeatures.js","../src/locales/zh-CN.js","../src/locales/en-US.js","../src/componnets/NetworkSettingsModal.jsx","../src/componnets/PtpModal.jsx","../src/componnets/PresetModal.component.jsx","../src/componnets/PresetModal.jsx","../src/componnets/UpgradeManager.jsx","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/componnets/SystemOperations.jsx","../src/hooks/useSpaLogo.js","../src/componnets/CommonHeader.jsx","../src/componnets/LSMLabelField.jsx","../src/componnets/NmosModal.jsx","../src/hooks/useDeviceHealthCheck.js","../src/componnets/MaintenancePage.jsx","../src/componnets/draggable-number-input.js","../src/componnets/BoundedInput.jsx"],"sourcesContent":["/**\n * 国际化调试工具\n * 在浏览器控制台运行 window.debugI18n() 查看当前国际化状态\n */\n\nexport const debugI18n = () => {\n if (typeof window === 'undefined') {\n console.log('[i18n debug] Not in browser environment');\n return;\n }\n\n console.group('🌍 I18n Debug Information');\n \n // 1. 当前语言环境\n console.log('📍 Current Locale Sources:');\n console.log(' - window.g_initialProps?.locale:', window.g_initialProps?.locale);\n console.log(' - window.g_initialProps?.___g_initialPropsFromServer?.locale:', window.g_initialProps?.___g_initialPropsFromServer?.locale);\n \n try {\n console.log(' - localStorage.umi-locale:', localStorage.getItem('umi-locale'));\n } catch (e) {\n console.log(' - localStorage: not available');\n }\n \n console.log(' - window.__COMPONENT_LOCALE__:', window.__COMPONENT_LOCALE__);\n\n // 2. 语言包\n console.log('\\n📦 Available Message Sources:');\n console.log(' - window.__COMPONENT_I18N_MESSAGES__:', window.__COMPONENT_I18N_MESSAGES__);\n console.log(' - window.__PROJECT_I18N_MESSAGES__:', window.__PROJECT_I18N_MESSAGES__);\n console.log(' - window.g_initialProps?.messages:', window.g_initialProps?.messages);\n\n // 3. 合并后的语言包\n const componentMessages = window.__COMPONENT_I18N_MESSAGES__ || {};\n const projectMessages = window.__PROJECT_I18N_MESSAGES__ || {};\n const umiMessages = window.g_initialProps?.messages || {};\n \n const allLocales = new Set([\n ...Object.keys(componentMessages),\n ...Object.keys(projectMessages),\n ...Object.keys(umiMessages)\n ]);\n\n console.log('\\n🔧 Merged Locales:', Array.from(allLocales));\n \n allLocales.forEach(locale => {\n const merged = {\n ...(umiMessages[locale] || {}),\n ...(projectMessages[locale] || {}),\n ...(componentMessages[locale] || {})\n };\n console.log(`\\n 📄 ${locale} (${Object.keys(merged).length} keys):`, merged);\n });\n\n // 4. 测试几个关键的 key\n console.log('\\n🧪 Test Translation:');\n const testKeys = [\n 'networkSettings.title',\n 'button.ok',\n 'button.cancel',\n 'button.apply',\n 'button.close'\n ];\n \n const currentLocale = window.g_initialProps?.locale || \n window.g_initialProps?.___g_initialPropsFromServer?.locale ||\n localStorage.getItem('umi-locale') ||\n 'zh-CN';\n \n const allMessages = {};\n allLocales.forEach(locale => {\n allMessages[locale] = {\n ...(umiMessages[locale] || {}),\n ...(projectMessages[locale] || {}),\n ...(componentMessages[locale] || {})\n };\n });\n \n testKeys.forEach(key => {\n const translation = allMessages[currentLocale]?.[key] || \n allMessages['en-US']?.[key] || \n '❌ NOT FOUND';\n console.log(` - ${key}: ${translation}`);\n });\n\n console.groupEnd();\n};\n\n// 自动在开发环境注册到 window\nif (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') {\n window.debugI18n = debugI18n;\n console.log('💡 I18n debug tool available. Run window.debugI18n() in console to check i18n status.');\n}\n\nexport default debugI18n;\n","/**\n * seeder-st2110-components 组件库国际化 Hook\n * \n * 设计目标:\n * 1. 不依赖特定的国际化库(react-intl, i18next 等)\n * 2. 可以与主项目(Umi)的国际化集成\n * 3. 支持简单的变量替换\n * 4. 降级处理:如果没有翻译,显示 key 本身\n */\n\n/**\n * 获取当前语言环境\n * 优先从 Umi 全局变量读取,其次使用默认值\n */\nconst getLocale = () => {\n // 尝试从 Umi 获取语言设置\n if (typeof window !== 'undefined') {\n // 方式 1:Umi 的运行时语言(通过 umi 的 locale 服务)\n // Umi 会在 window.g_lang 或 window.LOCALE 中存储当前语言\n if (window.g_lang) {\n return window.g_lang;\n }\n if (window.LOCALE) {\n return window.LOCALE;\n }\n \n // 方式 2:Umi 的 g_initialProps\n if (window.g_initialProps?.locale) {\n return window.g_initialProps.locale;\n }\n \n // 方式 3:Umi 的全局语言标记\n if (window.g_initialProps?.___g_initialPropsFromServer?.locale) {\n return window.g_initialProps.___g_initialPropsFromServer.locale;\n }\n \n // 方式 4:Umi 的 globalInitialProps\n if (window.g_initialPropsFromServer?.locale) {\n return window.g_initialPropsFromServer.locale;\n }\n \n // 方式 5:从 localStorage 读取(Umi 默认行为)\n try {\n const storedLocale = localStorage.getItem('umi-locale');\n if (storedLocale) {\n return storedLocale;\n }\n } catch (e) {\n // localStorage 不可用时忽略\n }\n \n // 方式 6:组件库自定义语言标记\n if (window.__COMPONENT_LOCALE__) {\n return window.__COMPONENT_LOCALE__;\n }\n }\n // 默认语言:英文(与 Umi 配置一致)\n return 'en-US';\n};\n\n/**\n * 获取语言包\n * 优先从主项目读取,其次使用组件库自带的语言包\n */\nconst getMessages = () => {\n if (typeof window !== 'undefined') {\n // 尝试从多个来源读取语言包\n const messages = {};\n \n // 1. 组件库注册的语言包\n const componentMessages = window.__COMPONENT_I18N_MESSAGES__ || {};\n \n // 2. 主项目的语言包\n const projectMessages = window.__PROJECT_I18N_MESSAGES__ || {};\n \n // 3. Umi 的语言包\n const umiMessages = window.g_initialProps?.messages || {};\n \n // 合并语言包(组件库的优先级最高,其次是主项目,最后是 Umi)\n const allLocales = new Set([\n ...Object.keys(componentMessages),\n ...Object.keys(projectMessages),\n ...Object.keys(umiMessages)\n ]);\n \n allLocales.forEach(locale => {\n messages[locale] = {\n ...(umiMessages[locale] || {}),\n ...(projectMessages[locale] || {}),\n ...(componentMessages[locale] || {})\n };\n });\n \n return messages;\n }\n return {};\n};\n\n/**\n * 格式化消息\n * @param {string} id - 国际化 key\n * @param {object} values - 变量替换值\n * @param {string} locale - 语言环境\n * @param {object} messages - 语言包\n */\nconst formatMessage = ({ id }, values = {}, locale, messages) => {\n const message = messages[locale]?.[id] || messages['en-US']?.[id] || id;\n \n // 支持变量替换 {min}, {max}, {value} 等\n return message.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return values[key] !== undefined ? values[key] : match;\n });\n};\n\n/**\n * 国际化 Hook\n * \n * @returns {{\n * locale: string,\n * formatMessage: function,\n * messages: object\n * }}\n * \n * @example\n * const intl = useIntl();\n * const title = intl.formatMessage({ id: 'networkSettings.title' });\n * const message = intl.formatMessage({ id: 'validation.minLength' }, { min: 3 });\n */\nexport const useIntl = () => {\n const locale = getLocale();\n const messages = getMessages();\n \n const formatMessageFn = ({ id }, values = {}) => {\n return formatMessage({ id }, values, locale, messages);\n };\n \n return {\n locale,\n formatMessage: formatMessageFn,\n messages\n };\n};\n\n/**\n * 注册语言包(可选)\n * 如果需要在运行时注册语言包,可以调用此函数\n * \n * @param {string} locale - 语言代码\n * @param {object} messages - 语言包对象\n */\nexport const addMessages = (locale, messages) => {\n if (typeof window !== 'undefined') {\n if (!window.__COMPONENT_I18N_MESSAGES__) {\n window.__COMPONENT_I18N_MESSAGES__ = {};\n }\n window.__COMPONENT_I18N_MESSAGES__[locale] = messages;\n }\n};\n\nexport default {\n useIntl,\n addMessages,\n getLocale,\n getMessages,\n formatMessage\n};\n\nexport { debugI18n } from './debug';\n","import { memo } from \"react\";\r\nimport { Tooltip } from \"antd\";\r\nimport { useIntl } from '../i18n';\r\n\r\n// 格式化字节大小为更易读的形式\r\nconst formatBytes = (bytes, decimals = 1) => {\r\n if (bytes === 0 || !bytes || bytes < 0) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n};\r\n\r\nconst UsageItem = memo(({ title, iconClass, children, memTotal }) => {\r\n const intl = useIntl();\r\n \r\n return (\r\n <Tooltip \r\n title={\r\n <>\r\n <div>{title}</div>\r\n {title === intl.formatMessage({ id: 'usage.memory' }) && memTotal !== undefined && (\r\n <div>{intl.formatMessage({ id: 'usage.totalMemory' })}: {formatBytes(memTotal)}</div>\r\n )}\r\n </>\r\n } \r\n destroyOnHidden={false}\r\n >\r\n <div className=\"usage-item\">\r\n <i className={`seeder-iconfont ${iconClass} text-xl`} />\r\n <span className=\"usage-value\">{children}</span>\r\n </div>\r\n </Tooltip>\r\n );\r\n});\r\n\r\nexport default UsageItem;","import { useEffect, useState, useCallback } from 'react';\r\nimport { useWebSocket } from 'ahooks';\r\n\r\nconst useHardwareWebSocket = (socketUrl) => {\r\n const [systemStatus, setSystemStatus] = useState();\r\n\r\n const handleMessage = useCallback((message) => {\r\n try {\r\n if (message) {\r\n setSystemStatus(prev => ({\r\n ...prev,\r\n ...message,\r\n // lastUpdated: Date.now() // 添加更新时间戳\r\n }));\r\n }\r\n } catch (error) {\r\n console.error('Message processing error:', error);\r\n }\r\n }, []);\r\n\r\n // ## 获取系统资源使用情况\r\n const { latestMessage } = useWebSocket(socketUrl, {\r\n onMessage: (event) => {\r\n // 处理实时消息\r\n try {\r\n const parsedMessage = JSON.parse(event.data);\r\n handleMessage(parsedMessage);\r\n } catch (error) {\r\n console.error('Message parsing error:', error);\r\n console.debug('Raw message:', event.data);\r\n }\r\n }\r\n });\r\n\r\n // // 监听消息 latestMessage 只用于非实时需求\r\n // useEffect(() => {\r\n // if (!latestMessage?.data) return;\r\n\r\n // try {\r\n // const parsedMessage = JSON.parse(latestMessage.data);\r\n // handleMessage(parsedMessage);\r\n // } catch (error) {\r\n // console.error('Message parsing error:', error);\r\n // console.debug('Raw message:', latestMessage.data);\r\n // }\r\n // }, [latestMessage?.data, handleMessage]);\r\n\r\n return { ps_status: systemStatus }\r\n}\r\n\r\nexport default useHardwareWebSocket ;","import { useMemo } from \"react\";\r\nimport UsageItem from \"../componnets/UsageItem.jsx\";\r\nimport useHardwareWebSocket from './useHardwareWebSocket.js';\r\nimport { useIntl } from '../i18n';\r\n\r\n// 获取网卡最高温度(支持动态字段检查)\r\nconst getMaxNicTemp = (sensors, priorityFields = [\"i350bb\", \"r8169_0_8300:00\"]) => {\r\n const temps = priorityFields\r\n .flatMap(field => sensors?.[field]?.map(item => item.current) || [])\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\n// 获取数组类型传感器最高温度(如内存、硬盘)\r\nconst getMaxSensorTemp = (sensorData) => {\r\n const temps = (sensorData || [])\r\n .map(item => item.current)\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\nconst getDetail = (status = {}) => {\r\n const { cpu_percent, mem, sensors_temperatures, gpu_stats } = status;\r\n\r\n return {\r\n cpu_usage: cpu_percent ?? null,\r\n cpu_temp: sensors_temperatures?.coretemp?.[0]?.current ?? null,\r\n mem_total: mem?.total ?? null,\r\n mem_usage: mem?.percent ?? null,\r\n mem_temp: getMaxSensorTemp(sensors_temperatures?.spd5118),\r\n nic_temp: getMaxNicTemp(sensors_temperatures) ?? null,\r\n hd_temp: getMaxSensorTemp(sensors_temperatures?.nvme),\r\n gpu_usage: gpu_stats?.[0]?.[\"utilization.gpu\"] ?? null,\r\n gpu_temp: gpu_stats?.[0]?.[\"temperature.gpu\"] ?? null,\r\n };\r\n};\r\n\r\n// 提取公共逻辑\r\nconst createMetricItem = (\r\n title,\r\n iconClass,\r\n value,\r\n unit\r\n) => {\r\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\r\n\r\n return {\r\n title,\r\n iconClass,\r\n valueString: `${numValue}${unit}`,\r\n value: numValue,\r\n };\r\n};\r\n\r\nconst getItems = (details, intl) => {\r\n const items = [];\r\n\r\n if (details.cpu_usage !== null && details.cpu_usage !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.cpu' }), 'seeder-icon-CPU', details.cpu_usage, '%'));\r\n }\r\n\r\n if (details.cpu_temp !== null && details.cpu_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.cpuTemp' }), 'seeder-icon-CPUwendu', details.cpu_temp, '℃'));\r\n }\r\n\r\n if (details.mem_usage !== null && details.mem_usage !== undefined) {\r\n items.push({\r\n ...createMetricItem(intl.formatMessage({ id: 'usage.memory' }), 'seeder-icon-shiyongshuai', details.mem_usage, '%'),\r\n memTotal: details.mem_total,\r\n });\r\n }\r\n\r\n if (details.mem_temp !== null && details.mem_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.memTemp' }), 'seeder-icon-wendu', details.mem_temp, '℃'));\r\n }\r\n\r\n if (details.nic_temp !== null && details.nic_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.nicTemp' }), 'seeder-icon-wuliwangka', details.nic_temp, '℃'));\r\n }\r\n\r\n if (details.hd_temp !== null && details.hd_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.diskTemp' }), 'seeder-icon-yingpan', details.hd_temp, '℃'));\r\n }\r\n\r\n if (details.gpu_usage !== null && details.gpu_usage !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.gpu' }), 'seeder-icon-gpufuwu', details.gpu_usage, '%'));\r\n }\r\n\r\n if (details.gpu_temp !== null && details.gpu_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.gpuTemp' }), 'seeder-icon-CPUwendu', details.gpu_temp, '℃'));\r\n }\r\n\r\n return items;\r\n};\r\n\r\nconst useHardwareUsage = (socketUrl) => {\r\n const intl = useIntl();\r\n const { ps_status } = useHardwareWebSocket(socketUrl);\r\n\r\n return useMemo(() => {\r\n if (!ps_status || typeof ps_status !== 'object') return null;\r\n\r\n const statusItems = getItems(getDetail(ps_status), intl);\r\n\r\n return (\r\n <div className=\"usage-container\">\r\n {statusItems.map((item, index) => (\r\n <div key={item.title} className=\"usage-item-wrapper\">\r\n <UsageItem \r\n title={item.title}\r\n iconClass={item.iconClass} \r\n memTotal={item.memTotal}\r\n >\r\n {item.valueString}\r\n </UsageItem>\r\n {/* {index < statusItems.length - 1 && <Divider type=\"vertical\" />} */}\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n }, [ps_status]);\r\n}\r\n\r\nexport default useHardwareUsage;","import { Modal } from 'antd';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst StyledModal = (props) => {\r\n const intl = useIntl();\r\n const {\r\n width = \"520px\",\r\n okText = \"button.apply\",\r\n cancelText = \"button.close\",\r\n styles: propStyles = {},\r\n ...restProps\r\n } = props;\r\n\r\n // 处理国际化文本\r\n const okButtonText = typeof okText === 'string' && okText.includes('.') \r\n ? intl.formatMessage({ id: okText }) \r\n : okText;\r\n \r\n const cancelButtonText = typeof cancelText === 'string' && cancelText.includes('.') \r\n ? intl.formatMessage({ id: cancelText }) \r\n : cancelText;\r\n\r\n // 基础样式配置\r\n const baseStyles = {\r\n content: {\r\n padding: 0,\r\n // background: \"#282828\"\r\n },\r\n header: {\r\n marginBottom: 0,\r\n padding: 0,\r\n paddingBlock: 16,\r\n paddingInlineStart: 24,\r\n background: \"#000000\"\r\n },\r\n body: {\r\n paddingBlock: 20,\r\n paddingInline: 24\r\n },\r\n footer: {\r\n marginTop: 0,\r\n padding: 0,\r\n paddingBlockEnd: 20,\r\n paddingInline: 24\r\n }\r\n };\r\n\r\n // 合并样式\r\n const styles = {\r\n ...baseStyles,\r\n ...propStyles\r\n };\r\n\r\n return (\r\n <Modal\r\n width={width}\r\n okText={okButtonText}\r\n cancelText={cancelButtonText}\r\n styles={styles}\r\n {...restProps}\r\n />\r\n );\r\n};\r\n\r\nexport default StyledModal;","import { useState } from 'react';\r\nimport { Form, Input, Alert, App } from 'antd';\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst AuthorizationModal = ({\r\n onCancel,\r\n onOk,\r\n authData,\r\n title = 'license.title',\r\n okText,\r\n cancelText = 'license.button.ignore',\r\n width = 600\r\n}) => {\r\n const intl = useIntl();\r\n const { message } = App.useApp();\r\n const [code, setCode] = useState('');\r\n\r\n const {\r\n accredit_status: isActivated,\r\n message: statusMessage,\r\n bios_id: uuid,\r\n expires_time: expiresTime\r\n } = authData || {};\r\n\r\n // 服务端返回的状态文本映射到国际化 key\r\n const getStatusMessageKey = (msg) => {\r\n if (!msg) return 'license.status.unactivated';\r\n \r\n // 根据服务端返回的英文文本映射\r\n const statusMap = {\r\n 'Already activated': 'license.status.activated',\r\n 'Unactivated': 'license.status.unactivated',\r\n 'Expired': 'license.status.expired',\r\n 'Invalid': 'license.status.invalid'\r\n };\r\n \r\n return statusMap[msg] || 'license.status.unactivated';\r\n };\r\n\r\n const statusMessageKey = getStatusMessageKey(statusMessage);\r\n\r\n const handleOk = () => {\r\n const trimmedCode = code.trim();\r\n if (!trimmedCode) {\r\n message.error(intl.formatMessage({ id: 'license.validation.keyRequired' }));\r\n return;\r\n }\r\n onOk(trimmedCode);\r\n }\r\n \r\n const statusAlert = isActivated ? (\r\n <Alert\r\n message={`${intl.formatMessage({ id: statusMessageKey })}, ${intl.formatMessage({ id: 'license.status.expiresOn' })} ${expiresTime}`}\r\n type=\"success\"\r\n showIcon\r\n />\r\n ) : (\r\n <Alert message={intl.formatMessage({ id: statusMessageKey })} type=\"warning\" showIcon />\r\n );\r\n\r\n const defaultOkText = isActivated ? intl.formatMessage({ id: 'license.button.reactivate' }) : intl.formatMessage({ id: 'license.button.activate' });\r\n\r\n return (\r\n <StyledModal\r\n title={intl.formatMessage({ id: title })}\r\n width={width}\r\n open={true}\r\n onCancel={onCancel}\r\n onOk={handleOk}\r\n okText={okText || defaultOkText}\r\n cancelText={intl.formatMessage({ id: cancelText })}\r\n cancelButtonProps={{ disabled: !isActivated }}\r\n maskClosable={false}\r\n closable={false}\r\n >\r\n <Form\r\n name=\"auth_form\"\r\n labelCol={{ span: 6 }}\r\n wrapperCol={{ span: 18 }}\r\n autoComplete=\"off\"\r\n >\r\n <div style={{ marginBottom: 16 }}>{statusAlert}</div>\r\n <Form.Item label={intl.formatMessage({ id: 'license.machineCode' })} required>\r\n <Input value={uuid} readOnly />\r\n </Form.Item>\r\n <Form.Item label={intl.formatMessage({ id: 'license.key' })} required>\r\n <Input.TextArea\r\n value={code}\r\n onChange={(e) => setCode(e.target.value)}\r\n autoSize={{ minRows: 6, maxRows: 6 }}\r\n placeholder={intl.formatMessage({ id: 'license.placeholder.enterKey' })}\r\n />\r\n </Form.Item>\r\n </Form>\r\n </StyledModal>\r\n );\r\n}\r\n\r\nexport default AuthorizationModal;","import { useState, useEffect, useCallback } from 'react';\r\nimport { message } from 'antd';\r\nimport AuthorizationModal from '../componnets/AuthorizationModal.jsx';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst DEFAULT_AUTH = {\r\n accredit_status: false, // 授权状态\r\n bios_id: '', // 主机 id\r\n message: 'license.status.unactivated', // 激活信息\r\n expires_time: '' // 授权到期时间\r\n}\r\n\r\nexport const useAuth = (options) => {\r\n const intl = useIntl();\r\n const {\r\n fetchAuthInfo,\r\n authorize,\r\n defaultAuthData = DEFAULT_AUTH,\r\n autoShowModal = true\r\n } = options || {};\r\n\r\n const [messageApi, contextHolder] = message.useMessage();\r\n const [showModal, setShowModal] = useState(false); // 默认隐藏\r\n const [authData, setAuthData] = useState(defaultAuthData);\r\n const [isRegistered, setIsRegistered] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const openModal = useCallback(() => setShowModal(true), []);\r\n const closeModal = useCallback(() => setShowModal(false), []);\r\n\r\n useEffect(() => {\r\n async function loadAuthInfo() {\r\n try {\r\n setLoading(true);\r\n const result = await fetchAuthInfo();\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n setAuthData(commands);\r\n setIsRegistered(commands.accredit_status);\r\n if (autoShowModal) {\r\n commands.accredit_status ? closeModal() : openModal();\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch auth info:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n loadAuthInfo();\r\n }, [fetchAuthInfo, autoShowModal, openModal, closeModal]);\r\n\r\n const auth = async (code) => {\r\n try {\r\n setLoading(true);\r\n const result = await authorize({\r\n type: \"accredit_command\",\r\n commands: {\r\n id: \"LICENSE\",\r\n license_data: code\r\n }\r\n });\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n // type accredit_message\r\n if (commands?.accredit_status) {\r\n setIsRegistered(true);\r\n setAuthData(commands);\r\n closeModal();\r\n } else {\r\n // 处理错误消息的国际化\r\n const errorMsg = commands.ciphertext_status || 'license.error.authorizationFailed';\r\n const errorMessage = typeof errorMsg === 'string' && errorMsg.includes('.') \r\n ? intl.formatMessage({ id: errorMsg }) \r\n : errorMsg;\r\n messageApi.error(errorMessage);\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Authorization error:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const modal = showModal && (\r\n <>\r\n <AuthorizationModal\r\n onOk={auth}\r\n onCancel={closeModal}\r\n authData={authData}\r\n />\r\n {contextHolder}\r\n </>\r\n );\r\n\r\n return {\r\n AuthModal: modal,\r\n openAuthModal: openModal,\r\n closeAuthModal: closeModal,\r\n isRegistered,\r\n authData,\r\n loading\r\n };\r\n};","import { useRef, useState, useEffect, useMemo } from \"react\";\r\nimport { Spin, message, Dropdown } from \"antd\";\r\nimport { LoadingOutlined } from '@ant-design/icons';\r\nimport { useInterval } from \"ahooks\";\r\nimport axios from 'axios';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst useUpgrade = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute, // 上传接口:(formData, config) => Promise<response>\r\n upgradeStatus, // 状态轮询接口:(config) => Promise<response>\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000\r\n}) => {\r\n const intl = useIntl();\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const [pollingInterval, setPollingInterval] = useState(undefined); // 间隔时间,当设置值为 undefined 时会停止计时器\r\n const [currentStatus, setCurrentStatus] = useState(intl.formatMessage({ id: 'upgrade.status.idle' })); // 'idle' | 'uploading' | 'Upload complete, starting upgrade...' | 'upgrading'\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n\r\n const inputRef = useRef(null);\r\n // 控制并发上传\r\n const isUploadingRef = useRef(false);\r\n // 标记组件是否已卸载\r\n const isMountedRef = useRef(true);\r\n\r\n // 分别创建独立的取消令牌\r\n const uploadCancelToken = useRef(axios.CancelToken.source());\r\n const statusCancelToken = useRef(axios.CancelToken.source());\r\n\r\n const showLoader = () => setIsSpinning(true);\r\n const hideLoader = () => setIsSpinning(false);\r\n\r\n // 构建菜单项 - 确保至少包含download和upload\r\n // 构建菜单项 - 最终完美版本\r\n const finalMenuItems = useMemo(() => {\r\n const hasDownload = menuItems.some(item => item.key === 'download');\r\n const hasUpload = menuItems.some(item => item.key === 'upload');\r\n \r\n if (hasDownload && hasUpload) {\r\n return menuItems;\r\n }\r\n \r\n const licenseIndex = menuItems.findIndex(item => item.key === 'license');\r\n \r\n // 如果没有 license,在末尾添加\r\n if (licenseIndex === -1) {\r\n const itemsToAdd = [];\r\n if (menuItems.length > 0) itemsToAdd.push({ type: 'divider' });\r\n // if (!hasDownload) itemsToAdd.push({ key: \"download\", label: intl.formatMessage({ id: 'upgrade.menu.download' }) });\r\n if (!hasUpload) itemsToAdd.push({ key: \"upload\", label: intl.formatMessage({ id: 'upgrade.menu.softwareUpdate' }) });\r\n return [...menuItems, ...itemsToAdd];\r\n }\r\n \r\n // 有 license,在 license 前面插入\r\n const beforeLicense = menuItems.slice(0, licenseIndex);\r\n const licenseItem = menuItems[licenseIndex];\r\n const afterLicense = menuItems.slice(licenseIndex + 1);\r\n \r\n const itemsToInsert = [];\r\n \r\n // 1. 前面的分隔符(如果 beforeLicense 不为空且最后一项不是分隔符)\r\n if (beforeLicense.length > 0 && beforeLicense[beforeLicense.length - 1].type !== 'divider') {\r\n itemsToInsert.push({ type: 'divider' });\r\n }\r\n \r\n // 2. 添加缺少的项\r\n // if (!hasDownload) itemsToInsert.push({ key: \"download\", label: intl.formatMessage({ id: 'upgrade.menu.download' }) });\r\n if (!hasUpload) itemsToInsert.push({ key: \"upload\", label: intl.formatMessage({ id: 'upgrade.menu.softwareUpdate' }) });\r\n \r\n // 3. 后面的分隔符(与 license 之间)\r\n itemsToInsert.push({ type: 'divider' });\r\n \r\n return [...beforeLicense, ...itemsToInsert, licenseItem, ...afterLicense];\r\n }, [menuItems, intl]);\r\n\r\n const handleMenuClick = ({ key }) => {\r\n switch (key) {\r\n case 'download':\r\n onDownload();\r\n return;\r\n case 'upload':\r\n onUpload();\r\n return;\r\n default:\r\n // 其他菜单项交给外部回调处理\r\n if (onMenuClick) {\r\n onMenuClick(key);\r\n } else {\r\n console.warn(`Unknown menu key: ${key} and no onMenuClick provided`);\r\n }\r\n }\r\n };\r\n\r\n const onDownload = async () => {\r\n if (!downloadFiles) {\r\n console.error('downloadFiles function is required for download operation');\r\n message.error(intl.formatMessage({ id: 'upgrade.error.downloadNotConfigured' }));\r\n return;\r\n }\r\n\r\n try {\r\n const res = await downloadFiles();\r\n\r\n if (res.status !== 200) {\r\n throw new Error(`Unexpected status code: ${res.status}`);\r\n }\r\n\r\n // 默认值,兼容接口响应头没有定义文件名\r\n let fileName = 'config.tar.gz';\r\n const contentDisposition = res.headers['content-disposition'] || '';\r\n\r\n // 获取接口响应的content-disposition字段值,以便获取到文件名\r\n if (contentDisposition) {\r\n const filenameMatch = contentDisposition.match(/filename\\s*=\\s*\"?([^\";]+)\"?/i);\r\n if (filenameMatch?.[1]) {\r\n fileName = decodeURIComponent(filenameMatch[1]); // 处理编码后的文件名(如 %20 转空格)\r\n }\r\n }\r\n\r\n // 创建并下载文件\r\n const blob = new Blob([res.data], { type: 'application/octet-stream' });\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n // 下面就是创建一个 a 标签并触发 click 事件,来下载该文件\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.href = url;\r\n link.target = '_blank';\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // 最后移除 a 标签并删除创建的 ObjectURL 对象,防止内存泄漏\r\n link.parentNode.removeChild(link);\r\n window.URL.revokeObjectURL(url);\r\n } catch (error) {\r\n console.error('Download failed:', error);\r\n message.error(intl.formatMessage({ id: 'upgrade.error.downloadFailed' }));\r\n }\r\n }\r\n\r\n const onUpload = () => {\r\n if (inputRef?.current && !isUploadingRef.current) {\r\n inputRef.current.click();\r\n }\r\n }\r\n\r\n const updatePackage = async (event) => {\r\n if (isUploadingRef.current) return; // 防止重复上传\r\n\r\n const file = event.target.files?.[0];\r\n if (!file || !upgradeExecute) {\r\n if (inputRef.current) inputRef.current.value = \"\";\r\n return;\r\n }\r\n\r\n isUploadingRef.current = true;\r\n showLoader();\r\n setCurrentStatus(intl.formatMessage({ id: 'upgrade.status.uploading' }));\r\n setUploadProgress(0);\r\n\r\n // 重置取消令牌\r\n uploadCancelToken.current.cancel();\r\n uploadCancelToken.current = axios.CancelToken.source();\r\n\r\n try {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n // 清除文件选择\r\n if (inputRef.current) inputRef.current.value = \"\";\r\n\r\n // 上传后立即检查业务状态码\r\n // upgradeExecute 使用 umi request 返回的数据是过滤过的\r\n const response = await upgradeExecute(formData, {\r\n onUploadProgress: (progressEvent) => {\r\n if (!isMountedRef.current) return;\r\n const percentCompleted = Math.round(\r\n (progressEvent.loaded * 100) / progressEvent.total\r\n );\r\n setUploadProgress(percentCompleted); // 更新进度状态\r\n },\r\n cancelToken: uploadCancelToken.current.token\r\n });\r\n \r\n // 检查业务 code\r\n if (response?.code !== 200) {\r\n // 即使上传成功,但如果服务器返回非 200,说明有问题\r\n if (isMountedRef.current) {\r\n const errorMsg = response?.message || intl.formatMessage({ id: 'upgrade.error.invalidFileFormat' });\r\n message.error(errorMsg);\r\n cancelRequest();\r\n }\r\n return;\r\n }\r\n\r\n // 上传成功,进入等待升级阶段\r\n if (!isMountedRef.current) return;\r\n setCurrentStatus(intl.formatMessage({ id: 'upgrade.status.uploadComplete' }));\r\n\r\n // 延迟后启动轮询\r\n setTimeout(() => {\r\n if (!isMountedRef.current) return;\r\n setPollingInterval(statusPollingInterval);\r\n setCurrentStatus(intl.formatMessage({ id: 'upgrade.status.upgrading' }));\r\n }, uploadCompleteDelay);\r\n } catch (error) {\r\n if (!isMountedRef.current) return;\r\n\r\n if (!axios.isCancel(error)) {\r\n console.error(\"Upload error:\", error);\r\n message.error(intl.formatMessage({ id: 'upgrade.error.uploadFailed' }));\r\n }\r\n cancelRequest();\r\n } finally {\r\n if (isMountedRef.current) {\r\n isUploadingRef.current = false;\r\n }\r\n }\r\n }\r\n\r\n const fetchUpgradeStatus = async () => {\r\n if (!upgradeStatus || !isMountedRef.current) return;\r\n\r\n try {\r\n // upgradeStatus 使用 axios request 返回的数据没有过滤\r\n const response = await upgradeStatus({\r\n cancelToken: statusCancelToken.current.token\r\n });\r\n\r\n if (response?.status === 200) {\r\n const { code, message: statusMessage } = response.data;\r\n\r\n // 状态处理\r\n switch (code) {\r\n case 200: // 升级成功\r\n message.success(statusMessage, 2.5, () => {\r\n if (isMountedRef.current) {\r\n cancelRequest();\r\n }\r\n window.location.reload();\r\n });\r\n break;\r\n \r\n case 201: // 升级中 — 继续轮询\r\n break;\r\n case 202: // 升级失败\r\n case 203: // 升级异常\r\n if (isMountedRef.current) {\r\n message.error(statusMessage);\r\n cancelRequest();\r\n }\r\n break;\r\n \r\n default:\r\n // 其他 code 如 500、400 等\r\n if (isMountedRef.current) {\r\n message.error(statusMessage || intl.formatMessage({ id: 'upgrade.error.upgradeFailed' }));\r\n cancelRequest();\r\n }\r\n break;\r\n }\r\n }\r\n } catch (error) {\r\n if (!isMountedRef.current) return;\r\n\r\n if (!axios.isCancel(error)) {\r\n console.error('Status check failed:', error);\r\n }\r\n }\r\n }\r\n\r\n const cancelRequest = () => {\r\n // 取消状态轮询\r\n uploadCancelToken.current.cancel('Operation canceled');\r\n statusCancelToken.current.cancel('Operation canceled');\r\n \r\n uploadCancelToken.current = axios.CancelToken.source();\r\n statusCancelToken.current = axios.CancelToken.source();\r\n \r\n // 重置所有状态\r\n setPollingInterval(undefined);\r\n setCurrentStatus('idle');\r\n setUploadProgress(0);\r\n isUploadingRef.current = false;\r\n hideLoader();\r\n };\r\n\r\n // 轮询状态\r\n useInterval(fetchUpgradeStatus, pollingInterval);\r\n\r\n // 组件卸载时清理\r\n useEffect(() => {\r\n return () => {\r\n isMountedRef.current = false;\r\n uploadCancelToken.current.cancel();\r\n statusCancelToken.current.cancel();\r\n };\r\n }, []);\r\n\r\n const upgradeElement = (\r\n <div>\r\n <Dropdown \r\n menu={{ \r\n items: finalMenuItems, \r\n onClick: handleMenuClick\r\n }} \r\n trigger={[\"hover\"]}\r\n >\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className=\"seeder-iconfont seeder-icon-liebiao2 text-xl text-neutral-400\"></i>\r\n </a>\r\n </Dropdown>\r\n <input \r\n ref={inputRef} \r\n type=\"file\" \r\n onChange={updatePackage} \r\n className=\"hidden\"\r\n accept={acceptFileTypes}\r\n />\r\n <Spin \r\n spinning={isSpinning} \r\n indicator={<LoadingOutlined style={{ fontSize: 60 }} spin />}\r\n tip={\r\n currentStatus === intl.formatMessage({ id: 'upgrade.status.uploading' })\r\n ? `${currentStatus} ${uploadProgress}%` \r\n : currentStatus\r\n }\r\n size=\"large\"\r\n fullscreen\r\n />\r\n </div>\r\n )\r\n\r\n return [upgradeElement];\r\n}\r\n\r\nexport default useUpgrade;","import { useCallback } from 'react';\r\nimport { App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { useIntl } from '../i18n';\r\n\r\nconst useSystemOperations = ({\r\n onPowerOff,\r\n onRestart,\r\n confirmTitle = \"system.confirm.title\",\r\n cancelText = \"system.button.cancel\",\r\n okText = \"system.button.confirm\",\r\n run\r\n} = {}) => {\r\n const intl = useIntl();\r\n const { modal: AntdModal } = App.useApp();\r\n\r\n // 处理国际化文本\r\n const confirmTitleText = typeof confirmTitle === 'string' && confirmTitle.includes('.') \r\n ? intl.formatMessage({ id: confirmTitle }) \r\n : confirmTitle;\r\n const cancelTextValue = typeof cancelText === 'string' && cancelText.includes('.') \r\n ? intl.formatMessage({ id: cancelText }) \r\n : cancelText;\r\n const okTextValue = typeof okText === 'string' && okText.includes('.') \r\n ? intl.formatMessage({ id: okText }) \r\n : okText;\r\n\r\n const doAction = useCallback((action) => {\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: `${confirmTitleText} ${action === 'poweroff' ? intl.formatMessage({ id: 'system.action.powerOff' }) : intl.formatMessage({ id: 'system.action.restart' })}?`,\r\n cancelText: cancelTextValue,\r\n okText: okTextValue,\r\n onOk: () => {\r\n if (action === 'poweroff' && onPowerOff) {\r\n onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n onRestart();\r\n }\r\n\r\n // Call the run callback after successful operation\r\n if (typeof run === 'function') {\r\n run();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }, [AntdModal, confirmTitleText, cancelTextValue, okTextValue, onPowerOff, onRestart, intl]);\r\n\r\n const getMenuItems = useCallback(() => [\r\n {\r\n key: \"poweroff\",\r\n label: intl.formatMessage({ id: 'system.poweroff' }),\r\n },\r\n {\r\n key: \"restart\",\r\n label: intl.formatMessage({ id: 'system.restart' }),\r\n }\r\n ], [intl]);\r\n\r\n const handleMenuClick = useCallback(({ key }) => {\r\n doAction(key);\r\n }, [doAction]);\r\n\r\n return {\r\n menuItems: getMenuItems(),\r\n handleMenuClick\r\n };\r\n};\r\n\r\nexport default useSystemOperations;","import { useState, useCallback } from 'react';\r\nimport { Spin } from 'antd';\r\n\r\nconst usePageReload = () => {\r\n const [reloading, setReloading] = useState(false);\r\n \r\n const startReload = useCallback((delay = 800) => {\r\n if (reloading) return; // 防止重复触发\r\n\r\n // 显示遮罩\r\n setReloading(true);\r\n \r\n // 设置背景色\r\n document.body.style.backgroundColor = '#282828';\r\n document.body.style.transition = 'background-color 0.1s';\r\n document.body.offsetHeight;\r\n \r\n // 延迟刷新\r\n const timer = setTimeout(() => {\r\n window.location.reload();\r\n }, delay);\r\n\r\n // 清理函数(防止内存泄漏)\r\n return () => clearTimeout(timer);\r\n }, [reloading]);\r\n \r\n const ReloadOverlay = () => {\r\n if (!reloading) return null;\r\n \r\n return (\r\n <div style={{\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: '#282828',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n zIndex: 999999,\r\n color: 'white'\r\n }}>\r\n <Spin size=\"large\" />\r\n <div style={{ marginTop: 20, fontSize: 16 }}>\r\n Loading preset configuration...\r\n </div>\r\n <div style={{ marginTop: 10, fontSize: 12, color: '#aaa' }}>\r\n Page will refresh shortly\r\n </div>\r\n </div>\r\n );\r\n };\r\n \r\n return { startReload, ReloadOverlay };\r\n};\r\n\r\nexport default usePageReload;","import { useWebSocket } from 'ahooks';\r\nimport { useEffect, useCallback, useRef, useMemo, useState } from 'react';\r\n\r\nconst getReadyStateText = (state) => {\r\n const states = { \r\n 0: 'CONNECTING', \r\n 1: 'OPEN', \r\n 2: 'CLOSING', \r\n 3: 'CLOSED' \r\n };\r\n return states[state] || `UNKNOWN(${state})`;\r\n};\r\n\r\n// 创建空日志器\r\nconst createDummyLogger = () => {\r\n const dummyFn = () => {};\r\n return {\r\n log: dummyFn,\r\n exportLogs: dummyFn,\r\n getLogStats: () => ({\r\n total: 0,\r\n errors: 0,\r\n warnings: 0,\r\n info: 0,\r\n lastTimestamp: null\r\n }),\r\n clearLogs: dummyFn,\r\n logs: []\r\n };\r\n};\r\n\r\n// 创建通用的日志器\r\nconst createGlobalLogger = (webSocketUrl = '') => {\r\n const logs = [];\r\n const maxLogs = 1000;\r\n\r\n // 判断是否为开发环境\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n\r\n const log = (level, message, data = {}) => {\r\n const timestamp = new Date().toISOString();\r\n const logEntry = {\r\n timestamp,\r\n level,\r\n message,\r\n data,\r\n timestampDisplay: new Date().toLocaleString('zh-CN', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: false\r\n })\r\n };\r\n\r\n logs.push(logEntry);\r\n if (logs.length > maxLogs) logs.shift();\r\n\r\n // 只在开发环境下输出到控制台\r\n if (isDevelopment) {\r\n const consoleMessage = `[${logEntry.timestampDisplay}] [WebSocket] [${level}] ${message}`;\r\n const consoleArgs = [consoleMessage];\r\n if (Object.keys(data).length > 0) consoleArgs.push(data);\r\n\r\n switch (level) {\r\n case 'ERROR': console.error(...consoleArgs); break;\r\n case 'WARN': console.warn(...consoleArgs); break;\r\n case 'INFO': console.info(...consoleArgs); break;\r\n default: console.log(...consoleArgs);\r\n }\r\n }\r\n\r\n return logEntry;\r\n };\r\n\r\n const exportLogs = (filenamePrefix = 'websocket') => {\r\n if (logs.length === 0) {\r\n log('WARN', '没有日志可导出', { filenamePrefix });\r\n return;\r\n }\r\n\r\n const logText = logs.map(entry => \r\n `[${entry.timestampDisplay}] [${entry.level}] ${entry.message}\\n数据: ${JSON.stringify(entry.data, null, 2)}`\r\n ).join('\\n' + '='.repeat(50) + '\\n');\r\n\r\n const blob = new Blob([logText], { type: 'text/plain;charset=utf-8' });\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n let hostname = 'unknown';\r\n let pathname = 'unknown';\r\n \r\n try {\r\n if (webSocketUrl) {\r\n const urlObj = new URL(webSocketUrl.replace(/^ws/, 'http'));\r\n hostname = urlObj.hostname.replace(/\\./g, '-');\r\n pathname = urlObj.pathname\r\n .replace(/\\//g, '-')\r\n .replace(/^-|-$/g, '') \r\n || 'root';\r\n }\r\n } catch (error) {\r\n console.warn('无法解析WebSocket URL:', error);\r\n }\r\n\r\n const readableTime = new Date().toLocaleString('zh-CN', {\r\n year: 'numeric', month: '2-digit', day: '2-digit',\r\n hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false\r\n }).replace(/[\\/:\\s]/g, '-');\r\n\r\n const filename = `${filenamePrefix}-${hostname}-${pathname}-${readableTime}.log`;\r\n\r\n const a = document.createElement('a');\r\n a.href = blobUrl;\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n URL.revokeObjectURL(blobUrl);\r\n\r\n log('INFO', '日志文件已导出', { count: logs.length, filename });\r\n };\r\n\r\n const getLogStats = () => ({\r\n total: logs.length,\r\n errors: logs.filter(l => l.level === 'ERROR').length,\r\n warnings: logs.filter(l => l.level === 'WARN').length,\r\n info: logs.filter(l => l.level === 'INFO').length,\r\n lastTimestamp: logs[logs.length - 1]?.timestampDisplay\r\n });\r\n\r\n const clearLogs = () => {\r\n logs.length = 0;\r\n log('INFO', '日志已清空');\r\n };\r\n\r\n return { log, exportLogs, getLogStats, clearLogs, logs };\r\n};\r\n\r\n// 心跳管理器\r\nconst useHeartbeat = (sendMessage, readyState, config, logger, enabled = true) => {\r\n const heartbeatTimerRef = useRef(null);\r\n const lastHeartbeatTimeRef = useRef(Date.now());\r\n const isMountedRef = useRef(true);\r\n\r\n const configRef = useRef({\r\n interval: config?.interval || 20000,\r\n message: config?.message || { type: 'ping' }\r\n });\r\n\r\n const stateRef = useRef({\r\n sendMessage,\r\n readyState,\r\n enabled\r\n });\r\n\r\n useEffect(() => {\r\n configRef.current = {\r\n interval: config?.interval || 20000,\r\n message: config?.message || { type: 'ping' }\r\n };\r\n }, [config?.interval, config?.message]);\r\n\r\n useEffect(() => {\r\n stateRef.current = {\r\n sendMessage,\r\n readyState,\r\n enabled\r\n };\r\n }, [sendMessage, readyState, enabled]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n isMountedRef.current = false;\r\n if (heartbeatTimerRef.current) {\r\n clearInterval(heartbeatTimerRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const stopHeartbeat = useCallback(() => {\r\n if (heartbeatTimerRef.current) {\r\n clearInterval(heartbeatTimerRef.current);\r\n heartbeatTimerRef.current = null;\r\n if (stateRef.current.enabled) {\r\n logger.log('INFO', '停止心跳机制');\r\n }\r\n }\r\n }, [logger]);\r\n\r\n const startHeartbeat = useCallback(() => {\r\n stopHeartbeat();\r\n\r\n const currentState = stateRef.current;\r\n const currentConfig = configRef.current;\r\n \r\n if (!currentState.enabled) return;\r\n\r\n logger.log('INFO', '启动心跳机制', { interval: currentConfig.interval });\r\n\r\n heartbeatTimerRef.current = setInterval(() => {\r\n // 检查组件是否挂载\r\n if (!isMountedRef.current || !heartbeatTimerRef.current) {\r\n return;\r\n }\r\n \r\n // 目的: 总是获取最新的值\r\n const latestState = stateRef.current;\r\n const latestConfig = configRef.current;\r\n \r\n if (latestState.sendMessage && latestState.readyState === 1) {\r\n try {\r\n latestState.sendMessage(JSON.stringify(latestConfig.message));\r\n lastHeartbeatTimeRef.current = Date.now();\r\n logger.log('DEBUG', '发送心跳包', {\r\n timeSinceLastHeartbeat: Date.now() - lastHeartbeatTimeRef.current,\r\n readyState: getReadyStateText(latestState.readyState)\r\n });\r\n } catch (error) {\r\n logger.log('ERROR', '发送心跳失败', {\r\n error: error.message,\r\n readyState: getReadyStateText(latestState.readyState)\r\n });\r\n }\r\n }\r\n }, currentConfig.interval);\r\n }, [stopHeartbeat, logger]);\r\n\r\n // 自动管理心跳\r\n useEffect(() => {\r\n const currentState = stateRef.current;\r\n \r\n if (currentState.enabled) {\r\n if (currentState.readyState === 1) {\r\n startHeartbeat();\r\n } else {\r\n stopHeartbeat();\r\n }\r\n } else {\r\n stopHeartbeat();\r\n }\r\n\r\n return () => {\r\n if (heartbeatTimerRef.current) {\r\n clearInterval(heartbeatTimerRef.current);\r\n heartbeatTimerRef.current = null;\r\n }\r\n };\r\n }, [readyState, enabled, startHeartbeat, stopHeartbeat]);\r\n\r\n const heartbeatImpl = useMemo(() => {\r\n if (!enabled) {\r\n return {\r\n startHeartbeat: () => {},\r\n stopHeartbeat: () => {},\r\n getLastHeartbeatTime: () => null,\r\n isEnabled: false\r\n };\r\n }\r\n\r\n return {\r\n startHeartbeat,\r\n stopHeartbeat,\r\n getLastHeartbeatTime: () => lastHeartbeatTimeRef.current,\r\n isEnabled: true\r\n };\r\n }, [enabled, startHeartbeat, stopHeartbeat]);\r\n\r\n return heartbeatImpl;\r\n};\r\n\r\nconst useWebSocketWithFeatures = (config) => {\r\n const { url, options = {}, heartbeat: heartbeatConfig = false, enableLog = true } = config;\r\n const [isConnected, setIsConnected] = useState(false);\r\n\r\n // 创建 logger 实例\r\n const logger = useMemo(() => {\r\n if (enableLog) {\r\n return createGlobalLogger(url);\r\n }\r\n return createDummyLogger();\r\n }, [url, enableLog]);\r\n\r\n const websocketOptions = useMemo(() => ({\r\n ...options,\r\n onOpen: (event) => {\r\n logger.log('INFO', 'WebSocket 连接成功', {\r\n url,\r\n readyState: getReadyStateText(1), // 连接成功时 readyState 为 1\r\n eventCode: event?.code\r\n });\r\n setIsConnected(true);\r\n options.onOpen?.(event);\r\n },\r\n onError: (error) => {\r\n logger.log('ERROR', 'WebSocket 连接错误', {\r\n url,\r\n error: error.message,\r\n errorType: error.type,\r\n readyState: getReadyStateText(3) // 错误时 readyState 为 3\r\n });\r\n setIsConnected(false);\r\n options.onError?.(error);\r\n },\r\n onClose: (event) => {\r\n logger.log('WARN', 'WebSocket 连接断开', {\r\n url,\r\n code: event.code,\r\n reason: event.reason,\r\n wasClean: event.wasClean,\r\n readyState: getReadyStateText(3) // 关闭时 readyState 为 3\r\n });\r\n setIsConnected(false);\r\n options.onClose?.(event);\r\n },\r\n onReconnect: (count) => {\r\n logger.log('INFO', '尝试重新连接', { \r\n url,\r\n attempt: count,\r\n maxAttempts: options.reconnectLimit || 10\r\n });\r\n options.onReconnect?.(count);\r\n }\r\n }), [url, options, logger]);\r\n\r\n const {\r\n latestMessage,\r\n readyState, \r\n sendMessage,\r\n connect,\r\n disconnect\r\n } = useWebSocket(url, websocketOptions);\r\n\r\n const heartbeatOptions = useMemo(() => \r\n heartbeatConfig === true ? {} : heartbeatConfig,\r\n [heartbeatConfig]\r\n );\r\n\r\n const heartbeatEnabled = useMemo(() => \r\n heartbeatConfig !== false,\r\n [heartbeatConfig]\r\n );\r\n\r\n const heartbeat = useHeartbeat(\r\n sendMessage, \r\n readyState, \r\n heartbeatOptions,\r\n logger,\r\n heartbeatEnabled\r\n );\r\n\r\n // 在全局暴露日志方法\r\n useEffect(() => {\r\n if (typeof window !== 'undefined' && enableLog) {\r\n // 生成唯一的键名:基于URL进行base64编码\r\n const key = `exportWebSocketLogs_${btoa(url)}`;\r\n // 在window对象上添加方法\r\n window[key] = () => logger.exportLogs();\r\n }\r\n\r\n return () => {\r\n if (typeof window !== 'undefined' && enableLog) {\r\n const key = `exportWebSocketLogs_${btoa(url)}`;\r\n delete window[key];\r\n }\r\n };\r\n }, [url, enableLog, logger]);\r\n\r\n const loggerMethods = useMemo(() => ({\r\n log: (level, message, data) => logger.log(level, message, data),\r\n exportLogs: () => logger.exportLogs(),\r\n getLogStats: () => logger.getLogStats(),\r\n clearLogs: () => logger.clearLogs()\r\n }), [logger]);\r\n\r\n return {\r\n latestMessage,\r\n readyState,\r\n sendMessage,\r\n connect,\r\n disconnect,\r\n isConnected,\r\n readyStateText: getReadyStateText(readyState),\r\n \r\n // 心跳功能\r\n heartbeat,\r\n // 日志功能\r\n logger: enableLog ? loggerMethods : null\r\n };\r\n}\r\n\r\nexport default useWebSocketWithFeatures;\r\n\r\n// 在控制台中直接查看所有可用的导出方法 Object.keys(window).filter(key => key.startsWith('exportWebSocketLogs_'))\r\n// 导出特定连接的日志 window['exportWebSocketLogs_d3M6Ly8xOTIuMTY4LjEyMy4yMDQvd3MvZHZyL3ZpZGVvX3N0YXR1c19jaGFuZ2U=']();","// seeder-st2110-components 组件库中文语言包\r\nexport default {\r\n // 通用按钮\r\n 'button.close': '关闭',\r\n 'button.apply': '应用',\r\n 'button.cancel': '取消',\r\n 'button.delete': '删除',\r\n \r\n // 输入框占位符\r\n 'input.placeholder.enterInteger': '请输入整数',\r\n 'input.placeholder.enterPort': '请输入端口 (0-65535)',\r\n 'input.placeholder.enterPayload': '请输入负载 (96-127)',\r\n \r\n // 使用率显示\r\n 'usage.memory': '内存使用率',\r\n 'usage.totalMemory': '内存总量',\r\n 'usage.cpu': 'CPU 使用率',\r\n 'usage.disk': '磁盘使用率',\r\n 'usage.cpuTemp': 'CPU 温度',\r\n 'usage.memTemp': '内存温度',\r\n 'usage.nicTemp': '网卡温度',\r\n 'usage.diskTemp': '硬盘温度',\r\n 'usage.gpu': 'GPU 使用率',\r\n 'usage.gpuTemp': 'GPU 温度',\r\n \r\n // 菜单\r\n 'menu.networkSettings': '网络设置',\r\n 'menu.ptp': 'PTP',\r\n 'menu.nmos': 'NMOS',\r\n 'menu.preset': '预设',\r\n 'menu.license': '许可证',\r\n 'menu.maintenance': '维护',\r\n 'menu.system': '系统',\r\n \r\n // Network Settings Modal\r\n 'networkSettings.title': '网络设置',\r\n 'networkSettings.name': '名称',\r\n 'networkSettings.ipAddress': 'IP 地址',\r\n 'networkSettings.subnetMask': '子网掩码',\r\n 'networkSettings.restartRequired': '配置已修改。是否重启以应用更改?',\r\n 'networkSettings.restartNow': '立即重启',\r\n 'networkSettings.restartLater': '稍后重启',\r\n 'networkSettings.saveSuccess': '保存成功',\r\n \r\n // PTP Modal\r\n 'ptp.title': 'PTP',\r\n 'ptp.domainNumber': '域编号',\r\n 'ptp.priority1': '优先级 1',\r\n 'ptp.priority2': '优先级 2',\r\n 'ptp.clockClass': '时钟等级',\r\n 'ptp.clockClass.atomic': '原子钟 ({value})',\r\n 'ptp.clockClass.gps': 'GPS ({value})',\r\n 'ptp.clockClass.slaveOnly': '仅从时钟 ({value})',\r\n 'ptp.clockAccuracy': '时钟精度',\r\n 'ptp.offsetScaledLogVariance': '时钟偏移方差',\r\n 'ptp.portIdentity': '端口标识',\r\n 'ptp.grandmasterIdentity': '主时钟 ID',\r\n 'ptp.utcOffset': 'UTC 偏移',\r\n 'ptp.connectedStatus': '连接状态',\r\n 'ptp.lockedStatus': '锁定状态',\r\n 'ptp.connected': '已连接',\r\n 'ptp.disconnected': '未连接',\r\n 'ptp.locked': '已锁定',\r\n 'ptp.unlocked': '未锁定',\r\n 'ptp.saveSuccess': '保存成功',\r\n \r\n // NMOS Modal\r\n 'nmos.title': 'NMOS',\r\n 'nmos.hostAddress': '主机地址',\r\n 'nmos.domain': '域名',\r\n 'nmos.registrationPort': '注册服务器端口',\r\n 'nmos.registryAddress': '注册服务器地址',\r\n 'nmos.registryVersion': '注册版本',\r\n 'nmos.loggingLevel': '日志级别',\r\n 'nmos.placeholder.selectHostAddress': '选择主机地址',\r\n 'nmos.placeholder.selectVersion': '选择注册版本',\r\n 'nmos.saveSuccess': '保存成功',\r\n \r\n // Preset Modal\r\n 'preset.title': '预设管理',\r\n 'preset.name': '名称',\r\n 'preset.categories': '分类',\r\n 'preset.description': '描述',\r\n 'preset.placeholder.enterName': '请输入名称',\r\n 'preset.placeholder.enterDescription': '请输入描述',\r\n 'preset.header.name': '名称',\r\n 'preset.header.createTime': '创建时间',\r\n 'preset.header.description': '描述',\r\n 'preset.button.new': '新建预设',\r\n 'preset.button.delete': '删除',\r\n 'preset.button.load': '加载',\r\n 'preset.button.save': '保存',\r\n 'preset.button.edit': '编辑',\r\n 'preset.button.cancel': '取消',\r\n 'preset.empty.noData': '从列表中选择一个预设查看详情',\r\n 'preset.unsaved.detected': '检测到未保存的预设',\r\n 'preset.empty.create': '创建新预设',\r\n 'preset.untitled': '未命名',\r\n 'preset.delete.title': '删除预设',\r\n 'preset.delete.confirmMessage': '确定要删除预设',\r\n 'preset.load.title': '加载预设',\r\n 'preset.load.confirmMessage': '确定要加载预设',\r\n 'preset.load.loading': '加载中...',\r\n 'preset.success': '成功',\r\n 'preset.validation.nameRequired': '名称是必填项',\r\n 'preset.validation.categoryRequired': '请选择分类',\r\n 'preset.error.noSelectionOrIdMissing': '未选择预设或预设 ID 缺失',\r\n \r\n // License/Auth Modal\r\n 'license.title': '注册许可证',\r\n 'license.machineCode': '机器码',\r\n 'license.key': '许可证密钥',\r\n 'license.placeholder.enterKey': '请输入许可证密钥',\r\n 'license.button.activate': '立即激活',\r\n 'license.button.reactivate': '重新激活',\r\n 'license.button.ignore': '忽略',\r\n 'license.status.unactivated': '未激活',\r\n 'license.status.activated': '已激活',\r\n 'license.status.expired': '已过期',\r\n 'license.status.invalid': '无效',\r\n 'license.status.expiresOn': '到期时间',\r\n 'license.validation.keyRequired': '许可证密钥不能为空',\r\n 'license.error.authorizationFailed': '授权失败',\r\n \r\n // 升级相关\r\n 'upgrade.menu.download': '导出配置',\r\n 'upgrade.menu.softwareUpdate': '软件升级',\r\n 'upgrade.status.idle': '空闲',\r\n 'upgrade.status.uploading': '上传中',\r\n 'upgrade.status.uploadComplete': '上传完成,开始升级...',\r\n 'upgrade.status.upgrading': '升级中...',\r\n 'upgrade.error.downloadNotConfigured': '下载功能未配置',\r\n 'upgrade.error.downloadFailed': '下载失败',\r\n 'upgrade.error.uploadFailed': '上传失败',\r\n 'upgrade.error.invalidFileFormat': '上传失败:文件格式无效',\r\n 'upgrade.error.upgradeFailed': '升级失败',\r\n \r\n // 系统操作\r\n 'system.poweroff': '关机',\r\n 'system.restart': '重启',\r\n 'system.action.powerOff': '关闭',\r\n 'system.action.restart': '重启',\r\n 'system.confirm.title': '确认操作',\r\n 'system.confirm.message': '确定要{action}系统吗?此操作无法撤销。',\r\n 'system.button.cancel': '取消',\r\n 'system.button.confirm': '确认',\r\n \r\n // Maintenance page\r\n 'maintenance.restarting': '系统正在重启...',\r\n 'maintenance.poweredOff': '系统已关闭',\r\n 'maintenance.waiting': '请等待系统启动...',\r\n 'maintenance.redirecting.countdown': '将在 {countdown} 秒后自动跳转',\r\n 'maintenance.waiting.long': '系统仍在启动中,这可能需要一些时间...',\r\n 'maintenance.retry': '重试连接',\r\n 'maintenance.offline.description': '系统当前处于离线状态,请联系管理员开启设备。',\r\n \r\n // LSM Label\r\n 'lsm.label': '标签',\r\n 'lsm.placeholder.select': '请选择标签',\r\n};\r\n","// seeder-st2110-components component library English language pack\nexport default {\n // General buttons\n 'button.close': 'Close',\n 'button.apply': 'Apply',\n 'button.cancel': 'Cancel',\n 'button.delete': 'Delete',\n \n // Input placeholders\n 'input.placeholder.enterInteger': 'Enter an integer',\n 'input.placeholder.enterPort': ' Enter port (0-65535)',\n 'input.placeholder.enterPayload': 'Enter payload (96-127)',\n \n // Usage display\n 'usage.memory': 'Memory Usage',\n 'usage.totalMemory': 'Total Memory',\n 'usage.cpu': 'CPU Usage',\n 'usage.disk': 'Disk Usage',\n 'usage.cpuTemp': 'CPU Temperature',\n 'usage.memTemp': 'Memory Temperature',\n 'usage.nicTemp': 'NIC Temperature',\n 'usage.diskTemp': 'Disk Temperature',\n 'usage.gpu': 'GPU Usage',\n 'usage.gpuTemp': 'GPU Temperature',\n \n // Menu\n 'menu.networkSettings': 'Network Settings',\n 'menu.ptp': 'PTP',\n 'menu.nmos': 'NMOS',\n 'menu.preset': 'Preset',\n 'menu.license': 'License',\n 'menu.maintenance': 'Maintenance',\n 'menu.system': 'System',\n \n // Network Settings Modal\n 'networkSettings.title': 'Network Settings',\n 'networkSettings.name': 'Name',\n 'networkSettings.ipAddress': 'IP Address',\n 'networkSettings.subnetMask': 'Netmask',\n 'networkSettings.restartRequired': 'Configuration modified. Restart to apply changes?',\n 'networkSettings.restartNow': 'Restart Now',\n 'networkSettings.restartLater': 'Restart Later',\n 'networkSettings.saveSuccess': 'Success',\n \n // PTP Modal\n 'ptp.title': 'PTP',\n 'ptp.domainNumber': 'Domain',\n 'ptp.priority1': 'Priority 1',\n 'ptp.priority2': 'Priority 2',\n 'ptp.clockClass': 'Clock Class',\n 'ptp.clockClass.atomic': 'Atomic Clock ({value})',\n 'ptp.clockClass.gps': 'GPS ({value})',\n 'ptp.clockClass.slaveOnly': 'Slave-Only ({value})',\n 'ptp.clockAccuracy': 'Clock Accuracy',\n 'ptp.offsetScaledLogVariance': 'Offset Scaled Log Variance',\n 'ptp.portIdentity': 'Port Identity',\n 'ptp.grandmasterIdentity': 'Grandmaster Identity',\n 'ptp.utcOffset': 'UTC Offset',\n 'ptp.connectedStatus': 'Connected Status',\n 'ptp.lockedStatus': 'Locked Status',\n 'ptp.connected': 'Connected',\n 'ptp.disconnected': 'Disconnected',\n 'ptp.locked': 'Locked',\n 'ptp.unlocked': 'Unlocked',\n 'ptp.saveSuccess': 'Success',\n \n // NMOS Modal\n 'nmos.title': 'NMOS',\n 'nmos.hostAddress': 'Host Addresses',\n 'nmos.domain': 'Domain',\n 'nmos.registryAddress': 'Registry Address',\n 'nmos.registrationPort': 'Registry Port',\n 'nmos.registryVersion': 'Registry Version',\n 'nmos.loggingLevel': 'Logging Level',\n 'nmos.placeholder.selectHostAddress': 'Select IP address',\n 'nmos.placeholder.selectVersion': 'Select version',\n 'nmos.saveSuccess': 'Success',\n \n // Preset Modal\n 'preset.title': 'Preset Management',\n 'preset.name': 'Name',\n 'preset.categories': 'Categories',\n 'preset.description': 'Description',\n 'preset.placeholder.enterName': 'Enter name',\n 'preset.placeholder.enterDescription': 'Enter description',\n 'preset.header.name': 'Name',\n 'preset.header.createTime': 'Create Time',\n 'preset.header.description': 'Description',\n 'preset.button.new': 'New Preset',\n 'preset.button.delete': 'Delete',\n 'preset.button.load': 'Load',\n 'preset.button.save': 'Save',\n 'preset.button.edit': 'Edit',\n 'preset.button.cancel': 'Cancel',\n 'preset.empty.noData': 'Select a preset from the list to view details',\n 'preset.unsaved.detected': 'Existing unsaved preset detected',\n 'preset.empty.create': 'Create New Preset',\n 'preset.untitled': 'Untitled',\n 'preset.delete.title': 'Delete Preset',\n 'preset.delete.confirmMessage': 'Are you sure you want to delete preset',\n 'preset.load.title': 'Load Preset',\n 'preset.load.confirmMessage': 'Are you sure you want to load preset',\n 'preset.load.loading': 'Loading...',\n 'preset.success': 'Success',\n 'preset.validation.nameRequired': 'Name is required',\n 'preset.validation.categoryRequired': 'No category selected',\n 'preset.error.noSelectionOrIdMissing': 'No preset selected or preset ID is missing',\n \n // License/Auth Modal\n 'license.title': 'Register License',\n 'license.machineCode': 'Machine Code',\n 'license.key': 'License Key',\n 'license.placeholder.enterKey': 'Enter your license key',\n 'license.button.activate': 'Activate Now',\n 'license.button.reactivate': 'Reactivate',\n 'license.button.ignore': 'Ignore',\n 'license.status.unactivated': 'Unactivated',\n 'license.status.activated': 'Already activated',\n 'license.status.expired': 'Expired',\n 'license.status.invalid': 'Invalid',\n 'license.status.expiresOn': 'will expire on',\n 'license.validation.keyRequired': 'License key cannot be empty',\n 'license.error.authorizationFailed': 'Authorization failed',\n \n // Upgrade related\n 'upgrade.menu.download': 'Download Config File',\n 'upgrade.menu.softwareUpdate': 'Software Update',\n 'upgrade.status.idle': 'Idle',\n 'upgrade.status.uploading': 'Uploading...',\n 'upgrade.status.uploadComplete': 'Upload complete, starting upgrade...',\n 'upgrade.status.upgrading': 'Upgrading...',\n 'upgrade.error.downloadNotConfigured': 'Download functionality not configured',\n 'upgrade.error.downloadFailed': 'Download failed',\n 'upgrade.error.uploadFailed': 'Upload failed',\n 'upgrade.error.invalidFileFormat': 'Upload failed: Invalid file format',\n 'upgrade.error.upgradeFailed': 'Upgrade failed',\n \n // System operations\n 'system.poweroff': 'Power Off',\n 'system.restart': 'Restart',\n 'system.action.powerOff': 'power off',\n 'system.action.restart': 'restart',\n 'system.confirm.title': 'Confirmation Required',\n 'system.confirm.message': 'Are you sure you want to {action} the system? This action cannot be undone.',\n 'system.button.cancel': 'Cancel',\n 'system.button.confirm': 'Confirm',\n \n // Maintenance page\n 'maintenance.restarting': 'System is restarting...',\n 'maintenance.poweredOff': 'System is powered off',\n 'maintenance.waiting': 'Please wait while the system is starting up...',\n 'maintenance.redirecting.countdown': 'Redirecting automatically in {countdown} second{countdown, plural, one {} other {s}}',\n 'maintenance.waiting.long': 'Still starting up... This may take a moment.',\n 'maintenance.retry': 'Retry connection',\n 'maintenance.offline.description': 'The system is currently offline. Please contact your administrator to power it on.',\n \n // LSM Label\n 'lsm.label': 'Label',\n 'lsm.placeholder.select': 'Select label',\n};\n","import { memo, useEffect, useMemo, useState, useCallback, useRef } from 'react';\r\nimport { Form, App, Typography, Divider, Input } from 'antd';\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst NetworkFieldGroup = ({ prefix, interfaces, fieldConfig = {} }) => {\r\n const intl = useIntl();\r\n \r\n // 默认字段配置\r\n const defaultFieldConfig = {\r\n name: { label: intl.formatMessage({ id: 'networkSettings.name' }), enabled: true },\r\n ip: { label: intl.formatMessage({ id: 'networkSettings.ipAddress' }), enabled: true },\r\n netmask: { label: intl.formatMessage({ id: 'networkSettings.subnetMask' }), enabled: true }\r\n };\r\n \r\n const mergedFieldConfig = {\r\n ...defaultFieldConfig,\r\n ...fieldConfig,\r\n netmask: {\r\n label: defaultFieldConfig.netmask.label,\r\n enabled: fieldConfig.netmask?.enabled ?? defaultFieldConfig.netmask.enabled,\r\n }\r\n };\r\n \r\n return (\r\n <>\r\n <Typography.Title\r\n level={5}\r\n style={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: 16\r\n }}\r\n >\r\n {prefix}\r\n </Typography.Title>\r\n {interfaces.map((iface, index) => (\r\n <div key={iface.id || index}>\r\n {mergedFieldConfig.name.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.name.label}\r\n name={[prefix, index, \"display_name\"]}\r\n >\r\n <Input disabled />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.ip.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.ip.label}\r\n name={[prefix, index, \"ip_address\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.netmask.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.netmask.label}\r\n name={[prefix, index, \"netmask\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {index < interfaces.length - 1 && <Divider style={{ marginBlock: 16 }} />}\r\n </div>\r\n ))}\r\n </>\r\n )\r\n};\r\n\r\nconst NetworkSettingsModal = ({\r\n open, \r\n onClose, \r\n getLanConfig, // 可选 - 单独获取 LAN 配置的函数\r\n getSysConfig, // 可选 - 单独获取 QSFP 配置的函数\r\n getConfig, // 可选 - 统一获取配置的函数 ipgweb 专用\r\n updateLanConfig, \r\n updateSysConfig, \r\n restart,\r\n onRestartSuccess, // 重启成功后的回调(可选)\r\n modalProps = {},\r\n formProps = {},\r\n fieldConfig = {},\r\n sections = ['LAN', 'QSFP'],\r\n showNetmask = { LAN: true, QSFP: false },\r\n restartRemark\r\n}) => {\r\n const intl = useIntl();\r\n const { message, modal } = App.useApp();\r\n const [form] = Form.useForm();\r\n\r\n const [st2110Interfaces, setSt2110Interfaces] = useState([]);\r\n const [lanConfigs, setLanConfigs] = useState([]);\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n\r\n // 用于保存原始 QSFP 数据,供无 getSysConfig 时做对比\r\n const originalSt2110InterfacesRef = useRef([]);\r\n\r\n const initializationStatus = useRef({\r\n hasFetched: false,\r\n hasInitialized: false\r\n });\r\n\r\n const preparedFieldConfig = useMemo(() => {\r\n const config = { ...fieldConfig };\r\n \r\n // 确保LAN和QSFP的配置存在\r\n config.LAN = config.LAN || {};\r\n config.QSFP = config.QSFP || {};\r\n\r\n if (sections.includes('LAN')) {\r\n config.LAN.netmask = {\r\n ...(config.LAN.netmask || {}),\r\n enabled: showNetmask.LAN\r\n };\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n config.QSFP.netmask = {\r\n ...(config.QSFP.netmask || {}),\r\n enabled: showNetmask.QSFP\r\n };\r\n }\r\n\r\n return config;\r\n }, [fieldConfig, showNetmask, sections]);\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n \r\n const fetchData = async () => {\r\n if (initializationStatus.current.hasFetched) return;\r\n \r\n try {\r\n initializationStatus.current.hasFetched = true;\r\n\r\n if (getConfig) {\r\n // 使用统一接口获取数据\r\n const config = await getConfig();\r\n if (sections.includes('LAN') && config.lan_interfaces) {\r\n setLanConfigs(config.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && config.interfaces) {\r\n const interfaces = config.interfaces;\r\n setSt2110Interfaces(interfaces);\r\n originalSt2110InterfacesRef.current = JSON.parse(JSON.stringify(interfaces));\r\n }\r\n } else {\r\n const promises = [];\r\n if (sections.includes('LAN')) {\r\n promises.push(getLanConfig());\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n promises.push(getSysConfig());\r\n }\r\n\r\n const results = await Promise.allSettled(promises);\r\n\r\n if (sections.includes('LAN') && getLanConfig) {\r\n const lanResult = results[0];\r\n if (lanResult.status === 'fulfilled') {\r\n setLanConfigs(lanResult.value || []);\r\n }\r\n }\r\n \r\n if (sections.includes('QSFP') && getSysConfig) {\r\n const sysResult = sections.includes('LAN') ? results[1] : results[0];\r\n if (sysResult.status === 'fulfilled' && sysResult.value) {\r\n const interfaces = sysResult.value.st2110_interfaces || [];\r\n setSt2110Interfaces(interfaces);\r\n originalSt2110InterfacesRef.current = JSON.parse(JSON.stringify(interfaces));\r\n }\r\n }\r\n }\r\n \r\n setIsInitialized(true);\r\n } catch (error) {\r\n console.error('Failed to fetch data:', error);\r\n initializationStatus.current.hasFetched = false; // 出错时重置\r\n }\r\n };\r\n\r\n fetchData();\r\n }, [open, getLanConfig, getSysConfig, getConfig, sections]); \r\n\r\n // 当模态框关闭时重置状态\r\n useEffect(() => {\r\n if (!open) {\r\n setIsInitialized(false);\r\n setLanConfigs([]);\r\n setSt2110Interfaces([]);\r\n form.resetFields();\r\n initializationStatus.current = { hasFetched: false, hasInitialized: false };\r\n originalSt2110InterfacesRef.current = [];\r\n }\r\n }, [open, form]);\r\n\r\n // 动态初始值配置\r\n const initialValues = useMemo(() => {\r\n const values = {};\r\n \r\n if (sections.includes('LAN') && lanConfigs.length > 0) {\r\n values.LAN = lanConfigs.map(config => ({\r\n connection_id: config.connection_id,\r\n display_name: config.display_name,\r\n ip_address: config.ip_address,\r\n ...(showNetmask.LAN ? { netmask: config.netmask } : {})\r\n }));\r\n }\r\n \r\n if (sections.includes('QSFP') && st2110Interfaces.length > 0) {\r\n values.QSFP = st2110Interfaces.map(iface => ({\r\n // 只有当iface中存在id字段时才包含id\r\n ...(iface.id !== undefined && { id: iface.id }),\r\n display_name: iface.display_name,\r\n ip_address: iface.ip_address || iface.ip, // 优先取ip_address,没有则取ip\r\n ...(showNetmask.QSFP ? { netmask: iface.netmask } : {})\r\n }));\r\n }\r\n \r\n return values;\r\n }, [lanConfigs, st2110Interfaces, sections, showNetmask]);\r\n\r\n // 当初始值准备好后设置表单值\r\n useEffect(() => {\r\n if (isInitialized && !initializationStatus.current.hasInitialized) {\r\n form.setFieldsValue(initialValues);\r\n initializationStatus.current.hasInitialized = true;\r\n }\r\n }, [isInitialized, form, initialValues]);\r\n\r\n // 成功处理\r\n const handleSuccess = useCallback(async ({\r\n messageText,\r\n isPopup = false,\r\n refresh = !restart\r\n } = {}) => {\r\n const defaultMessage = intl.formatMessage({ id: 'networkSettings.saveSuccess' });\r\n message.success(messageText || defaultMessage);\r\n\r\n if (refresh && getConfig) {\r\n try {\r\n const newConfig = await getConfig();\r\n if (sections.includes('LAN') && newConfig.lan_interfaces) {\r\n setLanConfigs(newConfig.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && newConfig.interfaces) {\r\n setSt2110Interfaces(newConfig.interfaces);\r\n }\r\n } catch (error) {\r\n console.error('Failed to refresh config:', error);\r\n }\r\n }\r\n\r\n // 如果需要弹出重启确认框\r\n if (isPopup && restart) {\r\n if (getSysConfig) {\r\n // 有接口:再查一次确认是否需要重启\r\n try {\r\n const updatedConfig = await getSysConfig();\r\n if (updatedConfig?.is_restart_required) {\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: intl.formatMessage({ id: 'networkSettings.restartRequired' }),\r\n cancelText: intl.formatMessage({ id: 'networkSettings.restartLater' }),\r\n okText: intl.formatMessage({ id: 'networkSettings.restartNow' }),\r\n onOk: async () => {\r\n await restart();\r\n if (onRestartSuccess && typeof onRestartSuccess === 'function') {\r\n onRestartSuccess();\r\n }\r\n },\r\n });\r\n }\r\n } catch (error) {\r\n console.error('Failed to check restart status:', error);\r\n }\r\n } else {\r\n // 无接口:直接弹出重启确认框\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: intl.formatMessage({ id: 'networkSettings.restartRequired' }),\r\n cancelText: intl.formatMessage({ id: 'networkSettings.restartLater' }),\r\n okText: intl.formatMessage({ id: 'networkSettings.restartNow' }),\r\n onOk: async () => {\r\n await restart();\r\n if (onRestartSuccess && typeof onRestartSuccess === 'function') {\r\n onRestartSuccess();\r\n }\r\n },\r\n });\r\n }\r\n }\r\n\r\n onClose();\r\n }, [intl, message, modal, getSysConfig, restart, getConfig, sections, onClose]);\r\n\r\n const handleSubmit = useCallback(async () => {\r\n setSubmitLoading(true);\r\n\r\n try {\r\n const values = await form.validateFields();\r\n\r\n // ===== 判断 QSFP 是否有修改(仅当无 getSysConfig 时使用)=====\r\n let hasQsfpChanged = false;\r\n if (!getSysConfig && sections.includes('QSFP') && values.QSFP) {\r\n const original = originalSt2110InterfacesRef.current;\r\n const current = values.QSFP;\r\n hasQsfpChanged = current.some((item, index) => {\r\n const orig = original[index];\r\n if (!orig) return false;\r\n\r\n const ipChanged = item.ip_address !== (orig.ip_address || orig.ip);\r\n return ipChanged;\r\n });\r\n }\r\n\r\n const updatePromises = [];\r\n\r\n // 更新LAN配置\r\n if (sections.includes('LAN') && values.LAN) {\r\n const lanData = values.LAN.map((item, index) => ({\r\n connection_id: lanConfigs[index]?.connection_id,\r\n ip_address: item.ip_address,\r\n ...(showNetmask.LAN ? { netmask: item.netmask } : {})\r\n }));\r\n updatePromises.push(updateLanConfig(lanData));\r\n }\r\n\r\n // 更新QSFP配置\r\n if (sections.includes('QSFP') && values.QSFP) {\r\n const interfacesData = values.QSFP.map((item, index) => ({\r\n // 只有当原始数据中存在id时才包含id\r\n ...(st2110Interfaces?.[index]?.id !== undefined && {\r\n id: st2110Interfaces?.[index]?.id \r\n }),\r\n ...(st2110Interfaces?.[index]?.ip !== undefined \r\n ? { ip: item.ip_address } \r\n : { ip_address: item.ip_address }\r\n ),\r\n ...(showNetmask.QSFP ? { netmask: item.netmask } : {})\r\n }));\r\n\r\n const st2110Data = st2110Interfaces.some(iface => 'id' in iface)\r\n ? { st2110_interfaces: interfacesData }\r\n : { interfaces: interfacesData };\r\n\r\n updatePromises.push(updateSysConfig(st2110Data));\r\n }\r\n\r\n const results = await Promise.allSettled(updatePromises);\r\n\r\n // 检查所有更新是否成功\r\n const allSucceeded = results.every(result => result.status === 'fulfilled');\r\n\r\n if (allSucceeded) {\r\n let isPopup = false;\r\n if (getSysConfig) {\r\n // 有接口:后续在 handleSuccess 中查 is_restart_required\r\n isPopup = true;\r\n } else {\r\n // 无接口:根据是否有 QSFP 变化决定\r\n isPopup = hasQsfpChanged;\r\n }\r\n\r\n handleSuccess({ isPopup });\r\n }\r\n } catch (error) {\r\n console.error('Failed to update configurations: ', error);\r\n } finally {\r\n setSubmitLoading(false);\r\n }\r\n }, [\r\n form, \r\n sections, \r\n lanConfigs, \r\n st2110Interfaces, \r\n updateLanConfig, \r\n updateSysConfig, \r\n handleSuccess\r\n ]);\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: intl.formatMessage({ id: 'networkSettings.title' }),\r\n width: 650,\r\n open,\r\n confirmLoading: submitLoading,\r\n onOk: handleSubmit,\r\n onCancel: onClose,\r\n okText: intl.formatMessage({ id: 'button.apply' }),\r\n cancelText: intl.formatMessage({ id: 'button.close' }),\r\n centered: true,\r\n destroyOnHidden: true,\r\n forceRender: true,\r\n // styles: {\r\n // body: { padding: \"16px 24px 8px 24px\" },\r\n // ...(restartRemark !== null && { footer: { paddingBottom: 28 } })\r\n // },\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n labelCol: { span: 6 },\r\n wrapperCol: { span: 18 },\r\n autoComplete: \"off\",\r\n ...formProps\r\n };\r\n\r\n return (\r\n <StyledModal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {sections.includes('LAN') && lanConfigs.length > 0 && (\r\n <>\r\n <NetworkFieldGroup\r\n prefix=\"LAN\"\r\n interfaces={lanConfigs}\r\n fieldConfig={preparedFieldConfig.LAN}\r\n />\r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && <Divider />}\r\n </>\r\n )}\r\n \r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && (\r\n <NetworkFieldGroup\r\n prefix=\"QSFP\"\r\n interfaces={st2110Interfaces}\r\n fieldConfig={preparedFieldConfig.QSFP}\r\n />\r\n )}\r\n </Form>\r\n {restartRemark}\r\n </StyledModal>\r\n );\r\n}\r\n\r\nexport { NetworkFieldGroup };\r\nexport default memo(NetworkSettingsModal);","import { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { Select, Switch, Input, Badge, Form, ConfigProvider, InputNumber, App } from \"antd\";\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\n// 默认字段配置\r\nconst defaultFieldConfigs = {\r\n clock_class: {\r\n label: 'ptp.clockClass',\r\n formType: 'select',\r\n options: [\r\n { value: 6, label: 'ptp.clockClass.atomic' },\r\n { value: 7, label: 'ptp.clockClass.gps' },\r\n { value: 248, label: 'ptp.clockClass.slaveOnly' }\r\n ],\r\n readOnly: true\r\n },\r\n clock_accuracy: {\r\n label: 'ptp.clockAccuracy',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n offset_scaled_log_variance: {\r\n label: 'ptp.offsetScaledLogVariance',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority1: {\r\n label: 'ptp.priority1',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority2: {\r\n label: 'ptp.priority2',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_identity: {\r\n label: 'ptp.grandmasterIdentity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n master_port_id: {\r\n label: 'ptp.portIdentity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n t1_domain_number: {\r\n label: 'ptp.domainNumber',\r\n formType: 'number',\r\n min: 0,\r\n max: 127,\r\n readOnly: false\r\n },\r\n master_utc_offset: {\r\n label: 'ptp.utcOffset',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n is_connected: {\r\n label: 'ptp.connectedStatus',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'ptp.disconnected', color: 'red' },\r\n 1: { text: 'ptp.connected', color: 'green' }\r\n }\r\n },\r\n is_locked: {\r\n label: 'ptp.lockedStatus',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'ptp.unlocked', color: 'red' },\r\n 1: { text: 'ptp.locked', color: 'green' }\r\n }\r\n }\r\n};\r\n\r\n// 默认字段顺序\r\nconst defaultFieldOrder = [\r\n 't1_domain_number',\r\n 'grandmaster_priority1',\r\n 'grandmaster_priority2',\r\n 'grandmaster_identity',\r\n 'master_port_id',\r\n 'clock_class',\r\n 'clock_accuracy',\r\n 'offset_scaled_log_variance',\r\n 'master_utc_offset',\r\n 'is_connected',\r\n 'is_locked'\r\n];\r\n\r\n/**\r\n * 转换PTP状态为表单字段数组\r\n * @param {Object} ptpStatus PTP状态对象\r\n * @param {Object} fieldConfigs 字段配置\r\n * @param {Array} fieldOrder 字段顺序\r\n * @returns {Array} 表单字段数组\r\n */\r\nfunction convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder) {\r\n return fieldOrder\r\n .filter(key => key in ptpStatus)\r\n .map(key => {\r\n const config = fieldConfigs[key] || { label: key, formType: 'text' };\r\n const value = ptpStatus[key];\r\n \r\n return {\r\n key,\r\n value,\r\n ...config,\r\n rawData: ptpStatus,\r\n };\r\n });\r\n}\r\n\r\nconst PtpModal = ({\r\n open, \r\n onClose, \r\n getPtpInfo, \r\n updatePtpInfo, \r\n fieldConfigs = defaultFieldConfigs,\r\n fieldOrder = defaultFieldOrder,\r\n modalProps = {},\r\n formProps = {}\r\n}) => {\r\n const intl = useIntl();\r\n const [ptpStatus, setPtpStatus] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n const { message } = App.useApp();\r\n\r\n useEffect(() => {\r\n if (open) {\r\n setLoading(true);\r\n getPtpInfo().then(data => {\r\n if (data?.[0]) {\r\n setPtpStatus(data[0]);\r\n // 数据加载后设置表单值\r\n form.setFieldsValue(data[0]);\r\n }\r\n }).catch(err => {\r\n console.error(\"Failed to fetch ptp\", err);\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n } else {\r\n // 关闭时重置表单\r\n form.resetFields();\r\n setPtpStatus(null);\r\n }\r\n }, [open, form, getPtpInfo])\r\n\r\n const ptpStatusArray = useMemo(() => {\r\n if (!ptpStatus) return[];\r\n return convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder);\r\n }, [ptpStatus, fieldConfigs, fieldOrder]);\r\n\r\n // 渲染 Form.Item 的 label\r\n const renderLabel = (item) => {\r\n // 如果 label 是国际化 key(包含点号),则使用 formatMessage\r\n if (item.label && typeof item.label === 'string' && item.label.includes('.')) {\r\n return intl.formatMessage({ id: item.label });\r\n }\r\n return item.label;\r\n };\r\n\r\n const handleSubmit = async () => {\r\n const values = await form.getFieldsValue();\r\n\r\n setLoading(true);\r\n\r\n try {\r\n const response = await updatePtpInfo(values);\r\n \r\n if (response) {\r\n message.success(intl.formatMessage({ id: 'ptp.saveSuccess' }));\r\n setTimeout(() => {\r\n onClose();\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error('Update failed:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const renderFormItem = (item) => {\r\n switch (item.formType) {\r\n case 'select':\r\n const selectOptions = item.options?.map(opt => ({\r\n ...opt,\r\n label: intl.formatMessage({ id: opt.label }, { value: opt.value })\r\n }));\r\n return <Select options={selectOptions} disabled={item.readOnly} />;\r\n case 'switch':\r\n return <Switch />;\r\n case 'badge':\r\n const normalizedValue = typeof item.value === 'boolean' \r\n ? (item.value ? 1 : 0)\r\n : item.value;\r\n const status = item.statusMap?.[normalizedValue] || { text: 'Unknown', color: 'gray' };\r\n return (\r\n <ConfigProvider theme={{ components: { Badge: { statusSize: 10 } } }}>\r\n <Badge \r\n color={status.color} \r\n text={intl.formatMessage({ id: status.text })} \r\n />\r\n </ConfigProvider>\r\n );\r\n case 'number':\r\n return (\r\n <InputNumber\r\n disabled={item.readOnly} \r\n controls={false} \r\n keyboard={false} \r\n min={item.min ?? Number.MIN_SAFE_INTEGER} \r\n max={item.max ?? Number.MAX_SAFE_INTEGER}\r\n />\r\n )\r\n default:\r\n return <Input disabled={item.readOnly} />;\r\n }\r\n };\r\n \r\n if (!open || !ptpStatus) return null;\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: intl.formatMessage({ id: 'ptp.title' }),\r\n width: 650,\r\n open,\r\n okText: intl.formatMessage({ id: 'button.apply' }),\r\n cancelText: intl.formatMessage({ id: 'button.close' }),\r\n onCancel: onClose,\r\n onOk: handleSubmit,\r\n confirmLoading: loading,\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n name: \"ptpForm\",\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n autoComplete: \"off\",\r\n ...formProps\r\n };\r\n\r\n return (\r\n <StyledModal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {ptpStatusArray.map(item => (\r\n <Form.Item \r\n label={renderLabel(item)} \r\n name={item.key} \r\n key={item.key}\r\n initialValue={item.value}\r\n >\r\n {renderFormItem(item)}\r\n </Form.Item>\r\n ))}\r\n </Form>\r\n </StyledModal>\r\n )\r\n}\r\n\r\nexport default memo(PtpModal);","import { List, Empty, Button, Space, Form, Input, Flex, Checkbox, Typography } from \"antd\";\r\nimport { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\nimport { useIntl } from '../i18n';\r\n\r\nexport const LeftList = memo(({\r\n dataSource,\r\n selectedPresetId,\r\n onSelectPreset,\r\n onAddNew,\r\n onRemove,\r\n hasPresets = dataSource.length > 0,\r\n texts = {\r\n newButton: \"preset.button.new\",\r\n removeButton: \"preset.button.delete\"\r\n }\r\n}) => {\r\n const intl = useIntl();\r\n \r\n // 格式化文本的辅助函数\r\n const fmt = (key) => {\r\n if (typeof key === 'string' && key.includes('.')) {\r\n return intl.formatMessage({ id: key });\r\n }\r\n return key;\r\n };\r\n return (\r\n <div className=\"h-full left-list-wrapper\">\r\n <div className=\"list-container\">\r\n <List\r\n header={\r\n <div className=\"grid grid-cols-3 gap-2 w-full list-header\">\r\n <div className=\"min-w-0\">{fmt('preset.header.name')}</div>\r\n <div className=\"min-w-0\">{fmt('preset.header.createTime')}</div>\r\n <div className=\"min-w-0\">{fmt('preset.header.description')}</div>\r\n </div>\r\n }\r\n dataSource={dataSource}\r\n rowKey=\"id\"\r\n renderItem={(item) => (\r\n <List.Item \r\n className={`list-item ${\r\n selectedPresetId === item.id ? 'selected' : ''\r\n }`}\r\n style={{ padding: \"9px 24px\" }}\r\n onClick={() => onSelectPreset(item)}\r\n >\r\n <div className=\"grid grid-cols-3 gap-2 w-full text-text-normal\">\r\n <div className=\"min-w-0\">\r\n <Typography.Text ellipsis title={item.name}>\r\n {item.name || fmt('preset.untitled')}\r\n </Typography.Text>\r\n </div>\r\n\r\n <div className=\"min-w-0\">\r\n <Typography.Text ellipsis>\r\n {item.create_time}\r\n </Typography.Text>\r\n </div>\r\n\r\n <div className=\"min-w-0\">\r\n <Typography.Text ellipsis title={item.description}>\r\n {item.description}\r\n </Typography.Text>\r\n </div>\r\n </div>\r\n </List.Item>\r\n )}\r\n locale={{\r\n emptyText: (\r\n <div className=\"p-8\">\r\n <Empty\r\n image={Empty.PRESENTED_IMAGE_SIMPLE}\r\n description={\r\n <span className=\"text-gray-400\">\r\n <Button \r\n type=\"link\" \r\n onClick={onAddNew}\r\n className=\"p-0 h-auto\"\r\n icon={<PlusOutlined />}\r\n >\r\n {fmt('preset.empty.create')}\r\n </Button>\r\n </span>\r\n }\r\n />\r\n </div>\r\n )\r\n }}\r\n />\r\n </div>\r\n\r\n {/* 底部按钮区域 */}\r\n {hasPresets && (\r\n <div style={{ paddingInline: 24, paddingBlock: 20 }}>\r\n <Space size=\"middle\">\r\n <Button\r\n type=\"default\"\r\n icon={<PlusOutlined />}\r\n className=\"btn-gray\"\r\n onClick={onAddNew}\r\n >\r\n {texts.newButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\"\r\n onClick={onRemove}\r\n >\r\n {texts.removeButton}\r\n </Button>\r\n </Space>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n});\r\n\r\nconst SubmitButton = ({ loading, action, children, disabled = false, editButtonEle = null }) => (\r\n <div className=\"submit-btn-wrapper\">\r\n <Space size=\"middle\">\r\n {editButtonEle}\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\" \r\n loading={loading} \r\n onClick={action} \r\n disabled={disabled}\r\n >\r\n {children}\r\n </Button>\r\n </Space>\r\n </div>\r\n);\r\n\r\nexport const RightDetailForm = memo(({\r\n form, \r\n onSave, \r\n onLoad,\r\n onEdit,\r\n onCancelEdit,\r\n onUpdate,\r\n isLoading,\r\n isSavedPreset,\r\n originalPresetData,\r\n fields = {\r\n name: {\r\n label: \"preset.name\",\r\n placeholder: \"preset.placeholder.enterName\",\r\n required: true\r\n },\r\n category_list: {\r\n label: \"preset.categories\"\r\n },\r\n description: {\r\n label: \"preset.description\",\r\n placeholder: \"preset.placeholder.enterDescription\"\r\n }\r\n },\r\n texts = {\r\n loadButton: \"preset.button.load\",\r\n saveButton: \"preset.button.save\",\r\n editButton: \"preset.button.edit\",\r\n cancelButton: \"preset.button.cancel\"\r\n },\r\n presetChanged, // 作用:在切换选中预设时强制触发 Checkbox 的重新初始化\r\n enableEdit = true\r\n}) => {\r\n const intl = useIntl();\r\n const [initialSelected, setInitialSelected] = useState([]);\r\n const [isEditMode, setIsEditMode] = useState(false); // 是否进入编辑模式\r\n const currentSelected = Form.useWatch('category_list', form) || [];\r\n\r\n // 格式化文本的辅助函数\r\n const fmt = (key) => {\r\n if (typeof key === 'string' && key.includes('.')) {\r\n return intl.formatMessage({ id: key });\r\n }\r\n return key;\r\n };\r\n\r\n // 检查是否包含 category_list 字段\r\n const hasCategoryList = fields.category_list !== null && fields.category_list !== undefined;\r\n\r\n // 初始化 category_list 的选择状态\r\n useEffect(() => {\r\n if (hasCategoryList) {\r\n const currentValue = form.getFieldValue('category_list') || [];\r\n setInitialSelected(currentValue);\r\n }\r\n }, [presetChanged, form, hasCategoryList]); // 当presetChanged变化时更新\r\n\r\n // 当 isSavedPreset 或 presetChanged 变化时,重置编辑模式\r\n useEffect(() => {\r\n setIsEditMode(false);\r\n }, [isSavedPreset, presetChanged]);\r\n\r\n // 动态生成 checkbox 选项\r\n const checkboxOptions = useMemo(() => {\r\n if (!hasCategoryList) return [];\r\n \r\n return fields.category_list.options.map(category => {\r\n const isInitiallySelected = initialSelected.includes(category.name);\r\n const shouldDisable = isSavedPreset ? !isInitiallySelected : false;\r\n \r\n return {\r\n ...category,\r\n disabled: shouldDisable,\r\n initiallySelected: isInitiallySelected\r\n };\r\n });\r\n }, [initialSelected, isSavedPreset, hasCategoryList, fields.category_list]);\r\n\r\n const handleCheckboxChange = (checkedValues) => {\r\n form.setFieldsValue({ category_list: checkedValues });\r\n };\r\n\r\n const handleEditClick = () => {\r\n setIsEditMode(true);\r\n if (onEdit) {\r\n onEdit(); // 如果有外部回调\r\n }\r\n };\r\n\r\n const handleCancelEdit = () => {\r\n if (originalPresetData) {\r\n form.setFieldsValue(originalPresetData);\r\n }\r\n \r\n setIsEditMode(false);\r\n\r\n if (onCancelEdit) {\r\n onCancelEdit();\r\n }\r\n };\r\n\r\n const handleSaveEdit = async () => {\r\n try {\r\n if (onUpdate) {\r\n await onUpdate();\r\n }\r\n\r\n setIsEditMode(false);\r\n } catch (error) {\r\n console.error('update fail:', error)\r\n }\r\n };\r\n\r\n const handleLoad = async () => {\r\n try {\r\n const formValues = await form.validateFields();\r\n\r\n const loadData = {\r\n id: form.getFieldValue('id'),\r\n // 优先使用表单中的 category_list,如果没有则使用原始数据\r\n name: originalPresetData.name,\r\n category_list: hasCategoryList \r\n ? (formValues.category_list || [])\r\n : (originalPresetData?.category_list || [])\r\n };\r\n await onLoad(loadData);\r\n } catch (error) {\r\n console.error('表单验证失败:', error);\r\n }\r\n };\r\n\r\n // 在编辑模式下,name 和 description 可以编辑,但 categories 不可编辑\r\n const shouldDisableNameAndDesc = isSavedPreset && !isEditMode;\r\n const shouldDisableCategories = isEditMode; // categories 在编辑模式下总是不可编辑\r\n\r\n return (\r\n <Flex vertical style={{ height: \"100%\", padding: \"20px 24px\" }}>\r\n <Form \r\n form={form} \r\n layout=\"vertical\" \r\n autoComplete=\"off\" \r\n style={{ flex: 1, overflowY: 'auto' }}\r\n >\r\n {/* Name 字段 */}\r\n <Form.Item \r\n name=\"name\" \r\n label={fmt(fields.name.label)}\r\n required\r\n >\r\n <Input \r\n placeholder={fmt(fields.name.placeholder)} \r\n disabled={shouldDisableNameAndDesc} \r\n />\r\n </Form.Item>\r\n\r\n {/* Category List 字段 */}\r\n {hasCategoryList && (\r\n <Form.Item \r\n name=\"category_list\" \r\n label={fmt(fields.category_list.label)}\r\n required\r\n >\r\n <Checkbox.Group \r\n className=\"grid grid-cols-2 gap-2\"\r\n onChange={handleCheckboxChange}\r\n disabled={shouldDisableCategories}\r\n >\r\n {checkboxOptions.map(category => (\r\n <Checkbox \r\n key={category.name} \r\n value={category.name}\r\n disabled={category.disabled || shouldDisableCategories}\r\n >\r\n {category.label}\r\n </Checkbox>\r\n ))}\r\n </Checkbox.Group>\r\n </Form.Item>\r\n )}\r\n\r\n {/* Description 字段 */}\r\n {fields.description && (\r\n <Form.Item \r\n name=\"description\" \r\n label={fmt(fields.description.label)}\r\n >\r\n <Input.TextArea \r\n rows={4}\r\n placeholder={fmt(fields.description.placeholder)}\r\n disabled={shouldDisableNameAndDesc}\r\n style={{\r\n resize: 'none'\r\n }}\r\n />\r\n </Form.Item>\r\n )}\r\n </Form>\r\n {isSavedPreset ? (\r\n isEditMode ? (\r\n // 编辑模式下的按钮\r\n <div className=\"submit-btn-wrapper\">\r\n <Space size=\"middle\">\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\" \r\n onClick={handleCancelEdit}\r\n >\r\n {texts.cancelButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\" \r\n onClick={handleSaveEdit}\r\n loading={isLoading}\r\n >\r\n {texts.saveButton}\r\n </Button>\r\n </Space>\r\n </div>\r\n ) : (\r\n // 非编辑模式下的按钮\r\n <SubmitButton\r\n action={handleLoad}\r\n {...(hasCategoryList && { disabled: !currentSelected.length })}\r\n editButtonEle={enableEdit ? (\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\"\r\n onClick={handleEditClick}\r\n >\r\n {texts.editButton}\r\n </Button>\r\n ) : null}\r\n >\r\n {texts.loadButton}\r\n </SubmitButton>\r\n )\r\n ) : (\r\n <SubmitButton \r\n action={onSave} \r\n loading={isLoading}\r\n >\r\n {texts.saveButton}\r\n </SubmitButton>\r\n )}\r\n </Flex>\r\n );\r\n});","import { Form, Row, Col, Empty, App, Spin, Flex } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { memo, useState, useCallback, useEffect } from \"react\";\r\nimport { LeftList, RightDetailForm } from \"./PresetModal.component\";\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst Preset = ({\r\n open,\r\n onClose,\r\n // API 方法通过 props 传入\r\n getPresetList,\r\n savePreset,\r\n removePreset,\r\n loadPreset,\r\n updatePreset,\r\n onLoadSuccess, // 加载成功后的回调\r\n onLoadError, // 加载失败后的回调\r\n\r\n // 字段配置\r\n fields = {\r\n name: {\r\n label: \"preset.name\",\r\n placeholder: \"preset.placeholder.enterName\",\r\n required: true\r\n }\r\n },\r\n texts = {\r\n title: \"preset.title\",\r\n emptyText: \"preset.empty.noData\",\r\n deleteConfirm: \"preset.delete.confirmMessage\",\r\n loadConfirm: \"preset.load.confirmMessage\",\r\n loadText: \"preset.load.loading\",\r\n successText: \"preset.success\",\r\n newButton: \"preset.button.new\",\r\n removeButton: \"preset.button.delete\",\r\n loadButton: \"preset.button.load\",\r\n saveButton: \"preset.button.save\",\r\n editButton: \"preset.button.edit\",\r\n cancelButton: \"preset.button.cancel\"\r\n },\r\n // 样式定制\r\n width = 1000,\r\n height = 680,\r\n className = \"\",\r\n // 功能配置\r\n enableEdit = true\r\n}) => {\r\n const intl = useIntl();\r\n const { message, modal } = App.useApp();\r\n const [presetList, setPresetList] = useState([]);\r\n const [selectedPreset, setSelectedPreset] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [presetChanged, setPresetChanged] = useState(0);\r\n const [form] = Form.useForm();\r\n\r\n // 格式化文本的辅助函数\r\n const fmt = useCallback((key) => {\r\n if (typeof key === 'string' && key.includes('.')) {\r\n return intl.formatMessage({ id: key });\r\n }\r\n return key;\r\n }, [intl]);\r\n\r\n const fetchPresetList = useCallback(async () => {\r\n try {\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n\r\n // 自动选中第一个预设\r\n if (presets.length > 0) {\r\n const firstPreset = presets[0];\r\n setSelectedPreset(firstPreset);\r\n form.setFieldsValue(firstPreset);\r\n setPresetChanged(prev => prev + 1);\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch preset list:', error);\r\n }\r\n }, [getPresetList]);\r\n\r\n const handleSelectPreset = useCallback((preset) => {\r\n setSelectedPreset(preset);\r\n form.setFieldsValue(preset);\r\n setPresetChanged(prev => prev + 1);\r\n }, [form]);\r\n\r\n const handleAddNew = useCallback(() => {\r\n const unsavedPreset = presetList.find(item => !item.id);\r\n\r\n if (unsavedPreset) {\r\n message.warning(intl.formatMessage({ id: 'preset.unsaved.detected' }));\r\n return;\r\n }\r\n\r\n // 创建新的数据,包含所有配置的字段\r\n const newPreset = Object.keys(fields).reduce((acc, fieldName) => {\r\n acc[fieldName] = '';\r\n return acc;\r\n }, {});\r\n\r\n // 特殊处理 category_list\r\n if (fields.category_list?.options) {\r\n newPreset.category_list = fields.category_list.options.map(item => item.name);\r\n }\r\n \r\n setPresetList([...presetList, newPreset]);\r\n setSelectedPreset(newPreset);\r\n form.setFieldsValue(newPreset);\r\n }, [form, presetList, message]);\r\n\r\n const handleRemove = useCallback(async () => {\r\n if (!selectedPreset) return;\r\n\r\n // 检查是否为新建的未保存数据(无 id)\r\n const isUnsavedPreset = !selectedPreset.id;\r\n const presetName = selectedPreset.name || fmt('preset.untitled');\r\n\r\n try {\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: fmt('preset.delete.title'),\r\n content: `${fmt('preset.delete.confirmMessage')} \"${presetName}\"?`,\r\n cancelText: fmt('button.cancel'),\r\n okText: fmt('button.delete'),\r\n onOk: async () => {\r\n // 在删除前记录当前选中项的位置\r\n const currentIndex = presetList.findIndex(item => \r\n isUnsavedPreset ? !item.id : item.id === selectedPreset.id\r\n );\r\n\r\n if (!isUnsavedPreset) {\r\n await removePreset({ id: selectedPreset.id });\r\n message.success(fmt('preset.success'));\r\n } else {\r\n // 移除未保存的预设\r\n setPresetList(prev => prev.filter(item => !!item.id));\r\n }\r\n\r\n // 获取删除后的列表\r\n const updatedList = isUnsavedPreset \r\n ? presetList.filter(item => !!item.id)\r\n : await getPresetList().then(data => data?.preset_list || data || []);\r\n\r\n // 更新列表\r\n setPresetList(updatedList);\r\n\r\n if (updatedList.length > 0) {\r\n // 计算下一个索引\r\n let nextIndex = 0;\r\n\r\n if (currentIndex > 0) {\r\n // 如果删除的不是最后一项\r\n if (currentIndex < updatedList.length) {\r\n nextIndex = currentIndex; // 保持相同位置\r\n } else {\r\n nextIndex = updatedList.length - 1; // 选最后一个\r\n }\r\n }\r\n\r\n const nextPreset = updatedList[nextIndex];\r\n if (nextPreset) {\r\n setSelectedPreset(nextPreset);\r\n form.setFieldsValue(nextPreset);\r\n setPresetChanged(prev => prev + 1);\r\n return;\r\n }\r\n }\r\n\r\n // 列表为空\r\n setSelectedPreset(null);\r\n form.resetFields();\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Failed to delete preset:', error);\r\n }\r\n }, [selectedPreset, form, modal, message, removePreset, getPresetList, fmt]);\r\n\r\n const handleLoadPreset = useCallback(async (loadData) => {\r\n if (!loadData) return;\r\n\r\n let modalInstance = null;\r\n let resolveOk = null; // 用于控制 confirm 关闭时机\r\n\r\n modalInstance = modal.confirm({\r\n title: fmt('preset.load.title'),\r\n content: `${fmt('preset.load.confirmMessage')} \"${loadData.name}\"?`,\r\n cancelText: fmt('button.cancel'),\r\n okText: fmt('preset.button.load'),\r\n // onOk 返回一个 pending Promise\r\n onOk: () => {\r\n return new Promise((resolve, reject) => {\r\n resolveOk = resolve;\r\n\r\n // 立即切换为 loading 状态\r\n modalInstance.update({\r\n title: fmt('preset.load.loading'),\r\n content: <Spin size=\"large\" className=\"block mx-auto\" />,\r\n okButtonProps: { style: { display: 'none' } },\r\n cancelButtonProps: { style: { display: 'none' } },\r\n maskClosable: false,\r\n closable: false,\r\n });\r\n\r\n (async () => {\r\n try {\r\n await loadPreset({\r\n id: loadData.id,\r\n ...(loadData.category_list && { category_list: loadData.category_list })\r\n });\r\n\r\n // 成功:1 秒后自动关闭\r\n setTimeout(() => {\r\n resolveOk?.();\r\n message.success(fmt('preset.success'));\r\n // 加载成功的外部回调\r\n if (onLoadSuccess) {\r\n onLoadSuccess(loadData);\r\n }\r\n }, 1000);\r\n } catch (error) {\r\n console.error('Failed to load preset:', error);\r\n // 失败:直接关闭 modal\r\n modalInstance.destroy();\r\n // 加载失败的外部回调\r\n if (onLoadError) {\r\n onLoadError(error, loadData);\r\n }\r\n }\r\n })();\r\n });\r\n },\r\n onCancel: () => {\r\n // 用户取消\r\n }\r\n });\r\n }, [loadPreset, message, modal, onLoadSuccess, onLoadError, fmt]);\r\n\r\n const handleSave = useCallback(async () => {\r\n setLoading(true);\r\n\r\n try {\r\n const values = await form.getFieldsValue();\r\n\r\n // 验证预设名称\r\n if (fields.name?.required) {\r\n if (!values.name || values.name.trim() === '') {\r\n message.error(fmt('preset.validation.nameRequired'))\r\n return; // 直接返回 不执行\r\n }\r\n }\r\n\r\n // 验证分类列表\r\n if (fields.category_list?.required) {\r\n if (!values.category_list || values.category_list.length === 0) {\r\n message.error(fmt('preset.validation.categoryRequired'))\r\n return;\r\n }\r\n }\r\n \r\n await savePreset(values);\r\n message.success(fmt('preset.success'));\r\n\r\n const savedPresetName = values.name;\r\n\r\n // 刷新列表\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n\r\n // 在刷新后的列表中查找同名的预设\r\n const newlySavedPreset = presets.find(item => item.name === savedPresetName);\r\n\r\n if (newlySavedPreset) {\r\n setSelectedPreset(newlySavedPreset);\r\n form.setFieldsValue(newlySavedPreset);\r\n setPresetChanged(prev => prev + 1);\r\n } else {\r\n setSelectedPreset(values);\r\n }\r\n } catch (error) {\r\n console.error('Failed to save preset:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [form, message, fields, savePreset, getPresetList, fmt]);\r\n\r\n const handleUpdate = useCallback(async () => {\r\n if (!selectedPreset || !selectedPreset.id) {\r\n message.error(fmt('preset.error.noSelectionOrIdMissing'));\r\n return;\r\n }\r\n \r\n setLoading(true);\r\n\r\n try {\r\n const values = await form.getFieldsValue();\r\n\r\n // 验证预设名称\r\n if (fields.name?.required) {\r\n if (!values.name || values.name.trim() === '') {\r\n message.error(fmt('preset.validation.nameRequired'))\r\n return; // 直接返回 不执行\r\n }\r\n }\r\n\r\n await updatePreset({\r\n id: selectedPreset.id,\r\n name: values.name,\r\n description: values.description\r\n });\r\n\r\n // 刷新列表\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n\r\n // 更新当前选中的预设\r\n const updatedPreset = presets.find(item => item.id === selectedPreset.id);\r\n if (updatedPreset) {\r\n setSelectedPreset(updatedPreset);\r\n }\r\n\r\n message.success(fmt('preset.success'));\r\n } catch (error) {\r\n console.error('Failed to update preset:', error);\r\n throw error;\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [form, message, fields, updatePreset, selectedPreset, fmt]);\r\n\r\n // 初始化数据\r\n useEffect(() => {\r\n fetchPresetList();\r\n }, [fetchPresetList]);\r\n\r\n return (\r\n <StyledModal\r\n title={fmt(texts.title)}\r\n width={width}\r\n open={open}\r\n wrapClassName={`preset-management ${className}`}\r\n footer={null}\r\n onCancel={onClose}\r\n centered\r\n styles={{\r\n body: {\r\n padding: 0,\r\n height: `${height}px`\r\n }\r\n }}\r\n >\r\n <Row gutter={0} className=\"h-full w-full\">\r\n <Col span={14} className=\"h-full\">\r\n <LeftList\r\n dataSource={presetList}\r\n selectedPresetId={selectedPreset?.id}\r\n onSelectPreset={handleSelectPreset}\r\n onAddNew={handleAddNew}\r\n onRemove={handleRemove}\r\n texts={{\r\n newButton: fmt(texts.newButton),\r\n removeButton: fmt(texts.removeButton),\r\n }}\r\n />\r\n </Col>\r\n <Col span={10} className=\"h-full\">\r\n {selectedPreset ? (\r\n <RightDetailForm\r\n form={form}\r\n onSave={handleSave}\r\n onLoad={handleLoadPreset}\r\n onUpdate={handleUpdate}\r\n isLoading={loading}\r\n isSavedPreset={!!selectedPreset?.id}\r\n originalPresetData={selectedPreset} // 传递原始数据\r\n fields={fields}\r\n texts={{\r\n loadButton: fmt(texts.loadButton),\r\n saveButton: fmt(texts.saveButton),\r\n editButton: fmt(texts.editButton),\r\n cancelButton: fmt(texts.cancelButton)\r\n }}\r\n presetChanged={presetChanged}\r\n enableEdit={enableEdit}\r\n />\r\n ) : (\r\n <Flex vertical justify=\"center\" align=\"center\" className=\"h-full text-gray-400\">\r\n <Empty \r\n image={Empty.PRESENTED_IMAGE_SIMPLE} \r\n description={fmt(texts.emptyText)}\r\n />\r\n </Flex>\r\n )}\r\n </Col>\r\n </Row>\r\n </StyledModal>\r\n );\r\n};\r\n\r\nexport default memo(Preset);","import { Dropdown } from \"antd\";\r\nimport useUpgrade from '../hooks/useUpgrade';\r\n\r\nconst UpgradeManager = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000,\r\n children,\r\n ...dropdownProps\r\n }) => {\r\n const [upgradeElement] = useUpgrade({\r\n menuItems,\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes,\r\n uploadCompleteDelay,\r\n statusPollingInterval\r\n });\r\n\r\n if (children) {\r\n // 提取Dropdown组件和其menu属性\r\n const dropdownElement = upgradeElement.props.children[0];\r\n const otherElements = upgradeElement.props.children.slice(1);\r\n \r\n return (\r\n <>\r\n <Dropdown \r\n {...dropdownProps} \r\n {...dropdownElement.props} // 传递所有Dropdown的props\r\n >\r\n {children}\r\n </Dropdown>\r\n {otherElements}\r\n </>\r\n );\r\n }\r\n\r\n // 如果没有children,直接返回完整的升级元素\r\n return upgradeElement;\r\n }\r\n\r\n UpgradeManager.defaultProps = {\r\n trigger: [\"hover\"],\r\n placement: \"bottomRight\"\r\n};\r\n\r\nexport default UpgradeManager;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { Dropdown, App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport PropTypes from 'prop-types';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst SystemOperations = ({ \r\n onPowerOff, \r\n onRestart,\r\n onPowerOffSuccess,\r\n onRestartSuccess,\r\n beforeAction, // 在执行关机/重启前调用\r\n powerOffLabel = \"system.poweroff\",\r\n restartLabel = \"system.restart\",\r\n iconClassName = \"seeder-iconfont seeder-icon-guanji1 text-xl text-neutral-400\",\r\n confirmMessage = \"system.confirm.message\",\r\n confirmTitle = \"system.confirm.title\",\r\n cancelText = \"system.button.cancel\",\r\n okText = \"system.button.confirm\"\r\n}) => {\r\n const intl = useIntl();\r\n const { modal } = App.useApp();\r\n\r\n const menuItems = [\r\n {\r\n key: \"poweroff\",\r\n label: typeof powerOffLabel === 'string' && powerOffLabel.includes('.') ? intl.formatMessage({ id: powerOffLabel }) : powerOffLabel,\r\n },\r\n {\r\n key: \"restart\",\r\n label: typeof restartLabel === 'string' && restartLabel.includes('.') ? intl.formatMessage({ id: restartLabel }) : restartLabel,\r\n }\r\n ];\r\n\r\n const doAction = (action) => {\r\n try {\r\n // 根据 action 决定显示的确认信息\r\n const actionLabels = {\r\n poweroff: intl.formatMessage({ id: 'system.action.powerOff' }),\r\n restart: intl.formatMessage({ id: 'system.action.restart' })\r\n };\r\n\r\n const actionText = actionLabels[action] || action;\r\n\r\n // 处理标题和消息的国际化\r\n const titleText = typeof confirmTitle === 'string' && confirmTitle.includes('.') \r\n ? intl.formatMessage({ id: confirmTitle }) \r\n : confirmTitle;\r\n \r\n // 如果是国际化 key,使用 intl.formatMessage 处理参数\r\n // 如果是普通文本,使用 replace 替换占位符\r\n const messageText = typeof confirmMessage === 'string' && confirmMessage.includes('.') \r\n ? intl.formatMessage({ id: confirmMessage }, { action: actionText })\r\n : typeof confirmMessage === 'string' \r\n ? confirmMessage.replace('{action}', actionText)\r\n : confirmMessage;\r\n\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: titleText,\r\n content: messageText,\r\n cancelText: typeof cancelText === 'string' && cancelText.includes('.') ? intl.formatMessage({ id: cancelText }) : cancelText,\r\n okText: typeof okText === 'string' && okText.includes('.') ? intl.formatMessage({ id: okText }) : okText,\r\n onOk: async () => {\r\n // 先执行 beforeAction(用于 enterMaintenanceMode)\r\n if (typeof beforeAction === 'function') {\r\n beforeAction(action); // 可传 action 类型\r\n }\r\n\r\n if (action === 'poweroff' && onPowerOff) {\r\n await onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n await onRestart();\r\n }\r\n\r\n // 成功后再触发 success 回调\r\n if (action === 'poweroff' && typeof onPowerOffSuccess === 'function') {\r\n onPowerOffSuccess();\r\n } else if (action === 'restart' && typeof onRestartSuccess === 'function') {\r\n onRestartSuccess();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }\r\n\r\n const handleMenuClick = ({ key }) => {\r\n doAction(key);\r\n }\r\n\r\n return (\r\n <Dropdown menu={{ items: menuItems, onClick: handleMenuClick }} trigger={[\"hover\"]}>\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className={iconClassName}></i>\r\n </a>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nSystemOperations.propTypes = {\r\n onPowerOff: PropTypes.func,\r\n onRestart: PropTypes.func,\r\n powerOffLabel: PropTypes.string,\r\n restartLabel: PropTypes.string,\r\n iconClassName: PropTypes.string,\r\n confirmTitle: PropTypes.string,\r\n cancelText: PropTypes.string,\r\n okText: PropTypes.string,\r\n run: PropTypes.func\r\n};\r\n\r\nexport default SystemOperations;","import { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\n\r\n// 将 logo.png 转为 base64\r\nconst logoBase64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAGaCAYAAAAfLro4AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGj2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI1LTA5LTA5VDEwOjU2OjU5KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTA5LTA5VDEwOjU2OjU5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNS0wOS0wOVQxMDo1Njo1OSswODowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowZjE5ZjRmMy1jZWFlLTcwNDUtYTA5OC0xMjJmNzViYjVhYmIiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1YmIxNjQ4OC1hYzczLWI3NGYtODczMC1hZGZiY2Y1NTk3OWYiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MjdjZjIwMy0zM2IyLWU3NDItYWRhNC0wNGY2YzA5ZTYxOWIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyN2NmMjAzLTMzYjItZTc0Mi1hZGE0LTA0ZjZjMDllNjE5YiIgc3RFdnQ6d2hlbj0iMjAyNS0wOS0wOVQxMDo1Njo1OSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZjE5ZjRmMy1jZWFlLTcwNDUtYTA5OC0xMjJmNzViYjVhYmIiIHN0RXZ0OndoZW49IjIwMjUtMDktMDlUMTA6NTY6NTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMi4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZkN2NjZDg5LTViMTQtMDI0MC04YjNhLTQzODU2ODk1YTFlZjwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlgJupcAADw7SURBVHic7d15vKdz/f/xx5mNGWMsw1hKkaVQkmm1VFQSKr6VLIXIEtK++ZZIRQtJiG+K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NAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLR/h+CVP12K0zZoAAAAABJRU5ErkJggg==';\r\n\r\nconst defaultResetRoute = () => {\r\n window.location.href = window.location.origin;\r\n};\r\n\r\nconst useSpaLogo = (props = {}) => {\r\n const {\r\n logoUrl = logoBase64, // 使用者传入 logo URL\r\n logoWidth = 100,\r\n logoAlt = 'logo',\r\n onClick = defaultResetRoute,\r\n buttonStyle = {\r\n padding: 0,\r\n lineHeight: 1,\r\n height: 'auto',\r\n borderStyle: 'none',\r\n display: 'inline-block'\r\n }\r\n } = props;\r\n\r\n // 如果没有提供 logoUrl,返回空\r\n if (!logoUrl) {\r\n return [null];\r\n }\r\n\r\n return [\r\n <Button key=\"logo\" type=\"link\" style={buttonStyle} onClick={onClick}>\r\n <img alt={logoAlt} src={logoUrl} style={{ width: logoWidth }} />\r\n </Button>\r\n ];\r\n}\r\n\r\nuseSpaLogo.propTypes = {\r\n logoUrl: PropTypes.string,\r\n logoWidth: PropTypes.number,\r\n logoAlt: PropTypes.string,\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default useSpaLogo;","import { Space, Typography, Flex } from \"antd\";\r\nimport useSpaLogo from '../hooks/useSpaLogo';\r\nimport useHardwareUsage from '../hooks/useHardwareUsage';\r\nimport SystemOperations from './SystemOperations';\r\n\r\n// 默认的获取 WebSocket URL 函数\r\nconst defaultGetSocketUrl = (url) => {\r\n if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') {\r\n return `ws://127.0.0.1:${window.location.port}${url}`;\r\n }\r\n return `ws://${window.location.host}${url}`;\r\n};\r\n\r\nconst CommonHeader = ({\r\n menuElement,\r\n productInfo = {},\r\n showLogo = true,\r\n showProductInfo = true,\r\n showHardwareUsage = true,\r\n showSystemOperations = true,\r\n onPowerOff, \r\n onRestart,\r\n onPowerOffSuccess,\r\n onRestartSuccess,\r\n beforeAction,\r\n hardwareMonitorUrl = '/ws/psmonitor/status_update',\r\n getSocketUrl = defaultGetSocketUrl,\r\n logoProps = {},\r\n className = '',\r\n style = {},\r\n // 新增插槽\r\n leftContent = null, // 左侧额外内容\r\n rightContent = null // 右侧额外内容\r\n}) => {\r\n const [logo] = useSpaLogo(logoProps);\r\n\r\n // 系统资源使用情况\r\n const usageElement = useHardwareUsage(getSocketUrl(hardwareMonitorUrl));\r\n\r\n return (\r\n <Flex justify=\"space-between\" align=\"center\" className={`common-header ${className}`} style={style}>\r\n {/* 左侧:Logo、产品信息和左侧插槽 */}\r\n <Space size={12}>\r\n {showLogo && logo}\r\n\r\n {showProductInfo && (\r\n <Flex align=\"center\" gap={12}>\r\n {productInfo.productName && (\r\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\r\n {productInfo.productName}\r\n </Typography.Title>\r\n )}\r\n {productInfo.version && (\r\n <Typography.Text style={{ position: 'relative', top: 6, left: -6 }}>\r\n {productInfo.version}\r\n </Typography.Text>\r\n )}\r\n </Flex>\r\n )}\r\n\r\n {/* 左侧插槽 */}\r\n {leftContent}\r\n </Space>\r\n\r\n {/* 右侧:硬件监控和操作按钮 */}\r\n <Flex align=\"center\" gap={10}>\r\n {rightContent}\r\n\r\n {/* 系统资源使用情况 */}\r\n {showHardwareUsage && usageElement}\r\n\r\n <div className=\"header-controls\">\r\n {menuElement && (\r\n <div className=\"control-icon\">\r\n {menuElement}\r\n </div>\r\n )}\r\n\r\n {/* 关机、重启操作 */}\r\n {showSystemOperations && (\r\n <div className=\"control-icon\">\r\n <SystemOperations\r\n onPowerOff={onPowerOff}\r\n onRestart={onRestart}\r\n onPowerOffSuccess={onPowerOffSuccess}\r\n onRestartSuccess={onRestartSuccess}\r\n beforeAction={beforeAction}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </Flex>\r\n </Flex>\r\n )\r\n};\r\n\r\nexport default CommonHeader;","import { useState, useEffect, memo } from 'react';\r\nimport { Select, Form } from 'antd';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst LSMLabelField = (props) => {\r\n const intl = useIntl();\r\n const [lsmList, setLsmList] = useState([]);\r\n\r\n const {\r\n label = \"lsm.label\",\r\n onLsmSelect,\r\n fetchLsmData,\r\n formItemProps = {},\r\n selectProps = {},\r\n fieldNames = { label: 'label', value: 'label' }\r\n } = props;\r\n\r\n useEffect(() => {\r\n const loadLsmData = async () => {\r\n try {\r\n const res = await fetchLsmData();\r\n if (res?.length) {\r\n setLsmList(res);\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch LSM data:', error);\r\n }\r\n };\r\n\r\n loadLsmData();\r\n }, [fetchLsmData]);\r\n\r\n return (\r\n <Form.Item\r\n label={typeof label === 'string' && label.includes('.') ? intl.formatMessage({ id: label }) : label}\r\n {...formItemProps}\r\n >\r\n <Select\r\n {...field}\r\n {...selectProps}\r\n options={lsmList}\r\n fieldNames={fieldNames}\r\n allowClear\r\n showSearch\r\n optionFilterProp=\"label\"\r\n onChange={(value, option) => {\r\n field.onChange(value);\r\n onLsmSelect?.(value === undefined ? undefined : option);\r\n }}\r\n placeholder={selectProps.placeholder || intl.formatMessage({ id: 'lsm.placeholder.select' })}\r\n />\r\n </Form.Item>\r\n );\r\n};\r\n\r\nexport default memo(LSMLabelField);","import { Select, Input, Form, InputNumber, App } from \"antd\";\r\nimport { memo, useEffect, useState } from \"react\";\r\nimport { StyledModal } from \"seeder-st2110-components\";\r\nimport { useIntl } from '../i18n';\r\n\r\nconst numberProps = {\r\n controls: false,\r\n keyboard: false,\r\n changeOnWheel: false,\r\n precision: 0\r\n}\r\n\r\nconst NmosModal = ({\r\n open, \r\n onClose, \r\n getNmosSettings,\r\n updateNmosSettings,\r\n hostAddressOptions = [],\r\n modalProps = {},\r\n formProps = {}\r\n}) => {\r\n const intl = useIntl();\r\n const [nmosSettings, setNmosSettings] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n const { message } = App.useApp();\r\n\r\n useEffect(() => {\r\n // 重置表单和状态当 Modal 打开时\r\n if (open) {\r\n setLoading(true);\r\n getNmosSettings().then(data => {\r\n if (data) {\r\n setNmosSettings(data);\r\n // 数据加载后设置表单值\r\n form.setFieldsValue({\r\n host_addresses: data.host_addresses || [],\r\n domain: data.domain,\r\n registry_address: data.registry_address,\r\n registration_port: data.registration_port,\r\n registry_version: data.registry_version,\r\n logging_level: data.logging_level,\r\n });\r\n }\r\n }).catch(err => {\r\n console.error(\"Failed to fetch settings\", err);\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n } else {\r\n // 关闭时重置表单\r\n form.resetFields();\r\n setNmosSettings(null);\r\n }\r\n }, [open, form, getNmosSettings]); \r\n\r\n const handleSubmit = async () => {\r\n const values = await form.getFieldsValue();\r\n\r\n setLoading(true);\r\n\r\n try {\r\n const response = await updateNmosSettings({\r\n ...nmosSettings,\r\n ...values\r\n });\r\n\r\n if (response) {\r\n message.success(intl.formatMessage({ id: 'nmos.saveSuccess' }));\r\n setTimeout(() => {\r\n onClose();\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error('Update failed:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <StyledModal\r\n title={intl.formatMessage({ id: 'nmos.title' })}\r\n width={650}\r\n open={open}\r\n okText={intl.formatMessage({ id: 'button.apply' })}\r\n cancelText={intl.formatMessage({ id: 'button.close' })}\r\n onOk={handleSubmit}\r\n onCancel={onClose}\r\n confirmLoading={loading}\r\n destroyOnHidden // 关闭时销毁组件,确保下次打开重新初始化\r\n {...modalProps}\r\n >\r\n <Form\r\n form={form}\r\n name=\"nmosForm\"\r\n labelCol={{ span: 5 }}\r\n wrapperCol={{ span: 19 }}\r\n autoComplete=\"off\"\r\n disabled={loading}\r\n {...formProps}\r\n >\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.hostAddress' })}\r\n name=\"host_addresses\"\r\n >\r\n <Select\r\n mode=\"multiple\"\r\n options={hostAddressOptions}\r\n fieldNames={{ label: \"display_name\", value: \"ip_address\" }}\r\n placeholder={intl.formatMessage({ id: 'nmos.placeholder.selectHostAddress' })}\r\n allowClear\r\n />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.domain' })} \r\n name=\"domain\"\r\n >\r\n <Input />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.registryAddress' })}\r\n name=\"registry_address\"\r\n >\r\n <Input />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.registrationPort' })}\r\n name=\"registration_port\"\r\n >\r\n <InputNumber\r\n {...numberProps}\r\n min={0}\r\n max={65535}\r\n style={{ width: '100%' }}\r\n />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.registryVersion' })}\r\n name=\"registry_version\"\r\n >\r\n <Select\r\n options={[\r\n { label: \"v1.0\", value: \"v1.0\" },\r\n { label: \"v1.1\", value: \"v1.1\" },\r\n { label: \"v1.2\", value: \"v1.2\" },\r\n { label: \"v1.3\", value: \"v1.3\" }\r\n ]}\r\n placeholder={intl.formatMessage({ id: 'nmos.placeholder.selectVersion' })}\r\n />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.loggingLevel' })}\r\n name=\"logging_level\"\r\n >\r\n <InputNumber \r\n {...numberProps}\r\n min={-40} \r\n max={40}\r\n style={{ width: '100%' }}\r\n />\r\n </Form.Item>\r\n </Form>\r\n </StyledModal>\r\n )\r\n}\r\n\r\nexport default memo(NmosModal);","import { useState, useRef, useCallback } from 'react';\r\n\r\nexport const useDeviceHealthCheck = ({\r\n healthCheckUrl = '/api/get_fmt',\r\n maxRetries = 90,\r\n checkInterval = 2000,\r\n onRedirect,\r\n redirectPath = '/',\r\n} = {}) => {\r\n const [error, setError] = useState(null);\r\n const retryCountRef = useRef(0);\r\n const abortControllerRef = useRef(null); // 用于取消轮询\r\n\r\n // 默认跳转行为:原生页面跳转(兼容无路由场景)\r\n const handleRedirect = useCallback((path) => {\r\n if (onRedirect) {\r\n onRedirect(path);\r\n } else {\r\n // 降级到原生跳转,避免依赖 history\r\n window.location.assign(path);\r\n }\r\n }, [onRedirect]);\r\n\r\n // 健康检查函数\r\n const checkHealth = async () => {\r\n if (abortControllerRef.current?.signal.aborted) return false;\r\n\r\n try {\r\n setError(null);\r\n const res = await fetch(healthCheckUrl, {\r\n method: 'HEAD',\r\n signal: abortControllerRef.current?.signal,\r\n });\r\n\r\n if (res.ok) {\r\n handleRedirect(redirectPath);\r\n return true;\r\n }\r\n return false;\r\n } catch (err) {\r\n if (err.name === 'AbortError') return false;\r\n setError('Unable to connect to the device. Please check your network.');\r\n return false;\r\n }\r\n };\r\n\r\n const poll = async () => {\r\n if (retryCountRef.current >= maxRetries) {\r\n setError('Unable to connect to the device. Click below to retry.');\r\n return;\r\n }\r\n\r\n const success = await checkHealth();\r\n if (success) return;\r\n\r\n if (!abortControllerRef.current?.signal.aborted) {\r\n retryCountRef.current += 1;\r\n setTimeout(poll, checkInterval);\r\n }\r\n };\r\n\r\n // 轮询逻辑\r\n const startPolling = useCallback(() => {\r\n // 重置状态\r\n retryCountRef.current = 0;\r\n setError(null);\r\n // 初始化 AbortController\r\n abortControllerRef.current = new AbortController();\r\n poll();\r\n }, []);\r\n\r\n const manualRetry = useCallback(() => {\r\n retryCountRef.current = 0;\r\n setError(null);\r\n poll();\r\n }, []);\r\n\r\n const cleanup = useCallback(() => {\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n abortControllerRef.current = null;\r\n }\r\n }, []);\r\n\r\n return {\r\n error,\r\n startPolling,\r\n manualRetry,\r\n cleanup\r\n };\r\n};","import { Result, Space, Typography, Button, Alert } from 'antd';\r\nimport { useEffect, useState } from 'react';\r\nimport { useDeviceHealthCheck } from '../hooks/useDeviceHealthCheck';\r\nimport { useIntl } from '../i18n';\r\n\r\nexport const MaintenancePage = ({\r\n isRestart = false,\r\n healthCheckUrl = '/api/get_fmt',\r\n redirectPath = '/',\r\n onRedirect,\r\n maxRetries = 90, // 最多重试 90 次(约 180 秒)\r\n checkInterval = 2000, // 每 2 秒重试\r\n countdownSeconds = 30, // 倒计时初始值,单位秒\r\n}) => {\r\n const intl = useIntl();\r\n const [countdown, setCountdown] = useState(countdownSeconds);\r\n\r\n const { error, startPolling, manualRetry, cleanup } = useDeviceHealthCheck({\r\n healthCheckUrl,\r\n redirectPath,\r\n onRedirect,\r\n maxRetries,\r\n checkInterval\r\n });\r\n\r\n useEffect(() => {\r\n if (!isRestart) return;\r\n\r\n const countdownTimer = setInterval(() => {\r\n setCountdown(prev => Math.max(0, prev - 1));\r\n }, 1000);\r\n\r\n const firstCheck = async () => {\r\n try {\r\n const res = await fetch(healthCheckUrl, { method: 'HEAD' });\r\n if (!res.ok) {\r\n startPolling();\r\n } else {\r\n onRedirect?.(redirectPath);\r\n }\r\n } catch {\r\n startPolling();\r\n }\r\n };\r\n\r\n firstCheck();\r\n\r\n return () => {\r\n clearInterval(countdownTimer);\r\n cleanup();\r\n };\r\n }, [isRestart, healthCheckUrl, startPolling, cleanup]);\r\n\r\n const title = isRestart\r\n ? intl.formatMessage({ id: 'maintenance.restarting' })\r\n : intl.formatMessage({ id: 'maintenance.poweredOff' });\r\n\r\n const subTitle = isRestart ? (\r\n <Space direction=\"vertical\" size={8} style={{ alignItems: 'center' }}>\r\n <Typography.Text>\r\n {intl.formatMessage({ id: 'maintenance.waiting' })}\r\n </Typography.Text>\r\n\r\n {/* 倒计时阶段 */}\r\n {countdown > 0 && (\r\n <Typography.Text type=\"secondary\">\r\n {intl.formatMessage({ id: 'maintenance.redirecting.countdown' }, { countdown })}\r\n </Typography.Text>\r\n )}\r\n\r\n {/* 倒计时结束,仍在自动重试中(无错误) */}\r\n {countdown <= 0 && !error && (\r\n <Typography.Text type=\"secondary\">\r\n {intl.formatMessage({ id: 'maintenance.waiting.long' })}\r\n </Typography.Text>\r\n )}\r\n\r\n {/* 错误提示(含操作引导) */}\r\n {error && (\r\n <>\r\n <Alert\r\n type=\"error\"\r\n message={error}\r\n showIcon\r\n style={{ width: '100%' }}\r\n />\r\n <Button type=\"link\" onClick={manualRetry}>\r\n {intl.formatMessage({ id: 'maintenance.retry' })}\r\n </Button>\r\n </>\r\n )}\r\n </Space>\r\n ) : (\r\n <Typography.Text>\r\n {intl.formatMessage({ id: 'maintenance.offline.description' })}\r\n </Typography.Text>\r\n );\r\n\r\n return (\r\n <div className=\"maintenance-page\">\r\n <Result\r\n status={isRestart ? 'info' : 'warning'}\r\n title={title}\r\n subTitle={subTitle}\r\n />\r\n </div>\r\n );\r\n};","// src/react/DraggableNumberInput.tsx\r\nimport React from \"react\";\r\nimport { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\n// 默认配置\r\nconst DEFAULT_DECIMAL_PLACES = 2;\r\n\r\n// src/react/defaults-and-utils.ts\r\n// eslint-disable-next-line no-var\r\nvar defaultModifiers = {\r\n default: { multiplier: 1, sensitivity: 1 },\r\n // ctrlKey: { multiplier: 1, sensitivity: 1 },\r\n // shiftKey: { multiplier: 10, sensitivity: 0.5 },\r\n // metaKey: { multiplier: 1, sensitivity: 1 },\r\n // altKey: { multiplier: 1, sensitivity: 1 }\r\n};\r\n\r\n// multiplier: 控制每次鼠标移动时数值变化的基本单位 multiplier: 1- 鼠标移动1像素,值变化1 multiplier: 10- 鼠标移动1像素,值变化10\r\n// sensitivity: 控制数值变化的灵敏度 sensitivity: 1- 正常灵敏度 sensitivity: 0.5- 减半灵敏度,需要移动2像素才能产生正常1像素的效果\r\n\r\n// 修改 formatNumber 函数,强制显示1位小数\r\nfunction formatNumber(value, decimalPlaces = DEFAULT_DECIMAL_PLACES) {\r\n return new Intl.NumberFormat(\"en-US\", {\r\n minimumFractionDigits: decimalPlaces,\r\n maximumFractionDigits: decimalPlaces,\r\n useGrouping: false\r\n }).format(value);\r\n}\r\n\r\nfunction handleArrow(e, multiplier, value) {\r\n if (e.key === \"ArrowUp\") {\r\n return value + multiplier;\r\n }\r\n if (e.key === \"ArrowDown\") {\r\n return value - multiplier;\r\n }\r\n return value;\r\n}\r\n\r\n// eslint-disable-next-line no-var\r\nvar DragCursor = ({ cursorPosition }) => /* @__PURE__ */ React.createElement(\r\n \"div\",\r\n {\r\n style: {\r\n position: \"fixed\",\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: \"100vh\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n /* @__PURE__ */ React.createElement(\r\n \"svg\",\r\n {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n width: \"24\",\r\n height: \"24\",\r\n viewBox: \"0 0 24 24\",\r\n style: {\r\n position: \"absolute\",\r\n left: cursorPosition.x,\r\n top: cursorPosition.y,\r\n transform: \"translate(-50%, -50%)\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n /* @__PURE__ */ React.createElement(\r\n \"path\",\r\n {\r\n fill: \"#000\",\r\n stroke: \"#fff\",\r\n strokeLinejoin: \"round\",\r\n d: \"M6.5 9a.5.5 0 0 0-.8-.4l-4 3a.5.5 0 0 0 0 .8l4 3a.5.5 0 0 0 .8-.4v-1.5h11V15a.5.5 0 0 0 .8.4l4-3a.5.5 0 0 0 0-.8l-4-3a.5.5 0 0 0-.8.4v1.5h-11V9Z\",\r\n style: {\r\n filter: \"drop-shadow( 0px 2px 1px rgba(0, 0, 0, .35))\"\r\n }\r\n }\r\n )\r\n )\r\n);\r\n\r\n// eslint-disable-next-line no-var\r\nvar noop = () => {\r\n};\r\nfunction DraggableNumberInput({\r\n value,\r\n min,\r\n max,\r\n className = \"\",\r\n disablePointerLock = false,\r\n modifierKeys,\r\n decimalPlaces = DEFAULT_DECIMAL_PLACES,\r\n onChange = noop,\r\n onDragStart = noop,\r\n onDragEnd = noop,\r\n disabled = false, // 新增 disabled 属性\r\n style,\r\n ...restProps\r\n}) {\r\n const inputRef = useRef(null);\r\n const [isMouseDown, setIsMouseDown] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [localValue, setLocalValue] = useState(() => formatNumber(value, decimalPlaces));\r\n const [cursorPosition, setCursorPosition] = useState({ x: 0, y: 0 });\r\n const totalMovement = useRef(0);\r\n const startValue = useRef(0);\r\n const startX = useRef(0);\r\n const currentMultiplier = useRef(1);\r\n\r\n // === 新增:编辑状态跟踪 ===\r\n const [isEditing, setIsEditing] = useState(false);\r\n const lastExternalValueRef = useRef(value);\r\n\r\n // 修改 formatNumber 调用,传入 decimalPlaces\r\n const formatValue = useCallback((val) => {\r\n return formatNumber(val, decimalPlaces);\r\n }, [decimalPlaces]);\r\n\r\n const constrainedOnChange = useCallback(\r\n (newValue) => {\r\n if (disabled) return; // 禁用状态下不触发 onChange\r\n \r\n let constrainedValue = newValue;\r\n if (typeof min === \"number\") {\r\n constrainedValue = Math.max(min, constrainedValue);\r\n }\r\n if (typeof max === \"number\") {\r\n constrainedValue = Math.min(max, constrainedValue);\r\n }\r\n onChange(constrainedValue);\r\n },\r\n [onChange, min, max, disabled]\r\n );\r\n\r\n useEffect(() => {\r\n // 只有当用户不在编辑状态,且外部值真正变化时才更新\r\n if (!isEditing && lastExternalValueRef.current !== value) {\r\n const formattedValue = formatValue(value);\r\n setLocalValue(formattedValue);\r\n lastExternalValueRef.current = value;\r\n }\r\n }, [value, formatValue, isEditing, disabled]);\r\n \r\n const handleInputChange = (e) => {\r\n if (disabled) return; // 禁用状态下不处理输入\r\n \r\n const val = e.target.value;\r\n\r\n // 标记为编辑状态\r\n setIsEditing(true);\r\n setLocalValue(val);\r\n\r\n // 允许输入中间状态,不立即触发onChange\r\n if (val === '' || val === '-' || val === '.' || val.endsWith('.')) {\r\n return; // 输入中,不触发onChange\r\n }\r\n\r\n const num = parseFloat(val);\r\n if (!isNaN(num)) {\r\n constrainedOnChange(num); \r\n }\r\n };\r\n\r\n const handleBlur = () => {\r\n if (disabled) return; // 禁用状态下不处理失焦\r\n \r\n // 退出编辑状态\r\n setIsEditing(false);\r\n\r\n const num = parseFloat(localValue);\r\n if (!isNaN(num)) {\r\n // 根据 decimalPlaces 进行四舍五入\r\n const precision = Math.pow(10, decimalPlaces);\r\n const processedValue = Math.round(num * precision) / precision;\r\n const formattedValue = formatValue(processedValue);\r\n\r\n // 更新显示值\r\n setLocalValue(formattedValue);\r\n lastExternalValueRef.current = processedValue;\r\n // 触发外部变化\r\n constrainedOnChange(processedValue);\r\n } else {\r\n // 如果输入无效,重置为当前外部值\r\n const formattedValue = formatValue(value);\r\n setLocalValue(formattedValue);\r\n }\r\n };\r\n\r\n const handleMouseDown = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不处理鼠标按下\r\n if (!inputRef.current) return;\r\n \r\n let x = 0, y = 0;\r\n if (\"clientX\" in e && \"clientY\" in e) {\r\n [x, y] = [e.clientX, e.clientY];\r\n }\r\n if (\"touches\" in e) {\r\n [x, y] = [e.touches[0].clientX, e.touches[0].clientY];\r\n }\r\n setIsMouseDown(true);\r\n startX.current = x;\r\n startValue.current = value;\r\n totalMovement.current = 0;\r\n setCursorPosition({ x, y });\r\n },\r\n [value, disablePointerLock, disabled]\r\n );\r\n\r\n const updateDelta = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不更新\r\n if (!isMouseDown) return;\r\n applyMovement(totalMovement.current, e);\r\n },\r\n [isMouseDown, disabled]\r\n );\r\n\r\n const getModifiers = useCallback(\r\n (e) => {\r\n const mods = { ...defaultModifiers, ...modifierKeys };\r\n for (const key in mods) {\r\n if (key !== \"default\" && e[key]) {\r\n currentMultiplier.current = mods[key].multiplier;\r\n return mods[key];\r\n }\r\n }\r\n currentMultiplier.current = mods.default.multiplier;\r\n return mods.default;\r\n },\r\n [modifierKeys]\r\n );\r\n\r\n const applyMovement = useCallback(\r\n (newMovement, e) => {\r\n if (disabled) return; // 禁用状态下不应用移动\r\n \r\n const { sensitivity, multiplier } = getModifiers(e);\r\n const delta = newMovement * sensitivity * multiplier;\r\n let newValue = startValue.current + delta;\r\n // 根据 decimalPlaces 进行精度控制\r\n const precision = Math.pow(10, decimalPlaces);\r\n newValue = Math.round(newValue * precision) / precision;\r\n newValue = Object.is(newValue, -0) ? 0 : newValue;\r\n constrainedOnChange(newValue);\r\n },\r\n [constrainedOnChange, getModifiers, decimalPlaces, disabled]\r\n );\r\n\r\n const handleArrowKeyDown = (e) => {\r\n if (disabled) return; // 禁用状态下不处理方向键\r\n \r\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n const { multiplier } = getModifiers(e);\r\n const newValue = handleArrow(e, multiplier, value);\r\n constrainedOnChange(newValue);\r\n }\r\n };\r\n\r\n const handleModifierKeyDuringDrag = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不处理修饰键\r\n \r\n if (e.key === \"Shift\" || e.key === \"Control\" || e.key === \"Meta\" || e.key === \"Alt\") {\r\n updateDelta(e);\r\n }\r\n },\r\n [updateDelta, disabled]\r\n );\r\n\r\n const handleMouseMove = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不处理鼠标移动\r\n if (!isMouseDown) return;\r\n \r\n if (\"touches\" in e) {\r\n e.preventDefault();\r\n }\r\n if (!disablePointerLock && document.pointerLockElement && !(\"touches\" in e)) {\r\n setCursorPosition((prev) => {\r\n const width = window.innerWidth;\r\n const height = window.innerHeight;\r\n const x2 = (prev.x + e.movementX + width) % width;\r\n const y = (prev.y + e.movementY + height) % height;\r\n return { x: x2, y };\r\n });\r\n }\r\n const x = \"touches\" in e ? e.touches[0].clientX : e.clientX;\r\n const newMovement = disablePointerLock || \"touches\" in e ? x - startX.current : totalMovement.current + e.movementX;\r\n if (!isDragging && newMovement !== 0) {\r\n if (!disablePointerLock && !(\"touches\" in e)) {\r\n inputRef.current?.requestPointerLock?.();\r\n }\r\n setIsDragging(true);\r\n document.addEventListener(\"keydown\", handleModifierKeyDuringDrag);\r\n document.addEventListener(\"keyup\", handleModifierKeyDuringDrag);\r\n onDragStart();\r\n }\r\n totalMovement.current = newMovement;\r\n applyMovement(newMovement, e);\r\n },\r\n [\r\n isMouseDown,\r\n disablePointerLock,\r\n startX,\r\n isDragging,\r\n onDragStart,\r\n applyMovement,\r\n handleModifierKeyDuringDrag,\r\n disabled\r\n ]\r\n );\r\n\r\n const handleMouseUp = useCallback(() => {\r\n if (disabled) return; // 禁用状态下不处理鼠标抬起\r\n \r\n setIsMouseDown(false);\r\n totalMovement.current = 0;\r\n if (isDragging) {\r\n setIsDragging(false);\r\n document.removeEventListener(\"keydown\", handleModifierKeyDuringDrag);\r\n document.removeEventListener(\"keyup\", handleModifierKeyDuringDrag);\r\n onDragEnd();\r\n }\r\n if (document.pointerLockElement) {\r\n document.exitPointerLock();\r\n }\r\n }, [isDragging, onDragEnd, disablePointerLock, disabled]);\r\n\r\n useEffect(() => {\r\n if (isMouseDown && !disabled) {\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"touchmove\", handleMouseMove, {\r\n passive: false\r\n });\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n document.addEventListener(\"touchend\", handleMouseUp);\r\n return () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.removeEventListener(\"touchmove\", handleMouseMove);\r\n document.removeEventListener(\"touchend\", handleMouseUp);\r\n };\r\n }\r\n }, [isMouseDown, handleMouseMove, handleMouseUp, disabled]);\r\n\r\n // 禁用状态下的样式\r\n const disabledStyle = disabled ? {\r\n cursor: 'not-allowed',\r\n borderColor: '#424242',\r\n background: 'rgba(255, 255, 255, 0.08)',\r\n color: 'rgba(255, 255, 255, 0.25)'\r\n } : {};\r\n\r\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\r\n \"input\",\r\n {\r\n ref: inputRef,\r\n type: \"text\",\r\n inputMode: \"numeric\",\r\n pattern: \"-?[0-9]*\\\\.?[0-9]*\",\r\n value: localValue,\r\n onChange: handleInputChange,\r\n onBlur: handleBlur,\r\n onMouseDown: handleMouseDown,\r\n onTouchStart: handleMouseDown,\r\n onKeyDown: handleArrowKeyDown,\r\n disabled: disabled, // 添加 disabled 属性\r\n className: `draggable-number-input ${className} ${isDragging ? \"dragging\" : \"\"} ${disabled ? \"disabled\" : \"\"}`,\r\n style: {\r\n ...{\r\n cursor: disabled ? 'not-allowed' : 'ew-resize',\r\n userSelect: disabled ? 'none' : 'auto',\r\n caretColor: isDragging ? \"transparent\" : \"initial\"\r\n },\r\n ...disabledStyle,\r\n ...style\r\n },\r\n ...restProps\r\n }\r\n ), isDragging && !disablePointerLock && !disabled && /* @__PURE__ */ React.createElement(DragCursor, { cursorPosition }));\r\n}\r\n\r\nexport {\r\n DraggableNumberInput\r\n};","import React from 'react';\r\nimport { InputNumber } from 'antd';\r\nimport { useIntl } from '../i18n';\r\n\r\n/**\r\n * 通用有界输入框\r\n * 用于处理需要范围限制的输入,支持自动修正或自由输入\r\n */\r\nexport const BoundedInput = ({\r\n value, \r\n onChange, \r\n min = 0,\r\n max = 100,\r\n autoCorrect = false, \r\n placeholder = 'input.placeholder.enterInteger',\r\n disabled = false,\r\n ...props\r\n}) => {\r\n const intl = useIntl();\r\n \r\n // 处理国际化文本\r\n const placeholderText = typeof placeholder === 'string' && placeholder.includes('.') \r\n ? intl.formatMessage({ id: placeholder }) \r\n : placeholder;\r\n \r\n // 1. 处理输入变更:只管记录,不修正,不打断\r\n const handleChange = (val) => {\r\n if (val === null || val === undefined) {\r\n onChange?.(null);\r\n return;\r\n }\r\n // 确保是整数\r\n if (typeof val === 'number') {\r\n onChange?.(Math.floor(val));\r\n }\r\n };\r\n\r\n // 2. 处理失焦:只有开启 autoCorrect 时才执行修正\r\n const handleBlur = (e) => {\r\n // 如果关闭了自动修正,直接返回,不做任何事\r\n if (!autoCorrect) return;\r\n\r\n const val = e.target.value;\r\n \r\n if (val === '' || val === null || val === undefined) return;\r\n\r\n const num = Number(val);\r\n if (isNaN(num)) return;\r\n\r\n // 核心修正逻辑\r\n let safeVal = num;\r\n if (num < min) safeVal = min;\r\n if (num > max) safeVal = max;\r\n\r\n // 只有当值需要改变时,才触发更新\r\n if (safeVal !== num) {\r\n onChange?.(safeVal);\r\n }\r\n };\r\n\r\n return (\r\n <InputNumber\r\n value={value}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n placeholder={placeholderText}\r\n // 只有开启自动修正时,才把 min/max 传给组件\r\n min={autoCorrect ? min : undefined}\r\n max={autoCorrect ? max : undefined}\r\n precision={0} // 必须是整数\r\n controls={false} // 隐藏上下箭头\r\n keyboard={false} // 禁用键盘上下键\r\n changeOnWheel={false} // 禁用滚轮\r\n style={{ width: '100%' }}\r\n disabled={disabled}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * 专用端口输入框\r\n */\r\nexport const PortInput = (props) => (\r\n <BoundedInput\r\n min={0}\r\n max={65535}\r\n placeholder=\"input.placeholder.enterPort\"\r\n {...props}\r\n />\r\n);\r\n\r\n/**\r\n * 专用 Payload 输入框\r\n */\r\nexport const PayloadInput = (props) => (\r\n <BoundedInput\r\n min={96}\r\n max={127}\r\n placeholder=\"input.placeholder.enterPayload\"\r\n {...props}\r\n />\r\n);"],"names":["debugI18n","_window$g_initialProp","_window$g_initialProp2","_window$g_initialProp3","_window$g_initialProp4","_window$g_initialProp5","_window$g_initialProp6","window","console","log","group","g_initialProps","locale","___g_initialPropsFromServer","localStorage","getItem","e","__COMPONENT_LOCALE__","__COMPONENT_I18N_MESSAGES__","__PROJECT_I18N_MESSAGES__","messages","componentMessages","projectMessages","umiMessages","allLocales","Set","Object","keys","Array","from","forEach","merged","_objectSpread","concat","length","testKeys","currentLocale","allMessages","key","_allMessages$currentL","_allMessages$enUS","translation","groupEnd","process","env","NODE_ENV","getLocale","g_lang","LOCALE","g_initialPropsFromServer","storedLocale","getMessages","formatMessage","_ref","_messages$locale","_messages$enUS","id","values","arguments","undefined","message","replace","match","useIntl","formatMessageFn","_ref2","addMessages","formatBytes","bytes","decimals","k","dm","sizes","i","Math","floor","parseFloat","pow","toFixed","UsageItem","memo","title","iconClass","children","memTotal","intl","_jsx","Tooltip","_jsxs","_Fragment","destroyOnHidden","className","useHardwareWebSocket","socketUrl","systemStatus","setSystemStatus","useState","handleMessage","useCallback","prev","error","useWebSocket","onMessage","event","parsedMessage","JSON","parse","data","debug","ps_status","getMaxNicTemp","sensors","priorityFields","temps","flatMap","field","_sensors$field","map","item","current","filter","temp","max","getMaxSensorTemp","sensorData","getDetail","_sensors_temperatures","_sensors_temperatures2","_mem$total","_mem$percent","_getMaxNicTemp","_gpu_stats$0$utilizat","_gpu_stats$","_gpu_stats$0$temperat","_gpu_stats$2","status","cpu_percent","mem","sensors_temperatures","gpu_stats","cpu_usage","cpu_temp","coretemp","mem_total","total","mem_usage","percent","mem_temp","spd5118","nic_temp","hd_temp","nvme","gpu_usage","gpu_temp","createMetricItem","value","unit","numValue","valueString","getItems","details","items","push","useHardwareUsage","useMemo","statusItems","index","StyledModal","props","width","okText","cancelText","styles","propStyles","restProps","_objectWithoutProperties","_excluded","okButtonText","includes","cancelButtonText","baseStyles","content","padding","header","marginBottom","paddingBlock","paddingInlineStart","background","body","paddingInline","footer","marginTop","paddingBlockEnd","Modal","AuthorizationModal","onCancel","onOk","authData","App","useApp","code","setCode","accredit_status","isActivated","statusMessage","bios_id","uuid","expires_time","expiresTime","getStatusMessageKey","msg","statusMap","statusMessageKey","handleOk","trimmedCode","trim","statusAlert","Alert","type","showIcon","defaultOkText","open","cancelButtonProps","disabled","maskClosable","closable","Form","name","labelCol","span","wrapperCol","autoComplete","style","Item","label","required","Input","readOnly","TextArea","onChange","target","autoSize","minRows","maxRows","placeholder","DEFAULT_AUTH","useAuth","options","fetchAuthInfo","authorize","defaultAuthData","autoShowModal","messageApi","contextHolder","useMessage","showModal","setShowModal","setAuthData","isRegistered","setIsRegistered","loading","setLoading","openModal","closeModal","useEffect","loadAuthInfo","result","commands","auth","license_data","errorMsg","ciphertext_status","errorMessage","modal","AuthModal","openAuthModal","closeAuthModal","useUpgrade","menuItems","onMenuClick","downloadFiles","upgradeExecute","upgradeStatus","acceptFileTypes","uploadCompleteDelay","statusPollingInterval","isSpinning","setIsSpinning","pollingInterval","setPollingInterval","currentStatus","setCurrentStatus","uploadProgress","setUploadProgress","inputRef","useRef","isUploadingRef","isMountedRef","uploadCancelToken","axios","CancelToken","source","statusCancelToken","showLoader","hideLoader","finalMenuItems","hasDownload","some","hasUpload","licenseIndex","findIndex","itemsToAdd","beforeLicense","slice","licenseItem","afterLicense","itemsToInsert","handleMenuClick","onDownload","onUpload","warn","res","Error","fileName","contentDisposition","headers","filenameMatch","decodeURIComponent","blob","Blob","url","URL","createObjectURL","link","document","createElement","display","href","download","appendChild","click","parentNode","removeChild","revokeObjectURL","updatePackage","_event$target$files","file","files","cancel","formData","FormData","append","response","onUploadProgress","progressEvent","percentCompleted","round","loaded","cancelToken","token","cancelRequest","setTimeout","isCancel","fetchUpgradeStatus","success","location","reload","useInterval","upgradeElement","Dropdown","menu","onClick","trigger","preventDefault","ref","accept","Spin","spinning","indicator","LoadingOutlined","fontSize","spin","tip","size","fullscreen","useSystemOperations","onPowerOff","onRestart","confirmTitle","run","AntdModal","confirmTitleText","cancelTextValue","okTextValue","doAction","action","confirm","icon","ExclamationCircleFilled","toUpperCase","getMenuItems","usePageReload","reloading","setReloading","startReload","delay","backgroundColor","transition","offsetHeight","timer","clearTimeout","ReloadOverlay","position","top","left","right","bottom","flexDirection","alignItems","justifyContent","zIndex","color","getReadyStateText","state","states","createDummyLogger","dummyFn","exportLogs","getLogStats","errors","warnings","info","lastTimestamp","clearLogs","logs","createGlobalLogger","webSocketUrl","maxLogs","isDevelopment","level","timestamp","Date","toISOString","logEntry","timestampDisplay","toLocaleString","year","month","day","hour","minute","second","hour12","shift","consoleMessage","consoleArgs","filenamePrefix","logText","entry","stringify","join","repeat","blobUrl","hostname","pathname","urlObj","readableTime","filename","a","count","_logs","l","useHeartbeat","sendMessage","readyState","config","logger","enabled","heartbeatTimerRef","lastHeartbeatTimeRef","now","configRef","interval","stateRef","clearInterval","stopHeartbeat","startHeartbeat","currentState","currentConfig","setInterval","latestState","latestConfig","timeSinceLastHeartbeat","heartbeatImpl","getLastHeartbeatTime","isEnabled","useWebSocketWithFeatures","heartbeat","heartbeatConfig","enableLog","isConnected","setIsConnected","websocketOptions","onOpen","_options$onOpen","eventCode","call","onError","_options$onError","errorType","onClose","_options$onClose","reason","wasClean","onReconnect","_options$onReconnect","attempt","maxAttempts","reconnectLimit","latestMessage","connect","disconnect","heartbeatOptions","heartbeatEnabled","btoa","loggerMethods","readyStateText","NetworkFieldGroup","_fieldConfig$netmask$","_fieldConfig$netmask","prefix","interfaces","fieldConfig","defaultFieldConfig","ip","netmask","mergedFieldConfig","Typography","Title","iface","Divider","marginBlock","NetworkSettingsModal","getLanConfig","getSysConfig","getConfig","updateLanConfig","updateSysConfig","restart","onRestartSuccess","modalProps","formProps","sections","showNetmask","LAN","QSFP","restartRemark","form","useForm","st2110Interfaces","setSt2110Interfaces","lanConfigs","setLanConfigs","submitLoading","setSubmitLoading","isInitialized","setIsInitialized","originalSt2110InterfacesRef","initializationStatus","hasFetched","hasInitialized","preparedFieldConfig","fetchData","lan_interfaces","promises","results","Promise","allSettled","lanResult","sysResult","st2110_interfaces","resetFields","initialValues","connection_id","display_name","ip_address","setFieldsValue","handleSuccess","messageText","isPopup","refresh","defaultMessage","newConfig","updatedConfig","is_restart_required","handleSubmit","validateFields","hasQsfpChanged","original","orig","ipChanged","updatePromises","lanData","_lanConfigs$index","interfacesData","_st2110Interfaces$ind","_st2110Interfaces$ind2","_st2110Interfaces$ind3","st2110Data","allSucceeded","every","mergedModalProps","confirmLoading","centered","forceRender","mergedFormProps","defaultFieldConfigs","clock_class","formType","clock_accuracy","offset_scaled_log_variance","grandmaster_priority1","grandmaster_priority2","grandmaster_identity","master_port_id","t1_domain_number","min","master_utc_offset","is_connected","text","is_locked","defaultFieldOrder","convertPtpStatusToArray","ptpStatus","fieldConfigs","fieldOrder","rawData","PtpModal","getPtpInfo","updatePtpInfo","setPtpStatus","then","catch","err","finally","ptpStatusArray","renderLabel","getFieldsValue","renderFormItem","_item$options","_item$statusMap","_item$min","_item$max","selectOptions","opt","Select","Switch","normalizedValue","ConfigProvider","theme","components","Badge","statusSize","InputNumber","controls","keyboard","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","initialValue","LeftList","dataSource","selectedPresetId","onSelectPreset","onAddNew","onRemove","hasPresets","texts","newButton","removeButton","fmt","List","rowKey","renderItem","Text","ellipsis","create_time","description","emptyText","Empty","image","PRESENTED_IMAGE_SIMPLE","Button","PlusOutlined","Space","SubmitButton","editButtonEle","RightDetailForm","_ref3","onSave","onLoad","onEdit","onCancelEdit","onUpdate","isLoading","isSavedPreset","originalPresetData","fields","category_list","loadButton","saveButton","editButton","cancelButton","presetChanged","enableEdit","initialSelected","setInitialSelected","isEditMode","setIsEditMode","currentSelected","useWatch","hasCategoryList","currentValue","getFieldValue","checkboxOptions","category","isInitiallySelected","shouldDisable","initiallySelected","handleCheckboxChange","checkedValues","handleEditClick","handleCancelEdit","handleSaveEdit","handleLoad","formValues","loadData","shouldDisableNameAndDesc","shouldDisableCategories","Flex","vertical","height","layout","flex","overflowY","Checkbox","Group","rows","resize","Preset","getPresetList","savePreset","removePreset","loadPreset","updatePreset","onLoadSuccess","onLoadError","deleteConfirm","loadConfirm","loadText","successText","presetList","setPresetList","selectedPreset","setSelectedPreset","setPresetChanged","fetchPresetList","presets","preset_list","firstPreset","handleSelectPreset","preset","handleAddNew","_fields$category_list","unsavedPreset","find","warning","newPreset","reduce","acc","fieldName","handleRemove","isUnsavedPreset","presetName","currentIndex","updatedList","nextIndex","nextPreset","handleLoadPreset","modalInstance","resolveOk","resolve","reject","update","okButtonProps","_resolveOk","destroy","handleSave","_fields$name","_fields$category_list2","savedPresetName","newlySavedPreset","handleUpdate","_fields$name2","updatedPreset","wrapClassName","Row","gutter","Col","justify","align","UpgradeManager","dropdownProps","dropdownElement","otherElements","defaultProps","placement","reactIs_production_min","reactIs_development","reactIsModule","require$$0","require$$1","objectAssign","ReactPropTypesSecret_1","has","checkPropTypes_1","require$$2","require$$3","require$$4","factoryWithTypeCheckers","factoryWithThrowingShims","propTypesModule","SystemOperations","onPowerOffSuccess","beforeAction","powerOffLabel","restartLabel","iconClassName","confirmMessage","actionLabels","poweroff","actionText","titleText","propTypes","PropTypes","func","string","logoBase64","defaultResetRoute","origin","useSpaLogo","logoUrl","logoWidth","logoAlt","buttonStyle","lineHeight","borderStyle","alt","src","number","defaultGetSocketUrl","port","host","CommonHeader","menuElement","productInfo","showLogo","showProductInfo","showHardwareUsage","showSystemOperations","hardwareMonitorUrl","getSocketUrl","logoProps","leftContent","rightContent","logo","usageElement","gap","productName","version","LSMLabelField","lsmList","setLsmList","onLsmSelect","fetchLsmData","formItemProps","selectProps","fieldNames","loadLsmData","allowClear","showSearch","optionFilterProp","option","numberProps","changeOnWheel","precision","NmosModal","getNmosSettings","updateNmosSettings","hostAddressOptions","nmosSettings","setNmosSettings","host_addresses","domain","registry_address","registration_port","registry_version","logging_level","mode","useDeviceHealthCheck","healthCheckUrl","maxRetries","checkInterval","onRedirect","redirectPath","setError","retryCountRef","abortControllerRef","handleRedirect","path","assign","checkHealth","_abortControllerRef$c","signal","aborted","_abortControllerRef$c2","fetch","method","ok","poll","_abortControllerRef$c3","startPolling","AbortController","manualRetry","cleanup","abort","MaintenancePage","isRestart","countdownSeconds","countdown","setCountdown","countdownTimer","firstCheck","_unused","subTitle","direction","Result","DEFAULT_DECIMAL_PLACES","defaultModifiers","default","multiplier","sensitivity","formatNumber","decimalPlaces","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","useGrouping","format","handleArrow","DragCursor","cursorPosition","React","pointerEvents","xmlns","viewBox","x","y","transform","fill","stroke","strokeLinejoin","d","noop","DraggableNumberInput","disablePointerLock","modifierKeys","onDragStart","onDragEnd","isMouseDown","setIsMouseDown","isDragging","setIsDragging","localValue","setLocalValue","setCursorPosition","totalMovement","startValue","startX","currentMultiplier","isEditing","setIsEditing","lastExternalValueRef","formatValue","val","constrainedOnChange","newValue","constrainedValue","formattedValue","handleInputChange","endsWith","num","isNaN","handleBlur","processedValue","handleMouseDown","clientX","clientY","touches","updateDelta","applyMovement","getModifiers","mods","newMovement","delta","is","handleArrowKeyDown","handleModifierKeyDuringDrag","handleMouseMove","pointerLockElement","innerWidth","innerHeight","x2","movementX","movementY","_inputRef$current","_inputRef$current$req","requestPointerLock","addEventListener","handleMouseUp","removeEventListener","exitPointerLock","passive","disabledStyle","cursor","borderColor","Fragment","inputMode","pattern","onBlur","onMouseDown","onTouchStart","onKeyDown","userSelect","caretColor","BoundedInput","autoCorrect","placeholderText","handleChange","safeVal","PortInput","PayloadInput"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AAEaA,MAAAA,SAAS,GAAGA,MAAM;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;AAC7B,EAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;AACjCC,IAAAA,OAAO,CAACC,GAAG,CAAC,yCAAyC,CAAC,CAAA;AACtD,IAAA,OAAA;AACF,GAAA;AAEAD,EAAAA,OAAO,CAACE,KAAK,CAAC,2BAA2B,CAAC,CAAA;;AAE1C;AACAF,EAAAA,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AACzCD,EAAAA,OAAO,CAACC,GAAG,CAAC,oCAAoC,EAAA,CAAAR,qBAAA,GAAEM,MAAM,CAACI,cAAc,cAAAV,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAArBA,qBAAA,CAAuBW,MAAM,CAAC,CAAA;EAChFJ,OAAO,CAACC,GAAG,CAAC,iEAAiE,EAAA,CAAAP,sBAAA,GAAEK,MAAM,CAACI,cAAc,MAAAT,IAAAA,IAAAA,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuBW,2BAA2B,MAAA,IAAA,IAAAX,sBAAA,KAAlDA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAoDU,MAAM,CAAC,CAAA;EAE1I,IAAI;IACFJ,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEK,YAAY,CAACC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;GAChF,CAAC,OAAOC,CAAC,EAAE;AACVR,IAAAA,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC,CAAA;AAChD,GAAA;EAEAD,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,MAAM,CAACU,oBAAoB,CAAC,CAAA;;AAE5E;AACAT,EAAAA,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC,CAAA;EAC9CD,OAAO,CAACC,GAAG,CAAC,yCAAyC,EAAEF,MAAM,CAACW,2BAA2B,CAAC,CAAA;EAC1FV,OAAO,CAACC,GAAG,CAAC,uCAAuC,EAAEF,MAAM,CAACY,yBAAyB,CAAC,CAAA;AACtFX,EAAAA,OAAO,CAACC,GAAG,CAAC,sCAAsC,EAAA,CAAAN,sBAAA,GAAEI,MAAM,CAACI,cAAc,cAAAR,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAArBA,sBAAA,CAAuBiB,QAAQ,CAAC,CAAA;;AAEpF;AACA,EAAA,MAAMC,iBAAiB,GAAGd,MAAM,CAACW,2BAA2B,IAAI,EAAE,CAAA;AAClE,EAAA,MAAMI,eAAe,GAAGf,MAAM,CAACY,yBAAyB,IAAI,EAAE,CAAA;AAC9D,EAAA,MAAMI,WAAW,GAAG,CAAA,CAAAnB,sBAAA,GAAAG,MAAM,CAACI,cAAc,MAAAP,IAAAA,IAAAA,sBAAA,uBAArBA,sBAAA,CAAuBgB,QAAQ,KAAI,EAAE,CAAA;AAEzD,EAAA,MAAMI,UAAU,GAAG,IAAIC,GAAG,CAAC,CACzB,GAAGC,MAAM,CAACC,IAAI,CAACN,iBAAiB,CAAC,EACjC,GAAGK,MAAM,CAACC,IAAI,CAACL,eAAe,CAAC,EAC/B,GAAGI,MAAM,CAACC,IAAI,CAACJ,WAAW,CAAC,CAC5B,CAAC,CAAA;EAEFf,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEmB,KAAK,CAACC,IAAI,CAACL,UAAU,CAAC,CAAC,CAAA;AAE3DA,EAAAA,UAAU,CAACM,OAAO,CAAClB,MAAM,IAAI;AAC3B,IAAA,MAAMmB,MAAM,GAAAC,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EACNT,WAAW,CAACX,MAAM,CAAC,IAAI,EAAE,CACzBU,EAAAA,eAAe,CAACV,MAAM,CAAC,IAAI,EAAE,CAAA,EAC7BS,iBAAiB,CAACT,MAAM,CAAC,IAAI,EAAE,CACpC,CAAA;AACDJ,IAAAA,OAAO,CAACC,GAAG,CAAA,mBAAA,CAAAwB,MAAA,CAAWrB,MAAM,QAAAqB,MAAA,CAAKP,MAAM,CAACC,IAAI,CAACI,MAAM,CAAC,CAACG,MAAM,EAAA,SAAA,CAAA,EAAWH,MAAM,CAAC,CAAA;AAC/E,GAAC,CAAC,CAAA;;AAEF;AACAvB,EAAAA,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC,CAAA;AACrC,EAAA,MAAM0B,QAAQ,GAAG,CACf,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,cAAc,EACd,cAAc,CACf,CAAA;AAED,EAAA,MAAMC,aAAa,GAAG,CAAA,CAAA/B,sBAAA,GAAAE,MAAM,CAACI,cAAc,MAAA,IAAA,IAAAN,sBAAA,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuBO,MAAM,MAAA,CAAAN,sBAAA,GAC9BC,MAAM,CAACI,cAAc,MAAA,IAAA,IAAAL,sBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,sBAAA,GAArBA,sBAAA,CAAuBO,2BAA2B,MAAA,IAAA,IAAAP,sBAAA,KAAlDA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAoDM,MAAM,CAAA,IAC1DE,YAAY,CAACC,OAAO,CAAC,YAAY,CAAC,IAClC,OAAO,CAAA;EAE5B,MAAMsB,WAAW,GAAG,EAAE,CAAA;AACtBb,EAAAA,UAAU,CAACM,OAAO,CAAClB,MAAM,IAAI;AAC3ByB,IAAAA,WAAW,CAACzB,MAAM,CAAC,GAAAoB,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,CACbT,EAAAA,EAAAA,WAAW,CAACX,MAAM,CAAC,IAAI,EAAE,CAAA,EACzBU,eAAe,CAACV,MAAM,CAAC,IAAI,EAAE,CAC7BS,EAAAA,iBAAiB,CAACT,MAAM,CAAC,IAAI,EAAE,CACpC,CAAA;AACH,GAAC,CAAC,CAAA;AAEFuB,EAAAA,QAAQ,CAACL,OAAO,CAACQ,GAAG,IAAI;IAAA,IAAAC,qBAAA,EAAAC,iBAAA,CAAA;AACtB,IAAA,MAAMC,WAAW,GAAG,CAAAF,CAAAA,qBAAA,GAAAF,WAAW,CAACD,aAAa,CAAC,MAAA,IAAA,IAAAG,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1BA,qBAAA,CAA6BD,GAAG,CAAC,MAAA,CAAAE,iBAAA,GAClCH,WAAW,CAAC,OAAO,CAAC,MAAA,IAAA,IAAAG,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAApBA,iBAAA,CAAuBF,GAAG,CAAC,KAC3B,aAAa,CAAA;IAChC9B,OAAO,CAACC,GAAG,CAAA,MAAA,CAAAwB,MAAA,CAAQK,GAAG,EAAA,IAAA,CAAA,CAAAL,MAAA,CAAKQ,WAAW,CAAE,CAAC,CAAA;AAC3C,GAAC,CAAC,CAAA;EAEFjC,OAAO,CAACkC,QAAQ,EAAE,CAAA;AACpB,EAAC;;AAED;AACA,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,OAAOtC,MAAM,KAAK,WAAW,EAAE;EAC3EA,MAAM,CAACP,SAAS,GAAGA,SAAS,CAAA;AAC5BQ,EAAAA,OAAO,CAACC,GAAG,CAAC,uFAAuF,CAAC,CAAA;AACtG;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAMqC,SAAS,GAAGA,MAAM;AACtB;AACA,EAAA,IAAI,OAAOvC,MAAM,KAAK,WAAW,EAAE;AAAA,IAAA,IAAAN,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;AACjC;AACA;IACA,IAAII,MAAM,CAACwC,MAAM,EAAE;MACjB,OAAOxC,MAAM,CAACwC,MAAM,CAAA;AACtB,KAAA;IACA,IAAIxC,MAAM,CAACyC,MAAM,EAAE;MACjB,OAAOzC,MAAM,CAACyC,MAAM,CAAA;AACtB,KAAA;;AAEA;IACA,IAAA/C,CAAAA,qBAAA,GAAIM,MAAM,CAACI,cAAc,MAAAV,IAAAA,IAAAA,qBAAA,KAArBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAuBW,MAAM,EAAE;AACjC,MAAA,OAAOL,MAAM,CAACI,cAAc,CAACC,MAAM,CAAA;AACrC,KAAA;;AAEA;AACA,IAAA,IAAA,CAAAV,sBAAA,GAAIK,MAAM,CAACI,cAAc,MAAA,IAAA,IAAAT,sBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,sBAAA,GAArBA,sBAAA,CAAuBW,2BAA2B,MAAAX,IAAAA,IAAAA,sBAAA,eAAlDA,sBAAA,CAAoDU,MAAM,EAAE;AAC9D,MAAA,OAAOL,MAAM,CAACI,cAAc,CAACE,2BAA2B,CAACD,MAAM,CAAA;AACjE,KAAA;;AAEA;IACA,IAAAT,CAAAA,sBAAA,GAAII,MAAM,CAAC0C,wBAAwB,MAAA9C,IAAAA,IAAAA,sBAAA,KAA/BA,KAAAA,CAAAA,IAAAA,sBAAA,CAAiCS,MAAM,EAAE;AAC3C,MAAA,OAAOL,MAAM,CAAC0C,wBAAwB,CAACrC,MAAM,CAAA;AAC/C,KAAA;;AAEA;IACA,IAAI;AACF,MAAA,MAAMsC,YAAY,GAAGpC,YAAY,CAACC,OAAO,CAAC,YAAY,CAAC,CAAA;AACvD,MAAA,IAAImC,YAAY,EAAE;AAChB,QAAA,OAAOA,YAAY,CAAA;AACrB,OAAA;KACD,CAAC,OAAOlC,CAAC,EAAE;AACV;AAAA,KAAA;;AAGF;IACA,IAAIT,MAAM,CAACU,oBAAoB,EAAE;MAC/B,OAAOV,MAAM,CAACU,oBAAoB,CAAA;AACpC,KAAA;AACF,GAAA;AACA;AACA,EAAA,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA,MAAMkC,WAAW,GAAGA,MAAM;AACxB,EAAA,IAAI,OAAO5C,MAAM,KAAK,WAAW,EAAE;AAAA,IAAA,IAAAH,sBAAA,CAAA;AACjC;IACA,MAAMgB,QAAQ,GAAG,EAAE,CAAA;;AAEnB;AACA,IAAA,MAAMC,iBAAiB,GAAGd,MAAM,CAACW,2BAA2B,IAAI,EAAE,CAAA;;AAElE;AACA,IAAA,MAAMI,eAAe,GAAGf,MAAM,CAACY,yBAAyB,IAAI,EAAE,CAAA;;AAE9D;AACA,IAAA,MAAMI,WAAW,GAAG,CAAA,CAAAnB,sBAAA,GAAAG,MAAM,CAACI,cAAc,MAAAP,IAAAA,IAAAA,sBAAA,uBAArBA,sBAAA,CAAuBgB,QAAQ,KAAI,EAAE,CAAA;;AAEzD;AACA,IAAA,MAAMI,UAAU,GAAG,IAAIC,GAAG,CAAC,CACzB,GAAGC,MAAM,CAACC,IAAI,CAACN,iBAAiB,CAAC,EACjC,GAAGK,MAAM,CAACC,IAAI,CAACL,eAAe,CAAC,EAC/B,GAAGI,MAAM,CAACC,IAAI,CAACJ,WAAW,CAAC,CAC5B,CAAC,CAAA;AAEFC,IAAAA,UAAU,CAACM,OAAO,CAAClB,MAAM,IAAI;AAC3BQ,MAAAA,QAAQ,CAACR,MAAM,CAAC,GAAAoB,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,CACVT,EAAAA,EAAAA,WAAW,CAACX,MAAM,CAAC,IAAI,EAAE,CAAA,EACzBU,eAAe,CAACV,MAAM,CAAC,IAAI,EAAE,CAC7BS,EAAAA,iBAAiB,CAACT,MAAM,CAAC,IAAI,EAAE,CACpC,CAAA;AACH,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOQ,QAAQ,CAAA;AACjB,GAAA;AACA,EAAA,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgC,aAAa,GAAG,UAAAC,IAAA,EAA2C;EAAA,IAAAC,gBAAA,EAAAC,cAAA,CAAA;EAAA,IAA1C;AAAEC,IAAAA,EAAAA;AAAG,GAAC,GAAAH,IAAA,CAAA;AAAA,EAAA,IAAEI,MAAM,GAAAC,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAAA,IAAE9C,MAAM,GAAA8C,SAAA,CAAAxB,MAAA,GAAAwB,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;EAAA,IAAEvC,QAAQ,GAAAsC,SAAA,CAAAxB,MAAA,GAAAwB,CAAAA,GAAAA,SAAA,MAAAC,SAAA,CAAA;AAC1D,EAAA,MAAMC,OAAO,GAAG,CAAAN,CAAAA,gBAAA,GAAAlC,QAAQ,CAACR,MAAM,CAAC,MAAA,IAAA,IAAA0C,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,gBAAA,CAAmBE,EAAE,CAAC,MAAA,CAAAD,cAAA,GAAInC,QAAQ,CAAC,OAAO,CAAC,MAAA,IAAA,IAAAmC,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,cAAA,CAAoBC,EAAE,CAAC,KAAIA,EAAE,CAAA;;AAEvE;EACA,OAAOI,OAAO,CAACC,OAAO,CAAC,YAAY,EAAE,CAACC,KAAK,EAAExB,GAAG,KAAK;AACnD,IAAA,OAAOmB,MAAM,CAACnB,GAAG,CAAC,KAAKqB,SAAS,GAAGF,MAAM,CAACnB,GAAG,CAAC,GAAGwB,KAAK,CAAA;AACxD,GAAC,CAAC,CAAA;AACJ,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,MAAAA,OAAO,GAAGA,MAAM;AAC3B,EAAA,MAAMnD,MAAM,GAAGkC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAM1B,QAAQ,GAAG+B,WAAW,EAAE,CAAA;AAE9B,EAAA,MAAMa,eAAe,GAAG,UAAAC,KAAA,EAAyB;IAAA,IAAxB;AAAET,MAAAA,EAAAA;AAAG,KAAC,GAAAS,KAAA,CAAA;AAAA,IAAA,IAAER,MAAM,GAAAC,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAC1C,IAAA,OAAON,aAAa,CAAC;AAAEI,MAAAA,EAAAA;AAAG,KAAC,EAAEC,MAAM,EAAE7C,MAAM,EAAEQ,QAAQ,CAAC,CAAA;GACvD,CAAA;EAED,OAAO;IACLR,MAAM;AACNwC,IAAAA,aAAa,EAAEY,eAAe;AAC9B5C,IAAAA,QAAAA;GACD,CAAA;AACH,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;MACa8C,WAAW,GAAGA,CAACtD,MAAM,EAAEQ,QAAQ,KAAK;AAC/C,EAAA,IAAI,OAAOb,MAAM,KAAK,WAAW,EAAE;AACjC,IAAA,IAAI,CAACA,MAAM,CAACW,2BAA2B,EAAE;AACvCX,MAAAA,MAAM,CAACW,2BAA2B,GAAG,EAAE,CAAA;AACzC,KAAA;AACAX,IAAAA,MAAM,CAACW,2BAA2B,CAACN,MAAM,CAAC,GAAGQ,QAAQ,CAAA;AACvD,GAAA;AACF;;ACxJA,MAAM+C,WAAW,GAAG,UAACC,KAAK,EAAmB;AAAA,EAAA,IAAjBC,QAAQ,GAAAX,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AACtC,EAAA,IAAIU,KAAK,KAAK,CAAC,IAAI,CAACA,KAAK,IAAIA,KAAK,GAAG,CAAC,EAAE,OAAO,SAAS,CAAA;EACxD,MAAME,CAAC,GAAG,IAAI,CAAA;EACd,MAAMC,EAAE,GAAGF,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAGA,QAAQ,CAAA;AACtC,EAAA,MAAMG,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACjE,GAAG,CAAC2D,KAAK,CAAC,GAAGM,IAAI,CAACjE,GAAG,CAAC6D,CAAC,CAAC,CAAC,CAAA;EACnD,OAAOM,UAAU,CAAC,CAACR,KAAK,GAAGM,IAAI,CAACG,GAAG,CAACP,CAAC,EAAEG,CAAC,CAAC,EAAEK,OAAO,CAACP,EAAE,CAAC,CAAC,GAAG,GAAG,GAAGC,KAAK,CAACC,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED,MAAMM,SAAS,gBAAGC,IAAI,CAAC3B,IAAA,IAA8C;EAAA,IAA7C;IAAE4B,KAAK;IAAEC,SAAS;IAAEC,QAAQ;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAA/B,IAAA,CAAA;AAC9D,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;EAEtB,oBACEuB,GAAA,CAACC,OAAO,EAAA;IACNN,KAAK,eACHO,IAAA,CAAAC,QAAA,EAAA;AAAAN,MAAAA,QAAA,gBACEG,GAAA,CAAA,KAAA,EAAA;AAAAH,QAAAA,QAAA,EAAMF,KAAAA;AAAK,OAAM,CAAC,EACjBA,KAAK,KAAKI,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,cAAA;AAAe,OAAC,CAAC,IAAI4B,QAAQ,KAAKzB,SAAS,iBAC7E6B,IAAA,CAAA,KAAA,EAAA;AAAAL,QAAAA,QAAA,EAAME,CAAAA,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,mBAAA;AAAoB,SAAC,CAAC,EAAC,IAAE,EAACW,WAAW,CAACiB,QAAQ,CAAC,CAAA;AAAA,OAAM,CACrF,CAAA;AAAA,KACD,CACH;AACDM,IAAAA,eAAe,EAAE,KAAM;AAAAP,IAAAA,QAAA,eAEvBK,IAAA,CAAA,KAAA,EAAA;AAAKG,MAAAA,SAAS,EAAC,YAAY;AAAAR,MAAAA,QAAA,gBACzBG,GAAA,CAAA,GAAA,EAAA;QAAGK,SAAS,EAAA,kBAAA,CAAA1D,MAAA,CAAqBiD,SAAS,EAAA,UAAA,CAAA;OAAa,CAAC,eACxDI,GAAA,CAAA,MAAA,EAAA;AAAMK,QAAAA,SAAS,EAAC,aAAa;AAAAR,QAAAA,QAAA,EAAEA,QAAAA;AAAQ,OAAO,CAAC,CAAA;KAC5C,CAAA;AAAC,GACC,CAAC,CAAA;AAEd,CAAC,CAAC,CAAA;AAEF,kBAAeJ,SAAS;;AClCxB,MAAMa,oBAAoB,GAAIC,SAAS,IAAK;EAC1C,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGC,QAAQ,EAAE,CAAA;AAElD,EAAA,MAAMC,aAAa,GAAGC,WAAW,CAAEtC,OAAO,IAAK;IAC7C,IAAI;AACF,MAAA,IAAIA,OAAO,EAAE;QACXmC,eAAe,CAACI,IAAI,IAAAnE,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EACfmE,IAAI,CAAA,EACJvC,OAAO,CAEV,CAAC,CAAA;AACL,OAAA;KACD,CAAC,OAAOwC,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC,CAAA;AACnD,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;;AAEN;EAC0BC,YAAY,CAACR,SAAS,EAAE;IAChDS,SAAS,EAAGC,KAAK,IAAK;AACpB;MACA,IAAI;QACF,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,CAACI,IAAI,CAAC,CAAA;QAC5CV,aAAa,CAACO,aAAa,CAAC,CAAA;OAC7B,CAAC,OAAOJ,KAAK,EAAE;AACd5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC,CAAA;QAC9C5F,OAAO,CAACoG,KAAK,CAAC,cAAc,EAAEL,KAAK,CAACI,IAAI,CAAC,CAAA;AAC3C,OAAA;AACF,KAAA;AACF,GAAC,EAAC;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEA,OAAO;AAAEE,IAAAA,SAAS,EAAEf,YAAAA;GAAc,CAAA;AACpC,CAAC,CAAA;AAED,6BAAeF,oBAAoB;;AC5CnC,MAAMkB,aAAa,GAAG,UAACC,OAAO,EAAqD;AAAA,EAAA,IAAnDC,cAAc,GAAAtD,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;AAC5E,EAAA,MAAMuD,KAAK,GAAGD,cAAc,CACzBE,OAAO,CAACC,KAAK,IAAA;AAAA,IAAA,IAAAC,cAAA,CAAA;IAAA,OAAI,CAAAL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAK,cAAA,GAAPL,OAAO,CAAGI,KAAK,CAAC,MAAA,IAAA,IAAAC,cAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAkBC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,OAAO,CAAC,KAAI,EAAE,CAAA;GAAC,CAAA,CACnEC,MAAM,CAAEC,IAAI,IAAK,OAAOA,IAAI,KAAK,QAAQ,CAAC,CAAA;AAC7C,EAAA,OAAOR,KAAK,CAAC/E,MAAM,GAAGwC,IAAI,CAACgD,GAAG,CAAC,GAAGT,KAAK,CAAC,GAAG,IAAI,CAAA;AACjD,CAAC,CAAA;;AAED;AACA,MAAMU,gBAAgB,GAAIC,UAAU,IAAK;EACvC,MAAMX,KAAK,GAAG,CAACW,UAAU,IAAI,EAAE,EAC5BP,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,OAAO,CAAC,CACzBC,MAAM,CAAEC,IAAI,IAAK,OAAOA,IAAI,KAAK,QAAQ,CAAC,CAAA;AAC7C,EAAA,OAAOR,KAAK,CAAC/E,MAAM,GAAGwC,IAAI,CAACgD,GAAG,CAAC,GAAGT,KAAK,CAAC,GAAG,IAAI,CAAA;AACjD,CAAC,CAAA;AAED,MAAMY,SAAS,GAAG,YAAiB;AAAA,EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,qBAAA,EAAAC,YAAA,CAAA;AAAA,EAAA,IAAhBC,MAAM,GAAA7E,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAC5B,MAAM;IAAE8E,WAAW;IAAEC,GAAG;IAAEC,oBAAoB;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAGJ,MAAM,CAAA;EAEpE,OAAO;AACLK,IAAAA,SAAS,EAAEJ,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,WAAW,GAAI,IAAI;AAC9BK,IAAAA,QAAQ,EAAAf,CAAAA,qBAAA,GAAEY,oBAAoB,aAApBA,oBAAoB,KAAA,KAAA,CAAA,IAAA,CAAAX,sBAAA,GAApBW,oBAAoB,CAAEI,QAAQ,MAAA,IAAA,IAAAf,sBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,sBAAA,GAA9BA,sBAAA,CAAiC,CAAC,CAAC,MAAA,IAAA,IAAAA,sBAAA,KAAnCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAqCR,OAAO,MAAAO,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,IAAI;AAC9DiB,IAAAA,SAAS,EAAAf,CAAAA,UAAA,GAAES,GAAG,aAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAEO,KAAK,MAAAhB,IAAAA,IAAAA,UAAA,KAAAA,KAAAA,CAAAA,GAAAA,UAAA,GAAI,IAAI;AAC7BiB,IAAAA,SAAS,EAAAhB,CAAAA,YAAA,GAAEQ,GAAG,aAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAES,OAAO,MAAAjB,IAAAA,IAAAA,YAAA,KAAAA,KAAAA,CAAAA,GAAAA,YAAA,GAAI,IAAI;IAC/BkB,QAAQ,EAAExB,gBAAgB,CAACe,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAoB,CAAEU,OAAO,CAAC;AACzDC,IAAAA,QAAQ,EAAAnB,CAAAA,cAAA,GAAEpB,aAAa,CAAC4B,oBAAoB,CAAC,MAAA,IAAA,IAAAR,cAAA,KAAA,KAAA,CAAA,GAAAA,cAAA,GAAI,IAAI;IACrDoB,OAAO,EAAE3B,gBAAgB,CAACe,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAoB,CAAEa,IAAI,CAAC;IACrDC,SAAS,EAAA,CAAArB,qBAAA,GAAEQ,SAAS,KAAA,IAAA,IAATA,SAAS,KAAAP,KAAAA,CAAAA,IAAAA,CAAAA,WAAA,GAATO,SAAS,CAAG,CAAC,CAAC,MAAAP,IAAAA,IAAAA,WAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAiB,iBAAiB,CAAC,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI,IAAI;IACtDsB,QAAQ,EAAA,CAAApB,qBAAA,GAAEM,SAAS,KAAA,IAAA,IAATA,SAAS,KAAAL,KAAAA,CAAAA,IAAAA,CAAAA,YAAA,GAATK,SAAS,CAAG,CAAC,CAAC,MAAAL,IAAAA,IAAAA,YAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAiB,iBAAiB,CAAC,MAAAD,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,IAAA;GAClD,CAAA;AACH,CAAC,CAAA;;AAED;AACA,MAAMqB,gBAAgB,GAAGA,CACvBzE,KAAK,EACLC,SAAS,EACTyE,KAAK,EACLC,IAAI,KACD;AACH,EAAA,MAAMC,QAAQ,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAG/E,UAAU,CAAC+E,KAAK,CAAC,GAAGA,KAAK,CAAA;EAEtE,OAAO;IACL1E,KAAK;IACLC,SAAS;IACT4E,WAAW,EAAA,EAAA,CAAA7H,MAAA,CAAK4H,QAAQ,EAAA5H,MAAA,CAAG2H,IAAI,CAAE;AACjCD,IAAAA,KAAK,EAAEE,QAAAA;GACR,CAAA;AACH,CAAC,CAAA;AAED,MAAME,QAAQ,GAAGA,CAACC,OAAO,EAAE3E,IAAI,KAAK;EAClC,MAAM4E,KAAK,GAAG,EAAE,CAAA;EAEhB,IAAID,OAAO,CAACpB,SAAS,KAAK,IAAI,IAAIoB,OAAO,CAACpB,SAAS,KAAKjF,SAAS,EAAE;IACjEsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,WAAA;KAAa,CAAC,EAAE,iBAAiB,EAAEwG,OAAO,CAACpB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AAClH,GAAA;EAEA,IAAIoB,OAAO,CAACnB,QAAQ,KAAK,IAAI,IAAImB,OAAO,CAACnB,QAAQ,KAAKlF,SAAS,EAAE;IAC/DsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,eAAA;KAAiB,CAAC,EAAE,sBAAsB,EAAEwG,OAAO,CAACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1H,GAAA;EAEA,IAAImB,OAAO,CAACf,SAAS,KAAK,IAAI,IAAIe,OAAO,CAACf,SAAS,KAAKtF,SAAS,EAAE;AACjEsG,IAAAA,KAAK,CAACC,IAAI,CAAAlI,gBAAA,CAAAA,gBAAA,CACL0H,EAAAA,EAAAA,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,cAAA;KAAgB,CAAC,EAAE,0BAA0B,EAAEwG,OAAO,CAACf,SAAS,EAAE,GAAG,CAAC,CAAA,EAAA,EAAA,EAAA;MACnH7D,QAAQ,EAAE4E,OAAO,CAACjB,SAAAA;AAAS,KAAA,CAC5B,CAAC,CAAA;AACJ,GAAA;EAEA,IAAIiB,OAAO,CAACb,QAAQ,KAAK,IAAI,IAAIa,OAAO,CAACb,QAAQ,KAAKxF,SAAS,EAAE;IAC/DsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,eAAA;KAAiB,CAAC,EAAE,mBAAmB,EAAEwG,OAAO,CAACb,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AACvH,GAAA;EAEA,IAAIa,OAAO,CAACX,QAAQ,KAAK,IAAI,IAAIW,OAAO,CAACX,QAAQ,KAAK1F,SAAS,EAAE;IAC/DsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,eAAA;KAAiB,CAAC,EAAE,wBAAwB,EAAEwG,OAAO,CAACX,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAC5H,GAAA;EAEA,IAAIW,OAAO,CAACV,OAAO,KAAK,IAAI,IAAIU,OAAO,CAACV,OAAO,KAAK3F,SAAS,EAAE;IAC7DsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,gBAAA;KAAkB,CAAC,EAAE,qBAAqB,EAAEwG,OAAO,CAACV,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AACzH,GAAA;EAEA,IAAIU,OAAO,CAACR,SAAS,KAAK,IAAI,IAAIQ,OAAO,CAACR,SAAS,KAAK7F,SAAS,EAAE;IACjEsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,WAAA;KAAa,CAAC,EAAE,qBAAqB,EAAEwG,OAAO,CAACR,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AACtH,GAAA;EAEA,IAAIQ,OAAO,CAACP,QAAQ,KAAK,IAAI,IAAIO,OAAO,CAACP,QAAQ,KAAK9F,SAAS,EAAE;IAC/DsG,KAAK,CAACC,IAAI,CAACR,gBAAgB,CAACrE,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,eAAA;KAAiB,CAAC,EAAE,sBAAsB,EAAEwG,OAAO,CAACP,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1H,GAAA;AAEA,EAAA,OAAOQ,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAME,gBAAgB,GAAItE,SAAS,IAAK;AACtC,EAAA,MAAMR,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;AAAE8C,IAAAA,SAAAA;AAAU,GAAC,GAAGjB,sBAAoB,CAACC,SAAS,CAAC,CAAA;EAErD,OAAOuE,OAAO,CAAC,MAAM;IACnB,IAAI,CAACvD,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAA;IAE5D,MAAMwD,WAAW,GAAGN,QAAQ,CAAClC,SAAS,CAAChB,SAAS,CAAC,EAAExB,IAAI,CAAC,CAAA;AAExD,IAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,iBAAiB;MAAAR,QAAA,EAC7BkF,WAAW,CAAChD,GAAG,CAAC,CAACC,IAAI,EAAEgD,KAAK,kBAC3BhF,GAAA,CAAA,KAAA,EAAA;AAAsBK,QAAAA,SAAS,EAAC,oBAAoB;QAAAR,QAAA,eAClDG,GAAA,CAACP,WAAS,EAAA;UACRE,KAAK,EAAEqC,IAAI,CAACrC,KAAM;UAClBC,SAAS,EAAEoC,IAAI,CAACpC,SAAU;UAC1BE,QAAQ,EAAEkC,IAAI,CAAClC,QAAS;UAAAD,QAAA,EAEvBmC,IAAI,CAACwC,WAAAA;SACG,CAAA;OAPHxC,EAAAA,IAAI,CAACrC,KASV,CACN,CAAA;AAAC,KACC,CAAC,CAAA;AAEV,GAAC,EAAE,CAAC4B,SAAS,CAAC,CAAC,CAAA;AACjB,CAAC,CAAA;AAED,yBAAesD,gBAAgB;;;ACxH/B,MAAMI,aAAW,GAAIC,KAAK,IAAK;AAC7B,EAAA,MAAMnF,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;AACJ0G,MAAAA,KAAK,GAAG,OAAO;AACfC,MAAAA,MAAM,GAAG,cAAc;AACvBC,MAAAA,UAAU,GAAG,cAAc;MAC3BC,MAAM,EAAEC,UAAU,GAAG,EAAC;AAExB,KAAC,GAAGL,KAAK;AADJM,IAAAA,SAAS,GAAAC,0BAAA,CACVP,KAAK,EAAAQ,WAAA,CAAA,CAAA;;AAET;AACA,EAAA,MAAMC,YAAY,GAAG,OAAOP,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACQ,QAAQ,CAAC,GAAG,CAAC,GACnE7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAEkH,MAAAA;GAAQ,CAAC,GAClCA,MAAM,CAAA;AAEV,EAAA,MAAMS,gBAAgB,GAAG,OAAOR,UAAU,KAAK,QAAQ,IAAIA,UAAU,CAACO,QAAQ,CAAC,GAAG,CAAC,GAC/E7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAEmH,UAAAA;GAAY,CAAC,GACtCA,UAAU,CAAA;;AAEd;AACA,EAAA,MAAMS,UAAU,GAAG;AACjBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,CAAA;AACT;KACD;AACDC,IAAAA,MAAM,EAAE;AACNC,MAAAA,YAAY,EAAE,CAAC;AACfF,MAAAA,OAAO,EAAE,CAAC;AACVG,MAAAA,YAAY,EAAE,EAAE;AAChBC,MAAAA,kBAAkB,EAAE,EAAE;AACtBC,MAAAA,UAAU,EAAE,SAAA;KACb;AACDC,IAAAA,IAAI,EAAE;AACJH,MAAAA,YAAY,EAAE,EAAE;AAChBI,MAAAA,aAAa,EAAE,EAAA;KAChB;AACDC,IAAAA,MAAM,EAAE;AACNC,MAAAA,SAAS,EAAE,CAAC;AACZT,MAAAA,OAAO,EAAE,CAAC;AACVU,MAAAA,eAAe,EAAE,EAAE;AACnBH,MAAAA,aAAa,EAAE,EAAA;AACjB,KAAA;GACD,CAAA;;AAED;EACA,MAAMjB,MAAM,GAAA5I,gBAAA,CAAAA,gBAAA,CACPoJ,EAAAA,EAAAA,UAAU,CACVP,EAAAA,UAAU,CACd,CAAA;AAED,EAAA,oBACEvF,GAAA,CAAC2G,KAAK,EAAAjK,gBAAA,CAAA;AACJyI,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,MAAM,EAAEO,YAAa;AACrBN,IAAAA,UAAU,EAAEQ,gBAAiB;AAC7BP,IAAAA,MAAM,EAAEA,MAAAA;GACJE,EAAAA,SAAS,CACd,CAAC,CAAA;AAEN,CAAC,CAAA;AAED,oBAAeP,aAAW;;AC3D1B,MAAM2B,kBAAkB,GAAI7I,IAAA,IAQtB;EAAA,IARuB;IAC3B8I,QAAQ;IACRC,IAAI;IACJC,QAAQ;AACRpH,IAAAA,KAAK,GAAG,eAAe;IACvByF,MAAM;AACNC,IAAAA,UAAU,GAAG,uBAAuB;AACpCF,IAAAA,KAAK,GAAG,GAAA;AACV,GAAC,GAAApH,IAAA,CAAA;AACC,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;AAAEH,IAAAA,OAAAA;AAAQ,GAAC,GAAG0I,GAAG,CAACC,MAAM,EAAE,CAAA;EAChC,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGzG,QAAQ,CAAC,EAAE,CAAC,CAAA;EAEpC,MAAM;AACJ0G,IAAAA,eAAe,EAAEC,WAAW;AAC5B/I,IAAAA,OAAO,EAAEgJ,aAAa;AACtBC,IAAAA,OAAO,EAAEC,IAAI;AACbC,IAAAA,YAAY,EAAEC,WAAAA;AAChB,GAAC,GAAGX,QAAQ,IAAI,EAAE,CAAA;;AAElB;EACA,MAAMY,mBAAmB,GAAIC,GAAG,IAAK;AACnC,IAAA,IAAI,CAACA,GAAG,EAAE,OAAO,4BAA4B,CAAA;;AAE7C;AACA,IAAA,MAAMC,SAAS,GAAG;AAChB,MAAA,mBAAmB,EAAE,0BAA0B;AAC/C,MAAA,aAAa,EAAE,4BAA4B;AAC3C,MAAA,SAAS,EAAE,wBAAwB;AACnC,MAAA,SAAS,EAAE,wBAAA;KACZ,CAAA;AAED,IAAA,OAAOA,SAAS,CAACD,GAAG,CAAC,IAAI,4BAA4B,CAAA;GACtD,CAAA;AAED,EAAA,MAAME,gBAAgB,GAAGH,mBAAmB,CAACL,aAAa,CAAC,CAAA;EAE3D,MAAMS,QAAQ,GAAGA,MAAM;AACrB,IAAA,MAAMC,WAAW,GAAGd,IAAI,CAACe,IAAI,EAAE,CAAA;IAC/B,IAAI,CAACD,WAAW,EAAE;AAChB1J,MAAAA,OAAO,CAACwC,KAAK,CAACf,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,gCAAA;AAAiC,OAAC,CAAC,CAAC,CAAA;AAC3E,MAAA,OAAA;AACF,KAAA;IACA4I,IAAI,CAACkB,WAAW,CAAC,CAAA;GAClB,CAAA;AAED,EAAA,MAAME,WAAW,GAAGb,WAAW,gBAC7BrH,GAAA,CAACmI,KAAK,EAAA;AACJ7J,IAAAA,OAAO,KAAA3B,MAAA,CAAKoD,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE4J,gBAAAA;AAAiB,KAAC,CAAC,EAAAnL,IAAAA,CAAAA,CAAAA,MAAA,CAAKoD,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,0BAAA;AAA2B,KAAC,CAAC,EAAA,GAAA,CAAA,CAAAvB,MAAA,CAAI+K,WAAW,CAAG;AACrIU,IAAAA,IAAI,EAAC,SAAS;IACdC,QAAQ,EAAA,IAAA;AAAA,GACT,CAAC,gBAEFrI,GAAA,CAACmI,KAAK,EAAA;AAAC7J,IAAAA,OAAO,EAAEyB,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE4J,gBAAAA;AAAiB,KAAC,CAAE;AAACM,IAAAA,IAAI,EAAC,SAAS;IAACC,QAAQ,EAAA,IAAA;AAAA,GAAE,CACxF,CAAA;AAED,EAAA,MAAMC,aAAa,GAAGjB,WAAW,GAAGtH,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAE,2BAAA;AAA4B,GAAC,CAAC,GAAG6B,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAE,yBAAA;AAA0B,GAAC,CAAC,CAAA;EAEnJ,oBACE8B,GAAA,CAACiF,aAAW,EAAA;AACVtF,IAAAA,KAAK,EAAEI,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAEyB,KAAAA;AAAM,KAAC,CAAE;AACzCwF,IAAAA,KAAK,EAAEA,KAAM;AACboD,IAAAA,IAAI,EAAE,IAAK;AACX1B,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,IAAI,EAAEiB,QAAS;IACf3C,MAAM,EAAEA,MAAM,IAAIkD,aAAc;AAChCjD,IAAAA,UAAU,EAAEtF,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAEmH,UAAAA;AAAW,KAAC,CAAE;AACnDmD,IAAAA,iBAAiB,EAAE;AAAEC,MAAAA,QAAQ,EAAE,CAACpB,WAAAA;KAAc;AAC9CqB,IAAAA,YAAY,EAAE,KAAM;AACpBC,IAAAA,QAAQ,EAAE,KAAM;IAAA9I,QAAA,eAEhBK,IAAA,CAAC0I,IAAI,EAAA;AACHC,MAAAA,IAAI,EAAC,WAAW;AAChBC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,IAAI,EAAE,CAAA;OAAI;AACtBC,MAAAA,UAAU,EAAE;AAAED,QAAAA,IAAI,EAAE,EAAA;OAAK;AACzBE,MAAAA,YAAY,EAAC,KAAK;AAAApJ,MAAAA,QAAA,gBAElBG,GAAA,CAAA,KAAA,EAAA;AAAKkJ,QAAAA,KAAK,EAAE;AAAEhD,UAAAA,YAAY,EAAE,EAAA;SAAK;AAAArG,QAAAA,QAAA,EAAEqI,WAAAA;AAAW,OAAM,CAAC,eACrDlI,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AAACC,QAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,qBAAA;AAAsB,SAAC,CAAE;QAACmL,QAAQ,EAAA,IAAA;QAAAxJ,QAAA,eAC3EG,GAAA,CAACsJ,KAAK,EAAA;AAACjF,UAAAA,KAAK,EAAEmD,IAAK;UAAC+B,QAAQ,EAAA,IAAA;SAAE,CAAA;AAAC,OACtB,CAAC,eACZvJ,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AAACC,QAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,aAAA;AAAc,SAAC,CAAE;QAACmL,QAAQ,EAAA,IAAA;AAAAxJ,QAAAA,QAAA,eACnEG,GAAA,CAACsJ,KAAK,CAACE,QAAQ,EAAA;AACbnF,UAAAA,KAAK,EAAE6C,IAAK;UACZuC,QAAQ,EAAG/N,CAAC,IAAKyL,OAAO,CAACzL,CAAC,CAACgO,MAAM,CAACrF,KAAK,CAAE;AACzCsF,UAAAA,QAAQ,EAAE;AAAEC,YAAAA,OAAO,EAAE,CAAC;AAAEC,YAAAA,OAAO,EAAE,CAAA;WAAI;AACrCC,UAAAA,WAAW,EAAE/J,IAAI,CAACjC,aAAa,CAAC;AAAEI,YAAAA,EAAE,EAAE,8BAAA;WAAgC,CAAA;SACvE,CAAA;AAAC,OACO,CAAC,CAAA;KACR,CAAA;AAAC,GACI,CAAC,CAAA;AAElB,CAAC,CAAA;AAED,2BAAe0I,kBAAkB;;AC9FjC,MAAMmD,YAAY,GAAG;AACnB3C,EAAAA,eAAe,EAAE,KAAK;AAAG;AACzBG,EAAAA,OAAO,EAAE,EAAE;AAAc;AACzBjJ,EAAAA,OAAO,EAAE,4BAA4B;AAAG;EACxCmJ,YAAY,EAAE,EAAE;AAClB,CAAC,CAAA;AAEYuC,MAAAA,OAAO,GAAIC,OAAO,IAAK;AAClC,EAAA,MAAMlK,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;IACJyL,aAAa;IACbC,SAAS;AACTC,IAAAA,eAAe,GAAGL,YAAY;AAC9BM,IAAAA,aAAa,GAAG,IAAA;AAClB,GAAC,GAAGJ,OAAO,IAAI,EAAE,CAAA;EAEjB,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAGjM,OAAO,CAACkM,UAAU,EAAE,CAAA;EACxD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGhK,QAAQ,CAAC,KAAK,CAAC,CAAC;EAClD,MAAM,CAACqG,QAAQ,EAAE4D,WAAW,CAAC,GAAGjK,QAAQ,CAAC0J,eAAe,CAAC,CAAA;EACzD,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAGnK,QAAQ,CAAC,KAAK,CAAC,CAAA;EACvD,MAAM,CAACoK,OAAO,EAAEC,UAAU,CAAC,GAAGrK,QAAQ,CAAC,KAAK,CAAC,CAAA;EAE7C,MAAMsK,SAAS,GAAGpK,WAAW,CAAC,MAAM8J,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;EAC3D,MAAMO,UAAU,GAAGrK,WAAW,CAAC,MAAM8J,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AAE7DQ,EAAAA,SAAS,CAAC,MAAM;IACd,eAAeC,YAAYA,GAAG;MAC5B,IAAI;QACFJ,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB,QAAA,MAAMK,MAAM,GAAG,MAAMlB,aAAa,EAAE,CAAA;AACpC,QAAA,IAAIkB,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAEC,QAAQ,EAAE;AACpB,UAAA,MAAMA,QAAQ,GAAGD,MAAM,CAACC,QAAQ,CAAA;UAChCV,WAAW,CAACU,QAAQ,CAAC,CAAA;AACrBR,UAAAA,eAAe,CAACQ,QAAQ,CAACjE,eAAe,CAAC,CAAA;AACzC,UAAA,IAAIiD,aAAa,EAAE;YACjBgB,QAAQ,CAACjE,eAAe,GAAG6D,UAAU,EAAE,GAAGD,SAAS,EAAE,CAAA;AACvD,WAAA;AACF,SAAA;OACD,CAAC,OAAOlK,KAAK,EAAE;AACd5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC,CAAA;AACpD,OAAC,SAAS;QACRiK,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,OAAA;AACF,KAAA;AAEAI,IAAAA,YAAY,EAAE,CAAA;GACf,EAAE,CAACjB,aAAa,EAAEG,aAAa,EAAEW,SAAS,EAAEC,UAAU,CAAC,CAAC,CAAA;AAEzD,EAAA,MAAMK,IAAI,GAAG,MAAOpE,IAAI,IAAK;IAC3B,IAAI;MACF6D,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB,MAAA,MAAMK,MAAM,GAAG,MAAMjB,SAAS,CAAC;AAC7B/B,QAAAA,IAAI,EAAE,kBAAkB;AACxBiD,QAAAA,QAAQ,EAAE;AACRnN,UAAAA,EAAE,EAAE,SAAS;AACbqN,UAAAA,YAAY,EAAErE,IAAAA;AAChB,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,IAAIkE,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAEC,QAAQ,EAAE;AACpB,QAAA,MAAMA,QAAQ,GAAGD,MAAM,CAACC,QAAQ,CAAA;AAChC;AACA,QAAA,IAAIA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEjE,eAAe,EAAE;UAC7ByD,eAAe,CAAC,IAAI,CAAC,CAAA;UACrBF,WAAW,CAACU,QAAQ,CAAC,CAAA;AACrBJ,UAAAA,UAAU,EAAE,CAAA;AACd,SAAC,MAAM;AACL;AACA,UAAA,MAAMO,QAAQ,GAAGH,QAAQ,CAACI,iBAAiB,IAAI,mCAAmC,CAAA;AAClF,UAAA,MAAMC,YAAY,GAAG,OAAOF,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC5F,QAAQ,CAAC,GAAG,CAAC,GACvE7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,YAAAA,EAAE,EAAEsN,QAAAA;WAAU,CAAC,GACpCA,QAAQ,CAAA;AACZlB,UAAAA,UAAU,CAACxJ,KAAK,CAAC4K,YAAY,CAAC,CAAA;AAChC,SAAA;AACF,OAAA;KACD,CAAC,OAAO5K,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC,CAAA;AAC9C,KAAC,SAAS;MACRiK,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,KAAA;GACD,CAAA;AAED,EAAA,MAAMY,KAAK,GAAGlB,SAAS,iBACrBvK,IAAA,CAAAC,QAAA,EAAA;IAAAN,QAAA,EAAA,cACEG,GAAA,CAAC4G,oBAAkB,EAAA;AACjBE,MAAAA,IAAI,EAAEwE,IAAK;AACXzE,MAAAA,QAAQ,EAAEoE,UAAW;AACrBlE,MAAAA,QAAQ,EAAEA,QAAAA;KACX,CAAC,EACDwD,aAAa,CAAA;AAAA,GACd,CACH,CAAA;EAED,OAAO;AACLqB,IAAAA,SAAS,EAAED,KAAK;AAChBE,IAAAA,aAAa,EAAEb,SAAS;AACxBc,IAAAA,cAAc,EAAEb,UAAU;IAC1BL,YAAY;IACZ7D,QAAQ;AACR+D,IAAAA,OAAAA;GACD,CAAA;AACH;;AClGA,MAAMiB,UAAU,GAAGhO,IAAA,IASb;EAAA,IATc;AAClBiO,IAAAA,SAAS,GAAG,EAAE;IACdC,WAAW;IACXC,aAAa;IACbC,cAAc;AAAE;IAChBC,aAAa;AAAG;AAChBC,IAAAA,eAAe,GAAG,0BAA0B;AAC5CC,IAAAA,mBAAmB,GAAG,IAAI;AAC1BC,IAAAA,qBAAqB,GAAG,IAAA;AAC1B,GAAC,GAAAxO,IAAA,CAAA;AACC,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM,CAAC+N,UAAU,EAAEC,aAAa,CAAC,GAAG/L,QAAQ,CAAC,KAAK,CAAC,CAAA;EACnD,MAAM,CAACgM,eAAe,EAAEC,kBAAkB,CAAC,GAAGjM,QAAQ,CAACrC,SAAS,CAAC,CAAC;EAClE,MAAM,CAACuO,aAAa,EAAEC,gBAAgB,CAAC,GAAGnM,QAAQ,CAACX,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAE,qBAAA;GAAuB,CAAC,CAAC,CAAC;EACtG,MAAM,CAAC4O,cAAc,EAAEC,iBAAiB,CAAC,GAAGrM,QAAQ,CAAC,CAAC,CAAC,CAAA;AAEvD,EAAA,MAAMsM,QAAQ,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7B;AACA,EAAA,MAAMC,cAAc,GAAGD,MAAM,CAAC,KAAK,CAAC,CAAA;AACpC;AACA,EAAA,MAAME,YAAY,GAAGF,MAAM,CAAC,IAAI,CAAC,CAAA;;AAEjC;EACA,MAAMG,iBAAiB,GAAGH,MAAM,CAACI,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAC,CAAA;EAC5D,MAAMC,iBAAiB,GAAGP,MAAM,CAACI,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAC,CAAA;AAE5D,EAAA,MAAME,UAAU,GAAGA,MAAMhB,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5C,EAAA,MAAMiB,UAAU,GAAGA,MAAMjB,aAAa,CAAC,KAAK,CAAC,CAAA;;AAE7C;AACA;AACA,EAAA,MAAMkB,cAAc,GAAG7I,OAAO,CAAC,MAAM;AACnC,IAAA,MAAM8I,WAAW,GAAG5B,SAAS,CAAC6B,IAAI,CAAC7L,IAAI,IAAIA,IAAI,CAAChF,GAAG,KAAK,UAAU,CAAC,CAAA;AACnE,IAAA,MAAM8Q,SAAS,GAAG9B,SAAS,CAAC6B,IAAI,CAAC7L,IAAI,IAAIA,IAAI,CAAChF,GAAG,KAAK,QAAQ,CAAC,CAAA;IAE/D,IAAI4Q,WAAW,IAAIE,SAAS,EAAE;AAC5B,MAAA,OAAO9B,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,MAAM+B,YAAY,GAAG/B,SAAS,CAACgC,SAAS,CAAChM,IAAI,IAAIA,IAAI,CAAChF,GAAG,KAAK,SAAS,CAAC,CAAA;;AAExE;AACA,IAAA,IAAI+Q,YAAY,KAAK,CAAC,CAAC,EAAE;MACvB,MAAME,UAAU,GAAG,EAAE,CAAA;MACrB,IAAIjC,SAAS,CAACpP,MAAM,GAAG,CAAC,EAAEqR,UAAU,CAACrJ,IAAI,CAAC;AAAEwD,QAAAA,IAAI,EAAE,SAAA;AAAU,OAAC,CAAC,CAAA;AAC9D;AACA,MAAA,IAAI,CAAC0F,SAAS,EAAEG,UAAU,CAACrJ,IAAI,CAAC;AAAE5H,QAAAA,GAAG,EAAE,QAAQ;AAAEoM,QAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,6BAAA;SAA+B,CAAA;AAAE,OAAC,CAAC,CAAA;AACpH,MAAA,OAAO,CAAC,GAAG8N,SAAS,EAAE,GAAGiC,UAAU,CAAC,CAAA;AACtC,KAAA;;AAEA;IACA,MAAMC,aAAa,GAAGlC,SAAS,CAACmC,KAAK,CAAC,CAAC,EAAEJ,YAAY,CAAC,CAAA;AACtD,IAAA,MAAMK,WAAW,GAAGpC,SAAS,CAAC+B,YAAY,CAAC,CAAA;IAC3C,MAAMM,YAAY,GAAGrC,SAAS,CAACmC,KAAK,CAACJ,YAAY,GAAG,CAAC,CAAC,CAAA;IAEtD,MAAMO,aAAa,GAAG,EAAE,CAAA;;AAExB;AACA,IAAA,IAAIJ,aAAa,CAACtR,MAAM,GAAG,CAAC,IAAIsR,aAAa,CAACA,aAAa,CAACtR,MAAM,GAAG,CAAC,CAAC,CAACwL,IAAI,KAAK,SAAS,EAAE;MAC1FkG,aAAa,CAAC1J,IAAI,CAAC;AAAEwD,QAAAA,IAAI,EAAE,SAAA;AAAU,OAAC,CAAC,CAAA;AACzC,KAAA;;AAEA;AACA;AACA,IAAA,IAAI,CAAC0F,SAAS,EAAEQ,aAAa,CAAC1J,IAAI,CAAC;AAAE5H,MAAAA,GAAG,EAAE,QAAQ;AAAEoM,MAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,6BAAA;OAA+B,CAAA;AAAE,KAAC,CAAC,CAAA;;AAEvH;IACAoQ,aAAa,CAAC1J,IAAI,CAAC;AAAEwD,MAAAA,IAAI,EAAE,SAAA;AAAU,KAAC,CAAC,CAAA;IAEvC,OAAO,CAAC,GAAG8F,aAAa,EAAE,GAAGI,aAAa,EAAEF,WAAW,EAAE,GAAGC,YAAY,CAAC,CAAA;AAC3E,GAAC,EAAE,CAACrC,SAAS,EAAEjM,IAAI,CAAC,CAAC,CAAA;EAErB,MAAMwO,eAAe,GAAG5P,KAAA,IAAa;IAAA,IAAZ;AAAE3B,MAAAA,GAAAA;AAAI,KAAC,GAAA2B,KAAA,CAAA;AAC9B,IAAA,QAAQ3B,GAAG;AACT,MAAA,KAAK,UAAU;AACbwR,QAAAA,UAAU,EAAE,CAAA;AACZ,QAAA,OAAA;AACF,MAAA,KAAK,QAAQ;AACXC,QAAAA,QAAQ,EAAE,CAAA;AACV,QAAA,OAAA;AACF,MAAA;AACE;AACA,QAAA,IAAIxC,WAAW,EAAE;UACfA,WAAW,CAACjP,GAAG,CAAC,CAAA;AAClB,SAAC,MAAM;AACL9B,UAAAA,OAAO,CAACwT,IAAI,CAAA,oBAAA,CAAA/R,MAAA,CAAsBK,GAAG,iCAA8B,CAAC,CAAA;AACtE,SAAA;AACJ,KAAA;GACD,CAAA;AAED,EAAA,MAAMwR,UAAU,GAAG,YAAY;IAC7B,IAAI,CAACtC,aAAa,EAAE;AAClBhR,MAAAA,OAAO,CAAC4F,KAAK,CAAC,2DAA2D,CAAC,CAAA;AAC1ExC,MAAAA,OAAO,CAACwC,KAAK,CAACf,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,qCAAA;AAAsC,OAAC,CAAC,CAAC,CAAA;AAChF,MAAA,OAAA;AACF,KAAA;IAEA,IAAI;AACF,MAAA,MAAMyQ,GAAG,GAAG,MAAMzC,aAAa,EAAE,CAAA;AAEjC,MAAA,IAAIyC,GAAG,CAAC1L,MAAM,KAAK,GAAG,EAAE;QACtB,MAAM,IAAI2L,KAAK,CAAAjS,0BAAAA,CAAAA,MAAA,CAA4BgS,GAAG,CAAC1L,MAAM,CAAE,CAAC,CAAA;AAC1D,OAAA;;AAEA;MACA,IAAI4L,QAAQ,GAAG,eAAe,CAAA;MAC9B,MAAMC,kBAAkB,GAAGH,GAAG,CAACI,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAA;;AAEnE;AACA,MAAA,IAAID,kBAAkB,EAAE;AACtB,QAAA,MAAME,aAAa,GAAGF,kBAAkB,CAACtQ,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC9E,IAAIwQ,aAAa,aAAbA,aAAa,KAAA,KAAA,CAAA,IAAbA,aAAa,CAAG,CAAC,CAAC,EAAE;UACtBH,QAAQ,GAAGI,kBAAkB,CAACD,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,SAAA;AACF,OAAA;;AAEA;MACA,MAAME,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACR,GAAG,CAACtN,IAAI,CAAC,EAAE;AAAE+G,QAAAA,IAAI,EAAE,0BAAA;AAA2B,OAAC,CAAC,CAAA;MACvE,MAAMgH,GAAG,GAAGnU,MAAM,CAACoU,GAAG,CAACC,eAAe,CAACJ,IAAI,CAAC,CAAA;;AAE5C;AACA,MAAA,MAAMK,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;AACxCF,MAAAA,IAAI,CAACrG,KAAK,CAACwG,OAAO,GAAG,MAAM,CAAA;MAC3BH,IAAI,CAACI,IAAI,GAAGP,GAAG,CAAA;MACfG,IAAI,CAAC7F,MAAM,GAAG,QAAQ,CAAA;MACtB6F,IAAI,CAACK,QAAQ,GAAGf,QAAQ,CAAA;AACxBW,MAAAA,QAAQ,CAAClJ,IAAI,CAACuJ,WAAW,CAACN,IAAI,CAAC,CAAA;MAC/BA,IAAI,CAACO,KAAK,EAAE,CAAA;;AAEZ;AACAP,MAAAA,IAAI,CAACQ,UAAU,CAACC,WAAW,CAACT,IAAI,CAAC,CAAA;AACjCtU,MAAAA,MAAM,CAACoU,GAAG,CAACY,eAAe,CAACb,GAAG,CAAC,CAAA;KAChC,CAAC,OAAOtO,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,kBAAkB,EAAEA,KAAK,CAAC,CAAA;AACxCxC,MAAAA,OAAO,CAACwC,KAAK,CAACf,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,8BAAA;AAA+B,OAAC,CAAC,CAAC,CAAA;AAC3E,KAAA;GACD,CAAA;EAED,MAAMuQ,QAAQ,GAAGA,MAAM;AACrB,IAAA,IAAIzB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,IAARA,QAAQ,CAAE/K,OAAO,IAAI,CAACiL,cAAc,CAACjL,OAAO,EAAE;AAChD+K,MAAAA,QAAQ,CAAC/K,OAAO,CAAC6N,KAAK,EAAE,CAAA;AAC1B,KAAA;GACD,CAAA;AAED,EAAA,MAAMI,aAAa,GAAG,MAAOjP,KAAK,IAAK;AAAA,IAAA,IAAAkP,mBAAA,CAAA;AACrC,IAAA,IAAIjD,cAAc,CAACjL,OAAO,EAAE,OAAO;;AAEnC,IAAA,MAAMmO,IAAI,GAAA,CAAAD,mBAAA,GAAGlP,KAAK,CAACyI,MAAM,CAAC2G,KAAK,cAAAF,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,mBAAA,CAAqB,CAAC,CAAC,CAAA;AACpC,IAAA,IAAI,CAACC,IAAI,IAAI,CAACjE,cAAc,EAAE;MAC5B,IAAIa,QAAQ,CAAC/K,OAAO,EAAE+K,QAAQ,CAAC/K,OAAO,CAACoC,KAAK,GAAG,EAAE,CAAA;AACjD,MAAA,OAAA;AACF,KAAA;IAEA6I,cAAc,CAACjL,OAAO,GAAG,IAAI,CAAA;AAC7BwL,IAAAA,UAAU,EAAE,CAAA;AACZZ,IAAAA,gBAAgB,CAAC9M,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,0BAAA;AAA2B,KAAC,CAAC,CAAC,CAAA;IACxE6O,iBAAiB,CAAC,CAAC,CAAC,CAAA;;AAEpB;AACAK,IAAAA,iBAAiB,CAACnL,OAAO,CAACqO,MAAM,EAAE,CAAA;IAClClD,iBAAiB,CAACnL,OAAO,GAAGoL,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAA;IAEtD,IAAI;AACF,MAAA,MAAMgD,QAAQ,GAAG,IAAIC,QAAQ,EAAE,CAAA;AAC/BD,MAAAA,QAAQ,CAACE,MAAM,CAAC,MAAM,EAAEL,IAAI,CAAC,CAAA;;AAE7B;MACA,IAAIpD,QAAQ,CAAC/K,OAAO,EAAE+K,QAAQ,CAAC/K,OAAO,CAACoC,KAAK,GAAG,EAAE,CAAA;;AAEjD;AACA;AACA,MAAA,MAAMqM,QAAQ,GAAG,MAAMvE,cAAc,CAACoE,QAAQ,EAAE;QAC9CI,gBAAgB,EAAGC,aAAa,IAAK;AACnC,UAAA,IAAI,CAACzD,YAAY,CAAClL,OAAO,EAAE,OAAA;AAC3B,UAAA,MAAM4O,gBAAgB,GAAGzR,IAAI,CAAC0R,KAAK,CAChCF,aAAa,CAACG,MAAM,GAAG,GAAG,GAAIH,aAAa,CAAClN,KAC/C,CAAC,CAAA;AACDqJ,UAAAA,iBAAiB,CAAC8D,gBAAgB,CAAC,CAAC;SACrC;AACDG,QAAAA,WAAW,EAAE5D,iBAAiB,CAACnL,OAAO,CAACgP,KAAAA;AACzC,OAAC,CAAC,CAAA;;AAEF;MACA,IAAI,CAAAP,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAExJ,IAAI,MAAK,GAAG,EAAE;AAC1B;QACA,IAAIiG,YAAY,CAAClL,OAAO,EAAE;AACxB,UAAA,MAAMuJ,QAAQ,GAAG,CAAAkF,QAAQ,aAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEpS,OAAO,KAAIyB,IAAI,CAACjC,aAAa,CAAC;AAAEI,YAAAA,EAAE,EAAE,iCAAA;AAAkC,WAAC,CAAC,CAAA;AACnGI,UAAAA,OAAO,CAACwC,KAAK,CAAC0K,QAAQ,CAAC,CAAA;AACvB0F,UAAAA,aAAa,EAAE,CAAA;AACjB,SAAA;AACA,QAAA,OAAA;AACF,OAAA;;AAEA;AACA,MAAA,IAAI,CAAC/D,YAAY,CAAClL,OAAO,EAAE,OAAA;AAC3B4K,MAAAA,gBAAgB,CAAC9M,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,+BAAA;AAAgC,OAAC,CAAC,CAAC,CAAA;;AAE7E;AACAiT,MAAAA,UAAU,CAAC,MAAM;AACf,QAAA,IAAI,CAAChE,YAAY,CAAClL,OAAO,EAAE,OAAA;QAC3B0K,kBAAkB,CAACJ,qBAAqB,CAAC,CAAA;AACzCM,QAAAA,gBAAgB,CAAC9M,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,0BAAA;AAA2B,SAAC,CAAC,CAAC,CAAA;OACzE,EAAEoO,mBAAmB,CAAC,CAAA;KACxB,CAAC,OAAOxL,KAAK,EAAE;AACd,MAAA,IAAI,CAACqM,YAAY,CAAClL,OAAO,EAAE,OAAA;AAE3B,MAAA,IAAI,CAACoL,KAAK,CAAC+D,QAAQ,CAACtQ,KAAK,CAAC,EAAE;AAC1B5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,eAAe,EAAEA,KAAK,CAAC,CAAA;AACrCxC,QAAAA,OAAO,CAACwC,KAAK,CAACf,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,4BAAA;AAA6B,SAAC,CAAC,CAAC,CAAA;AACzE,OAAA;AACAgT,MAAAA,aAAa,EAAE,CAAA;AACjB,KAAC,SAAS;MACR,IAAI/D,YAAY,CAAClL,OAAO,EAAE;QACxBiL,cAAc,CAACjL,OAAO,GAAG,KAAK,CAAA;AAChC,OAAA;AACF,KAAA;GACD,CAAA;AAED,EAAA,MAAMoP,kBAAkB,GAAG,YAAY;AACrC,IAAA,IAAI,CAACjF,aAAa,IAAI,CAACe,YAAY,CAAClL,OAAO,EAAE,OAAA;IAE7C,IAAI;AACF;AACA,MAAA,MAAMyO,QAAQ,GAAG,MAAMtE,aAAa,CAAC;AACnC4E,QAAAA,WAAW,EAAExD,iBAAiB,CAACvL,OAAO,CAACgP,KAAAA;AACzC,OAAC,CAAC,CAAA;MAEF,IAAI,CAAAP,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEzN,MAAM,MAAK,GAAG,EAAE;QAC5B,MAAM;UAAEiE,IAAI;AAAE5I,UAAAA,OAAO,EAAEgJ,aAAAA;SAAe,GAAGoJ,QAAQ,CAACrP,IAAI,CAAA;;AAEtD;AACA,QAAA,QAAQ6F,IAAI;AACV,UAAA,KAAK,GAAG;AAAE;AACR5I,YAAAA,OAAO,CAACgT,OAAO,CAAChK,aAAa,EAAE,GAAG,EAAE,MAAM;cACxC,IAAI6F,YAAY,CAAClL,OAAO,EAAE;AACxBiP,gBAAAA,aAAa,EAAE,CAAA;AACjB,eAAA;AACAjW,cAAAA,MAAM,CAACsW,QAAQ,CAACC,MAAM,EAAE,CAAA;AAC1B,aAAC,CAAC,CAAA;AACF,YAAA,MAAA;AAEF,UAAA,KAAK,GAAG;AAAE;AACR,YAAA,MAAA;UACF,KAAK,GAAG,CAAC;AACT,UAAA,KAAK,GAAG;AAAE;YACR,IAAIrE,YAAY,CAAClL,OAAO,EAAE;AACxB3D,cAAAA,OAAO,CAACwC,KAAK,CAACwG,aAAa,CAAC,CAAA;AAC5B4J,cAAAA,aAAa,EAAE,CAAA;AACjB,aAAA;AACA,YAAA,MAAA;AAEF,UAAA;AACE;YACA,IAAI/D,YAAY,CAAClL,OAAO,EAAE;cACxB3D,OAAO,CAACwC,KAAK,CAACwG,aAAa,IAAIvH,IAAI,CAACjC,aAAa,CAAC;AAAEI,gBAAAA,EAAE,EAAE,6BAAA;AAA8B,eAAC,CAAC,CAAC,CAAA;AACzFgT,cAAAA,aAAa,EAAE,CAAA;AACjB,aAAA;AACA,YAAA,MAAA;AACJ,SAAA;AACF,OAAA;KACD,CAAC,OAAOpQ,KAAK,EAAE;AACd,MAAA,IAAI,CAACqM,YAAY,CAAClL,OAAO,EAAE,OAAA;AAE3B,MAAA,IAAI,CAACoL,KAAK,CAAC+D,QAAQ,CAACtQ,KAAK,CAAC,EAAE;AAC1B5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC,CAAA;AAC9C,OAAA;AACF,KAAA;GACD,CAAA;EAED,MAAMoQ,aAAa,GAAGA,MAAM;AAC1B;AACA9D,IAAAA,iBAAiB,CAACnL,OAAO,CAACqO,MAAM,CAAC,oBAAoB,CAAC,CAAA;AACtD9C,IAAAA,iBAAiB,CAACvL,OAAO,CAACqO,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAEtDlD,iBAAiB,CAACnL,OAAO,GAAGoL,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAA;IACtDC,iBAAiB,CAACvL,OAAO,GAAGoL,KAAK,CAACC,WAAW,CAACC,MAAM,EAAE,CAAA;;AAEtD;IACAZ,kBAAkB,CAACtO,SAAS,CAAC,CAAA;IAC7BwO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACxBE,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACpBG,cAAc,CAACjL,OAAO,GAAG,KAAK,CAAA;AAC9ByL,IAAAA,UAAU,EAAE,CAAA;GACb,CAAA;;AAED;AACA+D,EAAAA,WAAW,CAACJ,kBAAkB,EAAE3E,eAAe,CAAC,CAAA;;AAEhD;AACAxB,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,OAAO,MAAM;MACXiC,YAAY,CAAClL,OAAO,GAAG,KAAK,CAAA;AAC5BmL,MAAAA,iBAAiB,CAACnL,OAAO,CAACqO,MAAM,EAAE,CAAA;AAClC9C,MAAAA,iBAAiB,CAACvL,OAAO,CAACqO,MAAM,EAAE,CAAA;KACnC,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMoB,cAAc,gBAClBxR,IAAA,CAAA,KAAA,EAAA;IAAAL,QAAA,EAAA,cACEG,GAAA,CAAC2R,QAAQ,EAAA;AACPC,MAAAA,IAAI,EAAE;AACJjN,QAAAA,KAAK,EAAEgJ,cAAc;AACrBkE,QAAAA,OAAO,EAAEtD,eAAAA;OACT;MACFuD,OAAO,EAAE,CAAC,OAAO,CAAE;AAAAjS,MAAAA,QAAA,eAEnBG,GAAA,CAAA,GAAA,EAAA;AAAG6R,QAAAA,OAAO,EAAGnW,CAAC,IAAKA,CAAC,CAACqW,cAAc,EAAG;AAAAlS,QAAAA,QAAA,eACpCG,GAAA,CAAA,GAAA,EAAA;AAAGK,UAAAA,SAAS,EAAC,+DAAA;SAAmE,CAAA;OAC/E,CAAA;KACK,CAAC,eACXL,GAAA,CAAA,OAAA,EAAA;AACEgS,MAAAA,GAAG,EAAEhF,QAAS;AACd5E,MAAAA,IAAI,EAAC,MAAM;AACXqB,MAAAA,QAAQ,EAAEyG,aAAc;AACxB7P,MAAAA,SAAS,EAAC,QAAQ;AAClB4R,MAAAA,MAAM,EAAE5F,eAAAA;AAAgB,KACzB,CAAC,eACFrM,GAAA,CAACkS,IAAI,EAAA;AACHC,MAAAA,QAAQ,EAAE3F,UAAW;MACrB4F,SAAS,eAAEpS,GAAA,CAACqS,eAAe,EAAA;AAACnJ,QAAAA,KAAK,EAAE;AAAEoJ,UAAAA,QAAQ,EAAE,EAAA;SAAK;QAACC,IAAI,EAAA,IAAA;AAAA,OAAE,CAAE;AAC7DC,MAAAA,GAAG,EACD5F,aAAa,KAAK7M,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,0BAAA;OAA4B,CAAC,GAAAvB,EAAAA,CAAAA,MAAA,CACjEiQ,aAAa,OAAAjQ,MAAA,CAAImQ,cAAc,EAAA,GAAA,CAAA,GAClCF,aACL;AACD6F,MAAAA,IAAI,EAAC,OAAO;MACZC,UAAU,EAAA,IAAA;AAAA,KACX,CAAC,CAAA;AAAA,GACC,CACN,CAAA;EAED,OAAO,CAAChB,cAAc,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,mBAAe3F,UAAU;;AChVzB,MAAM4G,mBAAmB,GAAG,YAOjB;EAAA,IAPkB;IAC3BC,UAAU;IACVC,SAAS;AACTC,IAAAA,YAAY,GAAG,sBAAsB;AACrCzN,IAAAA,UAAU,GAAG,sBAAsB;AACnCD,IAAAA,MAAM,GAAG,uBAAuB;AAChC2N,IAAAA,GAAAA;AACF,GAAC,GAAA3U,SAAA,CAAAxB,MAAA,GAAAwB,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AACJ,EAAA,MAAM2B,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;AAAEkN,IAAAA,KAAK,EAAEqH,SAAAA;AAAU,GAAC,GAAGhM,GAAG,CAACC,MAAM,EAAE,CAAA;;AAEzC;AACA,EAAA,MAAMgM,gBAAgB,GAAG,OAAOH,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAAClN,QAAQ,CAAC,GAAG,CAAC,GACnF7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAE4U,YAAAA;GAAc,CAAC,GACxCA,YAAY,CAAA;AAChB,EAAA,MAAMI,eAAe,GAAG,OAAO7N,UAAU,KAAK,QAAQ,IAAIA,UAAU,CAACO,QAAQ,CAAC,GAAG,CAAC,GAC9E7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAEmH,UAAAA;GAAY,CAAC,GACtCA,UAAU,CAAA;AACd,EAAA,MAAM8N,WAAW,GAAG,OAAO/N,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACQ,QAAQ,CAAC,GAAG,CAAC,GAClE7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,IAAAA,EAAE,EAAEkH,MAAAA;GAAQ,CAAC,GAClCA,MAAM,CAAA;AAEV,EAAA,MAAMgO,QAAQ,GAAGxS,WAAW,CAAEyS,MAAM,IAAK;IACvC,IAAI;MACFL,SAAS,CAACM,OAAO,CAAC;AAChBC,QAAAA,IAAI,eAAEvT,GAAA,CAACwT,uBAAuB,IAAE,CAAC;AACjC7T,QAAAA,KAAK,EAAAhD,EAAAA,CAAAA,MAAA,CAAKsW,gBAAgB,OAAAtW,MAAA,CAAI0W,MAAM,KAAK,UAAU,GAAGtT,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,wBAAA;AAAyB,SAAC,CAAC,GAAG6B,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,uBAAA;AAAwB,SAAC,CAAC,EAAG,GAAA,CAAA;AACnKmH,QAAAA,UAAU,EAAE6N,eAAe;AAC3B9N,QAAAA,MAAM,EAAE+N,WAAW;QACnBrM,IAAI,EAAEA,MAAM;AACV,UAAA,IAAIuM,MAAM,KAAK,UAAU,IAAIT,UAAU,EAAE;AACvCA,YAAAA,UAAU,EAAE,CAAA;AACd,WAAC,MAAM,IAAIS,MAAM,KAAK,SAAS,IAAIR,SAAS,EAAE;AAC5CA,YAAAA,SAAS,EAAE,CAAA;AACb,WAAA;;AAEA;AACA,UAAA,IAAI,OAAOE,GAAG,KAAK,UAAU,EAAE;AAC7BA,YAAAA,GAAG,EAAE,CAAA;AACP,WAAA;AACF,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAC,OAAOjS,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAAnE,EAAAA,CAAAA,MAAA,CAAI0W,MAAM,CAACI,WAAW,EAAE,EAAY3S,UAAAA,CAAAA,EAAAA,KAAK,CAAC,CAAA;AACzD,KAAA;AACF,GAAC,EAAE,CAACkS,SAAS,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,WAAW,EAAEP,UAAU,EAAEC,SAAS,EAAE9S,IAAI,CAAC,CAAC,CAAA;AAE5F,EAAA,MAAM2T,YAAY,GAAG9S,WAAW,CAAC,MAAM,CACrC;AACE5D,IAAAA,GAAG,EAAE,UAAU;AACfoM,IAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,iBAAA;KAAmB,CAAA;AACrD,GAAC,EACD;AACElB,IAAAA,GAAG,EAAE,SAAS;AACdoM,IAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,gBAAA;KAAkB,CAAA;AACpD,GAAC,CACF,EAAE,CAAC6B,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,MAAMwO,eAAe,GAAG3N,WAAW,CAAC7C,IAAA,IAAa;IAAA,IAAZ;AAAEf,MAAAA,GAAAA;AAAI,KAAC,GAAAe,IAAA,CAAA;IAC1CqV,QAAQ,CAACpW,GAAG,CAAC,CAAA;AACf,GAAC,EAAE,CAACoW,QAAQ,CAAC,CAAC,CAAA;EAEd,OAAO;IACLpH,SAAS,EAAE0H,YAAY,EAAE;AACzBnF,IAAAA,eAAAA;GACD,CAAA;AACH,CAAC,CAAA;AAED,4BAAeoE,mBAAmB;;ACtElC,MAAMgB,aAAa,GAAGA,MAAM;EAC1B,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGnT,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEjD,EAAA,MAAMoT,WAAW,GAAGlT,WAAW,CAAC,YAAiB;AAAA,IAAA,IAAhBmT,KAAK,GAAA3V,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG,CAAA;IAC1C,IAAIwV,SAAS,EAAE,OAAO;;AAEtB;IACAC,YAAY,CAAC,IAAI,CAAC,CAAA;;AAElB;AACArE,IAAAA,QAAQ,CAAClJ,IAAI,CAAC4C,KAAK,CAAC8K,eAAe,GAAG,SAAS,CAAA;AAC/CxE,IAAAA,QAAQ,CAAClJ,IAAI,CAAC4C,KAAK,CAAC+K,UAAU,GAAG,uBAAuB,CAAA;IACxDzE,QAAQ,CAAClJ,IAAI,CAAC4N,YAAY,CAAA;;AAE1B;AACA,IAAA,MAAMC,KAAK,GAAGhD,UAAU,CAAC,MAAM;AAC7BlW,MAAAA,MAAM,CAACsW,QAAQ,CAACC,MAAM,EAAE,CAAA;KACzB,EAAEuC,KAAK,CAAC,CAAA;;AAET;AACA,IAAA,OAAO,MAAMK,YAAY,CAACD,KAAK,CAAC,CAAA;AAClC,GAAC,EAAE,CAACP,SAAS,CAAC,CAAC,CAAA;EAEf,MAAMS,aAAa,GAAGA,MAAM;AAC1B,IAAA,IAAI,CAACT,SAAS,EAAE,OAAO,IAAI,CAAA;AAE3B,IAAA,oBACE1T,IAAA,CAAA,KAAA,EAAA;AAAKgJ,MAAAA,KAAK,EAAE;AACVoL,QAAAA,QAAQ,EAAE,OAAO;AACjBC,QAAAA,GAAG,EAAE,CAAC;AACNC,QAAAA,IAAI,EAAE,CAAC;AACPC,QAAAA,KAAK,EAAE,CAAC;AACRC,QAAAA,MAAM,EAAE,CAAC;AACTV,QAAAA,eAAe,EAAE,SAAS;AAC1BtE,QAAAA,OAAO,EAAE,MAAM;AACfiF,QAAAA,aAAa,EAAE,QAAQ;AACvBC,QAAAA,UAAU,EAAE,QAAQ;AACpBC,QAAAA,cAAc,EAAE,QAAQ;AACxBC,QAAAA,MAAM,EAAE,MAAM;AACdC,QAAAA,KAAK,EAAE,OAAA;OACP;MAAAlV,QAAA,EAAA,cACAG,GAAA,CAACkS,IAAI,EAAA;AAACO,QAAAA,IAAI,EAAC,OAAA;OAAS,CAAC,eACrBzS,GAAA,CAAA,KAAA,EAAA;AAAKkJ,QAAAA,KAAK,EAAE;AAAEzC,UAAAA,SAAS,EAAE,EAAE;AAAE6L,UAAAA,QAAQ,EAAE,EAAA;SAAK;AAAAzS,QAAAA,QAAA,EAAC,iCAAA;OAExC,CAAC,eACNG,GAAA,CAAA,KAAA,EAAA;AAAKkJ,QAAAA,KAAK,EAAE;AAAEzC,UAAAA,SAAS,EAAE,EAAE;AAAE6L,UAAAA,QAAQ,EAAE,EAAE;AAAEyC,UAAAA,KAAK,EAAE,MAAA;SAAS;AAAAlV,QAAAA,QAAA,EAAC,2BAAA;AAE5D,OAAK,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;GAET,CAAA;EAED,OAAO;IAAEiU,WAAW;AAAEO,IAAAA,aAAAA;GAAe,CAAA;AACvC,CAAC,CAAA;AAED,sBAAeV,aAAa;;ACvD5B,MAAMqB,iBAAiB,GAAIC,KAAK,IAAK;AACnC,EAAA,MAAMC,MAAM,GAAG;AACb,IAAA,CAAC,EAAE,YAAY;AACf,IAAA,CAAC,EAAE,MAAM;AACT,IAAA,CAAC,EAAE,SAAS;AACZ,IAAA,CAAC,EAAE,QAAA;GACJ,CAAA;EACD,OAAOA,MAAM,CAACD,KAAK,CAAC,eAAAtY,MAAA,CAAesY,KAAK,EAAG,GAAA,CAAA,CAAA;AAC7C,CAAC,CAAA;;AAED;AACA,MAAME,iBAAiB,GAAGA,MAAM;AAC9B,EAAA,MAAMC,OAAO,GAAGA,MAAM,EAAE,CAAA;EACxB,OAAO;AACLja,IAAAA,GAAG,EAAEia,OAAO;AACZC,IAAAA,UAAU,EAAED,OAAO;IACnBE,WAAW,EAAEA,OAAO;AAClB5R,MAAAA,KAAK,EAAE,CAAC;AACR6R,MAAAA,MAAM,EAAE,CAAC;AACTC,MAAAA,QAAQ,EAAE,CAAC;AACXC,MAAAA,IAAI,EAAE,CAAC;AACPC,MAAAA,aAAa,EAAE,IAAA;AACjB,KAAC,CAAC;AACFC,IAAAA,SAAS,EAAEP,OAAO;AAClBQ,IAAAA,IAAI,EAAE,EAAA;GACP,CAAA;AACH,CAAC,CAAA;;AAED;AACA,MAAMC,kBAAkB,GAAG,YAAuB;AAAA,EAAA,IAAtBC,YAAY,GAAA1X,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAC3C,MAAMwX,IAAI,GAAG,EAAE,CAAA;EACf,MAAMG,OAAO,GAAG,IAAI,CAAA;;AAEpB;EACA,MAAMC,aAAa,GAAG3Y,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,CAAA;AAE5D,EAAA,MAAMpC,GAAG,GAAG,UAAC8a,KAAK,EAAE3X,OAAO,EAAgB;AAAA,IAAA,IAAd+C,IAAI,GAAAjD,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;IACpC,MAAM8X,SAAS,GAAG,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE,CAAA;AAC1C,IAAA,MAAMC,QAAQ,GAAG;MACfH,SAAS;MACTD,KAAK;MACL3X,OAAO;MACP+C,IAAI;MACJiV,gBAAgB,EAAE,IAAIH,IAAI,EAAE,CAACI,cAAc,CAAC,OAAO,EAAE;AACnDC,QAAAA,IAAI,EAAE,SAAS;AACfC,QAAAA,KAAK,EAAE,SAAS;AAChBC,QAAAA,GAAG,EAAE,SAAS;AACdC,QAAAA,IAAI,EAAE,SAAS;AACfC,QAAAA,MAAM,EAAE,SAAS;AACjBC,QAAAA,MAAM,EAAE,SAAS;AACjBC,QAAAA,MAAM,EAAE,KAAA;OACT,CAAA;KACF,CAAA;AAEDlB,IAAAA,IAAI,CAAChR,IAAI,CAACyR,QAAQ,CAAC,CAAA;IACnB,IAAIT,IAAI,CAAChZ,MAAM,GAAGmZ,OAAO,EAAEH,IAAI,CAACmB,KAAK,EAAE,CAAA;;AAEvC;AACA,IAAA,IAAIf,aAAa,EAAE;AACjB,MAAA,MAAMgB,cAAc,GAAA,GAAA,CAAAra,MAAA,CAAO0Z,QAAQ,CAACC,gBAAgB,EAAA3Z,iBAAAA,CAAAA,CAAAA,MAAA,CAAkBsZ,KAAK,EAAA,IAAA,CAAA,CAAAtZ,MAAA,CAAK2B,OAAO,CAAE,CAAA;AACzF,MAAA,MAAM2Y,WAAW,GAAG,CAACD,cAAc,CAAC,CAAA;AACpC,MAAA,IAAI5a,MAAM,CAACC,IAAI,CAACgF,IAAI,CAAC,CAACzE,MAAM,GAAG,CAAC,EAAEqa,WAAW,CAACrS,IAAI,CAACvD,IAAI,CAAC,CAAA;AAExD,MAAA,QAAQ4U,KAAK;AACX,QAAA,KAAK,OAAO;AAAE/a,UAAAA,OAAO,CAAC4F,KAAK,CAAC,GAAGmW,WAAW,CAAC,CAAA;AAAE,UAAA,MAAA;AAC7C,QAAA,KAAK,MAAM;AAAE/b,UAAAA,OAAO,CAACwT,IAAI,CAAC,GAAGuI,WAAW,CAAC,CAAA;AAAE,UAAA,MAAA;AAC3C,QAAA,KAAK,MAAM;AAAE/b,UAAAA,OAAO,CAACua,IAAI,CAAC,GAAGwB,WAAW,CAAC,CAAA;AAAE,UAAA,MAAA;AAC3C,QAAA;AAAS/b,UAAAA,OAAO,CAACC,GAAG,CAAC,GAAG8b,WAAW,CAAC,CAAA;AACtC,OAAA;AACF,KAAA;AAEA,IAAA,OAAOZ,QAAQ,CAAA;GAChB,CAAA;AAED,EAAA,MAAMhB,UAAU,GAAG,YAAkC;AAAA,IAAA,IAAjC6B,cAAc,GAAA9Y,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,WAAW,CAAA;AAC9C,IAAA,IAAIwX,IAAI,CAAChZ,MAAM,KAAK,CAAC,EAAE;AACrBzB,MAAAA,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE;AAAE+b,QAAAA,cAAAA;AAAe,OAAC,CAAC,CAAA;AAC1C,MAAA,OAAA;AACF,KAAA;IAEA,MAAMC,OAAO,GAAGvB,IAAI,CAAC7T,GAAG,CAACqV,KAAK,IAAA,GAAA,CAAAza,MAAA,CACxBya,KAAK,CAACd,gBAAgB,EAAA3Z,KAAAA,CAAAA,CAAAA,MAAA,CAAMya,KAAK,CAACnB,KAAK,EAAAtZ,IAAAA,CAAAA,CAAAA,MAAA,CAAKya,KAAK,CAAC9Y,OAAO,EAAA3B,kBAAAA,CAAAA,CAAAA,MAAA,CAASwE,IAAI,CAACkW,SAAS,CAACD,KAAK,CAAC/V,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3G,CAAC,CAACiW,IAAI,CAAC,IAAI,GAAG,GAAG,CAACC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;IAEpC,MAAMrI,IAAI,GAAG,IAAIC,IAAI,CAAC,CAACgI,OAAO,CAAC,EAAE;AAAE/O,MAAAA,IAAI,EAAE,0BAAA;AAA2B,KAAC,CAAC,CAAA;AACtE,IAAA,MAAMoP,OAAO,GAAGnI,GAAG,CAACC,eAAe,CAACJ,IAAI,CAAC,CAAA;IAEzC,IAAIuI,QAAQ,GAAG,SAAS,CAAA;IACxB,IAAIC,QAAQ,GAAG,SAAS,CAAA;IAExB,IAAI;AACF,MAAA,IAAI5B,YAAY,EAAE;AAChB,QAAA,MAAM6B,MAAM,GAAG,IAAItI,GAAG,CAACyG,YAAY,CAACvX,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3DkZ,QAAQ,GAAGE,MAAM,CAACF,QAAQ,CAAClZ,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC9CmZ,QAAAA,QAAQ,GAAGC,MAAM,CAACD,QAAQ,CACvBnZ,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IACnB,MAAM,CAAA;AACb,OAAA;KACD,CAAC,OAAOuC,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAACwT,IAAI,CAAC,oBAAoB,EAAE5N,KAAK,CAAC,CAAA;AAC3C,KAAA;IAEA,MAAM8W,YAAY,GAAG,IAAIzB,IAAI,EAAE,CAACI,cAAc,CAAC,OAAO,EAAE;AACtDC,MAAAA,IAAI,EAAE,SAAS;AAAEC,MAAAA,KAAK,EAAE,SAAS;AAAEC,MAAAA,GAAG,EAAE,SAAS;AACjDC,MAAAA,IAAI,EAAE,SAAS;AAAEC,MAAAA,MAAM,EAAE,SAAS;AAAEC,MAAAA,MAAM,EAAE,SAAS;AAAEC,MAAAA,MAAM,EAAE,KAAA;AACjE,KAAC,CAAC,CAACvY,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAE3B,IAAA,MAAMsZ,QAAQ,GAAAlb,EAAAA,CAAAA,MAAA,CAAMua,cAAc,OAAAva,MAAA,CAAI8a,QAAQ,EAAA,GAAA,CAAA,CAAA9a,MAAA,CAAI+a,QAAQ,OAAA/a,MAAA,CAAIib,YAAY,EAAM,MAAA,CAAA,CAAA;AAEhF,IAAA,MAAME,CAAC,GAAGtI,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;IACrCqI,CAAC,CAACnI,IAAI,GAAG6H,OAAO,CAAA;IAChBM,CAAC,CAAClI,QAAQ,GAAGiI,QAAQ,CAAA;AACrBrI,IAAAA,QAAQ,CAAClJ,IAAI,CAACuJ,WAAW,CAACiI,CAAC,CAAC,CAAA;IAC5BA,CAAC,CAAChI,KAAK,EAAE,CAAA;AACTN,IAAAA,QAAQ,CAAClJ,IAAI,CAAC0J,WAAW,CAAC8H,CAAC,CAAC,CAAA;AAC5BzI,IAAAA,GAAG,CAACY,eAAe,CAACuH,OAAO,CAAC,CAAA;AAE5Brc,IAAAA,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE;MAAE4c,KAAK,EAAEnC,IAAI,CAAChZ,MAAM;AAAEib,MAAAA,QAAAA;AAAS,KAAC,CAAC,CAAA;GACzD,CAAA;EAED,MAAMvC,WAAW,GAAGA,MAAA;AAAA,IAAA,IAAA0C,KAAA,CAAA;IAAA,OAAO;MACzBtU,KAAK,EAAEkS,IAAI,CAAChZ,MAAM;AAClB2Y,MAAAA,MAAM,EAAEK,IAAI,CAAC1T,MAAM,CAAC+V,CAAC,IAAIA,CAAC,CAAChC,KAAK,KAAK,OAAO,CAAC,CAACrZ,MAAM;AACpD4Y,MAAAA,QAAQ,EAAEI,IAAI,CAAC1T,MAAM,CAAC+V,CAAC,IAAIA,CAAC,CAAChC,KAAK,KAAK,MAAM,CAAC,CAACrZ,MAAM;AACrD6Y,MAAAA,IAAI,EAAEG,IAAI,CAAC1T,MAAM,CAAC+V,CAAC,IAAIA,CAAC,CAAChC,KAAK,KAAK,MAAM,CAAC,CAACrZ,MAAM;AACjD8Y,MAAAA,aAAa,EAAAsC,CAAAA,KAAA,GAAEpC,IAAI,CAACA,IAAI,CAAChZ,MAAM,GAAG,CAAC,CAAC,MAAA,IAAA,IAAAob,KAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAArBA,KAAA,CAAuB1B,gBAAAA;KACvC,CAAA;GAAC,CAAA;EAEF,MAAMX,SAAS,GAAGA,MAAM;IACtBC,IAAI,CAAChZ,MAAM,GAAG,CAAC,CAAA;AACfzB,IAAAA,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;GACrB,CAAA;EAED,OAAO;IAAEA,GAAG;IAAEka,UAAU;IAAEC,WAAW;IAAEK,SAAS;AAAEC,IAAAA,IAAAA;GAAM,CAAA;AAC1D,CAAC,CAAA;;AAED;AACA,MAAMsC,YAAY,GAAG,UAACC,WAAW,EAAEC,UAAU,EAAEC,MAAM,EAAEC,MAAM,EAAqB;AAAA,EAAA,IAAnBC,OAAO,GAAAna,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAC3E,EAAA,MAAMoa,iBAAiB,GAAGvL,MAAM,CAAC,IAAI,CAAC,CAAA;EACtC,MAAMwL,oBAAoB,GAAGxL,MAAM,CAACkJ,IAAI,CAACuC,GAAG,EAAE,CAAC,CAAA;AAC/C,EAAA,MAAMvL,YAAY,GAAGF,MAAM,CAAC,IAAI,CAAC,CAAA;EAEjC,MAAM0L,SAAS,GAAG1L,MAAM,CAAC;IACvB2L,QAAQ,EAAE,CAAAP,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEO,QAAQ,KAAI,KAAK;IACnCta,OAAO,EAAE,CAAA+Z,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAE/Z,OAAO,KAAI;AAAE8J,MAAAA,IAAI,EAAE,MAAA;AAAO,KAAA;AAC7C,GAAC,CAAC,CAAA;EAEF,MAAMyQ,QAAQ,GAAG5L,MAAM,CAAC;IACtBkL,WAAW;IACXC,UAAU;AACVG,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEFrN,EAAAA,SAAS,CAAC,MAAM;IACdyN,SAAS,CAAC1W,OAAO,GAAG;MAClB2W,QAAQ,EAAE,CAAAP,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEO,QAAQ,KAAI,KAAK;MACnCta,OAAO,EAAE,CAAA+Z,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAE/Z,OAAO,KAAI;AAAE8J,QAAAA,IAAI,EAAE,MAAA;AAAO,OAAA;KAC5C,CAAA;AACH,GAAC,EAAE,CAACiQ,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEO,QAAQ,EAAEP,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAE/Z,OAAO,CAAC,CAAC,CAAA;AAEvC4M,EAAAA,SAAS,CAAC,MAAM;IACd2N,QAAQ,CAAC5W,OAAO,GAAG;MACjBkW,WAAW;MACXC,UAAU;AACVG,MAAAA,OAAAA;KACD,CAAA;GACF,EAAE,CAACJ,WAAW,EAAEC,UAAU,EAAEG,OAAO,CAAC,CAAC,CAAA;AAEtCrN,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,OAAO,MAAM;MACXiC,YAAY,CAAClL,OAAO,GAAG,KAAK,CAAA;MAC5B,IAAIuW,iBAAiB,CAACvW,OAAO,EAAE;AAC7B6W,QAAAA,aAAa,CAACN,iBAAiB,CAACvW,OAAO,CAAC,CAAA;AAC1C,OAAA;KACD,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAM8W,aAAa,GAAGnY,WAAW,CAAC,MAAM;IACtC,IAAI4X,iBAAiB,CAACvW,OAAO,EAAE;AAC7B6W,MAAAA,aAAa,CAACN,iBAAiB,CAACvW,OAAO,CAAC,CAAA;MACxCuW,iBAAiB,CAACvW,OAAO,GAAG,IAAI,CAAA;AAChC,MAAA,IAAI4W,QAAQ,CAAC5W,OAAO,CAACsW,OAAO,EAAE;AAC5BD,QAAAA,MAAM,CAACnd,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAC9B,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAACmd,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,MAAMU,cAAc,GAAGpY,WAAW,CAAC,MAAM;AACvCmY,IAAAA,aAAa,EAAE,CAAA;AAEf,IAAA,MAAME,YAAY,GAAGJ,QAAQ,CAAC5W,OAAO,CAAA;AACrC,IAAA,MAAMiX,aAAa,GAAGP,SAAS,CAAC1W,OAAO,CAAA;AAEvC,IAAA,IAAI,CAACgX,YAAY,CAACV,OAAO,EAAE,OAAA;AAE3BD,IAAAA,MAAM,CAACnd,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE;MAAEyd,QAAQ,EAAEM,aAAa,CAACN,QAAAA;AAAS,KAAC,CAAC,CAAA;AAElEJ,IAAAA,iBAAiB,CAACvW,OAAO,GAAGkX,WAAW,CAAC,MAAM;AAC5C;MACA,IAAI,CAAChM,YAAY,CAAClL,OAAO,IAAI,CAACuW,iBAAiB,CAACvW,OAAO,EAAE;AACvD,QAAA,OAAA;AACF,OAAA;;AAEA;AACA,MAAA,MAAMmX,WAAW,GAAGP,QAAQ,CAAC5W,OAAO,CAAA;AACpC,MAAA,MAAMoX,YAAY,GAAGV,SAAS,CAAC1W,OAAO,CAAA;MAEtC,IAAImX,WAAW,CAACjB,WAAW,IAAIiB,WAAW,CAAChB,UAAU,KAAK,CAAC,EAAE;QAC3D,IAAI;UACFgB,WAAW,CAACjB,WAAW,CAAChX,IAAI,CAACkW,SAAS,CAACgC,YAAY,CAAC/a,OAAO,CAAC,CAAC,CAAA;AAC7Dma,UAAAA,oBAAoB,CAACxW,OAAO,GAAGkU,IAAI,CAACuC,GAAG,EAAE,CAAA;AACzCJ,UAAAA,MAAM,CAACnd,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;YAC3Bme,sBAAsB,EAAEnD,IAAI,CAACuC,GAAG,EAAE,GAAGD,oBAAoB,CAACxW,OAAO;AACjEmW,YAAAA,UAAU,EAAEpD,iBAAiB,CAACoE,WAAW,CAAChB,UAAU,CAAA;AACtD,WAAC,CAAC,CAAA;SACH,CAAC,OAAOtX,KAAK,EAAE;AACdwX,UAAAA,MAAM,CAACnd,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE;YAC5B2F,KAAK,EAAEA,KAAK,CAACxC,OAAO;AACpB8Z,YAAAA,UAAU,EAAEpD,iBAAiB,CAACoE,WAAW,CAAChB,UAAU,CAAA;AACtD,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAA;AACF,KAAC,EAAEc,aAAa,CAACN,QAAQ,CAAC,CAAA;AAC5B,GAAC,EAAE,CAACG,aAAa,EAAET,MAAM,CAAC,CAAC,CAAA;;AAE3B;AACApN,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAM+N,YAAY,GAAGJ,QAAQ,CAAC5W,OAAO,CAAA;IAErC,IAAIgX,YAAY,CAACV,OAAO,EAAE;AACxB,MAAA,IAAIU,YAAY,CAACb,UAAU,KAAK,CAAC,EAAE;AACjCY,QAAAA,cAAc,EAAE,CAAA;AAClB,OAAC,MAAM;AACLD,QAAAA,aAAa,EAAE,CAAA;AACjB,OAAA;AACF,KAAC,MAAM;AACLA,MAAAA,aAAa,EAAE,CAAA;AACjB,KAAA;AAEA,IAAA,OAAO,MAAM;MACX,IAAIP,iBAAiB,CAACvW,OAAO,EAAE;AAC7B6W,QAAAA,aAAa,CAACN,iBAAiB,CAACvW,OAAO,CAAC,CAAA;QACxCuW,iBAAiB,CAACvW,OAAO,GAAG,IAAI,CAAA;AAClC,OAAA;KACD,CAAA;GACF,EAAE,CAACmW,UAAU,EAAEG,OAAO,EAAES,cAAc,EAAED,aAAa,CAAC,CAAC,CAAA;AAExD,EAAA,MAAMQ,aAAa,GAAGzU,OAAO,CAAC,MAAM;IAClC,IAAI,CAACyT,OAAO,EAAE;MACZ,OAAO;AACLS,QAAAA,cAAc,EAAEA,MAAM,EAAE;AACxBD,QAAAA,aAAa,EAAEA,MAAM,EAAE;QACvBS,oBAAoB,EAAEA,MAAM,IAAI;AAChCC,QAAAA,SAAS,EAAE,KAAA;OACZ,CAAA;AACH,KAAA;IAEA,OAAO;MACLT,cAAc;MACdD,aAAa;AACbS,MAAAA,oBAAoB,EAAEA,MAAMf,oBAAoB,CAACxW,OAAO;AACxDwX,MAAAA,SAAS,EAAE,IAAA;KACZ,CAAA;GACF,EAAE,CAAClB,OAAO,EAAES,cAAc,EAAED,aAAa,CAAC,CAAC,CAAA;AAE5C,EAAA,OAAOQ,aAAa,CAAA;AACtB,CAAC,CAAA;AAED,MAAMG,wBAAwB,GAAIrB,MAAM,IAAK;EAC3C,MAAM;IAAEjJ,GAAG;IAAEnF,OAAO,GAAG,EAAE;IAAE0P,SAAS,EAAEC,eAAe,GAAG,KAAK;AAAEC,IAAAA,SAAS,GAAG,IAAA;AAAK,GAAC,GAAGxB,MAAM,CAAA;EAC1F,MAAM,CAACyB,WAAW,EAAEC,cAAc,CAAC,GAAGrZ,QAAQ,CAAC,KAAK,CAAC,CAAA;;AAErD;AACA,EAAA,MAAM4X,MAAM,GAAGxT,OAAO,CAAC,MAAM;AAC3B,IAAA,IAAI+U,SAAS,EAAE;MACb,OAAOhE,kBAAkB,CAACzG,GAAG,CAAC,CAAA;AAChC,KAAA;IACA,OAAO+F,iBAAiB,EAAE,CAAA;AAC5B,GAAC,EAAE,CAAC/F,GAAG,EAAEyK,SAAS,CAAC,CAAC,CAAA;EAEpB,MAAMG,gBAAgB,GAAGlV,OAAO,CAAC,MAAApI,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EAC5BuN,OAAO,CAAA,EAAA,EAAA,EAAA;IACVgQ,MAAM,EAAGhZ,KAAK,IAAK;AAAA,MAAA,IAAAiZ,eAAA,CAAA;AACjB5B,MAAAA,MAAM,CAACnd,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE;QACnCiU,GAAG;AACHgJ,QAAAA,UAAU,EAAEpD,iBAAiB,CAAC,CAAC,CAAC;AAAE;AAClCmF,QAAAA,SAAS,EAAElZ,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEiG,IAAAA;AACpB,OAAC,CAAC,CAAA;MACF6S,cAAc,CAAC,IAAI,CAAC,CAAA;AACpB,MAAA,CAAAG,eAAA,GAAAjQ,OAAO,CAACgQ,MAAM,MAAAC,IAAAA,IAAAA,eAAA,KAAdA,KAAAA,CAAAA,IAAAA,eAAA,CAAAE,IAAA,CAAAnQ,OAAO,EAAUhJ,KAAK,CAAC,CAAA;KACxB;IACDoZ,OAAO,EAAGvZ,KAAK,IAAK;AAAA,MAAA,IAAAwZ,gBAAA,CAAA;AAClBhC,MAAAA,MAAM,CAACnd,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE;QACpCiU,GAAG;QACHtO,KAAK,EAAEA,KAAK,CAACxC,OAAO;QACpBic,SAAS,EAAEzZ,KAAK,CAACsH,IAAI;AACrBgQ,QAAAA,UAAU,EAAEpD,iBAAiB,CAAC,CAAC,CAAC;AAClC,OAAC,CAAC,CAAA;MACF+E,cAAc,CAAC,KAAK,CAAC,CAAA;AACrB,MAAA,CAAAO,gBAAA,GAAArQ,OAAO,CAACoQ,OAAO,MAAAC,IAAAA,IAAAA,gBAAA,KAAfA,KAAAA,CAAAA,IAAAA,gBAAA,CAAAF,IAAA,CAAAnQ,OAAO,EAAWnJ,KAAK,CAAC,CAAA;KACzB;IACD0Z,OAAO,EAAGvZ,KAAK,IAAK;AAAA,MAAA,IAAAwZ,gBAAA,CAAA;AAClBnC,MAAAA,MAAM,CAACnd,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE;QACnCiU,GAAG;QACHlI,IAAI,EAAEjG,KAAK,CAACiG,IAAI;QAChBwT,MAAM,EAAEzZ,KAAK,CAACyZ,MAAM;QACpBC,QAAQ,EAAE1Z,KAAK,CAAC0Z,QAAQ;AACxBvC,QAAAA,UAAU,EAAEpD,iBAAiB,CAAC,CAAC,CAAC;AAClC,OAAC,CAAC,CAAA;MACF+E,cAAc,CAAC,KAAK,CAAC,CAAA;AACrB,MAAA,CAAAU,gBAAA,GAAAxQ,OAAO,CAACuQ,OAAO,MAAAC,IAAAA,IAAAA,gBAAA,KAAfA,KAAAA,CAAAA,IAAAA,gBAAA,CAAAL,IAAA,CAAAnQ,OAAO,EAAWhJ,KAAK,CAAC,CAAA;KACzB;IACD2Z,WAAW,EAAG7C,KAAK,IAAK;AAAA,MAAA,IAAA8C,oBAAA,CAAA;AACtBvC,MAAAA,MAAM,CAACnd,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE;QAC3BiU,GAAG;AACH0L,QAAAA,OAAO,EAAE/C,KAAK;AACdgD,QAAAA,WAAW,EAAE9Q,OAAO,CAAC+Q,cAAc,IAAI,EAAA;AACzC,OAAC,CAAC,CAAA;AACF,MAAA,CAAAH,oBAAA,GAAA5Q,OAAO,CAAC2Q,WAAW,MAAAC,IAAAA,IAAAA,oBAAA,KAAnBA,KAAAA,CAAAA,IAAAA,oBAAA,CAAAT,IAAA,CAAAnQ,OAAO,EAAe8N,KAAK,CAAC,CAAA;AAC9B,KAAA;GACA,CAAA,EAAE,CAAC3I,GAAG,EAAEnF,OAAO,EAAEqO,MAAM,CAAC,CAAC,CAAA;EAE3B,MAAM;IACJ2C,aAAa;IACb7C,UAAU;IACVD,WAAW;IACX+C,OAAO;AACPC,IAAAA,UAAAA;AACF,GAAC,GAAGpa,YAAY,CAACqO,GAAG,EAAE4K,gBAAgB,CAAC,CAAA;AAEvC,EAAA,MAAMoB,gBAAgB,GAAGtW,OAAO,CAAC,MAC/B8U,eAAe,KAAK,IAAI,GAAG,EAAE,GAAGA,eAAe,EAC/C,CAACA,eAAe,CAClB,CAAC,CAAA;AAED,EAAA,MAAMyB,gBAAgB,GAAGvW,OAAO,CAAC,MAC/B8U,eAAe,KAAK,KAAK,EACzB,CAACA,eAAe,CAClB,CAAC,CAAA;AAED,EAAA,MAAMD,SAAS,GAAGzB,YAAY,CAC5BC,WAAW,EACXC,UAAU,EACVgD,gBAAgB,EAChB9C,MAAM,EACN+C,gBACF,CAAC,CAAA;;AAED;AACAnQ,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOjQ,MAAM,KAAK,WAAW,IAAI4e,SAAS,EAAE;AAC9C;MACA,MAAM7c,GAAG,0BAAAL,MAAA,CAA0B2e,IAAI,CAAClM,GAAG,CAAC,CAAE,CAAA;AAC9C;MACAnU,MAAM,CAAC+B,GAAG,CAAC,GAAG,MAAMsb,MAAM,CAACjD,UAAU,EAAE,CAAA;AACzC,KAAA;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,OAAOpa,MAAM,KAAK,WAAW,IAAI4e,SAAS,EAAE;QAC9C,MAAM7c,GAAG,0BAAAL,MAAA,CAA0B2e,IAAI,CAAClM,GAAG,CAAC,CAAE,CAAA;QAC9C,OAAOnU,MAAM,CAAC+B,GAAG,CAAC,CAAA;AACpB,OAAA;KACD,CAAA;GACF,EAAE,CAACoS,GAAG,EAAEyK,SAAS,EAAEvB,MAAM,CAAC,CAAC,CAAA;AAE5B,EAAA,MAAMiD,aAAa,GAAGzW,OAAO,CAAC,OAAO;AACnC3J,IAAAA,GAAG,EAAEA,CAAC8a,KAAK,EAAE3X,OAAO,EAAE+C,IAAI,KAAKiX,MAAM,CAACnd,GAAG,CAAC8a,KAAK,EAAE3X,OAAO,EAAE+C,IAAI,CAAC;AAC/DgU,IAAAA,UAAU,EAAEA,MAAMiD,MAAM,CAACjD,UAAU,EAAE;AACrCC,IAAAA,WAAW,EAAEA,MAAMgD,MAAM,CAAChD,WAAW,EAAE;AACvCK,IAAAA,SAAS,EAAEA,MAAM2C,MAAM,CAAC3C,SAAS,EAAC;AACpC,GAAC,CAAC,EAAE,CAAC2C,MAAM,CAAC,CAAC,CAAA;EAEb,OAAO;IACL2C,aAAa;IACb7C,UAAU;IACVD,WAAW;IACX+C,OAAO;IACPC,UAAU;IACVrB,WAAW;AACX0B,IAAAA,cAAc,EAAExG,iBAAiB,CAACoD,UAAU,CAAC;AAE7C;IACAuB,SAAS;AACT;AACArB,IAAAA,MAAM,EAAEuB,SAAS,GAAG0B,aAAa,GAAG,IAAA;GACrC,CAAA;AACH,CAAC,CAAA;AAED,iCAAe7B,wBAAwB,CAAA;;AAEvC;AACA;;AC3YA;AACA,WAAe;AACb;AACA,EAAA,cAAc,EAAE,IAAI;AACpB,EAAA,cAAc,EAAE,IAAI;AACpB,EAAA,eAAe,EAAE,IAAI;AACrB,EAAA,eAAe,EAAE,IAAI;AAErB;AACA,EAAA,gCAAgC,EAAE,OAAO;AACzC,EAAA,6BAA6B,EAAE,iBAAiB;AAChD,EAAA,gCAAgC,EAAE,gBAAgB;AAElD;AACA,EAAA,cAAc,EAAE,OAAO;AACvB,EAAA,mBAAmB,EAAE,MAAM;AAC3B,EAAA,WAAW,EAAE,SAAS;AACtB,EAAA,YAAY,EAAE,OAAO;AACrB,EAAA,eAAe,EAAE,QAAQ;AACzB,EAAA,eAAe,EAAE,MAAM;AACvB,EAAA,eAAe,EAAE,MAAM;AACvB,EAAA,gBAAgB,EAAE,MAAM;AACxB,EAAA,WAAW,EAAE,SAAS;AACtB,EAAA,eAAe,EAAE,QAAQ;AAEzB;AACA,EAAA,sBAAsB,EAAE,MAAM;AAC9B,EAAA,UAAU,EAAE,KAAK;AACjB,EAAA,WAAW,EAAE,MAAM;AACnB,EAAA,aAAa,EAAE,IAAI;AACnB,EAAA,cAAc,EAAE,KAAK;AACrB,EAAA,kBAAkB,EAAE,IAAI;AACxB,EAAA,aAAa,EAAE,IAAI;AAEnB;AACA,EAAA,uBAAuB,EAAE,MAAM;AAC/B,EAAA,sBAAsB,EAAE,IAAI;AAC5B,EAAA,2BAA2B,EAAE,OAAO;AACpC,EAAA,4BAA4B,EAAE,MAAM;AACpC,EAAA,iCAAiC,EAAE,kBAAkB;AACrD,EAAA,4BAA4B,EAAE,MAAM;AACpC,EAAA,8BAA8B,EAAE,MAAM;AACtC,EAAA,6BAA6B,EAAE,MAAM;AAErC;AACA,EAAA,WAAW,EAAE,KAAK;AAClB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,eAAe,EAAE,OAAO;AACxB,EAAA,eAAe,EAAE,OAAO;AACxB,EAAA,gBAAgB,EAAE,MAAM;AACxB,EAAA,uBAAuB,EAAE,eAAe;AACxC,EAAA,oBAAoB,EAAE,eAAe;AACrC,EAAA,0BAA0B,EAAE,gBAAgB;AAC5C,EAAA,mBAAmB,EAAE,MAAM;AAC3B,EAAA,6BAA6B,EAAE,QAAQ;AACvC,EAAA,kBAAkB,EAAE,MAAM;AAC1B,EAAA,yBAAyB,EAAE,QAAQ;AACnC,EAAA,eAAe,EAAE,QAAQ;AACzB,EAAA,qBAAqB,EAAE,MAAM;AAC7B,EAAA,kBAAkB,EAAE,MAAM;AAC1B,EAAA,eAAe,EAAE,KAAK;AACtB,EAAA,kBAAkB,EAAE,KAAK;AACzB,EAAA,YAAY,EAAE,KAAK;AACnB,EAAA,cAAc,EAAE,KAAK;AACrB,EAAA,iBAAiB,EAAE,MAAM;AAEzB;AACA,EAAA,YAAY,EAAE,MAAM;AACpB,EAAA,kBAAkB,EAAE,MAAM;AAC1B,EAAA,aAAa,EAAE,IAAI;AACnB,EAAA,uBAAuB,EAAE,SAAS;AAClC,EAAA,sBAAsB,EAAE,SAAS;AACjC,EAAA,sBAAsB,EAAE,MAAM;AAC9B,EAAA,mBAAmB,EAAE,MAAM;AAC3B,EAAA,oCAAoC,EAAE,QAAQ;AAC9C,EAAA,gCAAgC,EAAE,QAAQ;AAC1C,EAAA,kBAAkB,EAAE,MAAM;AAE1B;AACA,EAAA,cAAc,EAAE,MAAM;AACtB,EAAA,aAAa,EAAE,IAAI;AACnB,EAAA,mBAAmB,EAAE,IAAI;AACzB,EAAA,oBAAoB,EAAE,IAAI;AAC1B,EAAA,8BAA8B,EAAE,OAAO;AACvC,EAAA,qCAAqC,EAAE,OAAO;AAC9C,EAAA,oBAAoB,EAAE,IAAI;AAC1B,EAAA,0BAA0B,EAAE,MAAM;AAClC,EAAA,2BAA2B,EAAE,IAAI;AACjC,EAAA,mBAAmB,EAAE,MAAM;AAC3B,EAAA,sBAAsB,EAAE,IAAI;AAC5B,EAAA,oBAAoB,EAAE,IAAI;AAC1B,EAAA,oBAAoB,EAAE,IAAI;AAC1B,EAAA,oBAAoB,EAAE,IAAI;AAC1B,EAAA,sBAAsB,EAAE,IAAI;AAC5B,EAAA,qBAAqB,EAAE,gBAAgB;AACvC,EAAA,yBAAyB,EAAE,WAAW;AACtC,EAAA,qBAAqB,EAAE,OAAO;AAC9B,EAAA,iBAAiB,EAAE,KAAK;AACxB,EAAA,qBAAqB,EAAE,MAAM;AAC7B,EAAA,8BAA8B,EAAE,SAAS;AACzC,EAAA,mBAAmB,EAAE,MAAM;AAC3B,EAAA,4BAA4B,EAAE,SAAS;AACvC,EAAA,qBAAqB,EAAE,QAAQ;AAC/B,EAAA,gBAAgB,EAAE,IAAI;AACtB,EAAA,gCAAgC,EAAE,QAAQ;AAC1C,EAAA,oCAAoC,EAAE,OAAO;AAC7C,EAAA,qCAAqC,EAAE,gBAAgB;AAEvD;AACA,EAAA,eAAe,EAAE,OAAO;AACxB,EAAA,qBAAqB,EAAE,KAAK;AAC5B,EAAA,aAAa,EAAE,OAAO;AACtB,EAAA,8BAA8B,EAAE,UAAU;AAC1C,EAAA,yBAAyB,EAAE,MAAM;AACjC,EAAA,2BAA2B,EAAE,MAAM;AACnC,EAAA,uBAAuB,EAAE,IAAI;AAC7B,EAAA,4BAA4B,EAAE,KAAK;AACnC,EAAA,0BAA0B,EAAE,KAAK;AACjC,EAAA,wBAAwB,EAAE,KAAK;AAC/B,EAAA,wBAAwB,EAAE,IAAI;AAC9B,EAAA,0BAA0B,EAAE,MAAM;AAClC,EAAA,gCAAgC,EAAE,WAAW;AAC7C,EAAA,mCAAmC,EAAE,MAAM;AAE3C;AACA,EAAA,uBAAuB,EAAE,MAAM;AAC/B,EAAA,6BAA6B,EAAE,MAAM;AACrC,EAAA,qBAAqB,EAAE,IAAI;AAC3B,EAAA,0BAA0B,EAAE,KAAK;AACjC,EAAA,+BAA+B,EAAE,cAAc;AAC/C,EAAA,0BAA0B,EAAE,QAAQ;AACpC,EAAA,qCAAqC,EAAE,SAAS;AAChD,EAAA,8BAA8B,EAAE,MAAM;AACtC,EAAA,4BAA4B,EAAE,MAAM;AACpC,EAAA,iCAAiC,EAAE,aAAa;AAChD,EAAA,6BAA6B,EAAE,MAAM;AAErC;AACA,EAAA,iBAAiB,EAAE,IAAI;AACvB,EAAA,gBAAgB,EAAE,IAAI;AACtB,EAAA,wBAAwB,EAAE,IAAI;AAC9B,EAAA,uBAAuB,EAAE,IAAI;AAC7B,EAAA,sBAAsB,EAAE,MAAM;AAC9B,EAAA,wBAAwB,EAAE,yBAAyB;AACnD,EAAA,sBAAsB,EAAE,IAAI;AAC5B,EAAA,uBAAuB,EAAE,IAAI;AAE7B;AACA,EAAA,wBAAwB,EAAE,WAAW;AACrC,EAAA,wBAAwB,EAAE,OAAO;AACjC,EAAA,qBAAqB,EAAE,YAAY;AACnC,EAAA,mCAAmC,EAAE,uBAAuB;AAC5D,EAAA,0BAA0B,EAAE,sBAAsB;AAClD,EAAA,mBAAmB,EAAE,MAAM;AAC3B,EAAA,iCAAiC,EAAE,wBAAwB;AAE3D;AACA,EAAA,WAAW,EAAE,IAAI;AACjB,EAAA,wBAAwB,EAAE,OAAA;AAC5B,CAAC;;AC/JD;AACA,WAAe;AACb;AACA,EAAA,cAAc,EAAE,OAAO;AACvB,EAAA,cAAc,EAAE,OAAO;AACvB,EAAA,eAAe,EAAE,QAAQ;AACzB,EAAA,eAAe,EAAE,QAAQ;AAEzB;AACA,EAAA,gCAAgC,EAAE,kBAAkB;AACpD,EAAA,6BAA6B,EAAE,uBAAuB;AACtD,EAAA,gCAAgC,EAAE,wBAAwB;AAE1D;AACA,EAAA,cAAc,EAAE,cAAc;AAC9B,EAAA,mBAAmB,EAAE,cAAc;AACnC,EAAA,WAAW,EAAE,WAAW;AACxB,EAAA,YAAY,EAAE,YAAY;AAC1B,EAAA,eAAe,EAAE,iBAAiB;AAClC,EAAA,eAAe,EAAE,oBAAoB;AACrC,EAAA,eAAe,EAAE,iBAAiB;AAClC,EAAA,gBAAgB,EAAE,kBAAkB;AACpC,EAAA,WAAW,EAAE,WAAW;AACxB,EAAA,eAAe,EAAE,iBAAiB;AAElC;AACA,EAAA,sBAAsB,EAAE,kBAAkB;AAC1C,EAAA,UAAU,EAAE,KAAK;AACjB,EAAA,WAAW,EAAE,MAAM;AACnB,EAAA,aAAa,EAAE,QAAQ;AACvB,EAAA,cAAc,EAAE,SAAS;AACzB,EAAA,kBAAkB,EAAE,aAAa;AACjC,EAAA,aAAa,EAAE,QAAQ;AAEvB;AACA,EAAA,uBAAuB,EAAE,kBAAkB;AAC3C,EAAA,sBAAsB,EAAE,MAAM;AAC9B,EAAA,2BAA2B,EAAE,YAAY;AACzC,EAAA,4BAA4B,EAAE,SAAS;AACvC,EAAA,iCAAiC,EAAE,mDAAmD;AACtF,EAAA,4BAA4B,EAAE,aAAa;AAC3C,EAAA,8BAA8B,EAAE,eAAe;AAC/C,EAAA,6BAA6B,EAAE,SAAS;AAExC;AACA,EAAA,WAAW,EAAE,KAAK;AAClB,EAAA,kBAAkB,EAAE,QAAQ;AAC5B,EAAA,eAAe,EAAE,YAAY;AAC7B,EAAA,eAAe,EAAE,YAAY;AAC7B,EAAA,gBAAgB,EAAE,aAAa;AAC/B,EAAA,uBAAuB,EAAE,wBAAwB;AACjD,EAAA,oBAAoB,EAAE,eAAe;AACrC,EAAA,0BAA0B,EAAE,sBAAsB;AAClD,EAAA,mBAAmB,EAAE,gBAAgB;AACrC,EAAA,6BAA6B,EAAE,4BAA4B;AAC3D,EAAA,kBAAkB,EAAE,eAAe;AACnC,EAAA,yBAAyB,EAAE,sBAAsB;AACjD,EAAA,eAAe,EAAE,YAAY;AAC7B,EAAA,qBAAqB,EAAE,kBAAkB;AACzC,EAAA,kBAAkB,EAAE,eAAe;AACnC,EAAA,eAAe,EAAE,WAAW;AAC5B,EAAA,kBAAkB,EAAE,cAAc;AAClC,EAAA,YAAY,EAAE,QAAQ;AACtB,EAAA,cAAc,EAAE,UAAU;AAC1B,EAAA,iBAAiB,EAAE,SAAS;AAE5B;AACA,EAAA,YAAY,EAAE,MAAM;AACpB,EAAA,kBAAkB,EAAE,gBAAgB;AACpC,EAAA,aAAa,EAAE,QAAQ;AACvB,EAAA,sBAAsB,EAAE,kBAAkB;AAC1C,EAAA,uBAAuB,EAAE,eAAe;AACxC,EAAA,sBAAsB,EAAE,kBAAkB;AAC1C,EAAA,mBAAmB,EAAE,eAAe;AACpC,EAAA,oCAAoC,EAAE,mBAAmB;AACzD,EAAA,gCAAgC,EAAE,gBAAgB;AAClD,EAAA,kBAAkB,EAAE,SAAS;AAE7B;AACA,EAAA,cAAc,EAAE,mBAAmB;AACnC,EAAA,aAAa,EAAE,MAAM;AACrB,EAAA,mBAAmB,EAAE,YAAY;AACjC,EAAA,oBAAoB,EAAE,aAAa;AACnC,EAAA,8BAA8B,EAAE,YAAY;AAC5C,EAAA,qCAAqC,EAAE,mBAAmB;AAC1D,EAAA,oBAAoB,EAAE,MAAM;AAC5B,EAAA,0BAA0B,EAAE,aAAa;AACzC,EAAA,2BAA2B,EAAE,aAAa;AAC1C,EAAA,mBAAmB,EAAE,YAAY;AACjC,EAAA,sBAAsB,EAAE,QAAQ;AAChC,EAAA,oBAAoB,EAAE,MAAM;AAC5B,EAAA,oBAAoB,EAAE,MAAM;AAC5B,EAAA,oBAAoB,EAAE,MAAM;AAC5B,EAAA,sBAAsB,EAAE,QAAQ;AAChC,EAAA,qBAAqB,EAAE,+CAA+C;AACtE,EAAA,yBAAyB,EAAE,kCAAkC;AAC7D,EAAA,qBAAqB,EAAE,mBAAmB;AAC1C,EAAA,iBAAiB,EAAE,UAAU;AAC7B,EAAA,qBAAqB,EAAE,eAAe;AACtC,EAAA,8BAA8B,EAAE,wCAAwC;AACxE,EAAA,mBAAmB,EAAE,aAAa;AAClC,EAAA,4BAA4B,EAAE,sCAAsC;AACpE,EAAA,qBAAqB,EAAE,YAAY;AACnC,EAAA,gBAAgB,EAAE,SAAS;AAC3B,EAAA,gCAAgC,EAAE,kBAAkB;AACpD,EAAA,oCAAoC,EAAE,sBAAsB;AAC5D,EAAA,qCAAqC,EAAE,4CAA4C;AAEnF;AACA,EAAA,eAAe,EAAE,kBAAkB;AACnC,EAAA,qBAAqB,EAAE,cAAc;AACrC,EAAA,aAAa,EAAE,aAAa;AAC5B,EAAA,8BAA8B,EAAE,wBAAwB;AACxD,EAAA,yBAAyB,EAAE,cAAc;AACzC,EAAA,2BAA2B,EAAE,YAAY;AACzC,EAAA,uBAAuB,EAAE,QAAQ;AACjC,EAAA,4BAA4B,EAAE,aAAa;AAC3C,EAAA,0BAA0B,EAAE,mBAAmB;AAC/C,EAAA,wBAAwB,EAAE,SAAS;AACnC,EAAA,wBAAwB,EAAE,SAAS;AACnC,EAAA,0BAA0B,EAAE,gBAAgB;AAC5C,EAAA,gCAAgC,EAAE,6BAA6B;AAC/D,EAAA,mCAAmC,EAAE,sBAAsB;AAE3D;AACA,EAAA,uBAAuB,EAAE,sBAAsB;AAC/C,EAAA,6BAA6B,EAAE,iBAAiB;AAChD,EAAA,qBAAqB,EAAE,MAAM;AAC7B,EAAA,0BAA0B,EAAE,cAAc;AAC1C,EAAA,+BAA+B,EAAE,sCAAsC;AACvE,EAAA,0BAA0B,EAAE,cAAc;AAC1C,EAAA,qCAAqC,EAAE,uCAAuC;AAC9E,EAAA,8BAA8B,EAAE,iBAAiB;AACjD,EAAA,4BAA4B,EAAE,eAAe;AAC7C,EAAA,iCAAiC,EAAE,oCAAoC;AACvE,EAAA,6BAA6B,EAAE,gBAAgB;AAE/C;AACA,EAAA,iBAAiB,EAAE,WAAW;AAC9B,EAAA,gBAAgB,EAAE,SAAS;AAC3B,EAAA,wBAAwB,EAAE,WAAW;AACrC,EAAA,uBAAuB,EAAE,SAAS;AAClC,EAAA,sBAAsB,EAAE,uBAAuB;AAC/C,EAAA,wBAAwB,EAAE,6EAA6E;AACvG,EAAA,sBAAsB,EAAE,QAAQ;AAChC,EAAA,uBAAuB,EAAE,SAAS;AAElC;AACA,EAAA,wBAAwB,EAAE,yBAAyB;AACnD,EAAA,wBAAwB,EAAE,uBAAuB;AACjD,EAAA,qBAAqB,EAAE,gDAAgD;AACvE,EAAA,mCAAmC,EAAE,sFAAsF;AAC3H,EAAA,0BAA0B,EAAE,8CAA8C;AAC1E,EAAA,mBAAmB,EAAE,kBAAkB;AACvC,EAAA,iCAAiC,EAAE,oFAAoF;AAEvH;AACA,EAAA,WAAW,EAAE,OAAO;AACpB,EAAA,wBAAwB,EAAE,cAAA;AAC5B,CAAC;;ACzJD,MAAM+B,iBAAiB,GAAG1d,IAAA,IAA8C;EAAA,IAAA2d,qBAAA,EAAAC,oBAAA,CAAA;EAAA,IAA7C;IAAEC,MAAM;IAAEC,UAAU;AAAEC,IAAAA,WAAW,GAAG,EAAC;AAAE,GAAC,GAAA/d,IAAA,CAAA;AACjE,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;;AAEtB;AACA,EAAA,MAAMsd,kBAAkB,GAAG;AACzBlT,IAAAA,IAAI,EAAE;AAAEO,MAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,sBAAA;AAAuB,OAAC,CAAC;AAAEqa,MAAAA,OAAO,EAAE,IAAA;KAAM;AAClFyD,IAAAA,EAAE,EAAE;AAAE5S,MAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,2BAAA;AAA4B,OAAC,CAAC;AAAEqa,MAAAA,OAAO,EAAE,IAAA;KAAM;AACrF0D,IAAAA,OAAO,EAAE;AAAE7S,MAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,4BAAA;AAA6B,OAAC,CAAC;AAAEqa,MAAAA,OAAO,EAAE,IAAA;AAAK,KAAA;GAC3F,CAAA;EAED,MAAM2D,iBAAiB,GAAAxf,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EAClBqf,kBAAkB,CAAA,EAClBD,WAAW,CAAA,EAAA,EAAA,EAAA;AACdG,IAAAA,OAAO,EAAE;AACP7S,MAAAA,KAAK,EAAE2S,kBAAkB,CAACE,OAAO,CAAC7S,KAAK;MACvCmP,OAAO,EAAA,CAAAmD,qBAAA,GAAAC,CAAAA,oBAAA,GAAEG,WAAW,CAACG,OAAO,MAAA,IAAA,IAAAN,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,oBAAA,CAAqBpD,OAAO,cAAAmD,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIK,kBAAkB,CAACE,OAAO,CAAC1D,OAAAA;AACtE,KAAA;GACD,CAAA,CAAA;EAED,oBACErY,IAAA,CAAAC,QAAA,EAAA;AAAAN,IAAAA,QAAA,EACEG,cAAAA,GAAA,CAACmc,UAAU,CAACC,KAAK,EAAA;AACfnG,MAAAA,KAAK,EAAE,CAAE;AACT/M,MAAAA,KAAK,EAAE;AACLwG,QAAAA,OAAO,EAAE,MAAM;AACfmF,QAAAA,cAAc,EAAE,eAAe;AAC/BD,QAAAA,UAAU,EAAE,QAAQ;AACpB1O,QAAAA,YAAY,EAAE,EAAA;OACd;AAAArG,MAAAA,QAAA,EAED+b,MAAAA;KACe,CAAC,EAClBC,UAAU,CAAC9Z,GAAG,CAAC,CAACsa,KAAK,EAAErX,KAAK,kBAC3B9E,IAAA,CAAA,KAAA,EAAA;MAAAL,QAAA,EAAA,CACGqc,iBAAiB,CAACrT,IAAI,CAAC0P,OAAO,iBAC7BvY,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAE8S,iBAAiB,CAACrT,IAAI,CAACO,KAAM;AACpCP,QAAAA,IAAI,EAAE,CAAC+S,MAAM,EAAE5W,KAAK,EAAE,cAAc,CAAE;QAAAnF,QAAA,eAEtCG,GAAA,CAACsJ,KAAK,EAAA;UAACb,QAAQ,EAAA,IAAA;SAAE,CAAA;AAAC,OACT,CACZ,EAEAyT,iBAAiB,CAACF,EAAE,CAACzD,OAAO,iBAC3BvY,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAE8S,iBAAiB,CAACF,EAAE,CAAC5S,KAAM;AAClCP,QAAAA,IAAI,EAAE,CAAC+S,MAAM,EAAE5W,KAAK,EAAE,YAAY,CAAE;AAAAnF,QAAAA,QAAA,eAEpCG,GAAA,CAACsJ,KAAK,EAAE,EAAA,CAAA;AAAC,OACA,CACZ,EAEA4S,iBAAiB,CAACD,OAAO,CAAC1D,OAAO,iBAChCvY,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAE8S,iBAAiB,CAACD,OAAO,CAAC7S,KAAM;AACvCP,QAAAA,IAAI,EAAE,CAAC+S,MAAM,EAAE5W,KAAK,EAAE,SAAS,CAAE;AAAAnF,QAAAA,QAAA,eAEjCG,GAAA,CAACsJ,KAAK,EAAE,EAAA,CAAA;AAAC,OACA,CACZ,EAEAtE,KAAK,GAAG6W,UAAU,CAACjf,MAAM,GAAG,CAAC,iBAAIoD,GAAA,CAACsc,OAAO,EAAA;AAACpT,QAAAA,KAAK,EAAE;AAAEqT,UAAAA,WAAW,EAAE,EAAA;AAAG,SAAA;AAAE,OAAE,CAAC,CAAA;AAAA,KAAA,EA5BjEF,KAAK,CAACne,EAAE,IAAI8G,KA6BjB,CACN,CAAC,CAAA;AAAA,GACF,CAAC,CAAA;AAEP,CAAC,CAAA;AAED,MAAMwX,oBAAoB,GAAG7d,KAAA,IAgBvB;EAAA,IAhBwB;IAC5B4J,IAAI;IACJiS,OAAO;IACPiC,YAAY;AAAI;IAChBC,YAAY;AAAI;IAChBC,SAAS;AAAO;IAChBC,eAAe;IACfC,eAAe;IACfC,OAAO;IACPC,gBAAgB;AAAE;IAClBC,UAAU,GAAG,EAAE;IACfC,SAAS,GAAG,EAAE;IACdnB,WAAW,GAAG,EAAE;AAChBoB,IAAAA,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1BC,IAAAA,WAAW,GAAG;AAAEC,MAAAA,GAAG,EAAE,IAAI;AAAEC,MAAAA,IAAI,EAAE,KAAA;KAAO;AACxCC,IAAAA,aAAAA;AACF,GAAC,GAAA3e,KAAA,CAAA;AACC,EAAA,MAAMoB,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;IAAEH,OAAO;AAAEqN,IAAAA,KAAAA;AAAM,GAAC,GAAG3E,GAAG,CAACC,MAAM,EAAE,CAAA;EACvC,MAAM,CAACsW,IAAI,CAAC,GAAG3U,IAAI,CAAC4U,OAAO,EAAE,CAAA;EAE7B,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhd,QAAQ,CAAC,EAAE,CAAC,CAAA;EAC5D,MAAM,CAACid,UAAU,EAAEC,aAAa,CAAC,GAAGld,QAAQ,CAAC,EAAE,CAAC,CAAA;EAChD,MAAM,CAACmd,aAAa,EAAEC,gBAAgB,CAAC,GAAGpd,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzD,MAAM,CAACqd,aAAa,EAAEC,gBAAgB,CAAC,GAAGtd,QAAQ,CAAC,KAAK,CAAC,CAAA;;AAEzD;AACA,EAAA,MAAMud,2BAA2B,GAAGhR,MAAM,CAAC,EAAE,CAAC,CAAA;EAE9C,MAAMiR,oBAAoB,GAAGjR,MAAM,CAAC;AAClCkR,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,cAAc,EAAE,KAAA;AAClB,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,mBAAmB,GAAGvZ,OAAO,CAAC,MAAM;AACxC,IAAA,MAAMuT,MAAM,GAAA3b,gBAAA,CAAA,EAAA,EAAQof,WAAW,CAAE,CAAA;;AAEjC;IACAzD,MAAM,CAAC+E,GAAG,GAAG/E,MAAM,CAAC+E,GAAG,IAAI,EAAE,CAAA;IAC7B/E,MAAM,CAACgF,IAAI,GAAGhF,MAAM,CAACgF,IAAI,IAAI,EAAE,CAAA;AAE/B,IAAA,IAAIH,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5ByS,MAAAA,MAAM,CAAC+E,GAAG,CAACnB,OAAO,GAAAvf,gBAAA,CAAAA,gBAAA,CACZ2b,EAAAA,EAAAA,MAAM,CAAC+E,GAAG,CAACnB,OAAO,IAAI,EAAE,CAAA,EAAA,EAAA,EAAA;QAC5B1D,OAAO,EAAE4E,WAAW,CAACC,GAAAA;OACtB,CAAA,CAAA;AACH,KAAA;AAEA,IAAA,IAAIF,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7ByS,MAAAA,MAAM,CAACgF,IAAI,CAACpB,OAAO,GAAAvf,gBAAA,CAAAA,gBAAA,CACb2b,EAAAA,EAAAA,MAAM,CAACgF,IAAI,CAACpB,OAAO,IAAI,EAAE,CAAA,EAAA,EAAA,EAAA;QAC7B1D,OAAO,EAAE4E,WAAW,CAACE,IAAAA;OACtB,CAAA,CAAA;AACH,KAAA;AAEA,IAAA,OAAOhF,MAAM,CAAA;GACd,EAAE,CAACyD,WAAW,EAAEqB,WAAW,EAAED,QAAQ,CAAC,CAAC,CAAA;AAExChS,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC3C,IAAI,EAAE,OAAA;AAEX,IAAA,MAAM+V,SAAS,GAAG,YAAY;AAC5B,MAAA,IAAIJ,oBAAoB,CAACjc,OAAO,CAACkc,UAAU,EAAE,OAAA;MAE7C,IAAI;AACFD,QAAAA,oBAAoB,CAACjc,OAAO,CAACkc,UAAU,GAAG,IAAI,CAAA;AAE9C,QAAA,IAAIxB,SAAS,EAAE;AACb;AACA,UAAA,MAAMtE,MAAM,GAAG,MAAMsE,SAAS,EAAE,CAAA;UAChC,IAAIO,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,IAAIyS,MAAM,CAACkG,cAAc,EAAE;AACrDX,YAAAA,aAAa,CAACvF,MAAM,CAACkG,cAAc,CAAC,CAAA;AACtC,WAAA;UACA,IAAIrB,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAIyS,MAAM,CAACwD,UAAU,EAAE;AAClD,YAAA,MAAMA,UAAU,GAAGxD,MAAM,CAACwD,UAAU,CAAA;YACpC6B,mBAAmB,CAAC7B,UAAU,CAAC,CAAA;AAC/BoC,YAAAA,2BAA2B,CAAChc,OAAO,GAAGd,IAAI,CAACC,KAAK,CAACD,IAAI,CAACkW,SAAS,CAACwE,UAAU,CAAC,CAAC,CAAA;AAC9E,WAAA;AACF,SAAC,MAAM;UACL,MAAM2C,QAAQ,GAAG,EAAE,CAAA;AACnB,UAAA,IAAItB,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5B4Y,YAAAA,QAAQ,CAAC5Z,IAAI,CAAC6X,YAAY,EAAE,CAAC,CAAA;AAC/B,WAAA;AAEA,UAAA,IAAIS,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7B4Y,YAAAA,QAAQ,CAAC5Z,IAAI,CAAC8X,YAAY,EAAE,CAAC,CAAA;AAC/B,WAAA;UAEA,MAAM+B,OAAO,GAAG,MAAMC,OAAO,CAACC,UAAU,CAACH,QAAQ,CAAC,CAAA;UAElD,IAAItB,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,IAAI6W,YAAY,EAAE;AAC5C,YAAA,MAAMmC,SAAS,GAAGH,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5B,YAAA,IAAIG,SAAS,CAAC3b,MAAM,KAAK,WAAW,EAAE;AACpC2a,cAAAA,aAAa,CAACgB,SAAS,CAACva,KAAK,IAAI,EAAE,CAAC,CAAA;AACtC,aAAA;AACF,WAAA;UAEA,IAAI6Y,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAI8W,YAAY,EAAE;AAC7C,YAAA,MAAMmC,SAAS,GAAG3B,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,GAAG6Y,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,CAAA;YACpE,IAAII,SAAS,CAAC5b,MAAM,KAAK,WAAW,IAAI4b,SAAS,CAACxa,KAAK,EAAE;cACvD,MAAMwX,UAAU,GAAGgD,SAAS,CAACxa,KAAK,CAACya,iBAAiB,IAAI,EAAE,CAAA;cAC1DpB,mBAAmB,CAAC7B,UAAU,CAAC,CAAA;AAC/BoC,cAAAA,2BAA2B,CAAChc,OAAO,GAAGd,IAAI,CAACC,KAAK,CAACD,IAAI,CAACkW,SAAS,CAACwE,UAAU,CAAC,CAAC,CAAA;AAC9E,aAAA;AACF,WAAA;AACF,SAAA;QAEAmC,gBAAgB,CAAC,IAAI,CAAC,CAAA;OACvB,CAAC,OAAOld,KAAK,EAAE;AACd5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC,CAAA;AAC7Cod,QAAAA,oBAAoB,CAACjc,OAAO,CAACkc,UAAU,GAAG,KAAK,CAAC;AAClD,OAAA;KACD,CAAA;AAEDG,IAAAA,SAAS,EAAE,CAAA;AACb,GAAC,EAAE,CAAC/V,IAAI,EAAEkU,YAAY,EAAEC,YAAY,EAAEC,SAAS,EAAEO,QAAQ,CAAC,CAAC,CAAA;;AAE3D;AACAhS,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC3C,IAAI,EAAE;MACTyV,gBAAgB,CAAC,KAAK,CAAC,CAAA;MACvBJ,aAAa,CAAC,EAAE,CAAC,CAAA;MACjBF,mBAAmB,CAAC,EAAE,CAAC,CAAA;MACvBH,IAAI,CAACwB,WAAW,EAAE,CAAA;MAClBb,oBAAoB,CAACjc,OAAO,GAAG;AAAEkc,QAAAA,UAAU,EAAE,KAAK;AAAEC,QAAAA,cAAc,EAAE,KAAA;OAAO,CAAA;MAC3EH,2BAA2B,CAAChc,OAAO,GAAG,EAAE,CAAA;AAC1C,KAAA;AACF,GAAC,EAAE,CAACsG,IAAI,EAAEgV,IAAI,CAAC,CAAC,CAAA;;AAEhB;AACA,EAAA,MAAMyB,aAAa,GAAGla,OAAO,CAAC,MAAM;IAClC,MAAM3G,MAAM,GAAG,EAAE,CAAA;AAEjB,IAAA,IAAI+e,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,IAAI+X,UAAU,CAAC/gB,MAAM,GAAG,CAAC,EAAE;MACrDuB,MAAM,CAACif,GAAG,GAAGO,UAAU,CAAC5b,GAAG,CAACsW,MAAM,IAAA3b,gBAAA,CAAA;QAChCuiB,aAAa,EAAE5G,MAAM,CAAC4G,aAAa;QACnCC,YAAY,EAAE7G,MAAM,CAAC6G,YAAY;QACjCC,UAAU,EAAE9G,MAAM,CAAC8G,UAAAA;OACfhC,EAAAA,WAAW,CAACC,GAAG,GAAG;QAAEnB,OAAO,EAAE5D,MAAM,CAAC4D,OAAAA;AAAQ,OAAC,GAAG,EAAE,CACtD,CAAC,CAAA;AACL,KAAA;AAEA,IAAA,IAAIiB,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAI6X,gBAAgB,CAAC7gB,MAAM,GAAG,CAAC,EAAE;AAC5DuB,MAAAA,MAAM,CAACkf,IAAI,GAAGI,gBAAgB,CAAC1b,GAAG,CAACsa,KAAK,IAAA3f,gBAAA,CAAAA,gBAAA,CAElC2f,EAAAA,EAAAA,KAAK,CAACne,EAAE,KAAKG,SAAS,IAAI;QAAEH,EAAE,EAAEme,KAAK,CAACne,EAAAA;OAAI,CAAA,EAAA,EAAA,EAAA;QAC9CghB,YAAY,EAAE7C,KAAK,CAAC6C,YAAY;AAChCC,QAAAA,UAAU,EAAE9C,KAAK,CAAC8C,UAAU,IAAI9C,KAAK,CAACL,EAAAA;OAClCmB,EAAAA,WAAW,CAACE,IAAI,GAAG;QAAEpB,OAAO,EAAEI,KAAK,CAACJ,OAAAA;AAAQ,OAAC,GAAG,EAAE,CACtD,CAAC,CAAA;AACL,KAAA;AAEA,IAAA,OAAO9d,MAAM,CAAA;GACd,EAAE,CAACwf,UAAU,EAAEF,gBAAgB,EAAEP,QAAQ,EAAEC,WAAW,CAAC,CAAC,CAAA;;AAEzD;AACAjS,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI6S,aAAa,IAAI,CAACG,oBAAoB,CAACjc,OAAO,CAACmc,cAAc,EAAE;AACjEb,MAAAA,IAAI,CAAC6B,cAAc,CAACJ,aAAa,CAAC,CAAA;AAClCd,MAAAA,oBAAoB,CAACjc,OAAO,CAACmc,cAAc,GAAG,IAAI,CAAA;AACpD,KAAA;GACD,EAAE,CAACL,aAAa,EAAER,IAAI,EAAEyB,aAAa,CAAC,CAAC,CAAA;;AAExC;AACA,EAAA,MAAMK,aAAa,GAAGze,WAAW,CAAC,kBAIvB;IAAA,IAJ8B;MACvC0e,WAAW;AACXC,MAAAA,OAAO,GAAG,KAAK;AACfC,MAAAA,OAAO,GAAG,CAAC1C,OAAAA;AACb,KAAC,GAAA1e,SAAA,CAAAxB,MAAA,GAAAwB,CAAAA,IAAAA,SAAA,CAAAC,CAAAA,CAAAA,KAAAA,SAAA,GAAAD,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AACJ,IAAA,MAAMqhB,cAAc,GAAG1f,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,6BAAA;AAA8B,KAAC,CAAC,CAAA;AAChFI,IAAAA,OAAO,CAACgT,OAAO,CAACgO,WAAW,IAAIG,cAAc,CAAC,CAAA;IAE9C,IAAID,OAAO,IAAI7C,SAAS,EAAE;MACxB,IAAI;AACF,QAAA,MAAM+C,SAAS,GAAG,MAAM/C,SAAS,EAAE,CAAA;QACnC,IAAIO,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,IAAI8Z,SAAS,CAACnB,cAAc,EAAE;AACxDX,UAAAA,aAAa,CAAC8B,SAAS,CAACnB,cAAc,CAAC,CAAA;AACzC,SAAA;QACA,IAAIrB,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAI8Z,SAAS,CAAC7D,UAAU,EAAE;AACrD6B,UAAAA,mBAAmB,CAACgC,SAAS,CAAC7D,UAAU,CAAC,CAAA;AAC3C,SAAA;OACD,CAAC,OAAO/a,KAAK,EAAE;AACd5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC,CAAA;AACnD,OAAA;AACF,KAAA;;AAEA;IACA,IAAIye,OAAO,IAAIzC,OAAO,EAAE;AACtB,MAAA,IAAIJ,YAAY,EAAE;AAChB;QACA,IAAI;AACF,UAAA,MAAMiD,aAAa,GAAG,MAAMjD,YAAY,EAAE,CAAA;AAC1C,UAAA,IAAIiD,aAAa,KAAbA,IAAAA,IAAAA,aAAa,eAAbA,aAAa,CAAEC,mBAAmB,EAAE;YACtCjU,KAAK,CAAC2H,OAAO,CAAC;AACZC,cAAAA,IAAI,eAAEvT,GAAA,CAACwT,uBAAuB,IAAE,CAAC;AACjC7T,cAAAA,KAAK,EAAEI,IAAI,CAACjC,aAAa,CAAC;AAAEI,gBAAAA,EAAE,EAAE,iCAAA;AAAkC,eAAC,CAAC;AACpEmH,cAAAA,UAAU,EAAEtF,IAAI,CAACjC,aAAa,CAAC;AAAEI,gBAAAA,EAAE,EAAE,8BAAA;AAA+B,eAAC,CAAC;AACtEkH,cAAAA,MAAM,EAAErF,IAAI,CAACjC,aAAa,CAAC;AAAEI,gBAAAA,EAAE,EAAE,4BAAA;AAA6B,eAAC,CAAC;cAChE4I,IAAI,EAAE,YAAY;gBAChB,MAAMgW,OAAO,EAAE,CAAA;AACf,gBAAA,IAAIC,gBAAgB,IAAI,OAAOA,gBAAgB,KAAK,UAAU,EAAE;AAC9DA,kBAAAA,gBAAgB,EAAE,CAAA;AACpB,iBAAA;AACF,eAAA;AACF,aAAC,CAAC,CAAA;AACJ,WAAA;SACD,CAAC,OAAOjc,KAAK,EAAE;AACd5F,UAAAA,OAAO,CAAC4F,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAAC,CAAA;AACzD,SAAA;AACF,OAAC,MAAM;AACL;QACA6K,KAAK,CAAC2H,OAAO,CAAC;AACZC,UAAAA,IAAI,eAAEvT,GAAA,CAACwT,uBAAuB,IAAE,CAAC;AACjC7T,UAAAA,KAAK,EAAEI,IAAI,CAACjC,aAAa,CAAC;AAAEI,YAAAA,EAAE,EAAE,iCAAA;AAAkC,WAAC,CAAC;AACpEmH,UAAAA,UAAU,EAAEtF,IAAI,CAACjC,aAAa,CAAC;AAAEI,YAAAA,EAAE,EAAE,8BAAA;AAA+B,WAAC,CAAC;AACtEkH,UAAAA,MAAM,EAAErF,IAAI,CAACjC,aAAa,CAAC;AAAEI,YAAAA,EAAE,EAAE,4BAAA;AAA6B,WAAC,CAAC;UAChE4I,IAAI,EAAE,YAAY;YAChB,MAAMgW,OAAO,EAAE,CAAA;AACf,YAAA,IAAIC,gBAAgB,IAAI,OAAOA,gBAAgB,KAAK,UAAU,EAAE;AAC9DA,cAAAA,gBAAgB,EAAE,CAAA;AACpB,aAAA;AACF,WAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;AAEAvC,IAAAA,OAAO,EAAE,CAAA;AACX,GAAC,EAAE,CAACza,IAAI,EAAEzB,OAAO,EAAEqN,KAAK,EAAE+Q,YAAY,EAAEI,OAAO,EAAEH,SAAS,EAAEO,QAAQ,EAAE1C,OAAO,CAAC,CAAC,CAAA;AAE/E,EAAA,MAAMqF,YAAY,GAAGjf,WAAW,CAAC,YAAY;IAC3Ckd,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEtB,IAAI;AACF,MAAA,MAAM3f,MAAM,GAAG,MAAMof,IAAI,CAACuC,cAAc,EAAE,CAAA;;AAE1C;MACA,IAAIC,cAAc,GAAG,KAAK,CAAA;AAC1B,MAAA,IAAI,CAACrD,YAAY,IAAIQ,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAIzH,MAAM,CAACkf,IAAI,EAAE;AAC7D,QAAA,MAAM2C,QAAQ,GAAG/B,2BAA2B,CAAChc,OAAO,CAAA;AACpD,QAAA,MAAMA,OAAO,GAAG9D,MAAM,CAACkf,IAAI,CAAA;QAC3B0C,cAAc,GAAG9d,OAAO,CAAC4L,IAAI,CAAC,CAAC7L,IAAI,EAAEgD,KAAK,KAAK;AAC7C,UAAA,MAAMib,IAAI,GAAGD,QAAQ,CAAChb,KAAK,CAAC,CAAA;AAC5B,UAAA,IAAI,CAACib,IAAI,EAAE,OAAO,KAAK,CAAA;AAEvB,UAAA,MAAMC,SAAS,GAAGle,IAAI,CAACmd,UAAU,MAAMc,IAAI,CAACd,UAAU,IAAIc,IAAI,CAACjE,EAAE,CAAC,CAAA;AAClE,UAAA,OAAOkE,SAAS,CAAA;AAClB,SAAC,CAAC,CAAA;AACJ,OAAA;MAEA,MAAMC,cAAc,GAAG,EAAE,CAAA;;AAEzB;MACA,IAAIjD,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,IAAIzH,MAAM,CAACif,GAAG,EAAE;QAC1C,MAAMgD,OAAO,GAAGjiB,MAAM,CAACif,GAAG,CAACrb,GAAG,CAAC,CAACC,IAAI,EAAEgD,KAAK,KAAA;AAAA,UAAA,IAAAqb,iBAAA,CAAA;AAAA,UAAA,OAAA3jB,gBAAA,CAAA;AACzCuiB,YAAAA,aAAa,EAAAoB,CAAAA,iBAAA,GAAE1C,UAAU,CAAC3Y,KAAK,CAAC,MAAA,IAAA,IAAAqb,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAA,CAAmBpB,aAAa;YAC/CE,UAAU,EAAEnd,IAAI,CAACmd,UAAAA;WACbhC,EAAAA,WAAW,CAACC,GAAG,GAAG;YAAEnB,OAAO,EAAEja,IAAI,CAACia,OAAAA;WAAS,GAAG,EAAE,CAAA,CAAA;AAAA,SACpD,CAAC,CAAA;AACHkE,QAAAA,cAAc,CAACvb,IAAI,CAACgY,eAAe,CAACwD,OAAO,CAAC,CAAC,CAAA;AAC/C,OAAA;;AAEA;MACA,IAAIlD,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAIzH,MAAM,CAACkf,IAAI,EAAE;QAC5C,MAAMiD,cAAc,GAAGniB,MAAM,CAACkf,IAAI,CAACtb,GAAG,CAAC,CAACC,IAAI,EAAEgD,KAAK,KAAA;AAAA,UAAA,IAAAub,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;UAAA,OAAA/jB,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,KAE7C,CAAA+gB,gBAAgB,KAAhBA,IAAAA,IAAAA,gBAAgB,KAAA8C,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAhB9C,gBAAgB,CAAGzY,KAAK,CAAC,MAAAub,IAAAA,IAAAA,qBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA2BriB,EAAE,MAAKG,SAAS,IAAI;AACjDH,YAAAA,EAAE,EAAEuf,gBAAgB,KAAhBA,IAAAA,IAAAA,gBAAgB,gBAAA+C,sBAAA,GAAhB/C,gBAAgB,CAAGzY,KAAK,CAAC,MAAA,IAAA,IAAAwb,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAzBA,sBAAA,CAA2BtiB,EAAAA;WAChC,CAAA,EACG,CAAAuf,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAAgD,KAAAA,CAAAA,IAAAA,CAAAA,sBAAA,GAAhBhD,gBAAgB,CAAGzY,KAAK,CAAC,MAAA,IAAA,IAAAyb,sBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA2BzE,EAAE,MAAK3d,SAAS,GAC3C;YAAE2d,EAAE,EAAEha,IAAI,CAACmd,UAAAA;AAAW,WAAC,GACvB;YAAEA,UAAU,EAAEnd,IAAI,CAACmd,UAAAA;AAAW,WAAC,CAE/BhC,EAAAA,WAAW,CAACE,IAAI,GAAG;YAAEpB,OAAO,EAAEja,IAAI,CAACia,OAAAA;WAAS,GAAG,EAAE,CAAA,CAAA;AAAA,SACrD,CAAC,CAAA;AAEH,QAAA,MAAMyE,UAAU,GAAGjD,gBAAgB,CAAC5P,IAAI,CAACwO,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,GAC5D;AAAEyC,UAAAA,iBAAiB,EAAEwB,cAAAA;AAAe,SAAC,GACrC;AAAEzE,UAAAA,UAAU,EAAEyE,cAAAA;SAAgB,CAAA;AAElCH,QAAAA,cAAc,CAACvb,IAAI,CAACiY,eAAe,CAAC6D,UAAU,CAAC,CAAC,CAAA;AAClD,OAAA;MAEA,MAAMjC,OAAO,GAAG,MAAMC,OAAO,CAACC,UAAU,CAACwB,cAAc,CAAC,CAAA;;AAExD;AACA,MAAA,MAAMQ,YAAY,GAAGlC,OAAO,CAACmC,KAAK,CAACxV,MAAM,IAAIA,MAAM,CAACnI,MAAM,KAAK,WAAW,CAAC,CAAA;AAE3E,MAAA,IAAI0d,YAAY,EAAE;QAChB,IAAIpB,OAAO,GAAG,KAAK,CAAA;AACnB,QAAA,IAAI7C,YAAY,EAAE;AAChB;AACA6C,UAAAA,OAAO,GAAG,IAAI,CAAA;AAChB,SAAC,MAAM;AACL;AACAA,UAAAA,OAAO,GAAGQ,cAAc,CAAA;AAC1B,SAAA;AAEAV,QAAAA,aAAa,CAAC;AAAEE,UAAAA,OAAAA;AAAQ,SAAC,CAAC,CAAA;AAC5B,OAAA;KACD,CAAC,OAAOze,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC,CAAA;AAC3D,KAAC,SAAS;MACRgd,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACzB,KAAA;AACF,GAAC,EAAE,CACDP,IAAI,EACJL,QAAQ,EACRS,UAAU,EACVF,gBAAgB,EAChBb,eAAe,EACfC,eAAe,EACfwC,aAAa,CACd,CAAC,CAAA;;AAEF;EACA,MAAMwB,gBAAgB,GAAAnkB,gBAAA,CAAA;AACpBiD,IAAAA,KAAK,EAAEI,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,uBAAA;AAAwB,KAAC,CAAC;AAC1DiH,IAAAA,KAAK,EAAE,GAAG;IACVoD,IAAI;AACJuY,IAAAA,cAAc,EAAEjD,aAAa;AAC7B/W,IAAAA,IAAI,EAAE+Y,YAAY;AAClBhZ,IAAAA,QAAQ,EAAE2T,OAAO;AACjBpV,IAAAA,MAAM,EAAErF,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,cAAA;AAAe,KAAC,CAAC;AAClDmH,IAAAA,UAAU,EAAEtF,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,cAAA;AAAe,KAAC,CAAC;AACtD6iB,IAAAA,QAAQ,EAAE,IAAI;AACd3gB,IAAAA,eAAe,EAAE,IAAI;AACrB4gB,IAAAA,WAAW,EAAE,IAAA;AAAI,GAAA,EAKdhE,UAAU,CACd,CAAA;;AAED;EACA,MAAMiE,eAAe,GAAAvkB,gBAAA,CAAA;AACnB6gB,IAAAA,IAAI,EAAEA,IAAI;AACVzU,IAAAA,QAAQ,EAAE;AAAEC,MAAAA,IAAI,EAAE,CAAA;KAAG;AACrBC,IAAAA,UAAU,EAAE;AAAED,MAAAA,IAAI,EAAE,EAAA;KAAI;AACxBE,IAAAA,YAAY,EAAE,KAAA;AAAK,GAAA,EAChBgU,SAAS,CACb,CAAA;EAED,oBACE/c,IAAA,CAAC+E,aAAW,EAAAvI,gBAAA,CAAAA,gBAAA,KAAKmkB,gBAAgB,CAAA,EAAA,EAAA,EAAA;IAAAhhB,QAAA,EAAA,cAC/BK,IAAA,CAAC0I,IAAI,EAAAlM,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EAAKukB,eAAe,CAAA,EAAA,EAAA,EAAA;AAAAphB,MAAAA,QAAA,GACtBqd,QAAQ,CAACtX,QAAQ,CAAC,KAAK,CAAC,IAAI+X,UAAU,CAAC/gB,MAAM,GAAG,CAAC,iBAChDsD,IAAA,CAAAC,QAAA,EAAA;QAAAN,QAAA,EAAA,cACEG,GAAA,CAACyb,iBAAiB,EAAA;AAChBG,UAAAA,MAAM,EAAC,KAAK;AACZC,UAAAA,UAAU,EAAE8B,UAAW;UACvB7B,WAAW,EAAEuC,mBAAmB,CAACjB,GAAAA;AAAI,SACtC,CAAC,EACDF,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAI6X,gBAAgB,CAAC7gB,MAAM,GAAG,CAAC,iBAAIoD,GAAA,CAACsc,OAAO,IAAE,CAAC,CAAA;AAAA,OACxE,CACH,EAEAY,QAAQ,CAACtX,QAAQ,CAAC,MAAM,CAAC,IAAI6X,gBAAgB,CAAC7gB,MAAM,GAAG,CAAC,iBACvDoD,GAAA,CAACyb,iBAAiB,EAAA;AAChBG,QAAAA,MAAM,EAAC,MAAM;AACbC,QAAAA,UAAU,EAAE4B,gBAAiB;QAC7B3B,WAAW,EAAEuC,mBAAmB,CAAChB,IAAAA;AAAK,OACvC,CACF,CAAA;KACG,CAAA,CAAC,EACNC,aAAa,CAAA;AAAA,GAAA,CACH,CAAC,CAAA;AAElB,CAAC,CAAA;AAGD,6BAAe5d,aAAAA,IAAI,CAAC8c,oBAAoB,CAAC;;ACvbzC,MAAM0E,mBAAmB,GAAG;AAC1BC,EAAAA,WAAW,EAAE;AACX/X,IAAAA,KAAK,EAAE,gBAAgB;AACvBgY,IAAAA,QAAQ,EAAE,QAAQ;AAClBnX,IAAAA,OAAO,EAAE,CACP;AAAE5F,MAAAA,KAAK,EAAE,CAAC;AAAE+E,MAAAA,KAAK,EAAE,uBAAA;AAAwB,KAAC,EAC5C;AAAE/E,MAAAA,KAAK,EAAE,CAAC;AAAE+E,MAAAA,KAAK,EAAE,oBAAA;AAAqB,KAAC,EACzC;AAAE/E,MAAAA,KAAK,EAAE,GAAG;AAAE+E,MAAAA,KAAK,EAAE,0BAAA;AAA2B,KAAC,CAClD;AACDG,IAAAA,QAAQ,EAAE,IAAA;GACX;AACD8X,EAAAA,cAAc,EAAE;AACdjY,IAAAA,KAAK,EAAE,mBAAmB;AAC1BgY,IAAAA,QAAQ,EAAE,QAAQ;AAClB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACD+X,EAAAA,0BAA0B,EAAE;AAC1BlY,IAAAA,KAAK,EAAE,6BAA6B;AACpCgY,IAAAA,QAAQ,EAAE,QAAQ;AAClB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDgY,EAAAA,qBAAqB,EAAE;AACrBnY,IAAAA,KAAK,EAAE,eAAe;AACtBgY,IAAAA,QAAQ,EAAE,QAAQ;AAClB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDiY,EAAAA,qBAAqB,EAAE;AACrBpY,IAAAA,KAAK,EAAE,eAAe;AACtBgY,IAAAA,QAAQ,EAAE,QAAQ;AAClB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDkY,EAAAA,oBAAoB,EAAE;AACpBrY,IAAAA,KAAK,EAAE,yBAAyB;AAChCgY,IAAAA,QAAQ,EAAE,MAAM;AAChB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDmY,EAAAA,cAAc,EAAE;AACdtY,IAAAA,KAAK,EAAE,kBAAkB;AACzBgY,IAAAA,QAAQ,EAAE,MAAM;AAChB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDoY,EAAAA,gBAAgB,EAAE;AAChBvY,IAAAA,KAAK,EAAE,kBAAkB;AACzBgY,IAAAA,QAAQ,EAAE,QAAQ;AAClBQ,IAAAA,GAAG,EAAE,CAAC;AACNxf,IAAAA,GAAG,EAAE,GAAG;AACRmH,IAAAA,QAAQ,EAAE,KAAA;GACX;AACDsY,EAAAA,iBAAiB,EAAE;AACjBzY,IAAAA,KAAK,EAAE,eAAe;AACtBgY,IAAAA,QAAQ,EAAE,QAAQ;AAClB7X,IAAAA,QAAQ,EAAE,IAAA;GACX;AACDuY,EAAAA,YAAY,EAAE;AACZ1Y,IAAAA,KAAK,EAAE,qBAAqB;AAC5BgY,IAAAA,QAAQ,EAAE,OAAO;AACjBvZ,IAAAA,SAAS,EAAE;AACT,MAAA,CAAC,EAAE;AAAEka,QAAAA,IAAI,EAAE,kBAAkB;AAAEhN,QAAAA,KAAK,EAAE,KAAA;OAAO;AAC7C,MAAA,CAAC,EAAE;AAAEgN,QAAAA,IAAI,EAAE,eAAe;AAAEhN,QAAAA,KAAK,EAAE,OAAA;AAAQ,OAAA;AAC7C,KAAA;GACD;AACDiN,EAAAA,SAAS,EAAE;AACT5Y,IAAAA,KAAK,EAAE,kBAAkB;AACzBgY,IAAAA,QAAQ,EAAE,OAAO;AACjBvZ,IAAAA,SAAS,EAAE;AACT,MAAA,CAAC,EAAE;AAAEka,QAAAA,IAAI,EAAE,cAAc;AAAEhN,QAAAA,KAAK,EAAE,KAAA;OAAO;AACzC,MAAA,CAAC,EAAE;AAAEgN,QAAAA,IAAI,EAAE,YAAY;AAAEhN,QAAAA,KAAK,EAAE,OAAA;AAAQ,OAAA;AAC1C,KAAA;AACF,GAAA;AACF,CAAC,CAAA;;AAED;AACA,MAAMkN,iBAAiB,GAAG,CACxB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,cAAc,EACd,WAAW,CACZ,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuBA,CAACC,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAE;AACpE,EAAA,OAAOA,UAAU,CACdngB,MAAM,CAAClF,GAAG,IAAIA,GAAG,IAAImlB,SAAS,CAAC,CAC/BpgB,GAAG,CAAC/E,GAAG,IAAI;AACV,IAAA,MAAMqb,MAAM,GAAG+J,YAAY,CAACplB,GAAG,CAAC,IAAI;AAAEoM,MAAAA,KAAK,EAAEpM,GAAG;AAAEokB,MAAAA,QAAQ,EAAE,MAAA;KAAQ,CAAA;AACpE,IAAA,MAAM/c,KAAK,GAAG8d,SAAS,CAACnlB,GAAG,CAAC,CAAA;IAE5B,OAAAN,gBAAA,CAAAA,gBAAA,CAAA;MACEM,GAAG;AACHqH,MAAAA,KAAAA;AAAK,KAAA,EACFgU,MAAM,CAAA,EAAA,EAAA,EAAA;AACTiK,MAAAA,OAAO,EAAEH,SAAAA;AAAS,KAAA,CAAA,CAAA;AAEtB,GAAC,CAAC,CAAA;AACN,CAAA;AAEA,MAAMI,QAAQ,GAAGxkB,IAAA,IASX;EAAA,IATY;IAChBwK,IAAI;IACJiS,OAAO;IACPgI,UAAU;IACVC,aAAa;AACbL,IAAAA,YAAY,GAAGlB,mBAAmB;AAClCmB,IAAAA,UAAU,GAAGJ,iBAAiB;IAC9BjF,UAAU,GAAG,EAAE;AACfC,IAAAA,SAAS,GAAG,EAAC;AACf,GAAC,GAAAlf,IAAA,CAAA;AACC,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM,CAAC0jB,SAAS,EAAEO,YAAY,CAAC,GAAGhiB,QAAQ,CAAC,IAAI,CAAC,CAAA;EAChD,MAAM,CAACoK,OAAO,EAAEC,UAAU,CAAC,GAAGrK,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC7C,MAAM,CAAC6c,IAAI,CAAC,GAAG3U,IAAI,CAAC4U,OAAO,EAAE,CAAA;EAE7B,MAAM;AAAElf,IAAAA,OAAAA;AAAQ,GAAC,GAAG0I,GAAG,CAACC,MAAM,EAAE,CAAA;AAEhCiE,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI3C,IAAI,EAAE;MACRwC,UAAU,CAAC,IAAI,CAAC,CAAA;AAChByX,MAAAA,UAAU,EAAE,CAACG,IAAI,CAACthB,IAAI,IAAI;QACxB,IAAIA,IAAI,aAAJA,IAAI,KAAA,KAAA,CAAA,IAAJA,IAAI,CAAG,CAAC,CAAC,EAAE;AACbqhB,UAAAA,YAAY,CAACrhB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACrB;AACAkc,UAAAA,IAAI,CAAC6B,cAAc,CAAC/d,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,SAAA;AACF,OAAC,CAAC,CAACuhB,KAAK,CAACC,GAAG,IAAI;AACd3nB,QAAAA,OAAO,CAAC4F,KAAK,CAAC,qBAAqB,EAAE+hB,GAAG,CAAC,CAAA;AAC3C,OAAC,CAAC,CAACC,OAAO,CAAC,MAAM;QACf/X,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,OAAC,CAAC,CAAA;AACJ,KAAC,MAAM;AACL;MACAwS,IAAI,CAACwB,WAAW,EAAE,CAAA;MAClB2D,YAAY,CAAC,IAAI,CAAC,CAAA;AACpB,KAAA;GACD,EAAE,CAACna,IAAI,EAAEgV,IAAI,EAAEiF,UAAU,CAAC,CAAC,CAAA;AAE5B,EAAA,MAAMO,cAAc,GAAIje,OAAO,CAAC,MAAM;AACpC,IAAA,IAAI,CAACqd,SAAS,EAAE,OAAM,EAAE,CAAA;AACxB,IAAA,OAAOD,uBAAuB,CAACC,SAAS,EAAEC,YAAY,EAAEC,UAAU,CAAC,CAAA;GACpE,EAAE,CAACF,SAAS,EAAEC,YAAY,EAAEC,UAAU,CAAC,CAAC,CAAA;;AAEzC;EACA,MAAMW,WAAW,GAAIhhB,IAAI,IAAK;AAC5B;AACA,IAAA,IAAIA,IAAI,CAACoH,KAAK,IAAI,OAAOpH,IAAI,CAACoH,KAAK,KAAK,QAAQ,IAAIpH,IAAI,CAACoH,KAAK,CAACxD,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC5E,OAAO7F,IAAI,CAACjC,aAAa,CAAC;QAAEI,EAAE,EAAE8D,IAAI,CAACoH,KAAAA;AAAM,OAAC,CAAC,CAAA;AAC/C,KAAA;IACA,OAAOpH,IAAI,CAACoH,KAAK,CAAA;GAClB,CAAA;AAED,EAAA,MAAMyW,YAAY,GAAG,YAAY;AAC/B,IAAA,MAAM1hB,MAAM,GAAG,MAAMof,IAAI,CAAC0F,cAAc,EAAE,CAAA;IAE1ClY,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhB,IAAI;AACF,MAAA,MAAM2F,QAAQ,GAAG,MAAM+R,aAAa,CAACtkB,MAAM,CAAC,CAAA;AAE5C,MAAA,IAAIuS,QAAQ,EAAE;AACZpS,QAAAA,OAAO,CAACgT,OAAO,CAACvR,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,iBAAA;AAAkB,SAAC,CAAC,CAAC,CAAA;AAC9DiT,QAAAA,UAAU,CAAC,MAAM;AACfqJ,UAAAA,OAAO,EAAE,CAAA;SACV,EAAE,IAAI,CAAC,CAAA;AACV,OAAA;KACD,CAAC,OAAO1Z,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC,CAAA;AACxC,KAAC,SAAS;MACRiK,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,KAAA;GACD,CAAA;EAED,MAAMmY,cAAc,GAAIlhB,IAAI,IAAK;AAAA,IAAA,IAAAmhB,aAAA,EAAAC,eAAA,EAAAC,SAAA,EAAAC,SAAA,CAAA;IAC/B,QAAQthB,IAAI,CAACof,QAAQ;AACnB,MAAA,KAAK,QAAQ;QACX,MAAMmC,aAAa,IAAAJ,aAAA,GAAGnhB,IAAI,CAACiI,OAAO,cAAAkZ,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,aAAA,CAAcphB,GAAG,CAACyhB,GAAG,IAAA9mB,gBAAA,CAAAA,gBAAA,KACtC8mB,GAAG,CAAA,EAAA,EAAA,EAAA;AACNpa,UAAAA,KAAK,EAAErJ,IAAI,CAACjC,aAAa,CAAC;YAAEI,EAAE,EAAEslB,GAAG,CAACpa,KAAAA;AAAM,WAAC,EAAE;YAAE/E,KAAK,EAAEmf,GAAG,CAACnf,KAAAA;WAAO,CAAA;AAAC,SAAA,CAClE,CAAC,CAAA;QACH,oBAAOrE,GAAA,CAACyjB,MAAM,EAAA;AAACxZ,UAAAA,OAAO,EAAEsZ,aAAc;UAAC9a,QAAQ,EAAEzG,IAAI,CAACuH,QAAAA;AAAS,SAAE,CAAC,CAAA;AACpE,MAAA,KAAK,QAAQ;AACX,QAAA,oBAAOvJ,GAAA,CAAC0jB,MAAM,EAAA,EAAE,CAAC,CAAA;AACnB,MAAA,KAAK,OAAO;AACV,QAAA,MAAMC,eAAe,GAAG,OAAO3hB,IAAI,CAACqC,KAAK,KAAK,SAAS,GAClDrC,IAAI,CAACqC,KAAK,GAAG,CAAC,GAAG,CAAC,GACnBrC,IAAI,CAACqC,KAAK,CAAA;AACd,QAAA,MAAMpB,MAAM,GAAG,CAAAmgB,CAAAA,eAAA,GAAAphB,IAAI,CAAC6F,SAAS,MAAA,IAAA,IAAAub,eAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAiBO,eAAe,CAAC,KAAI;AAAE5B,UAAAA,IAAI,EAAE,SAAS;AAAEhN,UAAAA,KAAK,EAAE,MAAA;SAAQ,CAAA;QACtF,oBACE/U,GAAA,CAAC4jB,cAAc,EAAA;AAACC,UAAAA,KAAK,EAAE;AAAEC,YAAAA,UAAU,EAAE;AAAEC,cAAAA,KAAK,EAAE;AAAEC,gBAAAA,UAAU,EAAE,EAAA;AAAG,eAAA;AAAE,aAAA;WAAI;UAAAnkB,QAAA,eACnEG,GAAA,CAAC+jB,KAAK,EAAA;YACJhP,KAAK,EAAE9R,MAAM,CAAC8R,KAAM;AACpBgN,YAAAA,IAAI,EAAEhiB,IAAI,CAACjC,aAAa,CAAC;cAAEI,EAAE,EAAE+E,MAAM,CAAC8e,IAAAA;aAAM,CAAA;WAC7C,CAAA;AAAC,SACY,CAAC,CAAA;AAErB,MAAA,KAAK,QAAQ;QACX,oBACE/hB,GAAA,CAACikB,WAAW,EAAA;UACVxb,QAAQ,EAAEzG,IAAI,CAACuH,QAAS;AACxB2a,UAAAA,QAAQ,EAAE,KAAM;AAChBC,UAAAA,QAAQ,EAAE,KAAM;AAChBvC,UAAAA,GAAG,EAAAyB,CAAAA,SAAA,GAAErhB,IAAI,CAAC4f,GAAG,MAAAyB,IAAAA,IAAAA,SAAA,KAAAA,KAAAA,CAAAA,GAAAA,SAAA,GAAIe,MAAM,CAACC,gBAAiB;AACzCjiB,UAAAA,GAAG,EAAAkhB,CAAAA,SAAA,GAAEthB,IAAI,CAACI,GAAG,MAAAkhB,IAAAA,IAAAA,SAAA,KAAAA,KAAAA,CAAAA,GAAAA,SAAA,GAAIc,MAAM,CAACE,gBAAAA;AAAiB,SAC1C,CAAC,CAAA;AAEN,MAAA;QACE,oBAAOtkB,GAAA,CAACsJ,KAAK,EAAA;UAACb,QAAQ,EAAEzG,IAAI,CAACuH,QAAAA;AAAS,SAAE,CAAC,CAAA;AAC7C,KAAA;GACD,CAAA;AAED,EAAA,IAAI,CAAChB,IAAI,IAAI,CAAC4Z,SAAS,EAAE,OAAO,IAAI,CAAA;;AAEpC;EACA,MAAMtB,gBAAgB,GAAAnkB,gBAAA,CAAA;AACpBiD,IAAAA,KAAK,EAAEI,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,WAAA;AAAY,KAAC,CAAC;AAC9CiH,IAAAA,KAAK,EAAE,GAAG;IACVoD,IAAI;AACJnD,IAAAA,MAAM,EAAErF,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,cAAA;AAAe,KAAC,CAAC;AAClDmH,IAAAA,UAAU,EAAEtF,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE,cAAA;AAAe,KAAC,CAAC;AACtD2I,IAAAA,QAAQ,EAAE2T,OAAO;AACjB1T,IAAAA,IAAI,EAAE+Y,YAAY;AAClBiB,IAAAA,cAAc,EAAEhW,OAAAA;AAAO,GAAA,EACpBkS,UAAU,CACd,CAAA;;AAED;EACA,MAAMiE,eAAe,GAAAvkB,gBAAA,CAAA;AACnB6gB,IAAAA,IAAI,EAAEA,IAAI;AACV1U,IAAAA,IAAI,EAAE,SAAS;AACfC,IAAAA,QAAQ,EAAE;AAAEC,MAAAA,IAAI,EAAE,CAAA;KAAG;AACrBC,IAAAA,UAAU,EAAE;AAAED,MAAAA,IAAI,EAAE,EAAA;KAAI;AACxBE,IAAAA,YAAY,EAAE,KAAA;AAAK,GAAA,EAChBgU,SAAS,CACb,CAAA;EAED,oBACEjd,GAAA,CAACiF,aAAW,EAAAvI,gBAAA,CAAAA,gBAAA,KAAKmkB,gBAAgB,CAAA,EAAA,EAAA,EAAA;IAAAhhB,QAAA,eAC/BG,GAAA,CAAC4I,IAAI,EAAAlM,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EAAKukB,eAAe,CAAA,EAAA,EAAA,EAAA;MAAAphB,QAAA,EACtBkjB,cAAc,CAAChhB,GAAG,CAACC,IAAI,iBACtBhC,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRC,QAAAA,KAAK,EAAE4Z,WAAW,CAAChhB,IAAI,CAAE;QACzB6G,IAAI,EAAE7G,IAAI,CAAChF,GAAI;QAEfunB,YAAY,EAAEviB,IAAI,CAACqC,KAAM;QAAAxE,QAAA,EAExBqjB,cAAc,CAAClhB,IAAI,CAAA;OAHfA,EAAAA,IAAI,CAAChF,GAID,CACZ,CAAA;KACG,CAAA,CAAA;AAAC,GAAA,CACI,CAAC,CAAA;AAElB,CAAC,CAAA;AAED,iBAAe0C,aAAAA,IAAI,CAAC6iB,QAAQ,CAAC;;ACxQtB,MAAMiC,QAAQ,gBAAG9kB,IAAI,CAAC3B,IAAA,IAWvB;EAAA,IAXwB;IAC5B0mB,UAAU;IACVC,gBAAgB;IAChBC,cAAc;IACdC,QAAQ;IACRC,QAAQ;AACRC,IAAAA,UAAU,GAAGL,UAAU,CAAC7nB,MAAM,GAAG,CAAC;AAClCmoB,IAAAA,KAAK,GAAG;AACNC,MAAAA,SAAS,EAAE,mBAAmB;AAC9BC,MAAAA,YAAY,EAAE,sBAAA;AAChB,KAAA;AACF,GAAC,GAAAlnB,IAAA,CAAA;AACC,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;;AAEtB;EACA,MAAMymB,GAAG,GAAIloB,GAAG,IAAK;IACnB,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC4I,QAAQ,CAAC,GAAG,CAAC,EAAE;MAChD,OAAO7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAElB,GAAAA;AAAI,OAAC,CAAC,CAAA;AACxC,KAAA;AACA,IAAA,OAAOA,GAAG,CAAA;GACX,CAAA;AACD,EAAA,oBACEkD,IAAA,CAAA,KAAA,EAAA;AAAKG,IAAAA,SAAS,EAAC,0BAA0B;AAAAR,IAAAA,QAAA,gBACvCG,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,gBAAgB;MAAAR,QAAA,eAC7BG,GAAA,CAACmlB,IAAI,EAAA;AACHlf,QAAAA,MAAM,eACJ/F,IAAA,CAAA,KAAA,EAAA;AAAKG,UAAAA,SAAS,EAAC,2CAA2C;AAAAR,UAAAA,QAAA,gBACxDG,GAAA,CAAA,KAAA,EAAA;AAAKK,YAAAA,SAAS,EAAC,SAAS;YAAAR,QAAA,EAAEqlB,GAAG,CAAC,oBAAoB,CAAA;WAAO,CAAC,eAC1DllB,GAAA,CAAA,KAAA,EAAA;AAAKK,YAAAA,SAAS,EAAC,SAAS;YAAAR,QAAA,EAAEqlB,GAAG,CAAC,0BAA0B,CAAA;WAAO,CAAC,eAChEllB,GAAA,CAAA,KAAA,EAAA;AAAKK,YAAAA,SAAS,EAAC,SAAS;YAAAR,QAAA,EAAEqlB,GAAG,CAAC,2BAA2B,CAAA;AAAC,WAAM,CAAC,CAAA;AAAA,SAC9D,CACN;AACDT,QAAAA,UAAU,EAAEA,UAAW;AACvBW,QAAAA,MAAM,EAAC,IAAI;AACXC,QAAAA,UAAU,EAAGrjB,IAAI,iBACfhC,GAAA,CAACmlB,IAAI,CAAChc,IAAI,EAAA;AACR9I,UAAAA,SAAS,EAAA1D,YAAAA,CAAAA,MAAA,CACP+nB,gBAAgB,KAAK1iB,IAAI,CAAC9D,EAAE,GAAG,UAAU,GAAG,EAAE,CAC7C;AACHgL,UAAAA,KAAK,EAAE;AAAElD,YAAAA,OAAO,EAAE,UAAA;WAAa;AAC/B6L,UAAAA,OAAO,EAAEA,MAAM8S,cAAc,CAAC3iB,IAAI,CAAE;AAAAnC,UAAAA,QAAA,eAEpCK,IAAA,CAAA,KAAA,EAAA;AAAKG,YAAAA,SAAS,EAAC,gDAAgD;AAAAR,YAAAA,QAAA,gBAC7DG,GAAA,CAAA,KAAA,EAAA;AAAKK,cAAAA,SAAS,EAAC,SAAS;AAAAR,cAAAA,QAAA,eACxBG,GAAA,CAACmc,UAAU,CAACmJ,IAAI,EAAA;gBAACC,QAAQ,EAAA,IAAA;gBAAC5lB,KAAK,EAAEqC,IAAI,CAAC6G,IAAK;AAAAhJ,gBAAAA,QAAA,EACxCmC,IAAI,CAAC6G,IAAI,IAAIqc,GAAG,CAAC,iBAAiB,CAAA;eACpB,CAAA;aACd,CAAC,eAEJllB,GAAA,CAAA,KAAA,EAAA;AAAKK,cAAAA,SAAS,EAAC,SAAS;AAAAR,cAAAA,QAAA,eACtBG,GAAA,CAACmc,UAAU,CAACmJ,IAAI,EAAA;gBAACC,QAAQ,EAAA,IAAA;gBAAA1lB,QAAA,EACtBmC,IAAI,CAACwjB,WAAAA;eACS,CAAA;aACd,CAAC,eAENxlB,GAAA,CAAA,KAAA,EAAA;AAAKK,cAAAA,SAAS,EAAC,SAAS;AAAAR,cAAAA,QAAA,eACtBG,GAAA,CAACmc,UAAU,CAACmJ,IAAI,EAAA;gBAACC,QAAQ,EAAA,IAAA;gBAAC5lB,KAAK,EAAEqC,IAAI,CAACyjB,WAAY;gBAAA5lB,QAAA,EAC/CmC,IAAI,CAACyjB,WAAAA;eACS,CAAA;AAAC,aACf,CAAC,CAAA;WACH,CAAA;AAAC,SACG,CACX;AACFnqB,QAAAA,MAAM,EAAE;AACNoqB,UAAAA,SAAS,eACP1lB,GAAA,CAAA,KAAA,EAAA;AAAKK,YAAAA,SAAS,EAAC,KAAK;YAAAR,QAAA,eAClBG,GAAA,CAAC2lB,KAAK,EAAA;cACJC,KAAK,EAAED,KAAK,CAACE,sBAAuB;AACpCJ,cAAAA,WAAW,eACTzlB,GAAA,CAAA,MAAA,EAAA;AAAMK,gBAAAA,SAAS,EAAC,eAAe;gBAAAR,QAAA,eAC7BG,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,kBAAAA,IAAI,EAAC,MAAM;AACXyJ,kBAAAA,OAAO,EAAE+S,QAAS;AAClBvkB,kBAAAA,SAAS,EAAC,YAAY;AACtBkT,kBAAAA,IAAI,eAAEvT,GAAA,CAAC+lB,YAAY,IAAE,CAAE;kBAAAlmB,QAAA,EAEtBqlB,GAAG,CAAC,qBAAqB,CAAA;iBACpB,CAAA;eACJ,CAAA;aAET,CAAA;WACE,CAAA;AAET,SAAA;OACD,CAAA;AAAC,KACC,CAAC,EAGLJ,UAAU,iBACT9kB,GAAA,CAAA,KAAA,EAAA;AAAKkJ,MAAAA,KAAK,EAAE;AAAE3C,QAAAA,aAAa,EAAE,EAAE;AAAEJ,QAAAA,YAAY,EAAE,EAAA;OAAK;MAAAtG,QAAA,eAClDK,IAAA,CAAC8lB,KAAK,EAAA;AAACvT,QAAAA,IAAI,EAAC,QAAQ;QAAA5S,QAAA,EAAA,cAClBG,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,UAAAA,IAAI,EAAC,SAAS;AACdmL,UAAAA,IAAI,eAAEvT,GAAA,CAAC+lB,YAAY,IAAE,CAAE;AACvB1lB,UAAAA,SAAS,EAAC,UAAU;AACpBwR,UAAAA,OAAO,EAAE+S,QAAS;UAAA/kB,QAAA,EAEjBklB,KAAK,CAACC,SAAAA;AAAS,SACV,CAAC,eACThlB,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,UAAAA,IAAI,EAAC,SAAS;AACd/H,UAAAA,SAAS,EAAC,UAAU;AACpBwR,UAAAA,OAAO,EAAEgT,QAAS;UAAAhlB,QAAA,EAEjBklB,KAAK,CAACE,YAAAA;AAAY,SACb,CAAC,CAAA;OACJ,CAAA;AAAC,KACL,CACN,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC,CAAC,CAAA;AAEF,MAAMgB,YAAY,GAAGtnB,KAAA,IAAA;EAAA,IAAC;IAAEmM,OAAO;IAAEuI,MAAM;IAAExT,QAAQ;AAAE4I,IAAAA,QAAQ,GAAG,KAAK;AAAEyd,IAAAA,aAAa,GAAG,IAAA;AAAK,GAAC,GAAAvnB,KAAA,CAAA;AAAA,EAAA,oBACzFqB,GAAA,CAAA,KAAA,EAAA;AAAKK,IAAAA,SAAS,EAAC,oBAAoB;IAAAR,QAAA,eACjCK,IAAA,CAAC8lB,KAAK,EAAA;AAACvT,MAAAA,IAAI,EAAC,QAAQ;AAAA5S,MAAAA,QAAA,EACjBqmB,CAAAA,aAAa,eACdlmB,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,QAAAA,IAAI,EAAC,SAAS;AACd/H,QAAAA,SAAS,EAAC,UAAU;AACpByK,QAAAA,OAAO,EAAEA,OAAQ;AACjB+G,QAAAA,OAAO,EAAEwB,MAAO;AAChB5K,QAAAA,QAAQ,EAAEA,QAAS;AAAA5I,QAAAA,QAAA,EAElBA,QAAAA;AAAQ,OACH,CAAC,CAAA;KACJ,CAAA;AAAC,GACL,CAAC,CAAA;AAAA,CACP,CAAA;AAEM,MAAMsmB,eAAe,gBAAGzmB,IAAI,CAAC0mB,KAAA,IAgC9B;EAAA,IAhC+B;IACnC7I,IAAI;IACJ8I,MAAM;IACNC,MAAM;IACNC,MAAM;IACNC,YAAY;IACZC,QAAQ;IACRC,SAAS;IACTC,aAAa;IACbC,kBAAkB;AAClBC,IAAAA,MAAM,GAAG;AACPhe,MAAAA,IAAI,EAAE;AACJO,QAAAA,KAAK,EAAE,aAAa;AACpBU,QAAAA,WAAW,EAAE,8BAA8B;AAC3CT,QAAAA,QAAQ,EAAE,IAAA;OACX;AACDyd,MAAAA,aAAa,EAAE;AACb1d,QAAAA,KAAK,EAAE,mBAAA;OACR;AACDqc,MAAAA,WAAW,EAAE;AACXrc,QAAAA,KAAK,EAAE,oBAAoB;AAC3BU,QAAAA,WAAW,EAAE,qCAAA;AACf,OAAA;KACD;AACDib,IAAAA,KAAK,GAAG;AACNgC,MAAAA,UAAU,EAAE,oBAAoB;AAChCC,MAAAA,UAAU,EAAE,oBAAoB;AAChCC,MAAAA,UAAU,EAAE,oBAAoB;AAChCC,MAAAA,YAAY,EAAE,sBAAA;KACf;IACDC,aAAa;AAAE;AACfC,IAAAA,UAAU,GAAG,IAAA;AACf,GAAC,GAAAhB,KAAA,CAAA;AACC,EAAA,MAAMrmB,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM,CAAC4oB,eAAe,EAAEC,kBAAkB,CAAC,GAAG5mB,QAAQ,CAAC,EAAE,CAAC,CAAA;EAC1D,MAAM,CAAC6mB,UAAU,EAAEC,aAAa,CAAC,GAAG9mB,QAAQ,CAAC,KAAK,CAAC,CAAC;EACpD,MAAM+mB,eAAe,GAAG7e,IAAI,CAAC8e,QAAQ,CAAC,eAAe,EAAEnK,IAAI,CAAC,IAAI,EAAE,CAAA;;AAElE;EACA,MAAM2H,GAAG,GAAIloB,GAAG,IAAK;IACnB,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC4I,QAAQ,CAAC,GAAG,CAAC,EAAE;MAChD,OAAO7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAElB,GAAAA;AAAI,OAAC,CAAC,CAAA;AACxC,KAAA;AACA,IAAA,OAAOA,GAAG,CAAA;GACX,CAAA;;AAED;AACA,EAAA,MAAM2qB,eAAe,GAAGd,MAAM,CAACC,aAAa,KAAK,IAAI,IAAID,MAAM,CAACC,aAAa,KAAKzoB,SAAS,CAAA;;AAE3F;AACA6M,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIyc,eAAe,EAAE;MACnB,MAAMC,YAAY,GAAGrK,IAAI,CAACsK,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;MAC9DP,kBAAkB,CAACM,YAAY,CAAC,CAAA;AAClC,KAAA;GACD,EAAE,CAACT,aAAa,EAAE5J,IAAI,EAAEoK,eAAe,CAAC,CAAC,CAAC;;AAE3C;AACAzc,EAAAA,SAAS,CAAC,MAAM;IACdsc,aAAa,CAAC,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAACb,aAAa,EAAEQ,aAAa,CAAC,CAAC,CAAA;;AAElC;AACA,EAAA,MAAMW,eAAe,GAAGhjB,OAAO,CAAC,MAAM;AACpC,IAAA,IAAI,CAAC6iB,eAAe,EAAE,OAAO,EAAE,CAAA;IAE/B,OAAOd,MAAM,CAACC,aAAa,CAAC7c,OAAO,CAAClI,GAAG,CAACgmB,QAAQ,IAAI;MAClD,MAAMC,mBAAmB,GAAGX,eAAe,CAACzhB,QAAQ,CAACmiB,QAAQ,CAAClf,IAAI,CAAC,CAAA;AACnE,MAAA,MAAMof,aAAa,GAAGtB,aAAa,GAAG,CAACqB,mBAAmB,GAAG,KAAK,CAAA;AAElE,MAAA,OAAAtrB,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EACKqrB,QAAQ,CAAA,EAAA,EAAA,EAAA;AACXtf,QAAAA,QAAQ,EAAEwf,aAAa;AACvBC,QAAAA,iBAAiB,EAAEF,mBAAAA;AAAmB,OAAA,CAAA,CAAA;AAE1C,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACX,eAAe,EAAEV,aAAa,EAAEgB,eAAe,EAAEd,MAAM,CAACC,aAAa,CAAC,CAAC,CAAA;EAE3E,MAAMqB,oBAAoB,GAAIC,aAAa,IAAK;IAC9C7K,IAAI,CAAC6B,cAAc,CAAC;AAAE0H,MAAAA,aAAa,EAAEsB,aAAAA;AAAc,KAAC,CAAC,CAAA;GACtD,CAAA;EAED,MAAMC,eAAe,GAAGA,MAAM;IAC5Bb,aAAa,CAAC,IAAI,CAAC,CAAA;AACnB,IAAA,IAAIjB,MAAM,EAAE;MACVA,MAAM,EAAE,CAAC;AACX,KAAA;GACD,CAAA;EAED,MAAM+B,gBAAgB,GAAGA,MAAM;AAC7B,IAAA,IAAI1B,kBAAkB,EAAE;AACtBrJ,MAAAA,IAAI,CAAC6B,cAAc,CAACwH,kBAAkB,CAAC,CAAA;AACzC,KAAA;IAEAY,aAAa,CAAC,KAAK,CAAC,CAAA;AAEpB,IAAA,IAAIhB,YAAY,EAAE;AAChBA,MAAAA,YAAY,EAAE,CAAA;AAChB,KAAA;GACD,CAAA;AAED,EAAA,MAAM+B,cAAc,GAAG,YAAY;IACjC,IAAI;AACF,MAAA,IAAI9B,QAAQ,EAAE;QACZ,MAAMA,QAAQ,EAAE,CAAA;AAClB,OAAA;MAEAe,aAAa,CAAC,KAAK,CAAC,CAAA;KACrB,CAAC,OAAO1mB,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,cAAc,EAAEA,KAAK,CAAC,CAAA;AACtC,KAAA;GACD,CAAA;AAED,EAAA,MAAM0nB,UAAU,GAAG,YAAY;IAC7B,IAAI;AACF,MAAA,MAAMC,UAAU,GAAG,MAAMlL,IAAI,CAACuC,cAAc,EAAE,CAAA;AAE9C,MAAA,MAAM4I,QAAQ,GAAG;AACfxqB,QAAAA,EAAE,EAAEqf,IAAI,CAACsK,aAAa,CAAC,IAAI,CAAC;AAC5B;QACAhf,IAAI,EAAE+d,kBAAkB,CAAC/d,IAAI;AAC7Bie,QAAAA,aAAa,EAAEa,eAAe,GACzBc,UAAU,CAAC3B,aAAa,IAAI,EAAE,GAC9B,CAAAF,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,uBAAlBA,kBAAkB,CAAEE,aAAa,KAAI,EAAA;OAC3C,CAAA;MACD,MAAMR,MAAM,CAACoC,QAAQ,CAAC,CAAA;KACvB,CAAC,OAAO5nB,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,SAAS,EAAEA,KAAK,CAAC,CAAA;AACjC,KAAA;GACD,CAAA;;AAED;AACA,EAAA,MAAM6nB,wBAAwB,GAAGhC,aAAa,IAAI,CAACY,UAAU,CAAA;AAC7D,EAAA,MAAMqB,uBAAuB,GAAGrB,UAAU,CAAC;;EAE3C,oBACErnB,IAAA,CAAC2oB,IAAI,EAAA;IAACC,QAAQ,EAAA,IAAA;AAAC5f,IAAAA,KAAK,EAAE;AAAE6f,MAAAA,MAAM,EAAE,MAAM;AAAE/iB,MAAAA,OAAO,EAAE,WAAA;KAAc;IAAAnG,QAAA,EAAA,cAC7DK,IAAA,CAAC0I,IAAI,EAAA;AACH2U,MAAAA,IAAI,EAAEA,IAAK;AACXyL,MAAAA,MAAM,EAAC,UAAU;AACjB/f,MAAAA,YAAY,EAAC,KAAK;AAClBC,MAAAA,KAAK,EAAE;AAAE+f,QAAAA,IAAI,EAAE,CAAC;AAAEC,QAAAA,SAAS,EAAE,MAAA;OAAS;AAAArpB,MAAAA,QAAA,EAGtCG,cAAAA,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRN,QAAAA,IAAI,EAAC,MAAM;QACXO,KAAK,EAAE8b,GAAG,CAAC2B,MAAM,CAAChe,IAAI,CAACO,KAAK,CAAE;QAC9BC,QAAQ,EAAA,IAAA;QAAAxJ,QAAA,eAERG,GAAA,CAACsJ,KAAK,EAAA;UACJQ,WAAW,EAAEob,GAAG,CAAC2B,MAAM,CAAChe,IAAI,CAACiB,WAAW,CAAE;AAC1CrB,UAAAA,QAAQ,EAAEkgB,wBAAAA;SACX,CAAA;OACQ,CAAC,EAGXhB,eAAe,iBACd3nB,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRN,QAAAA,IAAI,EAAC,eAAe;QACpBO,KAAK,EAAE8b,GAAG,CAAC2B,MAAM,CAACC,aAAa,CAAC1d,KAAK,CAAE;QACvCC,QAAQ,EAAA,IAAA;AAAAxJ,QAAAA,QAAA,eAERG,GAAA,CAACmpB,QAAQ,CAACC,KAAK,EAAA;AACb/oB,UAAAA,SAAS,EAAC,wBAAwB;AAClCoJ,UAAAA,QAAQ,EAAE0e,oBAAqB;AAC/B1f,UAAAA,QAAQ,EAAEmgB,uBAAwB;UAAA/oB,QAAA,EAEjCioB,eAAe,CAAC/lB,GAAG,CAACgmB,QAAQ,iBAC3B/nB,GAAA,CAACmpB,QAAQ,EAAA;YAEP9kB,KAAK,EAAE0jB,QAAQ,CAAClf,IAAK;AACrBJ,YAAAA,QAAQ,EAAEsf,QAAQ,CAACtf,QAAQ,IAAImgB,uBAAwB;YAAA/oB,QAAA,EAEtDkoB,QAAQ,CAAC3e,KAAAA;WAJL2e,EAAAA,QAAQ,CAAClf,IAKN,CACX,CAAA;SACa,CAAA;OACP,CACZ,EAGAge,MAAM,CAACpB,WAAW,iBACjBzlB,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAA;AACRN,QAAAA,IAAI,EAAC,aAAa;QAClBO,KAAK,EAAE8b,GAAG,CAAC2B,MAAM,CAACpB,WAAW,CAACrc,KAAK,CAAE;AAAAvJ,QAAAA,QAAA,eAErCG,GAAA,CAACsJ,KAAK,CAACE,QAAQ,EAAA;AACb6f,UAAAA,IAAI,EAAE,CAAE;UACRvf,WAAW,EAAEob,GAAG,CAAC2B,MAAM,CAACpB,WAAW,CAAC3b,WAAW,CAAE;AACjDrB,UAAAA,QAAQ,EAAEkgB,wBAAyB;AACnCzf,UAAAA,KAAK,EAAE;AACLogB,YAAAA,MAAM,EAAE,MAAA;AACV,WAAA;SACD,CAAA;AAAC,OACO,CACZ,CAAA;AAAA,KACG,CAAC,EACN3C,aAAa,GACZY,UAAU;AAAA;AACR;IACAvnB,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,oBAAoB;MAAAR,QAAA,eACjCK,IAAA,CAAC8lB,KAAK,EAAA;AAACvT,QAAAA,IAAI,EAAC,QAAQ;QAAA5S,QAAA,EAAA,cAClBG,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,UAAAA,IAAI,EAAC,SAAS;AACd/H,UAAAA,SAAS,EAAC,UAAU;AACpBwR,UAAAA,OAAO,EAAEyW,gBAAiB;UAAAzoB,QAAA,EAEzBklB,KAAK,CAACmC,YAAAA;AAAY,SACb,CAAC,eACTlnB,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,UAAAA,IAAI,EAAC,SAAS;AACd/H,UAAAA,SAAS,EAAC,UAAU;AACpBwR,UAAAA,OAAO,EAAE0W,cAAe;AACxBzd,UAAAA,OAAO,EAAE4b,SAAU;UAAA7mB,QAAA,EAElBklB,KAAK,CAACiC,UAAAA;AAAU,SACX,CAAC,CAAA;OACJ,CAAA;AAAC,KACL,CAAC;AAAA;AAEN;AACAhnB,IAAAA,GAAA,CAACimB,YAAY,EAAAvpB,gBAAA,CAAAA,gBAAA,CAAA;AACX2W,MAAAA,MAAM,EAAEmV,UAAAA;AAAW,KAAA,EACdb,eAAe,IAAI;MAAElf,QAAQ,EAAE,CAACgf,eAAe,CAAC7qB,MAAAA;KAAQ,CAAA,EAAA,EAAA,EAAA;AAC7DspB,MAAAA,aAAa,EAAEkB,UAAU,gBACvBpnB,GAAA,CAAC8lB,MAAM,EAAA;AACL1d,QAAAA,IAAI,EAAC,SAAS;AACd/H,QAAAA,SAAS,EAAC,UAAU;AACpBwR,QAAAA,OAAO,EAAEwW,eAAgB;QAAAxoB,QAAA,EAExBklB,KAAK,CAACkC,UAAAA;OACD,CAAC,GACP,IAAK;MAAApnB,QAAA,EAERklB,KAAK,CAACgC,UAAAA;AAAU,KAAA,CACL,CACf,gBAED/mB,GAAA,CAACimB,YAAY,EAAA;AACX5S,MAAAA,MAAM,EAAEgT,MAAO;AACfvb,MAAAA,OAAO,EAAE4b,SAAU;MAAA7mB,QAAA,EAElBklB,KAAK,CAACiC,UAAAA;AAAU,KACL,CACf,CAAA;AAAA,GACG,CAAC,CAAA;AAEX,CAAC,CAAC;;ACvXF,MAAMuC,MAAM,GAAGxrB,IAAA,IAwCT;EAAA,IAxCU;IACdwK,IAAI;IACJiS,OAAO;AACP;IACAgP,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,YAAY;IACZC,aAAa;AAAG;IAChBC,WAAW;AAAK;;AAEhB;AACAjD,IAAAA,MAAM,GAAG;AACPhe,MAAAA,IAAI,EAAE;AACJO,QAAAA,KAAK,EAAE,aAAa;AACpBU,QAAAA,WAAW,EAAE,8BAA8B;AAC3CT,QAAAA,QAAQ,EAAE,IAAA;AACZ,OAAA;KACD;AACD0b,IAAAA,KAAK,GAAG;AACNplB,MAAAA,KAAK,EAAE,cAAc;AACrB+lB,MAAAA,SAAS,EAAE,qBAAqB;AAChCqE,MAAAA,aAAa,EAAE,8BAA8B;AAC7CC,MAAAA,WAAW,EAAE,4BAA4B;AACzCC,MAAAA,QAAQ,EAAE,qBAAqB;AAC/BC,MAAAA,WAAW,EAAE,gBAAgB;AAC7BlF,MAAAA,SAAS,EAAE,mBAAmB;AAC9BC,MAAAA,YAAY,EAAE,sBAAsB;AACpC8B,MAAAA,UAAU,EAAE,oBAAoB;AAChCC,MAAAA,UAAU,EAAE,oBAAoB;AAChCC,MAAAA,UAAU,EAAE,oBAAoB;AAChCC,MAAAA,YAAY,EAAE,sBAAA;KACf;AACD;AACA/hB,IAAAA,KAAK,GAAG,IAAI;AACZ4jB,IAAAA,MAAM,GAAG,GAAG;AACZ1oB,IAAAA,SAAS,GAAG,EAAE;AACd;AACA+mB,IAAAA,UAAU,GAAG,IAAA;AACf,GAAC,GAAArpB,IAAA,CAAA;AACC,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;IAAEH,OAAO;AAAEqN,IAAAA,KAAAA;AAAM,GAAC,GAAG3E,GAAG,CAACC,MAAM,EAAE,CAAA;EACvC,MAAM,CAACkjB,UAAU,EAAEC,aAAa,CAAC,GAAG1pB,QAAQ,CAAC,EAAE,CAAC,CAAA;EAChD,MAAM,CAAC2pB,cAAc,EAAEC,iBAAiB,CAAC,GAAG5pB,QAAQ,CAAC,IAAI,CAAC,CAAA;EAC1D,MAAM,CAACoK,OAAO,EAAEC,UAAU,CAAC,GAAGrK,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC7C,MAAM,CAACymB,aAAa,EAAEoD,gBAAgB,CAAC,GAAG7pB,QAAQ,CAAC,CAAC,CAAC,CAAA;EACrD,MAAM,CAAC6c,IAAI,CAAC,GAAG3U,IAAI,CAAC4U,OAAO,EAAE,CAAA;;AAE7B;AACA,EAAA,MAAM0H,GAAG,GAAGtkB,WAAW,CAAE5D,GAAG,IAAK;IAC/B,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC4I,QAAQ,CAAC,GAAG,CAAC,EAAE;MAChD,OAAO7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAElB,GAAAA;AAAI,OAAC,CAAC,CAAA;AACxC,KAAA;AACA,IAAA,OAAOA,GAAG,CAAA;AACZ,GAAC,EAAE,CAAC+C,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,MAAMyqB,eAAe,GAAG5pB,WAAW,CAAC,YAAY;IAC9C,IAAI;AACF,MAAA,MAAMS,IAAI,GAAG,MAAMmoB,aAAa,EAAE,CAAA;AAClC,MAAA,MAAMiB,OAAO,GAAG,CAAAppB,IAAI,KAAJA,IAAAA,IAAAA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEqpB,WAAW,KAAIrpB,IAAI,IAAI,EAAE,CAAA;MAC/C+oB,aAAa,CAACK,OAAO,CAAC,CAAA;;AAEtB;AACA,MAAA,IAAIA,OAAO,CAAC7tB,MAAM,GAAG,CAAC,EAAE;AACtB,QAAA,MAAM+tB,WAAW,GAAGF,OAAO,CAAC,CAAC,CAAC,CAAA;QAC9BH,iBAAiB,CAACK,WAAW,CAAC,CAAA;AAC9BpN,QAAAA,IAAI,CAAC6B,cAAc,CAACuL,WAAW,CAAC,CAAA;AAChCJ,QAAAA,gBAAgB,CAAC1pB,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC,CAAA;AACpC,OAAA;KACD,CAAC,OAAOC,KAAK,EAAE;AACb5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC,CAAA;AACvD,KAAA;AACF,GAAC,EAAE,CAAC0oB,aAAa,CAAC,CAAC,CAAA;AAEnB,EAAA,MAAMoB,kBAAkB,GAAGhqB,WAAW,CAAEiqB,MAAM,IAAK;IACjDP,iBAAiB,CAACO,MAAM,CAAC,CAAA;AACzBtN,IAAAA,IAAI,CAAC6B,cAAc,CAACyL,MAAM,CAAC,CAAA;AAC3BN,IAAAA,gBAAgB,CAAC1pB,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC,CAAA;AACpC,GAAC,EAAE,CAAC0c,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,MAAMuN,YAAY,GAAGlqB,WAAW,CAAC,MAAM;AAAA,IAAA,IAAAmqB,qBAAA,CAAA;AACrC,IAAA,MAAMC,aAAa,GAAGb,UAAU,CAACc,IAAI,CAACjpB,IAAI,IAAI,CAACA,IAAI,CAAC9D,EAAE,CAAC,CAAA;AAEvD,IAAA,IAAI8sB,aAAa,EAAE;AACjB1sB,MAAAA,OAAO,CAAC4sB,OAAO,CAACnrB,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,yBAAA;AAA0B,OAAC,CAAC,CAAC,CAAA;AACtE,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,MAAMitB,SAAS,GAAG/uB,MAAM,CAACC,IAAI,CAACwqB,MAAM,CAAC,CAACuE,MAAM,CAAC,CAACC,GAAG,EAAEC,SAAS,KAAK;AAC/DD,MAAAA,GAAG,CAACC,SAAS,CAAC,GAAG,EAAE,CAAA;AACnB,MAAA,OAAOD,GAAG,CAAA;KACX,EAAE,EAAE,CAAC,CAAA;;AAEN;IACA,IAAAN,CAAAA,qBAAA,GAAIlE,MAAM,CAACC,aAAa,MAAAiE,IAAAA,IAAAA,qBAAA,KAApBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAsB9gB,OAAO,EAAE;AACjCkhB,MAAAA,SAAS,CAACrE,aAAa,GAAGD,MAAM,CAACC,aAAa,CAAC7c,OAAO,CAAClI,GAAG,CAACC,IAAI,IAAIA,IAAI,CAAC6G,IAAI,CAAC,CAAA;AAC/E,KAAA;AAEAuhB,IAAAA,aAAa,CAAC,CAAC,GAAGD,UAAU,EAAEgB,SAAS,CAAC,CAAC,CAAA;IACzCb,iBAAiB,CAACa,SAAS,CAAC,CAAA;AAC5B5N,IAAAA,IAAI,CAAC6B,cAAc,CAAC+L,SAAS,CAAC,CAAA;GAC/B,EAAE,CAAC5N,IAAI,EAAE4M,UAAU,EAAE7rB,OAAO,CAAC,CAAC,CAAA;AAE/B,EAAA,MAAMitB,YAAY,GAAG3qB,WAAW,CAAC,YAAY;IAC3C,IAAI,CAACypB,cAAc,EAAE,OAAA;;AAErB;AACA,IAAA,MAAMmB,eAAe,GAAG,CAACnB,cAAc,CAACnsB,EAAE,CAAA;IAC1C,MAAMutB,UAAU,GAAGpB,cAAc,CAACxhB,IAAI,IAAIqc,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAEhE,IAAI;MACFvZ,KAAK,CAAC2H,OAAO,CAAC;AACZC,QAAAA,IAAI,eAAEvT,GAAA,CAACwT,uBAAuB,IAAE,CAAC;AACjC7T,QAAAA,KAAK,EAAEulB,GAAG,CAAC,qBAAqB,CAAC;QACjCnf,OAAO,EAAA,EAAA,CAAApJ,MAAA,CAAKuoB,GAAG,CAAC,8BAA8B,CAAC,EAAAvoB,KAAAA,CAAAA,CAAAA,MAAA,CAAK8uB,UAAU,EAAI,KAAA,CAAA;AAClEpmB,QAAAA,UAAU,EAAE6f,GAAG,CAAC,eAAe,CAAC;AAChC9f,QAAAA,MAAM,EAAE8f,GAAG,CAAC,eAAe,CAAC;QAC5Bpe,IAAI,EAAE,YAAY;AAChB;UACA,MAAM4kB,YAAY,GAAGvB,UAAU,CAACnc,SAAS,CAAChM,IAAI,IAC5CwpB,eAAe,GAAG,CAACxpB,IAAI,CAAC9D,EAAE,GAAG8D,IAAI,CAAC9D,EAAE,KAAKmsB,cAAc,CAACnsB,EAC1D,CAAC,CAAA;UAED,IAAI,CAACstB,eAAe,EAAE;AACpB,YAAA,MAAM9B,YAAY,CAAC;cAAExrB,EAAE,EAAEmsB,cAAc,CAACnsB,EAAAA;AAAG,aAAC,CAAC,CAAA;AAC7CI,YAAAA,OAAO,CAACgT,OAAO,CAAC4T,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;AACxC,WAAC,MAAM;AACL;AACAkF,YAAAA,aAAa,CAACvpB,IAAI,IAAIA,IAAI,CAACqB,MAAM,CAACF,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC9D,EAAE,CAAC,CAAC,CAAA;AACvD,WAAA;;AAEA;AACA,UAAA,MAAMytB,WAAW,GAAGH,eAAe,GAC/BrB,UAAU,CAACjoB,MAAM,CAACF,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC9D,EAAE,CAAC,GACpC,MAAMsrB,aAAa,EAAE,CAAC7G,IAAI,CAACthB,IAAI,IAAI,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEqpB,WAAW,KAAIrpB,IAAI,IAAI,EAAE,CAAC,CAAA;;AAEvE;UACA+oB,aAAa,CAACuB,WAAW,CAAC,CAAA;AAE1B,UAAA,IAAIA,WAAW,CAAC/uB,MAAM,GAAG,CAAC,EAAE;AAC1B;YACA,IAAIgvB,SAAS,GAAG,CAAC,CAAA;YAEjB,IAAIF,YAAY,GAAG,CAAC,EAAE;AACpB;AACA,cAAA,IAAIA,YAAY,GAAGC,WAAW,CAAC/uB,MAAM,EAAE;gBACrCgvB,SAAS,GAAGF,YAAY,CAAC;AAC3B,eAAC,MAAM;AACLE,gBAAAA,SAAS,GAAGD,WAAW,CAAC/uB,MAAM,GAAG,CAAC,CAAC;AACrC,eAAA;AACF,aAAA;AAEA,YAAA,MAAMivB,UAAU,GAAGF,WAAW,CAACC,SAAS,CAAC,CAAA;AACzC,YAAA,IAAIC,UAAU,EAAE;cACdvB,iBAAiB,CAACuB,UAAU,CAAC,CAAA;AAC7BtO,cAAAA,IAAI,CAAC6B,cAAc,CAACyM,UAAU,CAAC,CAAA;AAC/BtB,cAAAA,gBAAgB,CAAC1pB,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC,CAAA;AAClC,cAAA,OAAA;AACF,aAAA;AACF,WAAA;;AAEA;UACAypB,iBAAiB,CAAC,IAAI,CAAC,CAAA;UACvB/M,IAAI,CAACwB,WAAW,EAAE,CAAA;AACpB,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAC,OAAOje,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC,CAAA;AAClD,KAAA;AACF,GAAC,EAAE,CAACupB,cAAc,EAAE9M,IAAI,EAAE5R,KAAK,EAAErN,OAAO,EAAEorB,YAAY,EAAEF,aAAa,EAAEtE,GAAG,CAAC,CAAC,CAAA;AAE5E,EAAA,MAAM4G,gBAAgB,GAAGlrB,WAAW,CAAC,MAAO8nB,QAAQ,IAAK;IACvD,IAAI,CAACA,QAAQ,EAAE,OAAA;IAEf,IAAIqD,aAAa,GAAG,IAAI,CAAA;AACxB,IAAA,IAAIC,SAAS,GAAG,IAAI,CAAC;;AAErBD,IAAAA,aAAa,GAAGpgB,KAAK,CAAC2H,OAAO,CAAC;AAC5B3T,MAAAA,KAAK,EAAEulB,GAAG,CAAC,mBAAmB,CAAC;AAC/Bnf,MAAAA,OAAO,EAAApJ,EAAAA,CAAAA,MAAA,CAAKuoB,GAAG,CAAC,4BAA4B,CAAC,EAAA,KAAA,CAAA,CAAAvoB,MAAA,CAAK+rB,QAAQ,CAAC7f,IAAI,EAAI,KAAA,CAAA;AACnExD,MAAAA,UAAU,EAAE6f,GAAG,CAAC,eAAe,CAAC;AAChC9f,MAAAA,MAAM,EAAE8f,GAAG,CAAC,oBAAoB,CAAC;AACjC;MACApe,IAAI,EAAEA,MAAM;AACV,QAAA,OAAO,IAAI4X,OAAO,CAAC,CAACuN,OAAO,EAAEC,MAAM,KAAK;AACtCF,UAAAA,SAAS,GAAGC,OAAO,CAAA;;AAEnB;UACAF,aAAa,CAACI,MAAM,CAAC;AACnBxsB,YAAAA,KAAK,EAAEulB,GAAG,CAAC,qBAAqB,CAAC;YACjCnf,OAAO,eAAE/F,GAAA,CAACkS,IAAI,EAAA;AAACO,cAAAA,IAAI,EAAC,OAAO;AAACpS,cAAAA,SAAS,EAAC,eAAA;AAAe,aAAE,CAAC;AACxD+rB,YAAAA,aAAa,EAAE;AAAEljB,cAAAA,KAAK,EAAE;AAAEwG,gBAAAA,OAAO,EAAE,MAAA;AAAO,eAAA;aAAG;AAC7ClH,YAAAA,iBAAiB,EAAE;AAAEU,cAAAA,KAAK,EAAE;AAAEwG,gBAAAA,OAAO,EAAE,MAAA;AAAO,eAAA;aAAG;AACjDhH,YAAAA,YAAY,EAAE,KAAK;AACnBC,YAAAA,QAAQ,EAAE,KAAA;AACZ,WAAC,CAAC,CAAA;AAEF,UAAA,CAAC,YAAY;YACX,IAAI;cACF,MAAMghB,UAAU,CAAAjtB,gBAAA,CAAA;gBACdwB,EAAE,EAAEwqB,QAAQ,CAACxqB,EAAAA;eACTwqB,EAAAA,QAAQ,CAAC5B,aAAa,IAAI;gBAAEA,aAAa,EAAE4B,QAAQ,CAAC5B,aAAAA;AAAc,eAAC,CACxE,CAAC,CAAA;;AAEF;AACA3V,cAAAA,UAAU,CAAC,MAAM;AAAA,gBAAA,IAAAkb,UAAA,CAAA;gBACf,CAAAA,UAAA,GAAAL,SAAS,MAAA,IAAA,IAAAK,UAAA,KAATA,KAAAA,CAAAA,IAAAA,UAAA,EAAa,CAAA;AACb/tB,gBAAAA,OAAO,CAACgT,OAAO,CAAC4T,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;AACtC;AACA,gBAAA,IAAI2E,aAAa,EAAE;kBACjBA,aAAa,CAACnB,QAAQ,CAAC,CAAA;AACzB,iBAAA;eACD,EAAE,IAAI,CAAC,CAAA;aACT,CAAC,OAAO5nB,KAAK,EAAE;AACd5F,cAAAA,OAAO,CAAC4F,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC,CAAA;AAC9C;cACAirB,aAAa,CAACO,OAAO,EAAE,CAAA;AACvB;AACA,cAAA,IAAIxC,WAAW,EAAE;AACfA,gBAAAA,WAAW,CAAChpB,KAAK,EAAE4nB,QAAQ,CAAC,CAAA;AAC9B,eAAA;AACF,aAAA;AACF,WAAC,GAAG,CAAA;AACN,SAAC,CAAC,CAAA;OACH;MACD7hB,QAAQ,EAAEA,MAAM;AACd;AAAA,OAAA;AAEJ,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAAC8iB,UAAU,EAAErrB,OAAO,EAAEqN,KAAK,EAAEke,aAAa,EAAEC,WAAW,EAAE5E,GAAG,CAAC,CAAC,CAAA;AAEjE,EAAA,MAAMqH,UAAU,GAAG3rB,WAAW,CAAC,YAAY;IACzCmK,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhB,IAAI;MAAA,IAAAyhB,YAAA,EAAAC,sBAAA,CAAA;AACF,MAAA,MAAMtuB,MAAM,GAAG,MAAMof,IAAI,CAAC0F,cAAc,EAAE,CAAA;;AAE1C;MACA,IAAAuJ,CAAAA,YAAA,GAAI3F,MAAM,CAAChe,IAAI,MAAA2jB,IAAAA,IAAAA,YAAA,KAAXA,KAAAA,CAAAA,IAAAA,YAAA,CAAanjB,QAAQ,EAAE;AACzB,QAAA,IAAI,CAAClL,MAAM,CAAC0K,IAAI,IAAI1K,MAAM,CAAC0K,IAAI,CAACZ,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7C3J,UAAAA,OAAO,CAACwC,KAAK,CAACokB,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAA;AACpD,UAAA,OAAO;AACT,SAAA;AACF,OAAA;;AAEA;MACA,IAAAuH,CAAAA,sBAAA,GAAI5F,MAAM,CAACC,aAAa,MAAA2F,IAAAA,IAAAA,sBAAA,KAApBA,KAAAA,CAAAA,IAAAA,sBAAA,CAAsBpjB,QAAQ,EAAE;AAClC,QAAA,IAAI,CAAClL,MAAM,CAAC2oB,aAAa,IAAI3oB,MAAM,CAAC2oB,aAAa,CAAClqB,MAAM,KAAK,CAAC,EAAE;AAC9D0B,UAAAA,OAAO,CAACwC,KAAK,CAACokB,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAA;AACxD,UAAA,OAAA;AACF,SAAA;AACF,OAAA;MAEA,MAAMuE,UAAU,CAACtrB,MAAM,CAAC,CAAA;AACxBG,MAAAA,OAAO,CAACgT,OAAO,CAAC4T,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAEtC,MAAA,MAAMwH,eAAe,GAAGvuB,MAAM,CAAC0K,IAAI,CAAA;;AAEnC;AACA,MAAA,MAAMxH,IAAI,GAAG,MAAMmoB,aAAa,EAAE,CAAA;AAClC,MAAA,MAAMiB,OAAO,GAAG,CAAAppB,IAAI,KAAJA,IAAAA,IAAAA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEqpB,WAAW,KAAIrpB,IAAI,IAAI,EAAE,CAAA;MAC/C+oB,aAAa,CAACK,OAAO,CAAC,CAAA;;AAEtB;AACA,MAAA,MAAMkC,gBAAgB,GAAGlC,OAAO,CAACQ,IAAI,CAACjpB,IAAI,IAAIA,IAAI,CAAC6G,IAAI,KAAK6jB,eAAe,CAAC,CAAA;AAE5E,MAAA,IAAIC,gBAAgB,EAAE;QACpBrC,iBAAiB,CAACqC,gBAAgB,CAAC,CAAA;AACnCpP,QAAAA,IAAI,CAAC6B,cAAc,CAACuN,gBAAgB,CAAC,CAAA;AACrCpC,QAAAA,gBAAgB,CAAC1pB,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC,CAAA;AACpC,OAAC,MAAM;QACLypB,iBAAiB,CAACnsB,MAAM,CAAC,CAAA;AAC3B,OAAA;KACD,CAAC,OAAO2C,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC,CAAA;AAChD,KAAC,SAAS;MACRiK,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,KAAA;AACF,GAAC,EAAE,CAACwS,IAAI,EAAEjf,OAAO,EAAEuoB,MAAM,EAAE4C,UAAU,EAAED,aAAa,EAAEtE,GAAG,CAAC,CAAC,CAAA;AAE3D,EAAA,MAAM0H,YAAY,GAAGhsB,WAAW,CAAC,YAAY;AAC3C,IAAA,IAAI,CAACypB,cAAc,IAAI,CAACA,cAAc,CAACnsB,EAAE,EAAE;AACzCI,MAAAA,OAAO,CAACwC,KAAK,CAACokB,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAA;AACzD,MAAA,OAAA;AACF,KAAA;IAEAna,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhB,IAAK;AAAA,MAAA,IAAA8hB,aAAA,CAAA;AACH,MAAA,MAAM1uB,MAAM,GAAG,MAAMof,IAAI,CAAC0F,cAAc,EAAE,CAAA;;AAE1C;MACA,IAAA4J,CAAAA,aAAA,GAAIhG,MAAM,CAAChe,IAAI,MAAAgkB,IAAAA,IAAAA,aAAA,KAAXA,KAAAA,CAAAA,IAAAA,aAAA,CAAaxjB,QAAQ,EAAE;AACzB,QAAA,IAAI,CAAClL,MAAM,CAAC0K,IAAI,IAAI1K,MAAM,CAAC0K,IAAI,CAACZ,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7C3J,UAAAA,OAAO,CAACwC,KAAK,CAACokB,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAA;AACpD,UAAA,OAAO;AACT,SAAA;AACF,OAAA;AAEA,MAAA,MAAM0E,YAAY,CAAC;QACjB1rB,EAAE,EAAEmsB,cAAc,CAACnsB,EAAE;QACrB2K,IAAI,EAAE1K,MAAM,CAAC0K,IAAI;QACjB4c,WAAW,EAAEtnB,MAAM,CAACsnB,WAAAA;AACtB,OAAC,CAAC,CAAA;;AAEF;AACA,MAAA,MAAMpkB,IAAI,GAAG,MAAMmoB,aAAa,EAAE,CAAA;AAClC,MAAA,MAAMiB,OAAO,GAAG,CAAAppB,IAAI,KAAJA,IAAAA,IAAAA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEqpB,WAAW,KAAIrpB,IAAI,IAAI,EAAE,CAAA;MAC/C+oB,aAAa,CAACK,OAAO,CAAC,CAAA;;AAEtB;AACA,MAAA,MAAMqC,aAAa,GAAGrC,OAAO,CAACQ,IAAI,CAACjpB,IAAI,IAAIA,IAAI,CAAC9D,EAAE,KAAKmsB,cAAc,CAACnsB,EAAE,CAAC,CAAA;AACzE,MAAA,IAAI4uB,aAAa,EAAE;QACjBxC,iBAAiB,CAACwC,aAAa,CAAC,CAAA;AAClC,OAAA;AAEAxuB,MAAAA,OAAO,CAACgT,OAAO,CAAC4T,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;KACvC,CAAC,OAAOpkB,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC,CAAA;AAChD,MAAA,MAAMA,KAAK,CAAA;AACb,KAAC,SAAS;MACRiK,UAAU,CAAC,KAAK,CAAC,CAAA;AACnB,KAAA;AACF,GAAC,EAAE,CAACwS,IAAI,EAAEjf,OAAO,EAAEuoB,MAAM,EAAE+C,YAAY,EAAES,cAAc,EAAEnF,GAAG,CAAC,CAAC,CAAA;;AAE9D;AACAha,EAAAA,SAAS,CAAC,MAAM;AACdsf,IAAAA,eAAe,EAAE,CAAA;AACnB,GAAC,EAAE,CAACA,eAAe,CAAC,CAAC,CAAA;EAErB,oBACExqB,GAAA,CAACiF,aAAW,EAAA;AACVtF,IAAAA,KAAK,EAAEulB,GAAG,CAACH,KAAK,CAACplB,KAAK,CAAE;AACxBwF,IAAAA,KAAK,EAAEA,KAAM;AACboD,IAAAA,IAAI,EAAEA,IAAK;AACXwkB,IAAAA,aAAa,EAAApwB,oBAAAA,CAAAA,MAAA,CAAuB0D,SAAS,CAAG;AAChDmG,IAAAA,MAAM,EAAE,IAAK;AACbK,IAAAA,QAAQ,EAAE2T,OAAQ;IAClBuG,QAAQ,EAAA,IAAA;AACRzb,IAAAA,MAAM,EAAE;AACNgB,MAAAA,IAAI,EAAE;AACJN,QAAAA,OAAO,EAAE,CAAC;QACV+iB,MAAM,EAAA,EAAA,CAAApsB,MAAA,CAAKosB,MAAM,EAAA,IAAA,CAAA;AACnB,OAAA;KACA;IAAAlpB,QAAA,eAEFK,IAAA,CAAC8sB,GAAG,EAAA;AAACC,MAAAA,MAAM,EAAE,CAAE;AAAC5sB,MAAAA,SAAS,EAAC,eAAe;MAAAR,QAAA,EAAA,cACvCG,GAAA,CAACktB,GAAG,EAAA;AAACnkB,QAAAA,IAAI,EAAE,EAAG;AAAC1I,QAAAA,SAAS,EAAC,QAAQ;QAAAR,QAAA,eAC/BG,GAAA,CAACwkB,QAAQ,EAAA;AACPC,UAAAA,UAAU,EAAE0F,UAAW;AACvBzF,UAAAA,gBAAgB,EAAE2F,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAc,CAAEnsB,EAAG;AACrCymB,UAAAA,cAAc,EAAEiG,kBAAmB;AACnChG,UAAAA,QAAQ,EAAEkG,YAAa;AACvBjG,UAAAA,QAAQ,EAAE0G,YAAa;AACvBxG,UAAAA,KAAK,EAAE;AACLC,YAAAA,SAAS,EAAEE,GAAG,CAACH,KAAK,CAACC,SAAS,CAAC;AAC/BC,YAAAA,YAAY,EAAEC,GAAG,CAACH,KAAK,CAACE,YAAY,CAAA;AACtC,WAAA;SACD,CAAA;AAAC,OACC,CAAC,eACNjlB,GAAA,CAACktB,GAAG,EAAA;AAACnkB,QAAAA,IAAI,EAAE,EAAG;AAAC1I,QAAAA,SAAS,EAAC,QAAQ;AAAAR,QAAAA,QAAA,EAC9BwqB,cAAc,gBACbrqB,GAAA,CAACmmB,eAAe,EAAA;AACd5I,UAAAA,IAAI,EAAEA,IAAK;AACX8I,UAAAA,MAAM,EAAEkG,UAAW;AACnBjG,UAAAA,MAAM,EAAEwF,gBAAiB;AACzBrF,UAAAA,QAAQ,EAAEmG,YAAa;AACvBlG,UAAAA,SAAS,EAAE5b,OAAQ;UACnB6b,aAAa,EAAE,CAAC,EAAC0D,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAdA,KAAAA,CAAAA,IAAAA,cAAc,CAAEnsB,EAAE,CAAC;UACpC0oB,kBAAkB,EAAEyD,cAAe;AAAC;AACpCxD,UAAAA,MAAM,EAAEA,MAAO;AACf9B,UAAAA,KAAK,EAAE;AACLgC,YAAAA,UAAU,EAAE7B,GAAG,CAACH,KAAK,CAACgC,UAAU,CAAC;AACjCC,YAAAA,UAAU,EAAE9B,GAAG,CAACH,KAAK,CAACiC,UAAU,CAAC;AACjCC,YAAAA,UAAU,EAAE/B,GAAG,CAACH,KAAK,CAACkC,UAAU,CAAC;AACjCC,YAAAA,YAAY,EAAEhC,GAAG,CAACH,KAAK,CAACmC,YAAY,CAAA;WACpC;AACFC,UAAAA,aAAa,EAAEA,aAAc;AAC7BC,UAAAA,UAAU,EAAEA,UAAAA;AAAW,SACxB,CAAC,gBAEFpnB,GAAA,CAAC6oB,IAAI,EAAA;UAACC,QAAQ,EAAA,IAAA;AAACqE,UAAAA,OAAO,EAAC,QAAQ;AAACC,UAAAA,KAAK,EAAC,QAAQ;AAAC/sB,UAAAA,SAAS,EAAC,sBAAsB;UAAAR,QAAA,eAC7EG,GAAA,CAAC2lB,KAAK,EAAA;YACJC,KAAK,EAAED,KAAK,CAACE,sBAAuB;AACpCJ,YAAAA,WAAW,EAAEP,GAAG,CAACH,KAAK,CAACW,SAAS,CAAA;WACjC,CAAA;SACG,CAAA;AACP,OACE,CAAC,CAAA;KACH,CAAA;AAAC,GACK,CAAC,CAAA;AAElB,CAAC,CAAA;AAED,kBAAehmB,aAAAA,IAAI,CAAC6pB,MAAM,CAAC;;;AChZ3B,MAAM8D,cAAc,GAAGtvB,IAAA,IAWhB;EAAA,IAXiB;AACtBiO,MAAAA,SAAS,GAAG,EAAE;MACdC,WAAW;MACXC,aAAa;MACbC,cAAc;MACdC,aAAa;AACbC,MAAAA,eAAe,GAAG,0BAA0B;AAC5CC,MAAAA,mBAAmB,GAAG,IAAI;AAC1BC,MAAAA,qBAAqB,GAAG,IAAI;AAC5B1M,MAAAA,QAAAA;AAED,KAAC,GAAA9B,IAAA;AADGuvB,IAAAA,aAAa,GAAA7nB,0BAAA,CAAA1H,IAAA,EAAA2H,WAAA,CAAA,CAAA;AAEhB,EAAA,MAAM,CAACgM,cAAc,CAAC,GAAG3F,YAAU,CAAC;IAClCC,SAAS;IACTC,WAAW;IACXC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC,eAAe;IACfC,mBAAmB;AACnBC,IAAAA,qBAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAI1M,QAAQ,EAAE;AACZ;IACA,MAAM0tB,eAAe,GAAG7b,cAAc,CAACxM,KAAK,CAACrF,QAAQ,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM2tB,aAAa,GAAG9b,cAAc,CAACxM,KAAK,CAACrF,QAAQ,CAACsO,KAAK,CAAC,CAAC,CAAC,CAAA;IAE5D,oBACEjO,IAAA,CAAAC,QAAA,EAAA;AAAAN,MAAAA,QAAA,EACEG,cAAAA,GAAA,CAAC2R,QAAQ,EAAAjV,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,CACH4wB,EAAAA,EAAAA,aAAa,CACbC,EAAAA,eAAe,CAACroB,KAAK,CAAA,EAAA,EAAA,EAAA;AAAArF,QAAAA,QAAA,EAExBA,QAAAA;OACO,CAAA,CAAC,EACV2tB,aAAa,CAAA;AAAA,KACd,CAAC,CAAA;AAEP,GAAA;;AAEA;AACA,EAAA,OAAO9b,cAAc,CAAA;AACtB,CAAC,CAAA;AAED2b,cAAc,CAACI,YAAY,GAAG;EAC7B3b,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB4b,EAAAA,SAAS,EAAE,aAAA;AACb,CAAC,CAAA;AAED,uBAAeL,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;AC5ChB,IAAI,CAAC,CAAC,UAAU,GAAG,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrf,CAAA,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAA;AACvQ,CAAA,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAACM,wBAAiB,CAAA,SAAA,CAAC,CAAC,CAACA,wBAAA,CAAA,cAAsB,CAAC,CAAC,CAACA,wBAAuB,CAAA,eAAA,CAAC,CAAC,CAACA,wCAAuB,CAAC,CAAC,CAACA,wBAAA,CAAA,OAAe,CAAC,CAAC,CAACA,wBAAkB,CAAA,UAAA,CAAC,CAAC,CAACA,wBAAA,CAAA,QAAgB,CAAC,CAAC,CAACA,wBAAY,CAAA,IAAA,CAAC,CAAC,CAACA,6BAAY,CAAC,CAAC,CAACA,wBAAA,CAAA,MAAc,CAAC,CAAC,CAAA;AACjf,CAAAA,wBAAA,CAAA,QAAgB,CAAC,CAAC,CAACA,wBAAA,CAAA,UAAkB,CAAC,CAAC,CAACA,wBAAA,CAAA,QAAgB,CAAC,CAAC,CAACA,wBAAA,CAAA,WAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAwB,CAAA,gBAAA,CAAC,CAAC,CAACA,wBAAyB,CAAA,iBAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAyB,CAAA,iBAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAiB,CAAA,SAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAACA,wBAAoB,CAAA,YAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAkB,CAAA,UAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAc,CAAA,MAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3d,CAAAA,wBAAA,CAAA,MAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,iCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAkB,CAAA,UAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAA,CAAA,YAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,wBAAkB,CAAA,UAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3O,CAA0BA,wBAAA,CAAA,kBAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAACA,wBAAc,CAAA,MAAA,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;ACDpU,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC3C,GAAE,CAAC,WAAW;;AAGd;AACA;CACA,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAA;CAC1D,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAA;CACzE,IAAI,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAA;CACvE,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;CAC3E,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAA;CACjF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;CAC3E,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;AAC3E,CAAA,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;AAC1E;;CAEA,IAAI,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAA;CAC/E,IAAI,0BAA0B,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAA;CACzF,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAA;CACjF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;CAC3E,IAAI,wBAAwB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAA;CACrF,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAA;CACnE,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAA;CACnE,IAAI,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;CACrE,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAA;CACjF,IAAI,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAA;CAC7E,IAAI,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA;;CAErE,SAAS,kBAAkB,CAAC,IAAI,EAAE;GAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;AAC/D,GAAE,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,wBAAwB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAA;AACrmB,EAAA;;CAEA,SAAS,MAAM,CAAC,MAAM,EAAE;GACtB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AACrD,KAAI,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;;AAElC,KAAI,QAAQ,QAAQ;AACpB,OAAM,KAAK,kBAAkB;AAC7B,SAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;;AAE9B,SAAQ,QAAQ,IAAI;AACpB,WAAU,KAAK,qBAAqB,CAAA;AACpC,WAAU,KAAK,0BAA0B,CAAA;AACzC,WAAU,KAAK,mBAAmB,CAAA;AAClC,WAAU,KAAK,mBAAmB,CAAA;AAClC,WAAU,KAAK,sBAAsB,CAAA;AACrC,WAAU,KAAK,mBAAmB;AAClC,aAAY,OAAO,IAAI,CAAA;;WAEb;AACV,aAAY,IAAI,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAA;;AAEpD,aAAY,QAAQ,YAAY;AAChC,eAAc,KAAK,kBAAkB,CAAA;AACrC,eAAc,KAAK,sBAAsB,CAAA;AACzC,eAAc,KAAK,eAAe,CAAA;AAClC,eAAc,KAAK,eAAe,CAAA;AAClC,eAAc,KAAK,mBAAmB;AACtC,iBAAgB,OAAO,YAAY,CAAA;;eAErB;AACd,iBAAgB,OAAO,QAAQ,CAAA;AAC/B,cAAA;;AAEA,UAAA;;AAEA,OAAM,KAAK,iBAAiB;AAC5B,SAAQ,OAAO,QAAQ,CAAA;AACvB,MAAA;AACA,IAAA;;AAEA,GAAE,OAAO,SAAS,CAAA;EACjB;;CAED,IAAI,SAAS,GAAG,qBAAqB,CAAA;CACrC,IAAI,cAAc,GAAG,0BAA0B,CAAA;CAC/C,IAAI,eAAe,GAAG,kBAAkB,CAAA;CACxC,IAAI,eAAe,GAAG,mBAAmB,CAAA;CACzC,IAAI,OAAO,GAAG,kBAAkB,CAAA;CAChC,IAAI,UAAU,GAAG,sBAAsB,CAAA;CACvC,IAAI,QAAQ,GAAG,mBAAmB,CAAA;CAClC,IAAI,IAAI,GAAG,eAAe,CAAA;CAC1B,IAAI,IAAI,GAAG,eAAe,CAAA;CAC1B,IAAI,MAAM,GAAG,iBAAiB,CAAA;CAC9B,IAAI,QAAQ,GAAG,mBAAmB,CAAA;CAClC,IAAI,UAAU,GAAG,sBAAsB,CAAA;CACvC,IAAI,QAAQ,GAAG,mBAAmB,CAAA;CAClC,IAAI,mCAAmC,GAAG,KAAK,CAAC;;CAEhD,SAAS,WAAW,CAAC,MAAM,EAAE;GAC3B;KACE,IAAI,CAAC,mCAAmC,EAAE;OACxC,mCAAmC,GAAG,IAAI,CAAC;;OAE3C,OAAO,CAAC,MAAM,CAAC,CAAC,uDAAuD,GAAG,4DAA4D,GAAG,gEAAgE,CAAC,CAAA;AAChN,MAAA;AACA,IAAA;;GAEE,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAA;AAC7E,EAAA;CACA,SAAS,gBAAgB,CAAC,MAAM,EAAE;AAClC,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,0BAA0B,CAAA;AACtD,EAAA;CACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACnC,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAA;AAC9C,EAAA;CACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACnC,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,GAAE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAA;AAChG,EAAA;CACA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAA;AAClD,EAAA;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;CACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAA;AAC3C,EAAA;CACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAA;AAC3C,EAAA;CACA,SAAS,QAAQ,CAAC,MAAM,EAAE;AAC1B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAA;AAC7C,EAAA;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;CACA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAA;AAClD,EAAA;CACA,SAAS,UAAU,CAAC,MAAM,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAA;AAC/C,EAAA;;AAEA,CAAAC,qBAAA,CAAA,SAAiB,GAAG,SAAS,CAAA;AAC7B,CAAAA,qBAAA,CAAA,cAAsB,GAAG,cAAc,CAAA;AACvC,CAAAA,qBAAA,CAAA,eAAuB,GAAG,eAAe,CAAA;AACzC,CAAAA,qBAAA,CAAA,eAAuB,GAAG,eAAe,CAAA;AACzC,CAAAA,qBAAA,CAAA,OAAe,GAAG,OAAO,CAAA;AACzB,CAAAA,qBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAAA,qBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAAA,qBAAA,CAAA,IAAY,GAAG,IAAI,CAAA;AACnB,CAAAA,qBAAA,CAAA,IAAY,GAAG,IAAI,CAAA;AACnB,CAAAA,qBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,CAAAA,qBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAAA,qBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAAA,qBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAAA,qBAAA,CAAA,WAAmB,GAAG,WAAW,CAAA;AACjC,CAAAA,qBAAA,CAAA,gBAAwB,GAAG,gBAAgB,CAAA;AAC3C,CAAAA,qBAAA,CAAA,iBAAyB,GAAG,iBAAiB,CAAA;AAC7C,CAAAA,qBAAA,CAAA,iBAAyB,GAAG,iBAAiB,CAAA;AAC7C,CAAAA,qBAAA,CAAA,SAAiB,GAAG,SAAS,CAAA;AAC7B,CAAAA,qBAAA,CAAA,YAAoB,GAAG,YAAY,CAAA;AACnC,CAAAA,qBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAAA,qBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,CAAAA,qBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,CAAAA,qBAAA,CAAA,QAAgB,GAAG,QAAQ,CAAA;AAC3B,CAAAA,qBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAAA,qBAAA,CAAA,YAAoB,GAAG,YAAY,CAAA;AACnC,CAAAA,qBAAA,CAAA,UAAkB,GAAG,UAAU,CAAA;AAC/B,CAAAA,qBAAA,CAAA,kBAA0B,GAAG,kBAAkB,CAAA;AAC/C,CAAAA,qBAAA,CAAA,MAAc,GAAG,MAAM,CAAA;AACvB,IAAG,GAAG,CAAA;AACN,EAAA;;;;;;;;;;AClLA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;GACzCC,SAAA,CAAA,OAAc,GAAGC,+BAA2C,EAAA,CAAA;AAC9D,EAAC,MAAM;GACLD,SAAA,CAAA,OAAc,GAAGE,4BAAwC,EAAA,CAAA;AAC3D,EAAA;;;;;;;;;;;;;;;;ACCA;AACA,CAAA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAA;AACxD,CAAA,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAA;AACpD,CAAA,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAA;;CAE5D,SAAS,QAAQ,CAAC,GAAG,EAAE;EACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACxC,GAAE,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAA;AAC9E,GAAA;;AAEA,EAAC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACnB,EAAA;;AAEA,CAAA,SAAS,eAAe,GAAG;AAC3B,EAAC,IAAI;AACL,GAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA;;AAEA;GACE,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,GAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACjB,GAAE,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACpD,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA;GACE,IAAI,KAAK,GAAG,EAAE,CAAA;AAChB,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC1C,IAAA;AACA,GAAE,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAClE,IAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AAClB,IAAG,CAAC,CAAA;GACF,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;AACxC,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA;GACE,IAAI,KAAK,GAAG,EAAE,CAAA;GACd,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AAC7D,IAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;AACzB,IAAG,CAAC,CAAA;AACJ,GAAE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,KAAI,sBAAsB,EAAE;AAC5B,IAAG,OAAO,KAAK,CAAA;AACf,IAAA;;AAEA,GAAE,OAAO,IAAI,CAAA;GACX,CAAC,OAAO,GAAG,EAAE;AACf;AACA,GAAE,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA;;AAEA,CAAAC,cAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC/E,EAAC,IAAI,IAAI,CAAA;AACT,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC1B,EAAC,IAAI,OAAO,CAAA;;AAEZ,EAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;GAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;;AAE7B,GAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;IACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;KACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;AACvB,KAAA;AACA,IAAA;;GAEE,IAAI,qBAAqB,EAAE;AAC7B,IAAG,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;AACxC,IAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,KAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD,MAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,MAAA;AACA,KAAA;AACA,IAAA;AACA,GAAA;;AAEA,EAAC,OAAO,EAAE,CAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;CChFD,IAAI,oBAAoB,GAAG,8CAA8C,CAAA;;AAEzE,CAAAC,wBAAc,GAAG,oBAAoB,CAAA;;;;;;;;;;ACXrC,CAAAC,KAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;;;;;;;;;;;;;;;;;;CCSpE,IAAI,YAAY,GAAG,WAAW,EAAE,CAAA;;AAEhC,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;GACzC,IAAI,oBAAoB,iBAAwCJ,6BAAA,EAAA,CAAA;GAChE,IAAI,kBAAkB,GAAG,EAAE,CAAA;GAC3B,IAAI,GAAG,iBAAuBC,YAAA,EAAA,CAAA;;AAEhC,GAAE,YAAY,GAAG,SAAS,IAAI,EAAE;AAChC,KAAI,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAA;AACpC,KAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AACxC,OAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5B,MAAA;AACA,KAAI,IAAI;AACR;AACA;AACA;AACA,OAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;MACzB,CAAC,OAAO,CAAC,EAAE,QAAA;IACb,CAAA;AACH,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;GAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC7C,KAAI,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;AACxC,OAAM,IAAI,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;AACxC,SAAQ,IAAI,KAAK,CAAA;AACjB;AACA;AACA;AACA,SAAQ,IAAI;AACZ;AACA;WACU,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;aACjD,IAAI,GAAG,GAAG,KAAK;AAC3B,eAAc,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB;eAChG,8EAA8E,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;eACtH,+FAAA;cACD,CAAA;AACb,aAAY,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;AAC5C,aAAY,MAAM,GAAG,CAAA;AACrB,YAAA;AACA,WAAU,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAA;UAC3G,CAAC,OAAO,EAAE,EAAE;WACX,KAAK,GAAG,EAAE,CAAA;AACpB,UAAA;SACQ,IAAI,KAAK,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AAChD,WAAU,YAAY;AACtB,aAAY,CAAC,aAAa,IAAI,aAAa,IAAI,0BAA0B;AACzE,aAAY,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,iCAAiC;AAC9E,aAAY,2DAA2D,GAAG,OAAO,KAAK,GAAG,IAAI;AAC7F,aAAY,iEAAiE;AAC7E,aAAY,gEAAgE;aAChE,iCAAA;YACD,CAAA;AACX,UAAA;AACA,SAAQ,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;AAC9E;AACA;AACA,WAAU,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;;WAExC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAA;;AAEhD,WAAU,YAAY;AACtB,aAAY,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAA;YAC/E,CAAA;AACX,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA;CACA,cAAc,CAAC,iBAAiB,GAAG,WAAW;GAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;KACzC,kBAAkB,GAAG,EAAE,CAAA;AAC3B,IAAA;AACA,GAAA;;AAEA,CAAAI,kBAAc,GAAG,cAAc,CAAA;;;;;;;;;;;;;;;;;;CC7F/B,IAAI,OAAO,GAAGL,gBAAmB,EAAA,CAAA;CACjC,IAAI,MAAM,GAAGC,qBAAwB,EAAA,CAAA;;CAErC,IAAI,oBAAoB,iBAAwCK,6BAAA,EAAA,CAAA;CAChE,IAAI,GAAG,iBAAuBC,YAAA,EAAA,CAAA;CAC9B,IAAI,cAAc,iBAA8BC,uBAAA,EAAA,CAAA;;CAEhD,IAAI,YAAY,GAAG,WAAW,EAAE,CAAA;;AAEhC,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC3C,GAAE,YAAY,GAAG,SAAS,IAAI,EAAE;AAChC,KAAI,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAA;AACpC,KAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AACxC,OAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5B,MAAA;AACA,KAAI,IAAI;AACR;AACA;AACA;AACA,OAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;MACzB,CAAC,OAAO,CAAC,EAAE,EAAA;IACb,CAAA;AACH,EAAA;;AAEA,CAAA,SAAS,4BAA4B,GAAG;AACxC,GAAE,OAAO,IAAI,CAAA;AACb,EAAA;;AAEA,CAAAC,yBAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;AAC/D;GACE,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAA;AACvE,GAAE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,aAAa,CAAC,aAAa,EAAE;AACxC,KAAI,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAA;AAChI,KAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAC1C,OAAM,OAAO,UAAU,CAAA;AACvB,MAAA;AACA,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;GAEE,IAAI,SAAS,GAAG,eAAe,CAAA;;AAEjC;AACA;GACE,IAAI,cAAc,GAAG;AACvB,KAAI,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;AAC9C,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;AAC/C,KAAI,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AAChD,KAAI,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;KAE5C,GAAG,EAAE,oBAAoB,EAAE;KAC3B,OAAO,EAAE,wBAAwB;KACjC,OAAO,EAAE,wBAAwB,EAAE;KACnC,WAAW,EAAE,4BAA4B,EAAE;KAC3C,UAAU,EAAE,yBAAyB;KACrC,IAAI,EAAE,iBAAiB,EAAE;KACzB,QAAQ,EAAE,yBAAyB;KACnC,KAAK,EAAE,qBAAqB;KAC5B,SAAS,EAAE,sBAAsB;KACjC,KAAK,EAAE,sBAAsB;KAC7B,KAAK,EAAE,4BAA4B;IACpC,CAAA;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACpB;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB;AACA;OACM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACvC,MAAK,MAAM;AACX;AACA,OAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/B,MAAA;AACA,IAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE;AACxC,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AAC1B,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,EAAE,EAAE,CAAA;AAC3D,KAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACnB,IAAA;AACA;AACA,GAAE,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;;AAE3C,GAAE,SAAS,0BAA0B,CAAC,QAAQ,EAAE;KAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;OACzC,IAAI,uBAAuB,GAAG,EAAE,CAAA;OAChC,IAAI,0BAA0B,GAAG,CAAC,CAAA;AACxC,MAAA;AACA,KAAI,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AACnG,OAAM,aAAa,GAAG,aAAa,IAAI,SAAS,CAAA;AAChD,OAAM,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAA;;AAE7C,OAAM,IAAI,MAAM,KAAK,oBAAoB,EAAE;SACnC,IAAI,mBAAmB,EAAE;AACjC;AACA,WAAU,IAAI,GAAG,GAAG,IAAI,KAAK;AAC7B,aAAY,sFAAsF;AAClG,aAAY,iDAAiD;aACjD,gDAAA;YACD,CAAA;AACX,WAAU,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;AAC1C,WAAU,MAAM,GAAG,CAAA;AACnB,UAAS,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAC5F;AACA,WAAU,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAA;WAC7C;AACV,aAAY,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AAC9C;AACA,aAAY,0BAA0B,GAAG,CAAA;aAC7B;AACZ,aAAY,YAAY;AACxB,eAAc,wDAAwD;eACxD,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,wBAAwB;AAC5G,eAAc,yDAAyD;AACvE,eAAc,gEAAgE;AAC9E,eAAc,+DAA+D,GAAG,cAAA;cACnE,CAAA;AACb,aAAY,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;AACpD,aAAY,0BAA0B,EAAE,CAAA;AACxC,YAAA;AACA,UAAA;AACA,QAAA;AACA,OAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;SAC3B,IAAI,UAAU,EAAE;AACxB,WAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;aAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAA;AACrK,YAAA;WACU,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAA;AACxK,UAAA;AACA,SAAQ,OAAO,IAAI,CAAA;AACnB,QAAO,MAAM;AACb,SAAQ,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC/E,QAAA;AACA,MAAA;;KAEI,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAClD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;;AAE5D,KAAI,OAAO,gBAAgB,CAAA;AAC3B,IAAA;;AAEA,GAAE,SAAS,0BAA0B,CAAC,YAAY,EAAE;AACpD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AACtF,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;AACrC;AACA;AACA;AACA,SAAQ,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;;SAE3C,OAAO,IAAI,aAAa;WACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC;WACnK,CAAC,YAAY,EAAE,YAAY,CAAA;UAC5B,CAAA;AACT,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,oBAAoB,GAAG;AAClC,KAAI,OAAO,0BAA0B,CAAC,4BAA4B,CAAC,CAAA;AACnE,IAAA;;AAEA,GAAE,SAAS,wBAAwB,CAAC,WAAW,EAAE;AACjD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC7C,SAAQ,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAA;AACtJ,QAAA;AACA,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;OAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACrC,SAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACrC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAA;AAC7K,QAAA;AACA,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;AAC1H,SAAQ,IAAI,KAAK,YAAY,KAAK,EAAE;AACpC,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,wBAAwB,GAAG;AACtC,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACtC,SAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACrC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAA;AAC1L,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,4BAA4B,GAAG;AAC1C,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;OAC/B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;AAClD,SAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACrC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,yCAAyC,CAAC,CAAC,CAAA;AAC/L,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,yBAAyB,CAAC,aAAa,EAAE;AACpD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;AACvD,SAAQ,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAA;SACvD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC3D,SAAQ,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAA;AAC1N,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,qBAAqB,CAAC,cAAc,EAAE;KAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;OAClC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACjD,SAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,WAAU,YAAY;AACtB,aAAY,8DAA8D,GAAG,SAAS,CAAC,MAAM,GAAG,cAAc;aAClG,0EAAA;YACD,CAAA;AACX,UAAS,MAAM;WACL,YAAY,CAAC,wDAAwD,CAAC,CAAA;AAChF,UAAA;AACA,QAAA;AACA,OAAM,OAAO,4BAA4B,CAAA;AACzC,MAAA;;AAEA,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,WAAU,OAAO,IAAI,CAAA;AACrB,UAAA;AACA,QAAA;;AAEA,OAAM,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;AACtF,SAAQ,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AACxC,SAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC/B,WAAU,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,UAAA;AACA,SAAQ,OAAO,KAAK,CAAA;AACpB,QAAO,CAAC,CAAA;AACR,OAAM,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAA;AACxM,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,yBAAyB,CAAC,WAAW,EAAE;AAClD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC7C,SAAQ,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAA;AACvJ,QAAA;AACA,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAA;AAC9K,QAAA;AACA,OAAM,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;AACjC,SAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;WACvB,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;AAC1H,WAAU,IAAI,KAAK,YAAY,KAAK,EAAE;AACtC,aAAY,OAAO,KAAK,CAAA;AACxB,YAAA;AACA,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;KACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;AAC7C,OAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,YAAY,CAAC,wEAAwE,CAAC,GAAG,KAAK,CAAC,CAAA;AAC7I,OAAM,OAAO,4BAA4B,CAAA;AACzC,MAAA;;AAEA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,OAAM,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAC1C,OAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACzC,SAAQ,YAAY;AACpB,WAAU,oFAAoF;WACpF,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,GAAA;UACtE,CAAA;AACT,SAAQ,OAAO,4BAA4B,CAAA;AAC3C,QAAA;AACA,MAAA;;AAEA,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,aAAa,GAAG,EAAE,CAAA;AAC5B,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3D,SAAQ,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAC5C,SAAQ,IAAI,aAAa,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAA;AACjH,SAAQ,IAAI,aAAa,IAAI,IAAI,EAAE;AACnC,WAAU,OAAO,IAAI,CAAA;AACrB,UAAA;AACA,SAAQ,IAAI,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;WACjE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC7D,UAAA;AACA,QAAA;OACM,IAAI,oBAAoB,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,0BAA0B,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,CAAA;OACvH,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,GAAG,GAAG,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAA;AACzJ,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;GAEE,SAAS,iBAAiB,GAAG;AAC/B,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;OACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;SAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAA;AACrJ,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE;KAC/E,OAAO,IAAI,aAAa;AAC5B,OAAM,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,gBAAgB;OAC5G,8EAA8E,GAAG,IAAI,GAAG,IAAA;MACzF,CAAA;AACL,IAAA;;AAEA,GAAE,SAAS,sBAAsB,CAAC,UAAU,EAAE;AAC9C,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAA;AAC7K,QAAA;AACA,OAAM,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;AAClC,SAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;AACrC,SAAQ,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AAC3C,WAAU,OAAO,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3G,UAAA;SACQ,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;SAC5G,IAAI,KAAK,EAAE;AACnB,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;AACA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,4BAA4B,CAAC,UAAU,EAAE;AACpD,KAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC9E,OAAM,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AACrC,OAAM,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAC3C,OAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;SACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAA;AAC7K,QAAA;AACA;AACA,OAAM,IAAI,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAA;AAC3D,OAAM,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;AAC/B,SAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;AACrC,SAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACnE,WAAU,OAAO,qBAAqB,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3G,UAAA;SACQ,IAAI,CAAC,OAAO,EAAE;WACZ,OAAO,IAAI,aAAa;AAClC,aAAY,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;AACpH,aAAY,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1E,aAAY,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAA;YACtE,CAAA;AACX,UAAA;SACQ,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAAA;SAC5G,IAAI,KAAK,EAAE;AACnB,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;AACA,QAAA;AACA,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA,KAAI,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAA;AAC/C,IAAA;;AAEA,GAAE,SAAS,MAAM,CAAC,SAAS,EAAE;KACzB,QAAQ,OAAO,SAAS;AAC5B,OAAM,KAAK,QAAQ,CAAA;AACnB,OAAM,KAAK,QAAQ,CAAA;AACnB,OAAM,KAAK,WAAW;AACtB,SAAQ,OAAO,IAAI,CAAA;AACnB,OAAM,KAAK,SAAS;SACZ,OAAO,CAAC,SAAS,CAAA;AACzB,OAAM,KAAK,QAAQ;AACnB,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACtC,WAAU,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACxC,UAAA;SACQ,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;AAC7D,WAAU,OAAO,IAAI,CAAA;AACrB,UAAA;;AAEA,SAAQ,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;SACzC,IAAI,UAAU,EAAE;WACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACnD,WAAU,IAAI,IAAI,CAAA;AAClB,WAAU,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;aACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;eACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,iBAAgB,OAAO,KAAK,CAAA;AAC5B,gBAAA;AACA,cAAA;AACA,YAAW,MAAM;AACjB;aACY,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AACnD,eAAc,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;eACtB,IAAI,KAAK,EAAE;iBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,mBAAkB,OAAO,KAAK,CAAA;AAC9B,kBAAA;AACA,gBAAA;AACA,cAAA;AACA,YAAA;AACA,UAAS,MAAM;AACf,WAAU,OAAO,KAAK,CAAA;AACtB,UAAA;;AAEA,SAAQ,OAAO,IAAI,CAAA;OACb;AACN,SAAQ,OAAO,KAAK,CAAA;AACpB,MAAA;AACA,IAAA;;AAEA,GAAE,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;AACzC;AACA,KAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC/B,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA;KACI,IAAI,CAAC,SAAS,EAAE;AACpB,OAAM,OAAO,KAAK,CAAA;AAClB,MAAA;;AAEA;AACA,KAAI,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;AACjD,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA;KACI,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;AACrE,OAAM,OAAO,IAAI,CAAA;AACjB,MAAA;;AAEA,KAAI,OAAO,KAAK,CAAA;AAChB,IAAA;;AAEA;AACA,GAAE,SAAS,WAAW,CAAC,SAAS,EAAE;AAClC,KAAI,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAA;AACnC,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,OAAM,OAAO,OAAO,CAAA;AACpB,MAAA;AACA,KAAI,IAAI,SAAS,YAAY,MAAM,EAAE;AACrC;AACA;AACA;AACA,OAAM,OAAO,QAAQ,CAAA;AACrB,MAAA;AACA,KAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;AACvC,OAAM,OAAO,QAAQ,CAAA;AACrB,MAAA;AACA,KAAI,OAAO,QAAQ,CAAA;AACnB,IAAA;;AAEA;AACA;AACA,GAAE,SAAS,cAAc,CAAC,SAAS,EAAE;KACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;OAC1D,OAAO,EAAE,GAAG,SAAS,CAAA;AAC3B,MAAA;AACA,KAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AACzC,KAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC/B,OAAM,IAAI,SAAS,YAAY,IAAI,EAAE;AACrC,SAAQ,OAAO,MAAM,CAAA;AACrB,QAAO,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;AAC9C,SAAQ,OAAO,QAAQ,CAAA;AACvB,QAAA;AACA,MAAA;AACA,KAAI,OAAO,QAAQ,CAAA;AACnB,IAAA;;AAEA;AACA;AACA,GAAE,SAAS,wBAAwB,CAAC,KAAK,EAAE;AAC3C,KAAI,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AACpC,KAAI,QAAQ,IAAI;AAChB,OAAM,KAAK,OAAO,CAAA;AAClB,OAAM,KAAK,QAAQ;SACX,OAAO,KAAK,GAAG,IAAI,CAAA;AAC3B,OAAM,KAAK,SAAS,CAAA;AACpB,OAAM,KAAK,MAAM,CAAA;AACjB,OAAM,KAAK,QAAQ;SACX,OAAO,IAAI,GAAG,IAAI,CAAA;OACpB;AACN,SAAQ,OAAO,IAAI,CAAA;AACnB,MAAA;AACA,IAAA;;AAEA;AACA,GAAE,SAAS,YAAY,CAAC,SAAS,EAAE;AACnC,KAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/D,OAAM,OAAO,SAAS,CAAA;AACtB,MAAA;AACA,KAAI,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAA;AACrC,IAAA;;AAEA,GAAE,cAAc,CAAC,cAAc,GAAG,cAAc,CAAA;AAChD,GAAE,cAAc,CAAC,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAA;AACrE,GAAE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAA;;AAE3C,GAAE,OAAO,cAAc,CAAA;EACtB,CAAA;;;;;;;;;;;;;;;;;;CCxlBD,IAAI,oBAAoB,iBAAwCT,6BAAA,EAAA,CAAA;;AAEhE,CAAA,SAAS,aAAa,GAAG,EAAA;AACzB,CAAA,SAAS,sBAAsB,GAAG,EAAA;CAClC,sBAAsB,CAAC,iBAAiB,GAAG,aAAa,CAAA;;AAExD,CAAAU,0BAAc,GAAG,WAAW;AAC5B,GAAE,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AAChF,KAAI,IAAI,MAAM,KAAK,oBAAoB,EAAE;AACzC;OACM,OAAA;AACN,MAAA;AACA,KAAI,IAAI,GAAG,GAAG,IAAI,KAAK;AACvB,OAAM,sFAAsF;AAC5F,OAAM,+CAA+C;OAC/C,gDAAA;MACD,CAAA;AACL,KAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;AACpC,KAAI,MAAM,GAAG,CAAA;IAEb,GAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;GACtB,SAAS,OAAO,GAAG;AACrB,KAAI,OAAO,IAAI,CAAA;IAEf;AACA;GACE,IAAI,cAAc,GAAG;KACnB,KAAK,EAAE,IAAI;KACX,MAAM,EAAE,IAAI;KACZ,IAAI,EAAE,IAAI;KACV,IAAI,EAAE,IAAI;KACV,MAAM,EAAE,IAAI;KACZ,MAAM,EAAE,IAAI;KACZ,MAAM,EAAE,IAAI;KACZ,MAAM,EAAE,IAAI;;KAEZ,GAAG,EAAE,IAAI;KACT,OAAO,EAAE,OAAO;KAChB,OAAO,EAAE,IAAI;KACb,WAAW,EAAE,IAAI;KACjB,UAAU,EAAE,OAAO;KACnB,IAAI,EAAE,IAAI;KACV,QAAQ,EAAE,OAAO;KACjB,KAAK,EAAE,OAAO;KACd,SAAS,EAAE,OAAO;KAClB,KAAK,EAAE,OAAO;KACd,KAAK,EAAE,OAAO;;KAEd,cAAc,EAAE,sBAAsB;AAC1C,KAAI,iBAAiB,EAAE,aAAA;IACpB,CAAA;;AAEH,GAAE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAA;;AAE3C,GAAE,OAAO,cAAc,CAAA;EACtB,CAAA;;;;;;;;;;;;;;;;ACzDD,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;GACzC,IAAI,OAAO,GAAGV,gBAAmB,EAAA,CAAA;;AAEnC;AACA;GACE,IAAI,mBAAmB,GAAG,IAAI,CAAA;GAC9BW,WAAA,CAAA,OAAc,iBAAuCV,gCAAA,EAAA,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;AAC/F,EAAC,MAAM;AACP;AACA;GACEU,WAAA,CAAA,OAAc,iBAAGL,iCAAA,EAAqC,EAAE,CAAA;AAC1D,EAAA;;;;;;;ACbA,MAAMM,gBAAgB,GAAG3wB,IAAA,IAanB;EAAA,IAboB;IACxB6U,UAAU;IACVC,SAAS;IACT8b,iBAAiB;IACjB5R,gBAAgB;IAChB6R,YAAY;AAAE;AACdC,IAAAA,aAAa,GAAG,iBAAiB;AACjCC,IAAAA,YAAY,GAAG,gBAAgB;AAC/BC,IAAAA,aAAa,GAAG,8DAA8D;AAC9EC,IAAAA,cAAc,GAAG,wBAAwB;AACzClc,IAAAA,YAAY,GAAG,sBAAsB;AACrCzN,IAAAA,UAAU,GAAG,sBAAsB;AACnCD,IAAAA,MAAM,GAAG,uBAAA;AACX,GAAC,GAAArH,IAAA,CAAA;AACC,EAAA,MAAMgC,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM;AAAEkN,IAAAA,KAAAA;AAAM,GAAC,GAAG3E,GAAG,CAACC,MAAM,EAAE,CAAA;EAE9B,MAAM+E,SAAS,GAAG,CAChB;AACEhP,IAAAA,GAAG,EAAE,UAAU;AACfoM,IAAAA,KAAK,EAAE,OAAOylB,aAAa,KAAK,QAAQ,IAAIA,aAAa,CAACjpB,QAAQ,CAAC,GAAG,CAAC,GAAG7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE2wB,aAAAA;AAAc,KAAC,CAAC,GAAGA,aAAAA;AACxH,GAAC,EACD;AACE7xB,IAAAA,GAAG,EAAE,SAAS;AACdoM,IAAAA,KAAK,EAAE,OAAO0lB,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAAClpB,QAAQ,CAAC,GAAG,CAAC,GAAG7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAE4wB,YAAAA;AAAa,KAAC,CAAC,GAAGA,YAAAA;AACrH,GAAC,CACF,CAAA;EAED,MAAM1b,QAAQ,GAAIC,MAAM,IAAK;IAC3B,IAAI;AACF;AACA,MAAA,MAAM4b,YAAY,GAAG;AACnBC,QAAAA,QAAQ,EAAEnvB,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,wBAAA;AAAyB,SAAC,CAAC;AAC9D4e,QAAAA,OAAO,EAAE/c,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAE,uBAAA;SAAyB,CAAA;OAC5D,CAAA;AAED,MAAA,MAAMixB,UAAU,GAAGF,YAAY,CAAC5b,MAAM,CAAC,IAAIA,MAAM,CAAA;;AAEjD;AACA,MAAA,MAAM+b,SAAS,GAAG,OAAOtc,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAAClN,QAAQ,CAAC,GAAG,CAAC,GAC5E7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE4U,YAAAA;OAAc,CAAC,GACxCA,YAAY,CAAA;;AAEhB;AACA;AACA,MAAA,MAAMwM,WAAW,GAAG,OAAO0P,cAAc,KAAK,QAAQ,IAAIA,cAAc,CAACppB,QAAQ,CAAC,GAAG,CAAC,GAClF7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE8wB,cAAAA;AAAe,OAAC,EAAE;AAAE3b,QAAAA,MAAM,EAAE8b,UAAAA;AAAW,OAAC,CAAC,GAClE,OAAOH,cAAc,KAAK,QAAQ,GAChCA,cAAc,CAACzwB,OAAO,CAAC,UAAU,EAAE4wB,UAAU,CAAC,GAC9CH,cAAc,CAAA;MAEpBrjB,KAAK,CAAC2H,OAAO,CAAC;AACZC,QAAAA,IAAI,eAAEvT,GAAA,CAACwT,uBAAuB,IAAE,CAAC;AACjC7T,QAAAA,KAAK,EAAEyvB,SAAS;AAChBrpB,QAAAA,OAAO,EAAEuZ,WAAW;AACpBja,QAAAA,UAAU,EAAE,OAAOA,UAAU,KAAK,QAAQ,IAAIA,UAAU,CAACO,QAAQ,CAAC,GAAG,CAAC,GAAG7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAEmH,UAAAA;SAAY,CAAC,GAAGA,UAAU;AAC5HD,QAAAA,MAAM,EAAE,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACQ,QAAQ,CAAC,GAAG,CAAC,GAAG7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,UAAAA,EAAE,EAAEkH,MAAAA;SAAQ,CAAC,GAAGA,MAAM;QACxG0B,IAAI,EAAE,YAAY;AAChB;AACA,UAAA,IAAI,OAAO8nB,YAAY,KAAK,UAAU,EAAE;AACtCA,YAAAA,YAAY,CAACvb,MAAM,CAAC,CAAC;AACvB,WAAA;AAEA,UAAA,IAAIA,MAAM,KAAK,UAAU,IAAIT,UAAU,EAAE;YACvC,MAAMA,UAAU,EAAE,CAAA;AACpB,WAAC,MAAM,IAAIS,MAAM,KAAK,SAAS,IAAIR,SAAS,EAAE;YAC5C,MAAMA,SAAS,EAAE,CAAA;AACnB,WAAA;;AAEA;UACA,IAAIQ,MAAM,KAAK,UAAU,IAAI,OAAOsb,iBAAiB,KAAK,UAAU,EAAE;AACpEA,YAAAA,iBAAiB,EAAE,CAAA;WACpB,MAAM,IAAItb,MAAM,KAAK,SAAS,IAAI,OAAO0J,gBAAgB,KAAK,UAAU,EAAE;AACzEA,YAAAA,gBAAgB,EAAE,CAAA;AACpB,WAAA;AACF,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAC,OAAOjc,KAAK,EAAE;AACd5F,MAAAA,OAAO,CAAC4F,KAAK,CAAAnE,EAAAA,CAAAA,MAAA,CAAI0W,MAAM,CAACI,WAAW,EAAE,EAAY3S,UAAAA,CAAAA,EAAAA,KAAK,CAAC,CAAA;AACzD,KAAA;GACD,CAAA;EAED,MAAMyN,eAAe,GAAG5P,KAAA,IAAa;IAAA,IAAZ;AAAE3B,MAAAA,GAAAA;AAAI,KAAC,GAAA2B,KAAA,CAAA;IAC9ByU,QAAQ,CAACpW,GAAG,CAAC,CAAA;GACd,CAAA;EAED,oBACEgD,GAAA,CAAC2R,QAAQ,EAAA;AAACC,IAAAA,IAAI,EAAE;AAAEjN,MAAAA,KAAK,EAAEqH,SAAS;AAAE6F,MAAAA,OAAO,EAAEtD,eAAAA;KAAkB;IAACuD,OAAO,EAAE,CAAC,OAAO,CAAE;AAAAjS,IAAAA,QAAA,eACjFG,GAAA,CAAA,GAAA,EAAA;AAAG6R,MAAAA,OAAO,EAAGnW,CAAC,IAAKA,CAAC,CAACqW,cAAc,EAAG;AAAAlS,MAAAA,QAAA,eACpCG,GAAA,CAAA,GAAA,EAAA;AAAGK,QAAAA,SAAS,EAAE0uB,aAAAA;OAAkB,CAAA;KAC/B,CAAA;AAAC,GACI,CAAC,CAAA;AAEf,CAAC,CAAA;AAEDL,gBAAgB,CAACW,SAAS,GAAG;EAC3Bzc,UAAU,EAAE0c,WAAS,CAACC,IAAI;EAC1B1c,SAAS,EAAEyc,WAAS,CAACC,IAAI;EACzBV,aAAa,EAAES,WAAS,CAACE,MAAM;EAC/BV,YAAY,EAAEQ,WAAS,CAACE,MAAM;EAC9BT,aAAa,EAAEO,WAAS,CAACE,MAAM;EAC/B1c,YAAY,EAAEwc,WAAS,CAACE,MAAM;EAC9BnqB,UAAU,EAAEiqB,WAAS,CAACE,MAAM;EAC5BpqB,MAAM,EAAEkqB,WAAS,CAACE,MAAM;EACxBzc,GAAG,EAAEuc,WAAS,CAACC,IAAAA;AACjB,CAAC,CAAA;AAED,yBAAeb,gBAAgB;;AC5G/B,MAAMe,UAAU,GAAG,g6sBAAg6sB,CAAA;AAEn7sB,MAAMC,iBAAiB,GAAGA,MAAM;EAC9Bz0B,MAAM,CAACsW,QAAQ,CAAC5B,IAAI,GAAG1U,MAAM,CAACsW,QAAQ,CAACoe,MAAM,CAAA;AAC/C,CAAC,CAAA;AAED,MAAMC,UAAU,GAAG,YAAgB;AAAA,EAAA,IAAf1qB,KAAK,GAAA9G,SAAA,CAAAxB,MAAA,GAAA,CAAA,IAAAwB,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAC5B,MAAM;AACJyxB,IAAAA,OAAO,GAAGJ,UAAU;AAAE;AACtBK,IAAAA,SAAS,GAAG,GAAG;AACfC,IAAAA,OAAO,GAAG,MAAM;AAChBle,IAAAA,OAAO,GAAG6d,iBAAiB;AAC3BM,IAAAA,WAAW,GAAG;AACZhqB,MAAAA,OAAO,EAAE,CAAC;AACViqB,MAAAA,UAAU,EAAE,CAAC;AACblH,MAAAA,MAAM,EAAE,MAAM;AACdmH,MAAAA,WAAW,EAAE,MAAM;AACnBxgB,MAAAA,OAAO,EAAE,cAAA;AACX,KAAA;AACF,GAAC,GAAGxK,KAAK,CAAA;;AAET;EACA,IAAI,CAAC2qB,OAAO,EAAE;IACZ,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,GAAA;EAEA,OAAO,cACL7vB,GAAA,CAAC8lB,MAAM,EAAA;AAAY1d,IAAAA,IAAI,EAAC,MAAM;AAACc,IAAAA,KAAK,EAAE8mB,WAAY;AAACne,IAAAA,OAAO,EAAEA,OAAQ;AAAAhS,IAAAA,QAAA,eAClEG,GAAA,CAAA,KAAA,EAAA;AAAKmwB,MAAAA,GAAG,EAAEJ,OAAQ;AAACK,MAAAA,GAAG,EAAEP,OAAQ;AAAC3mB,MAAAA,KAAK,EAAE;AAAE/D,QAAAA,KAAK,EAAE2qB,SAAAA;AAAU,OAAA;KAAI,CAAA;GADrD,EAAA,MAEJ,CAAC,CACV,CAAA;AACH,CAAC,CAAA;AAEDF,UAAU,CAACP,SAAS,GAAG;EACrBQ,OAAO,EAAEP,WAAS,CAACE,MAAM;EACzBM,SAAS,EAAER,WAAS,CAACe,MAAM;EAC3BN,OAAO,EAAET,WAAS,CAACE,MAAM;EACzB3d,OAAO,EAAEyd,WAAS,CAACC,IAAAA;AACrB,CAAC,CAAA;AAED,mBAAeK,UAAU;;ACtCzB,MAAMU,mBAAmB,GAAIlhB,GAAG,IAAK;AACnC,EAAA,IAAInU,MAAM,CAACsW,QAAQ,CAACkG,QAAQ,KAAK,WAAW,IAAIxc,MAAM,CAACsW,QAAQ,CAACkG,QAAQ,KAAK,WAAW,EAAE;IACxF,OAAA9a,iBAAAA,CAAAA,MAAA,CAAyB1B,MAAM,CAACsW,QAAQ,CAACgf,IAAI,CAAA,CAAA5zB,MAAA,CAAGyS,GAAG,CAAA,CAAA;AACrD,GAAA;EACA,OAAAzS,OAAAA,CAAAA,MAAA,CAAe1B,MAAM,CAACsW,QAAQ,CAACif,IAAI,CAAA,CAAA7zB,MAAA,CAAGyS,GAAG,CAAA,CAAA;AAC3C,CAAC,CAAA;AAED,MAAMqhB,YAAY,GAAG1yB,IAAA,IAoBf;EAAA,IApBgB;IACpB2yB,WAAW;IACXC,WAAW,GAAG,EAAE;AAChBC,IAAAA,QAAQ,GAAG,IAAI;AACfC,IAAAA,eAAe,GAAG,IAAI;AACtBC,IAAAA,iBAAiB,GAAG,IAAI;AACxBC,IAAAA,oBAAoB,GAAG,IAAI;IAC3Bne,UAAU;IACVC,SAAS;IACT8b,iBAAiB;IACjB5R,gBAAgB;IAChB6R,YAAY;AACZoC,IAAAA,kBAAkB,GAAG,6BAA6B;AAClDC,IAAAA,YAAY,GAAGX,mBAAmB;IAClCY,SAAS,GAAG,EAAE;AACd7wB,IAAAA,SAAS,GAAG,EAAE;IACd6I,KAAK,GAAG,EAAE;AACV;AACAioB,IAAAA,WAAW,GAAG,IAAI;AAAO;IACzBC,YAAY,GAAG,IAAI;AACrB,GAAC,GAAArzB,IAAA,CAAA;AACC,EAAA,MAAM,CAACszB,IAAI,CAAC,GAAGzB,YAAU,CAACsB,SAAS,CAAC,CAAA;;AAEpC;EACA,MAAMI,YAAY,GAAGzsB,kBAAgB,CAACosB,YAAY,CAACD,kBAAkB,CAAC,CAAC,CAAA;EAEvE,oBACE9wB,IAAA,CAAC2oB,IAAI,EAAA;AAACsE,IAAAA,OAAO,EAAC,eAAe;AAACC,IAAAA,KAAK,EAAC,QAAQ;AAAC/sB,IAAAA,SAAS,EAAA1D,gBAAAA,CAAAA,MAAA,CAAmB0D,SAAS,CAAG;AAAC6I,IAAAA,KAAK,EAAEA,KAAM;IAAArJ,QAAA,EAAA,cAEjGK,IAAA,CAAC8lB,KAAK,EAAA;AAACvT,MAAAA,IAAI,EAAE,EAAG;MAAA5S,QAAA,EAAA,CACb+wB,QAAQ,IAAIS,IAAI,EAEhBR,eAAe,iBACd3wB,IAAA,CAAC2oB,IAAI,EAAA;AAACuE,QAAAA,KAAK,EAAC,QAAQ;AAACmE,QAAAA,GAAG,EAAE,EAAG;QAAA1xB,QAAA,EAAA,CAC1B8wB,WAAW,CAACa,WAAW,iBACtBxxB,GAAA,CAACmc,UAAU,CAACC,KAAK,EAAA;AAACnG,UAAAA,KAAK,EAAE,CAAE;AAAC/M,UAAAA,KAAK,EAAE;AAAEhD,YAAAA,YAAY,EAAE,CAAA;WAAI;UAAArG,QAAA,EACpD8wB,WAAW,CAACa,WAAAA;SACG,CACnB,EACAb,WAAW,CAACc,OAAO,iBAClBzxB,GAAA,CAACmc,UAAU,CAACmJ,IAAI,EAAA;AAACpc,UAAAA,KAAK,EAAE;AAAEoL,YAAAA,QAAQ,EAAE,UAAU;AAAEC,YAAAA,GAAG,EAAE,CAAC;AAAEC,YAAAA,IAAI,EAAE,CAAC,CAAA;WAAI;UAAA3U,QAAA,EAChE8wB,WAAW,CAACc,OAAAA;AAAO,SACL,CAClB,CAAA;OACG,CACP,EAGAN,WAAW,CAAA;AAAA,KACP,CAAC,eAGRjxB,IAAA,CAAC2oB,IAAI,EAAA;AAACuE,MAAAA,KAAK,EAAC,QAAQ;AAACmE,MAAAA,GAAG,EAAE,EAAG;AAAA1xB,MAAAA,QAAA,GAC1BuxB,YAAY,EAGZN,iBAAiB,IAAIQ,YAAY,eAElCpxB,IAAA,CAAA,KAAA,EAAA;AAAKG,QAAAA,SAAS,EAAC,iBAAiB;QAAAR,QAAA,EAAA,CAC7B6wB,WAAW,iBACV1wB,GAAA,CAAA,KAAA,EAAA;AAAKK,UAAAA,SAAS,EAAC,cAAc;AAAAR,UAAAA,QAAA,EAC1B6wB,WAAAA;AAAW,SACT,CACN,EAGAK,oBAAoB,iBACnB/wB,GAAA,CAAA,KAAA,EAAA;AAAKK,UAAAA,SAAS,EAAC,cAAc;UAAAR,QAAA,eAC3BG,GAAA,CAAC0uB,kBAAgB,EAAA;AACf9b,YAAAA,UAAU,EAAEA,UAAW;AACvBC,YAAAA,SAAS,EAAEA,SAAU;AACrB8b,YAAAA,iBAAiB,EAAEA,iBAAkB;AACrC5R,YAAAA,gBAAgB,EAAEA,gBAAiB;AACnC6R,YAAAA,YAAY,EAAEA,YAAAA;WACf,CAAA;AAAC,SACC,CACN,CAAA;AAAA,OACE,CAAC,CAAA;AAAA,KACF,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEX,CAAC,CAAA;AAED,qBAAe6B,YAAY;;AC5F3B,MAAMiB,aAAa,GAAIxsB,KAAK,IAAK;AAC/B,EAAA,MAAMnF,IAAI,GAAGtB,OAAO,EAAE,CAAA;EACtB,MAAM,CAACkzB,OAAO,EAAEC,UAAU,CAAC,GAAGlxB,QAAQ,CAAC,EAAE,CAAC,CAAA;EAE1C,MAAM;AACJ0I,IAAAA,KAAK,GAAG,WAAW;IACnByoB,WAAW;IACXC,YAAY;IACZC,aAAa,GAAG,EAAE;IAClBC,WAAW,GAAG,EAAE;AAChBC,IAAAA,UAAU,GAAG;AAAE7oB,MAAAA,KAAK,EAAE,OAAO;AAAE/E,MAAAA,KAAK,EAAE,OAAA;AAAQ,KAAA;AAChD,GAAC,GAAGa,KAAK,CAAA;AAETgG,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMgnB,WAAW,GAAG,YAAY;MAC9B,IAAI;AACF,QAAA,MAAMvjB,GAAG,GAAG,MAAMmjB,YAAY,EAAE,CAAA;AAChC,QAAA,IAAInjB,GAAG,KAAHA,IAAAA,IAAAA,GAAG,eAAHA,GAAG,CAAE/R,MAAM,EAAE;UACfg1B,UAAU,CAACjjB,GAAG,CAAC,CAAA;AACjB,SAAA;OACD,CAAC,OAAO7N,KAAK,EAAE;AACd5F,QAAAA,OAAO,CAAC4F,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC,CAAA;AACnD,OAAA;KACD,CAAA;AAEDoxB,IAAAA,WAAW,EAAE,CAAA;AACf,GAAC,EAAE,CAACJ,YAAY,CAAC,CAAC,CAAA;EAElB,oBACE9xB,GAAA,CAAC4I,IAAI,CAACO,IAAI,EAAAzM,gBAAA,CAAAA,gBAAA,CAAA;AACR0M,IAAAA,KAAK,EAAE,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACxD,QAAQ,CAAC,GAAG,CAAC,GAAG7F,IAAI,CAACjC,aAAa,CAAC;AAAEI,MAAAA,EAAE,EAAEkL,KAAAA;AAAM,KAAC,CAAC,GAAGA,KAAAA;AAAM,GAAA,EAChG2oB,aAAa,CAAA,EAAA,EAAA,EAAA;AAAAlyB,IAAAA,QAAA,eAEjBG,GAAA,CAACyjB,MAAM,EAAA/mB,gBAAA,CAAAA,gBAAA,CAAAA,gBAAA,CACDmF,EAAAA,EAAAA,KAAK,GACLmwB,WAAW,CAAA,EAAA,EAAA,EAAA;AACf/nB,MAAAA,OAAO,EAAE0nB,OAAQ;AACjBM,MAAAA,UAAU,EAAEA,UAAW;MACvBE,UAAU,EAAA,IAAA;MACVC,UAAU,EAAA,IAAA;AACVC,MAAAA,gBAAgB,EAAC,OAAO;AACxB5oB,MAAAA,QAAQ,EAAEA,CAACpF,KAAK,EAAEiuB,MAAM,KAAK;AAC3BzwB,QAAAA,KAAK,CAAC4H,QAAQ,CAACpF,KAAK,CAAC,CAAA;AACrBwtB,QAAAA,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,IAAAA,WAAW,CAAGxtB,KAAK,KAAKhG,SAAS,GAAGA,SAAS,GAAGi0B,MAAM,CAAC,CAAA;OACvD;MACFxoB,WAAW,EAAEkoB,WAAW,CAACloB,WAAW,IAAI/J,IAAI,CAACjC,aAAa,CAAC;AAAEI,QAAAA,EAAE,EAAE,wBAAA;OAA0B,CAAA;KAC5F,CAAA,CAAA;AAAC,GAAA,CACO,CAAC,CAAA;AAEhB,CAAC,CAAA;AAED,sBAAewB,aAAAA,IAAI,CAACgyB,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[19,20,21,22,23,24,25,26,27,28]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/i18n/debug.js","../src/i18n/index.js","../src/componnets/UsageItem.jsx","../src/hooks/useHardwareWebSocket.js","../src/hooks/useHardwareUsage.js","../src/componnets/StyledModal.jsx","../src/componnets/AuthorizationModal.jsx","../src/hooks/useAuth.js","../src/hooks/useUpgrade.js","../src/hooks/useSystemOperations.js","../src/hooks/usePageReload.js","../src/hooks/advanced/useWebSocketWithFeatures.js","../src/locales/zh-CN.js","../src/locales/en-US.js","../src/componnets/NetworkSettingsModal.jsx","../src/componnets/PtpModal.jsx","../src/componnets/PresetModal.component.jsx","../src/componnets/PresetModal.jsx","../src/componnets/UpgradeManager.jsx","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/componnets/SystemOperations.jsx","../src/hooks/useSpaLogo.js","../src/componnets/CommonHeader.jsx","../src/componnets/LSMLabelField.jsx","../src/componnets/NmosModal.jsx","../src/hooks/useDeviceHealthCheck.js","../src/componnets/MaintenancePage.jsx","../src/componnets/draggable-number-input.js","../src/componnets/BoundedInput.jsx"],"sourcesContent":["/**\n * 国际化调试工具\n * 在浏览器控制台运行 window.debugI18n() 查看当前国际化状态\n */\n\nexport const debugI18n = () => {\n if (typeof window === 'undefined') {\n console.log('[i18n debug] Not in browser environment');\n return;\n }\n\n console.group('🌍 I18n Debug Information');\n \n // 1. 当前语言环境\n console.log('📍 Current Locale Sources:');\n console.log(' - window.g_initialProps?.locale:', window.g_initialProps?.locale);\n console.log(' - window.g_initialProps?.___g_initialPropsFromServer?.locale:', window.g_initialProps?.___g_initialPropsFromServer?.locale);\n \n try {\n console.log(' - localStorage.umi-locale:', localStorage.getItem('umi-locale'));\n } catch (e) {\n console.log(' - localStorage: not available');\n }\n \n console.log(' - window.__COMPONENT_LOCALE__:', window.__COMPONENT_LOCALE__);\n\n // 2. 语言包\n console.log('\\n📦 Available Message Sources:');\n console.log(' - window.__COMPONENT_I18N_MESSAGES__:', window.__COMPONENT_I18N_MESSAGES__);\n console.log(' - window.__PROJECT_I18N_MESSAGES__:', window.__PROJECT_I18N_MESSAGES__);\n console.log(' - window.g_initialProps?.messages:', window.g_initialProps?.messages);\n\n // 3. 合并后的语言包\n const componentMessages = window.__COMPONENT_I18N_MESSAGES__ || {};\n const projectMessages = window.__PROJECT_I18N_MESSAGES__ || {};\n const umiMessages = window.g_initialProps?.messages || {};\n \n const allLocales = new Set([\n ...Object.keys(componentMessages),\n ...Object.keys(projectMessages),\n ...Object.keys(umiMessages)\n ]);\n\n console.log('\\n🔧 Merged Locales:', Array.from(allLocales));\n \n allLocales.forEach(locale => {\n const merged = {\n ...(umiMessages[locale] || {}),\n ...(projectMessages[locale] || {}),\n ...(componentMessages[locale] || {})\n };\n console.log(`\\n 📄 ${locale} (${Object.keys(merged).length} keys):`, merged);\n });\n\n // 4. 测试几个关键的 key\n console.log('\\n🧪 Test Translation:');\n const testKeys = [\n 'networkSettings.title',\n 'button.ok',\n 'button.cancel',\n 'button.apply',\n 'button.close'\n ];\n \n const currentLocale = window.g_initialProps?.locale || \n window.g_initialProps?.___g_initialPropsFromServer?.locale ||\n localStorage.getItem('umi-locale') ||\n 'zh-CN';\n \n const allMessages = {};\n allLocales.forEach(locale => {\n allMessages[locale] = {\n ...(umiMessages[locale] || {}),\n ...(projectMessages[locale] || {}),\n ...(componentMessages[locale] || {})\n };\n });\n \n testKeys.forEach(key => {\n const translation = allMessages[currentLocale]?.[key] || \n allMessages['en-US']?.[key] || \n '❌ NOT FOUND';\n console.log(` - ${key}: ${translation}`);\n });\n\n console.groupEnd();\n};\n\n// 自动在开发环境注册到 window\nif (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') {\n window.debugI18n = debugI18n;\n console.log('💡 I18n debug tool available. Run window.debugI18n() in console to check i18n status.');\n}\n\nexport default debugI18n;\n","/**\n * seeder-st2110-components 组件库国际化 Hook\n * \n * 设计目标:\n * 1. 不依赖特定的国际化库(react-intl, i18next 等)\n * 2. 可以与主项目(Umi)的国际化集成\n * 3. 支持简单的变量替换\n * 4. 降级处理:如果没有翻译,显示 key 本身\n */\n\n/**\n * 获取当前语言环境\n * 优先从 Umi 全局变量读取,其次使用默认值\n */\nconst getLocale = () => {\n // 尝试从 Umi 获取语言设置\n if (typeof window !== 'undefined') {\n // 方式 1:Umi 的运行时语言(通过 umi 的 locale 服务)\n // Umi 会在 window.g_lang 或 window.LOCALE 中存储当前语言\n if (window.g_lang) {\n return window.g_lang;\n }\n if (window.LOCALE) {\n return window.LOCALE;\n }\n \n // 方式 2:Umi 的 g_initialProps\n if (window.g_initialProps?.locale) {\n return window.g_initialProps.locale;\n }\n \n // 方式 3:Umi 的全局语言标记\n if (window.g_initialProps?.___g_initialPropsFromServer?.locale) {\n return window.g_initialProps.___g_initialPropsFromServer.locale;\n }\n \n // 方式 4:Umi 的 globalInitialProps\n if (window.g_initialPropsFromServer?.locale) {\n return window.g_initialPropsFromServer.locale;\n }\n \n // 方式 5:从 localStorage 读取(Umi 默认行为)\n try {\n const storedLocale = localStorage.getItem('umi-locale');\n if (storedLocale) {\n return storedLocale;\n }\n } catch (e) {\n // localStorage 不可用时忽略\n }\n \n // 方式 6:组件库自定义语言标记\n if (window.__COMPONENT_LOCALE__) {\n return window.__COMPONENT_LOCALE__;\n }\n }\n // 默认语言:英文(与 Umi 配置一致)\n return 'en-US';\n};\n\n/**\n * 获取语言包\n * 优先从主项目读取,其次使用组件库自带的语言包\n */\nconst getMessages = () => {\n if (typeof window !== 'undefined') {\n // 尝试从多个来源读取语言包\n const messages = {};\n \n // 1. 组件库注册的语言包\n const componentMessages = window.__COMPONENT_I18N_MESSAGES__ || {};\n \n // 2. 主项目的语言包\n const projectMessages = window.__PROJECT_I18N_MESSAGES__ || {};\n \n // 3. Umi 的语言包\n const umiMessages = window.g_initialProps?.messages || {};\n \n // 合并语言包(组件库的优先级最高,其次是主项目,最后是 Umi)\n const allLocales = new Set([\n ...Object.keys(componentMessages),\n ...Object.keys(projectMessages),\n ...Object.keys(umiMessages)\n ]);\n \n allLocales.forEach(locale => {\n messages[locale] = {\n ...(umiMessages[locale] || {}),\n ...(projectMessages[locale] || {}),\n ...(componentMessages[locale] || {})\n };\n });\n \n return messages;\n }\n return {};\n};\n\n/**\n * 格式化消息\n * @param {string} id - 国际化 key\n * @param {object} values - 变量替换值\n * @param {string} locale - 语言环境\n * @param {object} messages - 语言包\n */\nconst formatMessage = ({ id }, values = {}, locale, messages) => {\n const message = messages[locale]?.[id] || messages['en-US']?.[id] || id;\n \n // 支持变量替换 {min}, {max}, {value} 等\n return message.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return values[key] !== undefined ? values[key] : match;\n });\n};\n\n/**\n * 国际化 Hook\n * \n * @returns {{\n * locale: string,\n * formatMessage: function,\n * messages: object\n * }}\n * \n * @example\n * const intl = useIntl();\n * const title = intl.formatMessage({ id: 'networkSettings.title' });\n * const message = intl.formatMessage({ id: 'validation.minLength' }, { min: 3 });\n */\nexport const useIntl = () => {\n const locale = getLocale();\n const messages = getMessages();\n \n const formatMessageFn = ({ id }, values = {}) => {\n return formatMessage({ id }, values, locale, messages);\n };\n \n return {\n locale,\n formatMessage: formatMessageFn,\n messages\n };\n};\n\n/**\n * 注册语言包(可选)\n * 如果需要在运行时注册语言包,可以调用此函数\n * \n * @param {string} locale - 语言代码\n * @param {object} messages - 语言包对象\n */\nexport const addMessages = (locale, messages) => {\n if (typeof window !== 'undefined') {\n if (!window.__COMPONENT_I18N_MESSAGES__) {\n window.__COMPONENT_I18N_MESSAGES__ = {};\n }\n window.__COMPONENT_I18N_MESSAGES__[locale] = messages;\n }\n};\n\nexport default {\n useIntl,\n addMessages,\n getLocale,\n getMessages,\n formatMessage\n};\n\nexport { debugI18n } from './debug';\n","import { memo } from \"react\";\r\nimport { Tooltip } from \"antd\";\r\nimport { useIntl } from '../i18n';\r\n\r\n// 格式化字节大小为更易读的形式\r\nconst formatBytes = (bytes, decimals = 1) => {\r\n if (bytes === 0 || !bytes || bytes < 0) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n};\r\n\r\nconst UsageItem = memo(({ title, iconClass, children, memTotal }) => {\r\n const intl = useIntl();\r\n \r\n return (\r\n <Tooltip \r\n title={\r\n <>\r\n <div>{title}</div>\r\n {title === intl.formatMessage({ id: 'usage.memory' }) && memTotal !== undefined && (\r\n <div>{intl.formatMessage({ id: 'usage.totalMemory' })}: {formatBytes(memTotal)}</div>\r\n )}\r\n </>\r\n } \r\n destroyOnHidden={false}\r\n >\r\n <div className=\"usage-item\">\r\n <i className={`seeder-iconfont ${iconClass} text-xl`} />\r\n <span className=\"usage-value\">{children}</span>\r\n </div>\r\n </Tooltip>\r\n );\r\n});\r\n\r\nexport default UsageItem;","import { useEffect, useState, useCallback } from 'react';\r\nimport { useWebSocket } from 'ahooks';\r\n\r\nconst useHardwareWebSocket = (socketUrl) => {\r\n const [systemStatus, setSystemStatus] = useState();\r\n\r\n const handleMessage = useCallback((message) => {\r\n try {\r\n if (message) {\r\n setSystemStatus(prev => ({\r\n ...prev,\r\n ...message,\r\n // lastUpdated: Date.now() // 添加更新时间戳\r\n }));\r\n }\r\n } catch (error) {\r\n console.error('Message processing error:', error);\r\n }\r\n }, []);\r\n\r\n // ## 获取系统资源使用情况\r\n const { latestMessage } = useWebSocket(socketUrl, {\r\n onMessage: (event) => {\r\n // 处理实时消息\r\n try {\r\n const parsedMessage = JSON.parse(event.data);\r\n handleMessage(parsedMessage);\r\n } catch (error) {\r\n console.error('Message parsing error:', error);\r\n console.debug('Raw message:', event.data);\r\n }\r\n }\r\n });\r\n\r\n // // 监听消息 latestMessage 只用于非实时需求\r\n // useEffect(() => {\r\n // if (!latestMessage?.data) return;\r\n\r\n // try {\r\n // const parsedMessage = JSON.parse(latestMessage.data);\r\n // handleMessage(parsedMessage);\r\n // } catch (error) {\r\n // console.error('Message parsing error:', error);\r\n // console.debug('Raw message:', latestMessage.data);\r\n // }\r\n // }, [latestMessage?.data, handleMessage]);\r\n\r\n return { ps_status: systemStatus }\r\n}\r\n\r\nexport default useHardwareWebSocket ;","import { useMemo } from \"react\";\r\nimport UsageItem from \"../componnets/UsageItem.jsx\";\r\nimport useHardwareWebSocket from './useHardwareWebSocket.js';\r\nimport { useIntl } from '../i18n';\r\n\r\n// 获取网卡最高温度(支持动态字段检查)\r\nconst getMaxNicTemp = (sensors, priorityFields = [\"i350bb\", \"r8169_0_8300:00\"]) => {\r\n const temps = priorityFields\r\n .flatMap(field => sensors?.[field]?.map(item => item.current) || [])\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\n// 获取数组类型传感器最高温度(如内存、硬盘)\r\nconst getMaxSensorTemp = (sensorData) => {\r\n const temps = (sensorData || [])\r\n .map(item => item.current)\r\n .filter((temp) => typeof temp === 'number');\r\n return temps.length ? Math.max(...temps) : null;\r\n};\r\n\r\nconst getDetail = (status = {}) => {\r\n const { cpu_percent, mem, sensors_temperatures, gpu_stats } = status;\r\n\r\n return {\r\n cpu_usage: cpu_percent ?? null,\r\n cpu_temp: sensors_temperatures?.coretemp?.[0]?.current ?? null,\r\n mem_total: mem?.total ?? null,\r\n mem_usage: mem?.percent ?? null,\r\n mem_temp: getMaxSensorTemp(sensors_temperatures?.spd5118),\r\n nic_temp: getMaxNicTemp(sensors_temperatures) ?? null,\r\n hd_temp: getMaxSensorTemp(sensors_temperatures?.nvme),\r\n gpu_usage: gpu_stats?.[0]?.[\"utilization.gpu\"] ?? null,\r\n gpu_temp: gpu_stats?.[0]?.[\"temperature.gpu\"] ?? null,\r\n };\r\n};\r\n\r\n// 提取公共逻辑\r\nconst createMetricItem = (\r\n title,\r\n iconClass,\r\n value,\r\n unit\r\n) => {\r\n const numValue = typeof value === 'string' ? parseFloat(value) : value;\r\n\r\n return {\r\n title,\r\n iconClass,\r\n valueString: `${numValue}${unit}`,\r\n value: numValue,\r\n };\r\n};\r\n\r\nconst getItems = (details, intl) => {\r\n const items = [];\r\n\r\n if (details.cpu_usage !== null && details.cpu_usage !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.cpu' }), 'seeder-icon-CPU', details.cpu_usage, '%'));\r\n }\r\n\r\n if (details.cpu_temp !== null && details.cpu_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.cpuTemp' }), 'seeder-icon-CPUwendu', details.cpu_temp, '℃'));\r\n }\r\n\r\n if (details.mem_usage !== null && details.mem_usage !== undefined) {\r\n items.push({\r\n ...createMetricItem(intl.formatMessage({ id: 'usage.memory' }), 'seeder-icon-shiyongshuai', details.mem_usage, '%'),\r\n memTotal: details.mem_total,\r\n });\r\n }\r\n\r\n if (details.mem_temp !== null && details.mem_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.memTemp' }), 'seeder-icon-wendu', details.mem_temp, '℃'));\r\n }\r\n\r\n if (details.nic_temp !== null && details.nic_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.nicTemp' }), 'seeder-icon-wuliwangka', details.nic_temp, '℃'));\r\n }\r\n\r\n if (details.hd_temp !== null && details.hd_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.diskTemp' }), 'seeder-icon-yingpan', details.hd_temp, '℃'));\r\n }\r\n\r\n if (details.gpu_usage !== null && details.gpu_usage !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.gpu' }), 'seeder-icon-gpufuwu', details.gpu_usage, '%'));\r\n }\r\n\r\n if (details.gpu_temp !== null && details.gpu_temp !== undefined) {\r\n items.push(createMetricItem(intl.formatMessage({ id: 'usage.gpuTemp' }), 'seeder-icon-CPUwendu', details.gpu_temp, '℃'));\r\n }\r\n\r\n return items;\r\n};\r\n\r\nconst useHardwareUsage = (socketUrl) => {\r\n const intl = useIntl();\r\n const { ps_status } = useHardwareWebSocket(socketUrl);\r\n\r\n return useMemo(() => {\r\n if (!ps_status || typeof ps_status !== 'object') return null;\r\n\r\n const statusItems = getItems(getDetail(ps_status), intl);\r\n\r\n return (\r\n <div className=\"usage-container\">\r\n {statusItems.map((item, index) => (\r\n <div key={item.title} className=\"usage-item-wrapper\">\r\n <UsageItem \r\n title={item.title}\r\n iconClass={item.iconClass} \r\n memTotal={item.memTotal}\r\n >\r\n {item.valueString}\r\n </UsageItem>\r\n {/* {index < statusItems.length - 1 && <Divider type=\"vertical\" />} */}\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n }, [ps_status]);\r\n}\r\n\r\nexport default useHardwareUsage;","import { Modal } from 'antd';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst StyledModal = (props) => {\r\n const intl = useIntl();\r\n const {\r\n width = \"520px\",\r\n okText = \"button.apply\",\r\n cancelText = \"button.close\",\r\n styles: propStyles = {},\r\n ...restProps\r\n } = props;\r\n\r\n // 处理国际化文本\r\n const okButtonText = typeof okText === 'string' && okText.includes('.') \r\n ? intl.formatMessage({ id: okText }) \r\n : okText;\r\n \r\n const cancelButtonText = typeof cancelText === 'string' && cancelText.includes('.') \r\n ? intl.formatMessage({ id: cancelText }) \r\n : cancelText;\r\n\r\n // 基础样式配置\r\n const baseStyles = {\r\n content: {\r\n padding: 0,\r\n // background: \"#282828\"\r\n },\r\n header: {\r\n marginBottom: 0,\r\n padding: 0,\r\n paddingBlock: 16,\r\n paddingInlineStart: 24,\r\n background: \"#000000\"\r\n },\r\n body: {\r\n paddingBlock: 20,\r\n paddingInline: 24\r\n },\r\n footer: {\r\n marginTop: 0,\r\n padding: 0,\r\n paddingBlockEnd: 20,\r\n paddingInline: 24\r\n }\r\n };\r\n\r\n // 合并样式\r\n const styles = {\r\n ...baseStyles,\r\n ...propStyles\r\n };\r\n\r\n return (\r\n <Modal\r\n width={width}\r\n okText={okButtonText}\r\n cancelText={cancelButtonText}\r\n styles={styles}\r\n {...restProps}\r\n />\r\n );\r\n};\r\n\r\nexport default StyledModal;","import { useState } from 'react';\r\nimport { Form, Input, Alert, App } from 'antd';\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst AuthorizationModal = ({\r\n onCancel,\r\n onOk,\r\n authData,\r\n title = 'license.title',\r\n okText,\r\n cancelText = 'license.button.ignore',\r\n width = 600\r\n}) => {\r\n const intl = useIntl();\r\n const { message } = App.useApp();\r\n const [code, setCode] = useState('');\r\n\r\n const {\r\n accredit_status: isActivated,\r\n message: statusMessage,\r\n bios_id: uuid,\r\n expires_time: expiresTime\r\n } = authData || {};\r\n\r\n // 服务端返回的状态文本映射到国际化 key\r\n const getStatusMessageKey = (msg) => {\r\n if (!msg) return 'license.status.unactivated';\r\n \r\n // 根据服务端返回的英文文本映射\r\n const statusMap = {\r\n 'Already activated': 'license.status.activated',\r\n 'Unactivated': 'license.status.unactivated',\r\n 'Expired': 'license.status.expired',\r\n 'Invalid': 'license.status.invalid'\r\n };\r\n \r\n return statusMap[msg] || 'license.status.unactivated';\r\n };\r\n\r\n const statusMessageKey = getStatusMessageKey(statusMessage);\r\n\r\n const handleOk = () => {\r\n const trimmedCode = code.trim();\r\n if (!trimmedCode) {\r\n message.error(intl.formatMessage({ id: 'license.validation.keyRequired' }));\r\n return;\r\n }\r\n onOk(trimmedCode);\r\n }\r\n \r\n const statusAlert = isActivated ? (\r\n <Alert\r\n message={`${intl.formatMessage({ id: statusMessageKey })}, ${intl.formatMessage({ id: 'license.status.expiresOn' })} ${expiresTime}`}\r\n type=\"success\"\r\n showIcon\r\n />\r\n ) : (\r\n <Alert message={intl.formatMessage({ id: statusMessageKey })} type=\"warning\" showIcon />\r\n );\r\n\r\n const defaultOkText = isActivated ? intl.formatMessage({ id: 'license.button.reactivate' }) : intl.formatMessage({ id: 'license.button.activate' });\r\n\r\n return (\r\n <StyledModal\r\n title={intl.formatMessage({ id: title })}\r\n width={width}\r\n open={true}\r\n onCancel={onCancel}\r\n onOk={handleOk}\r\n okText={okText || defaultOkText}\r\n cancelText={intl.formatMessage({ id: cancelText })}\r\n cancelButtonProps={{ disabled: !isActivated }}\r\n maskClosable={false}\r\n closable={false}\r\n >\r\n <Form\r\n name=\"auth_form\"\r\n labelCol={{ span: 6 }}\r\n wrapperCol={{ span: 18 }}\r\n autoComplete=\"off\"\r\n >\r\n <div style={{ marginBottom: 16 }}>{statusAlert}</div>\r\n <Form.Item label={intl.formatMessage({ id: 'license.machineCode' })} required>\r\n <Input value={uuid} readOnly />\r\n </Form.Item>\r\n <Form.Item label={intl.formatMessage({ id: 'license.key' })} required>\r\n <Input.TextArea\r\n value={code}\r\n onChange={(e) => setCode(e.target.value)}\r\n autoSize={{ minRows: 6, maxRows: 6 }}\r\n placeholder={intl.formatMessage({ id: 'license.placeholder.enterKey' })}\r\n />\r\n </Form.Item>\r\n </Form>\r\n </StyledModal>\r\n );\r\n}\r\n\r\nexport default AuthorizationModal;","import { useState, useEffect, useCallback } from 'react';\r\nimport { message } from 'antd';\r\nimport AuthorizationModal from '../componnets/AuthorizationModal.jsx';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst DEFAULT_AUTH = {\r\n accredit_status: false, // 授权状态\r\n bios_id: '', // 主机 id\r\n message: 'license.status.unactivated', // 激活信息\r\n expires_time: '' // 授权到期时间\r\n}\r\n\r\nexport const useAuth = (options) => {\r\n const intl = useIntl();\r\n const {\r\n fetchAuthInfo,\r\n authorize,\r\n defaultAuthData = DEFAULT_AUTH,\r\n autoShowModal = true\r\n } = options || {};\r\n\r\n const [messageApi, contextHolder] = message.useMessage();\r\n const [showModal, setShowModal] = useState(false); // 默认隐藏\r\n const [authData, setAuthData] = useState(defaultAuthData);\r\n const [isRegistered, setIsRegistered] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const openModal = useCallback(() => setShowModal(true), []);\r\n const closeModal = useCallback(() => setShowModal(false), []);\r\n\r\n useEffect(() => {\r\n async function loadAuthInfo() {\r\n try {\r\n setLoading(true);\r\n const result = await fetchAuthInfo();\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n setAuthData(commands);\r\n setIsRegistered(commands.accredit_status);\r\n if (autoShowModal) {\r\n commands.accredit_status ? closeModal() : openModal();\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch auth info:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n loadAuthInfo();\r\n }, [fetchAuthInfo, autoShowModal, openModal, closeModal]);\r\n\r\n const auth = async (code) => {\r\n try {\r\n setLoading(true);\r\n const result = await authorize({\r\n type: \"accredit_command\",\r\n commands: {\r\n id: \"LICENSE\",\r\n license_data: code\r\n }\r\n });\r\n if (result?.commands) {\r\n const commands = result.commands;\r\n // type accredit_message\r\n if (commands?.accredit_status) {\r\n setIsRegistered(true);\r\n setAuthData(commands);\r\n closeModal();\r\n } else {\r\n // 处理错误消息的国际化\r\n const errorMsg = commands.ciphertext_status || 'license.error.authorizationFailed';\r\n const errorMessage = typeof errorMsg === 'string' && errorMsg.includes('.') \r\n ? intl.formatMessage({ id: errorMsg }) \r\n : errorMsg;\r\n messageApi.error(errorMessage);\r\n }\r\n }\r\n } catch (error) {\r\n console.error('Authorization error:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const modal = showModal && (\r\n <>\r\n <AuthorizationModal\r\n onOk={auth}\r\n onCancel={closeModal}\r\n authData={authData}\r\n />\r\n {contextHolder}\r\n </>\r\n );\r\n\r\n return {\r\n AuthModal: modal,\r\n openAuthModal: openModal,\r\n closeAuthModal: closeModal,\r\n isRegistered,\r\n authData,\r\n loading\r\n };\r\n};","import { useRef, useState, useEffect, useMemo } from \"react\";\r\nimport { Spin, message, Dropdown } from \"antd\";\r\nimport { LoadingOutlined } from '@ant-design/icons';\r\nimport { useInterval } from \"ahooks\";\r\nimport axios from 'axios';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst useUpgrade = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute, // 上传接口:(formData, config) => Promise<response>\r\n upgradeStatus, // 状态轮询接口:(config) => Promise<response>\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000\r\n}) => {\r\n const intl = useIntl();\r\n const [isSpinning, setIsSpinning] = useState(false);\r\n const [pollingInterval, setPollingInterval] = useState(undefined); // 间隔时间,当设置值为 undefined 时会停止计时器\r\n const [currentStatus, setCurrentStatus] = useState(intl.formatMessage({ id: 'upgrade.status.idle' })); // 'idle' | 'uploading' | 'Upload complete, starting upgrade...' | 'upgrading'\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n\r\n const inputRef = useRef(null);\r\n // 控制并发上传\r\n const isUploadingRef = useRef(false);\r\n // 标记组件是否已卸载\r\n const isMountedRef = useRef(true);\r\n\r\n // 分别创建独立的取消令牌\r\n const uploadCancelToken = useRef(axios.CancelToken.source());\r\n const statusCancelToken = useRef(axios.CancelToken.source());\r\n\r\n const showLoader = () => setIsSpinning(true);\r\n const hideLoader = () => setIsSpinning(false);\r\n\r\n // 构建菜单项 - 确保至少包含download和upload\r\n // 构建菜单项 - 最终完美版本\r\n const finalMenuItems = useMemo(() => {\r\n const hasDownload = menuItems.some(item => item.key === 'download');\r\n const hasUpload = menuItems.some(item => item.key === 'upload');\r\n \r\n if (hasDownload && hasUpload) {\r\n return menuItems;\r\n }\r\n \r\n const licenseIndex = menuItems.findIndex(item => item.key === 'license');\r\n \r\n // 如果没有 license,在末尾添加\r\n if (licenseIndex === -1) {\r\n const itemsToAdd = [];\r\n if (menuItems.length > 0) itemsToAdd.push({ type: 'divider' });\r\n // if (!hasDownload) itemsToAdd.push({ key: \"download\", label: intl.formatMessage({ id: 'upgrade.menu.download' }) });\r\n if (!hasUpload) itemsToAdd.push({ key: \"upload\", label: intl.formatMessage({ id: 'upgrade.menu.softwareUpdate' }) });\r\n return [...menuItems, ...itemsToAdd];\r\n }\r\n \r\n // 有 license,在 license 前面插入\r\n const beforeLicense = menuItems.slice(0, licenseIndex);\r\n const licenseItem = menuItems[licenseIndex];\r\n const afterLicense = menuItems.slice(licenseIndex + 1);\r\n \r\n const itemsToInsert = [];\r\n \r\n // 1. 前面的分隔符(如果 beforeLicense 不为空且最后一项不是分隔符)\r\n if (beforeLicense.length > 0 && beforeLicense[beforeLicense.length - 1].type !== 'divider') {\r\n itemsToInsert.push({ type: 'divider' });\r\n }\r\n \r\n // 2. 添加缺少的项\r\n // if (!hasDownload) itemsToInsert.push({ key: \"download\", label: intl.formatMessage({ id: 'upgrade.menu.download' }) });\r\n if (!hasUpload) itemsToInsert.push({ key: \"upload\", label: intl.formatMessage({ id: 'upgrade.menu.softwareUpdate' }) });\r\n \r\n // 3. 后面的分隔符(与 license 之间)\r\n itemsToInsert.push({ type: 'divider' });\r\n \r\n return [...beforeLicense, ...itemsToInsert, licenseItem, ...afterLicense];\r\n }, [menuItems, intl]);\r\n\r\n const handleMenuClick = ({ key }) => {\r\n switch (key) {\r\n case 'download':\r\n onDownload();\r\n return;\r\n case 'upload':\r\n onUpload();\r\n return;\r\n default:\r\n // 其他菜单项交给外部回调处理\r\n if (onMenuClick) {\r\n onMenuClick(key);\r\n } else {\r\n console.warn(`Unknown menu key: ${key} and no onMenuClick provided`);\r\n }\r\n }\r\n };\r\n\r\n const onDownload = async () => {\r\n if (!downloadFiles) {\r\n console.error('downloadFiles function is required for download operation');\r\n message.error(intl.formatMessage({ id: 'upgrade.error.downloadNotConfigured' }));\r\n return;\r\n }\r\n\r\n try {\r\n const res = await downloadFiles();\r\n\r\n if (res.status !== 200) {\r\n throw new Error(`Unexpected status code: ${res.status}`);\r\n }\r\n\r\n // 默认值,兼容接口响应头没有定义文件名\r\n let fileName = 'config.tar.gz';\r\n const contentDisposition = res.headers['content-disposition'] || '';\r\n\r\n // 获取接口响应的content-disposition字段值,以便获取到文件名\r\n if (contentDisposition) {\r\n const filenameMatch = contentDisposition.match(/filename\\s*=\\s*\"?([^\";]+)\"?/i);\r\n if (filenameMatch?.[1]) {\r\n fileName = decodeURIComponent(filenameMatch[1]); // 处理编码后的文件名(如 %20 转空格)\r\n }\r\n }\r\n\r\n // 创建并下载文件\r\n const blob = new Blob([res.data], { type: 'application/octet-stream' });\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n // 下面就是创建一个 a 标签并触发 click 事件,来下载该文件\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.href = url;\r\n link.target = '_blank';\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // 最后移除 a 标签并删除创建的 ObjectURL 对象,防止内存泄漏\r\n link.parentNode.removeChild(link);\r\n window.URL.revokeObjectURL(url);\r\n } catch (error) {\r\n console.error('Download failed:', error);\r\n message.error(intl.formatMessage({ id: 'upgrade.error.downloadFailed' }));\r\n }\r\n }\r\n\r\n const onUpload = () => {\r\n if (inputRef?.current && !isUploadingRef.current) {\r\n inputRef.current.click();\r\n }\r\n }\r\n\r\n const updatePackage = async (event) => {\r\n if (isUploadingRef.current) return; // 防止重复上传\r\n\r\n const file = event.target.files?.[0];\r\n if (!file || !upgradeExecute) {\r\n if (inputRef.current) inputRef.current.value = \"\";\r\n return;\r\n }\r\n\r\n isUploadingRef.current = true;\r\n showLoader();\r\n setCurrentStatus(intl.formatMessage({ id: 'upgrade.status.uploading' }));\r\n setUploadProgress(0);\r\n\r\n // 重置取消令牌\r\n uploadCancelToken.current.cancel();\r\n uploadCancelToken.current = axios.CancelToken.source();\r\n\r\n try {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n // 清除文件选择\r\n if (inputRef.current) inputRef.current.value = \"\";\r\n\r\n // 上传后立即检查业务状态码\r\n // upgradeExecute 使用 umi request 返回的数据是过滤过的\r\n const response = await upgradeExecute(formData, {\r\n onUploadProgress: (progressEvent) => {\r\n if (!isMountedRef.current) return;\r\n const percentCompleted = Math.round(\r\n (progressEvent.loaded * 100) / progressEvent.total\r\n );\r\n setUploadProgress(percentCompleted); // 更新进度状态\r\n },\r\n cancelToken: uploadCancelToken.current.token\r\n });\r\n \r\n // 检查业务 code\r\n if (response?.code !== 200) {\r\n // 即使上传成功,但如果服务器返回非 200,说明有问题\r\n if (isMountedRef.current) {\r\n const errorMsg = response?.message || intl.formatMessage({ id: 'upgrade.error.invalidFileFormat' });\r\n message.error(errorMsg);\r\n cancelRequest();\r\n }\r\n return;\r\n }\r\n\r\n // 上传成功,进入等待升级阶段\r\n if (!isMountedRef.current) return;\r\n setCurrentStatus(intl.formatMessage({ id: 'upgrade.status.uploadComplete' }));\r\n\r\n // 延迟后启动轮询\r\n setTimeout(() => {\r\n if (!isMountedRef.current) return;\r\n setPollingInterval(statusPollingInterval);\r\n setCurrentStatus(intl.formatMessage({ id: 'upgrade.status.upgrading' }));\r\n }, uploadCompleteDelay);\r\n } catch (error) {\r\n if (!isMountedRef.current) return;\r\n\r\n if (!axios.isCancel(error)) {\r\n console.error(\"Upload error:\", error);\r\n message.error(intl.formatMessage({ id: 'upgrade.error.uploadFailed' }));\r\n }\r\n cancelRequest();\r\n } finally {\r\n if (isMountedRef.current) {\r\n isUploadingRef.current = false;\r\n }\r\n }\r\n }\r\n\r\n const fetchUpgradeStatus = async () => {\r\n if (!upgradeStatus || !isMountedRef.current) return;\r\n\r\n try {\r\n // upgradeStatus 使用 axios request 返回的数据没有过滤\r\n const response = await upgradeStatus({\r\n cancelToken: statusCancelToken.current.token\r\n });\r\n\r\n if (response?.status === 200) {\r\n const { code, message: statusMessage } = response.data;\r\n\r\n // 状态处理\r\n switch (code) {\r\n case 200: // 升级成功\r\n message.success(statusMessage, 2.5, () => {\r\n if (isMountedRef.current) {\r\n cancelRequest();\r\n }\r\n window.location.reload();\r\n });\r\n break;\r\n \r\n case 201: // 升级中 — 继续轮询\r\n break;\r\n case 202: // 升级失败\r\n case 203: // 升级异常\r\n if (isMountedRef.current) {\r\n message.error(statusMessage);\r\n cancelRequest();\r\n }\r\n break;\r\n \r\n default:\r\n // 其他 code 如 500、400 等\r\n if (isMountedRef.current) {\r\n message.error(statusMessage || intl.formatMessage({ id: 'upgrade.error.upgradeFailed' }));\r\n cancelRequest();\r\n }\r\n break;\r\n }\r\n }\r\n } catch (error) {\r\n if (!isMountedRef.current) return;\r\n\r\n if (!axios.isCancel(error)) {\r\n console.error('Status check failed:', error);\r\n }\r\n }\r\n }\r\n\r\n const cancelRequest = () => {\r\n // 取消状态轮询\r\n uploadCancelToken.current.cancel('Operation canceled');\r\n statusCancelToken.current.cancel('Operation canceled');\r\n \r\n uploadCancelToken.current = axios.CancelToken.source();\r\n statusCancelToken.current = axios.CancelToken.source();\r\n \r\n // 重置所有状态\r\n setPollingInterval(undefined);\r\n setCurrentStatus('idle');\r\n setUploadProgress(0);\r\n isUploadingRef.current = false;\r\n hideLoader();\r\n };\r\n\r\n // 轮询状态\r\n useInterval(fetchUpgradeStatus, pollingInterval);\r\n\r\n // 组件卸载时清理\r\n useEffect(() => {\r\n return () => {\r\n isMountedRef.current = false;\r\n uploadCancelToken.current.cancel();\r\n statusCancelToken.current.cancel();\r\n };\r\n }, []);\r\n\r\n const upgradeElement = (\r\n <div>\r\n <Dropdown \r\n menu={{ \r\n items: finalMenuItems, \r\n onClick: handleMenuClick\r\n }} \r\n trigger={[\"hover\"]}\r\n >\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className=\"seeder-iconfont seeder-icon-liebiao2 text-xl text-neutral-400\"></i>\r\n </a>\r\n </Dropdown>\r\n <input \r\n ref={inputRef} \r\n type=\"file\" \r\n onChange={updatePackage} \r\n className=\"hidden\"\r\n accept={acceptFileTypes}\r\n />\r\n <Spin \r\n spinning={isSpinning} \r\n indicator={<LoadingOutlined style={{ fontSize: 60 }} spin />}\r\n tip={\r\n currentStatus === intl.formatMessage({ id: 'upgrade.status.uploading' })\r\n ? `${currentStatus} ${uploadProgress}%` \r\n : currentStatus\r\n }\r\n size=\"large\"\r\n fullscreen\r\n />\r\n </div>\r\n )\r\n\r\n return [upgradeElement];\r\n}\r\n\r\nexport default useUpgrade;","import { useCallback } from 'react';\r\nimport { App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { useIntl } from '../i18n';\r\n\r\nconst useSystemOperations = ({\r\n onPowerOff,\r\n onRestart,\r\n confirmTitle = \"system.confirm.title\",\r\n cancelText = \"system.button.cancel\",\r\n okText = \"system.button.confirm\",\r\n run\r\n} = {}) => {\r\n const intl = useIntl();\r\n const { modal: AntdModal } = App.useApp();\r\n\r\n // 处理国际化文本\r\n const confirmTitleText = typeof confirmTitle === 'string' && confirmTitle.includes('.') \r\n ? intl.formatMessage({ id: confirmTitle }) \r\n : confirmTitle;\r\n const cancelTextValue = typeof cancelText === 'string' && cancelText.includes('.') \r\n ? intl.formatMessage({ id: cancelText }) \r\n : cancelText;\r\n const okTextValue = typeof okText === 'string' && okText.includes('.') \r\n ? intl.formatMessage({ id: okText }) \r\n : okText;\r\n\r\n const doAction = useCallback((action) => {\r\n try {\r\n AntdModal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: `${confirmTitleText} ${action === 'poweroff' ? intl.formatMessage({ id: 'system.action.powerOff' }) : intl.formatMessage({ id: 'system.action.restart' })}?`,\r\n cancelText: cancelTextValue,\r\n okText: okTextValue,\r\n onOk: () => {\r\n if (action === 'poweroff' && onPowerOff) {\r\n onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n onRestart();\r\n }\r\n\r\n // Call the run callback after successful operation\r\n if (typeof run === 'function') {\r\n run();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }, [AntdModal, confirmTitleText, cancelTextValue, okTextValue, onPowerOff, onRestart, intl]);\r\n\r\n const getMenuItems = useCallback(() => [\r\n {\r\n key: \"poweroff\",\r\n label: intl.formatMessage({ id: 'system.poweroff' }),\r\n },\r\n {\r\n key: \"restart\",\r\n label: intl.formatMessage({ id: 'system.restart' }),\r\n }\r\n ], [intl]);\r\n\r\n const handleMenuClick = useCallback(({ key }) => {\r\n doAction(key);\r\n }, [doAction]);\r\n\r\n return {\r\n menuItems: getMenuItems(),\r\n handleMenuClick\r\n };\r\n};\r\n\r\nexport default useSystemOperations;","import { useState, useCallback } from 'react';\r\nimport { Spin } from 'antd';\r\n\r\nconst usePageReload = () => {\r\n const [reloading, setReloading] = useState(false);\r\n \r\n const startReload = useCallback((delay = 800) => {\r\n if (reloading) return; // 防止重复触发\r\n\r\n // 显示遮罩\r\n setReloading(true);\r\n \r\n // 设置背景色\r\n document.body.style.backgroundColor = '#282828';\r\n document.body.style.transition = 'background-color 0.1s';\r\n document.body.offsetHeight;\r\n \r\n // 延迟刷新\r\n const timer = setTimeout(() => {\r\n window.location.reload();\r\n }, delay);\r\n\r\n // 清理函数(防止内存泄漏)\r\n return () => clearTimeout(timer);\r\n }, [reloading]);\r\n \r\n const ReloadOverlay = () => {\r\n if (!reloading) return null;\r\n \r\n return (\r\n <div style={{\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: '#282828',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n zIndex: 999999,\r\n color: 'white'\r\n }}>\r\n <Spin size=\"large\" />\r\n <div style={{ marginTop: 20, fontSize: 16 }}>\r\n Loading preset configuration...\r\n </div>\r\n <div style={{ marginTop: 10, fontSize: 12, color: '#aaa' }}>\r\n Page will refresh shortly\r\n </div>\r\n </div>\r\n );\r\n };\r\n \r\n return { startReload, ReloadOverlay };\r\n};\r\n\r\nexport default usePageReload;","import { useWebSocket } from 'ahooks';\r\nimport { useEffect, useCallback, useRef, useMemo, useState } from 'react';\r\n\r\nconst getReadyStateText = (state) => {\r\n const states = { \r\n 0: 'CONNECTING', \r\n 1: 'OPEN', \r\n 2: 'CLOSING', \r\n 3: 'CLOSED' \r\n };\r\n return states[state] || `UNKNOWN(${state})`;\r\n};\r\n\r\n// 创建空日志器\r\nconst createDummyLogger = () => {\r\n const dummyFn = () => {};\r\n return {\r\n log: dummyFn,\r\n exportLogs: dummyFn,\r\n getLogStats: () => ({\r\n total: 0,\r\n errors: 0,\r\n warnings: 0,\r\n info: 0,\r\n lastTimestamp: null\r\n }),\r\n clearLogs: dummyFn,\r\n logs: []\r\n };\r\n};\r\n\r\n// 创建通用的日志器\r\nconst createGlobalLogger = (webSocketUrl = '') => {\r\n const logs = [];\r\n const maxLogs = 1000;\r\n\r\n // 判断是否为开发环境\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n\r\n const log = (level, message, data = {}) => {\r\n const timestamp = new Date().toISOString();\r\n const logEntry = {\r\n timestamp,\r\n level,\r\n message,\r\n data,\r\n timestampDisplay: new Date().toLocaleString('zh-CN', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: false\r\n })\r\n };\r\n\r\n logs.push(logEntry);\r\n if (logs.length > maxLogs) logs.shift();\r\n\r\n // 只在开发环境下输出到控制台\r\n if (isDevelopment) {\r\n const consoleMessage = `[${logEntry.timestampDisplay}] [WebSocket] [${level}] ${message}`;\r\n const consoleArgs = [consoleMessage];\r\n if (Object.keys(data).length > 0) consoleArgs.push(data);\r\n\r\n switch (level) {\r\n case 'ERROR': console.error(...consoleArgs); break;\r\n case 'WARN': console.warn(...consoleArgs); break;\r\n case 'INFO': console.info(...consoleArgs); break;\r\n default: console.log(...consoleArgs);\r\n }\r\n }\r\n\r\n return logEntry;\r\n };\r\n\r\n const exportLogs = (filenamePrefix = 'websocket') => {\r\n if (logs.length === 0) {\r\n log('WARN', '没有日志可导出', { filenamePrefix });\r\n return;\r\n }\r\n\r\n const logText = logs.map(entry => \r\n `[${entry.timestampDisplay}] [${entry.level}] ${entry.message}\\n数据: ${JSON.stringify(entry.data, null, 2)}`\r\n ).join('\\n' + '='.repeat(50) + '\\n');\r\n\r\n const blob = new Blob([logText], { type: 'text/plain;charset=utf-8' });\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n let hostname = 'unknown';\r\n let pathname = 'unknown';\r\n \r\n try {\r\n if (webSocketUrl) {\r\n const urlObj = new URL(webSocketUrl.replace(/^ws/, 'http'));\r\n hostname = urlObj.hostname.replace(/\\./g, '-');\r\n pathname = urlObj.pathname\r\n .replace(/\\//g, '-')\r\n .replace(/^-|-$/g, '') \r\n || 'root';\r\n }\r\n } catch (error) {\r\n console.warn('无法解析WebSocket URL:', error);\r\n }\r\n\r\n const readableTime = new Date().toLocaleString('zh-CN', {\r\n year: 'numeric', month: '2-digit', day: '2-digit',\r\n hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false\r\n }).replace(/[\\/:\\s]/g, '-');\r\n\r\n const filename = `${filenamePrefix}-${hostname}-${pathname}-${readableTime}.log`;\r\n\r\n const a = document.createElement('a');\r\n a.href = blobUrl;\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n URL.revokeObjectURL(blobUrl);\r\n\r\n log('INFO', '日志文件已导出', { count: logs.length, filename });\r\n };\r\n\r\n const getLogStats = () => ({\r\n total: logs.length,\r\n errors: logs.filter(l => l.level === 'ERROR').length,\r\n warnings: logs.filter(l => l.level === 'WARN').length,\r\n info: logs.filter(l => l.level === 'INFO').length,\r\n lastTimestamp: logs[logs.length - 1]?.timestampDisplay\r\n });\r\n\r\n const clearLogs = () => {\r\n logs.length = 0;\r\n log('INFO', '日志已清空');\r\n };\r\n\r\n return { log, exportLogs, getLogStats, clearLogs, logs };\r\n};\r\n\r\n// 心跳管理器\r\nconst useHeartbeat = (sendMessage, readyState, config, logger, enabled = true) => {\r\n const heartbeatTimerRef = useRef(null);\r\n const lastHeartbeatTimeRef = useRef(Date.now());\r\n const isMountedRef = useRef(true);\r\n\r\n const configRef = useRef({\r\n interval: config?.interval || 20000,\r\n message: config?.message || { type: 'ping' }\r\n });\r\n\r\n const stateRef = useRef({\r\n sendMessage,\r\n readyState,\r\n enabled\r\n });\r\n\r\n useEffect(() => {\r\n configRef.current = {\r\n interval: config?.interval || 20000,\r\n message: config?.message || { type: 'ping' }\r\n };\r\n }, [config?.interval, config?.message]);\r\n\r\n useEffect(() => {\r\n stateRef.current = {\r\n sendMessage,\r\n readyState,\r\n enabled\r\n };\r\n }, [sendMessage, readyState, enabled]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n isMountedRef.current = false;\r\n if (heartbeatTimerRef.current) {\r\n clearInterval(heartbeatTimerRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const stopHeartbeat = useCallback(() => {\r\n if (heartbeatTimerRef.current) {\r\n clearInterval(heartbeatTimerRef.current);\r\n heartbeatTimerRef.current = null;\r\n if (stateRef.current.enabled) {\r\n logger.log('INFO', '停止心跳机制');\r\n }\r\n }\r\n }, [logger]);\r\n\r\n const startHeartbeat = useCallback(() => {\r\n stopHeartbeat();\r\n\r\n const currentState = stateRef.current;\r\n const currentConfig = configRef.current;\r\n \r\n if (!currentState.enabled) return;\r\n\r\n logger.log('INFO', '启动心跳机制', { interval: currentConfig.interval });\r\n\r\n heartbeatTimerRef.current = setInterval(() => {\r\n // 检查组件是否挂载\r\n if (!isMountedRef.current || !heartbeatTimerRef.current) {\r\n return;\r\n }\r\n \r\n // 目的: 总是获取最新的值\r\n const latestState = stateRef.current;\r\n const latestConfig = configRef.current;\r\n \r\n if (latestState.sendMessage && latestState.readyState === 1) {\r\n try {\r\n latestState.sendMessage(JSON.stringify(latestConfig.message));\r\n lastHeartbeatTimeRef.current = Date.now();\r\n logger.log('DEBUG', '发送心跳包', {\r\n timeSinceLastHeartbeat: Date.now() - lastHeartbeatTimeRef.current,\r\n readyState: getReadyStateText(latestState.readyState)\r\n });\r\n } catch (error) {\r\n logger.log('ERROR', '发送心跳失败', {\r\n error: error.message,\r\n readyState: getReadyStateText(latestState.readyState)\r\n });\r\n }\r\n }\r\n }, currentConfig.interval);\r\n }, [stopHeartbeat, logger]);\r\n\r\n // 自动管理心跳\r\n useEffect(() => {\r\n const currentState = stateRef.current;\r\n \r\n if (currentState.enabled) {\r\n if (currentState.readyState === 1) {\r\n startHeartbeat();\r\n } else {\r\n stopHeartbeat();\r\n }\r\n } else {\r\n stopHeartbeat();\r\n }\r\n\r\n return () => {\r\n if (heartbeatTimerRef.current) {\r\n clearInterval(heartbeatTimerRef.current);\r\n heartbeatTimerRef.current = null;\r\n }\r\n };\r\n }, [readyState, enabled, startHeartbeat, stopHeartbeat]);\r\n\r\n const heartbeatImpl = useMemo(() => {\r\n if (!enabled) {\r\n return {\r\n startHeartbeat: () => {},\r\n stopHeartbeat: () => {},\r\n getLastHeartbeatTime: () => null,\r\n isEnabled: false\r\n };\r\n }\r\n\r\n return {\r\n startHeartbeat,\r\n stopHeartbeat,\r\n getLastHeartbeatTime: () => lastHeartbeatTimeRef.current,\r\n isEnabled: true\r\n };\r\n }, [enabled, startHeartbeat, stopHeartbeat]);\r\n\r\n return heartbeatImpl;\r\n};\r\n\r\nconst useWebSocketWithFeatures = (config) => {\r\n const { url, options = {}, heartbeat: heartbeatConfig = false, enableLog = true } = config;\r\n const [isConnected, setIsConnected] = useState(false);\r\n\r\n // 创建 logger 实例\r\n const logger = useMemo(() => {\r\n if (enableLog) {\r\n return createGlobalLogger(url);\r\n }\r\n return createDummyLogger();\r\n }, [url, enableLog]);\r\n\r\n const websocketOptions = useMemo(() => ({\r\n ...options,\r\n onOpen: (event) => {\r\n logger.log('INFO', 'WebSocket 连接成功', {\r\n url,\r\n readyState: getReadyStateText(1), // 连接成功时 readyState 为 1\r\n eventCode: event?.code\r\n });\r\n setIsConnected(true);\r\n options.onOpen?.(event);\r\n },\r\n onError: (error) => {\r\n logger.log('ERROR', 'WebSocket 连接错误', {\r\n url,\r\n error: error.message,\r\n errorType: error.type,\r\n readyState: getReadyStateText(3) // 错误时 readyState 为 3\r\n });\r\n setIsConnected(false);\r\n options.onError?.(error);\r\n },\r\n onClose: (event) => {\r\n logger.log('WARN', 'WebSocket 连接断开', {\r\n url,\r\n code: event.code,\r\n reason: event.reason,\r\n wasClean: event.wasClean,\r\n readyState: getReadyStateText(3) // 关闭时 readyState 为 3\r\n });\r\n setIsConnected(false);\r\n options.onClose?.(event);\r\n },\r\n onReconnect: (count) => {\r\n logger.log('INFO', '尝试重新连接', { \r\n url,\r\n attempt: count,\r\n maxAttempts: options.reconnectLimit || 10\r\n });\r\n options.onReconnect?.(count);\r\n }\r\n }), [url, options, logger]);\r\n\r\n const {\r\n latestMessage,\r\n readyState, \r\n sendMessage,\r\n connect,\r\n disconnect\r\n } = useWebSocket(url, websocketOptions);\r\n\r\n const heartbeatOptions = useMemo(() => \r\n heartbeatConfig === true ? {} : heartbeatConfig,\r\n [heartbeatConfig]\r\n );\r\n\r\n const heartbeatEnabled = useMemo(() => \r\n heartbeatConfig !== false,\r\n [heartbeatConfig]\r\n );\r\n\r\n const heartbeat = useHeartbeat(\r\n sendMessage, \r\n readyState, \r\n heartbeatOptions,\r\n logger,\r\n heartbeatEnabled\r\n );\r\n\r\n // 在全局暴露日志方法\r\n useEffect(() => {\r\n if (typeof window !== 'undefined' && enableLog) {\r\n // 生成唯一的键名:基于URL进行base64编码\r\n const key = `exportWebSocketLogs_${btoa(url)}`;\r\n // 在window对象上添加方法\r\n window[key] = () => logger.exportLogs();\r\n }\r\n\r\n return () => {\r\n if (typeof window !== 'undefined' && enableLog) {\r\n const key = `exportWebSocketLogs_${btoa(url)}`;\r\n delete window[key];\r\n }\r\n };\r\n }, [url, enableLog, logger]);\r\n\r\n const loggerMethods = useMemo(() => ({\r\n log: (level, message, data) => logger.log(level, message, data),\r\n exportLogs: () => logger.exportLogs(),\r\n getLogStats: () => logger.getLogStats(),\r\n clearLogs: () => logger.clearLogs()\r\n }), [logger]);\r\n\r\n return {\r\n latestMessage,\r\n readyState,\r\n sendMessage,\r\n connect,\r\n disconnect,\r\n isConnected,\r\n readyStateText: getReadyStateText(readyState),\r\n \r\n // 心跳功能\r\n heartbeat,\r\n // 日志功能\r\n logger: enableLog ? loggerMethods : null\r\n };\r\n}\r\n\r\nexport default useWebSocketWithFeatures;\r\n\r\n// 在控制台中直接查看所有可用的导出方法 Object.keys(window).filter(key => key.startsWith('exportWebSocketLogs_'))\r\n// 导出特定连接的日志 window['exportWebSocketLogs_d3M6Ly8xOTIuMTY4LjEyMy4yMDQvd3MvZHZyL3ZpZGVvX3N0YXR1c19jaGFuZ2U=']();","// seeder-st2110-components 组件库中文语言包\r\nexport default {\r\n // 通用按钮\r\n 'button.close': '关闭',\r\n 'button.apply': '应用',\r\n 'button.cancel': '取消',\r\n 'button.delete': '删除',\r\n \r\n // 输入框占位符\r\n 'input.placeholder.enterInteger': '请输入整数',\r\n 'input.placeholder.enterPort': '请输入端口 (0-65535)',\r\n 'input.placeholder.enterPayload': '请输入负载 (96-127)',\r\n \r\n // 使用率显示\r\n 'usage.memory': '内存使用率',\r\n 'usage.totalMemory': '内存总量',\r\n 'usage.cpu': 'CPU 使用率',\r\n 'usage.disk': '磁盘使用率',\r\n 'usage.cpuTemp': 'CPU 温度',\r\n 'usage.memTemp': '内存温度',\r\n 'usage.nicTemp': '网卡温度',\r\n 'usage.diskTemp': '硬盘温度',\r\n 'usage.gpu': 'GPU 使用率',\r\n 'usage.gpuTemp': 'GPU 温度',\r\n \r\n // 菜单\r\n 'menu.networkSettings': '网络设置',\r\n 'menu.ptp': 'PTP',\r\n 'menu.nmos': 'NMOS',\r\n 'menu.preset': '预设',\r\n 'menu.license': '许可证',\r\n 'menu.maintenance': '维护',\r\n 'menu.system': '系统',\r\n \r\n // Network Settings Modal\r\n 'networkSettings.title': '网络设置',\r\n 'networkSettings.name': '名称',\r\n 'networkSettings.ipAddress': 'IP 地址',\r\n 'networkSettings.subnetMask': '子网掩码',\r\n 'networkSettings.restartRequired': '需要重启才能应用更改。是否立即重启?',\r\n 'networkSettings.restartNow': '立即重启',\r\n 'networkSettings.restartLater': '稍后重启',\r\n 'networkSettings.saveSuccess': '保存成功',\r\n \r\n // PTP Modal\r\n 'ptp.title': 'PTP',\r\n 'ptp.domainNumber': '域编号',\r\n 'ptp.priority1': '优先级 1',\r\n 'ptp.priority2': '优先级 2',\r\n 'ptp.grandmasterIdentity': '主时钟 ID',\r\n 'ptp.portIdentity': '端口标识',\r\n 'ptp.clockClass': '时钟等级',\r\n 'ptp.clockClass.atomic': '原子钟 ({value})',\r\n 'ptp.clockClass.gps': 'GPS ({value})',\r\n 'ptp.clockClass.slaveOnly': '仅从时钟 ({value})',\r\n 'ptp.clockAccuracy': '时钟精度',\r\n 'ptp.offsetScaledLogVariance': '时钟偏移方差',\r\n 'ptp.utcOffset': 'UTC 偏移',\r\n 'ptp.connectedStatus': '连接状态',\r\n 'ptp.lockedStatus': '锁定状态',\r\n 'ptp.connected': '已连接',\r\n 'ptp.disconnected': '未连接',\r\n 'ptp.locked': '已锁定',\r\n 'ptp.unlocked': '未锁定',\r\n 'ptp.saveSuccess': '保存成功',\r\n 'ptp.unknown': '未知',\r\n \r\n // NMOS Modal\r\n 'nmos.title': 'NMOS',\r\n 'nmos.hostAddress': '主机地址',\r\n 'nmos.domain': '域名',\r\n 'nmos.registryAddress': '注册中心地址',\r\n 'nmos.registrationPort': '注册中心端口',\r\n 'nmos.registryVersion': '注册中心版本',\r\n 'nmos.loggingLevel': '日志级别',\r\n 'nmos.placeholder.selectHostAddress': '选择主机地址',\r\n 'nmos.placeholder.selectVersion': '选择版本',\r\n 'nmos.saveSuccess': '保存成功',\r\n \r\n // Preset Modal\r\n 'preset.title': '预设管理',\r\n 'preset.name': '名称',\r\n 'preset.categories': '分类',\r\n 'preset.description': '描述',\r\n 'preset.placeholder.enterName': '请输入名称',\r\n 'preset.placeholder.enterDescription': '请输入描述',\r\n 'preset.header.name': '名称',\r\n 'preset.header.createTime': '创建时间',\r\n 'preset.header.description': '描述',\r\n 'preset.button.new': '新建预设',\r\n 'preset.button.delete': '删除',\r\n 'preset.button.load': '加载',\r\n 'preset.button.save': '保存',\r\n 'preset.button.edit': '编辑',\r\n 'preset.button.cancel': '取消',\r\n 'preset.button.import': '导入',\r\n 'preset.button.export': '导出',\r\n 'preset.empty.noData': '从列表中选择一个预设查看详情',\r\n 'preset.unsaved.detected': '检测到未保存的预设',\r\n 'preset.empty.create': '创建新预设',\r\n 'preset.untitled': '未命名',\r\n 'preset.delete.title': '删除预设',\r\n 'preset.delete.confirmMessage': '确定要删除预设',\r\n 'preset.load.title': '加载预设',\r\n 'preset.load.confirmMessage': '确定要加载预设',\r\n 'preset.load.loading': '加载中...',\r\n 'preset.success': '成功',\r\n 'preset.validation.nameRequired': '名称是必填项',\r\n 'preset.validation.categoryRequired': '请选择分类',\r\n 'preset.error.noSelectionOrIdMissing': '未选择预设或预设 ID 缺失',\r\n 'preset.import.invalidFile': '请选择 .preset 格式的文件',\r\n \r\n // License/Auth Modal\r\n 'license.title': '注册许可证',\r\n 'license.machineCode': '机器码',\r\n 'license.key': '许可证密钥',\r\n 'license.placeholder.enterKey': '请输入许可证密钥',\r\n 'license.button.activate': '立即激活',\r\n 'license.button.reactivate': '重新激活',\r\n 'license.button.ignore': '忽略',\r\n 'license.status.unactivated': '未激活',\r\n 'license.status.activated': '已激活',\r\n 'license.status.expired': '已过期',\r\n 'license.status.invalid': '无效',\r\n 'license.status.expiresOn': '到期时间',\r\n 'license.validation.keyRequired': '许可证密钥不能为空',\r\n 'license.error.authorizationFailed': '授权失败',\r\n \r\n // 升级相关\r\n 'upgrade.menu.download': '导出配置',\r\n 'upgrade.menu.softwareUpdate': '软件升级',\r\n 'upgrade.status.idle': '空闲',\r\n 'upgrade.status.uploading': '上传中',\r\n 'upgrade.status.uploadComplete': '上传完成,开始升级...',\r\n 'upgrade.status.upgrading': '升级中...',\r\n 'upgrade.error.downloadNotConfigured': '下载功能未配置',\r\n 'upgrade.error.downloadFailed': '下载失败',\r\n 'upgrade.error.uploadFailed': '上传失败',\r\n 'upgrade.error.invalidFileFormat': '上传失败:文件格式无效',\r\n 'upgrade.error.upgradeFailed': '升级失败',\r\n \r\n // 系统操作\r\n 'system.poweroff': '关机',\r\n 'system.restart': '重启',\r\n 'system.action.powerOff': '关闭',\r\n 'system.action.restart': '重启',\r\n 'system.confirm.title': '确认操作',\r\n 'system.confirm.message': '确定要{action}系统吗?此操作无法撤销。',\r\n 'system.button.cancel': '取消',\r\n 'system.button.confirm': '确认',\r\n \r\n // Maintenance page\r\n 'maintenance.restarting': '系统正在重启...',\r\n 'maintenance.poweredOff': '系统已关闭',\r\n 'maintenance.waiting': '请等待系统启动...',\r\n 'maintenance.redirecting.countdown': '将在 {countdown} 秒后自动跳转',\r\n 'maintenance.waiting.long': '系统仍在启动中,这可能需要一些时间...',\r\n 'maintenance.retry': '重试连接',\r\n 'maintenance.offline.description': '系统当前处于离线状态,请联系管理员开启设备。',\r\n \r\n // LSM Label\r\n 'lsm.label': '标签',\r\n 'lsm.placeholder.select': '请选择标签',\r\n};\r\n","// seeder-st2110-components component library English language pack\nexport default {\n // General buttons\n 'button.close': 'Close',\n 'button.apply': 'Apply',\n 'button.cancel': 'Cancel',\n 'button.delete': 'Delete',\n \n // Input placeholders\n 'input.placeholder.enterInteger': 'Enter an integer',\n 'input.placeholder.enterPort': ' Enter port (0-65535)',\n 'input.placeholder.enterPayload': 'Enter payload (96-127)',\n \n // Usage display\n 'usage.memory': 'Memory Usage',\n 'usage.totalMemory': 'Total Memory',\n 'usage.cpu': 'CPU Usage',\n 'usage.disk': 'Disk Usage',\n 'usage.cpuTemp': 'CPU Temperature',\n 'usage.memTemp': 'Memory Temperature',\n 'usage.nicTemp': 'NIC Temperature',\n 'usage.diskTemp': 'Disk Temperature',\n 'usage.gpu': 'GPU Usage',\n 'usage.gpuTemp': 'GPU Temperature',\n \n // Menu\n 'menu.networkSettings': 'Network Settings',\n 'menu.ptp': 'PTP',\n 'menu.nmos': 'NMOS',\n 'menu.preset': 'Preset',\n 'menu.license': 'License',\n 'menu.maintenance': 'Maintenance',\n 'menu.system': 'System',\n \n // Network Settings Modal\n 'networkSettings.title': 'Network Settings',\n 'networkSettings.name': 'Name',\n 'networkSettings.ipAddress': 'IP Address',\n 'networkSettings.subnetMask': 'Netmask',\n 'networkSettings.restartRequired': 'Restart is required to apply the changes. Do you want to restart now?',\n 'networkSettings.restartNow': 'Restart Now',\n 'networkSettings.restartLater': 'Restart Later',\n 'networkSettings.saveSuccess': 'Success',\n \n // PTP Modal\n 'ptp.title': 'PTP',\n 'ptp.domainNumber': 'Domain',\n 'ptp.priority1': 'Priority 1',\n 'ptp.priority2': 'Priority 2',\n 'ptp.grandmasterIdentity': 'Grandmaster Identity',\n 'ptp.portIdentity': 'Port Identity',\n 'ptp.clockClass': 'Clock Class',\n 'ptp.clockClass.atomic': 'Atomic Clock ({value})',\n 'ptp.clockClass.gps': 'GPS ({value})',\n 'ptp.clockClass.slaveOnly': 'Slave-Only ({value})',\n 'ptp.clockAccuracy': 'Clock Accuracy',\n 'ptp.offsetScaledLogVariance': 'Offset Scaled Log Variance',\n 'ptp.utcOffset': 'UTC Offset',\n 'ptp.connectedStatus': 'Connected Status',\n 'ptp.lockedStatus': 'Locked Status',\n 'ptp.connected': 'Connected',\n 'ptp.disconnected': 'Disconnected',\n 'ptp.locked': 'Locked',\n 'ptp.unlocked': 'Unlocked',\n 'ptp.saveSuccess': 'Success',\n 'ptp.unknown': 'Unknown',\n \n // NMOS Modal\n 'nmos.title': 'NMOS',\n 'nmos.hostAddress': 'Host Addresses',\n 'nmos.domain': 'Domain',\n 'nmos.registryAddress': 'Registry Address',\n 'nmos.registrationPort': 'Registry Port',\n 'nmos.registryVersion': 'Registry Version',\n 'nmos.loggingLevel': 'Logging Level',\n 'nmos.placeholder.selectHostAddress': 'Select IP address',\n 'nmos.placeholder.selectVersion': 'Select version',\n 'nmos.saveSuccess': 'Success',\n \n // Preset Modal\n 'preset.title': 'Preset Management',\n 'preset.name': 'Name',\n 'preset.categories': 'Categories',\n 'preset.description': 'Description',\n 'preset.placeholder.enterName': 'Enter name',\n 'preset.placeholder.enterDescription': 'Enter description',\n 'preset.header.name': 'Name',\n 'preset.header.createTime': 'Create Time',\n 'preset.header.description': 'Description',\n 'preset.button.new': 'New Preset',\n 'preset.button.delete': 'Delete',\n 'preset.button.load': 'Load',\n 'preset.button.save': 'Save',\n 'preset.button.edit': 'Edit',\n 'preset.button.cancel': 'Cancel',\n 'preset.button.import': 'Import',\n 'preset.button.export': 'Export',\n 'preset.empty.noData': 'Select a preset from the list to view details',\n 'preset.unsaved.detected': 'Existing unsaved preset detected',\n 'preset.empty.create': 'Create New Preset',\n 'preset.untitled': 'Untitled',\n 'preset.delete.title': 'Delete Preset',\n 'preset.delete.confirmMessage': 'Are you sure you want to delete preset',\n 'preset.load.title': 'Load Preset',\n 'preset.load.confirmMessage': 'Are you sure you want to load preset',\n 'preset.load.loading': 'Loading...',\n 'preset.success': 'Success',\n 'preset.validation.nameRequired': 'Name is required',\n 'preset.validation.categoryRequired': 'No category selected',\n 'preset.error.noSelectionOrIdMissing': 'No preset selected or preset ID is missing',\n 'preset.import.invalidFile': 'Please select a file with the .preset extension.',\n \n // License/Auth Modal\n 'license.title': 'Register License',\n 'license.machineCode': 'Machine Code',\n 'license.key': 'License Key',\n 'license.placeholder.enterKey': 'Enter your license key',\n 'license.button.activate': 'Activate Now',\n 'license.button.reactivate': 'Reactivate',\n 'license.button.ignore': 'Ignore',\n 'license.status.unactivated': 'Unactivated',\n 'license.status.activated': 'Already activated',\n 'license.status.expired': 'Expired',\n 'license.status.invalid': 'Invalid',\n 'license.status.expiresOn': 'will expire on',\n 'license.validation.keyRequired': 'License key cannot be empty',\n 'license.error.authorizationFailed': 'Authorization failed',\n \n // Upgrade related\n 'upgrade.menu.download': 'Download Config File',\n 'upgrade.menu.softwareUpdate': 'Software Update',\n 'upgrade.status.idle': 'Idle',\n 'upgrade.status.uploading': 'Uploading...',\n 'upgrade.status.uploadComplete': 'Upload complete, starting upgrade...',\n 'upgrade.status.upgrading': 'Upgrading...',\n 'upgrade.error.downloadNotConfigured': 'Download functionality not configured',\n 'upgrade.error.downloadFailed': 'Download failed',\n 'upgrade.error.uploadFailed': 'Upload failed',\n 'upgrade.error.invalidFileFormat': 'Upload failed: Invalid file format',\n 'upgrade.error.upgradeFailed': 'Upgrade failed',\n \n // System operations\n 'system.poweroff': 'Power Off',\n 'system.restart': 'Restart',\n 'system.action.powerOff': 'power off',\n 'system.action.restart': 'restart',\n 'system.confirm.title': 'Confirmation Required',\n 'system.confirm.message': 'Are you sure you want to {action} the system? This action cannot be undone.',\n 'system.button.cancel': 'Cancel',\n 'system.button.confirm': 'Confirm',\n \n // Maintenance page\n 'maintenance.restarting': 'System is restarting...',\n 'maintenance.poweredOff': 'System is powered off',\n 'maintenance.waiting': 'Please wait while the system is starting up...',\n 'maintenance.redirecting.countdown': 'Redirecting automatically in {countdown} second{countdown, plural, one {} other {s}}',\n 'maintenance.waiting.long': 'Still starting up... This may take a moment.',\n 'maintenance.retry': 'Retry connection',\n 'maintenance.offline.description': 'The system is currently offline. Please contact your administrator to power it on.',\n \n // LSM Label\n 'lsm.label': 'Label',\n 'lsm.placeholder.select': 'Select label',\n};\n","import { memo, useEffect, useMemo, useState, useCallback, useRef } from 'react';\r\nimport { Form, App, Typography, Divider, Input } from 'antd';\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst NetworkFieldGroup = ({ prefix, interfaces, fieldConfig = {} }) => {\r\n const intl = useIntl();\r\n \r\n // 默认字段配置\r\n const defaultFieldConfig = {\r\n name: { label: intl.formatMessage({ id: 'networkSettings.name' }), enabled: true },\r\n ip: { label: intl.formatMessage({ id: 'networkSettings.ipAddress' }), enabled: true },\r\n netmask: { label: intl.formatMessage({ id: 'networkSettings.subnetMask' }), enabled: true }\r\n };\r\n \r\n const mergedFieldConfig = {\r\n ...defaultFieldConfig,\r\n ...fieldConfig,\r\n netmask: {\r\n label: defaultFieldConfig.netmask.label,\r\n enabled: fieldConfig.netmask?.enabled ?? defaultFieldConfig.netmask.enabled,\r\n }\r\n };\r\n \r\n return (\r\n <>\r\n <Typography.Title\r\n level={5}\r\n style={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: 16\r\n }}\r\n >\r\n {prefix}\r\n </Typography.Title>\r\n {interfaces.map((iface, index) => (\r\n <div key={iface.id || index}>\r\n {mergedFieldConfig.name.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.name.label}\r\n name={[prefix, index, \"display_name\"]}\r\n >\r\n <Input disabled />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.ip.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.ip.label}\r\n name={[prefix, index, \"ip_address\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {mergedFieldConfig.netmask.enabled && (\r\n <Form.Item\r\n label={mergedFieldConfig.netmask.label}\r\n name={[prefix, index, \"netmask\"]}\r\n >\r\n <Input />\r\n </Form.Item>\r\n )}\r\n\r\n {index < interfaces.length - 1 && <Divider style={{ marginBlock: 16 }} />}\r\n </div>\r\n ))}\r\n </>\r\n )\r\n};\r\n\r\nconst NetworkSettingsModal = ({\r\n open, \r\n onClose, \r\n getLanConfig, // 可选 - 单独获取 LAN 配置的函数\r\n getSysConfig, // 可选 - 单独获取 QSFP 配置的函数\r\n getConfig, // 可选 - 统一获取配置的函数 ipgweb 专用\r\n updateLanConfig, \r\n updateSysConfig, \r\n restart,\r\n onRestartSuccess, // 重启成功后的回调(可选)\r\n modalProps = {},\r\n formProps = {},\r\n fieldConfig = {},\r\n sections = ['LAN', 'QSFP'],\r\n showNetmask = { LAN: true, QSFP: false },\r\n restartRemark\r\n}) => {\r\n const intl = useIntl();\r\n const { message, modal } = App.useApp();\r\n const [form] = Form.useForm();\r\n\r\n const [st2110Interfaces, setSt2110Interfaces] = useState([]);\r\n const [lanConfigs, setLanConfigs] = useState([]);\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n\r\n // 用于保存原始 QSFP 数据,供无 getSysConfig 时做对比\r\n const originalSt2110InterfacesRef = useRef([]);\r\n\r\n const initializationStatus = useRef({\r\n hasFetched: false,\r\n hasInitialized: false\r\n });\r\n\r\n const preparedFieldConfig = useMemo(() => {\r\n const config = { ...fieldConfig };\r\n \r\n // 确保LAN和QSFP的配置存在\r\n config.LAN = config.LAN || {};\r\n config.QSFP = config.QSFP || {};\r\n\r\n if (sections.includes('LAN')) {\r\n config.LAN.netmask = {\r\n ...(config.LAN.netmask || {}),\r\n enabled: showNetmask.LAN\r\n };\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n config.QSFP.netmask = {\r\n ...(config.QSFP.netmask || {}),\r\n enabled: showNetmask.QSFP\r\n };\r\n }\r\n\r\n return config;\r\n }, [fieldConfig, showNetmask, sections]);\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n \r\n const fetchData = async () => {\r\n if (initializationStatus.current.hasFetched) return;\r\n \r\n try {\r\n initializationStatus.current.hasFetched = true;\r\n\r\n if (getConfig) {\r\n // 使用统一接口获取数据\r\n const config = await getConfig();\r\n if (sections.includes('LAN') && config.lan_interfaces) {\r\n setLanConfigs(config.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && config.interfaces) {\r\n const interfaces = config.interfaces;\r\n setSt2110Interfaces(interfaces);\r\n originalSt2110InterfacesRef.current = JSON.parse(JSON.stringify(interfaces));\r\n }\r\n } else {\r\n const promises = [];\r\n if (sections.includes('LAN')) {\r\n promises.push(getLanConfig());\r\n }\r\n \r\n if (sections.includes('QSFP')) {\r\n promises.push(getSysConfig());\r\n }\r\n\r\n const results = await Promise.allSettled(promises);\r\n\r\n if (sections.includes('LAN') && getLanConfig) {\r\n const lanResult = results[0];\r\n if (lanResult.status === 'fulfilled') {\r\n setLanConfigs(lanResult.value || []);\r\n }\r\n }\r\n \r\n if (sections.includes('QSFP') && getSysConfig) {\r\n const sysResult = sections.includes('LAN') ? results[1] : results[0];\r\n if (sysResult.status === 'fulfilled' && sysResult.value) {\r\n const interfaces = sysResult.value.st2110_interfaces || [];\r\n setSt2110Interfaces(interfaces);\r\n originalSt2110InterfacesRef.current = JSON.parse(JSON.stringify(interfaces));\r\n }\r\n }\r\n }\r\n \r\n setIsInitialized(true);\r\n } catch (error) {\r\n console.error('Failed to fetch data:', error);\r\n initializationStatus.current.hasFetched = false; // 出错时重置\r\n }\r\n };\r\n\r\n fetchData();\r\n }, [open, getLanConfig, getSysConfig, getConfig, sections]); \r\n\r\n // 当模态框关闭时重置状态\r\n useEffect(() => {\r\n if (!open) {\r\n setIsInitialized(false);\r\n setLanConfigs([]);\r\n setSt2110Interfaces([]);\r\n form.resetFields();\r\n initializationStatus.current = { hasFetched: false, hasInitialized: false };\r\n originalSt2110InterfacesRef.current = [];\r\n }\r\n }, [open, form]);\r\n\r\n // 动态初始值配置\r\n const initialValues = useMemo(() => {\r\n const values = {};\r\n \r\n if (sections.includes('LAN') && lanConfigs.length > 0) {\r\n values.LAN = lanConfigs.map(config => ({\r\n connection_id: config.connection_id,\r\n display_name: config.display_name,\r\n ip_address: config.ip_address,\r\n ...(showNetmask.LAN ? { netmask: config.netmask } : {})\r\n }));\r\n }\r\n \r\n if (sections.includes('QSFP') && st2110Interfaces.length > 0) {\r\n values.QSFP = st2110Interfaces.map(iface => ({\r\n // 只有当iface中存在id字段时才包含id\r\n ...(iface.id !== undefined && { id: iface.id }),\r\n display_name: iface.display_name,\r\n ip_address: iface.ip_address || iface.ip, // 优先取ip_address,没有则取ip\r\n ...(showNetmask.QSFP ? { netmask: iface.netmask } : {})\r\n }));\r\n }\r\n \r\n return values;\r\n }, [lanConfigs, st2110Interfaces, sections, showNetmask]);\r\n\r\n // 当初始值准备好后设置表单值\r\n useEffect(() => {\r\n if (isInitialized && !initializationStatus.current.hasInitialized) {\r\n form.setFieldsValue(initialValues);\r\n initializationStatus.current.hasInitialized = true;\r\n }\r\n }, [isInitialized, form, initialValues]);\r\n\r\n // 成功处理\r\n const handleSuccess = useCallback(async ({\r\n messageText,\r\n isPopup = false,\r\n refresh = !restart\r\n } = {}) => {\r\n const defaultMessage = intl.formatMessage({ id: 'networkSettings.saveSuccess' });\r\n message.success(messageText || defaultMessage);\r\n\r\n if (refresh && getConfig) {\r\n try {\r\n const newConfig = await getConfig();\r\n if (sections.includes('LAN') && newConfig.lan_interfaces) {\r\n setLanConfigs(newConfig.lan_interfaces);\r\n }\r\n if (sections.includes('QSFP') && newConfig.interfaces) {\r\n setSt2110Interfaces(newConfig.interfaces);\r\n }\r\n } catch (error) {\r\n console.error('Failed to refresh config:', error);\r\n }\r\n }\r\n\r\n // 如果需要弹出重启确认框\r\n if (isPopup && restart) {\r\n if (getSysConfig) {\r\n // 有接口:再查一次确认是否需要重启\r\n try {\r\n const updatedConfig = await getSysConfig();\r\n if (updatedConfig?.is_restart_required) {\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: intl.formatMessage({ id: 'networkSettings.restartRequired' }),\r\n cancelText: intl.formatMessage({ id: 'networkSettings.restartLater' }),\r\n okText: intl.formatMessage({ id: 'networkSettings.restartNow' }),\r\n onOk: async () => {\r\n await restart();\r\n if (onRestartSuccess && typeof onRestartSuccess === 'function') {\r\n onRestartSuccess();\r\n }\r\n },\r\n });\r\n }\r\n } catch (error) {\r\n console.error('Failed to check restart status:', error);\r\n }\r\n } else {\r\n // 无接口:直接弹出重启确认框\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: intl.formatMessage({ id: 'networkSettings.restartRequired' }),\r\n cancelText: intl.formatMessage({ id: 'networkSettings.restartLater' }),\r\n okText: intl.formatMessage({ id: 'networkSettings.restartNow' }),\r\n onOk: async () => {\r\n await restart();\r\n if (onRestartSuccess && typeof onRestartSuccess === 'function') {\r\n onRestartSuccess();\r\n }\r\n },\r\n });\r\n }\r\n }\r\n\r\n onClose();\r\n }, [intl, message, modal, getSysConfig, restart, getConfig, sections, onClose]);\r\n\r\n const handleSubmit = useCallback(async () => {\r\n setSubmitLoading(true);\r\n\r\n try {\r\n const values = await form.validateFields();\r\n\r\n // ===== 判断 QSFP 是否有修改(仅当无 getSysConfig 时使用)=====\r\n let hasQsfpChanged = false;\r\n if (!getSysConfig && sections.includes('QSFP') && values.QSFP) {\r\n const original = originalSt2110InterfacesRef.current;\r\n const current = values.QSFP;\r\n hasQsfpChanged = current.some((item, index) => {\r\n const orig = original[index];\r\n if (!orig) return false;\r\n\r\n const ipChanged = item.ip_address !== (orig.ip_address || orig.ip);\r\n return ipChanged;\r\n });\r\n }\r\n\r\n const updatePromises = [];\r\n\r\n // 更新LAN配置\r\n if (sections.includes('LAN') && values.LAN) {\r\n const lanData = values.LAN.map((item, index) => ({\r\n connection_id: lanConfigs[index]?.connection_id,\r\n ip_address: item.ip_address,\r\n ...(showNetmask.LAN ? { netmask: item.netmask } : {})\r\n }));\r\n updatePromises.push(updateLanConfig(lanData));\r\n }\r\n\r\n // 更新QSFP配置\r\n if (sections.includes('QSFP') && values.QSFP) {\r\n const interfacesData = values.QSFP.map((item, index) => ({\r\n // 只有当原始数据中存在id时才包含id\r\n ...(st2110Interfaces?.[index]?.id !== undefined && {\r\n id: st2110Interfaces?.[index]?.id \r\n }),\r\n ...(st2110Interfaces?.[index]?.ip !== undefined \r\n ? { ip: item.ip_address } \r\n : { ip_address: item.ip_address }\r\n ),\r\n ...(showNetmask.QSFP ? { netmask: item.netmask } : {})\r\n }));\r\n\r\n const st2110Data = st2110Interfaces.some(iface => 'id' in iface)\r\n ? { st2110_interfaces: interfacesData }\r\n : { interfaces: interfacesData };\r\n\r\n updatePromises.push(updateSysConfig(st2110Data));\r\n }\r\n\r\n const results = await Promise.allSettled(updatePromises);\r\n\r\n // 检查所有更新是否成功\r\n const allSucceeded = results.every(result => result.status === 'fulfilled');\r\n\r\n if (allSucceeded) {\r\n let isPopup = false;\r\n if (getSysConfig) {\r\n // 有接口:后续在 handleSuccess 中查 is_restart_required\r\n isPopup = true;\r\n } else {\r\n // 无接口:根据是否有 QSFP 变化决定\r\n isPopup = hasQsfpChanged;\r\n }\r\n\r\n handleSuccess({ isPopup });\r\n }\r\n } catch (error) {\r\n console.error('Failed to update configurations: ', error);\r\n } finally {\r\n setSubmitLoading(false);\r\n }\r\n }, [\r\n form, \r\n sections, \r\n lanConfigs, \r\n st2110Interfaces, \r\n updateLanConfig, \r\n updateSysConfig, \r\n handleSuccess\r\n ]);\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: intl.formatMessage({ id: 'networkSettings.title' }),\r\n width: 650,\r\n open,\r\n confirmLoading: submitLoading,\r\n onOk: handleSubmit,\r\n onCancel: onClose,\r\n okText: intl.formatMessage({ id: 'button.apply' }),\r\n cancelText: intl.formatMessage({ id: 'button.close' }),\r\n centered: true,\r\n destroyOnHidden: true,\r\n forceRender: true,\r\n // styles: {\r\n // body: { padding: \"16px 24px 8px 24px\" },\r\n // ...(restartRemark !== null && { footer: { paddingBottom: 28 } })\r\n // },\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n labelCol: { span: 6 },\r\n wrapperCol: { span: 18 },\r\n autoComplete: \"off\",\r\n ...formProps\r\n };\r\n\r\n return (\r\n <StyledModal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {sections.includes('LAN') && lanConfigs.length > 0 && (\r\n <>\r\n <NetworkFieldGroup\r\n prefix=\"LAN\"\r\n interfaces={lanConfigs}\r\n fieldConfig={preparedFieldConfig.LAN}\r\n />\r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && <Divider />}\r\n </>\r\n )}\r\n \r\n {sections.includes('QSFP') && st2110Interfaces.length > 0 && (\r\n <NetworkFieldGroup\r\n prefix=\"QSFP\"\r\n interfaces={st2110Interfaces}\r\n fieldConfig={preparedFieldConfig.QSFP}\r\n />\r\n )}\r\n </Form>\r\n {restartRemark}\r\n </StyledModal>\r\n );\r\n}\r\n\r\nexport { NetworkFieldGroup };\r\nexport default memo(NetworkSettingsModal);","import { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { Select, Switch, Input, Badge, Form, ConfigProvider, InputNumber, App } from \"antd\";\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\n// 默认字段配置\r\nconst defaultFieldConfigs = {\r\n clock_class: {\r\n label: 'ptp.clockClass',\r\n formType: 'select',\r\n options: [\r\n { value: 6, label: 'ptp.clockClass.atomic' },\r\n { value: 7, label: 'ptp.clockClass.gps' },\r\n { value: 248, label: 'ptp.clockClass.slaveOnly' }\r\n ],\r\n readOnly: true\r\n },\r\n clock_accuracy: {\r\n label: 'ptp.clockAccuracy',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n offset_scaled_log_variance: {\r\n label: 'ptp.offsetScaledLogVariance',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority1: {\r\n label: 'ptp.priority1',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_priority2: {\r\n label: 'ptp.priority2',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n grandmaster_identity: {\r\n label: 'ptp.grandmasterIdentity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n master_port_id: {\r\n label: 'ptp.portIdentity',\r\n formType: 'text',\r\n readOnly: true\r\n },\r\n t1_domain_number: {\r\n label: 'ptp.domainNumber',\r\n formType: 'number',\r\n min: 0,\r\n max: 127,\r\n readOnly: false\r\n },\r\n master_utc_offset: {\r\n label: 'ptp.utcOffset',\r\n formType: 'number',\r\n readOnly: true\r\n },\r\n is_connected: {\r\n label: 'ptp.connectedStatus',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'ptp.disconnected', color: 'red' },\r\n 1: { text: 'ptp.connected', color: 'green' }\r\n }\r\n },\r\n is_locked: {\r\n label: 'ptp.lockedStatus',\r\n formType: 'badge',\r\n statusMap: {\r\n 0: { text: 'ptp.unlocked', color: 'red' },\r\n 1: { text: 'ptp.locked', color: 'green' }\r\n }\r\n }\r\n};\r\n\r\n// 默认字段顺序\r\nconst defaultFieldOrder = [\r\n 't1_domain_number',\r\n 'grandmaster_priority1',\r\n 'grandmaster_priority2',\r\n 'grandmaster_identity',\r\n 'master_port_id',\r\n 'clock_class',\r\n 'clock_accuracy',\r\n 'offset_scaled_log_variance',\r\n 'master_utc_offset',\r\n 'is_connected',\r\n 'is_locked'\r\n];\r\n\r\n/**\r\n * 转换PTP状态为表单字段数组\r\n * @param {Object} ptpStatus PTP状态对象\r\n * @param {Object} fieldConfigs 字段配置\r\n * @param {Array} fieldOrder 字段顺序\r\n * @returns {Array} 表单字段数组\r\n */\r\nfunction convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder) {\r\n return fieldOrder\r\n .filter(key => key in ptpStatus)\r\n .map(key => {\r\n const config = fieldConfigs[key] || { label: key, formType: 'text' };\r\n const value = ptpStatus[key];\r\n \r\n return {\r\n key,\r\n value,\r\n ...config,\r\n rawData: ptpStatus,\r\n };\r\n });\r\n}\r\n\r\nconst PtpModal = ({\r\n open, \r\n onClose, \r\n getPtpInfo, \r\n updatePtpInfo, \r\n fieldConfigs = defaultFieldConfigs,\r\n fieldOrder = defaultFieldOrder,\r\n modalProps = {},\r\n formProps = {}\r\n}) => {\r\n const intl = useIntl();\r\n const [ptpStatus, setPtpStatus] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n const { message } = App.useApp();\r\n\r\n useEffect(() => {\r\n if (open) {\r\n setLoading(true);\r\n getPtpInfo().then(data => {\r\n if (data?.[0]) {\r\n setPtpStatus(data[0]);\r\n // 数据加载后设置表单值\r\n form.setFieldsValue(data[0]);\r\n }\r\n }).catch(err => {\r\n console.error(\"Failed to fetch ptp\", err);\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n } else {\r\n // 关闭时重置表单\r\n form.resetFields();\r\n setPtpStatus(null);\r\n }\r\n }, [open, form, getPtpInfo])\r\n\r\n const ptpStatusArray = useMemo(() => {\r\n if (!ptpStatus) return[];\r\n return convertPtpStatusToArray(ptpStatus, fieldConfigs, fieldOrder);\r\n }, [ptpStatus, fieldConfigs, fieldOrder]);\r\n\r\n // 渲染 Form.Item 的 label\r\n const renderLabel = (item) => {\r\n // 如果 label 是国际化 key(包含点号),则使用 formatMessage\r\n if (item.label && typeof item.label === 'string' && item.label.includes('.')) {\r\n return intl.formatMessage({ id: item.label });\r\n }\r\n return item.label;\r\n };\r\n\r\n const handleSubmit = async () => {\r\n const values = await form.getFieldsValue();\r\n\r\n setLoading(true);\r\n\r\n try {\r\n const response = await updatePtpInfo(values);\r\n \r\n if (response) {\r\n message.success(intl.formatMessage({ id: 'ptp.saveSuccess' }));\r\n setTimeout(() => {\r\n onClose();\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error('Update failed:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const renderFormItem = (item) => {\r\n switch (item.formType) {\r\n case 'select':\r\n const selectOptions = item.options?.map(opt => ({\r\n ...opt,\r\n label: intl.formatMessage({ id: opt.label }, { value: opt.value })\r\n }));\r\n return <Select options={selectOptions} disabled={item.readOnly} />;\r\n case 'switch':\r\n return <Switch />;\r\n case 'badge':\r\n const normalizedValue = typeof item.value === 'boolean' \r\n ? (item.value ? 1 : 0)\r\n : item.value;\r\n const status = item.statusMap?.[normalizedValue] || { text: intl.formatMessage({ id: ptp.unknown }), color: 'gray' };\r\n return (\r\n <ConfigProvider theme={{ components: { Badge: { statusSize: 10 } } }}>\r\n <Badge \r\n color={status.color} \r\n text={intl.formatMessage({ id: status.text })} \r\n />\r\n </ConfigProvider>\r\n );\r\n case 'number':\r\n return (\r\n <InputNumber\r\n disabled={item.readOnly} \r\n controls={false} \r\n keyboard={false} \r\n min={item.min ?? Number.MIN_SAFE_INTEGER} \r\n max={item.max ?? Number.MAX_SAFE_INTEGER}\r\n />\r\n )\r\n default:\r\n return <Input disabled={item.readOnly} />;\r\n }\r\n };\r\n \r\n if (!open || !ptpStatus) return null;\r\n\r\n // 合并默认模态框属性和传入的属性\r\n const mergedModalProps = {\r\n title: intl.formatMessage({ id: 'ptp.title' }),\r\n width: 650,\r\n open,\r\n okText: intl.formatMessage({ id: 'button.apply' }),\r\n cancelText: intl.formatMessage({ id: 'button.close' }),\r\n onCancel: onClose,\r\n onOk: handleSubmit,\r\n confirmLoading: loading,\r\n ...modalProps\r\n };\r\n\r\n // 合并默认表单属性和传入的属性\r\n const mergedFormProps = {\r\n form: form,\r\n name: \"ptpForm\",\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n autoComplete: \"off\",\r\n ...formProps\r\n };\r\n\r\n return (\r\n <StyledModal {...mergedModalProps}>\r\n <Form {...mergedFormProps}>\r\n {ptpStatusArray.map(item => (\r\n <Form.Item \r\n label={renderLabel(item)} \r\n name={item.key} \r\n key={item.key}\r\n initialValue={item.value}\r\n >\r\n {renderFormItem(item)}\r\n </Form.Item>\r\n ))}\r\n </Form>\r\n </StyledModal>\r\n )\r\n}\r\n\r\nexport default memo(PtpModal);","import { List, Empty, Button, Space, Form, Input, Flex, Checkbox, Typography } from \"antd\";\r\nimport { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { PlusOutlined } from \"@ant-design/icons\";\r\nimport { useIntl } from '../i18n';\r\n\r\nexport const LeftList = memo(({\r\n dataSource,\r\n selectedPresetId,\r\n onSelectPreset,\r\n onAddNew,\r\n onRemove,\r\n onImport,\r\n onExport,\r\n hasPresets = dataSource.length > 0,\r\n enableImportAndExport,\r\n texts = {\r\n newButton: \"preset.button.new\",\r\n removeButton: \"preset.button.delete\",\r\n importButton: \"preset.button.import\",\r\n exportButton: \"preset.button.export\",\r\n }\r\n}) => {\r\n const intl = useIntl();\r\n \r\n // 格式化文本的辅助函数\r\n const fmt = (key) => {\r\n if (typeof key === 'string' && key.includes('.')) {\r\n return intl.formatMessage({ id: key });\r\n }\r\n return key;\r\n };\r\n return (\r\n <div className=\"h-full left-list-wrapper\">\r\n <div className=\"list-container\">\r\n <List\r\n header={\r\n <div className=\"grid grid-cols-3 gap-2 w-full list-header\">\r\n <div className=\"min-w-0\">{fmt('preset.header.name')}</div>\r\n <div className=\"min-w-0\">{fmt('preset.header.createTime')}</div>\r\n <div className=\"min-w-0\">{fmt('preset.header.description')}</div>\r\n </div>\r\n }\r\n dataSource={dataSource}\r\n rowKey=\"id\"\r\n renderItem={(item) => (\r\n <List.Item \r\n className={`list-item ${\r\n selectedPresetId === item.id ? 'selected' : ''\r\n }`}\r\n style={{ padding: \"9px 24px\" }}\r\n onClick={() => onSelectPreset(item)}\r\n >\r\n <div className=\"grid grid-cols-3 gap-2 w-full text-text-normal\">\r\n <div className=\"min-w-0\">\r\n <Typography.Text ellipsis title={item.name}>\r\n {item.name || fmt('preset.untitled')}\r\n </Typography.Text>\r\n </div>\r\n\r\n <div className=\"min-w-0\">\r\n <Typography.Text ellipsis>\r\n {item.create_time}\r\n </Typography.Text>\r\n </div>\r\n\r\n <div className=\"min-w-0\">\r\n <Typography.Text ellipsis title={item.description}>\r\n {item.description}\r\n </Typography.Text>\r\n </div>\r\n </div>\r\n </List.Item>\r\n )}\r\n locale={{\r\n emptyText: (\r\n <div className=\"p-8\">\r\n <Empty\r\n image={Empty.PRESENTED_IMAGE_SIMPLE}\r\n description={\r\n <span className=\"text-gray-400\">\r\n <Button \r\n type=\"link\" \r\n onClick={onAddNew}\r\n className=\"p-0 h-auto\"\r\n icon={<PlusOutlined />}\r\n >\r\n {fmt('preset.empty.create')}\r\n </Button>\r\n </span>\r\n }\r\n />\r\n </div>\r\n )\r\n }}\r\n />\r\n </div>\r\n\r\n {/* 底部按钮区域 */}\r\n {hasPresets && (\r\n <div style={{ paddingInline: 24, paddingBlock: 20 }}>\r\n <Space size=\"middle\">\r\n <Button\r\n type=\"default\"\r\n icon={<PlusOutlined />}\r\n className=\"btn-gray\"\r\n onClick={onAddNew}\r\n >\r\n {texts.newButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\"\r\n onClick={onRemove}\r\n >\r\n {texts.removeButton}\r\n </Button>\r\n {enableImportAndExport && (\r\n <>\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\"\r\n onClick={onImport}\r\n >\r\n {texts.importButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\"\r\n onClick={onExport}\r\n disabled={!selectedPresetId} \r\n >\r\n {texts.exportButton}\r\n </Button>\r\n </>\r\n )}\r\n </Space>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n});\r\n\r\nconst SubmitButton = ({ loading, action, children, disabled = false, editButtonEle = null }) => (\r\n <div className=\"submit-btn-wrapper\">\r\n <Space size=\"middle\">\r\n {editButtonEle}\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\" \r\n loading={loading} \r\n onClick={action} \r\n disabled={disabled}\r\n >\r\n {children}\r\n </Button>\r\n </Space>\r\n </div>\r\n);\r\n\r\nexport const RightDetailForm = memo(({\r\n form, \r\n onSave, \r\n onLoad,\r\n onEdit,\r\n onCancelEdit,\r\n onUpdate,\r\n isLoading,\r\n isSavedPreset,\r\n originalPresetData,\r\n fields = {\r\n name: {\r\n label: \"preset.name\",\r\n placeholder: \"preset.placeholder.enterName\",\r\n required: true\r\n },\r\n category_list: {\r\n label: \"preset.categories\"\r\n },\r\n description: {\r\n label: \"preset.description\",\r\n placeholder: \"preset.placeholder.enterDescription\"\r\n }\r\n },\r\n texts = {\r\n loadButton: \"preset.button.load\",\r\n saveButton: \"preset.button.save\",\r\n editButton: \"preset.button.edit\",\r\n cancelButton: \"preset.button.cancel\"\r\n },\r\n presetChanged, // 作用:在切换选中预设时强制触发 Checkbox 的重新初始化\r\n enableEdit = true\r\n}) => {\r\n const intl = useIntl();\r\n const [initialSelected, setInitialSelected] = useState([]);\r\n const [isEditMode, setIsEditMode] = useState(false); // 是否进入编辑模式\r\n const currentSelected = Form.useWatch('category_list', form) || [];\r\n\r\n // 格式化文本的辅助函数\r\n const fmt = (key) => {\r\n if (typeof key === 'string' && key.includes('.')) {\r\n return intl.formatMessage({ id: key });\r\n }\r\n return key;\r\n };\r\n\r\n // 检查是否包含 category_list 字段\r\n const hasCategoryList = fields.category_list !== null && fields.category_list !== undefined;\r\n\r\n // 初始化 category_list 的选择状态\r\n useEffect(() => {\r\n if (hasCategoryList) {\r\n const currentValue = form.getFieldValue('category_list') || [];\r\n setInitialSelected(currentValue);\r\n }\r\n }, [presetChanged, form, hasCategoryList]); // 当presetChanged变化时更新\r\n\r\n // 当 isSavedPreset 或 presetChanged 变化时,重置编辑模式\r\n useEffect(() => {\r\n setIsEditMode(false);\r\n }, [isSavedPreset, presetChanged]);\r\n\r\n // 动态生成 checkbox 选项\r\n const checkboxOptions = useMemo(() => {\r\n if (!hasCategoryList) return [];\r\n \r\n return fields.category_list.options.map(category => {\r\n const isInitiallySelected = initialSelected.includes(category.name);\r\n const shouldDisable = isSavedPreset ? !isInitiallySelected : false;\r\n \r\n return {\r\n ...category,\r\n disabled: shouldDisable,\r\n initiallySelected: isInitiallySelected\r\n };\r\n });\r\n }, [initialSelected, isSavedPreset, hasCategoryList, fields.category_list]);\r\n\r\n const handleCheckboxChange = (checkedValues) => {\r\n form.setFieldsValue({ category_list: checkedValues });\r\n };\r\n\r\n const handleEditClick = () => {\r\n setIsEditMode(true);\r\n if (onEdit) {\r\n onEdit(); // 如果有外部回调\r\n }\r\n };\r\n\r\n const handleCancelEdit = () => {\r\n if (originalPresetData) {\r\n form.setFieldsValue(originalPresetData);\r\n }\r\n \r\n setIsEditMode(false);\r\n\r\n if (onCancelEdit) {\r\n onCancelEdit();\r\n }\r\n };\r\n\r\n const handleSaveEdit = async () => {\r\n try {\r\n if (onUpdate) {\r\n await onUpdate();\r\n }\r\n\r\n setIsEditMode(false);\r\n } catch (error) {\r\n console.error('update fail:', error)\r\n }\r\n };\r\n\r\n const handleLoad = async () => {\r\n try {\r\n const formValues = await form.validateFields();\r\n\r\n const loadData = {\r\n id: form.getFieldValue('id'),\r\n // 优先使用表单中的 category_list,如果没有则使用原始数据\r\n name: originalPresetData.name,\r\n category_list: hasCategoryList \r\n ? (formValues.category_list || [])\r\n : (originalPresetData?.category_list || [])\r\n };\r\n await onLoad(loadData);\r\n } catch (error) {\r\n console.error('表单验证失败:', error);\r\n }\r\n };\r\n\r\n // 在编辑模式下,name 和 description 可以编辑,但 categories 不可编辑\r\n const shouldDisableNameAndDesc = isSavedPreset && !isEditMode;\r\n const shouldDisableCategories = isEditMode; // categories 在编辑模式下总是不可编辑\r\n\r\n return (\r\n <Flex vertical style={{ height: \"100%\", padding: \"20px 24px\" }}>\r\n <Form \r\n form={form} \r\n layout=\"vertical\" \r\n autoComplete=\"off\" \r\n style={{ flex: 1, overflowY: 'auto' }}\r\n >\r\n {/* Name 字段 */}\r\n <Form.Item \r\n name=\"name\" \r\n label={fmt(fields.name.label)}\r\n required\r\n >\r\n <Input \r\n placeholder={fmt(fields.name.placeholder)} \r\n disabled={shouldDisableNameAndDesc} \r\n />\r\n </Form.Item>\r\n\r\n {/* Category List 字段 */}\r\n {hasCategoryList && (\r\n <Form.Item \r\n name=\"category_list\" \r\n label={fmt(fields.category_list.label)}\r\n required\r\n >\r\n <Checkbox.Group \r\n className=\"grid grid-cols-2 gap-2\"\r\n onChange={handleCheckboxChange}\r\n disabled={shouldDisableCategories}\r\n >\r\n {checkboxOptions.map(category => (\r\n <Checkbox \r\n key={category.name} \r\n value={category.name}\r\n disabled={category.disabled || shouldDisableCategories}\r\n >\r\n {category.label}\r\n </Checkbox>\r\n ))}\r\n </Checkbox.Group>\r\n </Form.Item>\r\n )}\r\n\r\n {/* Description 字段 */}\r\n {fields.description && (\r\n <Form.Item \r\n name=\"description\" \r\n label={fmt(fields.description.label)}\r\n >\r\n <Input.TextArea \r\n rows={4}\r\n placeholder={fmt(fields.description.placeholder)}\r\n disabled={shouldDisableNameAndDesc}\r\n style={{\r\n resize: 'none'\r\n }}\r\n />\r\n </Form.Item>\r\n )}\r\n </Form>\r\n {isSavedPreset ? (\r\n isEditMode ? (\r\n // 编辑模式下的按钮\r\n <div className=\"submit-btn-wrapper\">\r\n <Space size=\"middle\">\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\" \r\n onClick={handleCancelEdit}\r\n >\r\n {texts.cancelButton}\r\n </Button>\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\" \r\n onClick={handleSaveEdit}\r\n loading={isLoading}\r\n >\r\n {texts.saveButton}\r\n </Button>\r\n </Space>\r\n </div>\r\n ) : (\r\n // 非编辑模式下的按钮\r\n <SubmitButton\r\n action={handleLoad}\r\n {...(hasCategoryList && { disabled: !currentSelected.length })}\r\n editButtonEle={enableEdit ? (\r\n <Button\r\n type=\"default\"\r\n className=\"btn-gray\"\r\n onClick={handleEditClick}\r\n >\r\n {texts.editButton}\r\n </Button>\r\n ) : null}\r\n >\r\n {texts.loadButton}\r\n </SubmitButton>\r\n )\r\n ) : (\r\n <SubmitButton \r\n action={onSave} \r\n loading={isLoading}\r\n >\r\n {texts.saveButton}\r\n </SubmitButton>\r\n )}\r\n </Flex>\r\n );\r\n});","import { Form, Row, Col, Empty, App, Spin, Flex } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport { memo, useState, useCallback, useEffect } from \"react\";\r\nimport { LeftList, RightDetailForm } from \"./PresetModal.component\";\r\nimport StyledModal from './StyledModal';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst Preset = ({\r\n open,\r\n onClose,\r\n // API 方法通过 props 传入\r\n getPresetList,\r\n savePreset,\r\n removePreset,\r\n loadPreset,\r\n updatePreset,\r\n uploadPreset,\r\n downloadPreset,\r\n onLoadSuccess, // 加载成功后的回调\r\n onLoadError, // 加载失败后的回调\r\n\r\n // 字段配置\r\n fields = {\r\n name: {\r\n label: \"preset.name\",\r\n placeholder: \"preset.placeholder.enterName\",\r\n required: true\r\n }\r\n },\r\n texts = {\r\n title: \"preset.title\",\r\n emptyText: \"preset.empty.noData\",\r\n deleteConfirm: \"preset.delete.confirmMessage\",\r\n loadConfirm: \"preset.load.confirmMessage\",\r\n loadText: \"preset.load.loading\",\r\n successText: \"preset.success\",\r\n newButton: \"preset.button.new\",\r\n removeButton: \"preset.button.delete\",\r\n loadButton: \"preset.button.load\",\r\n saveButton: \"preset.button.save\",\r\n editButton: \"preset.button.edit\",\r\n cancelButton: \"preset.button.cancel\",\r\n importButton: \"preset.button.import\",\r\n exportButton: \"preset.button.export\",\r\n },\r\n // 样式定制\r\n width = 1000,\r\n height = 680,\r\n className = \"\",\r\n // 功能配置\r\n enableEdit = true,\r\n enableImportAndExport = false,\r\n}) => {\r\n const intl = useIntl();\r\n const { message, modal } = App.useApp();\r\n const [presetList, setPresetList] = useState([]);\r\n const [selectedPreset, setSelectedPreset] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [uploading, setUploading] = useState(false);\r\n const [presetChanged, setPresetChanged] = useState(0);\r\n const [form] = Form.useForm();\r\n\r\n // 格式化文本的辅助函数\r\n const fmt = useCallback((key) => {\r\n if (typeof key === 'string' && key.includes('.')) {\r\n return intl.formatMessage({ id: key });\r\n }\r\n return key;\r\n }, [intl]);\r\n\r\n const fetchPresetList = useCallback(async () => {\r\n try {\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n\r\n // 自动选中第一个预设\r\n if (presets.length > 0) {\r\n const firstPreset = presets[0];\r\n setSelectedPreset(firstPreset);\r\n form.setFieldsValue(firstPreset);\r\n setPresetChanged(prev => prev + 1);\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch preset list:', error);\r\n }\r\n }, [getPresetList]);\r\n\r\n const handleSelectPreset = useCallback((preset) => {\r\n setSelectedPreset(preset);\r\n form.setFieldsValue(preset);\r\n setPresetChanged(prev => prev + 1);\r\n }, [form]);\r\n\r\n const handleAddNew = useCallback(() => {\r\n const unsavedPreset = presetList.find(item => !item.id);\r\n\r\n if (unsavedPreset) {\r\n message.warning(intl.formatMessage({ id: 'preset.unsaved.detected' }));\r\n return;\r\n }\r\n\r\n // 创建新的数据,包含所有配置的字段\r\n const newPreset = Object.keys(fields).reduce((acc, fieldName) => {\r\n acc[fieldName] = '';\r\n return acc;\r\n }, {});\r\n\r\n // 特殊处理 category_list\r\n if (fields.category_list?.options) {\r\n newPreset.category_list = fields.category_list.options.map(item => item.name);\r\n }\r\n \r\n setPresetList([...presetList, newPreset]);\r\n setSelectedPreset(newPreset);\r\n form.setFieldsValue(newPreset);\r\n }, [form, presetList, message]);\r\n\r\n const handleRemove = useCallback(async () => {\r\n if (!selectedPreset) return;\r\n\r\n // 检查是否为新建的未保存数据(无 id)\r\n const isUnsavedPreset = !selectedPreset.id;\r\n const presetName = selectedPreset.name || fmt('preset.untitled');\r\n\r\n try {\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: fmt('preset.delete.title'),\r\n content: `${fmt('preset.delete.confirmMessage')} \"${presetName}\"?`,\r\n cancelText: fmt('button.cancel'),\r\n okText: fmt('button.delete'),\r\n onOk: async () => {\r\n // 在删除前记录当前选中项的位置\r\n const currentIndex = presetList.findIndex(item => \r\n isUnsavedPreset ? !item.id : item.id === selectedPreset.id\r\n );\r\n\r\n if (!isUnsavedPreset) {\r\n await removePreset({ id: selectedPreset.id });\r\n message.success(fmt('preset.success'));\r\n } else {\r\n // 移除未保存的预设\r\n setPresetList(prev => prev.filter(item => !!item.id));\r\n }\r\n\r\n // 获取删除后的列表\r\n const updatedList = isUnsavedPreset \r\n ? presetList.filter(item => !!item.id)\r\n : await getPresetList().then(data => data?.preset_list || data || []);\r\n\r\n // 更新列表\r\n setPresetList(updatedList);\r\n\r\n if (updatedList.length > 0) {\r\n // 计算下一个索引\r\n let nextIndex = 0;\r\n\r\n if (currentIndex > 0) {\r\n // 如果删除的不是最后一项\r\n if (currentIndex < updatedList.length) {\r\n nextIndex = currentIndex; // 保持相同位置\r\n } else {\r\n nextIndex = updatedList.length - 1; // 选最后一个\r\n }\r\n }\r\n\r\n const nextPreset = updatedList[nextIndex];\r\n if (nextPreset) {\r\n setSelectedPreset(nextPreset);\r\n form.setFieldsValue(nextPreset);\r\n setPresetChanged(prev => prev + 1);\r\n return;\r\n }\r\n }\r\n\r\n // 列表为空\r\n setSelectedPreset(null);\r\n form.resetFields();\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Failed to delete preset:', error);\r\n }\r\n }, [selectedPreset, form, modal, message, removePreset, getPresetList, fmt]);\r\n\r\n const handleImport = useCallback(async () => {\r\n // 创建一个临时的 input 元素\r\n const input = document.createElement('input');\r\n input.type = 'file';\r\n input.accept = '.preset'; // 限制只能选择 .preset 文件\r\n\r\n input.onchange = async (e) => {\r\n const file = e.target.files?.[0];\r\n if (!file) {\r\n return; // 用户取消选择\r\n }\r\n\r\n // 确保文件扩展名是 .preset(防止 accept 被绕过)\r\n if (!file.name.toLowerCase().endsWith('.preset')) {\r\n message.error(intl.formatMessage({ id: 'preset.import.invalidFile' }));\r\n return;\r\n }\r\n\r\n try {\r\n setUploading(true);\r\n await uploadPreset(file);\r\n message.success(intl.formatMessage({ id: 'preset.success' }));\r\n\r\n // 上传成功后刷新列表\r\n fetchPresetList();\r\n } catch (error) {\r\n console.error('Failed to import preset file:', error);\r\n } finally {\r\n setUploading(false);\r\n }\r\n\r\n // 清理:移除 input\r\n input.remove();\r\n };\r\n\r\n // 触发文件选择框\r\n input.click();\r\n }, [uploadPreset, message, intl, fetchPresetList]);\r\n\r\n const handleExport = useCallback(() => {\r\n if (!selectedPreset?.id) {\r\n message.warning(intl.formatMessage({ id: 'preset.error.noSelectionOrIdMissing' }));\r\n return;\r\n }\r\n\r\n // 构造下载 URL\r\n const downloadUrl = `${downloadPreset}/${selectedPreset.id}`;\r\n\r\n // 创建临时 a 标签\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = `${selectedPreset.name || 'preset'}.preset`; // 指定文件名\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }, [selectedPreset, message, intl]);\r\n\r\n const handleLoadPreset = useCallback(async (loadData) => {\r\n if (!loadData) return;\r\n\r\n let modalInstance = null;\r\n let resolveOk = null; // 用于控制 confirm 关闭时机\r\n\r\n modalInstance = modal.confirm({\r\n title: fmt('preset.load.title'),\r\n content: `${fmt('preset.load.confirmMessage')} \"${loadData.name}\"?`,\r\n cancelText: fmt('button.cancel'),\r\n okText: fmt('preset.button.load'),\r\n // onOk 返回一个 pending Promise\r\n onOk: () => {\r\n return new Promise((resolve, reject) => {\r\n resolveOk = resolve;\r\n\r\n // 立即切换为 loading 状态\r\n modalInstance.update({\r\n title: fmt('preset.load.loading'),\r\n content: <Spin size=\"large\" className=\"block mx-auto\" />,\r\n okButtonProps: { style: { display: 'none' } },\r\n cancelButtonProps: { style: { display: 'none' } },\r\n maskClosable: false,\r\n closable: false,\r\n });\r\n\r\n (async () => {\r\n try {\r\n await loadPreset({\r\n id: loadData.id,\r\n ...(loadData.category_list && { category_list: loadData.category_list })\r\n });\r\n\r\n // 成功:1 秒后自动关闭\r\n setTimeout(() => {\r\n resolveOk?.();\r\n message.success(fmt('preset.success'));\r\n // 加载成功的外部回调\r\n if (onLoadSuccess) {\r\n onLoadSuccess(loadData);\r\n }\r\n }, 1000);\r\n } catch (error) {\r\n console.error('Failed to load preset:', error);\r\n // 失败:直接关闭 modal\r\n modalInstance.destroy();\r\n // 加载失败的外部回调\r\n if (onLoadError) {\r\n onLoadError(error, loadData);\r\n }\r\n }\r\n })();\r\n });\r\n },\r\n onCancel: () => {\r\n // 用户取消\r\n }\r\n });\r\n }, [loadPreset, message, modal, onLoadSuccess, onLoadError, fmt]);\r\n\r\n const handleSave = useCallback(async () => {\r\n setLoading(true);\r\n\r\n try {\r\n const values = await form.getFieldsValue();\r\n\r\n // 验证预设名称\r\n if (fields.name?.required) {\r\n if (!values.name || values.name.trim() === '') {\r\n message.error(fmt('preset.validation.nameRequired'))\r\n return; // 直接返回 不执行\r\n }\r\n }\r\n\r\n // 验证分类列表\r\n if (fields.category_list?.required) {\r\n if (!values.category_list || values.category_list.length === 0) {\r\n message.error(fmt('preset.validation.categoryRequired'))\r\n return;\r\n }\r\n }\r\n \r\n await savePreset(values);\r\n message.success(fmt('preset.success'));\r\n\r\n const savedPresetName = values.name;\r\n\r\n // 刷新列表\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n\r\n // 在刷新后的列表中查找同名的预设\r\n const newlySavedPreset = presets.find(item => item.name === savedPresetName);\r\n\r\n if (newlySavedPreset) {\r\n setSelectedPreset(newlySavedPreset);\r\n form.setFieldsValue(newlySavedPreset);\r\n setPresetChanged(prev => prev + 1);\r\n } else {\r\n setSelectedPreset(values);\r\n }\r\n } catch (error) {\r\n console.error('Failed to save preset:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [form, message, fields, savePreset, getPresetList, fmt]);\r\n\r\n const handleUpdate = useCallback(async () => {\r\n if (!selectedPreset || !selectedPreset.id) {\r\n message.error(fmt('preset.error.noSelectionOrIdMissing'));\r\n return;\r\n }\r\n \r\n setLoading(true);\r\n\r\n try {\r\n const values = await form.getFieldsValue();\r\n\r\n // 验证预设名称\r\n if (fields.name?.required) {\r\n if (!values.name || values.name.trim() === '') {\r\n message.error(fmt('preset.validation.nameRequired'))\r\n return; // 直接返回 不执行\r\n }\r\n }\r\n\r\n await updatePreset({\r\n id: selectedPreset.id,\r\n name: values.name,\r\n description: values.description\r\n });\r\n\r\n // 刷新列表\r\n const data = await getPresetList();\r\n const presets = data?.preset_list || data || [];\r\n setPresetList(presets);\r\n\r\n // 更新当前选中的预设\r\n const updatedPreset = presets.find(item => item.id === selectedPreset.id);\r\n if (updatedPreset) {\r\n setSelectedPreset(updatedPreset);\r\n }\r\n\r\n message.success(fmt('preset.success'));\r\n } catch (error) {\r\n console.error('Failed to update preset:', error);\r\n throw error;\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [form, message, fields, updatePreset, selectedPreset, fmt]);\r\n\r\n // 初始化数据\r\n useEffect(() => {\r\n fetchPresetList();\r\n }, [fetchPresetList]);\r\n\r\n return (\r\n <StyledModal\r\n title={fmt(texts.title)}\r\n width={width}\r\n open={open}\r\n wrapClassName={`preset-management ${className}`}\r\n footer={null}\r\n onCancel={onClose}\r\n centered\r\n styles={{\r\n body: {\r\n padding: 0,\r\n height: `${height}px`\r\n }\r\n }}\r\n >\r\n <Row gutter={0} className=\"h-full w-full\">\r\n <Col span={14} className=\"h-full\">\r\n <LeftList\r\n dataSource={presetList}\r\n selectedPresetId={selectedPreset?.id}\r\n onSelectPreset={handleSelectPreset}\r\n onAddNew={handleAddNew}\r\n onRemove={handleRemove}\r\n onImport={handleImport}\r\n onExport={handleExport}\r\n enableImportAndExport={enableImportAndExport}\r\n texts={{\r\n newButton: fmt(texts.newButton),\r\n removeButton: fmt(texts.removeButton),\r\n importButton: fmt(texts.importButton),\r\n exportButton: fmt(texts.exportButton)\r\n }}\r\n />\r\n </Col>\r\n <Col span={10} className=\"h-full\">\r\n {selectedPreset ? (\r\n <RightDetailForm\r\n form={form}\r\n onSave={handleSave}\r\n onLoad={handleLoadPreset}\r\n onUpdate={handleUpdate}\r\n isLoading={loading}\r\n isSavedPreset={!!selectedPreset?.id}\r\n originalPresetData={selectedPreset} // 传递原始数据\r\n fields={fields}\r\n texts={{\r\n loadButton: fmt(texts.loadButton),\r\n saveButton: fmt(texts.saveButton),\r\n editButton: fmt(texts.editButton),\r\n cancelButton: fmt(texts.cancelButton)\r\n }}\r\n presetChanged={presetChanged}\r\n enableEdit={enableEdit}\r\n />\r\n ) : (\r\n <Flex vertical justify=\"center\" align=\"center\" className=\"h-full text-gray-400\">\r\n <Empty \r\n image={Empty.PRESENTED_IMAGE_SIMPLE} \r\n description={fmt(texts.emptyText)}\r\n />\r\n </Flex>\r\n )}\r\n </Col>\r\n </Row>\r\n </StyledModal>\r\n );\r\n};\r\n\r\nexport default memo(Preset);","import { Dropdown } from \"antd\";\r\nimport useUpgrade from '../hooks/useUpgrade';\r\n\r\nconst UpgradeManager = ({\r\n menuItems = [],\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes = \"application/octet-stream\",\r\n uploadCompleteDelay = 3000,\r\n statusPollingInterval = 1000,\r\n children,\r\n ...dropdownProps\r\n }) => {\r\n const [upgradeElement] = useUpgrade({\r\n menuItems,\r\n onMenuClick,\r\n downloadFiles,\r\n upgradeExecute,\r\n upgradeStatus,\r\n acceptFileTypes,\r\n uploadCompleteDelay,\r\n statusPollingInterval\r\n });\r\n\r\n if (children) {\r\n // 提取Dropdown组件和其menu属性\r\n const dropdownElement = upgradeElement.props.children[0];\r\n const otherElements = upgradeElement.props.children.slice(1);\r\n \r\n return (\r\n <>\r\n <Dropdown \r\n {...dropdownProps} \r\n {...dropdownElement.props} // 传递所有Dropdown的props\r\n >\r\n {children}\r\n </Dropdown>\r\n {otherElements}\r\n </>\r\n );\r\n }\r\n\r\n // 如果没有children,直接返回完整的升级元素\r\n return upgradeElement;\r\n }\r\n\r\n UpgradeManager.defaultProps = {\r\n trigger: [\"hover\"],\r\n placement: \"bottomRight\"\r\n};\r\n\r\nexport default UpgradeManager;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { Dropdown, App } from \"antd\";\r\nimport { ExclamationCircleFilled } from \"@ant-design/icons\";\r\nimport PropTypes from 'prop-types';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst SystemOperations = ({ \r\n onPowerOff, \r\n onRestart,\r\n onPowerOffSuccess,\r\n onRestartSuccess,\r\n beforeAction, // 在执行关机/重启前调用\r\n powerOffLabel = \"system.poweroff\",\r\n restartLabel = \"system.restart\",\r\n iconClassName = \"seeder-iconfont seeder-icon-guanji1 text-xl text-neutral-400\",\r\n confirmMessage = \"system.confirm.message\",\r\n confirmTitle = \"system.confirm.title\",\r\n cancelText = \"system.button.cancel\",\r\n okText = \"system.button.confirm\"\r\n}) => {\r\n const intl = useIntl();\r\n const { modal } = App.useApp();\r\n\r\n const menuItems = [\r\n {\r\n key: \"poweroff\",\r\n label: typeof powerOffLabel === 'string' && powerOffLabel.includes('.') ? intl.formatMessage({ id: powerOffLabel }) : powerOffLabel,\r\n },\r\n {\r\n key: \"restart\",\r\n label: typeof restartLabel === 'string' && restartLabel.includes('.') ? intl.formatMessage({ id: restartLabel }) : restartLabel,\r\n }\r\n ];\r\n\r\n const doAction = (action) => {\r\n try {\r\n // 根据 action 决定显示的确认信息\r\n const actionLabels = {\r\n poweroff: intl.formatMessage({ id: 'system.action.powerOff' }),\r\n restart: intl.formatMessage({ id: 'system.action.restart' })\r\n };\r\n\r\n const actionText = actionLabels[action] || action;\r\n\r\n // 处理标题和消息的国际化\r\n const titleText = typeof confirmTitle === 'string' && confirmTitle.includes('.') \r\n ? intl.formatMessage({ id: confirmTitle }) \r\n : confirmTitle;\r\n \r\n // 如果是国际化 key,使用 intl.formatMessage 处理参数\r\n // 如果是普通文本,使用 replace 替换占位符\r\n const messageText = typeof confirmMessage === 'string' && confirmMessage.includes('.') \r\n ? intl.formatMessage({ id: confirmMessage }, { action: actionText })\r\n : typeof confirmMessage === 'string' \r\n ? confirmMessage.replace('{action}', actionText)\r\n : confirmMessage;\r\n\r\n modal.confirm({\r\n icon: <ExclamationCircleFilled />,\r\n title: titleText,\r\n content: messageText,\r\n cancelText: typeof cancelText === 'string' && cancelText.includes('.') ? intl.formatMessage({ id: cancelText }) : cancelText,\r\n okText: typeof okText === 'string' && okText.includes('.') ? intl.formatMessage({ id: okText }) : okText,\r\n onOk: async () => {\r\n // 先执行 beforeAction(用于 enterMaintenanceMode)\r\n if (typeof beforeAction === 'function') {\r\n beforeAction(action); // 可传 action 类型\r\n }\r\n\r\n if (action === 'poweroff' && onPowerOff) {\r\n await onPowerOff();\r\n } else if (action === 'restart' && onRestart) {\r\n await onRestart();\r\n }\r\n\r\n // 成功后再触发 success 回调\r\n if (action === 'poweroff' && typeof onPowerOffSuccess === 'function') {\r\n onPowerOffSuccess();\r\n } else if (action === 'restart' && typeof onRestartSuccess === 'function') {\r\n onRestartSuccess();\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n console.error(`${action.toUpperCase()} ERROR: `, error);\r\n }\r\n }\r\n\r\n const handleMenuClick = ({ key }) => {\r\n doAction(key);\r\n }\r\n\r\n return (\r\n <Dropdown menu={{ items: menuItems, onClick: handleMenuClick }} trigger={[\"hover\"]}>\r\n <a onClick={(e) => e.preventDefault()}>\r\n <i className={iconClassName}></i>\r\n </a>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nSystemOperations.propTypes = {\r\n onPowerOff: PropTypes.func,\r\n onRestart: PropTypes.func,\r\n powerOffLabel: PropTypes.string,\r\n restartLabel: PropTypes.string,\r\n iconClassName: PropTypes.string,\r\n confirmTitle: PropTypes.string,\r\n cancelText: PropTypes.string,\r\n okText: PropTypes.string,\r\n run: PropTypes.func\r\n};\r\n\r\nexport default SystemOperations;","import { Button } from 'antd';\r\nimport PropTypes from 'prop-types';\r\n\r\n// 将 logo.png 转为 base64\r\nconst logoBase64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAGaCAYAAAAfLro4AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAGj2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI1LTA5LTA5VDEwOjU2OjU5KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTA5LTA5VDEwOjU2OjU5KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNS0wOS0wOVQxMDo1Njo1OSswODowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowZjE5ZjRmMy1jZWFlLTcwNDUtYTA5OC0xMjJmNzViYjVhYmIiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1YmIxNjQ4OC1hYzczLWI3NGYtODczMC1hZGZiY2Y1NTk3OWYiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4MjdjZjIwMy0zM2IyLWU3NDItYWRhNC0wNGY2YzA5ZTYxOWIiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyN2NmMjAzLTMzYjItZTc0Mi1hZGE0LTA0ZjZjMDllNjE5YiIgc3RFdnQ6d2hlbj0iMjAyNS0wOS0wOVQxMDo1Njo1OSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowZjE5ZjRmMy1jZWFlLTcwNDUtYTA5OC0xMjJmNzViYjVhYmIiIHN0RXZ0OndoZW49IjIwMjUtMDktMDlUMTA6NTY6NTkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMi4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZkN2NjZDg5LTViMTQtMDI0MC04YjNhLTQzODU2ODk1YTFlZjwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlgJupcAADw7SURBVHic7d15vKdz/f/xx5mNGWMsw1hKkaVQkmm1VFQSKr6VLIXIEtK++ZZIRQtJiG+K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NAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLRLLAkSZIkSZJUNAssSZIkSZIkFc0CS5IkSZIkSUWzwJIkSZIkSVLR/h+CVP12K0zZoAAAAABJRU5ErkJggg==';\r\n\r\nconst defaultResetRoute = () => {\r\n window.location.href = window.location.origin;\r\n};\r\n\r\nconst useSpaLogo = (props = {}) => {\r\n const {\r\n logoUrl = logoBase64, // 使用者传入 logo URL\r\n logoWidth = 100,\r\n logoAlt = 'logo',\r\n onClick = defaultResetRoute,\r\n buttonStyle = {\r\n padding: 0,\r\n lineHeight: 1,\r\n height: 'auto',\r\n borderStyle: 'none',\r\n display: 'inline-block'\r\n }\r\n } = props;\r\n\r\n // 如果没有提供 logoUrl,返回空\r\n if (!logoUrl) {\r\n return [null];\r\n }\r\n\r\n return [\r\n <Button key=\"logo\" type=\"link\" style={buttonStyle} onClick={onClick}>\r\n <img alt={logoAlt} src={logoUrl} style={{ width: logoWidth }} />\r\n </Button>\r\n ];\r\n}\r\n\r\nuseSpaLogo.propTypes = {\r\n logoUrl: PropTypes.string,\r\n logoWidth: PropTypes.number,\r\n logoAlt: PropTypes.string,\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport default useSpaLogo;","import { Space, Typography, Flex } from \"antd\";\r\nimport useSpaLogo from '../hooks/useSpaLogo';\r\nimport useHardwareUsage from '../hooks/useHardwareUsage';\r\nimport SystemOperations from './SystemOperations';\r\n\r\n// 默认的获取 WebSocket URL 函数\r\nconst defaultGetSocketUrl = (url) => {\r\n if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') {\r\n return `ws://127.0.0.1:${window.location.port}${url}`;\r\n }\r\n return `ws://${window.location.host}${url}`;\r\n};\r\n\r\nconst CommonHeader = ({\r\n menuElement,\r\n productInfo = {},\r\n showLogo = true,\r\n showProductInfo = true,\r\n showHardwareUsage = true,\r\n showSystemOperations = true,\r\n onPowerOff, \r\n onRestart,\r\n onPowerOffSuccess,\r\n onRestartSuccess,\r\n beforeAction,\r\n hardwareMonitorUrl = '/ws/psmonitor/status_update',\r\n getSocketUrl = defaultGetSocketUrl,\r\n logoProps = {},\r\n className = '',\r\n style = {},\r\n // 新增插槽\r\n leftContent = null, // 左侧额外内容\r\n rightContent = null // 右侧额外内容\r\n}) => {\r\n const [logo] = useSpaLogo(logoProps);\r\n\r\n // 系统资源使用情况\r\n const usageElement = useHardwareUsage(getSocketUrl(hardwareMonitorUrl));\r\n\r\n return (\r\n <Flex justify=\"space-between\" align=\"center\" className={`common-header ${className}`} style={style}>\r\n {/* 左侧:Logo、产品信息和左侧插槽 */}\r\n <Space size={12}>\r\n {showLogo && logo}\r\n\r\n {showProductInfo && (\r\n <Flex align=\"center\" gap={12}>\r\n {productInfo.productName && (\r\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\r\n {productInfo.productName}\r\n </Typography.Title>\r\n )}\r\n {productInfo.version && (\r\n <Typography.Text style={{ position: 'relative', top: 6, left: -6 }}>\r\n {productInfo.version}\r\n </Typography.Text>\r\n )}\r\n </Flex>\r\n )}\r\n\r\n {/* 左侧插槽 */}\r\n {leftContent}\r\n </Space>\r\n\r\n {/* 右侧:硬件监控和操作按钮 */}\r\n <Flex align=\"center\" gap={10}>\r\n {rightContent}\r\n\r\n {/* 系统资源使用情况 */}\r\n {showHardwareUsage && usageElement}\r\n\r\n <div className=\"header-controls\">\r\n {menuElement && (\r\n <div className=\"control-icon\">\r\n {menuElement}\r\n </div>\r\n )}\r\n\r\n {/* 关机、重启操作 */}\r\n {showSystemOperations && (\r\n <div className=\"control-icon\">\r\n <SystemOperations\r\n onPowerOff={onPowerOff}\r\n onRestart={onRestart}\r\n onPowerOffSuccess={onPowerOffSuccess}\r\n onRestartSuccess={onRestartSuccess}\r\n beforeAction={beforeAction}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </Flex>\r\n </Flex>\r\n )\r\n};\r\n\r\nexport default CommonHeader;","import { useState, useEffect, memo } from 'react';\r\nimport { Select, Form } from 'antd';\r\nimport { useIntl } from '../i18n';\r\n\r\nconst LSMLabelField = (props) => {\r\n const intl = useIntl();\r\n const [lsmList, setLsmList] = useState([]);\r\n\r\n const {\r\n label = \"lsm.label\",\r\n onLsmSelect,\r\n fetchLsmData,\r\n formItemProps = {},\r\n selectProps = {},\r\n fieldNames = { label: 'label', value: 'label' }\r\n } = props;\r\n\r\n useEffect(() => {\r\n const loadLsmData = async () => {\r\n try {\r\n const res = await fetchLsmData();\r\n if (res?.length) {\r\n setLsmList(res);\r\n }\r\n } catch (error) {\r\n console.error('Failed to fetch LSM data:', error);\r\n }\r\n };\r\n\r\n loadLsmData();\r\n }, [fetchLsmData]);\r\n\r\n return (\r\n <Form.Item\r\n label={typeof label === 'string' && label.includes('.') ? intl.formatMessage({ id: label }) : label}\r\n {...formItemProps}\r\n >\r\n <Select\r\n {...field}\r\n {...selectProps}\r\n options={lsmList}\r\n fieldNames={fieldNames}\r\n allowClear\r\n showSearch\r\n optionFilterProp=\"label\"\r\n onChange={(value, option) => {\r\n field.onChange(value);\r\n onLsmSelect?.(value === undefined ? undefined : option);\r\n }}\r\n placeholder={selectProps.placeholder || intl.formatMessage({ id: 'lsm.placeholder.select' })}\r\n />\r\n </Form.Item>\r\n );\r\n};\r\n\r\nexport default memo(LSMLabelField);","import { Select, Input, Form, InputNumber, App } from \"antd\";\r\nimport { memo, useEffect, useState } from \"react\";\r\nimport { StyledModal } from \"seeder-st2110-components\";\r\nimport { useIntl } from '../i18n';\r\n\r\nconst numberProps = {\r\n controls: false,\r\n keyboard: false,\r\n changeOnWheel: false,\r\n precision: 0\r\n}\r\n\r\nconst NmosModal = ({\r\n open, \r\n onClose, \r\n getNmosSettings,\r\n updateNmosSettings,\r\n hostAddressOptions = [],\r\n modalProps = {},\r\n formProps = {}\r\n}) => {\r\n const intl = useIntl();\r\n const [nmosSettings, setNmosSettings] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [form] = Form.useForm();\r\n\r\n const { message } = App.useApp();\r\n\r\n useEffect(() => {\r\n // 重置表单和状态当 Modal 打开时\r\n if (open) {\r\n setLoading(true);\r\n getNmosSettings().then(data => {\r\n if (data) {\r\n setNmosSettings(data);\r\n // 数据加载后设置表单值\r\n form.setFieldsValue({\r\n host_addresses: data.host_addresses || [],\r\n domain: data.domain,\r\n registry_address: data.registry_address,\r\n registration_port: data.registration_port,\r\n registry_version: data.registry_version,\r\n logging_level: data.logging_level,\r\n });\r\n }\r\n }).catch(err => {\r\n console.error(\"Failed to fetch settings\", err);\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n } else {\r\n // 关闭时重置表单\r\n form.resetFields();\r\n setNmosSettings(null);\r\n }\r\n }, [open, form, getNmosSettings]); \r\n\r\n const handleSubmit = async () => {\r\n const values = await form.getFieldsValue();\r\n\r\n setLoading(true);\r\n\r\n try {\r\n const response = await updateNmosSettings({\r\n ...nmosSettings,\r\n ...values\r\n });\r\n\r\n if (response) {\r\n message.success(intl.formatMessage({ id: 'nmos.saveSuccess' }));\r\n setTimeout(() => {\r\n onClose();\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error('Update failed:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <StyledModal\r\n title={intl.formatMessage({ id: 'nmos.title' })}\r\n width={650}\r\n open={open}\r\n okText={intl.formatMessage({ id: 'button.apply' })}\r\n cancelText={intl.formatMessage({ id: 'button.close' })}\r\n onOk={handleSubmit}\r\n onCancel={onClose}\r\n confirmLoading={loading}\r\n destroyOnHidden // 关闭时销毁组件,确保下次打开重新初始化\r\n {...modalProps}\r\n >\r\n <Form\r\n form={form}\r\n name=\"nmosForm\"\r\n labelCol={{ span: 5 }}\r\n wrapperCol={{ span: 19 }}\r\n autoComplete=\"off\"\r\n disabled={loading}\r\n {...formProps}\r\n >\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.hostAddress' })}\r\n name=\"host_addresses\"\r\n >\r\n <Select\r\n mode=\"multiple\"\r\n options={hostAddressOptions}\r\n fieldNames={{ label: \"display_name\", value: \"ip_address\" }}\r\n placeholder={intl.formatMessage({ id: 'nmos.placeholder.selectHostAddress' })}\r\n allowClear\r\n />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.domain' })} \r\n name=\"domain\"\r\n >\r\n <Input />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.registryAddress' })}\r\n name=\"registry_address\"\r\n >\r\n <Input />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.registrationPort' })}\r\n name=\"registration_port\"\r\n >\r\n <InputNumber\r\n {...numberProps}\r\n min={0}\r\n max={65535}\r\n style={{ width: '100%' }}\r\n />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.registryVersion' })}\r\n name=\"registry_version\"\r\n >\r\n <Select\r\n options={[\r\n { label: \"v1.0\", value: \"v1.0\" },\r\n { label: \"v1.1\", value: \"v1.1\" },\r\n { label: \"v1.2\", value: \"v1.2\" },\r\n { label: \"v1.3\", value: \"v1.3\" }\r\n ]}\r\n placeholder={intl.formatMessage({ id: 'nmos.placeholder.selectVersion' })}\r\n />\r\n </Form.Item>\r\n <Form.Item \r\n label={intl.formatMessage({ id: 'nmos.loggingLevel' })}\r\n name=\"logging_level\"\r\n >\r\n <InputNumber \r\n {...numberProps}\r\n min={-40} \r\n max={40}\r\n style={{ width: '100%' }}\r\n />\r\n </Form.Item>\r\n </Form>\r\n </StyledModal>\r\n )\r\n}\r\n\r\nexport default memo(NmosModal);","import { useState, useRef, useCallback } from 'react';\r\n\r\nexport const useDeviceHealthCheck = ({\r\n healthCheckUrl = '/api/get_fmt',\r\n maxRetries = 90,\r\n checkInterval = 2000,\r\n onRedirect,\r\n redirectPath = '/',\r\n} = {}) => {\r\n const [error, setError] = useState(null);\r\n const retryCountRef = useRef(0);\r\n const abortControllerRef = useRef(null); // 用于取消轮询\r\n\r\n // 默认跳转行为:原生页面跳转(兼容无路由场景)\r\n const handleRedirect = useCallback((path) => {\r\n if (onRedirect) {\r\n onRedirect(path);\r\n } else {\r\n // 降级到原生跳转,避免依赖 history\r\n window.location.assign(path);\r\n }\r\n }, [onRedirect]);\r\n\r\n // 健康检查函数\r\n const checkHealth = async () => {\r\n if (abortControllerRef.current?.signal.aborted) return false;\r\n\r\n try {\r\n setError(null);\r\n const res = await fetch(healthCheckUrl, {\r\n method: 'HEAD',\r\n signal: abortControllerRef.current?.signal,\r\n });\r\n\r\n if (res.ok) {\r\n handleRedirect(redirectPath);\r\n return true;\r\n }\r\n return false;\r\n } catch (err) {\r\n if (err.name === 'AbortError') return false;\r\n setError('Unable to connect to the device. Please check your network.');\r\n return false;\r\n }\r\n };\r\n\r\n const poll = async () => {\r\n if (retryCountRef.current >= maxRetries) {\r\n setError('Unable to connect to the device. Click below to retry.');\r\n return;\r\n }\r\n\r\n const success = await checkHealth();\r\n if (success) return;\r\n\r\n if (!abortControllerRef.current?.signal.aborted) {\r\n retryCountRef.current += 1;\r\n setTimeout(poll, checkInterval);\r\n }\r\n };\r\n\r\n // 轮询逻辑\r\n const startPolling = useCallback(() => {\r\n // 重置状态\r\n retryCountRef.current = 0;\r\n setError(null);\r\n // 初始化 AbortController\r\n abortControllerRef.current = new AbortController();\r\n poll();\r\n }, []);\r\n\r\n const manualRetry = useCallback(() => {\r\n retryCountRef.current = 0;\r\n setError(null);\r\n poll();\r\n }, []);\r\n\r\n const cleanup = useCallback(() => {\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n abortControllerRef.current = null;\r\n }\r\n }, []);\r\n\r\n return {\r\n error,\r\n startPolling,\r\n manualRetry,\r\n cleanup\r\n };\r\n};","import { Result, Space, Typography, Button, Alert } from 'antd';\r\nimport { useEffect, useState } from 'react';\r\nimport { useDeviceHealthCheck } from '../hooks/useDeviceHealthCheck';\r\nimport { useIntl } from '../i18n';\r\n\r\nexport const MaintenancePage = ({\r\n isRestart = false,\r\n healthCheckUrl = '/api/get_fmt',\r\n redirectPath = '/',\r\n onRedirect,\r\n maxRetries = 90, // 最多重试 90 次(约 180 秒)\r\n checkInterval = 2000, // 每 2 秒重试\r\n countdownSeconds = 30, // 倒计时初始值,单位秒\r\n}) => {\r\n const intl = useIntl();\r\n const [countdown, setCountdown] = useState(countdownSeconds);\r\n\r\n const { error, startPolling, manualRetry, cleanup } = useDeviceHealthCheck({\r\n healthCheckUrl,\r\n redirectPath,\r\n onRedirect,\r\n maxRetries,\r\n checkInterval\r\n });\r\n\r\n useEffect(() => {\r\n if (!isRestart) return;\r\n\r\n const countdownTimer = setInterval(() => {\r\n setCountdown(prev => Math.max(0, prev - 1));\r\n }, 1000);\r\n\r\n const firstCheck = async () => {\r\n try {\r\n const res = await fetch(healthCheckUrl, { method: 'HEAD' });\r\n if (!res.ok) {\r\n startPolling();\r\n } else {\r\n onRedirect?.(redirectPath);\r\n }\r\n } catch {\r\n startPolling();\r\n }\r\n };\r\n\r\n firstCheck();\r\n\r\n return () => {\r\n clearInterval(countdownTimer);\r\n cleanup();\r\n };\r\n }, [isRestart, healthCheckUrl, startPolling, cleanup]);\r\n\r\n const title = isRestart\r\n ? intl.formatMessage({ id: 'maintenance.restarting' })\r\n : intl.formatMessage({ id: 'maintenance.poweredOff' });\r\n\r\n const subTitle = isRestart ? (\r\n <Space direction=\"vertical\" size={8} style={{ alignItems: 'center' }}>\r\n <Typography.Text>\r\n {intl.formatMessage({ id: 'maintenance.waiting' })}\r\n </Typography.Text>\r\n\r\n {/* 倒计时阶段 */}\r\n {countdown > 0 && (\r\n <Typography.Text type=\"secondary\">\r\n {intl.formatMessage({ id: 'maintenance.redirecting.countdown' }, { countdown })}\r\n </Typography.Text>\r\n )}\r\n\r\n {/* 倒计时结束,仍在自动重试中(无错误) */}\r\n {countdown <= 0 && !error && (\r\n <Typography.Text type=\"secondary\">\r\n {intl.formatMessage({ id: 'maintenance.waiting.long' })}\r\n </Typography.Text>\r\n )}\r\n\r\n {/* 错误提示(含操作引导) */}\r\n {error && (\r\n <>\r\n <Alert\r\n type=\"error\"\r\n message={error}\r\n showIcon\r\n style={{ width: '100%' }}\r\n />\r\n <Button type=\"link\" onClick={manualRetry}>\r\n {intl.formatMessage({ id: 'maintenance.retry' })}\r\n </Button>\r\n </>\r\n )}\r\n </Space>\r\n ) : (\r\n <Typography.Text>\r\n {intl.formatMessage({ id: 'maintenance.offline.description' })}\r\n </Typography.Text>\r\n );\r\n\r\n return (\r\n <div className=\"maintenance-page\">\r\n <Result\r\n status={isRestart ? 'info' : 'warning'}\r\n title={title}\r\n subTitle={subTitle}\r\n />\r\n </div>\r\n );\r\n};","// src/react/DraggableNumberInput.tsx\r\nimport React from \"react\";\r\nimport { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\n// 默认配置\r\nconst DEFAULT_DECIMAL_PLACES = 2;\r\n\r\n// src/react/defaults-and-utils.ts\r\n// eslint-disable-next-line no-var\r\nvar defaultModifiers = {\r\n default: { multiplier: 1, sensitivity: 1 },\r\n // ctrlKey: { multiplier: 1, sensitivity: 1 },\r\n // shiftKey: { multiplier: 10, sensitivity: 0.5 },\r\n // metaKey: { multiplier: 1, sensitivity: 1 },\r\n // altKey: { multiplier: 1, sensitivity: 1 }\r\n};\r\n\r\n// multiplier: 控制每次鼠标移动时数值变化的基本单位 multiplier: 1- 鼠标移动1像素,值变化1 multiplier: 10- 鼠标移动1像素,值变化10\r\n// sensitivity: 控制数值变化的灵敏度 sensitivity: 1- 正常灵敏度 sensitivity: 0.5- 减半灵敏度,需要移动2像素才能产生正常1像素的效果\r\n\r\n// 修改 formatNumber 函数,强制显示1位小数\r\nfunction formatNumber(value, decimalPlaces = DEFAULT_DECIMAL_PLACES) {\r\n return new Intl.NumberFormat(\"en-US\", {\r\n minimumFractionDigits: decimalPlaces,\r\n maximumFractionDigits: decimalPlaces,\r\n useGrouping: false\r\n }).format(value);\r\n}\r\n\r\nfunction handleArrow(e, multiplier, value) {\r\n if (e.key === \"ArrowUp\") {\r\n return value + multiplier;\r\n }\r\n if (e.key === \"ArrowDown\") {\r\n return value - multiplier;\r\n }\r\n return value;\r\n}\r\n\r\n// eslint-disable-next-line no-var\r\nvar DragCursor = ({ cursorPosition }) => /* @__PURE__ */ React.createElement(\r\n \"div\",\r\n {\r\n style: {\r\n position: \"fixed\",\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: \"100vh\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n /* @__PURE__ */ React.createElement(\r\n \"svg\",\r\n {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n width: \"24\",\r\n height: \"24\",\r\n viewBox: \"0 0 24 24\",\r\n style: {\r\n position: \"absolute\",\r\n left: cursorPosition.x,\r\n top: cursorPosition.y,\r\n transform: \"translate(-50%, -50%)\",\r\n pointerEvents: \"none\"\r\n }\r\n },\r\n /* @__PURE__ */ React.createElement(\r\n \"path\",\r\n {\r\n fill: \"#000\",\r\n stroke: \"#fff\",\r\n strokeLinejoin: \"round\",\r\n d: \"M6.5 9a.5.5 0 0 0-.8-.4l-4 3a.5.5 0 0 0 0 .8l4 3a.5.5 0 0 0 .8-.4v-1.5h11V15a.5.5 0 0 0 .8.4l4-3a.5.5 0 0 0 0-.8l-4-3a.5.5 0 0 0-.8.4v1.5h-11V9Z\",\r\n style: {\r\n filter: \"drop-shadow( 0px 2px 1px rgba(0, 0, 0, .35))\"\r\n }\r\n }\r\n )\r\n )\r\n);\r\n\r\n// eslint-disable-next-line no-var\r\nvar noop = () => {\r\n};\r\nfunction DraggableNumberInput({\r\n value,\r\n min,\r\n max,\r\n className = \"\",\r\n disablePointerLock = false,\r\n modifierKeys,\r\n decimalPlaces = DEFAULT_DECIMAL_PLACES,\r\n onChange = noop,\r\n onDragStart = noop,\r\n onDragEnd = noop,\r\n disabled = false, // 新增 disabled 属性\r\n style,\r\n ...restProps\r\n}) {\r\n const inputRef = useRef(null);\r\n const [isMouseDown, setIsMouseDown] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [localValue, setLocalValue] = useState(() => formatNumber(value, decimalPlaces));\r\n const [cursorPosition, setCursorPosition] = useState({ x: 0, y: 0 });\r\n const totalMovement = useRef(0);\r\n const startValue = useRef(0);\r\n const startX = useRef(0);\r\n const currentMultiplier = useRef(1);\r\n\r\n // === 新增:编辑状态跟踪 ===\r\n const [isEditing, setIsEditing] = useState(false);\r\n const lastExternalValueRef = useRef(value);\r\n\r\n // 修改 formatNumber 调用,传入 decimalPlaces\r\n const formatValue = useCallback((val) => {\r\n return formatNumber(val, decimalPlaces);\r\n }, [decimalPlaces]);\r\n\r\n const constrainedOnChange = useCallback(\r\n (newValue) => {\r\n if (disabled) return; // 禁用状态下不触发 onChange\r\n \r\n let constrainedValue = newValue;\r\n if (typeof min === \"number\") {\r\n constrainedValue = Math.max(min, constrainedValue);\r\n }\r\n if (typeof max === \"number\") {\r\n constrainedValue = Math.min(max, constrainedValue);\r\n }\r\n onChange(constrainedValue);\r\n },\r\n [onChange, min, max, disabled]\r\n );\r\n\r\n useEffect(() => {\r\n // 只有当用户不在编辑状态,且外部值真正变化时才更新\r\n if (!isEditing && lastExternalValueRef.current !== value) {\r\n const formattedValue = formatValue(value);\r\n setLocalValue(formattedValue);\r\n lastExternalValueRef.current = value;\r\n }\r\n }, [value, formatValue, isEditing, disabled]);\r\n \r\n const handleInputChange = (e) => {\r\n if (disabled) return; // 禁用状态下不处理输入\r\n \r\n const val = e.target.value;\r\n\r\n // 标记为编辑状态\r\n setIsEditing(true);\r\n setLocalValue(val);\r\n\r\n // 允许输入中间状态,不立即触发onChange\r\n if (val === '' || val === '-' || val === '.' || val.endsWith('.')) {\r\n return; // 输入中,不触发onChange\r\n }\r\n\r\n const num = parseFloat(val);\r\n if (!isNaN(num)) {\r\n constrainedOnChange(num); \r\n }\r\n };\r\n\r\n const handleBlur = () => {\r\n if (disabled) return; // 禁用状态下不处理失焦\r\n \r\n // 退出编辑状态\r\n setIsEditing(false);\r\n\r\n const num = parseFloat(localValue);\r\n if (!isNaN(num)) {\r\n // 根据 decimalPlaces 进行四舍五入\r\n const precision = Math.pow(10, decimalPlaces);\r\n const processedValue = Math.round(num * precision) / precision;\r\n const formattedValue = formatValue(processedValue);\r\n\r\n // 更新显示值\r\n setLocalValue(formattedValue);\r\n lastExternalValueRef.current = processedValue;\r\n // 触发外部变化\r\n constrainedOnChange(processedValue);\r\n } else {\r\n // 如果输入无效,重置为当前外部值\r\n const formattedValue = formatValue(value);\r\n setLocalValue(formattedValue);\r\n }\r\n };\r\n\r\n const handleMouseDown = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不处理鼠标按下\r\n if (!inputRef.current) return;\r\n \r\n let x = 0, y = 0;\r\n if (\"clientX\" in e && \"clientY\" in e) {\r\n [x, y] = [e.clientX, e.clientY];\r\n }\r\n if (\"touches\" in e) {\r\n [x, y] = [e.touches[0].clientX, e.touches[0].clientY];\r\n }\r\n setIsMouseDown(true);\r\n startX.current = x;\r\n startValue.current = value;\r\n totalMovement.current = 0;\r\n setCursorPosition({ x, y });\r\n },\r\n [value, disablePointerLock, disabled]\r\n );\r\n\r\n const updateDelta = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不更新\r\n if (!isMouseDown) return;\r\n applyMovement(totalMovement.current, e);\r\n },\r\n [isMouseDown, disabled]\r\n );\r\n\r\n const getModifiers = useCallback(\r\n (e) => {\r\n const mods = { ...defaultModifiers, ...modifierKeys };\r\n for (const key in mods) {\r\n if (key !== \"default\" && e[key]) {\r\n currentMultiplier.current = mods[key].multiplier;\r\n return mods[key];\r\n }\r\n }\r\n currentMultiplier.current = mods.default.multiplier;\r\n return mods.default;\r\n },\r\n [modifierKeys]\r\n );\r\n\r\n const applyMovement = useCallback(\r\n (newMovement, e) => {\r\n if (disabled) return; // 禁用状态下不应用移动\r\n \r\n const { sensitivity, multiplier } = getModifiers(e);\r\n const delta = newMovement * sensitivity * multiplier;\r\n let newValue = startValue.current + delta;\r\n // 根据 decimalPlaces 进行精度控制\r\n const precision = Math.pow(10, decimalPlaces);\r\n newValue = Math.round(newValue * precision) / precision;\r\n newValue = Object.is(newValue, -0) ? 0 : newValue;\r\n constrainedOnChange(newValue);\r\n },\r\n [constrainedOnChange, getModifiers, decimalPlaces, disabled]\r\n );\r\n\r\n const handleArrowKeyDown = (e) => {\r\n if (disabled) return; // 禁用状态下不处理方向键\r\n \r\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n const { multiplier } = getModifiers(e);\r\n const newValue = handleArrow(e, multiplier, value);\r\n constrainedOnChange(newValue);\r\n }\r\n };\r\n\r\n const handleModifierKeyDuringDrag = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不处理修饰键\r\n \r\n if (e.key === \"Shift\" || e.key === \"Control\" || e.key === \"Meta\" || e.key === \"Alt\") {\r\n updateDelta(e);\r\n }\r\n },\r\n [updateDelta, disabled]\r\n );\r\n\r\n const handleMouseMove = useCallback(\r\n (e) => {\r\n if (disabled) return; // 禁用状态下不处理鼠标移动\r\n if (!isMouseDown) return;\r\n \r\n if (\"touches\" in e) {\r\n e.preventDefault();\r\n }\r\n if (!disablePointerLock && document.pointerLockElement && !(\"touches\" in e)) {\r\n setCursorPosition((prev) => {\r\n const width = window.innerWidth;\r\n const height = window.innerHeight;\r\n const x2 = (prev.x + e.movementX + width) % width;\r\n const y = (prev.y + e.movementY + height) % height;\r\n return { x: x2, y };\r\n });\r\n }\r\n const x = \"touches\" in e ? e.touches[0].clientX : e.clientX;\r\n const newMovement = disablePointerLock || \"touches\" in e ? x - startX.current : totalMovement.current + e.movementX;\r\n if (!isDragging && newMovement !== 0) {\r\n if (!disablePointerLock && !(\"touches\" in e)) {\r\n inputRef.current?.requestPointerLock?.();\r\n }\r\n setIsDragging(true);\r\n document.addEventListener(\"keydown\", handleModifierKeyDuringDrag);\r\n document.addEventListener(\"keyup\", handleModifierKeyDuringDrag);\r\n onDragStart();\r\n }\r\n totalMovement.current = newMovement;\r\n applyMovement(newMovement, e);\r\n },\r\n [\r\n isMouseDown,\r\n disablePointerLock,\r\n startX,\r\n isDragging,\r\n onDragStart,\r\n applyMovement,\r\n handleModifierKeyDuringDrag,\r\n disabled\r\n ]\r\n );\r\n\r\n const handleMouseUp = useCallback(() => {\r\n if (disabled) return; // 禁用状态下不处理鼠标抬起\r\n \r\n setIsMouseDown(false);\r\n totalMovement.current = 0;\r\n if (isDragging) {\r\n setIsDragging(false);\r\n document.removeEventListener(\"keydown\", handleModifierKeyDuringDrag);\r\n document.removeEventListener(\"keyup\", handleModifierKeyDuringDrag);\r\n onDragEnd();\r\n }\r\n if (document.pointerLockElement) {\r\n document.exitPointerLock();\r\n }\r\n }, [isDragging, onDragEnd, disablePointerLock, disabled]);\r\n\r\n useEffect(() => {\r\n if (isMouseDown && !disabled) {\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"touchmove\", handleMouseMove, {\r\n passive: false\r\n });\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n document.addEventListener(\"touchend\", handleMouseUp);\r\n return () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.removeEventListener(\"touchmove\", handleMouseMove);\r\n document.removeEventListener(\"touchend\", handleMouseUp);\r\n };\r\n }\r\n }, [isMouseDown, handleMouseMove, handleMouseUp, disabled]);\r\n\r\n // 禁用状态下的样式\r\n const disabledStyle = disabled ? {\r\n cursor: 'not-allowed',\r\n borderColor: '#424242',\r\n background: 'rgba(255, 255, 255, 0.08)',\r\n color: 'rgba(255, 255, 255, 0.25)'\r\n } : {};\r\n\r\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\r\n \"input\",\r\n {\r\n ref: inputRef,\r\n type: \"text\",\r\n inputMode: \"numeric\",\r\n pattern: \"-?[0-9]*\\\\.?[0-9]*\",\r\n value: localValue,\r\n onChange: handleInputChange,\r\n onBlur: handleBlur,\r\n onMouseDown: handleMouseDown,\r\n onTouchStart: handleMouseDown,\r\n onKeyDown: handleArrowKeyDown,\r\n disabled: disabled, // 添加 disabled 属性\r\n className: `draggable-number-input ${className} ${isDragging ? \"dragging\" : \"\"} ${disabled ? \"disabled\" : \"\"}`,\r\n style: {\r\n ...{\r\n cursor: disabled ? 'not-allowed' : 'ew-resize',\r\n userSelect: disabled ? 'none' : 'auto',\r\n caretColor: isDragging ? \"transparent\" : \"initial\"\r\n },\r\n ...disabledStyle,\r\n ...style\r\n },\r\n ...restProps\r\n }\r\n ), isDragging && !disablePointerLock && !disabled && /* @__PURE__ */ React.createElement(DragCursor, { cursorPosition }));\r\n}\r\n\r\nexport {\r\n DraggableNumberInput\r\n};","import React from 'react';\r\nimport { InputNumber } from 'antd';\r\nimport { useIntl } from '../i18n';\r\n\r\n/**\r\n * 通用有界输入框\r\n * 用于处理需要范围限制的输入,支持自动修正或自由输入\r\n */\r\nexport const BoundedInput = ({\r\n value, \r\n onChange, \r\n min = 0,\r\n max = 100,\r\n autoCorrect = false, \r\n placeholder = 'input.placeholder.enterInteger',\r\n disabled = false,\r\n ...props\r\n}) => {\r\n const intl = useIntl();\r\n \r\n // 处理国际化文本\r\n const placeholderText = typeof placeholder === 'string' && placeholder.includes('.') \r\n ? intl.formatMessage({ id: placeholder }) \r\n : placeholder;\r\n \r\n // 1. 处理输入变更:只管记录,不修正,不打断\r\n const handleChange = (val) => {\r\n if (val === null || val === undefined) {\r\n onChange?.(null);\r\n return;\r\n }\r\n // 确保是整数\r\n if (typeof val === 'number') {\r\n onChange?.(Math.floor(val));\r\n }\r\n };\r\n\r\n // 2. 处理失焦:只有开启 autoCorrect 时才执行修正\r\n const handleBlur = (e) => {\r\n // 如果关闭了自动修正,直接返回,不做任何事\r\n if (!autoCorrect) return;\r\n\r\n const val = e.target.value;\r\n \r\n if (val === '' || val === null || val === undefined) return;\r\n\r\n const num = Number(val);\r\n if (isNaN(num)) return;\r\n\r\n // 核心修正逻辑\r\n let safeVal = num;\r\n if (num < min) safeVal = min;\r\n if (num > max) safeVal = max;\r\n\r\n // 只有当值需要改变时,才触发更新\r\n if (safeVal !== num) {\r\n onChange?.(safeVal);\r\n }\r\n };\r\n\r\n return (\r\n <InputNumber\r\n value={value}\r\n onChange={handleChange}\r\n onBlur={handleBlur}\r\n placeholder={placeholderText}\r\n // 只有开启自动修正时,才把 min/max 传给组件\r\n min={autoCorrect ? min : undefined}\r\n max={autoCorrect ? max : undefined}\r\n precision={0} // 必须是整数\r\n controls={false} // 隐藏上下箭头\r\n keyboard={false} // 禁用键盘上下键\r\n changeOnWheel={false} // 禁用滚轮\r\n style={{ width: '100%' }}\r\n disabled={disabled}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\n/**\r\n * 专用端口输入框\r\n */\r\nexport const PortInput = (props) => (\r\n <BoundedInput\r\n min={0}\r\n max={65535}\r\n placeholder=\"input.placeholder.enterPort\"\r\n {...props}\r\n />\r\n);\r\n\r\n/**\r\n * 专用 Payload 输入框\r\n */\r\nexport const PayloadInput = (props) => (\r\n <BoundedInput\r\n min={96}\r\n max={127}\r\n placeholder=\"input.placeholder.enterPayload\"\r\n {...props}\r\n />\r\n);"],"names":["debugI18n","_window$g_initialProp","_window$g_initialProp2","_window$g_initialProp3","_window$g_initialProp4","_window$g_initialProp5","_window$g_initialProp6","window","console","log","group","g_initialProps","locale","___g_initialPropsFromServer","localStorage","getItem","e","__COMPONENT_LOCALE__","__COMPONENT_I18N_MESSAGES__","__PROJECT_I18N_MESSAGES__","messages","componentMessages","projectMessages","umiMessages","allLocales","Set","Object","keys","Array","from","forEach","merged","_objectSpread","concat","length","testKeys","currentLocale","allMessages","key","_allMessages$currentL","_allMessages$enUS","translation","groupEnd","process","env","NODE_ENV","getLocale","g_lang","LOCALE","g_initialPropsFromServer","storedLocale","getMessages","formatMessage","_ref","_messages$locale","_messages$enUS","id","values","arguments","undefined","message","replace","match","useIntl","formatMessageFn","_ref2","addMessages","formatBytes","bytes","decimals","k","dm","sizes","i","Math","floor","parseFloat","pow","toFixed","UsageItem","memo","title","iconClass","children","memTotal","intl","_jsx","Tooltip","_jsxs","_Fragment","destroyOnHidden","className","useHardwareWebSocket","socketUrl","systemStatus","setSystemStatus","useState","handleMessage","useCallback","prev","error","useWebSocket","onMessage","event","parsedMessage","JSON","parse","data","debug","ps_status","getMaxNicTemp","sensors","priorityFields","temps","flatMap","field","_sensors$field","map","item","current","filter","temp","max","getMaxSensorTemp","sensorData","getDetail","_sensors_temperatures","_sensors_temperatures2","_mem$total","_mem$percent","_getMaxNicTemp","_gpu_stats$0$utilizat","_gpu_stats$","_gpu_stats$0$temperat","_gpu_stats$2","status","cpu_percent","mem","sensors_temperatures","gpu_stats","cpu_usage","cpu_temp","coretemp","mem_total","total","mem_usage","percent","mem_temp","spd5118","nic_temp","hd_temp","nvme","gpu_usage","gpu_temp","createMetricItem","value","unit","numValue","valueString","getItems","details","items","push","useHardwareUsage","useMemo","statusItems","index","StyledModal","props","width","okText","cancelText","styles","propStyles","restProps","_objectWithoutProperties","_excluded","okButtonText","includes","cancelButtonText","baseStyles","content","padding","header","marginBottom","paddingBlock","paddingInlineStart","background","body","paddingInline","footer","marginTop","paddingBlockEnd","Modal","AuthorizationModal","onCancel","onOk","authData","App","useApp","code","setCode","accredit_status","isActivated","statusMessage","bios_id","uuid","expires_time","expiresTime","getStatusMessageKey","msg","statusMap","statusMessageKey","handleOk","trimmedCode","trim","statusAlert","Alert","type","showIcon","defaultOkText","open","cancelButtonProps","disabled","maskClosable","closable","Form","name","labelCol","span","wrapperCol","autoComplete","style","Item","label","required","Input","readOnly","TextArea","onChange","target","autoSize","minRows","maxRows","placeholder","DEFAULT_AUTH","useAuth","options","fetchAuthInfo","authorize","defaultAuthData","autoShowModal","messageApi","contextHolder","useMessage","showModal","setShowModal","setAuthData","isRegistered","setIsRegistered","loading","setLoading","openModal","closeModal","useEffect","loadAuthInfo","result","commands","auth","license_data","errorMsg","ciphertext_status","errorMessage","modal","AuthModal","openAuthModal","closeAuthModal","useUpgrade","menuItems","onMenuClick","downloadFiles","upgradeExecute","upgradeStatus","acceptFileTypes","uploadCompleteDelay","statusPollingInterval","isSpinning","setIsSpinning","pollingInterval","setPollingInterval","currentStatus","setCurrentStatus","uploadProgress","setUploadProgress","inputRef","useRef","isUploadingRef","isMountedRef","uploadCancelToken","axios","CancelToken","source","statusCancelToken","showLoader","hideLoader","finalMenuItems","hasDownload","some","hasUpload","licenseIndex","findIndex","itemsToAdd","beforeLicense","slice","licenseItem","afterLicense","itemsToInsert","handleMenuClick","onDownload","onUpload","warn","res","Error","fileName","contentDisposition","headers","filenameMatch","decodeURIComponent","blob","Blob","url","URL","createObjectURL","link","document","createElement","display","href","download","appendChild","click","parentNode","removeChild","revokeObjectURL","updatePackage","_event$target$files","file","files","cancel","formData","FormData","append","response","onUploadProgress","progressEvent","percentCompleted","round","loaded","cancelToken","token","cancelRequest","setTimeout","isCancel","fetchUpgradeStatus","success","location","reload","useInterval","upgradeElement","Dropdown","menu","onClick","trigger","preventDefault","ref","accept","Spin","spinning","indicator","LoadingOutlined","fontSize","spin","tip","size","fullscreen","useSystemOperations","onPowerOff","onRestart","confirmTitle","run","AntdModal","confirmTitleText","cancelTextValue","okTextValue","doAction","action","confirm","icon","ExclamationCircleFilled","toUpperCase","getMenuItems","usePageReload","reloading","setReloading","startReload","delay","backgroundColor","transition","offsetHeight","timer","clearTimeout","ReloadOverlay","position","top","left","right","bottom","flexDirection","alignItems","justifyContent","zIndex","color","getReadyStateText","state","states","createDummyLogger","dummyFn","exportLogs","getLogStats","errors","warnings","info","lastTimestamp","clearLogs","logs","createGlobalLogger","webSocketUrl","maxLogs","isDevelopment","level","timestamp","Date","toISOString","logEntry","timestampDisplay","toLocaleString","year","month","day","hour","minute","second","hour12","shift","consoleMessage","consoleArgs","filenamePrefix","logText","entry","stringify","join","repeat","blobUrl","hostname","pathname","urlObj","readableTime","filename","a","count","_logs","l","useHeartbeat","sendMessage","readyState","config","logger","enabled","heartbeatTimerRef","lastHeartbeatTimeRef","now","configRef","interval","stateRef","clearInterval","stopHeartbeat","startHeartbeat","currentState","currentConfig","setInterval","latestState","latestConfig","timeSinceLastHeartbeat","heartbeatImpl","getLastHeartbeatTime","isEnabled","useWebSocketWithFeatures","heartbeat","heartbeatConfig","enableLog","isConnected","setIsConnected","websocketOptions","onOpen","_options$onOpen","eventCode","call","onError","_options$onError","errorType","onClose","_options$onClose","reason","wasClean","onReconnect","_options$onReconnect","attempt","maxAttempts","reconnectLimit","latestMessage","connect","disconnect","heartbeatOptions","heartbeatEnabled","btoa","loggerMethods","readyStateText","NetworkFieldGroup","_fieldConfig$netmask$","_fieldConfig$netmask","prefix","interfaces","fieldConfig","defaultFieldConfig","ip","netmask","mergedFieldConfig","Typography","Title","iface","Divider","marginBlock","NetworkSettingsModal","getLanConfig","getSysConfig","getConfig","updateLanConfig","updateSysConfig","restart","onRestartSuccess","modalProps","formProps","sections","showNetmask","LAN","QSFP","restartRemark","form","useForm","st2110Interfaces","setSt2110Interfaces","lanConfigs","setLanConfigs","submitLoading","setSubmitLoading","isInitialized","setIsInitialized","originalSt2110InterfacesRef","initializationStatus","hasFetched","hasInitialized","preparedFieldConfig","fetchData","lan_interfaces","promises","results","Promise","allSettled","lanResult","sysResult","st2110_interfaces","resetFields","initialValues","connection_id","display_name","ip_address","setFieldsValue","handleSuccess","messageText","isPopup","refresh","defaultMessage","newConfig","updatedConfig","is_restart_required","handleSubmit","validateFields","hasQsfpChanged","original","orig","ipChanged","updatePromises","lanData","_lanConfigs$index","interfacesData","_st2110Interfaces$ind","_st2110Interfaces$ind2","_st2110Interfaces$ind3","st2110Data","allSucceeded","every","mergedModalProps","confirmLoading","centered","forceRender","mergedFormProps","defaultFieldConfigs","clock_class","formType","clock_accuracy","offset_scaled_log_variance","grandmaster_priority1","grandmaster_priority2","grandmaster_identity","master_port_id","t1_domain_number","min","master_utc_offset","is_connected","text","is_locked","defaultFieldOrder","convertPtpStatusToArray","ptpStatus","fieldConfigs","fieldOrder","rawData","PtpModal","getPtpInfo","updatePtpInfo","setPtpStatus","then","catch","err","finally","ptpStatusArray","renderLabel","getFieldsValue","renderFormItem","_item$options","_item$statusMap","_item$min","_item$max","selectOptions","opt","Select","Switch","normalizedValue","ptp","unknown","ConfigProvider","theme","components","Badge","statusSize","InputNumber","controls","keyboard","Number","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","initialValue","LeftList","dataSource","selectedPresetId","onSelectPreset","onAddNew","onRemove","onImport","onExport","hasPresets","enableImportAndExport","texts","newButton","removeButton","importButton","exportButton","fmt","List","rowKey","renderItem","Text","ellipsis","create_time","description","emptyText","Empty","image","PRESENTED_IMAGE_SIMPLE","Button","PlusOutlined","Space","SubmitButton","editButtonEle","RightDetailForm","_ref3","onSave","onLoad","onEdit","onCancelEdit","onUpdate","isLoading","isSavedPreset","originalPresetData","fields","category_list","loadButton","saveButton","editButton","cancelButton","presetChanged","enableEdit","initialSelected","setInitialSelected","isEditMode","setIsEditMode","currentSelected","useWatch","hasCategoryList","currentValue","getFieldValue","checkboxOptions","category","isInitiallySelected","shouldDisable","initiallySelected","handleCheckboxChange","checkedValues","handleEditClick","handleCancelEdit","handleSaveEdit","handleLoad","formValues","loadData","shouldDisableNameAndDesc","shouldDisableCategories","Flex","vertical","height","layout","flex","overflowY","Checkbox","Group","rows","resize","Preset","getPresetList","savePreset","removePreset","loadPreset","updatePreset","uploadPreset","downloadPreset","onLoadSuccess","onLoadError","deleteConfirm","loadConfirm","loadText","successText","presetList","setPresetList","selectedPreset","setSelectedPreset","uploading","setUploading","setPresetChanged","fetchPresetList","presets","preset_list","firstPreset","handleSelectPreset","preset","handleAddNew","_fields$category_list","unsavedPreset","find","warning","newPreset","reduce","acc","fieldName","handleRemove","isUnsavedPreset","presetName","currentIndex","updatedList","nextIndex","nextPreset","handleImport","input","onchange","_e$target$files","toLowerCase","endsWith","remove","handleExport","downloadUrl","handleLoadPreset","modalInstance","resolveOk","resolve","reject","update","okButtonProps","_resolveOk","destroy","handleSave","_fields$name","_fields$category_list2","savedPresetName","newlySavedPreset","handleUpdate","_fields$name2","updatedPreset","wrapClassName","Row","gutter","Col","justify","align","UpgradeManager","dropdownProps","dropdownElement","otherElements","defaultProps","placement","reactIs_production_min","reactIs_development","reactIsModule","require$$0","require$$1","objectAssign","ReactPropTypesSecret_1","has","checkPropTypes_1","require$$2","require$$3","require$$4","factoryWithTypeCheckers","factoryWithThrowingShims","propTypesModule","SystemOperations","onPowerOffSuccess","beforeAction","powerOffLabel","restartLabel","iconClassName","confirmMessage","actionLabels","poweroff","actionText","titleText","propTypes","PropTypes","func","string","logoBase64","defaultResetRoute","origin","useSpaLogo","logoUrl","logoWidth","logoAlt","buttonStyle","lineHeight","borderStyle","alt","src","number","defaultGetSocketUrl","port","host","CommonHeader","menuElement","productInfo","showLogo","showProductInfo","showHardwareUsage","showSystemOperations","hardwareMonitorUrl","getSocketUrl","logoProps","leftContent","rightContent","logo","usageElement","gap","productName","version","LSMLabelField","lsmList","setLsmList","onLsmSelect","fetchLsmData","formItemProps","selectProps","fieldNames","loadLsmData","allowClear","showSearch","optionFilterProp","option","numberProps","changeOnWheel","precision","NmosModal","getNmosSettings","updateNmosSettings","hostAddressOptions","nmosSettings","setNmosSettings","host_addresses","domain","registry_address","registration_port","registry_version","logging_level","mode","useDeviceHealthCheck","healthCheckUrl","maxRetries","checkInterval","onRedirect","redirectPath","setError","retryCountRef","abortControllerRef","handleRedirect","path","assign","checkHealth","_abortControllerRef$c","signal","aborted","_abortControllerRef$c2","fetch","method","ok","poll","_abortControllerRef$c3","startPolling","AbortController","manualRetry","cleanup","abort","MaintenancePage","isRestart","countdownSeconds","countdown","setCountdown","countdownTimer","firstCheck","_unused","subTitle","direction","Result","DEFAULT_DECIMAL_PLACES","defaultModifiers","default","multiplier","sensitivity","formatNumber","decimalPlaces","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","useGrouping","format","handleArrow","DragCursor","cursorPosition","React","pointerEvents","xmlns","viewBox","x","y","transform","fill","stroke","strokeLinejoin","d","noop","DraggableNumberInput","disablePointerLock","modifierKeys","onDragStart","onDragEnd","isMouseDown","setIsMouseDown","isDragging","setIsDragging","localValue","setLocalValue","setCursorPosition","totalMovement","startValue","startX","currentMultiplier","isEditing","setIsEditing","lastExternalValueRef","formatValue","val","constrainedOnChange","newValue","constrainedValue","formattedValue","handleInputChange","num","isNaN","handleBlur","processedValue","handleMouseDown","clientX","clientY","touches","updateDelta","applyMovement","getModifiers","mods","newMovement","delta","is","handleArrowKeyDown","handleModifierKeyDuringDrag","handleMouseMove","pointerLockElement","innerWidth","innerHeight","x2","movementX","movementY","_inputRef$current","_inputRef$current$req","requestPointerLock","addEventListener","handleMouseUp","removeEventListener","exitPointerLock","passive","disabledStyle","cursor","borderColor","Fragment","inputMode","pattern","onBlur","onMouseDown","onTouchStart","onKeyDown","userSelect","caretColor","BoundedInput","autoCorrect","placeholderText","handleChange","safeVal","PortInput","PayloadInput"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[19,20,21,22,23,24,25,26,27,28]}