UNPKG

logyo

Version:

A beautiful, feature-rich terminal logger with animations, gradients, and comprehensive logging capabilities

1 lines â€ĸ 46 kB
{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["import chalk from 'chalk';\r\n\r\nconst createLogger = () => {\r\n // Expanded color palette with gradients\r\n const colors = {\r\n primary: chalk.hex('#00D9FF'), // Cyan blue\r\n secondary: chalk.hex('#667EEA'), // Blue violet\r\n success: chalk.hex('#00FF88'), // Bright green\r\n warning: chalk.hex('#FFB800'), // Orange\r\n error: chalk.hex('#FF4757'), // Red\r\n info: chalk.hex('#A55EEA'), // Purple\r\n owner: chalk.hex('#FF6B35'), // Orange red\r\n admin: chalk.hex('#FFA726'), // Amber\r\n group: chalk.hex('#26C6DA'), // Cyan\r\n private: chalk.hex('#AB47BC'), // Purple\r\n command: chalk.hex('#42A5F5'), // Blue\r\n media: chalk.hex('#FF7043'), // Deep orange\r\n quoted: chalk.hex('#EC407A'), // Pink\r\n time: chalk.hex('#66BB6A'), // Light green\r\n user: chalk.hex('#5C6BC0'), // Indigo\r\n message: chalk.hex('#FFF176'), // Light yellow\r\n system: chalk.hex('#78909C'), // Blue grey\r\n debug: chalk.hex('#9E9E9E'), // Grey\r\n performance: chalk.hex('#4CAF50'), // Green\r\n security: chalk.hex('#F44336'), // Red\r\n bot: chalk.hex('#2196F3'), // Blue\r\n gradient1: chalk.hex('#667EEA'), // Gradient start\r\n gradient2: chalk.hex('#764BA2'), // Gradient end\r\n neon: chalk.hex('#39FF14'), // Neon green\r\n gold: chalk.hex('#FFD700') // Gold\r\n };\r\n\r\n const icons = {\r\n command: '⚡',\r\n message: 'đŸ’Ŧ',\r\n media: '📎',\r\n reaction: '🎭',\r\n success: '✅',\r\n error: '❌',\r\n warning: 'âš ī¸',\r\n info: 'â„šī¸',\r\n\r\n // User types\r\n owner: '👑',\r\n admin: 'đŸ›Ąī¸',\r\n user: '👤',\r\n bot: '🤖',\r\n\r\n // Chat types\r\n group: 'đŸ‘Ĩ',\r\n private: '🔒',\r\n\r\n // Status indicators\r\n online: 'đŸŸĸ',\r\n offline: '🔴',\r\n loading: 'âŗ',\r\n processing: 'âš™ī¸',\r\n\r\n // Performance\r\n rocket: '🚀',\r\n star: '⭐',\r\n fire: 'đŸ”Ĩ',\r\n lightning: '⚡',\r\n timer: 'âąī¸',\r\n chart: '📊',\r\n\r\n // System\r\n time: '⏰',\r\n shield: 'đŸ›Ąī¸',\r\n key: '🔑',\r\n lock: '🔒',\r\n unlock: '🔓',\r\n gear: 'âš™ī¸',\r\n cpu: 'đŸ’ģ',\r\n memory: '🧠',\r\n database: 'đŸ—„ī¸',\r\n\r\n // Special effects\r\n sparkles: '✨',\r\n diamond: '💎',\r\n crown: '👑',\r\n magic: 'đŸĒ„',\r\n crystal: '🔮'\r\n };\r\n\r\n // Animation frames for loading\r\n const loadingFrames = {\r\n dots: ['⠋', '⠙', 'â š', 'â ¸', 'â ŧ', 'â ´', 'â Ļ', 'â §', '⠇', '⠏'],\r\n spin: ['|', '/', '-', '\\\\'],\r\n bounce: ['⠁', '⠂', '⠄', '⡀', 'âĸ€', 'â  ', '⠐', '⠈'],\r\n pulse: ['●', '◐', '◑', '◒', '◓', '○'],\r\n wave: ['▁', '▂', '▃', '▄', '▅', '▆', '▇', '█', '▇', '▆', '▅', '▄', '▃', '▁']\r\n };\r\n\r\n // Utility functions\r\n const createSeparator = (char = '─', length = 80, color = colors.primary) => {\r\n return color(char.repeat(length));\r\n };\r\n\r\n const createGradientText = (text, startColor = colors.gradient1, endColor = colors.gradient2) => {\r\n const chars = text.split('');\r\n const totalChars = chars.length;\r\n\r\n return chars.map((char, index) => {\r\n const ratio = index / (totalChars - 1);\r\n // Simple gradient simulation by alternating colors\r\n return ratio < 0.5 ? startColor(char) : endColor(char);\r\n }).join('');\r\n };\r\n\r\n const createBox = (content, title = '', color = colors.primary, style = 'rounded') => {\r\n const lines = content.split('\\n');\r\n const maxLength = Math.max(...lines.map(line => line.replace(/\\x1b\\[[0-9;]*m/g, '').length), title.length);\r\n const width = Math.min(maxLength + 4, 100);\r\n\r\n const styles = {\r\n rounded: {\r\n topLeft: '╭', topRight: '╮', bottomLeft: '╰', bottomRight: '╯',\r\n horizontal: '─', vertical: '│', cross: 'â”ŧ'\r\n },\r\n square: {\r\n topLeft: '┌', topRight: '┐', bottomLeft: '└', bottomRight: '┘',\r\n horizontal: '─', vertical: '│', cross: 'â”ŧ'\r\n },\r\n double: {\r\n topLeft: '╔', topRight: '╗', bottomLeft: '╚', bottomRight: '╝',\r\n horizontal: '═', vertical: '║', cross: 'â•Ŧ'\r\n }\r\n };\r\n\r\n const s = styles[style] || styles.rounded;\r\n\r\n const topLine = `${s.topLeft}${s.horizontal.repeat(width - 2)}${s.topRight}`;\r\n const bottomLine = `${s.bottomLeft}${s.horizontal.repeat(width - 2)}${s.bottomRight}`;\r\n const titleLine = title ? `${s.vertical} ${color.bold(title.padEnd(width - 4))} ${s.vertical}` : '';\r\n const separatorLine = title ? `├${s.horizontal.repeat(width - 2)}┤` : '';\r\n\r\n const contentLines = lines.map(line => {\r\n const cleanLine = line.replace(/\\x1b\\[[0-9;]*m/g, '');\r\n const padding = width - 4 - cleanLine.length;\r\n return `${s.vertical} ${line}${' '.repeat(Math.max(0, padding))} ${s.vertical}`;\r\n });\r\n\r\n return color([\r\n topLine,\r\n titleLine,\r\n separatorLine,\r\n ...contentLines,\r\n bottomLine\r\n ].filter(Boolean).join('\\n'));\r\n };\r\n\r\n const getTimeStamp = (includeDate = false) => {\r\n const now = new Date();\r\n const timeStr = now.toLocaleTimeString('en-US', {\r\n hour12: false,\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit'\r\n });\r\n\r\n if (includeDate) {\r\n const dateStr = now.toLocaleDateString('en-US');\r\n return `${dateStr} ${timeStr}`;\r\n }\r\n return timeStr;\r\n };\r\n\r\n const formatBytes = (bytes, decimals = 2) => {\r\n if (bytes === 0) return '0 Bytes';\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n };\r\n\r\n const formatDuration = (ms) => {\r\n if (ms < 1000) return `${ms}ms`;\r\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\r\n if (ms < 3600000) return `${Math.floor(ms / 60000)}m ${Math.floor((ms % 60000) / 1000)}s`;\r\n return `${Math.floor(ms / 3600000)}h ${Math.floor((ms % 3600000) / 60000)}m`;\r\n };\r\n\r\n\r\n\r\n return {\r\n\r\n logStartup: (botInfo) => {\r\n console.clear();\r\n\r\n const maxWidth = 80;\r\n const termWidth = Math.min(process.stdout.columns || 80, maxWidth);\r\n\r\n const stripAnsi = (str) =>\r\n str.replace(/\\x1B(?:[@-Z\\\\-_]|\\[[0-?]*[ -/]*[@-~])/g, '');\r\n\r\n const centerLabelValue = (label, value) => {\r\n const combined = `${label} ${value}`;\r\n const cleanLength = stripAnsi(combined).length;\r\n\r\n const leftPadding = Math.max(0, Math.floor((termWidth - cleanLength) / 2));\r\n const rightPadding = Math.max(0, termWidth - cleanLength - leftPadding);\r\n\r\n return ' '.repeat(leftPadding) + combined + ' '.repeat(rightPadding);\r\n };\r\n\r\n const separator = '-'.repeat(termWidth);\r\n\r\n const version = botInfo.version || '1.0.0';\r\n const commandCount = botInfo.commandCount || 0;\r\n const startedAt = getTimeStamp(true);\r\n const botName = botInfo.name || '🤖 APPLICATION LOGGER 🤖';\r\n\r\n const banner = [\r\n separator,\r\n centerLabelValue(\r\n createGradientText(botName, colors.neon, colors.gold),\r\n ''\r\n ),\r\n separator,\r\n centerLabelValue(\r\n colors.success(`${icons.success} Status:`),\r\n colors.success.bold('ONLINE & OPERATIONAL')\r\n ),\r\n centerLabelValue(\r\n colors.info(`${icons.rocket} Version:`),\r\n colors.info.bold(`v${version}`)\r\n ),\r\n centerLabelValue(\r\n colors.primary(`${icons.bot} WhatsApp:`),\r\n colors.primary.bold('Connected & Ready')\r\n ),\r\n centerLabelValue(\r\n colors.time(`${icons.time} Started:`),\r\n colors.time.bold(startedAt)\r\n ),\r\n centerLabelValue(\r\n colors.performance(`${icons.cpu} System:`),\r\n colors.performance.bold(`Node.js ${process.version}`)\r\n ),\r\n centerLabelValue(\r\n colors.security(`${icons.shield} Security:`),\r\n colors.security.bold('All systems secured')\r\n ),\r\n separator,\r\n centerLabelValue(colors.neon('✨ Bot is ready to handle messages! ✨'), ''),\r\n separator,\r\n ].join('\\n');\r\n\r\n console.log(banner);\r\n },\r\n\r\n logMessage: (messageData) => {\r\n const {\r\n messageType,\r\n body,\r\n senderName,\r\n senderNumber,\r\n chatType,\r\n groupName,\r\n groupSize,\r\n isOwner,\r\n isAdmin,\r\n isCommand,\r\n hasMedia,\r\n isQuoted,\r\n executionTime\r\n } = messageData;\r\n\r\n // Status badges with beautiful styling\r\n const badges = [];\r\n if (isOwner) badges.push(colors.owner(`${icons.crown} OWNER`));\r\n if (isAdmin) badges.push(colors.admin(`${icons.shield} ADMIN`));\r\n if (isQuoted) badges.push(colors.quoted(`${icons.quoted} REPLY`));\r\n if (hasMedia) badges.push(colors.media(`${icons.media} MEDIA`));\r\n\r\n // Message type styling\r\n const typeIcon = isCommand ? icons.lightning : hasMedia ? icons.media : icons.message;\r\n const typeColor = isCommand ? colors.command : hasMedia ? colors.media : colors.info;\r\n const typeText = messageType.toUpperCase();\r\n\r\n // Chat info with enhanced styling\r\n const chatIcon = chatType === 'group' ? icons.group : icons.private;\r\n const chatColor = chatType === 'group' ? colors.group : colors.private;\r\n const chatInfo = chatType === 'group'\r\n ? `${chatIcon} ${chatColor.bold(groupName || 'Unknown Group')} ${colors.system(`(${groupSize} members)`)}`\r\n : `${chatIcon} ${chatColor.bold('Private Chat')}`;\r\n\r\n // Performance indicator\r\n const perfIndicator = executionTime\r\n ? executionTime > 1000\r\n ? colors.warning(`${icons.timer} ${executionTime}ms`)\r\n : colors.success(`${icons.timer} ${executionTime}ms`)\r\n : '';\r\n\r\n const displayMessage = body.length > 50 ? body.substring(0, 47) + '...' : body;\r\n\r\n console.log(`\r\n${createSeparator('═', 80, typeColor)}\r\n${typeColor.bold(`${typeIcon} [${typeText}]`)} ${colors.time(`${icons.time} ${getTimeStamp()}`)} ${perfIndicator}\r\n${colors.message(`${icons.message} Message:`)} ${colors.message.bold(displayMessage || `[${messageType}]`)}\r\n${colors.user(`${icons.user} From:`)} ${colors.user.bold(senderName)} ${colors.system(`(+${senderNumber})`)}\r\n${colors.info(`${icons.database} Chat:`)} ${chatInfo}\r\n${badges.length > 0 ? `${colors.info(`${icons.star} Tags:`)} ${badges.join(' ')}` : ''}\r\n${createSeparator('─', 80, colors.system)}\r\n`);\r\n },\r\n\r\n // command logging\r\n logCommand: (commandName, status = 'executing', executionTime = null, context = {}) => {\r\n const timestamp = colors.time(`[${getTimeStamp()}]`);\r\n\r\n switch (status) {\r\n case 'executing':\r\n console.log(`${colors.command(`${icons.gear} ${timestamp}`)} ${colors.command.bold('EXECUTING')} ${colors.command(`command: ${commandName}`)}`);\r\n break;\r\n\r\n case 'success':\r\n const successColor = executionTime > 1000 ? colors.warning : colors.success;\r\n console.log(`${successColor(`${icons.success} ${timestamp}`)} ${successColor.bold('SUCCESS')} ${successColor(`\"${commandName}\" completed in ${executionTime}ms`)}`);\r\n break;\r\n\r\n case 'error':\r\n console.log(`${colors.error(`${icons.error} ${timestamp}`)} ${colors.error.bold('FAILED')} ${colors.error(`\"${commandName}\" error after ${executionTime}ms`)}`);\r\n break;\r\n\r\n case 'cooldown':\r\n console.log(`${colors.warning(`${icons.timer} ${timestamp}`)} ${colors.warning.bold('COOLDOWN')} ${colors.warning(`\"${commandName}\" rate limited`)}`);\r\n break;\r\n\r\n case 'permission':\r\n console.log(`${colors.security(`${icons.lock} ${timestamp}`)} ${colors.security.bold('DENIED')} ${colors.security(`\"${commandName}\" insufficient permissions`)}`);\r\n break;\r\n }\r\n },\r\n\r\n // System logging with categories\r\n logSystem: (message, type = 'info', category = 'SYSTEM') => {\r\n const colorMap = {\r\n success: colors.success,\r\n error: colors.error,\r\n warning: colors.warning,\r\n info: colors.info,\r\n debug: colors.debug,\r\n security: colors.security,\r\n performance: colors.performance\r\n };\r\n\r\n const iconMap = {\r\n success: icons.success,\r\n error: icons.error,\r\n warning: icons.warning,\r\n info: icons.info,\r\n debug: icons.gear,\r\n security: icons.shield,\r\n performance: icons.chart\r\n };\r\n\r\n const color = colorMap[type] || colors.info;\r\n const icon = iconMap[type] || icons.info;\r\n const timestamp = colors.time(`[${getTimeStamp()}]`);\r\n\r\n console.log(`${color(`${icon} ${timestamp}`)} ${color.bold(`[${category}]`)} ${color(message)}`);\r\n },\r\n\r\n // error logging with stack traces\r\n logError: (error, context = {}) => {\r\n const timestamp = getTimeStamp(true);\r\n const errorId = Math.random().toString(36).substring(2, 8).toUpperCase();\r\n\r\n const errorDetails = [\r\n `${colors.error.bold('Error ID:')} ${colors.error(errorId)}`,\r\n `${colors.error.bold('Message:')} ${error.message || 'Unknown error'}`,\r\n `${colors.info.bold('Command:')} ${context.command || 'N/A'}`,\r\n `${colors.info.bold('User:')} ${context.user || 'Unknown'}`,\r\n `${colors.info.bold('Time:')} ${timestamp}`,\r\n `${colors.info.bold('Process:')} PID ${process.pid}`\r\n ];\r\n\r\n if (context.stack) {\r\n const stackLines = context.stack.split('\\n').slice(0, 3);\r\n errorDetails.push(`${colors.warning.bold('Stack:')} ${stackLines[0]}`);\r\n stackLines.slice(1).forEach(line => {\r\n errorDetails.push(` ${colors.debug(line.trim())}`);\r\n });\r\n }\r\n\r\n const errorBox = createBox(\r\n errorDetails.join('\\n'),\r\n `${icons.error} CRITICAL ERROR - ID: ${errorId}`,\r\n colors.error,\r\n 'double'\r\n );\r\n\r\n console.log('\\n' + errorBox + '\\n');\r\n },\r\n\r\n // Performance monitoring\r\n logPerformance: (stats) => {\r\n const uptime = formatDuration(stats.uptime || 0);\r\n const memUsage = process.memoryUsage();\r\n\r\n const perfData = [\r\n `${colors.success(`${icons.rocket} Commands Executed:`)} ${colors.success.bold(stats.commandsExecuted || 0)}`,\r\n `${colors.info(`${icons.timer} Average Response:`)} ${colors.info.bold((stats.averageResponseTime || 0).toFixed(2) + 'ms')}`,\r\n `${colors.warning(`${icons.chart} Commands/Min:`)} ${colors.warning.bold((stats.commandsPerMinute || 0).toFixed(1))}`,\r\n `${colors.error(`${icons.error} Total Errors:`)} ${colors.error.bold(stats.errors || 0)}`,\r\n `${colors.performance(`${icons.time} Uptime:`)} ${colors.performance.bold(uptime)}`,\r\n `${colors.system(`${icons.memory} Memory:`)} ${colors.system.bold(formatBytes(memUsage.heapUsed))}/${formatBytes(memUsage.heapTotal)}`,\r\n `${colors.primary(`${icons.cpu} CPU:`)} ${colors.primary.bold(process.cpuUsage().user / 1000000 + 'ms')}`\r\n ];\r\n\r\n const perfBox = createBox(\r\n perfData.join('\\n'),\r\n `${icons.chart} PERFORMANCE DASHBOARD`,\r\n colors.performance,\r\n 'rounded'\r\n );\r\n\r\n console.log('\\n' + perfBox + '\\n');\r\n },\r\n\r\n // Connection status logging\r\n logConnection: (status, details = {}) => {\r\n const statusColors = {\r\n connecting: colors.warning,\r\n connected: colors.success,\r\n disconnected: colors.error,\r\n reconnecting: colors.info\r\n };\r\n\r\n const statusIcons = {\r\n connecting: icons.loading,\r\n connected: icons.online,\r\n disconnected: icons.offline,\r\n reconnecting: icons.gear\r\n };\r\n\r\n const color = statusColors[status] || colors.info;\r\n const icon = statusIcons[status] || icons.info;\r\n\r\n console.log(`${color(`${icon} [${getTimeStamp()}] CONNECTION ${status.toUpperCase()}`)} ${color(JSON.stringify(details))}`);\r\n },\r\n\r\n // Loading animations\r\n loading: (message, type = 'dots') => {\r\n const frames = loadingFrames[type] || loadingFrames.dots;\r\n let i = 0;\r\n\r\n return setInterval(() => {\r\n process.stdout.write(`\\r${colors.primary(frames[i])} ${colors.primary(message)}`);\r\n i = (i + 1) % frames.length;\r\n }, 100);\r\n },\r\n\r\n // Clear loading\r\n clearLoading: () => {\r\n process.stdout.write('\\r\\x1b[K');\r\n },\r\n\r\n // Security alerts\r\n logSecurity: (event, severity = 'medium', details = {}) => {\r\n const severityColors = {\r\n low: colors.info,\r\n medium: colors.warning,\r\n high: colors.error,\r\n critical: colors.security\r\n };\r\n\r\n const color = severityColors[severity] || colors.warning;\r\n const securityBox = createBox(\r\n `${colors.security.bold('Event:')} ${event}\\n` +\r\n `${colors.info.bold('Severity:')} ${color.bold(severity.toUpperCase())}\\n` +\r\n `${colors.info.bold('Time:')} ${getTimeStamp(true)}\\n` +\r\n `${colors.info.bold('Details:')} ${JSON.stringify(details, null, 2)}`,\r\n `${icons.shield} SECURITY ALERT`,\r\n color,\r\n 'double'\r\n );\r\n\r\n console.log('\\n' + securityBox + '\\n');\r\n },\r\n\r\n // Export utilities\r\n colors,\r\n icons,\r\n utils: {\r\n createSeparator,\r\n createBox,\r\n createGradientText,\r\n getTimeStamp,\r\n formatBytes,\r\n formatDuration\r\n }\r\n };\r\n};\r\n\r\n// Create and export the logger instance\r\nexport const logger = createLogger();\r\n\r\nexport default logger;"],"names":["createLogger","colors","primary","chalk","hex","secondary","success","warning","error","info","owner","admin","group","private","command","media","quoted","time","user","message","system","debug","performance","security","bot","gradient1","gradient2","neon","gold","icons","reaction","online","offline","loading","processing","rocket","star","fire","lightning","timer","chart","shield","key","lock","unlock","gear","cpu","memory","database","sparkles","diamond","crown","magic","crystal","loadingFrames","dots","spin","bounce","pulse","wave","createSeparator","char","length","color","repeat","createGradientText","text","startColor","endColor","chars","split","totalChars","map","index","ratio","join","createBox","content","title","style","lines","maxLength","Math","max","line","replace","width","min","styles","rounded","topLeft","topRight","bottomLeft","bottomRight","horizontal","vertical","cross","square","double","s","topLine","bottomLine","titleLine","bold","padEnd","separatorLine","contentLines","cleanLine","padding","filter","Boolean","getTimeStamp","includeDate","now","Date","timeStr","toLocaleTimeString","hour12","hour","minute","second","dateStr","toLocaleDateString","formatBytes","bytes","decimals","k","dm","sizes","i","floor","log","parseFloat","pow","toFixed","formatDuration","ms","logStartup","botInfo","console","clear","maxWidth","termWidth","process","stdout","columns","stripAnsi","str","centerLabelValue","label","value","combined","cleanLength","leftPadding","rightPadding","separator","version","commandCount","startedAt","botName","name","banner","logMessage","messageData","messageType","body","senderName","senderNumber","chatType","groupName","groupSize","isOwner","isAdmin","isCommand","hasMedia","isQuoted","executionTime","badges","push","typeIcon","typeColor","typeText","toUpperCase","chatIcon","chatColor","chatInfo","perfIndicator","displayMessage","substring","logCommand","commandName","status","context","timestamp","successColor","logSystem","type","category","colorMap","iconMap","icon","logError","errorId","random","toString","errorDetails","pid","stack","stackLines","slice","forEach","trim","errorBox","logPerformance","stats","uptime","memUsage","memoryUsage","perfData","commandsExecuted","averageResponseTime","commandsPerMinute","errors","heapUsed","heapTotal","cpuUsage","perfBox","logConnection","details","statusColors","connecting","connected","disconnected","reconnecting","statusIcons","JSON","stringify","frames","setInterval","write","clearLoading","logSecurity","event","severity","severityColors","low","medium","high","critical","securityBox","utils","logger"],"mappings":";;;;;;AAEA,MAAMA,YAAY,GAAGA,MAAM;AACvB;AACA,EAAA,MAAMC,MAAM,GAAG;AACXC,IAAAA,OAAO,EAAEC,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAO;AACpCC,IAAAA,SAAS,EAAEF,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAK;AACpCE,IAAAA,OAAO,EAAEH,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAO;AACpCG,IAAAA,OAAO,EAAEJ,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAO;AACpCI,IAAAA,KAAK,EAAEL,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAS;AACpCK,IAAAA,IAAI,EAAEN,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAU;AACpCM,IAAAA,KAAK,EAAEP,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAS;AACpCO,IAAAA,KAAK,EAAER,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAS;AACpCQ,IAAAA,KAAK,EAAET,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAS;AACpCS,IAAAA,OAAO,EAAEV,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAO;AACpCU,IAAAA,OAAO,EAAEX,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAO;AACpCW,IAAAA,KAAK,EAAEZ,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAS;AACpCY,IAAAA,MAAM,EAAEb,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAQ;AACpCa,IAAAA,IAAI,EAAEd,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAU;AACpCc,IAAAA,IAAI,EAAEf,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAU;AACpCe,IAAAA,OAAO,EAAEhB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAO;AACpCgB,IAAAA,MAAM,EAAEjB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAQ;AACpCiB,IAAAA,KAAK,EAAElB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAS;AACpCkB,IAAAA,WAAW,EAAEnB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAG;AACpCmB,IAAAA,QAAQ,EAAEpB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAM;AACpCoB,IAAAA,GAAG,EAAErB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAW;AACpCqB,IAAAA,SAAS,EAAEtB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAK;AACpCsB,IAAAA,SAAS,EAAEvB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAK;AACpCuB,IAAAA,IAAI,EAAExB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;AAAU;AACpCwB,IAAAA,IAAI,EAAEzB,KAAK,CAACC,GAAG,CAAC,SAAS,CAAC;GAC7B;AAED,EAAA,MAAMyB,KAAK,GAAG;AACVf,IAAAA,OAAO,EAAE,GAAG;AACZK,IAAAA,OAAO,EAAE,IAAI;AACbJ,IAAAA,KAAK,EAAE,IAAI;AACXe,IAAAA,QAAQ,EAAE,IAAI;AACdxB,IAAAA,OAAO,EAAE,GAAG;AACZE,IAAAA,KAAK,EAAE,GAAG;AACVD,IAAAA,OAAO,EAAE,IAAI;AACbE,IAAAA,IAAI,EAAE,IAAI;AAEV;AACAC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,KAAK,EAAE,KAAK;AACZO,IAAAA,IAAI,EAAE,IAAI;AACVM,IAAAA,GAAG,EAAE,IAAI;AAET;AACAZ,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,OAAO,EAAE,IAAI;AAEb;AACAkB,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,OAAO,EAAE,GAAG;AACZC,IAAAA,UAAU,EAAE,IAAI;AAEhB;AACAC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,IAAI,EAAE,GAAG;AACTC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,SAAS,EAAE,GAAG;AACdC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,KAAK,EAAE,IAAI;AAEX;AACAvB,IAAAA,IAAI,EAAE,GAAG;AACTwB,IAAAA,MAAM,EAAE,KAAK;AACbC,IAAAA,GAAG,EAAE,IAAI;AACTC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,IAAI,EAAE,IAAI;AACVC,IAAAA,GAAG,EAAE,IAAI;AACTC,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,QAAQ,EAAE,KAAK;AAEf;AACAC,IAAAA,QAAQ,EAAE,GAAG;AACbC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,OAAO,EAAE;GACZ;;AAED;AACA,EAAA,MAAMC,aAAa,GAAG;IAClBC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACxDC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AAC3BC,IAAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChDC,IAAAA,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACrCC,IAAAA,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;GAC9E;;AAED;AACA,EAAA,MAAMC,eAAe,GAAGA,CAACC,IAAI,GAAG,GAAG,EAAEC,MAAM,GAAG,EAAE,EAAEC,KAAK,GAAG9D,MAAM,CAACC,OAAO,KAAK;IACzE,OAAO6D,KAAK,CAACF,IAAI,CAACG,MAAM,CAACF,MAAM,CAAC,CAAC;EACrC,CAAC;AAED,EAAA,MAAMG,kBAAkB,GAAGA,CAACC,IAAI,EAAEC,UAAU,GAAGlE,MAAM,CAACwB,SAAS,EAAE2C,QAAQ,GAAGnE,MAAM,CAACyB,SAAS,KAAK;AAC7F,IAAA,MAAM2C,KAAK,GAAGH,IAAI,CAACI,KAAK,CAAC,EAAE,CAAC;AAC5B,IAAA,MAAMC,UAAU,GAAGF,KAAK,CAACP,MAAM;IAE/B,OAAOO,KAAK,CAACG,GAAG,CAAC,CAACX,IAAI,EAAEY,KAAK,KAAK;AAC9B,MAAA,MAAMC,KAAK,GAAGD,KAAK,IAAIF,UAAU,GAAG,CAAC,CAAC;AACtC;AACA,MAAA,OAAOG,KAAK,GAAG,GAAG,GAAGP,UAAU,CAACN,IAAI,CAAC,GAAGO,QAAQ,CAACP,IAAI,CAAC;AAC1D,IAAA,CAAC,CAAC,CAACc,IAAI,CAAC,EAAE,CAAC;EACf,CAAC;AAED,EAAA,MAAMC,SAAS,GAAGA,CAACC,OAAO,EAAEC,KAAK,GAAG,EAAE,EAAEf,KAAK,GAAG9D,MAAM,CAACC,OAAO,EAAE6E,KAAK,GAAG,SAAS,KAAK;AAClF,IAAA,MAAMC,KAAK,GAAGH,OAAO,CAACP,KAAK,CAAC,IAAI,CAAC;AACjC,IAAA,MAAMW,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,GAAGH,KAAK,CAACR,GAAG,CAACY,IAAI,IAAIA,IAAI,CAACC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAACvB,MAAM,CAAC,EAAEgB,KAAK,CAAChB,MAAM,CAAC;IAC1G,MAAMwB,KAAK,GAAGJ,IAAI,CAACK,GAAG,CAACN,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC;AAE1C,IAAA,MAAMO,MAAM,GAAG;AACXC,MAAAA,OAAO,EAAE;AACLC,QAAAA,OAAO,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEC,QAAAA,WAAW,EAAE,GAAG;AAC9DC,QAAAA,UAAU,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,KAAK,EAAE;OAC1C;AACDC,MAAAA,MAAM,EAAE;AACJP,QAAAA,OAAO,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEC,QAAAA,WAAW,EAAE,GAAG;AAC9DC,QAAAA,UAAU,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,KAAK,EAAE;OAC1C;AACDE,MAAAA,MAAM,EAAE;AACJR,QAAAA,OAAO,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEC,QAAAA,WAAW,EAAE,GAAG;AAC9DC,QAAAA,UAAU,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,KAAK,EAAE;AAC3C;KACH;IAED,MAAMG,CAAC,GAAGX,MAAM,CAACT,KAAK,CAAC,IAAIS,MAAM,CAACC,OAAO;IAEzC,MAAMW,OAAO,GAAG,CAAA,EAAGD,CAAC,CAACT,OAAO,CAAA,EAAGS,CAAC,CAACL,UAAU,CAAC9B,MAAM,CAACsB,KAAK,GAAG,CAAC,CAAC,CAAA,EAAGa,CAAC,CAACR,QAAQ,CAAA,CAAE;IAC5E,MAAMU,UAAU,GAAG,CAAA,EAAGF,CAAC,CAACP,UAAU,CAAA,EAAGO,CAAC,CAACL,UAAU,CAAC9B,MAAM,CAACsB,KAAK,GAAG,CAAC,CAAC,CAAA,EAAGa,CAAC,CAACN,WAAW,CAAA,CAAE;AACrF,IAAA,MAAMS,SAAS,GAAGxB,KAAK,GAAG,CAAA,EAAGqB,CAAC,CAACJ,QAAQ,CAAA,CAAA,EAAIhC,KAAK,CAACwC,IAAI,CAACzB,KAAK,CAAC0B,MAAM,CAAClB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA,CAAA,EAAIa,CAAC,CAACJ,QAAQ,CAAA,CAAE,GAAG,EAAE;AACnG,IAAA,MAAMU,aAAa,GAAG3B,KAAK,GAAG,CAAA,CAAA,EAAIqB,CAAC,CAACL,UAAU,CAAC9B,MAAM,CAACsB,KAAK,GAAG,CAAC,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;AAExE,IAAA,MAAMoB,YAAY,GAAG1B,KAAK,CAACR,GAAG,CAACY,IAAI,IAAI;MACnC,MAAMuB,SAAS,GAAGvB,IAAI,CAACC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;MACrD,MAAMuB,OAAO,GAAGtB,KAAK,GAAG,CAAC,GAAGqB,SAAS,CAAC7C,MAAM;MAC5C,OAAO,CAAA,EAAGqC,CAAC,CAACJ,QAAQ,CAAA,CAAA,EAAIX,IAAI,CAAA,EAAG,GAAG,CAACpB,MAAM,CAACkB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEyB,OAAO,CAAC,CAAC,CAAA,CAAA,EAAIT,CAAC,CAACJ,QAAQ,CAAA,CAAE;AACnF,IAAA,CAAC,CAAC;IAEF,OAAOhC,KAAK,CAAC,CACTqC,OAAO,EACPE,SAAS,EACTG,aAAa,EACb,GAAGC,YAAY,EACfL,UAAU,CACb,CAACQ,MAAM,CAACC,OAAO,CAAC,CAACnC,IAAI,CAAC,IAAI,CAAC,CAAC;EACjC,CAAC;AAED,EAAA,MAAMoC,YAAY,GAAGA,CAACC,WAAW,GAAG,KAAK,KAAK;AAC1C,IAAA,MAAMC,GAAG,GAAG,IAAIC,IAAI,EAAE;AACtB,IAAA,MAAMC,OAAO,GAAGF,GAAG,CAACG,kBAAkB,CAAC,OAAO,EAAE;AAC5CC,MAAAA,MAAM,EAAE,KAAK;AACbC,MAAAA,IAAI,EAAE,SAAS;AACfC,MAAAA,MAAM,EAAE,SAAS;AACjBC,MAAAA,MAAM,EAAE;AACZ,KAAC,CAAC;AAEF,IAAA,IAAIR,WAAW,EAAE;AACb,MAAA,MAAMS,OAAO,GAAGR,GAAG,CAACS,kBAAkB,CAAC,OAAO,CAAC;AAC/C,MAAA,OAAO,CAAA,EAAGD,OAAO,CAAA,CAAA,EAAIN,OAAO,CAAA,CAAE;AAClC,IAAA;AACA,IAAA,OAAOA,OAAO;EAClB,CAAC;EAED,MAAMQ,WAAW,GAAGA,CAACC,KAAK,EAAEC,QAAQ,GAAG,CAAC,KAAK;AACzC,IAAA,IAAID,KAAK,KAAK,CAAC,EAAE,OAAO,SAAS;IACjC,MAAME,CAAC,GAAG,IAAI;IACd,MAAMC,EAAE,GAAGF,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAGA,QAAQ;AACtC,IAAA,MAAMG,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/C,IAAA,MAAMC,CAAC,GAAG/C,IAAI,CAACgD,KAAK,CAAChD,IAAI,CAACiD,GAAG,CAACP,KAAK,CAAC,GAAG1C,IAAI,CAACiD,GAAG,CAACL,CAAC,CAAC,CAAC;IACnD,OAAOM,UAAU,CAAC,CAACR,KAAK,GAAG1C,IAAI,CAACmD,GAAG,CAACP,CAAC,EAAEG,CAAC,CAAC,EAAEK,OAAO,CAACP,EAAE,CAAC,CAAC,GAAG,GAAG,GAAGC,KAAK,CAACC,CAAC,CAAC;EAC5E,CAAC;EAED,MAAMM,cAAc,GAAIC,EAAE,IAAK;AAC3B,IAAA,IAAIA,EAAE,GAAG,IAAI,EAAE,OAAO,CAAA,EAAGA,EAAE,CAAA,EAAA,CAAI;AAC/B,IAAA,IAAIA,EAAE,GAAG,KAAK,EAAE,OAAO,CAAA,EAAG,CAACA,EAAE,GAAG,IAAI,EAAEF,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;IACnD,IAAIE,EAAE,GAAG,OAAO,EAAE,OAAO,GAAGtD,IAAI,CAACgD,KAAK,CAACM,EAAE,GAAG,KAAK,CAAC,CAAA,EAAA,EAAKtD,IAAI,CAACgD,KAAK,CAAEM,EAAE,GAAG,KAAK,GAAI,IAAI,CAAC,CAAA,CAAA,CAAG;IACzF,OAAO,CAAA,EAAGtD,IAAI,CAACgD,KAAK,CAACM,EAAE,GAAG,OAAO,CAAC,CAAA,EAAA,EAAKtD,IAAI,CAACgD,KAAK,CAAEM,EAAE,GAAG,OAAO,GAAI,KAAK,CAAC,CAAA,CAAA,CAAG;EAChF,CAAC;EAID,OAAO;IAEHC,UAAU,EAAGC,OAAO,IAAK;MACrBC,OAAO,CAACC,KAAK,EAAE;MAEf,MAAMC,QAAQ,GAAG,EAAE;AACnB,MAAA,MAAMC,SAAS,GAAG5D,IAAI,CAACK,GAAG,CAACwD,OAAO,CAACC,MAAM,CAACC,OAAO,IAAI,EAAE,EAAEJ,QAAQ,CAAC;MAElE,MAAMK,SAAS,GAAIC,GAAG,IAClBA,GAAG,CAAC9D,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC;AAE7D,MAAA,MAAM+D,gBAAgB,GAAGA,CAACC,KAAK,EAAEC,KAAK,KAAK;AACvC,QAAA,MAAMC,QAAQ,GAAG,CAAA,EAAGF,KAAK,CAAA,CAAA,EAAIC,KAAK,CAAA,CAAE;AACpC,QAAA,MAAME,WAAW,GAAGN,SAAS,CAACK,QAAQ,CAAC,CAACzF,MAAM;AAE9C,QAAA,MAAM2F,WAAW,GAAGvE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACgD,KAAK,CAAC,CAACY,SAAS,GAAGU,WAAW,IAAI,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAME,YAAY,GAAGxE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE2D,SAAS,GAAGU,WAAW,GAAGC,WAAW,CAAC;AAEvE,QAAA,OAAO,GAAG,CAACzF,MAAM,CAACyF,WAAW,CAAC,GAAGF,QAAQ,GAAG,GAAG,CAACvF,MAAM,CAAC0F,YAAY,CAAC;MACxE,CAAC;AAED,MAAA,MAAMC,SAAS,GAAG,GAAG,CAAC3F,MAAM,CAAC8E,SAAS,CAAC;AAEvC,MAAA,MAAMc,OAAO,GAAGlB,OAAO,CAACkB,OAAO,IAAI,OAAO;AAC1C,MAAqBlB,OAAO,CAACmB,YAAY,IAAI;AAC7C,MAAA,MAAMC,SAAS,GAAG/C,YAAY,CAAC,IAAI,CAAC;AACpC,MAAA,MAAMgD,OAAO,GAAGrB,OAAO,CAACsB,IAAI,IAAI,0BAA0B;MAE1D,MAAMC,MAAM,GAAG,CACXN,SAAS,EACTP,gBAAgB,CACZnF,kBAAkB,CAAC8F,OAAO,EAAE9J,MAAM,CAAC0B,IAAI,EAAE1B,MAAM,CAAC2B,IAAI,CAAC,EACrD,EACJ,CAAC,EACD+H,SAAS,EACTP,gBAAgB,CACZnJ,MAAM,CAACK,OAAO,CAAC,GAAGuB,KAAK,CAACvB,OAAO,CAAA,QAAA,CAAU,CAAC,EAC1CL,MAAM,CAACK,OAAO,CAACiG,IAAI,CAAC,sBAAsB,CAC9C,CAAC,EACD6C,gBAAgB,CACZnJ,MAAM,CAACQ,IAAI,CAAC,CAAA,EAAGoB,KAAK,CAACM,MAAM,WAAW,CAAC,EACvClC,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,IAAIqD,OAAO,CAAA,CAAE,CAClC,CAAC,EACDR,gBAAgB,CACZnJ,MAAM,CAACC,OAAO,CAAC,GAAG2B,KAAK,CAACL,GAAG,CAAA,UAAA,CAAY,CAAC,EACxCvB,MAAM,CAACC,OAAO,CAACqG,IAAI,CAAC,mBAAmB,CAC3C,CAAC,EACD6C,gBAAgB,CACZnJ,MAAM,CAACgB,IAAI,CAAC,CAAA,EAAGY,KAAK,CAACZ,IAAI,WAAW,CAAC,EACrChB,MAAM,CAACgB,IAAI,CAACsF,IAAI,CAACuD,SAAS,CAC9B,CAAC,EACDV,gBAAgB,CACZnJ,MAAM,CAACqB,WAAW,CAAC,CAAA,EAAGO,KAAK,CAACiB,GAAG,CAAA,QAAA,CAAU,CAAC,EAC1C7C,MAAM,CAACqB,WAAW,CAACiF,IAAI,CAAC,CAAA,QAAA,EAAWwC,OAAO,CAACa,OAAO,EAAE,CACxD,CAAC,EACDR,gBAAgB,CACZnJ,MAAM,CAACsB,QAAQ,CAAC,CAAA,EAAGM,KAAK,CAACY,MAAM,CAAA,UAAA,CAAY,CAAC,EAC5CxC,MAAM,CAACsB,QAAQ,CAACgF,IAAI,CAAC,qBAAqB,CAC9C,CAAC,EACDoD,SAAS,EACTP,gBAAgB,CAACnJ,MAAM,CAAC0B,IAAI,CAAC,sCAAsC,CAAC,EAAE,EAAE,CAAC,EACzEgI,SAAS,CACZ,CAAChF,IAAI,CAAC,IAAI,CAAC;AAEZgE,MAAAA,OAAO,CAACR,GAAG,CAAC8B,MAAM,CAAC;IACvB,CAAC;IAEDC,UAAU,EAAGC,WAAW,IAAK;MACzB,MAAM;QACFC,WAAW;QACXC,IAAI;QACJC,UAAU;QACVC,YAAY;QACZC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,OAAO;QACPC,OAAO;QACPC,SAAS;QACTC,QAAQ;QACRC,QAAQ;AACRC,QAAAA;AACJ,OAAC,GAAGb,WAAW;;AAEf;MACA,MAAMc,MAAM,GAAG,EAAE;AACjB,MAAA,IAAIN,OAAO,EAAEM,MAAM,CAACC,IAAI,CAACjL,MAAM,CAACS,KAAK,CAAC,GAAGmB,KAAK,CAACsB,KAAK,CAAA,MAAA,CAAQ,CAAC,CAAC;AAC9D,MAAA,IAAIyH,OAAO,EAAEK,MAAM,CAACC,IAAI,CAACjL,MAAM,CAACU,KAAK,CAAC,GAAGkB,KAAK,CAACY,MAAM,CAAA,MAAA,CAAQ,CAAC,CAAC;AAC/D,MAAA,IAAIsI,QAAQ,EAAEE,MAAM,CAACC,IAAI,CAACjL,MAAM,CAACe,MAAM,CAAC,GAAGa,KAAK,CAACb,MAAM,CAAA,MAAA,CAAQ,CAAC,CAAC;AACjE,MAAA,IAAI8J,QAAQ,EAAEG,MAAM,CAACC,IAAI,CAACjL,MAAM,CAACc,KAAK,CAAC,GAAGc,KAAK,CAACd,KAAK,CAAA,MAAA,CAAQ,CAAC,CAAC;;AAE/D;AACA,MAAA,MAAMoK,QAAQ,GAAGN,SAAS,GAAGhJ,KAAK,CAACS,SAAS,GAAGwI,QAAQ,GAAGjJ,KAAK,CAACd,KAAK,GAAGc,KAAK,CAACV,OAAO;AACrF,MAAA,MAAMiK,SAAS,GAAGP,SAAS,GAAG5K,MAAM,CAACa,OAAO,GAAGgK,QAAQ,GAAG7K,MAAM,CAACc,KAAK,GAAGd,MAAM,CAACQ,IAAI;AACpF,MAAA,MAAM4K,QAAQ,GAAGjB,WAAW,CAACkB,WAAW,EAAE;;AAE1C;AACA,MAAA,MAAMC,QAAQ,GAAGf,QAAQ,KAAK,OAAO,GAAG3I,KAAK,CAACjB,KAAK,GAAGiB,KAAK,CAAChB,OAAO;AACnE,MAAA,MAAM2K,SAAS,GAAGhB,QAAQ,KAAK,OAAO,GAAGvK,MAAM,CAACW,KAAK,GAAGX,MAAM,CAACY,OAAO;AACtE,MAAA,MAAM4K,QAAQ,GAAGjB,QAAQ,KAAK,OAAO,GAC/B,CAAA,EAAGe,QAAQ,CAAA,CAAA,EAAIC,SAAS,CAACjF,IAAI,CAACkE,SAAS,IAAI,eAAe,CAAC,CAAA,CAAA,EAAIxK,MAAM,CAACmB,MAAM,CAAC,CAAA,CAAA,EAAIsJ,SAAS,CAAA,SAAA,CAAW,CAAC,CAAA,CAAE,GACxG,CAAA,EAAGa,QAAQ,IAAIC,SAAS,CAACjF,IAAI,CAAC,cAAc,CAAC,CAAA,CAAE;;AAErD;AACA,MAAA,MAAMmF,aAAa,GAAGV,aAAa,GAC7BA,aAAa,GAAG,IAAI,GAChB/K,MAAM,CAACM,OAAO,CAAC,CAAA,EAAGsB,KAAK,CAACU,KAAK,CAAA,CAAA,EAAIyI,aAAa,CAAA,EAAA,CAAI,CAAC,GACnD/K,MAAM,CAACK,OAAO,CAAC,CAAA,EAAGuB,KAAK,CAACU,KAAK,CAAA,CAAA,EAAIyI,aAAa,CAAA,EAAA,CAAI,CAAC,GACvD,EAAE;AAER,MAAA,MAAMW,cAAc,GAAGtB,IAAI,CAACvG,MAAM,GAAG,EAAE,GAAGuG,IAAI,CAACuB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAGvB,IAAI;MAE9E1B,OAAO,CAACR,GAAG,CAAC;AACxB,EAAEvE,eAAe,CAAC,GAAG,EAAE,EAAE,EAAEwH,SAAS,CAAC;AACrC,EAAEA,SAAS,CAAC7E,IAAI,CAAC,CAAA,EAAG4E,QAAQ,CAAA,EAAA,EAAKE,QAAQ,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,EAAIpL,MAAM,CAACgB,IAAI,CAAC,CAAA,EAAGY,KAAK,CAACZ,IAAI,CAAA,CAAA,EAAI8F,YAAY,EAAE,CAAA,CAAE,CAAC,CAAA,CAAA,EAAI2E,aAAa;AAChH,EAAEzL,MAAM,CAACkB,OAAO,CAAC,GAAGU,KAAK,CAACV,OAAO,CAAA,SAAA,CAAW,CAAC,CAAA,CAAA,EAAIlB,MAAM,CAACkB,OAAO,CAACoF,IAAI,CAACoF,cAAc,IAAI,CAAA,CAAA,EAAIvB,WAAW,CAAA,CAAA,CAAG,CAAC;AAC1G,EAAEnK,MAAM,CAACiB,IAAI,CAAC,CAAA,EAAGW,KAAK,CAACX,IAAI,CAAA,MAAA,CAAQ,CAAC,CAAA,CAAA,EAAIjB,MAAM,CAACiB,IAAI,CAACqF,IAAI,CAAC+D,UAAU,CAAC,CAAA,CAAA,EAAIrK,MAAM,CAACmB,MAAM,CAAC,CAAA,EAAA,EAAKmJ,YAAY,CAAA,CAAA,CAAG,CAAC;AAC3G,EAAEtK,MAAM,CAACQ,IAAI,CAAC,CAAA,EAAGoB,KAAK,CAACmB,QAAQ,CAAA,OAAA,CAAS,CAAC,CAAA,CAAA,EAAIyI,QAAQ;AACrD,EAAER,MAAM,CAACnH,MAAM,GAAG,CAAC,GAAG,CAAA,EAAG7D,MAAM,CAACQ,IAAI,CAAC,CAAA,EAAGoB,KAAK,CAACO,IAAI,CAAA,MAAA,CAAQ,CAAC,CAAA,CAAA,EAAI6I,MAAM,CAACtG,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,GAAG,EAAE;AACtF,EAAEf,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE3D,MAAM,CAACmB,MAAM,CAAC;AACzC,CAAC,CAAC;IACM,CAAC;AAED;AACAyK,IAAAA,UAAU,EAAEA,CAACC,WAAW,EAAEC,MAAM,GAAG,WAAW,EAAEf,aAAa,GAAG,IAAI,EAAEgB,OAAO,GAAG,EAAE,KAAK;MACnF,MAAMC,SAAS,GAAGhM,MAAM,CAACgB,IAAI,CAAC,CAAA,CAAA,EAAI8F,YAAY,EAAE,CAAA,CAAA,CAAG,CAAC;AAEpD,MAAA,QAAQgF,MAAM;AACV,QAAA,KAAK,WAAW;AACZpD,UAAAA,OAAO,CAACR,GAAG,CAAC,CAAA,EAAGlI,MAAM,CAACa,OAAO,CAAC,CAAA,EAAGe,KAAK,CAACgB,IAAI,CAAA,CAAA,EAAIoJ,SAAS,EAAE,CAAC,CAAA,CAAA,EAAIhM,MAAM,CAACa,OAAO,CAACyF,IAAI,CAAC,WAAW,CAAC,CAAA,CAAA,EAAItG,MAAM,CAACa,OAAO,CAAC,CAAA,SAAA,EAAYgL,WAAW,CAAA,CAAE,CAAC,EAAE,CAAC;AAC/I,UAAA;AAEJ,QAAA,KAAK,SAAS;AACV,UAAA,MAAMI,YAAY,GAAGlB,aAAa,GAAG,IAAI,GAAG/K,MAAM,CAACM,OAAO,GAAGN,MAAM,CAACK,OAAO;AAC3EqI,UAAAA,OAAO,CAACR,GAAG,CAAC,CAAA,EAAG+D,YAAY,CAAC,CAAA,EAAGrK,KAAK,CAACvB,OAAO,CAAA,CAAA,EAAI2L,SAAS,EAAE,CAAC,CAAA,CAAA,EAAIC,YAAY,CAAC3F,IAAI,CAAC,SAAS,CAAC,IAAI2F,YAAY,CAAC,CAAA,CAAA,EAAIJ,WAAW,CAAA,eAAA,EAAkBd,aAAa,CAAA,EAAA,CAAI,CAAC,EAAE,CAAC;AACnK,UAAA;AAEJ,QAAA,KAAK,OAAO;AACRrC,UAAAA,OAAO,CAACR,GAAG,CAAC,CAAA,EAAGlI,MAAM,CAACO,KAAK,CAAC,CAAA,EAAGqB,KAAK,CAACrB,KAAK,CAAA,CAAA,EAAIyL,SAAS,CAAA,CAAE,CAAC,CAAA,CAAA,EAAIhM,MAAM,CAACO,KAAK,CAAC+F,IAAI,CAAC,QAAQ,CAAC,IAAItG,MAAM,CAACO,KAAK,CAAC,IAAIsL,WAAW,CAAA,cAAA,EAAiBd,aAAa,CAAA,EAAA,CAAI,CAAC,EAAE,CAAC;AAC/J,UAAA;AAEJ,QAAA,KAAK,UAAU;AACXrC,UAAAA,OAAO,CAACR,GAAG,CAAC,CAAA,EAAGlI,MAAM,CAACM,OAAO,CAAC,CAAA,EAAGsB,KAAK,CAACU,KAAK,CAAA,CAAA,EAAI0J,SAAS,EAAE,CAAC,CAAA,CAAA,EAAIhM,MAAM,CAACM,OAAO,CAACgG,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA,EAAItG,MAAM,CAACM,OAAO,CAAC,CAAA,CAAA,EAAIuL,WAAW,CAAA,cAAA,CAAgB,CAAC,EAAE,CAAC;AACrJ,UAAA;AAEJ,QAAA,KAAK,YAAY;AACbnD,UAAAA,OAAO,CAACR,GAAG,CAAC,CAAA,EAAGlI,MAAM,CAACsB,QAAQ,CAAC,CAAA,EAAGM,KAAK,CAACc,IAAI,CAAA,CAAA,EAAIsJ,SAAS,EAAE,CAAC,CAAA,CAAA,EAAIhM,MAAM,CAACsB,QAAQ,CAACgF,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAA,EAAItG,MAAM,CAACsB,QAAQ,CAAC,CAAA,CAAA,EAAIuK,WAAW,CAAA,0BAAA,CAA4B,CAAC,EAAE,CAAC;AACjK,UAAA;AACR;IACJ,CAAC;AAED;IACAK,SAAS,EAAEA,CAAChL,OAAO,EAAEiL,IAAI,GAAG,MAAM,EAAEC,QAAQ,GAAG,QAAQ,KAAK;AACxD,MAAA,MAAMC,QAAQ,GAAG;QACbhM,OAAO,EAAEL,MAAM,CAACK,OAAO;QACvBE,KAAK,EAAEP,MAAM,CAACO,KAAK;QACnBD,OAAO,EAAEN,MAAM,CAACM,OAAO;QACvBE,IAAI,EAAER,MAAM,CAACQ,IAAI;QACjBY,KAAK,EAAEpB,MAAM,CAACoB,KAAK;QACnBE,QAAQ,EAAEtB,MAAM,CAACsB,QAAQ;QACzBD,WAAW,EAAErB,MAAM,CAACqB;OACvB;AAED,MAAA,MAAMiL,OAAO,GAAG;QACZjM,OAAO,EAAEuB,KAAK,CAACvB,OAAO;QACtBE,KAAK,EAAEqB,KAAK,CAACrB,KAAK;QAClBD,OAAO,EAAEsB,KAAK,CAACtB,OAAO;QACtBE,IAAI,EAAEoB,KAAK,CAACpB,IAAI;QAChBY,KAAK,EAAEQ,KAAK,CAACgB,IAAI;QACjBtB,QAAQ,EAAEM,KAAK,CAACY,MAAM;QACtBnB,WAAW,EAAEO,KAAK,CAACW;OACtB;MAED,MAAMuB,KAAK,GAAGuI,QAAQ,CAACF,IAAI,CAAC,IAAInM,MAAM,CAACQ,IAAI;MAC3C,MAAM+L,IAAI,GAAGD,OAAO,CAACH,IAAI,CAAC,IAAIvK,KAAK,CAACpB,IAAI;MACxC,MAAMwL,SAAS,GAAGhM,MAAM,CAACgB,IAAI,CAAC,CAAA,CAAA,EAAI8F,YAAY,EAAE,CAAA,CAAA,CAAG,CAAC;MAEpD4B,OAAO,CAACR,GAAG,CAAC,CAAA,EAAGpE,KAAK,CAAC,CAAA,EAAGyI,IAAI,CAAA,CAAA,EAAIP,SAAS,CAAA,CAAE,CAAC,CAAA,CAAA,EAAIlI,KAAK,CAACwC,IAAI,CAAC,CAAA,CAAA,EAAI8F,QAAQ,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,EAAItI,KAAK,CAAC5C,OAAO,CAAC,CAAA,CAAE,CAAC;IACpG,CAAC;AAED;IACAsL,QAAQ,EAAEA,CAACjM,KAAK,EAAEwL,OAAO,GAAG,EAAE,KAAK;AAC/B,MAAA,MAAMC,SAAS,GAAGlF,YAAY,CAAC,IAAI,CAAC;MACpC,MAAM2F,OAAO,GAAGxH,IAAI,CAACyH,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAAChB,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAACN,WAAW,EAAE;MAExE,MAAMuB,YAAY,GAAG,CACjB,CAAA,EAAG5M,MAAM,CAACO,KAAK,CAAC+F,IAAI,CAAC,WAAW,CAAC,CAAA,CAAA,EAAItG,MAAM,CAACO,KAAK,CAACkM,OAAO,CAAC,CAAA,CAAE,EAC5D,CAAA,EAAGzM,MAAM,CAACO,KAAK,CAAC+F,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA,EAAI/F,KAAK,CAACW,OAAO,IAAI,eAAe,EAAE,EACtE,CAAA,EAAGlB,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA,EAAIyF,OAAO,CAAClL,OAAO,IAAI,KAAK,CAAA,CAAE,EAC7D,GAAGb,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,OAAO,CAAC,CAAA,CAAA,EAAIyF,OAAO,CAAC9K,IAAI,IAAI,SAAS,CAAA,CAAE,EAC3D,CAAA,EAAGjB,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,OAAO,CAAC,IAAI0F,SAAS,CAAA,CAAE,EAC3C,CAAA,EAAGhM,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,UAAU,CAAC,QAAQwC,OAAO,CAAC+D,GAAG,CAAA,CAAE,CACvD;MAED,IAAId,OAAO,CAACe,KAAK,EAAE;AACf,QAAA,MAAMC,UAAU,GAAGhB,OAAO,CAACe,KAAK,CAACzI,KAAK,CAAC,IAAI,CAAC,CAAC2I,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACxDJ,QAAAA,YAAY,CAAC3B,IAAI,CAAC,GAAGjL,MAAM,CAACM,OAAO,CAACgG,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAA,EAAIyG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtEA,UAAU,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC9H,IAAI,IAAI;AAChCyH,UAAAA,YAAY,CAAC3B,IAAI,CAAC,CAAA,SAAA,EAAYjL,MAAM,CAACoB,KAAK,CAAC+D,IAAI,CAAC+H,IAAI,EAAE,CAAC,EAAE,CAAC;AAC9D,QAAA,CAAC,CAAC;AACN,MAAA;MAEA,MAAMC,QAAQ,GAAGxI,SAAS,CACtBiI,YAAY,CAAClI,IAAI,CAAC,IAAI,CAAC,EACvB,CAAA,EAAG9C,KAAK,CAACrB,KAAK,CAAA,sBAAA,EAAyBkM,OAAO,CAAA,CAAE,EAChDzM,MAAM,CAACO,KAAK,EACZ,QACJ,CAAC;MAEDmI,OAAO,CAACR,GAAG,CAAC,IAAI,GAAGiF,QAAQ,GAAG,IAAI,CAAC;IACvC,CAAC;AAED;IACAC,cAAc,EAAGC,KAAK,IAAK;MACvB,MAAMC,MAAM,GAAGhF,cAAc,CAAC+E,KAAK,CAACC,MAAM,IAAI,CAAC,CAAC;AAChD,MAAA,MAAMC,QAAQ,GAAGzE,OAAO,CAAC0E,WAAW,EAAE;MAEtC,MAAMC,QAAQ,GAAG,CACb,CAAA,EAAGzN,MAAM,CAACK,OAAO,CAAC,CAAA,EAAGuB,KAAK,CAACM,MAAM,CAAA,mBAAA,CAAqB,CAAC,IAAIlC,MAAM,CAACK,OAAO,CAACiG,IAAI,CAAC+G,KAAK,CAACK,gBAAgB,IAAI,CAAC,CAAC,EAAE,EAC7G,CAAA,EAAG1N,MAAM,CAACQ,IAAI,CAAC,CAAA,EAAGoB,KAAK,CAACU,KAAK,CAAA,kBAAA,CAAoB,CAAC,CAAA,CAAA,EAAItC,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,CAAC+G,KAAK,CAACM,mBAAmB,IAAI,CAAC,EAAEtF,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA,CAAE,EAC5H,CAAA,EAAGrI,MAAM,CAACM,OAAO,CAAC,CAAA,EAAGsB,KAAK,CAACW,KAAK,CAAA,cAAA,CAAgB,CAAC,CAAA,CAAA,EAAIvC,MAAM,CAACM,OAAO,CAACgG,IAAI,CAAC,CAAC+G,KAAK,CAACO,iBAAiB,IAAI,CAAC,EAAEvF,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,EACrH,CAAA,EAAGrI,MAAM,CAACO,KAAK,CAAC,CAAA,EAAGqB,KAAK,CAACrB,KAAK,gBAAgB,CAAC,CAAA,CAAA,EAAIP,MAAM,CAACO,KAAK,CAAC+F,IAAI,CAAC+G,KAAK,CAACQ,MAAM,IAAI,CAAC,CAAC,CAAA,CAAE,EACzF,CAAA,EAAG7N,MAAM,CAACqB,WAAW,CAAC,CAAA,EAAGO,KAAK,CAACZ,IAAI,UAAU,CAAC,CAAA,CAAA,EAAIhB,MAAM,CAACqB,WAAW,CAACiF,IAAI,CAACgH,MAAM,CAAC,CAAA,CAAE,EACnF,GAAGtN,MAAM,CAACmB,MAAM,CAAC,CAAA,EAAGS,KAAK,CAACkB,MAAM,CAAA,QAAA,CAAU,CAAC,CAAA,CAAA,EAAI9C,MAAM,CAACmB,MAAM,CAACmF,IAAI,CAACoB,WAAW,CAAC6F,QAAQ,CAACO,QAAQ,CAAC,CAAC,CAAA,CAAA,EAAIpG,WAAW,CAAC6F,QAAQ,CAACQ,SAAS,CAAC,CAAA,CAAE,EACtI,CAAA,EAAG/N,MAAM,CAACC,OAAO,CAAC,CAAA,EAAG2B,KAAK,CAACiB,GAAG,OAAO,CAAC,CAAA,CAAA,EAAI7C,MAAM,CAACC,OAAO,CAACqG,IAAI,CAACwC,OAAO,CAACkF,QAAQ,EAAE,CAAC/M,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAA,CAAE,CAC5G;MAED,MAAMgN,OAAO,GAAGtJ,SAAS,CACrB8I,QAAQ,CAAC/I,IAAI,CAAC,IAAI,CAAC,EACnB,GAAG9C,KAAK,CAACW,KAAK,CAAA,sBAAA,CAAwB,EACtCvC,MAAM,CAACqB,WAAW,EAClB,SACJ,CAAC;MAEDqH,OAAO,CAACR,GAAG,CAAC,IAAI,GAAG+F,OAAO,GAAG,IAAI,CAAC;IACtC,CAAC;AAED;IACAC,aAAa,EAAEA,CAACpC,MAAM,EAAEqC,OAAO,GAAG,EAAE,KAAK;AACrC,MAAA,MAAMC,YAAY,GAAG;QACjBC,UAAU,EAAErO,MAAM,CAACM,OAAO;QAC1BgO,SAAS,EAAEtO,MAAM,CAACK,OAAO;QACzBkO,YAAY,EAAEvO,MAAM,CAACO,KAAK;QAC1BiO,YAAY,EAAExO,MAAM,CAACQ;OACxB;AAED,MAAA,MAAMiO,WAAW,GAAG;QAChBJ,UAAU,EAAEzM,KAAK,CAACI,OAAO;QACzBsM,SAAS,EAAE1M,KAAK,CAACE,MAAM;QACvByM,YAAY,EAAE3M,KAAK,CAACG,OAAO;QAC3ByM,YAAY,EAAE5M,KAAK,CAACgB;OACvB;MAED,MAAMkB,KAAK,GAAGsK,YAAY,CAACtC,MAAM,CAAC,IAAI9L,MAAM,CAACQ,IAAI;MACjD,MAAM+L,IAAI,GAAGkC,WAAW,CAAC3C,MAAM,CAAC,IAAIlK,KAAK,CAACpB,IAAI;AAE9CkI,MAAAA,OAAO,CAACR,GAAG,CAAC,CAAA,EAAGpE,KAAK,CAAC,CAAA,EAAGyI,IAAI,CAAA,EAAA,EAAKzF,YAAY,EAAE,gBAAgBgF,MAAM,CAACT,WAAW,EAAE,CAAA,CAAE,CAAC,CAAA,CAAA,EAAIvH,KAAK,CAAC4K,IAAI,CAACC,SAAS,CAACR,OAAO,CAAC,CAAC,EAAE,CAAC;IAC/H,CAAC;AAED;AACAnM,IAAAA,OAAO,EAAEA,CAACd,OAAO,EAAEiL,IAAI,GAAG,MAAM,KAAK;MACjC,MAAMyC,MAAM,GAAGvL,aAAa,CAAC8I,IAAI,CAAC,IAAI9I,aAAa,CAACC,IAAI;MACxD,IAAI0E,CAAC,GAAG,CAAC;MAET,OAAO6G,WAAW,CAAC,MAAM;QACrB/F,OAAO,CAACC,MAAM,CAAC+F,KAAK,CAAC,CAAA,EAAA,EAAK9O,MAAM,CAACC,OAAO,CAAC2O,MAAM,CAAC5G,CAAC,CAAC,CAAC,CAAA,CAAA,EAAIhI,MAAM,CAACC,OAAO,CAACiB,OAAO,CAAC,CAAA,CAAE,CAAC;QACjF8G,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI4G,MAAM,CAAC/K,MAAM;MAC/B,CAAC,EAAE,GAAG,CAAC;IACX,CAAC;AAED;IACAkL,YAAY,EAAEA,MAAM;AAChBjG,MAAAA,OAAO,CAACC,MAAM,CAAC+F,KAAK,CAAC,UAAU,CAAC;IACpC,CAAC;AAED;AACAE,IAAAA,WAAW,EAAEA,CAACC,KAAK,EAAEC,QAAQ,GAAG,QAAQ,EAAEf,OAAO,GAAG,EAAE,KAAK;AACvD,MAAA,MAAMgB,cAAc,GAAG;QACnBC,GAAG,EAAEpP,MAAM,CAACQ,IAAI;QAChB6O,MAAM,EAAErP,MAAM,CAACM,OAAO;QACtBgP,IAAI,EAAEtP,MAAM,CAACO,KAAK;QAClBgP,QAAQ,EAAEvP,MAAM,CAACsB;OACpB;MAED,MAAMwC,KAAK,GAAGqL,cAAc,CAACD,QAAQ,CAAC,IAAIlP,MAAM,CAACM,OAAO;AACxD,MAAA,MAAMkP,WAAW,GAAG7K,SAAS,CACzB,CAAA,EAAG3E,MAAM,CAACsB,QAAQ,CAACgF,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAA,EAAI2I,KAAK,CAAA,EAAA,CAAI,GAC9C,GAAGjP,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,WAAW,CAAC,CAAA,CAAA,EAAIxC,KAAK,CAACwC,IAAI,CAAC4I,QAAQ,CAAC7D,WAAW,EAAE,CAAC,IAAI,GAC1E,CAAA,EAAGrL,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,OAAO,CAAC,IAAIQ,YAAY,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,GACtD,CAAA,EAAG9G,MAAM,CAACQ,IAAI,CAAC8F,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA,EAAIoI,IAAI,CAACC,SAAS,CAACR,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,CAAE,EACrE,CAAA,EAAGvM,KAAK,CAACY,MAAM,CAAA,eAAA,CAAiB,EAChCsB,KAAK,EACL,QACJ,CAAC;MAED4E,OAAO,CAACR,GAAG,CAAC,IAAI,GAAGsH,WAAW,GAAG,IAAI,CAAC;IAC1C,CAAC;AAED;IACAxP,MAAM;IACN4B,KAAK;AACL6N,IAAAA,KAAK,EAAE;MACH9L,eAAe;MACfgB,SAAS;MACTX,kBAAkB;MAClB8C,YAAY;MACZY,WAAW;AACXY,MAAAA;AACJ;GACH;AACL,CAAC;;AAED;AACO,MAAMoH,MAAM,GAAG3P,YAAY;;;;;"}