From 21e1ae23c185d6fc786f9903110eee9d43df7422 Mon Sep 17 00:00:00 2001 From: winchen Date: Wed, 29 Jul 2026 11:42:06 +0800 Subject: [PATCH] perf: reduce redundant chat rerenders --- dist/index.html | 2 +- dist/js/app.5863459a.js.map | 1 - dist/js/{app.5863459a.js => app.84630d8b.js} | 138 +++++++++++++------ dist/js/app.84630d8b.js.map | 1 + src/components/chat/MessageList.vue | 46 ++++--- src/stores/conversations.js | 104 +++++++++++--- 6 files changed, 209 insertions(+), 83 deletions(-) delete mode 100644 dist/js/app.5863459a.js.map rename dist/js/{app.5863459a.js => app.84630d8b.js} (99%) create mode 100644 dist/js/app.84630d8b.js.map diff --git a/dist/index.html b/dist/index.html index a9716f9..07a47e9 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Web IM
\ No newline at end of file +Web IM
\ No newline at end of file diff --git a/dist/js/app.5863459a.js.map b/dist/js/app.5863459a.js.map deleted file mode 100644 index 0d79727..0000000 --- a/dist/js/app.5863459a.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/app.5863459a.js","mappings":"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2C,0CAA0C;WACrF,MAAM;WACN,2CAA2C,gCAAgC;WAC3E;WACA,KAAK,yBAAyB;WAC9B;WACA,GAAG;WACH;WACA;WACA,0CAA0C,wCAAwC;WAClF;WACA;WACA;WACA,E;;;;;WCtBA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,8CAA8C,yD;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA;WACA,0GAA0G,sCAAsC;WAChJ,E;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA,8CAA8C;;WAE9C;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,iCAAiC,mCAAmC;WACpE;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA,4G;;;;;UElDA;UACA;UACA;UACA,+EAA+E,mCAAmC;UAClH","sources":["webpack://jc-web-im/./src/App.vue","webpack://jc-web-im/./src/components/ChatShell.vue","webpack://jc-web-im/./src/components/LoginView.vue","webpack://jc-web-im/./src/components/chat/ChatPanel.vue","webpack://jc-web-im/./src/components/chat/MessageComposer.vue","webpack://jc-web-im/./src/components/chat/MessageList.vue","webpack://jc-web-im/./src/components/contacts/ContactPanel.vue","webpack://jc-web-im/./src/components/favorites/FavoriteList.vue","webpack://jc-web-im/./src/components/favorites/FavoritePanel.vue","webpack://jc-web-im/./src/components/sidebar/ContactList.vue","webpack://jc-web-im/./src/components/sidebar/ConversationList.vue","webpack://jc-web-im/./src/components/sidebar/NavigationRail.vue","webpack://jc-web-im/./src/config.js","webpack://jc-web-im/./src/main.js","webpack://jc-web-im/./src/services/httpImClient.js","webpack://jc-web-im/./src/services/imClient.js","webpack://jc-web-im/./src/services/longConnectionImClient.js","webpack://jc-web-im/./src/services/realtimeNotifications.js","webpack://jc-web-im/./src/stores/contacts.js","webpack://jc-web-im/./src/stores/conversations.js","webpack://jc-web-im/./src/stores/navigation.js","webpack://jc-web-im/./src/stores/session.js","webpack://jc-web-im/./src/App.vue?7ccd","webpack://jc-web-im/./src/components/ChatShell.vue?96ef","webpack://jc-web-im/./src/components/LoginView.vue?3311","webpack://jc-web-im/./src/components/chat/ChatPanel.vue?ffa3","webpack://jc-web-im/./src/components/chat/MessageComposer.vue?d45c","webpack://jc-web-im/./src/components/chat/MessageList.vue?73ad","webpack://jc-web-im/./src/components/contacts/ContactPanel.vue?11f7","webpack://jc-web-im/./src/components/favorites/FavoriteList.vue?7e83","webpack://jc-web-im/./src/components/favorites/FavoritePanel.vue?9ce0","webpack://jc-web-im/./src/components/sidebar/ContactList.vue?8b7f","webpack://jc-web-im/./src/components/sidebar/ConversationList.vue?8a4a","webpack://jc-web-im/./src/components/sidebar/NavigationRail.vue?e8e6","webpack://jc-web-im/./src/App.vue?455b","webpack://jc-web-im/./src/components/ChatShell.vue?ef53","webpack://jc-web-im/./src/components/LoginView.vue?f595","webpack://jc-web-im/./src/components/chat/ChatPanel.vue?402c","webpack://jc-web-im/./src/components/chat/MessageComposer.vue?bb22","webpack://jc-web-im/./src/components/chat/MessageList.vue?c1a2","webpack://jc-web-im/./src/components/contacts/ContactPanel.vue?96e0","webpack://jc-web-im/./src/components/favorites/FavoriteList.vue?bdf3","webpack://jc-web-im/./src/components/favorites/FavoritePanel.vue?ee85","webpack://jc-web-im/./src/components/sidebar/ContactList.vue?dff0","webpack://jc-web-im/./src/components/sidebar/ConversationList.vue?0914","webpack://jc-web-im/./src/components/sidebar/NavigationRail.vue?c3d8","webpack://jc-web-im/webpack/bootstrap","webpack://jc-web-im/webpack/runtime/chunk loaded","webpack://jc-web-im/webpack/runtime/compat get default export","webpack://jc-web-im/webpack/runtime/define property getters","webpack://jc-web-im/webpack/runtime/global","webpack://jc-web-im/webpack/runtime/hasOwnProperty shorthand","webpack://jc-web-im/webpack/runtime/make namespace object","webpack://jc-web-im/webpack/runtime/set anonymous default export name","webpack://jc-web-im/webpack/runtime/jsonp chunk loading","webpack://jc-web-im/webpack/before-startup","webpack://jc-web-im/webpack/startup","webpack://jc-web-im/webpack/after-startup"],"sourcesContent":["\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","const currentHost = window.location.hostname || '127.0.0.1';\nconst runtimeConfig = window.JC_WEB_IM_CONFIG || {};\nconst appServerOrigin = `${window.location.protocol}//${currentHost}:18888`;\nconst adminServerOrigin = `${window.location.protocol}//${currentHost}:8024`;\n\nexport const appConfig = {\n appName: 'Web IM',\n adminServer: runtimeConfig.adminServer || process.env.VUE_APP_ADMIN_SERVER || adminServerOrigin,\n appServer: runtimeConfig.appServer || process.env.VUE_APP_APP_SERVER || appServerOrigin,\n platformConfigApi: runtimeConfig.platformConfigApi || process.env.VUE_APP_PLATFORM_CONFIG_API || (process.env.NODE_ENV === 'development' ? '/local-api/platform_config.php' : '/api/platform_config.php'),\n registerConfigApi: runtimeConfig.registerConfigApi || process.env.VUE_APP_REGISTER_CONFIG_API || `${adminServerOrigin}/api/register-config`,\n registerPhoneExistsApi: runtimeConfig.registerPhoneExistsApi || process.env.VUE_APP_REGISTER_PHONE_EXISTS_API || `${adminServerOrigin}/api/register-phone-exists`,\n contactsApi: runtimeConfig.contactsApi || process.env.VUE_APP_CONTACTS_API || (process.env.NODE_ENV === 'development' ? '/local-api/contacts.php' : '/api/contacts.php'),\n updateAliasApi: runtimeConfig.updateAliasApi || process.env.VUE_APP_UPDATE_ALIAS_API || (process.env.NODE_ENV === 'development' ? '/local-api/update_alias.php' : '/api/update_alias.php'),\n addContactApi: runtimeConfig.addContactApi || process.env.VUE_APP_ADD_CONTACT_API || (process.env.NODE_ENV === 'development' ? '/local-api/add_contact.php' : '/api/add_contact.php'),\n conversationActionsApi: runtimeConfig.conversationActionsApi || process.env.VUE_APP_CONVERSATION_ACTIONS_API || (process.env.NODE_ENV === 'development' ? '/local-api/conversation_actions.php' : '/api/conversation_actions.php'),\n sendMessageApi: runtimeConfig.sendMessageApi || process.env.VUE_APP_SEND_MESSAGE_API || (process.env.NODE_ENV === 'development' ? '/local-api/send_message.php' : '/api/send_message.php'),\n messageActionApi: runtimeConfig.messageActionApi || process.env.VUE_APP_MESSAGE_ACTION_API || (process.env.NODE_ENV === 'development' ? '/local-api/message_action.php' : '/api/message_action.php'),\n messageDetailApi: runtimeConfig.messageDetailApi || process.env.VUE_APP_MESSAGE_DETAIL_API || (process.env.NODE_ENV === 'development' ? '/local-api/message_detail.php' : '/api/message_detail.php'),\n messagesApi: runtimeConfig.messagesApi || process.env.VUE_APP_MESSAGES_API || (process.env.NODE_ENV === 'development' ? '/local-api/messages.php' : '/api/messages.php'),\n profileApi: runtimeConfig.profileApi || process.env.VUE_APP_PROFILE_API || (process.env.NODE_ENV === 'development' ? '/local-api/profile.php' : '/api/profile.php'),\n changePasswordApi: runtimeConfig.changePasswordApi || process.env.VUE_APP_CHANGE_PASSWORD_API || `${appServerOrigin}/change_pwd`,\n resetPasswordApi: runtimeConfig.resetPasswordApi || process.env.VUE_APP_RESET_PASSWORD_API || `${appServerOrigin}/reset_pwd`,\n imServerHost: runtimeConfig.imServerHost || process.env.VUE_APP_IM_SERVER_HOST || currentHost,\n imRoutePort: Number(runtimeConfig.imRoutePort || process.env.VUE_APP_IM_ROUTE_PORT || 18000),\n useWss: runtimeConfig.useWss ?? process.env.VUE_APP_USE_WSS === 'true',\n wsPath: runtimeConfig.wsPath || process.env.VUE_APP_WS_PATH || '/ws',\n wsUrl: runtimeConfig.wsUrl || process.env.VUE_APP_WS_URL || '',\n sdkMode: runtimeConfig.sdkMode || process.env.VUE_APP_IM_MODE || 'http',\n syncIntervalMs: Number(runtimeConfig.syncIntervalMs || process.env.VUE_APP_SYNC_INTERVAL_MS || 15000),\n sseEnabled: runtimeConfig.sseEnabled ?? process.env.VUE_APP_SSE_ENABLED === 'true',\n sseTicketApi: runtimeConfig.sseTicketApi || process.env.VUE_APP_SSE_TICKET_API || '/api/sse_ticket.php',\n sseUrl: runtimeConfig.sseUrl || process.env.VUE_APP_SSE_URL || '/ws-events',\n platform: 5,\n clientIdStorageKey: 'qmt-web-im-client-id',\n authTokenStoragePrefix: 'qmt-web-im-auth-token-'\n};\n","import { createApp } from 'vue';\nimport { createPinia } from 'pinia';\nimport App from './App.vue';\nimport './styles/base.css';\n\ncreateApp(App).use(createPinia()).mount('#app');\n","import axios from 'axios';\nimport { appConfig } from '@/config';\n\nconst LOCAL_MESSAGE_STORAGE_KEY = 'qmt-web-im-local-messages-v2';\nconst LOCAL_HIDDEN_MESSAGE_STORAGE_KEY = 'qmt-web-im-hidden-messages-v1';\nconst LOCAL_RECALLED_MESSAGE_STORAGE_KEY = 'qmt-web-im-recalled-messages-v1';\n\nfunction scopedStorageKey(baseKey, userId = '') {\n const scope = `${appConfig.appServer || ''}:${userId || 'anonymous'}`;\n return `${baseKey}:${encodeURIComponent(scope)}`;\n}\n\nfunction randomId() {\n if (window.crypto && window.crypto.randomUUID) {\n return window.crypto.randomUUID().replaceAll('-', '');\n }\n return `${Date.now()}${Math.random().toString(16).slice(2)}`;\n}\n\nfunction readLocalMessages(userId) {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(LOCAL_MESSAGE_STORAGE_KEY, userId)) || '{}');\n } catch (error) {\n return {};\n }\n}\n\nfunction readMessageSet(storageKey, userId) {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(storageKey, userId)) || '{}');\n } catch (error) {\n return {};\n }\n}\n\nfunction writeMessageSet(storageKey, messagesByConversation, userId) {\n localStorage.setItem(scopedStorageKey(storageKey, userId), JSON.stringify(messagesByConversation));\n}\n\nfunction messageKeys(message) {\n return [message?.id, message?.messageUid]\n .filter(Boolean)\n .map(value => String(value));\n}\n\nfunction hasStoredMessage(storageKey, conversationId, message, userId) {\n const stored = readMessageSet(storageKey, userId);\n const ids = new Set(stored[conversationId] || []);\n return messageKeys(message).some(id => ids.has(id));\n}\n\nfunction storeMessageKeys(storageKey, conversationId, messages, userId) {\n const stored = readMessageSet(storageKey, userId);\n const ids = new Set(stored[conversationId] || []);\n messages.forEach(message => {\n messageKeys(message).forEach(id => ids.add(id));\n });\n stored[conversationId] = Array.from(ids);\n writeMessageSet(storageKey, stored, userId);\n}\n\nfunction withRecalledState(message) {\n return {\n ...message,\n status: 'recalled',\n deliveryStatus: '',\n recalled: true,\n recallStatus: '已撤回'\n };\n}\n\nfunction applyLocalMessageState(conversationId, messages, userId) {\n return messages\n .filter(message => !hasStoredMessage(LOCAL_HIDDEN_MESSAGE_STORAGE_KEY, conversationId, message, userId))\n .map(message => {\n const isRecalled = Boolean(message.recalled)\n || message.status === 'recalled'\n || hasStoredMessage(LOCAL_RECALLED_MESSAGE_STORAGE_KEY, conversationId, message, userId);\n if (!isRecalled) {\n return message;\n }\n return withRecalledState(message);\n });\n}\n\nfunction writeLocalMessages(messagesByConversation, userId) {\n localStorage.setItem(scopedStorageKey(LOCAL_MESSAGE_STORAGE_KEY, userId), JSON.stringify(messagesByConversation));\n}\n\nfunction saveLocalMessage(message, userId) {\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[message.conversationId] = messagesByConversation[message.conversationId] || [];\n const index = messagesByConversation[message.conversationId].findIndex(item => item.id === message.id);\n if (index >= 0) {\n messagesByConversation[message.conversationId].splice(index, 1, message);\n } else {\n messagesByConversation[message.conversationId].push(message);\n }\n writeLocalMessages(messagesByConversation, userId);\n}\n\nfunction mergeSyncedMessages(localMessages, remoteMessages, conversationId, userId) {\n const visibleLocalMessages = applyLocalMessageState(conversationId, localMessages, userId);\n const localByKey = new Map();\n visibleLocalMessages.forEach(message => {\n messageKeys(message).forEach(key => {\n if (!localByKey.has(key)) {\n localByKey.set(key, message);\n }\n });\n });\n\n const visibleRemoteMessages = applyLocalMessageState(conversationId, remoteMessages, userId).map(remoteMessage => {\n if (!remoteMessage.recalled || String(remoteMessage.text || '').trim()) {\n return remoteMessage;\n }\n const localMessage = messageKeys(remoteMessage)\n .map(key => localByKey.get(key))\n .find(message => message?.text && message.text !== '你撤回了一条消息');\n return localMessage ? { ...remoteMessage, text: localMessage.text } : remoteMessage;\n });\n const remoteKeys = new Set();\n visibleRemoteMessages.forEach(message => {\n messageKeys(message).forEach(key => remoteKeys.add(key));\n });\n const now = Date.now();\n\n function hasRemoteMatch(localMessage) {\n if (localMessage.messageUid && remoteKeys.has(localMessage.messageUid)) {\n return true;\n }\n return visibleRemoteMessages.some(remoteMessage => {\n return remoteMessage.direction === localMessage.direction\n && remoteMessage.text === localMessage.text\n && Math.abs(Number(remoteMessage.timestamp || 0) - Number(localMessage.timestamp || 0)) < 15000;\n });\n }\n\n const pendingLocalMessages = visibleLocalMessages.filter(message => {\n if (message.status === 'recalled' || message.recalled) {\n return message.direction === 'out' && !hasRemoteMatch(message);\n }\n if (message.direction !== 'out') {\n return false;\n }\n if (message.status === 'sent' && message.messageUid) {\n return !hasRemoteMatch(message);\n }\n if (message.status === 'sent') {\n return !hasRemoteMatch(message) && now - Number(message.timestamp || 0) < 30000;\n }\n return message.status === 'sending' || message.status === 'failed';\n });\n\n return [...visibleRemoteMessages, ...pendingLocalMessages].sort((a, b) => {\n return Number(a.displayTimestamp || a.timestamp || 0) - Number(b.displayTimestamp || b.timestamp || 0);\n });\n}\n\nfunction getTitle(value, fallback) {\n return value || fallback || '';\n}\n\nfunction getUniqueEquipment(mobile, fallback) {\n const allowedDevices = {\n '18301902119': '67072d37062c4f31b1165073552933ba',\n '18301902116': '1777479418113eeea8e236edce',\n '18301902118': 'de89fb2f2a61480a8c381f6c16e28bd8',\n '18301902117': 'd117f480faa64145b6162107b1b49617'\n };\n return allowedDevices[mobile] || localStorage.getItem('uniqueEquipment') || fallback;\n}\n\nfunction canUseLocalLoginFallback(response) {\n const message = response.data?.message || '';\n return process.env.NODE_ENV === 'development' && message.includes('允许此设备登录');\n}\n\nexport class HttpImClient {\n constructor() {\n this.listeners = new Map();\n this.connected = false;\n this.currentUser = null;\n }\n\n getClientId() {\n let clientId = localStorage.getItem(appConfig.clientIdStorageKey);\n if (!clientId) {\n clientId = randomId();\n localStorage.setItem(appConfig.clientIdStorageKey, clientId);\n }\n return clientId;\n }\n\n restoreClientId(clientId) {\n if (clientId) {\n localStorage.setItem(appConfig.clientIdStorageKey, clientId);\n }\n }\n\n getSdkVersion() {\n return 'HTTP';\n }\n\n async ensureSdk() {\n return true;\n }\n\n async loginWithPassword(mobile, password) {\n const url = `${appConfig.appServer}/login_pwd`;\n const deviceId = getUniqueEquipment(mobile, this.getClientId());\n const response = await axios.post(url, {\n mobile,\n password,\n platform: appConfig.platform,\n clientId: deviceId,\n uniqueEquipment: deviceId\n }, { withCredentials: false });\n\n this.persistAppToken(url, response);\n if (response.data?.code !== 0) {\n if (canUseLocalLoginFallback(response)) {\n return {\n userId: mobile,\n token: `local-device-pending-${Date.now()}`,\n displayName: mobile,\n localOnly: true\n };\n }\n throw new Error(response.data?.message || '登录失败');\n }\n return response.data.result;\n }\n\n async requestAuthCode(mobile) {\n const response = await axios.post(`${appConfig.appServer}/send_code`, { mobile }, { withCredentials: false });\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '验证码发送失败');\n }\n return response.data.result;\n }\n\n async loginWithCode(mobile, code) {\n const url = `${appConfig.appServer}/login`;\n const deviceId = getUniqueEquipment(mobile, this.getClientId());\n const response = await axios.post(url, {\n mobile,\n code,\n platform: appConfig.platform,\n clientId: deviceId,\n uniqueEquipment: deviceId\n }, { withCredentials: false });\n\n this.persistAppToken(url, response);\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '登录失败');\n }\n return response.data.result;\n }\n\n async createPcSession(userId = '') {\n const response = await axios.post(`${appConfig.appServer}/pc_session`, {\n flag: 1,\n device_name: 'Web IM',\n userId,\n clientId: this.getClientId(),\n platform: appConfig.platform\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '二维码登录会话创建失败');\n }\n return response.data.result || {};\n }\n\n async loginWithPcSession(token) {\n const url = `${appConfig.appServer}/session_login/${encodeURIComponent(token)}`;\n const response = await axios.post(url, null, { withCredentials: false });\n this.persistAppToken(url, response);\n const data = response.data || {};\n if ([0, 8, 9, 10, 18].includes(Number(data.code))) {\n return data;\n }\n throw new Error(data.message || '扫码登录失败');\n }\n\n async registerWithPhone(mobile, code) {\n const url = `${appConfig.appServer}/register`;\n const deviceId = getUniqueEquipment(mobile, this.getClientId());\n\n try {\n const response = await axios.post(url, {\n mobile,\n code,\n platform: appConfig.platform,\n clientId: deviceId,\n uniqueEquipment: deviceId\n }, { withCredentials: false });\n\n this.persistAppToken(url, response);\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '注册失败');\n }\n return response.data.result;\n } catch (error) {\n const status = error.response?.status;\n if (status === 404 || status === 405) {\n return this.loginWithCode(mobile, code);\n }\n throw error;\n }\n }\n\n connect(userId, token) {\n this.currentUser = { userId, token };\n this.connected = true;\n this.emit('connectionStatusChanged', { connected: true, statusText: '已连接' });\n this.refreshConversationList();\n }\n\n disconnect() {\n this.connected = false;\n this.currentUser = null;\n this.emit('connectionStatusChanged', { connected: false, statusText: '未连接' });\n }\n\n getConversationList() {\n return [];\n }\n\n refreshConversationList() {\n const conversations = this.getConversationList();\n if (conversations.length) {\n this.emit('conversationsChanged', conversations);\n }\n if (this.currentUser?.userId) {\n this.fetchRemoteConversations().then(remoteConversations => {\n this.emit('conversationsChanged', remoteConversations);\n }).catch(() => {});\n }\n return conversations;\n }\n\n async fetchRemoteConversations(limit = 50) {\n if (!this.currentUser?.userId) {\n return [];\n }\n const response = await axios.post(appConfig.messagesApi, {\n userId: this.currentUser.userId,\n limit\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '会话同步失败');\n }\n\n return (response.data?.result?.conversations || []).map(conversation => ({\n ...conversation,\n updatedAt: Number(conversation.updatedAt || Date.now()),\n avatarText: conversation.avatarText || String(conversation.title || conversation.target || '?').slice(0, 1).toUpperCase(),\n raw: conversation.raw || { type: 'single', target: conversation.target, line: 0 }\n }));\n }\n\n getMessages(conversation) {\n if (!conversation?.id) {\n return [];\n }\n const userId = this.currentUser?.userId || '';\n return applyLocalMessageState(conversation.id, readLocalMessages(userId)[conversation.id] || [], userId);\n }\n\n async fetchRemoteMessages(conversation, limit = 50, options = {}) {\n if (!conversation?.id || !this.currentUser?.userId) {\n return [];\n }\n const response = await axios.post(appConfig.messagesApi, {\n userId: this.currentUser.userId,\n target: conversation.target || conversation.raw?.target || conversation.id.replace(/^single-/, ''),\n limit,\n conversationType: conversation.type || conversation.raw?.type || 0,\n markRead: Boolean(options.markRead)\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '消息同步失败');\n }\n\n const messages = (response.data?.result?.messages || []).map(message => ({\n ...message,\n displayTimestamp: message.displayTimestamp || message.timestamp,\n conversationId: conversation.id\n }));\n const userId = this.currentUser?.userId || '';\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[conversation.id] = mergeSyncedMessages(messagesByConversation[conversation.id] || [], messages, conversation.id, userId);\n writeLocalMessages(messagesByConversation, userId);\n return messagesByConversation[conversation.id];\n }\n\n hideMessages(conversation, messages) {\n const items = Array.isArray(messages) ? messages : [messages];\n if (!conversation?.id || !items.length) {\n return;\n }\n const userId = this.currentUser?.userId || '';\n storeMessageKeys(LOCAL_HIDDEN_MESSAGE_STORAGE_KEY, conversation.id, items, userId);\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[conversation.id] = applyLocalMessageState(\n conversation.id,\n messagesByConversation[conversation.id] || [],\n userId\n );\n writeLocalMessages(messagesByConversation, userId);\n }\n\n markMessagesRecalled(conversation, messages) {\n const items = Array.isArray(messages) ? messages : [messages];\n if (!conversation?.id || !items.length) {\n return;\n }\n const userId = this.currentUser?.userId || '';\n storeMessageKeys(LOCAL_RECALLED_MESSAGE_STORAGE_KEY, conversation.id, items, userId);\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[conversation.id] = applyLocalMessageState(\n conversation.id,\n messagesByConversation[conversation.id] || [],\n userId\n );\n writeLocalMessages(messagesByConversation, userId);\n }\n\n async recallMessage(conversation, message) {\n const messageUid = String(message?.messageUid || message?.id || '').trim();\n if (!/^\\d+$/.test(messageUid)) {\n throw new Error('缺少可撤回的消息ID');\n }\n\n const response = await axios.post(appConfig.messageActionApi, {\n action: 'recall',\n userId: this.currentUser?.userId || message.from || '',\n messageUid\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '撤回失败');\n }\n this.markMessagesRecalled(conversation, [message]);\n return response.data.result;\n }\n\n async editMessage(conversation, message, text) {\n const messageUid = String(message?.messageUid || message?.id || '').trim();\n if (!/^\\d+$/.test(messageUid)) {\n throw new Error('缺少可编辑的消息ID');\n }\n const nextText = String(text || '').trim();\n if (!nextText) {\n throw new Error('编辑内容不能为空');\n }\n\n const response = await axios.post(appConfig.messageActionApi, {\n action: 'edit',\n userId: this.currentUser?.userId || message.from || '',\n messageUid,\n text: nextText\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '编辑失败');\n }\n\n const result = response.data?.result?.message || {};\n const editedMessage = {\n ...message,\n text: result.text || nextText,\n status: 'delivered',\n deliveryStatus: 'delivered',\n editedAt: Number(result.editedAt || Date.now()),\n activityTimestamp: Number(result.editedAt || Date.now())\n };\n saveLocalMessage(editedMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', editedMessage);\n return editedMessage;\n }\n\n async getMessageDetail(conversation, message) {\n const messageUid = String(message?.messageUid || message?.id || '').trim();\n if (!messageUid) {\n throw new Error('缺少消息ID');\n }\n const response = await axios.post(appConfig.messageDetailApi, {\n userId: this.currentUser?.userId || '',\n target: conversation?.target || conversation?.raw?.target || conversation?.id?.replace(/^single-/, '') || '',\n conversationType: conversation?.type || conversation?.raw?.type || 'single',\n messageUid\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '消息详情加载失败');\n }\n\n return response.data?.result?.detail || null;\n }\n\n async sendTextMessage(conversation, text, initialMessage = null) {\n const senderRole = conversation?.role || conversation?.raw?.role || '';\n const message = initialMessage || {\n id: randomId(),\n conversationId: conversation.id,\n from: this.currentUser?.userId || 'me',\n senderRole,\n direction: 'out',\n type: 'text',\n text,\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now()\n };\n saveLocalMessage(message, this.currentUser?.userId || '');\n if (!initialMessage) {\n this.emit('messageSent', message);\n }\n\n try {\n const response = await axios.post(appConfig.sendMessageApi, {\n sender: this.currentUser?.userId || '',\n target: conversation.target || conversation.raw?.target || conversation.id.replace(/^single-/, ''),\n conversationType: conversation.type || conversation.raw?.type || 0,\n text\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '发送失败');\n }\n\n const sentMessage = {\n ...message,\n status: 'sent',\n deliveryStatus: 'sent',\n messageUid: response.data?.result?.messageUid ? String(response.data.result.messageUid) : '',\n senderRole: response.data?.result?.senderRole || message.senderRole || '',\n serverTimestamp: Number(response.data?.result?.timestamp || 0) || null,\n timestamp: message.timestamp,\n displayTimestamp: message.displayTimestamp || message.timestamp\n };\n saveLocalMessage(sentMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', sentMessage);\n return sentMessage;\n } catch (error) {\n const failedMessage = {\n ...message,\n status: 'failed',\n deliveryStatus: '',\n error: error.response?.data?.message || error.message || '发送失败'\n };\n saveLocalMessage(failedMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', failedMessage);\n return failedMessage;\n }\n }\n\n async sendAttachmentMessage(conversation, { type, file, text = '' }, initialMessage = null) {\n const senderRole = conversation?.role || conversation?.raw?.role || '';\n const message = initialMessage || {\n id: randomId(),\n conversationId: conversation.id,\n from: this.currentUser?.userId || 'me',\n senderRole,\n direction: 'out',\n type,\n text,\n attachment: {\n type,\n name: file?.name || (type === 'image' ? '图片' : '文件'),\n mime: file?.type || '',\n size: file?.size || 0,\n url: type === 'image' && file ? URL.createObjectURL(file) : ''\n },\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now()\n };\n saveLocalMessage(message, this.currentUser?.userId || '');\n if (!initialMessage) {\n this.emit('messageSent', message);\n }\n\n try {\n const formData = new FormData();\n formData.append('sender', this.currentUser?.userId || '');\n formData.append('target', conversation.target || conversation.raw?.target || conversation.id.replace(/^single-/, ''));\n formData.append('conversationType', conversation.type || conversation.raw?.type || 0);\n formData.append('messageType', type);\n formData.append('text', text || '');\n formData.append('attachment', file);\n\n const response = await axios.post(appConfig.sendMessageApi, formData, {\n withCredentials: false\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '发送失败');\n }\n\n const sentMessage = {\n ...message,\n status: 'sent',\n deliveryStatus: 'sent',\n messageUid: response.data?.result?.messageUid ? String(response.data.result.messageUid) : '',\n senderRole: response.data?.result?.senderRole || message.senderRole || '',\n attachment: response.data?.result?.attachment || message.attachment,\n serverTimestamp: Number(response.data?.result?.timestamp || 0) || null,\n timestamp: message.timestamp,\n displayTimestamp: message.displayTimestamp || message.timestamp\n };\n saveLocalMessage(sentMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', sentMessage);\n return sentMessage;\n } catch (error) {\n const failedMessage = {\n ...message,\n status: 'failed',\n deliveryStatus: '',\n error: error.response?.data?.message || error.message || '发送失败'\n };\n saveLocalMessage(failedMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', failedMessage);\n return failedMessage;\n }\n }\n\n getContactList() {\n return [];\n }\n\n async getServerContactList(userId) {\n if (!userId) {\n return [];\n }\n const response = await axios.post(appConfig.contactsApi, { userId }, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.contactsApi)\n });\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '联系人加载失败');\n }\n return (response.data?.result?.contacts || []).map(item => {\n return this.mapContact(item.uid, { alias: item.alias }, {\n uid: item.uid,\n displayName: item.displayName,\n name: item.name,\n mobile: item.mobile,\n portrait: item.portrait,\n address: item.address,\n friendAlias: item.alias\n });\n }).sort((a, b) => a.title.localeCompare(b.title, 'zh-CN'));\n }\n\n async addContact(userId, keyword, reason = '') {\n const response = await axios.post(appConfig.addContactApi, {\n userId,\n keyword,\n reason\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '添加联系人失败');\n }\n\n const item = response.data?.result?.contact;\n if (!item?.uid) {\n return null;\n }\n\n return this.mapContact(item.uid, { alias: item.alias }, {\n uid: item.uid,\n displayName: item.displayName,\n name: item.name,\n mobile: item.mobile,\n portrait: item.portrait,\n address: item.address,\n friendAlias: item.alias\n });\n }\n\n normalizeConversation(conversation) {\n const title = getTitle(conversation?.title, conversation?.target || '');\n return {\n ...conversation,\n id: conversation?.id || `${conversation?.type === 'single' ? 'single' : 'group'}-${conversation?.target}`,\n target: conversation?.target || conversation?.raw?.target || '',\n title,\n subtitle: conversation?.subtitle || '',\n unread: Number(conversation?.unread || 0),\n portrait: conversation?.portrait || '',\n avatarText: conversation?.avatarText || title.slice(0, 1).toUpperCase(),\n updatedAt: Number(conversation?.updatedAt || Date.now()),\n raw: conversation?.raw || {\n type: conversation?.type === 'single' ? 'single' : 'group',\n target: conversation?.target || '',\n line: 0\n }\n };\n }\n\n async createGroup(userId, { name, memberIds = [], announcement = '', welcomeText = '', channel = false }) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: channel ? 'create_channel' : 'create_group',\n userId,\n name,\n memberIds,\n announcement,\n welcomeText\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || (channel ? '创建公告群失败' : '创建群组失败'));\n }\n\n const result = response.data?.result || {};\n const conversation = this.normalizeConversation(result.conversation || {});\n conversation.nativeStatus = result.nativeStatus || '';\n conversation.nativeError = result.nativeError || '';\n conversation.raw = {\n ...(conversation.raw || {}),\n nativeStatus: conversation.nativeStatus,\n nativeError: conversation.nativeError\n };\n return conversation;\n }\n\n async joinGroup(userId, groupKey) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'join_group',\n userId,\n groupKey\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '加入群组失败');\n }\n\n const result = response.data?.result || {};\n const conversation = this.normalizeConversation(result.conversation || {});\n conversation.nativeStatus = result.nativeStatus || '';\n conversation.nativeError = result.nativeError || '';\n conversation.raw = {\n ...(conversation.raw || {}),\n nativeStatus: conversation.nativeStatus,\n nativeError: conversation.nativeError\n };\n return conversation;\n }\n\n async broadcastMessage(userId, targetIds, text) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'broadcast',\n userId,\n targetIds,\n text\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群发失败');\n }\n\n return response.data?.result || {};\n }\n\n async getGroupDetail(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'group_detail',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群资料加载失败');\n }\n\n return response.data?.result?.group || null;\n }\n\n async getGroupMembers(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'group_members',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群员加载失败');\n }\n\n return response.data?.result?.members || [];\n }\n\n async updateGroupAlias(userId, groupId, alias) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'update_group_alias',\n userId,\n groupId,\n alias\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '本群昵称保存失败');\n }\n\n return response.data?.result?.alias || '';\n }\n\n async leaveGroup(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'leave_group',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '退出群组失败');\n }\n\n return response.data?.result || {};\n }\n\n async dismissGroup(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'dismiss_group',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '解散群组失败');\n }\n\n return response.data?.result || {};\n }\n\n async transferGroup(userId, groupId, targetUserId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'transfer_group',\n userId,\n groupId,\n targetUserId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '转让群组失败');\n }\n\n return response.data?.result || {};\n }\n\n async setGroupAdmins(userId, groupId, adminIds) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'set_group_admins',\n userId,\n groupId,\n adminIds\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '管理员设置失败');\n }\n\n return response.data?.result || {};\n }\n\n async updateGroupProfile(userId, groupId, { name, announcement, welcomeText }) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'update_group_profile',\n userId,\n groupId,\n name,\n announcement,\n welcomeText\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群资料保存失败');\n }\n\n return response.data?.result || {};\n }\n\n async kickGroupMembers(userId, groupId, targetIds) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'kick_group_members',\n userId,\n groupId,\n targetIds\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '踢人失败');\n }\n\n return response.data?.result || {};\n }\n\n async updateGroupMuteSetting(userId, groupId, setting) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'update_mute_setting',\n userId,\n groupId,\n ...setting\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '禁言设置保存失败');\n }\n\n return response.data?.result?.muteSetting || null;\n }\n\n async updateContactAlias(userId, targetId, alias) {\n const response = await axios.post(appConfig.updateAliasApi, {\n userId,\n targetId,\n alias\n }, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.updateAliasApi)\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '备注名修改失败');\n }\n\n return response.data?.result?.contact?.alias || '';\n }\n\n async getProfile(userId) {\n const response = await axios.post(appConfig.profileApi, {\n action: 'get',\n userId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '用户资料加载失败');\n }\n\n return response.data?.result?.profile || null;\n }\n\n async updateProfile(userId, { displayName, portraitFile }) {\n const formData = new FormData();\n formData.append('action', 'update');\n formData.append('userId', userId);\n formData.append('displayName', displayName);\n if (portraitFile) {\n formData.append('portraitFile', portraitFile);\n }\n\n const response = await axios.post(appConfig.profileApi, formData, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.appServer)\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '用户资料保存失败');\n }\n\n return response.data?.result?.profile || null;\n }\n\n async changePassword({ oldPassword, newPassword }) {\n const response = await axios.post(appConfig.changePasswordApi, {\n oldPassword,\n newPassword\n }, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.changePasswordApi)\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || response.data?.msg || '密码修改失败');\n }\n\n return true;\n }\n\n async resetPasswordWithCode({ mobile, resetCode, newPassword }) {\n const response = await axios.post(appConfig.resetPasswordApi, {\n mobile,\n resetCode,\n newPassword\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || response.data?.msg || '密码设置失败');\n }\n\n return true;\n }\n\n refreshContactList() {\n const contacts = this.getContactList();\n this.emit('contactsChanged', contacts);\n return contacts;\n }\n\n createSingleConversation(userId, userInfo = null) {\n const title = getTitle(userInfo?.title || userInfo?.displayName || userInfo?.name, userId);\n return {\n id: `single-${userId}`,\n type: 'single',\n target: userId,\n title,\n subtitle: '',\n unread: 0,\n portrait: userInfo?.portrait || '',\n avatarText: title.slice(0, 1).toUpperCase(),\n updatedAt: Date.now(),\n raw: { type: 'single', target: userId, line: 0 }\n };\n }\n\n mapContact(userId, friend, userInfo) {\n const title = getTitle(userInfo?.friendAlias || friend?.alias || userInfo?.displayName || userInfo?.name, userId);\n return {\n id: userId,\n uid: userId,\n title,\n subtitle: userInfo?.mobile || userInfo?.name || userId,\n portrait: userInfo?.portrait || '',\n address: userInfo?.address || '',\n avatarText: title.slice(0, 1).toUpperCase(),\n alias: friend?.alias || userInfo?.friendAlias || '',\n rawFriend: friend,\n rawUser: userInfo\n };\n }\n\n on(eventName, handler) {\n if (!this.listeners.has(eventName)) {\n this.listeners.set(eventName, new Set());\n }\n this.listeners.get(eventName).add(handler);\n return () => this.off(eventName, handler);\n }\n\n off(eventName, handler) {\n this.listeners.get(eventName)?.delete(handler);\n }\n\n emit(eventName, payload) {\n this.listeners.get(eventName)?.forEach(handler => handler(payload));\n }\n\n persistAppToken(url, response) {\n const appToken = response.headers?.authtoken || response.headers?.authToken;\n if (appToken) {\n localStorage.setItem(appConfig.authTokenStoragePrefix + this.getUrlHost(url), appToken);\n }\n }\n\n getAppAuthHeaders(url) {\n const host = this.getUrlHost(url);\n if (!host) {\n return {};\n }\n const token = localStorage.getItem(appConfig.authTokenStoragePrefix + host);\n return token ? { authToken: token } : {};\n }\n\n getUrlHost(url) {\n try {\n return new URL(url, window.location.origin).host;\n } catch (error) {\n return '';\n }\n }\n}\n\nexport const imClient = new HttpImClient();\n","import { appConfig } from '@/config';\nimport { HttpImClient } from './httpImClient';\nimport { LongConnectionImClient } from './longConnectionImClient';\n\nclass UnsupportedWildfireImClient {\n constructor() {\n throw new Error('当前本地社区版 Web 客户端未启用 WildFire Web SDK');\n }\n}\n\nexport const imClient = appConfig.sdkMode === 'wildfire'\n ? new UnsupportedWildfireImClient()\n : appConfig.sdkMode === 'custom-ws' || appConfig.sdkMode === 'long'\n ? new LongConnectionImClient()\n : new HttpImClient();\n\nexport { HttpImClient, LongConnectionImClient, UnsupportedWildfireImClient as WildfireImClient };\n","import { appConfig } from '@/config';\nimport { HttpImClient } from './httpImClient';\n\nconst HEARTBEAT_INTERVAL_MS = 25000;\nconst RECONNECT_MIN_MS = 1000;\nconst RECONNECT_MAX_MS = 15000;\n\nfunction buildWsUrl() {\n if (appConfig.wsUrl) {\n return appConfig.wsUrl;\n }\n const protocol = appConfig.useWss ? 'wss' : 'ws';\n const host = appConfig.imServerHost || window.location.hostname;\n const port = appConfig.imRoutePort ? `:${appConfig.imRoutePort}` : '';\n const path = appConfig.wsPath?.startsWith('/') ? appConfig.wsPath : `/${appConfig.wsPath || 'ws'}`;\n return `${protocol}://${host}${port}${path}`;\n}\n\nfunction normalizeConversationId(payload) {\n const target = payload.target || payload.to || payload.receiver || payload.conversationTarget || payload.from || payload.sender;\n return payload.conversationId || (target ? `single-${target}` : '');\n}\n\nfunction normalizeIncomingMessage(payload, currentUserId) {\n const item = payload.message || payload;\n const from = item.from || item.sender || item.fromUser || '';\n const target = item.target || item.to || item.receiver || '';\n const direction = from && String(from) === String(currentUserId) ? 'out' : 'in';\n const conversationId = item.conversationId || normalizeConversationId({\n ...item,\n target: direction === 'out' ? target : from\n });\n\n if (!conversationId) {\n return null;\n }\n\n const status = item.status || item.deliveryStatus || 'sent';\n\n return {\n id: item.id || item.messageId || item.messageUid || `${Date.now()}${Math.random().toString(16).slice(2)}`,\n messageUid: item.messageUid || item.uid || item.messageId || '',\n conversationId,\n from,\n target,\n direction,\n type: item.type || 'text',\n text: item.text || item.content || item.searchableContent || '',\n status,\n deliveryStatus: item.deliveryStatus || (direction === 'out' ? status : ''),\n timestamp: Number(item.timestamp || item.serverTimestamp || Date.now()),\n displayTimestamp: Number(item.displayTimestamp || item.timestamp || item.serverTimestamp || Date.now()),\n raw: item\n };\n}\n\nexport class LongConnectionImClient extends HttpImClient {\n constructor() {\n super();\n this.socket = null;\n this.wsUrl = buildWsUrl();\n this.heartbeatTimer = null;\n this.reconnectTimer = null;\n this.reconnectAttempts = 0;\n this.manualClose = false;\n }\n\n getSdkVersion() {\n return 'JC-LC/0.1';\n }\n\n shouldUseMessagePolling() {\n return !this.connected;\n }\n\n async ensureSdk() {\n if (typeof WebSocket === 'undefined') {\n throw new Error('当前浏览器不支持 WebSocket 长连接');\n }\n return true;\n }\n\n connect(userId, token) {\n this.currentUser = { userId, token };\n this.manualClose = false;\n this.openSocket();\n }\n\n disconnect() {\n this.manualClose = true;\n this.clearReconnectTimer();\n this.clearHeartbeatTimer();\n if (this.socket) {\n this.socket.close();\n this.socket = null;\n }\n super.disconnect();\n }\n\n openSocket() {\n if (this.socket?.readyState === WebSocket.OPEN) {\n this.sendAuthFrame();\n return;\n }\n if (this.socket?.readyState === WebSocket.CONNECTING) {\n return;\n }\n\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接连接中' });\n\n try {\n this.socket = new WebSocket(this.wsUrl);\n this.socket.binaryType = 'arraybuffer';\n } catch (error) {\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接创建失败,使用HTTP补偿' });\n this.scheduleReconnect();\n return;\n }\n\n this.socket.onopen = () => {\n this.connected = true;\n this.reconnectAttempts = 0;\n this.emit('connectionStatusChanged', { connected: true, statusText: '长连接已连接' });\n this.sendAuthFrame();\n this.startHeartbeat();\n this.refreshConversationList();\n };\n\n this.socket.onmessage = event => {\n this.handleFrame(event.data);\n };\n\n this.socket.onerror = () => {\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接异常,使用HTTP补偿' });\n };\n\n this.socket.onclose = () => {\n this.connected = false;\n this.clearHeartbeatTimer();\n this.socket = null;\n if (this.manualClose) {\n return;\n }\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接重连中' });\n this.scheduleReconnect();\n };\n }\n\n sendAuthFrame() {\n this.sendFrame({\n type: 'auth',\n userId: this.currentUser?.userId || '',\n token: this.currentUser?.token || '',\n clientId: this.getClientId(),\n platform: appConfig.platform,\n timestamp: Date.now()\n });\n }\n\n sendFrame(frame) {\n if (this.socket?.readyState !== WebSocket.OPEN) {\n return false;\n }\n this.socket.send(JSON.stringify(frame));\n return true;\n }\n\n handleFrame(rawData) {\n if (rawData instanceof ArrayBuffer) {\n this.emit('rawFrameReceived', rawData);\n return;\n }\n\n let payload;\n try {\n payload = typeof rawData === 'string' ? JSON.parse(rawData) : rawData;\n } catch (error) {\n return;\n }\n\n const type = payload.type || payload.event || payload.cmd || '';\n if (type === 'pong' || type === 'auth_ok' || type === 'connected') {\n return;\n }\n if (type === 'contactsChanged') {\n this.emit('contactsChanged', payload.contacts || []);\n return;\n }\n if (type === 'conversationsChanged') {\n this.emit('conversationsChanged', payload.conversations || []);\n return;\n }\n if (type === 'messages' && Array.isArray(payload.messages)) {\n payload.messages\n .map(message => normalizeIncomingMessage(message, this.currentUser?.userId))\n .filter(Boolean)\n .forEach(message => this.emit('messageReceived', message));\n return;\n }\n\n const message = normalizeIncomingMessage(payload, this.currentUser?.userId);\n if (message) {\n this.emit(message.direction === 'out' ? 'messageStatusChanged' : 'messageReceived', message);\n }\n }\n\n startHeartbeat() {\n this.clearHeartbeatTimer();\n this.heartbeatTimer = window.setInterval(() => {\n this.sendFrame({ type: 'ping', timestamp: Date.now() });\n }, HEARTBEAT_INTERVAL_MS);\n }\n\n clearHeartbeatTimer() {\n if (this.heartbeatTimer) {\n window.clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = null;\n }\n }\n\n scheduleReconnect() {\n this.clearReconnectTimer();\n const delay = Math.min(RECONNECT_MAX_MS, RECONNECT_MIN_MS * 2 ** this.reconnectAttempts);\n this.reconnectAttempts += 1;\n this.reconnectTimer = window.setTimeout(() => {\n this.openSocket();\n }, delay);\n }\n\n clearReconnectTimer() {\n if (this.reconnectTimer) {\n window.clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n }\n}\n","import axios from 'axios';\nimport { appConfig } from '@/config';\nimport { imClient } from '@/services/imClient';\n\nclass RealtimeNotificationClient {\n constructor() {\n this.source = null;\n this.userId = '';\n this.handler = null;\n this.reconnectTimer = null;\n this.reconnectAttempt = 0;\n this.generation = 0;\n }\n\n isConnected() {\n return this.source?.readyState === WebSocket.OPEN;\n }\n\n start(userId, handler) {\n this.stop();\n if (!appConfig.sseEnabled || !userId || typeof window.WebSocket !== 'function') return;\n this.userId = userId;\n this.handler = handler;\n this.generation += 1;\n this.open(this.generation);\n }\n\n stop() {\n this.generation += 1;\n window.clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n if (this.source) this.source.close();\n this.source = null;\n this.userId = '';\n this.handler = null;\n this.reconnectAttempt = 0;\n }\n\n async open(generation) {\n try {\n const response = await axios.post(appConfig.sseTicketApi, { userId: this.userId }, {\n withCredentials: false,\n headers: imClient.getAppAuthHeaders(appConfig.appServer)\n });\n if (generation !== this.generation) return;\n if (response.data?.code !== 0) throw new Error(response.data?.message || '实时通知凭证申请失败');\n const ticket = response.data?.result?.ticket || '';\n if (!ticket) throw new Error('实时通知凭证为空');\n const separator = appConfig.sseUrl.includes('?') ? '&' : '?';\n const endpoint = `${appConfig.sseUrl}${separator}ticket=${encodeURIComponent(ticket)}`;\n const socketUrl = endpoint.startsWith('ws://') || endpoint.startsWith('wss://')\n ? endpoint\n : `${window.location.protocol === 'https:' ? 'wss:' : 'ws:'}//${window.location.host}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`;\n const source = new WebSocket(socketUrl);\n this.source = source;\n source.onopen = () => {\n this.reconnectAttempt = 0;\n };\n source.onmessage = event => {\n if (generation !== this.generation) return;\n let payload = {};\n try { payload = JSON.parse(event.data || '{}'); } catch (error) { payload = {}; }\n if (payload.type !== 'message-notification') return;\n this.handler?.(payload);\n };\n source.onerror = () => {\n if (generation !== this.generation) return;\n source.close();\n if (this.source === source) this.source = null;\n this.scheduleReconnect(generation);\n };\n source.onclose = () => {\n if (generation !== this.generation || this.source !== source) return;\n this.source = null;\n this.scheduleReconnect(generation);\n };\n } catch (error) {\n if (generation === this.generation) this.scheduleReconnect(generation);\n }\n }\n\n scheduleReconnect(generation) {\n window.clearTimeout(this.reconnectTimer);\n const delay = Math.min(30000, 1000 * (2 ** Math.min(this.reconnectAttempt, 5)));\n this.reconnectAttempt += 1;\n this.reconnectTimer = window.setTimeout(() => this.open(generation), delay);\n }\n}\n\nexport const realtimeNotifications = new RealtimeNotificationClient();\n","import { defineStore } from 'pinia';\nimport { imClient } from '@/services/imClient';\nimport { useConversationStore } from '@/stores/conversations';\nimport { useNavigationStore } from '@/stores/navigation';\nimport { useSessionStore } from '@/stores/session';\n\nconst CONTACT_CACHE_MS = 15000;\n\nfunction normalizeContacts(contacts) {\n const unique = new Map();\n contacts.forEach(contact => {\n const uid = String(contact.uid || contact.id || '').trim();\n if (!uid) {\n return;\n }\n const normalized = {\n ...contact,\n id: String(contact.id || uid),\n uid\n };\n unique.set(uid, {\n ...(unique.get(uid) || {}),\n ...normalized\n });\n });\n return Array.from(unique.values()).sort((a, b) => a.title.localeCompare(b.title, 'zh-CN'));\n}\n\nexport const useContactStore = defineStore('contacts', {\n state: () => ({\n contacts: [],\n activeId: '',\n loading: false,\n eventsBound: false,\n refreshSerial: 0,\n refreshPromise: null,\n loadedForUserId: '',\n loadedAt: 0,\n actionError: '',\n actionInfo: ''\n }),\n getters: {\n activeContact(state) {\n return state.contacts.find(item => item.id === state.activeId) || state.contacts[0] || null;\n }\n },\n actions: {\n bindImEvents() {\n if (this.eventsBound) {\n return;\n }\n this.eventsBound = true;\n imClient.on('contactsChanged', contacts => {\n if (!contacts.length && this.contacts.length) {\n return;\n }\n this.contacts = normalizeContacts(contacts);\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n });\n },\n async refreshContacts(options = {}) {\n this.bindImEvents();\n const session = useSessionStore();\n const requestUserId = session.userId;\n const force = Boolean(options.force);\n if (!requestUserId) {\n this.clearContacts();\n return [];\n }\n if (!force\n && this.contacts.length\n && this.loadedForUserId === requestUserId\n && Date.now() - this.loadedAt < CONTACT_CACHE_MS\n ) {\n return this.contacts;\n }\n if (this.refreshPromise && !force) {\n return this.refreshPromise;\n }\n const serial = this.refreshSerial + 1;\n this.refreshSerial = serial;\n this.loading = true;\n\n this.refreshPromise = (async () => {\n this.contacts = normalizeContacts(imClient.refreshContactList());\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n if (!this.contacts.length || force) {\n const serverContacts = await imClient.getServerContactList(requestUserId);\n if (serial !== this.refreshSerial || useSessionStore().userId !== requestUserId) {\n return this.contacts;\n }\n this.contacts = normalizeContacts(serverContacts);\n this.loadedForUserId = requestUserId;\n this.loadedAt = Date.now();\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n }\n window.setTimeout(() => {\n if (serial !== this.refreshSerial || useSessionStore().userId !== requestUserId) {\n return;\n }\n const latest = imClient.getContactList(false);\n if (latest.length || !this.contacts.length) {\n this.contacts = normalizeContacts(latest);\n this.loadedForUserId = requestUserId;\n this.loadedAt = Date.now();\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n }\n }, 1200);\n return this.contacts;\n })();\n\n try {\n return await this.refreshPromise;\n } finally {\n if (serial === this.refreshSerial) {\n this.loading = false;\n this.refreshPromise = null;\n }\n }\n },\n async addContact(keyword) {\n const session = useSessionStore();\n const value = String(keyword || '').trim();\n this.actionError = '';\n this.actionInfo = '';\n if (!session.userId) {\n this.actionError = '请先登录';\n return false;\n }\n if (!value) {\n this.actionError = '请输入用户ID、手机号或用户名';\n return false;\n }\n\n this.loading = true;\n try {\n const contact = await imClient.addContact(session.userId, value, '添加联系人');\n if (contact) {\n this.contacts = normalizeContacts([...this.contacts, contact]);\n this.activeId = contact.id;\n }\n this.actionInfo = '联系人已添加';\n await this.refreshContacts({ force: true });\n return true;\n } catch (error) {\n this.actionError = error.message || '添加联系人失败';\n return false;\n } finally {\n this.loading = false;\n }\n },\n async updateContactAlias(contactId, alias) {\n const session = useSessionStore();\n const targetId = String(contactId || '').trim();\n const nextAlias = String(alias || '').trim();\n this.actionError = '';\n this.actionInfo = '';\n if (!session.userId) {\n this.actionError = '请先登录';\n return false;\n }\n if (!targetId) {\n this.actionError = '缺少联系人ID';\n return false;\n }\n\n try {\n const savedAlias = await imClient.updateContactAlias(session.userId, targetId, nextAlias);\n this.contacts = normalizeContacts(this.contacts.map(item => {\n if (item.uid !== targetId && item.id !== targetId) {\n return item;\n }\n const rawUser = {\n ...(item.rawUser || {}),\n friendAlias: savedAlias\n };\n const rawFriend = {\n ...(item.rawFriend || {}),\n alias: savedAlias\n };\n const title = savedAlias || rawUser.displayName || rawUser.name || item.uid;\n return {\n ...item,\n title,\n avatarText: title.slice(0, 1).toUpperCase(),\n alias: savedAlias,\n rawFriend,\n rawUser\n };\n }));\n this.loadedAt = Date.now();\n this.actionInfo = '备注名已修改';\n return true;\n } catch (error) {\n this.actionError = error.message || '备注名修改失败';\n return false;\n }\n },\n clearContacts() {\n this.refreshSerial += 1;\n this.contacts = [];\n this.activeId = '';\n this.loading = false;\n this.refreshPromise = null;\n this.loadedForUserId = '';\n this.loadedAt = 0;\n this.actionError = '';\n this.actionInfo = '';\n },\n setActiveContact(id) {\n this.activeId = id;\n },\n openChat(contact) {\n if (!contact) {\n return;\n }\n const conversations = useConversationStore();\n const navigation = useNavigationStore();\n const conversation = imClient.createSingleConversation(contact.uid, contact);\n conversations.upsertConversation(conversation);\n conversations.setActiveConversation(conversation.id);\n navigation.showMessages();\n }\n }\n});\n","import { defineStore } from 'pinia';\nimport { imClient } from '@/services/imClient';\nimport { appConfig } from '@/config';\nimport { useSessionStore } from '@/stores/session';\nimport { realtimeNotifications } from '@/services/realtimeNotifications';\n\nconst LOCAL_CONVERSATION_STORAGE_KEY = 'qmt-web-im-local-conversations-v2';\nconst LOCAL_FAVORITE_MESSAGES_KEY = 'qmt-web-im-favorite-messages-v1';\n\nfunction scopedStorageKey(baseKey) {\n const session = useSessionStore();\n const scope = `${appConfig.appServer || ''}:${session.userId || 'anonymous'}`;\n return `${baseKey}:${encodeURIComponent(scope)}`;\n}\n\nfunction readFavoriteMessages() {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(LOCAL_FAVORITE_MESSAGES_KEY)) || '[]');\n } catch (error) {\n return [];\n }\n}\n\nfunction writeFavoriteMessages(messages) {\n localStorage.setItem(scopedStorageKey(LOCAL_FAVORITE_MESSAGES_KEY), JSON.stringify(messages));\n}\n\nfunction readLocalConversations() {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(LOCAL_CONVERSATION_STORAGE_KEY)) || '[]');\n } catch (error) {\n return [];\n }\n}\n\nfunction writeLocalConversations(conversations) {\n localStorage.setItem(scopedStorageKey(LOCAL_CONVERSATION_STORAGE_KEY), JSON.stringify(conversations));\n}\n\nfunction randomId() {\n if (window.crypto && window.crypto.randomUUID) {\n return window.crypto.randomUUID().replaceAll('-', '');\n }\n return `${Date.now()}${Math.random().toString(16).slice(2)}`;\n}\n\nfunction messageKey(message) {\n return message.id || message.messageUid;\n}\n\nfunction messageStableKey(message) {\n return String(message?.messageUid || message?.id || '');\n}\n\nfunction messageActivityTimestamp(message) {\n return Number(message?.activityTimestamp || message?.editedAt || message?.displayTimestamp || message?.timestamp || 0);\n}\n\nfunction isRecalledMessage(message) {\n return Boolean(message?.recalled) || message?.status === 'recalled';\n}\n\nfunction attachmentLabel(message) {\n const attachment = message?.attachment;\n if (!attachment) {\n return '';\n }\n if (attachment.type === 'image') {\n return '[图片]';\n }\n return `[文件] ${attachment.name || '文件'}`;\n}\n\nfunction cleanPlaceholderText(text, message = {}) {\n const value = String(text || '').replace(/\\s+/g, ' ').trim();\n const contentType = Number(message?.contentType || 0);\n if (!value) {\n return '';\n }\n if (contentType !== 1 && value === '[暂不支持的消息类型]') {\n return '';\n }\n if ((contentType === 3 || message?.type === 'image') && (value === '[图片]' || value === '图片')) {\n return '';\n }\n\n return value;\n}\n\nfunction messagePreviewText(message) {\n if (isRecalledMessage(message)) {\n return `[${message?.recallStatus || '已撤回'}]`;\n }\n const text = cleanPlaceholderText(message?.text, message);\n return text || attachmentLabel(message);\n}\n\nfunction sanitizeConversation(conversation) {\n if (!conversation) {\n return conversation;\n }\n return {\n ...conversation,\n subtitle: cleanPlaceholderText(conversation.subtitle, conversation)\n };\n}\n\nfunction isHttpUrl(value) {\n try {\n const url = new URL(String(value || '').trim());\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch (error) {\n return false;\n }\n}\n\nfunction fileNameFromUrl(url, fallback = '图片') {\n try {\n const path = new URL(url).pathname;\n const name = decodeURIComponent(path.split('/').filter(Boolean).pop() || '');\n return name || fallback;\n } catch (error) {\n return fallback;\n }\n}\n\nfunction normalizeMessageForDisplay(message) {\n if (!message || message.attachment) {\n return message;\n }\n\n const contentType = Number(message.contentType || 0);\n const text = String(message.text || '').trim();\n if ((contentType === 3 || message.type === 'image') && isHttpUrl(text)) {\n return {\n ...message,\n type: 'image',\n text: '',\n attachment: {\n type: 'image',\n url: text,\n name: fileNameFromUrl(text, '图片'),\n mime: 'image/*',\n size: 0\n }\n };\n }\n\n return message;\n}\n\nfunction quotePrefix(message) {\n const text = messagePreviewText(message);\n return text.length > 48 ? `${text.slice(0, 48)}...` : text;\n}\n\nasync function writeClipboard(text) {\n if (navigator.clipboard?.writeText) {\n await navigator.clipboard.writeText(text);\n return;\n }\n const element = document.createElement('textarea');\n element.value = text;\n element.setAttribute('readonly', 'readonly');\n element.style.position = 'fixed';\n element.style.left = '-9999px';\n document.body.appendChild(element);\n element.select();\n document.execCommand('copy');\n document.body.removeChild(element);\n}\n\nfunction isSameMessage(left, right) {\n if (left.messageUid && right.messageUid && left.messageUid === right.messageUid) {\n return true;\n }\n if (left.id && right.id && left.id === right.id) {\n return true;\n }\n return left.direction === right.direction\n && left.text === right.text\n && (left.type || 'text') === (right.type || 'text')\n && Math.abs(Number(left.displayTimestamp || left.timestamp || 0) - Number(right.displayTimestamp || right.timestamp || 0)) < 15000;\n}\n\nfunction hasExactMessage(messages, message) {\n return messages.some(item => {\n if (item.id && message.id && item.id === message.id) {\n return true;\n }\n return item.messageUid && message.messageUid && item.messageUid === message.messageUid;\n });\n}\n\nfunction shouldUseMessagePolling() {\n return imClient.shouldUseMessagePolling ? imClient.shouldUseMessagePolling() : true;\n}\n\nfunction canMarkReadNow(options = {}) {\n if (typeof document === 'undefined') {\n return false;\n }\n if (document.visibilityState !== 'visible') {\n return false;\n }\n if (options.userAction) {\n return true;\n }\n return true;\n}\n\nfunction isPageVisible() {\n return typeof document === 'undefined' || document.visibilityState === 'visible';\n}\n\nfunction activeMessageSyncIntervalMs() {\n const configured = Number(appConfig.syncIntervalMs || 0);\n return Math.max(15000, Number.isFinite(configured) && configured > 0 ? configured : 15000);\n}\n\nfunction conversationListSyncIntervalMs() {\n return Math.max(30000, activeMessageSyncIntervalMs() * 2);\n}\n\nfunction mergeVisibleMessages(currentMessages, syncedMessages) {\n const merged = [...syncedMessages].map(normalizeMessageForDisplay);\n currentMessages.forEach(currentMessage => {\n currentMessage = normalizeMessageForDisplay(currentMessage);\n const exists = merged.some(message => isSameMessage(message, currentMessage));\n const shouldKeepLocal = currentMessage.status === 'sending'\n || currentMessage.status === 'failed'\n || (currentMessage.direction === 'out'\n && currentMessage.status === 'sent'\n && Date.now() - Number(currentMessage.timestamp || 0) < 30000);\n if (!exists && shouldKeepLocal) {\n merged.push(currentMessage);\n }\n });\n\n return merged\n .filter((message, index, messages) => {\n const key = messageKey(message);\n return messages.findIndex(item => messageKey(item) === key) === index;\n })\n .sort((a, b) => Number(a.displayTimestamp || a.timestamp || 0) - Number(b.displayTimestamp || b.timestamp || 0));\n}\n\nfunction incomingEditedMessages(previousMessages, nextMessages) {\n const previousByKey = new Map();\n (previousMessages || []).forEach(message => {\n const key = messageStableKey(message);\n if (key) {\n previousByKey.set(key, message);\n }\n });\n\n return (nextMessages || []).filter(message => {\n if (message.direction !== 'in') {\n return false;\n }\n const editedAt = Number(message.editedAt || 0);\n if (editedAt <= 0) {\n return false;\n }\n const previous = previousByKey.get(messageStableKey(message));\n return previous && editedAt > Number(previous.editedAt || 0);\n });\n}\n\nlet notificationAudioContext = null;\n\nfunction playNotificationSound() {\n if (typeof window === 'undefined') {\n return;\n }\n try {\n const AudioContext = window.AudioContext || window.webkitAudioContext;\n if (!AudioContext) {\n return;\n }\n notificationAudioContext = notificationAudioContext || new AudioContext();\n if (notificationAudioContext.state === 'suspended') {\n notificationAudioContext.resume().catch(() => {});\n }\n const oscillator = notificationAudioContext.createOscillator();\n const gain = notificationAudioContext.createGain();\n const startAt = notificationAudioContext.currentTime;\n oscillator.type = 'sine';\n oscillator.frequency.setValueAtTime(880, startAt);\n oscillator.frequency.setValueAtTime(660, startAt + 0.1);\n gain.gain.setValueAtTime(0.0001, startAt);\n gain.gain.exponentialRampToValueAtTime(0.12, startAt + 0.02);\n gain.gain.exponentialRampToValueAtTime(0.0001, startAt + 0.22);\n oscillator.connect(gain);\n gain.connect(notificationAudioContext.destination);\n oscillator.start(startAt);\n oscillator.stop(startAt + 0.24);\n } catch (error) {\n // Notification sound is best-effort; browsers may block audio until user interaction.\n }\n}\n\nexport const useConversationStore = defineStore('conversations', {\n state: () => ({\n activeId: '',\n conversations: [],\n messagesByConversation: {},\n visibleMessagesByConversation: {},\n eventsBound: false,\n usingDemoData: false,\n loading: false,\n syncTimer: null,\n conversationSyncTimer: null,\n readPresenceEventsBound: false,\n syncInFlight: false,\n pendingReadReceiptConversationId: '',\n conversationSyncInFlight: false,\n messageSyncTimer: null,\n messageSyncQueuedAt: 0,\n pendingMessageSyncOptions: {},\n lastReadSyncByConversation: {},\n optimisticMessagesByConversation: {},\n quotedMessage: null,\n forwardingMessages: [],\n editingMessage: null,\n editingText: '',\n editingMode: '',\n messageDetailOpen: false,\n messageDetailLoading: false,\n messageDetailError: '',\n messageDetail: null,\n attentionMessageId: '',\n attentionMessageTimer: null,\n selectionMode: false,\n selectedMessageIds: [],\n favoriteMessages: [],\n activeFavoriteKey: '',\n actionNotice: '',\n actionError: '',\n realtimeSyncTimer: null\n }),\n getters: {\n activeConversation(state) {\n return state.conversations.find(item => item.id === state.activeId) || state.conversations[0] || null;\n },\n activeMessages(state) {\n return state.visibleMessagesByConversation[state.activeId] || [];\n },\n totalUnread(state) {\n return state.conversations.reduce((sum, item) => sum + Number(item.unread || 0), 0);\n },\n canSendActiveConversation(state) {\n const conversation = state.conversations.find(item => item.id === state.activeId) || state.conversations[0] || null;\n if (!conversation) {\n return false;\n }\n if (conversation.type !== 'channel') {\n return true;\n }\n return ['owner', 'admin'].includes(conversation.role || conversation.raw?.role || '');\n },\n favoriteMessageIds(state) {\n return state.favoriteMessages.map(message => message.key);\n },\n activeFavorite(state) {\n return state.favoriteMessages.find(message => message.key === state.activeFavoriteKey)\n || state.favoriteMessages[0]\n || null;\n },\n selectedMessages(state) {\n const selectedIds = new Set(state.selectedMessageIds);\n return (state.visibleMessagesByConversation[state.activeId] || [])\n .filter(message => selectedIds.has(messageStableKey(message)));\n }\n },\n actions: {\n bootstrapDemoData() {\n const session = useSessionStore();\n this.bindImEvents();\n this.usingDemoData = false;\n if (!session.userId) {\n this.clearUserState();\n return;\n }\n this.loadScopedLocalState();\n this.startMessageSync();\n realtimeNotifications.start(session.userId, payload => this.handleRealtimeNotification(payload));\n },\n loadScopedLocalState() {\n this.conversations = readLocalConversations().map(sanitizeConversation);\n this.favoriteMessages = readFavoriteMessages();\n this.activeFavoriteKey = this.favoriteMessages[0]?.key || '';\n this.activeId = this.conversations[0]?.id || '';\n this.messagesByConversation = {};\n this.visibleMessagesByConversation = {};\n this.optimisticMessagesByConversation = {};\n this.quotedMessage = null;\n this.forwardingMessages = [];\n this.editingMessage = null;\n this.editingText = '';\n this.editingMode = '';\n this.messageDetailOpen = false;\n this.messageDetailLoading = false;\n this.messageDetailError = '';\n this.messageDetail = null;\n this.selectionMode = false;\n this.selectedMessageIds = [];\n if (this.activeId) {\n this.loadActiveMessages({ allowReadReceipt: true });\n }\n },\n clearUserState() {\n window.clearInterval(this.syncTimer);\n window.clearInterval(this.conversationSyncTimer);\n window.clearTimeout(this.messageSyncTimer);\n window.clearTimeout(this.attentionMessageTimer);\n window.clearTimeout(this.realtimeSyncTimer);\n realtimeNotifications.stop();\n this.syncTimer = null;\n this.conversationSyncTimer = null;\n this.messageSyncTimer = null;\n this.messageSyncQueuedAt = 0;\n this.pendingMessageSyncOptions = {};\n this.attentionMessageTimer = null;\n this.realtimeSyncTimer = null;\n this.syncInFlight = false;\n this.conversationSyncInFlight = false;\n this.pendingReadReceiptConversationId = '';\n this.lastReadSyncByConversation = {};\n this.activeId = '';\n this.conversations = [];\n this.messagesByConversation = {};\n this.visibleMessagesByConversation = {};\n this.optimisticMessagesByConversation = {};\n this.quotedMessage = null;\n this.forwardingMessages = [];\n this.editingMessage = null;\n this.editingText = '';\n this.editingMode = '';\n this.messageDetailOpen = false;\n this.messageDetailLoading = false;\n this.messageDetailError = '';\n this.messageDetail = null;\n this.attentionMessageId = '';\n this.selectionMode = false;\n this.selectedMessageIds = [];\n this.favoriteMessages = [];\n this.activeFavoriteKey = '';\n this.actionNotice = '';\n this.actionError = '';\n },\n bindImEvents() {\n if (this.eventsBound) {\n return;\n }\n this.eventsBound = true;\n imClient.on('messageSent', message => {\n this.appendMessage(message.conversationId, message);\n });\n imClient.on('messageReceived', message => {\n this.appendMessage(message.conversationId, message);\n if (message.conversationId === this.activeId) {\n this.scheduleActiveMessagesSync({ allowReadReceipt: true }, 700);\n }\n });\n imClient.on('messageStatusChanged', message => {\n this.replaceMessage(message.conversationId, message);\n });\n imClient.on('conversationsChanged', remoteConversations => {\n this.usingDemoData = false;\n this.applyRemoteConversations(remoteConversations);\n });\n },\n setActiveConversation(id) {\n this.activeId = id;\n const conversation = this.conversations.find(item => item.id === id);\n if (conversation) {\n conversation.unread = 0;\n }\n this.loadActiveMessages({ allowReadReceipt: true, userAction: true });\n },\n sendText(text) {\n const conversation = this.activeConversation;\n if (!conversation || !text.trim()) {\n return;\n }\n let value = text.trim();\n if (this.quotedMessage) {\n this.quotedMessage = null;\n }\n const message = {\n id: randomId(),\n conversationId: conversation.id,\n from: 'me',\n direction: 'out',\n type: 'text',\n text: value,\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now(),\n displayTimestamp: Date.now()\n };\n this.appendVisibleMessage(conversation.id, message);\n this.appendMessage(conversation.id, message);\n imClient.sendTextMessage(conversation, value, message);\n conversation.subtitle = value;\n conversation.updatedAt = Date.now();\n writeLocalConversations(this.conversations);\n this.scheduleActiveMessagesSync({}, 700);\n },\n sendAttachment({ type, file, text = '' }) {\n const conversation = this.activeConversation;\n if (!conversation || !file || !['image', 'file'].includes(type)) {\n return;\n }\n let value = text.trim();\n if (this.quotedMessage) {\n this.quotedMessage = null;\n }\n const now = Date.now();\n const message = {\n id: randomId(),\n conversationId: conversation.id,\n from: 'me',\n senderRole: conversation.role || conversation.raw?.role || '',\n direction: 'out',\n type,\n text: value,\n attachment: {\n type,\n name: file.name || (type === 'image' ? '图片' : '文件'),\n mime: file.type || '',\n size: file.size || 0,\n url: type === 'image' ? URL.createObjectURL(file) : ''\n },\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: now,\n displayTimestamp: now\n };\n this.appendVisibleMessage(conversation.id, message);\n this.appendMessage(conversation.id, message);\n imClient.sendAttachmentMessage(conversation, { type, file, text: value }, message);\n conversation.subtitle = messagePreviewText(message);\n conversation.updatedAt = now;\n writeLocalConversations(this.conversations);\n this.scheduleActiveMessagesSync({}, 700);\n },\n async sendTextToConversation(conversation, text) {\n if (!conversation || !text.trim()) {\n return null;\n }\n const value = text.trim();\n const message = {\n id: randomId(),\n conversationId: conversation.id,\n from: 'me',\n direction: 'out',\n type: 'text',\n text: value,\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now(),\n displayTimestamp: Date.now()\n };\n this.appendMessage(conversation.id, message);\n const sentMessage = await imClient.sendTextMessage(conversation, value, message);\n this.replaceMessage(conversation.id, sentMessage);\n return sentMessage;\n },\n upsertConversation(conversation) {\n conversation = sanitizeConversation(conversation);\n const index = this.conversations.findIndex(item => item.id === conversation.id);\n if (index >= 0) {\n this.conversations.splice(index, 1, {\n ...this.conversations[index],\n ...conversation\n });\n } else {\n this.conversations.unshift(conversation);\n }\n this.usingDemoData = false;\n writeLocalConversations(this.conversations);\n },\n removeConversation(conversationId) {\n this.conversations = this.conversations.filter(conversation => conversation.id !== conversationId);\n const {\n [conversationId]: removedMessages,\n ...messagesByConversation\n } = this.messagesByConversation;\n const {\n [conversationId]: removedVisibleMessages,\n ...visibleMessagesByConversation\n } = this.visibleMessagesByConversation;\n const {\n [conversationId]: removedOptimisticMessages,\n ...optimisticMessagesByConversation\n } = this.optimisticMessagesByConversation;\n void removedMessages;\n void removedVisibleMessages;\n void removedOptimisticMessages;\n this.messagesByConversation = messagesByConversation;\n this.visibleMessagesByConversation = visibleMessagesByConversation;\n this.optimisticMessagesByConversation = optimisticMessagesByConversation;\n if (this.activeId === conversationId) {\n this.activeId = this.conversations[0]?.id || '';\n }\n writeLocalConversations(this.conversations);\n if (this.activeId) {\n this.loadActiveMessages();\n }\n },\n applyRemoteConversations(remoteConversations) {\n const remote = Array.isArray(remoteConversations) ? remoteConversations : [];\n if (!remote.length && this.conversations.length) {\n return;\n }\n\n const merged = new Map();\n this.conversations.forEach(conversation => {\n merged.set(conversation.id, conversation);\n });\n remote.forEach(conversation => {\n const unread = conversation.id === this.activeId && canMarkReadNow() ? 0 : Number(conversation.unread || 0);\n merged.set(conversation.id, {\n ...(merged.get(conversation.id) || {}),\n ...sanitizeConversation(conversation),\n unread\n });\n });\n\n this.conversations = Array.from(merged.values())\n .map(sanitizeConversation)\n .sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0))\n .slice(0, 100);\n\n if (!this.conversations.length) {\n this.activeId = '';\n this.messagesByConversation = {};\n this.visibleMessagesByConversation = {};\n this.optimisticMessagesByConversation = {};\n writeLocalConversations(this.conversations);\n return;\n }\n\n if (!this.conversations.find(item => item.id === this.activeId)) {\n this.activeId = this.conversations[0].id;\n }\n writeLocalConversations(this.conversations);\n this.loadActiveMessages();\n },\n appendMessage(conversationId, message) {\n message = normalizeMessageForDisplay(message);\n if (!this.messagesByConversation[conversationId]) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: []\n };\n }\n if (message.direction === 'out' && (message.status === 'sending' || message.status === 'sent')) {\n this.keepOptimisticMessage(conversationId, message);\n }\n if (!hasExactMessage(this.messagesByConversation[conversationId], message)) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: [...this.messagesByConversation[conversationId], message]\n };\n }\n this.updateConversationFromMessage(conversationId, message);\n this.syncVisibleMessages(conversationId);\n writeLocalConversations(this.conversations);\n },\n removeMessages(conversationId, messages) {\n const ids = new Set(messages.flatMap(message => [message.id, message.messageUid].filter(Boolean).map(String)));\n const filterMessages = list => (list || []).filter(message => {\n return ![message.id, message.messageUid].filter(Boolean).some(id => ids.has(String(id)));\n });\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: filterMessages(this.messagesByConversation[conversationId])\n };\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: filterMessages(this.visibleMessagesByConversation[conversationId])\n };\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: filterMessages(this.optimisticMessagesByConversation[conversationId])\n };\n this.selectedMessageIds = this.selectedMessageIds.filter(id => !ids.has(String(id)));\n },\n replaceLocalMessage(conversationId, targetMessage, nextMessage) {\n const keys = new Set([targetMessage.id, targetMessage.messageUid].filter(Boolean).map(String));\n const replaceInList = list => (list || []).map(message => {\n const matched = [message.id, message.messageUid].filter(Boolean).some(id => keys.has(String(id)));\n return matched ? { ...message, ...nextMessage } : message;\n });\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: replaceInList(this.messagesByConversation[conversationId])\n };\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: replaceInList(this.visibleMessagesByConversation[conversationId])\n };\n },\n updateConversationFromMessage(conversationId, message) {\n const conversation = this.conversations.find(item => item.id === conversationId);\n if (!conversation) {\n return;\n }\n\n conversation.subtitle = messagePreviewText(message) || cleanPlaceholderText(conversation.subtitle, conversation);\n conversation.updatedAt = messageActivityTimestamp(message) || Date.now();\n if (message.direction === 'in') {\n conversation.unread = conversationId === this.activeId ? 0 : Number(conversation.unread || 0) + 1;\n }\n this.conversations = [...this.conversations]\n .sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0));\n },\n appendVisibleMessage(conversationId, message) {\n message = normalizeMessageForDisplay(message);\n const messages = this.visibleMessagesByConversation[conversationId] || [];\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: [...messages.filter(item => item.id !== message.id), message]\n .sort((a, b) => Number(a.displayTimestamp || a.timestamp || 0) - Number(b.displayTimestamp || b.timestamp || 0))\n };\n },\n replaceMessage(conversationId, message) {\n message = normalizeMessageForDisplay(message);\n if (!this.messagesByConversation[conversationId]) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: []\n };\n }\n if (message.direction === 'out' && (message.status === 'sending' || message.status === 'sent' || message.status === 'failed')) {\n this.keepOptimisticMessage(conversationId, message);\n }\n const index = this.messagesByConversation[conversationId].findIndex(item => item.id === message.id);\n if (index >= 0) {\n const messages = [...this.messagesByConversation[conversationId]];\n messages.splice(index, 1, message);\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: messages\n };\n } else {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: [...this.messagesByConversation[conversationId], message]\n };\n }\n this.syncVisibleMessages(conversationId);\n },\n syncVisibleMessages(conversationId) {\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: mergeVisibleMessages(\n this.optimisticMessagesByConversation[conversationId] || [],\n this.messagesByConversation[conversationId] || []\n )\n };\n },\n keepOptimisticMessage(conversationId, message) {\n if (!this.optimisticMessagesByConversation[conversationId]) {\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: []\n };\n }\n const messages = this.optimisticMessagesByConversation[conversationId];\n const index = messages.findIndex(item => item.id === message.id);\n let nextMessages;\n if (index >= 0) {\n nextMessages = [...messages];\n nextMessages.splice(index, 1, message);\n } else {\n nextMessages = [...messages, message];\n }\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: nextMessages\n };\n },\n pruneOptimisticMessages(conversationId, syncedMessages) {\n const messages = this.optimisticMessagesByConversation[conversationId] || [];\n if (!messages.length) {\n return;\n }\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: messages.filter(message => {\n const remoteMatched = syncedMessages.some(syncedMessage => {\n return syncedMessage.id !== message.id && isSameMessage(syncedMessage, message);\n });\n if (remoteMatched && message.status !== 'failed') {\n return false;\n }\n return Date.now() - Number(message.displayTimestamp || message.timestamp || 0) < 30000 || message.status === 'failed';\n })\n };\n },\n loadActiveMessages(options = {}) {\n const syncOptions = typeof options === 'boolean'\n ? { allowReadReceipt: options }\n : options;\n const conversation = this.activeConversation;\n if (!conversation) {\n return;\n }\n this.loading = true;\n const messages = imClient.getMessages(conversation, 30);\n this.pruneOptimisticMessages(conversation.id, messages);\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversation.id]: mergeVisibleMessages(this.messagesByConversation[conversation.id] || [], messages)\n };\n this.syncVisibleMessages(conversation.id);\n this.loading = false;\n this.syncActiveMessages(syncOptions);\n },\n async syncActiveMessages(options = {}) {\n const conversation = this.activeConversation;\n if (!conversation) {\n return;\n }\n if (options.skipWhenHidden !== false && !isPageVisible()) {\n return;\n }\n const wantsReadReceipt = Boolean(options.allowReadReceipt);\n const explicitReadReceipt = wantsReadReceipt && canMarkReadNow({ userAction: Boolean(options.userAction) });\n const now = Date.now();\n const previousReadSyncAt = Number(this.lastReadSyncByConversation[conversation.id] || 0);\n const pollingReadReceipt = canMarkReadNow() && now - previousReadSyncAt >= 10000;\n const markRead = explicitReadReceipt || pollingReadReceipt;\n\n if (this.syncInFlight) {\n if (wantsReadReceipt) {\n this.pendingReadReceiptConversationId = conversation.id;\n }\n return;\n }\n this.syncInFlight = true;\n const syncedConversationId = conversation.id;\n const previousMessages = this.messagesByConversation[syncedConversationId] || [];\n try {\n const messages = await imClient.fetchRemoteMessages(conversation, 50, {\n markRead\n });\n if (markRead) {\n this.lastReadSyncByConversation = {\n ...this.lastReadSyncByConversation,\n [syncedConversationId]: Date.now()\n };\n }\n const editedIncomingMessages = incomingEditedMessages(previousMessages, messages);\n this.pruneOptimisticMessages(syncedConversationId, messages);\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [syncedConversationId]: mergeVisibleMessages(this.messagesByConversation[syncedConversationId] || [], messages)\n };\n this.syncVisibleMessages(syncedConversationId);\n if (editedIncomingMessages.length && syncedConversationId === this.activeId) {\n this.focusMessage(editedIncomingMessages.sort((a, b) => messageActivityTimestamp(b) - messageActivityTimestamp(a))[0]);\n playNotificationSound();\n }\n const latest = messages.reduce((latestMessage, message) => {\n if (!latestMessage || messageActivityTimestamp(message) > messageActivityTimestamp(latestMessage)) {\n return message;\n }\n return latestMessage;\n }, null);\n if (latest) {\n conversation.subtitle = messagePreviewText(latest);\n conversation.updatedAt = messageActivityTimestamp(latest);\n writeLocalConversations(this.conversations);\n }\n } catch (error) {\n // Keep the local view usable if a polling request misses.\n } finally {\n this.syncInFlight = false;\n if (this.pendingReadReceiptConversationId === this.activeId && canMarkReadNow()) {\n this.pendingReadReceiptConversationId = '';\n this.scheduleActiveMessagesSync({ allowReadReceipt: true }, 700);\n }\n }\n },\n scheduleActiveMessagesSync(options = {}, delay = 700) {\n if (!this.activeId || !isPageVisible()) {\n return;\n }\n const now = Date.now();\n if (!this.messageSyncQueuedAt) {\n this.messageSyncQueuedAt = now;\n }\n this.pendingMessageSyncOptions = {\n ...this.pendingMessageSyncOptions,\n allowReadReceipt: Boolean(\n this.pendingMessageSyncOptions.allowReadReceipt || options.allowReadReceipt\n ),\n userAction: Boolean(this.pendingMessageSyncOptions.userAction || options.userAction)\n };\n const maxWait = 1200;\n const runAt = Math.min(now + Math.max(0, Number(delay) || 0), this.messageSyncQueuedAt + maxWait);\n window.clearTimeout(this.messageSyncTimer);\n this.messageSyncTimer = window.setTimeout(() => {\n const pendingOptions = this.pendingMessageSyncOptions;\n this.messageSyncTimer = null;\n this.messageSyncQueuedAt = 0;\n this.pendingMessageSyncOptions = {};\n this.syncActiveMessages(pendingOptions);\n }, Math.max(0, runAt - now));\n },\n startMessageSync() {\n this.bindReadPresenceEvents();\n if (!this.syncTimer) {\n this.syncTimer = window.setInterval(() => {\n if (isPageVisible() && !realtimeNotifications.isConnected()) {\n this.syncActiveMessages();\n }\n }, activeMessageSyncIntervalMs());\n }\n if (!this.conversationSyncTimer) {\n this.conversationSyncTimer = window.setInterval(() => {\n if (isPageVisible() && !realtimeNotifications.isConnected()) {\n this.refreshRemoteConversations();\n }\n }, conversationListSyncIntervalMs());\n this.refreshRemoteConversations();\n }\n },\n handleRealtimeNotification() {\n window.clearTimeout(this.realtimeSyncTimer);\n this.realtimeSyncTimer = window.setTimeout(() => {\n this.refreshRemoteConversations();\n if (this.activeId) {\n this.scheduleActiveMessagesSync({ allowReadReceipt: canMarkReadNow() }, 700);\n }\n }, 500);\n },\n bindReadPresenceEvents() {\n if (this.readPresenceEventsBound || typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n this.readPresenceEventsBound = true;\n const syncWhenReadable = () => {\n if (canMarkReadNow()) {\n this.refreshRemoteConversations();\n this.scheduleActiveMessagesSync({ allowReadReceipt: true }, 300);\n }\n };\n window.addEventListener('focus', syncWhenReadable);\n document.addEventListener('visibilitychange', syncWhenReadable);\n },\n async refreshRemoteConversations() {\n this.bindImEvents();\n this.usingDemoData = false;\n if (this.conversationSyncInFlight) {\n return;\n }\n this.conversationSyncInFlight = true;\n try {\n const remoteConversations = await imClient.fetchRemoteConversations(50);\n this.applyRemoteConversations(remoteConversations);\n } catch (error) {\n imClient.refreshConversationList();\n } finally {\n this.conversationSyncInFlight = false;\n }\n },\n setActionNotice(message) {\n this.actionNotice = message;\n this.actionError = '';\n window.clearTimeout(this.actionNoticeTimer);\n this.actionNoticeTimer = window.setTimeout(() => {\n this.actionNotice = '';\n }, 1800);\n },\n setActionError(message) {\n this.actionError = message;\n this.actionNotice = '';\n window.clearTimeout(this.actionErrorTimer);\n this.actionErrorTimer = window.setTimeout(() => {\n this.actionError = '';\n }, 2400);\n },\n focusMessage(message) {\n const key = messageStableKey(message);\n if (!key) {\n return;\n }\n this.attentionMessageId = key;\n window.clearTimeout(this.attentionMessageTimer);\n this.attentionMessageTimer = window.setTimeout(() => {\n if (this.attentionMessageId === key) {\n this.attentionMessageId = '';\n }\n }, 2800);\n },\n async handleMessageAction({ action, message }) {\n if (!message) {\n return;\n }\n if (action === 'copy') {\n await this.copyMessages([message]);\n } else if (action === 'edit') {\n this.startEditMessage(message);\n } else if (action === 'delete') {\n this.deleteMessages([message]);\n } else if (action === 'forward') {\n this.startForward([message]);\n } else if (action === 'favorite') {\n this.toggleFavorite(message);\n } else if (action === 'detail') {\n await this.openMessageDetail(message);\n } else if (action === 'quote') {\n this.quoteMessage(message);\n } else if (action === 'select') {\n this.enterSelectionMode(message);\n } else if (action === 'recall') {\n await this.recallMessage(message);\n }\n },\n async openMessageDetail(message) {\n const conversation = this.activeConversation;\n if (!conversation || !message) {\n return;\n }\n const key = messageStableKey(message);\n this.messageDetailOpen = true;\n this.messageDetailLoading = true;\n this.messageDetailError = '';\n this.messageDetail = {\n messageUid: key,\n conversationType: conversation.type || conversation.raw?.type || 'single',\n sentAt: Number(message.displayTimestamp || message.timestamp || 0),\n editedAt: Number(message.editedAt || 0),\n recalled: isRecalledMessage(message),\n localOnly: true,\n sender: {\n uid: message.from || '',\n name: message.senderName || message.from || ''\n }\n };\n try {\n if (!/^\\d+$/.test(key)) {\n this.messageDetailError = '本地临时消息暂无送达/已读详情';\n return;\n }\n const detail = await imClient.getMessageDetail(conversation, message);\n this.messageDetail = detail || this.messageDetail;\n } catch (error) {\n this.messageDetailError = error.message || '消息详情加载失败';\n } finally {\n this.messageDetailLoading = false;\n }\n },\n closeMessageDetail() {\n this.messageDetailOpen = false;\n this.messageDetailLoading = false;\n this.messageDetailError = '';\n this.messageDetail = null;\n },\n async copyMessages(messages) {\n const text = messages.map(message => message.text || '').join('\\n');\n if (!text.trim()) {\n return;\n }\n try {\n await writeClipboard(text);\n this.setActionNotice(messages.length > 1 ? '已复制所选消息' : '已复制');\n } catch (error) {\n this.setActionError('复制失败');\n }\n },\n deleteMessages(messages) {\n const conversation = this.activeConversation;\n if (!conversation || !messages.length) {\n return;\n }\n imClient.hideMessages(conversation, messages);\n this.removeMessages(conversation.id, messages);\n if (!this.selectedMessageIds.length) {\n this.selectionMode = false;\n }\n this.setActionNotice(messages.length > 1 ? '已删除所选消息' : '已删除');\n },\n toggleFavorite(message) {\n const key = messageStableKey(message);\n if (!key) {\n return;\n }\n const index = this.favoriteMessages.findIndex(item => item.key === key);\n if (index >= 0) {\n this.favoriteMessages.splice(index, 1);\n if (this.activeFavoriteKey === key) {\n this.activeFavoriteKey = this.favoriteMessages[0]?.key || '';\n }\n this.setActionNotice('已取消收藏');\n } else {\n const conversation = this.conversations.find(item => item.id === message.conversationId) || {};\n this.favoriteMessages.unshift({\n key,\n id: message.id,\n messageUid: message.messageUid,\n conversationId: message.conversationId,\n conversationTitle: conversation.title || message.conversationTitle || '',\n type: message.type || 'text',\n text: message.text || '',\n preview: messagePreviewText(message),\n senderName: message.senderName || message.from || '',\n timestamp: Number(message.displayTimestamp || message.timestamp || Date.now()),\n editedAt: Number(message.editedAt || 0),\n recalled: isRecalledMessage(message),\n recallStatus: message.recallStatus || (isRecalledMessage(message) ? '已撤回' : ''),\n attachment: message.attachment ? { ...message.attachment } : null\n });\n this.activeFavoriteKey = key;\n this.setActionNotice('已收藏');\n }\n this.favoriteMessages = this.favoriteMessages.slice(0, 200);\n writeFavoriteMessages(this.favoriteMessages);\n },\n setActiveFavorite(key) {\n this.activeFavoriteKey = String(key || '');\n },\n removeFavorite(key) {\n const value = String(key || '');\n if (!value) {\n return;\n }\n this.favoriteMessages = this.favoriteMessages.filter(message => message.key !== value);\n if (this.activeFavoriteKey === value) {\n this.activeFavoriteKey = this.favoriteMessages[0]?.key || '';\n }\n writeFavoriteMessages(this.favoriteMessages);\n },\n quoteMessage(message) {\n this.quotedMessage = {\n ...message,\n quoteText: quotePrefix(message)\n };\n this.setActionNotice('已引用,输入后发送');\n },\n cancelQuote() {\n this.quotedMessage = null;\n },\n enterSelectionMode(message = null) {\n this.selectionMode = true;\n if (message) {\n const key = messageStableKey(message);\n this.selectedMessageIds = key ? [key] : [];\n }\n },\n toggleSelectedMessage(message) {\n const key = messageStableKey(message);\n if (!key) {\n return;\n }\n const selected = new Set(this.selectedMessageIds);\n if (selected.has(key)) {\n selected.delete(key);\n } else {\n selected.add(key);\n }\n this.selectedMessageIds = Array.from(selected);\n this.selectionMode = this.selectedMessageIds.length > 0;\n },\n clearSelection() {\n this.selectionMode = false;\n this.selectedMessageIds = [];\n },\n copySelectedMessages() {\n return this.copyMessages(this.selectedMessages);\n },\n deleteSelectedMessages() {\n this.deleteMessages(this.selectedMessages);\n },\n startForward(messages) {\n this.forwardingMessages = messages.filter(message => message?.text);\n if (!this.forwardingMessages.length) {\n this.setActionError('没有可转发的消息');\n }\n },\n startForwardSelectedMessages() {\n this.startForward(this.selectedMessages);\n },\n cancelForward() {\n this.forwardingMessages = [];\n },\n startEditMessage(message) {\n const isResend = isRecalledMessage(message);\n if (!isResend && !message?.text) {\n this.setActionError('没有可编辑的文字内容');\n return;\n }\n this.editingMessage = message;\n this.editingText = message.text || '';\n this.editingMode = isResend ? 'resend' : 'edit';\n },\n cancelEditMessage() {\n this.editingMessage = null;\n this.editingText = '';\n this.editingMode = '';\n },\n async completeEditMessage() {\n const conversation = this.activeConversation;\n const message = this.editingMessage;\n const text = this.editingText.trim();\n const isResend = this.editingMode === 'resend' || isRecalledMessage(message);\n if (!conversation || !message) {\n this.cancelEditMessage();\n return;\n }\n if (!text) {\n this.setActionError('编辑内容不能为空');\n return;\n }\n if (!isResend && text === String(message.text || '').trim()) {\n this.cancelEditMessage();\n return;\n }\n try {\n if (isResend) {\n await this.sendTextToConversation(conversation, text);\n this.cancelEditMessage();\n this.setActionNotice('已重新发送');\n return;\n }\n const editedMessage = await imClient.editMessage(conversation, message, text);\n this.replaceLocalMessage(conversation.id, message, editedMessage);\n if (messageActivityTimestamp(editedMessage) >= Number(conversation.updatedAt || 0)) {\n conversation.subtitle = messagePreviewText(editedMessage);\n conversation.updatedAt = messageActivityTimestamp(editedMessage);\n writeLocalConversations(this.conversations);\n }\n this.cancelEditMessage();\n this.setActionNotice('已编辑');\n } catch (error) {\n this.setActionError(error.message || '编辑失败');\n }\n },\n async completeForward(targetConversationId) {\n const target = this.conversations.find(conversation => conversation.id === targetConversationId);\n if (!target || !this.forwardingMessages.length) {\n return;\n }\n const text = this.forwardingMessages\n .map(message => `转发:${message.text || ''}`)\n .join('\\n\\n');\n try {\n await this.sendTextToConversation(target, text);\n this.forwardingMessages = [];\n this.clearSelection();\n this.setActionNotice('已转发');\n } catch (error) {\n this.setActionError(error.message || '转发失败');\n }\n },\n async recallMessage(message) {\n const conversation = this.activeConversation;\n if (!conversation) {\n return;\n }\n try {\n await imClient.recallMessage(conversation, message);\n if (message.direction !== 'out') {\n this.removeMessages(conversation.id, [message]);\n this.setActionNotice('已撤回');\n this.syncActiveMessages();\n return;\n }\n this.replaceLocalMessage(conversation.id, message, {\n status: 'recalled',\n deliveryStatus: '',\n recalled: true,\n recallStatus: '已撤回'\n });\n this.setActionNotice('已撤回');\n } catch (error) {\n this.setActionError(error.message || '撤回失败');\n }\n },\n async createGroup(options = {}) {\n const session = useSessionStore();\n if (!session.userId) {\n this.setActionError('请先登录');\n return false;\n }\n try {\n const conversation = await imClient.createGroup(session.userId, options);\n this.upsertConversation(conversation);\n this.setActiveConversation(conversation.id);\n const nativeStatus = conversation.nativeStatus || conversation.raw?.nativeStatus || '';\n if (nativeStatus && nativeStatus !== 'ok') {\n this.setActionNotice(options.channel ? '公告群已创建,仅网页可见' : '群组已创建,仅网页可见');\n } else {\n this.setActionNotice(options.channel ? '公告群已创建' : '群组已创建');\n }\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || (options.channel ? '创建公告群失败' : '创建群组失败'));\n return false;\n }\n },\n async joinGroup(groupKey) {\n const session = useSessionStore();\n if (!session.userId) {\n this.setActionError('请先登录');\n return false;\n }\n try {\n const conversation = await imClient.joinGroup(session.userId, groupKey);\n this.upsertConversation(conversation);\n this.setActiveConversation(conversation.id);\n const nativeStatus = conversation.nativeStatus || conversation.raw?.nativeStatus || '';\n this.setActionNotice(nativeStatus && nativeStatus !== 'ok' ? '已加入群组,仅网页可见' : '已加入群组');\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '加入群组失败');\n return false;\n }\n },\n async broadcastMessage(targetIds, text) {\n const session = useSessionStore();\n if (!session.userId) {\n this.setActionError('请先登录');\n return false;\n }\n try {\n const result = await imClient.broadcastMessage(session.userId, targetIds, text);\n const successCount = Number(result.successCount || 0);\n const failedCount = Number(result.failedCount || 0);\n this.setActionNotice(failedCount > 0 ? `已群发 ${successCount} 条,失败 ${failedCount} 条` : `已群发 ${successCount} 条`);\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '群发失败');\n return false;\n }\n },\n async leaveGroup(conversation) {\n const session = useSessionStore();\n if (!session.userId || !conversation?.target) {\n this.setActionError('缺少群组信息');\n return false;\n }\n try {\n await imClient.leaveGroup(session.userId, conversation.target);\n this.removeConversation(conversation.id);\n this.setActionNotice('已退出群组');\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '退出群组失败');\n return false;\n }\n },\n async dismissGroup(conversation) {\n const session = useSessionStore();\n if (!session.userId || !conversation?.target) {\n this.setActionError('缺少群组信息');\n return false;\n }\n try {\n await imClient.dismissGroup(session.userId, conversation.target);\n this.removeConversation(conversation.id);\n this.setActionNotice('群组已解散');\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '解散群组失败');\n return false;\n }\n }\n }\n});\n","import { defineStore } from 'pinia';\n\nexport const useNavigationStore = defineStore('navigation', {\n state: () => ({\n section: 'messages'\n }),\n actions: {\n showMessages() {\n this.section = 'messages';\n },\n showContacts() {\n this.section = 'contacts';\n },\n showFavorites() {\n this.section = 'favorites';\n }\n }\n});\n","import { defineStore } from 'pinia';\nimport { imClient } from '@/services/imClient';\nimport { appConfig } from '@/config';\n\nconst STORAGE_KEY = 'qmt-web-im-session';\n\nfunction normalizeStoredPortrait(portrait) {\n return portrait || '';\n}\n\nfunction nextProfilePortrait(profilePortrait, currentPortrait) {\n return normalizeStoredPortrait(profilePortrait) || normalizeStoredPortrait(currentPortrait);\n}\n\nexport const useSessionStore = defineStore('session', {\n state: () => ({\n isAuthenticated: false,\n connecting: false,\n connected: false,\n connectionStatusText: '未连接',\n userId: '',\n token: '',\n displayName: '',\n portrait: '',\n error: '',\n sdkVersion: '',\n eventsBound: false\n }),\n actions: {\n restore() {\n const raw = localStorage.getItem(STORAGE_KEY);\n if (!raw) {\n return;\n }\n try {\n const session = JSON.parse(raw);\n if (session.appServer !== appConfig.appServer) {\n localStorage.removeItem(STORAGE_KEY);\n return;\n }\n if (session.userId && session.token) {\n if (!session.clientId) {\n localStorage.removeItem(STORAGE_KEY);\n return;\n }\n this.userId = session.userId;\n this.token = session.token;\n this.displayName = session.displayName || session.userId;\n this.portrait = normalizeStoredPortrait(session.portrait);\n this.isAuthenticated = true;\n imClient.restoreClientId(session.clientId);\n if (session.localOnly) {\n this.connectionStatusText = '本地调试登录';\n }\n this.connect();\n this.refreshProfile();\n }\n } catch (error) {\n localStorage.removeItem(STORAGE_KEY);\n }\n },\n async loginWithPassword(mobile, password) {\n this.error = '';\n this.connecting = true;\n try {\n const result = await imClient.loginWithPassword(mobile, password);\n this.applyLoginResult(result);\n await this.connect();\n } catch (error) {\n this.error = error.message || '登录失败';\n } finally {\n this.connecting = false;\n }\n },\n async loginWithCode(mobile, code) {\n this.error = '';\n this.connecting = true;\n try {\n const result = await imClient.loginWithCode(mobile, code);\n this.applyLoginResult(result);\n await this.connect();\n } catch (error) {\n this.error = error.message || '登录失败';\n } finally {\n this.connecting = false;\n }\n },\n async completePcSessionLogin(result) {\n this.error = '';\n this.connecting = true;\n try {\n this.applyLoginResult(result);\n await this.connect();\n } catch (error) {\n this.error = error.message || '扫码登录失败';\n } finally {\n this.connecting = false;\n }\n },\n async registerWithPhone(mobile, code) {\n this.error = '';\n this.connecting = true;\n try {\n return await imClient.registerWithPhone(mobile, code);\n } catch (error) {\n this.error = error.message || '注册失败';\n return null;\n } finally {\n this.connecting = false;\n }\n },\n applyLoginResult(result) {\n this.userId = result.userId || result.uid || result.id || '';\n this.token = result.token || result.imToken || '';\n this.displayName = result.displayName || result.userName || result.name || this.userId;\n this.portrait = normalizeStoredPortrait(result.portrait);\n this.isAuthenticated = Boolean(this.userId && this.token);\n if (result.localOnly) {\n this.connectionStatusText = '本地调试登录';\n }\n this.persistSession(Boolean(result.localOnly));\n },\n persistSession(localOnly = false) {\n localStorage.setItem(STORAGE_KEY, JSON.stringify({\n userId: this.userId,\n token: this.token,\n displayName: this.displayName,\n portrait: this.portrait,\n clientId: imClient.getClientId(),\n localOnly,\n appServer: appConfig.appServer\n }));\n },\n applyProfile(profile) {\n if (!profile) {\n return;\n }\n this.userId = profile.userId || profile.uid || this.userId;\n this.displayName = profile.displayName || profile.name || this.displayName || this.userId;\n this.portrait = nextProfilePortrait(profile.portrait, this.portrait);\n this.persistSession();\n },\n async refreshProfile() {\n if (!this.userId) {\n return null;\n }\n try {\n const profile = await imClient.getProfile(this.userId);\n this.applyProfile(profile);\n return profile;\n } catch (error) {\n return null;\n }\n },\n async saveProfile({ displayName, portraitFile }) {\n if (!this.userId) {\n throw new Error('请先登录');\n }\n const profile = await imClient.updateProfile(this.userId, {\n displayName,\n portraitFile\n });\n this.applyProfile(profile);\n return profile;\n },\n async changePassword({ oldPassword, newPassword }) {\n if (!this.userId) {\n throw new Error('请先登录');\n }\n await imClient.changePassword({ oldPassword, newPassword });\n return true;\n },\n async resetPasswordWithCode({ mobile, resetCode, newPassword }) {\n await imClient.resetPasswordWithCode({ mobile, resetCode, newPassword });\n return true;\n },\n async connect() {\n if (!this.userId || !this.token) {\n return;\n }\n await imClient.ensureSdk();\n this.sdkVersion = imClient.getSdkVersion();\n this.bindImEvents();\n await imClient.connect(this.userId, this.token);\n },\n bindImEvents() {\n if (this.eventsBound) {\n return;\n }\n this.eventsBound = true;\n imClient.on('connectionStatusChanged', status => {\n this.connected = status.connected;\n this.connectionStatusText = status.statusText || (status.connected ? '已连接' : '未连接');\n });\n },\n logout() {\n imClient.disconnect();\n localStorage.removeItem(STORAGE_KEY);\n this.$reset();\n }\n }\n});\n","import script from \"./App.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ChatShell.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ChatShell.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./LoginView.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./LoginView.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ChatPanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ChatPanel.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./MessageComposer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MessageComposer.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./MessageList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MessageList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ContactPanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ContactPanel.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./FavoriteList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FavoriteList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ContactList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ContactList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ConversationList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ConversationList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./NavigationRail.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./NavigationRail.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","export { default } from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./App.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./App.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatShell.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatShell.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./LoginView.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./LoginView.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatPanel.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatPanel.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageComposer.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageComposer.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactPanel.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactPanel.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoriteList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoriteList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ConversationList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ConversationList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./NavigationRail.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./NavigationRail.vue?vue&type=script&setup=true&lang=js\"","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tif(!__webpack_require__.o(exports, key)) {\n\t\t\t\tif(binding === 0) {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, value: definition[i++] });\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: binding });\n\t\t\t\t}\n\t\t\t} else if(binding === 0) { i++; }\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = function(x) {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkjc_web_im\"] = self[\"webpackChunkjc_web_im\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(1406); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["onMounted","watch","LoginView","ChatShell","useSessionStore","useConversationStore","session","conversations","restore","userId","isAuthenticated","bootstrapDemoData","clearUserState","NavigationRail","ConversationList","ContactList","ChatPanel","ContactPanel","FavoriteList","FavoritePanel","useNavigationStore","useContactStore","navigation","contacts","refreshRemoteConversations","refreshContacts","axios","jrQRCode","computed","onBeforeUnmount","reactive","ref","appConfig","imClient","QR_CODE_PREFIX_PC_SESSION","pendingRegistrationStorageKey","defaultPlatformLogo","emailRegisterEnabled","view","mode","mobile","password","code","sendingCode","info","qrStatus","qrCodeImage","qrSessionToken","qrUserName","qrUserPortrait","qrPolling","qrGeneration","qrExpireTimer","defaultPlatformName","appName","platformName","platformLogo","registerType","registerMethods","phone","email","username","mobileRealVerify","registerPhoneError","phoneCaptcha","phoneCaptchaImage","usernameCaptcha","usernameCaptchaImage","settingRegisterPassword","pendingRegistration","result","resetCode","registerForm","phoneCountryCode","emailCode","usernamePhoneCountryCode","usernamePhone","usernameCode","confirmPassword","registerPasswordForm","countryCodeOptions","value","label","registerMethodOptions","key","canSubmit","length","visibleRegisterMethods","enabled","filter","item","canRegisterSubmit","phoneCaptchaMatched","usernameCaptchaMatched","canSetRegisterPassword","phoneCaptchaStatus","getCaptchaStatus","phoneCaptchaClass","getCaptchaClass","usernameCaptchaStatus","usernameCaptchaClass","qrUserInitial","String","slice","toUpperCase","qrStatusTitle","connecting","qrStatusText","qrRefreshText","methods","some","loadPlatformConfig","loadRegisterConfig","restorePendingRegistration","startQrLogin","stopQrLogin","requestCode","requestAuthCode","error","message","requestRegisterCode","formatPhoneForApi","submit","loginWithPassword","loginWithCode","setLoginMode","nextMode","resetQrState","clearQrExpireTimer","window","clearTimeout","refreshQrLogin","force","generation","pcSession","createPcSession","token","Error","getQrBase64","expireMs","Math","max","min","Number","expired","setTimeout","pollQrLogin","data","loginWithPcSession","codeValue","completePcSessionLogin","userName","displayName","portrait","delay","ms","Promise","resolve","normalizeUsernameCaptchaInput","replace","normalizePhoneCaptchaInput","normalizeRegisterCountryCode","showPhoneCaptcha","randomDigits","renderCaptchaImage","showUsernameCaptcha","inputValue","captchaValue","status","index","floor","random","text","width","height","canvas","document","createElement","context","getContext","fillStyle","fillRect","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","font","textBaseline","textAlign","fillText","toDataURL","submitRegister","clearRegisterPhoneError","formattedPhone","phoneExists","isRegisterPhoneExists","loginCode","registerWithPhone","setPendingRegistration","submitRegisterPassword","resetPasswordWithCode","newPassword","clearPendingRegistration","countryCode","digits","normalizedCode","normalizedPhone","response","get","registerConfigApi","withCredentials","Boolean","mobile_real_verify","platformConfigApi","config","name","trim","logo","logoUrl","version","resolveBrandLogo","applyDocumentBrand","test","appendBrandVersion","startsWith","location","protocol","base","adminServer","URL","toString","url","parsed","href","searchParams","set","title","iconUrl","setDocumentIcon","rel","icon","querySelector","setAttribute","head","appendChild","handleBrandLogoError","post","registerPhoneExistsApi","exists","msg","sessionStorage","removeItem","setItem","JSON","stringify","appServer","pending","parse","getItem","openRegister","backToLogin","MessageList","MessageComposer","activeConversation","groupMenuOpen","singleProfileOpen","singleAliasDraft","singleProfileSaving","singleProfileNotice","singleProfileError","groupPanel","groupBusy","groupDetail","groupMembers","groupAliasDraft","manageSection","selectedAdminIds","selectedKickIds","transferTargetId","profileDraft","announcement","welcomeText","muteDraft","scheduleType","startsAtLocal","endsAtLocal","dailyStart","dailyEnd","muteSaveNotice","muteSaveError","singlePeerId","isGroupConversation","target","raw","id","singleContact","peerId","find","contact","uid","singleProfile","conversation","rawUser","alias","rawName","address","avatarText","includes","type","currentGroupRole","myRole","role","isGroupOwner","canManageGroup","sortedGroupMembers","roleOrder","owner","admin","member","map","sort","left","right","leftOrder","rightOrder","adminCandidateMembers","transferableMembers","messageDetail","messageDetailGroup","group","isMessageDetailGroup","conversationType","messageDetailCounts","counts","read","unread","undelivered","total","kickCandidateMembers","statusText","canSendActiveConversation","connectionStatusText","connected","formatDetailTime","timestamp","Intl","DateTimeFormat","year","month","day","hour","minute","second","hour12","timeZone","resolvedOptions","format","detailMemberName","detailMemberAvatar","detailRoleLabel","closeGroupMenu","toggleGroupMenu","openSingleProfile","then","catch","closeSingleProfile","saveSingleAlias","ok","updateContactAlias","actionError","refreshedContact","nextTitle","upsertConversation","handleSenderProfileUpdated","syncActiveMessages","allowReadReceipt","loadGroupMembers","closeGroupPanel","clearMuteSaveFeedback","loadGroupDetail","getGroupDetail","setActionError","openGroupOverview","openGroupMembers","getGroupMembers","openGroupAlias","detail","myAlias","msToLocalInput","date","Date","local","getTime","getTimezoneOffset","toISOString","localInputToMs","prepareManagementDrafts","setting","muteSetting","startsAtMs","endsAtMs","openGroupManage","openTransferGroup","saveGroupAlias","updateGroupAlias","setActionNotice","toggleAdmin","selected","Set","has","delete","add","Array","from","toggleKick","saveGroupAdmins","setGroupAdmins","saveGroupProfile","updateGroupProfile","updatedAt","now","kickSelectedMembers","confirm","kickGroupMembers","removed","removedIds","saveMuteSetting","updateGroupMuteSetting","leaveCurrentGroup","leaveGroup","dismissCurrentGroup","dismissGroup","transferCurrentGroup","transferGroup","memberAvatar","addEventListener","removeEventListener","props","__props","emit","__emit","emojiOpen","dropActive","textareaEl","imageInput","fileInput","pendingAttachments","dragDepth","emojiList","attachments","forEach","attachment","file","clearPendingAttachments","toggleEmojiPicker","insertEmoji","emoji","element","start","selectionStart","end","selectionEnd","requestAnimationFrame","focus","cursor","setSelectionRange","chooseImage","click","chooseFile","attachmentTypeForFile","fallbackType","emitFiles","files","disabled","validFiles","File","size","push","previewUrl","createObjectURL","releasePendingAttachment","revokeObjectURL","removePendingAttachment","splice","selectAttachment","event","input","hasDraggedFiles","types","dataTransfer","handleDragEnter","dropEffect","handleDragOver","handleDragLeave","filesFromDataTransfer","items","kind","webkitGetAsEntry","isDirectory","getAsFile","handleDrop","imageFilesFromClipboard","clipboardData","handlePaste","imageFiles","preventDefault","nextTick","IMAGE_MIN_SCALE","IMAGE_MAX_SCALE","listEl","viewerStage","contextMenu","visible","x","y","imageViewer","scale","rotation","offsetX","offsetY","dragging","dragStartX","dragStartY","dragOffsetX","dragOffsetY","senderProfile","roleLabel","contactAlias","groupAlias","isContact","aliasDraft","saving","adding","notice","imageViewerStyle","transform","menuItems","isOwnMessage","direction","isRecalledMessage","action","favoriteLabel","isFavorite","unshift","canRecallOthers","scrollToBottom","scroll","scrollTop","scrollHeight","scrollToMessage","messageId","row","querySelectorAll","dataset","messageKey","scrollIntoView","block","behavior","messages","deliveryStatus","messageUid","recalled","join","immediate","attentionMessageId","closeMenu","closeMenuOnEscape","moveImageDrag","stopImageDrag","messageIdentity","displayMessageText","contentType","canOpenMessageMenu","isSelected","selectedMessageIds","favoriteMessageIds","isAttention","isRecallNotice","isImageMessage","isFileMessage","isGroupMessage","showGroupSender","senderRoleLabel","senderRole","groupSenderName","senderName","groupSenderAvatarText","openSenderProfile","profile","cachedContact","cachedAlias","remarkAlias","senderPortrait","closeSenderProfile","addSenderAsContact","addContact","aliasSaved","saveSenderAlias","roleBubbleClass","formatFileSize","bytes","toFixed","retryImageLoad","image","currentTarget","HTMLImageElement","attempts","loadRetries","originalUrl","getAttribute","isConnected","separator","src","handleMessageClick","selectionMode","handleImageClick","openImageViewer","resetImageViewer","closeImageViewer","clampImageScale","setImageScale","originX","originY","previousScale","nextScale","rect","getBoundingClientRect","centerX","centerY","top","ratio","zoomImage","delta","rotateImage","handleImageWheel","factor","deltaY","clientX","clientY","startImageDrag","saveViewerImage","downloadUrl","origin","link","download","body","remove","openMenu","innerWidth","innerHeight","chooseMenuAction","formatTime","deliveryState","state","deliveryTitle","failureText","errorCode","activeContact","remarkName","editingAlias","aliasSaving","aliasError","openAliasEditor","closeAliasEditor","submitAlias","activeKey","activeFavorite","favoriteTitle","conversationTitle","entry","conversationId","favoritePreview","recallStatus","preview","formatFavoriteTime","favorite","clearFeedback","favoriteText","isImageFavorite","isFileFavorite","favoriteCopyText","copyFavorite","writeClipboard","copyError","navigator","clipboard","writeText","style","position","select","execCommand","removeChild","openConversation","showMessages","setActiveConversation","focusMessage","removeFavorite","keyword","addingContact","addKeyword","filteredContacts","toLowerCase","subtitle","openAddContact","actionInfo","closeAddContact","submitAddContact","added","defineComponent","h","actionMenuOpen","activeAction","actionBusy","searchKeyword","groupName","groupAnnouncement","groupWelcomeText","joinGroupKey","broadcastText","channelName","channelAnnouncement","contactKeyword","selectedContactIds","actionTitles","createGroup","joinGroup","broadcast","createChannel","submitLabels","actionTitle","submitLabel","modalError","modalInfo","actionNotice","normalizedSearchKeyword","contactsByUid","Map","filteredConversationItems","conversationResult","conversationResults","matchesConversation","contactForConversation","conversationTargets","conversationTarget","contactResults","matchesContact","contactResult","submitDisabled","ContactPicker","default","selectedIds","emptyText","emits","setup","class","placeholder","onInput","onClick","alt","searchableValues","values","flatMap","isArray","Object","matchesKeyword","compactKeyword","groupId","group_id","owner_uid","friendAlias","rawFriend","resultKind","resultKey","isListItemActive","activeId","selectListItem","openChat","clearStoreMessages","resetActionFields","toggleActionMenu","closeActionMenu","openAction","closeActionModal","toggleContact","contactId","submitAction","memberIds","broadcastMessage","channel","formatUnread","count","CROP_OUTPUT_SIZE","settingsItems","initials","settingsOpen","settingsSection","passwordSaving","settingsNotice","settingsError","profileOpen","profileSaving","profileNotice","profileError","profileFile","profilePreview","portraitInput","cropperCanvas","cropperPreviewCanvas","passwordDraft","oldPassword","currentAvatarUrl","activeSettingsItem","avatarPreviewViewer","open","avatarCropper","loaded","busy","objectUrl","fileName","baseScale","avatarPreviewStyle","refreshProfile","drawAvatarCropper","revokeProfilePreview","closeAvatarCropper","showContacts","clearProfileFeedback","clearSettingsFeedback","resetPasswordDraft","openSettings","closeSettings","selectSettingsSection","section","revokeCropperObjectUrl","openProfileEditor","closeProfileEditor","closeAvatarPreview","selectPortrait","openAvatarCropper","choosePortraitFile","openAvatarPreview","resetAvatarPreview","zoomAvatarPreview","handleAvatarPreviewWheel","startAvatarPreviewDrag","setPointerCapture","pointerId","moveAvatarPreviewDrag","stopAvatarPreviewDrag","dropPortrait","cropperStageSize","round","cropperBoxSize","rotatedImageSize","quarterTurn","abs","naturalHeight","naturalWidth","clampCropperOffset","cropSize","rotated","scaledWidth","scaledHeight","maxX","maxY","updateCropperBaseScale","drawCanvasImage","outputScale","cropOnly","dpr","devicePixelRatio","setTransform","clearRect","save","translate","rotate","PI","drawImage","fill","previewCanvas","resetCropperTransform","Image","onload","onerror","zoomCropper","rotateCropper","degrees","handleCropperWheel","startCropperDrag","moveCropperDrag","stopCropperDrag","canvasToBlob","quality","reject","toBlob","blob","confirmAvatarCrop","outputCanvas","croppedFile","saveProfile","portraitFile","savePassword","changePassword","logout","clearContacts","currentHost","hostname","runtimeConfig","JC_WEB_IM_CONFIG","appServerOrigin","adminServerOrigin","process","env","VUE_APP_ADMIN_SERVER","VUE_APP_APP_SERVER","VUE_APP_PLATFORM_CONFIG_API","NODE_ENV","VUE_APP_REGISTER_CONFIG_API","VUE_APP_REGISTER_PHONE_EXISTS_API","contactsApi","VUE_APP_CONTACTS_API","updateAliasApi","VUE_APP_UPDATE_ALIAS_API","addContactApi","VUE_APP_ADD_CONTACT_API","conversationActionsApi","VUE_APP_CONVERSATION_ACTIONS_API","sendMessageApi","VUE_APP_SEND_MESSAGE_API","messageActionApi","VUE_APP_MESSAGE_ACTION_API","messageDetailApi","VUE_APP_MESSAGE_DETAIL_API","messagesApi","VUE_APP_MESSAGES_API","profileApi","VUE_APP_PROFILE_API","changePasswordApi","VUE_APP_CHANGE_PASSWORD_API","resetPasswordApi","VUE_APP_RESET_PASSWORD_API","imServerHost","VUE_APP_IM_SERVER_HOST","imRoutePort","VUE_APP_IM_ROUTE_PORT","useWss","VUE_APP_USE_WSS","wsPath","VUE_APP_WS_PATH","wsUrl","VUE_APP_WS_URL","sdkMode","VUE_APP_IM_MODE","syncIntervalMs","VUE_APP_SYNC_INTERVAL_MS","sseEnabled","VUE_APP_SSE_ENABLED","sseTicketApi","VUE_APP_SSE_TICKET_API","sseUrl","VUE_APP_SSE_URL","platform","clientIdStorageKey","authTokenStoragePrefix","createApp","createPinia","App","use","mount","LOCAL_MESSAGE_STORAGE_KEY","LOCAL_HIDDEN_MESSAGE_STORAGE_KEY","LOCAL_RECALLED_MESSAGE_STORAGE_KEY","scopedStorageKey","baseKey","scope","encodeURIComponent","randomId","crypto","randomUUID","replaceAll","readLocalMessages","localStorage","readMessageSet","storageKey","writeMessageSet","messagesByConversation","messageKeys","hasStoredMessage","stored","ids","storeMessageKeys","withRecalledState","applyLocalMessageState","isRecalled","writeLocalMessages","saveLocalMessage","findIndex","mergeSyncedMessages","localMessages","remoteMessages","visibleLocalMessages","localByKey","visibleRemoteMessages","remoteMessage","localMessage","remoteKeys","hasRemoteMatch","pendingLocalMessages","a","b","displayTimestamp","getTitle","fallback","getUniqueEquipment","allowedDevices","canUseLocalLoginFallback","HttpImClient","constructor","listeners","currentUser","getClientId","clientId","restoreClientId","getSdkVersion","ensureSdk","deviceId","uniqueEquipment","persistAppToken","localOnly","flag","device_name","connect","refreshConversationList","disconnect","getConversationList","fetchRemoteConversations","remoteConversations","limit","line","getMessages","fetchRemoteMessages","options","markRead","hideMessages","markMessagesRecalled","recallMessage","editMessage","nextText","editedMessage","editedAt","activityTimestamp","getMessageDetail","sendTextMessage","initialMessage","sender","sentMessage","serverTimestamp","failedMessage","sendAttachmentMessage","mime","formData","FormData","append","getContactList","getServerContactList","headers","getAppAuthHeaders","mapContact","localeCompare","reason","normalizeConversation","nativeStatus","nativeError","groupKey","targetIds","members","targetUserId","adminIds","targetId","getProfile","updateProfile","refreshContactList","createSingleConversation","userInfo","friend","on","eventName","handler","off","payload","appToken","authtoken","authToken","getUrlHost","host","LongConnectionImClient","UnsupportedWildfireImClient","WildfireImClient","HEARTBEAT_INTERVAL_MS","RECONNECT_MIN_MS","RECONNECT_MAX_MS","buildWsUrl","port","path","normalizeConversationId","to","receiver","normalizeIncomingMessage","currentUserId","fromUser","content","searchableContent","socket","heartbeatTimer","reconnectTimer","reconnectAttempts","manualClose","shouldUseMessagePolling","WebSocket","openSocket","clearReconnectTimer","clearHeartbeatTimer","close","readyState","OPEN","sendAuthFrame","CONNECTING","binaryType","scheduleReconnect","onopen","startHeartbeat","onmessage","handleFrame","onclose","sendFrame","frame","send","rawData","ArrayBuffer","cmd","setInterval","clearInterval","RealtimeNotificationClient","source","reconnectAttempt","stop","ticket","endpoint","socketUrl","realtimeNotifications","defineStore","CONTACT_CACHE_MS","normalizeContacts","unique","normalized","loading","eventsBound","refreshSerial","refreshPromise","loadedForUserId","loadedAt","getters","actions","bindImEvents","requestUserId","serial","serverContacts","latest","nextAlias","savedAlias","setActiveContact","LOCAL_CONVERSATION_STORAGE_KEY","LOCAL_FAVORITE_MESSAGES_KEY","readFavoriteMessages","writeFavoriteMessages","readLocalConversations","writeLocalConversations","messageStableKey","messageActivityTimestamp","attachmentLabel","cleanPlaceholderText","messagePreviewText","sanitizeConversation","isHttpUrl","fileNameFromUrl","pathname","decodeURIComponent","split","pop","normalizeMessageForDisplay","quotePrefix","isSameMessage","hasExactMessage","canMarkReadNow","visibilityState","userAction","isPageVisible","activeMessageSyncIntervalMs","configured","isFinite","conversationListSyncIntervalMs","mergeVisibleMessages","currentMessages","syncedMessages","merged","currentMessage","shouldKeepLocal","incomingEditedMessages","previousMessages","nextMessages","previousByKey","previous","notificationAudioContext","playNotificationSound","AudioContext","webkitAudioContext","resume","oscillator","createOscillator","gain","createGain","startAt","currentTime","frequency","setValueAtTime","exponentialRampToValueAtTime","destination","visibleMessagesByConversation","usingDemoData","syncTimer","conversationSyncTimer","readPresenceEventsBound","syncInFlight","pendingReadReceiptConversationId","conversationSyncInFlight","messageSyncTimer","messageSyncQueuedAt","pendingMessageSyncOptions","lastReadSyncByConversation","optimisticMessagesByConversation","quotedMessage","forwardingMessages","editingMessage","editingText","editingMode","messageDetailOpen","messageDetailLoading","messageDetailError","attentionMessageTimer","favoriteMessages","activeFavoriteKey","realtimeSyncTimer","activeMessages","totalUnread","reduce","sum","selectedMessages","loadScopedLocalState","startMessageSync","handleRealtimeNotification","loadActiveMessages","appendMessage","scheduleActiveMessagesSync","replaceMessage","applyRemoteConversations","sendText","appendVisibleMessage","sendAttachment","sendTextToConversation","removeConversation","removedMessages","removedVisibleMessages","removedOptimisticMessages","remote","keepOptimisticMessage","updateConversationFromMessage","syncVisibleMessages","removeMessages","filterMessages","list","replaceLocalMessage","targetMessage","nextMessage","keys","replaceInList","matched","pruneOptimisticMessages","remoteMatched","syncedMessage","syncOptions","skipWhenHidden","wantsReadReceipt","explicitReadReceipt","previousReadSyncAt","pollingReadReceipt","syncedConversationId","editedIncomingMessages","latestMessage","maxWait","runAt","pendingOptions","bindReadPresenceEvents","syncWhenReadable","actionNoticeTimer","actionErrorTimer","handleMessageAction","copyMessages","startEditMessage","deleteMessages","startForward","toggleFavorite","openMessageDetail","quoteMessage","enterSelectionMode","sentAt","closeMessageDetail","setActiveFavorite","quoteText","cancelQuote","toggleSelectedMessage","clearSelection","copySelectedMessages","deleteSelectedMessages","startForwardSelectedMessages","cancelForward","isResend","cancelEditMessage","completeEditMessage","completeForward","targetConversationId","successCount","failedCount","showFavorites","STORAGE_KEY","normalizeStoredPortrait","nextProfilePortrait","profilePortrait","currentPortrait","sdkVersion","applyLoginResult","imToken","persistSession","applyProfile","$reset"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/app.5863459a.js b/dist/js/app.84630d8b.js similarity index 99% rename from dist/js/app.5863459a.js rename to dist/js/app.84630d8b.js index cec19fa..8e8536d 100644 --- a/dist/js/app.5863459a.js +++ b/dist/js/app.84630d8b.js @@ -3026,6 +3026,12 @@ const IMAGE_MAX_SCALE = 6; y: 0, message: null }); + const messageTimeFormatter = new Intl.DateTimeFormat('zh-CN', { + hour: '2-digit', + minute: '2-digit', + hour12: false, + timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone + }); const imageViewer = (0,vue__WEBPACK_IMPORTED_MODULE_8__/* .reactive */ .Kh)({ visible: false, url: '', @@ -3125,20 +3131,20 @@ const IMAGE_MAX_SCALE = 6; }); function scrollToBottom() { (0,vue__WEBPACK_IMPORTED_MODULE_6__/* .nextTick */ .dY)(() => { - if (listEl.value) { - const scroll = () => { - if (listEl.value) { - listEl.value.scrollTop = listEl.value.scrollHeight; - } - }; - scroll(); - requestAnimationFrame(() => { - scroll(); - requestAnimationFrame(scroll); - }); - } + requestAnimationFrame(() => { + if (listEl.value) { + listEl.value.scrollTop = listEl.value.scrollHeight; + } + }); }); } + function isNearBottom() { + const element = listEl.value; + if (!element) { + return true; + } + return element.scrollHeight - element.scrollTop - element.clientHeight < 120; + } function scrollToMessage(messageId) { ;(0,vue__WEBPACK_IMPORTED_MODULE_6__/* .nextTick */ .dY)(() => { if (!listEl.value || !messageId) { @@ -3153,7 +3159,11 @@ const IMAGE_MAX_SCALE = 6; } }); } - ;(0,vue__WEBPACK_IMPORTED_MODULE_6__/* .watch */ .wB)(() => props.messages.map(message => `${message.id}:${message.status}:${message.deliveryStatus || ''}:${message.messageUid || ''}:${message.recalled ? '1' : ''}`).join('|'), scrollToBottom, { + ;(0,vue__WEBPACK_IMPORTED_MODULE_6__/* .watch */ .wB)(() => props.messages.map(messageIdentity).join('|'), (nextKeys, previousKeys) => { + if (!previousKeys || nextKeys !== previousKeys && isNearBottom()) { + scrollToBottom(); + } + }, { immediate: true }); (0,vue__WEBPACK_IMPORTED_MODULE_6__/* .watch */ .wB)(() => props.attentionMessageId, scrollToMessage); @@ -3507,12 +3517,7 @@ const IMAGE_MAX_SCALE = 6; closeMenu(); } function formatTime(timestamp) { - return new Intl.DateTimeFormat('zh-CN', { - hour: '2-digit', - minute: '2-digit', - hour12: false, - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone - }).format(timestamp); + return messageTimeFormatter.format(timestamp); } function deliveryState(message) { if (message.direction !== 'out' || message.status === 'failed' || message.status === 'recalled' || message.recalled) { @@ -7653,6 +7658,25 @@ const useContactStore = (0,pinia__WEBPACK_IMPORTED_MODULE_6__/* .defineStore */ const LOCAL_CONVERSATION_STORAGE_KEY = 'qmt-web-im-local-conversations-v2'; const LOCAL_FAVORITE_MESSAGES_KEY = 'qmt-web-im-favorite-messages-v1'; +const recentRealtimeNotifications = new Map(); +function isDuplicateRealtimeNotification(payload) { + const messageId = String(payload?.messageId || ''); + if (!messageId) { + return false; + } + const key = `${payload?.kind || 'message'}:${messageId}`; + const now = Date.now(); + const previousAt = Number(recentRealtimeNotifications.get(key) || 0); + recentRealtimeNotifications.set(key, now); + if (recentRealtimeNotifications.size > 200) { + recentRealtimeNotifications.forEach((seenAt, seenKey) => { + if (now - seenAt > 30000) { + recentRealtimeNotifications.delete(seenKey); + } + }); + } + return now - previousAt < 5000; +} function scopedStorageKey(baseKey) { const session = (0,_stores_session__WEBPACK_IMPORTED_MODULE_22__/* .useSessionStore */ .B)(); const scope = `${_config__WEBPACK_IMPORTED_MODULE_21__/* .appConfig */ .U.appServer || ''}:${session.userId || 'anonymous'}`; @@ -7693,6 +7717,16 @@ function messageStableKey(message) { function messageActivityTimestamp(message) { return Number(message?.activityTimestamp || message?.editedAt || message?.displayTimestamp || message?.timestamp || 0); } +function hasSameRenderState(left, right) { + if (left === right) { + return true; + } + try { + return JSON.stringify(left) === JSON.stringify(right); + } catch (error) { + return false; + } +} function isRecalledMessage(message) { return Boolean(message?.recalled) || message?.status === 'recalled'; } @@ -8229,6 +8263,7 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto if (!remote.length && this.conversations.length) { return; } + const previousActiveId = this.activeId; const merged = new Map(); this.conversations.forEach(conversation => { merged.set(conversation.id, conversation); @@ -8241,7 +8276,11 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto unread }); }); - this.conversations = Array.from(merged.values()).map(sanitizeConversation).sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0)).slice(0, 100); + const nextConversations = Array.from(merged.values()).map(sanitizeConversation).sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0)).slice(0, 100); + const conversationsChanged = !hasSameRenderState(this.conversations, nextConversations); + if (conversationsChanged) { + this.conversations = nextConversations; + } if (!this.conversations.length) { this.activeId = ''; this.messagesByConversation = {}; @@ -8253,8 +8292,12 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto if (!this.conversations.find(item => item.id === this.activeId)) { this.activeId = this.conversations[0].id; } - writeLocalConversations(this.conversations); - this.loadActiveMessages(); + if (conversationsChanged) { + writeLocalConversations(this.conversations); + } + if (previousActiveId !== this.activeId || !this.messagesByConversation[this.activeId]) { + this.loadActiveMessages(); + } }, appendMessage(conversationId, message) { message = normalizeMessageForDisplay(message); @@ -8362,10 +8405,14 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto this.syncVisibleMessages(conversationId); }, syncVisibleMessages(conversationId) { - this.visibleMessagesByConversation = { - ...this.visibleMessagesByConversation, - [conversationId]: mergeVisibleMessages(this.optimisticMessagesByConversation[conversationId] || [], this.messagesByConversation[conversationId] || []) - }; + const currentMessages = this.visibleMessagesByConversation[conversationId] || []; + const nextMessages = mergeVisibleMessages(this.optimisticMessagesByConversation[conversationId] || [], this.messagesByConversation[conversationId] || []); + if (!hasSameRenderState(currentMessages, nextMessages)) { + this.visibleMessagesByConversation = { + ...this.visibleMessagesByConversation, + [conversationId]: nextMessages + }; + } }, keepOptimisticMessage(conversationId, message) { if (!this.optimisticMessagesByConversation[conversationId]) { @@ -8417,10 +8464,13 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto this.loading = true; const messages = _services_imClient__WEBPACK_IMPORTED_MODULE_20__/* .imClient */ .wD.getMessages(conversation, 30); this.pruneOptimisticMessages(conversation.id, messages); - this.messagesByConversation = { - ...this.messagesByConversation, - [conversation.id]: mergeVisibleMessages(this.messagesByConversation[conversation.id] || [], messages) - }; + const nextMessages = mergeVisibleMessages(this.messagesByConversation[conversation.id] || [], messages); + if (!hasSameRenderState(this.messagesByConversation[conversation.id] || [], nextMessages)) { + this.messagesByConversation = { + ...this.messagesByConversation, + [conversation.id]: nextMessages + }; + } this.syncVisibleMessages(conversation.id); this.loading = false; this.syncActiveMessages(syncOptions); @@ -8462,10 +8512,13 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto } const editedIncomingMessages = incomingEditedMessages(previousMessages, messages); this.pruneOptimisticMessages(syncedConversationId, messages); - this.messagesByConversation = { - ...this.messagesByConversation, - [syncedConversationId]: mergeVisibleMessages(this.messagesByConversation[syncedConversationId] || [], messages) - }; + const nextMessages = mergeVisibleMessages(this.messagesByConversation[syncedConversationId] || [], messages); + if (!hasSameRenderState(this.messagesByConversation[syncedConversationId] || [], nextMessages)) { + this.messagesByConversation = { + ...this.messagesByConversation, + [syncedConversationId]: nextMessages + }; + } this.syncVisibleMessages(syncedConversationId); if (editedIncomingMessages.length && syncedConversationId === this.activeId) { this.focusMessage(editedIncomingMessages.sort((a, b) => messageActivityTimestamp(b) - messageActivityTimestamp(a))[0]); @@ -8478,9 +8531,13 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto return latestMessage; }, null); if (latest) { - conversation.subtitle = messagePreviewText(latest); - conversation.updatedAt = messageActivityTimestamp(latest); - writeLocalConversations(this.conversations); + const nextSubtitle = messagePreviewText(latest); + const nextUpdatedAt = messageActivityTimestamp(latest); + if (conversation.subtitle !== nextSubtitle || Number(conversation.updatedAt || 0) !== nextUpdatedAt) { + conversation.subtitle = nextSubtitle; + conversation.updatedAt = nextUpdatedAt; + writeLocalConversations(this.conversations); + } } } catch (error) { // Keep the local view usable if a polling request misses. @@ -8536,7 +8593,10 @@ const useConversationStore = (0,pinia__WEBPACK_IMPORTED_MODULE_19__/* .defineSto this.refreshRemoteConversations(); } }, - handleRealtimeNotification() { + handleRealtimeNotification(payload) { + if (isDuplicateRealtimeNotification(payload)) { + return; + } window.clearTimeout(this.realtimeSyncTimer); this.realtimeSyncTimer = window.setTimeout(() => { this.refreshRemoteConversations(); @@ -9749,4 +9809,4 @@ const __exports__ = _NavigationRail_vue_vue_type_script_setup_true_lang_js__WEBP /******/ /******/ })() ; -//# sourceMappingURL=app.5863459a.js.map \ No newline at end of file +//# sourceMappingURL=app.84630d8b.js.map \ No newline at end of file diff --git a/dist/js/app.84630d8b.js.map b/dist/js/app.84630d8b.js.map new file mode 100644 index 0000000..7312848 --- /dev/null +++ b/dist/js/app.84630d8b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/app.84630d8b.js","mappings":";;;;;;;;;;;;;;AAMuC;AACY;AACA;AACA;AACW;;;;IAE9D,MAAMM,OAAO,GAAGF,yEAAe,CAAC,CAAC;IACjC,MAAMG,aAAa,GAAGF,oFAAoB,CAAC,CAAC;IAE5CL,wDAAS,CAAC,MAAM;MACdM,OAAO,CAACE,OAAO,CAAC,CAAC;IACnB,CAAC,CAAC;IAEFP,oDAAK,CAAC,MAAMK,OAAO,CAACG,MAAM,EAAEA,MAAM,IAAI;MACpC,IAAIA,MAAM,IAAIH,OAAO,CAACI,eAAe,EAAE;QACrCH,aAAa,CAACI,iBAAiB,CAAC,CAAC;QACjC;MACF;MACAJ,aAAa,CAACK,cAAc,CAAC,CAAC;IAChC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ8B;AAC0B;AACI;AACV;AACP;AACU;AACC;AACE;AACI;AACL;AACL;;;;IAEpD,MAAML,aAAa,GAAGF,oFAAoB,CAAC,CAAC;IAC5C,MAAMiB,UAAU,GAAGF,gFAAkB,CAAC,CAAC;IACvC,MAAMG,QAAQ,GAAGF,2EAAe,CAAC,CAAC;IAElCrB,wDAAS,CAAC,MAAM;MACdO,aAAa,CAACiB,0BAA0B,CAAC,CAAC;MAC1CD,QAAQ,CAACE,eAAe,CAAC,CAAC;IAC5B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgMwB;AACO;AACgD;AAC5C;AACc;AACJ;AAG/C,MAAMS,yBAAyB,GAAG,2BAA2B;AAgB7D,MAAMC,6BAA6B,GAAG,iCAAiC;AAEvE,MAAMC,mBAAmB,GAAG,2CAA2C;AAIvE,MAAMC,oBAAoB,GAAG,KAAK;;;;IAvBlC,MAAM/B,OAAO,GAAGF,yEAAe,CAAC,CAAC;IAEjC,MAAMkC,IAAI,GAAGP,kDAAG,CAAC,OAAO,CAAC;IACzB,MAAMQ,IAAI,GAAGR,kDAAG,CAAC,IAAI,CAAC;IACtB,MAAMS,MAAM,GAAGT,kDAAG,CAAC,EAAE,CAAC;IACtB,MAAMU,QAAQ,GAAGV,kDAAG,CAAC,EAAE,CAAC;IACxB,MAAMW,IAAI,GAAGX,kDAAG,CAAC,OAAO,CAAC;IACzB,MAAMY,WAAW,GAAGZ,kDAAG,CAAC,KAAK,CAAC;IAC9B,MAAMa,IAAI,GAAGb,kDAAG,CAAC,EAAE,CAAC;IACpB,MAAMc,QAAQ,GAAGd,kDAAG,CAAC,MAAM,CAAC;IAC5B,MAAMe,WAAW,GAAGf,kDAAG,CAAC,EAAE,CAAC;IAC3B,MAAMgB,cAAc,GAAGhB,kDAAG,CAAC,EAAE,CAAC;IAC9B,MAAMiB,UAAU,GAAGjB,kDAAG,CAAC,EAAE,CAAC;IAC1B,MAAMkB,cAAc,GAAGlB,kDAAG,CAAC,EAAE,CAAC;IAC9B,MAAMmB,SAAS,GAAGnB,kDAAG,CAAC,KAAK,CAAC;IAC5B,IAAIoB,YAAY,GAAG,CAAC;IACpB,IAAIC,aAAa,GAAG,IAAI;IAExB,MAAMC,mBAAmB,GAAGrB,uDAAS,CAACsB,OAAO;IAE7C,MAAMC,YAAY,GAAGxB,kDAAG,CAACsB,mBAAmB,CAAC;IAC7C,MAAMG,YAAY,GAAGzB,kDAAG,CAACK,mBAAmB,CAAC;IAC7C,MAAMqB,YAAY,GAAG1B,kDAAG,CAAC,OAAO,CAAC;IAEjC,MAAM2B,eAAe,GAAG3B,kDAAG,CAAC;MAAE4B,KAAK,EAAE,IAAI;MAAEC,KAAK,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAM,CAAC,CAAC;IAC3E,MAAMC,gBAAgB,GAAG/B,kDAAG,CAAC,KAAK,CAAC;IACnC,MAAMgC,kBAAkB,GAAGhC,kDAAG,CAAC,EAAE,CAAC;IAClC,MAAMiC,YAAY,GAAGjC,kDAAG,CAAC,EAAE,CAAC;IAC5B,MAAMkC,iBAAiB,GAAGlC,kDAAG,CAAC,EAAE,CAAC;IACjC,MAAMmC,eAAe,GAAGnC,kDAAG,CAAC,EAAE,CAAC;IAC/B,MAAMoC,oBAAoB,GAAGpC,kDAAG,CAAC,EAAE,CAAC;IACpC,MAAMqC,uBAAuB,GAAGrC,kDAAG,CAAC,KAAK,CAAC;IAC1C,MAAMsC,mBAAmB,GAAGvC,uDAAQ,CAAC;MACnCU,MAAM,EAAE,EAAE;MACV8B,MAAM,EAAE,IAAI;MACZC,SAAS,EAAE;IACb,CAAC,CAAC;IACF,MAAMC,YAAY,GAAG1C,uDAAQ,CAAC;MAC5B2C,gBAAgB,EAAE,IAAI;MACtBd,KAAK,EAAE,EAAE;MACTjB,IAAI,EAAE,EAAE;MACRkB,KAAK,EAAE,EAAE;MACTc,SAAS,EAAE,EAAE;MACbb,QAAQ,EAAE,EAAE;MACZc,wBAAwB,EAAE,KAAK;MAC/BC,aAAa,EAAE,EAAE;MACjBC,YAAY,EAAE,EAAE;MAChBpC,QAAQ,EAAE,EAAE;MACZqC,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,MAAMC,oBAAoB,GAAGjD,uDAAQ,CAAC;MACpCW,QAAQ,EAAE,EAAE;MACZqC,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,MAAME,kBAAkB,GAAG,CACzB;MAAEC,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,MAAM;MAAEC,KAAK,EAAE;IAAO,CAAC,EAChC;MAAED,KAAK,EAAE,MAAM;MAAEC,KAAK,EAAE;IAAO,CAAC,EAChC;MAAED,KAAK,EAAE,MAAM;MAAEC,KAAK,EAAE;IAAO,CAAC,EAChC;MAAED,KAAK,EAAE,IAAI;MAAEC,KAAK,EAAE;IAAK,CAAC,EAC5B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,CAAC,EAC9B;MAAED,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAM,EAC9B;IACD,MAAMC,qBAAqB,GAAG,CAC5B;MAAEC,GAAG,EAAE,OAAO;MAAEF,KAAK,EAAE;IAAQ,CAAC,EAChC;MAAEE,GAAG,EAAE,OAAO;MAAEF,KAAK,EAAE;IAAO,CAAC,EAC/B;MAAEE,GAAG,EAAE,UAAU;MAAEF,KAAK,EAAE;IAAQ,EACnC;IACD,MAAMG,SAAS,GAAGzD,uDAAQ,CAAC,MAAM;MAC/B,IAAIW,IAAI,CAAC0C,KAAK,KAAK,UAAU,EAAE;QAC7B,OAAOzC,MAAM,CAACyC,KAAK,CAACK,MAAM,IAAI,CAAC,IAAI7C,QAAQ,CAACwC,KAAK,CAACK,MAAM,IAAI,CAAC;MAC/D;MACA,OAAO9C,MAAM,CAACyC,KAAK,CAACK,MAAM,IAAI,CAAC,IAAI5C,IAAI,CAACuC,KAAK,CAACK,MAAM,IAAI,CAAC;IAC3D,CAAC,CAAC;IACF,MAAMC,sBAAsB,GAAG3D,uDAAQ,CAAC,MAAM;MAC5C,MAAM4D,OAAO,GAAGL,qBAAqB,CAACM,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACN,GAAG,KAAK,OAAO,IAAI1B,eAAe,CAACuB,KAAK,CAACS,IAAI,CAACN,GAAG,CAAC,CAAC;MAC7G,OAAOI,OAAO,CAACF,MAAM,GAAGE,OAAO,GAAG,CAACL,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAMQ,iBAAiB,GAAG/D,uDAAQ,CAAC,MAAM;MACvC,IAAI6B,YAAY,CAACwB,KAAK,KAAK,OAAO,EAAE;QAClC,OAAOT,YAAY,CAACb,KAAK,CAAC2B,MAAM,IAAI,MAC9BxB,gBAAgB,CAACmB,KAAK,GAAGT,YAAY,CAAC9B,IAAI,CAAC4C,MAAM,IAAI,CAAC,GAAGM,mBAAmB,CAACX,KAAK,CAAC;MAC3F;MACA,IAAIxB,YAAY,CAACwB,KAAK,KAAK,OAAO,EAAE;QAClC,OAAO,KAAK;MACd;MACA,OAAOT,YAAY,CAACX,QAAQ,CAACyB,MAAM,IAAI,KAClCd,YAAY,CAACI,aAAa,CAACU,MAAM,IAAI,KACrCO,sBAAsB,CAACZ,KAAI,IAC3BT,YAAY,CAAC/B,QAAQ,CAAC6C,MAAM,IAAI,KAChCd,YAAY,CAAC/B,QAAQ,KAAK+B,YAAY,CAACM,eAAe;IAC7D,CAAC,CAAC;IACF,MAAMgB,sBAAsB,GAAGlE,uDAAQ,CAAC,MAAM;MAC5C,OAAOyC,mBAAmB,CAAC7B,MAAK,IAC3B6B,mBAAmB,CAACE,SAAQ,IAC5BQ,oBAAoB,CAACtC,QAAQ,CAAC6C,MAAM,IAAI,KACxCP,oBAAoB,CAACtC,QAAQ,KAAKsC,oBAAoB,CAACD,eAAe;IAC7E,CAAC,CAAC;IACF,MAAMiB,kBAAkB,GAAGnE,uDAAQ,CAAC,MAAMoE,gBAAgB,CAACxB,YAAY,CAAC9B,IAAI,EAAEsB,YAAY,CAACiB,KAAK,CAAC,CAAC;IAClG,MAAMW,mBAAmB,GAAGhE,uDAAQ,CAAC,MAAMmE,kBAAkB,CAACd,KAAK,KAAK,OAAO,CAAC;IAChF,MAAMgB,iBAAiB,GAAGrE,uDAAQ,CAAC,MAAMsE,eAAe,CAACH,kBAAkB,CAACd,KAAK,CAAC,CAAC;IACnF,MAAMkB,qBAAqB,GAAGvE,uDAAQ,CAAC,MAAM;MAC3C,OAAOoE,gBAAgB,CAACxB,YAAY,CAACK,YAAY,EAAEX,eAAe,CAACe,KAAK,CAAC;IAC3E,CAAC,CAAC;IACF,MAAMY,sBAAsB,GAAGjE,uDAAQ,CAAC,MAAMuE,qBAAqB,CAAClB,KAAK,KAAK,OAAO,CAAC;IACtF,MAAMmB,oBAAoB,GAAGxE,uDAAQ,CAAC,MAAMsE,eAAe,CAACC,qBAAqB,CAAClB,KAAK,CAAC,CAAC;IACzF,MAAMoB,aAAa,GAAGzE,uDAAQ,CAAC,MAAM;MACnC,OAAO0E,MAAM,CAACtD,UAAU,CAACiC,KAAK,IAAI,GAAG,CAAC,CAACsB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,MAAMC,aAAa,GAAG7E,uDAAQ,CAAC,MAAM;MACnC,IAAItB,OAAO,CAACoG,UAAU,IAAI7D,QAAQ,CAACoC,KAAK,KAAK,WAAW,EAAE;QACxD,OAAO,MAAM;MACf;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAO,SAAS;MAClB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAOjC,UAAU,CAACiC,KAAK,GAAG,GAAGjC,UAAU,CAACiC,KAAK,MAAM,GAAG,KAAK;MAC7D;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAO,QAAQ;MACjB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,OAAO,EAAE;QAC9B,OAAO,SAAS;MAClB;MACA,OAAO,QAAQ;IACjB,CAAC,CAAC;IACF,MAAM0B,YAAY,GAAG/E,uDAAQ,CAAC,MAAM;MAClC,IAAItB,OAAO,CAACoG,UAAU,IAAI7D,QAAQ,CAACoC,KAAK,KAAK,WAAW,EAAE;QACxD,OAAO,gBAAgB;MACzB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc;MACvB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAO,gBAAgB;MACzB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAO,UAAU;MACnB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,OAAO,EAAE;QAC9B,OAAO,WAAW;MACpB;MACA,OAAO,oBAAoB;IAC7B,CAAC,CAAC;IACF,MAAM2B,aAAa,GAAGhF,uDAAQ,CAAC,MAAM;MACnC,IAAIiB,QAAQ,CAACoC,KAAK,KAAK,SAAS,EAAE;QAChC,OAAO,QAAQ;MACjB;MACA,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,OAAO,EAAE;QAC9D,OAAO,SAAS;MAClB;MACA,OAAO,OAAO;IAChB,CAAC,CAAC;IAEFhF,oDAAK,CAACsF,sBAAsB,EAAEsB,OAAO,IAAI;MACvC,IAAI,CAACA,OAAO,CAACC,IAAI,CAACpB,IAAI,IAAIA,IAAI,CAACN,GAAG,KAAK3B,YAAY,CAACwB,KAAK,CAAC,EAAE;QAC1DxB,YAAY,CAACwB,KAAK,GAAG4B,OAAO,CAAC,CAAC,CAAC,EAAEzB,GAAG,IAAI,OAAO;MACjD;IACF,CAAC,CAAC;IAEFpF,wDAAS,CAAC,MAAM;MACd+G,kBAAkB,CAAC,CAAC;MACpBC,kBAAkB,CAAC,CAAC;MACpBC,0BAA0B,CAAC,CAAC;MAC5B,IAAI3E,IAAI,CAAC2C,KAAK,KAAK,OAAO,IAAI1C,IAAI,CAAC0C,KAAK,KAAK,IAAI,EAAE;QACjDiC,YAAY,CAAC,CAAC;MAChB;IACF,CAAC,CAAC;IAEFrF,8DAAe,CAAC,MAAM;MACpBsF,WAAW,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,eAAeC,WAAWA,CAAA,EAAG;MAC3BxE,IAAI,CAACqC,KAAK,GAAG,EAAE;MACftC,WAAW,CAACsC,KAAK,GAAG,IAAI;MACxB,IAAI;QACF,MAAMhD,mEAAQ,CAACoF,eAAe,CAAC7E,MAAM,CAACyC,KAAK,CAAC;QAC5CrC,IAAI,CAACqC,KAAK,GAAG,0BAA0B;MACzC,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACdhH,OAAO,CAACgH,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,SAAS;MAC5C,CAAC,SAAS;QACR5E,WAAW,CAACsC,KAAK,GAAG,KAAK;MAC3B;IACF;IAEA,eAAeuC,mBAAmBA,CAAA,EAAG;MACnC5E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACftC,WAAW,CAACsC,KAAK,GAAG,IAAI;MACxB,IAAI;QACF,MAAMhD,mEAAQ,CAACoF,eAAe,CAACI,iBAAiB,CAACjD,YAAY,CAACC,gBAAgB,EAAED,YAAY,CAACb,KAAK,CAAC,CAAC;QACpGf,IAAI,CAACqC,KAAK,GAAG,0BAA0B;MACzC,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACdhH,OAAO,CAACgH,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,SAAS;MAC5C,CAAC,SAAS;QACR5E,WAAW,CAACsC,KAAK,GAAG,KAAK;MAC3B;IACF;IAEA,SAASyC,MAAMA,CAAA,EAAG;MAChB,IAAInF,IAAI,CAAC0C,KAAK,KAAK,IAAI,EAAE;QACvB;MACF;MACA,IAAI1C,IAAI,CAAC0C,KAAK,KAAK,UAAU,EAAE;QAC7B3E,OAAO,CAACqH,iBAAiB,CAACnF,MAAM,CAACyC,KAAK,EAAExC,QAAQ,CAACwC,KAAK,CAAC;QACvD;MACF;MACA3E,OAAO,CAACsH,aAAa,CAACpF,MAAM,CAACyC,KAAK,EAAEvC,IAAI,CAACuC,KAAK,CAAC;IACjD;IAEA,SAAS4C,YAAYA,CAACC,QAAQ,EAAE;MAC9BxH,OAAO,CAACgH,KAAK,GAAG,EAAE;MAClB1E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACf1C,IAAI,CAAC0C,KAAK,GAAG6C,QAAQ;MACrB,IAAIA,QAAQ,KAAK,IAAI,EAAE;QACrBZ,YAAY,CAAC,CAAC;QACd;MACF;MACAC,WAAW,CAAC,CAAC;IACf;IAEA,SAASY,YAAYA,CAAA,EAAG;MACtBlF,QAAQ,CAACoC,KAAK,GAAG,MAAM;MACvBnC,WAAW,CAACmC,KAAK,GAAG,EAAE;MACtBlC,cAAc,CAACkC,KAAK,GAAG,EAAE;MACzBjC,UAAU,CAACiC,KAAK,GAAG,EAAE;MACrBhC,cAAc,CAACgC,KAAK,GAAG,EAAE;MACzB/B,SAAS,CAAC+B,KAAK,GAAG,KAAK;IACzB;IAEA,SAAS+C,kBAAkBA,CAAA,EAAG;MAC5B,IAAI5E,aAAa,EAAE;QACjB6E,MAAM,CAACC,YAAY,CAAC9E,aAAa,CAAC;QAClCA,aAAa,GAAG,IAAI;MACtB;IACF;IAEA,SAAS+D,WAAWA,CAAA,EAAG;MACrBhE,YAAY,IAAI,CAAC;MACjB6E,kBAAkB,CAAC,CAAC;MACpBD,YAAY,CAAC,CAAC;IAChB;IAEA,SAASI,cAAcA,CAAA,EAAG;MACxBjB,YAAY,CAAC,IAAI,CAAC;IACpB;IAEA,eAAeA,YAAYA,CAACkB,KAAK,GAAG,KAAK,EAAE;MACzC,IAAI7F,IAAI,CAAC0C,KAAK,KAAK,IAAI,EAAE;QACvB;MACF;MACA,IAAI,CAACmD,KAAK,IAAIrF,cAAc,CAACkC,KAAK,IAAInC,WAAW,CAACmC,KAAK,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,SAAS,IAAIpC,QAAQ,CAACoC,KAAK,KAAK,OAAO,EAAE;QACrH;MACF;MAEA9B,YAAY,IAAI,CAAC;MACjB,MAAMkF,UAAU,GAAGlF,YAAY;MAC/B6E,kBAAkB,CAAC,CAAC;MACpB1H,OAAO,CAACgH,KAAK,GAAG,EAAE;MAClB1E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACfpC,QAAQ,CAACoC,KAAK,GAAG,SAAS;MAC1BnC,WAAW,CAACmC,KAAK,GAAG,EAAE;MACtBlC,cAAc,CAACkC,KAAK,GAAG,EAAE;MACzBjC,UAAU,CAACiC,KAAK,GAAG,EAAE;MACrBhC,cAAc,CAACgC,KAAK,GAAG,EAAE;MACzB/B,SAAS,CAAC+B,KAAK,GAAG,KAAK;MAEvB,IAAI;QACF,MAAMqD,SAAS,GAAG,MAAMrG,mEAAQ,CAACsG,eAAe,CAAC,CAAC;QAClD,IAAIF,UAAU,KAAKlF,YAAY,IAAIZ,IAAI,CAAC0C,KAAK,KAAK,IAAI,EAAE;UACtD;QACF;QACA,MAAMuD,KAAK,GAAGlC,MAAM,CAACgC,SAAS,CAACE,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,CAACA,KAAK,EAAE;UACV,MAAM,IAAIC,KAAK,CAAC,eAAe,CAAC;QAClC;QACA1F,cAAc,CAACkC,KAAK,GAAGuD,KAAK;QAC5B1F,WAAW,CAACmC,KAAK,GAAGtD,4DAAoB,CAACO,yBAAyB,GAAGsG,KAAK,CAAC;QAC3E3F,QAAQ,CAACoC,KAAK,GAAG,SAAS;QAC1B,MAAM0D,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,KAAK,EAAED,IAAI,CAACE,GAAG,CAACC,MAAM,CAACT,SAAS,CAACU,OAAO,IAAI,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QACvF5F,aAAa,GAAG6E,MAAM,CAACgB,UAAU,CAAC,MAAM;UACtC,IAAIZ,UAAU,KAAKlF,YAAY,IAAIN,QAAQ,CAACoC,KAAK,KAAK,WAAW,IAAI,CAAC3E,OAAO,CAACI,eAAe,EAAE;YAC7FmC,QAAQ,CAACoC,KAAK,GAAG,SAAS;UAC5B;QACF,CAAC,EAAE0D,QAAQ,CAAC;QACZO,WAAW,CAACb,UAAU,EAAEG,KAAK,CAAC;MAChC,CAAC,CAAC,OAAOlB,KAAK,EAAE;QACd,IAAIe,UAAU,KAAKlF,YAAY,EAAE;UAC/B;QACF;QACAN,QAAQ,CAACoC,KAAK,GAAG,OAAO;QACxB3E,OAAO,CAACgH,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,SAAS;MAC5C;IACF;IAEA,eAAe2B,WAAWA,CAACb,UAAU,EAAEG,KAAK,EAAE;MAC5CtF,SAAS,CAAC+B,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,OAAOoD,UAAU,KAAKlF,YAAY,IAAIZ,IAAI,CAAC0C,KAAK,KAAK,IAAI,IAAI,CAAC3E,OAAO,CAACI,eAAe,EAAE;UACrF,MAAMyI,IAAI,GAAG,MAAMlH,mEAAQ,CAACmH,kBAAkB,CAACZ,KAAK,CAAC;UACrD,IAAIH,UAAU,KAAKlF,YAAY,IAAIZ,IAAI,CAAC0C,KAAK,KAAK,IAAI,EAAE;YACtD;UACF;UACA,MAAMoE,SAAS,GAAGN,MAAM,CAACI,IAAI,CAACzG,IAAI,CAAC;UACnC,IAAI2G,SAAS,KAAK,CAAC,EAAE;YACnBxG,QAAQ,CAACoC,KAAK,GAAG,WAAW;YAC5B+C,kBAAkB,CAAC,CAAC;YACpB,MAAM1H,OAAO,CAACgJ,sBAAsB,CAACH,IAAI,CAAC7E,MAAM,IAAI,CAAC,CAAC,CAAC;YACvD;UACF;UACA,IAAI+E,SAAS,KAAK,CAAC,EAAE;YACnBxG,QAAQ,CAACoC,KAAK,GAAG,SAAS;YAC1BjC,UAAU,CAACiC,KAAK,GAAGkE,IAAI,CAAC7E,MAAM,EAAEiF,QAAQ,IAAIJ,IAAI,CAAC7E,MAAM,EAAEkF,WAAW,IAAIxG,UAAU,CAACiC,KAAK;YACxFhC,cAAc,CAACgC,KAAK,GAAGkE,IAAI,CAAC7E,MAAM,EAAEmF,QAAQ,IAAIxG,cAAc,CAACgC,KAAK;YACpE,MAAMyE,KAAK,CAAC,GAAG,CAAC;YAChB;UACF;UACA,IAAIL,SAAS,KAAK,EAAE,EAAE;YACpBxG,QAAQ,CAACoC,KAAK,GAAG,SAAS;YAC1B,MAAMyE,KAAK,CAAC,IAAI,CAAC;YACjB;UACF;UACA,IAAIL,SAAS,KAAK,EAAE,EAAE;YACpBxG,QAAQ,CAACoC,KAAK,GAAG,SAAS;YAC1B3E,OAAO,CAACgH,KAAK,GAAG,UAAU;YAC1B;UACF;UACA,IAAI+B,SAAS,KAAK,CAAC,EAAE;YACnBxG,QAAQ,CAACoC,KAAK,GAAG,SAAS;YAC1B;UACF;UACA,MAAM,IAAIwD,KAAK,CAACU,IAAI,CAAC5B,OAAO,IAAI,QAAQ,CAAC;QAC3C;MACF,CAAC,CAAC,OAAOD,KAAK,EAAE;QACd,IAAIe,UAAU,KAAKlF,YAAY,IAAIZ,IAAI,CAAC0C,KAAK,KAAK,IAAI,IAAI,CAAC3E,OAAO,CAACI,eAAe,EAAE;UAClFmC,QAAQ,CAACoC,KAAK,GAAG,OAAO;UACxB3E,OAAO,CAACgH,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,QAAQ;QAC3C;MACF,CAAC,SAAS;QACR,IAAIc,UAAU,KAAKlF,YAAY,EAAE;UAC/BD,SAAS,CAAC+B,KAAK,GAAG,KAAK;QACzB;MACF;IACF;IAEA,SAASyE,KAAKA,CAACC,EAAE,EAAE;MACjB,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAI5B,MAAM,CAACgB,UAAU,CAACY,OAAO,EAAEF,EAAE,CAAC,CAAC;IAC/D;IAEA,SAASG,6BAA6BA,CAAA,EAAG;MACvCtF,YAAY,CAACK,YAAY,GAAGL,YAAY,CAACK,YAAY,CAACkF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACxD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF;IAEA,SAASyD,0BAA0BA,CAAA,EAAG;MACpCxF,YAAY,CAAC9B,IAAI,GAAG8B,YAAY,CAAC9B,IAAI,CAACqH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACxD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE;IAEA,SAAS0D,4BAA4BA,CAAA,EAAG;MACtCzF,YAAY,CAACC,gBAAgB,GAAGD,YAAY,CAACC,gBAAgB,CAACsF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACxD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9F;IAEA,SAAS2D,gBAAgBA,CAAA,EAAG;MAC1BlG,YAAY,CAACiB,KAAK,GAAGkF,YAAY,CAAC,CAAC,CAAC;MACpClG,iBAAiB,CAACgB,KAAK,GAAGmF,kBAAkB,CAACpG,YAAY,CAACiB,KAAK,CAAC;MAChET,YAAY,CAAC9B,IAAI,GAAG,EAAE;IACxB;IAEA,SAAS2H,mBAAmBA,CAAA,EAAG;MAC7BnG,eAAe,CAACe,KAAK,GAAGkF,YAAY,CAAC,CAAC,CAAC;MACvChG,oBAAoB,CAACc,KAAK,GAAGmF,kBAAkB,CAAClG,eAAe,CAACe,KAAK,CAAC;MACtET,YAAY,CAACK,YAAY,GAAG,EAAE;IAChC;IAEA,SAASmB,gBAAgBA,CAACsE,UAAU,EAAEC,YAAY,EAAE;MAClD,IAAID,UAAU,CAAChF,MAAM,GAAG,CAAC,EAAE;QACzB,OAAO,EAAE;MACX;MACA,OAAOiF,YAAY,IAAID,UAAU,KAAKC,YAAY,GAAG,OAAO,GAAG,SAAS;IAC1E;IAEA,SAASrE,eAAeA,CAACsE,MAAM,EAAE;MAC/B,OAAO;QACL,qBAAqB,EAAEA,MAAM,KAAK,OAAO;QACzC,uBAAuB,EAAEA,MAAM,KAAK;MACtC,CAAC;IACH;IAEA,SAASL,YAAYA,CAAC7E,MAAM,EAAE;MAC5B,IAAIL,KAAK,GAAG,EAAE;MACd,KAAK,IAAIwF,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGnF,MAAM,EAAEmF,KAAK,IAAI,CAAC,EAAE;QAC9CxF,KAAK,IAAI2D,IAAI,CAAC8B,KAAK,CAAC9B,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;MACzC;MACA,OAAO1F,KAAK;IACd;IAEA,SAASmF,kBAAkBA,CAACQ,IAAI,EAAE;MAChC,MAAMC,KAAK,GAAG,GAAG;MACjB,MAAMC,MAAM,GAAG,EAAE;MACjB,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;MAC/CF,MAAM,CAACF,KAAK,GAAGA,KAAK;MACpBE,MAAM,CAACD,MAAM,GAAGA,MAAM;MACtB,MAAMI,OAAO,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;MACvCD,OAAO,CAACE,SAAS,GAAG,SAAS;MAC7BF,OAAO,CAACG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;MAErC,KAAK,IAAIL,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,EAAE,EAAEA,KAAK,IAAI,CAAC,EAAE;QAC1CS,OAAO,CAACI,SAAS,CAAC,CAAC;QACnBJ,OAAO,CAACK,MAAM,CAAC3C,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAGE,KAAK,EAAEjC,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAGG,MAAM,CAAC;QAC7DI,OAAO,CAACM,MAAM,CAAC5C,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAGE,KAAK,EAAEjC,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAGG,MAAM,CAAC;QAC7DI,OAAO,CAACO,WAAW,GAAG,QAAQ,EAAE,GAAG7C,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG/B,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG/B,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS;QACtHO,OAAO,CAACQ,SAAS,GAAG,GAAG;QACvBR,OAAO,CAACS,MAAM,CAAC,CAAC;MAClB;MAEAT,OAAO,CAACU,IAAI,GAAG,4BAA4B;MAC3CV,OAAO,CAACW,YAAY,GAAG,QAAQ;MAC/BX,OAAO,CAACY,SAAS,GAAG,QAAQ;MAC5B,KAAK,IAAIrB,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGG,IAAI,CAACtF,MAAM,EAAEmF,KAAK,IAAI,CAAC,EAAE;QACnDS,OAAO,CAACE,SAAS,GAAGX,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,SAAS;QAC3DS,OAAO,CAACa,QAAQ,CAACnB,IAAI,CAACH,KAAK,CAAC,EAAE,EAAE,GAAGA,KAAK,GAAG,EAAE,EAAEK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;MAChE;MAEA,KAAK,IAAIL,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,EAAE,EAAEA,KAAK,IAAI,CAAC,EAAE;QAC1CS,OAAO,CAACE,SAAS,GAAG,oBAAoB,IAAI,GAAGxC,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG;QACrEO,OAAO,CAACG,QAAQ,CAACzC,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAGE,KAAK,EAAEjC,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAGG,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;MAC3E;MAEA,OAAOC,MAAM,CAACiB,SAAS,CAAC,WAAW,CAAC;IACtC;IAEA,eAAeC,cAAcA,CAAA,EAAG;MAC9B3L,OAAO,CAACgH,KAAK,GAAG,EAAE;MAClB1E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACf,IAAIxB,YAAY,CAACwB,KAAK,KAAK,OAAO,EAAE;QAClCiH,uBAAuB,CAAC,CAAC;QACzB,IAAI,CAACpI,gBAAgB,CAACmB,KAAK,IAAI,CAACW,mBAAmB,CAACX,KAAK,EAAE;UACzD3E,OAAO,CAACgH,KAAK,GAAG,WAAW;UAC3B;QACF;QACA,MAAM6E,cAAc,GAAG1E,iBAAiB,CAACjD,YAAY,CAACC,gBAAgB,EAAED,YAAY,CAACb,KAAK,CAAC;QAC3F,MAAMyI,WAAW,GAAG,MAAMC,qBAAqB,CAACF,cAAc,CAAC;QAC/D,IAAIC,WAAW,KAAK,IAAI,EAAE;UACxB;QACF;QACA,IAAIA,WAAW,EAAE;UACfrI,kBAAkB,CAACkB,KAAK,GAAG,WAAW;UACtC;QACF;QACA,MAAMqH,SAAS,GAAGxI,gBAAgB,CAACmB,KAAK,GAAGT,YAAY,CAAC9B,IAAI,GAAG,OAAO;QACtE,MAAM4B,MAAM,GAAG,MAAMhE,OAAO,CAACiM,iBAAiB,CAACJ,cAAc,EAAEG,SAAS,CAAC;QACzE,IAAI,CAAChI,MAAM,EAAE;UACX;QACF;QACA,IAAI,CAACA,MAAM,CAACC,SAAS,EAAE;UACrBjE,OAAO,CAACgH,KAAK,GAAG,kBAAkB;UAClC;QACF;QACAkF,sBAAsB,CAACL,cAAc,EAAE7H,MAAM,CAAC;QAC9CS,oBAAoB,CAACtC,QAAQ,GAAG,EAAE;QAClCsC,oBAAoB,CAACD,eAAe,GAAG,EAAE;QACzCxC,IAAI,CAAC2C,KAAK,GAAG,aAAa;QAC1B;MACF;MACA,IAAIxB,YAAY,CAACwB,KAAK,KAAK,OAAO,EAAE;QAClC3E,OAAO,CAACgH,KAAK,GAAG,oBAAoB;QACpC;MACF;MACAhH,OAAO,CAACgH,KAAK,GAAG7D,YAAY,CAACwB,KAAK,KAAK,OAAM,GACzC,sBAAqB,GACrB,uBAAuB;IAC7B;IAEA,eAAewH,sBAAsBA,CAAA,EAAG;MACtCnM,OAAO,CAACgH,KAAK,GAAG,EAAE;MAClB1E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACf,IAAI,CAACZ,mBAAmB,CAAC7B,MAAM,IAAI,CAAC6B,mBAAmB,CAACE,SAAS,EAAE;QACjEjE,OAAO,CAACgH,KAAK,GAAG,eAAe;QAC/B;MACF;MACA,IAAI,CAACvC,oBAAoB,CAACtC,QAAQ,IAAI,CAACsC,oBAAoB,CAACD,eAAe,EAAE;QAC3ExE,OAAO,CAACgH,KAAK,GAAG,SAAS;QACzB;MACF;MACA,IAAIvC,oBAAoB,CAACtC,QAAQ,KAAKsC,oBAAoB,CAACD,eAAe,EAAE;QAC1ExE,OAAO,CAACgH,KAAK,GAAG,YAAY;QAC5B;MACF;MAEAlD,uBAAuB,CAACa,KAAK,GAAG,IAAI;MACpC,IAAI;QACF,MAAM3E,OAAO,CAACoM,qBAAqB,CAAC;UAClClK,MAAM,EAAE6B,mBAAmB,CAAC7B,MAAM;UAClC+B,SAAS,EAAEF,mBAAmB,CAACE,SAAS;UACxCoI,WAAW,EAAE5H,oBAAoB,CAACtC;QACpC,CAAC,CAAC;QACF,MAAMnC,OAAO,CAACqH,iBAAiB,CAACtD,mBAAmB,CAAC7B,MAAM,EAAEuC,oBAAoB,CAACtC,QAAQ,CAAC;QAC1F,IAAI,CAACnC,OAAO,CAACgH,KAAK,EAAE;UAClBsF,wBAAwB,CAAC,CAAC;QAC5B;MACF,CAAC,CAAC,OAAOtF,KAAK,EAAE;QACdhH,OAAO,CAACgH,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,QAAQ;MAC3C,CAAC,SAAS;QACRnD,uBAAuB,CAACa,KAAK,GAAG,KAAK;MACvC;IACF;IAEA,SAASwC,iBAAiBA,CAACoF,WAAW,EAAElJ,KAAK,EAAE;MAC7C,MAAMmJ,MAAM,GAAGxG,MAAM,CAACuG,WAAW,IAAI,IAAI,CAAC,CAAC9C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI;MACrE,MAAMgD,cAAc,GAAG,IAAID,MAAM,EAAE;MACnC,MAAME,eAAe,GAAG1G,MAAM,CAAC3C,KAAK,IAAI,EAAE,CAAC,CAACoG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MAC9D,IAAIgD,cAAc,KAAK,KAAK,EAAE;QAC5B,OAAOC,eAAe;MACxB;MACA,OAAO,GAAGD,cAAc,GAAGC,eAAe,EAAE;IAC9C;IAEA,eAAehG,kBAAkBA,CAAA,EAAG;MAClC,IAAI;QACF,MAAMiG,QAAQ,GAAG,MAAMvL,sDAAK,CAACwL,GAAG,CAAClL,uDAAS,CAACmL,iBAAiB,EAAE;UAAEC,eAAe,EAAE;QAAM,CAAC,CAAC;QACzF,MAAMvG,OAAO,GAAGoG,QAAQ,CAAC9D,IAAI,EAAEA,IAAI,EAAEtC,OAAO;QAC5C,IAAIA,OAAO,EAAE;UACXnD,eAAe,CAACuB,KAAK,GAAG;YACtBtB,KAAK,EAAE0J,OAAO,CAACxG,OAAO,CAAClD,KAAK,CAAC;YAC7BC,KAAK,EAAEvB,MAAoB,IAAIgL,CAAsB;YACrDxJ,QAAQ,EAAEwJ,OAAO,CAACxG,OAAO,CAAChD,QAAQ;UACpC,CAAC;QACH;QACAC,gBAAgB,CAACmB,KAAK,GAAGoI,OAAO,CAACJ,QAAQ,CAAC9D,IAAI,EAAEA,IAAI,EAAEmE,kBAAkB,CAAC;MAC3E,CAAC,CAAC,OAAOhG,KAAK,EAAE;QACd5D,eAAe,CAACuB,KAAK,GAAG;UAAEtB,KAAK,EAAE,IAAI;UAAEC,KAAK,EAAE,KAAK;UAAEC,QAAQ,EAAE;QAAM,CAAC;QACtEC,gBAAgB,CAACmB,KAAK,GAAG,KAAK;MAChC;IACF;IAEA,eAAe8B,kBAAkBA,CAAA,EAAG;MAClC,IAAI;QACF,MAAMkG,QAAQ,GAAG,MAAMvL,sDAAK,CAACwL,GAAG,CAAClL,uDAAS,CAACuL,iBAAiB,EAAE;UAAEH,eAAe,EAAE;QAAM,CAAC,CAAC;QACzF,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;UAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,UAAU,CAAC;QACvD;QACA,MAAMiG,MAAM,GAAGP,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;QAC1C,MAAMmJ,IAAI,GAAGnH,MAAM,CAACkH,MAAM,CAACjK,YAAY,IAAI,EAAE,CAAC,CAACmK,IAAI,CAAC,CAAC;QACrD,MAAMC,IAAI,GAAGrH,MAAM,CAACkH,MAAM,CAACI,OAAO,IAAIJ,MAAM,CAACG,IAAI,IAAI,EAAE,CAAC,CAACD,IAAI,CAAC,CAAC;QAC/D,MAAMG,OAAO,GAAGvH,MAAM,CAACkH,MAAM,CAACK,OAAO,IAAI,EAAE,CAAC,CAACH,IAAI,CAAC,CAAC;QACnDnK,YAAY,CAAC0B,KAAK,GAAGwI,IAAI,IAAIpK,mBAAmB;QAChDG,YAAY,CAACyB,KAAK,GAAG6I,gBAAgB,CAACH,IAAI,EAAEE,OAAO,CAAC;MACtD,CAAC,CAAC,OAAOvG,KAAK,EAAE;QACd/D,YAAY,CAAC0B,KAAK,GAAG5B,mBAAmB;QACxCG,YAAY,CAACyB,KAAK,GAAG7C,mBAAmB;MAC1C;MACA2L,kBAAkB,CAAC,CAAC;IACtB;IAEA,SAASD,gBAAgBA,CAAC7I,KAAK,EAAE4I,OAAO,GAAG,EAAE,EAAE;MAC7C,MAAMF,IAAI,GAAGrH,MAAM,CAACrB,KAAK,IAAI,EAAE,CAAC,CAACyI,IAAI,CAAC,CAAC;MACvC,IAAI,CAACC,IAAI,EAAE;QACT,OAAOvL,mBAAmB;MAC5B;MACA,IAAI,yBAAyB,CAAC4L,IAAI,CAACL,IAAI,CAAC,EAAE;QACxC,OAAOM,kBAAkB,CAACN,IAAI,EAAEE,OAAO,CAAC;MAC1C;MACA,IAAIF,IAAI,CAACO,UAAU,CAAC,IAAI,CAAC,EAAE;QACzB,OAAOD,kBAAkB,CAAC,GAAGhG,MAAM,CAACkG,QAAQ,CAACC,QAAQ,GAAGT,IAAI,EAAE,EAAEE,OAAO,CAAC;MAC1E;MACA,MAAMQ,IAAI,GAAGV,IAAI,CAACO,UAAU,CAAC,GAAG,CAAC,GAAGlM,uDAAS,CAACsM,WAAW,GAAG,GAAGtM,uDAAS,CAACsM,WAAW,GAAG;MACvF,OAAOL,kBAAkB,CAAC,IAAIM,GAAG,CAACZ,IAAI,EAAEU,IAAI,CAAC,CAACG,QAAQ,CAAC,CAAC,EAAEX,OAAO,CAAC;IACpE;IAEA,SAASI,kBAAkBA,CAACQ,GAAG,EAAEZ,OAAO,EAAE;MACxC,IAAI,CAACA,OAAO,IAAI,iBAAiB,CAACG,IAAI,CAACS,GAAG,CAAC,EAAE;QAC3C,OAAOA,GAAG;MACZ;MACA,MAAMC,MAAM,GAAG,IAAIH,GAAG,CAACE,GAAG,EAAExG,MAAM,CAACkG,QAAQ,CAACQ,IAAI,CAAC;MACjDD,MAAM,CAACE,YAAY,CAACC,GAAG,CAAC,GAAG,EAAEhB,OAAO,CAAC;MACrC,OAAOa,MAAM,CAACF,QAAQ,CAAC,CAAC;IAC1B;IAEA,SAAST,kBAAkBA,CAAA,EAAG;MAC5B,IAAI,OAAO/C,QAAQ,KAAK,WAAW,EAAE;QACnC;MACF;MACAA,QAAQ,CAAC8D,KAAK,GAAGvL,YAAY,CAAC0B,KAAK,IAAI5B,mBAAmB;MAC1D,MAAM0L,OAAO,GAAGvL,YAAY,CAACyB,KAAK,IAAI7C,mBAAmB;MACzD4M,eAAe,CAAC,MAAM,EAAED,OAAO,CAAC;MAChCC,eAAe,CAAC,eAAe,EAAED,OAAO,CAAC;MACzCC,eAAe,CAAC,kBAAkB,EAAED,OAAO,CAAC;IAC9C;IAEA,SAASC,eAAeA,CAACC,GAAG,EAAEN,IAAI,EAAE;MAClC,IAAIO,IAAI,GAAGlE,QAAQ,CAACmE,aAAa,CAAC,aAAaF,GAAG,IAAI,CAAC;MACvD,IAAI,CAACC,IAAI,EAAE;QACTA,IAAI,GAAGlE,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;QACrCiE,IAAI,CAACE,YAAY,CAAC,KAAK,EAAEH,GAAG,CAAC;QAC7BjE,QAAQ,CAACqE,IAAI,CAACC,WAAW,CAACJ,IAAI,CAAC;MACjC;MACAA,IAAI,CAACE,YAAY,CAAC,MAAM,EAAET,IAAI,CAAC;IACjC;IAEA,SAASY,oBAAoBA,CAAA,EAAG;MAC9B,IAAI/L,YAAY,CAACyB,KAAK,KAAK7C,mBAAmB,EAAE;QAC9CoB,YAAY,CAACyB,KAAK,GAAG7C,mBAAmB;QACxC2L,kBAAkB,CAAC,CAAC;MACtB;IACF;IAEA,eAAe1B,qBAAqBA,CAAC1I,KAAK,EAAE;MAC1C,IAAI;QACF,MAAMsJ,QAAQ,GAAG,MAAMvL,sDAAK,CAAC8N,IAAI,CAACxN,uDAAS,CAACyN,sBAAsB,EAAE;UAAEjN,MAAM,EAAEmB;QAAM,CAAC,EAAE;UAAEyJ,eAAe,EAAE;QAAM,CAAC,CAAC;QAClH,OAAOC,OAAO,CAACJ,QAAQ,CAAC9D,IAAI,EAAEA,IAAI,EAAEuG,MAAM,CAAC;MAC7C,CAAC,CAAC,OAAOpI,KAAK,EAAE;QACdhH,OAAO,CAACgH,KAAK,GAAGA,KAAK,CAAC2F,QAAQ,EAAE9D,IAAI,EAAEwG,GAAG,IAAIrI,KAAK,CAACC,OAAO,IAAI,eAAe;QAC7E,OAAO,IAAI;MACb;IACF;IAEA,SAAS2E,uBAAuBA,CAAA,EAAG;MACjCnI,kBAAkB,CAACkB,KAAK,GAAG,EAAE;IAC/B;IAEA,SAAS2H,wBAAwBA,CAAA,EAAG;MAClCvI,mBAAmB,CAAC7B,MAAM,GAAG,EAAE;MAC/B6B,mBAAmB,CAACC,MAAM,GAAG,IAAI;MACjCD,mBAAmB,CAACE,SAAS,GAAG,EAAE;MAClCQ,oBAAoB,CAACtC,QAAQ,GAAG,EAAE;MAClCsC,oBAAoB,CAACD,eAAe,GAAG,EAAE;MACzC8K,cAAc,CAACC,UAAU,CAAC1N,6BAA6B,CAAC;IAC1D;IAEA,SAASqK,sBAAsBA,CAAC7I,KAAK,EAAEW,MAAM,EAAE;MAC7CD,mBAAmB,CAAC7B,MAAM,GAAGmB,KAAK;MAClCU,mBAAmB,CAACC,MAAM,GAAGA,MAAM;MACnCD,mBAAmB,CAACE,SAAS,GAAG+B,MAAM,CAAChC,MAAM,CAACC,SAAS,IAAI,EAAE,CAAC;MAC9DqL,cAAc,CAACE,OAAO,CAAC3N,6BAA6B,EAAE4N,IAAI,CAACC,SAAS,CAAC;QACnEC,SAAS,EAAEjO,uDAAS,CAACiO,SAAS;QAC9BzN,MAAM,EAAE6B,mBAAmB,CAAC7B,MAAM;QAClC+B,SAAS,EAAEF,mBAAmB,CAACE,SAAS;QACxCD;MACF,CAAC,CAAC,CAAC;IACL;IAEA,SAAS2C,0BAA0BA,CAAA,EAAG;MACpC,IAAI;QACF,MAAMiJ,OAAO,GAAGH,IAAI,CAACI,KAAK,CAACP,cAAc,CAACQ,OAAO,CAACjO,6BAA6B,CAAC,IAAI,MAAM,CAAC;QAC3F,IAAI,CAAC+N,OAAO,IAAIA,OAAO,CAACD,SAAS,KAAKjO,uDAAS,CAACiO,SAAS,IAAI,CAACC,OAAO,CAAC1N,MAAM,IAAI,CAAC0N,OAAO,CAAC3L,SAAS,EAAE;UAClG;QACF;QACAF,mBAAmB,CAAC7B,MAAM,GAAG0N,OAAO,CAAC1N,MAAM;QAC3C6B,mBAAmB,CAACC,MAAM,GAAG4L,OAAO,CAAC5L,MAAM,IAAI,IAAI;QACnDD,mBAAmB,CAACE,SAAS,GAAG+B,MAAM,CAAC4J,OAAO,CAAC3L,SAAS,IAAI,EAAE,CAAC;QAC/DQ,oBAAoB,CAACtC,QAAQ,GAAG,EAAE;QAClCsC,oBAAoB,CAACD,eAAe,GAAG,EAAE;QACzCxC,IAAI,CAAC2C,KAAK,GAAG,aAAa;MAC5B,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACdsI,cAAc,CAACC,UAAU,CAAC1N,6BAA6B,CAAC;MAC1D;IACF;IAEA,SAASkO,YAAYA,CAAA,EAAG;MACtB/P,OAAO,CAACgH,KAAK,GAAG,EAAE;MAClB1E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACfkC,WAAW,CAAC,CAAC;MACb+E,uBAAuB,CAAC,CAAC;MACzBU,wBAAwB,CAAC,CAAC;MAC1BpI,YAAY,CAACb,KAAK,GAAGa,YAAY,CAACb,KAAK,IAAInB,MAAM,CAACyC,KAAK;MACvDT,YAAY,CAAC9B,IAAI,GAAG,EAAE;MACtBsB,YAAY,CAACiB,KAAK,GAAG,EAAE;MACvBhB,iBAAiB,CAACgB,KAAK,GAAG,EAAE;MAC5B3C,IAAI,CAAC2C,KAAK,GAAG,UAAU;MACvB+B,kBAAkB,CAAC,CAAC;IACtB;IAEA,SAASsJ,WAAWA,CAAA,EAAG;MACrBhQ,OAAO,CAACgH,KAAK,GAAG,EAAE;MAClB1E,IAAI,CAACqC,KAAK,GAAG,EAAE;MACfiH,uBAAuB,CAAC,CAAC;MACzBU,wBAAwB,CAAC,CAAC;MAC1BrK,IAAI,CAAC0C,KAAK,GAAG,IAAI;MACjB3C,IAAI,CAAC2C,KAAK,GAAG,OAAO;MACpBiC,YAAY,CAAC,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACva4D;AAChB;AACQ;AACL;AACe;AACV;AACD;;;;IAEnD,MAAM3G,aAAa,GAAGF,qFAAoB,CAAC,CAAC;IAC5C,MAAMkB,QAAQ,GAAGF,2EAAe,CAAC,CAAC;IAClC,MAAMf,OAAO,GAAGF,0EAAe,CAAC,CAAC;IACjC,MAAMqQ,kBAAkB,GAAG7O,wDAAQ,CAAC,MAAMrB,aAAa,CAACkQ,kBAAkB,CAAC;IAC3E,MAAMC,aAAa,GAAG3O,mDAAG,CAAC,KAAK,CAAC;IAChC,MAAM4O,iBAAiB,GAAG5O,mDAAG,CAAC,KAAK,CAAC;IACpC,MAAM6O,gBAAgB,GAAG7O,mDAAG,CAAC,EAAE,CAAC;IAChC,MAAM8O,mBAAmB,GAAG9O,mDAAG,CAAC,KAAK,CAAC;IACtC,MAAM+O,mBAAmB,GAAG/O,mDAAG,CAAC,EAAE,CAAC;IACnC,MAAMgP,kBAAkB,GAAGhP,mDAAG,CAAC,EAAE,CAAC;IAClC,MAAMiP,UAAU,GAAGjP,mDAAG,CAAC,EAAE,CAAC;IAC1B,MAAMkP,SAAS,GAAGlP,mDAAG,CAAC,KAAK,CAAC;IAC5B,MAAMmP,WAAW,GAAGnP,mDAAG,CAAC,IAAI,CAAC;IAC7B,MAAMoP,YAAY,GAAGpP,mDAAG,CAAC,EAAE,CAAC;IAC5B,MAAMqP,eAAe,GAAGrP,mDAAG,CAAC,EAAE,CAAC;IAC/B,MAAMsP,aAAa,GAAGtP,mDAAG,CAAC,EAAE,CAAC;IAC7B,MAAMuP,gBAAgB,GAAGvP,mDAAG,CAAC,EAAE,CAAC;IAChC,MAAMwP,eAAe,GAAGxP,mDAAG,CAAC,EAAE,CAAC;IAC/B,MAAMyP,gBAAgB,GAAGzP,mDAAG,CAAC,EAAE,CAAC;IAChC,MAAM0P,YAAY,GAAG1P,mDAAG,CAAC;MACvB0L,IAAI,EAAE,EAAE;MACRiE,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAE;IACf,CAAC,CAAC;IACF,MAAMC,SAAS,GAAG7P,mDAAG,CAAC;MACpBQ,IAAI,EAAE,KAAK;MACXsP,YAAY,EAAE,MAAM;MACpBC,aAAa,EAAE,EAAE;MACjBC,WAAW,EAAE,EAAE;MACfC,UAAU,EAAE,OAAO;MACnBC,QAAQ,EAAE;IACZ,CAAC,CAAC;IACF,MAAMC,cAAc,GAAGnQ,mDAAG,CAAC,EAAE,CAAC;IAC9B,MAAMoQ,aAAa,GAAGpQ,mDAAG,CAAC,EAAE,CAAC;IAC7B,MAAMqQ,YAAY,GAAGxQ,wDAAQ,CAAC,MAAM;MAClC,IAAI,CAAC6O,kBAAkB,CAACxL,KAAK,IAAIoN,mBAAmB,CAACpN,KAAK,EAAE;QAC1D,OAAO,EAAE;MACX;MACA,OAAOqB,MAAM,CAACmK,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,IAAI7B,kBAAkB,CAACxL,KAAK,CAACsN,GAAG,EAAED,MAAM,IAAI7B,kBAAkB,CAACxL,KAAK,CAACuN,EAAE,EAAEzI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACtJ,CAAC,CAAC;IACF,MAAM0I,aAAa,GAAG7Q,wDAAQ,CAAC,MAAM;MACnC,MAAM8Q,MAAM,GAAGN,YAAY,CAACnN,KAAK;MACjC,IAAI,CAACyN,MAAM,EAAE;QACX,OAAO,IAAI;MACb;MACA,OAAOnR,QAAQ,CAACA,QAAQ,CAACoR,IAAI,CAACC,OAAO,IAAItM,MAAM,CAACsM,OAAO,CAACC,GAAG,IAAID,OAAO,CAACJ,EAAE,IAAI,EAAE,CAAC,KAAKE,MAAM,CAAC,IAAI,IAAI;IACtG,CAAC,CAAC;IACF,MAAMI,aAAa,GAAGlR,wDAAQ,CAAC,MAAM;MACnC,MAAMgR,OAAO,GAAGH,aAAa,CAACxN,KAAK;MACnC,MAAM8N,YAAY,GAAGtC,kBAAkB,CAACxL,KAAK,IAAI,CAAC,CAAC;MACnD,MAAM+N,OAAO,GAAGJ,OAAO,EAAEI,OAAO,IAAI,CAAC,CAAC;MACtC,MAAMxJ,WAAW,GAAGoJ,OAAO,EAAEK,KAAI,IAC5BD,OAAO,CAACxJ,WAAU,IAClBwJ,OAAO,CAACvF,IAAG,IACXmF,OAAO,EAAE9D,KAAI,IACbiE,YAAY,CAACjE,KAAI,IACjBsD,YAAY,CAACnN,KAAI,IACjB,MAAM;MACX,MAAMiO,OAAO,GAAGF,OAAO,CAACxJ,WAAW,IAAIwJ,OAAO,CAACvF,IAAI,IAAImF,OAAO,EAAE9D,KAAK,IAAIiE,YAAY,CAACjE,KAAK,IAAI,EAAE;MAEjG,OAAO;QACL+D,GAAG,EAAET,YAAY,CAACnN,KAAK;QACvBuE,WAAW;QACX0J,OAAO;QACP1Q,MAAM,EAAEwQ,OAAO,CAACxQ,MAAM,IAAIuQ,YAAY,CAACR,GAAG,EAAE/P,MAAM,IAAI,EAAE;QACxD2Q,OAAO,EAAEH,OAAO,CAACG,OAAO,IAAIJ,YAAY,CAACR,GAAG,EAAEY,OAAO,IAAI,EAAE;QAC3D1J,QAAQ,EAAEmJ,OAAO,EAAEnJ,QAAQ,IAAIsJ,YAAY,CAACtJ,QAAQ,IAAI,EAAE;QAC1D2J,UAAU,EAAE9M,MAAM,CAACkD,WAAW,IAAI,GAAG,CAAC,CAACjD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;QAChEyM,KAAK,EAAEL,OAAO,EAAEK,KAAK,IAAI;MAC3B,CAAC;IACH,CAAC,CAAC;IACF,MAAMZ,mBAAmB,GAAGzQ,wDAAQ,CAAC,MAAM;MACzC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAACyR,QAAQ,CAAC5C,kBAAkB,CAACxL,KAAK,EAAEqO,IAAI,KAC9D7C,kBAAkB,CAACxL,KAAK,EAAEsN,GAAG,EAAEe,IAAI,KAAK,OAAO;IACtD,CAAC,CAAC;IACF,MAAMC,gBAAgB,GAAG3R,wDAAQ,CAAC,MAAM;MACtC,OAAOsP,WAAW,CAACjM,KAAK,EAAEuO,MAAM,IAAI/C,kBAAkB,CAACxL,KAAK,EAAEwO,IAAI,IAAIhD,kBAAkB,CAACxL,KAAK,EAAEsN,GAAG,EAAEkB,IAAI,IAAI,EAAE;IACjH,CAAC,CAAC;IACF,MAAMC,YAAY,GAAG9R,wDAAQ,CAAC,MAAM2R,gBAAgB,CAACtO,KAAK,KAAK,OAAO,CAAC;IACvE,MAAM0O,cAAc,GAAG/R,wDAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAACyR,QAAQ,CAACE,gBAAgB,CAACtO,KAAK,CAAC,CAAC;IAC1F,MAAM2O,kBAAkB,GAAGhS,wDAAQ,CAAC,MAAM;MACxC,MAAMiS,SAAS,GAAG;QAAEC,KAAK,EAAE,CAAC;QAAEC,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAE,CAAC;MACnD,OAAO7C,YAAY,CAAClM,KAAI,CACrBgP,GAAG,CAAC,CAACD,MAAM,EAAEvJ,KAAK,MAAM;QAAEuJ,MAAM;QAAEvJ;MAAM,CAAC,CAAC,EAC1CyJ,IAAI,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QACrB,MAAMC,SAAS,GAAGR,SAAS,CAACM,IAAI,CAACH,MAAM,CAACP,IAAI,CAAC,IAAI,CAAC;QAClD,MAAMa,UAAU,GAAGT,SAAS,CAACO,KAAK,CAACJ,MAAM,CAACP,IAAI,CAAC,IAAI,CAAC;QACpD,OAAOY,SAAS,GAAGC,UAAU,IAAIH,IAAI,CAAC1J,KAAK,GAAG2J,KAAK,CAAC3J,KAAK;MAC3D,CAAC,EACAwJ,GAAG,CAACvO,IAAI,IAAIA,IAAI,CAACsO,MAAM,CAAC;IAC7B,CAAC,CAAC;IACF,MAAMO,qBAAqB,GAAG3S,wDAAQ,CAAC,MAAMuP,YAAY,CAAClM,KAAK,CAACQ,MAAM,CAACuO,MAAM,IAAIA,MAAM,CAACP,IAAI,KAAK,OAAO,CAAC,CAAC;IAC1G,MAAMe,mBAAmB,GAAG5S,wDAAQ,CAAC,MAAMuP,YAAY,CAAClM,KAAK,CAACQ,MAAM,CAACuO,MAAM,IAAIA,MAAM,CAACP,IAAI,KAAK,OAAO,CAAC,CAAC;IACxG,MAAMgB,aAAa,GAAG7S,wDAAQ,CAAC,MAAMrB,aAAa,CAACkU,aAAa,IAAI,IAAI,CAAC;IACzE,MAAMC,kBAAkB,GAAG9S,wDAAQ,CAAC,MAAM6S,aAAa,CAACxP,KAAK,EAAE0P,KAAK,IAAI,IAAI,CAAC;IAC7E,MAAMC,oBAAoB,GAAGhT,wDAAQ,CAAC,MAAM;MAC1C,OAAO6S,aAAa,CAACxP,KAAK,EAAE4P,gBAAgB,KAAK,OAAO,IAAIxH,OAAO,CAACoH,aAAa,CAACxP,KAAK,EAAE0P,KAAK,CAAC;IACjG,CAAC,CAAC;IACF,MAAMG,mBAAmB,GAAGlT,wDAAQ,CAAC,MAAM;MACzC,OAAO8S,kBAAkB,CAACzP,KAAK,EAAE8P,MAAM,IAAI;QACzCC,IAAI,EAAE,CAAC;QACPC,MAAM,EAAE,CAAC;QACTC,WAAW,EAAE,CAAC;QACdC,KAAK,EAAE;MACT,CAAC;IACH,CAAC,CAAC;IACF,MAAMC,oBAAoB,GAAGxT,wDAAQ,CAAC,MAAM;MAC1C,OAAOuP,YAAY,CAAClM,KAAK,CAACQ,MAAM,CAACuO,MAAM,IAAI;QACzC,IAAIA,MAAM,CAACnB,GAAG,KAAKvS,OAAO,CAACG,MAAM,IAAIuT,MAAM,CAACP,IAAI,KAAK,OAAO,EAAE;UAC5D,OAAO,KAAK;QACd;QACA,IAAIF,gBAAgB,CAACtO,KAAK,KAAK,OAAO,EAAE;UACtC,OAAO+O,MAAM,CAACP,IAAI,KAAK,QAAQ;QACjC;QACA,OAAOF,gBAAgB,CAACtO,KAAK,KAAK,OAAO;MAC3C,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMoQ,UAAU,GAAGzT,wDAAQ,CAAC,MAAM;MAChC,IAAI6O,kBAAkB,CAACxL,KAAK,EAAEqO,IAAI,KAAK,SAAS,IAAI,CAAC/S,aAAa,CAAC+U,yBAAyB,EAAE;QAC5F,OAAO,aAAa;MACtB;MACA,OAAOhV,OAAO,CAACiV,oBAAoB,KAAKjV,OAAO,CAACkV,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;IAC5E,CAAC,CAAC;IAEF,SAASC,gBAAgBA,CAACxQ,KAAK,EAAE;MAC/B,MAAMyQ,SAAS,GAAG3M,MAAM,CAAC9D,KAAK,IAAI,CAAC,CAAC;MACpC,IAAI,CAACyQ,SAAS,EAAE;QACd,OAAO,IAAI;MACb;MACA,OAAO,IAAIC,IAAI,CAACC,cAAc,CAAC,OAAO,EAAE;QACtCC,IAAI,EAAE,SAAS;QACfC,KAAK,EAAE,SAAS;QAChBC,GAAG,EAAE,SAAS;QACdC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE,SAAS;QACjBC,MAAM,EAAE,SAAS;QACjBC,MAAM,EAAE,KAAK;QACbC,QAAQ,EAAET,IAAI,CAACC,cAAc,CAAC,CAAC,CAACS,eAAe,CAAC,CAAC,CAACD;MACpD,CAAC,CAAC,CAACE,MAAM,CAACZ,SAAS,CAAC;IACtB;IAEA,SAASa,gBAAgBA,CAACvC,MAAM,EAAE;MAChC,OAAOA,MAAM,EAAEvG,IAAI,IAAIuG,MAAM,EAAExK,WAAW,IAAIwK,MAAM,EAAEd,OAAO,IAAIc,MAAM,EAAEnB,GAAG,IAAI,GAAG;IACrF;IAEA,SAAS2D,kBAAkBA,CAACxC,MAAM,EAAE;MAClC,OAAO1N,MAAM,CAACiQ,gBAAgB,CAACvC,MAAM,CAAC,IAAI,GAAG,CAAC,CAACzN,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAC1E;IAEA,SAASiQ,eAAeA,CAAChD,IAAI,EAAE;MAC7B,IAAIA,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,IAAI;MACb;MACA,IAAIA,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,KAAK;MACd;MACA,OAAO,EAAE;IACX;IAEA,SAASiD,cAAcA,CAAA,EAAG;MACxBhG,aAAa,CAACzL,KAAK,GAAG,KAAK;IAC7B;IAEA,SAAS0R,eAAeA,CAAA,EAAG;MACzB,IAAI,CAACtE,mBAAmB,CAACpN,KAAK,EAAE;QAC9B;MACF;MACAyL,aAAa,CAACzL,KAAK,GAAG,CAACyL,aAAa,CAACzL,KAAK;IAC5C;IAEA,eAAe2R,iBAAiBA,CAAA,EAAG;MACjC,IAAI,CAACnG,kBAAkB,CAACxL,KAAK,IAAIoN,mBAAmB,CAACpN,KAAK,EAAE;QAC1D;MACF;MACAyR,cAAc,CAAC,CAAC;MAChB5F,mBAAmB,CAAC7L,KAAK,GAAG,EAAE;MAC9B8L,kBAAkB,CAAC9L,KAAK,GAAG,EAAE;MAC7B2L,gBAAgB,CAAC3L,KAAK,GAAG6N,aAAa,CAAC7N,KAAK,CAACgO,KAAK,IAAI,EAAE;MACxDtC,iBAAiB,CAAC1L,KAAK,GAAG,IAAI;MAC9B1D,QAAQ,CAACE,eAAe,CAAC,CAAC,CAACoV,IAAI,CAAC,MAAM;QACpC,IAAIlG,iBAAiB,CAAC1L,KAAK,EAAE;UAC3B2L,gBAAgB,CAAC3L,KAAK,GAAG6N,aAAa,CAAC7N,KAAK,CAACgO,KAAK,IAAI,EAAE;QAC1D;MACF,CAAC,CAAC,CAAC6D,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpB;IAEA,SAASC,kBAAkBA,CAAA,EAAG;MAC5B,IAAIlG,mBAAmB,CAAC5L,KAAK,EAAE;QAC7B;MACF;MACA0L,iBAAiB,CAAC1L,KAAK,GAAG,KAAK;MAC/B6L,mBAAmB,CAAC7L,KAAK,GAAG,EAAE;MAC9B8L,kBAAkB,CAAC9L,KAAK,GAAG,EAAE;IAC/B;IAEA,eAAe+R,eAAeA,CAAA,EAAG;MAC/B,MAAMtE,MAAM,GAAGI,aAAa,CAAC7N,KAAK,CAAC4N,GAAG;MACtC,IAAI,CAACH,MAAM,IAAI7B,mBAAmB,CAAC5L,KAAK,EAAE;QACxC;MACF;MACA4L,mBAAmB,CAAC5L,KAAK,GAAG,IAAI;MAChC6L,mBAAmB,CAAC7L,KAAK,GAAG,EAAE;MAC9B8L,kBAAkB,CAAC9L,KAAK,GAAG,EAAE;MAC7B,IAAI;QACF,MAAMgS,EAAE,GAAG,MAAM1V,QAAQ,CAAC2V,kBAAkB,CAACxE,MAAM,EAAE9B,gBAAgB,CAAC3L,KAAK,CAAC;QAC5E,IAAI,CAACgS,EAAE,EAAE;UACPlG,kBAAkB,CAAC9L,KAAK,GAAG1D,QAAQ,CAAC4V,WAAW,IAAI,SAAS;UAC5D;QACF;QACA,MAAM5V,QAAQ,CAACE,eAAe,CAAC;UAAE2G,KAAK,EAAE;QAAK,CAAC,CAAC,CAAC0O,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAMM,gBAAgB,GAAG7V,QAAQ,CAACA,QAAQ,CAACoR,IAAI,CAACC,OAAO,IAAItM,MAAM,CAACsM,OAAO,CAACC,GAAG,IAAID,OAAO,CAACJ,EAAE,IAAI,EAAE,CAAC,KAAKE,MAAM,CAAC,IAAID,aAAa,CAACxN,KAAK;QACrI,MAAMoS,SAAS,GAAGD,gBAAgB,EAAEtI,KAAI,IAClC8B,gBAAgB,CAAC3L,KAAK,IAAI6N,aAAa,CAAC7N,KAAK,CAACiO,OAAO,IAAIJ,aAAa,CAAC7N,KAAK,CAACuE,WAAW,IAAIkJ,MAAO;QACzGnS,aAAa,CAAC+W,kBAAkB,CAAC;UAC/B,GAAG7G,kBAAkB,CAACxL,KAAK;UAC3B6J,KAAK,EAAEuI,SAAS;UAChB5N,QAAQ,EAAE2N,gBAAgB,EAAE3N,QAAQ,IAAIgH,kBAAkB,CAACxL,KAAK,EAAEwE,QAAQ,IAAI,EAAE;UAChF2J,UAAU,EAAE9M,MAAM,CAAC+Q,SAAS,IAAI,GAAG,CAAC,CAAC9Q,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;UAC9D+L,GAAG,EAAE;YACH,IAAI9B,kBAAkB,CAACxL,KAAK,EAAEsN,GAAG,IAAI,CAAC,CAAC,CAAC;YACxCD,MAAM,EAAEI,MAAM;YACdlQ,MAAM,EAAE4U,gBAAgB,EAAEpE,OAAO,EAAExQ,MAAM,IAAIiO,kBAAkB,CAACxL,KAAK,EAAEsN,GAAG,EAAE/P,MAAM,IAAI,EAAE;YACxF2Q,OAAO,EAAEiE,gBAAgB,EAAEpE,OAAO,EAAEG,OAAO,IAAI1C,kBAAkB,CAACxL,KAAK,EAAEsN,GAAG,EAAEY,OAAO,IAAI,EAAE;YAC3FF,KAAK,EAAEmE,gBAAgB,EAAEnE,KAAK,IAAIrC,gBAAgB,CAAC3L;UACrD;QACF,CAAC,CAAC;QACF2L,gBAAgB,CAAC3L,KAAK,GAAGmS,gBAAgB,EAAEnE,KAAK,IAAIrC,gBAAgB,CAAC3L,KAAK;QAC1E6L,mBAAmB,CAAC7L,KAAK,GAAG,QAAQ;MACtC,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACdyJ,kBAAkB,CAAC9L,KAAK,GAAGqC,KAAK,CAACC,OAAO,IAAI,SAAS;MACvD,CAAC,SAAS;QACRsJ,mBAAmB,CAAC5L,KAAK,GAAG,KAAK;MACnC;IACF;IAEA,SAASsS,0BAA0BA,CAAA,EAAG;MACpChW,QAAQ,CAACE,eAAe,CAAC;QAAE2G,KAAK,EAAE;MAAK,CAAC,CAAC,CAAC0O,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACzDvW,aAAa,CAACiX,kBAAkB,CAAC;QAAEC,gBAAgB,EAAE;MAAK,CAAC,CAAC;MAC5D,IAAIzG,UAAU,CAAC/L,KAAK,KAAK,SAAS,EAAE;QAClCyS,gBAAgB,CAAC,CAAC;MACpB;IACF;IAEA,SAASC,eAAeA,CAAA,EAAG;MACzB3G,UAAU,CAAC/L,KAAK,GAAG,EAAE;MACrBgM,SAAS,CAAChM,KAAK,GAAG,KAAK;MACvB2S,qBAAqB,CAAC,CAAC;IACzB;IAEA,eAAeC,eAAeA,CAAA,EAAG;MAC/B,IAAI,CAACvX,OAAO,CAACG,MAAM,IAAI,CAACgQ,kBAAkB,CAACxL,KAAK,EAAEqN,MAAM,EAAE;QACxD,OAAO,IAAI;MACb;MACArB,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACFiM,WAAW,CAACjM,KAAK,GAAG,MAAMhD,mEAAQ,CAAC6V,cAAc,CAACxX,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,CAAC;QAClG,OAAOpB,WAAW,CAACjM,KAAK;MAC1B,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,SAAS,CAAC;QACxD,OAAO,IAAI;MACb,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,eAAe+S,iBAAiBA,CAAA,EAAG;MACjC,IAAI,CAAC3F,mBAAmB,CAACpN,KAAK,EAAE;QAC9B;MACF;MACAyR,cAAc,CAAC,CAAC;MAChB1F,UAAU,CAAC/L,KAAK,GAAG,UAAU;MAC7B,MAAM4S,eAAe,CAAC,CAAC;IACzB;IAEA,eAAeI,gBAAgBA,CAAA,EAAG;MAChCvB,cAAc,CAAC,CAAC;MAChB1F,UAAU,CAAC/L,KAAK,GAAG,SAAS;MAC5B,MAAMyS,gBAAgB,CAAC,CAAC;IAC1B;IAEA,eAAeA,gBAAgBA,CAAA,EAAG;MAChCzG,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACFkM,YAAY,CAAClM,KAAK,GAAG,MAAMhD,mEAAQ,CAACiW,eAAe,CAAC5X,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,CAAC;QACpGhB,gBAAgB,CAACrM,KAAK,GAAGkM,YAAY,CAAClM,KAAI,CACvCQ,MAAM,CAACuO,MAAM,IAAIA,MAAM,CAACP,IAAI,KAAK,OAAO,EACxCQ,GAAG,CAACD,MAAM,IAAIA,MAAM,CAACnB,GAAG,CAAC;QAC5B,OAAO1B,YAAY,CAAClM,KAAK;MAC3B,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,QAAQ,CAAC;QACvD,OAAO,EAAE;MACX,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,eAAekT,cAAcA,CAAA,EAAG;MAC9BzB,cAAc,CAAC,CAAC;MAChB1F,UAAU,CAAC/L,KAAK,GAAG,OAAO;MAC1B,MAAMmT,MAAM,GAAG,MAAMP,eAAe,CAAC,CAAC;MACtCzG,eAAe,CAACnM,KAAK,GAAGmT,MAAM,EAAEC,OAAO,IAAI,EAAE;IAC/C;IAEA,SAASC,cAAcA,CAACrT,KAAK,EAAE;MAC7B,MAAMyQ,SAAS,GAAG3M,MAAM,CAAC9D,KAAK,IAAI,CAAC,CAAC;MACpC,IAAI,CAACyQ,SAAS,EAAE;QACd,OAAO,EAAE;MACX;MACA,MAAM6C,IAAI,GAAG,IAAIC,IAAI,CAAC9C,SAAS,CAAC;MAChC,MAAM+C,KAAK,GAAG,IAAID,IAAI,CAACD,IAAI,CAACG,OAAO,CAAC,CAAC,GAAGH,IAAI,CAACI,iBAAiB,CAAC,CAAC,GAAG,KAAK,CAAC;MACzE,OAAOF,KAAK,CAACG,WAAW,CAAC,CAAC,CAACrS,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACzC;IAEA,SAASsS,cAAcA,CAAC5T,KAAK,EAAE;MAC7B,OAAOA,KAAK,GAAG,IAAIuT,IAAI,CAACvT,KAAK,CAAC,CAACyT,OAAO,CAAC,CAAC,GAAG,CAAC;IAC9C;IAEA,SAASI,uBAAuBA,CAAA,EAAG;MACjClB,qBAAqB,CAAC,CAAC;MACvBnG,YAAY,CAACxM,KAAK,GAAG;QACnBwI,IAAI,EAAEyD,WAAW,CAACjM,KAAK,EAAEwI,IAAI,IAAIgD,kBAAkB,CAACxL,KAAK,EAAE6J,KAAK,IAAI,EAAE;QACtE4C,YAAY,EAAER,WAAW,CAACjM,KAAK,EAAEyM,YAAY,IAAI,EAAE;QACnDC,WAAW,EAAET,WAAW,CAACjM,KAAK,EAAE0M,WAAW,IAAI;MACjD,CAAC;MACD,MAAMoH,OAAO,GAAG7H,WAAW,CAACjM,KAAK,EAAE+T,WAAW,IAAI,CAAC,CAAC;MACpDpH,SAAS,CAAC3M,KAAK,GAAG;QAChB1C,IAAI,EAAEwW,OAAO,CAACxW,IAAI,IAAI,KAAK;QAC3BsP,YAAY,EAAEkH,OAAO,CAAClH,YAAY,IAAI,MAAM;QAC5CC,aAAa,EAAEwG,cAAc,CAACS,OAAO,CAACE,UAAU,CAAC;QACjDlH,WAAW,EAAEuG,cAAc,CAACS,OAAO,CAACG,QAAQ,CAAC;QAC7ClH,UAAU,EAAE+G,OAAO,CAAC/G,UAAU,IAAI,OAAO;QACzCC,QAAQ,EAAE8G,OAAO,CAAC9G,QAAQ,IAAI;MAChC,CAAC;IACH;IAEA,SAAS2F,qBAAqBA,CAAA,EAAG;MAC/B1F,cAAc,CAACjN,KAAK,GAAG,EAAE;MACzBkN,aAAa,CAAClN,KAAK,GAAG,EAAE;IAC1B;IAEA,eAAekU,eAAeA,CAAA,EAAG;MAC/B,IAAI,CAACxF,cAAc,CAAC1O,KAAK,EAAE;QACzB;MACF;MACAyR,cAAc,CAAC,CAAC;MAChB1F,UAAU,CAAC/L,KAAK,GAAG,QAAQ;MAC3BoM,aAAa,CAACpM,KAAK,GAAGyO,YAAY,CAACzO,KAAK,GAAG,QAAQ,GAAG,SAAS;MAC/D,MAAM4S,eAAe,CAAC,CAAC;MACvBiB,uBAAuB,CAAC,CAAC;MACzB,MAAMpB,gBAAgB,CAAC,CAAC;IAC1B;IAEA,eAAe0B,iBAAiBA,CAAA,EAAG;MACjCpI,UAAU,CAAC/L,KAAK,GAAG,UAAU;MAC7BuM,gBAAgB,CAACvM,KAAK,GAAG,EAAE;MAC3B,MAAMyS,gBAAgB,CAAC,CAAC;IAC1B;IAEA,eAAe2B,cAAcA,CAAA,EAAG;MAC9B,IAAI,CAAC5I,kBAAkB,CAACxL,KAAK,EAAEqN,MAAM,IAAIrB,SAAS,CAAChM,KAAK,EAAE;QACxD;MACF;MACAgM,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,MAAMgO,KAAK,GAAG,MAAMhR,mEAAQ,CAACqX,gBAAgB,CAAChZ,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,EAAElB,eAAe,CAACnM,KAAK,CAAC;QACrHiM,WAAW,CAACjM,KAAK,GAAG;UAClB,IAAIiM,WAAW,CAACjM,KAAK,IAAI,CAAC,CAAC,CAAC;UAC5BoT,OAAO,EAAEpF;QACX,CAAC;QACD1S,aAAa,CAACgZ,eAAe,CAAC,SAAS,CAAC;QACxC5B,eAAe,CAAC,CAAC;MACnB,CAAC,CAAC,OAAOrQ,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,UAAU,CAAC;MAC3D,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,SAASuU,WAAWA,CAAC/Y,MAAM,EAAE;MAC3B,MAAMgZ,QAAQ,GAAG,IAAIC,GAAG,CAACpI,gBAAgB,CAACrM,KAAK,CAAC;MAChD,IAAIwU,QAAQ,CAACE,GAAG,CAAClZ,MAAM,CAAC,EAAE;QACxBgZ,QAAQ,CAACG,MAAM,CAACnZ,MAAM,CAAC;MACzB,CAAC,MAAM;QACLgZ,QAAQ,CAACI,GAAG,CAACpZ,MAAM,CAAC;MACtB;MACA6Q,gBAAgB,CAACrM,KAAK,GAAG6U,KAAK,CAACC,IAAI,CAACN,QAAQ,CAAC;IAC/C;IAEA,SAASO,UAAUA,CAACvZ,MAAM,EAAE;MAC1B,MAAMgZ,QAAQ,GAAG,IAAIC,GAAG,CAACnI,eAAe,CAACtM,KAAK,CAAC;MAC/C,IAAIwU,QAAQ,CAACE,GAAG,CAAClZ,MAAM,CAAC,EAAE;QACxBgZ,QAAQ,CAACG,MAAM,CAACnZ,MAAM,CAAC;MACzB,CAAC,MAAM;QACLgZ,QAAQ,CAACI,GAAG,CAACpZ,MAAM,CAAC;MACtB;MACA8Q,eAAe,CAACtM,KAAK,GAAG6U,KAAK,CAACC,IAAI,CAACN,QAAQ,CAAC;IAC9C;IAEA,eAAeQ,eAAeA,CAAA,EAAG;MAC/B,IAAI,CAACxJ,kBAAkB,CAACxL,KAAK,EAAEqN,MAAM,IAAIrB,SAAS,CAAChM,KAAK,EAAE;QACxD;MACF;MACAgM,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,MAAMhD,mEAAQ,CAACiY,cAAc,CAAC5Z,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,EAAEhB,gBAAgB,CAACrM,KAAK,CAAC;QACtGkM,YAAY,CAAClM,KAAK,GAAGkM,YAAY,CAAClM,KAAK,CAACgP,GAAG,CAACD,MAAM,IAAI;UACpD,IAAIA,MAAM,CAACP,IAAI,KAAK,OAAO,EAAE;YAC3B,OAAOO,MAAM;UACf;UACA,OAAO;YACL,GAAGA,MAAM;YACTP,IAAI,EAAEnC,gBAAgB,CAACrM,KAAK,CAACoO,QAAQ,CAACW,MAAM,CAACnB,GAAG,CAAC,GAAG,OAAO,GAAG;UAChE,CAAC;QACH,CAAC,CAAC;QACFtS,aAAa,CAACgZ,eAAe,CAAC,QAAQ,CAAC;MACzC,CAAC,CAAC,OAAOjS,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,SAAS,CAAC;MAC1D,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,eAAekV,gBAAgBA,CAAA,EAAG;MAChC,IAAI,CAAC1J,kBAAkB,CAACxL,KAAK,EAAEqN,MAAM,IAAIrB,SAAS,CAAChM,KAAK,EAAE;QACxD;MACF;MACAgM,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,MAAMX,MAAM,GAAG,MAAMrC,mEAAQ,CAACmY,kBAAkB,CAAC9Z,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,EAAEb,YAAY,CAACxM,KAAK,CAAC;QACrHiM,WAAW,CAACjM,KAAK,GAAG;UAClB,IAAIiM,WAAW,CAACjM,KAAK,IAAI,CAAC,CAAC,CAAC;UAC5BwI,IAAI,EAAEnJ,MAAM,CAACmJ,IAAI;UACjBiE,YAAY,EAAEpN,MAAM,CAACoN,YAAY;UACjCC,WAAW,EAAErN,MAAM,CAACqN;QACtB,CAAC;QACDpR,aAAa,CAAC+W,kBAAkB,CAAC;UAC/B,GAAG7G,kBAAkB,CAACxL,KAAK;UAC3B6J,KAAK,EAAExK,MAAM,CAACmJ,IAAI;UAClB2F,UAAU,EAAE9M,MAAM,CAAChC,MAAM,CAACmJ,IAAI,IAAI,GAAG,CAAC,CAAClH,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;UAChE6T,SAAS,EAAEtR,MAAM,CAACzE,MAAM,CAAC+V,SAAS,IAAI7B,IAAI,CAAC8B,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC;QACF/Z,aAAa,CAACgZ,eAAe,CAAC,QAAQ,CAAC;MACzC,CAAC,CAAC,OAAOjS,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,SAAS,CAAC;MAC1D,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,eAAesV,mBAAmBA,CAAA,EAAG;MACnC,IAAI,CAAChJ,eAAe,CAACtM,KAAK,CAACK,MAAM,IAAI2L,SAAS,CAAChM,KAAK,EAAE;QACpD;MACF;MACA,IAAI,CAACgD,MAAM,CAACuS,OAAO,CAAC,cAAc,CAAC,EAAE;QACnC;MACF;MACAvJ,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,MAAMX,MAAM,GAAG,MAAMrC,mEAAQ,CAACwY,gBAAgB,CAACna,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,EAAEf,eAAe,CAACtM,KAAK,CAAC;QACtH,MAAMyV,OAAO,GAAG,IAAIhB,GAAG,CAACpV,MAAM,CAACqW,UAAU,IAAIpJ,eAAe,CAACtM,KAAK,CAAC;QACnEkM,YAAY,CAAClM,KAAK,GAAGkM,YAAY,CAAClM,KAAK,CAACQ,MAAM,CAACuO,MAAM,IAAI,CAAC0G,OAAO,CAACf,GAAG,CAAC3F,MAAM,CAACnB,GAAG,CAAC,CAAC;QAClFtB,eAAe,CAACtM,KAAK,GAAG,EAAE;QAC1B1E,aAAa,CAACgZ,eAAe,CAAC,OAAO,CAAC;MACxC,CAAC,CAAC,OAAOjS,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,MAAM,CAAC;MACvD,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,eAAe2V,eAAeA,CAAA,EAAG;MAC/B,IAAI,CAACnK,kBAAkB,CAACxL,KAAK,EAAEqN,MAAM,IAAIrB,SAAS,CAAChM,KAAK,EAAE;QACxD;MACF;MACA2S,qBAAqB,CAAC,CAAC;MACvB3G,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,MAAM8T,OAAO,GAAG,MAAM9W,mEAAQ,CAAC4Y,sBAAsB,CAACva,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,EAAE;UACrG/P,IAAI,EAAEqP,SAAS,CAAC3M,KAAK,CAAC1C,IAAI;UAC1BsP,YAAY,EAAED,SAAS,CAAC3M,KAAK,CAAC4M,YAAY;UAC1CoH,UAAU,EAAEJ,cAAc,CAACjH,SAAS,CAAC3M,KAAK,CAAC6M,aAAa,CAAC;UACzDoH,QAAQ,EAAEL,cAAc,CAACjH,SAAS,CAAC3M,KAAK,CAAC8M,WAAW,CAAC;UACrDC,UAAU,EAAEJ,SAAS,CAAC3M,KAAK,CAAC+M,UAAU;UACtCC,QAAQ,EAAEL,SAAS,CAAC3M,KAAK,CAACgN;QAC5B,CAAC,CAAC;QACFf,WAAW,CAACjM,KAAK,GAAG;UAClB,IAAIiM,WAAW,CAACjM,KAAK,IAAI,CAAC,CAAC,CAAC;UAC5B+T,WAAW,EAAED;QACf,CAAC;QACD7G,cAAc,CAACjN,KAAK,GAAG,SAAS;MAClC,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACd6K,aAAa,CAAClN,KAAK,GAAGqC,KAAK,CAACC,OAAO,IAAI,UAAU;MACnD,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,eAAe6V,iBAAiBA,CAAA,EAAG;MACjC,IAAI,CAACrK,kBAAkB,CAACxL,KAAK,IAAIgM,SAAS,CAAChM,KAAK,EAAE;QAChD;MACF;MACA,IAAI,CAACgD,MAAM,CAACuS,OAAO,CAAC,UAAU,CAAC,EAAE;QAC/B;MACF;MACAvJ,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,MAAMgS,EAAE,GAAG,MAAM1W,aAAa,CAACwa,UAAU,CAACtK,kBAAkB,CAACxL,KAAK,CAAC;MACnEgM,SAAS,CAAChM,KAAK,GAAG,KAAK;MACvB,IAAIgS,EAAE,EAAE;QACNU,eAAe,CAAC,CAAC;MACnB;IACF;IAEA,eAAeqD,mBAAmBA,CAAA,EAAG;MACnC,IAAI,CAACvK,kBAAkB,CAACxL,KAAK,IAAIgM,SAAS,CAAChM,KAAK,EAAE;QAChD;MACF;MACA,IAAI,CAACgD,MAAM,CAACuS,OAAO,CAAC,yBAAyB,CAAC,EAAE;QAC9C;MACF;MACAvJ,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,MAAMgS,EAAE,GAAG,MAAM1W,aAAa,CAAC0a,YAAY,CAACxK,kBAAkB,CAACxL,KAAK,CAAC;MACrEgM,SAAS,CAAChM,KAAK,GAAG,KAAK;MACvB,IAAIgS,EAAE,EAAE;QACNU,eAAe,CAAC,CAAC;MACnB;IACF;IAEA,eAAeuD,oBAAoBA,CAAA,EAAG;MACpC,IAAI,CAACzK,kBAAkB,CAACxL,KAAK,EAAEqN,MAAM,IAAI,CAACd,gBAAgB,CAACvM,KAAK,IAAIgM,SAAS,CAAChM,KAAK,EAAE;QACnF;MACF;MACA,IAAI,CAACgD,MAAM,CAACuS,OAAO,CAAC,cAAc,CAAC,EAAE;QACnC;MACF;MACAvJ,SAAS,CAAChM,KAAK,GAAG,IAAI;MACtB,IAAI;QACF,MAAMhD,mEAAQ,CAACkZ,aAAa,CAAC7a,OAAO,CAACG,MAAM,EAAEgQ,kBAAkB,CAACxL,KAAK,CAACqN,MAAM,EAAEd,gBAAgB,CAACvM,KAAK,CAAC;QACrGiM,WAAW,CAACjM,KAAK,GAAG;UAClB,IAAIiM,WAAW,CAACjM,KAAK,IAAI,CAAC,CAAC,CAAC;UAC5BuO,MAAM,EAAE;QACV,CAAC;QACD/C,kBAAkB,CAACxL,KAAK,CAACwO,IAAI,GAAG,QAAQ;QACxC,IAAIhD,kBAAkB,CAACxL,KAAK,CAACsN,GAAG,EAAE;UAChC9B,kBAAkB,CAACxL,KAAK,CAACsN,GAAG,CAACkB,IAAI,GAAG,QAAQ;QAC9C;QACAlT,aAAa,CAACgZ,eAAe,CAAC,OAAO,CAAC;QACtC5B,eAAe,CAAC,CAAC;QACjBpX,aAAa,CAACiB,0BAA0B,CAAC,CAAC;MAC5C,CAAC,CAAC,OAAO8F,KAAK,EAAE;QACd/G,aAAa,CAACwX,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,QAAQ,CAAC;MACzD,CAAC,SAAS;QACR0J,SAAS,CAAChM,KAAK,GAAG,KAAK;MACzB;IACF;IAEA,SAASmW,YAAYA,CAACpH,MAAM,EAAE;MAC5B,OAAO1N,MAAM,CAAC0N,MAAM,CAACxK,WAAW,IAAIwK,MAAM,CAACnB,GAAG,IAAI,GAAG,CAAC,CAACtM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAClF;IAEAwE,QAAQ,CAACqQ,gBAAgB,CAAC,OAAO,EAAE3E,cAAc,CAAC;IAClD7U,+DAAe,CAAC,MAAM;MACpBmJ,QAAQ,CAACsQ,mBAAmB,CAAC,OAAO,EAAE5E,cAAc,CAAC;IACvD,CAAC,CAAC;IAEFzW,qDAAK,CACH,MAAMwQ,kBAAkB,CAACxL,KAAK,EAAEuN,EAAE,EAClC,MAAM;MACJkE,cAAc,CAAC,CAAC;MAChBK,kBAAkB,CAAC,CAAC;MACpBY,eAAe,CAAC,CAAC;MACjBzG,WAAW,CAACjM,KAAK,GAAG,IAAI;MACxBkM,YAAY,CAAClM,KAAK,GAAG,EAAE;MACvBmM,eAAe,CAACnM,KAAK,GAAG,EAAE;MAC1BqM,gBAAgB,CAACrM,KAAK,GAAG,EAAE;MAC3BsM,eAAe,CAACtM,KAAK,GAAG,EAAE;MAC1BuM,gBAAgB,CAACvM,KAAK,GAAG,EAAE;MAC3BoM,aAAa,CAACpM,KAAK,GAAG,EAAE;IAC1B,CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACz9B0C;;;;;;;;;;;;;;;;;IAE3C,MAAMsW,KAAK,GAAGC,OASZ;IAEF,MAAMC,IAAI,GAAGC,MAAwD;IACrE,MAAM9Q,IAAI,GAAG7I,kDAAG,CAAC,EAAE,CAAC;IACpB,MAAM4Z,SAAS,GAAG5Z,kDAAG,CAAC,KAAK,CAAC;IAC5B,MAAM6Z,UAAU,GAAG7Z,kDAAG,CAAC,KAAK,CAAC;IAC7B,MAAM8Z,UAAU,GAAG9Z,kDAAG,CAAC,IAAI,CAAC;IAC5B,MAAM+Z,UAAU,GAAG/Z,kDAAG,CAAC,IAAI,CAAC;IAC5B,MAAMga,SAAS,GAAGha,kDAAG,CAAC,IAAI,CAAC;IAC3B,MAAMia,kBAAkB,GAAGja,kDAAG,CAAC,EAAE,CAAC;IAClC,IAAIka,SAAS,GAAG,CAAC;IACjB,MAAMC,SAAS,GAAG,CAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9C,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAG,CAC3C;IAED,SAASxU,MAAMA,CAAA,EAAG;MAChB,MAAMzC,KAAK,GAAG2F,IAAI,CAAC3F,KAAK,CAACyI,IAAI,CAAC,CAAC;MAC/B,MAAMyO,WAAW,GAAG,CAAC,GAAGH,kBAAkB,CAAC/W,KAAK,CAAC;MACjD,IAAI,CAACA,KAAK,IAAI,CAACkX,WAAW,CAAC7W,MAAM,EAAE;QACjC;MACF;MACA,IAAI6W,WAAW,CAAC7W,MAAM,EAAE;QACtB6W,WAAW,CAACC,OAAO,CAAC,CAACC,UAAU,EAAE5R,KAAK,KAAK;UACzCgR,IAAI,CAAC,iBAAiB,EAAE;YACtBnI,IAAI,EAAE+I,UAAU,CAAC/I,IAAI;YACrBgJ,IAAI,EAAED,UAAU,CAACC,IAAI;YACrB1R,IAAI,EAAEH,KAAK,KAAK,CAAC,GAAGxF,KAAK,GAAG;UAC9B,CAAC,CAAC;QACJ,CAAC,CAAC;QACFsX,uBAAuB,CAAC,CAAC;MAC3B,CAAC,MAAM;QACLd,IAAI,CAAC,MAAM,EAAExW,KAAK,CAAC;MACrB;MACA2F,IAAI,CAAC3F,KAAK,GAAG,EAAE;MACf0W,SAAS,CAAC1W,KAAK,GAAG,KAAK;IACzB;IAEA,SAASuX,iBAAiBA,CAAA,EAAG;MAC3Bb,SAAS,CAAC1W,KAAK,GAAG,CAAC0W,SAAS,CAAC1W,KAAK;IACpC;IAEA,SAASwX,WAAWA,CAACC,KAAK,EAAE;MAC1B,MAAMC,OAAO,GAAGd,UAAU,CAAC5W,KAAK;MAChC,IAAI,CAAC0X,OAAO,EAAE;QACZ/R,IAAI,CAAC3F,KAAK,IAAIyX,KAAK;QACnB;MACF;MACA,MAAME,KAAK,GAAGD,OAAO,CAACE,cAAc,IAAIjS,IAAI,CAAC3F,KAAK,CAACK,MAAM;MACzD,MAAMwX,GAAG,GAAGH,OAAO,CAACI,YAAY,IAAInS,IAAI,CAAC3F,KAAK,CAACK,MAAM;MACrDsF,IAAI,CAAC3F,KAAK,GAAG,GAAG2F,IAAI,CAAC3F,KAAK,CAACsB,KAAK,CAAC,CAAC,EAAEqW,KAAK,CAAC,GAAGF,KAAK,GAAG9R,IAAI,CAAC3F,KAAK,CAACsB,KAAK,CAACuW,GAAG,CAAC,EAAE;MAC5EE,qBAAqB,CAAC,MAAM;QAC1BL,OAAO,CAACM,KAAK,CAAC,CAAC;QACf,MAAMC,MAAM,GAAGN,KAAK,GAAGF,KAAK,CAACpX,MAAM;QACnCqX,OAAO,CAACQ,iBAAiB,CAACD,MAAM,EAAEA,MAAM,CAAC;MAC3C,CAAC,CAAC;IACJ;IAEA,SAASE,WAAWA,CAAA,EAAG;MACrBtB,UAAU,CAAC7W,KAAK,EAAEoY,KAAK,CAAC,CAAC;IAC3B;IAEA,SAASC,UAAUA,CAAA,EAAG;MACpBvB,SAAS,CAAC9W,KAAK,EAAEoY,KAAK,CAAC,CAAC;IAC1B;IAEA,SAASE,qBAAqBA,CAACjB,IAAI,EAAEkB,YAAY,GAAG,MAAM,EAAE;MAC1D,IAAIlB,IAAI,EAAEhJ,IAAI,EAAEpF,UAAU,CAAC,QAAQ,CAAC,EAAE;QACpC,OAAO,OAAO;MAChB;MACA,OAAOsP,YAAY,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM;IACpD;IAEA,SAASC,SAASA,CAACC,KAAK,EAAEF,YAAY,GAAG,MAAM,EAAE;MAC/C,IAAIjC,KAAK,CAACoC,QAAQ,EAAE;QAClB;MACF;MACA,MAAMC,UAAU,GAAG9D,KAAK,CAACC,IAAI,CAAC2D,KAAK,IAAI,EAAE,CAAC,CAACjY,MAAM,CAAC6W,IAAI,IAAIA,IAAI,YAAYuB,IAAI,IAAIvB,IAAI,CAACwB,IAAI,GAAG,CAAC,CAAC;MAChG,IAAI,CAACF,UAAU,CAACtY,MAAM,EAAE;QACtB;MACF;MAEAsY,UAAU,CAACxB,OAAO,CAACE,IAAI,IAAI;QACzB,MAAMhJ,IAAI,GAAGiK,qBAAqB,CAACjB,IAAI,EAAEkB,YAAY,CAAC;QACtDxB,kBAAkB,CAAC/W,KAAK,CAAC8Y,IAAI,CAAC;UAC5BvL,EAAE,EAAE,GAAGgG,IAAI,CAAC8B,GAAG,CAAC,CAAC,IAAI1R,IAAI,CAAC+B,MAAM,CAAC,CAAC,CAAC6D,QAAQ,CAAC,EAAE,CAAC,CAACjI,KAAK,CAAC,CAAC,CAAC,EAAE;UAC1D+M,IAAI;UACJgJ,IAAI;UACJ0B,UAAU,EAAE1K,IAAI,KAAK,OAAO,GAAG/E,GAAG,CAAC0P,eAAe,CAAC3B,IAAI,CAAC,GAAG;QAC7D,CAAC,CAAC;MACJ,CAAC,CAAC;MACFX,SAAS,CAAC1W,KAAK,GAAG,KAAK;IACzB;IAEA,SAASiZ,wBAAwBA,CAAC7B,UAAU,EAAE;MAC5C,IAAIA,UAAU,EAAE2B,UAAU,EAAE;QAC1BzP,GAAG,CAAC4P,eAAe,CAAC9B,UAAU,CAAC2B,UAAU,CAAC;MAC5C;IACF;IAEA,SAASI,uBAAuBA,CAAC3T,KAAK,EAAE;MACtC,MAAM,CAAC4R,UAAU,CAAC,GAAGL,kBAAkB,CAAC/W,KAAK,CAACoZ,MAAM,CAAC5T,KAAK,EAAE,CAAC,CAAC;MAC9DyT,wBAAwB,CAAC7B,UAAU,CAAC;IACtC;IAEA,SAASE,uBAAuBA,CAAA,EAAG;MACjCP,kBAAkB,CAAC/W,KAAK,CAACmX,OAAO,CAAC8B,wBAAwB,CAAC;MAC1DlC,kBAAkB,CAAC/W,KAAK,GAAG,EAAE;IAC/B;IAEA,SAASqZ,gBAAgBA,CAACC,KAAK,EAAEjL,IAAI,EAAE;MACrC,MAAMkL,KAAK,GAAGD,KAAK,CAACjM,MAAM;MAC1B,MAAMoL,KAAK,GAAGc,KAAK,CAACd,KAAK,GAAG5D,KAAK,CAACC,IAAI,CAACyE,KAAK,CAACd,KAAK,CAAC,GAAG,EAAE;MACxDc,KAAK,CAACvZ,KAAK,GAAG,EAAE;MAChB,IAAI,CAACyY,KAAK,CAACpY,MAAM,IAAIiW,KAAK,CAACoC,QAAQ,EAAE;QACnC;MACF;MACAF,SAAS,CAACC,KAAK,EAAEpK,IAAI,CAAC;IACxB;IAEA,SAASmL,eAAeA,CAACF,KAAK,EAAE;MAC9B,MAAMG,KAAK,GAAG5E,KAAK,CAACC,IAAI,CAACwE,KAAK,CAACI,YAAY,EAAED,KAAK,IAAI,EAAE,CAAC;MACzD,OAAOA,KAAK,CAACrL,QAAQ,CAAC,OAAO,CAAC;IAChC;IAEA,SAASuL,eAAeA,CAACL,KAAK,EAAE;MAC9B,IAAIhD,KAAK,CAACoC,QAAQ,IAAI,CAACc,eAAe,CAACF,KAAK,CAAC,EAAE;QAC7C;MACF;MACAtC,SAAS,IAAI,CAAC;MACdL,UAAU,CAAC3W,KAAK,GAAG,IAAI;MACvBsZ,KAAK,CAACI,YAAY,CAACE,UAAU,GAAG,MAAM;IACxC;IAEA,SAASC,cAAcA,CAACP,KAAK,EAAE;MAC7B,IAAIhD,KAAK,CAACoC,QAAQ,IAAI,CAACc,eAAe,CAACF,KAAK,CAAC,EAAE;QAC7C;MACF;MACA3C,UAAU,CAAC3W,KAAK,GAAG,IAAI;MACvBsZ,KAAK,CAACI,YAAY,CAACE,UAAU,GAAG,MAAM;IACxC;IAEA,SAASE,eAAeA,CAAA,EAAG;MACzB9C,SAAS,GAAGrT,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEoT,SAAS,GAAG,CAAC,CAAC;MACtC,IAAIA,SAAS,KAAK,CAAC,EAAE;QACnBL,UAAU,CAAC3W,KAAK,GAAG,KAAK;MAC1B;IACF;IAEA,SAAS+Z,qBAAqBA,CAACL,YAAY,EAAE;MAC3C,MAAMM,KAAK,GAAGnF,KAAK,CAACC,IAAI,CAAC4E,YAAY,EAAEM,KAAK,IAAI,EAAE,CAAC;MACnD,MAAMvB,KAAK,GAAGuB,KAAI,CACfxZ,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACwZ,IAAI,KAAK,MAAM,IAAI,CAACxZ,IAAI,CAACyZ,gBAAgB,GAAG,CAAC,EAAEC,WAAW,EAC9EnL,GAAG,CAACvO,IAAI,IAAIA,IAAI,CAAC2Z,SAAS,CAAC,CAAC,EAC5B5Z,MAAM,CAAC4H,OAAO,CAAC;MAClB,IAAIqQ,KAAK,CAACpY,MAAM,EAAE;QAChB,OAAOoY,KAAK;MACd;MACA,OAAO5D,KAAK,CAACC,IAAI,CAAC4E,YAAY,EAAEjB,KAAK,IAAI,EAAE,CAAC;IAC9C;IAEA,SAAS4B,UAAUA,CAACf,KAAK,EAAE;MACzBtC,SAAS,GAAG,CAAC;MACbL,UAAU,CAAC3W,KAAK,GAAG,KAAK;MACxB,IAAIsW,KAAK,CAACoC,QAAQ,EAAE;QAClB;MACF;MACAF,SAAS,CAACuB,qBAAqB,CAACT,KAAK,CAACI,YAAY,CAAC,CAAC;IACtD;IAEA,SAASY,uBAAuBA,CAACC,aAAa,EAAE;MAC9C,OAAO1F,KAAK,CAACC,IAAI,CAACyF,aAAa,EAAEP,KAAK,IAAI,EAAE,EACzCxZ,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACwZ,IAAI,KAAK,MAAM,IAAIxZ,IAAI,CAAC4N,IAAI,CAACpF,UAAU,CAAC,QAAQ,CAAC,EACrE+F,GAAG,CAACvO,IAAI,IAAIA,IAAI,CAAC2Z,SAAS,CAAC,CAAC,EAC5B5Z,MAAM,CAAC4H,OAAO,CAAC;IACpB;IAEA,SAASoS,WAAWA,CAAClB,KAAK,EAAE;MAC1B,IAAIhD,KAAK,CAACoC,QAAQ,EAAE;QAClB;MACF;MACA,MAAM+B,UAAU,GAAGH,uBAAuB,CAAChB,KAAK,CAACiB,aAAa,CAAC;MAC/D,IAAI,CAACE,UAAU,CAACpa,MAAM,EAAE;QACtB;MACF;MACAiZ,KAAK,CAACoB,cAAc,CAAC,CAAC;MACtBlC,SAAS,CAACiC,UAAU,EAAE,OAAO,CAAC;IAChC;IAEA7d,+DAAe,CAAC0a,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5EmD;AACvC;AAuCpD,MAAMsD,eAAe,GAAG,GAAG;AAC3B,MAAMC,eAAe,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAtCzB,MAAMvE,KAAK,GAAGC,OAyBZ;IAEF,MAAMC,IAAI,GAAGC,MAA0E;IACvF,MAAMna,QAAQ,GAAGF,0EAAe,CAAC,CAAC;IAClC,MAAM0e,MAAM,GAAGhe,kDAAG,CAAC,IAAI,CAAC;IACxB,MAAMie,WAAW,GAAGje,kDAAG,CAAC,IAAI,CAAC;IAC7B,MAAMke,WAAW,GAAGne,uDAAQ,CAAC;MAC3Boe,OAAO,EAAE,KAAK;MACdC,CAAC,EAAE,CAAC;MACJC,CAAC,EAAE,CAAC;MACJ7Y,OAAO,EAAE;IACX,CAAC,CAAC;IAGF,MAAM8Y,oBAAoB,GAAG,IAAI1K,IAAI,CAACC,cAAc,CAAC,OAAO,EAAE;MAC5DI,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,SAAS;MACjBE,MAAM,EAAE,KAAK;MACbC,QAAQ,EAAET,IAAI,CAACC,cAAc,CAAC,CAAC,CAACS,eAAe,CAAC,CAAC,CAACD;IACpD,CAAC,CAAC;IACF,MAAMkK,WAAW,GAAGxe,uDAAQ,CAAC;MAC3Boe,OAAO,EAAE,KAAK;MACdzR,GAAG,EAAE,EAAE;MACPhB,IAAI,EAAE,EAAE;MACR8S,KAAK,EAAE,CAAC;MACRC,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE,CAAC;MACVC,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,KAAK;MACfC,UAAU,EAAE,CAAC;MACbC,UAAU,EAAE,CAAC;MACbC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE;IACf,CAAC,CAAC;IACF,MAAMC,aAAa,GAAGlf,uDAAQ,CAAC;MAC7Boe,OAAO,EAAE,KAAK;MACdrN,GAAG,EAAE,EAAE;MACPrJ,WAAW,EAAE,EAAE;MACf0J,OAAO,EAAE,EAAE;MACX1Q,MAAM,EAAE,EAAE;MACV2Q,OAAO,EAAE,EAAE;MACX1J,QAAQ,EAAE,EAAE;MACZ2J,UAAU,EAAE,EAAE;MACdK,IAAI,EAAE,EAAE;MACRwN,SAAS,EAAE,EAAE;MACbC,YAAY,EAAE,EAAE;MAChBC,UAAU,EAAE,EAAE;MACdC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE,EAAE;MACdC,MAAM,EAAE,KAAK;MACbC,MAAM,EAAE,KAAK;MACbC,MAAM,EAAE,EAAE;MACVla,KAAK,EAAE;IACT,CAAC,CAAC;IAEF,MAAMma,gBAAgB,GAAG7f,uDAAQ,CAAC,OAAO;MACvC8f,SAAS,EAAE,eAAepB,WAAW,CAACG,OAAO,OAAOH,WAAW,CAACI,OAAO,gBAAgBJ,WAAW,CAACC,KAAK,YAAYD,WAAW,CAACE,QAAQ;IAC1I,CAAC,CAAC,CAAC;IAEH,MAAMmB,SAAS,GAAG/f,uDAAQ,CAAC,MAAM;MAC/B,IAAI,CAACqe,WAAW,CAAC1Y,OAAO,EAAE;QACxB,OAAO,EAAE;MACX;MACA,MAAMqa,YAAY,GAAG3B,WAAW,CAAC1Y,OAAO,CAACsa,SAAS,KAAK,KAAK;MAC5D,IAAIC,iBAAiB,CAAC7B,WAAW,CAAC1Y,OAAO,CAAC,EAAE;QAC1C,OAAO,CACL,IAAIqa,YAAY,GAAG,CAAC;UAAEG,MAAM,EAAE,MAAM;UAAE7c,KAAK,EAAE;QAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAC1D;UAAE6c,MAAM,EAAE,MAAM;UAAE7c,KAAK,EAAE;QAAK,CAAC,EAC/B;UAAE6c,MAAM,EAAE,QAAQ;UAAE7c,KAAK,EAAE;QAAK,CAAC,EACjC;UAAE6c,MAAM,EAAE,QAAQ;UAAE7c,KAAK,EAAE;QAAK,EACjC;MACH;MACA,MAAM8c,aAAa,GAAGC,UAAU,CAAChC,WAAW,CAAC1Y,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;MACrE,MAAM0X,KAAK,GAAG,CACZ;QAAE8C,MAAM,EAAE,MAAM;QAAE7c,KAAK,EAAE;MAAK,CAAC,EAC/B;QAAE6c,MAAM,EAAE,QAAQ;QAAE7c,KAAK,EAAE;MAAK,CAAC,EACjC;QAAE6c,MAAM,EAAE,SAAS;QAAE7c,KAAK,EAAE;MAAK,CAAC,EAClC;QAAE6c,MAAM,EAAE,UAAU;QAAE7c,KAAK,EAAE8c;MAAc,CAAC,EAC5C;QAAED,MAAM,EAAE,OAAO;QAAE7c,KAAK,EAAE;MAAK,CAAC,EAChC;QAAE6c,MAAM,EAAE,QAAQ;QAAE7c,KAAK,EAAE;MAAK,CAAC,EACjC;QAAE6c,MAAM,EAAE,QAAQ;QAAE7c,KAAK,EAAE;MAAK,EACjC;MACD,IAAI0c,YAAY,EAAE;QAChB3C,KAAK,CAACiD,OAAO,CAAC;UAAEH,MAAM,EAAE,MAAM;UAAE7c,KAAK,EAAE;QAAK,CAAC,CAAC;QAC9C+Z,KAAK,CAAClB,IAAI,CAAC;UAAEgE,MAAM,EAAE,QAAQ;UAAE7c,KAAK,EAAE;QAAK,CAAC,CAAC;MAC/C,CAAC,MAAM,IAAIqW,KAAK,CAAC4G,eAAe,EAAE;QAChClD,KAAK,CAAClB,IAAI,CAAC;UAAEgE,MAAM,EAAE,QAAQ;UAAE7c,KAAK,EAAE;QAAK,CAAC,CAAC;MAC/C;MACA,OAAO+Z,KAAK;IACd,CAAC,CAAC;IAEF,SAASmD,cAAcA,CAAA,EAAG;MACxBxC,uDAAQ,CAAC,MAAM;QACb5C,qBAAqB,CAAC,MAAM;UAC1B,IAAI+C,MAAM,CAAC9a,KAAK,EAAE;YAChB8a,MAAM,CAAC9a,KAAK,CAACod,SAAS,GAAGtC,MAAM,CAAC9a,KAAK,CAACqd,YAAY;UACpD;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,SAASC,YAAYA,CAAA,EAAG;MACtB,MAAM5F,OAAO,GAAGoD,MAAM,CAAC9a,KAAK;MAC5B,IAAI,CAAC0X,OAAO,EAAE;QACZ,OAAO,IAAI;MACb;MACA,OAAOA,OAAO,CAAC2F,YAAY,GAAG3F,OAAO,CAAC0F,SAAS,GAAG1F,OAAO,CAAC6F,YAAY,GAAG,GAAG;IAC9E;IAEA,SAASC,eAAeA,CAACC,SAAS,EAAE;MAClC9C,wDAAQ,CAAC,MAAM;QACb,IAAI,CAACG,MAAM,CAAC9a,KAAK,IAAI,CAACyd,SAAS,EAAE;UAC/B;QACF;QACA,MAAMC,GAAG,GAAG7I,KAAK,CAACC,IAAI,CAACgG,MAAM,CAAC9a,KAAK,CAAC2d,gBAAgB,CAAC,cAAc,CAAC,EACjEjQ,IAAI,CAACgK,OAAO,IAAIA,OAAO,CAACkG,OAAO,CAACC,UAAU,KAAKJ,SAAS,CAAC;QAC5D,IAAIC,GAAG,EAAE;UACPA,GAAG,CAACI,cAAc,CAAC;YAAEC,KAAK,EAAE,QAAQ;YAAEC,QAAQ,EAAE;UAAS,CAAC,CAAC;QAC7D;MACF,CAAC,CAAC;IACJ;IAEAhjB,qDAAK,CACH,MAAMsb,KAAK,CAAC2H,QAAQ,CAACjP,GAAG,CAACkP,eAAe,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,EACnD,CAACC,QAAQ,EAAEC,YAAY,KAAK;MAC1B,IAAI,CAACA,YAAY,IAAKD,QAAQ,KAAKC,YAAY,IAAIf,YAAY,CAAC,CAAE,EAAE;QAClEH,cAAc,CAAC,CAAC;MAClB;IACF,CAAC,EACD;MAAEmB,SAAS,EAAE;IAAK,CACpB,CAAC;IAEDtjB,oDAAK,CACH,MAAMsb,KAAK,CAACiI,kBAAkB,EAC9Bf,eACF,CAAC;IAEDziB,wDAAS,CAAC,MAAM;MACdgL,QAAQ,CAACqQ,gBAAgB,CAAC,OAAO,EAAEoI,SAAS,CAAC;MAC7CzY,QAAQ,CAACqQ,gBAAgB,CAAC,SAAS,EAAEqI,iBAAiB,CAAC;MACvD1Y,QAAQ,CAACqQ,gBAAgB,CAAC,aAAa,EAAEsI,aAAa,CAAC;MACvD3Y,QAAQ,CAACqQ,gBAAgB,CAAC,WAAW,EAAEuI,aAAa,CAAC;IACvD,CAAC,CAAC;IAEF/hB,8DAAe,CAAC,MAAM;MACpBmJ,QAAQ,CAACsQ,mBAAmB,CAAC,OAAO,EAAEmI,SAAS,CAAC;MAChDzY,QAAQ,CAACsQ,mBAAmB,CAAC,SAAS,EAAEoI,iBAAiB,CAAC;MAC1D1Y,QAAQ,CAACsQ,mBAAmB,CAAC,aAAa,EAAEqI,aAAa,CAAC;MAC1D3Y,QAAQ,CAACsQ,mBAAmB,CAAC,WAAW,EAAEsI,aAAa,CAAC;IAC1D,CAAC,CAAC;IAEF,SAAST,eAAeA,CAAC5b,OAAO,EAAE;MAChC,OAAOjB,MAAM,CAACiB,OAAO,CAACsc,UAAU,IAAItc,OAAO,CAACiL,EAAE,IAAI,EAAE,CAAC;IACvD;IAEA,SAASsR,kBAAkBA,CAACvc,OAAO,EAAE;MACnC,MAAMqD,IAAI,GAAGtE,MAAM,CAACiB,OAAO,EAAEqD,IAAI,IAAI,EAAE,CAAC,CAACb,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC2D,IAAI,CAAC,CAAC;MAChF,MAAMqW,WAAW,GAAGhb,MAAM,CAACxB,OAAO,EAAEwc,WAAW,IAAI,CAAC,CAAC;MACrD,IAAI,CAACnZ,IAAI,EAAE;QACT,OAAO,EAAE;MACX;MACA,IAAImZ,WAAW,KAAK,CAAC,IAAInZ,IAAI,KAAK,aAAa,EAAE;QAC/C,OAAO,EAAE;MACX;MACA,IAAI,CAACmZ,WAAW,KAAK,CAAC,IAAIxc,OAAO,EAAE+L,IAAI,KAAK,OAAO,MAAM1I,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,IAAI,CAAC,EAAE;QAC1F,OAAO,EAAE;MACX;MAEA,OAAOA,IAAI;IACb;IAEA,SAASoZ,kBAAkBA,CAACzc,OAAO,EAAE;MACnC,OAAOA,OAAO,IAAIA,OAAO,CAACiD,MAAM,KAAK,QAAQ,IAAIjD,OAAO,CAACiD,MAAM,KAAK,SAAS;IAC/E;IAEA,SAASyZ,UAAUA,CAAC1c,OAAO,EAAE;MAC3B,OAAOgU,KAAK,CAAC2I,kBAAkB,CAAC7Q,QAAQ,CAAC8P,eAAe,CAAC5b,OAAO,CAAC,CAAC;IACpE;IAEA,SAAS0a,UAAUA,CAAC1a,OAAO,EAAE;MAC3B,OAAOgU,KAAK,CAAC4I,kBAAkB,CAAC9Q,QAAQ,CAAC8P,eAAe,CAAC5b,OAAO,CAAC,CAAC;IACpE;IAEA,SAAS6c,WAAWA,CAAC7c,OAAO,EAAE;MAC5B,OAAOgU,KAAK,CAACiI,kBAAkB,KAAKL,eAAe,CAAC5b,OAAO,CAAC;IAC9D;IAEA,SAAS8c,cAAcA,CAAC9c,OAAO,EAAE;MAC/B,OAAOA,OAAO,CAACsa,SAAS,KAAK,KAAK,KAAKta,OAAO,CAAC+c,QAAQ,IAAI/c,OAAO,CAACiD,MAAM,KAAK,UAAU,CAAC;IAC3F;IAEA,SAASsX,iBAAiBA,CAACva,OAAO,EAAE;MAClC,OAAOA,OAAO,CAAC+c,QAAQ,IAAI/c,OAAO,CAACiD,MAAM,KAAK,UAAU;IAC1D;IAEA,SAAS+Z,cAAcA,CAAChd,OAAO,EAAE;MAC/B,OAAOA,OAAO,EAAE+L,IAAI,KAAK,OAAO,IAAI/L,OAAO,EAAE8U,UAAU,EAAE5N,GAAG;IAC9D;IAEA,SAAS+V,aAAaA,CAACjd,OAAO,EAAE;MAC9B,OAAOA,OAAO,EAAE+L,IAAI,KAAK,MAAM,IAAI/L,OAAO,EAAE8U,UAAU,EAAE5N,GAAG;IAC7D;IAEA,SAASgW,cAAcA,CAACld,OAAO,EAAE;MAC/B,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC8L,QAAQ,CAAC9L,OAAO,EAAEsN,gBAAgB,IAAI,EAAE,CAAC;IACvE;IAEA,SAAS6P,eAAeA,CAACnd,OAAO,EAAE;MAChC,OAAOkd,cAAc,CAACld,OAAO,CAAC,IAAIA,OAAO,EAAEsa,SAAS,KAAK,IAAI;IAC/D;IAEA,SAAS8C,eAAeA,CAACpd,OAAO,EAAE;MAChC,MAAMkM,IAAI,GAAGlM,OAAO,EAAEyZ,aAAa,EAAEvN,IAAI,IAAIlM,OAAO,EAAEqd,UAAU,IAAI,EAAE;MACtE,IAAInR,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,IAAI;MACb;MACA,IAAIA,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,KAAK;MACd;MACA,OAAO,EAAE;IACX;IAEA,SAASoR,eAAeA,CAACtd,OAAO,EAAE;MAChC,OAAOA,OAAO,EAAEud,UAAU,IAAIvd,OAAO,EAAEyZ,aAAa,EAAExX,WAAW,IAAIjC,OAAO,EAAEwS,IAAI,IAAI,MAAM;IAC9F;IAEA,SAASgL,qBAAqBA,CAACxd,OAAO,EAAE;MACtC,OAAOjB,MAAM,CAACue,eAAe,CAACtd,OAAO,CAAC,IAAI,GAAG,CAAC,CAAChB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IAC1E;IAEA,SAASwe,iBAAiBA,CAACzd,OAAO,EAAE;MAClC,MAAM0d,OAAO,GAAG1d,OAAO,EAAEyZ,aAAa,IAAI,CAAC,CAAC;MAC5C,MAAMnO,GAAG,GAAGoS,OAAO,CAACpS,GAAG,IAAItL,OAAO,EAAEwS,IAAI,IAAI,EAAE;MAC9C,MAAMmL,aAAa,GAAG3jB,QAAQ,CAACA,QAAQ,CAACoR,IAAI,CAACC,OAAO,IAAItM,MAAM,CAACsM,OAAO,CAACC,GAAG,IAAID,OAAO,CAACJ,EAAE,IAAI,EAAE,CAAC,KAAKK,GAAG,CAAC,IAAI,IAAI;MAChH,MAAMsS,WAAW,GAAG7e,MAAM,CAAC4e,aAAa,EAAEjS,KAAK,IAAI,EAAE,CAAC,CAACvF,IAAI,CAAC,CAAC;MAC7D,MAAMwT,YAAY,GAAG5a,MAAM,CAAC2e,OAAO,CAAC/D,YAAY,IAAIiE,WAAW,IAAIF,OAAO,CAACG,WAAW,IAAI,EAAE,CAAC,CAAC1X,IAAI,CAAC,CAAC;MACpG,MAAMyT,UAAU,GAAG7a,MAAM,CAAC2e,OAAO,CAAC9D,UAAU,IAAI,EAAE,CAAC,CAACzT,IAAI,CAAC,CAAC;MAC1D,MAAMwF,OAAO,GAAG+R,OAAO,CAAC/R,OAAM,IACzBgS,aAAa,EAAElS,OAAO,EAAExJ,WAAU,IAClC0b,aAAa,EAAElS,OAAO,EAAEvF,IAAG,IAC3ByX,aAAa,EAAEpW,KAAI,IACnB+V,eAAe,CAACtd,OAAO,CAAC;MAC7B,MAAMiC,WAAW,GAAG0X,YAAY,IAAIC,UAAU,IAAIjO,OAAO,IAAIL,GAAG;MAChEmO,aAAa,CAACd,OAAO,GAAG,IAAI;MAC5Bc,aAAa,CAACnO,GAAG,GAAGA,GAAG;MACvBmO,aAAa,CAACxX,WAAW,GAAGA,WAAW;MACvCwX,aAAa,CAAC9N,OAAO,GAAGA,OAAO,IAAI,EAAE;MACrC8N,aAAa,CAACxe,MAAM,GAAGyiB,OAAO,CAACziB,MAAM,IAAI0iB,aAAa,EAAElS,OAAO,EAAExQ,MAAM,IAAI,EAAE;MAC7Ewe,aAAa,CAAC7N,OAAO,GAAG8R,OAAO,CAAC9R,OAAO,IAAI+R,aAAa,EAAE/R,OAAO,IAAI+R,aAAa,EAAElS,OAAO,EAAEG,OAAO,IAAI,EAAE;MAC1G6N,aAAa,CAACvX,QAAQ,GAAGwb,OAAO,CAACxb,QAAQ,IAAIyb,aAAa,EAAEzb,QAAQ,IAAIlC,OAAO,EAAE8d,cAAc,IAAI,EAAE;MACrGrE,aAAa,CAAC5N,UAAU,GAAG9M,MAAM,CAACkD,WAAW,IAAIwX,aAAa,CAACnO,GAAG,IAAI,GAAG,CAAC,CAACtM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACpGwa,aAAa,CAACvN,IAAI,GAAGwR,OAAO,CAACxR,IAAI,IAAIlM,OAAO,EAAEqd,UAAU,IAAI,EAAE;MAC9D5D,aAAa,CAACC,SAAS,GAAG0D,eAAe,CAACpd,OAAO,CAAC;MAClDyZ,aAAa,CAACE,YAAY,GAAGA,YAAY;MACzCF,aAAa,CAACG,UAAU,GAAGA,UAAU;MACrCH,aAAa,CAACI,SAAS,GAAG/T,OAAO,CAAC4X,OAAO,CAAC7D,SAAS,IAAI8D,aAAa,CAAC;MACrElE,aAAa,CAACK,UAAU,GAAGH,YAAY;MACvCF,aAAa,CAACM,MAAM,GAAG,KAAK;MAC5BN,aAAa,CAACO,MAAM,GAAG,KAAK;MAC5BP,aAAa,CAACQ,MAAM,GAAG,EAAE;MACzBR,aAAa,CAAC1Z,KAAK,GAAG,EAAE;MACxBmc,SAAS,CAAC,CAAC;IACb;IAEA,SAAS6B,kBAAkBA,CAAA,EAAG;MAC5B,IAAItE,aAAa,CAACM,MAAM,IAAIN,aAAa,CAACO,MAAM,EAAE;QAChD;MACF;MACAP,aAAa,CAACd,OAAO,GAAG,KAAK;IAC/B;IAEA,eAAeqF,kBAAkBA,CAAA,EAAG;MAClC,IAAI,CAACvE,aAAa,CAACnO,GAAG,IAAImO,aAAa,CAACO,MAAM,IAAIP,aAAa,CAACM,MAAM,EAAE;QACtE;MACF;MACAN,aAAa,CAACO,MAAM,GAAG,IAAI;MAC3BP,aAAa,CAACQ,MAAM,GAAG,EAAE;MACzBR,aAAa,CAAC1Z,KAAK,GAAG,EAAE;MACxB,MAAM2P,EAAE,GAAG,MAAM1V,QAAQ,CAACikB,UAAU,CAACxE,aAAa,CAACnO,GAAG,CAAC;MACvD,IAAIoE,EAAE,IAAI3Q,MAAM,CAAC/E,QAAQ,CAAC4V,WAAW,IAAI,EAAE,CAAC,CAAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC/D2N,aAAa,CAACI,SAAS,GAAG,IAAI;QAC9B,MAAMnO,KAAK,GAAG+N,aAAa,CAACK,UAAU,CAAC3T,IAAI,CAAC,CAAC;QAC7C,IAAI+X,UAAU,GAAG,KAAK;QACtB,IAAIxS,KAAK,EAAE;UACTwS,UAAU,GAAG,MAAMlkB,QAAQ,CAAC2V,kBAAkB,CAAC8J,aAAa,CAACnO,GAAG,EAAEI,KAAK,CAAC;UACxE,IAAIwS,UAAU,EAAE;YACdzE,aAAa,CAACE,YAAY,GAAGjO,KAAK;YAClC+N,aAAa,CAACxX,WAAW,GAAGyJ,KAAK;YACjC+N,aAAa,CAAC5N,UAAU,GAAG9M,MAAM,CAAC2M,KAAK,IAAI+N,aAAa,CAACnO,GAAG,IAAI,GAAG,CAAC,CAACtM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;UAChG;QACF;QACA,MAAMjF,QAAQ,CAACE,eAAe,CAAC;UAAE2G,KAAK,EAAE;QAAK,CAAC,CAAC,CAAC0O,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,IAAI7D,KAAK,IAAI,CAACwS,UAAU,EAAE;UACxBzE,aAAa,CAACQ,MAAM,GAAG,EAAE;UACzBR,aAAa,CAAC1Z,KAAK,GAAG/F,QAAQ,CAAC4V,WAAU,GACrC,WAAW5V,QAAQ,CAAC4V,WAAW,EAAC,GAChC,iBAAiB;QACvB,CAAC,MAAM;UACL6J,aAAa,CAACQ,MAAM,GAAGvO,KAAK,GAAG,eAAe,GAAIgE,EAAE,GAAG,QAAQ,GAAG,MAAO;QAC3E;QACAwE,IAAI,CAAC,wBAAwB,EAAE;UAAEhb,MAAM,EAAEugB,aAAa,CAACnO;QAAI,CAAC,CAAC;MAC/D,CAAC,MAAM;QACLmO,aAAa,CAAC1Z,KAAK,GAAG/F,QAAQ,CAAC4V,WAAW,IAAI,QAAQ;MACxD;MACA6J,aAAa,CAACO,MAAM,GAAG,KAAK;IAC9B;IAEA,eAAemE,eAAeA,CAAA,EAAG;MAC/B,IAAI,CAAC1E,aAAa,CAACnO,GAAG,IAAImO,aAAa,CAACM,MAAM,IAAIN,aAAa,CAACO,MAAM,EAAE;QACtE;MACF;MACAP,aAAa,CAACM,MAAM,GAAG,IAAI;MAC3BN,aAAa,CAACQ,MAAM,GAAG,EAAE;MACzBR,aAAa,CAAC1Z,KAAK,GAAG,EAAE;MACxB,MAAM2P,EAAE,GAAG,MAAM1V,QAAQ,CAAC2V,kBAAkB,CAAC8J,aAAa,CAACnO,GAAG,EAAEmO,aAAa,CAACK,UAAU,CAAC;MACzF,IAAIpK,EAAE,EAAE;QACN,MAAM1V,QAAQ,CAACE,eAAe,CAAC;UAAE2G,KAAK,EAAE;QAAK,CAAC,CAAC,CAAC0O,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAM7D,KAAK,GAAG+N,aAAa,CAACK,UAAU,CAAC3T,IAAI,CAAC,CAAC;QAC7CsT,aAAa,CAACE,YAAY,GAAGjO,KAAK;QAClC+N,aAAa,CAACxX,WAAW,GAAGyJ,KAAK,IAAI+N,aAAa,CAACG,UAAU,IAAIH,aAAa,CAAC9N,OAAO,IAAI8N,aAAa,CAACnO,GAAG;QAC3GmO,aAAa,CAAC5N,UAAU,GAAG9M,MAAM,CAAC0a,aAAa,CAACxX,WAAW,IAAIwX,aAAa,CAACnO,GAAG,IAAI,GAAG,CAAC,CAACtM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;QAClHwa,aAAa,CAACQ,MAAM,GAAG,QAAQ;QAC/B/F,IAAI,CAAC,wBAAwB,EAAE;UAAEhb,MAAM,EAAEugB,aAAa,CAACnO;QAAI,CAAC,CAAC;MAC/D,CAAC,MAAM;QACLmO,aAAa,CAAC1Z,KAAK,GAAG/F,QAAQ,CAAC4V,WAAW,IAAI,SAAS;MACzD;MACA6J,aAAa,CAACM,MAAM,GAAG,KAAK;IAC9B;IAEA,SAASqE,eAAeA,CAACpe,OAAO,EAAE;MAChC,MAAMkM,IAAI,GAAGlM,OAAO,EAAEqd,UAAU,IAAI,EAAE;MACtC,IAAInR,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,mBAAmB;MAC5B;MACA,IAAIA,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,mBAAmB;MAC5B;MACA,OAAO,EAAE;IACX;IAEA,SAASmS,cAAcA,CAAC9H,IAAI,EAAE;MAC5B,MAAM+H,KAAK,GAAG9c,MAAM,CAAC+U,IAAI,IAAI,CAAC,CAAC;MAC/B,IAAI+H,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE;QACxB,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,GAAG,IAAI,EAAEC,OAAO,CAACD,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;MACjF;MACA,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,EAAEC,OAAO,CAACD,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;MACnE;MACA,OAAOA,KAAK,GAAG,CAAC,GAAG,GAAGA,KAAK,IAAI,GAAG,EAAE;IACtC;IAEA,SAASE,cAAcA,CAACxH,KAAK,EAAE;MAC7B,MAAMyH,KAAK,GAAGzH,KAAK,CAAC0H,aAAa;MACjC,IAAI,EAAED,KAAK,YAAYE,gBAAgB,CAAC,EAAE;QACxC;MACF;MACA,MAAMC,QAAQ,GAAGpd,MAAM,CAACid,KAAK,CAACnD,OAAO,CAACuD,WAAW,IAAI,CAAC,CAAC;MACvD,IAAID,QAAQ,IAAI,CAAC,EAAE;QACjB;MACF;MACA,MAAME,WAAW,GAAGL,KAAK,CAACnD,OAAO,CAACwD,WAAW,IAAIL,KAAK,CAACM,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE;MAChF,IAAI,CAACD,WAAW,EAAE;QAChB;MACF;MACAL,KAAK,CAACnD,OAAO,CAACwD,WAAW,GAAGA,WAAW;MACvCL,KAAK,CAACnD,OAAO,CAACuD,WAAW,GAAG9f,MAAM,CAAC6f,QAAQ,GAAG,CAAC,CAAC;MAChDle,MAAM,CAACgB,UAAU,CAAC,MAAM;QACtB,IAAI,CAAC+c,KAAK,CAACO,WAAW,EAAE;UACtB;QACF;QACA,MAAMC,SAAS,GAAGH,WAAW,CAAChT,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;QACvD2S,KAAK,CAACS,GAAG,GAAG,GAAGJ,WAAW,GAAGG,SAAS,gBAAgBL,QAAQ,GAAG,CAAC,EAAE;MACtE,CAAC,EAAE,GAAG,IAAIA,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1B;IAEA,SAASO,kBAAkBA,CAACnf,OAAO,EAAE;MACnC,IAAIgU,KAAK,CAACoL,aAAa,EAAE;QACvBlL,IAAI,CAAC,eAAe,EAAElU,OAAO,CAAC;MAChC;IACF;IAEA,SAASqf,gBAAgBA,CAACrf,OAAO,EAAE;MACjC,IAAIgU,KAAK,CAACoL,aAAa,EAAE;QACvBlL,IAAI,CAAC,eAAe,EAAElU,OAAO,CAAC;QAC9B;MACF;MACAsf,eAAe,CAACtf,OAAO,CAAC;IAC1B;IAEA,SAASsf,eAAeA,CAACtf,OAAO,EAAE;MAChC,MAAM8U,UAAU,GAAG9U,OAAO,EAAE8U,UAAU,IAAI,CAAC,CAAC;MAC5C,IAAI,CAACA,UAAU,CAAC5N,GAAG,EAAE;QACnB;MACF;MACAgV,SAAS,CAAC,CAAC;MACXnD,WAAW,CAACJ,OAAO,GAAG,IAAI;MAC1BI,WAAW,CAAC7R,GAAG,GAAG4N,UAAU,CAAC5N,GAAG;MAChC6R,WAAW,CAAC7S,IAAI,GAAG4O,UAAU,CAAC5O,IAAI,IAAI,OAAO;MAC7CqZ,gBAAgB,CAAC,CAAC;IACpB;IAEA,SAASC,gBAAgBA,CAAA,EAAG;MAC1BzG,WAAW,CAACJ,OAAO,GAAG,KAAK;MAC3BI,WAAW,CAACK,QAAQ,GAAG,KAAK;IAC9B;IAEA,SAASmG,gBAAgBA,CAAA,EAAG;MAC1BxG,WAAW,CAACC,KAAK,GAAG,CAAC;MACrBD,WAAW,CAACE,QAAQ,GAAG,CAAC;MACxBF,WAAW,CAACG,OAAO,GAAG,CAAC;MACvBH,WAAW,CAACI,OAAO,GAAG,CAAC;IACzB;IAEA,SAASsG,eAAeA,CAAC/hB,KAAK,EAAE;MAC9B,OAAO2D,IAAI,CAACE,GAAG,CAACgX,eAAe,EAAElX,IAAI,CAACC,GAAG,CAACgX,eAAe,EAAE9W,MAAM,CAAC9D,KAAK,CAAC6gB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF;IAEA,SAASmB,aAAaA,CAAChiB,KAAK,EAAEiiB,OAAO,GAAG,IAAI,EAAEC,OAAO,GAAG,IAAI,EAAE;MAC5D,MAAMC,aAAa,GAAG9G,WAAW,CAACC,KAAK;MACvC,MAAM8G,SAAS,GAAGL,eAAe,CAAC/hB,KAAK,CAAC;MACxC,IAAIoiB,SAAS,KAAKD,aAAa,EAAE;QAC/B;MACF;MAEA,IAAIF,OAAO,KAAK,IAAI,IAAIC,OAAO,KAAK,IAAI,IAAInH,WAAW,CAAC/a,KAAK,EAAE;QAC7D,MAAMqiB,IAAI,GAAGtH,WAAW,CAAC/a,KAAK,CAACsiB,qBAAqB,CAAC,CAAC;QACtD,MAAMC,OAAO,GAAGF,IAAI,CAACnT,IAAI,GAAGmT,IAAI,CAACzc,KAAK,GAAG,CAAC;QAC1C,MAAM4c,OAAO,GAAGH,IAAI,CAACI,GAAG,GAAGJ,IAAI,CAACxc,MAAM,GAAG,CAAC;QAC1C,MAAM6c,KAAK,GAAGN,SAAS,GAAGD,aAAa,GAAG,CAAC;QAC3C9G,WAAW,CAACG,OAAO,IAAI,CAACyG,OAAO,GAAGM,OAAO,GAAGlH,WAAW,CAACG,OAAO,IAAIkH,KAAK;QACxErH,WAAW,CAACI,OAAO,IAAI,CAACyG,OAAO,GAAGM,OAAO,GAAGnH,WAAW,CAACI,OAAO,IAAIiH,KAAK;MAC1E;MAEArH,WAAW,CAACC,KAAK,GAAG8G,SAAS;MAC7B,IAAIA,SAAS,IAAI,CAAC,EAAE;QAClB/G,WAAW,CAACG,OAAO,GAAG,CAAC;QACvBH,WAAW,CAACI,OAAO,GAAG,CAAC;MACzB;IACF;IAEA,SAASkH,SAASA,CAACC,KAAK,EAAE;MACxBZ,aAAa,CAAC3G,WAAW,CAACC,KAAK,GAAGsH,KAAK,CAAC;IAC1C;IAEA,SAASC,WAAWA,CAAA,EAAG;MACrBxH,WAAW,CAACE,QAAQ,GAAG,CAACF,WAAW,CAACE,QAAQ,GAAG,EAAE,IAAI,GAAG;IAC1D;IAEA,SAASuH,gBAAgBA,CAACxJ,KAAK,EAAE;MAC/B,MAAMyJ,MAAM,GAAGzJ,KAAK,CAAC0J,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI;MACjDhB,aAAa,CAAC3G,WAAW,CAACC,KAAK,GAAGyH,MAAM,EAAEzJ,KAAK,CAAC2J,OAAO,EAAE3J,KAAK,CAAC4J,OAAO,CAAC;IACzE;IAEA,SAASC,cAAcA,CAAC7J,KAAK,EAAE;MAC7B,IAAI,CAAC+B,WAAW,CAACJ,OAAO,IAAII,WAAW,CAACC,KAAK,IAAI,CAAC,EAAE;QAClD;MACF;MACAD,WAAW,CAACK,QAAQ,GAAG,IAAI;MAC3BL,WAAW,CAACM,UAAU,GAAGrC,KAAK,CAAC2J,OAAO;MACtC5H,WAAW,CAACO,UAAU,GAAGtC,KAAK,CAAC4J,OAAO;MACtC7H,WAAW,CAACQ,WAAW,GAAGR,WAAW,CAACG,OAAO;MAC7CH,WAAW,CAACS,WAAW,GAAGT,WAAW,CAACI,OAAO;IAC/C;IAEA,SAASiD,aAAaA,CAACpF,KAAK,EAAE;MAC5B,IAAI,CAAC+B,WAAW,CAACK,QAAQ,EAAE;QACzB;MACF;MACAL,WAAW,CAACG,OAAO,GAAGH,WAAW,CAACQ,WAAW,GAAGvC,KAAK,CAAC2J,OAAO,GAAG5H,WAAW,CAACM,UAAU;MACtFN,WAAW,CAACI,OAAO,GAAGJ,WAAW,CAACS,WAAW,GAAGxC,KAAK,CAAC4J,OAAO,GAAG7H,WAAW,CAACO,UAAU;IACxF;IAEA,SAAS+C,aAAaA,CAAA,EAAG;MACvBtD,WAAW,CAACK,QAAQ,GAAG,KAAK;IAC9B;IAEA,SAAS0H,eAAeA,CAAA,EAAG;MACzB,IAAI,CAAC/H,WAAW,CAAC7R,GAAG,EAAE;QACpB;MACF;MACA,MAAM6Z,WAAW,GAAG,IAAI/Z,GAAG,CAAC,yBAAyB,EAAEtG,MAAM,CAACkG,QAAQ,CAACoa,MAAM,CAAC;MAC9ED,WAAW,CAAC1Z,YAAY,CAACC,GAAG,CAAC,KAAK,EAAEyR,WAAW,CAAC7R,GAAG,CAAC;MACpD6Z,WAAW,CAAC1Z,YAAY,CAACC,GAAG,CAAC,MAAM,EAAEyR,WAAW,CAAC7S,IAAI,IAAI,OAAO,CAAC;MAEjE,MAAM+a,IAAI,GAAGxd,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;MACxCud,IAAI,CAAC7Z,IAAI,GAAG2Z,WAAW,CAAC9Z,QAAQ,CAAC,CAAC;MAClCga,IAAI,CAACC,QAAQ,GAAGnI,WAAW,CAAC7S,IAAI,IAAI,OAAO;MAC3CzC,QAAQ,CAAC0d,IAAI,CAACpZ,WAAW,CAACkZ,IAAI,CAAC;MAC/BA,IAAI,CAACnL,KAAK,CAAC,CAAC;MACZmL,IAAI,CAACG,MAAM,CAAC,CAAC;IACf;IAEA,SAASC,QAAQA,CAACrK,KAAK,EAAEhX,OAAO,EAAE;MAChC,IAAI,CAACyc,kBAAkB,CAACzc,OAAO,CAAC,EAAE;QAChCkc,SAAS,CAAC,CAAC;QACX;MACF;MACAxD,WAAW,CAACC,OAAO,GAAG,IAAI;MAC1BD,WAAW,CAAC1Y,OAAO,GAAGA,OAAO;MAC7B0Y,WAAW,CAACE,CAAC,GAAGvX,IAAI,CAACE,GAAG,CAACyV,KAAK,CAAC2J,OAAO,EAAEjgB,MAAM,CAAC4gB,UAAU,GAAG,GAAG,CAAC;MAChE5I,WAAW,CAACG,CAAC,GAAGxX,IAAI,CAACE,GAAG,CAACyV,KAAK,CAAC4J,OAAO,EAAElgB,MAAM,CAAC6gB,WAAW,GAAG,GAAG,CAAC;IACnE;IAEA,SAASrF,SAASA,CAAA,EAAG;MACnBxD,WAAW,CAACC,OAAO,GAAG,KAAK;MAC3BD,WAAW,CAAC1Y,OAAO,GAAG,IAAI;IAC5B;IAEA,SAASmc,iBAAiBA,CAACnF,KAAK,EAAE;MAChC,IAAIA,KAAK,CAACnZ,GAAG,KAAK,QAAQ,EAAE;QAC1B,IAAI4b,aAAa,CAACd,OAAO,EAAE;UACzBoF,kBAAkB,CAAC,CAAC;QACtB;QACA,IAAIhF,WAAW,CAACJ,OAAO,EAAE;UACvB6G,gBAAgB,CAAC,CAAC;QACpB;QACAtD,SAAS,CAAC,CAAC;MACb;IACF;IAEA,SAASsF,gBAAgBA,CAAChH,MAAM,EAAE;MAChC,IAAI9B,WAAW,CAAC1Y,OAAO,EAAE;QACvBkU,IAAI,CAAC,gBAAgB,EAAE;UAAEsG,MAAM;UAAExa,OAAO,EAAE0Y,WAAW,CAAC1Y;QAAQ,CAAC,CAAC;MAClE;MACAkc,SAAS,CAAC,CAAC;IACb;IAEA,SAASuF,UAAUA,CAACtT,SAAS,EAAE;MAC7B,OAAO2K,oBAAoB,CAAC/J,MAAM,CAACZ,SAAS,CAAC;IAC/C;IAEA,SAASuT,aAAaA,CAAC1hB,OAAO,EAAE;MAC9B,IAAIA,OAAO,CAACsa,SAAS,KAAK,KAAK,IAAIta,OAAO,CAACiD,MAAM,KAAK,QAAQ,IAAIjD,OAAO,CAACiD,MAAM,KAAK,UAAU,IAAIjD,OAAO,CAAC+c,QAAQ,EAAE;QACnH,OAAO,EAAE;MACX;MAEA,MAAM4E,KAAK,GAAG3hB,OAAO,CAAC4hB,cAAc,IAAI5hB,OAAO,CAACiD,MAAM;MACtD,IAAI0e,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,MAAM;MACf;MACA,IAAIA,KAAK,KAAK,WAAW,EAAE;QACzB,OAAO,WAAW;MACpB;MACA,IAAIA,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,MAAM;MACf;MACA,OAAO,EAAE;IACX;IAEA,SAASE,aAAaA,CAAC7hB,OAAO,EAAE;MAC9B,MAAM2hB,KAAK,GAAGD,aAAa,CAAC1hB,OAAO,CAAC;MACpC,IAAI2hB,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,MAAM;MACf;MACA,IAAIA,KAAK,KAAK,WAAW,EAAE;QACzB,OAAO,OAAO;MAChB;MACA,IAAIA,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,KAAK;MACd;MACA,OAAO,EAAE;IACX;IAEA,SAASG,WAAWA,CAAC9hB,OAAO,EAAE;MAC5B,IAAIA,OAAO,CAACiD,MAAM,KAAK,QAAQ,EAAE;QAC/B,IAAIjD,OAAO,CAAC+hB,SAAS,EAAE;UACrB,OAAO/hB,OAAO,CAACD,KAAK,GAAG,MAAMC,OAAO,CAACD,KAAK,IAAIC,OAAO,CAAC+hB,SAAS,GAAG,GAAG,MAAM/hB,OAAO,CAAC+hB,SAAS,EAAE;QAChG;QACA,OAAO/hB,OAAO,CAACD,KAAK,GAAG,MAAMC,OAAO,CAACD,KAAK,EAAE,GAAG,IAAI;MACrD;MACA,OAAO,EAAE;IACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnvB2C;AACS;;;;IAEpD,MAAM/F,QAAQ,GAAGF,0EAAe,CAAC,CAAC;IAClC,MAAMuR,OAAO,GAAGhR,uDAAQ,CAAC,MAAML,QAAQ,CAACgoB,aAAa,CAAC;IACtD,MAAMC,UAAU,GAAG5nB,uDAAQ,CAAC,MAAMgR,OAAO,CAAC3N,KAAK,EAAEgO,KAAK,IAAI,KAAK,CAAC;IAChE,MAAMpP,QAAQ,GAAGjC,uDAAQ,CAAC,MAAMgR,OAAO,CAAC3N,KAAK,EAAE+N,OAAO,EAAExJ,WAAW,IAAIoJ,OAAO,CAAC3N,KAAK,EAAE+N,OAAO,EAAEvF,IAAI,IAAImF,OAAO,CAAC3N,KAAK,EAAE4N,GAAG,IAAI,EAAE,CAAC;IAChI,MAAMrQ,MAAM,GAAGZ,uDAAQ,CAAC,MAAMgR,OAAO,CAAC3N,KAAK,EAAE+N,OAAO,EAAExQ,MAAM,IAAI,IAAI,CAAC;IACrE,MAAM2Q,OAAO,GAAGvR,uDAAQ,CAAC,MAAMgR,OAAO,CAAC3N,KAAK,EAAE+N,OAAO,EAAEG,OAAO,IAAI,IAAI,CAAC;IACvE,MAAMsW,YAAY,GAAG1nB,kDAAG,CAAC,KAAK,CAAC;IAC/B,MAAMsf,UAAU,GAAGtf,kDAAG,CAAC,EAAE,CAAC;IAC1B,MAAM2nB,WAAW,GAAG3nB,kDAAG,CAAC,KAAK,CAAC;IAC9B,MAAM4nB,UAAU,GAAG5nB,kDAAG,CAAC,EAAE,CAAC;IAE1B9B,oDAAK,CAAC2S,OAAO,EAAE,MAAM;MACnB6W,YAAY,CAACxkB,KAAK,GAAG,KAAK;MAC1B0kB,UAAU,CAAC1kB,KAAK,GAAG,EAAE;IACvB,CAAC,CAAC;IAEF,SAAS2kB,eAAeA,CAAA,EAAG;MACzBvI,UAAU,CAACpc,KAAK,GAAG2N,OAAO,CAAC3N,KAAK,EAAEgO,KAAK,IAAI,EAAE;MAC7C0W,UAAU,CAAC1kB,KAAK,GAAG,EAAE;MACrBwkB,YAAY,CAACxkB,KAAK,GAAG,IAAI;IAC3B;IAEA,SAAS4kB,gBAAgBA,CAAA,EAAG;MAC1B,IAAIH,WAAW,CAACzkB,KAAK,EAAE;QACrB;MACF;MACAwkB,YAAY,CAACxkB,KAAK,GAAG,KAAK;MAC1B0kB,UAAU,CAAC1kB,KAAK,GAAG,EAAE;IACvB;IAEA,eAAe6kB,WAAWA,CAAA,EAAG;MAC3B,IAAI,CAAClX,OAAO,CAAC3N,KAAK,EAAE;QAClB;MACF;MACAykB,WAAW,CAACzkB,KAAK,GAAG,IAAI;MACxB0kB,UAAU,CAAC1kB,KAAK,GAAG,EAAE;MACrB,MAAMgS,EAAE,GAAG,MAAM1V,QAAQ,CAAC2V,kBAAkB,CAACtE,OAAO,CAAC3N,KAAK,CAAC4N,GAAG,EAAEwO,UAAU,CAACpc,KAAK,CAAC;MACjFykB,WAAW,CAACzkB,KAAK,GAAG,KAAK;MACzB,IAAIgS,EAAE,EAAE;QACNwS,YAAY,CAACxkB,KAAK,GAAG,KAAK;QAC1B;MACF;MACA0kB,UAAU,CAAC1kB,KAAK,GAAG1D,QAAQ,CAAC4V,WAAW,IAAI,SAAS;IACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7E+B;AAC+B;;;;IAE9D,MAAM5W,aAAa,GAAGF,oFAAoB,CAAC,CAAC;IAC5C,MAAM0pB,SAAS,GAAGnoB,uDAAQ,CAAC,MAAMrB,aAAa,CAACypB,cAAc,EAAE5kB,GAAG,IAAI,EAAE,CAAC;IAEzE,SAAS6kB,aAAaA,CAACvkB,IAAI,EAAE;MAC3B,IAAIA,IAAI,CAACwkB,iBAAiB,EAAE;QAC1B,OAAOxkB,IAAI,CAACwkB,iBAAiB;MAC/B;MACA,MAAMnX,YAAY,GAAGxS,aAAa,CAACA,aAAa,CAACoS,IAAI,CAACwX,KAAK,IAAIA,KAAK,CAAC3X,EAAE,KAAK9M,IAAI,CAAC0kB,cAAc,CAAC;MAChG,OAAOrX,YAAY,EAAEjE,KAAK,IAAIpJ,IAAI,CAAC0kB,cAAc,IAAI,MAAM;IAC7D;IAEA,SAASC,eAAeA,CAAC3kB,IAAI,EAAE;MAC7B,IAAIA,IAAI,CAAC4e,QAAQ,EAAE;QACjB,OAAO,IAAI5e,IAAI,CAAC4kB,YAAY,IAAI,KAAK,GAAG;MAC1C;MACA,IAAI5kB,IAAI,CAAC6kB,OAAO,EAAE;QAChB,OAAO7kB,IAAI,CAAC6kB,OAAO;MACrB;MACA,IAAI7kB,IAAI,CAACkF,IAAI,EAAE;QACb,OAAOlF,IAAI,CAACkF,IAAI;MAClB;MACA,IAAIlF,IAAI,CAAC4N,IAAI,KAAK,OAAO,EAAE;QACzB,OAAO,MAAM;MACf;MACA,IAAI5N,IAAI,CAAC4N,IAAI,KAAK,MAAM,EAAE;QACxB,OAAO,QAAQ5N,IAAI,CAAC2W,UAAU,EAAE5O,IAAI,IAAI,IAAI,EAAE;MAChD;MACA,OAAO,SAAS;IAClB;IAEA,SAAS+c,kBAAkBA,CAAC9U,SAAS,EAAE;MACrC,MAAMzQ,KAAK,GAAG8D,MAAM,CAAC2M,SAAS,IAAI,CAAC,CAAC;MACpC,IAAI,CAACzQ,KAAK,EAAE;QACV,OAAO,EAAE;MACX;MACA,OAAO,IAAI0Q,IAAI,CAACC,cAAc,CAAC,OAAO,EAAE;QACtCE,KAAK,EAAE,SAAS;QAChBC,GAAG,EAAE,SAAS;QACdC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE,SAAS;QACjBE,MAAM,EAAE;MACV,CAAC,CAAC,CAACG,MAAM,CAACrR,KAAK,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBoC;AAC0B;AACL;;;;IAEzD,MAAM1E,aAAa,GAAGF,oFAAoB,CAAC,CAAC;IAC5C,MAAMiB,UAAU,GAAGF,+EAAkB,CAAC,CAAC;IACvC,MAAMqpB,QAAQ,GAAG7oB,uDAAQ,CAAC,MAAMrB,aAAa,CAACypB,cAAc,CAAC;IAC7D,MAAMxI,MAAM,GAAGzf,kDAAG,CAAC,EAAE,CAAC;IACtB,MAAMuF,KAAK,GAAGvF,kDAAG,CAAC,EAAE,CAAC;IAErB,SAAS2oB,aAAaA,CAAA,EAAG;MACvBlJ,MAAM,CAACvc,KAAK,GAAG,EAAE;MACjBqC,KAAK,CAACrC,KAAK,GAAG,EAAE;IAClB;IAEA,SAASglB,aAAaA,CAACvkB,IAAI,EAAE;MAC3B,IAAIA,IAAI,CAACwkB,iBAAiB,EAAE;QAC1B,OAAOxkB,IAAI,CAACwkB,iBAAiB;MAC/B;MACA,MAAMnX,YAAY,GAAGxS,aAAa,CAACA,aAAa,CAACoS,IAAI,CAACwX,KAAK,IAAIA,KAAK,CAAC3X,EAAE,KAAK9M,IAAI,CAAC0kB,cAAc,CAAC;MAChG,OAAOrX,YAAY,EAAEjE,KAAK,IAAIpJ,IAAI,CAAC0kB,cAAc,IAAI,MAAM;IAC7D;IAEA,SAASO,YAAYA,CAACjlB,IAAI,EAAE;MAC1B,OAAOA,IAAI,CAACkF,IAAI,IAAI,EAAE;IACxB;IAEA,SAASggB,eAAeA,CAACllB,IAAI,EAAE;MAC7B,OAAOA,IAAI,EAAE4N,IAAI,KAAK,OAAO,IAAI5N,IAAI,EAAE2W,UAAU,EAAE5N,GAAG;IACxD;IAEA,SAASoc,cAAcA,CAACnlB,IAAI,EAAE;MAC5B,OAAOA,IAAI,EAAE4N,IAAI,KAAK,MAAM,IAAI5N,IAAI,EAAE2W,UAAU,EAAE5N,GAAG;IACvD;IAEA,SAASqc,gBAAgBA,CAACplB,IAAI,EAAE;MAC9B,IAAI,CAACA,IAAI,EAAE;QACT,OAAO,EAAE;MACX;MACA,IAAIA,IAAI,CAACkF,IAAI,EAAE;QACb,OAAOlF,IAAI,CAACkF,IAAI;MAClB;MACA,IAAIlF,IAAI,CAAC4e,QAAQ,EAAE;QACjB,OAAO5e,IAAI,CAAC4kB,YAAY,IAAI,KAAK;MACnC;MACA,IAAIM,eAAe,CAACllB,IAAI,CAAC,EAAE;QACzB,OAAOA,IAAI,CAAC2W,UAAU,CAAC5N,GAAG;MAC5B;MACA,IAAIoc,cAAc,CAACnlB,IAAI,CAAC,EAAE;QACxB,OAAO,GAAGA,IAAI,CAAC2W,UAAU,CAAC5O,IAAI,IAAI,IAAI,IAAI/H,IAAI,CAAC2W,UAAU,CAAC5N,GAAG,EAAE,CAACf,IAAI,CAAC,CAAC;MACxE;MACA,OAAOhI,IAAI,CAAC6kB,OAAO,IAAI,EAAE;IAC3B;IAEA,SAAS3E,cAAcA,CAAC9H,IAAI,EAAE;MAC5B,MAAM+H,KAAK,GAAG9c,MAAM,CAAC+U,IAAI,IAAI,CAAC,CAAC;MAC/B,IAAI+H,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE;QACxB,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,GAAG,IAAI,EAAEC,OAAO,CAACD,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;MACjF;MACA,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,EAAEC,OAAO,CAACD,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;MACnE;MACA,OAAOA,KAAK,GAAG,CAAC,GAAG,GAAGA,KAAK,IAAI,GAAG,EAAE;IACtC;IAEA,SAAS2E,kBAAkBA,CAAC9U,SAAS,EAAE;MACrC,MAAMzQ,KAAK,GAAG8D,MAAM,CAAC2M,SAAS,IAAI,CAAC,CAAC;MACpC,IAAI,CAACzQ,KAAK,EAAE;QACV,OAAO,EAAE;MACX;MACA,OAAO,IAAI0Q,IAAI,CAACC,cAAc,CAAC,OAAO,EAAE;QACtCC,IAAI,EAAE,SAAS;QACfC,KAAK,EAAE,SAAS;QAChBC,GAAG,EAAE,SAAS;QACdC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE,SAAS;QACjBE,MAAM,EAAE;MACV,CAAC,CAAC,CAACG,MAAM,CAACrR,KAAK,CAAC;IAClB;IAEA,eAAe8lB,YAAYA,CAAA,EAAG;MAC5BL,aAAa,CAAC,CAAC;MACf,MAAM9f,IAAI,GAAGkgB,gBAAgB,CAACL,QAAQ,CAACxlB,KAAK,IAAI,CAAC,CAAC,CAAC,CAACyI,IAAI,CAAC,CAAC;MAC1D,IAAI,CAAC9C,IAAI,EAAE;QACTtD,KAAK,CAACrC,KAAK,GAAG,YAAY;QAC1B;MACF;MACA,IAAI;QACF,MAAM+lB,cAAc,CAACpgB,IAAI,CAAC;QAC1B4W,MAAM,CAACvc,KAAK,GAAG,KAAK;MACtB,CAAC,CAAC,OAAOgmB,SAAS,EAAE;QAClB3jB,KAAK,CAACrC,KAAK,GAAG,MAAM;MACtB;IACF;IAEA,eAAe+lB,cAAcA,CAACpgB,IAAI,EAAE;MAClC,IAAIsgB,SAAS,CAACC,SAAS,EAAEC,SAAS,EAAE;QAClC,MAAMF,SAAS,CAACC,SAAS,CAACC,SAAS,CAACxgB,IAAI,CAAC;QACzC;MACF;MACA,MAAM+R,OAAO,GAAG3R,QAAQ,CAACC,aAAa,CAAC,UAAU,CAAC;MAClD0R,OAAO,CAAC1X,KAAK,GAAG2F,IAAI;MACpB+R,OAAO,CAACvN,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;MAC5CuN,OAAO,CAAC0O,KAAK,CAACC,QAAQ,GAAG,OAAO;MAChC3O,OAAO,CAAC0O,KAAK,CAAClX,IAAI,GAAG,SAAS;MAC9BnJ,QAAQ,CAAC0d,IAAI,CAACpZ,WAAW,CAACqN,OAAO,CAAC;MAClCA,OAAO,CAAC4O,MAAM,CAAC,CAAC;MAChBvgB,QAAQ,CAACwgB,WAAW,CAAC,MAAM,CAAC;MAC5BxgB,QAAQ,CAAC0d,IAAI,CAAC+C,WAAW,CAAC9O,OAAO,CAAC;IACpC;IAEA,SAAS+O,gBAAgBA,CAAA,EAAG;MAC1BhB,aAAa,CAAC,CAAC;MACf,MAAMhlB,IAAI,GAAG+kB,QAAQ,CAACxlB,KAAK;MAC3B,IAAI,CAACS,IAAI,EAAE0kB,cAAc,EAAE;QACzB9iB,KAAK,CAACrC,KAAK,GAAG,SAAS;QACvB;MACF;MACA,MAAM8N,YAAY,GAAGxS,aAAa,CAACA,aAAa,CAACoS,IAAI,CAACwX,KAAK,IAAIA,KAAK,CAAC3X,EAAE,KAAK9M,IAAI,CAAC0kB,cAAc,CAAC;MAChG,IAAI,CAACrX,YAAY,EAAE;QACjBzL,KAAK,CAACrC,KAAK,GAAG,kBAAkB;QAChC1E,aAAa,CAACiB,0BAA0B,CAAC,CAAC;QAC1C;MACF;MACAF,UAAU,CAACqqB,YAAY,CAAC,CAAC;MACzBprB,aAAa,CAACqrB,qBAAqB,CAAClmB,IAAI,CAAC0kB,cAAc,CAAC;MACxDniB,MAAM,CAACgB,UAAU,CAAC,MAAM;QACtB1I,aAAa,CAACsrB,YAAY,CAAC;UACzBrZ,EAAE,EAAE9M,IAAI,CAAC8M,EAAE,IAAI9M,IAAI,CAACN,GAAG;UACvBye,UAAU,EAAEne,IAAI,CAACme,UAAU,IAAIne,IAAI,CAACN;QACtC,CAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;IACT;IAEA,SAAS0mB,cAAcA,CAAA,EAAG;MACxBpB,aAAa,CAAC,CAAC;MACf,MAAMtlB,GAAG,GAAGqlB,QAAQ,CAACxlB,KAAK,EAAEG,GAAG,IAAI,EAAE;MACrC,IAAI,CAACA,GAAG,EAAE;QACR;MACF;MACA7E,aAAa,CAACurB,cAAc,CAAC1mB,GAAG,CAAC;MACjCoc,MAAM,CAACvc,KAAK,GAAG,OAAO;IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzIoC;AACgB;;;;IAEpD,MAAM1D,QAAQ,GAAGF,0EAAe,CAAC,CAAC;IAClC,MAAM0qB,OAAO,GAAGhqB,kDAAG,CAAC,EAAE,CAAC;IACvB,MAAMiqB,aAAa,GAAGjqB,kDAAG,CAAC,KAAK,CAAC;IAChC,MAAMkqB,UAAU,GAAGlqB,kDAAG,CAAC,EAAE,CAAC;IAE1B,MAAMmqB,gBAAgB,GAAGtqB,uDAAQ,CAAC,MAAM;MACtC,MAAMqD,KAAK,GAAG8mB,OAAO,CAAC9mB,KAAK,CAACknB,WAAW,CAAC,CAAC;MACzC,IAAI,CAAClnB,KAAK,EAAE;QACV,OAAO1D,QAAQ,CAACA,QAAQ;MAC1B;MACA,OAAOA,QAAQ,CAACA,QAAQ,CAACkE,MAAM,CAACC,IAAI,IAAI;QACtC,OAAOA,IAAI,CAACoJ,KAAK,CAACqd,WAAW,CAAC,CAAC,CAAC9Y,QAAQ,CAACpO,KAAK,KACzCS,IAAI,CAAC0mB,QAAQ,CAACD,WAAW,CAAC,CAAC,CAAC9Y,QAAQ,CAACpO,KAAK,KAC1CS,IAAI,CAACmN,GAAG,CAACsZ,WAAW,CAAC,CAAC,CAAC9Y,QAAQ,CAACpO,KAAK,CAAC;MAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAASonB,cAAcA,CAAA,EAAG;MACxB9qB,QAAQ,CAAC4V,WAAW,GAAG,EAAE;MACzB5V,QAAQ,CAAC+qB,UAAU,GAAG,EAAE;MACxBL,UAAU,CAAChnB,KAAK,GAAG,EAAE;MACrB+mB,aAAa,CAAC/mB,KAAK,GAAG,IAAI;IAC5B;IAEA,SAASsnB,eAAeA,CAAA,EAAG;MACzBP,aAAa,CAAC/mB,KAAK,GAAG,KAAK;IAC7B;IAEA,eAAeunB,gBAAgBA,CAAA,EAAG;MAChC,MAAMC,KAAK,GAAG,MAAMlrB,QAAQ,CAACikB,UAAU,CAACyG,UAAU,CAAChnB,KAAK,CAAC;MACzD,IAAIwnB,KAAK,EAAE;QACTxkB,MAAM,CAACgB,UAAU,CAAC,MAAM;UACtB+iB,aAAa,CAAC/mB,KAAK,GAAG,KAAK;QAC7B,CAAC,EAAE,GAAG,CAAC;MACT;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqDoF;AACtB;AACV;;;;IAEpD,MAAM1E,aAAa,GAAGF,qFAAoB,CAAC,CAAC;IAC5C,MAAMkB,QAAQ,GAAGF,2EAAe,CAAC,CAAC;IAClC,MAAMurB,cAAc,GAAG7qB,mDAAG,CAAC,KAAK,CAAC;IACjC,MAAM8qB,YAAY,GAAG9qB,mDAAG,CAAC,EAAE,CAAC;IAC5B,MAAM+qB,UAAU,GAAG/qB,mDAAG,CAAC,KAAK,CAAC;IAC7B,MAAMgrB,aAAa,GAAGhrB,mDAAG,CAAC,EAAE,CAAC;IAC7B,MAAMkqB,UAAU,GAAGlqB,mDAAG,CAAC,EAAE,CAAC;IAC1B,MAAMirB,SAAS,GAAGjrB,mDAAG,CAAC,EAAE,CAAC;IACzB,MAAMkrB,iBAAiB,GAAGlrB,mDAAG,CAAC,EAAE,CAAC;IACjC,MAAMmrB,gBAAgB,GAAGnrB,mDAAG,CAAC,EAAE,CAAC;IAChC,MAAMorB,YAAY,GAAGprB,mDAAG,CAAC,EAAE,CAAC;IAC5B,MAAMqrB,aAAa,GAAGrrB,mDAAG,CAAC,EAAE,CAAC;IAC7B,MAAMsrB,WAAW,GAAGtrB,mDAAG,CAAC,EAAE,CAAC;IAC3B,MAAMurB,mBAAmB,GAAGvrB,mDAAG,CAAC,EAAE,CAAC;IACnC,MAAMwrB,cAAc,GAAGxrB,mDAAG,CAAC,EAAE,CAAC;IAC9B,MAAMyrB,kBAAkB,GAAGzrB,mDAAG,CAAC,EAAE,CAAC;IAElC,MAAM0rB,YAAY,GAAG;MACnBjI,UAAU,EAAE,OAAO;MACnBkI,WAAW,EAAE,MAAM;MACnBC,SAAS,EAAE,MAAM;MACjBC,SAAS,EAAE,MAAM;MACjBC,aAAa,EAAE;IACjB,CAAC;IAED,MAAMC,YAAY,GAAG;MACnBtI,UAAU,EAAE,IAAI;MAChBkI,WAAW,EAAE,IAAI;MACjBC,SAAS,EAAE,IAAI;MACfC,SAAS,EAAE,IAAI;MACfC,aAAa,EAAE;IACjB,CAAC;IAED,MAAME,WAAW,GAAGnsB,wDAAQ,CAAC,MAAM6rB,YAAY,CAACZ,YAAY,CAAC5nB,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM+oB,WAAW,GAAGpsB,wDAAQ,CAAC,MAAMksB,YAAY,CAACjB,YAAY,CAAC5nB,KAAK,CAAC,IAAI,IAAI,CAAC;IAC5E,MAAMgpB,UAAU,GAAGrsB,wDAAQ,CAAC,MAAML,QAAQ,CAAC4V,WAAW,IAAI5W,aAAa,CAAC4W,WAAW,CAAC;IACpF,MAAM+W,SAAS,GAAGtsB,wDAAQ,CAAC,MAAML,QAAQ,CAAC+qB,UAAU,IAAI/rB,aAAa,CAAC4tB,YAAY,CAAC;IACnF,MAAMC,uBAAuB,GAAGxsB,wDAAQ,CAAC,MAAMmrB,aAAa,CAAC9nB,KAAK,CAACyI,IAAI,CAAC,CAAC,CAACye,WAAW,CAAC,CAAC,CAAC;IACxF,MAAMkC,aAAa,GAAGzsB,wDAAQ,CAAC,MAAM;MACnC,MAAMqS,GAAG,GAAG,IAAIqa,GAAG,CAAC,CAAC;MACrB/sB,QAAQ,CAACA,QAAQ,CAAC6a,OAAO,CAACxJ,OAAO,IAAI;QACnC,MAAMC,GAAG,GAAGvM,MAAM,CAACsM,OAAO,CAACC,GAAG,IAAID,OAAO,CAACJ,EAAE,IAAI,EAAE,CAAC;QACnD,IAAIK,GAAG,EAAE;UACPoB,GAAG,CAACpF,GAAG,CAACgE,GAAG,EAAED,OAAO,CAAC;QACvB;MACF,CAAC,CAAC;MACF,OAAOqB,GAAG;IACZ,CAAC,CAAC;IACF,MAAMsa,yBAAyB,GAAG3sB,wDAAQ,CAAC,MAAM;MAC/C,MAAMmqB,OAAO,GAAGqC,uBAAuB,CAACnpB,KAAK;MAC7C,IAAI,CAAC8mB,OAAO,EAAE;QACZ,OAAOxrB,aAAa,CAACA,aAAa,CAAC0T,GAAG,CAACvO,IAAI,IAAI8oB,kBAAkB,CAAC9oB,IAAI,CAAC,CAAC;MAC1E;MAEA,MAAM+oB,mBAAmB,GAAGluB,aAAa,CAACA,aAAY,CACnDkF,MAAM,CAACC,IAAI,IAAIgpB,mBAAmB,CAAChpB,IAAI,EAAEqmB,OAAO,EAAE4C,sBAAsB,CAACjpB,IAAI,CAAC,CAAC,EAC/EuO,GAAG,CAACvO,IAAI,IAAI8oB,kBAAkB,CAAC9oB,IAAI,CAAC,CAAC;MACxC,MAAMkpB,mBAAmB,GAAG,IAAIlV,GAAG,CAACnZ,aAAa,CAACA,aAAY,CAC3DkF,MAAM,CAACC,IAAI,IAAIA,IAAI,CAAC4N,IAAI,KAAK,QAAQ,EACrCW,GAAG,CAACvO,IAAI,IAAImpB,kBAAkB,CAACnpB,IAAI,CAAC,CAAC,CAAC;MACzC,MAAMopB,cAAc,GAAGvtB,QAAQ,CAACA,QAAO,CACpCkE,MAAM,CAACC,IAAI,IAAI,CAACkpB,mBAAmB,CAACjV,GAAG,CAACrT,MAAM,CAACZ,IAAI,CAACmN,GAAG,IAAInN,IAAI,CAAC8M,EAAE,IAAI,EAAE,CAAC,CAAC,EAC1E/M,MAAM,CAACC,IAAI,IAAIqpB,cAAc,CAACrpB,IAAI,EAAEqmB,OAAO,CAAC,EAC5C9X,GAAG,CAACvO,IAAI,IAAIspB,aAAa,CAACtpB,IAAI,CAAC,CAAC;MAEnC,OAAO,CAAC,GAAG+oB,mBAAmB,EAAE,GAAGK,cAAc,CAAC;IACpD,CAAC,CAAC;IACF,MAAM5C,gBAAgB,GAAGtqB,wDAAQ,CAAC,MAAM;MACtC,MAAMmqB,OAAO,GAAGwB,cAAc,CAACtoB,KAAK,CAACknB,WAAW,CAAC,CAAC;MAClD,IAAI,CAACJ,OAAO,EAAE;QACZ,OAAOxqB,QAAQ,CAACA,QAAQ;MAC1B;MACA,OAAOA,QAAQ,CAACA,QAAQ,CAACkE,MAAM,CAACC,IAAI,IAAI;QACtC,OAAOY,MAAM,CAACZ,IAAI,CAACoJ,KAAK,IAAI,EAAE,CAAC,CAACqd,WAAW,CAAC,CAAC,CAAC9Y,QAAQ,CAAC0Y,OAAO,KACzDzlB,MAAM,CAACZ,IAAI,CAAC0mB,QAAQ,IAAI,EAAE,CAAC,CAACD,WAAW,CAAC,CAAC,CAAC9Y,QAAQ,CAAC0Y,OAAO,KAC1DzlB,MAAM,CAACZ,IAAI,CAACmN,GAAG,IAAI,EAAE,CAAC,CAACsZ,WAAW,CAAC,CAAC,CAAC9Y,QAAQ,CAAC0Y,OAAO,CAAC;MAC7D,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMkD,cAAc,GAAGrtB,wDAAQ,CAAC,MAAM;MACpC,IAAIirB,YAAY,CAAC5nB,KAAK,KAAK,YAAY,EAAE;QACvC,OAAO,CAACgnB,UAAU,CAAChnB,KAAK;MAC1B;MACA,IAAI4nB,YAAY,CAAC5nB,KAAK,KAAK,aAAa,EAAE;QACxC,OAAO,CAAC+nB,SAAS,CAAC/nB,KAAK,IAAI,CAACuoB,kBAAkB,CAACvoB,KAAK,CAACK,MAAM;MAC7D;MACA,IAAIunB,YAAY,CAAC5nB,KAAK,KAAK,WAAW,EAAE;QACtC,OAAO,CAACkoB,YAAY,CAACloB,KAAK;MAC5B;MACA,IAAI4nB,YAAY,CAAC5nB,KAAK,KAAK,WAAW,EAAE;QACtC,OAAO,CAACmoB,aAAa,CAACnoB,KAAK,IAAI,CAACuoB,kBAAkB,CAACvoB,KAAK,CAACK,MAAM;MACjE;MACA,IAAIunB,YAAY,CAAC5nB,KAAK,KAAK,eAAe,EAAE;QAC1C,OAAO,CAACooB,WAAW,CAACpoB,KAAK;MAC3B;MACA,OAAO,IAAI;IACb,CAAC,CAAC;IAEFjF,yDAAS,CAAC,MAAM;MACduB,QAAQ,CAACE,eAAe,CAAC,CAAC,CAACqV,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAMoY,aAAa,GAAGxC,+DAAe,CAAC;MACpCjf,IAAI,EAAE,eAAe;MACrB8N,KAAK,EAAE;QACLha,QAAQ,EAAE;UACR+R,IAAI,EAAEwG,KAAK;UACXqV,OAAO,EAAEA,CAAA,KAAM;QACjB,CAAC;QACDC,WAAW,EAAE;UACX9b,IAAI,EAAEwG,KAAK;UACXqV,OAAO,EAAEA,CAAA,KAAM;QACjB,CAAC;QACDpD,OAAO,EAAE;UACPzY,IAAI,EAAEhN,MAAM;UACZ6oB,OAAO,EAAE;QACX,CAAC;QACDE,SAAS,EAAE;UACT/b,IAAI,EAAEhN,MAAM;UACZ6oB,OAAO,EAAE;QACX;MACF,CAAC;MACDG,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;MACnCC,KAAKA,CAAChU,KAAK,EAAE;QAAEE;MAAK,CAAC,EAAE;QACrB,OAAO,MAAMkR,uCAAC,CAAC,KAAK,EAAE;UAAE6C,KAAK,EAAE;QAAiB,CAAC,EAAE,CACjD7C,uCAAC,CAAC,OAAO,EAAE;UACT1nB,KAAK,EAAEsW,KAAK,CAACwQ,OAAO;UACpB0D,WAAW,EAAE,OAAO;UACpBC,OAAO,EAAEnR,KAAK,IAAI9C,IAAI,CAAC,gBAAgB,EAAE8C,KAAK,CAACjM,MAAM,CAACrN,KAAK;QAC7D,CAAC,CAAC,EACF0nB,uCAAC,CAAC,KAAK,EAAE;UAAE6C,KAAK,EAAE;QAAsB,CAAC,EAAEjU,KAAK,CAACha,QAAQ,CAAC+D,MAAK,GAC3DiW,KAAK,CAACha,QAAQ,CAAC0S,GAAG,CAACrB,OAAO,IAAI+Z,uCAAC,CAAC,QAAQ,EAAE;UAC1CvnB,GAAG,EAAEwN,OAAO,CAACC,GAAG;UAChBS,IAAI,EAAE,QAAQ;UACdkc,KAAK,EAAE,CAAC,oBAAoB,EAAE;YAAE/V,QAAQ,EAAE8B,KAAK,CAAC6T,WAAW,CAAC/b,QAAQ,CAACT,OAAO,CAACC,GAAG;UAAE,CAAC,CAAC;UACpF8c,OAAO,EAAEA,CAAA,KAAMlU,IAAI,CAAC,QAAQ,EAAE7I,OAAO,CAACC,GAAG;QAC3C,CAAC,EAAE,CACD8Z,uCAAC,CAAC,MAAM,EAAE;UAAE6C,KAAK,EAAE;QAAgB,CAAC,EAAEjU,KAAK,CAAC6T,WAAW,CAAC/b,QAAQ,CAACT,OAAO,CAACC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EACzFD,OAAO,CAACnJ,QAAO,GACXkjB,uCAAC,CAAC,KAAK,EAAE;UAAE6C,KAAK,EAAE,kCAAkC;UAAE/I,GAAG,EAAE7T,OAAO,CAACnJ,QAAQ;UAAEmmB,GAAG,EAAE;QAAG,CAAC,IACtFjD,uCAAC,CAAC,MAAM,EAAE;UAAE6C,KAAK,EAAE;QAAsB,CAAC,EAAE5c,OAAO,CAACQ,UAAU,CAAC,EACnEuZ,uCAAC,CAAC,MAAM,EAAE;UAAE6C,KAAK,EAAE;QAAsB,CAAC,EAAE,CAC1C7C,uCAAC,CAAC,QAAQ,EAAE/Z,OAAO,CAAC9D,KAAK,CAAC,EAC1B6d,uCAAC,CAAC,OAAO,EAAE/Z,OAAO,CAACwZ,QAAQ,EAC5B,EACF,CAAC,IACA,CAACO,uCAAC,CAAC,KAAK,EAAE;UAAE6C,KAAK,EAAE;QAAuB,CAAC,EAAEjU,KAAK,CAAC8T,SAAS,CAAC,CAAC,EACnE,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,SAASQ,gBAAgBA,CAAC,GAAGC,MAAM,EAAE;MACnC,OAAOA,MAAK,CACTC,OAAO,CAAC9qB,KAAK,IAAI;QAChB,IAAI6U,KAAK,CAACkW,OAAO,CAAC/qB,KAAK,CAAC,EAAE;UACxB,OAAOA,KAAK;QACd;QACA,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;UACtC,OAAOgrB,MAAM,CAACH,MAAM,CAAC7qB,KAAK,CAAC;QAC7B;QACA,OAAO,CAACA,KAAK,CAAC;MAChB,CAAC,EACAgP,GAAG,CAAChP,KAAK,IAAIqB,MAAM,CAACrB,KAAK,IAAI,EAAE,CAAC,CAACknB,WAAW,CAAC,CAAC,EAC9C1mB,MAAM,CAAC4H,OAAO,CAAC;IACpB;IAEA,SAAS6iB,cAAcA,CAACJ,MAAM,EAAE/D,OAAO,EAAE;MACvC,MAAMoE,cAAc,GAAGpE,OAAO,CAAChiB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;MAC9D,OAAO8lB,gBAAgB,CAACC,MAAM,CAAC,CAAChpB,IAAI,CAAC7B,KAAK,IAAI;QAC5C,IAAIA,KAAK,CAACoO,QAAQ,CAAC0Y,OAAO,CAAC,EAAE;UAC3B,OAAO,IAAI;QACb;QACA,IAAI,CAACoE,cAAc,EAAE;UACnB,OAAO,KAAK;QACd;QACA,OAAOlrB,KAAK,CAAC8E,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAACsJ,QAAQ,CAAC8c,cAAc,CAAC;MACvE,CAAC,CAAC;IACJ;IAEA,SAAStB,kBAAkBA,CAACnpB,IAAI,EAAE;MAChC,IAAIA,IAAI,CAAC4N,IAAI,KAAK,QAAQ,EAAE;QAC1B,OAAOhN,MAAM,CAACZ,IAAI,CAAC4M,MAAM,IAAI5M,IAAI,CAAC6M,GAAG,EAAED,MAAM,IAAI5M,IAAI,CAAC8M,EAAE,IAAI,EAAE,CAAC;MACjE;MACA,OAAOlM,MAAM,CAACZ,IAAI,CAAC4M,MAAM,IAAI5M,IAAI,CAAC6M,GAAG,EAAED,MAAM,IAAI5M,IAAI,CAAC8M,EAAE,CAACzI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACzF;IAEA,SAAS4kB,sBAAsBA,CAACjpB,IAAI,EAAE;MACpC,MAAM4M,MAAM,GAAGuc,kBAAkB,CAACnpB,IAAI,CAAC;MACvC,OAAO4M,MAAM,GAAG+b,aAAa,CAACppB,KAAK,CAACiI,GAAG,CAACoF,MAAM,CAAC,IAAI,IAAI,GAAG,IAAI;IAChE;IAEA,SAASoc,mBAAmBA,CAAChpB,IAAI,EAAEqmB,OAAO,EAAEnZ,OAAO,GAAG,IAAI,EAAE;MAC1D,OAAOsd,cAAc,CAAC,CACpBxqB,IAAI,CAACoJ,KAAK,EACVpJ,IAAI,CAAC0mB,QAAQ,EACb1mB,IAAI,CAAC4M,MAAM,EACX5M,IAAI,CAAC8M,EAAE,EACP9M,IAAI,CAAC4N,IAAI,EACT5N,IAAI,CAAC6M,GAAG,EAAED,MAAM,EAChB5M,IAAI,CAAC6M,GAAG,EAAE6d,OAAO,EACjB1qB,IAAI,CAAC6M,GAAG,EAAE8d,QAAQ,EAClB3qB,IAAI,CAAC6M,GAAG,EAAE+d,SAAS,EACnB5qB,IAAI,CAAC6M,GAAG,EAAE9E,IAAI,EACd/H,IAAI,CAAC6M,GAAG,EAAE/I,WAAW,EACrB9D,IAAI,CAAC6M,GAAG,EAAE/P,MAAM,EAChBkD,IAAI,CAAC6M,GAAG,EAAEge,WAAW,EACrB7qB,IAAI,CAAC6M,GAAG,EAAEU,KAAK,EACfL,OAAO,EAAE9D,KAAK,EACd8D,OAAO,EAAEwZ,QAAQ,EACjBxZ,OAAO,EAAEC,GAAG,EACZD,OAAO,EAAEJ,EAAE,EACXI,OAAO,EAAEK,KAAK,EACdL,OAAO,EAAEO,OAAO,EAChBP,OAAO,EAAEI,OAAO,EAChBJ,OAAO,EAAE4d,SAAQ,CAClB,EAAEzE,OAAO,CAAC;IACb;IAEA,SAASgD,cAAcA,CAACrpB,IAAI,EAAEqmB,OAAO,EAAE;MACrC,OAAOmE,cAAc,CAAC,CACpBxqB,IAAI,CAACoJ,KAAK,EACVpJ,IAAI,CAAC0mB,QAAQ,EACb1mB,IAAI,CAACmN,GAAG,EACRnN,IAAI,CAAC8M,EAAE,EACP9M,IAAI,CAACuN,KAAK,EACVvN,IAAI,CAACyN,OAAO,EACZzN,IAAI,CAACsN,OAAO,EACZtN,IAAI,CAAC8qB,SAAQ,CACd,EAAEzE,OAAO,CAAC;IACb;IAEA,SAASyC,kBAAkBA,CAAC9oB,IAAI,EAAE;MAChC,OAAO;QACL,GAAGA,IAAI;QACP+qB,UAAU,EAAE,cAAc;QAC1BC,SAAS,EAAE,gBAAgBhrB,IAAI,CAAC8M,EAAE;MACpC,CAAC;IACH;IAEA,SAASwc,aAAaA,CAACpc,OAAO,EAAE;MAC9B,OAAO;QACLJ,EAAE,EAAEI,OAAO,CAACJ,EAAE;QACdie,UAAU,EAAE,SAAS;QACrBC,SAAS,EAAE,WAAW9d,OAAO,CAACC,GAAG,IAAID,OAAO,CAACJ,EAAE,EAAE;QACjDI,OAAO;QACP9D,KAAK,EAAE8D,OAAO,CAAC9D,KAAK;QACpBsd,QAAQ,EAAExZ,OAAO,CAACwZ,QAAQ;QAC1B3iB,QAAQ,EAAEmJ,OAAO,CAACnJ,QAAQ;QAC1B2J,UAAU,EAAER,OAAO,CAACQ,UAAU;QAC9B6B,MAAM,EAAE;MACV,CAAC;IACH;IAEA,SAAS0b,gBAAgBA,CAACjrB,IAAI,EAAE;MAC9B,IAAIA,IAAI,CAAC+qB,UAAU,KAAK,cAAc,EAAE;QACtC,OAAO/qB,IAAI,CAAC8M,EAAE,KAAKjS,aAAa,CAACqwB,QAAQ;MAC3C;MACA,OAAO,UAAUlrB,IAAI,CAACkN,OAAO,EAAEC,GAAG,IAAInN,IAAI,CAAC8M,EAAE,EAAE,KAAKjS,aAAa,CAACqwB,QAAQ;IAC5E;IAEA,SAASC,cAAcA,CAACnrB,IAAI,EAAE;MAC5B,IAAIA,IAAI,CAAC+qB,UAAU,KAAK,SAAS,EAAE;QACjClvB,QAAQ,CAACuvB,QAAQ,CAACprB,IAAI,CAACkN,OAAO,CAAC;QAC/B;MACF;MACArS,aAAa,CAACqrB,qBAAqB,CAAClmB,IAAI,CAAC8M,EAAE,CAAC;IAC9C;IAEA,SAASue,kBAAkBA,CAAA,EAAG;MAC5BxvB,QAAQ,CAAC4V,WAAW,GAAG,EAAE;MACzB5V,QAAQ,CAAC+qB,UAAU,GAAG,EAAE;MACxB/rB,aAAa,CAAC4W,WAAW,GAAG,EAAE;MAC9B5W,aAAa,CAAC4tB,YAAY,GAAG,EAAE;IACjC;IAEA,SAAS6C,iBAAiBA,CAAA,EAAG;MAC3B/E,UAAU,CAAChnB,KAAK,GAAG,EAAE;MACrB+nB,SAAS,CAAC/nB,KAAK,GAAG,EAAE;MACpBgoB,iBAAiB,CAAChoB,KAAK,GAAG,EAAE;MAC5BioB,gBAAgB,CAACjoB,KAAK,GAAG,EAAE;MAC3BkoB,YAAY,CAACloB,KAAK,GAAG,EAAE;MACvBmoB,aAAa,CAACnoB,KAAK,GAAG,EAAE;MACxBooB,WAAW,CAACpoB,KAAK,GAAG,EAAE;MACtBqoB,mBAAmB,CAACroB,KAAK,GAAG,EAAE;MAC9BsoB,cAAc,CAACtoB,KAAK,GAAG,EAAE;MACzBuoB,kBAAkB,CAACvoB,KAAK,GAAG,EAAE;MAC7B8rB,kBAAkB,CAAC,CAAC;IACtB;IAEA,SAASE,gBAAgBA,CAAA,EAAG;MAC1BrE,cAAc,CAAC3nB,KAAK,GAAG,CAAC2nB,cAAc,CAAC3nB,KAAK;IAC9C;IAEA,SAASisB,eAAeA,CAAA,EAAG;MACzBtE,cAAc,CAAC3nB,KAAK,GAAG,KAAK;IAC9B;IAEA,SAASksB,UAAUA,CAACpP,MAAM,EAAE;MAC1BiP,iBAAiB,CAAC,CAAC;MACnBnE,YAAY,CAAC5nB,KAAK,GAAG8c,MAAM;MAC3B6K,cAAc,CAAC3nB,KAAK,GAAG,KAAK;MAC5B,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,eAAe,CAAC,CAACoO,QAAQ,CAAC0O,MAAM,CAAC,EAAE;QAClExgB,QAAQ,CAACE,eAAe,CAAC;UAAE2G,KAAK,EAAE;QAAK,CAAC,CAAC;MAC3C;IACF;IAEA,SAASgpB,gBAAgBA,CAAA,EAAG;MAC1BvE,YAAY,CAAC5nB,KAAK,GAAG,EAAE;MACvB6nB,UAAU,CAAC7nB,KAAK,GAAG,KAAK;MACxB+rB,iBAAiB,CAAC,CAAC;IACrB;IAEA,SAASK,aAAaA,CAACC,SAAS,EAAE;MAChC,MAAM7X,QAAQ,GAAG,IAAIC,GAAG,CAAC8T,kBAAkB,CAACvoB,KAAK,CAAC;MAClD,IAAIwU,QAAQ,CAACE,GAAG,CAAC2X,SAAS,CAAC,EAAE;QAC3B7X,QAAQ,CAACG,MAAM,CAAC0X,SAAS,CAAC;MAC5B,CAAC,MAAM;QACL7X,QAAQ,CAACI,GAAG,CAACyX,SAAS,CAAC;MACzB;MACA9D,kBAAkB,CAACvoB,KAAK,GAAG6U,KAAK,CAACC,IAAI,CAACN,QAAQ,CAAC;IACjD;IAEA,eAAe8X,YAAYA,CAAA,EAAG;MAC5B,IAAItC,cAAc,CAAChqB,KAAK,IAAI6nB,UAAU,CAAC7nB,KAAK,EAAE;QAC5C;MACF;MACA6nB,UAAU,CAAC7nB,KAAK,GAAG,IAAI;MACvB8rB,kBAAkB,CAAC,CAAC;MACpB,IAAI;QACF,IAAI9Z,EAAE,GAAG,KAAK;QACd,IAAI4V,YAAY,CAAC5nB,KAAK,KAAK,YAAY,EAAE;UACvCgS,EAAE,GAAG,MAAM1V,QAAQ,CAACikB,UAAU,CAACyG,UAAU,CAAChnB,KAAK,CAAC;UAChD,IAAIgS,EAAE,IAAI1V,QAAQ,CAACgoB,aAAa,EAAE;YAChChoB,QAAQ,CAACuvB,QAAQ,CAACvvB,QAAQ,CAACgoB,aAAa,CAAC;UAC3C;QACF,CAAC,MAAM,IAAIsD,YAAY,CAAC5nB,KAAK,KAAK,aAAa,EAAE;UAC/CgS,EAAE,GAAG,MAAM1W,aAAa,CAACmtB,WAAW,CAAC;YACnCjgB,IAAI,EAAEuf,SAAS,CAAC/nB,KAAK;YACrByM,YAAY,EAAEub,iBAAiB,CAAChoB,KAAK;YACrC0M,WAAW,EAAEub,gBAAgB,CAACjoB,KAAK;YACnCusB,SAAS,EAAEhE,kBAAkB,CAACvoB;UAChC,CAAC,CAAC;QACJ,CAAC,MAAM,IAAI4nB,YAAY,CAAC5nB,KAAK,KAAK,WAAW,EAAE;UAC7CgS,EAAE,GAAG,MAAM1W,aAAa,CAACotB,SAAS,CAACR,YAAY,CAACloB,KAAK,CAAC;QACxD,CAAC,MAAM,IAAI4nB,YAAY,CAAC5nB,KAAK,KAAK,WAAW,EAAE;UAC7CgS,EAAE,GAAG,MAAM1W,aAAa,CAACkxB,gBAAgB,CAACjE,kBAAkB,CAACvoB,KAAK,EAAEmoB,aAAa,CAACnoB,KAAK,CAAC;QAC1F,CAAC,MAAM,IAAI4nB,YAAY,CAAC5nB,KAAK,KAAK,eAAe,EAAE;UACjDgS,EAAE,GAAG,MAAM1W,aAAa,CAACmtB,WAAW,CAAC;YACnCjgB,IAAI,EAAE4f,WAAW,CAACpoB,KAAK;YACvBusB,SAAS,EAAEhE,kBAAkB,CAACvoB,KAAK;YACnCyM,YAAY,EAAE4b,mBAAmB,CAACroB,KAAK;YACvCysB,OAAO,EAAE;UACX,CAAC,CAAC;QACJ;QACA,IAAIza,EAAE,EAAE;UACNhP,MAAM,CAACgB,UAAU,CAACmoB,gBAAgB,EAAE,GAAG,CAAC;QAC1C;MACF,CAAC,SAAS;QACRtE,UAAU,CAAC7nB,KAAK,GAAG,KAAK;MAC1B;IACF;IAEA+F,QAAQ,CAACqQ,gBAAgB,CAAC,OAAO,EAAE6V,eAAe,CAAC;IACnDrvB,+DAAe,CAAC,MAAM;MACpBmJ,QAAQ,CAACsQ,mBAAmB,CAAC,OAAO,EAAE4V,eAAe,CAAC;IACxD,CAAC,CAAC;IAEF,SAASS,YAAYA,CAAC1sB,KAAK,EAAE;MAC3B,MAAM2sB,KAAK,GAAG7oB,MAAM,CAAC9D,KAAK,IAAI,CAAC,CAAC;MAChC,OAAO2sB,KAAK,GAAG,EAAE,GAAG,KAAK,GAAGtrB,MAAM,CAACsrB,KAAK,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtUoF;AACjC;AACM;AACL;AAwEpD,MAAMC,gBAAgB,GAAG,GAAG;;;;IAtE5B,MAAMvxB,OAAO,GAAGF,yEAAe,CAAC,CAAC;IACjC,MAAMkB,UAAU,GAAGF,+EAAkB,CAAC,CAAC;IACvC,MAAMG,QAAQ,GAAGF,0EAAe,CAAC,CAAC;IAClC,MAAMywB,aAAa,GAAG,CACpB;MAAE1sB,GAAG,EAAE,eAAe;MAAEF,KAAK,EAAE;IAAO,CAAC,EACvC;MAAEE,GAAG,EAAE,UAAU;MAAEF,KAAK,EAAE;IAAO,CAAC,EAClC;MAAEE,GAAG,EAAE,QAAQ;MAAEF,KAAK,EAAE;IAAO,CAAC,EAChC;MAAEE,GAAG,EAAE,UAAU;MAAEF,KAAK,EAAE;IAAO,CAAC,EAClC;MAAEE,GAAG,EAAE,UAAU;MAAEF,KAAK,EAAE;IAAO,EAClC;IACD,MAAM6sB,QAAQ,GAAGnwB,uDAAQ,CAAC,MAAM,CAACtB,OAAO,CAACkJ,WAAW,IAAIlJ,OAAO,CAACG,MAAM,IAAI,GAAG,EAAE8F,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IACzG,MAAMwrB,YAAY,GAAGjwB,kDAAG,CAAC,KAAK,CAAC;IAC/B,MAAMkwB,eAAe,GAAGlwB,kDAAG,CAAC,UAAU,CAAC;IACvC,MAAMmwB,cAAc,GAAGnwB,kDAAG,CAAC,KAAK,CAAC;IACjC,MAAMowB,cAAc,GAAGpwB,kDAAG,CAAC,EAAE,CAAC;IAC9B,MAAMqwB,aAAa,GAAGrwB,kDAAG,CAAC,EAAE,CAAC;IAC7B,MAAMswB,WAAW,GAAGtwB,kDAAG,CAAC,KAAK,CAAC;IAC9B,MAAMuwB,aAAa,GAAGvwB,kDAAG,CAAC,KAAK,CAAC;IAChC,MAAMwwB,aAAa,GAAGxwB,kDAAG,CAAC,EAAE,CAAC;IAC7B,MAAMywB,YAAY,GAAGzwB,kDAAG,CAAC,EAAE,CAAC;IAC5B,MAAM0wB,WAAW,GAAG1wB,kDAAG,CAAC,IAAI,CAAC;IAC7B,MAAM2wB,cAAc,GAAG3wB,kDAAG,CAAC,EAAE,CAAC;IAC9B,MAAM4wB,aAAa,GAAG5wB,kDAAG,CAAC,IAAI,CAAC;IAC/B,MAAM6wB,aAAa,GAAG7wB,kDAAG,CAAC,IAAI,CAAC;IAC/B,MAAM8wB,oBAAoB,GAAG9wB,kDAAG,CAAC,IAAI,CAAC;IACtC,MAAM0P,YAAY,GAAG1P,kDAAG,CAAC;MACvByH,WAAW,EAAE;IACf,CAAC,CAAC;IACF,MAAMspB,aAAa,GAAGhxB,uDAAQ,CAAC;MAC7BixB,WAAW,EAAE,EAAE;MACfpmB,WAAW,EAAE,EAAE;MACf7H,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,MAAMkuB,gBAAgB,GAAGpxB,uDAAQ,CAAC,MAAM8wB,cAAc,CAACztB,KAAK,IAAI3E,OAAO,CAACmJ,QAAQ,IAAI,EAAE,CAAC;IACvF,MAAMwpB,kBAAkB,GAAGrxB,uDAAQ,CAAC,MAAMkwB,aAAa,CAACnf,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAACN,GAAG,KAAK6sB,eAAe,CAAChtB,KAAK,CAAC,IAAI6sB,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7H,MAAMoB,mBAAmB,GAAGpxB,uDAAQ,CAAC;MACnCqxB,IAAI,EAAE,KAAK;MACX1kB,GAAG,EAAE,EAAE;MACP8R,KAAK,EAAE,CAAC;MACRE,OAAO,EAAE,CAAC;MACVC,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,KAAK;MACfC,UAAU,EAAE,CAAC;MACbC,UAAU,EAAE,CAAC;MACbC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE;IACf,CAAC,CAAC;IACF,MAAMqS,aAAa,GAAGtxB,uDAAQ,CAAC;MAC7BqxB,IAAI,EAAE,KAAK;MACXE,MAAM,EAAE,KAAK;MACbC,IAAI,EAAE,KAAK;MACXhsB,KAAK,EAAE,EAAE;MACTisB,SAAS,EAAE,EAAE;MACbC,QAAQ,EAAE,YAAY;MACtBxN,KAAK,EAAE,IAAI;MACXyN,SAAS,EAAE,CAAC;MACZlT,KAAK,EAAE,CAAC;MACRC,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE,CAAC;MACVC,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,KAAK;MACfC,UAAU,EAAE,CAAC;MACbC,UAAU,EAAE,CAAC;MACbC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE;IACf,CAAC,CAAC;IACF,MAAM2S,kBAAkB,GAAG9xB,uDAAQ,CAAC,OAAO;MACzC8f,SAAS,EAAE,eAAewR,mBAAmB,CAACzS,OAAO,OAAOyS,mBAAmB,CAACxS,OAAO,gBAAgBwS,mBAAmB,CAAC3S,KAAK;IAClI,CAAC,CAAC,CAAC;IAIHvgB,wDAAS,CAAC,MAAM;MACdM,OAAO,CAACqzB,cAAc,CAAC,CAAC;MACxB1rB,MAAM,CAACoT,gBAAgB,CAAC,QAAQ,EAAEuY,iBAAiB,CAAC;IACtD,CAAC,CAAC;IAEF/xB,8DAAe,CAAC,MAAM;MACpBgyB,oBAAoB,CAAC,CAAC;MACtBC,kBAAkB,CAAC,CAAC;MACpB7rB,MAAM,CAACqT,mBAAmB,CAAC,QAAQ,EAAEsY,iBAAiB,CAAC;IACzD,CAAC,CAAC;IAEF,SAASG,YAAYA,CAAA,EAAG;MACtBzyB,UAAU,CAACyyB,YAAY,CAAC,CAAC;MACzBxyB,QAAQ,CAACE,eAAe,CAAC,CAAC;IAC5B;IAEA,SAASuyB,oBAAoBA,CAAA,EAAG;MAC9BzB,aAAa,CAACttB,KAAK,GAAG,EAAE;MACxButB,YAAY,CAACvtB,KAAK,GAAG,EAAE;IACzB;IAEA,SAASgvB,qBAAqBA,CAAA,EAAG;MAC/B9B,cAAc,CAACltB,KAAK,GAAG,EAAE;MACzBmtB,aAAa,CAACntB,KAAK,GAAG,EAAE;IAC1B;IAEA,SAASivB,kBAAkBA,CAAA,EAAG;MAC5BpB,aAAa,CAACC,WAAW,GAAG,EAAE;MAC9BD,aAAa,CAACnmB,WAAW,GAAG,EAAE;MAC9BmmB,aAAa,CAAChuB,eAAe,GAAG,EAAE;IACpC;IAEA,SAASqvB,YAAYA,CAAA,EAAG;MACtBnC,YAAY,CAAC/sB,KAAK,GAAG,IAAI;MACzBgtB,eAAe,CAAChtB,KAAK,GAAG,UAAU;MAClCgvB,qBAAqB,CAAC,CAAC;IACzB;IAEA,SAASG,aAAaA,CAAA,EAAG;MACvB,IAAIlC,cAAc,CAACjtB,KAAK,EAAE;QACxB;MACF;MACA+sB,YAAY,CAAC/sB,KAAK,GAAG,KAAK;MAC1BgvB,qBAAqB,CAAC,CAAC;MACvBC,kBAAkB,CAAC,CAAC;IACtB;IAEA,SAASG,qBAAqBA,CAACC,OAAO,EAAE;MACtCrC,eAAe,CAAChtB,KAAK,GAAGqvB,OAAO;MAC/BL,qBAAqB,CAAC,CAAC;IACzB;IAEA,SAASJ,oBAAoBA,CAAA,EAAG;MAC9B,IAAInB,cAAc,CAACztB,KAAK,EAAE;QACxBsJ,GAAG,CAAC4P,eAAe,CAACuU,cAAc,CAACztB,KAAK,CAAC;QACzCytB,cAAc,CAACztB,KAAK,GAAG,EAAE;MAC3B;IACF;IAEA,SAASsvB,sBAAsBA,CAAA,EAAG;MAChC,IAAInB,aAAa,CAACG,SAAS,EAAE;QAC3BhlB,GAAG,CAAC4P,eAAe,CAACiV,aAAa,CAACG,SAAS,CAAC;QAC5CH,aAAa,CAACG,SAAS,GAAG,EAAE;MAC9B;IACF;IAEA,eAAeiB,iBAAiBA,CAAA,EAAG;MACjCnC,WAAW,CAACptB,KAAK,GAAG,IAAI;MACxB+uB,oBAAoB,CAAC,CAAC;MACtBviB,YAAY,CAACxM,KAAK,CAACuE,WAAW,GAAGlJ,OAAO,CAACkJ,WAAW,IAAIlJ,OAAO,CAACG,MAAM,IAAI,EAAE;MAC5E,MAAMwkB,OAAO,GAAG,MAAM3kB,OAAO,CAACqzB,cAAc,CAAC,CAAC;MAC9C,IAAItB,WAAW,CAACptB,KAAK,IAAIggB,OAAO,EAAE;QAChCxT,YAAY,CAACxM,KAAK,CAACuE,WAAW,GAAGlJ,OAAO,CAACkJ,WAAW,IAAIlJ,OAAO,CAACG,MAAM,IAAI,EAAE;MAC9E;IACF;IAEA,SAASg0B,kBAAkBA,CAAA,EAAG;MAC5BpC,WAAW,CAACptB,KAAK,GAAG,KAAK;MACzBwtB,WAAW,CAACxtB,KAAK,GAAG,IAAI;MACxB+uB,oBAAoB,CAAC,CAAC;MACtBH,oBAAoB,CAAC,CAAC;MACtBa,kBAAkB,CAAC,CAAC;MACpBZ,kBAAkB,CAAC,CAAC;IACtB;IAEA,SAASa,cAAcA,CAACpW,KAAK,EAAE;MAC7B,MAAMjC,IAAI,GAAGiC,KAAK,CAACjM,MAAM,CAACoL,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;MAC5Ca,KAAK,CAACjM,MAAM,CAACrN,KAAK,GAAG,EAAE;MACvB+uB,oBAAoB,CAAC,CAAC;MACtB,IAAI1X,IAAI,EAAE;QACRsY,iBAAiB,CAACtY,IAAI,CAAC;MACzB;IACF;IAEA,SAASuY,kBAAkBA,CAAA,EAAG;MAC5BlC,aAAa,CAAC1tB,KAAK,EAAEoY,KAAK,CAAC,CAAC;IAC9B;IAEA,SAASyX,iBAAiBA,CAAA,EAAG;MAC3B,IAAI,CAAC9B,gBAAgB,CAAC/tB,KAAK,EAAE;QAC3B;MACF;MACAiuB,mBAAmB,CAACC,IAAI,GAAG,IAAI;MAC/BD,mBAAmB,CAACzkB,GAAG,GAAGukB,gBAAgB,CAAC/tB,KAAK;MAChD8vB,kBAAkB,CAAC,CAAC;IACtB;IAEA,SAASL,kBAAkBA,CAAA,EAAG;MAC5BxB,mBAAmB,CAACC,IAAI,GAAG,KAAK;MAChCD,mBAAmB,CAACvS,QAAQ,GAAG,KAAK;IACtC;IAEA,SAASoU,kBAAkBA,CAAA,EAAG;MAC5B7B,mBAAmB,CAAC3S,KAAK,GAAG,CAAC;MAC7B2S,mBAAmB,CAACzS,OAAO,GAAG,CAAC;MAC/ByS,mBAAmB,CAACxS,OAAO,GAAG,CAAC;IACjC;IAEA,SAASsU,iBAAiBA,CAAChN,MAAM,EAAE;MACjCkL,mBAAmB,CAAC3S,KAAK,GAAG3X,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEC,MAAM,CAAC,CAACmqB,mBAAmB,CAAC3S,KAAK,GAAGyH,MAAM,EAAElC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/G,IAAIoN,mBAAmB,CAAC3S,KAAK,IAAI,CAAC,EAAE;QAClC2S,mBAAmB,CAACzS,OAAO,GAAG,CAAC;QAC/ByS,mBAAmB,CAACxS,OAAO,GAAG,CAAC;MACjC;IACF;IAEA,SAASuU,wBAAwBA,CAAC1W,KAAK,EAAE;MACvCyW,iBAAiB,CAACzW,KAAK,CAAC0J,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IACvD;IAEA,SAASiN,sBAAsBA,CAAC3W,KAAK,EAAE;MACrC,IAAI2U,mBAAmB,CAAC3S,KAAK,IAAI,CAAC,EAAE;QAClC;MACF;MACA2S,mBAAmB,CAACvS,QAAQ,GAAG,IAAI;MACnCuS,mBAAmB,CAACtS,UAAU,GAAGrC,KAAK,CAAC2J,OAAO;MAC9CgL,mBAAmB,CAACrS,UAAU,GAAGtC,KAAK,CAAC4J,OAAO;MAC9C+K,mBAAmB,CAACpS,WAAW,GAAGoS,mBAAmB,CAACzS,OAAO;MAC7DyS,mBAAmB,CAACnS,WAAW,GAAGmS,mBAAmB,CAACxS,OAAO;MAC7DnC,KAAK,CAAC0H,aAAa,CAACkP,iBAAiB,GAAG5W,KAAK,CAAC6W,SAAS,CAAC;IAC1D;IAEA,SAASC,qBAAqBA,CAAC9W,KAAK,EAAE;MACpC,IAAI,CAAC2U,mBAAmB,CAACvS,QAAQ,EAAE;QACjC;MACF;MACAuS,mBAAmB,CAACzS,OAAO,GAAGyS,mBAAmB,CAACpS,WAAW,GAAGvC,KAAK,CAAC2J,OAAO,GAAGgL,mBAAmB,CAACtS,UAAU;MAC9GsS,mBAAmB,CAACxS,OAAO,GAAGwS,mBAAmB,CAACnS,WAAW,GAAGxC,KAAK,CAAC4J,OAAO,GAAG+K,mBAAmB,CAACrS,UAAU;IAChH;IAEA,SAASyU,qBAAqBA,CAAA,EAAG;MAC/BpC,mBAAmB,CAACvS,QAAQ,GAAG,KAAK;IACtC;IAEA,SAAS4U,YAAYA,CAAChX,KAAK,EAAE;MAC3B,MAAMjC,IAAI,GAAGxC,KAAK,CAACC,IAAI,CAACwE,KAAK,CAACI,YAAY,EAAEjB,KAAK,IAAI,EAAE,CAAC,CAAC/K,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC4N,IAAI,CAACpF,UAAU,CAAC,QAAQ,CAAC,CAAC;MACrG,IAAIoO,IAAI,EAAE;QACR0X,oBAAoB,CAAC,CAAC;QACtBY,iBAAiB,CAACtY,IAAI,CAAC;MACzB;IACF;IAEA,SAASkZ,gBAAgBA,CAAA,EAAG;MAC1B,MAAMzqB,MAAM,GAAG6nB,aAAa,CAAC3tB,KAAK;MAClC,MAAMqiB,IAAI,GAAGvc,MAAM,EAAEwc,qBAAqB,CAAC,CAAC;MAC5C,MAAM1c,KAAK,GAAGjC,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAAC6sB,KAAK,CAACnO,IAAI,EAAEzc,KAAK,IAAI,GAAG,CAAC,CAAC;MAC3D,MAAMC,MAAM,GAAGlC,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAAC6sB,KAAK,CAACnO,IAAI,EAAExc,MAAM,IAAI,GAAG,CAAC,CAAC;MAC7D,OAAO;QAAED,KAAK;QAAEC;MAAO,CAAC;IAC1B;IAEA,SAAS4qB,cAAcA,CAAA,EAAG;MACxB,MAAM;QAAE7qB,KAAK;QAAEC;MAAO,CAAC,GAAG0qB,gBAAgB,CAAC,CAAC;MAC5C,OAAO5sB,IAAI,CAAC6sB,KAAK,CAAC7sB,IAAI,CAACE,GAAG,CAAC+B,KAAK,EAAEC,MAAM,CAAC,GAAG,IAAI,CAAC;IACnD;IAEA,SAAS6qB,gBAAgBA,CAAA,EAAG;MAC1B,MAAM3P,KAAK,GAAGoN,aAAa,CAACpN,KAAK;MACjC,IAAI,CAACA,KAAK,EAAE;QACV,OAAO;UAAEnb,KAAK,EAAE,CAAC;UAAEC,MAAM,EAAE;QAAE,CAAC;MAChC;MACA,MAAM8qB,WAAW,GAAGhtB,IAAI,CAACitB,GAAG,CAACzC,aAAa,CAAC5S,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE;MACjE,OAAO;QACL3V,KAAK,EAAE+qB,WAAW,GAAG5P,KAAK,CAAC8P,aAAa,GAAG9P,KAAK,CAAC+P,YAAY;QAC7DjrB,MAAM,EAAE8qB,WAAW,GAAG5P,KAAK,CAAC+P,YAAY,GAAG/P,KAAK,CAAC8P;MACnD,CAAC;IACH;IAEA,SAASE,kBAAkBA,CAAA,EAAG;MAC5B,MAAMC,QAAQ,GAAGP,cAAc,CAAC,CAAC;MACjC,MAAMQ,OAAO,GAAGP,gBAAgB,CAAC,CAAC;MAClC,MAAMQ,WAAW,GAAGD,OAAO,CAACrrB,KAAK,GAAGuoB,aAAa,CAAC7S,KAAK;MACvD,MAAM6V,YAAY,GAAGF,OAAO,CAACprB,MAAM,GAAGsoB,aAAa,CAAC7S,KAAK;MACzD,MAAM8V,IAAI,GAAGztB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAACstB,WAAW,GAAGF,QAAQ,IAAI,CAAC,CAAC;MACtD,MAAMK,IAAI,GAAG1tB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAACutB,YAAY,GAAGH,QAAQ,IAAI,CAAC,CAAC;MACvD7C,aAAa,CAAC3S,OAAO,GAAG7X,IAAI,CAACC,GAAG,CAAC,CAACwtB,IAAI,EAAEztB,IAAI,CAACE,GAAG,CAACutB,IAAI,EAAEjD,aAAa,CAAC3S,OAAO,CAAC,CAAC;MAC9E2S,aAAa,CAAC1S,OAAO,GAAG9X,IAAI,CAACC,GAAG,CAAC,CAACytB,IAAI,EAAE1tB,IAAI,CAACE,GAAG,CAACwtB,IAAI,EAAElD,aAAa,CAAC1S,OAAO,CAAC,CAAC;IAChF;IAEA,SAAS6V,sBAAsBA,CAAA,EAAG;MAChC,MAAMN,QAAQ,GAAGP,cAAc,CAAC,CAAC;MACjC,MAAMQ,OAAO,GAAGP,gBAAgB,CAAC,CAAC;MAClCvC,aAAa,CAACK,SAAS,GAAG7qB,IAAI,CAACC,GAAG,CAACotB,QAAQ,GAAGC,OAAO,CAACrrB,KAAK,EAAEorB,QAAQ,GAAGC,OAAO,CAACprB,MAAM,CAAC;MACvFsoB,aAAa,CAAC7S,KAAK,GAAG3X,IAAI,CAACC,GAAG,CAACuqB,aAAa,CAACK,SAAS,EAAEL,aAAa,CAAC7S,KAAK,IAAI6S,aAAa,CAACK,SAAS,CAAC;IACzG;IAEA,SAAS+C,eAAeA,CAACzrB,MAAM,EAAEF,KAAK,EAAEC,MAAM,EAAE2rB,WAAW,GAAG,CAAC,EAAEC,QAAQ,GAAG,KAAK,EAAE;MACjF,MAAM1Q,KAAK,GAAGoN,aAAa,CAACpN,KAAK;MACjC,IAAI,CAACjb,MAAM,IAAI,CAACib,KAAK,EAAE;QACrB;MACF;MAEA,MAAM2Q,GAAG,GAAGD,QAAQ,GAAG,CAAC,GAAIzuB,MAAM,CAAC2uB,gBAAgB,IAAI,CAAE;MACzD7rB,MAAM,CAACF,KAAK,GAAGjC,IAAI,CAAC6sB,KAAK,CAAC5qB,KAAK,GAAG8rB,GAAG,CAAC;MACtC5rB,MAAM,CAACD,MAAM,GAAGlC,IAAI,CAAC6sB,KAAK,CAAC3qB,MAAM,GAAG6rB,GAAG,CAAC;MACxC,MAAMzrB,OAAO,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;MACvCD,OAAO,CAAC2rB,YAAY,CAACF,GAAG,EAAE,CAAC,EAAE,CAAC,EAAEA,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1CzrB,OAAO,CAAC4rB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAEjsB,KAAK,EAAEC,MAAM,CAAC;MACtCI,OAAO,CAACE,SAAS,GAAG,SAAS;MAC7BF,OAAO,CAACG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;MACrCI,OAAO,CAAC6rB,IAAI,CAAC,CAAC;MACd7rB,OAAO,CAAC8rB,SAAS,CAACnsB,KAAK,GAAG,CAAC,GAAGuoB,aAAa,CAAC3S,OAAO,GAAGgW,WAAW,EAAE3rB,MAAM,GAAG,CAAC,GAAGsoB,aAAa,CAAC1S,OAAO,GAAG+V,WAAW,CAAC;MACpHvrB,OAAO,CAAC+rB,MAAM,CAAE7D,aAAa,CAAC5S,QAAQ,GAAG5X,IAAI,CAACsuB,EAAE,GAAI,GAAG,CAAC;MACxDhsB,OAAO,CAACqV,KAAK,CAAC6S,aAAa,CAAC7S,KAAK,GAAGkW,WAAW,EAAErD,aAAa,CAAC7S,KAAK,GAAGkW,WAAW,CAAC;MACnFvrB,OAAO,CAACisB,SAAS,CAACnR,KAAK,EAAE,CAACA,KAAK,CAAC+P,YAAY,GAAG,CAAC,EAAE,CAAC/P,KAAK,CAAC8P,aAAa,GAAG,CAAC,CAAC;MAC3E5qB,OAAO,CAAC1K,OAAO,CAAC,CAAC;MAEjB,IAAI,CAACk2B,QAAQ,EAAE;QACb,MAAMT,QAAQ,GAAGP,cAAc,CAAC,CAAC;QACjCxqB,OAAO,CAAC6rB,IAAI,CAAC,CAAC;QACd7rB,OAAO,CAACE,SAAS,GAAG,wBAAwB;QAC5CF,OAAO,CAACI,SAAS,CAAC,CAAC;QACnBJ,OAAO,CAACoc,IAAI,CAAC,CAAC,EAAE,CAAC,EAAEzc,KAAK,EAAEC,MAAM,CAAC;QACjCI,OAAO,CAACoc,IAAI,CAAC,CAACzc,KAAK,GAAGorB,QAAQ,IAAI,CAAC,EAAE,CAACnrB,MAAM,GAAGmrB,QAAQ,IAAI,CAAC,EAAEA,QAAQ,EAAEA,QAAQ,CAAC;QACjF/qB,OAAO,CAACksB,IAAI,CAAC,SAAS,CAAC;QACvBlsB,OAAO,CAAC1K,OAAO,CAAC,CAAC;MACnB;IACF;IAEA,SAASozB,iBAAiBA,CAAA,EAAG;MAC3B,IAAI,CAACR,aAAa,CAACD,IAAI,IAAI,CAACC,aAAa,CAACC,MAAM,EAAE;QAChD;MACF;MACA2C,kBAAkB,CAAC,CAAC;MACpB,MAAM;QAAEnrB,KAAK;QAAEC;MAAO,CAAC,GAAG0qB,gBAAgB,CAAC,CAAC;MAC5CgB,eAAe,CAAC5D,aAAa,CAAC3tB,KAAK,EAAE4F,KAAK,EAAEC,MAAM,CAAC;MACnD,MAAMusB,aAAa,GAAGxE,oBAAoB,CAAC5tB,KAAK;MAChD,IAAIoyB,aAAa,EAAE;QACjBb,eAAe,CAACa,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG3B,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;MACxE;IACF;IAEA,SAAS4B,qBAAqBA,CAAA,EAAG;MAC/B,IAAI,CAAClE,aAAa,CAACpN,KAAK,EAAE;QACxB;MACF;MACAoN,aAAa,CAAC5S,QAAQ,GAAG,CAAC;MAC1B4S,aAAa,CAAC3S,OAAO,GAAG,CAAC;MACzB2S,aAAa,CAAC1S,OAAO,GAAG,CAAC;MACzB6V,sBAAsB,CAAC,CAAC;MACxBnD,aAAa,CAAC7S,KAAK,GAAG6S,aAAa,CAACK,SAAS;MAC7CG,iBAAiB,CAAC,CAAC;IACrB;IAEA,SAASgB,iBAAiBA,CAACtY,IAAI,EAAE;MAC/B,IAAI,CAACA,IAAI,CAAChJ,IAAI,CAACpF,UAAU,CAAC,QAAQ,CAAC,EAAE;QACnCskB,YAAY,CAACvtB,KAAK,GAAG,SAAS;QAC9B;MACF;MACA,IAAIqX,IAAI,CAACwB,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;QAC/B0U,YAAY,CAACvtB,KAAK,GAAG,aAAa;QAClC;MACF;MAEA6uB,kBAAkB,CAAC,CAAC;MACpBV,aAAa,CAACD,IAAI,GAAG,IAAI;MACzBC,aAAa,CAACC,MAAM,GAAG,KAAK;MAC5BD,aAAa,CAAC9rB,KAAK,GAAG,EAAE;MACxB8rB,aAAa,CAACI,QAAQ,GAAGlX,IAAI,CAAC7O,IAAI,IAAI,YAAY;MAClD2lB,aAAa,CAACG,SAAS,GAAGhlB,GAAG,CAAC0P,eAAe,CAAC3B,IAAI,CAAC;MACnD,MAAM0J,KAAK,GAAG,IAAIuR,KAAK,CAAC,CAAC;MACzBvR,KAAK,CAACwR,MAAM,GAAG,MAAM;QACnBpE,aAAa,CAACpN,KAAK,GAAGA,KAAK;QAC3BoN,aAAa,CAACC,MAAM,GAAG,IAAI;QAC3BzT,uDAAQ,CAAC0X,qBAAqB,CAAC;MACjC,CAAC;MACDtR,KAAK,CAACyR,OAAO,GAAG,MAAM;QACpBrE,aAAa,CAAC9rB,KAAK,GAAG,QAAQ;QAC9B8rB,aAAa,CAACC,MAAM,GAAG,KAAK;MAC9B,CAAC;MACDrN,KAAK,CAACS,GAAG,GAAG2M,aAAa,CAACG,SAAS;IACrC;IAEA,SAASO,kBAAkBA,CAAA,EAAG;MAC5BV,aAAa,CAACD,IAAI,GAAG,KAAK;MAC1BC,aAAa,CAACC,MAAM,GAAG,KAAK;MAC5BD,aAAa,CAACE,IAAI,GAAG,KAAK;MAC1BF,aAAa,CAAC9rB,KAAK,GAAG,EAAE;MACxB8rB,aAAa,CAACpN,KAAK,GAAG,IAAI;MAC1BoN,aAAa,CAACzS,QAAQ,GAAG,KAAK;MAC9B4T,sBAAsB,CAAC,CAAC;IAC1B;IAEA,SAASmD,WAAWA,CAAC1P,MAAM,EAAE;MAC3B,IAAI,CAACoL,aAAa,CAACC,MAAM,EAAE;QACzB;MACF;MACAkD,sBAAsB,CAAC,CAAC;MACxBnD,aAAa,CAAC7S,KAAK,GAAG3X,IAAI,CAACC,GAAG,CAACuqB,aAAa,CAACK,SAAS,EAAE7qB,IAAI,CAACE,GAAG,CAACsqB,aAAa,CAACK,SAAS,GAAG,CAAC,EAAEL,aAAa,CAAC7S,KAAK,GAAGyH,MAAM,CAAC,CAAC;MAC5H4L,iBAAiB,CAAC,CAAC;IACrB;IAEA,SAAS+D,aAAaA,CAACC,OAAO,EAAE;MAC9B,IAAI,CAACxE,aAAa,CAACC,MAAM,EAAE;QACzB;MACF;MACAD,aAAa,CAAC5S,QAAQ,GAAG,CAAC4S,aAAa,CAAC5S,QAAQ,GAAGoX,OAAO,GAAG,GAAG,IAAI,GAAG;MACvErB,sBAAsB,CAAC,CAAC;MACxBP,kBAAkB,CAAC,CAAC;MACpBpC,iBAAiB,CAAC,CAAC;IACrB;IAEA,SAASiE,kBAAkBA,CAACtZ,KAAK,EAAE;MACjCmZ,WAAW,CAACnZ,KAAK,CAAC0J,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IACjD;IAEA,SAAS6P,gBAAgBA,CAACvZ,KAAK,EAAE;MAC/B,IAAI,CAAC6U,aAAa,CAACC,MAAM,EAAE;QACzB;MACF;MACAD,aAAa,CAACzS,QAAQ,GAAG,IAAI;MAC7ByS,aAAa,CAACxS,UAAU,GAAGrC,KAAK,CAAC2J,OAAO;MACxCkL,aAAa,CAACvS,UAAU,GAAGtC,KAAK,CAAC4J,OAAO;MACxCiL,aAAa,CAACtS,WAAW,GAAGsS,aAAa,CAAC3S,OAAO;MACjD2S,aAAa,CAACrS,WAAW,GAAGqS,aAAa,CAAC1S,OAAO;MACjDnC,KAAK,CAAC0H,aAAa,CAACkP,iBAAiB,GAAG5W,KAAK,CAAC6W,SAAS,CAAC;IAC1D;IAEA,SAAS2C,eAAeA,CAACxZ,KAAK,EAAE;MAC9B,IAAI,CAAC6U,aAAa,CAACzS,QAAQ,EAAE;QAC3B;MACF;MACAyS,aAAa,CAAC3S,OAAO,GAAG2S,aAAa,CAACtS,WAAW,GAAGvC,KAAK,CAAC2J,OAAO,GAAGkL,aAAa,CAACxS,UAAU;MAC5FwS,aAAa,CAAC1S,OAAO,GAAG0S,aAAa,CAACrS,WAAW,GAAGxC,KAAK,CAAC4J,OAAO,GAAGiL,aAAa,CAACvS,UAAU;MAC5F+S,iBAAiB,CAAC,CAAC;IACrB;IAEA,SAASoE,eAAeA,CAAA,EAAG;MACzB5E,aAAa,CAACzS,QAAQ,GAAG,KAAK;IAChC;IAEA,SAASsX,YAAYA,CAACltB,MAAM,EAAEuI,IAAI,GAAG,YAAY,EAAE4kB,OAAO,GAAG,GAAG,EAAE;MAChE,OAAO,IAAItuB,OAAO,CAAC,CAACC,OAAO,EAAEsuB,MAAM,KAAK;QACtCptB,MAAM,CAACqtB,MAAM,CAACC,IAAI,IAAI;UACpB,IAAIA,IAAI,EAAE;YACRxuB,OAAO,CAACwuB,IAAI,CAAC;UACf,CAAC,MAAM;YACLF,MAAM,CAAC,IAAI1vB,KAAK,CAAC,QAAQ,CAAC,CAAC;UAC7B;QACF,CAAC,EAAE6K,IAAI,EAAE4kB,OAAO,CAAC;MACnB,CAAC,CAAC;IACJ;IAEA,eAAeI,iBAAiBA,CAAA,EAAG;MACjC,IAAI,CAAClF,aAAa,CAACC,MAAM,IAAID,aAAa,CAACE,IAAI,EAAE;QAC/C;MACF;MACAF,aAAa,CAACE,IAAI,GAAG,IAAI;MACzBF,aAAa,CAAC9rB,KAAK,GAAG,EAAE;MACxB,IAAI;QACF,MAAMixB,YAAY,GAAGvtB,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;QACrDurB,eAAe,CAAC+B,YAAY,EAAE1G,gBAAgB,EAAEA,gBAAgB,EAAEA,gBAAgB,GAAG6D,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;QAC5G,MAAM2C,IAAI,GAAG,MAAMJ,YAAY,CAACM,YAAY,CAAC;QAC7C,MAAM/E,QAAQ,GAAGJ,aAAa,CAACI,QAAQ,CAACzpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,QAAQ;QAC3E,MAAMyuB,WAAW,GAAG,IAAI3a,IAAI,CAAC,CAACwa,IAAI,CAAC,EAAE,GAAG7E,QAAQ,MAAM,EAAE;UAAElgB,IAAI,EAAE;QAAa,CAAC,CAAC;QAC/Emf,WAAW,CAACxtB,KAAK,GAAGuzB,WAAW;QAC/B3E,oBAAoB,CAAC,CAAC;QACtBnB,cAAc,CAACztB,KAAK,GAAGsJ,GAAG,CAAC0P,eAAe,CAACua,WAAW,CAAC;QACvD1E,kBAAkB,CAAC,CAAC;MACtB,CAAC,CAAC,OAAOxsB,KAAK,EAAE;QACd8rB,aAAa,CAAC9rB,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,QAAQ;MACjD,CAAC,SAAS;QACR6rB,aAAa,CAACE,IAAI,GAAG,KAAK;MAC5B;IACF;IAEA,eAAemF,WAAWA,CAAA,EAAG;MAC3B,IAAInG,aAAa,CAACrtB,KAAK,IAAI,CAACwM,YAAY,CAACxM,KAAK,CAACuE,WAAW,EAAE;QAC1D;MACF;MACAwqB,oBAAoB,CAAC,CAAC;MACtB1B,aAAa,CAACrtB,KAAK,GAAG,IAAI;MAC1B,IAAI;QACF,MAAM3E,OAAO,CAACm4B,WAAW,CAAC;UACxBjvB,WAAW,EAAEiI,YAAY,CAACxM,KAAK,CAACuE,WAAW;UAC3CkvB,YAAY,EAAEjG,WAAW,CAACxtB;QAC5B,CAAC,CAAC;QACFwtB,WAAW,CAACxtB,KAAK,GAAG,IAAI;QACxB4uB,oBAAoB,CAAC,CAAC;QACtBtB,aAAa,CAACttB,KAAK,GAAG,OAAO;QAC7B1D,QAAQ,CAACE,eAAe,CAAC;UAAE2G,KAAK,EAAE;QAAK,CAAC,CAAC;MAC3C,CAAC,CAAC,OAAOd,KAAK,EAAE;QACdkrB,YAAY,CAACvtB,KAAK,GAAGqC,KAAK,CAACC,OAAO,IAAI,QAAQ;MAChD,CAAC,SAAS;QACR+qB,aAAa,CAACrtB,KAAK,GAAG,KAAK;MAC7B;IACF;IAEA,eAAe0zB,YAAYA,CAAA,EAAG;MAC5B,IAAIzG,cAAc,CAACjtB,KAAK,EAAE;QACxB;MACF;MACAgvB,qBAAqB,CAAC,CAAC;MACvB,MAAMlB,WAAW,GAAGD,aAAa,CAACC,WAAW;MAC7C,MAAMpmB,WAAW,GAAGmmB,aAAa,CAACnmB,WAAW;MAC7C,MAAM7H,eAAe,GAAGguB,aAAa,CAAChuB,eAAe;MACrD,IAAI,CAACiuB,WAAW,IAAI,CAACpmB,WAAW,IAAI,CAAC7H,eAAe,EAAE;QACpDstB,aAAa,CAACntB,KAAK,GAAG,SAAS;QAC/B;MACF;MACA,IAAI0H,WAAW,KAAK7H,eAAe,EAAE;QACnCstB,aAAa,CAACntB,KAAK,GAAG,aAAa;QACnC;MACF;MACA,IAAI8tB,WAAW,KAAKpmB,WAAW,EAAE;QAC/BylB,aAAa,CAACntB,KAAK,GAAG,cAAc;QACpC;MACF;MAEAitB,cAAc,CAACjtB,KAAK,GAAG,IAAI;MAC3B,IAAI;QACF,MAAM3E,OAAO,CAACs4B,cAAc,CAAC;UAAE7F,WAAW;UAAEpmB;QAAY,CAAC,CAAC;QAC1DunB,kBAAkB,CAAC,CAAC;QACpB/B,cAAc,CAACltB,KAAK,GAAG,OAAO;MAChC,CAAC,CAAC,OAAOqC,KAAK,EAAE;QACd8qB,aAAa,CAACntB,KAAK,GAAGqC,KAAK,CAACC,OAAO,IAAI,QAAQ;MACjD,CAAC,SAAS;QACR2qB,cAAc,CAACjtB,KAAK,GAAG,KAAK;MAC9B;IACF;IAEA,SAAS4zB,MAAMA,CAAA,EAAG;MAChBzE,aAAa,CAAC,CAAC;MACf7yB,QAAQ,CAACu3B,aAAa,CAAC,CAAC;MACxBx4B,OAAO,CAACu4B,MAAM,CAAC,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACltBA,MAAME,WAAW,GAAG9wB,MAAM,CAACkG,QAAQ,CAAC6qB,QAAQ,IAAI,WAAW;AAC3D,MAAMC,aAAa,GAAGhxB,MAAM,CAACixB,gBAAgB,IAAI,CAAC,CAAC;AACnD,MAAMC,eAAe,GAAG,GAAGlxB,MAAM,CAACkG,QAAQ,CAACC,QAAQ,KAAK2qB,WAAW,QAAQ;AAC3E,MAAMK,iBAAiB,GAAG,GAAGnxB,MAAM,CAACkG,QAAQ,CAACC,QAAQ,KAAK2qB,WAAW,OAAO;AAErE,MAAM/2B,SAAS,GAAG;EACvBsB,OAAO,EAAE,QAAQ;EACjBgL,WAAW,EAAE2qB,aAAa,CAAC3qB,WAAW,IAAI+qB,SAAgC,IAAID,iBAAiB;EAC/FnpB,SAAS,EAAEgpB,aAAa,CAAChpB,SAAS,IAAIopB,SAA8B,IAAIF,eAAe;EACvF5rB,iBAAiB,EAAE0rB,aAAa,CAAC1rB,iBAAiB,IAAI8rB,SAAuC,KAAKA,MAAsC,GAAG,CAAgC,GAAG,0BAA0B,CAAC;EACzMlsB,iBAAiB,EAAE8rB,aAAa,CAAC9rB,iBAAiB,IAAIksB,SAAuC,IAAI,GAAGD,iBAAiB,sBAAsB;EAC3I3pB,sBAAsB,EAAEwpB,aAAa,CAACxpB,sBAAsB,IAAI4pB,SAA6C,IAAI,GAAGD,iBAAiB,4BAA4B;EACjKS,WAAW,EAAEZ,aAAa,CAACY,WAAW,IAAIR,SAAgC,KAAKA,MAAsC,GAAG,CAAyB,GAAG,mBAAmB,CAAC;EACxKU,cAAc,EAAEd,aAAa,CAACc,cAAc,IAAIV,SAAoC,KAAKA,MAAsC,GAAG,CAA6B,GAAG,uBAAuB,CAAC;EAC1LY,aAAa,EAAEhB,aAAa,CAACgB,aAAa,IAAIZ,SAAmC,KAAKA,MAAsC,GAAG,CAA4B,GAAG,sBAAsB,CAAC;EACrLc,sBAAsB,EAAElB,aAAa,CAACkB,sBAAsB,IAAId,SAA4C,KAAKA,MAAsC,GAAG,CAAqC,GAAG,+BAA+B,CAAC;EAClOgB,cAAc,EAAEpB,aAAa,CAACoB,cAAc,IAAIhB,SAAoC,KAAKA,MAAsC,GAAG,CAA6B,GAAG,uBAAuB,CAAC;EAC1LkB,gBAAgB,EAAEtB,aAAa,CAACsB,gBAAgB,IAAIlB,SAAsC,KAAKA,MAAsC,GAAG,CAA+B,GAAG,yBAAyB,CAAC;EACpMoB,gBAAgB,EAAExB,aAAa,CAACwB,gBAAgB,IAAIpB,SAAsC,KAAKA,MAAsC,GAAG,CAA+B,GAAG,yBAAyB,CAAC;EACpMsB,WAAW,EAAE1B,aAAa,CAAC0B,WAAW,IAAItB,SAAgC,KAAKA,MAAsC,GAAG,CAAyB,GAAG,mBAAmB,CAAC;EACxKwB,UAAU,EAAE5B,aAAa,CAAC4B,UAAU,IAAIxB,SAA+B,KAAKA,MAAsC,GAAG,CAAwB,GAAG,kBAAkB,CAAC;EACnK0B,iBAAiB,EAAE9B,aAAa,CAAC8B,iBAAiB,IAAI1B,SAAuC,IAAI,GAAGF,eAAe,aAAa;EAChI8B,gBAAgB,EAAEhC,aAAa,CAACgC,gBAAgB,IAAI5B,SAAsC,IAAI,GAAGF,eAAe,YAAY;EAC5HgC,YAAY,EAAElC,aAAa,CAACkC,YAAY,IAAI9B,SAAkC,IAAIN,WAAW;EAC7FsC,WAAW,EAAEtyB,MAAM,CAACkwB,aAAa,CAACoC,WAAW,IAAIhC,SAAiC,IAAI,KAAK,CAAC;EAC5FkC,MAAM,EAAEtC,aAAa,CAACsC,MAAM,IAAIlC,SAA2B,KAAK,MAAM;EACtEoC,MAAM,EAAExC,aAAa,CAACwC,MAAM,IAAIpC,SAA2B,IAAI,KAAK;EACpEsC,KAAK,EAAE1C,aAAa,CAAC0C,KAAK,IAAItC,SAA0B,IAAI,EAAE;EAC9DwC,OAAO,EAAE5C,aAAa,CAAC4C,OAAO,IAAIxC,SAA2B,IAAI,MAAM;EACvE0C,cAAc,EAAEhzB,MAAM,CAACkwB,aAAa,CAAC8C,cAAc,IAAI1C,SAAoC,IAAI,KAAK,CAAC;EACrG4C,UAAU,EAAEhD,aAAa,CAACgD,UAAU,IAAI5C,SAA+B,KAAK,MAAM;EAClF8C,YAAY,EAAElD,aAAa,CAACkD,YAAY,IAAI9C,SAAkC,IAAI,qBAAqB;EACvGgD,MAAM,EAAEpD,aAAa,CAACoD,MAAM,IAAIhD,SAA2B,IAAI,YAAY;EAC3EkD,QAAQ,EAAE,CAAC;EACXC,kBAAkB,EAAE,sBAAsB;EAC1CC,sBAAsB,EAAE;AAC1B,CAAC,C;;;;;;;;;;;;;;ACpC+B;AACI;AACR;AACD;AAE3BC,wDAAS,CAACE,yDAAG,CAAC,CAACC,GAAG,CAACF,4DAAW,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,MAAM,CAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLrB;AACW;AAErC,MAAMC,yBAAyB,GAAG,8BAA8B;AAChE,MAAMC,gCAAgC,GAAG,+BAA+B;AACxE,MAAMC,kCAAkC,GAAG,iCAAiC;AAE5E,SAASC,gBAAgBA,CAACC,OAAO,EAAE18B,MAAM,GAAG,EAAE,EAAE;EAC9C,MAAM28B,KAAK,GAAG,GAAGp7B,wDAAS,CAACiO,SAAS,IAAI,EAAE,IAAIxP,MAAM,IAAI,WAAW,EAAE;EACrE,OAAO,GAAG08B,OAAO,IAAIE,kBAAkB,CAACD,KAAK,CAAC,EAAE;AAClD;AAEA,SAASE,QAAQA,CAAA,EAAG;EAClB,IAAIr1B,MAAM,CAACs1B,MAAM,IAAIt1B,MAAM,CAACs1B,MAAM,CAACC,UAAU,EAAE;IAC7C,OAAOv1B,MAAM,CAACs1B,MAAM,CAACC,UAAU,CAAC,CAAC,CAACC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;EACvD;EACA,OAAO,GAAGjlB,IAAI,CAAC8B,GAAG,CAAC,CAAC,GAAG1R,IAAI,CAAC+B,MAAM,CAAC,CAAC,CAAC6D,QAAQ,CAAC,EAAE,CAAC,CAACjI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC9D;AAEA,SAASm3B,iBAAiBA,CAACj9B,MAAM,EAAE;EACjC,IAAI;IACF,OAAOsP,IAAI,CAACI,KAAK,CAACwtB,YAAY,CAACvtB,OAAO,CAAC8sB,gBAAgB,CAACH,yBAAyB,EAAEt8B,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;EACtG,CAAC,CAAC,OAAO6G,KAAK,EAAE;IACd,OAAO,CAAC,CAAC;EACX;AACF;AAEA,SAASs2B,cAAcA,CAACC,UAAU,EAAEp9B,MAAM,EAAE;EAC1C,IAAI;IACF,OAAOsP,IAAI,CAACI,KAAK,CAACwtB,YAAY,CAACvtB,OAAO,CAAC8sB,gBAAgB,CAACW,UAAU,EAAEp9B,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;EACvF,CAAC,CAAC,OAAO6G,KAAK,EAAE;IACd,OAAO,CAAC,CAAC;EACX;AACF;AAEA,SAASw2B,eAAeA,CAACD,UAAU,EAAEE,sBAAsB,EAAEt9B,MAAM,EAAE;EACnEk9B,YAAY,CAAC7tB,OAAO,CAACotB,gBAAgB,CAACW,UAAU,EAAEp9B,MAAM,CAAC,EAAEsP,IAAI,CAACC,SAAS,CAAC+tB,sBAAsB,CAAC,CAAC;AACpG;AAEA,SAASC,WAAWA,CAACz2B,OAAO,EAAE;EAC5B,OAAO,CAACA,OAAO,EAAEiL,EAAE,EAAEjL,OAAO,EAAEsc,UAAU,CAAC,CACtCpe,MAAM,CAAC4H,OAAO,CAAC,CACf4G,GAAG,CAAChP,KAAK,IAAIqB,MAAM,CAACrB,KAAK,CAAC,CAAC;AAChC;AAEA,SAASg5B,gBAAgBA,CAACJ,UAAU,EAAEzT,cAAc,EAAE7iB,OAAO,EAAE9G,MAAM,EAAE;EACrE,MAAMy9B,MAAM,GAAGN,cAAc,CAACC,UAAU,EAAEp9B,MAAM,CAAC;EACjD,MAAM09B,GAAG,GAAG,IAAIzkB,GAAG,CAACwkB,MAAM,CAAC9T,cAAc,CAAC,IAAI,EAAE,CAAC;EACjD,OAAO4T,WAAW,CAACz2B,OAAO,CAAC,CAACT,IAAI,CAAC0L,EAAE,IAAI2rB,GAAG,CAACxkB,GAAG,CAACnH,EAAE,CAAC,CAAC;AACrD;AAEA,SAAS4rB,gBAAgBA,CAACP,UAAU,EAAEzT,cAAc,EAAElH,QAAQ,EAAEziB,MAAM,EAAE;EACtE,MAAMy9B,MAAM,GAAGN,cAAc,CAACC,UAAU,EAAEp9B,MAAM,CAAC;EACjD,MAAM09B,GAAG,GAAG,IAAIzkB,GAAG,CAACwkB,MAAM,CAAC9T,cAAc,CAAC,IAAI,EAAE,CAAC;EACjDlH,QAAQ,CAAC9G,OAAO,CAAC7U,OAAO,IAAI;IAC1By2B,WAAW,CAACz2B,OAAO,CAAC,CAAC6U,OAAO,CAAC5J,EAAE,IAAI2rB,GAAG,CAACtkB,GAAG,CAACrH,EAAE,CAAC,CAAC;EACjD,CAAC,CAAC;EACF0rB,MAAM,CAAC9T,cAAc,CAAC,GAAGtQ,KAAK,CAACC,IAAI,CAACokB,GAAG,CAAC;EACxCL,eAAe,CAACD,UAAU,EAAEK,MAAM,EAAEz9B,MAAM,CAAC;AAC7C;AAEA,SAAS49B,iBAAiBA,CAAC92B,OAAO,EAAE;EAClC,OAAO;IACL,GAAGA,OAAO;IACViD,MAAM,EAAE,UAAU;IAClB2e,cAAc,EAAE,EAAE;IAClB7E,QAAQ,EAAE,IAAI;IACdgG,YAAY,EAAE;EAChB,CAAC;AACH;AAEA,SAASgU,sBAAsBA,CAAClU,cAAc,EAAElH,QAAQ,EAAEziB,MAAM,EAAE;EAChE,OAAOyiB,QAAQ,CACZzd,MAAM,CAAC8B,OAAO,IAAI,CAAC02B,gBAAgB,CAACjB,gCAAgC,EAAE5S,cAAc,EAAE7iB,OAAO,EAAE9G,MAAM,CAAC,CAAC,CACvGwT,GAAG,CAAC1M,OAAO,IAAI;IACd,MAAMg3B,UAAU,GAAGlxB,OAAO,CAAC9F,OAAO,CAAC+c,QAAQ,CAAC,IACvC/c,OAAO,CAACiD,MAAM,KAAK,UAAU,IAC7ByzB,gBAAgB,CAAChB,kCAAkC,EAAE7S,cAAc,EAAE7iB,OAAO,EAAE9G,MAAM,CAAC;IAC1F,IAAI,CAAC89B,UAAU,EAAE;MACf,OAAOh3B,OAAO;IAChB;IACA,OAAO82B,iBAAiB,CAAC92B,OAAO,CAAC;EACnC,CAAC,CAAC;AACN;AAEA,SAASi3B,kBAAkBA,CAACT,sBAAsB,EAAEt9B,MAAM,EAAE;EAC1Dk9B,YAAY,CAAC7tB,OAAO,CAACotB,gBAAgB,CAACH,yBAAyB,EAAEt8B,MAAM,CAAC,EAAEsP,IAAI,CAACC,SAAS,CAAC+tB,sBAAsB,CAAC,CAAC;AACnH;AAEA,SAASU,gBAAgBA,CAACl3B,OAAO,EAAE9G,MAAM,EAAE;EACzC,MAAMs9B,sBAAsB,GAAGL,iBAAiB,CAACj9B,MAAM,CAAC;EACxDs9B,sBAAsB,CAACx2B,OAAO,CAAC6iB,cAAc,CAAC,GAAG2T,sBAAsB,CAACx2B,OAAO,CAAC6iB,cAAc,CAAC,IAAI,EAAE;EACrG,MAAM3f,KAAK,GAAGszB,sBAAsB,CAACx2B,OAAO,CAAC6iB,cAAc,CAAC,CAACsU,SAAS,CAACh5B,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKjL,OAAO,CAACiL,EAAE,CAAC;EACtG,IAAI/H,KAAK,IAAI,CAAC,EAAE;IACdszB,sBAAsB,CAACx2B,OAAO,CAAC6iB,cAAc,CAAC,CAAC/L,MAAM,CAAC5T,KAAK,EAAE,CAAC,EAAElD,OAAO,CAAC;EAC1E,CAAC,MAAM;IACLw2B,sBAAsB,CAACx2B,OAAO,CAAC6iB,cAAc,CAAC,CAACrM,IAAI,CAACxW,OAAO,CAAC;EAC9D;EACAi3B,kBAAkB,CAACT,sBAAsB,EAAEt9B,MAAM,CAAC;AACpD;AAEA,SAASk+B,mBAAmBA,CAACC,aAAa,EAAEC,cAAc,EAAEzU,cAAc,EAAE3pB,MAAM,EAAE;EAClF,MAAMq+B,oBAAoB,GAAGR,sBAAsB,CAAClU,cAAc,EAAEwU,aAAa,EAAEn+B,MAAM,CAAC;EAC1F,MAAMs+B,UAAU,GAAG,IAAIzQ,GAAG,CAAC,CAAC;EAC5BwQ,oBAAoB,CAAC1iB,OAAO,CAAC7U,OAAO,IAAI;IACtCy2B,WAAW,CAACz2B,OAAO,CAAC,CAAC6U,OAAO,CAAChX,GAAG,IAAI;MAClC,IAAI,CAAC25B,UAAU,CAACplB,GAAG,CAACvU,GAAG,CAAC,EAAE;QACxB25B,UAAU,CAAClwB,GAAG,CAACzJ,GAAG,EAAEmC,OAAO,CAAC;MAC9B;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMy3B,qBAAqB,GAAGV,sBAAsB,CAAClU,cAAc,EAAEyU,cAAc,EAAEp+B,MAAM,CAAC,CAACwT,GAAG,CAACgrB,aAAa,IAAI;IAChH,IAAI,CAACA,aAAa,CAAC3a,QAAQ,IAAIhe,MAAM,CAAC24B,aAAa,CAACr0B,IAAI,IAAI,EAAE,CAAC,CAAC8C,IAAI,CAAC,CAAC,EAAE;MACtE,OAAOuxB,aAAa;IACtB;IACA,MAAMC,YAAY,GAAGlB,WAAW,CAACiB,aAAa,CAAC,CAC5ChrB,GAAG,CAAC7O,GAAG,IAAI25B,UAAU,CAAC7xB,GAAG,CAAC9H,GAAG,CAAC,CAAC,CAC/BuN,IAAI,CAACpL,OAAO,IAAIA,OAAO,EAAEqD,IAAI,IAAIrD,OAAO,CAACqD,IAAI,KAAK,UAAU,CAAC;IAChE,OAAOs0B,YAAY,GAAG;MAAE,GAAGD,aAAa;MAAEr0B,IAAI,EAAEs0B,YAAY,CAACt0B;IAAK,CAAC,GAAGq0B,aAAa;EACrF,CAAC,CAAC;EACF,MAAME,UAAU,GAAG,IAAIzlB,GAAG,CAAC,CAAC;EAC5BslB,qBAAqB,CAAC5iB,OAAO,CAAC7U,OAAO,IAAI;IACvCy2B,WAAW,CAACz2B,OAAO,CAAC,CAAC6U,OAAO,CAAChX,GAAG,IAAI+5B,UAAU,CAACtlB,GAAG,CAACzU,GAAG,CAAC,CAAC;EAC1D,CAAC,CAAC;EACF,MAAMkV,GAAG,GAAG9B,IAAI,CAAC8B,GAAG,CAAC,CAAC;EAEtB,SAAS8kB,cAAcA,CAACF,YAAY,EAAE;IACpC,IAAIA,YAAY,CAACrb,UAAU,IAAIsb,UAAU,CAACxlB,GAAG,CAACulB,YAAY,CAACrb,UAAU,CAAC,EAAE;MACtE,OAAO,IAAI;IACb;IACA,OAAOmb,qBAAqB,CAACl4B,IAAI,CAACm4B,aAAa,IAAI;MACjD,OAAOA,aAAa,CAACpd,SAAS,KAAKqd,YAAY,CAACrd,SAAS,IACpDod,aAAa,CAACr0B,IAAI,KAAKs0B,YAAY,CAACt0B,IAAI,IACxChC,IAAI,CAACitB,GAAG,CAAC9sB,MAAM,CAACk2B,aAAa,CAACvpB,SAAS,IAAI,CAAC,CAAC,GAAG3M,MAAM,CAACm2B,YAAY,CAACxpB,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK;IACnG,CAAC,CAAC;EACJ;EAEA,MAAM2pB,oBAAoB,GAAGP,oBAAoB,CAACr5B,MAAM,CAAC8B,OAAO,IAAI;IAClE,IAAIA,OAAO,CAACiD,MAAM,KAAK,UAAU,IAAIjD,OAAO,CAAC+c,QAAQ,EAAE;MACrD,OAAO/c,OAAO,CAACsa,SAAS,KAAK,KAAK,IAAI,CAACud,cAAc,CAAC73B,OAAO,CAAC;IAChE;IACA,IAAIA,OAAO,CAACsa,SAAS,KAAK,KAAK,EAAE;MAC/B,OAAO,KAAK;IACd;IACA,IAAIta,OAAO,CAACiD,MAAM,KAAK,MAAM,IAAIjD,OAAO,CAACsc,UAAU,EAAE;MACnD,OAAO,CAACub,cAAc,CAAC73B,OAAO,CAAC;IACjC;IACA,IAAIA,OAAO,CAACiD,MAAM,KAAK,MAAM,EAAE;MAC7B,OAAO,CAAC40B,cAAc,CAAC73B,OAAO,CAAC,IAAI+S,GAAG,GAAGvR,MAAM,CAACxB,OAAO,CAACmO,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK;IACjF;IACA,OAAOnO,OAAO,CAACiD,MAAM,KAAK,SAAS,IAAIjD,OAAO,CAACiD,MAAM,KAAK,QAAQ;EACpE,CAAC,CAAC;EAEF,OAAO,CAAC,GAAGw0B,qBAAqB,EAAE,GAAGK,oBAAoB,CAAC,CAACnrB,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAK;IACxE,OAAOx2B,MAAM,CAACu2B,CAAC,CAACE,gBAAgB,IAAIF,CAAC,CAAC5pB,SAAS,IAAI,CAAC,CAAC,GAAG3M,MAAM,CAACw2B,CAAC,CAACC,gBAAgB,IAAID,CAAC,CAAC7pB,SAAS,IAAI,CAAC,CAAC;EACxG,CAAC,CAAC;AACJ;AAEA,SAAS+pB,QAAQA,CAACx6B,KAAK,EAAEy6B,QAAQ,EAAE;EACjC,OAAOz6B,KAAK,IAAIy6B,QAAQ,IAAI,EAAE;AAChC;AAEA,SAASC,kBAAkBA,CAACn9B,MAAM,EAAEk9B,QAAQ,EAAE;EAC5C,MAAME,cAAc,GAAG;IACrB,aAAa,EAAE,kCAAkC;IACjD,aAAa,EAAE,4BAA4B;IAC3C,aAAa,EAAE,kCAAkC;IACjD,aAAa,EAAE;EACjB,CAAC;EACD,OAAOA,cAAc,CAACp9B,MAAM,CAAC,IAAIm7B,YAAY,CAACvtB,OAAO,CAAC,iBAAiB,CAAC,IAAIsvB,QAAQ;AACtF;AAEA,SAASG,wBAAwBA,CAAC5yB,QAAQ,EAAE;EAC1C,MAAM1F,OAAO,GAAG0F,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,EAAE;EAC5C,OAAO8xB,MAAsC,IAAI9xB,CAA2B;AAC9E;AAEO,MAAMu4B,YAAY,CAAC;EACxBC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,SAAS,GAAG,IAAI1R,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC9Y,SAAS,GAAG,KAAK;IACtB,IAAI,CAACyqB,WAAW,GAAG,IAAI;EACzB;EAEAC,WAAWA,CAAA,EAAG;IACZ,IAAIC,QAAQ,GAAGxC,YAAY,CAACvtB,OAAO,CAACpO,wDAAS,CAACw6B,kBAAkB,CAAC;IACjE,IAAI,CAAC2D,QAAQ,EAAE;MACbA,QAAQ,GAAG7C,QAAQ,CAAC,CAAC;MACrBK,YAAY,CAAC7tB,OAAO,CAAC9N,wDAAS,CAACw6B,kBAAkB,EAAE2D,QAAQ,CAAC;IAC9D;IACA,OAAOA,QAAQ;EACjB;EAEAC,eAAeA,CAACD,QAAQ,EAAE;IACxB,IAAIA,QAAQ,EAAE;MACZxC,YAAY,CAAC7tB,OAAO,CAAC9N,wDAAS,CAACw6B,kBAAkB,EAAE2D,QAAQ,CAAC;IAC9D;EACF;EAEAE,aAAaA,CAAA,EAAG;IACd,OAAO,MAAM;EACf;EAEA,MAAMC,SAASA,CAAA,EAAG;IAChB,OAAO,IAAI;EACb;EAEA,MAAM34B,iBAAiBA,CAACnF,MAAM,EAAEC,QAAQ,EAAE;IACxC,MAAMgM,GAAG,GAAG,GAAGzM,wDAAS,CAACiO,SAAS,YAAY;IAC9C,MAAMswB,QAAQ,GAAGZ,kBAAkB,CAACn9B,MAAM,EAAE,IAAI,CAAC09B,WAAW,CAAC,CAAC,CAAC;IAC/D,MAAMjzB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACf,GAAG,EAAE;MACrCjM,MAAM;MACNC,QAAQ;MACR85B,QAAQ,EAAEv6B,wDAAS,CAACu6B,QAAQ;MAC5B4D,QAAQ,EAAEI,QAAQ;MAClBC,eAAe,EAAED;IACnB,CAAC,EAAE;MAAEnzB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAI,CAACqzB,eAAe,CAAChyB,GAAG,EAAExB,QAAQ,CAAC;IACnC,IAAIA,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,IAAIm9B,wBAAwB,CAAC5yB,QAAQ,CAAC,EAAE;QACtC,OAAO;UACLxM,MAAM,EAAE+B,MAAM;UACdgG,KAAK,EAAE,wBAAwBgQ,IAAI,CAAC8B,GAAG,CAAC,CAAC,EAAE;UAC3C9Q,WAAW,EAAEhH,MAAM;UACnBk+B,SAAS,EAAE;QACb,CAAC;MACH;MACA,MAAM,IAAIj4B,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;IACnD;IACA,OAAO0F,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM;EAC7B;EAEA,MAAM+C,eAAeA,CAAC7E,MAAM,EAAE;IAC5B,MAAMyK,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAAC,GAAGxN,wDAAS,CAACiO,SAAS,YAAY,EAAE;MAAEzN;IAAO,CAAC,EAAE;MAAE4K,eAAe,EAAE;IAAM,CAAC,CAAC;IAC7G,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IACA,OAAO0F,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM;EAC7B;EAEA,MAAMsD,aAAaA,CAACpF,MAAM,EAAEE,IAAI,EAAE;IAChC,MAAM+L,GAAG,GAAG,GAAGzM,wDAAS,CAACiO,SAAS,QAAQ;IAC1C,MAAMswB,QAAQ,GAAGZ,kBAAkB,CAACn9B,MAAM,EAAE,IAAI,CAAC09B,WAAW,CAAC,CAAC,CAAC;IAC/D,MAAMjzB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACf,GAAG,EAAE;MACrCjM,MAAM;MACNE,IAAI;MACJ65B,QAAQ,EAAEv6B,wDAAS,CAACu6B,QAAQ;MAC5B4D,QAAQ,EAAEI,QAAQ;MAClBC,eAAe,EAAED;IACnB,CAAC,EAAE;MAAEnzB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAI,CAACqzB,eAAe,CAAChyB,GAAG,EAAExB,QAAQ,CAAC;IACnC,IAAIA,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;IACnD;IACA,OAAO0F,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM;EAC7B;EAEA,MAAMiE,eAAeA,CAAC9H,MAAM,GAAG,EAAE,EAAE;IACjC,MAAMwM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAAC,GAAGxN,wDAAS,CAACiO,SAAS,aAAa,EAAE;MACrE0wB,IAAI,EAAE,CAAC;MACPC,WAAW,EAAE,QAAQ;MACrBngC,MAAM;MACN0/B,QAAQ,EAAE,IAAI,CAACD,WAAW,CAAC,CAAC;MAC5B3D,QAAQ,EAAEv6B,wDAAS,CAACu6B;IACtB,CAAC,EAAE;MAAEnvB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,aAAa,CAAC;IAC1D;IACA,OAAO0F,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM,IAAI,CAAC,CAAC;EACnC;EAEA,MAAM8E,kBAAkBA,CAACZ,KAAK,EAAE;IAC9B,MAAMiG,GAAG,GAAG,GAAGzM,wDAAS,CAACiO,SAAS,kBAAkBotB,kBAAkB,CAAC70B,KAAK,CAAC,EAAE;IAC/E,MAAMyE,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACf,GAAG,EAAE,IAAI,EAAE;MAAErB,eAAe,EAAE;IAAM,CAAC,CAAC;IACxE,IAAI,CAACqzB,eAAe,CAAChyB,GAAG,EAAExB,QAAQ,CAAC;IACnC,MAAM9D,IAAI,GAAG8D,QAAQ,CAAC9D,IAAI,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAACkK,QAAQ,CAACtK,MAAM,CAACI,IAAI,CAACzG,IAAI,CAAC,CAAC,EAAE;MACjD,OAAOyG,IAAI;IACb;IACA,MAAM,IAAIV,KAAK,CAACU,IAAI,CAAC5B,OAAO,IAAI,QAAQ,CAAC;EAC3C;EAEA,MAAMgF,iBAAiBA,CAAC/J,MAAM,EAAEE,IAAI,EAAE;IACpC,MAAM+L,GAAG,GAAG,GAAGzM,wDAAS,CAACiO,SAAS,WAAW;IAC7C,MAAMswB,QAAQ,GAAGZ,kBAAkB,CAACn9B,MAAM,EAAE,IAAI,CAAC09B,WAAW,CAAC,CAAC,CAAC;IAE/D,IAAI;MACF,MAAMjzB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACf,GAAG,EAAE;QACrCjM,MAAM;QACNE,IAAI;QACJ65B,QAAQ,EAAEv6B,wDAAS,CAACu6B,QAAQ;QAC5B4D,QAAQ,EAAEI,QAAQ;QAClBC,eAAe,EAAED;MACnB,CAAC,EAAE;QAAEnzB,eAAe,EAAE;MAAM,CAAC,CAAC;MAE9B,IAAI,CAACqzB,eAAe,CAAChyB,GAAG,EAAExB,QAAQ,CAAC;MACnC,IAAIA,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;MACnD;MACA,OAAO0F,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM;IAC7B,CAAC,CAAC,OAAOgD,KAAK,EAAE;MACd,MAAMkD,MAAM,GAAGlD,KAAK,CAAC2F,QAAQ,EAAEzC,MAAM;MACrC,IAAIA,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAG,EAAE;QACpC,OAAO,IAAI,CAAC5C,aAAa,CAACpF,MAAM,EAAEE,IAAI,CAAC;MACzC;MACA,MAAM4E,KAAK;IACb;EACF;EAEAu5B,OAAOA,CAACpgC,MAAM,EAAE+H,KAAK,EAAE;IACrB,IAAI,CAACy3B,WAAW,GAAG;MAAEx/B,MAAM;MAAE+H;IAAM,CAAC;IACpC,IAAI,CAACgN,SAAS,GAAG,IAAI;IACrB,IAAI,CAACiG,IAAI,CAAC,yBAAyB,EAAE;MAAEjG,SAAS,EAAE,IAAI;MAAEH,UAAU,EAAE;IAAM,CAAC,CAAC;IAC5E,IAAI,CAACyrB,uBAAuB,CAAC,CAAC;EAChC;EAEAC,UAAUA,CAAA,EAAG;IACX,IAAI,CAACvrB,SAAS,GAAG,KAAK;IACtB,IAAI,CAACyqB,WAAW,GAAG,IAAI;IACvB,IAAI,CAACxkB,IAAI,CAAC,yBAAyB,EAAE;MAAEjG,SAAS,EAAE,KAAK;MAAEH,UAAU,EAAE;IAAM,CAAC,CAAC;EAC/E;EAEA2rB,mBAAmBA,CAAA,EAAG;IACpB,OAAO,EAAE;EACX;EAEAF,uBAAuBA,CAAA,EAAG;IACxB,MAAMvgC,aAAa,GAAG,IAAI,CAACygC,mBAAmB,CAAC,CAAC;IAChD,IAAIzgC,aAAa,CAAC+E,MAAM,EAAE;MACxB,IAAI,CAACmW,IAAI,CAAC,sBAAsB,EAAElb,aAAa,CAAC;IAClD;IACA,IAAI,IAAI,CAAC0/B,WAAW,EAAEx/B,MAAM,EAAE;MAC5B,IAAI,CAACwgC,wBAAwB,CAAC,CAAC,CAACpqB,IAAI,CAACqqB,mBAAmB,IAAI;QAC1D,IAAI,CAACzlB,IAAI,CAAC,sBAAsB,EAAEylB,mBAAmB,CAAC;MACxD,CAAC,CAAC,CAACpqB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpB;IACA,OAAOvW,aAAa;EACtB;EAEA,MAAM0gC,wBAAwBA,CAACE,KAAK,GAAG,EAAE,EAAE;IACzC,IAAI,CAAC,IAAI,CAAClB,WAAW,EAAEx/B,MAAM,EAAE;MAC7B,OAAO,EAAE;IACX;IACA,MAAMwM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC24B,WAAW,EAAE;MACvDl6B,MAAM,EAAE,IAAI,CAACw/B,WAAW,CAACx/B,MAAM;MAC/B0gC;IACF,CAAC,EAAE;MAAE/zB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,OAAO,CAAC0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE/D,aAAa,IAAI,EAAE,EAAE0T,GAAG,CAAClB,YAAY,KAAK;MACvE,GAAGA,YAAY;MACfsH,SAAS,EAAEtR,MAAM,CAACgK,YAAY,CAACsH,SAAS,IAAI7B,IAAI,CAAC8B,GAAG,CAAC,CAAC,CAAC;MACvDlH,UAAU,EAAEL,YAAY,CAACK,UAAU,IAAI9M,MAAM,CAACyM,YAAY,CAACjE,KAAK,IAAIiE,YAAY,CAACT,MAAM,IAAI,GAAG,CAAC,CAAC/L,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACzH+L,GAAG,EAAEQ,YAAY,CAACR,GAAG,IAAI;QAAEe,IAAI,EAAE,QAAQ;QAAEhB,MAAM,EAAES,YAAY,CAACT,MAAM;QAAE8uB,IAAI,EAAE;MAAE;IAClF,CAAC,CAAC,CAAC;EACL;EAEAC,WAAWA,CAACtuB,YAAY,EAAE;IACxB,IAAI,CAACA,YAAY,EAAEP,EAAE,EAAE;MACrB,OAAO,EAAE;IACX;IACA,MAAM/R,MAAM,GAAG,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI,EAAE;IAC7C,OAAO69B,sBAAsB,CAACvrB,YAAY,CAACP,EAAE,EAAEkrB,iBAAiB,CAACj9B,MAAM,CAAC,CAACsS,YAAY,CAACP,EAAE,CAAC,IAAI,EAAE,EAAE/R,MAAM,CAAC;EAC1G;EAEA,MAAM6gC,mBAAmBA,CAACvuB,YAAY,EAAEouB,KAAK,GAAG,EAAE,EAAEI,OAAO,GAAG,CAAC,CAAC,EAAE;IAChE,IAAI,CAACxuB,YAAY,EAAEP,EAAE,IAAI,CAAC,IAAI,CAACytB,WAAW,EAAEx/B,MAAM,EAAE;MAClD,OAAO,EAAE;IACX;IACA,MAAMwM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC24B,WAAW,EAAE;MACvDl6B,MAAM,EAAE,IAAI,CAACw/B,WAAW,CAACx/B,MAAM;MAC/B6R,MAAM,EAAES,YAAY,CAACT,MAAM,IAAIS,YAAY,CAACR,GAAG,EAAED,MAAM,IAAIS,YAAY,CAACP,EAAE,CAACzI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;MAClGo3B,KAAK;MACLtsB,gBAAgB,EAAE9B,YAAY,CAACO,IAAI,IAAIP,YAAY,CAACR,GAAG,EAAEe,IAAI,IAAI,CAAC;MAClEkuB,QAAQ,EAAEn0B,OAAO,CAACk0B,OAAO,CAACC,QAAQ;IACpC,CAAC,EAAE;MAAEp0B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,MAAM2b,QAAQ,GAAG,CAACjW,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE4e,QAAQ,IAAI,EAAE,EAAEjP,GAAG,CAAC1M,OAAO,KAAK;MACvE,GAAGA,OAAO;MACVi4B,gBAAgB,EAAEj4B,OAAO,CAACi4B,gBAAgB,IAAIj4B,OAAO,CAACmO,SAAS;MAC/D0U,cAAc,EAAErX,YAAY,CAACP;IAC/B,CAAC,CAAC,CAAC;IACH,MAAM/R,MAAM,GAAG,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI,EAAE;IAC7C,MAAMs9B,sBAAsB,GAAGL,iBAAiB,CAACj9B,MAAM,CAAC;IACxDs9B,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,GAAGmsB,mBAAmB,CAACZ,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,IAAI,EAAE,EAAE0Q,QAAQ,EAAEnQ,YAAY,CAACP,EAAE,EAAE/R,MAAM,CAAC;IAC/I+9B,kBAAkB,CAACT,sBAAsB,EAAEt9B,MAAM,CAAC;IAClD,OAAOs9B,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC;EAChD;EAEAivB,YAAYA,CAAC1uB,YAAY,EAAEmQ,QAAQ,EAAE;IACnC,MAAMjE,KAAK,GAAGnF,KAAK,CAACkW,OAAO,CAAC9M,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;IAC7D,IAAI,CAACnQ,YAAY,EAAEP,EAAE,IAAI,CAACyM,KAAK,CAAC3Z,MAAM,EAAE;MACtC;IACF;IACA,MAAM7E,MAAM,GAAG,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI,EAAE;IAC7C29B,gBAAgB,CAACpB,gCAAgC,EAAEjqB,YAAY,CAACP,EAAE,EAAEyM,KAAK,EAAExe,MAAM,CAAC;IAClF,MAAMs9B,sBAAsB,GAAGL,iBAAiB,CAACj9B,MAAM,CAAC;IACxDs9B,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,GAAG8rB,sBAAsB,CAC9DvrB,YAAY,CAACP,EAAE,EACfurB,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,IAAI,EAAE,EAC7C/R,MACF,CAAC;IACD+9B,kBAAkB,CAACT,sBAAsB,EAAEt9B,MAAM,CAAC;EACpD;EAEAihC,oBAAoBA,CAAC3uB,YAAY,EAAEmQ,QAAQ,EAAE;IAC3C,MAAMjE,KAAK,GAAGnF,KAAK,CAACkW,OAAO,CAAC9M,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;IAC7D,IAAI,CAACnQ,YAAY,EAAEP,EAAE,IAAI,CAACyM,KAAK,CAAC3Z,MAAM,EAAE;MACtC;IACF;IACA,MAAM7E,MAAM,GAAG,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI,EAAE;IAC7C29B,gBAAgB,CAACnB,kCAAkC,EAAElqB,YAAY,CAACP,EAAE,EAAEyM,KAAK,EAAExe,MAAM,CAAC;IACpF,MAAMs9B,sBAAsB,GAAGL,iBAAiB,CAACj9B,MAAM,CAAC;IACxDs9B,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,GAAG8rB,sBAAsB,CAC9DvrB,YAAY,CAACP,EAAE,EACfurB,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,IAAI,EAAE,EAC7C/R,MACF,CAAC;IACD+9B,kBAAkB,CAACT,sBAAsB,EAAEt9B,MAAM,CAAC;EACpD;EAEA,MAAMkhC,aAAaA,CAAC5uB,YAAY,EAAExL,OAAO,EAAE;IACzC,MAAMsc,UAAU,GAAGvd,MAAM,CAACiB,OAAO,EAAEsc,UAAU,IAAItc,OAAO,EAAEiL,EAAE,IAAI,EAAE,CAAC,CAAC9E,IAAI,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,CAACM,IAAI,CAAC6V,UAAU,CAAC,EAAE;MAC7B,MAAM,IAAIpb,KAAK,CAAC,YAAY,CAAC;IAC/B;IAEA,MAAMwE,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACu4B,gBAAgB,EAAE;MAC5DxY,MAAM,EAAE,QAAQ;MAChBthB,MAAM,EAAE,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI8G,OAAO,CAACwS,IAAI,IAAI,EAAE;MACtD8J;IACF,CAAC,EAAE;MAAEzW,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;IACnD;IACA,IAAI,CAACm6B,oBAAoB,CAAC3uB,YAAY,EAAE,CAACxL,OAAO,CAAC,CAAC;IAClD,OAAO0F,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM;EAC7B;EAEA,MAAMs9B,WAAWA,CAAC7uB,YAAY,EAAExL,OAAO,EAAEqD,IAAI,EAAE;IAC7C,MAAMiZ,UAAU,GAAGvd,MAAM,CAACiB,OAAO,EAAEsc,UAAU,IAAItc,OAAO,EAAEiL,EAAE,IAAI,EAAE,CAAC,CAAC9E,IAAI,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,CAACM,IAAI,CAAC6V,UAAU,CAAC,EAAE;MAC7B,MAAM,IAAIpb,KAAK,CAAC,YAAY,CAAC;IAC/B;IACA,MAAMo5B,QAAQ,GAAGv7B,MAAM,CAACsE,IAAI,IAAI,EAAE,CAAC,CAAC8C,IAAI,CAAC,CAAC;IAC1C,IAAI,CAACm0B,QAAQ,EAAE;MACb,MAAM,IAAIp5B,KAAK,CAAC,UAAU,CAAC;IAC7B;IAEA,MAAMwE,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACu4B,gBAAgB,EAAE;MAC5DxY,MAAM,EAAE,MAAM;MACdthB,MAAM,EAAE,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI8G,OAAO,CAACwS,IAAI,IAAI,EAAE;MACtD8J,UAAU;MACVjZ,IAAI,EAAEi3B;IACR,CAAC,EAAE;MAAEz0B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;IACnD;IAEA,MAAMjD,MAAM,GAAG2I,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEiD,OAAO,IAAI,CAAC,CAAC;IACnD,MAAMu6B,aAAa,GAAG;MACpB,GAAGv6B,OAAO;MACVqD,IAAI,EAAEtG,MAAM,CAACsG,IAAI,IAAIi3B,QAAQ;MAC7Br3B,MAAM,EAAE,WAAW;MACnB2e,cAAc,EAAE,WAAW;MAC3B4Y,QAAQ,EAAEh5B,MAAM,CAACzE,MAAM,CAACy9B,QAAQ,IAAIvpB,IAAI,CAAC8B,GAAG,CAAC,CAAC,CAAC;MAC/C0nB,iBAAiB,EAAEj5B,MAAM,CAACzE,MAAM,CAACy9B,QAAQ,IAAIvpB,IAAI,CAAC8B,GAAG,CAAC,CAAC;IACzD,CAAC;IACDmkB,gBAAgB,CAACqD,aAAa,EAAE,IAAI,CAAC7B,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;IAC/D,IAAI,CAACgb,IAAI,CAAC,sBAAsB,EAAEqmB,aAAa,CAAC;IAChD,OAAOA,aAAa;EACtB;EAEA,MAAMG,gBAAgBA,CAAClvB,YAAY,EAAExL,OAAO,EAAE;IAC5C,MAAMsc,UAAU,GAAGvd,MAAM,CAACiB,OAAO,EAAEsc,UAAU,IAAItc,OAAO,EAAEiL,EAAE,IAAI,EAAE,CAAC,CAAC9E,IAAI,CAAC,CAAC;IAC1E,IAAI,CAACmW,UAAU,EAAE;MACf,MAAM,IAAIpb,KAAK,CAAC,QAAQ,CAAC;IAC3B;IACA,MAAMwE,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACy4B,gBAAgB,EAAE;MAC5Dh6B,MAAM,EAAE,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI,EAAE;MACtC6R,MAAM,EAAES,YAAY,EAAET,MAAM,IAAIS,YAAY,EAAER,GAAG,EAAED,MAAM,IAAIS,YAAY,EAAEP,EAAE,EAAEzI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE;MAC5G8K,gBAAgB,EAAE9B,YAAY,EAAEO,IAAI,IAAIP,YAAY,EAAER,GAAG,EAAEe,IAAI,IAAI,QAAQ;MAC3EuQ;IACF,CAAC,EAAE;MAAEzW,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,UAAU,CAAC;IACvD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE8T,MAAM,IAAI,IAAI;EAC9C;EAEA,MAAM8pB,eAAeA,CAACnvB,YAAY,EAAEnI,IAAI,EAAEu3B,cAAc,GAAG,IAAI,EAAE;IAC/D,MAAMvd,UAAU,GAAG7R,YAAY,EAAEU,IAAI,IAAIV,YAAY,EAAER,GAAG,EAAEkB,IAAI,IAAI,EAAE;IACtE,MAAMlM,OAAO,GAAG46B,cAAc,IAAI;MAChC3vB,EAAE,EAAE8qB,QAAQ,CAAC,CAAC;MACdlT,cAAc,EAAErX,YAAY,CAACP,EAAE;MAC/BuH,IAAI,EAAE,IAAI,CAACkmB,WAAW,EAAEx/B,MAAM,IAAI,IAAI;MACtCmkB,UAAU;MACV/C,SAAS,EAAE,KAAK;MAChBvO,IAAI,EAAE,MAAM;MACZ1I,IAAI;MACJJ,MAAM,EAAE,SAAS;MACjB2e,cAAc,EAAE,SAAS;MACzBzT,SAAS,EAAE8C,IAAI,CAAC8B,GAAG,CAAC;IACtB,CAAC;IACDmkB,gBAAgB,CAACl3B,OAAO,EAAE,IAAI,CAAC04B,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC0hC,cAAc,EAAE;MACnB,IAAI,CAAC1mB,IAAI,CAAC,aAAa,EAAElU,OAAO,CAAC;IACnC;IAEA,IAAI;MACF,MAAM0F,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACq4B,cAAc,EAAE;QAC1D+H,MAAM,EAAE,IAAI,CAACnC,WAAW,EAAEx/B,MAAM,IAAI,EAAE;QACtC6R,MAAM,EAAES,YAAY,CAACT,MAAM,IAAIS,YAAY,CAACR,GAAG,EAAED,MAAM,IAAIS,YAAY,CAACP,EAAE,CAACzI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAClG8K,gBAAgB,EAAE9B,YAAY,CAACO,IAAI,IAAIP,YAAY,CAACR,GAAG,EAAEe,IAAI,IAAI,CAAC;QAClE1I;MACF,CAAC,EAAE;QAAEwC,eAAe,EAAE;MAAM,CAAC,CAAC;MAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;MACnD;MAEA,MAAM86B,WAAW,GAAG;QAClB,GAAG96B,OAAO;QACViD,MAAM,EAAE,MAAM;QACd2e,cAAc,EAAE,MAAM;QACtBtF,UAAU,EAAE5W,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEuf,UAAU,GAAGvd,MAAM,CAAC2G,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM,CAACuf,UAAU,CAAC,GAAG,EAAE;QAC5Fe,UAAU,EAAE3X,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEsgB,UAAU,IAAIrd,OAAO,CAACqd,UAAU,IAAI,EAAE;QACzE0d,eAAe,EAAEv5B,MAAM,CAACkE,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEoR,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI;QACtEA,SAAS,EAAEnO,OAAO,CAACmO,SAAS;QAC5B8pB,gBAAgB,EAAEj4B,OAAO,CAACi4B,gBAAgB,IAAIj4B,OAAO,CAACmO;MACxD,CAAC;MACD+oB,gBAAgB,CAAC4D,WAAW,EAAE,IAAI,CAACpC,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;MAC7D,IAAI,CAACgb,IAAI,CAAC,sBAAsB,EAAE4mB,WAAW,CAAC;MAC9C,OAAOA,WAAW;IACpB,CAAC,CAAC,OAAO/6B,KAAK,EAAE;MACd,MAAMi7B,aAAa,GAAG;QACpB,GAAGh7B,OAAO;QACViD,MAAM,EAAE,QAAQ;QAChB2e,cAAc,EAAE,EAAE;QAClB7hB,KAAK,EAAEA,KAAK,CAAC2F,QAAQ,EAAE9D,IAAI,EAAE5B,OAAO,IAAID,KAAK,CAACC,OAAO,IAAI;MAC3D,CAAC;MACDk3B,gBAAgB,CAAC8D,aAAa,EAAE,IAAI,CAACtC,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;MAC/D,IAAI,CAACgb,IAAI,CAAC,sBAAsB,EAAE8mB,aAAa,CAAC;MAChD,OAAOA,aAAa;IACtB;EACF;EAEA,MAAMC,qBAAqBA,CAACzvB,YAAY,EAAE;IAAEO,IAAI;IAAEgJ,IAAI;IAAE1R,IAAI,GAAG;EAAG,CAAC,EAAEu3B,cAAc,GAAG,IAAI,EAAE;IAC1F,MAAMvd,UAAU,GAAG7R,YAAY,EAAEU,IAAI,IAAIV,YAAY,EAAER,GAAG,EAAEkB,IAAI,IAAI,EAAE;IACtE,MAAMlM,OAAO,GAAG46B,cAAc,IAAI;MAChC3vB,EAAE,EAAE8qB,QAAQ,CAAC,CAAC;MACdlT,cAAc,EAAErX,YAAY,CAACP,EAAE;MAC/BuH,IAAI,EAAE,IAAI,CAACkmB,WAAW,EAAEx/B,MAAM,IAAI,IAAI;MACtCmkB,UAAU;MACV/C,SAAS,EAAE,KAAK;MAChBvO,IAAI;MACJ1I,IAAI;MACJyR,UAAU,EAAE;QACV/I,IAAI;QACJ7F,IAAI,EAAE6O,IAAI,EAAE7O,IAAI,KAAK6F,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QACpDmvB,IAAI,EAAEnmB,IAAI,EAAEhJ,IAAI,IAAI,EAAE;QACtBwK,IAAI,EAAExB,IAAI,EAAEwB,IAAI,IAAI,CAAC;QACrBrP,GAAG,EAAE6E,IAAI,KAAK,OAAO,IAAIgJ,IAAI,GAAG/N,GAAG,CAAC0P,eAAe,CAAC3B,IAAI,CAAC,GAAG;MAC9D,CAAC;MACD9R,MAAM,EAAE,SAAS;MACjB2e,cAAc,EAAE,SAAS;MACzBzT,SAAS,EAAE8C,IAAI,CAAC8B,GAAG,CAAC;IACtB,CAAC;IACDmkB,gBAAgB,CAACl3B,OAAO,EAAE,IAAI,CAAC04B,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC0hC,cAAc,EAAE;MACnB,IAAI,CAAC1mB,IAAI,CAAC,aAAa,EAAElU,OAAO,CAAC;IACnC;IAEA,IAAI;MACF,MAAMm7B,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;MAC/BD,QAAQ,CAACE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC3C,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;MACzDiiC,QAAQ,CAACE,MAAM,CAAC,QAAQ,EAAE7vB,YAAY,CAACT,MAAM,IAAIS,YAAY,CAACR,GAAG,EAAED,MAAM,IAAIS,YAAY,CAACP,EAAE,CAACzI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;MACrH24B,QAAQ,CAACE,MAAM,CAAC,kBAAkB,EAAE7vB,YAAY,CAACO,IAAI,IAAIP,YAAY,CAACR,GAAG,EAAEe,IAAI,IAAI,CAAC,CAAC;MACrFovB,QAAQ,CAACE,MAAM,CAAC,aAAa,EAAEtvB,IAAI,CAAC;MACpCovB,QAAQ,CAACE,MAAM,CAAC,MAAM,EAAEh4B,IAAI,IAAI,EAAE,CAAC;MACnC83B,QAAQ,CAACE,MAAM,CAAC,YAAY,EAAEtmB,IAAI,CAAC;MAEnC,MAAMrP,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACq4B,cAAc,EAAEqI,QAAQ,EAAE;QACpEt1B,eAAe,EAAE;MACnB,CAAC,CAAC;MAEF,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;MACnD;MAEA,MAAM86B,WAAW,GAAG;QAClB,GAAG96B,OAAO;QACViD,MAAM,EAAE,MAAM;QACd2e,cAAc,EAAE,MAAM;QACtBtF,UAAU,EAAE5W,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEuf,UAAU,GAAGvd,MAAM,CAAC2G,QAAQ,CAAC9D,IAAI,CAAC7E,MAAM,CAACuf,UAAU,CAAC,GAAG,EAAE;QAC5Fe,UAAU,EAAE3X,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEsgB,UAAU,IAAIrd,OAAO,CAACqd,UAAU,IAAI,EAAE;QACzEvI,UAAU,EAAEpP,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE+X,UAAU,IAAI9U,OAAO,CAAC8U,UAAU;QACnEimB,eAAe,EAAEv5B,MAAM,CAACkE,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEoR,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI;QACtEA,SAAS,EAAEnO,OAAO,CAACmO,SAAS;QAC5B8pB,gBAAgB,EAAEj4B,OAAO,CAACi4B,gBAAgB,IAAIj4B,OAAO,CAACmO;MACxD,CAAC;MACD+oB,gBAAgB,CAAC4D,WAAW,EAAE,IAAI,CAACpC,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;MAC7D,IAAI,CAACgb,IAAI,CAAC,sBAAsB,EAAE4mB,WAAW,CAAC;MAC9C,OAAOA,WAAW;IACpB,CAAC,CAAC,OAAO/6B,KAAK,EAAE;MACd,MAAMi7B,aAAa,GAAG;QACpB,GAAGh7B,OAAO;QACViD,MAAM,EAAE,QAAQ;QAChB2e,cAAc,EAAE,EAAE;QAClB7hB,KAAK,EAAEA,KAAK,CAAC2F,QAAQ,EAAE9D,IAAI,EAAE5B,OAAO,IAAID,KAAK,CAACC,OAAO,IAAI;MAC3D,CAAC;MACDk3B,gBAAgB,CAAC8D,aAAa,EAAE,IAAI,CAACtC,WAAW,EAAEx/B,MAAM,IAAI,EAAE,CAAC;MAC/D,IAAI,CAACgb,IAAI,CAAC,sBAAsB,EAAE8mB,aAAa,CAAC;MAChD,OAAOA,aAAa;IACtB;EACF;EAEAM,cAAcA,CAAA,EAAG;IACf,OAAO,EAAE;EACX;EAEA,MAAMC,oBAAoBA,CAACriC,MAAM,EAAE;IACjC,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,EAAE;IACX;IACA,MAAMwM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC63B,WAAW,EAAE;MAAEp5B;IAAO,CAAC,EAAE;MACnE2M,eAAe,EAAE,KAAK;MACtB21B,OAAO,EAAE,IAAI,CAACC,iBAAiB,CAAChhC,wDAAS,CAAC63B,WAAW;IACvD,CAAC,CAAC;IACF,IAAI5sB,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IACA,OAAO,CAAC0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE/C,QAAQ,IAAI,EAAE,EAAE0S,GAAG,CAACvO,IAAI,IAAI;MACzD,OAAO,IAAI,CAACu9B,UAAU,CAACv9B,IAAI,CAACmN,GAAG,EAAE;QAAEI,KAAK,EAAEvN,IAAI,CAACuN;MAAM,CAAC,EAAE;QACtDJ,GAAG,EAAEnN,IAAI,CAACmN,GAAG;QACbrJ,WAAW,EAAE9D,IAAI,CAAC8D,WAAW;QAC7BiE,IAAI,EAAE/H,IAAI,CAAC+H,IAAI;QACfjL,MAAM,EAAEkD,IAAI,CAAClD,MAAM;QACnBiH,QAAQ,EAAE/D,IAAI,CAAC+D,QAAQ;QACvB0J,OAAO,EAAEzN,IAAI,CAACyN,OAAO;QACrBod,WAAW,EAAE7qB,IAAI,CAACuN;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC,CAACiB,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACxwB,KAAK,CAACo0B,aAAa,CAAC3D,CAAC,CAACzwB,KAAK,EAAE,OAAO,CAAC,CAAC;EAC5D;EAEA,MAAM0W,UAAUA,CAAC/kB,MAAM,EAAEsrB,OAAO,EAAEoX,MAAM,GAAG,EAAE,EAAE;IAC7C,MAAMl2B,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACi4B,aAAa,EAAE;MACzDx5B,MAAM;MACNsrB,OAAO;MACPoX;IACF,CAAC,EAAE;MAAE/1B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IAEA,MAAM7B,IAAI,GAAGuH,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEsO,OAAO;IAC3C,IAAI,CAAClN,IAAI,EAAEmN,GAAG,EAAE;MACd,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACowB,UAAU,CAACv9B,IAAI,CAACmN,GAAG,EAAE;MAAEI,KAAK,EAAEvN,IAAI,CAACuN;IAAM,CAAC,EAAE;MACtDJ,GAAG,EAAEnN,IAAI,CAACmN,GAAG;MACbrJ,WAAW,EAAE9D,IAAI,CAAC8D,WAAW;MAC7BiE,IAAI,EAAE/H,IAAI,CAAC+H,IAAI;MACfjL,MAAM,EAAEkD,IAAI,CAAClD,MAAM;MACnBiH,QAAQ,EAAE/D,IAAI,CAAC+D,QAAQ;MACvB0J,OAAO,EAAEzN,IAAI,CAACyN,OAAO;MACrBod,WAAW,EAAE7qB,IAAI,CAACuN;IACpB,CAAC,CAAC;EACJ;EAEAmwB,qBAAqBA,CAACrwB,YAAY,EAAE;IAClC,MAAMjE,KAAK,GAAG2wB,QAAQ,CAAC1sB,YAAY,EAAEjE,KAAK,EAAEiE,YAAY,EAAET,MAAM,IAAI,EAAE,CAAC;IACvE,OAAO;MACL,GAAGS,YAAY;MACfP,EAAE,EAAEO,YAAY,EAAEP,EAAE,IAAI,GAAGO,YAAY,EAAEO,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,OAAO,IAAIP,YAAY,EAAET,MAAM,EAAE;MACzGA,MAAM,EAAES,YAAY,EAAET,MAAM,IAAIS,YAAY,EAAER,GAAG,EAAED,MAAM,IAAI,EAAE;MAC/DxD,KAAK;MACLsd,QAAQ,EAAErZ,YAAY,EAAEqZ,QAAQ,IAAI,EAAE;MACtCnX,MAAM,EAAElM,MAAM,CAACgK,YAAY,EAAEkC,MAAM,IAAI,CAAC,CAAC;MACzCxL,QAAQ,EAAEsJ,YAAY,EAAEtJ,QAAQ,IAAI,EAAE;MACtC2J,UAAU,EAAEL,YAAY,EAAEK,UAAU,IAAItE,KAAK,CAACvI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACvE6T,SAAS,EAAEtR,MAAM,CAACgK,YAAY,EAAEsH,SAAS,IAAI7B,IAAI,CAAC8B,GAAG,CAAC,CAAC,CAAC;MACxD/H,GAAG,EAAEQ,YAAY,EAAER,GAAG,IAAI;QACxBe,IAAI,EAAEP,YAAY,EAAEO,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,OAAO;QAC1DhB,MAAM,EAAES,YAAY,EAAET,MAAM,IAAI,EAAE;QAClC8uB,IAAI,EAAE;MACR;IACF,CAAC;EACH;EAEA,MAAM1T,WAAWA,CAACjtB,MAAM,EAAE;IAAEgN,IAAI;IAAE+jB,SAAS,GAAG,EAAE;IAAE9f,YAAY,GAAG,EAAE;IAAEC,WAAW,GAAG,EAAE;IAAE+f,OAAO,GAAG;EAAM,CAAC,EAAE;IACxG,MAAMzkB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE2P,OAAO,GAAG,gBAAgB,GAAG,cAAc;MACnDjxB,MAAM;MACNgN,IAAI;MACJ+jB,SAAS;MACT9f,YAAY;MACZC;IACF,CAAC,EAAE;MAAEvE,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,KAAKmqB,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC7E;IAEA,MAAMptB,MAAM,GAAG2I,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;IAC1C,MAAMyO,YAAY,GAAG,IAAI,CAACqwB,qBAAqB,CAAC9+B,MAAM,CAACyO,YAAY,IAAI,CAAC,CAAC,CAAC;IAC1EA,YAAY,CAACswB,YAAY,GAAG/+B,MAAM,CAAC++B,YAAY,IAAI,EAAE;IACrDtwB,YAAY,CAACuwB,WAAW,GAAGh/B,MAAM,CAACg/B,WAAW,IAAI,EAAE;IACnDvwB,YAAY,CAACR,GAAG,GAAG;MACjB,IAAIQ,YAAY,CAACR,GAAG,IAAI,CAAC,CAAC,CAAC;MAC3B8wB,YAAY,EAAEtwB,YAAY,CAACswB,YAAY;MACvCC,WAAW,EAAEvwB,YAAY,CAACuwB;IAC5B,CAAC;IACD,OAAOvwB,YAAY;EACrB;EAEA,MAAM4a,SAASA,CAACltB,MAAM,EAAE8iC,QAAQ,EAAE;IAChC,MAAMt2B,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,YAAY;MACpBthB,MAAM;MACN8iC;IACF,CAAC,EAAE;MAAEn2B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,MAAMjD,MAAM,GAAG2I,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;IAC1C,MAAMyO,YAAY,GAAG,IAAI,CAACqwB,qBAAqB,CAAC9+B,MAAM,CAACyO,YAAY,IAAI,CAAC,CAAC,CAAC;IAC1EA,YAAY,CAACswB,YAAY,GAAG/+B,MAAM,CAAC++B,YAAY,IAAI,EAAE;IACrDtwB,YAAY,CAACuwB,WAAW,GAAGh/B,MAAM,CAACg/B,WAAW,IAAI,EAAE;IACnDvwB,YAAY,CAACR,GAAG,GAAG;MACjB,IAAIQ,YAAY,CAACR,GAAG,IAAI,CAAC,CAAC,CAAC;MAC3B8wB,YAAY,EAAEtwB,YAAY,CAACswB,YAAY;MACvCC,WAAW,EAAEvwB,YAAY,CAACuwB;IAC5B,CAAC;IACD,OAAOvwB,YAAY;EACrB;EAEA,MAAM0e,gBAAgBA,CAAChxB,MAAM,EAAE+iC,SAAS,EAAE54B,IAAI,EAAE;IAC9C,MAAMqC,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,WAAW;MACnBthB,MAAM;MACN+iC,SAAS;MACT54B;IACF,CAAC,EAAE;MAAEwC,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;IACnD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAMwT,cAAcA,CAACrX,MAAM,EAAE2vB,OAAO,EAAE;IACpC,MAAMnjB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,cAAc;MACtBthB,MAAM;MACN2vB;IACF,CAAC,EAAE;MAAEhjB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEqQ,KAAK,IAAI,IAAI;EAC7C;EAEA,MAAMuD,eAAeA,CAACzX,MAAM,EAAE2vB,OAAO,EAAE;IACrC,MAAMnjB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,eAAe;MACvBthB,MAAM;MACN2vB;IACF,CAAC,EAAE;MAAEhjB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEm/B,OAAO,IAAI,EAAE;EAC7C;EAEA,MAAMnqB,gBAAgBA,CAAC7Y,MAAM,EAAE2vB,OAAO,EAAEnd,KAAK,EAAE;IAC7C,MAAMhG,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,oBAAoB;MAC5BthB,MAAM;MACN2vB,OAAO;MACPnd;IACF,CAAC,EAAE;MAAE7F,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,UAAU,CAAC;IACvD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE2O,KAAK,IAAI,EAAE;EAC3C;EAEA,MAAM8H,UAAUA,CAACta,MAAM,EAAE2vB,OAAO,EAAE;IAChC,MAAMnjB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,aAAa;MACrBthB,MAAM;MACN2vB;IACF,CAAC,EAAE;MAAEhjB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAM2W,YAAYA,CAACxa,MAAM,EAAE2vB,OAAO,EAAE;IAClC,MAAMnjB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,eAAe;MACvBthB,MAAM;MACN2vB;IACF,CAAC,EAAE;MAAEhjB,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAM6W,aAAaA,CAAC1a,MAAM,EAAE2vB,OAAO,EAAEsT,YAAY,EAAE;IACjD,MAAMz2B,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,gBAAgB;MACxBthB,MAAM;MACN2vB,OAAO;MACPsT;IACF,CAAC,EAAE;MAAEt2B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,QAAQ,CAAC;IACrD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAM4V,cAAcA,CAACzZ,MAAM,EAAE2vB,OAAO,EAAEuT,QAAQ,EAAE;IAC9C,MAAM12B,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,kBAAkB;MAC1BthB,MAAM;MACN2vB,OAAO;MACPuT;IACF,CAAC,EAAE;MAAEv2B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAM8V,kBAAkBA,CAAC3Z,MAAM,EAAE2vB,OAAO,EAAE;IAAE3iB,IAAI;IAAEiE,YAAY;IAAEC;EAAY,CAAC,EAAE;IAC7E,MAAM1E,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,sBAAsB;MAC9BthB,MAAM;MACN2vB,OAAO;MACP3iB,IAAI;MACJiE,YAAY;MACZC;IACF,CAAC,EAAE;MAAEvE,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAMmW,gBAAgBA,CAACha,MAAM,EAAE2vB,OAAO,EAAEoT,SAAS,EAAE;IACjD,MAAMv2B,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,oBAAoB;MAC5BthB,MAAM;MACN2vB,OAAO;MACPoT;IACF,CAAC,EAAE;MAAEp2B,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,MAAM,CAAC;IACnD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,IAAI,CAAC,CAAC;EACpC;EAEA,MAAMuW,sBAAsBA,CAACpa,MAAM,EAAE2vB,OAAO,EAAErX,OAAO,EAAE;IACrD,MAAM9L,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACm4B,sBAAsB,EAAE;MAClEpY,MAAM,EAAE,qBAAqB;MAC7BthB,MAAM;MACN2vB,OAAO;MACP,GAAGrX;IACL,CAAC,EAAE;MAAE3L,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,UAAU,CAAC;IACvD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE0U,WAAW,IAAI,IAAI;EACnD;EAEA,MAAM9B,kBAAkBA,CAACzW,MAAM,EAAEmjC,QAAQ,EAAE3wB,KAAK,EAAE;IAChD,MAAMhG,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC+3B,cAAc,EAAE;MAC1Dt5B,MAAM;MACNmjC,QAAQ;MACR3wB;IACF,CAAC,EAAE;MACD7F,eAAe,EAAE,KAAK;MACtB21B,OAAO,EAAE,IAAI,CAACC,iBAAiB,CAAChhC,wDAAS,CAAC+3B,cAAc;IAC1D,CAAC,CAAC;IAEF,IAAI9sB,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,SAAS,CAAC;IACtD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAEsO,OAAO,EAAEK,KAAK,IAAI,EAAE;EACpD;EAEA,MAAM4wB,UAAUA,CAACpjC,MAAM,EAAE;IACvB,MAAMwM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC64B,UAAU,EAAE;MACtD9Y,MAAM,EAAE,KAAK;MACbthB;IACF,CAAC,EAAE;MAAE2M,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,UAAU,CAAC;IACvD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE2gB,OAAO,IAAI,IAAI;EAC/C;EAEA,MAAM6e,aAAaA,CAACrjC,MAAM,EAAE;IAAE+I,WAAW;IAAEkvB;EAAa,CAAC,EAAE;IACzD,MAAMgK,QAAQ,GAAG,IAAIC,QAAQ,CAAC,CAAC;IAC/BD,QAAQ,CAACE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACnCF,QAAQ,CAACE,MAAM,CAAC,QAAQ,EAAEniC,MAAM,CAAC;IACjCiiC,QAAQ,CAACE,MAAM,CAAC,aAAa,EAAEp5B,WAAW,CAAC;IAC3C,IAAIkvB,YAAY,EAAE;MAChBgK,QAAQ,CAACE,MAAM,CAAC,cAAc,EAAElK,YAAY,CAAC;IAC/C;IAEA,MAAMzrB,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC64B,UAAU,EAAE6H,QAAQ,EAAE;MAChEt1B,eAAe,EAAE,KAAK;MACtB21B,OAAO,EAAE,IAAI,CAACC,iBAAiB,CAAChhC,wDAAS,CAACiO,SAAS;IACrD,CAAC,CAAC;IAEF,IAAIhD,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,UAAU,CAAC;IACvD;IAEA,OAAO0F,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE2gB,OAAO,IAAI,IAAI;EAC/C;EAEA,MAAM2T,cAAcA,CAAC;IAAE7F,WAAW;IAAEpmB;EAAY,CAAC,EAAE;IACjD,MAAMM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAAC+4B,iBAAiB,EAAE;MAC7DhI,WAAW;MACXpmB;IACF,CAAC,EAAE;MACDS,eAAe,EAAE,KAAK;MACtB21B,OAAO,EAAE,IAAI,CAACC,iBAAiB,CAAChhC,wDAAS,CAAC+4B,iBAAiB;IAC7D,CAAC,CAAC;IAEF,IAAI9tB,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI0F,QAAQ,CAAC9D,IAAI,EAAEwG,GAAG,IAAI,QAAQ,CAAC;IAC3E;IAEA,OAAO,IAAI;EACb;EAEA,MAAMjD,qBAAqBA,CAAC;IAAElK,MAAM;IAAE+B,SAAS;IAAEoI;EAAY,CAAC,EAAE;IAC9D,MAAMM,QAAQ,GAAG,MAAMvL,uDAAK,CAAC8N,IAAI,CAACxN,wDAAS,CAACi5B,gBAAgB,EAAE;MAC5Dz4B,MAAM;MACN+B,SAAS;MACToI;IACF,CAAC,EAAE;MAAES,eAAe,EAAE;IAAM,CAAC,CAAC;IAE9B,IAAIH,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE;MAC7B,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI0F,QAAQ,CAAC9D,IAAI,EAAEwG,GAAG,IAAI,QAAQ,CAAC;IAC3E;IAEA,OAAO,IAAI;EACb;EAEAo0B,kBAAkBA,CAAA,EAAG;IACnB,MAAMxiC,QAAQ,GAAG,IAAI,CAACshC,cAAc,CAAC,CAAC;IACtC,IAAI,CAACpnB,IAAI,CAAC,iBAAiB,EAAEla,QAAQ,CAAC;IACtC,OAAOA,QAAQ;EACjB;EAEAyiC,wBAAwBA,CAACvjC,MAAM,EAAEwjC,QAAQ,GAAG,IAAI,EAAE;IAChD,MAAMn1B,KAAK,GAAG2wB,QAAQ,CAACwE,QAAQ,EAAEn1B,KAAK,IAAIm1B,QAAQ,EAAEz6B,WAAW,IAAIy6B,QAAQ,EAAEx2B,IAAI,EAAEhN,MAAM,CAAC;IAC1F,OAAO;MACL+R,EAAE,EAAE,UAAU/R,MAAM,EAAE;MACtB6S,IAAI,EAAE,QAAQ;MACdhB,MAAM,EAAE7R,MAAM;MACdqO,KAAK;MACLsd,QAAQ,EAAE,EAAE;MACZnX,MAAM,EAAE,CAAC;MACTxL,QAAQ,EAAEw6B,QAAQ,EAAEx6B,QAAQ,IAAI,EAAE;MAClC2J,UAAU,EAAEtE,KAAK,CAACvI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MAC3C6T,SAAS,EAAE7B,IAAI,CAAC8B,GAAG,CAAC,CAAC;MACrB/H,GAAG,EAAE;QAAEe,IAAI,EAAE,QAAQ;QAAEhB,MAAM,EAAE7R,MAAM;QAAE2gC,IAAI,EAAE;MAAE;IACjD,CAAC;EACH;EAEA6B,UAAUA,CAACxiC,MAAM,EAAEyjC,MAAM,EAAED,QAAQ,EAAE;IACnC,MAAMn1B,KAAK,GAAG2wB,QAAQ,CAACwE,QAAQ,EAAE1T,WAAW,IAAI2T,MAAM,EAAEjxB,KAAK,IAAIgxB,QAAQ,EAAEz6B,WAAW,IAAIy6B,QAAQ,EAAEx2B,IAAI,EAAEhN,MAAM,CAAC;IACjH,OAAO;MACL+R,EAAE,EAAE/R,MAAM;MACVoS,GAAG,EAAEpS,MAAM;MACXqO,KAAK;MACLsd,QAAQ,EAAE6X,QAAQ,EAAEzhC,MAAM,IAAIyhC,QAAQ,EAAEx2B,IAAI,IAAIhN,MAAM;MACtDgJ,QAAQ,EAAEw6B,QAAQ,EAAEx6B,QAAQ,IAAI,EAAE;MAClC0J,OAAO,EAAE8wB,QAAQ,EAAE9wB,OAAO,IAAI,EAAE;MAChCC,UAAU,EAAEtE,KAAK,CAACvI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MAC3CyM,KAAK,EAAEixB,MAAM,EAAEjxB,KAAK,IAAIgxB,QAAQ,EAAE1T,WAAW,IAAI,EAAE;MACnDC,SAAS,EAAE0T,MAAM;MACjBlxB,OAAO,EAAEixB;IACX,CAAC;EACH;EAEAE,EAAEA,CAACC,SAAS,EAAEC,OAAO,EAAE;IACrB,IAAI,CAAC,IAAI,CAACrE,SAAS,CAACrmB,GAAG,CAACyqB,SAAS,CAAC,EAAE;MAClC,IAAI,CAACpE,SAAS,CAACnxB,GAAG,CAACu1B,SAAS,EAAE,IAAI1qB,GAAG,CAAC,CAAC,CAAC;IAC1C;IACA,IAAI,CAACsmB,SAAS,CAAC9yB,GAAG,CAACk3B,SAAS,CAAC,CAACvqB,GAAG,CAACwqB,OAAO,CAAC;IAC1C,OAAO,MAAM,IAAI,CAACC,GAAG,CAACF,SAAS,EAAEC,OAAO,CAAC;EAC3C;EAEAC,GAAGA,CAACF,SAAS,EAAEC,OAAO,EAAE;IACtB,IAAI,CAACrE,SAAS,CAAC9yB,GAAG,CAACk3B,SAAS,CAAC,EAAExqB,MAAM,CAACyqB,OAAO,CAAC;EAChD;EAEA5oB,IAAIA,CAAC2oB,SAAS,EAAEG,OAAO,EAAE;IACvB,IAAI,CAACvE,SAAS,CAAC9yB,GAAG,CAACk3B,SAAS,CAAC,EAAEhoB,OAAO,CAACioB,OAAO,IAAIA,OAAO,CAACE,OAAO,CAAC,CAAC;EACrE;EAEA9D,eAAeA,CAAChyB,GAAG,EAAExB,QAAQ,EAAE;IAC7B,MAAMu3B,QAAQ,GAAGv3B,QAAQ,CAAC81B,OAAO,EAAE0B,SAAS,IAAIx3B,QAAQ,CAAC81B,OAAO,EAAE2B,SAAS;IAC3E,IAAIF,QAAQ,EAAE;MACZ7G,YAAY,CAAC7tB,OAAO,CAAC9N,wDAAS,CAACy6B,sBAAsB,GAAG,IAAI,CAACkI,UAAU,CAACl2B,GAAG,CAAC,EAAE+1B,QAAQ,CAAC;IACzF;EACF;EAEAxB,iBAAiBA,CAACv0B,GAAG,EAAE;IACrB,MAAMm2B,IAAI,GAAG,IAAI,CAACD,UAAU,CAACl2B,GAAG,CAAC;IACjC,IAAI,CAACm2B,IAAI,EAAE;MACT,OAAO,CAAC,CAAC;IACX;IACA,MAAMp8B,KAAK,GAAGm1B,YAAY,CAACvtB,OAAO,CAACpO,wDAAS,CAACy6B,sBAAsB,GAAGmI,IAAI,CAAC;IAC3E,OAAOp8B,KAAK,GAAG;MAAEk8B,SAAS,EAAEl8B;IAAM,CAAC,GAAG,CAAC,CAAC;EAC1C;EAEAm8B,UAAUA,CAACl2B,GAAG,EAAE;IACd,IAAI;MACF,OAAO,IAAIF,GAAG,CAACE,GAAG,EAAExG,MAAM,CAACkG,QAAQ,CAACoa,MAAM,CAAC,CAACqc,IAAI;IAClD,CAAC,CAAC,OAAOt9B,KAAK,EAAE;MACd,OAAO,EAAE;IACX;EACF;AACF;AAEO,MAAMrF,QAAQ,GAAG,IAAI69B,YAAY,CAAC,CAAC,C;;;;;;;;;;;ACvjCL;AACS;AACoB;AAElE,MAAMgF,2BAA2B,CAAC;EAChC/E,WAAWA,CAAA,EAAG;IACZ,MAAM,IAAIt3B,KAAK,CAAC,qCAAqC,CAAC;EACxD;AACF;AAEO,MAAMxG,QAAQ,GAAGD,uDAAS,CAAC65B,OAAO,KAAK,UAAU,GACpD,IAAIiJ,2BAA2B,CAAC,CAAC,GACjC9iC,uDAAS,CAAC65B,OAAO,KAAK,WAAW,IAAI75B,uDAAS,CAAC65B,OAAO,KAAK,MAAM,GAC/D,IAAIgJ,oFAAsB,CAAC,CAAC,GAC5B,IAAI/E,gEAAY,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACda;AACS;AAE9C,MAAMkF,qBAAqB,GAAG,KAAK;AACnC,MAAMC,gBAAgB,GAAG,IAAI;AAC7B,MAAMC,gBAAgB,GAAG,KAAK;AAE9B,SAASC,UAAUA,CAAA,EAAG;EACpB,IAAInjC,uDAAS,CAAC25B,KAAK,EAAE;IACnB,OAAO35B,uDAAS,CAAC25B,KAAK;EACxB;EACA,MAAMvtB,QAAQ,GAAGpM,uDAAS,CAACu5B,MAAM,GAAG,KAAK,GAAG,IAAI;EAChD,MAAMqJ,IAAI,GAAG5iC,uDAAS,CAACm5B,YAAY,IAAIlzB,MAAM,CAACkG,QAAQ,CAAC6qB,QAAQ;EAC/D,MAAMoM,IAAI,GAAGpjC,uDAAS,CAACq5B,WAAW,GAAG,IAAIr5B,uDAAS,CAACq5B,WAAW,EAAE,GAAG,EAAE;EACrE,MAAMgK,IAAI,GAAGrjC,uDAAS,CAACy5B,MAAM,EAAEvtB,UAAU,CAAC,GAAG,CAAC,GAAGlM,uDAAS,CAACy5B,MAAM,GAAG,IAAIz5B,uDAAS,CAACy5B,MAAM,IAAI,IAAI,EAAE;EAClG,OAAO,GAAGrtB,QAAQ,MAAMw2B,IAAI,GAAGQ,IAAI,GAAGC,IAAI,EAAE;AAC9C;AAEA,SAASC,uBAAuBA,CAACf,OAAO,EAAE;EACxC,MAAMjyB,MAAM,GAAGiyB,OAAO,CAACjyB,MAAM,IAAIiyB,OAAO,CAACgB,EAAE,IAAIhB,OAAO,CAACiB,QAAQ,IAAIjB,OAAO,CAAC1V,kBAAkB,IAAI0V,OAAO,CAACxqB,IAAI,IAAIwqB,OAAO,CAACnC,MAAM;EAC/H,OAAOmC,OAAO,CAACna,cAAc,KAAK9X,MAAM,GAAG,UAAUA,MAAM,EAAE,GAAG,EAAE,CAAC;AACrE;AAEA,SAASmzB,wBAAwBA,CAAClB,OAAO,EAAEmB,aAAa,EAAE;EACxD,MAAMhgC,IAAI,GAAG6+B,OAAO,CAACh9B,OAAO,IAAIg9B,OAAO;EACvC,MAAMxqB,IAAI,GAAGrU,IAAI,CAACqU,IAAI,IAAIrU,IAAI,CAAC08B,MAAM,IAAI18B,IAAI,CAACigC,QAAQ,IAAI,EAAE;EAC5D,MAAMrzB,MAAM,GAAG5M,IAAI,CAAC4M,MAAM,IAAI5M,IAAI,CAAC6/B,EAAE,IAAI7/B,IAAI,CAAC8/B,QAAQ,IAAI,EAAE;EAC5D,MAAM3jB,SAAS,GAAG9H,IAAI,IAAIzT,MAAM,CAACyT,IAAI,CAAC,KAAKzT,MAAM,CAACo/B,aAAa,CAAC,GAAG,KAAK,GAAG,IAAI;EAC/E,MAAMtb,cAAc,GAAG1kB,IAAI,CAAC0kB,cAAc,IAAIkb,uBAAuB,CAAC;IACpE,GAAG5/B,IAAI;IACP4M,MAAM,EAAEuP,SAAS,KAAK,KAAK,GAAGvP,MAAM,GAAGyH;EACzC,CAAC,CAAC;EAEF,IAAI,CAACqQ,cAAc,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,MAAM5f,MAAM,GAAG9E,IAAI,CAAC8E,MAAM,IAAI9E,IAAI,CAACyjB,cAAc,IAAI,MAAM;EAE3D,OAAO;IACL3W,EAAE,EAAE9M,IAAI,CAAC8M,EAAE,IAAI9M,IAAI,CAACgd,SAAS,IAAIhd,IAAI,CAACme,UAAU,IAAI,GAAGrL,IAAI,CAAC8B,GAAG,CAAC,CAAC,GAAG1R,IAAI,CAAC+B,MAAM,CAAC,CAAC,CAAC6D,QAAQ,CAAC,EAAE,CAAC,CAACjI,KAAK,CAAC,CAAC,CAAC,EAAE;IACzGsd,UAAU,EAAEne,IAAI,CAACme,UAAU,IAAIne,IAAI,CAACmN,GAAG,IAAInN,IAAI,CAACgd,SAAS,IAAI,EAAE;IAC/D0H,cAAc;IACdrQ,IAAI;IACJzH,MAAM;IACNuP,SAAS;IACTvO,IAAI,EAAE5N,IAAI,CAAC4N,IAAI,IAAI,MAAM;IACzB1I,IAAI,EAAElF,IAAI,CAACkF,IAAI,IAAIlF,IAAI,CAACkgC,OAAO,IAAIlgC,IAAI,CAACmgC,iBAAiB,IAAI,EAAE;IAC/Dr7B,MAAM;IACN2e,cAAc,EAAEzjB,IAAI,CAACyjB,cAAc,KAAKtH,SAAS,KAAK,KAAK,GAAGrX,MAAM,GAAG,EAAE,CAAC;IAC1EkL,SAAS,EAAE3M,MAAM,CAACrD,IAAI,CAACgQ,SAAS,IAAIhQ,IAAI,CAAC48B,eAAe,IAAI9pB,IAAI,CAAC8B,GAAG,CAAC,CAAC,CAAC;IACvEklB,gBAAgB,EAAEz2B,MAAM,CAACrD,IAAI,CAAC85B,gBAAgB,IAAI95B,IAAI,CAACgQ,SAAS,IAAIhQ,IAAI,CAAC48B,eAAe,IAAI9pB,IAAI,CAAC8B,GAAG,CAAC,CAAC,CAAC;IACvG/H,GAAG,EAAE7M;EACP,CAAC;AACH;AAEO,MAAMm/B,sBAAsB,SAAS/E,gEAAY,CAAC;EACvDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAAC+F,MAAM,GAAG,IAAI;IAClB,IAAI,CAACnK,KAAK,GAAGwJ,UAAU,CAAC,CAAC;IACzB,IAAI,CAACY,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACC,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACC,iBAAiB,GAAG,CAAC;IAC1B,IAAI,CAACC,WAAW,GAAG,KAAK;EAC1B;EAEA7F,aAAaA,CAAA,EAAG;IACd,OAAO,WAAW;EACpB;EAEA8F,uBAAuBA,CAAA,EAAG;IACxB,OAAO,CAAC,IAAI,CAAC3wB,SAAS;EACxB;EAEA,MAAM8qB,SAASA,CAAA,EAAG;IAChB,IAAI,OAAO8F,SAAS,KAAK,WAAW,EAAE;MACpC,MAAM,IAAI39B,KAAK,CAAC,wBAAwB,CAAC;IAC3C;IACA,OAAO,IAAI;EACb;EAEAo4B,OAAOA,CAACpgC,MAAM,EAAE+H,KAAK,EAAE;IACrB,IAAI,CAACy3B,WAAW,GAAG;MAAEx/B,MAAM;MAAE+H;IAAM,CAAC;IACpC,IAAI,CAAC09B,WAAW,GAAG,KAAK;IACxB,IAAI,CAACG,UAAU,CAAC,CAAC;EACnB;EAEAtF,UAAUA,CAAA,EAAG;IACX,IAAI,CAACmF,WAAW,GAAG,IAAI;IACvB,IAAI,CAACI,mBAAmB,CAAC,CAAC;IAC1B,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC1B,IAAI,IAAI,CAACT,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,CAACU,KAAK,CAAC,CAAC;MACnB,IAAI,CAACV,MAAM,GAAG,IAAI;IACpB;IACA,KAAK,CAAC/E,UAAU,CAAC,CAAC;EACpB;EAEAsF,UAAUA,CAAA,EAAG;IACX,IAAI,IAAI,CAACP,MAAM,EAAEW,UAAU,KAAKL,SAAS,CAACM,IAAI,EAAE;MAC9C,IAAI,CAACC,aAAa,CAAC,CAAC;MACpB;IACF;IACA,IAAI,IAAI,CAACb,MAAM,EAAEW,UAAU,KAAKL,SAAS,CAACQ,UAAU,EAAE;MACpD;IACF;IAEA,IAAI,CAACnrB,IAAI,CAAC,yBAAyB,EAAE;MAAEjG,SAAS,EAAE,KAAK;MAAEH,UAAU,EAAE;IAAS,CAAC,CAAC;IAEhF,IAAI;MACF,IAAI,CAACywB,MAAM,GAAG,IAAIM,SAAS,CAAC,IAAI,CAACzK,KAAK,CAAC;MACvC,IAAI,CAACmK,MAAM,CAACe,UAAU,GAAG,aAAa;IACxC,CAAC,CAAC,OAAOv/B,KAAK,EAAE;MACd,IAAI,CAACmU,IAAI,CAAC,yBAAyB,EAAE;QAAEjG,SAAS,EAAE,KAAK;QAAEH,UAAU,EAAE;MAAmB,CAAC,CAAC;MAC1F,IAAI,CAACyxB,iBAAiB,CAAC,CAAC;MACxB;IACF;IAEA,IAAI,CAAChB,MAAM,CAACiB,MAAM,GAAG,MAAM;MACzB,IAAI,CAACvxB,SAAS,GAAG,IAAI;MACrB,IAAI,CAACywB,iBAAiB,GAAG,CAAC;MAC1B,IAAI,CAACxqB,IAAI,CAAC,yBAAyB,EAAE;QAAEjG,SAAS,EAAE,IAAI;QAAEH,UAAU,EAAE;MAAS,CAAC,CAAC;MAC/E,IAAI,CAACsxB,aAAa,CAAC,CAAC;MACpB,IAAI,CAACK,cAAc,CAAC,CAAC;MACrB,IAAI,CAAClG,uBAAuB,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAACgF,MAAM,CAACmB,SAAS,GAAG1oB,KAAK,IAAI;MAC/B,IAAI,CAAC2oB,WAAW,CAAC3oB,KAAK,CAACpV,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC28B,MAAM,CAACrO,OAAO,GAAG,MAAM;MAC1B,IAAI,CAAChc,IAAI,CAAC,yBAAyB,EAAE;QAAEjG,SAAS,EAAE,KAAK;QAAEH,UAAU,EAAE;MAAiB,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,CAACywB,MAAM,CAACqB,OAAO,GAAG,MAAM;MAC1B,IAAI,CAAC3xB,SAAS,GAAG,KAAK;MACtB,IAAI,CAAC+wB,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACT,MAAM,GAAG,IAAI;MAClB,IAAI,IAAI,CAACI,WAAW,EAAE;QACpB;MACF;MACA,IAAI,CAACzqB,IAAI,CAAC,yBAAyB,EAAE;QAAEjG,SAAS,EAAE,KAAK;QAAEH,UAAU,EAAE;MAAS,CAAC,CAAC;MAChF,IAAI,CAACyxB,iBAAiB,CAAC,CAAC;IAC1B,CAAC;EACH;EAEAH,aAAaA,CAAA,EAAG;IACd,IAAI,CAACS,SAAS,CAAC;MACb9zB,IAAI,EAAE,MAAM;MACZ7S,MAAM,EAAE,IAAI,CAACw/B,WAAW,EAAEx/B,MAAM,IAAI,EAAE;MACtC+H,KAAK,EAAE,IAAI,CAACy3B,WAAW,EAAEz3B,KAAK,IAAI,EAAE;MACpC23B,QAAQ,EAAE,IAAI,CAACD,WAAW,CAAC,CAAC;MAC5B3D,QAAQ,EAAEv6B,uDAAS,CAACu6B,QAAQ;MAC5B7mB,SAAS,EAAE8C,IAAI,CAAC8B,GAAG,CAAC;IACtB,CAAC,CAAC;EACJ;EAEA8sB,SAASA,CAACC,KAAK,EAAE;IACf,IAAI,IAAI,CAACvB,MAAM,EAAEW,UAAU,KAAKL,SAAS,CAACM,IAAI,EAAE;MAC9C,OAAO,KAAK;IACd;IACA,IAAI,CAACZ,MAAM,CAACwB,IAAI,CAACv3B,IAAI,CAACC,SAAS,CAACq3B,KAAK,CAAC,CAAC;IACvC,OAAO,IAAI;EACb;EAEAH,WAAWA,CAACK,OAAO,EAAE;IACnB,IAAIA,OAAO,YAAYC,WAAW,EAAE;MAClC,IAAI,CAAC/rB,IAAI,CAAC,kBAAkB,EAAE8rB,OAAO,CAAC;MACtC;IACF;IAEA,IAAIhD,OAAO;IACX,IAAI;MACFA,OAAO,GAAG,OAAOgD,OAAO,KAAK,QAAQ,GAAGx3B,IAAI,CAACI,KAAK,CAACo3B,OAAO,CAAC,GAAGA,OAAO;IACvE,CAAC,CAAC,OAAOjgC,KAAK,EAAE;MACd;IACF;IAEA,MAAMgM,IAAI,GAAGixB,OAAO,CAACjxB,IAAI,IAAIixB,OAAO,CAAChmB,KAAK,IAAIgmB,OAAO,CAACkD,GAAG,IAAI,EAAE;IAC/D,IAAIn0B,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,EAAE;MACjE;IACF;IACA,IAAIA,IAAI,KAAK,iBAAiB,EAAE;MAC9B,IAAI,CAACmI,IAAI,CAAC,iBAAiB,EAAE8oB,OAAO,CAAChjC,QAAQ,IAAI,EAAE,CAAC;MACpD;IACF;IACA,IAAI+R,IAAI,KAAK,sBAAsB,EAAE;MACnC,IAAI,CAACmI,IAAI,CAAC,sBAAsB,EAAE8oB,OAAO,CAAChkC,aAAa,IAAI,EAAE,CAAC;MAC9D;IACF;IACA,IAAI+S,IAAI,KAAK,UAAU,IAAIwG,KAAK,CAACkW,OAAO,CAACuU,OAAO,CAACrhB,QAAQ,CAAC,EAAE;MAC1DqhB,OAAO,CAACrhB,QAAQ,CACbjP,GAAG,CAAC1M,OAAO,IAAIk+B,wBAAwB,CAACl+B,OAAO,EAAE,IAAI,CAAC04B,WAAW,EAAEx/B,MAAM,CAAC,CAAC,CAC3EgF,MAAM,CAAC4H,OAAO,CAAC,CACf+O,OAAO,CAAC7U,OAAO,IAAI,IAAI,CAACkU,IAAI,CAAC,iBAAiB,EAAElU,OAAO,CAAC,CAAC;MAC5D;IACF;IAEA,MAAMA,OAAO,GAAGk+B,wBAAwB,CAAClB,OAAO,EAAE,IAAI,CAACtE,WAAW,EAAEx/B,MAAM,CAAC;IAC3E,IAAI8G,OAAO,EAAE;MACX,IAAI,CAACkU,IAAI,CAAClU,OAAO,CAACsa,SAAS,KAAK,KAAK,GAAG,sBAAsB,GAAG,iBAAiB,EAAEta,OAAO,CAAC;IAC9F;EACF;EAEAy/B,cAAcA,CAAA,EAAG;IACf,IAAI,CAACT,mBAAmB,CAAC,CAAC;IAC1B,IAAI,CAACR,cAAc,GAAG99B,MAAM,CAACy/B,WAAW,CAAC,MAAM;MAC7C,IAAI,CAACN,SAAS,CAAC;QAAE9zB,IAAI,EAAE,MAAM;QAAEoC,SAAS,EAAE8C,IAAI,CAAC8B,GAAG,CAAC;MAAE,CAAC,CAAC;IACzD,CAAC,EAAE0qB,qBAAqB,CAAC;EAC3B;EAEAuB,mBAAmBA,CAAA,EAAG;IACpB,IAAI,IAAI,CAACR,cAAc,EAAE;MACvB99B,MAAM,CAAC0/B,aAAa,CAAC,IAAI,CAAC5B,cAAc,CAAC;MACzC,IAAI,CAACA,cAAc,GAAG,IAAI;IAC5B;EACF;EAEAe,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACR,mBAAmB,CAAC,CAAC;IAC1B,MAAM58B,KAAK,GAAGd,IAAI,CAACE,GAAG,CAACo8B,gBAAgB,EAAED,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAACgB,iBAAiB,CAAC;IACxF,IAAI,CAACA,iBAAiB,IAAI,CAAC;IAC3B,IAAI,CAACD,cAAc,GAAG/9B,MAAM,CAACgB,UAAU,CAAC,MAAM;MAC5C,IAAI,CAACo9B,UAAU,CAAC,CAAC;IACnB,CAAC,EAAE38B,KAAK,CAAC;EACX;EAEA48B,mBAAmBA,CAAA,EAAG;IACpB,IAAI,IAAI,CAACN,cAAc,EAAE;MACvB/9B,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC89B,cAAc,CAAC;MACxC,IAAI,CAACA,cAAc,GAAG,IAAI;IAC5B;EACF;AACF,C;;;;;;;;;;;;;AC3O0B;AACW;AACU;AAE/C,MAAM4B,0BAA0B,CAAC;EAC/B7H,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC8H,MAAM,GAAG,IAAI;IAClB,IAAI,CAACpnC,MAAM,GAAG,EAAE;IAChB,IAAI,CAAC4jC,OAAO,GAAG,IAAI;IACnB,IAAI,CAAC2B,cAAc,GAAG,IAAI;IAC1B,IAAI,CAAC8B,gBAAgB,GAAG,CAAC;IACzB,IAAI,CAACz/B,UAAU,GAAG,CAAC;EACrB;EAEAke,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACshB,MAAM,EAAEpB,UAAU,KAAKL,SAAS,CAACM,IAAI;EACnD;EAEA9pB,KAAKA,CAACnc,MAAM,EAAE4jC,OAAO,EAAE;IACrB,IAAI,CAAC0D,IAAI,CAAC,CAAC;IACX,IAAI,CAAC/lC,uDAAS,CAACi6B,UAAU,IAAI,CAACx7B,MAAM,IAAI,OAAOwH,MAAM,CAACm+B,SAAS,KAAK,UAAU,EAAE;IAChF,IAAI,CAAC3lC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC4jC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACh8B,UAAU,IAAI,CAAC;IACpB,IAAI,CAAC8qB,IAAI,CAAC,IAAI,CAAC9qB,UAAU,CAAC;EAC5B;EAEA0/B,IAAIA,CAAA,EAAG;IACL,IAAI,CAAC1/B,UAAU,IAAI,CAAC;IACpBJ,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC89B,cAAc,CAAC;IACxC,IAAI,CAACA,cAAc,GAAG,IAAI;IAC1B,IAAI,IAAI,CAAC6B,MAAM,EAAE,IAAI,CAACA,MAAM,CAACrB,KAAK,CAAC,CAAC;IACpC,IAAI,CAACqB,MAAM,GAAG,IAAI;IAClB,IAAI,CAACpnC,MAAM,GAAG,EAAE;IAChB,IAAI,CAAC4jC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACyD,gBAAgB,GAAG,CAAC;EAC3B;EAEA,MAAM3U,IAAIA,CAAC9qB,UAAU,EAAE;IACrB,IAAI;MACF,MAAM4E,QAAQ,GAAG,MAAMvL,sDAAK,CAAC8N,IAAI,CAACxN,uDAAS,CAACm6B,YAAY,EAAE;QAAE17B,MAAM,EAAE,IAAI,CAACA;MAAO,CAAC,EAAE;QACjF2M,eAAe,EAAE,KAAK;QACtB21B,OAAO,EAAE9gC,kEAAQ,CAAC+gC,iBAAiB,CAAChhC,uDAAS,CAACiO,SAAS;MACzD,CAAC,CAAC;MACF,IAAI5H,UAAU,KAAK,IAAI,CAACA,UAAU,EAAE;MACpC,IAAI4E,QAAQ,CAAC9D,IAAI,EAAEzG,IAAI,KAAK,CAAC,EAAE,MAAM,IAAI+F,KAAK,CAACwE,QAAQ,CAAC9D,IAAI,EAAE5B,OAAO,IAAI,YAAY,CAAC;MACtF,MAAMygC,MAAM,GAAG/6B,QAAQ,CAAC9D,IAAI,EAAE7E,MAAM,EAAE0jC,MAAM,IAAI,EAAE;MAClD,IAAI,CAACA,MAAM,EAAE,MAAM,IAAIv/B,KAAK,CAAC,UAAU,CAAC;MACxC,MAAM+d,SAAS,GAAGxkB,uDAAS,CAACq6B,MAAM,CAAChpB,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;MAC5D,MAAM40B,QAAQ,GAAG,GAAGjmC,uDAAS,CAACq6B,MAAM,GAAG7V,SAAS,UAAU6W,kBAAkB,CAAC2K,MAAM,CAAC,EAAE;MACtF,MAAME,SAAS,GAAGD,QAAQ,CAAC/5B,UAAU,CAAC,OAAO,CAAC,IAAI+5B,QAAQ,CAAC/5B,UAAU,CAAC,QAAQ,CAAC,GAC3E+5B,QAAQ,GACR,GAAGhgC,MAAM,CAACkG,QAAQ,CAACC,QAAQ,KAAK,QAAQ,GAAG,MAAM,GAAG,KAAK,KAAKnG,MAAM,CAACkG,QAAQ,CAACy2B,IAAI,GAAGqD,QAAQ,CAAC/5B,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG+5B,QAAQ,EAAE;MACzI,MAAMJ,MAAM,GAAG,IAAIzB,SAAS,CAAC8B,SAAS,CAAC;MACvC,IAAI,CAACL,MAAM,GAAGA,MAAM;MACpBA,MAAM,CAACd,MAAM,GAAG,MAAM;QACpB,IAAI,CAACe,gBAAgB,GAAG,CAAC;MAC3B,CAAC;MACDD,MAAM,CAACZ,SAAS,GAAG1oB,KAAK,IAAI;QAC1B,IAAIlW,UAAU,KAAK,IAAI,CAACA,UAAU,EAAE;QACpC,IAAIk8B,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI;UAAEA,OAAO,GAAGx0B,IAAI,CAACI,KAAK,CAACoO,KAAK,CAACpV,IAAI,IAAI,IAAI,CAAC;QAAE,CAAC,CAAC,OAAO7B,KAAK,EAAE;UAAEi9B,OAAO,GAAG,CAAC,CAAC;QAAE;QAChF,IAAIA,OAAO,CAACjxB,IAAI,KAAK,sBAAsB,EAAE;QAC7C,IAAI,CAAC+wB,OAAO,GAAGE,OAAO,CAAC;MACzB,CAAC;MACDsD,MAAM,CAACpQ,OAAO,GAAG,MAAM;QACrB,IAAIpvB,UAAU,KAAK,IAAI,CAACA,UAAU,EAAE;QACpCw/B,MAAM,CAACrB,KAAK,CAAC,CAAC;QACd,IAAI,IAAI,CAACqB,MAAM,KAAKA,MAAM,EAAE,IAAI,CAACA,MAAM,GAAG,IAAI;QAC9C,IAAI,CAACf,iBAAiB,CAACz+B,UAAU,CAAC;MACpC,CAAC;MACDw/B,MAAM,CAACV,OAAO,GAAG,MAAM;QACrB,IAAI9+B,UAAU,KAAK,IAAI,CAACA,UAAU,IAAI,IAAI,CAACw/B,MAAM,KAAKA,MAAM,EAAE;QAC9D,IAAI,CAACA,MAAM,GAAG,IAAI;QAClB,IAAI,CAACf,iBAAiB,CAACz+B,UAAU,CAAC;MACpC,CAAC;IACH,CAAC,CAAC,OAAOf,KAAK,EAAE;MACd,IAAIe,UAAU,KAAK,IAAI,CAACA,UAAU,EAAE,IAAI,CAACy+B,iBAAiB,CAACz+B,UAAU,CAAC;IACxE;EACF;EAEAy+B,iBAAiBA,CAACz+B,UAAU,EAAE;IAC5BJ,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC89B,cAAc,CAAC;IACxC,MAAMt8B,KAAK,GAAGd,IAAI,CAACE,GAAG,CAAC,KAAK,EAAE,IAAI,GAAI,CAAC,IAAIF,IAAI,CAACE,GAAG,CAAC,IAAI,CAACg/B,gBAAgB,EAAE,CAAC,CAAE,CAAC;IAC/E,IAAI,CAACA,gBAAgB,IAAI,CAAC;IAC1B,IAAI,CAAC9B,cAAc,GAAG/9B,MAAM,CAACgB,UAAU,CAAC,MAAM,IAAI,CAACkqB,IAAI,CAAC9qB,UAAU,CAAC,EAAEqB,KAAK,CAAC;EAC7E;AACF;AAEO,MAAMy+B,qBAAqB,GAAG,IAAIP,0BAA0B,CAAC,CAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzFjC;AACW;AACe;AACL;AACN;AAEnD,MAAMS,gBAAgB,GAAG,KAAK;AAE9B,SAASC,iBAAiBA,CAAC/mC,QAAQ,EAAE;EACnC,MAAMgnC,MAAM,GAAG,IAAIja,GAAG,CAAC,CAAC;EACxB/sB,QAAQ,CAAC6a,OAAO,CAACxJ,OAAO,IAAI;IAC1B,MAAMC,GAAG,GAAGvM,MAAM,CAACsM,OAAO,CAACC,GAAG,IAAID,OAAO,CAACJ,EAAE,IAAI,EAAE,CAAC,CAAC9E,IAAI,CAAC,CAAC;IAC1D,IAAI,CAACmF,GAAG,EAAE;MACR;IACF;IACA,MAAM21B,UAAU,GAAG;MACjB,GAAG51B,OAAO;MACVJ,EAAE,EAAElM,MAAM,CAACsM,OAAO,CAACJ,EAAE,IAAIK,GAAG,CAAC;MAC7BA;IACF,CAAC;IACD01B,MAAM,CAAC15B,GAAG,CAACgE,GAAG,EAAE;MACd,IAAI01B,MAAM,CAACr7B,GAAG,CAAC2F,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;MAC1B,GAAG21B;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAO1uB,KAAK,CAACC,IAAI,CAACwuB,MAAM,CAACzY,MAAM,CAAC,CAAC,CAAC,CAAC5b,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACxwB,KAAK,CAACo0B,aAAa,CAAC3D,CAAC,CAACzwB,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5F;AAEO,MAAMzN,eAAe,GAAG+mC,4DAAW,CAAC,UAAU,EAAE;EACrDlf,KAAK,EAAEA,CAAA,MAAO;IACZ3nB,QAAQ,EAAE,EAAE;IACZqvB,QAAQ,EAAE,EAAE;IACZ6X,OAAO,EAAE,KAAK;IACdC,WAAW,EAAE,KAAK;IAClBC,aAAa,EAAE,CAAC;IAChBC,cAAc,EAAE,IAAI;IACpBC,eAAe,EAAE,EAAE;IACnBC,QAAQ,EAAE,CAAC;IACX3xB,WAAW,EAAE,EAAE;IACfmV,UAAU,EAAE;EACd,CAAC,CAAC;EACFyc,OAAO,EAAE;IACPxf,aAAaA,CAACL,KAAK,EAAE;MACnB,OAAOA,KAAK,CAAC3nB,QAAQ,CAACoR,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK0W,KAAK,CAAC0H,QAAQ,CAAC,IAAI1H,KAAK,CAAC3nB,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI;IAC7F;EACF,CAAC;EACDynC,OAAO,EAAE;IACPC,YAAYA,CAAA,EAAG;MACb,IAAI,IAAI,CAACP,WAAW,EAAE;QACpB;MACF;MACA,IAAI,CAACA,WAAW,GAAG,IAAI;MACvBzmC,kEAAQ,CAACkiC,EAAE,CAAC,iBAAiB,EAAE5iC,QAAQ,IAAI;QACzC,IAAI,CAACA,QAAQ,CAAC+D,MAAM,IAAI,IAAI,CAAC/D,QAAQ,CAAC+D,MAAM,EAAE;UAC5C;QACF;QACA,IAAI,CAAC/D,QAAQ,GAAG+mC,iBAAiB,CAAC/mC,QAAQ,CAAC;QAC3C,IAAI,CAAC,IAAI,CAACA,QAAQ,CAACoR,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK,IAAI,CAACoe,QAAQ,CAAC,EAAE;UAC1D,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACrvB,QAAQ,CAAC,CAAC,CAAC,EAAEiR,EAAE,IAAI,EAAE;QAC5C;MACF,CAAC,CAAC;IACJ,CAAC;IACD,MAAM/Q,eAAeA,CAAC8/B,OAAO,GAAG,CAAC,CAAC,EAAE;MAClC,IAAI,CAAC0H,YAAY,CAAC,CAAC;MACnB,MAAM3oC,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,MAAM8oC,aAAa,GAAG5oC,OAAO,CAACG,MAAM;MACpC,MAAM2H,KAAK,GAAGiF,OAAO,CAACk0B,OAAO,CAACn5B,KAAK,CAAC;MACpC,IAAI,CAAC8gC,aAAa,EAAE;QAClB,IAAI,CAACpQ,aAAa,CAAC,CAAC;QACpB,OAAO,EAAE;MACX;MACA,IAAI,CAAC1wB,KAAK,IACL,IAAI,CAAC7G,QAAQ,CAAC+D,MAAM,IACpB,IAAI,CAACujC,eAAe,KAAKK,aAAa,IACtC1wB,IAAI,CAAC8B,GAAG,CAAC,CAAC,GAAG,IAAI,CAACwuB,QAAQ,GAAGT,gBAAgB,EAChD;QACA,OAAO,IAAI,CAAC9mC,QAAQ;MACtB;MACA,IAAI,IAAI,CAACqnC,cAAc,IAAI,CAACxgC,KAAK,EAAE;QACjC,OAAO,IAAI,CAACwgC,cAAc;MAC5B;MACA,MAAMO,MAAM,GAAG,IAAI,CAACR,aAAa,GAAG,CAAC;MACrC,IAAI,CAACA,aAAa,GAAGQ,MAAM;MAC3B,IAAI,CAACV,OAAO,GAAG,IAAI;MAEnB,IAAI,CAACG,cAAc,GAAG,CAAC,YAAY;QACjC,IAAI,CAACrnC,QAAQ,GAAG+mC,iBAAiB,CAACrmC,kEAAQ,CAAC8hC,kBAAkB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAACxiC,QAAQ,CAACoR,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK,IAAI,CAACoe,QAAQ,CAAC,EAAE;UAC1D,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACrvB,QAAQ,CAAC,CAAC,CAAC,EAAEiR,EAAE,IAAI,EAAE;QAC5C;QACA,IAAI,CAAC,IAAI,CAACjR,QAAQ,CAAC+D,MAAM,IAAI8C,KAAK,EAAE;UAClC,MAAMghC,cAAc,GAAG,MAAMnnC,kEAAQ,CAAC6gC,oBAAoB,CAACoG,aAAa,CAAC;UACzE,IAAIC,MAAM,KAAK,IAAI,CAACR,aAAa,IAAIvoC,0EAAe,CAAC,CAAC,CAACK,MAAM,KAAKyoC,aAAa,EAAE;YAC/E,OAAO,IAAI,CAAC3nC,QAAQ;UACtB;UACA,IAAI,CAACA,QAAQ,GAAG+mC,iBAAiB,CAACc,cAAc,CAAC;UACjD,IAAI,CAACP,eAAe,GAAGK,aAAa;UACpC,IAAI,CAACJ,QAAQ,GAAGtwB,IAAI,CAAC8B,GAAG,CAAC,CAAC;UAC1B,IAAI,CAAC,IAAI,CAAC/Y,QAAQ,CAACoR,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK,IAAI,CAACoe,QAAQ,CAAC,EAAE;YAC1D,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACrvB,QAAQ,CAAC,CAAC,CAAC,EAAEiR,EAAE,IAAI,EAAE;UAC5C;QACF;QACAvK,MAAM,CAACgB,UAAU,CAAC,MAAM;UACtB,IAAIkgC,MAAM,KAAK,IAAI,CAACR,aAAa,IAAIvoC,0EAAe,CAAC,CAAC,CAACK,MAAM,KAAKyoC,aAAa,EAAE;YAC/E;UACF;UACA,MAAMG,MAAM,GAAGpnC,kEAAQ,CAAC4gC,cAAc,CAAC,KAAK,CAAC;UAC7C,IAAIwG,MAAM,CAAC/jC,MAAM,IAAI,CAAC,IAAI,CAAC/D,QAAQ,CAAC+D,MAAM,EAAE;YAC1C,IAAI,CAAC/D,QAAQ,GAAG+mC,iBAAiB,CAACe,MAAM,CAAC;YACzC,IAAI,CAACR,eAAe,GAAGK,aAAa;YACpC,IAAI,CAACJ,QAAQ,GAAGtwB,IAAI,CAAC8B,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC/Y,QAAQ,CAACoR,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK,IAAI,CAACoe,QAAQ,CAAC,EAAE;cAC1D,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACrvB,QAAQ,CAAC,CAAC,CAAC,EAAEiR,EAAE,IAAI,EAAE;YAC5C;UACF;QACF,CAAC,EAAE,IAAI,CAAC;QACR,OAAO,IAAI,CAACjR,QAAQ;MACtB,CAAC,EAAE,CAAC;MAEJ,IAAI;QACF,OAAO,MAAM,IAAI,CAACqnC,cAAc;MAClC,CAAC,SAAS;QACR,IAAIO,MAAM,KAAK,IAAI,CAACR,aAAa,EAAE;UACjC,IAAI,CAACF,OAAO,GAAG,KAAK;UACpB,IAAI,CAACG,cAAc,GAAG,IAAI;QAC5B;MACF;IACF,CAAC;IACD,MAAMpjB,UAAUA,CAACuG,OAAO,EAAE;MACxB,MAAMzrB,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,MAAM6E,KAAK,GAAGqB,MAAM,CAACylB,OAAO,IAAI,EAAE,CAAC,CAACre,IAAI,CAAC,CAAC;MAC1C,IAAI,CAACyJ,WAAW,GAAG,EAAE;MACrB,IAAI,CAACmV,UAAU,GAAG,EAAE;MACpB,IAAI,CAAChsB,OAAO,CAACG,MAAM,EAAE;QACnB,IAAI,CAAC0W,WAAW,GAAG,MAAM;QACzB,OAAO,KAAK;MACd;MACA,IAAI,CAAClS,KAAK,EAAE;QACV,IAAI,CAACkS,WAAW,GAAG,iBAAiB;QACpC,OAAO,KAAK;MACd;MAEA,IAAI,CAACsxB,OAAO,GAAG,IAAI;MACnB,IAAI;QACF,MAAM71B,OAAO,GAAG,MAAM3Q,kEAAQ,CAACujB,UAAU,CAACllB,OAAO,CAACG,MAAM,EAAEwE,KAAK,EAAE,OAAO,CAAC;QACzE,IAAI2N,OAAO,EAAE;UACX,IAAI,CAACrR,QAAQ,GAAG+mC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC/mC,QAAQ,EAAEqR,OAAO,CAAC,CAAC;UAC9D,IAAI,CAACge,QAAQ,GAAGhe,OAAO,CAACJ,EAAE;QAC5B;QACA,IAAI,CAAC8Z,UAAU,GAAG,QAAQ;QAC1B,MAAM,IAAI,CAAC7qB,eAAe,CAAC;UAAE2G,KAAK,EAAE;QAAK,CAAC,CAAC;QAC3C,OAAO,IAAI;MACb,CAAC,CAAC,OAAOd,KAAK,EAAE;QACd,IAAI,CAAC6P,WAAW,GAAG7P,KAAK,CAACC,OAAO,IAAI,SAAS;QAC7C,OAAO,KAAK;MACd,CAAC,SAAS;QACR,IAAI,CAACkhC,OAAO,GAAG,KAAK;MACtB;IACF,CAAC;IACD,MAAMvxB,kBAAkBA,CAACoa,SAAS,EAAEre,KAAK,EAAE;MACzC,MAAM3S,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,MAAMwjC,QAAQ,GAAGt9B,MAAM,CAACgrB,SAAS,IAAI,EAAE,CAAC,CAAC5jB,IAAI,CAAC,CAAC;MAC/C,MAAM47B,SAAS,GAAGhjC,MAAM,CAAC2M,KAAK,IAAI,EAAE,CAAC,CAACvF,IAAI,CAAC,CAAC;MAC5C,IAAI,CAACyJ,WAAW,GAAG,EAAE;MACrB,IAAI,CAACmV,UAAU,GAAG,EAAE;MACpB,IAAI,CAAChsB,OAAO,CAACG,MAAM,EAAE;QACnB,IAAI,CAAC0W,WAAW,GAAG,MAAM;QACzB,OAAO,KAAK;MACd;MACA,IAAI,CAACysB,QAAQ,EAAE;QACb,IAAI,CAACzsB,WAAW,GAAG,SAAS;QAC5B,OAAO,KAAK;MACd;MAEA,IAAI;QACF,MAAMoyB,UAAU,GAAG,MAAMtnC,kEAAQ,CAACiV,kBAAkB,CAAC5W,OAAO,CAACG,MAAM,EAAEmjC,QAAQ,EAAE0F,SAAS,CAAC;QACzF,IAAI,CAAC/nC,QAAQ,GAAG+mC,iBAAiB,CAAC,IAAI,CAAC/mC,QAAQ,CAAC0S,GAAG,CAACvO,IAAI,IAAI;UAC1D,IAAIA,IAAI,CAACmN,GAAG,KAAK+wB,QAAQ,IAAIl+B,IAAI,CAAC8M,EAAE,KAAKoxB,QAAQ,EAAE;YACjD,OAAOl+B,IAAI;UACb;UACA,MAAMsN,OAAO,GAAG;YACd,IAAItN,IAAI,CAACsN,OAAO,IAAI,CAAC,CAAC,CAAC;YACvBud,WAAW,EAAEgZ;UACf,CAAC;UACD,MAAM/Y,SAAS,GAAG;YAChB,IAAI9qB,IAAI,CAAC8qB,SAAS,IAAI,CAAC,CAAC,CAAC;YACzBvd,KAAK,EAAEs2B;UACT,CAAC;UACD,MAAMz6B,KAAK,GAAGy6B,UAAU,IAAIv2B,OAAO,CAACxJ,WAAW,IAAIwJ,OAAO,CAACvF,IAAI,IAAI/H,IAAI,CAACmN,GAAG;UAC3E,OAAO;YACL,GAAGnN,IAAI;YACPoJ,KAAK;YACLsE,UAAU,EAAEtE,KAAK,CAACvI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;YAC3CyM,KAAK,EAAEs2B,UAAU;YACjB/Y,SAAS;YACTxd;UACF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC81B,QAAQ,GAAGtwB,IAAI,CAAC8B,GAAG,CAAC,CAAC;QAC1B,IAAI,CAACgS,UAAU,GAAG,QAAQ;QAC1B,OAAO,IAAI;MACb,CAAC,CAAC,OAAOhlB,KAAK,EAAE;QACd,IAAI,CAAC6P,WAAW,GAAG7P,KAAK,CAACC,OAAO,IAAI,SAAS;QAC7C,OAAO,KAAK;MACd;IACF,CAAC;IACDuxB,aAAaA,CAAA,EAAG;MACd,IAAI,CAAC6P,aAAa,IAAI,CAAC;MACvB,IAAI,CAACpnC,QAAQ,GAAG,EAAE;MAClB,IAAI,CAACqvB,QAAQ,GAAG,EAAE;MAClB,IAAI,CAAC6X,OAAO,GAAG,KAAK;MACpB,IAAI,CAACG,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACC,eAAe,GAAG,EAAE;MACzB,IAAI,CAACC,QAAQ,GAAG,CAAC;MACjB,IAAI,CAAC3xB,WAAW,GAAG,EAAE;MACrB,IAAI,CAACmV,UAAU,GAAG,EAAE;IACtB,CAAC;IACDkd,gBAAgBA,CAACh3B,EAAE,EAAE;MACnB,IAAI,CAACoe,QAAQ,GAAGpe,EAAE;IACpB,CAAC;IACDse,QAAQA,CAACle,OAAO,EAAE;MAChB,IAAI,CAACA,OAAO,EAAE;QACZ;MACF;MACA,MAAMrS,aAAa,GAAGF,oFAAoB,CAAC,CAAC;MAC5C,MAAMiB,UAAU,GAAGF,+EAAkB,CAAC,CAAC;MACvC,MAAM2R,YAAY,GAAG9Q,kEAAQ,CAAC+hC,wBAAwB,CAACpxB,OAAO,CAACC,GAAG,EAAED,OAAO,CAAC;MAC5ErS,aAAa,CAAC+W,kBAAkB,CAACvE,YAAY,CAAC;MAC9CxS,aAAa,CAACqrB,qBAAqB,CAAC7Y,YAAY,CAACP,EAAE,CAAC;MACpDlR,UAAU,CAACqqB,YAAY,CAAC,CAAC;IAC3B;EACF;AACF,CAAC,CAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxOkC;AACW;AACV;AACc;AACsB;AAEzE,MAAM8d,8BAA8B,GAAG,mCAAmC;AAC1E,MAAMC,2BAA2B,GAAG,iCAAiC;AACrE,MAAMC,2BAA2B,GAAG,IAAIrb,GAAG,CAAC,CAAC;AAE7C,SAASsb,+BAA+BA,CAACrF,OAAO,EAAE;EAChD,MAAM7hB,SAAS,GAAGpc,MAAM,CAACi+B,OAAO,EAAE7hB,SAAS,IAAI,EAAE,CAAC;EAClD,IAAI,CAACA,SAAS,EAAE;IACd,OAAO,KAAK;EACd;EACA,MAAMtd,GAAG,GAAG,GAAGm/B,OAAO,EAAErlB,IAAI,IAAI,SAAS,IAAIwD,SAAS,EAAE;EACxD,MAAMpI,GAAG,GAAG9B,IAAI,CAAC8B,GAAG,CAAC,CAAC;EACtB,MAAMuvB,UAAU,GAAG9gC,MAAM,CAAC4gC,2BAA2B,CAACz8B,GAAG,CAAC9H,GAAG,CAAC,IAAI,CAAC,CAAC;EACpEukC,2BAA2B,CAAC96B,GAAG,CAACzJ,GAAG,EAAEkV,GAAG,CAAC;EACzC,IAAIqvB,2BAA2B,CAAC7rB,IAAI,GAAG,GAAG,EAAE;IAC1C6rB,2BAA2B,CAACvtB,OAAO,CAAC,CAAC0tB,MAAM,EAAEC,OAAO,KAAK;MACvD,IAAIzvB,GAAG,GAAGwvB,MAAM,GAAG,KAAK,EAAE;QACxBH,2BAA2B,CAAC/vB,MAAM,CAACmwB,OAAO,CAAC;MAC7C;IACF,CAAC,CAAC;EACJ;EACA,OAAOzvB,GAAG,GAAGuvB,UAAU,GAAG,IAAI;AAChC;AAEA,SAAS3M,gBAAgBA,CAACC,OAAO,EAAE;EACjC,MAAM78B,OAAO,GAAGF,0EAAe,CAAC,CAAC;EACjC,MAAMg9B,KAAK,GAAG,GAAGp7B,wDAAS,CAACiO,SAAS,IAAI,EAAE,IAAI3P,OAAO,CAACG,MAAM,IAAI,WAAW,EAAE;EAC7E,OAAO,GAAG08B,OAAO,IAAIE,kBAAkB,CAACD,KAAK,CAAC,EAAE;AAClD;AAEA,SAAS4M,oBAAoBA,CAAA,EAAG;EAC9B,IAAI;IACF,OAAOj6B,IAAI,CAACI,KAAK,CAACwtB,YAAY,CAACvtB,OAAO,CAAC8sB,gBAAgB,CAACwM,2BAA2B,CAAC,CAAC,IAAI,IAAI,CAAC;EAChG,CAAC,CAAC,OAAOpiC,KAAK,EAAE;IACd,OAAO,EAAE;EACX;AACF;AAEA,SAAS2iC,qBAAqBA,CAAC/mB,QAAQ,EAAE;EACvCya,YAAY,CAAC7tB,OAAO,CAACotB,gBAAgB,CAACwM,2BAA2B,CAAC,EAAE35B,IAAI,CAACC,SAAS,CAACkT,QAAQ,CAAC,CAAC;AAC/F;AAEA,SAASgnB,sBAAsBA,CAAA,EAAG;EAChC,IAAI;IACF,OAAOn6B,IAAI,CAACI,KAAK,CAACwtB,YAAY,CAACvtB,OAAO,CAAC8sB,gBAAgB,CAACuM,8BAA8B,CAAC,CAAC,IAAI,IAAI,CAAC;EACnG,CAAC,CAAC,OAAOniC,KAAK,EAAE;IACd,OAAO,EAAE;EACX;AACF;AAEA,SAAS6iC,uBAAuBA,CAAC5pC,aAAa,EAAE;EAC9Co9B,YAAY,CAAC7tB,OAAO,CAACotB,gBAAgB,CAACuM,8BAA8B,CAAC,EAAE15B,IAAI,CAACC,SAAS,CAACzP,aAAa,CAAC,CAAC;AACvG;AAEA,SAAS+8B,QAAQA,CAAA,EAAG;EAClB,IAAIr1B,MAAM,CAACs1B,MAAM,IAAIt1B,MAAM,CAACs1B,MAAM,CAACC,UAAU,EAAE;IAC7C,OAAOv1B,MAAM,CAACs1B,MAAM,CAACC,UAAU,CAAC,CAAC,CAACC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;EACvD;EACA,OAAO,GAAGjlB,IAAI,CAAC8B,GAAG,CAAC,CAAC,GAAG1R,IAAI,CAAC+B,MAAM,CAAC,CAAC,CAAC6D,QAAQ,CAAC,EAAE,CAAC,CAACjI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC9D;AAEA,SAASuc,UAAUA,CAACvb,OAAO,EAAE;EAC3B,OAAOA,OAAO,CAACiL,EAAE,IAAIjL,OAAO,CAACsc,UAAU;AACzC;AAEA,SAASumB,gBAAgBA,CAAC7iC,OAAO,EAAE;EACjC,OAAOjB,MAAM,CAACiB,OAAO,EAAEsc,UAAU,IAAItc,OAAO,EAAEiL,EAAE,IAAI,EAAE,CAAC;AACzD;AAEA,SAAS63B,wBAAwBA,CAAC9iC,OAAO,EAAE;EACzC,OAAOwB,MAAM,CAACxB,OAAO,EAAEy6B,iBAAiB,IAAIz6B,OAAO,EAAEw6B,QAAQ,IAAIx6B,OAAO,EAAEi4B,gBAAgB,IAAIj4B,OAAO,EAAEmO,SAAS,IAAI,CAAC,CAAC;AACxH;AAEA,SAAS40B,kBAAkBA,CAACn2B,IAAI,EAAEC,KAAK,EAAE;EACvC,IAAID,IAAI,KAAKC,KAAK,EAAE;IAClB,OAAO,IAAI;EACb;EACA,IAAI;IACF,OAAOrE,IAAI,CAACC,SAAS,CAACmE,IAAI,CAAC,KAAKpE,IAAI,CAACC,SAAS,CAACoE,KAAK,CAAC;EACvD,CAAC,CAAC,OAAO9M,KAAK,EAAE;IACd,OAAO,KAAK;EACd;AACF;AAEA,SAASwa,iBAAiBA,CAACva,OAAO,EAAE;EAClC,OAAO8F,OAAO,CAAC9F,OAAO,EAAE+c,QAAQ,CAAC,IAAI/c,OAAO,EAAEiD,MAAM,KAAK,UAAU;AACrE;AAEA,SAAS+/B,eAAeA,CAAChjC,OAAO,EAAE;EAChC,MAAM8U,UAAU,GAAG9U,OAAO,EAAE8U,UAAU;EACtC,IAAI,CAACA,UAAU,EAAE;IACf,OAAO,EAAE;EACX;EACA,IAAIA,UAAU,CAAC/I,IAAI,KAAK,OAAO,EAAE;IAC/B,OAAO,MAAM;EACf;EACA,OAAO,QAAQ+I,UAAU,CAAC5O,IAAI,IAAI,IAAI,EAAE;AAC1C;AAEA,SAAS+8B,oBAAoBA,CAAC5/B,IAAI,EAAErD,OAAO,GAAG,CAAC,CAAC,EAAE;EAChD,MAAMtC,KAAK,GAAGqB,MAAM,CAACsE,IAAI,IAAI,EAAE,CAAC,CAACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC2D,IAAI,CAAC,CAAC;EAC5D,MAAMqW,WAAW,GAAGhb,MAAM,CAACxB,OAAO,EAAEwc,WAAW,IAAI,CAAC,CAAC;EACrD,IAAI,CAAC9e,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EACA,IAAI8e,WAAW,KAAK,CAAC,IAAI9e,KAAK,KAAK,aAAa,EAAE;IAChD,OAAO,EAAE;EACX;EACA,IAAI,CAAC8e,WAAW,KAAK,CAAC,IAAIxc,OAAO,EAAE+L,IAAI,KAAK,OAAO,MAAMrO,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,IAAI,CAAC,EAAE;IAC5F,OAAO,EAAE;EACX;EAEA,OAAOA,KAAK;AACd;AAEA,SAASwlC,kBAAkBA,CAACljC,OAAO,EAAE;EACnC,IAAIua,iBAAiB,CAACva,OAAO,CAAC,EAAE;IAC9B,OAAO,IAAIA,OAAO,EAAE+iB,YAAY,IAAI,KAAK,GAAG;EAC9C;EACA,MAAM1f,IAAI,GAAG4/B,oBAAoB,CAACjjC,OAAO,EAAEqD,IAAI,EAAErD,OAAO,CAAC;EACzD,OAAOqD,IAAI,IAAI2/B,eAAe,CAAChjC,OAAO,CAAC;AACzC;AAEA,SAASmjC,oBAAoBA,CAAC33B,YAAY,EAAE;EAC1C,IAAI,CAACA,YAAY,EAAE;IACjB,OAAOA,YAAY;EACrB;EACA,OAAO;IACL,GAAGA,YAAY;IACfqZ,QAAQ,EAAEoe,oBAAoB,CAACz3B,YAAY,CAACqZ,QAAQ,EAAErZ,YAAY;EACpE,CAAC;AACH;AAEA,SAAS43B,SAASA,CAAC1lC,KAAK,EAAE;EACxB,IAAI;IACF,MAAMwJ,GAAG,GAAG,IAAIF,GAAG,CAACjI,MAAM,CAACrB,KAAK,IAAI,EAAE,CAAC,CAACyI,IAAI,CAAC,CAAC,CAAC;IAC/C,OAAOe,GAAG,CAACL,QAAQ,KAAK,OAAO,IAAIK,GAAG,CAACL,QAAQ,KAAK,QAAQ;EAC9D,CAAC,CAAC,OAAO9G,KAAK,EAAE;IACd,OAAO,KAAK;EACd;AACF;AAEA,SAASsjC,eAAeA,CAACn8B,GAAG,EAAEixB,QAAQ,GAAG,IAAI,EAAE;EAC7C,IAAI;IACF,MAAM2F,IAAI,GAAG,IAAI92B,GAAG,CAACE,GAAG,CAAC,CAACo8B,QAAQ;IAClC,MAAMp9B,IAAI,GAAGq9B,kBAAkB,CAACzF,IAAI,CAAC0F,KAAK,CAAC,GAAG,CAAC,CAACtlC,MAAM,CAAC4H,OAAO,CAAC,CAAC29B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,OAAOv9B,IAAI,IAAIiyB,QAAQ;EACzB,CAAC,CAAC,OAAOp4B,KAAK,EAAE;IACd,OAAOo4B,QAAQ;EACjB;AACF;AAEA,SAASuL,0BAA0BA,CAAC1jC,OAAO,EAAE;EAC3C,IAAI,CAACA,OAAO,IAAIA,OAAO,CAAC8U,UAAU,EAAE;IAClC,OAAO9U,OAAO;EAChB;EAEA,MAAMwc,WAAW,GAAGhb,MAAM,CAACxB,OAAO,CAACwc,WAAW,IAAI,CAAC,CAAC;EACpD,MAAMnZ,IAAI,GAAGtE,MAAM,CAACiB,OAAO,CAACqD,IAAI,IAAI,EAAE,CAAC,CAAC8C,IAAI,CAAC,CAAC;EAC9C,IAAI,CAACqW,WAAW,KAAK,CAAC,IAAIxc,OAAO,CAAC+L,IAAI,KAAK,OAAO,KAAKq3B,SAAS,CAAC//B,IAAI,CAAC,EAAE;IACtE,OAAO;MACL,GAAGrD,OAAO;MACV+L,IAAI,EAAE,OAAO;MACb1I,IAAI,EAAE,EAAE;MACRyR,UAAU,EAAE;QACV/I,IAAI,EAAE,OAAO;QACb7E,GAAG,EAAE7D,IAAI;QACT6C,IAAI,EAAEm9B,eAAe,CAAChgC,IAAI,EAAE,IAAI,CAAC;QACjC63B,IAAI,EAAE,SAAS;QACf3kB,IAAI,EAAE;MACR;IACF,CAAC;EACH;EAEA,OAAOvW,OAAO;AAChB;AAEA,SAAS2jC,WAAWA,CAAC3jC,OAAO,EAAE;EAC5B,MAAMqD,IAAI,GAAG6/B,kBAAkB,CAACljC,OAAO,CAAC;EACxC,OAAOqD,IAAI,CAACtF,MAAM,GAAG,EAAE,GAAG,GAAGsF,IAAI,CAACrE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAGqE,IAAI;AAC5D;AAEA,eAAeogB,cAAcA,CAACpgB,IAAI,EAAE;EAClC,IAAIsgB,SAAS,CAACC,SAAS,EAAEC,SAAS,EAAE;IAClC,MAAMF,SAAS,CAACC,SAAS,CAACC,SAAS,CAACxgB,IAAI,CAAC;IACzC;EACF;EACA,MAAM+R,OAAO,GAAG3R,QAAQ,CAACC,aAAa,CAAC,UAAU,CAAC;EAClD0R,OAAO,CAAC1X,KAAK,GAAG2F,IAAI;EACpB+R,OAAO,CAACvN,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;EAC5CuN,OAAO,CAAC0O,KAAK,CAACC,QAAQ,GAAG,OAAO;EAChC3O,OAAO,CAAC0O,KAAK,CAAClX,IAAI,GAAG,SAAS;EAC9BnJ,QAAQ,CAAC0d,IAAI,CAACpZ,WAAW,CAACqN,OAAO,CAAC;EAClCA,OAAO,CAAC4O,MAAM,CAAC,CAAC;EAChBvgB,QAAQ,CAACwgB,WAAW,CAAC,MAAM,CAAC;EAC5BxgB,QAAQ,CAAC0d,IAAI,CAAC+C,WAAW,CAAC9O,OAAO,CAAC;AACpC;AAEA,SAASwuB,aAAaA,CAACh3B,IAAI,EAAEC,KAAK,EAAE;EAClC,IAAID,IAAI,CAAC0P,UAAU,IAAIzP,KAAK,CAACyP,UAAU,IAAI1P,IAAI,CAAC0P,UAAU,KAAKzP,KAAK,CAACyP,UAAU,EAAE;IAC/E,OAAO,IAAI;EACb;EACA,IAAI1P,IAAI,CAAC3B,EAAE,IAAI4B,KAAK,CAAC5B,EAAE,IAAI2B,IAAI,CAAC3B,EAAE,KAAK4B,KAAK,CAAC5B,EAAE,EAAE;IAC/C,OAAO,IAAI;EACb;EACA,OAAO2B,IAAI,CAAC0N,SAAS,KAAKzN,KAAK,CAACyN,SAAS,IACpC1N,IAAI,CAACvJ,IAAI,KAAKwJ,KAAK,CAACxJ,IAAI,IACxB,CAACuJ,IAAI,CAACb,IAAI,IAAI,MAAM,OAAOc,KAAK,CAACd,IAAI,IAAI,MAAM,CAAC,IAChD1K,IAAI,CAACitB,GAAG,CAAC9sB,MAAM,CAACoL,IAAI,CAACqrB,gBAAgB,IAAIrrB,IAAI,CAACuB,SAAS,IAAI,CAAC,CAAC,GAAG3M,MAAM,CAACqL,KAAK,CAACorB,gBAAgB,IAAIprB,KAAK,CAACsB,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK;AACtI;AAEA,SAAS01B,eAAeA,CAACloB,QAAQ,EAAE3b,OAAO,EAAE;EAC1C,OAAO2b,QAAQ,CAACpc,IAAI,CAACpB,IAAI,IAAI;IAC3B,IAAIA,IAAI,CAAC8M,EAAE,IAAIjL,OAAO,CAACiL,EAAE,IAAI9M,IAAI,CAAC8M,EAAE,KAAKjL,OAAO,CAACiL,EAAE,EAAE;MACnD,OAAO,IAAI;IACb;IACA,OAAO9M,IAAI,CAACme,UAAU,IAAItc,OAAO,CAACsc,UAAU,IAAIne,IAAI,CAACme,UAAU,KAAKtc,OAAO,CAACsc,UAAU;EACxF,CAAC,CAAC;AACJ;AAEA,SAASsiB,uBAAuBA,CAAA,EAAG;EACjC,OAAOlkC,QAAQ,CAACkkC,uBAAuB,GAAGlkC,QAAQ,CAACkkC,uBAAuB,CAAC,CAAC,GAAG,IAAI;AACrF;AAEA,SAASkF,cAAcA,CAAC9J,OAAO,GAAG,CAAC,CAAC,EAAE;EACpC,IAAI,OAAOv2B,QAAQ,KAAK,WAAW,EAAE;IACnC,OAAO,KAAK;EACd;EACA,IAAIA,QAAQ,CAACsgC,eAAe,KAAK,SAAS,EAAE;IAC1C,OAAO,KAAK;EACd;EACA,IAAI/J,OAAO,CAACgK,UAAU,EAAE;IACtB,OAAO,IAAI;EACb;EACA,OAAO,IAAI;AACb;AAEA,SAASC,aAAaA,CAAA,EAAG;EACvB,OAAO,OAAOxgC,QAAQ,KAAK,WAAW,IAAIA,QAAQ,CAACsgC,eAAe,KAAK,SAAS;AAClF;AAEA,SAASG,2BAA2BA,CAAA,EAAG;EACrC,MAAMC,UAAU,GAAG3iC,MAAM,CAAC/G,wDAAS,CAAC+5B,cAAc,IAAI,CAAC,CAAC;EACxD,OAAOnzB,IAAI,CAACC,GAAG,CAAC,KAAK,EAAEE,MAAM,CAAC4iC,QAAQ,CAACD,UAAU,CAAC,IAAIA,UAAU,GAAG,CAAC,GAAGA,UAAU,GAAG,KAAK,CAAC;AAC5F;AAEA,SAASE,8BAA8BA,CAAA,EAAG;EACxC,OAAOhjC,IAAI,CAACC,GAAG,CAAC,KAAK,EAAE4iC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D;AAEA,SAASI,oBAAoBA,CAACC,eAAe,EAAEC,cAAc,EAAE;EAC7D,MAAMC,MAAM,GAAG,CAAC,GAAGD,cAAc,CAAC,CAAC93B,GAAG,CAACg3B,0BAA0B,CAAC;EAClEa,eAAe,CAAC1vB,OAAO,CAAC6vB,cAAc,IAAI;IACxCA,cAAc,GAAGhB,0BAA0B,CAACgB,cAAc,CAAC;IAC3D,MAAMv8B,MAAM,GAAGs8B,MAAM,CAACllC,IAAI,CAACS,OAAO,IAAI4jC,aAAa,CAAC5jC,OAAO,EAAE0kC,cAAc,CAAC,CAAC;IAC7E,MAAMC,eAAe,GAAGD,cAAc,CAACzhC,MAAM,KAAK,SAAS,IACtDyhC,cAAc,CAACzhC,MAAM,KAAK,QAAQ,IACjCyhC,cAAc,CAACpqB,SAAS,KAAK,KAAK,IACjCoqB,cAAc,CAACzhC,MAAM,KAAK,MAAM,IAChCgO,IAAI,CAAC8B,GAAG,CAAC,CAAC,GAAGvR,MAAM,CAACkjC,cAAc,CAACv2B,SAAS,IAAI,CAAC,CAAC,GAAG,KAAM;IAClE,IAAI,CAAChG,MAAM,IAAIw8B,eAAe,EAAE;MAC9BF,MAAM,CAACjuB,IAAI,CAACkuB,cAAc,CAAC;IAC7B;EACF,CAAC,CAAC;EAEF,OAAOD,MAAM,CACVvmC,MAAM,CAAC,CAAC8B,OAAO,EAAEkD,KAAK,EAAEyY,QAAQ,KAAK;IACpC,MAAM9d,GAAG,GAAG0d,UAAU,CAACvb,OAAO,CAAC;IAC/B,OAAO2b,QAAQ,CAACwb,SAAS,CAACh5B,IAAI,IAAIod,UAAU,CAACpd,IAAI,CAAC,KAAKN,GAAG,CAAC,KAAKqF,KAAK;EACvE,CAAC,CAAC,CACDyJ,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAKx2B,MAAM,CAACu2B,CAAC,CAACE,gBAAgB,IAAIF,CAAC,CAAC5pB,SAAS,IAAI,CAAC,CAAC,GAAG3M,MAAM,CAACw2B,CAAC,CAACC,gBAAgB,IAAID,CAAC,CAAC7pB,SAAS,IAAI,CAAC,CAAC,CAAC;AACpH;AAEA,SAASy2B,sBAAsBA,CAACC,gBAAgB,EAAEC,YAAY,EAAE;EAC9D,MAAMC,aAAa,GAAG,IAAIhe,GAAG,CAAC,CAAC;EAC/B,CAAC8d,gBAAgB,IAAI,EAAE,EAAEhwB,OAAO,CAAC7U,OAAO,IAAI;IAC1C,MAAMnC,GAAG,GAAGglC,gBAAgB,CAAC7iC,OAAO,CAAC;IACrC,IAAInC,GAAG,EAAE;MACPknC,aAAa,CAACz9B,GAAG,CAACzJ,GAAG,EAAEmC,OAAO,CAAC;IACjC;EACF,CAAC,CAAC;EAEF,OAAO,CAAC8kC,YAAY,IAAI,EAAE,EAAE5mC,MAAM,CAAC8B,OAAO,IAAI;IAC5C,IAAIA,OAAO,CAACsa,SAAS,KAAK,IAAI,EAAE;MAC9B,OAAO,KAAK;IACd;IACA,MAAMkgB,QAAQ,GAAGh5B,MAAM,CAACxB,OAAO,CAACw6B,QAAQ,IAAI,CAAC,CAAC;IAC9C,IAAIA,QAAQ,IAAI,CAAC,EAAE;MACjB,OAAO,KAAK;IACd;IACA,MAAMwK,QAAQ,GAAGD,aAAa,CAACp/B,GAAG,CAACk9B,gBAAgB,CAAC7iC,OAAO,CAAC,CAAC;IAC7D,OAAOglC,QAAQ,IAAIxK,QAAQ,GAAGh5B,MAAM,CAACwjC,QAAQ,CAACxK,QAAQ,IAAI,CAAC,CAAC;EAC9D,CAAC,CAAC;AACJ;AAEA,IAAIyK,wBAAwB,GAAG,IAAI;AAEnC,SAASC,qBAAqBA,CAAA,EAAG;EAC/B,IAAI,OAAOxkC,MAAM,KAAK,WAAW,EAAE;IACjC;EACF;EACA,IAAI;IACF,MAAMykC,YAAY,GAAGzkC,MAAM,CAACykC,YAAY,IAAIzkC,MAAM,CAAC0kC,kBAAkB;IACrE,IAAI,CAACD,YAAY,EAAE;MACjB;IACF;IACAF,wBAAwB,GAAGA,wBAAwB,IAAI,IAAIE,YAAY,CAAC,CAAC;IACzE,IAAIF,wBAAwB,CAACtjB,KAAK,KAAK,WAAW,EAAE;MAClDsjB,wBAAwB,CAACI,MAAM,CAAC,CAAC,CAAC91B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD;IACA,MAAM+1B,UAAU,GAAGL,wBAAwB,CAACM,gBAAgB,CAAC,CAAC;IAC9D,MAAMC,IAAI,GAAGP,wBAAwB,CAACQ,UAAU,CAAC,CAAC;IAClD,MAAMC,OAAO,GAAGT,wBAAwB,CAACU,WAAW;IACpDL,UAAU,CAACv5B,IAAI,GAAG,MAAM;IACxBu5B,UAAU,CAACM,SAAS,CAACC,cAAc,CAAC,GAAG,EAAEH,OAAO,CAAC;IACjDJ,UAAU,CAACM,SAAS,CAACC,cAAc,CAAC,GAAG,EAAEH,OAAO,GAAG,GAAG,CAAC;IACvDF,IAAI,CAACA,IAAI,CAACK,cAAc,CAAC,MAAM,EAAEH,OAAO,CAAC;IACzCF,IAAI,CAACA,IAAI,CAACM,4BAA4B,CAAC,IAAI,EAAEJ,OAAO,GAAG,IAAI,CAAC;IAC5DF,IAAI,CAACA,IAAI,CAACM,4BAA4B,CAAC,MAAM,EAAEJ,OAAO,GAAG,IAAI,CAAC;IAC9DJ,UAAU,CAAChM,OAAO,CAACkM,IAAI,CAAC;IACxBA,IAAI,CAAClM,OAAO,CAAC2L,wBAAwB,CAACc,WAAW,CAAC;IAClDT,UAAU,CAACjwB,KAAK,CAACqwB,OAAO,CAAC;IACzBJ,UAAU,CAAC9E,IAAI,CAACkF,OAAO,GAAG,IAAI,CAAC;EACjC,CAAC,CAAC,OAAO3lC,KAAK,EAAE;IACd;EAAA;AAEJ;AAEO,MAAMjH,oBAAoB,GAAG+nC,6DAAW,CAAC,eAAe,EAAE;EAC/Dlf,KAAK,EAAEA,CAAA,MAAO;IACZ0H,QAAQ,EAAE,EAAE;IACZrwB,aAAa,EAAE,EAAE;IACjBw9B,sBAAsB,EAAE,CAAC,CAAC;IAC1BwP,6BAA6B,EAAE,CAAC,CAAC;IACjC7E,WAAW,EAAE,KAAK;IAClB8E,aAAa,EAAE,KAAK;IACpB/E,OAAO,EAAE,KAAK;IACdgF,SAAS,EAAE,IAAI;IACfC,qBAAqB,EAAE,IAAI;IAC3BC,uBAAuB,EAAE,KAAK;IAC9BC,YAAY,EAAE,KAAK;IACnBC,gCAAgC,EAAE,EAAE;IACpCC,wBAAwB,EAAE,KAAK;IAC/BC,gBAAgB,EAAE,IAAI;IACtBC,mBAAmB,EAAE,CAAC;IACtBC,yBAAyB,EAAE,CAAC,CAAC;IAC7BC,0BAA0B,EAAE,CAAC,CAAC;IAC9BC,gCAAgC,EAAE,CAAC,CAAC;IACpCC,aAAa,EAAE,IAAI;IACnBC,kBAAkB,EAAE,EAAE;IACtBC,cAAc,EAAE,IAAI;IACpBC,WAAW,EAAE,EAAE;IACfC,WAAW,EAAE,EAAE;IACfC,iBAAiB,EAAE,KAAK;IACxBC,oBAAoB,EAAE,KAAK;IAC3BC,kBAAkB,EAAE,EAAE;IACtBl6B,aAAa,EAAE,IAAI;IACnB+O,kBAAkB,EAAE,EAAE;IACtBorB,qBAAqB,EAAE,IAAI;IAC3BjoB,aAAa,EAAE,KAAK;IACpBzC,kBAAkB,EAAE,EAAE;IACtB2qB,gBAAgB,EAAE,EAAE;IACpBC,iBAAiB,EAAE,EAAE;IACrB3gB,YAAY,EAAE,EAAE;IAChBhX,WAAW,EAAE,EAAE;IACf43B,iBAAiB,EAAE;EACrB,CAAC,CAAC;EACFhG,OAAO,EAAE;IACPt4B,kBAAkBA,CAACyY,KAAK,EAAE;MACxB,OAAOA,KAAK,CAAC3oB,aAAa,CAACoS,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK0W,KAAK,CAAC0H,QAAQ,CAAC,IAAI1H,KAAK,CAAC3oB,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI;IACvG,CAAC;IACDyuC,cAAcA,CAAC9lB,KAAK,EAAE;MACpB,OAAOA,KAAK,CAACqkB,6BAA6B,CAACrkB,KAAK,CAAC0H,QAAQ,CAAC,IAAI,EAAE;IAClE,CAAC;IACDqe,WAAWA,CAAC/lB,KAAK,EAAE;MACjB,OAAOA,KAAK,CAAC3oB,aAAa,CAAC2uC,MAAM,CAAC,CAACC,GAAG,EAAEzpC,IAAI,KAAKypC,GAAG,GAAGpmC,MAAM,CAACrD,IAAI,CAACuP,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACDK,yBAAyBA,CAAC4T,KAAK,EAAE;MAC/B,MAAMnW,YAAY,GAAGmW,KAAK,CAAC3oB,aAAa,CAACoS,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK0W,KAAK,CAAC0H,QAAQ,CAAC,IAAI1H,KAAK,CAAC3oB,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI;MACnH,IAAI,CAACwS,YAAY,EAAE;QACjB,OAAO,KAAK;MACd;MACA,IAAIA,YAAY,CAACO,IAAI,KAAK,SAAS,EAAE;QACnC,OAAO,IAAI;MACb;MACA,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAACD,QAAQ,CAACN,YAAY,CAACU,IAAI,IAAIV,YAAY,CAACR,GAAG,EAAEkB,IAAI,IAAI,EAAE,CAAC;IACvF,CAAC;IACD0Q,kBAAkBA,CAAC+E,KAAK,EAAE;MACxB,OAAOA,KAAK,CAAC2lB,gBAAgB,CAAC56B,GAAG,CAAC1M,OAAO,IAAIA,OAAO,CAACnC,GAAG,CAAC;IAC3D,CAAC;IACD4kB,cAAcA,CAACd,KAAK,EAAE;MACpB,OAAOA,KAAK,CAAC2lB,gBAAgB,CAACl8B,IAAI,CAACpL,OAAO,IAAIA,OAAO,CAACnC,GAAG,KAAK8jB,KAAK,CAAC4lB,iBAAiB,CAAC,IACjF5lB,KAAK,CAAC2lB,gBAAgB,CAAC,CAAC,CAAC,IACzB,IAAI;IACX,CAAC;IACDO,gBAAgBA,CAAClmB,KAAK,EAAE;MACtB,MAAMkG,WAAW,GAAG,IAAI1V,GAAG,CAACwP,KAAK,CAAChF,kBAAkB,CAAC;MACrD,OAAO,CAACgF,KAAK,CAACqkB,6BAA6B,CAACrkB,KAAK,CAAC0H,QAAQ,CAAC,IAAI,EAAE,EAC9DnrB,MAAM,CAAC8B,OAAO,IAAI6nB,WAAW,CAACzV,GAAG,CAACywB,gBAAgB,CAAC7iC,OAAO,CAAC,CAAC,CAAC;IAClE;EACF,CAAC;EACDyhC,OAAO,EAAE;IACProC,iBAAiBA,CAAA,EAAG;MAClB,MAAML,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,IAAI,CAAC6oC,YAAY,CAAC,CAAC;MACnB,IAAI,CAACuE,aAAa,GAAG,KAAK;MAC1B,IAAI,CAACltC,OAAO,CAACG,MAAM,EAAE;QACnB,IAAI,CAACG,cAAc,CAAC,CAAC;QACrB;MACF;MACA,IAAI,CAACyuC,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvBnH,4FAAqB,CAACvrB,KAAK,CAACtc,OAAO,CAACG,MAAM,EAAE8jC,OAAO,IAAI,IAAI,CAACgL,0BAA0B,CAAChL,OAAO,CAAC,CAAC;IAClG,CAAC;IACD8K,oBAAoBA,CAAA,EAAG;MACrB,IAAI,CAAC9uC,aAAa,GAAG2pC,sBAAsB,CAAC,CAAC,CAACj2B,GAAG,CAACy2B,oBAAoB,CAAC;MACvE,IAAI,CAACmE,gBAAgB,GAAG7E,oBAAoB,CAAC,CAAC;MAC9C,IAAI,CAAC8E,iBAAiB,GAAG,IAAI,CAACD,gBAAgB,CAAC,CAAC,CAAC,EAAEzpC,GAAG,IAAI,EAAE;MAC5D,IAAI,CAACwrB,QAAQ,GAAG,IAAI,CAACrwB,aAAa,CAAC,CAAC,CAAC,EAAEiS,EAAE,IAAI,EAAE;MAC/C,IAAI,CAACurB,sBAAsB,GAAG,CAAC,CAAC;MAChC,IAAI,CAACwP,6BAA6B,GAAG,CAAC,CAAC;MACvC,IAAI,CAACY,gCAAgC,GAAG,CAAC,CAAC;MAC1C,IAAI,CAACC,aAAa,GAAG,IAAI;MACzB,IAAI,CAACC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACC,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACC,WAAW,GAAG,EAAE;MACrB,IAAI,CAACC,WAAW,GAAG,EAAE;MACrB,IAAI,CAACC,iBAAiB,GAAG,KAAK;MAC9B,IAAI,CAACC,oBAAoB,GAAG,KAAK;MACjC,IAAI,CAACC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACl6B,aAAa,GAAG,IAAI;MACzB,IAAI,CAACkS,aAAa,GAAG,KAAK;MAC1B,IAAI,CAACzC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,IAAI,CAAC0M,QAAQ,EAAE;QACjB,IAAI,CAAC4e,kBAAkB,CAAC;UAAE/3B,gBAAgB,EAAE;QAAK,CAAC,CAAC;MACrD;IACF,CAAC;IACD7W,cAAcA,CAAA,EAAG;MACfqH,MAAM,CAAC0/B,aAAa,CAAC,IAAI,CAAC8F,SAAS,CAAC;MACpCxlC,MAAM,CAAC0/B,aAAa,CAAC,IAAI,CAAC+F,qBAAqB,CAAC;MAChDzlC,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC6lC,gBAAgB,CAAC;MAC1C9lC,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC0mC,qBAAqB,CAAC;MAC/C3mC,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC6mC,iBAAiB,CAAC;MAC3C5G,4FAAqB,CAACJ,IAAI,CAAC,CAAC;MAC5B,IAAI,CAAC0F,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,qBAAqB,GAAG,IAAI;MACjC,IAAI,CAACK,gBAAgB,GAAG,IAAI;MAC5B,IAAI,CAACC,mBAAmB,GAAG,CAAC;MAC5B,IAAI,CAACC,yBAAyB,GAAG,CAAC,CAAC;MACnC,IAAI,CAACW,qBAAqB,GAAG,IAAI;MACjC,IAAI,CAACG,iBAAiB,GAAG,IAAI;MAC7B,IAAI,CAACnB,YAAY,GAAG,KAAK;MACzB,IAAI,CAACE,wBAAwB,GAAG,KAAK;MACrC,IAAI,CAACD,gCAAgC,GAAG,EAAE;MAC1C,IAAI,CAACK,0BAA0B,GAAG,CAAC,CAAC;MACpC,IAAI,CAACtd,QAAQ,GAAG,EAAE;MAClB,IAAI,CAACrwB,aAAa,GAAG,EAAE;MACvB,IAAI,CAACw9B,sBAAsB,GAAG,CAAC,CAAC;MAChC,IAAI,CAACwP,6BAA6B,GAAG,CAAC,CAAC;MACvC,IAAI,CAACY,gCAAgC,GAAG,CAAC,CAAC;MAC1C,IAAI,CAACC,aAAa,GAAG,IAAI;MACzB,IAAI,CAACC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACC,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACC,WAAW,GAAG,EAAE;MACrB,IAAI,CAACC,WAAW,GAAG,EAAE;MACrB,IAAI,CAACC,iBAAiB,GAAG,KAAK;MAC9B,IAAI,CAACC,oBAAoB,GAAG,KAAK;MACjC,IAAI,CAACC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACl6B,aAAa,GAAG,IAAI;MACzB,IAAI,CAAC+O,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACmD,aAAa,GAAG,KAAK;MAC1B,IAAI,CAACzC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAAC2qB,gBAAgB,GAAG,EAAE;MAC1B,IAAI,CAACC,iBAAiB,GAAG,EAAE;MAC3B,IAAI,CAAC3gB,YAAY,GAAG,EAAE;MACtB,IAAI,CAAChX,WAAW,GAAG,EAAE;IACvB,CAAC;IACD8xB,YAAYA,CAAA,EAAG;MACb,IAAI,IAAI,CAACP,WAAW,EAAE;QACpB;MACF;MACA,IAAI,CAACA,WAAW,GAAG,IAAI;MACvBzmC,mEAAQ,CAACkiC,EAAE,CAAC,aAAa,EAAE58B,OAAO,IAAI;QACpC,IAAI,CAACkoC,aAAa,CAACloC,OAAO,CAAC6iB,cAAc,EAAE7iB,OAAO,CAAC;MACrD,CAAC,CAAC;MACFtF,mEAAQ,CAACkiC,EAAE,CAAC,iBAAiB,EAAE58B,OAAO,IAAI;QACxC,IAAI,CAACkoC,aAAa,CAACloC,OAAO,CAAC6iB,cAAc,EAAE7iB,OAAO,CAAC;QACnD,IAAIA,OAAO,CAAC6iB,cAAc,KAAK,IAAI,CAACwG,QAAQ,EAAE;UAC5C,IAAI,CAAC8e,0BAA0B,CAAC;YAAEj4B,gBAAgB,EAAE;UAAK,CAAC,EAAE,GAAG,CAAC;QAClE;MACF,CAAC,CAAC;MACFxV,mEAAQ,CAACkiC,EAAE,CAAC,sBAAsB,EAAE58B,OAAO,IAAI;QAC7C,IAAI,CAACooC,cAAc,CAACpoC,OAAO,CAAC6iB,cAAc,EAAE7iB,OAAO,CAAC;MACtD,CAAC,CAAC;MACFtF,mEAAQ,CAACkiC,EAAE,CAAC,sBAAsB,EAAEjD,mBAAmB,IAAI;QACzD,IAAI,CAACsM,aAAa,GAAG,KAAK;QAC1B,IAAI,CAACoC,wBAAwB,CAAC1O,mBAAmB,CAAC;MACpD,CAAC,CAAC;IACJ,CAAC;IACDtV,qBAAqBA,CAACpZ,EAAE,EAAE;MACxB,IAAI,CAACoe,QAAQ,GAAGpe,EAAE;MAClB,MAAMO,YAAY,GAAG,IAAI,CAACxS,aAAa,CAACoS,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKA,EAAE,CAAC;MACpE,IAAIO,YAAY,EAAE;QAChBA,YAAY,CAACkC,MAAM,GAAG,CAAC;MACzB;MACA,IAAI,CAACu6B,kBAAkB,CAAC;QAAE/3B,gBAAgB,EAAE,IAAI;QAAE8zB,UAAU,EAAE;MAAK,CAAC,CAAC;IACvE,CAAC;IACDsE,QAAQA,CAACjlC,IAAI,EAAE;MACb,MAAMmI,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,IAAI,CAACnI,IAAI,CAAC8C,IAAI,CAAC,CAAC,EAAE;QACjC;MACF;MACA,IAAIzI,KAAK,GAAG2F,IAAI,CAAC8C,IAAI,CAAC,CAAC;MACvB,IAAI,IAAI,CAAC0gC,aAAa,EAAE;QACtB,IAAI,CAACA,aAAa,GAAG,IAAI;MAC3B;MACA,MAAM7mC,OAAO,GAAG;QACdiL,EAAE,EAAE8qB,QAAQ,CAAC,CAAC;QACdlT,cAAc,EAAErX,YAAY,CAACP,EAAE;QAC/BuH,IAAI,EAAE,IAAI;QACV8H,SAAS,EAAE,KAAK;QAChBvO,IAAI,EAAE,MAAM;QACZ1I,IAAI,EAAE3F,KAAK;QACXuF,MAAM,EAAE,SAAS;QACjB2e,cAAc,EAAE,SAAS;QACzBzT,SAAS,EAAE8C,IAAI,CAAC8B,GAAG,CAAC,CAAC;QACrBklB,gBAAgB,EAAEhnB,IAAI,CAAC8B,GAAG,CAAC;MAC7B,CAAC;MACD,IAAI,CAACw1B,oBAAoB,CAAC/8B,YAAY,CAACP,EAAE,EAAEjL,OAAO,CAAC;MACnD,IAAI,CAACkoC,aAAa,CAAC18B,YAAY,CAACP,EAAE,EAAEjL,OAAO,CAAC;MAC5CtF,mEAAQ,CAACigC,eAAe,CAACnvB,YAAY,EAAE9N,KAAK,EAAEsC,OAAO,CAAC;MACtDwL,YAAY,CAACqZ,QAAQ,GAAGnnB,KAAK;MAC7B8N,YAAY,CAACsH,SAAS,GAAG7B,IAAI,CAAC8B,GAAG,CAAC,CAAC;MACnC6vB,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;MAC3C,IAAI,CAACmvC,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAC1C,CAAC;IACDK,cAAcA,CAAC;MAAEz8B,IAAI;MAAEgJ,IAAI;MAAE1R,IAAI,GAAG;IAAG,CAAC,EAAE;MACxC,MAAMmI,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,IAAI,CAACuJ,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAACjJ,QAAQ,CAACC,IAAI,CAAC,EAAE;QAC/D;MACF;MACA,IAAIrO,KAAK,GAAG2F,IAAI,CAAC8C,IAAI,CAAC,CAAC;MACvB,IAAI,IAAI,CAAC0gC,aAAa,EAAE;QACtB,IAAI,CAACA,aAAa,GAAG,IAAI;MAC3B;MACA,MAAM9zB,GAAG,GAAG9B,IAAI,CAAC8B,GAAG,CAAC,CAAC;MACtB,MAAM/S,OAAO,GAAG;QACdiL,EAAE,EAAE8qB,QAAQ,CAAC,CAAC;QACdlT,cAAc,EAAErX,YAAY,CAACP,EAAE;QAC/BuH,IAAI,EAAE,IAAI;QACV6K,UAAU,EAAE7R,YAAY,CAACU,IAAI,IAAIV,YAAY,CAACR,GAAG,EAAEkB,IAAI,IAAI,EAAE;QAC7DoO,SAAS,EAAE,KAAK;QAChBvO,IAAI;QACJ1I,IAAI,EAAE3F,KAAK;QACXoX,UAAU,EAAE;UACV/I,IAAI;UACJ7F,IAAI,EAAE6O,IAAI,CAAC7O,IAAI,KAAK6F,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;UACnDmvB,IAAI,EAAEnmB,IAAI,CAAChJ,IAAI,IAAI,EAAE;UACrBwK,IAAI,EAAExB,IAAI,CAACwB,IAAI,IAAI,CAAC;UACpBrP,GAAG,EAAE6E,IAAI,KAAK,OAAO,GAAG/E,GAAG,CAAC0P,eAAe,CAAC3B,IAAI,CAAC,GAAG;QACtD,CAAC;QACD9R,MAAM,EAAE,SAAS;QACjB2e,cAAc,EAAE,SAAS;QACzBzT,SAAS,EAAE4E,GAAG;QACdklB,gBAAgB,EAAEllB;MACpB,CAAC;MACD,IAAI,CAACw1B,oBAAoB,CAAC/8B,YAAY,CAACP,EAAE,EAAEjL,OAAO,CAAC;MACnD,IAAI,CAACkoC,aAAa,CAAC18B,YAAY,CAACP,EAAE,EAAEjL,OAAO,CAAC;MAC5CtF,mEAAQ,CAACugC,qBAAqB,CAACzvB,YAAY,EAAE;QAAEO,IAAI;QAAEgJ,IAAI;QAAE1R,IAAI,EAAE3F;MAAM,CAAC,EAAEsC,OAAO,CAAC;MAClFwL,YAAY,CAACqZ,QAAQ,GAAGqe,kBAAkB,CAACljC,OAAO,CAAC;MACnDwL,YAAY,CAACsH,SAAS,GAAGC,GAAG;MAC5B6vB,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;MAC3C,IAAI,CAACmvC,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAC1C,CAAC;IACD,MAAMM,sBAAsBA,CAACj9B,YAAY,EAAEnI,IAAI,EAAE;MAC/C,IAAI,CAACmI,YAAY,IAAI,CAACnI,IAAI,CAAC8C,IAAI,CAAC,CAAC,EAAE;QACjC,OAAO,IAAI;MACb;MACA,MAAMzI,KAAK,GAAG2F,IAAI,CAAC8C,IAAI,CAAC,CAAC;MACzB,MAAMnG,OAAO,GAAG;QACdiL,EAAE,EAAE8qB,QAAQ,CAAC,CAAC;QACdlT,cAAc,EAAErX,YAAY,CAACP,EAAE;QAC/BuH,IAAI,EAAE,IAAI;QACV8H,SAAS,EAAE,KAAK;QAChBvO,IAAI,EAAE,MAAM;QACZ1I,IAAI,EAAE3F,KAAK;QACXuF,MAAM,EAAE,SAAS;QACjB2e,cAAc,EAAE,SAAS;QACzBzT,SAAS,EAAE8C,IAAI,CAAC8B,GAAG,CAAC,CAAC;QACrBklB,gBAAgB,EAAEhnB,IAAI,CAAC8B,GAAG,CAAC;MAC7B,CAAC;MACD,IAAI,CAACm1B,aAAa,CAAC18B,YAAY,CAACP,EAAE,EAAEjL,OAAO,CAAC;MAC5C,MAAM86B,WAAW,GAAG,MAAMpgC,mEAAQ,CAACigC,eAAe,CAACnvB,YAAY,EAAE9N,KAAK,EAAEsC,OAAO,CAAC;MAChF,IAAI,CAACooC,cAAc,CAAC58B,YAAY,CAACP,EAAE,EAAE6vB,WAAW,CAAC;MACjD,OAAOA,WAAW;IACpB,CAAC;IACD/qB,kBAAkBA,CAACvE,YAAY,EAAE;MAC/BA,YAAY,GAAG23B,oBAAoB,CAAC33B,YAAY,CAAC;MACjD,MAAMtI,KAAK,GAAG,IAAI,CAAClK,aAAa,CAACm+B,SAAS,CAACh5B,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKO,YAAY,CAACP,EAAE,CAAC;MAC/E,IAAI/H,KAAK,IAAI,CAAC,EAAE;QACd,IAAI,CAAClK,aAAa,CAAC8d,MAAM,CAAC5T,KAAK,EAAE,CAAC,EAAE;UAClC,GAAG,IAAI,CAAClK,aAAa,CAACkK,KAAK,CAAC;UAC5B,GAAGsI;QACL,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAACxS,aAAa,CAAC2hB,OAAO,CAACnP,YAAY,CAAC;MAC1C;MACA,IAAI,CAACy6B,aAAa,GAAG,KAAK;MAC1BrD,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;IAC7C,CAAC;IACD0vC,kBAAkBA,CAAC7lB,cAAc,EAAE;MACjC,IAAI,CAAC7pB,aAAa,GAAG,IAAI,CAACA,aAAa,CAACkF,MAAM,CAACsN,YAAY,IAAIA,YAAY,CAACP,EAAE,KAAK4X,cAAc,CAAC;MAClG,MAAM;QACJ,CAACA,cAAc,GAAG8lB,eAAe;QACjC,GAAGnS;MACL,CAAC,GAAG,IAAI,CAACA,sBAAsB;MAC/B,MAAM;QACJ,CAAC3T,cAAc,GAAG+lB,sBAAsB;QACxC,GAAG5C;MACL,CAAC,GAAG,IAAI,CAACA,6BAA6B;MACtC,MAAM;QACJ,CAACnjB,cAAc,GAAGgmB,yBAAyB;QAC3C,GAAGjC;MACL,CAAC,GAAG,IAAI,CAACA,gCAAgC;MACzC,KAAK+B,eAAe;MACpB,KAAKC,sBAAsB;MAC3B,KAAKC,yBAAyB;MAC9B,IAAI,CAACrS,sBAAsB,GAAGA,sBAAsB;MACpD,IAAI,CAACwP,6BAA6B,GAAGA,6BAA6B;MAClE,IAAI,CAACY,gCAAgC,GAAGA,gCAAgC;MACxE,IAAI,IAAI,CAACvd,QAAQ,KAAKxG,cAAc,EAAE;QACpC,IAAI,CAACwG,QAAQ,GAAG,IAAI,CAACrwB,aAAa,CAAC,CAAC,CAAC,EAAEiS,EAAE,IAAI,EAAE;MACjD;MACA23B,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;MAC3C,IAAI,IAAI,CAACqwB,QAAQ,EAAE;QACjB,IAAI,CAAC4e,kBAAkB,CAAC,CAAC;MAC3B;IACF,CAAC;IACDI,wBAAwBA,CAAC1O,mBAAmB,EAAE;MAC5C,MAAMmP,MAAM,GAAGv2B,KAAK,CAACkW,OAAO,CAACkR,mBAAmB,CAAC,GAAGA,mBAAmB,GAAG,EAAE;MAC5E,IAAI,CAACmP,MAAM,CAAC/qC,MAAM,IAAI,IAAI,CAAC/E,aAAa,CAAC+E,MAAM,EAAE;QAC/C;MACF;MAEA,MAAMgrC,gBAAgB,GAAG,IAAI,CAAC1f,QAAQ;MACtC,MAAMob,MAAM,GAAG,IAAI1d,GAAG,CAAC,CAAC;MACxB,IAAI,CAAC/tB,aAAa,CAAC6b,OAAO,CAACrJ,YAAY,IAAI;QACzCi5B,MAAM,CAACn9B,GAAG,CAACkE,YAAY,CAACP,EAAE,EAAEO,YAAY,CAAC;MAC3C,CAAC,CAAC;MACFs9B,MAAM,CAACj0B,OAAO,CAACrJ,YAAY,IAAI;QAC7B,MAAMkC,MAAM,GAAGlC,YAAY,CAACP,EAAE,KAAK,IAAI,CAACoe,QAAQ,IAAIya,cAAc,CAAC,CAAC,GAAG,CAAC,GAAGtiC,MAAM,CAACgK,YAAY,CAACkC,MAAM,IAAI,CAAC,CAAC;QAC3G+2B,MAAM,CAACn9B,GAAG,CAACkE,YAAY,CAACP,EAAE,EAAE;UAC1B,IAAIw5B,MAAM,CAAC9+B,GAAG,CAAC6F,YAAY,CAACP,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;UACtC,GAAGk4B,oBAAoB,CAAC33B,YAAY,CAAC;UACrCkC;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,MAAMs7B,iBAAiB,GAAGz2B,KAAK,CAACC,IAAI,CAACiyB,MAAM,CAAClc,MAAM,CAAC,CAAC,CAAC,CAClD7b,GAAG,CAACy2B,oBAAoB,CAAC,CACzBx2B,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAKx2B,MAAM,CAACw2B,CAAC,CAACllB,SAAS,IAAI,CAAC,CAAC,GAAGtR,MAAM,CAACu2B,CAAC,CAACjlB,SAAS,IAAI,CAAC,CAAC,CAAC,CACnE9T,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;MAChB,MAAMiqC,oBAAoB,GAAG,CAAClG,kBAAkB,CAAC,IAAI,CAAC/pC,aAAa,EAAEgwC,iBAAiB,CAAC;MACvF,IAAIC,oBAAoB,EAAE;QACxB,IAAI,CAACjwC,aAAa,GAAGgwC,iBAAiB;MACxC;MAEA,IAAI,CAAC,IAAI,CAAChwC,aAAa,CAAC+E,MAAM,EAAE;QAC9B,IAAI,CAACsrB,QAAQ,GAAG,EAAE;QAClB,IAAI,CAACmN,sBAAsB,GAAG,CAAC,CAAC;QAChC,IAAI,CAACwP,6BAA6B,GAAG,CAAC,CAAC;QACvC,IAAI,CAACY,gCAAgC,GAAG,CAAC,CAAC;QAC1ChE,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;QAC3C;MACF;MAEA,IAAI,CAAC,IAAI,CAACA,aAAa,CAACoS,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK,IAAI,CAACoe,QAAQ,CAAC,EAAE;QAC/D,IAAI,CAACA,QAAQ,GAAG,IAAI,CAACrwB,aAAa,CAAC,CAAC,CAAC,CAACiS,EAAE;MAC1C;MACA,IAAIg+B,oBAAoB,EAAE;QACxBrG,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;MAC7C;MACA,IAAI+vC,gBAAgB,KAAK,IAAI,CAAC1f,QAAQ,IAAI,CAAC,IAAI,CAACmN,sBAAsB,CAAC,IAAI,CAACnN,QAAQ,CAAC,EAAE;QACrF,IAAI,CAAC4e,kBAAkB,CAAC,CAAC;MAC3B;IACF,CAAC;IACDC,aAAaA,CAACrlB,cAAc,EAAE7iB,OAAO,EAAE;MACrCA,OAAO,GAAG0jC,0BAA0B,CAAC1jC,OAAO,CAAC;MAC7C,IAAI,CAAC,IAAI,CAACw2B,sBAAsB,CAAC3T,cAAc,CAAC,EAAE;QAChD,IAAI,CAAC2T,sBAAsB,GAAG;UAC5B,GAAG,IAAI,CAACA,sBAAsB;UAC9B,CAAC3T,cAAc,GAAG;QACpB,CAAC;MACH;MACA,IAAI7iB,OAAO,CAACsa,SAAS,KAAK,KAAK,KAAKta,OAAO,CAACiD,MAAM,KAAK,SAAS,IAAIjD,OAAO,CAACiD,MAAM,KAAK,MAAM,CAAC,EAAE;QAC9F,IAAI,CAACimC,qBAAqB,CAACrmB,cAAc,EAAE7iB,OAAO,CAAC;MACrD;MACA,IAAI,CAAC6jC,eAAe,CAAC,IAAI,CAACrN,sBAAsB,CAAC3T,cAAc,CAAC,EAAE7iB,OAAO,CAAC,EAAE;QAC1E,IAAI,CAACw2B,sBAAsB,GAAG;UAC5B,GAAG,IAAI,CAACA,sBAAsB;UAC9B,CAAC3T,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC2T,sBAAsB,CAAC3T,cAAc,CAAC,EAAE7iB,OAAO;QAC5E,CAAC;MACH;MACA,IAAI,CAACmpC,6BAA6B,CAACtmB,cAAc,EAAE7iB,OAAO,CAAC;MAC3D,IAAI,CAACopC,mBAAmB,CAACvmB,cAAc,CAAC;MACxC+f,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;IAC7C,CAAC;IACDqwC,cAAcA,CAACxmB,cAAc,EAAElH,QAAQ,EAAE;MACvC,MAAMib,GAAG,GAAG,IAAIzkB,GAAG,CAACwJ,QAAQ,CAAC6M,OAAO,CAACxoB,OAAO,IAAI,CAACA,OAAO,CAACiL,EAAE,EAAEjL,OAAO,CAACsc,UAAU,CAAC,CAACpe,MAAM,CAAC4H,OAAO,CAAC,CAAC4G,GAAG,CAAC3N,MAAM,CAAC,CAAC,CAAC;MAC9G,MAAMuqC,cAAc,GAAGC,IAAI,IAAI,CAACA,IAAI,IAAI,EAAE,EAAErrC,MAAM,CAAC8B,OAAO,IAAI;QAC5D,OAAO,CAAC,CAACA,OAAO,CAACiL,EAAE,EAAEjL,OAAO,CAACsc,UAAU,CAAC,CAACpe,MAAM,CAAC4H,OAAO,CAAC,CAACvG,IAAI,CAAC0L,EAAE,IAAI2rB,GAAG,CAACxkB,GAAG,CAACrT,MAAM,CAACkM,EAAE,CAAC,CAAC,CAAC;MAC1F,CAAC,CAAC;MACF,IAAI,CAACurB,sBAAsB,GAAG;QAC5B,GAAG,IAAI,CAACA,sBAAsB;QAC9B,CAAC3T,cAAc,GAAGymB,cAAc,CAAC,IAAI,CAAC9S,sBAAsB,CAAC3T,cAAc,CAAC;MAC9E,CAAC;MACD,IAAI,CAACmjB,6BAA6B,GAAG;QACnC,GAAG,IAAI,CAACA,6BAA6B;QACrC,CAACnjB,cAAc,GAAGymB,cAAc,CAAC,IAAI,CAACtD,6BAA6B,CAACnjB,cAAc,CAAC;MACrF,CAAC;MACD,IAAI,CAAC+jB,gCAAgC,GAAG;QACtC,GAAG,IAAI,CAACA,gCAAgC;QACxC,CAAC/jB,cAAc,GAAGymB,cAAc,CAAC,IAAI,CAAC1C,gCAAgC,CAAC/jB,cAAc,CAAC;MACxF,CAAC;MACD,IAAI,CAAClG,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACze,MAAM,CAAC+M,EAAE,IAAI,CAAC2rB,GAAG,CAACxkB,GAAG,CAACrT,MAAM,CAACkM,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IACDu+B,mBAAmBA,CAAC3mB,cAAc,EAAE4mB,aAAa,EAAEC,WAAW,EAAE;MAC9D,MAAMC,IAAI,GAAG,IAAIx3B,GAAG,CAAC,CAACs3B,aAAa,CAACx+B,EAAE,EAAEw+B,aAAa,CAACntB,UAAU,CAAC,CAACpe,MAAM,CAAC4H,OAAO,CAAC,CAAC4G,GAAG,CAAC3N,MAAM,CAAC,CAAC;MAC9F,MAAM6qC,aAAa,GAAGL,IAAI,IAAI,CAACA,IAAI,IAAI,EAAE,EAAE78B,GAAG,CAAC1M,OAAO,IAAI;QACxD,MAAM6pC,OAAO,GAAG,CAAC7pC,OAAO,CAACiL,EAAE,EAAEjL,OAAO,CAACsc,UAAU,CAAC,CAACpe,MAAM,CAAC4H,OAAO,CAAC,CAACvG,IAAI,CAAC0L,EAAE,IAAI0+B,IAAI,CAACv3B,GAAG,CAACrT,MAAM,CAACkM,EAAE,CAAC,CAAC,CAAC;QACjG,OAAO4+B,OAAO,GAAG;UAAE,GAAG7pC,OAAO;UAAE,GAAG0pC;QAAY,CAAC,GAAG1pC,OAAO;MAC3D,CAAC,CAAC;MACF,IAAI,CAACw2B,sBAAsB,GAAG;QAC5B,GAAG,IAAI,CAACA,sBAAsB;QAC9B,CAAC3T,cAAc,GAAG+mB,aAAa,CAAC,IAAI,CAACpT,sBAAsB,CAAC3T,cAAc,CAAC;MAC7E,CAAC;MACD,IAAI,CAACmjB,6BAA6B,GAAG;QACnC,GAAG,IAAI,CAACA,6BAA6B;QACrC,CAACnjB,cAAc,GAAG+mB,aAAa,CAAC,IAAI,CAAC5D,6BAA6B,CAACnjB,cAAc,CAAC;MACpF,CAAC;IACH,CAAC;IACDsmB,6BAA6BA,CAACtmB,cAAc,EAAE7iB,OAAO,EAAE;MACrD,MAAMwL,YAAY,GAAG,IAAI,CAACxS,aAAa,CAACoS,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAK4X,cAAc,CAAC;MAChF,IAAI,CAACrX,YAAY,EAAE;QACjB;MACF;MAEAA,YAAY,CAACqZ,QAAQ,GAAGqe,kBAAkB,CAACljC,OAAO,CAAC,IAAIijC,oBAAoB,CAACz3B,YAAY,CAACqZ,QAAQ,EAAErZ,YAAY,CAAC;MAChHA,YAAY,CAACsH,SAAS,GAAGgwB,wBAAwB,CAAC9iC,OAAO,CAAC,IAAIiR,IAAI,CAAC8B,GAAG,CAAC,CAAC;MACxE,IAAI/S,OAAO,CAACsa,SAAS,KAAK,IAAI,EAAE;QAC9B9O,YAAY,CAACkC,MAAM,GAAGmV,cAAc,KAAK,IAAI,CAACwG,QAAQ,GAAG,CAAC,GAAG7nB,MAAM,CAACgK,YAAY,CAACkC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;MACnG;MACA,IAAI,CAAC1U,aAAa,GAAG,CAAC,GAAG,IAAI,CAACA,aAAa,CAAC,CACzC2T,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAKx2B,MAAM,CAACw2B,CAAC,CAACllB,SAAS,IAAI,CAAC,CAAC,GAAGtR,MAAM,CAACu2B,CAAC,CAACjlB,SAAS,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IACDy1B,oBAAoBA,CAAC1lB,cAAc,EAAE7iB,OAAO,EAAE;MAC5CA,OAAO,GAAG0jC,0BAA0B,CAAC1jC,OAAO,CAAC;MAC7C,MAAM2b,QAAQ,GAAG,IAAI,CAACqqB,6BAA6B,CAACnjB,cAAc,CAAC,IAAI,EAAE;MACzE,IAAI,CAACmjB,6BAA6B,GAAG;QACnC,GAAG,IAAI,CAACA,6BAA6B;QACrC,CAACnjB,cAAc,GAAG,CAAC,GAAGlH,QAAQ,CAACzd,MAAM,CAACC,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKjL,OAAO,CAACiL,EAAE,CAAC,EAAEjL,OAAO,CAAC,CAC5E2M,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAKx2B,MAAM,CAACu2B,CAAC,CAACE,gBAAgB,IAAIF,CAAC,CAAC5pB,SAAS,IAAI,CAAC,CAAC,GAAG3M,MAAM,CAACw2B,CAAC,CAACC,gBAAgB,IAAID,CAAC,CAAC7pB,SAAS,IAAI,CAAC,CAAC;MACnH,CAAC;IACH,CAAC;IACDi6B,cAAcA,CAACvlB,cAAc,EAAE7iB,OAAO,EAAE;MACtCA,OAAO,GAAG0jC,0BAA0B,CAAC1jC,OAAO,CAAC;MAC7C,IAAI,CAAC,IAAI,CAACw2B,sBAAsB,CAAC3T,cAAc,CAAC,EAAE;QAChD,IAAI,CAAC2T,sBAAsB,GAAG;UAC5B,GAAG,IAAI,CAACA,sBAAsB;UAC9B,CAAC3T,cAAc,GAAG;QACpB,CAAC;MACH;MACA,IAAI7iB,OAAO,CAACsa,SAAS,KAAK,KAAK,KAAKta,OAAO,CAACiD,MAAM,KAAK,SAAS,IAAIjD,OAAO,CAACiD,MAAM,KAAK,MAAM,IAAIjD,OAAO,CAACiD,MAAM,KAAK,QAAQ,CAAC,EAAE;QAC7H,IAAI,CAACimC,qBAAqB,CAACrmB,cAAc,EAAE7iB,OAAO,CAAC;MACrD;MACA,MAAMkD,KAAK,GAAG,IAAI,CAACszB,sBAAsB,CAAC3T,cAAc,CAAC,CAACsU,SAAS,CAACh5B,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKjL,OAAO,CAACiL,EAAE,CAAC;MACnG,IAAI/H,KAAK,IAAI,CAAC,EAAE;QACd,MAAMyY,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC6a,sBAAsB,CAAC3T,cAAc,CAAC,CAAC;QACjElH,QAAQ,CAAC7E,MAAM,CAAC5T,KAAK,EAAE,CAAC,EAAElD,OAAO,CAAC;QAClC,IAAI,CAACw2B,sBAAsB,GAAG;UAC5B,GAAG,IAAI,CAACA,sBAAsB;UAC9B,CAAC3T,cAAc,GAAGlH;QACpB,CAAC;MACH,CAAC,MAAM;QACL,IAAI,CAAC6a,sBAAsB,GAAG;UAC5B,GAAG,IAAI,CAACA,sBAAsB;UAC9B,CAAC3T,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC2T,sBAAsB,CAAC3T,cAAc,CAAC,EAAE7iB,OAAO;QAC5E,CAAC;MACH;MACA,IAAI,CAACopC,mBAAmB,CAACvmB,cAAc,CAAC;IAC1C,CAAC;IACDumB,mBAAmBA,CAACvmB,cAAc,EAAE;MAClC,MAAM0hB,eAAe,GAAG,IAAI,CAACyB,6BAA6B,CAACnjB,cAAc,CAAC,IAAI,EAAE;MAChF,MAAMiiB,YAAY,GAAGR,oBAAoB,CACvC,IAAI,CAACsC,gCAAgC,CAAC/jB,cAAc,CAAC,IAAI,EAAE,EAC3D,IAAI,CAAC2T,sBAAsB,CAAC3T,cAAc,CAAC,IAAI,EACjD,CAAC;MACD,IAAI,CAACkgB,kBAAkB,CAACwB,eAAe,EAAEO,YAAY,CAAC,EAAE;QACtD,IAAI,CAACkB,6BAA6B,GAAG;UACnC,GAAG,IAAI,CAACA,6BAA6B;UACrC,CAACnjB,cAAc,GAAGiiB;QACpB,CAAC;MACH;IACF,CAAC;IACDoE,qBAAqBA,CAACrmB,cAAc,EAAE7iB,OAAO,EAAE;MAC7C,IAAI,CAAC,IAAI,CAAC4mC,gCAAgC,CAAC/jB,cAAc,CAAC,EAAE;QAC1D,IAAI,CAAC+jB,gCAAgC,GAAG;UACtC,GAAG,IAAI,CAACA,gCAAgC;UACxC,CAAC/jB,cAAc,GAAG;QACpB,CAAC;MACH;MACA,MAAMlH,QAAQ,GAAG,IAAI,CAACirB,gCAAgC,CAAC/jB,cAAc,CAAC;MACtE,MAAM3f,KAAK,GAAGyY,QAAQ,CAACwb,SAAS,CAACh5B,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKjL,OAAO,CAACiL,EAAE,CAAC;MAChE,IAAI65B,YAAY;MAChB,IAAI5hC,KAAK,IAAI,CAAC,EAAE;QACd4hC,YAAY,GAAG,CAAC,GAAGnpB,QAAQ,CAAC;QAC5BmpB,YAAY,CAAChuB,MAAM,CAAC5T,KAAK,EAAE,CAAC,EAAElD,OAAO,CAAC;MACxC,CAAC,MAAM;QACL8kC,YAAY,GAAG,CAAC,GAAGnpB,QAAQ,EAAE3b,OAAO,CAAC;MACvC;MACA,IAAI,CAAC4mC,gCAAgC,GAAG;QACtC,GAAG,IAAI,CAACA,gCAAgC;QACxC,CAAC/jB,cAAc,GAAGiiB;MACpB,CAAC;IACH,CAAC;IACDgF,uBAAuBA,CAACjnB,cAAc,EAAE2hB,cAAc,EAAE;MACtD,MAAM7oB,QAAQ,GAAG,IAAI,CAACirB,gCAAgC,CAAC/jB,cAAc,CAAC,IAAI,EAAE;MAC5E,IAAI,CAAClH,QAAQ,CAAC5d,MAAM,EAAE;QACpB;MACF;MACA,IAAI,CAAC6oC,gCAAgC,GAAG;QACtC,GAAG,IAAI,CAACA,gCAAgC;QACxC,CAAC/jB,cAAc,GAAGlH,QAAQ,CAACzd,MAAM,CAAC8B,OAAO,IAAI;UAC7C,MAAM+pC,aAAa,GAAGvF,cAAc,CAACjlC,IAAI,CAACyqC,aAAa,IAAI;YACzD,OAAOA,aAAa,CAAC/+B,EAAE,KAAKjL,OAAO,CAACiL,EAAE,IAAI24B,aAAa,CAACoG,aAAa,EAAEhqC,OAAO,CAAC;UACjF,CAAC,CAAC;UACF,IAAI+pC,aAAa,IAAI/pC,OAAO,CAACiD,MAAM,KAAK,QAAQ,EAAE;YAChD,OAAO,KAAK;UACd;UACE,OAAOgO,IAAI,CAAC8B,GAAG,CAAC,CAAC,GAAGvR,MAAM,CAACxB,OAAO,CAACi4B,gBAAgB,IAAIj4B,OAAO,CAACmO,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,IAAInO,OAAO,CAACiD,MAAM,KAAK,QAAQ;QACvH,CAAC;MACH,CAAC;IACH,CAAC;IACDglC,kBAAkBA,CAACjO,OAAO,GAAG,CAAC,CAAC,EAAE;MAC/B,MAAMiQ,WAAW,GAAG,OAAOjQ,OAAO,KAAK,SAAS,GAC5C;QAAE9pB,gBAAgB,EAAE8pB;MAAQ,CAAC,GAC7BA,OAAO;MACX,MAAMxuB,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,EAAE;QACjB;MACF;MACA,IAAI,CAAC01B,OAAO,GAAG,IAAI;MACnB,MAAMvlB,QAAQ,GAAGjhB,mEAAQ,CAACo/B,WAAW,CAACtuB,YAAY,EAAE,EAAE,CAAC;MACvD,IAAI,CAACs+B,uBAAuB,CAACt+B,YAAY,CAACP,EAAE,EAAE0Q,QAAQ,CAAC;MACvD,MAAMmpB,YAAY,GAAGR,oBAAoB,CAAC,IAAI,CAAC9N,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,IAAI,EAAE,EAAE0Q,QAAQ,CAAC;MACvG,IAAI,CAAConB,kBAAkB,CAAC,IAAI,CAACvM,sBAAsB,CAAChrB,YAAY,CAACP,EAAE,CAAC,IAAI,EAAE,EAAE65B,YAAY,CAAC,EAAE;QACzF,IAAI,CAACtO,sBAAsB,GAAG;UAC5B,GAAG,IAAI,CAACA,sBAAsB;UAC9B,CAAChrB,YAAY,CAACP,EAAE,GAAG65B;QACrB,CAAC;MACH;MACA,IAAI,CAACsE,mBAAmB,CAAC59B,YAAY,CAACP,EAAE,CAAC;MACzC,IAAI,CAACi2B,OAAO,GAAG,KAAK;MACpB,IAAI,CAACjxB,kBAAkB,CAACg6B,WAAW,CAAC;IACtC,CAAC;IACD,MAAMh6B,kBAAkBA,CAAC+pB,OAAO,GAAG,CAAC,CAAC,EAAE;MACrC,MAAMxuB,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,EAAE;QACjB;MACF;MACA,IAAIwuB,OAAO,CAACkQ,cAAc,KAAK,KAAK,IAAI,CAACjG,aAAa,CAAC,CAAC,EAAE;QACxD;MACF;MACA,MAAMkG,gBAAgB,GAAGrkC,OAAO,CAACk0B,OAAO,CAAC9pB,gBAAgB,CAAC;MAC1D,MAAMk6B,mBAAmB,GAAGD,gBAAgB,IAAIrG,cAAc,CAAC;QAAEE,UAAU,EAAEl+B,OAAO,CAACk0B,OAAO,CAACgK,UAAU;MAAE,CAAC,CAAC;MAC3G,MAAMjxB,GAAG,GAAG9B,IAAI,CAAC8B,GAAG,CAAC,CAAC;MACtB,MAAMs3B,kBAAkB,GAAG7oC,MAAM,CAAC,IAAI,CAACmlC,0BAA0B,CAACn7B,YAAY,CAACP,EAAE,CAAC,IAAI,CAAC,CAAC;MACxF,MAAMq/B,kBAAkB,GAAGxG,cAAc,CAAC,CAAC,IAAI/wB,GAAG,GAAGs3B,kBAAkB,IAAI,KAAK;MAChF,MAAMpQ,QAAQ,GAAGmQ,mBAAmB,IAAIE,kBAAkB;MAE1D,IAAI,IAAI,CAACjE,YAAY,EAAE;QACrB,IAAI8D,gBAAgB,EAAE;UACpB,IAAI,CAAC7D,gCAAgC,GAAG96B,YAAY,CAACP,EAAE;QACzD;QACA;MACF;MACA,IAAI,CAACo7B,YAAY,GAAG,IAAI;MACxB,MAAMkE,oBAAoB,GAAG/+B,YAAY,CAACP,EAAE;MAC5C,MAAM45B,gBAAgB,GAAG,IAAI,CAACrO,sBAAsB,CAAC+T,oBAAoB,CAAC,IAAI,EAAE;MAChF,IAAI;QACF,MAAM5uB,QAAQ,GAAG,MAAMjhB,mEAAQ,CAACq/B,mBAAmB,CAACvuB,YAAY,EAAE,EAAE,EAAE;UACpEyuB;QACF,CAAC,CAAC;QACF,IAAIA,QAAQ,EAAE;UACZ,IAAI,CAAC0M,0BAA0B,GAAG;YAChC,GAAG,IAAI,CAACA,0BAA0B;YAClC,CAAC4D,oBAAoB,GAAGt5B,IAAI,CAAC8B,GAAG,CAAC;UACnC,CAAC;QACH;QACA,MAAMy3B,sBAAsB,GAAG5F,sBAAsB,CAACC,gBAAgB,EAAElpB,QAAQ,CAAC;QACjF,IAAI,CAACmuB,uBAAuB,CAACS,oBAAoB,EAAE5uB,QAAQ,CAAC;QAC5D,MAAMmpB,YAAY,GAAGR,oBAAoB,CACvC,IAAI,CAAC9N,sBAAsB,CAAC+T,oBAAoB,CAAC,IAAI,EAAE,EACvD5uB,QACF,CAAC;QACD,IAAI,CAAConB,kBAAkB,CAAC,IAAI,CAACvM,sBAAsB,CAAC+T,oBAAoB,CAAC,IAAI,EAAE,EAAEzF,YAAY,CAAC,EAAE;UAC9F,IAAI,CAACtO,sBAAsB,GAAG;YAC5B,GAAG,IAAI,CAACA,sBAAsB;YAC9B,CAAC+T,oBAAoB,GAAGzF;UAC1B,CAAC;QACH;QACA,IAAI,CAACsE,mBAAmB,CAACmB,oBAAoB,CAAC;QAC9C,IAAIC,sBAAsB,CAACzsC,MAAM,IAAIwsC,oBAAoB,KAAK,IAAI,CAAClhB,QAAQ,EAAE;UAC3E,IAAI,CAAC/E,YAAY,CAACkmB,sBAAsB,CAAC79B,IAAI,CAAC,CAACorB,CAAC,EAAEC,CAAC,KAAK8K,wBAAwB,CAAC9K,CAAC,CAAC,GAAG8K,wBAAwB,CAAC/K,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;UACtHmN,qBAAqB,CAAC,CAAC;QACzB;QACA,MAAMpD,MAAM,GAAGnmB,QAAQ,CAACgsB,MAAM,CAAC,CAAC8C,aAAa,EAAEzqC,OAAO,KAAK;UACzD,IAAI,CAACyqC,aAAa,IAAI3H,wBAAwB,CAAC9iC,OAAO,CAAC,GAAG8iC,wBAAwB,CAAC2H,aAAa,CAAC,EAAE;YACjG,OAAOzqC,OAAO;UAChB;UACA,OAAOyqC,aAAa;QACtB,CAAC,EAAE,IAAI,CAAC;QACR,IAAI3I,MAAM,EAAE;UACV,MAAM4I,YAAY,GAAGxH,kBAAkB,CAACpB,MAAM,CAAC;UAC/C,MAAM6I,aAAa,GAAG7H,wBAAwB,CAAChB,MAAM,CAAC;UACtD,IAAIt2B,YAAY,CAACqZ,QAAQ,KAAK6lB,YAAY,IAAIlpC,MAAM,CAACgK,YAAY,CAACsH,SAAS,IAAI,CAAC,CAAC,KAAK63B,aAAa,EAAE;YACnGn/B,YAAY,CAACqZ,QAAQ,GAAG6lB,YAAY;YACpCl/B,YAAY,CAACsH,SAAS,GAAG63B,aAAa;YACtC/H,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;UAC7C;QACF;MACF,CAAC,CAAC,OAAO+G,KAAK,EAAE;QACd;MAAA,CACD,SAAS;QACR,IAAI,CAACsmC,YAAY,GAAG,KAAK;QACzB,IAAI,IAAI,CAACC,gCAAgC,KAAK,IAAI,CAACjd,QAAQ,IAAIya,cAAc,CAAC,CAAC,EAAE;UAC/E,IAAI,CAACwC,gCAAgC,GAAG,EAAE;UAC1C,IAAI,CAAC6B,0BAA0B,CAAC;YAAEj4B,gBAAgB,EAAE;UAAK,CAAC,EAAE,GAAG,CAAC;QAClE;MACF;IACF,CAAC;IACDi4B,0BAA0BA,CAACnO,OAAO,GAAG,CAAC,CAAC,EAAE73B,KAAK,GAAG,GAAG,EAAE;MACpD,IAAI,CAAC,IAAI,CAACknB,QAAQ,IAAI,CAAC4a,aAAa,CAAC,CAAC,EAAE;QACtC;MACF;MACA,MAAMlxB,GAAG,GAAG9B,IAAI,CAAC8B,GAAG,CAAC,CAAC;MACtB,IAAI,CAAC,IAAI,CAAC0zB,mBAAmB,EAAE;QAC7B,IAAI,CAACA,mBAAmB,GAAG1zB,GAAG;MAChC;MACA,IAAI,CAAC2zB,yBAAyB,GAAG;QAC/B,GAAG,IAAI,CAACA,yBAAyB;QACjCx2B,gBAAgB,EAAEpK,OAAO,CACvB,IAAI,CAAC4gC,yBAAyB,CAACx2B,gBAAgB,IAAI8pB,OAAO,CAAC9pB,gBAC7D,CAAC;QACD8zB,UAAU,EAAEl+B,OAAO,CAAC,IAAI,CAAC4gC,yBAAyB,CAAC1C,UAAU,IAAIhK,OAAO,CAACgK,UAAU;MACrF,CAAC;MACD,MAAM4G,OAAO,GAAG,IAAI;MACpB,MAAMC,KAAK,GAAGxpC,IAAI,CAACE,GAAG,CAACwR,GAAG,GAAG1R,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEE,MAAM,CAACW,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAACskC,mBAAmB,GAAGmE,OAAO,CAAC;MACjGlqC,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC6lC,gBAAgB,CAAC;MAC1C,IAAI,CAACA,gBAAgB,GAAG9lC,MAAM,CAACgB,UAAU,CAAC,MAAM;QAC9C,MAAMopC,cAAc,GAAG,IAAI,CAACpE,yBAAyB;QACrD,IAAI,CAACF,gBAAgB,GAAG,IAAI;QAC5B,IAAI,CAACC,mBAAmB,GAAG,CAAC;QAC5B,IAAI,CAACC,yBAAyB,GAAG,CAAC,CAAC;QACnC,IAAI,CAACz2B,kBAAkB,CAAC66B,cAAc,CAAC;MACzC,CAAC,EAAEzpC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEupC,KAAK,GAAG93B,GAAG,CAAC,CAAC;IAC9B,CAAC;IACDg1B,gBAAgBA,CAAA,EAAG;MACjB,IAAI,CAACgD,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAAC,IAAI,CAAC7E,SAAS,EAAE;QACnB,IAAI,CAACA,SAAS,GAAGxlC,MAAM,CAACy/B,WAAW,CAAC,MAAM;UACxC,IAAI8D,aAAa,CAAC,CAAC,IAAI,CAACrD,4FAAqB,CAAC5hB,WAAW,CAAC,CAAC,EAAE;YAC3D,IAAI,CAAC/O,kBAAkB,CAAC,CAAC;UAC3B;QACF,CAAC,EAAEi0B,2BAA2B,CAAC,CAAC,CAAC;MACnC;MACA,IAAI,CAAC,IAAI,CAACiC,qBAAqB,EAAE;QAC/B,IAAI,CAACA,qBAAqB,GAAGzlC,MAAM,CAACy/B,WAAW,CAAC,MAAM;UACpD,IAAI8D,aAAa,CAAC,CAAC,IAAI,CAACrD,4FAAqB,CAAC5hB,WAAW,CAAC,CAAC,EAAE;YAC3D,IAAI,CAAC/kB,0BAA0B,CAAC,CAAC;UACnC;QACF,CAAC,EAAEoqC,8BAA8B,CAAC,CAAC,CAAC;QACpC,IAAI,CAACpqC,0BAA0B,CAAC,CAAC;MACnC;IACF,CAAC;IACD+tC,0BAA0BA,CAAChL,OAAO,EAAE;MAClC,IAAIqF,+BAA+B,CAACrF,OAAO,CAAC,EAAE;QAC5C;MACF;MACAt8B,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC6mC,iBAAiB,CAAC;MAC3C,IAAI,CAACA,iBAAiB,GAAG9mC,MAAM,CAACgB,UAAU,CAAC,MAAM;QAC/C,IAAI,CAACzH,0BAA0B,CAAC,CAAC;QACjC,IAAI,IAAI,CAACovB,QAAQ,EAAE;UACjB,IAAI,CAAC8e,0BAA0B,CAAC;YAAEj4B,gBAAgB,EAAE4zB,cAAc,CAAC;UAAE,CAAC,EAAE,GAAG,CAAC;QAC9E;MACF,CAAC,EAAE,GAAG,CAAC;IACT,CAAC;IACDiH,sBAAsBA,CAAA,EAAG;MACvB,IAAI,IAAI,CAAC3E,uBAAuB,IAAI,OAAO1lC,MAAM,KAAK,WAAW,IAAI,OAAO+C,QAAQ,KAAK,WAAW,EAAE;QACpG;MACF;MACA,IAAI,CAAC2iC,uBAAuB,GAAG,IAAI;MACnC,MAAM4E,gBAAgB,GAAGA,CAAA,KAAM;QAC7B,IAAIlH,cAAc,CAAC,CAAC,EAAE;UACpB,IAAI,CAAC7pC,0BAA0B,CAAC,CAAC;UACjC,IAAI,CAACkuC,0BAA0B,CAAC;YAAEj4B,gBAAgB,EAAE;UAAK,CAAC,EAAE,GAAG,CAAC;QAClE;MACF,CAAC;MACDxP,MAAM,CAACoT,gBAAgB,CAAC,OAAO,EAAEk3B,gBAAgB,CAAC;MAClDvnC,QAAQ,CAACqQ,gBAAgB,CAAC,kBAAkB,EAAEk3B,gBAAgB,CAAC;IACjE,CAAC;IACD,MAAM/wC,0BAA0BA,CAAA,EAAG;MACjC,IAAI,CAACynC,YAAY,CAAC,CAAC;MACnB,IAAI,CAACuE,aAAa,GAAG,KAAK;MAC1B,IAAI,IAAI,CAACM,wBAAwB,EAAE;QACjC;MACF;MACA,IAAI,CAACA,wBAAwB,GAAG,IAAI;MACpC,IAAI;QACF,MAAM5M,mBAAmB,GAAG,MAAMj/B,mEAAQ,CAACg/B,wBAAwB,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC2O,wBAAwB,CAAC1O,mBAAmB,CAAC;MACpD,CAAC,CAAC,OAAO55B,KAAK,EAAE;QACdrF,mEAAQ,CAAC6+B,uBAAuB,CAAC,CAAC;MACpC,CAAC,SAAS;QACR,IAAI,CAACgN,wBAAwB,GAAG,KAAK;MACvC;IACF,CAAC;IACDv0B,eAAeA,CAAChS,OAAO,EAAE;MACvB,IAAI,CAAC4mB,YAAY,GAAG5mB,OAAO;MAC3B,IAAI,CAAC4P,WAAW,GAAG,EAAE;MACrBlP,MAAM,CAACC,YAAY,CAAC,IAAI,CAACsqC,iBAAiB,CAAC;MAC3C,IAAI,CAACA,iBAAiB,GAAGvqC,MAAM,CAACgB,UAAU,CAAC,MAAM;QAC/C,IAAI,CAACklB,YAAY,GAAG,EAAE;MACxB,CAAC,EAAE,IAAI,CAAC;IACV,CAAC;IACDpW,cAAcA,CAACxQ,OAAO,EAAE;MACtB,IAAI,CAAC4P,WAAW,GAAG5P,OAAO;MAC1B,IAAI,CAAC4mB,YAAY,GAAG,EAAE;MACtBlmB,MAAM,CAACC,YAAY,CAAC,IAAI,CAACuqC,gBAAgB,CAAC;MAC1C,IAAI,CAACA,gBAAgB,GAAGxqC,MAAM,CAACgB,UAAU,CAAC,MAAM;QAC9C,IAAI,CAACkO,WAAW,GAAG,EAAE;MACvB,CAAC,EAAE,IAAI,CAAC;IACV,CAAC;IACD0U,YAAYA,CAACtkB,OAAO,EAAE;MACpB,MAAMnC,GAAG,GAAGglC,gBAAgB,CAAC7iC,OAAO,CAAC;MACrC,IAAI,CAACnC,GAAG,EAAE;QACR;MACF;MACA,IAAI,CAACoe,kBAAkB,GAAGpe,GAAG;MAC7B6C,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC0mC,qBAAqB,CAAC;MAC/C,IAAI,CAACA,qBAAqB,GAAG3mC,MAAM,CAACgB,UAAU,CAAC,MAAM;QACnD,IAAI,IAAI,CAACua,kBAAkB,KAAKpe,GAAG,EAAE;UACnC,IAAI,CAACoe,kBAAkB,GAAG,EAAE;QAC9B;MACF,CAAC,EAAE,IAAI,CAAC;IACV,CAAC;IACD,MAAMkvB,mBAAmBA,CAAC;MAAE3wB,MAAM;MAAExa;IAAQ,CAAC,EAAE;MAC7C,IAAI,CAACA,OAAO,EAAE;QACZ;MACF;MACA,IAAIwa,MAAM,KAAK,MAAM,EAAE;QACrB,MAAM,IAAI,CAAC4wB,YAAY,CAAC,CAACprC,OAAO,CAAC,CAAC;MACpC,CAAC,MAAM,IAAIwa,MAAM,KAAK,MAAM,EAAE;QAC5B,IAAI,CAAC6wB,gBAAgB,CAACrrC,OAAO,CAAC;MAChC,CAAC,MAAM,IAAIwa,MAAM,KAAK,QAAQ,EAAE;QAC9B,IAAI,CAAC8wB,cAAc,CAAC,CAACtrC,OAAO,CAAC,CAAC;MAChC,CAAC,MAAM,IAAIwa,MAAM,KAAK,SAAS,EAAE;QAC/B,IAAI,CAAC+wB,YAAY,CAAC,CAACvrC,OAAO,CAAC,CAAC;MAC9B,CAAC,MAAM,IAAIwa,MAAM,KAAK,UAAU,EAAE;QAChC,IAAI,CAACgxB,cAAc,CAACxrC,OAAO,CAAC;MAC9B,CAAC,MAAM,IAAIwa,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,IAAI,CAACixB,iBAAiB,CAACzrC,OAAO,CAAC;MACvC,CAAC,MAAM,IAAIwa,MAAM,KAAK,OAAO,EAAE;QAC7B,IAAI,CAACkxB,YAAY,CAAC1rC,OAAO,CAAC;MAC5B,CAAC,MAAM,IAAIwa,MAAM,KAAK,QAAQ,EAAE;QAC9B,IAAI,CAACmxB,kBAAkB,CAAC3rC,OAAO,CAAC;MAClC,CAAC,MAAM,IAAIwa,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,IAAI,CAAC4f,aAAa,CAACp6B,OAAO,CAAC;MACnC;IACF,CAAC;IACD,MAAMyrC,iBAAiBA,CAACzrC,OAAO,EAAE;MAC/B,MAAMwL,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,IAAI,CAACxL,OAAO,EAAE;QAC7B;MACF;MACA,MAAMnC,GAAG,GAAGglC,gBAAgB,CAAC7iC,OAAO,CAAC;MACrC,IAAI,CAACknC,iBAAiB,GAAG,IAAI;MAC7B,IAAI,CAACC,oBAAoB,GAAG,IAAI;MAChC,IAAI,CAACC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACl6B,aAAa,GAAG;QACnBoP,UAAU,EAAEze,GAAG;QACfyP,gBAAgB,EAAE9B,YAAY,CAACO,IAAI,IAAIP,YAAY,CAACR,GAAG,EAAEe,IAAI,IAAI,QAAQ;QACzE6/B,MAAM,EAAEpqC,MAAM,CAACxB,OAAO,CAACi4B,gBAAgB,IAAIj4B,OAAO,CAACmO,SAAS,IAAI,CAAC,CAAC;QAClEqsB,QAAQ,EAAEh5B,MAAM,CAACxB,OAAO,CAACw6B,QAAQ,IAAI,CAAC,CAAC;QACvCzd,QAAQ,EAAExC,iBAAiB,CAACva,OAAO,CAAC;QACpCm5B,SAAS,EAAE,IAAI;QACf0B,MAAM,EAAE;UACNvvB,GAAG,EAAEtL,OAAO,CAACwS,IAAI,IAAI,EAAE;UACvBtM,IAAI,EAAElG,OAAO,CAACud,UAAU,IAAIvd,OAAO,CAACwS,IAAI,IAAI;QAC9C;MACF,CAAC;MACD,IAAI;QACF,IAAI,CAAC,OAAO,CAAC/L,IAAI,CAAC5I,GAAG,CAAC,EAAE;UACtB,IAAI,CAACupC,kBAAkB,GAAG,iBAAiB;UAC3C;QACF;QACA,MAAMv2B,MAAM,GAAG,MAAMnW,mEAAQ,CAACggC,gBAAgB,CAAClvB,YAAY,EAAExL,OAAO,CAAC;QACrE,IAAI,CAACkN,aAAa,GAAG2D,MAAM,IAAI,IAAI,CAAC3D,aAAa;MACnD,CAAC,CAAC,OAAOnN,KAAK,EAAE;QACd,IAAI,CAACqnC,kBAAkB,GAAGrnC,KAAK,CAACC,OAAO,IAAI,UAAU;MACvD,CAAC,SAAS;QACR,IAAI,CAACmnC,oBAAoB,GAAG,KAAK;MACnC;IACF,CAAC;IACD0E,kBAAkBA,CAAA,EAAG;MACnB,IAAI,CAAC3E,iBAAiB,GAAG,KAAK;MAC9B,IAAI,CAACC,oBAAoB,GAAG,KAAK;MACjC,IAAI,CAACC,kBAAkB,GAAG,EAAE;MAC5B,IAAI,CAACl6B,aAAa,GAAG,IAAI;IAC3B,CAAC;IACD,MAAMk+B,YAAYA,CAACzvB,QAAQ,EAAE;MAC3B,MAAMtY,IAAI,GAAGsY,QAAQ,CAACjP,GAAG,CAAC1M,OAAO,IAAIA,OAAO,CAACqD,IAAI,IAAI,EAAE,CAAC,CAACwY,IAAI,CAAC,IAAI,CAAC;MACnE,IAAI,CAACxY,IAAI,CAAC8C,IAAI,CAAC,CAAC,EAAE;QAChB;MACF;MACA,IAAI;QACF,MAAMsd,cAAc,CAACpgB,IAAI,CAAC;QAC1B,IAAI,CAAC2O,eAAe,CAAC2J,QAAQ,CAAC5d,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;MAC/D,CAAC,CAAC,OAAOgC,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAAC,MAAM,CAAC;MAC7B;IACF,CAAC;IACD86B,cAAcA,CAAC3vB,QAAQ,EAAE;MACvB,MAAMnQ,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,IAAI,CAACmQ,QAAQ,CAAC5d,MAAM,EAAE;QACrC;MACF;MACArD,mEAAQ,CAACw/B,YAAY,CAAC1uB,YAAY,EAAEmQ,QAAQ,CAAC;MAC7C,IAAI,CAAC0tB,cAAc,CAAC79B,YAAY,CAACP,EAAE,EAAE0Q,QAAQ,CAAC;MAC9C,IAAI,CAAC,IAAI,CAACgB,kBAAkB,CAAC5e,MAAM,EAAE;QACnC,IAAI,CAACqhB,aAAa,GAAG,KAAK;MAC5B;MACA,IAAI,CAACpN,eAAe,CAAC2J,QAAQ,CAAC5d,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;IAC/D,CAAC;IACDytC,cAAcA,CAACxrC,OAAO,EAAE;MACtB,MAAMnC,GAAG,GAAGglC,gBAAgB,CAAC7iC,OAAO,CAAC;MACrC,IAAI,CAACnC,GAAG,EAAE;QACR;MACF;MACA,MAAMqF,KAAK,GAAG,IAAI,CAACokC,gBAAgB,CAACnQ,SAAS,CAACh5B,IAAI,IAAIA,IAAI,CAACN,GAAG,KAAKA,GAAG,CAAC;MACvE,IAAIqF,KAAK,IAAI,CAAC,EAAE;QACd,IAAI,CAACokC,gBAAgB,CAACxwB,MAAM,CAAC5T,KAAK,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,CAACqkC,iBAAiB,KAAK1pC,GAAG,EAAE;UAClC,IAAI,CAAC0pC,iBAAiB,GAAG,IAAI,CAACD,gBAAgB,CAAC,CAAC,CAAC,EAAEzpC,GAAG,IAAI,EAAE;QAC9D;QACA,IAAI,CAACmU,eAAe,CAAC,OAAO,CAAC;MAC/B,CAAC,MAAM;QACL,MAAMxG,YAAY,GAAG,IAAI,CAACxS,aAAa,CAACoS,IAAI,CAACjN,IAAI,IAAIA,IAAI,CAAC8M,EAAE,KAAKjL,OAAO,CAAC6iB,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9F,IAAI,CAACykB,gBAAgB,CAAC3sB,OAAO,CAAC;UAC5B9c,GAAG;UACHoN,EAAE,EAAEjL,OAAO,CAACiL,EAAE;UACdqR,UAAU,EAAEtc,OAAO,CAACsc,UAAU;UAC9BuG,cAAc,EAAE7iB,OAAO,CAAC6iB,cAAc;UACtCF,iBAAiB,EAAEnX,YAAY,CAACjE,KAAK,IAAIvH,OAAO,CAAC2iB,iBAAiB,IAAI,EAAE;UACxE5W,IAAI,EAAE/L,OAAO,CAAC+L,IAAI,IAAI,MAAM;UAC5B1I,IAAI,EAAErD,OAAO,CAACqD,IAAI,IAAI,EAAE;UACxB2f,OAAO,EAAEkgB,kBAAkB,CAACljC,OAAO,CAAC;UACpCud,UAAU,EAAEvd,OAAO,CAACud,UAAU,IAAIvd,OAAO,CAACwS,IAAI,IAAI,EAAE;UACpDrE,SAAS,EAAE3M,MAAM,CAACxB,OAAO,CAACi4B,gBAAgB,IAAIj4B,OAAO,CAACmO,SAAS,IAAI8C,IAAI,CAAC8B,GAAG,CAAC,CAAC,CAAC;UAC9EynB,QAAQ,EAAEh5B,MAAM,CAACxB,OAAO,CAACw6B,QAAQ,IAAI,CAAC,CAAC;UACvCzd,QAAQ,EAAExC,iBAAiB,CAACva,OAAO,CAAC;UACpC+iB,YAAY,EAAE/iB,OAAO,CAAC+iB,YAAY,KAAKxI,iBAAiB,CAACva,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;UAC/E8U,UAAU,EAAE9U,OAAO,CAAC8U,UAAU,GAAG;YAAE,GAAG9U,OAAO,CAAC8U;UAAW,CAAC,GAAG;QAC/D,CAAC,CAAC;QACF,IAAI,CAACyyB,iBAAiB,GAAG1pC,GAAG;QAC5B,IAAI,CAACmU,eAAe,CAAC,KAAK,CAAC;MAC7B;MACA,IAAI,CAACs1B,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACtoC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;MAC3D0jC,qBAAqB,CAAC,IAAI,CAAC4E,gBAAgB,CAAC;IAC9C,CAAC;IACDwE,iBAAiBA,CAACjuC,GAAG,EAAE;MACrB,IAAI,CAAC0pC,iBAAiB,GAAGxoC,MAAM,CAAClB,GAAG,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD0mB,cAAcA,CAAC1mB,GAAG,EAAE;MAClB,MAAMH,KAAK,GAAGqB,MAAM,CAAClB,GAAG,IAAI,EAAE,CAAC;MAC/B,IAAI,CAACH,KAAK,EAAE;QACV;MACF;MACA,IAAI,CAAC4pC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACppC,MAAM,CAAC8B,OAAO,IAAIA,OAAO,CAACnC,GAAG,KAAKH,KAAK,CAAC;MACtF,IAAI,IAAI,CAAC6pC,iBAAiB,KAAK7pC,KAAK,EAAE;QACpC,IAAI,CAAC6pC,iBAAiB,GAAG,IAAI,CAACD,gBAAgB,CAAC,CAAC,CAAC,EAAEzpC,GAAG,IAAI,EAAE;MAC9D;MACA6kC,qBAAqB,CAAC,IAAI,CAAC4E,gBAAgB,CAAC;IAC9C,CAAC;IACDoE,YAAYA,CAAC1rC,OAAO,EAAE;MACpB,IAAI,CAAC6mC,aAAa,GAAG;QACnB,GAAG7mC,OAAO;QACV+rC,SAAS,EAAEpI,WAAW,CAAC3jC,OAAO;MAChC,CAAC;MACD,IAAI,CAACgS,eAAe,CAAC,WAAW,CAAC;IACnC,CAAC;IACDg6B,WAAWA,CAAA,EAAG;MACZ,IAAI,CAACnF,aAAa,GAAG,IAAI;IAC3B,CAAC;IACD8E,kBAAkBA,CAAC3rC,OAAO,GAAG,IAAI,EAAE;MACjC,IAAI,CAACof,aAAa,GAAG,IAAI;MACzB,IAAIpf,OAAO,EAAE;QACX,MAAMnC,GAAG,GAAGglC,gBAAgB,CAAC7iC,OAAO,CAAC;QACrC,IAAI,CAAC2c,kBAAkB,GAAG9e,GAAG,GAAG,CAACA,GAAG,CAAC,GAAG,EAAE;MAC5C;IACF,CAAC;IACDouC,qBAAqBA,CAACjsC,OAAO,EAAE;MAC7B,MAAMnC,GAAG,GAAGglC,gBAAgB,CAAC7iC,OAAO,CAAC;MACrC,IAAI,CAACnC,GAAG,EAAE;QACR;MACF;MACA,MAAMqU,QAAQ,GAAG,IAAIC,GAAG,CAAC,IAAI,CAACwK,kBAAkB,CAAC;MACjD,IAAIzK,QAAQ,CAACE,GAAG,CAACvU,GAAG,CAAC,EAAE;QACrBqU,QAAQ,CAACG,MAAM,CAACxU,GAAG,CAAC;MACtB,CAAC,MAAM;QACLqU,QAAQ,CAACI,GAAG,CAACzU,GAAG,CAAC;MACnB;MACA,IAAI,CAAC8e,kBAAkB,GAAGpK,KAAK,CAACC,IAAI,CAACN,QAAQ,CAAC;MAC9C,IAAI,CAACkN,aAAa,GAAG,IAAI,CAACzC,kBAAkB,CAAC5e,MAAM,GAAG,CAAC;IACzD,CAAC;IACDmuC,cAAcA,CAAA,EAAG;MACf,IAAI,CAAC9sB,aAAa,GAAG,KAAK;MAC1B,IAAI,CAACzC,kBAAkB,GAAG,EAAE;IAC9B,CAAC;IACDwvB,oBAAoBA,CAAA,EAAG;MACrB,OAAO,IAAI,CAACf,YAAY,CAAC,IAAI,CAACvD,gBAAgB,CAAC;IACjD,CAAC;IACDuE,sBAAsBA,CAAA,EAAG;MACvB,IAAI,CAACd,cAAc,CAAC,IAAI,CAACzD,gBAAgB,CAAC;IAC5C,CAAC;IACD0D,YAAYA,CAAC5vB,QAAQ,EAAE;MACrB,IAAI,CAACmrB,kBAAkB,GAAGnrB,QAAQ,CAACzd,MAAM,CAAC8B,OAAO,IAAIA,OAAO,EAAEqD,IAAI,CAAC;MACnE,IAAI,CAAC,IAAI,CAACyjC,kBAAkB,CAAC/oC,MAAM,EAAE;QACnC,IAAI,CAACyS,cAAc,CAAC,UAAU,CAAC;MACjC;IACF,CAAC;IACD67B,4BAA4BA,CAAA,EAAG;MAC7B,IAAI,CAACd,YAAY,CAAC,IAAI,CAAC1D,gBAAgB,CAAC;IAC1C,CAAC;IACDyE,aAAaA,CAAA,EAAG;MACd,IAAI,CAACxF,kBAAkB,GAAG,EAAE;IAC9B,CAAC;IACDuE,gBAAgBA,CAACrrC,OAAO,EAAE;MACxB,MAAMusC,QAAQ,GAAGhyB,iBAAiB,CAACva,OAAO,CAAC;MAC3C,IAAI,CAACusC,QAAQ,IAAI,CAACvsC,OAAO,EAAEqD,IAAI,EAAE;QAC/B,IAAI,CAACmN,cAAc,CAAC,YAAY,CAAC;QACjC;MACF;MACA,IAAI,CAACu2B,cAAc,GAAG/mC,OAAO;MAC7B,IAAI,CAACgnC,WAAW,GAAGhnC,OAAO,CAACqD,IAAI,IAAI,EAAE;MACrC,IAAI,CAAC4jC,WAAW,GAAGsF,QAAQ,GAAG,QAAQ,GAAG,MAAM;IACjD,CAAC;IACDC,iBAAiBA,CAAA,EAAG;MAClB,IAAI,CAACzF,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACC,WAAW,GAAG,EAAE;MACrB,IAAI,CAACC,WAAW,GAAG,EAAE;IACvB,CAAC;IACD,MAAMwF,mBAAmBA,CAAA,EAAG;MAC1B,MAAMjhC,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,MAAMlJ,OAAO,GAAG,IAAI,CAAC+mC,cAAc;MACnC,MAAM1jC,IAAI,GAAG,IAAI,CAAC2jC,WAAW,CAAC7gC,IAAI,CAAC,CAAC;MACpC,MAAMomC,QAAQ,GAAG,IAAI,CAACtF,WAAW,KAAK,QAAQ,IAAI1sB,iBAAiB,CAACva,OAAO,CAAC;MAC5E,IAAI,CAACwL,YAAY,IAAI,CAACxL,OAAO,EAAE;QAC7B,IAAI,CAACwsC,iBAAiB,CAAC,CAAC;QACxB;MACF;MACA,IAAI,CAACnpC,IAAI,EAAE;QACT,IAAI,CAACmN,cAAc,CAAC,UAAU,CAAC;QAC/B;MACF;MACA,IAAI,CAAC+7B,QAAQ,IAAIlpC,IAAI,KAAKtE,MAAM,CAACiB,OAAO,CAACqD,IAAI,IAAI,EAAE,CAAC,CAAC8C,IAAI,CAAC,CAAC,EAAE;QAC3D,IAAI,CAACqmC,iBAAiB,CAAC,CAAC;QACxB;MACF;MACA,IAAI;QACF,IAAID,QAAQ,EAAE;UACZ,MAAM,IAAI,CAAC9D,sBAAsB,CAACj9B,YAAY,EAAEnI,IAAI,CAAC;UACrD,IAAI,CAACmpC,iBAAiB,CAAC,CAAC;UACxB,IAAI,CAACx6B,eAAe,CAAC,OAAO,CAAC;UAC7B;QACF;QACA,MAAMuoB,aAAa,GAAG,MAAM7/B,mEAAQ,CAAC2/B,WAAW,CAAC7uB,YAAY,EAAExL,OAAO,EAAEqD,IAAI,CAAC;QAC7E,IAAI,CAACmmC,mBAAmB,CAACh+B,YAAY,CAACP,EAAE,EAAEjL,OAAO,EAAEu6B,aAAa,CAAC;QACjE,IAAIuI,wBAAwB,CAACvI,aAAa,CAAC,IAAI/4B,MAAM,CAACgK,YAAY,CAACsH,SAAS,IAAI,CAAC,CAAC,EAAE;UAClFtH,YAAY,CAACqZ,QAAQ,GAAGqe,kBAAkB,CAAC3I,aAAa,CAAC;UACzD/uB,YAAY,CAACsH,SAAS,GAAGgwB,wBAAwB,CAACvI,aAAa,CAAC;UAChEqI,uBAAuB,CAAC,IAAI,CAAC5pC,aAAa,CAAC;QAC7C;QACA,IAAI,CAACwzC,iBAAiB,CAAC,CAAC;QACxB,IAAI,CAACx6B,eAAe,CAAC,KAAK,CAAC;MAC7B,CAAC,CAAC,OAAOjS,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,MAAM,CAAC;MAC9C;IACF,CAAC;IACD,MAAM0sC,eAAeA,CAACC,oBAAoB,EAAE;MAC1C,MAAM5hC,MAAM,GAAG,IAAI,CAAC/R,aAAa,CAACoS,IAAI,CAACI,YAAY,IAAIA,YAAY,CAACP,EAAE,KAAK0hC,oBAAoB,CAAC;MAChG,IAAI,CAAC5hC,MAAM,IAAI,CAAC,IAAI,CAAC+7B,kBAAkB,CAAC/oC,MAAM,EAAE;QAC9C;MACF;MACA,MAAMsF,IAAI,GAAG,IAAI,CAACyjC,kBAAkB,CACjCp6B,GAAG,CAAC1M,OAAO,IAAI,MAAMA,OAAO,CAACqD,IAAI,IAAI,EAAE,EAAE,CAAC,CAC1CwY,IAAI,CAAC,MAAM,CAAC;MACf,IAAI;QACF,MAAM,IAAI,CAAC4sB,sBAAsB,CAAC19B,MAAM,EAAE1H,IAAI,CAAC;QAC/C,IAAI,CAACyjC,kBAAkB,GAAG,EAAE;QAC5B,IAAI,CAACoF,cAAc,CAAC,CAAC;QACrB,IAAI,CAACl6B,eAAe,CAAC,KAAK,CAAC;MAC7B,CAAC,CAAC,OAAOjS,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,MAAM,CAAC;MAC9C;IACF,CAAC;IACD,MAAMo6B,aAAaA,CAACp6B,OAAO,EAAE;MAC3B,MAAMwL,YAAY,GAAG,IAAI,CAACtC,kBAAkB;MAC5C,IAAI,CAACsC,YAAY,EAAE;QACjB;MACF;MACA,IAAI;QACF,MAAM9Q,mEAAQ,CAAC0/B,aAAa,CAAC5uB,YAAY,EAAExL,OAAO,CAAC;QACnD,IAAIA,OAAO,CAACsa,SAAS,KAAK,KAAK,EAAE;UAC/B,IAAI,CAAC+uB,cAAc,CAAC79B,YAAY,CAACP,EAAE,EAAE,CAACjL,OAAO,CAAC,CAAC;UAC/C,IAAI,CAACgS,eAAe,CAAC,KAAK,CAAC;UAC3B,IAAI,CAAC/B,kBAAkB,CAAC,CAAC;UACzB;QACF;QACA,IAAI,CAACu5B,mBAAmB,CAACh+B,YAAY,CAACP,EAAE,EAAEjL,OAAO,EAAE;UACjDiD,MAAM,EAAE,UAAU;UAClB2e,cAAc,EAAE,EAAE;UAClB7E,QAAQ,EAAE,IAAI;UACdgG,YAAY,EAAE;QAChB,CAAC,CAAC;QACF,IAAI,CAAC/Q,eAAe,CAAC,KAAK,CAAC;MAC7B,CAAC,CAAC,OAAOjS,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,MAAM,CAAC;MAC9C;IACF,CAAC;IACD,MAAMmmB,WAAWA,CAAC6T,OAAO,GAAG,CAAC,CAAC,EAAE;MAC9B,MAAMjhC,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,IAAI,CAACE,OAAO,CAACG,MAAM,EAAE;QACnB,IAAI,CAACsX,cAAc,CAAC,MAAM,CAAC;QAC3B,OAAO,KAAK;MACd;MACA,IAAI;QACF,MAAMhF,YAAY,GAAG,MAAM9Q,mEAAQ,CAACyrB,WAAW,CAACptB,OAAO,CAACG,MAAM,EAAE8gC,OAAO,CAAC;QACxE,IAAI,CAACjqB,kBAAkB,CAACvE,YAAY,CAAC;QACrC,IAAI,CAAC6Y,qBAAqB,CAAC7Y,YAAY,CAACP,EAAE,CAAC;QAC3C,MAAM6wB,YAAY,GAAGtwB,YAAY,CAACswB,YAAY,IAAItwB,YAAY,CAACR,GAAG,EAAE8wB,YAAY,IAAI,EAAE;QACtF,IAAIA,YAAY,IAAIA,YAAY,KAAK,IAAI,EAAE;UACzC,IAAI,CAAC9pB,eAAe,CAACgoB,OAAO,CAAC7P,OAAO,GAAG,cAAc,GAAG,aAAa,CAAC;QACxE,CAAC,MAAM;UACL,IAAI,CAACnY,eAAe,CAACgoB,OAAO,CAAC7P,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;QAC5D;QACA,IAAI,CAAClwB,0BAA0B,CAAC,CAAC;QACjC,OAAO,IAAI;MACb,CAAC,CAAC,OAAO8F,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,KAAKg6B,OAAO,CAAC7P,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;QAC9E,OAAO,KAAK;MACd;IACF,CAAC;IACD,MAAM/D,SAASA,CAAC4V,QAAQ,EAAE;MACxB,MAAMjjC,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,IAAI,CAACE,OAAO,CAACG,MAAM,EAAE;QACnB,IAAI,CAACsX,cAAc,CAAC,MAAM,CAAC;QAC3B,OAAO,KAAK;MACd;MACA,IAAI;QACF,MAAMhF,YAAY,GAAG,MAAM9Q,mEAAQ,CAAC0rB,SAAS,CAACrtB,OAAO,CAACG,MAAM,EAAE8iC,QAAQ,CAAC;QACvE,IAAI,CAACjsB,kBAAkB,CAACvE,YAAY,CAAC;QACrC,IAAI,CAAC6Y,qBAAqB,CAAC7Y,YAAY,CAACP,EAAE,CAAC;QAC3C,MAAM6wB,YAAY,GAAGtwB,YAAY,CAACswB,YAAY,IAAItwB,YAAY,CAACR,GAAG,EAAE8wB,YAAY,IAAI,EAAE;QACtF,IAAI,CAAC9pB,eAAe,CAAC8pB,YAAY,IAAIA,YAAY,KAAK,IAAI,GAAG,aAAa,GAAG,OAAO,CAAC;QACrF,IAAI,CAAC7hC,0BAA0B,CAAC,CAAC;QACjC,OAAO,IAAI;MACb,CAAC,CAAC,OAAO8F,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,QAAQ,CAAC;QAC9C,OAAO,KAAK;MACd;IACF,CAAC;IACD,MAAMkqB,gBAAgBA,CAAC+R,SAAS,EAAE54B,IAAI,EAAE;MACtC,MAAMtK,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,IAAI,CAACE,OAAO,CAACG,MAAM,EAAE;QACnB,IAAI,CAACsX,cAAc,CAAC,MAAM,CAAC;QAC3B,OAAO,KAAK;MACd;MACA,IAAI;QACF,MAAMzT,MAAM,GAAG,MAAMrC,mEAAQ,CAACwvB,gBAAgB,CAACnxB,OAAO,CAACG,MAAM,EAAE+iC,SAAS,EAAE54B,IAAI,CAAC;QAC/E,MAAMupC,YAAY,GAAGprC,MAAM,CAACzE,MAAM,CAAC6vC,YAAY,IAAI,CAAC,CAAC;QACrD,MAAMC,WAAW,GAAGrrC,MAAM,CAACzE,MAAM,CAAC8vC,WAAW,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC76B,eAAe,CAAC66B,WAAW,GAAG,CAAC,GAAG,OAAOD,YAAY,SAASC,WAAW,IAAI,GAAG,OAAOD,YAAY,IAAI,CAAC;QAC7G,IAAI,CAAC3yC,0BAA0B,CAAC,CAAC;QACjC,OAAO,IAAI;MACb,CAAC,CAAC,OAAO8F,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,MAAM,CAAC;QAC5C,OAAO,KAAK;MACd;IACF,CAAC;IACD,MAAMwT,UAAUA,CAAChI,YAAY,EAAE;MAC7B,MAAMzS,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,IAAI,CAACE,OAAO,CAACG,MAAM,IAAI,CAACsS,YAAY,EAAET,MAAM,EAAE;QAC5C,IAAI,CAACyF,cAAc,CAAC,QAAQ,CAAC;QAC7B,OAAO,KAAK;MACd;MACA,IAAI;QACF,MAAM9V,mEAAQ,CAAC8Y,UAAU,CAACza,OAAO,CAACG,MAAM,EAAEsS,YAAY,CAACT,MAAM,CAAC;QAC9D,IAAI,CAAC29B,kBAAkB,CAACl9B,YAAY,CAACP,EAAE,CAAC;QACxC,IAAI,CAAC+G,eAAe,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC/X,0BAA0B,CAAC,CAAC;QACjC,OAAO,IAAI;MACb,CAAC,CAAC,OAAO8F,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,QAAQ,CAAC;QAC9C,OAAO,KAAK;MACd;IACF,CAAC;IACD,MAAM0T,YAAYA,CAAClI,YAAY,EAAE;MAC/B,MAAMzS,OAAO,GAAGF,0EAAe,CAAC,CAAC;MACjC,IAAI,CAACE,OAAO,CAACG,MAAM,IAAI,CAACsS,YAAY,EAAET,MAAM,EAAE;QAC5C,IAAI,CAACyF,cAAc,CAAC,QAAQ,CAAC;QAC7B,OAAO,KAAK;MACd;MACA,IAAI;QACF,MAAM9V,mEAAQ,CAACgZ,YAAY,CAAC3a,OAAO,CAACG,MAAM,EAAEsS,YAAY,CAACT,MAAM,CAAC;QAChE,IAAI,CAAC29B,kBAAkB,CAACl9B,YAAY,CAACP,EAAE,CAAC;QACxC,IAAI,CAAC+G,eAAe,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC/X,0BAA0B,CAAC,CAAC;QACjC,OAAO,IAAI;MACb,CAAC,CAAC,OAAO8F,KAAK,EAAE;QACd,IAAI,CAACyQ,cAAc,CAACzQ,KAAK,CAACC,OAAO,IAAI,QAAQ,CAAC;QAC9C,OAAO,KAAK;MACd;IACF;EACF;AACF,CAAC,CAAC,C;;;;;;;;;;;;ACh6CkC;AAE7B,MAAMnG,kBAAkB,GAAGgnC,4DAAW,CAAC,YAAY,EAAE;EAC1Dlf,KAAK,EAAEA,CAAA,MAAO;IACZoL,OAAO,EAAE;EACX,CAAC,CAAC;EACF0U,OAAO,EAAE;IACPrd,YAAYA,CAAA,EAAG;MACb,IAAI,CAAC2I,OAAO,GAAG,UAAU;IAC3B,CAAC;IACDP,YAAYA,CAAA,EAAG;MACb,IAAI,CAACO,OAAO,GAAG,UAAU;IAC3B,CAAC;IACD+f,aAAaA,CAAA,EAAG;MACd,IAAI,CAAC/f,OAAO,GAAG,WAAW;IAC5B;EACF;AACF,CAAC,CAAC,C;;;;;;;;;;;;;;ACjBkC;AACW;AACV;AAErC,MAAMggB,WAAW,GAAG,oBAAoB;AAExC,SAASC,uBAAuBA,CAAC9qC,QAAQ,EAAE;EACzC,OAAOA,QAAQ,IAAI,EAAE;AACvB;AAEA,SAAS+qC,mBAAmBA,CAACC,eAAe,EAAEC,eAAe,EAAE;EAC7D,OAAOH,uBAAuB,CAACE,eAAe,CAAC,IAAIF,uBAAuB,CAACG,eAAe,CAAC;AAC7F;AAEO,MAAMt0C,eAAe,GAAGgoC,4DAAW,CAAC,SAAS,EAAE;EACpDlf,KAAK,EAAEA,CAAA,MAAO;IACZxoB,eAAe,EAAE,KAAK;IACtBgG,UAAU,EAAE,KAAK;IACjB8O,SAAS,EAAE,KAAK;IAChBD,oBAAoB,EAAE,KAAK;IAC3B9U,MAAM,EAAE,EAAE;IACV+H,KAAK,EAAE,EAAE;IACTgB,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE,EAAE;IACZnC,KAAK,EAAE,EAAE;IACTqtC,UAAU,EAAE,EAAE;IACdjM,WAAW,EAAE;EACf,CAAC,CAAC;EACFM,OAAO,EAAE;IACPxoC,OAAOA,CAAA,EAAG;MACR,MAAM+R,GAAG,GAAGorB,YAAY,CAACvtB,OAAO,CAACkkC,WAAW,CAAC;MAC7C,IAAI,CAAC/hC,GAAG,EAAE;QACR;MACF;MACA,IAAI;QACF,MAAMjS,OAAO,GAAGyP,IAAI,CAACI,KAAK,CAACoC,GAAG,CAAC;QAC/B,IAAIjS,OAAO,CAAC2P,SAAS,KAAKjO,uDAAS,CAACiO,SAAS,EAAE;UAC7C0tB,YAAY,CAAC9tB,UAAU,CAACykC,WAAW,CAAC;UACpC;QACF;QACA,IAAIh0C,OAAO,CAACG,MAAM,IAAIH,OAAO,CAACkI,KAAK,EAAE;UACnC,IAAI,CAAClI,OAAO,CAAC6/B,QAAQ,EAAE;YACrBxC,YAAY,CAAC9tB,UAAU,CAACykC,WAAW,CAAC;YACpC;UACF;UACA,IAAI,CAAC7zC,MAAM,GAAGH,OAAO,CAACG,MAAM;UAC5B,IAAI,CAAC+H,KAAK,GAAGlI,OAAO,CAACkI,KAAK;UAC1B,IAAI,CAACgB,WAAW,GAAGlJ,OAAO,CAACkJ,WAAW,IAAIlJ,OAAO,CAACG,MAAM;UACxD,IAAI,CAACgJ,QAAQ,GAAG8qC,uBAAuB,CAACj0C,OAAO,CAACmJ,QAAQ,CAAC;UACzD,IAAI,CAAC/I,eAAe,GAAG,IAAI;UAC3BuB,kEAAQ,CAACm+B,eAAe,CAAC9/B,OAAO,CAAC6/B,QAAQ,CAAC;UAC1C,IAAI7/B,OAAO,CAACogC,SAAS,EAAE;YACrB,IAAI,CAACnrB,oBAAoB,GAAG,QAAQ;UACtC;UACA,IAAI,CAACsrB,OAAO,CAAC,CAAC;UACd,IAAI,CAAClN,cAAc,CAAC,CAAC;QACvB;MACF,CAAC,CAAC,OAAOrsB,KAAK,EAAE;QACdq2B,YAAY,CAAC9tB,UAAU,CAACykC,WAAW,CAAC;MACtC;IACF,CAAC;IACD,MAAM3sC,iBAAiBA,CAACnF,MAAM,EAAEC,QAAQ,EAAE;MACxC,IAAI,CAAC6E,KAAK,GAAG,EAAE;MACf,IAAI,CAACZ,UAAU,GAAG,IAAI;MACtB,IAAI;QACF,MAAMpC,MAAM,GAAG,MAAMrC,kEAAQ,CAAC0F,iBAAiB,CAACnF,MAAM,EAAEC,QAAQ,CAAC;QACjE,IAAI,CAACmyC,gBAAgB,CAACtwC,MAAM,CAAC;QAC7B,MAAM,IAAI,CAACu8B,OAAO,CAAC,CAAC;MACtB,CAAC,CAAC,OAAOv5B,KAAK,EAAE;QACd,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,MAAM;MACtC,CAAC,SAAS;QACR,IAAI,CAACb,UAAU,GAAG,KAAK;MACzB;IACF,CAAC;IACD,MAAMkB,aAAaA,CAACpF,MAAM,EAAEE,IAAI,EAAE;MAChC,IAAI,CAAC4E,KAAK,GAAG,EAAE;MACf,IAAI,CAACZ,UAAU,GAAG,IAAI;MACtB,IAAI;QACF,MAAMpC,MAAM,GAAG,MAAMrC,kEAAQ,CAAC2F,aAAa,CAACpF,MAAM,EAAEE,IAAI,CAAC;QACzD,IAAI,CAACkyC,gBAAgB,CAACtwC,MAAM,CAAC;QAC7B,MAAM,IAAI,CAACu8B,OAAO,CAAC,CAAC;MACtB,CAAC,CAAC,OAAOv5B,KAAK,EAAE;QACd,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,MAAM;MACtC,CAAC,SAAS;QACR,IAAI,CAACb,UAAU,GAAG,KAAK;MACzB;IACF,CAAC;IACD,MAAM4C,sBAAsBA,CAAChF,MAAM,EAAE;MACnC,IAAI,CAACgD,KAAK,GAAG,EAAE;MACf,IAAI,CAACZ,UAAU,GAAG,IAAI;MACtB,IAAI;QACF,IAAI,CAACkuC,gBAAgB,CAACtwC,MAAM,CAAC;QAC7B,MAAM,IAAI,CAACu8B,OAAO,CAAC,CAAC;MACtB,CAAC,CAAC,OAAOv5B,KAAK,EAAE;QACd,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,QAAQ;MACxC,CAAC,SAAS;QACR,IAAI,CAACb,UAAU,GAAG,KAAK;MACzB;IACF,CAAC;IACD,MAAM6F,iBAAiBA,CAAC/J,MAAM,EAAEE,IAAI,EAAE;MACpC,IAAI,CAAC4E,KAAK,GAAG,EAAE;MACf,IAAI,CAACZ,UAAU,GAAG,IAAI;MACtB,IAAI;QACF,OAAO,MAAMzE,kEAAQ,CAACsK,iBAAiB,CAAC/J,MAAM,EAAEE,IAAI,CAAC;MACvD,CAAC,CAAC,OAAO4E,KAAK,EAAE;QACd,IAAI,CAACA,KAAK,GAAGA,KAAK,CAACC,OAAO,IAAI,MAAM;QACpC,OAAO,IAAI;MACb,CAAC,SAAS;QACR,IAAI,CAACb,UAAU,GAAG,KAAK;MACzB;IACF,CAAC;IACDkuC,gBAAgBA,CAACtwC,MAAM,EAAE;MACvB,IAAI,CAAC7D,MAAM,GAAG6D,MAAM,CAAC7D,MAAM,IAAI6D,MAAM,CAACuO,GAAG,IAAIvO,MAAM,CAACkO,EAAE,IAAI,EAAE;MAC5D,IAAI,CAAChK,KAAK,GAAGlE,MAAM,CAACkE,KAAK,IAAIlE,MAAM,CAACuwC,OAAO,IAAI,EAAE;MACjD,IAAI,CAACrrC,WAAW,GAAGlF,MAAM,CAACkF,WAAW,IAAIlF,MAAM,CAACiF,QAAQ,IAAIjF,MAAM,CAACmJ,IAAI,IAAI,IAAI,CAAChN,MAAM;MACtF,IAAI,CAACgJ,QAAQ,GAAG8qC,uBAAuB,CAACjwC,MAAM,CAACmF,QAAQ,CAAC;MACxD,IAAI,CAAC/I,eAAe,GAAG2M,OAAO,CAAC,IAAI,CAAC5M,MAAM,IAAI,IAAI,CAAC+H,KAAK,CAAC;MACzD,IAAIlE,MAAM,CAACo8B,SAAS,EAAE;QACpB,IAAI,CAACnrB,oBAAoB,GAAG,QAAQ;MACtC;MACA,IAAI,CAACu/B,cAAc,CAACznC,OAAO,CAAC/I,MAAM,CAACo8B,SAAS,CAAC,CAAC;IAChD,CAAC;IACDoU,cAAcA,CAACpU,SAAS,GAAG,KAAK,EAAE;MAChC/C,YAAY,CAAC7tB,OAAO,CAACwkC,WAAW,EAAEvkC,IAAI,CAACC,SAAS,CAAC;QAC/CvP,MAAM,EAAE,IAAI,CAACA,MAAM;QACnB+H,KAAK,EAAE,IAAI,CAACA,KAAK;QACjBgB,WAAW,EAAE,IAAI,CAACA,WAAW;QAC7BC,QAAQ,EAAE,IAAI,CAACA,QAAQ;QACvB02B,QAAQ,EAAEl+B,kEAAQ,CAACi+B,WAAW,CAAC,CAAC;QAChCQ,SAAS;QACTzwB,SAAS,EAAEjO,uDAAS,CAACiO;MACvB,CAAC,CAAC,CAAC;IACL,CAAC;IACD8kC,YAAYA,CAAC9vB,OAAO,EAAE;MACpB,IAAI,CAACA,OAAO,EAAE;QACZ;MACF;MACA,IAAI,CAACxkB,MAAM,GAAGwkB,OAAO,CAACxkB,MAAM,IAAIwkB,OAAO,CAACpS,GAAG,IAAI,IAAI,CAACpS,MAAM;MAC1D,IAAI,CAAC+I,WAAW,GAAGyb,OAAO,CAACzb,WAAW,IAAIyb,OAAO,CAACxX,IAAI,IAAI,IAAI,CAACjE,WAAW,IAAI,IAAI,CAAC/I,MAAM;MACzF,IAAI,CAACgJ,QAAQ,GAAG+qC,mBAAmB,CAACvvB,OAAO,CAACxb,QAAQ,EAAE,IAAI,CAACA,QAAQ,CAAC;MACpE,IAAI,CAACqrC,cAAc,CAAC,CAAC;IACvB,CAAC;IACD,MAAMnhB,cAAcA,CAAA,EAAG;MACrB,IAAI,CAAC,IAAI,CAAClzB,MAAM,EAAE;QAChB,OAAO,IAAI;MACb;MACA,IAAI;QACF,MAAMwkB,OAAO,GAAG,MAAMhjB,kEAAQ,CAAC4hC,UAAU,CAAC,IAAI,CAACpjC,MAAM,CAAC;QACtD,IAAI,CAACs0C,YAAY,CAAC9vB,OAAO,CAAC;QAC1B,OAAOA,OAAO;MAChB,CAAC,CAAC,OAAO3d,KAAK,EAAE;QACd,OAAO,IAAI;MACb;IACF,CAAC;IACD,MAAMmxB,WAAWA,CAAC;MAAEjvB,WAAW;MAAEkvB;IAAa,CAAC,EAAE;MAC/C,IAAI,CAAC,IAAI,CAACj4B,MAAM,EAAE;QAChB,MAAM,IAAIgI,KAAK,CAAC,MAAM,CAAC;MACzB;MACA,MAAMwc,OAAO,GAAG,MAAMhjB,kEAAQ,CAAC6hC,aAAa,CAAC,IAAI,CAACrjC,MAAM,EAAE;QACxD+I,WAAW;QACXkvB;MACF,CAAC,CAAC;MACF,IAAI,CAACqc,YAAY,CAAC9vB,OAAO,CAAC;MAC1B,OAAOA,OAAO;IAChB,CAAC;IACD,MAAM2T,cAAcA,CAAC;MAAE7F,WAAW;MAAEpmB;IAAY,CAAC,EAAE;MACjD,IAAI,CAAC,IAAI,CAAClM,MAAM,EAAE;QAChB,MAAM,IAAIgI,KAAK,CAAC,MAAM,CAAC;MACzB;MACA,MAAMxG,kEAAQ,CAAC22B,cAAc,CAAC;QAAE7F,WAAW;QAAEpmB;MAAY,CAAC,CAAC;MAC3D,OAAO,IAAI;IACb,CAAC;IACD,MAAMD,qBAAqBA,CAAC;MAAElK,MAAM;MAAE+B,SAAS;MAAEoI;IAAY,CAAC,EAAE;MAC9D,MAAM1K,kEAAQ,CAACyK,qBAAqB,CAAC;QAAElK,MAAM;QAAE+B,SAAS;QAAEoI;MAAY,CAAC,CAAC;MACxE,OAAO,IAAI;IACb,CAAC;IACD,MAAMk0B,OAAOA,CAAA,EAAG;MACd,IAAI,CAAC,IAAI,CAACpgC,MAAM,IAAI,CAAC,IAAI,CAAC+H,KAAK,EAAE;QAC/B;MACF;MACA,MAAMvG,kEAAQ,CAACq+B,SAAS,CAAC,CAAC;MAC1B,IAAI,CAACqU,UAAU,GAAG1yC,kEAAQ,CAACo+B,aAAa,CAAC,CAAC;MAC1C,IAAI,CAAC4I,YAAY,CAAC,CAAC;MACnB,MAAMhnC,kEAAQ,CAAC4+B,OAAO,CAAC,IAAI,CAACpgC,MAAM,EAAE,IAAI,CAAC+H,KAAK,CAAC;IACjD,CAAC;IACDygC,YAAYA,CAAA,EAAG;MACb,IAAI,IAAI,CAACP,WAAW,EAAE;QACpB;MACF;MACA,IAAI,CAACA,WAAW,GAAG,IAAI;MACvBzmC,kEAAQ,CAACkiC,EAAE,CAAC,yBAAyB,EAAE35B,MAAM,IAAI;QAC/C,IAAI,CAACgL,SAAS,GAAGhL,MAAM,CAACgL,SAAS;QACjC,IAAI,CAACD,oBAAoB,GAAG/K,MAAM,CAAC6K,UAAU,KAAK7K,MAAM,CAACgL,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;MACrF,CAAC,CAAC;IACJ,CAAC;IACDqjB,MAAMA,CAAA,EAAG;MACP52B,kEAAQ,CAAC8+B,UAAU,CAAC,CAAC;MACrBpD,YAAY,CAAC9tB,UAAU,CAACykC,WAAW,CAAC;MACpC,IAAI,CAACU,MAAM,CAAC,CAAC;IACf;EACF;AACF,CAAC,CAAC,C;;;;;;;;;;;;ACzM+D;AACL;;AAE5D,oBAAoB,4FAAM;;AAE1B,sDAAe,W;;;;;;;;ACLwD;AACL;;AAElE,oBAAoB,kGAAM;;AAE1B,sDAAe,W;;;;;;;;ACLwD;AACL;;AAElE,oBAAoB,kGAAM;;AAE1B,sDAAe,W;;;;;;;;ACLwD;AACL;;AAElE,oBAAoB,kGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL8D;AACL;;AAExE,oBAAoB,wGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL0D;AACL;;AAEpE,oBAAoB,oGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL2D;AACL;;AAErE,oBAAoB,qGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL2D;AACL;;AAErE,oBAAoB,qGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL4D;AACL;;AAEtE,oBAAoB,sGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL0D;AACL;;AAEpE,oBAAoB,oGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL+D;AACL;;AAEzE,oBAAoB,yGAAM;;AAE1B,sDAAe,W;;;;;;;;ACL6D;AACL;;AAEvE,oBAAoB,uGAAM;;AAE1B,sDAAe,W;;;;;;;;;;;ACLmO,C;;;;;;;;;;;ACAe,C;;;;;;;;;;;ACAA,C;;;;;;;;;;;ACAS,C;;;;;;;;;;;ACAM,C;;;;;;;;;;;ACAJ,C;;;;;;;;;;;ACAC,C;;;;;;;;;;;ACAA,C;;;;;;;;;;;ACAC,C;;;;;;;;;;;ACAF,C;;;;;;;;;;;ACAK,C;;;;;;;;;;;ACAF,C;;;;;;UCA/Q;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC,oHAAoH,iDAAiD;WACrK;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,E;;;;;WC7BA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,2CAA2C,0CAA0C;WACrF,MAAM;WACN,2CAA2C,gCAAgC;WAC3E;WACA,KAAK,yBAAyB;WAC9B;WACA,GAAG;WACH;WACA;WACA,0CAA0C,wCAAwC;WAClF;WACA;WACA;WACA,E;;;;;WCtBA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,8CAA8C,yD;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA;WACA,0GAA0G,sCAAsC;WAChJ,E;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA,8CAA8C;;WAE9C;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,iCAAiC,mCAAmC;WACpE;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA,4G;;;;;UElDA;UACA;UACA;UACA,+EAA+E,mCAAmC;UAClH","sources":["webpack://jc-web-im/./src/App.vue","webpack://jc-web-im/./src/components/ChatShell.vue","webpack://jc-web-im/./src/components/LoginView.vue","webpack://jc-web-im/./src/components/chat/ChatPanel.vue","webpack://jc-web-im/./src/components/chat/MessageComposer.vue","webpack://jc-web-im/./src/components/chat/MessageList.vue","webpack://jc-web-im/./src/components/contacts/ContactPanel.vue","webpack://jc-web-im/./src/components/favorites/FavoriteList.vue","webpack://jc-web-im/./src/components/favorites/FavoritePanel.vue","webpack://jc-web-im/./src/components/sidebar/ContactList.vue","webpack://jc-web-im/./src/components/sidebar/ConversationList.vue","webpack://jc-web-im/./src/components/sidebar/NavigationRail.vue","webpack://jc-web-im/./src/config.js","webpack://jc-web-im/./src/main.js","webpack://jc-web-im/./src/services/httpImClient.js","webpack://jc-web-im/./src/services/imClient.js","webpack://jc-web-im/./src/services/longConnectionImClient.js","webpack://jc-web-im/./src/services/realtimeNotifications.js","webpack://jc-web-im/./src/stores/contacts.js","webpack://jc-web-im/./src/stores/conversations.js","webpack://jc-web-im/./src/stores/navigation.js","webpack://jc-web-im/./src/stores/session.js","webpack://jc-web-im/./src/App.vue?7ccd","webpack://jc-web-im/./src/components/ChatShell.vue?96ef","webpack://jc-web-im/./src/components/LoginView.vue?3311","webpack://jc-web-im/./src/components/chat/ChatPanel.vue?ffa3","webpack://jc-web-im/./src/components/chat/MessageComposer.vue?d45c","webpack://jc-web-im/./src/components/chat/MessageList.vue?73ad","webpack://jc-web-im/./src/components/contacts/ContactPanel.vue?11f7","webpack://jc-web-im/./src/components/favorites/FavoriteList.vue?7e83","webpack://jc-web-im/./src/components/favorites/FavoritePanel.vue?9ce0","webpack://jc-web-im/./src/components/sidebar/ContactList.vue?8b7f","webpack://jc-web-im/./src/components/sidebar/ConversationList.vue?8a4a","webpack://jc-web-im/./src/components/sidebar/NavigationRail.vue?e8e6","webpack://jc-web-im/./src/App.vue?455b","webpack://jc-web-im/./src/components/ChatShell.vue?ef53","webpack://jc-web-im/./src/components/LoginView.vue?f595","webpack://jc-web-im/./src/components/chat/ChatPanel.vue?402c","webpack://jc-web-im/./src/components/chat/MessageComposer.vue?bb22","webpack://jc-web-im/./src/components/chat/MessageList.vue?c1a2","webpack://jc-web-im/./src/components/contacts/ContactPanel.vue?96e0","webpack://jc-web-im/./src/components/favorites/FavoriteList.vue?bdf3","webpack://jc-web-im/./src/components/favorites/FavoritePanel.vue?ee85","webpack://jc-web-im/./src/components/sidebar/ContactList.vue?dff0","webpack://jc-web-im/./src/components/sidebar/ConversationList.vue?0914","webpack://jc-web-im/./src/components/sidebar/NavigationRail.vue?c3d8","webpack://jc-web-im/webpack/bootstrap","webpack://jc-web-im/webpack/runtime/chunk loaded","webpack://jc-web-im/webpack/runtime/compat get default export","webpack://jc-web-im/webpack/runtime/define property getters","webpack://jc-web-im/webpack/runtime/global","webpack://jc-web-im/webpack/runtime/hasOwnProperty shorthand","webpack://jc-web-im/webpack/runtime/make namespace object","webpack://jc-web-im/webpack/runtime/set anonymous default export name","webpack://jc-web-im/webpack/runtime/jsonp chunk loading","webpack://jc-web-im/webpack/before-startup","webpack://jc-web-im/webpack/startup","webpack://jc-web-im/webpack/after-startup"],"sourcesContent":["\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","const currentHost = window.location.hostname || '127.0.0.1';\nconst runtimeConfig = window.JC_WEB_IM_CONFIG || {};\nconst appServerOrigin = `${window.location.protocol}//${currentHost}:18888`;\nconst adminServerOrigin = `${window.location.protocol}//${currentHost}:8024`;\n\nexport const appConfig = {\n appName: 'Web IM',\n adminServer: runtimeConfig.adminServer || process.env.VUE_APP_ADMIN_SERVER || adminServerOrigin,\n appServer: runtimeConfig.appServer || process.env.VUE_APP_APP_SERVER || appServerOrigin,\n platformConfigApi: runtimeConfig.platformConfigApi || process.env.VUE_APP_PLATFORM_CONFIG_API || (process.env.NODE_ENV === 'development' ? '/local-api/platform_config.php' : '/api/platform_config.php'),\n registerConfigApi: runtimeConfig.registerConfigApi || process.env.VUE_APP_REGISTER_CONFIG_API || `${adminServerOrigin}/api/register-config`,\n registerPhoneExistsApi: runtimeConfig.registerPhoneExistsApi || process.env.VUE_APP_REGISTER_PHONE_EXISTS_API || `${adminServerOrigin}/api/register-phone-exists`,\n contactsApi: runtimeConfig.contactsApi || process.env.VUE_APP_CONTACTS_API || (process.env.NODE_ENV === 'development' ? '/local-api/contacts.php' : '/api/contacts.php'),\n updateAliasApi: runtimeConfig.updateAliasApi || process.env.VUE_APP_UPDATE_ALIAS_API || (process.env.NODE_ENV === 'development' ? '/local-api/update_alias.php' : '/api/update_alias.php'),\n addContactApi: runtimeConfig.addContactApi || process.env.VUE_APP_ADD_CONTACT_API || (process.env.NODE_ENV === 'development' ? '/local-api/add_contact.php' : '/api/add_contact.php'),\n conversationActionsApi: runtimeConfig.conversationActionsApi || process.env.VUE_APP_CONVERSATION_ACTIONS_API || (process.env.NODE_ENV === 'development' ? '/local-api/conversation_actions.php' : '/api/conversation_actions.php'),\n sendMessageApi: runtimeConfig.sendMessageApi || process.env.VUE_APP_SEND_MESSAGE_API || (process.env.NODE_ENV === 'development' ? '/local-api/send_message.php' : '/api/send_message.php'),\n messageActionApi: runtimeConfig.messageActionApi || process.env.VUE_APP_MESSAGE_ACTION_API || (process.env.NODE_ENV === 'development' ? '/local-api/message_action.php' : '/api/message_action.php'),\n messageDetailApi: runtimeConfig.messageDetailApi || process.env.VUE_APP_MESSAGE_DETAIL_API || (process.env.NODE_ENV === 'development' ? '/local-api/message_detail.php' : '/api/message_detail.php'),\n messagesApi: runtimeConfig.messagesApi || process.env.VUE_APP_MESSAGES_API || (process.env.NODE_ENV === 'development' ? '/local-api/messages.php' : '/api/messages.php'),\n profileApi: runtimeConfig.profileApi || process.env.VUE_APP_PROFILE_API || (process.env.NODE_ENV === 'development' ? '/local-api/profile.php' : '/api/profile.php'),\n changePasswordApi: runtimeConfig.changePasswordApi || process.env.VUE_APP_CHANGE_PASSWORD_API || `${appServerOrigin}/change_pwd`,\n resetPasswordApi: runtimeConfig.resetPasswordApi || process.env.VUE_APP_RESET_PASSWORD_API || `${appServerOrigin}/reset_pwd`,\n imServerHost: runtimeConfig.imServerHost || process.env.VUE_APP_IM_SERVER_HOST || currentHost,\n imRoutePort: Number(runtimeConfig.imRoutePort || process.env.VUE_APP_IM_ROUTE_PORT || 18000),\n useWss: runtimeConfig.useWss ?? process.env.VUE_APP_USE_WSS === 'true',\n wsPath: runtimeConfig.wsPath || process.env.VUE_APP_WS_PATH || '/ws',\n wsUrl: runtimeConfig.wsUrl || process.env.VUE_APP_WS_URL || '',\n sdkMode: runtimeConfig.sdkMode || process.env.VUE_APP_IM_MODE || 'http',\n syncIntervalMs: Number(runtimeConfig.syncIntervalMs || process.env.VUE_APP_SYNC_INTERVAL_MS || 15000),\n sseEnabled: runtimeConfig.sseEnabled ?? process.env.VUE_APP_SSE_ENABLED === 'true',\n sseTicketApi: runtimeConfig.sseTicketApi || process.env.VUE_APP_SSE_TICKET_API || '/api/sse_ticket.php',\n sseUrl: runtimeConfig.sseUrl || process.env.VUE_APP_SSE_URL || '/ws-events',\n platform: 5,\n clientIdStorageKey: 'qmt-web-im-client-id',\n authTokenStoragePrefix: 'qmt-web-im-auth-token-'\n};\n","import { createApp } from 'vue';\nimport { createPinia } from 'pinia';\nimport App from './App.vue';\nimport './styles/base.css';\n\ncreateApp(App).use(createPinia()).mount('#app');\n","import axios from 'axios';\nimport { appConfig } from '@/config';\n\nconst LOCAL_MESSAGE_STORAGE_KEY = 'qmt-web-im-local-messages-v2';\nconst LOCAL_HIDDEN_MESSAGE_STORAGE_KEY = 'qmt-web-im-hidden-messages-v1';\nconst LOCAL_RECALLED_MESSAGE_STORAGE_KEY = 'qmt-web-im-recalled-messages-v1';\n\nfunction scopedStorageKey(baseKey, userId = '') {\n const scope = `${appConfig.appServer || ''}:${userId || 'anonymous'}`;\n return `${baseKey}:${encodeURIComponent(scope)}`;\n}\n\nfunction randomId() {\n if (window.crypto && window.crypto.randomUUID) {\n return window.crypto.randomUUID().replaceAll('-', '');\n }\n return `${Date.now()}${Math.random().toString(16).slice(2)}`;\n}\n\nfunction readLocalMessages(userId) {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(LOCAL_MESSAGE_STORAGE_KEY, userId)) || '{}');\n } catch (error) {\n return {};\n }\n}\n\nfunction readMessageSet(storageKey, userId) {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(storageKey, userId)) || '{}');\n } catch (error) {\n return {};\n }\n}\n\nfunction writeMessageSet(storageKey, messagesByConversation, userId) {\n localStorage.setItem(scopedStorageKey(storageKey, userId), JSON.stringify(messagesByConversation));\n}\n\nfunction messageKeys(message) {\n return [message?.id, message?.messageUid]\n .filter(Boolean)\n .map(value => String(value));\n}\n\nfunction hasStoredMessage(storageKey, conversationId, message, userId) {\n const stored = readMessageSet(storageKey, userId);\n const ids = new Set(stored[conversationId] || []);\n return messageKeys(message).some(id => ids.has(id));\n}\n\nfunction storeMessageKeys(storageKey, conversationId, messages, userId) {\n const stored = readMessageSet(storageKey, userId);\n const ids = new Set(stored[conversationId] || []);\n messages.forEach(message => {\n messageKeys(message).forEach(id => ids.add(id));\n });\n stored[conversationId] = Array.from(ids);\n writeMessageSet(storageKey, stored, userId);\n}\n\nfunction withRecalledState(message) {\n return {\n ...message,\n status: 'recalled',\n deliveryStatus: '',\n recalled: true,\n recallStatus: '已撤回'\n };\n}\n\nfunction applyLocalMessageState(conversationId, messages, userId) {\n return messages\n .filter(message => !hasStoredMessage(LOCAL_HIDDEN_MESSAGE_STORAGE_KEY, conversationId, message, userId))\n .map(message => {\n const isRecalled = Boolean(message.recalled)\n || message.status === 'recalled'\n || hasStoredMessage(LOCAL_RECALLED_MESSAGE_STORAGE_KEY, conversationId, message, userId);\n if (!isRecalled) {\n return message;\n }\n return withRecalledState(message);\n });\n}\n\nfunction writeLocalMessages(messagesByConversation, userId) {\n localStorage.setItem(scopedStorageKey(LOCAL_MESSAGE_STORAGE_KEY, userId), JSON.stringify(messagesByConversation));\n}\n\nfunction saveLocalMessage(message, userId) {\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[message.conversationId] = messagesByConversation[message.conversationId] || [];\n const index = messagesByConversation[message.conversationId].findIndex(item => item.id === message.id);\n if (index >= 0) {\n messagesByConversation[message.conversationId].splice(index, 1, message);\n } else {\n messagesByConversation[message.conversationId].push(message);\n }\n writeLocalMessages(messagesByConversation, userId);\n}\n\nfunction mergeSyncedMessages(localMessages, remoteMessages, conversationId, userId) {\n const visibleLocalMessages = applyLocalMessageState(conversationId, localMessages, userId);\n const localByKey = new Map();\n visibleLocalMessages.forEach(message => {\n messageKeys(message).forEach(key => {\n if (!localByKey.has(key)) {\n localByKey.set(key, message);\n }\n });\n });\n\n const visibleRemoteMessages = applyLocalMessageState(conversationId, remoteMessages, userId).map(remoteMessage => {\n if (!remoteMessage.recalled || String(remoteMessage.text || '').trim()) {\n return remoteMessage;\n }\n const localMessage = messageKeys(remoteMessage)\n .map(key => localByKey.get(key))\n .find(message => message?.text && message.text !== '你撤回了一条消息');\n return localMessage ? { ...remoteMessage, text: localMessage.text } : remoteMessage;\n });\n const remoteKeys = new Set();\n visibleRemoteMessages.forEach(message => {\n messageKeys(message).forEach(key => remoteKeys.add(key));\n });\n const now = Date.now();\n\n function hasRemoteMatch(localMessage) {\n if (localMessage.messageUid && remoteKeys.has(localMessage.messageUid)) {\n return true;\n }\n return visibleRemoteMessages.some(remoteMessage => {\n return remoteMessage.direction === localMessage.direction\n && remoteMessage.text === localMessage.text\n && Math.abs(Number(remoteMessage.timestamp || 0) - Number(localMessage.timestamp || 0)) < 15000;\n });\n }\n\n const pendingLocalMessages = visibleLocalMessages.filter(message => {\n if (message.status === 'recalled' || message.recalled) {\n return message.direction === 'out' && !hasRemoteMatch(message);\n }\n if (message.direction !== 'out') {\n return false;\n }\n if (message.status === 'sent' && message.messageUid) {\n return !hasRemoteMatch(message);\n }\n if (message.status === 'sent') {\n return !hasRemoteMatch(message) && now - Number(message.timestamp || 0) < 30000;\n }\n return message.status === 'sending' || message.status === 'failed';\n });\n\n return [...visibleRemoteMessages, ...pendingLocalMessages].sort((a, b) => {\n return Number(a.displayTimestamp || a.timestamp || 0) - Number(b.displayTimestamp || b.timestamp || 0);\n });\n}\n\nfunction getTitle(value, fallback) {\n return value || fallback || '';\n}\n\nfunction getUniqueEquipment(mobile, fallback) {\n const allowedDevices = {\n '18301902119': '67072d37062c4f31b1165073552933ba',\n '18301902116': '1777479418113eeea8e236edce',\n '18301902118': 'de89fb2f2a61480a8c381f6c16e28bd8',\n '18301902117': 'd117f480faa64145b6162107b1b49617'\n };\n return allowedDevices[mobile] || localStorage.getItem('uniqueEquipment') || fallback;\n}\n\nfunction canUseLocalLoginFallback(response) {\n const message = response.data?.message || '';\n return process.env.NODE_ENV === 'development' && message.includes('允许此设备登录');\n}\n\nexport class HttpImClient {\n constructor() {\n this.listeners = new Map();\n this.connected = false;\n this.currentUser = null;\n }\n\n getClientId() {\n let clientId = localStorage.getItem(appConfig.clientIdStorageKey);\n if (!clientId) {\n clientId = randomId();\n localStorage.setItem(appConfig.clientIdStorageKey, clientId);\n }\n return clientId;\n }\n\n restoreClientId(clientId) {\n if (clientId) {\n localStorage.setItem(appConfig.clientIdStorageKey, clientId);\n }\n }\n\n getSdkVersion() {\n return 'HTTP';\n }\n\n async ensureSdk() {\n return true;\n }\n\n async loginWithPassword(mobile, password) {\n const url = `${appConfig.appServer}/login_pwd`;\n const deviceId = getUniqueEquipment(mobile, this.getClientId());\n const response = await axios.post(url, {\n mobile,\n password,\n platform: appConfig.platform,\n clientId: deviceId,\n uniqueEquipment: deviceId\n }, { withCredentials: false });\n\n this.persistAppToken(url, response);\n if (response.data?.code !== 0) {\n if (canUseLocalLoginFallback(response)) {\n return {\n userId: mobile,\n token: `local-device-pending-${Date.now()}`,\n displayName: mobile,\n localOnly: true\n };\n }\n throw new Error(response.data?.message || '登录失败');\n }\n return response.data.result;\n }\n\n async requestAuthCode(mobile) {\n const response = await axios.post(`${appConfig.appServer}/send_code`, { mobile }, { withCredentials: false });\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '验证码发送失败');\n }\n return response.data.result;\n }\n\n async loginWithCode(mobile, code) {\n const url = `${appConfig.appServer}/login`;\n const deviceId = getUniqueEquipment(mobile, this.getClientId());\n const response = await axios.post(url, {\n mobile,\n code,\n platform: appConfig.platform,\n clientId: deviceId,\n uniqueEquipment: deviceId\n }, { withCredentials: false });\n\n this.persistAppToken(url, response);\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '登录失败');\n }\n return response.data.result;\n }\n\n async createPcSession(userId = '') {\n const response = await axios.post(`${appConfig.appServer}/pc_session`, {\n flag: 1,\n device_name: 'Web IM',\n userId,\n clientId: this.getClientId(),\n platform: appConfig.platform\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '二维码登录会话创建失败');\n }\n return response.data.result || {};\n }\n\n async loginWithPcSession(token) {\n const url = `${appConfig.appServer}/session_login/${encodeURIComponent(token)}`;\n const response = await axios.post(url, null, { withCredentials: false });\n this.persistAppToken(url, response);\n const data = response.data || {};\n if ([0, 8, 9, 10, 18].includes(Number(data.code))) {\n return data;\n }\n throw new Error(data.message || '扫码登录失败');\n }\n\n async registerWithPhone(mobile, code) {\n const url = `${appConfig.appServer}/register`;\n const deviceId = getUniqueEquipment(mobile, this.getClientId());\n\n try {\n const response = await axios.post(url, {\n mobile,\n code,\n platform: appConfig.platform,\n clientId: deviceId,\n uniqueEquipment: deviceId\n }, { withCredentials: false });\n\n this.persistAppToken(url, response);\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '注册失败');\n }\n return response.data.result;\n } catch (error) {\n const status = error.response?.status;\n if (status === 404 || status === 405) {\n return this.loginWithCode(mobile, code);\n }\n throw error;\n }\n }\n\n connect(userId, token) {\n this.currentUser = { userId, token };\n this.connected = true;\n this.emit('connectionStatusChanged', { connected: true, statusText: '已连接' });\n this.refreshConversationList();\n }\n\n disconnect() {\n this.connected = false;\n this.currentUser = null;\n this.emit('connectionStatusChanged', { connected: false, statusText: '未连接' });\n }\n\n getConversationList() {\n return [];\n }\n\n refreshConversationList() {\n const conversations = this.getConversationList();\n if (conversations.length) {\n this.emit('conversationsChanged', conversations);\n }\n if (this.currentUser?.userId) {\n this.fetchRemoteConversations().then(remoteConversations => {\n this.emit('conversationsChanged', remoteConversations);\n }).catch(() => {});\n }\n return conversations;\n }\n\n async fetchRemoteConversations(limit = 50) {\n if (!this.currentUser?.userId) {\n return [];\n }\n const response = await axios.post(appConfig.messagesApi, {\n userId: this.currentUser.userId,\n limit\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '会话同步失败');\n }\n\n return (response.data?.result?.conversations || []).map(conversation => ({\n ...conversation,\n updatedAt: Number(conversation.updatedAt || Date.now()),\n avatarText: conversation.avatarText || String(conversation.title || conversation.target || '?').slice(0, 1).toUpperCase(),\n raw: conversation.raw || { type: 'single', target: conversation.target, line: 0 }\n }));\n }\n\n getMessages(conversation) {\n if (!conversation?.id) {\n return [];\n }\n const userId = this.currentUser?.userId || '';\n return applyLocalMessageState(conversation.id, readLocalMessages(userId)[conversation.id] || [], userId);\n }\n\n async fetchRemoteMessages(conversation, limit = 50, options = {}) {\n if (!conversation?.id || !this.currentUser?.userId) {\n return [];\n }\n const response = await axios.post(appConfig.messagesApi, {\n userId: this.currentUser.userId,\n target: conversation.target || conversation.raw?.target || conversation.id.replace(/^single-/, ''),\n limit,\n conversationType: conversation.type || conversation.raw?.type || 0,\n markRead: Boolean(options.markRead)\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '消息同步失败');\n }\n\n const messages = (response.data?.result?.messages || []).map(message => ({\n ...message,\n displayTimestamp: message.displayTimestamp || message.timestamp,\n conversationId: conversation.id\n }));\n const userId = this.currentUser?.userId || '';\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[conversation.id] = mergeSyncedMessages(messagesByConversation[conversation.id] || [], messages, conversation.id, userId);\n writeLocalMessages(messagesByConversation, userId);\n return messagesByConversation[conversation.id];\n }\n\n hideMessages(conversation, messages) {\n const items = Array.isArray(messages) ? messages : [messages];\n if (!conversation?.id || !items.length) {\n return;\n }\n const userId = this.currentUser?.userId || '';\n storeMessageKeys(LOCAL_HIDDEN_MESSAGE_STORAGE_KEY, conversation.id, items, userId);\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[conversation.id] = applyLocalMessageState(\n conversation.id,\n messagesByConversation[conversation.id] || [],\n userId\n );\n writeLocalMessages(messagesByConversation, userId);\n }\n\n markMessagesRecalled(conversation, messages) {\n const items = Array.isArray(messages) ? messages : [messages];\n if (!conversation?.id || !items.length) {\n return;\n }\n const userId = this.currentUser?.userId || '';\n storeMessageKeys(LOCAL_RECALLED_MESSAGE_STORAGE_KEY, conversation.id, items, userId);\n const messagesByConversation = readLocalMessages(userId);\n messagesByConversation[conversation.id] = applyLocalMessageState(\n conversation.id,\n messagesByConversation[conversation.id] || [],\n userId\n );\n writeLocalMessages(messagesByConversation, userId);\n }\n\n async recallMessage(conversation, message) {\n const messageUid = String(message?.messageUid || message?.id || '').trim();\n if (!/^\\d+$/.test(messageUid)) {\n throw new Error('缺少可撤回的消息ID');\n }\n\n const response = await axios.post(appConfig.messageActionApi, {\n action: 'recall',\n userId: this.currentUser?.userId || message.from || '',\n messageUid\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '撤回失败');\n }\n this.markMessagesRecalled(conversation, [message]);\n return response.data.result;\n }\n\n async editMessage(conversation, message, text) {\n const messageUid = String(message?.messageUid || message?.id || '').trim();\n if (!/^\\d+$/.test(messageUid)) {\n throw new Error('缺少可编辑的消息ID');\n }\n const nextText = String(text || '').trim();\n if (!nextText) {\n throw new Error('编辑内容不能为空');\n }\n\n const response = await axios.post(appConfig.messageActionApi, {\n action: 'edit',\n userId: this.currentUser?.userId || message.from || '',\n messageUid,\n text: nextText\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '编辑失败');\n }\n\n const result = response.data?.result?.message || {};\n const editedMessage = {\n ...message,\n text: result.text || nextText,\n status: 'delivered',\n deliveryStatus: 'delivered',\n editedAt: Number(result.editedAt || Date.now()),\n activityTimestamp: Number(result.editedAt || Date.now())\n };\n saveLocalMessage(editedMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', editedMessage);\n return editedMessage;\n }\n\n async getMessageDetail(conversation, message) {\n const messageUid = String(message?.messageUid || message?.id || '').trim();\n if (!messageUid) {\n throw new Error('缺少消息ID');\n }\n const response = await axios.post(appConfig.messageDetailApi, {\n userId: this.currentUser?.userId || '',\n target: conversation?.target || conversation?.raw?.target || conversation?.id?.replace(/^single-/, '') || '',\n conversationType: conversation?.type || conversation?.raw?.type || 'single',\n messageUid\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '消息详情加载失败');\n }\n\n return response.data?.result?.detail || null;\n }\n\n async sendTextMessage(conversation, text, initialMessage = null) {\n const senderRole = conversation?.role || conversation?.raw?.role || '';\n const message = initialMessage || {\n id: randomId(),\n conversationId: conversation.id,\n from: this.currentUser?.userId || 'me',\n senderRole,\n direction: 'out',\n type: 'text',\n text,\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now()\n };\n saveLocalMessage(message, this.currentUser?.userId || '');\n if (!initialMessage) {\n this.emit('messageSent', message);\n }\n\n try {\n const response = await axios.post(appConfig.sendMessageApi, {\n sender: this.currentUser?.userId || '',\n target: conversation.target || conversation.raw?.target || conversation.id.replace(/^single-/, ''),\n conversationType: conversation.type || conversation.raw?.type || 0,\n text\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '发送失败');\n }\n\n const sentMessage = {\n ...message,\n status: 'sent',\n deliveryStatus: 'sent',\n messageUid: response.data?.result?.messageUid ? String(response.data.result.messageUid) : '',\n senderRole: response.data?.result?.senderRole || message.senderRole || '',\n serverTimestamp: Number(response.data?.result?.timestamp || 0) || null,\n timestamp: message.timestamp,\n displayTimestamp: message.displayTimestamp || message.timestamp\n };\n saveLocalMessage(sentMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', sentMessage);\n return sentMessage;\n } catch (error) {\n const failedMessage = {\n ...message,\n status: 'failed',\n deliveryStatus: '',\n error: error.response?.data?.message || error.message || '发送失败'\n };\n saveLocalMessage(failedMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', failedMessage);\n return failedMessage;\n }\n }\n\n async sendAttachmentMessage(conversation, { type, file, text = '' }, initialMessage = null) {\n const senderRole = conversation?.role || conversation?.raw?.role || '';\n const message = initialMessage || {\n id: randomId(),\n conversationId: conversation.id,\n from: this.currentUser?.userId || 'me',\n senderRole,\n direction: 'out',\n type,\n text,\n attachment: {\n type,\n name: file?.name || (type === 'image' ? '图片' : '文件'),\n mime: file?.type || '',\n size: file?.size || 0,\n url: type === 'image' && file ? URL.createObjectURL(file) : ''\n },\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now()\n };\n saveLocalMessage(message, this.currentUser?.userId || '');\n if (!initialMessage) {\n this.emit('messageSent', message);\n }\n\n try {\n const formData = new FormData();\n formData.append('sender', this.currentUser?.userId || '');\n formData.append('target', conversation.target || conversation.raw?.target || conversation.id.replace(/^single-/, ''));\n formData.append('conversationType', conversation.type || conversation.raw?.type || 0);\n formData.append('messageType', type);\n formData.append('text', text || '');\n formData.append('attachment', file);\n\n const response = await axios.post(appConfig.sendMessageApi, formData, {\n withCredentials: false\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '发送失败');\n }\n\n const sentMessage = {\n ...message,\n status: 'sent',\n deliveryStatus: 'sent',\n messageUid: response.data?.result?.messageUid ? String(response.data.result.messageUid) : '',\n senderRole: response.data?.result?.senderRole || message.senderRole || '',\n attachment: response.data?.result?.attachment || message.attachment,\n serverTimestamp: Number(response.data?.result?.timestamp || 0) || null,\n timestamp: message.timestamp,\n displayTimestamp: message.displayTimestamp || message.timestamp\n };\n saveLocalMessage(sentMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', sentMessage);\n return sentMessage;\n } catch (error) {\n const failedMessage = {\n ...message,\n status: 'failed',\n deliveryStatus: '',\n error: error.response?.data?.message || error.message || '发送失败'\n };\n saveLocalMessage(failedMessage, this.currentUser?.userId || '');\n this.emit('messageStatusChanged', failedMessage);\n return failedMessage;\n }\n }\n\n getContactList() {\n return [];\n }\n\n async getServerContactList(userId) {\n if (!userId) {\n return [];\n }\n const response = await axios.post(appConfig.contactsApi, { userId }, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.contactsApi)\n });\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '联系人加载失败');\n }\n return (response.data?.result?.contacts || []).map(item => {\n return this.mapContact(item.uid, { alias: item.alias }, {\n uid: item.uid,\n displayName: item.displayName,\n name: item.name,\n mobile: item.mobile,\n portrait: item.portrait,\n address: item.address,\n friendAlias: item.alias\n });\n }).sort((a, b) => a.title.localeCompare(b.title, 'zh-CN'));\n }\n\n async addContact(userId, keyword, reason = '') {\n const response = await axios.post(appConfig.addContactApi, {\n userId,\n keyword,\n reason\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '添加联系人失败');\n }\n\n const item = response.data?.result?.contact;\n if (!item?.uid) {\n return null;\n }\n\n return this.mapContact(item.uid, { alias: item.alias }, {\n uid: item.uid,\n displayName: item.displayName,\n name: item.name,\n mobile: item.mobile,\n portrait: item.portrait,\n address: item.address,\n friendAlias: item.alias\n });\n }\n\n normalizeConversation(conversation) {\n const title = getTitle(conversation?.title, conversation?.target || '');\n return {\n ...conversation,\n id: conversation?.id || `${conversation?.type === 'single' ? 'single' : 'group'}-${conversation?.target}`,\n target: conversation?.target || conversation?.raw?.target || '',\n title,\n subtitle: conversation?.subtitle || '',\n unread: Number(conversation?.unread || 0),\n portrait: conversation?.portrait || '',\n avatarText: conversation?.avatarText || title.slice(0, 1).toUpperCase(),\n updatedAt: Number(conversation?.updatedAt || Date.now()),\n raw: conversation?.raw || {\n type: conversation?.type === 'single' ? 'single' : 'group',\n target: conversation?.target || '',\n line: 0\n }\n };\n }\n\n async createGroup(userId, { name, memberIds = [], announcement = '', welcomeText = '', channel = false }) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: channel ? 'create_channel' : 'create_group',\n userId,\n name,\n memberIds,\n announcement,\n welcomeText\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || (channel ? '创建公告群失败' : '创建群组失败'));\n }\n\n const result = response.data?.result || {};\n const conversation = this.normalizeConversation(result.conversation || {});\n conversation.nativeStatus = result.nativeStatus || '';\n conversation.nativeError = result.nativeError || '';\n conversation.raw = {\n ...(conversation.raw || {}),\n nativeStatus: conversation.nativeStatus,\n nativeError: conversation.nativeError\n };\n return conversation;\n }\n\n async joinGroup(userId, groupKey) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'join_group',\n userId,\n groupKey\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '加入群组失败');\n }\n\n const result = response.data?.result || {};\n const conversation = this.normalizeConversation(result.conversation || {});\n conversation.nativeStatus = result.nativeStatus || '';\n conversation.nativeError = result.nativeError || '';\n conversation.raw = {\n ...(conversation.raw || {}),\n nativeStatus: conversation.nativeStatus,\n nativeError: conversation.nativeError\n };\n return conversation;\n }\n\n async broadcastMessage(userId, targetIds, text) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'broadcast',\n userId,\n targetIds,\n text\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群发失败');\n }\n\n return response.data?.result || {};\n }\n\n async getGroupDetail(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'group_detail',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群资料加载失败');\n }\n\n return response.data?.result?.group || null;\n }\n\n async getGroupMembers(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'group_members',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群员加载失败');\n }\n\n return response.data?.result?.members || [];\n }\n\n async updateGroupAlias(userId, groupId, alias) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'update_group_alias',\n userId,\n groupId,\n alias\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '本群昵称保存失败');\n }\n\n return response.data?.result?.alias || '';\n }\n\n async leaveGroup(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'leave_group',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '退出群组失败');\n }\n\n return response.data?.result || {};\n }\n\n async dismissGroup(userId, groupId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'dismiss_group',\n userId,\n groupId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '解散群组失败');\n }\n\n return response.data?.result || {};\n }\n\n async transferGroup(userId, groupId, targetUserId) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'transfer_group',\n userId,\n groupId,\n targetUserId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '转让群组失败');\n }\n\n return response.data?.result || {};\n }\n\n async setGroupAdmins(userId, groupId, adminIds) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'set_group_admins',\n userId,\n groupId,\n adminIds\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '管理员设置失败');\n }\n\n return response.data?.result || {};\n }\n\n async updateGroupProfile(userId, groupId, { name, announcement, welcomeText }) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'update_group_profile',\n userId,\n groupId,\n name,\n announcement,\n welcomeText\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '群资料保存失败');\n }\n\n return response.data?.result || {};\n }\n\n async kickGroupMembers(userId, groupId, targetIds) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'kick_group_members',\n userId,\n groupId,\n targetIds\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '踢人失败');\n }\n\n return response.data?.result || {};\n }\n\n async updateGroupMuteSetting(userId, groupId, setting) {\n const response = await axios.post(appConfig.conversationActionsApi, {\n action: 'update_mute_setting',\n userId,\n groupId,\n ...setting\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '禁言设置保存失败');\n }\n\n return response.data?.result?.muteSetting || null;\n }\n\n async updateContactAlias(userId, targetId, alias) {\n const response = await axios.post(appConfig.updateAliasApi, {\n userId,\n targetId,\n alias\n }, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.updateAliasApi)\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '备注名修改失败');\n }\n\n return response.data?.result?.contact?.alias || '';\n }\n\n async getProfile(userId) {\n const response = await axios.post(appConfig.profileApi, {\n action: 'get',\n userId\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '用户资料加载失败');\n }\n\n return response.data?.result?.profile || null;\n }\n\n async updateProfile(userId, { displayName, portraitFile }) {\n const formData = new FormData();\n formData.append('action', 'update');\n formData.append('userId', userId);\n formData.append('displayName', displayName);\n if (portraitFile) {\n formData.append('portraitFile', portraitFile);\n }\n\n const response = await axios.post(appConfig.profileApi, formData, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.appServer)\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || '用户资料保存失败');\n }\n\n return response.data?.result?.profile || null;\n }\n\n async changePassword({ oldPassword, newPassword }) {\n const response = await axios.post(appConfig.changePasswordApi, {\n oldPassword,\n newPassword\n }, {\n withCredentials: false,\n headers: this.getAppAuthHeaders(appConfig.changePasswordApi)\n });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || response.data?.msg || '密码修改失败');\n }\n\n return true;\n }\n\n async resetPasswordWithCode({ mobile, resetCode, newPassword }) {\n const response = await axios.post(appConfig.resetPasswordApi, {\n mobile,\n resetCode,\n newPassword\n }, { withCredentials: false });\n\n if (response.data?.code !== 0) {\n throw new Error(response.data?.message || response.data?.msg || '密码设置失败');\n }\n\n return true;\n }\n\n refreshContactList() {\n const contacts = this.getContactList();\n this.emit('contactsChanged', contacts);\n return contacts;\n }\n\n createSingleConversation(userId, userInfo = null) {\n const title = getTitle(userInfo?.title || userInfo?.displayName || userInfo?.name, userId);\n return {\n id: `single-${userId}`,\n type: 'single',\n target: userId,\n title,\n subtitle: '',\n unread: 0,\n portrait: userInfo?.portrait || '',\n avatarText: title.slice(0, 1).toUpperCase(),\n updatedAt: Date.now(),\n raw: { type: 'single', target: userId, line: 0 }\n };\n }\n\n mapContact(userId, friend, userInfo) {\n const title = getTitle(userInfo?.friendAlias || friend?.alias || userInfo?.displayName || userInfo?.name, userId);\n return {\n id: userId,\n uid: userId,\n title,\n subtitle: userInfo?.mobile || userInfo?.name || userId,\n portrait: userInfo?.portrait || '',\n address: userInfo?.address || '',\n avatarText: title.slice(0, 1).toUpperCase(),\n alias: friend?.alias || userInfo?.friendAlias || '',\n rawFriend: friend,\n rawUser: userInfo\n };\n }\n\n on(eventName, handler) {\n if (!this.listeners.has(eventName)) {\n this.listeners.set(eventName, new Set());\n }\n this.listeners.get(eventName).add(handler);\n return () => this.off(eventName, handler);\n }\n\n off(eventName, handler) {\n this.listeners.get(eventName)?.delete(handler);\n }\n\n emit(eventName, payload) {\n this.listeners.get(eventName)?.forEach(handler => handler(payload));\n }\n\n persistAppToken(url, response) {\n const appToken = response.headers?.authtoken || response.headers?.authToken;\n if (appToken) {\n localStorage.setItem(appConfig.authTokenStoragePrefix + this.getUrlHost(url), appToken);\n }\n }\n\n getAppAuthHeaders(url) {\n const host = this.getUrlHost(url);\n if (!host) {\n return {};\n }\n const token = localStorage.getItem(appConfig.authTokenStoragePrefix + host);\n return token ? { authToken: token } : {};\n }\n\n getUrlHost(url) {\n try {\n return new URL(url, window.location.origin).host;\n } catch (error) {\n return '';\n }\n }\n}\n\nexport const imClient = new HttpImClient();\n","import { appConfig } from '@/config';\nimport { HttpImClient } from './httpImClient';\nimport { LongConnectionImClient } from './longConnectionImClient';\n\nclass UnsupportedWildfireImClient {\n constructor() {\n throw new Error('当前本地社区版 Web 客户端未启用 WildFire Web SDK');\n }\n}\n\nexport const imClient = appConfig.sdkMode === 'wildfire'\n ? new UnsupportedWildfireImClient()\n : appConfig.sdkMode === 'custom-ws' || appConfig.sdkMode === 'long'\n ? new LongConnectionImClient()\n : new HttpImClient();\n\nexport { HttpImClient, LongConnectionImClient, UnsupportedWildfireImClient as WildfireImClient };\n","import { appConfig } from '@/config';\nimport { HttpImClient } from './httpImClient';\n\nconst HEARTBEAT_INTERVAL_MS = 25000;\nconst RECONNECT_MIN_MS = 1000;\nconst RECONNECT_MAX_MS = 15000;\n\nfunction buildWsUrl() {\n if (appConfig.wsUrl) {\n return appConfig.wsUrl;\n }\n const protocol = appConfig.useWss ? 'wss' : 'ws';\n const host = appConfig.imServerHost || window.location.hostname;\n const port = appConfig.imRoutePort ? `:${appConfig.imRoutePort}` : '';\n const path = appConfig.wsPath?.startsWith('/') ? appConfig.wsPath : `/${appConfig.wsPath || 'ws'}`;\n return `${protocol}://${host}${port}${path}`;\n}\n\nfunction normalizeConversationId(payload) {\n const target = payload.target || payload.to || payload.receiver || payload.conversationTarget || payload.from || payload.sender;\n return payload.conversationId || (target ? `single-${target}` : '');\n}\n\nfunction normalizeIncomingMessage(payload, currentUserId) {\n const item = payload.message || payload;\n const from = item.from || item.sender || item.fromUser || '';\n const target = item.target || item.to || item.receiver || '';\n const direction = from && String(from) === String(currentUserId) ? 'out' : 'in';\n const conversationId = item.conversationId || normalizeConversationId({\n ...item,\n target: direction === 'out' ? target : from\n });\n\n if (!conversationId) {\n return null;\n }\n\n const status = item.status || item.deliveryStatus || 'sent';\n\n return {\n id: item.id || item.messageId || item.messageUid || `${Date.now()}${Math.random().toString(16).slice(2)}`,\n messageUid: item.messageUid || item.uid || item.messageId || '',\n conversationId,\n from,\n target,\n direction,\n type: item.type || 'text',\n text: item.text || item.content || item.searchableContent || '',\n status,\n deliveryStatus: item.deliveryStatus || (direction === 'out' ? status : ''),\n timestamp: Number(item.timestamp || item.serverTimestamp || Date.now()),\n displayTimestamp: Number(item.displayTimestamp || item.timestamp || item.serverTimestamp || Date.now()),\n raw: item\n };\n}\n\nexport class LongConnectionImClient extends HttpImClient {\n constructor() {\n super();\n this.socket = null;\n this.wsUrl = buildWsUrl();\n this.heartbeatTimer = null;\n this.reconnectTimer = null;\n this.reconnectAttempts = 0;\n this.manualClose = false;\n }\n\n getSdkVersion() {\n return 'JC-LC/0.1';\n }\n\n shouldUseMessagePolling() {\n return !this.connected;\n }\n\n async ensureSdk() {\n if (typeof WebSocket === 'undefined') {\n throw new Error('当前浏览器不支持 WebSocket 长连接');\n }\n return true;\n }\n\n connect(userId, token) {\n this.currentUser = { userId, token };\n this.manualClose = false;\n this.openSocket();\n }\n\n disconnect() {\n this.manualClose = true;\n this.clearReconnectTimer();\n this.clearHeartbeatTimer();\n if (this.socket) {\n this.socket.close();\n this.socket = null;\n }\n super.disconnect();\n }\n\n openSocket() {\n if (this.socket?.readyState === WebSocket.OPEN) {\n this.sendAuthFrame();\n return;\n }\n if (this.socket?.readyState === WebSocket.CONNECTING) {\n return;\n }\n\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接连接中' });\n\n try {\n this.socket = new WebSocket(this.wsUrl);\n this.socket.binaryType = 'arraybuffer';\n } catch (error) {\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接创建失败,使用HTTP补偿' });\n this.scheduleReconnect();\n return;\n }\n\n this.socket.onopen = () => {\n this.connected = true;\n this.reconnectAttempts = 0;\n this.emit('connectionStatusChanged', { connected: true, statusText: '长连接已连接' });\n this.sendAuthFrame();\n this.startHeartbeat();\n this.refreshConversationList();\n };\n\n this.socket.onmessage = event => {\n this.handleFrame(event.data);\n };\n\n this.socket.onerror = () => {\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接异常,使用HTTP补偿' });\n };\n\n this.socket.onclose = () => {\n this.connected = false;\n this.clearHeartbeatTimer();\n this.socket = null;\n if (this.manualClose) {\n return;\n }\n this.emit('connectionStatusChanged', { connected: false, statusText: '长连接重连中' });\n this.scheduleReconnect();\n };\n }\n\n sendAuthFrame() {\n this.sendFrame({\n type: 'auth',\n userId: this.currentUser?.userId || '',\n token: this.currentUser?.token || '',\n clientId: this.getClientId(),\n platform: appConfig.platform,\n timestamp: Date.now()\n });\n }\n\n sendFrame(frame) {\n if (this.socket?.readyState !== WebSocket.OPEN) {\n return false;\n }\n this.socket.send(JSON.stringify(frame));\n return true;\n }\n\n handleFrame(rawData) {\n if (rawData instanceof ArrayBuffer) {\n this.emit('rawFrameReceived', rawData);\n return;\n }\n\n let payload;\n try {\n payload = typeof rawData === 'string' ? JSON.parse(rawData) : rawData;\n } catch (error) {\n return;\n }\n\n const type = payload.type || payload.event || payload.cmd || '';\n if (type === 'pong' || type === 'auth_ok' || type === 'connected') {\n return;\n }\n if (type === 'contactsChanged') {\n this.emit('contactsChanged', payload.contacts || []);\n return;\n }\n if (type === 'conversationsChanged') {\n this.emit('conversationsChanged', payload.conversations || []);\n return;\n }\n if (type === 'messages' && Array.isArray(payload.messages)) {\n payload.messages\n .map(message => normalizeIncomingMessage(message, this.currentUser?.userId))\n .filter(Boolean)\n .forEach(message => this.emit('messageReceived', message));\n return;\n }\n\n const message = normalizeIncomingMessage(payload, this.currentUser?.userId);\n if (message) {\n this.emit(message.direction === 'out' ? 'messageStatusChanged' : 'messageReceived', message);\n }\n }\n\n startHeartbeat() {\n this.clearHeartbeatTimer();\n this.heartbeatTimer = window.setInterval(() => {\n this.sendFrame({ type: 'ping', timestamp: Date.now() });\n }, HEARTBEAT_INTERVAL_MS);\n }\n\n clearHeartbeatTimer() {\n if (this.heartbeatTimer) {\n window.clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = null;\n }\n }\n\n scheduleReconnect() {\n this.clearReconnectTimer();\n const delay = Math.min(RECONNECT_MAX_MS, RECONNECT_MIN_MS * 2 ** this.reconnectAttempts);\n this.reconnectAttempts += 1;\n this.reconnectTimer = window.setTimeout(() => {\n this.openSocket();\n }, delay);\n }\n\n clearReconnectTimer() {\n if (this.reconnectTimer) {\n window.clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n }\n}\n","import axios from 'axios';\nimport { appConfig } from '@/config';\nimport { imClient } from '@/services/imClient';\n\nclass RealtimeNotificationClient {\n constructor() {\n this.source = null;\n this.userId = '';\n this.handler = null;\n this.reconnectTimer = null;\n this.reconnectAttempt = 0;\n this.generation = 0;\n }\n\n isConnected() {\n return this.source?.readyState === WebSocket.OPEN;\n }\n\n start(userId, handler) {\n this.stop();\n if (!appConfig.sseEnabled || !userId || typeof window.WebSocket !== 'function') return;\n this.userId = userId;\n this.handler = handler;\n this.generation += 1;\n this.open(this.generation);\n }\n\n stop() {\n this.generation += 1;\n window.clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n if (this.source) this.source.close();\n this.source = null;\n this.userId = '';\n this.handler = null;\n this.reconnectAttempt = 0;\n }\n\n async open(generation) {\n try {\n const response = await axios.post(appConfig.sseTicketApi, { userId: this.userId }, {\n withCredentials: false,\n headers: imClient.getAppAuthHeaders(appConfig.appServer)\n });\n if (generation !== this.generation) return;\n if (response.data?.code !== 0) throw new Error(response.data?.message || '实时通知凭证申请失败');\n const ticket = response.data?.result?.ticket || '';\n if (!ticket) throw new Error('实时通知凭证为空');\n const separator = appConfig.sseUrl.includes('?') ? '&' : '?';\n const endpoint = `${appConfig.sseUrl}${separator}ticket=${encodeURIComponent(ticket)}`;\n const socketUrl = endpoint.startsWith('ws://') || endpoint.startsWith('wss://')\n ? endpoint\n : `${window.location.protocol === 'https:' ? 'wss:' : 'ws:'}//${window.location.host}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`;\n const source = new WebSocket(socketUrl);\n this.source = source;\n source.onopen = () => {\n this.reconnectAttempt = 0;\n };\n source.onmessage = event => {\n if (generation !== this.generation) return;\n let payload = {};\n try { payload = JSON.parse(event.data || '{}'); } catch (error) { payload = {}; }\n if (payload.type !== 'message-notification') return;\n this.handler?.(payload);\n };\n source.onerror = () => {\n if (generation !== this.generation) return;\n source.close();\n if (this.source === source) this.source = null;\n this.scheduleReconnect(generation);\n };\n source.onclose = () => {\n if (generation !== this.generation || this.source !== source) return;\n this.source = null;\n this.scheduleReconnect(generation);\n };\n } catch (error) {\n if (generation === this.generation) this.scheduleReconnect(generation);\n }\n }\n\n scheduleReconnect(generation) {\n window.clearTimeout(this.reconnectTimer);\n const delay = Math.min(30000, 1000 * (2 ** Math.min(this.reconnectAttempt, 5)));\n this.reconnectAttempt += 1;\n this.reconnectTimer = window.setTimeout(() => this.open(generation), delay);\n }\n}\n\nexport const realtimeNotifications = new RealtimeNotificationClient();\n","import { defineStore } from 'pinia';\nimport { imClient } from '@/services/imClient';\nimport { useConversationStore } from '@/stores/conversations';\nimport { useNavigationStore } from '@/stores/navigation';\nimport { useSessionStore } from '@/stores/session';\n\nconst CONTACT_CACHE_MS = 15000;\n\nfunction normalizeContacts(contacts) {\n const unique = new Map();\n contacts.forEach(contact => {\n const uid = String(contact.uid || contact.id || '').trim();\n if (!uid) {\n return;\n }\n const normalized = {\n ...contact,\n id: String(contact.id || uid),\n uid\n };\n unique.set(uid, {\n ...(unique.get(uid) || {}),\n ...normalized\n });\n });\n return Array.from(unique.values()).sort((a, b) => a.title.localeCompare(b.title, 'zh-CN'));\n}\n\nexport const useContactStore = defineStore('contacts', {\n state: () => ({\n contacts: [],\n activeId: '',\n loading: false,\n eventsBound: false,\n refreshSerial: 0,\n refreshPromise: null,\n loadedForUserId: '',\n loadedAt: 0,\n actionError: '',\n actionInfo: ''\n }),\n getters: {\n activeContact(state) {\n return state.contacts.find(item => item.id === state.activeId) || state.contacts[0] || null;\n }\n },\n actions: {\n bindImEvents() {\n if (this.eventsBound) {\n return;\n }\n this.eventsBound = true;\n imClient.on('contactsChanged', contacts => {\n if (!contacts.length && this.contacts.length) {\n return;\n }\n this.contacts = normalizeContacts(contacts);\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n });\n },\n async refreshContacts(options = {}) {\n this.bindImEvents();\n const session = useSessionStore();\n const requestUserId = session.userId;\n const force = Boolean(options.force);\n if (!requestUserId) {\n this.clearContacts();\n return [];\n }\n if (!force\n && this.contacts.length\n && this.loadedForUserId === requestUserId\n && Date.now() - this.loadedAt < CONTACT_CACHE_MS\n ) {\n return this.contacts;\n }\n if (this.refreshPromise && !force) {\n return this.refreshPromise;\n }\n const serial = this.refreshSerial + 1;\n this.refreshSerial = serial;\n this.loading = true;\n\n this.refreshPromise = (async () => {\n this.contacts = normalizeContacts(imClient.refreshContactList());\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n if (!this.contacts.length || force) {\n const serverContacts = await imClient.getServerContactList(requestUserId);\n if (serial !== this.refreshSerial || useSessionStore().userId !== requestUserId) {\n return this.contacts;\n }\n this.contacts = normalizeContacts(serverContacts);\n this.loadedForUserId = requestUserId;\n this.loadedAt = Date.now();\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n }\n window.setTimeout(() => {\n if (serial !== this.refreshSerial || useSessionStore().userId !== requestUserId) {\n return;\n }\n const latest = imClient.getContactList(false);\n if (latest.length || !this.contacts.length) {\n this.contacts = normalizeContacts(latest);\n this.loadedForUserId = requestUserId;\n this.loadedAt = Date.now();\n if (!this.contacts.find(item => item.id === this.activeId)) {\n this.activeId = this.contacts[0]?.id || '';\n }\n }\n }, 1200);\n return this.contacts;\n })();\n\n try {\n return await this.refreshPromise;\n } finally {\n if (serial === this.refreshSerial) {\n this.loading = false;\n this.refreshPromise = null;\n }\n }\n },\n async addContact(keyword) {\n const session = useSessionStore();\n const value = String(keyword || '').trim();\n this.actionError = '';\n this.actionInfo = '';\n if (!session.userId) {\n this.actionError = '请先登录';\n return false;\n }\n if (!value) {\n this.actionError = '请输入用户ID、手机号或用户名';\n return false;\n }\n\n this.loading = true;\n try {\n const contact = await imClient.addContact(session.userId, value, '添加联系人');\n if (contact) {\n this.contacts = normalizeContacts([...this.contacts, contact]);\n this.activeId = contact.id;\n }\n this.actionInfo = '联系人已添加';\n await this.refreshContacts({ force: true });\n return true;\n } catch (error) {\n this.actionError = error.message || '添加联系人失败';\n return false;\n } finally {\n this.loading = false;\n }\n },\n async updateContactAlias(contactId, alias) {\n const session = useSessionStore();\n const targetId = String(contactId || '').trim();\n const nextAlias = String(alias || '').trim();\n this.actionError = '';\n this.actionInfo = '';\n if (!session.userId) {\n this.actionError = '请先登录';\n return false;\n }\n if (!targetId) {\n this.actionError = '缺少联系人ID';\n return false;\n }\n\n try {\n const savedAlias = await imClient.updateContactAlias(session.userId, targetId, nextAlias);\n this.contacts = normalizeContacts(this.contacts.map(item => {\n if (item.uid !== targetId && item.id !== targetId) {\n return item;\n }\n const rawUser = {\n ...(item.rawUser || {}),\n friendAlias: savedAlias\n };\n const rawFriend = {\n ...(item.rawFriend || {}),\n alias: savedAlias\n };\n const title = savedAlias || rawUser.displayName || rawUser.name || item.uid;\n return {\n ...item,\n title,\n avatarText: title.slice(0, 1).toUpperCase(),\n alias: savedAlias,\n rawFriend,\n rawUser\n };\n }));\n this.loadedAt = Date.now();\n this.actionInfo = '备注名已修改';\n return true;\n } catch (error) {\n this.actionError = error.message || '备注名修改失败';\n return false;\n }\n },\n clearContacts() {\n this.refreshSerial += 1;\n this.contacts = [];\n this.activeId = '';\n this.loading = false;\n this.refreshPromise = null;\n this.loadedForUserId = '';\n this.loadedAt = 0;\n this.actionError = '';\n this.actionInfo = '';\n },\n setActiveContact(id) {\n this.activeId = id;\n },\n openChat(contact) {\n if (!contact) {\n return;\n }\n const conversations = useConversationStore();\n const navigation = useNavigationStore();\n const conversation = imClient.createSingleConversation(contact.uid, contact);\n conversations.upsertConversation(conversation);\n conversations.setActiveConversation(conversation.id);\n navigation.showMessages();\n }\n }\n});\n","import { defineStore } from 'pinia';\nimport { imClient } from '@/services/imClient';\nimport { appConfig } from '@/config';\nimport { useSessionStore } from '@/stores/session';\nimport { realtimeNotifications } from '@/services/realtimeNotifications';\n\nconst LOCAL_CONVERSATION_STORAGE_KEY = 'qmt-web-im-local-conversations-v2';\nconst LOCAL_FAVORITE_MESSAGES_KEY = 'qmt-web-im-favorite-messages-v1';\nconst recentRealtimeNotifications = new Map();\n\nfunction isDuplicateRealtimeNotification(payload) {\n const messageId = String(payload?.messageId || '');\n if (!messageId) {\n return false;\n }\n const key = `${payload?.kind || 'message'}:${messageId}`;\n const now = Date.now();\n const previousAt = Number(recentRealtimeNotifications.get(key) || 0);\n recentRealtimeNotifications.set(key, now);\n if (recentRealtimeNotifications.size > 200) {\n recentRealtimeNotifications.forEach((seenAt, seenKey) => {\n if (now - seenAt > 30000) {\n recentRealtimeNotifications.delete(seenKey);\n }\n });\n }\n return now - previousAt < 5000;\n}\n\nfunction scopedStorageKey(baseKey) {\n const session = useSessionStore();\n const scope = `${appConfig.appServer || ''}:${session.userId || 'anonymous'}`;\n return `${baseKey}:${encodeURIComponent(scope)}`;\n}\n\nfunction readFavoriteMessages() {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(LOCAL_FAVORITE_MESSAGES_KEY)) || '[]');\n } catch (error) {\n return [];\n }\n}\n\nfunction writeFavoriteMessages(messages) {\n localStorage.setItem(scopedStorageKey(LOCAL_FAVORITE_MESSAGES_KEY), JSON.stringify(messages));\n}\n\nfunction readLocalConversations() {\n try {\n return JSON.parse(localStorage.getItem(scopedStorageKey(LOCAL_CONVERSATION_STORAGE_KEY)) || '[]');\n } catch (error) {\n return [];\n }\n}\n\nfunction writeLocalConversations(conversations) {\n localStorage.setItem(scopedStorageKey(LOCAL_CONVERSATION_STORAGE_KEY), JSON.stringify(conversations));\n}\n\nfunction randomId() {\n if (window.crypto && window.crypto.randomUUID) {\n return window.crypto.randomUUID().replaceAll('-', '');\n }\n return `${Date.now()}${Math.random().toString(16).slice(2)}`;\n}\n\nfunction messageKey(message) {\n return message.id || message.messageUid;\n}\n\nfunction messageStableKey(message) {\n return String(message?.messageUid || message?.id || '');\n}\n\nfunction messageActivityTimestamp(message) {\n return Number(message?.activityTimestamp || message?.editedAt || message?.displayTimestamp || message?.timestamp || 0);\n}\n\nfunction hasSameRenderState(left, right) {\n if (left === right) {\n return true;\n }\n try {\n return JSON.stringify(left) === JSON.stringify(right);\n } catch (error) {\n return false;\n }\n}\n\nfunction isRecalledMessage(message) {\n return Boolean(message?.recalled) || message?.status === 'recalled';\n}\n\nfunction attachmentLabel(message) {\n const attachment = message?.attachment;\n if (!attachment) {\n return '';\n }\n if (attachment.type === 'image') {\n return '[图片]';\n }\n return `[文件] ${attachment.name || '文件'}`;\n}\n\nfunction cleanPlaceholderText(text, message = {}) {\n const value = String(text || '').replace(/\\s+/g, ' ').trim();\n const contentType = Number(message?.contentType || 0);\n if (!value) {\n return '';\n }\n if (contentType !== 1 && value === '[暂不支持的消息类型]') {\n return '';\n }\n if ((contentType === 3 || message?.type === 'image') && (value === '[图片]' || value === '图片')) {\n return '';\n }\n\n return value;\n}\n\nfunction messagePreviewText(message) {\n if (isRecalledMessage(message)) {\n return `[${message?.recallStatus || '已撤回'}]`;\n }\n const text = cleanPlaceholderText(message?.text, message);\n return text || attachmentLabel(message);\n}\n\nfunction sanitizeConversation(conversation) {\n if (!conversation) {\n return conversation;\n }\n return {\n ...conversation,\n subtitle: cleanPlaceholderText(conversation.subtitle, conversation)\n };\n}\n\nfunction isHttpUrl(value) {\n try {\n const url = new URL(String(value || '').trim());\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch (error) {\n return false;\n }\n}\n\nfunction fileNameFromUrl(url, fallback = '图片') {\n try {\n const path = new URL(url).pathname;\n const name = decodeURIComponent(path.split('/').filter(Boolean).pop() || '');\n return name || fallback;\n } catch (error) {\n return fallback;\n }\n}\n\nfunction normalizeMessageForDisplay(message) {\n if (!message || message.attachment) {\n return message;\n }\n\n const contentType = Number(message.contentType || 0);\n const text = String(message.text || '').trim();\n if ((contentType === 3 || message.type === 'image') && isHttpUrl(text)) {\n return {\n ...message,\n type: 'image',\n text: '',\n attachment: {\n type: 'image',\n url: text,\n name: fileNameFromUrl(text, '图片'),\n mime: 'image/*',\n size: 0\n }\n };\n }\n\n return message;\n}\n\nfunction quotePrefix(message) {\n const text = messagePreviewText(message);\n return text.length > 48 ? `${text.slice(0, 48)}...` : text;\n}\n\nasync function writeClipboard(text) {\n if (navigator.clipboard?.writeText) {\n await navigator.clipboard.writeText(text);\n return;\n }\n const element = document.createElement('textarea');\n element.value = text;\n element.setAttribute('readonly', 'readonly');\n element.style.position = 'fixed';\n element.style.left = '-9999px';\n document.body.appendChild(element);\n element.select();\n document.execCommand('copy');\n document.body.removeChild(element);\n}\n\nfunction isSameMessage(left, right) {\n if (left.messageUid && right.messageUid && left.messageUid === right.messageUid) {\n return true;\n }\n if (left.id && right.id && left.id === right.id) {\n return true;\n }\n return left.direction === right.direction\n && left.text === right.text\n && (left.type || 'text') === (right.type || 'text')\n && Math.abs(Number(left.displayTimestamp || left.timestamp || 0) - Number(right.displayTimestamp || right.timestamp || 0)) < 15000;\n}\n\nfunction hasExactMessage(messages, message) {\n return messages.some(item => {\n if (item.id && message.id && item.id === message.id) {\n return true;\n }\n return item.messageUid && message.messageUid && item.messageUid === message.messageUid;\n });\n}\n\nfunction shouldUseMessagePolling() {\n return imClient.shouldUseMessagePolling ? imClient.shouldUseMessagePolling() : true;\n}\n\nfunction canMarkReadNow(options = {}) {\n if (typeof document === 'undefined') {\n return false;\n }\n if (document.visibilityState !== 'visible') {\n return false;\n }\n if (options.userAction) {\n return true;\n }\n return true;\n}\n\nfunction isPageVisible() {\n return typeof document === 'undefined' || document.visibilityState === 'visible';\n}\n\nfunction activeMessageSyncIntervalMs() {\n const configured = Number(appConfig.syncIntervalMs || 0);\n return Math.max(15000, Number.isFinite(configured) && configured > 0 ? configured : 15000);\n}\n\nfunction conversationListSyncIntervalMs() {\n return Math.max(30000, activeMessageSyncIntervalMs() * 2);\n}\n\nfunction mergeVisibleMessages(currentMessages, syncedMessages) {\n const merged = [...syncedMessages].map(normalizeMessageForDisplay);\n currentMessages.forEach(currentMessage => {\n currentMessage = normalizeMessageForDisplay(currentMessage);\n const exists = merged.some(message => isSameMessage(message, currentMessage));\n const shouldKeepLocal = currentMessage.status === 'sending'\n || currentMessage.status === 'failed'\n || (currentMessage.direction === 'out'\n && currentMessage.status === 'sent'\n && Date.now() - Number(currentMessage.timestamp || 0) < 30000);\n if (!exists && shouldKeepLocal) {\n merged.push(currentMessage);\n }\n });\n\n return merged\n .filter((message, index, messages) => {\n const key = messageKey(message);\n return messages.findIndex(item => messageKey(item) === key) === index;\n })\n .sort((a, b) => Number(a.displayTimestamp || a.timestamp || 0) - Number(b.displayTimestamp || b.timestamp || 0));\n}\n\nfunction incomingEditedMessages(previousMessages, nextMessages) {\n const previousByKey = new Map();\n (previousMessages || []).forEach(message => {\n const key = messageStableKey(message);\n if (key) {\n previousByKey.set(key, message);\n }\n });\n\n return (nextMessages || []).filter(message => {\n if (message.direction !== 'in') {\n return false;\n }\n const editedAt = Number(message.editedAt || 0);\n if (editedAt <= 0) {\n return false;\n }\n const previous = previousByKey.get(messageStableKey(message));\n return previous && editedAt > Number(previous.editedAt || 0);\n });\n}\n\nlet notificationAudioContext = null;\n\nfunction playNotificationSound() {\n if (typeof window === 'undefined') {\n return;\n }\n try {\n const AudioContext = window.AudioContext || window.webkitAudioContext;\n if (!AudioContext) {\n return;\n }\n notificationAudioContext = notificationAudioContext || new AudioContext();\n if (notificationAudioContext.state === 'suspended') {\n notificationAudioContext.resume().catch(() => {});\n }\n const oscillator = notificationAudioContext.createOscillator();\n const gain = notificationAudioContext.createGain();\n const startAt = notificationAudioContext.currentTime;\n oscillator.type = 'sine';\n oscillator.frequency.setValueAtTime(880, startAt);\n oscillator.frequency.setValueAtTime(660, startAt + 0.1);\n gain.gain.setValueAtTime(0.0001, startAt);\n gain.gain.exponentialRampToValueAtTime(0.12, startAt + 0.02);\n gain.gain.exponentialRampToValueAtTime(0.0001, startAt + 0.22);\n oscillator.connect(gain);\n gain.connect(notificationAudioContext.destination);\n oscillator.start(startAt);\n oscillator.stop(startAt + 0.24);\n } catch (error) {\n // Notification sound is best-effort; browsers may block audio until user interaction.\n }\n}\n\nexport const useConversationStore = defineStore('conversations', {\n state: () => ({\n activeId: '',\n conversations: [],\n messagesByConversation: {},\n visibleMessagesByConversation: {},\n eventsBound: false,\n usingDemoData: false,\n loading: false,\n syncTimer: null,\n conversationSyncTimer: null,\n readPresenceEventsBound: false,\n syncInFlight: false,\n pendingReadReceiptConversationId: '',\n conversationSyncInFlight: false,\n messageSyncTimer: null,\n messageSyncQueuedAt: 0,\n pendingMessageSyncOptions: {},\n lastReadSyncByConversation: {},\n optimisticMessagesByConversation: {},\n quotedMessage: null,\n forwardingMessages: [],\n editingMessage: null,\n editingText: '',\n editingMode: '',\n messageDetailOpen: false,\n messageDetailLoading: false,\n messageDetailError: '',\n messageDetail: null,\n attentionMessageId: '',\n attentionMessageTimer: null,\n selectionMode: false,\n selectedMessageIds: [],\n favoriteMessages: [],\n activeFavoriteKey: '',\n actionNotice: '',\n actionError: '',\n realtimeSyncTimer: null\n }),\n getters: {\n activeConversation(state) {\n return state.conversations.find(item => item.id === state.activeId) || state.conversations[0] || null;\n },\n activeMessages(state) {\n return state.visibleMessagesByConversation[state.activeId] || [];\n },\n totalUnread(state) {\n return state.conversations.reduce((sum, item) => sum + Number(item.unread || 0), 0);\n },\n canSendActiveConversation(state) {\n const conversation = state.conversations.find(item => item.id === state.activeId) || state.conversations[0] || null;\n if (!conversation) {\n return false;\n }\n if (conversation.type !== 'channel') {\n return true;\n }\n return ['owner', 'admin'].includes(conversation.role || conversation.raw?.role || '');\n },\n favoriteMessageIds(state) {\n return state.favoriteMessages.map(message => message.key);\n },\n activeFavorite(state) {\n return state.favoriteMessages.find(message => message.key === state.activeFavoriteKey)\n || state.favoriteMessages[0]\n || null;\n },\n selectedMessages(state) {\n const selectedIds = new Set(state.selectedMessageIds);\n return (state.visibleMessagesByConversation[state.activeId] || [])\n .filter(message => selectedIds.has(messageStableKey(message)));\n }\n },\n actions: {\n bootstrapDemoData() {\n const session = useSessionStore();\n this.bindImEvents();\n this.usingDemoData = false;\n if (!session.userId) {\n this.clearUserState();\n return;\n }\n this.loadScopedLocalState();\n this.startMessageSync();\n realtimeNotifications.start(session.userId, payload => this.handleRealtimeNotification(payload));\n },\n loadScopedLocalState() {\n this.conversations = readLocalConversations().map(sanitizeConversation);\n this.favoriteMessages = readFavoriteMessages();\n this.activeFavoriteKey = this.favoriteMessages[0]?.key || '';\n this.activeId = this.conversations[0]?.id || '';\n this.messagesByConversation = {};\n this.visibleMessagesByConversation = {};\n this.optimisticMessagesByConversation = {};\n this.quotedMessage = null;\n this.forwardingMessages = [];\n this.editingMessage = null;\n this.editingText = '';\n this.editingMode = '';\n this.messageDetailOpen = false;\n this.messageDetailLoading = false;\n this.messageDetailError = '';\n this.messageDetail = null;\n this.selectionMode = false;\n this.selectedMessageIds = [];\n if (this.activeId) {\n this.loadActiveMessages({ allowReadReceipt: true });\n }\n },\n clearUserState() {\n window.clearInterval(this.syncTimer);\n window.clearInterval(this.conversationSyncTimer);\n window.clearTimeout(this.messageSyncTimer);\n window.clearTimeout(this.attentionMessageTimer);\n window.clearTimeout(this.realtimeSyncTimer);\n realtimeNotifications.stop();\n this.syncTimer = null;\n this.conversationSyncTimer = null;\n this.messageSyncTimer = null;\n this.messageSyncQueuedAt = 0;\n this.pendingMessageSyncOptions = {};\n this.attentionMessageTimer = null;\n this.realtimeSyncTimer = null;\n this.syncInFlight = false;\n this.conversationSyncInFlight = false;\n this.pendingReadReceiptConversationId = '';\n this.lastReadSyncByConversation = {};\n this.activeId = '';\n this.conversations = [];\n this.messagesByConversation = {};\n this.visibleMessagesByConversation = {};\n this.optimisticMessagesByConversation = {};\n this.quotedMessage = null;\n this.forwardingMessages = [];\n this.editingMessage = null;\n this.editingText = '';\n this.editingMode = '';\n this.messageDetailOpen = false;\n this.messageDetailLoading = false;\n this.messageDetailError = '';\n this.messageDetail = null;\n this.attentionMessageId = '';\n this.selectionMode = false;\n this.selectedMessageIds = [];\n this.favoriteMessages = [];\n this.activeFavoriteKey = '';\n this.actionNotice = '';\n this.actionError = '';\n },\n bindImEvents() {\n if (this.eventsBound) {\n return;\n }\n this.eventsBound = true;\n imClient.on('messageSent', message => {\n this.appendMessage(message.conversationId, message);\n });\n imClient.on('messageReceived', message => {\n this.appendMessage(message.conversationId, message);\n if (message.conversationId === this.activeId) {\n this.scheduleActiveMessagesSync({ allowReadReceipt: true }, 700);\n }\n });\n imClient.on('messageStatusChanged', message => {\n this.replaceMessage(message.conversationId, message);\n });\n imClient.on('conversationsChanged', remoteConversations => {\n this.usingDemoData = false;\n this.applyRemoteConversations(remoteConversations);\n });\n },\n setActiveConversation(id) {\n this.activeId = id;\n const conversation = this.conversations.find(item => item.id === id);\n if (conversation) {\n conversation.unread = 0;\n }\n this.loadActiveMessages({ allowReadReceipt: true, userAction: true });\n },\n sendText(text) {\n const conversation = this.activeConversation;\n if (!conversation || !text.trim()) {\n return;\n }\n let value = text.trim();\n if (this.quotedMessage) {\n this.quotedMessage = null;\n }\n const message = {\n id: randomId(),\n conversationId: conversation.id,\n from: 'me',\n direction: 'out',\n type: 'text',\n text: value,\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now(),\n displayTimestamp: Date.now()\n };\n this.appendVisibleMessage(conversation.id, message);\n this.appendMessage(conversation.id, message);\n imClient.sendTextMessage(conversation, value, message);\n conversation.subtitle = value;\n conversation.updatedAt = Date.now();\n writeLocalConversations(this.conversations);\n this.scheduleActiveMessagesSync({}, 700);\n },\n sendAttachment({ type, file, text = '' }) {\n const conversation = this.activeConversation;\n if (!conversation || !file || !['image', 'file'].includes(type)) {\n return;\n }\n let value = text.trim();\n if (this.quotedMessage) {\n this.quotedMessage = null;\n }\n const now = Date.now();\n const message = {\n id: randomId(),\n conversationId: conversation.id,\n from: 'me',\n senderRole: conversation.role || conversation.raw?.role || '',\n direction: 'out',\n type,\n text: value,\n attachment: {\n type,\n name: file.name || (type === 'image' ? '图片' : '文件'),\n mime: file.type || '',\n size: file.size || 0,\n url: type === 'image' ? URL.createObjectURL(file) : ''\n },\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: now,\n displayTimestamp: now\n };\n this.appendVisibleMessage(conversation.id, message);\n this.appendMessage(conversation.id, message);\n imClient.sendAttachmentMessage(conversation, { type, file, text: value }, message);\n conversation.subtitle = messagePreviewText(message);\n conversation.updatedAt = now;\n writeLocalConversations(this.conversations);\n this.scheduleActiveMessagesSync({}, 700);\n },\n async sendTextToConversation(conversation, text) {\n if (!conversation || !text.trim()) {\n return null;\n }\n const value = text.trim();\n const message = {\n id: randomId(),\n conversationId: conversation.id,\n from: 'me',\n direction: 'out',\n type: 'text',\n text: value,\n status: 'sending',\n deliveryStatus: 'sending',\n timestamp: Date.now(),\n displayTimestamp: Date.now()\n };\n this.appendMessage(conversation.id, message);\n const sentMessage = await imClient.sendTextMessage(conversation, value, message);\n this.replaceMessage(conversation.id, sentMessage);\n return sentMessage;\n },\n upsertConversation(conversation) {\n conversation = sanitizeConversation(conversation);\n const index = this.conversations.findIndex(item => item.id === conversation.id);\n if (index >= 0) {\n this.conversations.splice(index, 1, {\n ...this.conversations[index],\n ...conversation\n });\n } else {\n this.conversations.unshift(conversation);\n }\n this.usingDemoData = false;\n writeLocalConversations(this.conversations);\n },\n removeConversation(conversationId) {\n this.conversations = this.conversations.filter(conversation => conversation.id !== conversationId);\n const {\n [conversationId]: removedMessages,\n ...messagesByConversation\n } = this.messagesByConversation;\n const {\n [conversationId]: removedVisibleMessages,\n ...visibleMessagesByConversation\n } = this.visibleMessagesByConversation;\n const {\n [conversationId]: removedOptimisticMessages,\n ...optimisticMessagesByConversation\n } = this.optimisticMessagesByConversation;\n void removedMessages;\n void removedVisibleMessages;\n void removedOptimisticMessages;\n this.messagesByConversation = messagesByConversation;\n this.visibleMessagesByConversation = visibleMessagesByConversation;\n this.optimisticMessagesByConversation = optimisticMessagesByConversation;\n if (this.activeId === conversationId) {\n this.activeId = this.conversations[0]?.id || '';\n }\n writeLocalConversations(this.conversations);\n if (this.activeId) {\n this.loadActiveMessages();\n }\n },\n applyRemoteConversations(remoteConversations) {\n const remote = Array.isArray(remoteConversations) ? remoteConversations : [];\n if (!remote.length && this.conversations.length) {\n return;\n }\n\n const previousActiveId = this.activeId;\n const merged = new Map();\n this.conversations.forEach(conversation => {\n merged.set(conversation.id, conversation);\n });\n remote.forEach(conversation => {\n const unread = conversation.id === this.activeId && canMarkReadNow() ? 0 : Number(conversation.unread || 0);\n merged.set(conversation.id, {\n ...(merged.get(conversation.id) || {}),\n ...sanitizeConversation(conversation),\n unread\n });\n });\n\n const nextConversations = Array.from(merged.values())\n .map(sanitizeConversation)\n .sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0))\n .slice(0, 100);\n const conversationsChanged = !hasSameRenderState(this.conversations, nextConversations);\n if (conversationsChanged) {\n this.conversations = nextConversations;\n }\n\n if (!this.conversations.length) {\n this.activeId = '';\n this.messagesByConversation = {};\n this.visibleMessagesByConversation = {};\n this.optimisticMessagesByConversation = {};\n writeLocalConversations(this.conversations);\n return;\n }\n\n if (!this.conversations.find(item => item.id === this.activeId)) {\n this.activeId = this.conversations[0].id;\n }\n if (conversationsChanged) {\n writeLocalConversations(this.conversations);\n }\n if (previousActiveId !== this.activeId || !this.messagesByConversation[this.activeId]) {\n this.loadActiveMessages();\n }\n },\n appendMessage(conversationId, message) {\n message = normalizeMessageForDisplay(message);\n if (!this.messagesByConversation[conversationId]) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: []\n };\n }\n if (message.direction === 'out' && (message.status === 'sending' || message.status === 'sent')) {\n this.keepOptimisticMessage(conversationId, message);\n }\n if (!hasExactMessage(this.messagesByConversation[conversationId], message)) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: [...this.messagesByConversation[conversationId], message]\n };\n }\n this.updateConversationFromMessage(conversationId, message);\n this.syncVisibleMessages(conversationId);\n writeLocalConversations(this.conversations);\n },\n removeMessages(conversationId, messages) {\n const ids = new Set(messages.flatMap(message => [message.id, message.messageUid].filter(Boolean).map(String)));\n const filterMessages = list => (list || []).filter(message => {\n return ![message.id, message.messageUid].filter(Boolean).some(id => ids.has(String(id)));\n });\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: filterMessages(this.messagesByConversation[conversationId])\n };\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: filterMessages(this.visibleMessagesByConversation[conversationId])\n };\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: filterMessages(this.optimisticMessagesByConversation[conversationId])\n };\n this.selectedMessageIds = this.selectedMessageIds.filter(id => !ids.has(String(id)));\n },\n replaceLocalMessage(conversationId, targetMessage, nextMessage) {\n const keys = new Set([targetMessage.id, targetMessage.messageUid].filter(Boolean).map(String));\n const replaceInList = list => (list || []).map(message => {\n const matched = [message.id, message.messageUid].filter(Boolean).some(id => keys.has(String(id)));\n return matched ? { ...message, ...nextMessage } : message;\n });\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: replaceInList(this.messagesByConversation[conversationId])\n };\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: replaceInList(this.visibleMessagesByConversation[conversationId])\n };\n },\n updateConversationFromMessage(conversationId, message) {\n const conversation = this.conversations.find(item => item.id === conversationId);\n if (!conversation) {\n return;\n }\n\n conversation.subtitle = messagePreviewText(message) || cleanPlaceholderText(conversation.subtitle, conversation);\n conversation.updatedAt = messageActivityTimestamp(message) || Date.now();\n if (message.direction === 'in') {\n conversation.unread = conversationId === this.activeId ? 0 : Number(conversation.unread || 0) + 1;\n }\n this.conversations = [...this.conversations]\n .sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0));\n },\n appendVisibleMessage(conversationId, message) {\n message = normalizeMessageForDisplay(message);\n const messages = this.visibleMessagesByConversation[conversationId] || [];\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: [...messages.filter(item => item.id !== message.id), message]\n .sort((a, b) => Number(a.displayTimestamp || a.timestamp || 0) - Number(b.displayTimestamp || b.timestamp || 0))\n };\n },\n replaceMessage(conversationId, message) {\n message = normalizeMessageForDisplay(message);\n if (!this.messagesByConversation[conversationId]) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: []\n };\n }\n if (message.direction === 'out' && (message.status === 'sending' || message.status === 'sent' || message.status === 'failed')) {\n this.keepOptimisticMessage(conversationId, message);\n }\n const index = this.messagesByConversation[conversationId].findIndex(item => item.id === message.id);\n if (index >= 0) {\n const messages = [...this.messagesByConversation[conversationId]];\n messages.splice(index, 1, message);\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: messages\n };\n } else {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversationId]: [...this.messagesByConversation[conversationId], message]\n };\n }\n this.syncVisibleMessages(conversationId);\n },\n syncVisibleMessages(conversationId) {\n const currentMessages = this.visibleMessagesByConversation[conversationId] || [];\n const nextMessages = mergeVisibleMessages(\n this.optimisticMessagesByConversation[conversationId] || [],\n this.messagesByConversation[conversationId] || []\n );\n if (!hasSameRenderState(currentMessages, nextMessages)) {\n this.visibleMessagesByConversation = {\n ...this.visibleMessagesByConversation,\n [conversationId]: nextMessages\n };\n }\n },\n keepOptimisticMessage(conversationId, message) {\n if (!this.optimisticMessagesByConversation[conversationId]) {\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: []\n };\n }\n const messages = this.optimisticMessagesByConversation[conversationId];\n const index = messages.findIndex(item => item.id === message.id);\n let nextMessages;\n if (index >= 0) {\n nextMessages = [...messages];\n nextMessages.splice(index, 1, message);\n } else {\n nextMessages = [...messages, message];\n }\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: nextMessages\n };\n },\n pruneOptimisticMessages(conversationId, syncedMessages) {\n const messages = this.optimisticMessagesByConversation[conversationId] || [];\n if (!messages.length) {\n return;\n }\n this.optimisticMessagesByConversation = {\n ...this.optimisticMessagesByConversation,\n [conversationId]: messages.filter(message => {\n const remoteMatched = syncedMessages.some(syncedMessage => {\n return syncedMessage.id !== message.id && isSameMessage(syncedMessage, message);\n });\n if (remoteMatched && message.status !== 'failed') {\n return false;\n }\n return Date.now() - Number(message.displayTimestamp || message.timestamp || 0) < 30000 || message.status === 'failed';\n })\n };\n },\n loadActiveMessages(options = {}) {\n const syncOptions = typeof options === 'boolean'\n ? { allowReadReceipt: options }\n : options;\n const conversation = this.activeConversation;\n if (!conversation) {\n return;\n }\n this.loading = true;\n const messages = imClient.getMessages(conversation, 30);\n this.pruneOptimisticMessages(conversation.id, messages);\n const nextMessages = mergeVisibleMessages(this.messagesByConversation[conversation.id] || [], messages);\n if (!hasSameRenderState(this.messagesByConversation[conversation.id] || [], nextMessages)) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [conversation.id]: nextMessages\n };\n }\n this.syncVisibleMessages(conversation.id);\n this.loading = false;\n this.syncActiveMessages(syncOptions);\n },\n async syncActiveMessages(options = {}) {\n const conversation = this.activeConversation;\n if (!conversation) {\n return;\n }\n if (options.skipWhenHidden !== false && !isPageVisible()) {\n return;\n }\n const wantsReadReceipt = Boolean(options.allowReadReceipt);\n const explicitReadReceipt = wantsReadReceipt && canMarkReadNow({ userAction: Boolean(options.userAction) });\n const now = Date.now();\n const previousReadSyncAt = Number(this.lastReadSyncByConversation[conversation.id] || 0);\n const pollingReadReceipt = canMarkReadNow() && now - previousReadSyncAt >= 10000;\n const markRead = explicitReadReceipt || pollingReadReceipt;\n\n if (this.syncInFlight) {\n if (wantsReadReceipt) {\n this.pendingReadReceiptConversationId = conversation.id;\n }\n return;\n }\n this.syncInFlight = true;\n const syncedConversationId = conversation.id;\n const previousMessages = this.messagesByConversation[syncedConversationId] || [];\n try {\n const messages = await imClient.fetchRemoteMessages(conversation, 50, {\n markRead\n });\n if (markRead) {\n this.lastReadSyncByConversation = {\n ...this.lastReadSyncByConversation,\n [syncedConversationId]: Date.now()\n };\n }\n const editedIncomingMessages = incomingEditedMessages(previousMessages, messages);\n this.pruneOptimisticMessages(syncedConversationId, messages);\n const nextMessages = mergeVisibleMessages(\n this.messagesByConversation[syncedConversationId] || [],\n messages\n );\n if (!hasSameRenderState(this.messagesByConversation[syncedConversationId] || [], nextMessages)) {\n this.messagesByConversation = {\n ...this.messagesByConversation,\n [syncedConversationId]: nextMessages\n };\n }\n this.syncVisibleMessages(syncedConversationId);\n if (editedIncomingMessages.length && syncedConversationId === this.activeId) {\n this.focusMessage(editedIncomingMessages.sort((a, b) => messageActivityTimestamp(b) - messageActivityTimestamp(a))[0]);\n playNotificationSound();\n }\n const latest = messages.reduce((latestMessage, message) => {\n if (!latestMessage || messageActivityTimestamp(message) > messageActivityTimestamp(latestMessage)) {\n return message;\n }\n return latestMessage;\n }, null);\n if (latest) {\n const nextSubtitle = messagePreviewText(latest);\n const nextUpdatedAt = messageActivityTimestamp(latest);\n if (conversation.subtitle !== nextSubtitle || Number(conversation.updatedAt || 0) !== nextUpdatedAt) {\n conversation.subtitle = nextSubtitle;\n conversation.updatedAt = nextUpdatedAt;\n writeLocalConversations(this.conversations);\n }\n }\n } catch (error) {\n // Keep the local view usable if a polling request misses.\n } finally {\n this.syncInFlight = false;\n if (this.pendingReadReceiptConversationId === this.activeId && canMarkReadNow()) {\n this.pendingReadReceiptConversationId = '';\n this.scheduleActiveMessagesSync({ allowReadReceipt: true }, 700);\n }\n }\n },\n scheduleActiveMessagesSync(options = {}, delay = 700) {\n if (!this.activeId || !isPageVisible()) {\n return;\n }\n const now = Date.now();\n if (!this.messageSyncQueuedAt) {\n this.messageSyncQueuedAt = now;\n }\n this.pendingMessageSyncOptions = {\n ...this.pendingMessageSyncOptions,\n allowReadReceipt: Boolean(\n this.pendingMessageSyncOptions.allowReadReceipt || options.allowReadReceipt\n ),\n userAction: Boolean(this.pendingMessageSyncOptions.userAction || options.userAction)\n };\n const maxWait = 1200;\n const runAt = Math.min(now + Math.max(0, Number(delay) || 0), this.messageSyncQueuedAt + maxWait);\n window.clearTimeout(this.messageSyncTimer);\n this.messageSyncTimer = window.setTimeout(() => {\n const pendingOptions = this.pendingMessageSyncOptions;\n this.messageSyncTimer = null;\n this.messageSyncQueuedAt = 0;\n this.pendingMessageSyncOptions = {};\n this.syncActiveMessages(pendingOptions);\n }, Math.max(0, runAt - now));\n },\n startMessageSync() {\n this.bindReadPresenceEvents();\n if (!this.syncTimer) {\n this.syncTimer = window.setInterval(() => {\n if (isPageVisible() && !realtimeNotifications.isConnected()) {\n this.syncActiveMessages();\n }\n }, activeMessageSyncIntervalMs());\n }\n if (!this.conversationSyncTimer) {\n this.conversationSyncTimer = window.setInterval(() => {\n if (isPageVisible() && !realtimeNotifications.isConnected()) {\n this.refreshRemoteConversations();\n }\n }, conversationListSyncIntervalMs());\n this.refreshRemoteConversations();\n }\n },\n handleRealtimeNotification(payload) {\n if (isDuplicateRealtimeNotification(payload)) {\n return;\n }\n window.clearTimeout(this.realtimeSyncTimer);\n this.realtimeSyncTimer = window.setTimeout(() => {\n this.refreshRemoteConversations();\n if (this.activeId) {\n this.scheduleActiveMessagesSync({ allowReadReceipt: canMarkReadNow() }, 700);\n }\n }, 500);\n },\n bindReadPresenceEvents() {\n if (this.readPresenceEventsBound || typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n this.readPresenceEventsBound = true;\n const syncWhenReadable = () => {\n if (canMarkReadNow()) {\n this.refreshRemoteConversations();\n this.scheduleActiveMessagesSync({ allowReadReceipt: true }, 300);\n }\n };\n window.addEventListener('focus', syncWhenReadable);\n document.addEventListener('visibilitychange', syncWhenReadable);\n },\n async refreshRemoteConversations() {\n this.bindImEvents();\n this.usingDemoData = false;\n if (this.conversationSyncInFlight) {\n return;\n }\n this.conversationSyncInFlight = true;\n try {\n const remoteConversations = await imClient.fetchRemoteConversations(50);\n this.applyRemoteConversations(remoteConversations);\n } catch (error) {\n imClient.refreshConversationList();\n } finally {\n this.conversationSyncInFlight = false;\n }\n },\n setActionNotice(message) {\n this.actionNotice = message;\n this.actionError = '';\n window.clearTimeout(this.actionNoticeTimer);\n this.actionNoticeTimer = window.setTimeout(() => {\n this.actionNotice = '';\n }, 1800);\n },\n setActionError(message) {\n this.actionError = message;\n this.actionNotice = '';\n window.clearTimeout(this.actionErrorTimer);\n this.actionErrorTimer = window.setTimeout(() => {\n this.actionError = '';\n }, 2400);\n },\n focusMessage(message) {\n const key = messageStableKey(message);\n if (!key) {\n return;\n }\n this.attentionMessageId = key;\n window.clearTimeout(this.attentionMessageTimer);\n this.attentionMessageTimer = window.setTimeout(() => {\n if (this.attentionMessageId === key) {\n this.attentionMessageId = '';\n }\n }, 2800);\n },\n async handleMessageAction({ action, message }) {\n if (!message) {\n return;\n }\n if (action === 'copy') {\n await this.copyMessages([message]);\n } else if (action === 'edit') {\n this.startEditMessage(message);\n } else if (action === 'delete') {\n this.deleteMessages([message]);\n } else if (action === 'forward') {\n this.startForward([message]);\n } else if (action === 'favorite') {\n this.toggleFavorite(message);\n } else if (action === 'detail') {\n await this.openMessageDetail(message);\n } else if (action === 'quote') {\n this.quoteMessage(message);\n } else if (action === 'select') {\n this.enterSelectionMode(message);\n } else if (action === 'recall') {\n await this.recallMessage(message);\n }\n },\n async openMessageDetail(message) {\n const conversation = this.activeConversation;\n if (!conversation || !message) {\n return;\n }\n const key = messageStableKey(message);\n this.messageDetailOpen = true;\n this.messageDetailLoading = true;\n this.messageDetailError = '';\n this.messageDetail = {\n messageUid: key,\n conversationType: conversation.type || conversation.raw?.type || 'single',\n sentAt: Number(message.displayTimestamp || message.timestamp || 0),\n editedAt: Number(message.editedAt || 0),\n recalled: isRecalledMessage(message),\n localOnly: true,\n sender: {\n uid: message.from || '',\n name: message.senderName || message.from || ''\n }\n };\n try {\n if (!/^\\d+$/.test(key)) {\n this.messageDetailError = '本地临时消息暂无送达/已读详情';\n return;\n }\n const detail = await imClient.getMessageDetail(conversation, message);\n this.messageDetail = detail || this.messageDetail;\n } catch (error) {\n this.messageDetailError = error.message || '消息详情加载失败';\n } finally {\n this.messageDetailLoading = false;\n }\n },\n closeMessageDetail() {\n this.messageDetailOpen = false;\n this.messageDetailLoading = false;\n this.messageDetailError = '';\n this.messageDetail = null;\n },\n async copyMessages(messages) {\n const text = messages.map(message => message.text || '').join('\\n');\n if (!text.trim()) {\n return;\n }\n try {\n await writeClipboard(text);\n this.setActionNotice(messages.length > 1 ? '已复制所选消息' : '已复制');\n } catch (error) {\n this.setActionError('复制失败');\n }\n },\n deleteMessages(messages) {\n const conversation = this.activeConversation;\n if (!conversation || !messages.length) {\n return;\n }\n imClient.hideMessages(conversation, messages);\n this.removeMessages(conversation.id, messages);\n if (!this.selectedMessageIds.length) {\n this.selectionMode = false;\n }\n this.setActionNotice(messages.length > 1 ? '已删除所选消息' : '已删除');\n },\n toggleFavorite(message) {\n const key = messageStableKey(message);\n if (!key) {\n return;\n }\n const index = this.favoriteMessages.findIndex(item => item.key === key);\n if (index >= 0) {\n this.favoriteMessages.splice(index, 1);\n if (this.activeFavoriteKey === key) {\n this.activeFavoriteKey = this.favoriteMessages[0]?.key || '';\n }\n this.setActionNotice('已取消收藏');\n } else {\n const conversation = this.conversations.find(item => item.id === message.conversationId) || {};\n this.favoriteMessages.unshift({\n key,\n id: message.id,\n messageUid: message.messageUid,\n conversationId: message.conversationId,\n conversationTitle: conversation.title || message.conversationTitle || '',\n type: message.type || 'text',\n text: message.text || '',\n preview: messagePreviewText(message),\n senderName: message.senderName || message.from || '',\n timestamp: Number(message.displayTimestamp || message.timestamp || Date.now()),\n editedAt: Number(message.editedAt || 0),\n recalled: isRecalledMessage(message),\n recallStatus: message.recallStatus || (isRecalledMessage(message) ? '已撤回' : ''),\n attachment: message.attachment ? { ...message.attachment } : null\n });\n this.activeFavoriteKey = key;\n this.setActionNotice('已收藏');\n }\n this.favoriteMessages = this.favoriteMessages.slice(0, 200);\n writeFavoriteMessages(this.favoriteMessages);\n },\n setActiveFavorite(key) {\n this.activeFavoriteKey = String(key || '');\n },\n removeFavorite(key) {\n const value = String(key || '');\n if (!value) {\n return;\n }\n this.favoriteMessages = this.favoriteMessages.filter(message => message.key !== value);\n if (this.activeFavoriteKey === value) {\n this.activeFavoriteKey = this.favoriteMessages[0]?.key || '';\n }\n writeFavoriteMessages(this.favoriteMessages);\n },\n quoteMessage(message) {\n this.quotedMessage = {\n ...message,\n quoteText: quotePrefix(message)\n };\n this.setActionNotice('已引用,输入后发送');\n },\n cancelQuote() {\n this.quotedMessage = null;\n },\n enterSelectionMode(message = null) {\n this.selectionMode = true;\n if (message) {\n const key = messageStableKey(message);\n this.selectedMessageIds = key ? [key] : [];\n }\n },\n toggleSelectedMessage(message) {\n const key = messageStableKey(message);\n if (!key) {\n return;\n }\n const selected = new Set(this.selectedMessageIds);\n if (selected.has(key)) {\n selected.delete(key);\n } else {\n selected.add(key);\n }\n this.selectedMessageIds = Array.from(selected);\n this.selectionMode = this.selectedMessageIds.length > 0;\n },\n clearSelection() {\n this.selectionMode = false;\n this.selectedMessageIds = [];\n },\n copySelectedMessages() {\n return this.copyMessages(this.selectedMessages);\n },\n deleteSelectedMessages() {\n this.deleteMessages(this.selectedMessages);\n },\n startForward(messages) {\n this.forwardingMessages = messages.filter(message => message?.text);\n if (!this.forwardingMessages.length) {\n this.setActionError('没有可转发的消息');\n }\n },\n startForwardSelectedMessages() {\n this.startForward(this.selectedMessages);\n },\n cancelForward() {\n this.forwardingMessages = [];\n },\n startEditMessage(message) {\n const isResend = isRecalledMessage(message);\n if (!isResend && !message?.text) {\n this.setActionError('没有可编辑的文字内容');\n return;\n }\n this.editingMessage = message;\n this.editingText = message.text || '';\n this.editingMode = isResend ? 'resend' : 'edit';\n },\n cancelEditMessage() {\n this.editingMessage = null;\n this.editingText = '';\n this.editingMode = '';\n },\n async completeEditMessage() {\n const conversation = this.activeConversation;\n const message = this.editingMessage;\n const text = this.editingText.trim();\n const isResend = this.editingMode === 'resend' || isRecalledMessage(message);\n if (!conversation || !message) {\n this.cancelEditMessage();\n return;\n }\n if (!text) {\n this.setActionError('编辑内容不能为空');\n return;\n }\n if (!isResend && text === String(message.text || '').trim()) {\n this.cancelEditMessage();\n return;\n }\n try {\n if (isResend) {\n await this.sendTextToConversation(conversation, text);\n this.cancelEditMessage();\n this.setActionNotice('已重新发送');\n return;\n }\n const editedMessage = await imClient.editMessage(conversation, message, text);\n this.replaceLocalMessage(conversation.id, message, editedMessage);\n if (messageActivityTimestamp(editedMessage) >= Number(conversation.updatedAt || 0)) {\n conversation.subtitle = messagePreviewText(editedMessage);\n conversation.updatedAt = messageActivityTimestamp(editedMessage);\n writeLocalConversations(this.conversations);\n }\n this.cancelEditMessage();\n this.setActionNotice('已编辑');\n } catch (error) {\n this.setActionError(error.message || '编辑失败');\n }\n },\n async completeForward(targetConversationId) {\n const target = this.conversations.find(conversation => conversation.id === targetConversationId);\n if (!target || !this.forwardingMessages.length) {\n return;\n }\n const text = this.forwardingMessages\n .map(message => `转发:${message.text || ''}`)\n .join('\\n\\n');\n try {\n await this.sendTextToConversation(target, text);\n this.forwardingMessages = [];\n this.clearSelection();\n this.setActionNotice('已转发');\n } catch (error) {\n this.setActionError(error.message || '转发失败');\n }\n },\n async recallMessage(message) {\n const conversation = this.activeConversation;\n if (!conversation) {\n return;\n }\n try {\n await imClient.recallMessage(conversation, message);\n if (message.direction !== 'out') {\n this.removeMessages(conversation.id, [message]);\n this.setActionNotice('已撤回');\n this.syncActiveMessages();\n return;\n }\n this.replaceLocalMessage(conversation.id, message, {\n status: 'recalled',\n deliveryStatus: '',\n recalled: true,\n recallStatus: '已撤回'\n });\n this.setActionNotice('已撤回');\n } catch (error) {\n this.setActionError(error.message || '撤回失败');\n }\n },\n async createGroup(options = {}) {\n const session = useSessionStore();\n if (!session.userId) {\n this.setActionError('请先登录');\n return false;\n }\n try {\n const conversation = await imClient.createGroup(session.userId, options);\n this.upsertConversation(conversation);\n this.setActiveConversation(conversation.id);\n const nativeStatus = conversation.nativeStatus || conversation.raw?.nativeStatus || '';\n if (nativeStatus && nativeStatus !== 'ok') {\n this.setActionNotice(options.channel ? '公告群已创建,仅网页可见' : '群组已创建,仅网页可见');\n } else {\n this.setActionNotice(options.channel ? '公告群已创建' : '群组已创建');\n }\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || (options.channel ? '创建公告群失败' : '创建群组失败'));\n return false;\n }\n },\n async joinGroup(groupKey) {\n const session = useSessionStore();\n if (!session.userId) {\n this.setActionError('请先登录');\n return false;\n }\n try {\n const conversation = await imClient.joinGroup(session.userId, groupKey);\n this.upsertConversation(conversation);\n this.setActiveConversation(conversation.id);\n const nativeStatus = conversation.nativeStatus || conversation.raw?.nativeStatus || '';\n this.setActionNotice(nativeStatus && nativeStatus !== 'ok' ? '已加入群组,仅网页可见' : '已加入群组');\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '加入群组失败');\n return false;\n }\n },\n async broadcastMessage(targetIds, text) {\n const session = useSessionStore();\n if (!session.userId) {\n this.setActionError('请先登录');\n return false;\n }\n try {\n const result = await imClient.broadcastMessage(session.userId, targetIds, text);\n const successCount = Number(result.successCount || 0);\n const failedCount = Number(result.failedCount || 0);\n this.setActionNotice(failedCount > 0 ? `已群发 ${successCount} 条,失败 ${failedCount} 条` : `已群发 ${successCount} 条`);\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '群发失败');\n return false;\n }\n },\n async leaveGroup(conversation) {\n const session = useSessionStore();\n if (!session.userId || !conversation?.target) {\n this.setActionError('缺少群组信息');\n return false;\n }\n try {\n await imClient.leaveGroup(session.userId, conversation.target);\n this.removeConversation(conversation.id);\n this.setActionNotice('已退出群组');\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '退出群组失败');\n return false;\n }\n },\n async dismissGroup(conversation) {\n const session = useSessionStore();\n if (!session.userId || !conversation?.target) {\n this.setActionError('缺少群组信息');\n return false;\n }\n try {\n await imClient.dismissGroup(session.userId, conversation.target);\n this.removeConversation(conversation.id);\n this.setActionNotice('群组已解散');\n this.refreshRemoteConversations();\n return true;\n } catch (error) {\n this.setActionError(error.message || '解散群组失败');\n return false;\n }\n }\n }\n});\n","import { defineStore } from 'pinia';\n\nexport const useNavigationStore = defineStore('navigation', {\n state: () => ({\n section: 'messages'\n }),\n actions: {\n showMessages() {\n this.section = 'messages';\n },\n showContacts() {\n this.section = 'contacts';\n },\n showFavorites() {\n this.section = 'favorites';\n }\n }\n});\n","import { defineStore } from 'pinia';\nimport { imClient } from '@/services/imClient';\nimport { appConfig } from '@/config';\n\nconst STORAGE_KEY = 'qmt-web-im-session';\n\nfunction normalizeStoredPortrait(portrait) {\n return portrait || '';\n}\n\nfunction nextProfilePortrait(profilePortrait, currentPortrait) {\n return normalizeStoredPortrait(profilePortrait) || normalizeStoredPortrait(currentPortrait);\n}\n\nexport const useSessionStore = defineStore('session', {\n state: () => ({\n isAuthenticated: false,\n connecting: false,\n connected: false,\n connectionStatusText: '未连接',\n userId: '',\n token: '',\n displayName: '',\n portrait: '',\n error: '',\n sdkVersion: '',\n eventsBound: false\n }),\n actions: {\n restore() {\n const raw = localStorage.getItem(STORAGE_KEY);\n if (!raw) {\n return;\n }\n try {\n const session = JSON.parse(raw);\n if (session.appServer !== appConfig.appServer) {\n localStorage.removeItem(STORAGE_KEY);\n return;\n }\n if (session.userId && session.token) {\n if (!session.clientId) {\n localStorage.removeItem(STORAGE_KEY);\n return;\n }\n this.userId = session.userId;\n this.token = session.token;\n this.displayName = session.displayName || session.userId;\n this.portrait = normalizeStoredPortrait(session.portrait);\n this.isAuthenticated = true;\n imClient.restoreClientId(session.clientId);\n if (session.localOnly) {\n this.connectionStatusText = '本地调试登录';\n }\n this.connect();\n this.refreshProfile();\n }\n } catch (error) {\n localStorage.removeItem(STORAGE_KEY);\n }\n },\n async loginWithPassword(mobile, password) {\n this.error = '';\n this.connecting = true;\n try {\n const result = await imClient.loginWithPassword(mobile, password);\n this.applyLoginResult(result);\n await this.connect();\n } catch (error) {\n this.error = error.message || '登录失败';\n } finally {\n this.connecting = false;\n }\n },\n async loginWithCode(mobile, code) {\n this.error = '';\n this.connecting = true;\n try {\n const result = await imClient.loginWithCode(mobile, code);\n this.applyLoginResult(result);\n await this.connect();\n } catch (error) {\n this.error = error.message || '登录失败';\n } finally {\n this.connecting = false;\n }\n },\n async completePcSessionLogin(result) {\n this.error = '';\n this.connecting = true;\n try {\n this.applyLoginResult(result);\n await this.connect();\n } catch (error) {\n this.error = error.message || '扫码登录失败';\n } finally {\n this.connecting = false;\n }\n },\n async registerWithPhone(mobile, code) {\n this.error = '';\n this.connecting = true;\n try {\n return await imClient.registerWithPhone(mobile, code);\n } catch (error) {\n this.error = error.message || '注册失败';\n return null;\n } finally {\n this.connecting = false;\n }\n },\n applyLoginResult(result) {\n this.userId = result.userId || result.uid || result.id || '';\n this.token = result.token || result.imToken || '';\n this.displayName = result.displayName || result.userName || result.name || this.userId;\n this.portrait = normalizeStoredPortrait(result.portrait);\n this.isAuthenticated = Boolean(this.userId && this.token);\n if (result.localOnly) {\n this.connectionStatusText = '本地调试登录';\n }\n this.persistSession(Boolean(result.localOnly));\n },\n persistSession(localOnly = false) {\n localStorage.setItem(STORAGE_KEY, JSON.stringify({\n userId: this.userId,\n token: this.token,\n displayName: this.displayName,\n portrait: this.portrait,\n clientId: imClient.getClientId(),\n localOnly,\n appServer: appConfig.appServer\n }));\n },\n applyProfile(profile) {\n if (!profile) {\n return;\n }\n this.userId = profile.userId || profile.uid || this.userId;\n this.displayName = profile.displayName || profile.name || this.displayName || this.userId;\n this.portrait = nextProfilePortrait(profile.portrait, this.portrait);\n this.persistSession();\n },\n async refreshProfile() {\n if (!this.userId) {\n return null;\n }\n try {\n const profile = await imClient.getProfile(this.userId);\n this.applyProfile(profile);\n return profile;\n } catch (error) {\n return null;\n }\n },\n async saveProfile({ displayName, portraitFile }) {\n if (!this.userId) {\n throw new Error('请先登录');\n }\n const profile = await imClient.updateProfile(this.userId, {\n displayName,\n portraitFile\n });\n this.applyProfile(profile);\n return profile;\n },\n async changePassword({ oldPassword, newPassword }) {\n if (!this.userId) {\n throw new Error('请先登录');\n }\n await imClient.changePassword({ oldPassword, newPassword });\n return true;\n },\n async resetPasswordWithCode({ mobile, resetCode, newPassword }) {\n await imClient.resetPasswordWithCode({ mobile, resetCode, newPassword });\n return true;\n },\n async connect() {\n if (!this.userId || !this.token) {\n return;\n }\n await imClient.ensureSdk();\n this.sdkVersion = imClient.getSdkVersion();\n this.bindImEvents();\n await imClient.connect(this.userId, this.token);\n },\n bindImEvents() {\n if (this.eventsBound) {\n return;\n }\n this.eventsBound = true;\n imClient.on('connectionStatusChanged', status => {\n this.connected = status.connected;\n this.connectionStatusText = status.statusText || (status.connected ? '已连接' : '未连接');\n });\n },\n logout() {\n imClient.disconnect();\n localStorage.removeItem(STORAGE_KEY);\n this.$reset();\n }\n }\n});\n","import script from \"./App.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ChatShell.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ChatShell.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./LoginView.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./LoginView.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ChatPanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ChatPanel.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./MessageComposer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MessageComposer.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./MessageList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MessageList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ContactPanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ContactPanel.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./FavoriteList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FavoriteList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ContactList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ContactList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ConversationList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ConversationList.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./NavigationRail.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./NavigationRail.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","export { default } from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./App.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./App.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatShell.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatShell.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./LoginView.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./LoginView.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatPanel.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChatPanel.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageComposer.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageComposer.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MessageList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactPanel.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactPanel.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoriteList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoriteList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FavoritePanel.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ConversationList.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ConversationList.vue?vue&type=script&setup=true&lang=js\"","export { default } from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./NavigationRail.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./NavigationRail.vue?vue&type=script&setup=true&lang=js\"","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tif(!__webpack_require__.o(exports, key)) {\n\t\t\t\tif(binding === 0) {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, value: definition[i++] });\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: binding });\n\t\t\t\t}\n\t\t\t} else if(binding === 0) { i++; }\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = function(x) {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkjc_web_im\"] = self[\"webpackChunkjc_web_im\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(1406); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["onMounted","watch","LoginView","ChatShell","useSessionStore","useConversationStore","session","conversations","restore","userId","isAuthenticated","bootstrapDemoData","clearUserState","NavigationRail","ConversationList","ContactList","ChatPanel","ContactPanel","FavoriteList","FavoritePanel","useNavigationStore","useContactStore","navigation","contacts","refreshRemoteConversations","refreshContacts","axios","jrQRCode","computed","onBeforeUnmount","reactive","ref","appConfig","imClient","QR_CODE_PREFIX_PC_SESSION","pendingRegistrationStorageKey","defaultPlatformLogo","emailRegisterEnabled","view","mode","mobile","password","code","sendingCode","info","qrStatus","qrCodeImage","qrSessionToken","qrUserName","qrUserPortrait","qrPolling","qrGeneration","qrExpireTimer","defaultPlatformName","appName","platformName","platformLogo","registerType","registerMethods","phone","email","username","mobileRealVerify","registerPhoneError","phoneCaptcha","phoneCaptchaImage","usernameCaptcha","usernameCaptchaImage","settingRegisterPassword","pendingRegistration","result","resetCode","registerForm","phoneCountryCode","emailCode","usernamePhoneCountryCode","usernamePhone","usernameCode","confirmPassword","registerPasswordForm","countryCodeOptions","value","label","registerMethodOptions","key","canSubmit","length","visibleRegisterMethods","enabled","filter","item","canRegisterSubmit","phoneCaptchaMatched","usernameCaptchaMatched","canSetRegisterPassword","phoneCaptchaStatus","getCaptchaStatus","phoneCaptchaClass","getCaptchaClass","usernameCaptchaStatus","usernameCaptchaClass","qrUserInitial","String","slice","toUpperCase","qrStatusTitle","connecting","qrStatusText","qrRefreshText","methods","some","loadPlatformConfig","loadRegisterConfig","restorePendingRegistration","startQrLogin","stopQrLogin","requestCode","requestAuthCode","error","message","requestRegisterCode","formatPhoneForApi","submit","loginWithPassword","loginWithCode","setLoginMode","nextMode","resetQrState","clearQrExpireTimer","window","clearTimeout","refreshQrLogin","force","generation","pcSession","createPcSession","token","Error","getQrBase64","expireMs","Math","max","min","Number","expired","setTimeout","pollQrLogin","data","loginWithPcSession","codeValue","completePcSessionLogin","userName","displayName","portrait","delay","ms","Promise","resolve","normalizeUsernameCaptchaInput","replace","normalizePhoneCaptchaInput","normalizeRegisterCountryCode","showPhoneCaptcha","randomDigits","renderCaptchaImage","showUsernameCaptcha","inputValue","captchaValue","status","index","floor","random","text","width","height","canvas","document","createElement","context","getContext","fillStyle","fillRect","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","font","textBaseline","textAlign","fillText","toDataURL","submitRegister","clearRegisterPhoneError","formattedPhone","phoneExists","isRegisterPhoneExists","loginCode","registerWithPhone","setPendingRegistration","submitRegisterPassword","resetPasswordWithCode","newPassword","clearPendingRegistration","countryCode","digits","normalizedCode","normalizedPhone","response","get","registerConfigApi","withCredentials","Boolean","mobile_real_verify","platformConfigApi","config","name","trim","logo","logoUrl","version","resolveBrandLogo","applyDocumentBrand","test","appendBrandVersion","startsWith","location","protocol","base","adminServer","URL","toString","url","parsed","href","searchParams","set","title","iconUrl","setDocumentIcon","rel","icon","querySelector","setAttribute","head","appendChild","handleBrandLogoError","post","registerPhoneExistsApi","exists","msg","sessionStorage","removeItem","setItem","JSON","stringify","appServer","pending","parse","getItem","openRegister","backToLogin","MessageList","MessageComposer","activeConversation","groupMenuOpen","singleProfileOpen","singleAliasDraft","singleProfileSaving","singleProfileNotice","singleProfileError","groupPanel","groupBusy","groupDetail","groupMembers","groupAliasDraft","manageSection","selectedAdminIds","selectedKickIds","transferTargetId","profileDraft","announcement","welcomeText","muteDraft","scheduleType","startsAtLocal","endsAtLocal","dailyStart","dailyEnd","muteSaveNotice","muteSaveError","singlePeerId","isGroupConversation","target","raw","id","singleContact","peerId","find","contact","uid","singleProfile","conversation","rawUser","alias","rawName","address","avatarText","includes","type","currentGroupRole","myRole","role","isGroupOwner","canManageGroup","sortedGroupMembers","roleOrder","owner","admin","member","map","sort","left","right","leftOrder","rightOrder","adminCandidateMembers","transferableMembers","messageDetail","messageDetailGroup","group","isMessageDetailGroup","conversationType","messageDetailCounts","counts","read","unread","undelivered","total","kickCandidateMembers","statusText","canSendActiveConversation","connectionStatusText","connected","formatDetailTime","timestamp","Intl","DateTimeFormat","year","month","day","hour","minute","second","hour12","timeZone","resolvedOptions","format","detailMemberName","detailMemberAvatar","detailRoleLabel","closeGroupMenu","toggleGroupMenu","openSingleProfile","then","catch","closeSingleProfile","saveSingleAlias","ok","updateContactAlias","actionError","refreshedContact","nextTitle","upsertConversation","handleSenderProfileUpdated","syncActiveMessages","allowReadReceipt","loadGroupMembers","closeGroupPanel","clearMuteSaveFeedback","loadGroupDetail","getGroupDetail","setActionError","openGroupOverview","openGroupMembers","getGroupMembers","openGroupAlias","detail","myAlias","msToLocalInput","date","Date","local","getTime","getTimezoneOffset","toISOString","localInputToMs","prepareManagementDrafts","setting","muteSetting","startsAtMs","endsAtMs","openGroupManage","openTransferGroup","saveGroupAlias","updateGroupAlias","setActionNotice","toggleAdmin","selected","Set","has","delete","add","Array","from","toggleKick","saveGroupAdmins","setGroupAdmins","saveGroupProfile","updateGroupProfile","updatedAt","now","kickSelectedMembers","confirm","kickGroupMembers","removed","removedIds","saveMuteSetting","updateGroupMuteSetting","leaveCurrentGroup","leaveGroup","dismissCurrentGroup","dismissGroup","transferCurrentGroup","transferGroup","memberAvatar","addEventListener","removeEventListener","props","__props","emit","__emit","emojiOpen","dropActive","textareaEl","imageInput","fileInput","pendingAttachments","dragDepth","emojiList","attachments","forEach","attachment","file","clearPendingAttachments","toggleEmojiPicker","insertEmoji","emoji","element","start","selectionStart","end","selectionEnd","requestAnimationFrame","focus","cursor","setSelectionRange","chooseImage","click","chooseFile","attachmentTypeForFile","fallbackType","emitFiles","files","disabled","validFiles","File","size","push","previewUrl","createObjectURL","releasePendingAttachment","revokeObjectURL","removePendingAttachment","splice","selectAttachment","event","input","hasDraggedFiles","types","dataTransfer","handleDragEnter","dropEffect","handleDragOver","handleDragLeave","filesFromDataTransfer","items","kind","webkitGetAsEntry","isDirectory","getAsFile","handleDrop","imageFilesFromClipboard","clipboardData","handlePaste","imageFiles","preventDefault","nextTick","IMAGE_MIN_SCALE","IMAGE_MAX_SCALE","listEl","viewerStage","contextMenu","visible","x","y","messageTimeFormatter","imageViewer","scale","rotation","offsetX","offsetY","dragging","dragStartX","dragStartY","dragOffsetX","dragOffsetY","senderProfile","roleLabel","contactAlias","groupAlias","isContact","aliasDraft","saving","adding","notice","imageViewerStyle","transform","menuItems","isOwnMessage","direction","isRecalledMessage","action","favoriteLabel","isFavorite","unshift","canRecallOthers","scrollToBottom","scrollTop","scrollHeight","isNearBottom","clientHeight","scrollToMessage","messageId","row","querySelectorAll","dataset","messageKey","scrollIntoView","block","behavior","messages","messageIdentity","join","nextKeys","previousKeys","immediate","attentionMessageId","closeMenu","closeMenuOnEscape","moveImageDrag","stopImageDrag","messageUid","displayMessageText","contentType","canOpenMessageMenu","isSelected","selectedMessageIds","favoriteMessageIds","isAttention","isRecallNotice","recalled","isImageMessage","isFileMessage","isGroupMessage","showGroupSender","senderRoleLabel","senderRole","groupSenderName","senderName","groupSenderAvatarText","openSenderProfile","profile","cachedContact","cachedAlias","remarkAlias","senderPortrait","closeSenderProfile","addSenderAsContact","addContact","aliasSaved","saveSenderAlias","roleBubbleClass","formatFileSize","bytes","toFixed","retryImageLoad","image","currentTarget","HTMLImageElement","attempts","loadRetries","originalUrl","getAttribute","isConnected","separator","src","handleMessageClick","selectionMode","handleImageClick","openImageViewer","resetImageViewer","closeImageViewer","clampImageScale","setImageScale","originX","originY","previousScale","nextScale","rect","getBoundingClientRect","centerX","centerY","top","ratio","zoomImage","delta","rotateImage","handleImageWheel","factor","deltaY","clientX","clientY","startImageDrag","saveViewerImage","downloadUrl","origin","link","download","body","remove","openMenu","innerWidth","innerHeight","chooseMenuAction","formatTime","deliveryState","state","deliveryStatus","deliveryTitle","failureText","errorCode","activeContact","remarkName","editingAlias","aliasSaving","aliasError","openAliasEditor","closeAliasEditor","submitAlias","activeKey","activeFavorite","favoriteTitle","conversationTitle","entry","conversationId","favoritePreview","recallStatus","preview","formatFavoriteTime","favorite","clearFeedback","favoriteText","isImageFavorite","isFileFavorite","favoriteCopyText","copyFavorite","writeClipboard","copyError","navigator","clipboard","writeText","style","position","select","execCommand","removeChild","openConversation","showMessages","setActiveConversation","focusMessage","removeFavorite","keyword","addingContact","addKeyword","filteredContacts","toLowerCase","subtitle","openAddContact","actionInfo","closeAddContact","submitAddContact","added","defineComponent","h","actionMenuOpen","activeAction","actionBusy","searchKeyword","groupName","groupAnnouncement","groupWelcomeText","joinGroupKey","broadcastText","channelName","channelAnnouncement","contactKeyword","selectedContactIds","actionTitles","createGroup","joinGroup","broadcast","createChannel","submitLabels","actionTitle","submitLabel","modalError","modalInfo","actionNotice","normalizedSearchKeyword","contactsByUid","Map","filteredConversationItems","conversationResult","conversationResults","matchesConversation","contactForConversation","conversationTargets","conversationTarget","contactResults","matchesContact","contactResult","submitDisabled","ContactPicker","default","selectedIds","emptyText","emits","setup","class","placeholder","onInput","onClick","alt","searchableValues","values","flatMap","isArray","Object","matchesKeyword","compactKeyword","groupId","group_id","owner_uid","friendAlias","rawFriend","resultKind","resultKey","isListItemActive","activeId","selectListItem","openChat","clearStoreMessages","resetActionFields","toggleActionMenu","closeActionMenu","openAction","closeActionModal","toggleContact","contactId","submitAction","memberIds","broadcastMessage","channel","formatUnread","count","CROP_OUTPUT_SIZE","settingsItems","initials","settingsOpen","settingsSection","passwordSaving","settingsNotice","settingsError","profileOpen","profileSaving","profileNotice","profileError","profileFile","profilePreview","portraitInput","cropperCanvas","cropperPreviewCanvas","passwordDraft","oldPassword","currentAvatarUrl","activeSettingsItem","avatarPreviewViewer","open","avatarCropper","loaded","busy","objectUrl","fileName","baseScale","avatarPreviewStyle","refreshProfile","drawAvatarCropper","revokeProfilePreview","closeAvatarCropper","showContacts","clearProfileFeedback","clearSettingsFeedback","resetPasswordDraft","openSettings","closeSettings","selectSettingsSection","section","revokeCropperObjectUrl","openProfileEditor","closeProfileEditor","closeAvatarPreview","selectPortrait","openAvatarCropper","choosePortraitFile","openAvatarPreview","resetAvatarPreview","zoomAvatarPreview","handleAvatarPreviewWheel","startAvatarPreviewDrag","setPointerCapture","pointerId","moveAvatarPreviewDrag","stopAvatarPreviewDrag","dropPortrait","cropperStageSize","round","cropperBoxSize","rotatedImageSize","quarterTurn","abs","naturalHeight","naturalWidth","clampCropperOffset","cropSize","rotated","scaledWidth","scaledHeight","maxX","maxY","updateCropperBaseScale","drawCanvasImage","outputScale","cropOnly","dpr","devicePixelRatio","setTransform","clearRect","save","translate","rotate","PI","drawImage","fill","previewCanvas","resetCropperTransform","Image","onload","onerror","zoomCropper","rotateCropper","degrees","handleCropperWheel","startCropperDrag","moveCropperDrag","stopCropperDrag","canvasToBlob","quality","reject","toBlob","blob","confirmAvatarCrop","outputCanvas","croppedFile","saveProfile","portraitFile","savePassword","changePassword","logout","clearContacts","currentHost","hostname","runtimeConfig","JC_WEB_IM_CONFIG","appServerOrigin","adminServerOrigin","process","env","VUE_APP_ADMIN_SERVER","VUE_APP_APP_SERVER","VUE_APP_PLATFORM_CONFIG_API","NODE_ENV","VUE_APP_REGISTER_CONFIG_API","VUE_APP_REGISTER_PHONE_EXISTS_API","contactsApi","VUE_APP_CONTACTS_API","updateAliasApi","VUE_APP_UPDATE_ALIAS_API","addContactApi","VUE_APP_ADD_CONTACT_API","conversationActionsApi","VUE_APP_CONVERSATION_ACTIONS_API","sendMessageApi","VUE_APP_SEND_MESSAGE_API","messageActionApi","VUE_APP_MESSAGE_ACTION_API","messageDetailApi","VUE_APP_MESSAGE_DETAIL_API","messagesApi","VUE_APP_MESSAGES_API","profileApi","VUE_APP_PROFILE_API","changePasswordApi","VUE_APP_CHANGE_PASSWORD_API","resetPasswordApi","VUE_APP_RESET_PASSWORD_API","imServerHost","VUE_APP_IM_SERVER_HOST","imRoutePort","VUE_APP_IM_ROUTE_PORT","useWss","VUE_APP_USE_WSS","wsPath","VUE_APP_WS_PATH","wsUrl","VUE_APP_WS_URL","sdkMode","VUE_APP_IM_MODE","syncIntervalMs","VUE_APP_SYNC_INTERVAL_MS","sseEnabled","VUE_APP_SSE_ENABLED","sseTicketApi","VUE_APP_SSE_TICKET_API","sseUrl","VUE_APP_SSE_URL","platform","clientIdStorageKey","authTokenStoragePrefix","createApp","createPinia","App","use","mount","LOCAL_MESSAGE_STORAGE_KEY","LOCAL_HIDDEN_MESSAGE_STORAGE_KEY","LOCAL_RECALLED_MESSAGE_STORAGE_KEY","scopedStorageKey","baseKey","scope","encodeURIComponent","randomId","crypto","randomUUID","replaceAll","readLocalMessages","localStorage","readMessageSet","storageKey","writeMessageSet","messagesByConversation","messageKeys","hasStoredMessage","stored","ids","storeMessageKeys","withRecalledState","applyLocalMessageState","isRecalled","writeLocalMessages","saveLocalMessage","findIndex","mergeSyncedMessages","localMessages","remoteMessages","visibleLocalMessages","localByKey","visibleRemoteMessages","remoteMessage","localMessage","remoteKeys","hasRemoteMatch","pendingLocalMessages","a","b","displayTimestamp","getTitle","fallback","getUniqueEquipment","allowedDevices","canUseLocalLoginFallback","HttpImClient","constructor","listeners","currentUser","getClientId","clientId","restoreClientId","getSdkVersion","ensureSdk","deviceId","uniqueEquipment","persistAppToken","localOnly","flag","device_name","connect","refreshConversationList","disconnect","getConversationList","fetchRemoteConversations","remoteConversations","limit","line","getMessages","fetchRemoteMessages","options","markRead","hideMessages","markMessagesRecalled","recallMessage","editMessage","nextText","editedMessage","editedAt","activityTimestamp","getMessageDetail","sendTextMessage","initialMessage","sender","sentMessage","serverTimestamp","failedMessage","sendAttachmentMessage","mime","formData","FormData","append","getContactList","getServerContactList","headers","getAppAuthHeaders","mapContact","localeCompare","reason","normalizeConversation","nativeStatus","nativeError","groupKey","targetIds","members","targetUserId","adminIds","targetId","getProfile","updateProfile","refreshContactList","createSingleConversation","userInfo","friend","on","eventName","handler","off","payload","appToken","authtoken","authToken","getUrlHost","host","LongConnectionImClient","UnsupportedWildfireImClient","WildfireImClient","HEARTBEAT_INTERVAL_MS","RECONNECT_MIN_MS","RECONNECT_MAX_MS","buildWsUrl","port","path","normalizeConversationId","to","receiver","normalizeIncomingMessage","currentUserId","fromUser","content","searchableContent","socket","heartbeatTimer","reconnectTimer","reconnectAttempts","manualClose","shouldUseMessagePolling","WebSocket","openSocket","clearReconnectTimer","clearHeartbeatTimer","close","readyState","OPEN","sendAuthFrame","CONNECTING","binaryType","scheduleReconnect","onopen","startHeartbeat","onmessage","handleFrame","onclose","sendFrame","frame","send","rawData","ArrayBuffer","cmd","setInterval","clearInterval","RealtimeNotificationClient","source","reconnectAttempt","stop","ticket","endpoint","socketUrl","realtimeNotifications","defineStore","CONTACT_CACHE_MS","normalizeContacts","unique","normalized","loading","eventsBound","refreshSerial","refreshPromise","loadedForUserId","loadedAt","getters","actions","bindImEvents","requestUserId","serial","serverContacts","latest","nextAlias","savedAlias","setActiveContact","LOCAL_CONVERSATION_STORAGE_KEY","LOCAL_FAVORITE_MESSAGES_KEY","recentRealtimeNotifications","isDuplicateRealtimeNotification","previousAt","seenAt","seenKey","readFavoriteMessages","writeFavoriteMessages","readLocalConversations","writeLocalConversations","messageStableKey","messageActivityTimestamp","hasSameRenderState","attachmentLabel","cleanPlaceholderText","messagePreviewText","sanitizeConversation","isHttpUrl","fileNameFromUrl","pathname","decodeURIComponent","split","pop","normalizeMessageForDisplay","quotePrefix","isSameMessage","hasExactMessage","canMarkReadNow","visibilityState","userAction","isPageVisible","activeMessageSyncIntervalMs","configured","isFinite","conversationListSyncIntervalMs","mergeVisibleMessages","currentMessages","syncedMessages","merged","currentMessage","shouldKeepLocal","incomingEditedMessages","previousMessages","nextMessages","previousByKey","previous","notificationAudioContext","playNotificationSound","AudioContext","webkitAudioContext","resume","oscillator","createOscillator","gain","createGain","startAt","currentTime","frequency","setValueAtTime","exponentialRampToValueAtTime","destination","visibleMessagesByConversation","usingDemoData","syncTimer","conversationSyncTimer","readPresenceEventsBound","syncInFlight","pendingReadReceiptConversationId","conversationSyncInFlight","messageSyncTimer","messageSyncQueuedAt","pendingMessageSyncOptions","lastReadSyncByConversation","optimisticMessagesByConversation","quotedMessage","forwardingMessages","editingMessage","editingText","editingMode","messageDetailOpen","messageDetailLoading","messageDetailError","attentionMessageTimer","favoriteMessages","activeFavoriteKey","realtimeSyncTimer","activeMessages","totalUnread","reduce","sum","selectedMessages","loadScopedLocalState","startMessageSync","handleRealtimeNotification","loadActiveMessages","appendMessage","scheduleActiveMessagesSync","replaceMessage","applyRemoteConversations","sendText","appendVisibleMessage","sendAttachment","sendTextToConversation","removeConversation","removedMessages","removedVisibleMessages","removedOptimisticMessages","remote","previousActiveId","nextConversations","conversationsChanged","keepOptimisticMessage","updateConversationFromMessage","syncVisibleMessages","removeMessages","filterMessages","list","replaceLocalMessage","targetMessage","nextMessage","keys","replaceInList","matched","pruneOptimisticMessages","remoteMatched","syncedMessage","syncOptions","skipWhenHidden","wantsReadReceipt","explicitReadReceipt","previousReadSyncAt","pollingReadReceipt","syncedConversationId","editedIncomingMessages","latestMessage","nextSubtitle","nextUpdatedAt","maxWait","runAt","pendingOptions","bindReadPresenceEvents","syncWhenReadable","actionNoticeTimer","actionErrorTimer","handleMessageAction","copyMessages","startEditMessage","deleteMessages","startForward","toggleFavorite","openMessageDetail","quoteMessage","enterSelectionMode","sentAt","closeMessageDetail","setActiveFavorite","quoteText","cancelQuote","toggleSelectedMessage","clearSelection","copySelectedMessages","deleteSelectedMessages","startForwardSelectedMessages","cancelForward","isResend","cancelEditMessage","completeEditMessage","completeForward","targetConversationId","successCount","failedCount","showFavorites","STORAGE_KEY","normalizeStoredPortrait","nextProfilePortrait","profilePortrait","currentPortrait","sdkVersion","applyLoginResult","imToken","persistSession","applyProfile","$reset"],"sourceRoot":""} \ No newline at end of file diff --git a/src/components/chat/MessageList.vue b/src/components/chat/MessageList.vue index 5669044..973009d 100644 --- a/src/components/chat/MessageList.vue +++ b/src/components/chat/MessageList.vue @@ -259,6 +259,12 @@ const contextMenu = reactive({ }); const IMAGE_MIN_SCALE = 0.5; const IMAGE_MAX_SCALE = 6; +const messageTimeFormatter = new Intl.DateTimeFormat('zh-CN', { + hour: '2-digit', + minute: '2-digit', + hour12: false, + timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone +}); const imageViewer = reactive({ visible: false, url: '', @@ -332,21 +338,22 @@ const menuItems = computed(() => { function scrollToBottom() { nextTick(() => { - if (listEl.value) { - const scroll = () => { - if (listEl.value) { - listEl.value.scrollTop = listEl.value.scrollHeight; - } - }; - scroll(); - requestAnimationFrame(() => { - scroll(); - requestAnimationFrame(scroll); - }); - } + requestAnimationFrame(() => { + if (listEl.value) { + listEl.value.scrollTop = listEl.value.scrollHeight; + } + }); }); } +function isNearBottom() { + const element = listEl.value; + if (!element) { + return true; + } + return element.scrollHeight - element.scrollTop - element.clientHeight < 120; +} + function scrollToMessage(messageId) { nextTick(() => { if (!listEl.value || !messageId) { @@ -361,8 +368,12 @@ function scrollToMessage(messageId) { } watch( - () => props.messages.map(message => `${message.id}:${message.status}:${message.deliveryStatus || ''}:${message.messageUid || ''}:${message.recalled ? '1' : ''}`).join('|'), - scrollToBottom, + () => props.messages.map(messageIdentity).join('|'), + (nextKeys, previousKeys) => { + if (!previousKeys || (nextKeys !== previousKeys && isNearBottom())) { + scrollToBottom(); + } + }, { immediate: true } ); @@ -762,12 +773,7 @@ function chooseMenuAction(action) { } function formatTime(timestamp) { - return new Intl.DateTimeFormat('zh-CN', { - hour: '2-digit', - minute: '2-digit', - hour12: false, - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone - }).format(timestamp); + return messageTimeFormatter.format(timestamp); } function deliveryState(message) { diff --git a/src/stores/conversations.js b/src/stores/conversations.js index bdbfafc..c641cab 100644 --- a/src/stores/conversations.js +++ b/src/stores/conversations.js @@ -6,6 +6,26 @@ import { realtimeNotifications } from '@/services/realtimeNotifications'; const LOCAL_CONVERSATION_STORAGE_KEY = 'qmt-web-im-local-conversations-v2'; const LOCAL_FAVORITE_MESSAGES_KEY = 'qmt-web-im-favorite-messages-v1'; +const recentRealtimeNotifications = new Map(); + +function isDuplicateRealtimeNotification(payload) { + const messageId = String(payload?.messageId || ''); + if (!messageId) { + return false; + } + const key = `${payload?.kind || 'message'}:${messageId}`; + const now = Date.now(); + const previousAt = Number(recentRealtimeNotifications.get(key) || 0); + recentRealtimeNotifications.set(key, now); + if (recentRealtimeNotifications.size > 200) { + recentRealtimeNotifications.forEach((seenAt, seenKey) => { + if (now - seenAt > 30000) { + recentRealtimeNotifications.delete(seenKey); + } + }); + } + return now - previousAt < 5000; +} function scopedStorageKey(baseKey) { const session = useSessionStore(); @@ -56,6 +76,17 @@ function messageActivityTimestamp(message) { return Number(message?.activityTimestamp || message?.editedAt || message?.displayTimestamp || message?.timestamp || 0); } +function hasSameRenderState(left, right) { + if (left === right) { + return true; + } + try { + return JSON.stringify(left) === JSON.stringify(right); + } catch (error) { + return false; + } +} + function isRecalledMessage(message) { return Boolean(message?.recalled) || message?.status === 'recalled'; } @@ -616,6 +647,7 @@ export const useConversationStore = defineStore('conversations', { return; } + const previousActiveId = this.activeId; const merged = new Map(); this.conversations.forEach(conversation => { merged.set(conversation.id, conversation); @@ -629,10 +661,14 @@ export const useConversationStore = defineStore('conversations', { }); }); - this.conversations = Array.from(merged.values()) + const nextConversations = Array.from(merged.values()) .map(sanitizeConversation) .sort((a, b) => Number(b.updatedAt || 0) - Number(a.updatedAt || 0)) .slice(0, 100); + const conversationsChanged = !hasSameRenderState(this.conversations, nextConversations); + if (conversationsChanged) { + this.conversations = nextConversations; + } if (!this.conversations.length) { this.activeId = ''; @@ -646,8 +682,12 @@ export const useConversationStore = defineStore('conversations', { if (!this.conversations.find(item => item.id === this.activeId)) { this.activeId = this.conversations[0].id; } - writeLocalConversations(this.conversations); - this.loadActiveMessages(); + if (conversationsChanged) { + writeLocalConversations(this.conversations); + } + if (previousActiveId !== this.activeId || !this.messagesByConversation[this.activeId]) { + this.loadActiveMessages(); + } }, appendMessage(conversationId, message) { message = normalizeMessageForDisplay(message); @@ -755,13 +795,17 @@ export const useConversationStore = defineStore('conversations', { this.syncVisibleMessages(conversationId); }, syncVisibleMessages(conversationId) { - this.visibleMessagesByConversation = { - ...this.visibleMessagesByConversation, - [conversationId]: mergeVisibleMessages( - this.optimisticMessagesByConversation[conversationId] || [], - this.messagesByConversation[conversationId] || [] - ) - }; + const currentMessages = this.visibleMessagesByConversation[conversationId] || []; + const nextMessages = mergeVisibleMessages( + this.optimisticMessagesByConversation[conversationId] || [], + this.messagesByConversation[conversationId] || [] + ); + if (!hasSameRenderState(currentMessages, nextMessages)) { + this.visibleMessagesByConversation = { + ...this.visibleMessagesByConversation, + [conversationId]: nextMessages + }; + } }, keepOptimisticMessage(conversationId, message) { if (!this.optimisticMessagesByConversation[conversationId]) { @@ -813,10 +857,13 @@ export const useConversationStore = defineStore('conversations', { this.loading = true; const messages = imClient.getMessages(conversation, 30); this.pruneOptimisticMessages(conversation.id, messages); - this.messagesByConversation = { - ...this.messagesByConversation, - [conversation.id]: mergeVisibleMessages(this.messagesByConversation[conversation.id] || [], messages) - }; + const nextMessages = mergeVisibleMessages(this.messagesByConversation[conversation.id] || [], messages); + if (!hasSameRenderState(this.messagesByConversation[conversation.id] || [], nextMessages)) { + this.messagesByConversation = { + ...this.messagesByConversation, + [conversation.id]: nextMessages + }; + } this.syncVisibleMessages(conversation.id); this.loading = false; this.syncActiveMessages(syncOptions); @@ -857,10 +904,16 @@ export const useConversationStore = defineStore('conversations', { } const editedIncomingMessages = incomingEditedMessages(previousMessages, messages); this.pruneOptimisticMessages(syncedConversationId, messages); - this.messagesByConversation = { - ...this.messagesByConversation, - [syncedConversationId]: mergeVisibleMessages(this.messagesByConversation[syncedConversationId] || [], messages) - }; + const nextMessages = mergeVisibleMessages( + this.messagesByConversation[syncedConversationId] || [], + messages + ); + if (!hasSameRenderState(this.messagesByConversation[syncedConversationId] || [], nextMessages)) { + this.messagesByConversation = { + ...this.messagesByConversation, + [syncedConversationId]: nextMessages + }; + } this.syncVisibleMessages(syncedConversationId); if (editedIncomingMessages.length && syncedConversationId === this.activeId) { this.focusMessage(editedIncomingMessages.sort((a, b) => messageActivityTimestamp(b) - messageActivityTimestamp(a))[0]); @@ -873,9 +926,13 @@ export const useConversationStore = defineStore('conversations', { return latestMessage; }, null); if (latest) { - conversation.subtitle = messagePreviewText(latest); - conversation.updatedAt = messageActivityTimestamp(latest); - writeLocalConversations(this.conversations); + const nextSubtitle = messagePreviewText(latest); + const nextUpdatedAt = messageActivityTimestamp(latest); + if (conversation.subtitle !== nextSubtitle || Number(conversation.updatedAt || 0) !== nextUpdatedAt) { + conversation.subtitle = nextSubtitle; + conversation.updatedAt = nextUpdatedAt; + writeLocalConversations(this.conversations); + } } } catch (error) { // Keep the local view usable if a polling request misses. @@ -931,7 +988,10 @@ export const useConversationStore = defineStore('conversations', { this.refreshRemoteConversations(); } }, - handleRealtimeNotification() { + handleRealtimeNotification(payload) { + if (isDuplicateRealtimeNotification(payload)) { + return; + } window.clearTimeout(this.realtimeSyncTimer); this.realtimeSyncTimer = window.setTimeout(() => { this.refreshRemoteConversations();