From 48c4197b165230877a838315b02c45ac50290d64 Mon Sep 17 00:00:00 2001 From: cc <98377878+hicccc77@users.noreply.github.com> Date: Wed, 18 Mar 2026 23:49:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=B8=8E=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=8C=E6=97=A8=E5=9C=A8=E8=A7=A3=E5=86=B3=E9=81=97=E7=95=99?= =?UTF-8?q?=E7=9A=84=E6=80=A7=E8=83=BD=E9=97=AE=E9=A2=98=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C=EF=BC=8C=E6=9C=AC?= =?UTF-8?q?=E6=AC=A1=E6=8F=90=E4=BA=A4=E9=81=97=E7=95=99=E4=BA=86=E8=BE=83?= =?UTF-8?q?=E5=A4=9A=E7=9A=84=E5=BE=85=E6=B5=8B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .npmrc | 4 +- electron/exportWorker.ts | 47 + electron/main.ts | 87 +- electron/preload.ts | 21 +- electron/services/analyticsService.ts | 23 +- electron/services/annualReportService.ts | 17 +- electron/services/chatService.ts | 1300 ++++++-------------- electron/services/exportService.ts | 1043 ++++++++++++---- electron/services/groupAnalyticsService.ts | 256 ++-- electron/services/imageDecryptService.ts | 128 +- electron/services/keyServiceMac.ts | 2 +- electron/services/snsService.ts | 100 +- electron/services/videoService.ts | 18 +- electron/services/wcdbCore.ts | 639 +++++++++- electron/services/wcdbService.ts | 102 +- electron/wcdbWorker.ts | 60 + resources/wcdb_api.dll | Bin 852992 -> 932864 bytes src/pages/ChatPage.tsx | 90 +- src/pages/ExportPage.tsx | 356 ++++-- src/types/electron.d.ts | 7 +- vite.config.ts | 23 +- 22 files changed, 2726 insertions(+), 1598 deletions(-) create mode 100644 electron/exportWorker.ts diff --git a/.gitignore b/.gitignore index 123a279..dbde240 100644 --- a/.gitignore +++ b/.gitignore @@ -62,6 +62,7 @@ server/ chatlab-format.md *.bak AGENTS.md +AGENT.md .claude/ CLAUDE.md .agents/ diff --git a/.npmrc b/.npmrc index 9291011..5e1ea93 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,3 @@ registry=https://registry.npmmirror.com -electron_mirror=https://npmmirror.com/mirrors/electron/ -electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ +electron-mirror=https://npmmirror.com/mirrors/electron/ +electron-builder-binaries-mirror=https://npmmirror.com/mirrors/electron-builder-binaries/ diff --git a/electron/exportWorker.ts b/electron/exportWorker.ts new file mode 100644 index 0000000..21ac52d --- /dev/null +++ b/electron/exportWorker.ts @@ -0,0 +1,47 @@ +import { parentPort, workerData } from 'worker_threads' +import { wcdbService } from './services/wcdbService' +import { exportService, ExportOptions } from './services/exportService' + +interface ExportWorkerConfig { + sessionIds: string[] + outputDir: string + options: ExportOptions + resourcesPath?: string + userDataPath?: string + logEnabled?: boolean +} + +const config = workerData as ExportWorkerConfig +process.env.WEFLOW_WORKER = '1' +if (config.resourcesPath) { + process.env.WCDB_RESOURCES_PATH = config.resourcesPath +} + +wcdbService.setPaths(config.resourcesPath || '', config.userDataPath || '') +wcdbService.setLogEnabled(config.logEnabled === true) + +async function run() { + const result = await exportService.exportSessions( + Array.isArray(config.sessionIds) ? config.sessionIds : [], + String(config.outputDir || ''), + config.options || { format: 'json' }, + (progress) => { + parentPort?.postMessage({ + type: 'export:progress', + data: progress + }) + } + ) + + parentPort?.postMessage({ + type: 'export:result', + data: result + }) +} + +run().catch((error) => { + parentPort?.postMessage({ + type: 'export:error', + error: String(error) + }) +}) diff --git a/electron/main.ts b/electron/main.ts index bbe351b..b32882c 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -17,7 +17,6 @@ import { annualReportService } from './services/annualReportService' import { exportService, ExportOptions, ExportProgress } from './services/exportService' import { KeyService } from './services/keyService' import { KeyServiceMac } from './services/keyServiceMac' -import { KeyServiceLinux} from "./services/keyServiceLinux" import { voiceTranscribeService } from './services/voiceTranscribeService' import { videoService } from './services/videoService' import { snsService, isVideoUrl } from './services/snsService' @@ -96,7 +95,7 @@ let keyService: any if (process.platform === 'darwin') { keyService = new KeyServiceMac() } else if (process.platform === 'linux') { - // const { KeyServiceLinux } = require('./services/keyServiceLinux') + const { KeyServiceLinux } = require('./services/keyServiceLinux') keyService = new KeyServiceLinux() } else { keyService = new KeyService() @@ -1629,7 +1628,7 @@ function registerIpcHandlers() { ipcMain.handle('chat:getVoiceTranscript', async (event, sessionId: string, msgId: string, createTime?: number) => { return chatService.getVoiceTranscript(sessionId, msgId, createTime, (text) => { - event.sender.send('chat:voiceTranscriptPartial', { msgId, text }) + event.sender.send('chat:voiceTranscriptPartial', { sessionId, msgId, createTime, text }) }) }) @@ -1641,10 +1640,6 @@ function registerIpcHandlers() { return chatService.searchMessages(keyword, sessionId, limit, offset, beginTimestamp, endTimestamp) }) - ipcMain.handle('chat:execQuery', async (_, kind: string, path: string | null, sql: string) => { - return chatService.execQuery(kind, path, sql) - }) - ipcMain.handle('sns:getTimeline', async (_, limit: number, offset: number, usernames?: string[], keyword?: string, startTime?: number, endTime?: number) => { return snsService.getTimeline(limit, offset, usernames, keyword, startTime, endTime) }) @@ -1856,7 +1851,83 @@ function registerIpcHandlers() { } } - return exportService.exportSessions(sessionIds, outputDir, options, onProgress) + const runMainFallback = async (reason: string) => { + console.warn(`[fallback-export-main] ${reason}`) + return exportService.exportSessions(sessionIds, outputDir, options, onProgress) + } + + const cfg = configService || new ConfigService() + configService = cfg + const logEnabled = cfg.get('logEnabled') + const resourcesPath = app.isPackaged + ? join(process.resourcesPath, 'resources') + : join(app.getAppPath(), 'resources') + const userDataPath = app.getPath('userData') + const workerPath = join(__dirname, 'exportWorker.js') + + const runWorker = async () => { + return await new Promise((resolve, reject) => { + const worker = new Worker(workerPath, { + workerData: { + sessionIds, + outputDir, + options, + resourcesPath, + userDataPath, + logEnabled + } + }) + + let settled = false + const finalizeResolve = (value: any) => { + if (settled) return + settled = true + worker.removeAllListeners() + void worker.terminate() + resolve(value) + } + const finalizeReject = (error: Error) => { + if (settled) return + settled = true + worker.removeAllListeners() + void worker.terminate() + reject(error) + } + + worker.on('message', (msg: any) => { + if (msg && msg.type === 'export:progress') { + onProgress(msg.data as ExportProgress) + return + } + if (msg && msg.type === 'export:result') { + finalizeResolve(msg.data) + return + } + if (msg && msg.type === 'export:error') { + finalizeReject(new Error(String(msg.error || '导出 Worker 执行失败'))) + } + }) + + worker.on('error', (error) => { + finalizeReject(error instanceof Error ? error : new Error(String(error))) + }) + + worker.on('exit', (code) => { + if (settled) return + if (code === 0) { + finalizeResolve({ success: false, successCount: 0, failCount: 0, error: '导出 Worker 未返回结果' }) + } else { + finalizeReject(new Error(`导出 Worker 异常退出: ${code}`)) + } + }) + }) + } + + try { + return await runWorker() + } catch (error) { + return runMainFallback(error instanceof Error ? error.message : String(error)) + } }) ipcMain.handle('export:exportSession', async (_, sessionId: string, outputPath: string, options: ExportOptions) => { diff --git a/electron/preload.ts b/electron/preload.ts index 4cce51c..47fe7ef 100644 --- a/electron/preload.ts +++ b/electron/preload.ts @@ -215,13 +215,11 @@ contextBridge.exposeInMainWorld('electronAPI', { getMessageDateCounts: (sessionId: string) => ipcRenderer.invoke('chat:getMessageDateCounts', sessionId), resolveVoiceCache: (sessionId: string, msgId: string) => ipcRenderer.invoke('chat:resolveVoiceCache', sessionId, msgId), getVoiceTranscript: (sessionId: string, msgId: string, createTime?: number) => ipcRenderer.invoke('chat:getVoiceTranscript', sessionId, msgId, createTime), - onVoiceTranscriptPartial: (callback: (payload: { msgId: string; text: string }) => void) => { - const listener = (_: any, payload: { msgId: string; text: string }) => callback(payload) + onVoiceTranscriptPartial: (callback: (payload: { sessionId?: string; msgId: string; createTime?: number; text: string }) => void) => { + const listener = (_: any, payload: { sessionId?: string; msgId: string; createTime?: number; text: string }) => callback(payload) ipcRenderer.on('chat:voiceTranscriptPartial', listener) return () => ipcRenderer.removeListener('chat:voiceTranscriptPartial', listener) }, - execQuery: (kind: string, path: string | null, sql: string) => - ipcRenderer.invoke('chat:execQuery', kind, path, sql), getContacts: () => ipcRenderer.invoke('chat:getContacts'), getMessage: (sessionId: string, localId: number) => ipcRenderer.invoke('chat:getMessage', sessionId, localId), @@ -352,7 +350,20 @@ contextBridge.exposeInMainWorld('electronAPI', { ipcRenderer.invoke('export:exportSession', sessionId, outputPath, options), exportContacts: (outputDir: string, options: any) => ipcRenderer.invoke('export:exportContacts', outputDir, options), - onProgress: (callback: (payload: { current: number; total: number; currentSession: string; currentSessionId?: string; phase: string }) => void) => { + onProgress: (callback: (payload: { + current: number + total: number + currentSession: string + currentSessionId?: string + phase: string + phaseProgress?: number + phaseTotal?: number + phaseLabel?: string + collectedMessages?: number + exportedMessages?: number + estimatedTotalMessages?: number + writtenFiles?: number + }) => void) => { ipcRenderer.on('export:progress', (_, payload) => callback(payload)) return () => ipcRenderer.removeAllListeners('export:progress') } diff --git a/electron/services/analyticsService.ts b/electron/services/analyticsService.ts index 875be7a..1ba6c00 100644 --- a/electron/services/analyticsService.ts +++ b/electron/services/analyticsService.ts @@ -68,29 +68,14 @@ class AnalyticsService { return new Set(this.getExcludedUsernamesList()) } - private escapeSqlValue(value: string): string { - return value.replace(/'/g, "''") - } - private async getAliasMap(usernames: string[]): Promise> { const map: Record = {} if (usernames.length === 0) return map - // C++ 层不支持参数绑定,直接内联转义后的字符串值 - const chunkSize = 200 - for (let i = 0; i < usernames.length; i += chunkSize) { - const chunk = usernames.slice(i, i + chunkSize) - const inList = chunk.map((u) => `'${this.escapeSqlValue(u)}'`).join(',') - const sql = `SELECT username, alias FROM contact WHERE username IN (${inList})` - const result = await wcdbService.execQuery('contact', null, sql) - if (!result.success || !result.rows) continue - for (const row of result.rows as Record[]) { - const username = row.username || '' - const alias = row.alias || '' - if (username && alias) { - map[username] = alias - } - } + const result = await wcdbService.getContactAliasMap(usernames) + if (!result.success || !result.map) return map + for (const [username, alias] of Object.entries(result.map)) { + if (username && alias) map[username] = alias } return map diff --git a/electron/services/annualReportService.ts b/electron/services/annualReportService.ts index f91cfc6..e6e0967 100644 --- a/electron/services/annualReportService.ts +++ b/electron/services/annualReportService.ts @@ -278,16 +278,16 @@ class AnnualReportService { return cached || null } - const result = await wcdbService.execQuery('message', dbPath, `PRAGMA table_info(${this.quoteSqlIdentifier(tableName)})`) - if (!result.success || !Array.isArray(result.rows) || result.rows.length === 0) { + const result = await wcdbService.getMessageTableColumns(dbPath, tableName) + if (!result.success || !Array.isArray(result.columns) || result.columns.length === 0) { this.availableYearsColumnCache.set(cacheKey, '') return null } const candidates = ['create_time', 'createtime', 'msg_create_time', 'msg_time', 'msgtime', 'time'] const columns = new Set() - for (const row of result.rows as Record[]) { - const name = String(row.name || row.column_name || row.columnName || '').trim().toLowerCase() + for (const columnName of result.columns) { + const name = String(columnName || '').trim().toLowerCase() if (name) columns.add(name) } @@ -309,10 +309,11 @@ class AnnualReportService { const tried = new Set() const queryByColumn = async (column: string): Promise<{ first: number; last: number } | null> => { - const sql = `SELECT MIN(${this.quoteSqlIdentifier(column)}) AS first_ts, MAX(${this.quoteSqlIdentifier(column)}) AS last_ts FROM ${this.quoteSqlIdentifier(tableName)}` - const result = await wcdbService.execQuery('message', dbPath, sql) - if (!result.success || !Array.isArray(result.rows) || result.rows.length === 0) return null - const row = result.rows[0] as Record + const result = await wcdbService.getMessageTableTimeRange(dbPath, tableName) + if (!result.success || !result.data) return null + const row = result.data as Record + const actualColumn = String(row.column || '').trim().toLowerCase() + if (column && actualColumn && column.toLowerCase() !== actualColumn) return null const first = this.toUnixTimestamp(row.first_ts ?? row.firstTs ?? row.min_ts ?? row.minTs) const last = this.toUnixTimestamp(row.last_ts ?? row.lastTs ?? row.max_ts ?? row.maxTs) return { first, last } diff --git a/electron/services/chatService.ts b/electron/services/chatService.ts index f5d17e2..4ba4ed6 100644 --- a/electron/services/chatService.ts +++ b/electron/services/chatService.ts @@ -1,5 +1,5 @@ import { join, dirname, basename, extname } from 'path' -import { existsSync, mkdirSync, readdirSync, statSync, readFileSync, writeFileSync, copyFileSync, unlinkSync, watch } from 'fs' +import { existsSync, mkdirSync, readdirSync, statSync, readFileSync, writeFileSync, copyFileSync, unlinkSync, watch, promises as fsPromises } from 'fs' import * as path from 'path' import * as fs from 'fs' import * as https from 'https' @@ -233,12 +233,18 @@ class ChatService { name2IdTable?: string }>() // 缓存会话表信息,避免每次查询 - private sessionTablesCache = new Map>() + private sessionTablesCache = new Map; updatedAt: number }>() private messageTableColumnsCache = new Map; updatedAt: number }>() private messageName2IdTableCache = new Map() private messageSenderIdCache = new Map() private readonly sessionTablesCacheTtl = 300000 // 5分钟 private readonly messageTableColumnsCacheTtlMs = 30 * 60 * 1000 + private messageDbCountSnapshotCache: { + dbPaths: string[] + dbSignature: string + updatedAt: number + } | null = null + private readonly messageDbCountSnapshotCacheTtlMs = 8000 private sessionMessageCountCache = new Map() private sessionMessageCountHintCache = new Map() private sessionMessageCountBatchCache: { @@ -608,11 +614,10 @@ class ChatService { const now = Date.now() for (const username of usernames) { - const state = result.map[username] - if (!state) continue + const state = result.map[username] || { isFolded: false, isMuted: false } this.sessionStatusCache.set(username, { - isFolded: state.isFolded, - isMuted: state.isMuted, + isFolded: Boolean(state.isFolded), + isMuted: Boolean(state.isMuted), updatedAt: now }) } @@ -756,30 +761,6 @@ class ChatService { if (usernames.length === 0) return result try { - const dbPath = this.configService.get('dbPath') - const wxid = this.configService.get('myWxid') - if (!dbPath || !wxid) return result - - const accountDir = this.resolveAccountDir(dbPath, wxid) - if (!accountDir) return result - - // head_image.db 可能在不同位置 - const headImageDbPaths = [ - join(accountDir, 'db_storage', 'head_image', 'head_image.db'), - join(accountDir, 'db_storage', 'head_image.db'), - join(accountDir, 'head_image.db') - ] - - let headImageDbPath: string | null = null - for (const path of headImageDbPaths) { - if (existsSync(path)) { - headImageDbPath = path - break - } - } - - if (!headImageDbPath) return result - const normalizedUsernames = Array.from( new Set( usernames @@ -793,38 +774,20 @@ class ChatService { for (let i = 0; i < normalizedUsernames.length; i += batchSize) { const batch = normalizedUsernames.slice(i, i + batchSize) if (batch.length === 0) continue - const usernamesExpr = batch.map((name) => `'${this.escapeSqlString(name)}'`).join(',') - const queryResult = await wcdbService.execQuery( - 'media', - headImageDbPath, - `SELECT username, image_buffer FROM head_image WHERE username IN (${usernamesExpr})` - ) - if (!queryResult.success || !queryResult.rows || queryResult.rows.length === 0) { - continue - } + const queryResult = await wcdbService.getHeadImageBuffers(batch) + if (!queryResult.success || !queryResult.map) continue - for (const row of queryResult.rows as any[]) { - const username = String(row?.username || '').trim() - if (!username || !row?.image_buffer) continue - - let base64Data: string | null = null - if (typeof row.image_buffer === 'string') { - // WCDB 返回的 BLOB 可能是十六进制字符串,需要转换为 base64 - if (row.image_buffer.toLowerCase().startsWith('ffd8')) { - const buffer = Buffer.from(row.image_buffer, 'hex') - base64Data = buffer.toString('base64') - } else { - base64Data = row.image_buffer + for (const [username, rawHex] of Object.entries(queryResult.map)) { + const hex = String(rawHex || '').trim() + if (!username || !hex) continue + try { + const base64Data = Buffer.from(hex, 'hex').toString('base64') + if (base64Data) { + result[username] = `data:image/jpeg;base64,${base64Data}` } - } else if (Buffer.isBuffer(row.image_buffer)) { - base64Data = row.image_buffer.toString('base64') - } else if (Array.isArray(row.image_buffer)) { - base64Data = Buffer.from(row.image_buffer).toString('base64') - } - - if (base64Data) { - result[username] = `data:image/jpeg;base64,${base64Data}` + } catch { + // ignore invalid blob hex } } } @@ -867,48 +830,16 @@ class ChatService { return { success: false, error: connectResult.error } } - const excludeExpr = Array.from(FRIEND_EXCLUDE_USERNAMES) - .map((username) => `'${this.escapeSqlString(username)}'`) - .join(',') - - const countsSql = ` - SELECT - SUM(CASE WHEN username LIKE '%@chatroom' THEN 1 ELSE 0 END) AS group_count, - SUM(CASE WHEN username LIKE 'gh_%' THEN 1 ELSE 0 END) AS official_count, - SUM( - CASE - WHEN username NOT LIKE '%@chatroom' - AND username NOT LIKE 'gh_%' - AND local_type = 1 - AND username NOT IN (${excludeExpr}) - THEN 1 ELSE 0 - END - ) AS private_count, - SUM( - CASE - WHEN username NOT LIKE '%@chatroom' - AND username NOT LIKE 'gh_%' - AND local_type = 0 - AND COALESCE(quan_pin, '') != '' - THEN 1 ELSE 0 - END - ) AS former_friend_count - FROM contact - WHERE username IS NOT NULL - AND username != '' - ` - - const result = await wcdbService.execQuery('contact', null, countsSql) - if (!result.success || !result.rows || result.rows.length === 0) { + const result = await wcdbService.getContactTypeCounts() + if (!result.success || !result.counts) { return { success: false, error: result.error || '获取联系人类型数量失败' } } - const row = result.rows[0] as Record const counts: ExportTabCounts = { - private: this.getRowInt(row, ['private_count', 'privateCount'], 0), - group: this.getRowInt(row, ['group_count', 'groupCount'], 0), - official: this.getRowInt(row, ['official_count', 'officialCount'], 0), - former_friend: this.getRowInt(row, ['former_friend_count', 'formerFriendCount'], 0) + private: Number(result.counts.private || 0), + group: Number(result.counts.group || 0), + official: Number(result.counts.official || 0), + former_friend: Number(result.counts.former_friend || 0) } return { success: true, counts } @@ -1029,87 +960,20 @@ class ChatService { return { success: true, counts: {}, dbSignature: 'empty' } } - const dbPathsResult = await this.listMessageDbPathsForCount() - if (!dbPathsResult.success) { - return { success: false, error: dbPathsResult.error || '获取消息数据库列表失败' } + const snapshotResult = await this.getMessageDbCountSnapshot() + const dbPaths = snapshotResult.success ? (snapshotResult.dbPaths || []) : [] + const dbSignature = snapshotResult.success + ? (snapshotResult.dbSignature || this.buildMessageDbSignature(dbPaths)) + : this.buildMessageDbSignature(dbPaths) + const nativeResult = await wcdbService.getSessionMessageCounts(normalizedSessionIds) + if (!nativeResult.success || !nativeResult.counts) { + return { success: false, error: nativeResult.error || '获取会话消息总数失败', dbSignature } } - const dbPaths = dbPathsResult.dbPaths || [] - const dbSignature = this.buildMessageDbSignature(dbPaths) - if (dbPaths.length === 0) { - const emptyCounts = normalizedSessionIds.reduce>((acc, sessionId) => { - acc[sessionId] = 0 - return acc - }, {}) - return { success: true, counts: emptyCounts, dbSignature } - } - - const hashLookup = this.buildSessionHashLookup(normalizedSessionIds) - const counts = normalizedSessionIds.reduce>((acc, sessionId) => { - acc[sessionId] = 0 + const counts = normalizedSessionIds.reduce>((acc, sid) => { + const raw = nativeResult.counts?.[sid] + acc[sid] = Number.isFinite(raw) ? Math.max(0, Math.floor(Number(raw))) : 0 return acc }, {}) - const unionChunkSize = 48 - const queryCountKeys = ['count', 'COUNT(*)', 'cnt', 'CNT', 'table_count', 'tableCount'] - - for (const dbPath of dbPaths) { - const tablesResult = await wcdbService.execQuery( - 'message', - dbPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'Msg_%'" - ) - if (!tablesResult.success || !tablesResult.rows || tablesResult.rows.length === 0) { - continue - } - - const tableToSessionId = new Map() - for (const row of tablesResult.rows as Record[]) { - const tableName = String(this.getRowField(row, ['name', 'table_name', 'tableName']) || '').trim() - if (!tableName) continue - const sessionId = this.matchSessionIdByTableName(tableName, hashLookup) - if (!sessionId) continue - tableToSessionId.set(tableName, sessionId) - } - - if (tableToSessionId.size === 0) { - continue - } - - const matchedTables = Array.from(tableToSessionId.keys()) - for (let i = 0; i < matchedTables.length; i += unionChunkSize) { - const chunk = matchedTables.slice(i, i + unionChunkSize) - if (chunk.length === 0) continue - - const unionSql = chunk.map((tableName) => { - const tableAlias = tableName.replace(/'/g, "''") - return `SELECT '${tableAlias}' AS table_name, COUNT(*) AS count FROM ${this.quoteSqlIdentifier(tableName)}` - }).join(' UNION ALL ') - - const unionResult = await wcdbService.execQuery('message', dbPath, unionSql) - if (unionResult.success && unionResult.rows) { - for (const row of unionResult.rows as Record[]) { - const tableName = String(this.getRowField(row, ['table_name', 'tableName', 'name']) || '').trim() - const sessionId = tableToSessionId.get(tableName) - if (!sessionId) continue - const countValue = Math.max(0, Math.floor(this.getRowInt(row, queryCountKeys, 0))) - counts[sessionId] = (counts[sessionId] || 0) + countValue - } - continue - } - - // 回退到逐表查询,避免单个 UNION 查询失败导致整批丢失。 - for (const tableName of chunk) { - const sessionId = tableToSessionId.get(tableName) - if (!sessionId) continue - const countSql = `SELECT COUNT(*) AS count FROM ${this.quoteSqlIdentifier(tableName)}` - const singleResult = await wcdbService.execQuery('message', dbPath, countSql) - if (!singleResult.success || !singleResult.rows || singleResult.rows.length === 0) { - continue - } - const countValue = Math.max(0, Math.floor(this.getRowInt(singleResult.rows[0], queryCountKeys, 0))) - counts[sessionId] = (counts[sessionId] || 0) + countValue - } - } - } this.logExportDiag({ traceId, @@ -1214,21 +1078,18 @@ class ChatService { now - cachedBatch.updatedAt <= this.sessionMessageCountBatchCacheTtlMs if (cachedBatchFresh && cachedBatch.sessionIdsKey === sessionIdsKey) { - const dbPathsResult = await this.listMessageDbPathsForCount() - if (dbPathsResult.success) { - const currentDbSignature = this.buildMessageDbSignature(dbPathsResult.dbPaths || []) - if (currentDbSignature === cachedBatch.dbSignature) { - for (const sessionId of pendingSessionIds) { - const nextCountRaw = cachedBatch.counts[sessionId] - const nextCount = Number.isFinite(nextCountRaw) ? Math.max(0, Math.floor(nextCountRaw)) : 0 - counts[sessionId] = nextCount - this.sessionMessageCountCache.set(sessionId, { - count: nextCount, - updatedAt: now - }) - } - tableScanSucceeded = true + const snapshot = await this.getMessageDbCountSnapshot() + if (snapshot.success && snapshot.dbSignature === cachedBatch.dbSignature) { + for (const sessionId of pendingSessionIds) { + const nextCountRaw = cachedBatch.counts[sessionId] + const nextCount = Number.isFinite(nextCountRaw) ? Math.max(0, Math.floor(nextCountRaw)) : 0 + counts[sessionId] = nextCount + this.sessionMessageCountCache.set(sessionId, { + count: nextCount, + updatedAt: now + }) } + tableScanSucceeded = true } } @@ -1340,29 +1201,15 @@ class ChatService { return { success: false, error: connectResult.error } } - // 使用execQuery直接查询加密的contact.db - // kind='contact', path=null表示使用已打开的contact.db - const contactQuery = ` - SELECT username, remark, nick_name, alias, local_type, quan_pin - FROM contact - WHERE username IS NOT NULL - AND username != '' - AND ( - username LIKE '%@chatroom' - OR username LIKE 'gh_%' - OR local_type = 1 - OR (local_type = 0 AND COALESCE(quan_pin, '') != '') - ) - ` - const contactResult = await wcdbService.execQuery('contact', null, contactQuery) + const contactResult = await wcdbService.getContactsCompact() - if (!contactResult.success || !contactResult.rows) { + if (!contactResult.success || !contactResult.contacts) { console.error('查询联系人失败:', contactResult.error) return { success: false, error: contactResult.error || '查询联系人失败' } } - const rows = contactResult.rows as Record[] + const rows = contactResult.contacts as Record[] // 获取会话表的最后联系时间用于排序 const lastContactTimeMap = new Map() const sessionResult = await wcdbService.getSessions() @@ -2080,16 +1927,12 @@ class ChatService { private async getFriendIdentitySet(): Promise> { const identities = new Set() - const contactResult = await wcdbService.execQuery( - 'contact', - null, - 'SELECT username, local_type, quan_pin FROM contact' - ) - if (!contactResult.success || !contactResult.rows) { + const contactResult = await wcdbService.getContactsCompact() + if (!contactResult.success || !contactResult.contacts) { return identities } - for (const rowAny of contactResult.rows) { + for (const rowAny of contactResult.contacts) { const row = rowAny as Record const username = String(row.username || '').trim() if (!username || username.includes('@chatroom') || username.startsWith('gh_')) continue @@ -2218,7 +2061,9 @@ class ChatService { this.sessionDetailFastCache.clear() this.sessionDetailExtraCache.clear() this.sessionStatusCache.clear() + this.sessionTablesCache.clear() this.messageTableColumnsCache.clear() + this.messageDbCountSnapshotCache = null this.refreshSessionStatsCacheScope(scope) this.refreshGroupMyMessageCountCacheScope(scope) } @@ -2410,6 +2255,13 @@ class ChatService { if (!this.sessionStatsCacheScope) return const normalizedType = String(type || '').toLowerCase() + if ( + normalizedType.includes('message') || + normalizedType.includes('session') || + normalizedType.includes('db') + ) { + this.messageDbCountSnapshotCache = null + } const maybeJson = String(json || '').trim() let ids = new Set() if (maybeJson) { @@ -2472,9 +2324,13 @@ class ChatService { } private async getSessionMessageTables(sessionId: string): Promise> { + const now = Date.now() const cached = this.sessionTablesCache.get(sessionId) - if (cached && cached.length > 0) { - return cached + if (cached && now - cached.updatedAt <= this.sessionTablesCacheTtl && cached.tables.length > 0) { + return cached.tables + } + if (cached) { + this.sessionTablesCache.delete(sessionId) } const tableStats = await wcdbService.getMessageTableStats(sessionId) @@ -2487,8 +2343,10 @@ class ChatService { .filter(t => t.tableName && t.dbPath) as Array<{ tableName: string; dbPath: string }> if (tables.length > 0) { - this.sessionTablesCache.set(sessionId, tables) - setTimeout(() => { this.sessionTablesCache.delete(sessionId) }, this.sessionTablesCacheTtl) + this.sessionTablesCache.set(sessionId, { + tables, + updatedAt: now + }) } return tables } @@ -2501,14 +2359,12 @@ class ChatService { return new Set(cached.columns) } - const pragmaSql = `PRAGMA table_info(${this.quoteSqlIdentifier(tableName)})` - const result = await wcdbService.execQuery('message', dbPath, pragmaSql) - if (!result.success || !result.rows || result.rows.length === 0) { - return new Set() - } + const result = await wcdbService.getMessageTableColumns(dbPath, tableName) + if (!result.success || !Array.isArray(result.columns) || result.columns.length === 0) return new Set() + const columns = new Set() - for (const row of result.rows as Record[]) { - const name = String(this.getRowField(row, ['name', 'column_name', 'columnName']) || '').trim().toLowerCase() + for (const columnName of result.columns) { + const name = String(columnName || '').trim().toLowerCase() if (name) columns.add(name) } this.messageTableColumnsCache.set(cacheKey, { @@ -2717,136 +2573,32 @@ class ChatService { redPacketMessages: 0, callMessages: 0 } - if (sessionId.endsWith('@chatroom')) { + const isGroup = sessionId.endsWith('@chatroom') + if (isGroup) { stats.groupMyMessages = 0 stats.groupActiveSpeakers = 0 } - const tables = await this.getSessionMessageTables(sessionId) - if (tables.length === 0) { - return stats - } - - const senderIdentities = new Set() - let aggregatedTableCount = 0 - const isGroup = sessionId.endsWith('@chatroom') - const escapedSelfKeys = Array.from(selfIdentitySet) - .filter(Boolean) - .map((key) => `'${this.escapeSqlLiteral(key.toLowerCase())}'`) - - for (const { tableName, dbPath } of tables) { - const columnSet = await this.getMessageTableColumns(dbPath, tableName) - if (columnSet.size === 0) continue - - const typeCol = this.pickFirstColumn(columnSet, ['local_type', 'type', 'msg_type', 'msgtype']) - const timeCol = this.pickFirstColumn(columnSet, ['create_time', 'createtime', 'msg_create_time', 'time']) - const senderCol = this.pickFirstColumn(columnSet, ['sender_username', 'senderusername', 'sender']) - const isSendCol = this.pickFirstColumn(columnSet, ['computed_is_send', 'computedissend', 'is_send', 'issend']) - - const selectParts: string[] = [ - 'COUNT(*) AS total_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 34 THEN 1 ELSE 0 END) AS voice_messages` : '0 AS voice_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 3 THEN 1 ELSE 0 END) AS image_messages` : '0 AS image_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 43 THEN 1 ELSE 0 END) AS video_messages` : '0 AS video_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 47 THEN 1 ELSE 0 END) AS emoji_messages` : '0 AS emoji_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 50 THEN 1 ELSE 0 END) AS call_messages` : '0 AS call_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 8589934592049 THEN 1 ELSE 0 END) AS transfer_messages` : '0 AS transfer_messages', - typeCol ? `SUM(CASE WHEN ${this.quoteSqlIdentifier(typeCol)} = 8594229559345 THEN 1 ELSE 0 END) AS red_packet_messages` : '0 AS red_packet_messages', - timeCol ? `MIN(${this.quoteSqlIdentifier(timeCol)}) AS first_timestamp` : 'NULL AS first_timestamp', - timeCol ? `MAX(${this.quoteSqlIdentifier(timeCol)}) AS last_timestamp` : 'NULL AS last_timestamp' - ] - - if (isGroup) { - if (senderCol) { - const normalizedSender = `LOWER(TRIM(CAST(${this.quoteSqlIdentifier(senderCol)} AS TEXT)))` - if (escapedSelfKeys.length > 0 && isSendCol) { - selectParts.push( - `SUM(CASE WHEN ${normalizedSender} != '' THEN CASE WHEN ${normalizedSender} IN (${escapedSelfKeys.join(', ')}) THEN 1 ELSE 0 END ELSE CASE WHEN ${this.quoteSqlIdentifier(isSendCol)} = 1 THEN 1 ELSE 0 END END) AS group_my_messages` - ) - } else if (escapedSelfKeys.length > 0) { - selectParts.push(`SUM(CASE WHEN ${normalizedSender} IN (${escapedSelfKeys.join(', ')}) THEN 1 ELSE 0 END) AS group_my_messages`) - } else if (isSendCol) { - selectParts.push(`SUM(CASE WHEN ${this.quoteSqlIdentifier(isSendCol)} = 1 THEN 1 ELSE 0 END) AS group_my_messages`) - } else { - selectParts.push('0 AS group_my_messages') - } - } else if (isSendCol) { - selectParts.push(`SUM(CASE WHEN ${this.quoteSqlIdentifier(isSendCol)} = 1 THEN 1 ELSE 0 END) AS group_my_messages`) - } else { - selectParts.push('0 AS group_my_messages') - } - - const aggregateSql = `SELECT ${selectParts.join(', ')} FROM ${this.quoteSqlIdentifier(tableName)}` - const aggregateResult = await wcdbService.execQuery('message', dbPath, aggregateSql) - if (!aggregateResult.success || !aggregateResult.rows || aggregateResult.rows.length === 0) { - continue - } - - const aggregateRow = aggregateResult.rows[0] as Record - aggregatedTableCount += 1 - stats.totalMessages += this.getRowInt(aggregateRow, ['total_messages', 'totalMessages'], 0) - stats.voiceMessages += this.getRowInt(aggregateRow, ['voice_messages', 'voiceMessages'], 0) - stats.imageMessages += this.getRowInt(aggregateRow, ['image_messages', 'imageMessages'], 0) - stats.videoMessages += this.getRowInt(aggregateRow, ['video_messages', 'videoMessages'], 0) - stats.emojiMessages += this.getRowInt(aggregateRow, ['emoji_messages', 'emojiMessages'], 0) - stats.callMessages += this.getRowInt(aggregateRow, ['call_messages', 'callMessages'], 0) - stats.transferMessages += this.getRowInt(aggregateRow, ['transfer_messages', 'transferMessages'], 0) - stats.redPacketMessages += this.getRowInt(aggregateRow, ['red_packet_messages', 'redPacketMessages'], 0) - - const firstTs = this.getRowInt(aggregateRow, ['first_timestamp', 'firstTimestamp'], 0) - if (firstTs > 0 && (stats.firstTimestamp === undefined || firstTs < stats.firstTimestamp)) { - stats.firstTimestamp = firstTs - } - const lastTs = this.getRowInt(aggregateRow, ['last_timestamp', 'lastTimestamp'], 0) - if (lastTs > 0 && (stats.lastTimestamp === undefined || lastTs > stats.lastTimestamp)) { - stats.lastTimestamp = lastTs - } - stats.groupMyMessages = (stats.groupMyMessages || 0) + this.getRowInt(aggregateRow, ['group_my_messages', 'groupMyMessages'], 0) - - if (senderCol) { - const normalizedSender = `LOWER(TRIM(CAST(${this.quoteSqlIdentifier(senderCol)} AS TEXT)))` - const distinctSenderSql = `SELECT DISTINCT ${normalizedSender} AS sender_identity FROM ${this.quoteSqlIdentifier(tableName)} WHERE ${normalizedSender} != ''` - const senderResult = await wcdbService.execQuery('message', dbPath, distinctSenderSql) - if (senderResult.success && senderResult.rows) { - for (const row of senderResult.rows as Record[]) { - const senderIdentity = String(this.getRowField(row, ['sender_identity', 'senderIdentity']) || '').trim() - if (!senderIdentity) continue - senderIdentities.add(senderIdentity) - } - } - } - } else { - const aggregateSql = `SELECT ${selectParts.join(', ')} FROM ${this.quoteSqlIdentifier(tableName)}` - const aggregateResult = await wcdbService.execQuery('message', dbPath, aggregateSql) - if (!aggregateResult.success || !aggregateResult.rows || aggregateResult.rows.length === 0) { - continue - } - const aggregateRow = aggregateResult.rows[0] as Record - aggregatedTableCount += 1 - stats.totalMessages += this.getRowInt(aggregateRow, ['total_messages', 'totalMessages'], 0) - stats.voiceMessages += this.getRowInt(aggregateRow, ['voice_messages', 'voiceMessages'], 0) - stats.imageMessages += this.getRowInt(aggregateRow, ['image_messages', 'imageMessages'], 0) - stats.videoMessages += this.getRowInt(aggregateRow, ['video_messages', 'videoMessages'], 0) - stats.emojiMessages += this.getRowInt(aggregateRow, ['emoji_messages', 'emojiMessages'], 0) - stats.callMessages += this.getRowInt(aggregateRow, ['call_messages', 'callMessages'], 0) - stats.transferMessages += this.getRowInt(aggregateRow, ['transfer_messages', 'transferMessages'], 0) - stats.redPacketMessages += this.getRowInt(aggregateRow, ['red_packet_messages', 'redPacketMessages'], 0) - - const firstTs = this.getRowInt(aggregateRow, ['first_timestamp', 'firstTimestamp'], 0) - if (firstTs > 0 && (stats.firstTimestamp === undefined || firstTs < stats.firstTimestamp)) { - stats.firstTimestamp = firstTs - } - const lastTs = this.getRowInt(aggregateRow, ['last_timestamp', 'lastTimestamp'], 0) - if (lastTs > 0 && (stats.lastTimestamp === undefined || lastTs > stats.lastTimestamp)) { - stats.lastTimestamp = lastTs - } - } - } - - if (aggregatedTableCount === 0) { + const nativeResult = await wcdbService.getSessionMessageTypeStats(sessionId, 0, 0) + if (!nativeResult.success || !nativeResult.data) { return this.collectSessionExportStatsByCursorScan(sessionId, selfIdentitySet) } + const data = nativeResult.data as Record + stats.totalMessages = Math.max(0, Math.floor(Number(data.total_messages || 0))) + stats.voiceMessages = Math.max(0, Math.floor(Number(data.voice_messages || 0))) + stats.imageMessages = Math.max(0, Math.floor(Number(data.image_messages || 0))) + stats.videoMessages = Math.max(0, Math.floor(Number(data.video_messages || 0))) + stats.emojiMessages = Math.max(0, Math.floor(Number(data.emoji_messages || 0))) + stats.callMessages = Math.max(0, Math.floor(Number(data.call_messages || 0))) + stats.transferMessages = Math.max(0, Math.floor(Number(data.transfer_messages || 0))) + stats.redPacketMessages = Math.max(0, Math.floor(Number(data.red_packet_messages || 0))) + + const firstTs = Math.max(0, Math.floor(Number(data.first_timestamp || 0))) + const lastTs = Math.max(0, Math.floor(Number(data.last_timestamp || 0))) + if (firstTs > 0) stats.firstTimestamp = firstTs + if (lastTs > 0) stats.lastTimestamp = lastTs + if (preferAccurateSpecialTypes) { try { const preciseCounters = await this.collectSpecialMessageCountsByCursorScan(sessionId) @@ -2854,12 +2606,13 @@ class ChatService { stats.redPacketMessages = preciseCounters.redPacketMessages stats.callMessages = preciseCounters.callMessages } catch { - // 保留聚合统计结果作为兜底 + // 保留 native 聚合结果作为兜底 } } if (isGroup) { - stats.groupActiveSpeakers = senderIdentities.size + stats.groupMyMessages = Math.max(0, Math.floor(Number(data.group_my_messages || 0))) + stats.groupActiveSpeakers = Math.max(0, Math.floor(Number(data.group_sender_count || 0))) if (Number.isFinite(stats.groupMyMessages)) { this.setGroupMyMessageCountHintEntry(sessionId, stats.groupMyMessages as number) } @@ -2867,6 +2620,64 @@ class ChatService { return stats } + private toExportSessionStatsFromNativeTypeRow(sessionId: string, row: Record): ExportSessionStats { + const stats: ExportSessionStats = { + totalMessages: Math.max(0, Math.floor(Number(row?.total_messages || 0))), + voiceMessages: Math.max(0, Math.floor(Number(row?.voice_messages || 0))), + imageMessages: Math.max(0, Math.floor(Number(row?.image_messages || 0))), + videoMessages: Math.max(0, Math.floor(Number(row?.video_messages || 0))), + emojiMessages: Math.max(0, Math.floor(Number(row?.emoji_messages || 0))), + callMessages: Math.max(0, Math.floor(Number(row?.call_messages || 0))), + transferMessages: Math.max(0, Math.floor(Number(row?.transfer_messages || 0))), + redPacketMessages: Math.max(0, Math.floor(Number(row?.red_packet_messages || 0))) + } + + const firstTs = Math.max(0, Math.floor(Number(row?.first_timestamp || 0))) + const lastTs = Math.max(0, Math.floor(Number(row?.last_timestamp || 0))) + if (firstTs > 0) stats.firstTimestamp = firstTs + if (lastTs > 0) stats.lastTimestamp = lastTs + + if (sessionId.endsWith('@chatroom')) { + stats.groupMyMessages = Math.max(0, Math.floor(Number(row?.group_my_messages || 0))) + stats.groupActiveSpeakers = Math.max(0, Math.floor(Number(row?.group_sender_count || 0))) + if (Number.isFinite(stats.groupMyMessages)) { + this.setGroupMyMessageCountHintEntry(sessionId, stats.groupMyMessages as number) + } + } + return stats + } + + private async getMessageDbCountSnapshot(forceRefresh = false): Promise<{ + success: boolean + dbPaths?: string[] + dbSignature?: string + error?: string + }> { + const now = Date.now() + if (!forceRefresh && this.messageDbCountSnapshotCache) { + if (now - this.messageDbCountSnapshotCache.updatedAt <= this.messageDbCountSnapshotCacheTtlMs) { + return { + success: true, + dbPaths: [...this.messageDbCountSnapshotCache.dbPaths], + dbSignature: this.messageDbCountSnapshotCache.dbSignature + } + } + } + + const dbPathsResult = await this.listMessageDbPathsForCount() + if (!dbPathsResult.success || !dbPathsResult.dbPaths) { + return { success: false, error: dbPathsResult.error || '获取消息数据库列表失败' } + } + const dbPaths = dbPathsResult.dbPaths + const dbSignature = this.buildMessageDbSignature(dbPaths) + this.messageDbCountSnapshotCache = { + dbPaths: [...dbPaths], + dbSignature, + updatedAt: now + } + return { success: true, dbPaths, dbSignature } + } + private async buildGroupRelationStats( groupSessionIds: string[], privateSessionIds: string[], @@ -3018,7 +2829,8 @@ class ChatService { const privateSessionIds = normalizedSessionIds.filter(sessionId => !sessionId.endsWith('@chatroom')) let memberCountMap: Record = {} - if (groupSessionIds.length > 0) { + const shouldLoadGroupMemberCount = groupSessionIds.length > 0 && (includeRelations || normalizedSessionIds.length === 1) + if (shouldLoadGroupMemberCount) { try { const memberCountsResult = await wcdbService.getGroupMemberCounts(groupSessionIds) memberCountMap = memberCountsResult.success && memberCountsResult.map ? memberCountsResult.map : {} @@ -3054,13 +2866,43 @@ class ChatService { } } + const nativeBatchStats: Record = {} + let hasNativeBatchStats = false + if (!preferAccurateSpecialTypes) { + try { + const quickMode = !includeRelations && normalizedSessionIds.length > 1 + const nativeBatch = await wcdbService.getSessionMessageTypeStatsBatch(normalizedSessionIds, { + beginTimestamp: 0, + endTimestamp: 0, + quickMode, + includeGroupSenderCount: true + }) + if (nativeBatch.success && nativeBatch.data) { + for (const sessionId of normalizedSessionIds) { + const row = nativeBatch.data?.[sessionId] as Record | undefined + if (!row || typeof row !== 'object') continue + nativeBatchStats[sessionId] = this.toExportSessionStatsFromNativeTypeRow(sessionId, row) + } + hasNativeBatchStats = Object.keys(nativeBatchStats).length > 0 + } else { + console.warn('[fallback-exec] getSessionMessageTypeStatsBatch failed, fallback to per-session stats path') + } + } catch (error) { + console.warn('[fallback-exec] getSessionMessageTypeStatsBatch exception, fallback to per-session stats path:', error) + } + } + await this.forEachWithConcurrency(normalizedSessionIds, 3, async (sessionId) => { try { - const stats = await this.collectSessionExportStats(sessionId, selfIdentitySet, preferAccurateSpecialTypes) + const stats = hasNativeBatchStats && nativeBatchStats[sessionId] + ? { ...nativeBatchStats[sessionId] } + : await this.collectSessionExportStats(sessionId, selfIdentitySet, preferAccurateSpecialTypes) if (sessionId.endsWith('@chatroom')) { - stats.groupMemberCount = typeof memberCountMap[sessionId] === 'number' - ? Math.max(0, Math.floor(memberCountMap[sessionId])) - : 0 + if (shouldLoadGroupMemberCount) { + stats.groupMemberCount = typeof memberCountMap[sessionId] === 'number' + ? Math.max(0, Math.floor(memberCountMap[sessionId])) + : 0 + } if (includeRelations) { stats.groupMutualFriends = typeof groupMutualFriendMap[sessionId] === 'number' ? Math.max(0, Math.floor(groupMutualFriendMap[sessionId])) @@ -4375,24 +4217,6 @@ class ChatService { return candidates } - private async resolveChatNameId(dbPath: string, senderWxid: string): Promise { - const escaped = this.escapeSqlString(senderWxid) - const name2IdTable = await this.resolveName2IdTableName(dbPath) - if (!name2IdTable) return null - const info = await wcdbService.execQuery('media', dbPath, `PRAGMA table_info('${name2IdTable}')`) - if (!info.success || !info.rows) return null - const columns = info.rows.map((row) => String(row.name || row.Name || row.column || '')).filter(Boolean) - const lower = new Map(columns.map((col) => [col.toLowerCase(), col])) - const column = lower.get('name_id') || lower.get('id') || 'rowid' - const sql = `SELECT ${column} AS id FROM ${name2IdTable} WHERE user_name = '${escaped}' LIMIT 1` - const result = await wcdbService.execQuery('media', dbPath, sql) - if (!result.success || !result.rows || result.rows.length === 0) return null - const value = result.rows[0]?.id - if (value === null || value === undefined) return null - const parsed = typeof value === 'number' ? value : parseInt(String(value), 10) - return Number.isFinite(parsed) ? parsed : null - } - private decodeVoiceBlob(raw: any): Buffer | null { if (!raw) return null if (Buffer.isBuffer(raw)) return raw @@ -4415,66 +4239,10 @@ class ChatService { return null } - private async resolveVoiceInfoColumns(dbPath: string, tableName: string): Promise<{ - dataColumn: string; - chatNameIdColumn?: string; - createTimeColumn?: string; - msgLocalIdColumn?: string; - } | null> { - const info = await wcdbService.execQuery('media', dbPath, `PRAGMA table_info('${tableName}')`) - if (!info.success || !info.rows) return null - const columns = info.rows.map((row) => String(row.name || row.Name || row.column || '')).filter(Boolean) - if (columns.length === 0) return null - const lower = new Map(columns.map((col) => [col.toLowerCase(), col])) - const dataColumn = - lower.get('voice_data') || - lower.get('buf') || - lower.get('voicebuf') || - lower.get('data') - if (!dataColumn) return null - return { - dataColumn, - chatNameIdColumn: lower.get('chat_name_id') || lower.get('chatnameid') || lower.get('chat_nameid'), - createTimeColumn: lower.get('create_time') || lower.get('createtime') || lower.get('time'), - msgLocalIdColumn: lower.get('msg_local_id') || lower.get('msglocalid') || lower.get('localid') - } - } - private escapeSqlString(value: string): string { return value.replace(/'/g, "''") } - private async resolveVoiceInfoTableName(dbPath: string): Promise { - // 1. 优先尝试标准表名 'VoiceInfo' - const checkStandard = await wcdbService.execQuery( - 'media', - dbPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name='VoiceInfo'" - ) - if (checkStandard.success && checkStandard.rows && checkStandard.rows.length > 0) { - return 'VoiceInfo' - } - - // 2. 只有在找不到标准表时,才尝试模糊匹配 (兼容性) - const result = await wcdbService.execQuery( - 'media', - dbPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'VoiceInfo%' ORDER BY name DESC LIMIT 1" - ) - if (!result.success || !result.rows || result.rows.length === 0) return null - return result.rows[0]?.name || null - } - - private async resolveName2IdTableName(dbPath: string): Promise { - const result = await wcdbService.execQuery( - 'media', - dbPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'Name2Id%' ORDER BY name DESC LIMIT 1" - ) - if (!result.success || !result.rows || result.rows.length === 0) return null - return result.rows[0]?.name || null - } - private async resolveMessageName2IdTableName(dbPath: string): Promise { const normalizedDbPath = String(dbPath || '').trim() if (!normalizedDbPath) return null @@ -4482,6 +4250,7 @@ class ChatService { return this.messageName2IdTableCache.get(normalizedDbPath) || null } + // fallback-exec: 当前缺少按 message.db 反查 Name2Id 表名的专属接口 const result = await wcdbService.execQuery( 'message', normalizedDbPath, @@ -4513,6 +4282,7 @@ class ChatService { } const escapedTableName = String(name2IdTable).replace(/"/g, '""') + // fallback-exec: 当前缺少按 rowid -> user_name 的 message.db 专属接口 const result = await wcdbService.execQuery( 'message', normalizedDbPath, @@ -4884,11 +4654,9 @@ class ChatService { // DLL 有时不返回 alias 字段,补一条直接 SQL 查询兜底 if (!alias) { try { - const safe = username.replace(/'/g, "''") - const sqlResult = await wcdbService.execQuery('contact', null, - `SELECT alias FROM contact WHERE username = '${safe}' LIMIT 1`) - if (sqlResult.success && Array.isArray(sqlResult.rows) && sqlResult.rows.length > 0) { - alias = String(sqlResult.rows[0]?.alias || sqlResult.rows[0]?.Alias || '') + const aliasResult = await wcdbService.getContactAliasMap([username]) + if (aliasResult.success && aliasResult.map && aliasResult.map[username]) { + alias = String(aliasResult.map[username] || '') } } catch { // 兜底失败不影响主流程 @@ -5782,7 +5550,7 @@ class ChatService { } /** - * getVoiceData (绕过WCDB的buggy getVoiceData,直接用execQuery读取) + * getVoiceData(主用批量专属接口读取语音数据) */ async getVoiceData(sessionId: string, msgId: string, createTime?: number, serverId?: string | number, senderWxidOpt?: string): Promise<{ success: boolean; data?: string; error?: string }> { const startTime = Date.now() @@ -5813,13 +5581,12 @@ class ChatService { return { success: false, error: '未找到消息时间戳' } } - // 使用 sessionId + createTime 作为缓存key - const cacheKey = `${sessionId}_${msgCreateTime}` + // 使用 sessionId + createTime + msgId 作为缓存 key,避免同秒语音串音 + const cacheKey = this.getVoiceCacheKey(sessionId, String(localId), msgCreateTime) // 检查 WAV 内存缓存 const wavCache = this.voiceWavCache.get(cacheKey) if (wavCache) { - return { success: true, data: wavCache.toString('base64') } } @@ -5829,9 +5596,7 @@ class ChatService { if (existsSync(wavFilePath)) { try { const wavData = readFileSync(wavFilePath) - // 同时缓存到内存 this.cacheVoiceWav(cacheKey, wavData) - return { success: true, data: wavData.toString('base64') } } catch (e) { console.error('[Voice] 读取缓存文件失败:', e) @@ -5859,7 +5624,7 @@ class ChatService { const t3 = Date.now() // 从数据库读取 silk 数据 - const silkData = await this.getVoiceDataFromMediaDb(msgCreateTime, candidates) + const silkData = await this.getVoiceDataFromMediaDb(sessionId, msgCreateTime, localId, serverId || 0, candidates) const t4 = Date.now() @@ -5903,216 +5668,179 @@ class ChatService { private async cacheVoiceWavToFile(cacheKey: string, wavData: Buffer): Promise { try { const voiceCacheDir = this.getVoiceCacheDir() - if (!existsSync(voiceCacheDir)) { - mkdirSync(voiceCacheDir, { recursive: true }) - } - + await fsPromises.mkdir(voiceCacheDir, { recursive: true }) const wavFilePath = join(voiceCacheDir, `${cacheKey}.wav`) - writeFileSync(wavFilePath, wavData) + await fsPromises.writeFile(wavFilePath, wavData) } catch (e) { console.error('[Voice] 缓存文件失败:', e) } } /** - * 通过 WCDB 的 execQuery 直接查询 media.db(绕过有bug的getVoiceData接口) - * 策略:批量查询 + 多种兜底方案 + * 通过 WCDB 专属接口查询语音数据 + * 策略:批量查询 + 单条 native 兜底 */ - private async getVoiceDataFromMediaDb(createTime: number, candidates: string[]): Promise { - const startTime = Date.now() + private async getVoiceDataFromMediaDb( + sessionId: string, + createTime: number, + localId: number, + svrId: string | number, + candidates: string[] + ): Promise { try { - const t1 = Date.now() - // 获取所有 media 数据库(永久缓存,直到应用重启) - let mediaDbFiles: string[] - if (this.mediaDbsCache) { - mediaDbFiles = this.mediaDbsCache - - } else { - const mediaDbsResult = await wcdbService.listMediaDbs() - const t2 = Date.now() - - - let files = mediaDbsResult.success && mediaDbsResult.data ? (mediaDbsResult.data as string[]) : [] - - // Fallback: 如果 WCDB DLL 没找到,手动查找 - if (files.length === 0) { - console.warn('[Voice] listMediaDbs returned empty, trying manual search') - files = await this.findMediaDbsManually() - } - - if (files.length === 0) { - console.error('[Voice] No media DBs found') - return null - } - - mediaDbFiles = files - this.mediaDbsCache = mediaDbFiles // 永久缓存 - } - - // 在所有 media 数据库中查找 - for (const dbPath of mediaDbFiles) { - try { - // 检查缓存 - let schema = this.mediaDbSchemaCache.get(dbPath) - - if (!schema) { - const t3 = Date.now() - // 第一次查询,获取表结构并缓存 - const tablesResult = await wcdbService.execQuery('media', dbPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'VoiceInfo%'" - ) - const t4 = Date.now() - - - if (!tablesResult.success || !tablesResult.rows || tablesResult.rows.length === 0) { - continue - } - - const voiceTable = tablesResult.rows[0].name - - const t5 = Date.now() - const columnsResult = await wcdbService.execQuery('media', dbPath, - `PRAGMA table_info('${voiceTable}')` - ) - const t6 = Date.now() - - - if (!columnsResult.success || !columnsResult.rows) { - continue - } - - // 创建列名映射(原始名称 -> 小写名称) - const columnMap = new Map() - for (const c of columnsResult.rows) { - const name = String(c.name || '') - if (name) { - columnMap.set(name.toLowerCase(), name) - } - } - - // 查找数据列(使用原始列名) - const dataColumnLower = ['voice_data', 'buf', 'voicebuf', 'data'].find(n => columnMap.has(n)) - const dataColumn = dataColumnLower ? columnMap.get(dataColumnLower) : undefined - - if (!dataColumn) { - continue - } - - // 查找 chat_name_id 列 - const chatNameIdColumnLower = ['chat_name_id', 'chatnameid', 'chat_nameid'].find(n => columnMap.has(n)) - const chatNameIdColumn = chatNameIdColumnLower ? columnMap.get(chatNameIdColumnLower) : undefined - - // 查找时间列 - const timeColumnLower = ['create_time', 'createtime', 'time'].find(n => columnMap.has(n)) - const timeColumn = timeColumnLower ? columnMap.get(timeColumnLower) : undefined - - const t7 = Date.now() - // 查找 Name2Id 表 - const name2IdTablesResult = await wcdbService.execQuery('media', dbPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'Name2Id%'" - ) - const t8 = Date.now() - - - const name2IdTable = (name2IdTablesResult.success && name2IdTablesResult.rows && name2IdTablesResult.rows.length > 0) - ? name2IdTablesResult.rows[0].name - : undefined - - schema = { - voiceTable, - dataColumn, - chatNameIdColumn, - timeColumn, - name2IdTable - } - - // 缓存表结构 - this.mediaDbSchemaCache.set(dbPath, schema) - } - - // 策略1: 通过 chat_name_id + create_time 查找(最准确) - if (schema.chatNameIdColumn && schema.timeColumn && schema.name2IdTable) { - const t9 = Date.now() - // 批量获取所有 candidates 的 chat_name_id(减少查询次数) - const candidatesStr = candidates.map(c => `'${c.replace(/'/g, "''")}'`).join(',') - const name2IdResult = await wcdbService.execQuery('media', dbPath, - `SELECT user_name, rowid FROM ${schema.name2IdTable} WHERE user_name IN (${candidatesStr})` - ) - const t10 = Date.now() - - - if (name2IdResult.success && name2IdResult.rows && name2IdResult.rows.length > 0) { - // 构建 chat_name_id 列表 - const chatNameIds = name2IdResult.rows.map((r: any) => r.rowid) - const chatNameIdsStr = chatNameIds.join(',') - - const t11 = Date.now() - // 一次查询所有可能的语音 - const voiceResult = await wcdbService.execQuery('media', dbPath, - `SELECT ${schema.dataColumn} AS data FROM ${schema.voiceTable} WHERE ${schema.chatNameIdColumn} IN (${chatNameIdsStr}) AND ${schema.timeColumn} = ${createTime} LIMIT 1` - ) - const t12 = Date.now() - - - if (voiceResult.success && voiceResult.rows && voiceResult.rows.length > 0) { - const row = voiceResult.rows[0] - const silkData = this.decodeVoiceBlob(row.data) - if (silkData) { - - return silkData - } - } - } - } - - // 策略2: 只通过 create_time 查找(兜底) - if (schema.timeColumn) { - const t13 = Date.now() - const voiceResult = await wcdbService.execQuery('media', dbPath, - `SELECT ${schema.dataColumn} AS data FROM ${schema.voiceTable} WHERE ${schema.timeColumn} = ${createTime} LIMIT 1` - ) - const t14 = Date.now() - - - if (voiceResult.success && voiceResult.rows && voiceResult.rows.length > 0) { - const row = voiceResult.rows[0] - const silkData = this.decodeVoiceBlob(row.data) - if (silkData) { - - return silkData - } - } - } - - // 策略3: 时间范围查找(±5秒,处理时间戳不精确的情况) - if (schema.timeColumn) { - const t15 = Date.now() - const voiceResult = await wcdbService.execQuery('media', dbPath, - `SELECT ${schema.dataColumn} AS data FROM ${schema.voiceTable} WHERE ${schema.timeColumn} BETWEEN ${createTime - 5} AND ${createTime + 5} ORDER BY ABS(${schema.timeColumn} - ${createTime}) LIMIT 1` - ) - const t16 = Date.now() - - - if (voiceResult.success && voiceResult.rows && voiceResult.rows.length > 0) { - const row = voiceResult.rows[0] - const silkData = this.decodeVoiceBlob(row.data) - if (silkData) { - - return silkData - } - } - } - } catch (e) { - // 静默失败,继续尝试下一个数据库 + const batchResult = await wcdbService.getVoiceDataBatch([{ + session_id: sessionId, + create_time: Math.max(0, Math.floor(Number(createTime || 0))), + local_id: Math.max(0, Math.floor(Number(localId || 0))), + svr_id: svrId || 0, + candidates: Array.isArray(candidates) ? candidates : [] + }]) + if (batchResult.success && Array.isArray(batchResult.rows) && batchResult.rows.length > 0) { + const hex = String(batchResult.rows[0]?.hex || '').trim() + if (hex) { + const decoded = this.decodeVoiceBlob(hex) + if (decoded && decoded.length > 0) return decoded } } + // fallback-native: 受控回退到旧单条 native 查询 + const single = await wcdbService.getVoiceData( + sessionId, + Math.max(0, Math.floor(Number(createTime || 0))), + Array.isArray(candidates) ? candidates : [], + Math.max(0, Math.floor(Number(localId || 0))), + svrId || 0 + ) + if (single.success && single.hex) { + const decoded = this.decodeVoiceBlob(single.hex) + if (decoded && decoded.length > 0) return decoded + } return null } catch (e) { return null } } + async preloadVoiceDataBatch( + sessionId: string, + messages: Array<{ + localId?: number | string + createTime?: number | string + serverId?: number | string + senderWxid?: string | null + }>, + options?: { chunkSize?: number; decodeConcurrency?: number } + ): Promise<{ success: boolean; prepared?: number; error?: string }> { + try { + const connectResult = await this.ensureConnected() + if (!connectResult.success) { + return { success: false, error: connectResult.error || '数据库未连接' } + } + + const normalizedSessionId = String(sessionId || '').trim() + if (!normalizedSessionId) return { success: true, prepared: 0 } + if (!Array.isArray(messages) || messages.length === 0) return { success: true, prepared: 0 } + + const myWxid = String(this.configService.get('myWxid') || '').trim() + const nowPrepared = new Set() + const pending: Array<{ + cacheKey: string + request: { session_id: string; create_time: number; local_id: number; svr_id: string | number; candidates: string[] } + }> = [] + + for (const item of messages) { + const localId = Math.max(0, Math.floor(Number(item?.localId || 0))) + const createTime = Math.max(0, Math.floor(Number(item?.createTime || 0))) + if (!localId || !createTime) continue + + const cacheKey = this.getVoiceCacheKey(normalizedSessionId, String(localId), createTime) + if (nowPrepared.has(cacheKey)) continue + nowPrepared.add(cacheKey) + + const inMemory = this.voiceWavCache.get(cacheKey) + if (inMemory && inMemory.length > 0) continue + + const wavFilePath = join(this.getVoiceCacheDir(), `${cacheKey}.wav`) + if (existsSync(wavFilePath)) { + try { + const wavData = readFileSync(wavFilePath) + if (wavData.length > 0) { + this.cacheVoiceWav(cacheKey, wavData) + continue + } + } catch { + // ignore corrupted cache file + } + } + + const senderWxid = String(item?.senderWxid || '').trim() + const candidates: string[] = [] + if (senderWxid) candidates.push(senderWxid) + if (!candidates.includes(normalizedSessionId)) candidates.push(normalizedSessionId) + if (myWxid && !candidates.includes(myWxid)) candidates.push(myWxid) + + pending.push({ + cacheKey, + request: { + session_id: normalizedSessionId, + create_time: createTime, + local_id: localId, + svr_id: item?.serverId || 0, + candidates + } + }) + } + + if (pending.length === 0) { + return { success: true, prepared: nowPrepared.size } + } + + const chunkSize = Math.max(8, Math.min(128, Math.floor(Number(options?.chunkSize || 48)))) + const decodeConcurrency = Math.max(1, Math.min(6, Math.floor(Number(options?.decodeConcurrency || 3)))) + let prepared = nowPrepared.size - pending.length + + for (let i = 0; i < pending.length; i += chunkSize) { + const chunk = pending.slice(i, i + chunkSize) + const batchResult = await wcdbService.getVoiceDataBatch(chunk.map(item => item.request)) + if (!batchResult.success || !Array.isArray(batchResult.rows)) { + continue + } + + const byIndex = new Map() + for (const row of batchResult.rows as Array>) { + const idx = Number.parseInt(String(row?.index ?? ''), 10) + const hex = String(row?.hex || '').trim() + if (!Number.isFinite(idx) || idx < 0 || !hex) continue + byIndex.set(idx, hex) + } + + const readyItems: Array<{ cacheKey: string; hex: string }> = [] + for (let rowIdx = 0; rowIdx < chunk.length; rowIdx += 1) { + const hex = byIndex.get(rowIdx) + if (!hex) continue + readyItems.push({ cacheKey: chunk[rowIdx].cacheKey, hex }) + } + + await this.forEachWithConcurrency(readyItems, decodeConcurrency, async (item) => { + const silkData = this.decodeVoiceBlob(item.hex) + if (!silkData || silkData.length === 0) return + + const pcmData = await this.decodeSilkToPcm(silkData, 24000) + if (!pcmData || pcmData.length === 0) return + + const wavData = this.createWavBuffer(pcmData, 24000) + this.cacheVoiceWav(item.cacheKey, wavData) + this.cacheVoiceWavToFile(item.cacheKey, wavData) + prepared += 1 + }) + } + + return { success: true, prepared } + } catch (e) { + return { success: false, error: String(e) } + } + } + /** * 检查语音是否已有缓存(只检查内存,不查询数据库) */ @@ -6141,121 +5869,8 @@ class ChatService { const msgResult = await this.getMessageByLocalId(sessionId, localId) if (!msgResult.success || !msgResult.message) return { success: false, error: '未找到该消息' } const msg = msgResult.message - if (msg.isSend === 1) { - console.info('[ChatService][Voice] self-sent voice, continue decrypt flow') - } - - const candidates = this.getVoiceLookupCandidates(sessionId, msg) - if (candidates.length === 0) { - return { success: false, error: '未找到语音关联账号' } - } - console.info('[ChatService][Voice] request', { - sessionId, - localId: msg.localId, - createTime: msg.createTime, - candidates - }) - - // 2. 查找所有的 media_*.db - let mediaDbs = await wcdbService.listMediaDbs() - // Fallback: 如果 WCDB DLL 不支持 listMediaDbs,手动查找 - if (!mediaDbs.success || !mediaDbs.data || mediaDbs.data.length === 0) { - const manualMediaDbs = await this.findMediaDbsManually() - if (manualMediaDbs.length > 0) { - mediaDbs = { success: true, data: manualMediaDbs } - } else { - return { success: false, error: '未找到媒体库文件 (media_*.db)' } - } - } - - // 3. 在所有媒体库中查找该消息的语音数据 - let silkData: Buffer | null = null - for (const dbPath of (mediaDbs.data || [])) { - const voiceTable = await this.resolveVoiceInfoTableName(dbPath) - if (!voiceTable) { - continue - } - const columns = await this.resolveVoiceInfoColumns(dbPath, voiceTable) - if (!columns) { - continue - } - for (const candidate of candidates) { - const chatNameId = await this.resolveChatNameId(dbPath, candidate) - // 策略 1: 使用 ChatNameId + CreateTime (最准确) - if (chatNameId) { - let whereClause = '' - if (columns.chatNameIdColumn && columns.createTimeColumn) { - whereClause = `${columns.chatNameIdColumn} = ${chatNameId} AND ${columns.createTimeColumn} = ${msg.createTime}` - const sql = `SELECT ${columns.dataColumn} AS data FROM ${voiceTable} WHERE ${whereClause} LIMIT 1` - const result = await wcdbService.execQuery('media', dbPath, sql) - if (result.success && result.rows && result.rows.length > 0) { - const raw = result.rows[0]?.data - const decoded = this.decodeVoiceBlob(raw) - if (decoded && decoded.length > 0) { - console.info('[ChatService][Voice] hit by createTime', { dbPath, voiceTable, whereClause, bytes: decoded.length }) - silkData = decoded - break - } - } - } - } - - // 策略 2: 使用 MsgLocalId (兜底,如果表支持) - if (columns.msgLocalIdColumn) { - const whereClause = `${columns.msgLocalIdColumn} = ${msg.localId}` - const sql = `SELECT ${columns.dataColumn} AS data FROM ${voiceTable} WHERE ${whereClause} LIMIT 1` - const result = await wcdbService.execQuery('media', dbPath, sql) - if (result.success && result.rows && result.rows.length > 0) { - const raw = result.rows[0]?.data - const decoded = this.decodeVoiceBlob(raw) - if (decoded && decoded.length > 0) { - console.info('[ChatService][Voice] hit by localId', { dbPath, voiceTable, whereClause, bytes: decoded.length }) - silkData = decoded - break - } - } - } - } - if (silkData) break - - // 策略 3: 只使用 CreateTime (兜底) - if (!silkData && columns.createTimeColumn) { - const whereClause = `${columns.createTimeColumn} = ${msg.createTime}` - const sql = `SELECT ${columns.dataColumn} AS data FROM ${voiceTable} WHERE ${whereClause} LIMIT 1` - const result = await wcdbService.execQuery('media', dbPath, sql) - if (result.success && result.rows && result.rows.length > 0) { - const raw = result.rows[0]?.data - const decoded = this.decodeVoiceBlob(raw) - if (decoded && decoded.length > 0) { - console.info('[ChatService][Voice] hit by createTime only', { dbPath, voiceTable, whereClause, bytes: decoded.length }) - silkData = decoded - } - } - } - if (silkData) break - } - - if (!silkData) return { success: false, error: '未找到语音数据' } - - // 4. 使用 silk-wasm 解码 - try { - const pcmData = await this.decodeSilkToPcm(silkData, 24000) - if (!pcmData) { - return { success: false, error: 'Silk 解码失败' } - } - - // PCM -> WAV - const wavData = this.createWavBuffer(pcmData, 24000) - - // 缓存 WAV 数据 (内存缓存) - const cacheKey = this.getVoiceCacheKey(sessionId, msgId) - this.cacheVoiceWav(cacheKey, wavData) - - return { success: true, data: wavData.toString('base64') } - } catch (e) { - console.error('[ChatService][Voice] decoding error:', e) - return { success: false, error: '语音解码失败: ' + String(e) } - } + const senderWxid = msg.senderUsername || undefined + return this.getVoiceData(sessionId, msgId, msg.createTime, msg.serverId, senderWxid) } catch (e) { console.error('ChatService: getVoiceData 失败:', e) return { success: false, error: String(e) } @@ -6449,9 +6064,9 @@ class ChatService { private getVoiceCacheKey(sessionId: string, msgId: string, createTime?: number): string { - // 优先使用 createTime 作为key,避免不同会话中localId相同导致的混乱 + // createTime + msgId 可避免同会话同秒多条语音互相覆盖 if (createTime) { - return `${sessionId}_${createTime}` + return `${sessionId}_${createTime}_${msgId}` } return `${sessionId}_${msgId}` } @@ -6546,10 +6161,10 @@ class ChatService { for (const key of this.voiceTranscriptCache.keys()) { const rawKey = String(key || '') if (!rawKey) continue - // cacheKey 形如 `${sessionId}_${createTime}`,createTime 为数字;兼容旧 key 时使用贪婪匹配。 - const match = /^(.*)_(\d+)$/.exec(rawKey) - if (!match) continue - const sessionId = String(match[1] || '').trim() + // 新 key: `${sessionId}_${createTime}_${msgId}`;旧 key: `${sessionId}_${createTime}` + const matchNew = /^(.*)_(\d+)_(\d+)$/.exec(rawKey) + const matchOld = matchNew ? null : /^(.*)_(\d+)$/.exec(rawKey) + const sessionId = String((matchNew ? matchNew[1] : (matchOld ? matchOld[1] : '')) || '').trim() if (!sessionId || !targetSet.has(sessionId)) continue countMap[sessionId] = (countMap[sessionId] || 0) + 1 } @@ -6567,36 +6182,12 @@ class ChatService { return { success: false, error: connectResult.error || '数据库未连接' } } - // 获取会话表信息 - let tables = this.sessionTablesCache.get(sessionId) - if (!tables) { - const tableStats = await wcdbService.getMessageTableStats(sessionId) - if (!tableStats.success || !tableStats.tables || tableStats.tables.length === 0) { - return { success: false, error: '未找到会话消息表' } - } - tables = tableStats.tables - .map(t => ({ tableName: t.table_name || t.name, dbPath: t.db_path })) - .filter(t => t.tableName && t.dbPath) as Array<{ tableName: string; dbPath: string }> - if (tables.length > 0) { - this.sessionTablesCache.set(sessionId, tables) - setTimeout(() => { this.sessionTablesCache.delete(sessionId) }, this.sessionTablesCacheTtl) - } + const result = await wcdbService.getMessagesByType(sessionId, 34, false, 0, 0) + if (!result.success || !Array.isArray(result.rows)) { + return { success: false, error: result.error || '查询语音消息失败' } } - let allVoiceMessages: Message[] = [] - - for (const { tableName, dbPath } of tables) { - try { - const sql = `SELECT * FROM ${tableName} WHERE local_type = 34 ORDER BY create_time DESC` - const result = await wcdbService.execQuery('message', dbPath, sql) - if (result.success && result.rows && result.rows.length > 0) { - const mapped = this.mapRowsToMessages(result.rows as Record[]) - allVoiceMessages.push(...mapped) - } - } catch (e) { - console.error(`[ChatService] 查询语音消息失败 (${dbPath}):`, e) - } - } + let allVoiceMessages: Message[] = this.mapRowsToMessages(result.rows as Record[]) // 按 createTime 降序排序 allVoiceMessages.sort((a, b) => b.createTime - a.createTime) @@ -6634,43 +6225,20 @@ class ChatService { return { success: false, error: connectResult.error || '数据库未连接' } } - let tables = this.sessionTablesCache.get(sessionId) - if (!tables) { - const tableStats = await wcdbService.getMessageTableStats(sessionId) - if (!tableStats.success || !tableStats.tables || tableStats.tables.length === 0) { - return { success: false, error: '未找到会话消息表' } - } - tables = tableStats.tables - .map(t => ({ tableName: t.table_name || t.name, dbPath: t.db_path })) - .filter(t => t.tableName && t.dbPath) as Array<{ tableName: string; dbPath: string }> - if (tables.length > 0) { - this.sessionTablesCache.set(sessionId, tables) - setTimeout(() => { this.sessionTablesCache.delete(sessionId) }, this.sessionTablesCacheTtl) - } + const result = await wcdbService.getMessagesByType(sessionId, 3, false, 0, 0) + if (!result.success || !Array.isArray(result.rows)) { + return { success: false, error: result.error || '查询图片消息失败' } } - let allImages: Array<{ imageMd5?: string; imageDatName?: string; createTime?: number }> = [] - - for (const { tableName, dbPath } of tables) { - try { - const sql = `SELECT * FROM ${tableName} WHERE local_type = 3 ORDER BY create_time DESC` - const result = await wcdbService.execQuery('message', dbPath, sql) - if (result.success && result.rows && result.rows.length > 0) { - const mapped = this.mapRowsToMessages(result.rows as Record[]) - const images = mapped - .filter(msg => msg.localType === 3) - .map(msg => ({ - imageMd5: msg.imageMd5 || undefined, - imageDatName: msg.imageDatName || undefined, - createTime: msg.createTime || undefined - })) - .filter(img => Boolean(img.imageMd5 || img.imageDatName)) - allImages.push(...images) - } - } catch (e) { - console.error(`[ChatService] 查询图片消息失败 (${dbPath}):`, e) - } - } + const mapped = this.mapRowsToMessages(result.rows as Record[]) + let allImages: Array<{ imageMd5?: string; imageDatName?: string; createTime?: number }> = mapped + .filter(msg => msg.localType === 3) + .map(msg => ({ + imageMd5: msg.imageMd5 || undefined, + imageDatName: msg.imageDatName || undefined, + createTime: msg.createTime || undefined + })) + .filter(img => Boolean(img.imageMd5 || img.imageDatName)) allImages.sort((a, b) => (b.createTime || 0) - (a.createTime || 0)) @@ -6719,50 +6287,11 @@ class ChatService { return { success: false, error: connectResult.error || '数据库未连接' } } - let tables = this.sessionTablesCache.get(sessionId) - if (!tables) { - const tableStats = await wcdbService.getMessageTableStats(sessionId) - if (!tableStats.success || !tableStats.tables || tableStats.tables.length === 0) { - return { success: false, error: '未找到会话消息表' } - } - tables = tableStats.tables - .map(t => ({ tableName: t.table_name || t.name, dbPath: t.db_path })) - .filter(t => t.tableName && t.dbPath) as Array<{ tableName: string; dbPath: string }> - if (tables.length > 0) { - this.sessionTablesCache.set(sessionId, tables) - setTimeout(() => { - this.sessionTablesCache.delete(sessionId) - }, this.sessionTablesCacheTtl) - } - } - - const counts: Record = {} - let hasAnySuccess = false - - for (const { tableName, dbPath } of tables) { - try { - const escapedTableName = String(tableName).replace(/"/g, '""') - const sql = `SELECT strftime('%Y-%m-%d', CASE WHEN create_time > 10000000000 THEN create_time / 1000 ELSE create_time END, 'unixepoch', 'localtime') AS date_key, COUNT(*) AS message_count FROM "${escapedTableName}" WHERE create_time IS NOT NULL GROUP BY date_key` - const result = await wcdbService.execQuery('message', dbPath, sql) - if (!result.success || !Array.isArray(result.rows)) { - console.warn(`[ChatService] 查询每日消息数失败 (${dbPath}):`, result.error) - continue - } - hasAnySuccess = true - result.rows.forEach((row: Record) => { - const date = String(row.date_key || '').trim() - const count = Number(row.message_count || 0) - if (!date || !Number.isFinite(count) || count <= 0) return - counts[date] = (counts[date] || 0) + count - }) - } catch (error) { - console.warn(`[ChatService] 聚合每日消息数失败 (${dbPath}):`, error) - } - } - - if (!hasAnySuccess) { - return { success: false, error: '查询每日消息数失败' } + const result = await wcdbService.getSessionMessageDateCounts(sessionId) + if (!result.success || !result.counts) { + return { success: false, error: result.error || '查询每日消息数失败' } } + const counts = result.counts console.log(`[ChatService] 会话 ${sessionId} 获取到 ${Object.keys(counts).length} 个日期的消息计数`) return { success: true, counts } @@ -6774,54 +6303,12 @@ class ChatService { async getMessageById(sessionId: string, localId: number): Promise<{ success: boolean; message?: Message; error?: string }> { try { - // 1. 尝试从缓存获取会话表信息 - let tables = this.sessionTablesCache.get(sessionId) - - if (!tables) { - // 缓存未命中,查询数据库 - const tableStats = await wcdbService.getMessageTableStats(sessionId) - if (!tableStats.success || !tableStats.tables || tableStats.tables.length === 0) { - return { success: false, error: '未找到会话消息表' } - } - - // 提取表信息并缓存 - tables = tableStats.tables - .map(t => ({ - tableName: t.table_name || t.name, - dbPath: t.db_path - })) - .filter(t => t.tableName && t.dbPath) as Array<{ tableName: string; dbPath: string }> - - if (tables.length > 0) { - this.sessionTablesCache.set(sessionId, tables) - // 设置过期清理 - setTimeout(() => { - this.sessionTablesCache.delete(sessionId) - }, this.sessionTablesCacheTtl) - } + const nativeResult = await wcdbService.getMessageById(sessionId, localId) + if (nativeResult.success && nativeResult.message) { + const message = await this.parseMessage(nativeResult.message as Record, { source: 'detail', sessionId }) + if (message.localId !== 0) return { success: true, message } } - - // 2. 遍历表查找消息 (通常只有一个主表,但可能有归档) - for (const { tableName, dbPath } of tables) { - // 构造查询 - const sql = `SELECT * FROM ${tableName} WHERE local_id = ${localId} LIMIT 1` - const result = await wcdbService.execQuery('message', dbPath, sql) - - if (result.success && result.rows && result.rows.length > 0) { - const row = { - ...(result.rows[0] as Record), - db_path: dbPath, - table_name: tableName - } - const message = await this.parseMessage(row, { source: 'detail', sessionId }) - - if (message.localId !== 0) { - return { success: true, message } - } - } - } - - return { success: false, error: '未找到消息' } + return { success: false, error: nativeResult.error || '未找到消息' } } catch (e) { console.error('ChatService: getMessageById 失败:', e) return { success: false, error: String(e) } @@ -7218,6 +6705,7 @@ class ChatService { if (!connectResult.success) { return { success: false, error: connectResult.error || '数据库未连接' } } + // fallback-exec: 仅用于诊断/低频兼容,不作为业务主路径 return wcdbService.execQuery(kind, path, sql) } catch (e) { console.error('ChatService: 执行自定义查询失败:', e) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index fd68a25..16b0d53 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -128,6 +128,10 @@ export interface ExportProgress { phaseProgress?: number phaseTotal?: number phaseLabel?: string + collectedMessages?: number + exportedMessages?: number + estimatedTotalMessages?: number + writtenFiles?: number } interface ExportTaskControl { @@ -350,6 +354,73 @@ class ExportService { return Math.max(1, Math.min(raw, max)) } + private createProgressEmitter(onProgress?: (progress: ExportProgress) => void): { + emit: (progress: ExportProgress, options?: { force?: boolean }) => void + flush: () => void + } { + if (!onProgress) { + return { + emit: () => { /* noop */ }, + flush: () => { /* noop */ } + } + } + + let pending: ExportProgress | null = null + let lastSentAt = 0 + let lastPhase = '' + let lastSessionId = '' + let lastCollected = 0 + let lastExported = 0 + + const commit = (progress: ExportProgress) => { + onProgress(progress) + pending = null + lastSentAt = Date.now() + lastPhase = String(progress.phase || '') + lastSessionId = String(progress.currentSessionId || '') + lastCollected = Number.isFinite(progress.collectedMessages) ? Math.max(0, Math.floor(progress.collectedMessages || 0)) : lastCollected + lastExported = Number.isFinite(progress.exportedMessages) ? Math.max(0, Math.floor(progress.exportedMessages || 0)) : lastExported + } + + const emit = (progress: ExportProgress, options?: { force?: boolean }) => { + pending = progress + const force = options?.force === true + const now = Date.now() + const phase = String(progress.phase || '') + const sessionId = String(progress.currentSessionId || '') + const collected = Number.isFinite(progress.collectedMessages) ? Math.max(0, Math.floor(progress.collectedMessages || 0)) : lastCollected + const exported = Number.isFinite(progress.exportedMessages) ? Math.max(0, Math.floor(progress.exportedMessages || 0)) : lastExported + const collectedDelta = Math.abs(collected - lastCollected) + const exportedDelta = Math.abs(exported - lastExported) + const shouldEmit = force || + phase !== lastPhase || + sessionId !== lastSessionId || + collectedDelta >= 200 || + exportedDelta >= 200 || + (now - lastSentAt >= 120) + + if (shouldEmit && pending) { + commit(pending) + } + } + + const flush = () => { + if (!pending) return + commit(pending) + } + + return { emit, flush } + } + + private async pathExists(filePath: string): Promise { + try { + await fs.promises.access(filePath, fs.constants.F_OK) + return true + } catch { + return false + } + } + private isMediaExportEnabled(options: ExportOptions): boolean { return options.exportMedia === true && Boolean(options.exportImages || options.exportVoices || options.exportVideos || options.exportEmojis) @@ -428,7 +499,8 @@ class ExportService { total: 100, currentSession: sessionName, phase: 'preparing', - phaseLabel: `收集消息 ${fetched.toLocaleString()} 条` + phaseLabel: `收集消息 ${fetched.toLocaleString()} 条`, + collectedMessages: fetched }) } } @@ -464,6 +536,39 @@ class ExportService { return cleaned } + private getIntFromRow(row: Record, keys: string[], fallback = 0): number { + for (const key of keys) { + const raw = row?.[key] + if (raw === undefined || raw === null || raw === '') continue + const parsed = Number.parseInt(String(raw), 10) + if (Number.isFinite(parsed)) return parsed + } + return fallback + } + + private normalizeUnsignedIntToken(value: unknown): string { + const raw = String(value ?? '').trim() + if (!raw) return '0' + if (/^\d+$/.test(raw)) { + return raw.replace(/^0+(?=\d)/, '') + } + const num = Number(raw) + if (!Number.isFinite(num) || num <= 0) return '0' + return String(Math.floor(num)) + } + + private getStableMessageKey(msg: { localId?: unknown; createTime?: unknown; serverId?: unknown }): string { + const localId = this.normalizeUnsignedIntToken(msg?.localId) + const createTime = this.normalizeUnsignedIntToken(msg?.createTime) + const serverId = this.normalizeUnsignedIntToken(msg?.serverId) + return `${localId}:${createTime}:${serverId}` + } + + private getMediaCacheKey(msg: { localType?: unknown; localId?: unknown; createTime?: unknown; serverId?: unknown }): string { + const localType = this.normalizeUnsignedIntToken(msg?.localType) + return `${localType}_${this.getStableMessageKey(msg)}` + } + private async ensureConnected(): Promise<{ success: boolean; cleanedWxid?: string; error?: string }> { const wxid = this.configService.get('myWxid') const dbPath = this.configService.get('dbPath') @@ -577,13 +682,11 @@ class ExportService { } try { - const sql = 'SELECT ext_buffer FROM chat_room WHERE username = ? LIMIT 1' - const result = await wcdbService.execQuery('contact', null, sql, [chatroomId]) - if (!result.success || !result.rows || result.rows.length === 0) { + const result = await wcdbService.getChatRoomExtBuffer(chatroomId) + if (!result.success || !result.extBuffer) { return nicknameMap } - - const extBuffer = this.decodeExtBuffer((result.rows[0] as any).ext_buffer) + const extBuffer = this.decodeExtBuffer(result.extBuffer) if (!extBuffer) return nicknameMap this.mergeGroupNicknameEntries(nicknameMap, this.parseGroupNicknamesFromExtBuffer(extBuffer, candidates).entries()) return nicknameMap @@ -2162,13 +2265,14 @@ class ExportService { exportEmojis?: boolean exportVoiceAsText?: boolean includeVoiceWithTranscript?: boolean + dirCache?: Set } ): Promise { const localType = msg.localType // 图片消息 if (localType === 3 && options.exportImages) { - const result = await this.exportImage(msg, sessionId, mediaRootDir, mediaRelativePrefix) + const result = await this.exportImage(msg, sessionId, mediaRootDir, mediaRelativePrefix, options.dirCache) if (result) { } return result @@ -2177,7 +2281,7 @@ class ExportService { // 语音消息 if (localType === 34) { if (options.exportVoices) { - return this.exportVoice(msg, sessionId, mediaRootDir, mediaRelativePrefix) + return this.exportVoice(msg, sessionId, mediaRootDir, mediaRelativePrefix, options.dirCache) } if (options.exportVoiceAsText) { return null @@ -2186,14 +2290,14 @@ class ExportService { // 动画表情 if (localType === 47 && options.exportEmojis) { - const result = await this.exportEmoji(msg, sessionId, mediaRootDir, mediaRelativePrefix) + const result = await this.exportEmoji(msg, sessionId, mediaRootDir, mediaRelativePrefix, options.dirCache) if (result) { } return result } if (localType === 43 && options.exportVideos) { - return this.exportVideo(msg, sessionId, mediaRootDir, mediaRelativePrefix) + return this.exportVideo(msg, sessionId, mediaRootDir, mediaRelativePrefix, options.dirCache) } return null @@ -2206,12 +2310,14 @@ class ExportService { msg: any, sessionId: string, mediaRootDir: string, - mediaRelativePrefix: string + mediaRelativePrefix: string, + dirCache?: Set ): Promise { try { const imagesDir = path.join(mediaRootDir, mediaRelativePrefix, 'images') - if (!fs.existsSync(imagesDir)) { - fs.mkdirSync(imagesDir, { recursive: true }) + if (!dirCache?.has(imagesDir)) { + await fs.promises.mkdir(imagesDir, { recursive: true }) + dirCache?.add(imagesDir) } // 使用消息对象中已提取的字段 @@ -2268,7 +2374,7 @@ class ExportService { const fileName = `${messageId}_${imageKey}${ext}` const destPath = path.join(imagesDir, fileName) - fs.writeFileSync(destPath, Buffer.from(base64Data, 'base64')) + await fs.promises.writeFile(destPath, Buffer.from(base64Data, 'base64')) return { relativePath: path.posix.join(mediaRelativePrefix, 'images', fileName), @@ -2279,17 +2385,14 @@ class ExportService { } // 复制文件 - if (!fs.existsSync(sourcePath)) { + if (!(await this.pathExists(sourcePath))) { console.log(`[Export] 源图片文件不存在 (localId=${msg.localId}): ${sourcePath} → 将显示 [图片] 占位符`) return null } const ext = path.extname(sourcePath) || '.jpg' const fileName = `${messageId}_${imageKey}${ext}` const destPath = path.join(imagesDir, fileName) - - if (!fs.existsSync(destPath)) { - fs.copyFileSync(sourcePath, destPath) - } + await fs.promises.copyFile(sourcePath, destPath) return { relativePath: path.posix.join(mediaRelativePrefix, 'images', fileName), @@ -2301,6 +2404,56 @@ class ExportService { } } + /** + * 导出语音文件 + */ + private async preloadVoiceWavCache( + sessionId: string, + messages: any[], + control?: ExportTaskControl + ): Promise { + if (!Array.isArray(messages) || messages.length === 0) return + + const normalizedSessionId = String(sessionId || '').trim() + if (!normalizedSessionId) return + + const normalized: Array<{ + localId: number + createTime: number + serverId?: string | number + senderWxid?: string | null + }> = [] + const seen = new Set() + + for (const msg of messages) { + const localIdRaw = Number(msg?.localId) + const createTimeRaw = Number(msg?.createTime) + const localId = Number.isFinite(localIdRaw) ? Math.max(0, Math.floor(localIdRaw)) : 0 + const createTime = Number.isFinite(createTimeRaw) ? Math.max(0, Math.floor(createTimeRaw)) : 0 + if (!localId || !createTime) continue + const dedupeKey = this.getStableMessageKey(msg) + if (seen.has(dedupeKey)) continue + seen.add(dedupeKey) + normalized.push({ + localId, + createTime, + serverId: msg?.serverId, + senderWxid: msg?.senderUsername || null + }) + } + if (normalized.length === 0) return + + const chunkSize = 120 + for (let i = 0; i < normalized.length; i += chunkSize) { + this.throwIfStopRequested(control) + const chunk = normalized.slice(i, i + chunkSize) + await chatService.preloadVoiceDataBatch(normalizedSessionId, chunk, { + chunkSize: 48, + decodeConcurrency: 3 + }) + } + } + /** * 导出语音文件 */ @@ -2308,23 +2461,26 @@ class ExportService { msg: any, sessionId: string, mediaRootDir: string, - mediaRelativePrefix: string + mediaRelativePrefix: string, + dirCache?: Set ): Promise { try { const voicesDir = path.join(mediaRootDir, mediaRelativePrefix, 'voices') - if (!fs.existsSync(voicesDir)) { - fs.mkdirSync(voicesDir, { recursive: true }) + if (!dirCache?.has(voicesDir)) { + await fs.promises.mkdir(voicesDir, { recursive: true }) + dirCache?.add(voicesDir) } const msgId = String(msg.localId) const safeSession = this.cleanAccountDirName(sessionId) .replace(/[^a-zA-Z0-9_-]/g, '_') .slice(0, 48) || 'session' - const fileName = `voice_${safeSession}_${msgId}.wav` + const stableKey = this.getStableMessageKey(msg).replace(/:/g, '_') + const fileName = `voice_${safeSession}_${stableKey || msgId}.wav` const destPath = path.join(voicesDir, fileName) // 如果已存在则跳过 - if (fs.existsSync(destPath)) { + if (await this.pathExists(destPath)) { return { relativePath: path.posix.join(mediaRelativePrefix, 'voices', fileName), kind: 'voice' @@ -2332,14 +2488,20 @@ class ExportService { } // 调用 chatService 获取语音数据 - const voiceResult = await chatService.getVoiceData(sessionId, msgId) + const voiceResult = await chatService.getVoiceData( + sessionId, + msgId, + Number.isFinite(Number(msg?.createTime)) ? Number(msg.createTime) : undefined, + msg?.serverId, + msg?.senderUsername || undefined + ) if (!voiceResult.success || !voiceResult.data) { return null } // voiceResult.data 是 base64 编码的 wav 数据 const wavBuffer = Buffer.from(voiceResult.data, 'base64') - fs.writeFileSync(destPath, wavBuffer) + await fs.promises.writeFile(destPath, wavBuffer) return { relativePath: path.posix.join(mediaRelativePrefix, 'voices', fileName), @@ -2372,18 +2534,20 @@ class ExportService { msg: any, sessionId: string, mediaRootDir: string, - mediaRelativePrefix: string + mediaRelativePrefix: string, + dirCache?: Set ): Promise { try { const emojisDir = path.join(mediaRootDir, mediaRelativePrefix, 'emojis') - if (!fs.existsSync(emojisDir)) { - fs.mkdirSync(emojisDir, { recursive: true }) + if (!dirCache?.has(emojisDir)) { + await fs.promises.mkdir(emojisDir, { recursive: true }) + dirCache?.add(emojisDir) } // 使用 chatService 下载表情包 (利用其重试和 fallback 逻辑) const localPath = await chatService.downloadEmojiFile(msg) - if (!localPath || !fs.existsSync(localPath)) { + if (!localPath || !(await this.pathExists(localPath))) { return null } @@ -2393,10 +2557,7 @@ class ExportService { const fileName = `${key}${ext}` const destPath = path.join(emojisDir, fileName) - // 复制文件到导出目录 (如果不存在) - if (!fs.existsSync(destPath)) { - fs.copyFileSync(localPath, destPath) - } + await fs.promises.copyFile(localPath, destPath) return { relativePath: path.posix.join(mediaRelativePrefix, 'emojis', fileName), @@ -2415,15 +2576,17 @@ class ExportService { msg: any, sessionId: string, mediaRootDir: string, - mediaRelativePrefix: string + mediaRelativePrefix: string, + dirCache?: Set ): Promise { try { const videoMd5 = msg.videoMd5 if (!videoMd5) return null const videosDir = path.join(mediaRootDir, mediaRelativePrefix, 'videos') - if (!fs.existsSync(videosDir)) { - fs.mkdirSync(videosDir, { recursive: true }) + if (!dirCache?.has(videosDir)) { + await fs.promises.mkdir(videosDir, { recursive: true }) + dirCache?.add(videosDir) } const videoInfo = await videoService.getVideoInfo(videoMd5) @@ -2435,9 +2598,7 @@ class ExportService { const fileName = path.basename(sourcePath) const destPath = path.join(videosDir, fileName) - if (!fs.existsSync(destPath)) { - fs.copyFileSync(sourcePath, destPath) - } + await fs.promises.copyFile(sourcePath, destPath) return { relativePath: path.posix.join(mediaRelativePrefix, 'videos', fileName), @@ -2707,12 +2868,19 @@ class ExportService { if ((rowIndex++ & 0x7f) === 0) { this.throwIfStopRequested(control) } - const createTime = parseInt(row.create_time || '0', 10) + const createTime = this.getIntFromRow(row, [ + 'create_time', 'createTime', 'createtime', + 'msg_create_time', 'msgCreateTime', + 'msg_time', 'msgTime', 'time', + 'WCDB_CT_create_time' + ], 0) if (dateRange) { if (createTime < dateRange.start || createTime > dateRange.end) continue } - const localType = parseInt(row.local_type || row.type || '1', 10) + const localType = this.getIntFromRow(row, [ + 'local_type', 'localType', 'type', 'msg_type', 'msgType', 'WCDB_CT_local_type' + ], 1) if (mediaTypeFilter && !mediaTypeFilter.has(localType)) { continue } @@ -2725,7 +2893,18 @@ class ExportService { const senderUsername = row.sender_username || '' const isSendRaw = row.computed_is_send ?? row.is_send ?? '0' const isSend = parseInt(isSendRaw, 10) === 1 - const localId = parseInt(row.local_id || row.localId || '0', 10) + const localId = this.getIntFromRow(row, [ + 'local_id', 'localId', 'LocalId', + 'msg_local_id', 'msgLocalId', 'MsgLocalId', + 'msg_id', 'msgId', 'MsgId', 'id', + 'WCDB_CT_local_id' + ], 0) + const serverId = this.getIntFromRow(row, [ + 'server_id', 'serverId', 'ServerId', + 'msg_server_id', 'msgServerId', 'MsgServerId', + 'svr_id', 'svrId', 'msg_svr_id', 'msgSvrId', 'MsgSvrId', + 'WCDB_CT_server_id' + ], 0) // 确定实际发送者 let actualSender: string @@ -2809,6 +2988,7 @@ class ExportService { rows.push({ localId, + serverId, createTime, localType, content, @@ -3073,18 +3253,12 @@ class ExportService { ) if (unique.length === 0) return result - const BATCH = 200 - for (let i = 0; i < unique.length; i += BATCH) { - const batch = unique.slice(i, i + BATCH) - const inList = batch.map((username) => `'${username.replace(/'/g, "''")}'`).join(',') - const sql = `SELECT username, local_type FROM contact WHERE username IN (${inList})` - const query = await wcdbService.execQuery('contact', null, sql) - if (!query.success || !query.rows) continue - for (const row of query.rows) { - const username = String((row as any).username || '').trim() - if (!username) continue - const localType = Number.parseInt(String((row as any).local_type ?? (row as any).localType ?? (row as any).WCDB_CT_local_type ?? ''), 10) - result.set(username, Number.isFinite(localType) && localType === 1) + const query = await wcdbService.getContactFriendFlags(unique) + if (query.success && query.map) { + for (const [username, isFriend] of Object.entries(query.map)) { + const normalized = String(username || '').trim() + if (!normalized) continue + result.set(normalized, Boolean(isFriend)) } } @@ -3396,9 +3570,10 @@ class ExportService { collectProgressReporter ) const allMessages = collected.rows + const totalMessages = allMessages.length // 如果没有消息,不创建文件 - if (allMessages.length === 0) { + if (totalMessages === 0) { return { success: false, error: '该会话在指定时间范围内没有消息' } } @@ -3466,8 +3641,14 @@ class ExportService { : [] const mediaCache = new Map() + const mediaDirCache = new Set() if (mediaMessages.length > 0) { + const voiceMediaMessages = mediaMessages.filter(msg => msg.localType === 34) + if (voiceMediaMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMediaMessages, control) + } + onProgress?.({ current: 20, total: 100, @@ -3475,7 +3656,8 @@ class ExportService { phase: 'exporting-media', phaseProgress: 0, phaseTotal: mediaMessages.length, - phaseLabel: `导出媒体 0/${mediaMessages.length}` + phaseLabel: `导出媒体 0/${mediaMessages.length}`, + estimatedTotalMessages: totalMessages }) // 并行导出媒体,并发数跟随导出设置 @@ -3483,14 +3665,15 @@ class ExportService { let mediaExported = 0 await parallelLimit(mediaMessages, mediaConcurrency, async (msg) => { this.throwIfStopRequested(control) - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) if (!mediaCache.has(mediaKey)) { const mediaItem = await this.exportMediaForMessage(msg, sessionId, mediaRootDir, mediaRelativePrefix, { exportImages: options.exportImages, exportVoices: options.exportVoices, exportVideos: options.exportVideos, exportEmojis: options.exportEmojis, - exportVoiceAsText: options.exportVoiceAsText + exportVoiceAsText: options.exportVoiceAsText, + dirCache: mediaDirCache }) mediaCache.set(mediaKey, mediaItem) } @@ -3510,9 +3693,11 @@ class ExportService { } // ========== 阶段2:并行语音转文字 ========== - const voiceTranscriptMap = new Map() + const voiceTranscriptMap = new Map() if (voiceMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMessages, control) + onProgress?.({ current: 40, total: 100, @@ -3520,7 +3705,8 @@ class ExportService { phase: 'exporting-voice', phaseProgress: 0, phaseTotal: voiceMessages.length, - phaseLabel: `语音转文字 0/${voiceMessages.length}` + phaseLabel: `语音转文字 0/${voiceMessages.length}`, + estimatedTotalMessages: totalMessages }) // 并行转写语音,限制 4 个并发(转写比较耗资源) @@ -3529,7 +3715,7 @@ class ExportService { await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) - voiceTranscriptMap.set(msg.localId, transcript) + voiceTranscriptMap.set(this.getStableMessageKey(msg), transcript) voiceTranscribed++ onProgress?.({ current: 40, @@ -3548,7 +3734,10 @@ class ExportService { current: 60, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) const chatLabMessages: ChatLabMessage[] = [] @@ -3591,11 +3780,11 @@ class ExportService { // 确定消息内容 let content: string | null - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) const mediaItem = mediaCache.get(mediaKey) if (msg.localType === 34 && options.exportVoiceAsText) { // 使用预先转写的文字 - content = voiceTranscriptMap.get(msg.localId) || '[语音消息 - 转文字失败]' + content = voiceTranscriptMap.get(this.getStableMessageKey(msg)) || '[语音消息 - 转文字失败]' } else if (mediaItem && msg.localType === 3) { content = mediaItem.relativePath } else { @@ -3730,6 +3919,18 @@ class ExportService { } chatLabMessages.push(message) + if ((chatLabMessages.length % 200) === 0 || chatLabMessages.length === totalMessages) { + const exportProgress = 60 + Math.floor((chatLabMessages.length / totalMessages) * 20) + onProgress?.({ + current: exportProgress, + total: 100, + currentSession: sessionInfo.displayName, + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: chatLabMessages.length + }) + } } const avatarMap = options.exportAvatars @@ -3780,7 +3981,10 @@ class ExportService { current: 80, total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages }) if (options.format === 'chatlab-jsonl') { @@ -3799,17 +4003,21 @@ class ExportService { lines.push(JSON.stringify({ _type: 'message', ...message })) } this.throwIfStopRequested(control) - fs.writeFileSync(outputPath, lines.join('\n'), 'utf-8') + await fs.promises.writeFile(outputPath, lines.join('\n'), 'utf-8') } else { this.throwIfStopRequested(control) - fs.writeFileSync(outputPath, JSON.stringify(chatLabExport, null, 2), 'utf-8') + await fs.promises.writeFile(outputPath, JSON.stringify(chatLabExport, null, 2), 'utf-8') } onProgress?.({ current: 100, total: 100, currentSession: sessionInfo.displayName, - phase: 'complete' + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 }) return { success: true } @@ -3872,9 +4080,10 @@ class ExportService { control, collectProgressReporter ) + const totalMessages = collected.rows.length // 如果没有消息,不创建文件 - if (collected.rows.length === 0) { + if (totalMessages === 0) { return { success: false, error: '该会话在指定时间范围内没有消息' } } @@ -3915,8 +4124,14 @@ class ExportService { : [] const mediaCache = new Map() + const mediaDirCache = new Set() if (mediaMessages.length > 0) { + const voiceMediaMessages = mediaMessages.filter(msg => msg.localType === 34) + if (voiceMediaMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMediaMessages, control) + } + onProgress?.({ current: 15, total: 100, @@ -3924,21 +4139,23 @@ class ExportService { phase: 'exporting-media', phaseProgress: 0, phaseTotal: mediaMessages.length, - phaseLabel: `导出媒体 0/${mediaMessages.length}` + phaseLabel: `导出媒体 0/${mediaMessages.length}`, + estimatedTotalMessages: totalMessages }) const mediaConcurrency = this.getClampedConcurrency(options.exportConcurrency) let mediaExported = 0 await parallelLimit(mediaMessages, mediaConcurrency, async (msg) => { this.throwIfStopRequested(control) - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) if (!mediaCache.has(mediaKey)) { const mediaItem = await this.exportMediaForMessage(msg, sessionId, mediaRootDir, mediaRelativePrefix, { exportImages: options.exportImages, exportVoices: options.exportVoices, exportVideos: options.exportVideos, exportEmojis: options.exportEmojis, - exportVoiceAsText: options.exportVoiceAsText + exportVoiceAsText: options.exportVoiceAsText, + dirCache: mediaDirCache }) mediaCache.set(mediaKey, mediaItem) } @@ -3958,9 +4175,11 @@ class ExportService { } // ========== 阶段2:并行语音转文字 ========== - const voiceTranscriptMap = new Map() + const voiceTranscriptMap = new Map() if (voiceMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMessages, control) + onProgress?.({ current: 35, total: 100, @@ -3968,7 +4187,8 @@ class ExportService { phase: 'exporting-voice', phaseProgress: 0, phaseTotal: voiceMessages.length, - phaseLabel: `语音转文字 0/${voiceMessages.length}` + phaseLabel: `语音转文字 0/${voiceMessages.length}`, + estimatedTotalMessages: totalMessages }) const VOICE_CONCURRENCY = 4 @@ -3976,7 +4196,7 @@ class ExportService { await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) - voiceTranscriptMap.set(msg.localId, transcript) + voiceTranscriptMap.set(this.getStableMessageKey(msg), transcript) voiceTranscribed++ onProgress?.({ current: 35, @@ -4007,7 +4227,10 @@ class ExportService { current: 55, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) const allMessages: any[] = [] @@ -4030,11 +4253,11 @@ class ExportService { const source = sourceMatch ? sourceMatch[0] : '' let content: string | null - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) const mediaItem = mediaCache.get(mediaKey) if (msg.localType === 34 && options.exportVoiceAsText) { - content = voiceTranscriptMap.get(msg.localId) || '[语音消息 - 转文字失败]' + content = voiceTranscriptMap.get(this.getStableMessageKey(msg)) || '[语音消息 - 转文字失败]' } else if (mediaItem) { content = mediaItem.relativePath } else { @@ -4124,6 +4347,18 @@ class ExportService { allMessages.push(msgObj) if (msg.createTime < lastCreateTime) needSort = true lastCreateTime = msg.createTime + if ((allMessages.length % 200) === 0 || allMessages.length === totalMessages) { + const exportProgress = 55 + Math.floor((allMessages.length / totalMessages) * 15) + onProgress?.({ + current: exportProgress, + total: 100, + currentSession: sessionInfo.displayName, + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: allMessages.length + }) + } } if (transferCandidates.length > 0) { @@ -4172,7 +4407,10 @@ class ExportService { current: 70, total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages }) // 获取会话的昵称和备注信息 @@ -4421,7 +4659,7 @@ class ExportService { } this.throwIfStopRequested(control) - fs.writeFileSync(outputPath, JSON.stringify(arkmeExport, null, 2), 'utf-8') + await fs.promises.writeFile(outputPath, JSON.stringify(arkmeExport, null, 2), 'utf-8') } else { const detailedExport: any = { weflow, @@ -4444,14 +4682,18 @@ class ExportService { } this.throwIfStopRequested(control) - fs.writeFileSync(outputPath, JSON.stringify(detailedExport, null, 2), 'utf-8') + await fs.promises.writeFile(outputPath, JSON.stringify(detailedExport, null, 2), 'utf-8') } onProgress?.({ current: 100, total: 100, currentSession: sessionInfo.displayName, - phase: 'complete' + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 }) return { success: true } @@ -4519,9 +4761,10 @@ class ExportService { control, collectProgressReporter ) + const totalMessages = collected.rows.length // 如果没有消息,不创建文件 - if (collected.rows.length === 0) { + if (totalMessages === 0) { return { success: false, error: '该会话在指定时间范围内没有消息' } } @@ -4548,7 +4791,10 @@ class ExportService { current: 30, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) // 创建 Excel 工作簿 @@ -4685,8 +4931,14 @@ class ExportService { : [] const mediaCache = new Map() + const mediaDirCache = new Set() if (mediaMessages.length > 0) { + const voiceMediaMessages = mediaMessages.filter(msg => msg.localType === 34) + if (voiceMediaMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMediaMessages, control) + } + onProgress?.({ current: 35, total: 100, @@ -4694,21 +4946,23 @@ class ExportService { phase: 'exporting-media', phaseProgress: 0, phaseTotal: mediaMessages.length, - phaseLabel: `导出媒体 0/${mediaMessages.length}` + phaseLabel: `导出媒体 0/${mediaMessages.length}`, + estimatedTotalMessages: totalMessages }) const mediaConcurrency = this.getClampedConcurrency(options.exportConcurrency) let mediaExported = 0 await parallelLimit(mediaMessages, mediaConcurrency, async (msg) => { this.throwIfStopRequested(control) - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) if (!mediaCache.has(mediaKey)) { const mediaItem = await this.exportMediaForMessage(msg, sessionId, mediaRootDir, mediaRelativePrefix, { exportImages: options.exportImages, exportVoices: options.exportVoices, exportVideos: options.exportVideos, exportEmojis: options.exportEmojis, - exportVoiceAsText: options.exportVoiceAsText + exportVoiceAsText: options.exportVoiceAsText, + dirCache: mediaDirCache }) mediaCache.set(mediaKey, mediaItem) } @@ -4728,9 +4982,11 @@ class ExportService { } // ========== 并行预处理:语音转文字 ========== - const voiceTranscriptMap = new Map() + const voiceTranscriptMap = new Map() if (voiceMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMessages, control) + onProgress?.({ current: 50, total: 100, @@ -4738,7 +4994,8 @@ class ExportService { phase: 'exporting-voice', phaseProgress: 0, phaseTotal: voiceMessages.length, - phaseLabel: `语音转文字 0/${voiceMessages.length}` + phaseLabel: `语音转文字 0/${voiceMessages.length}`, + estimatedTotalMessages: totalMessages }) const VOICE_CONCURRENCY = 4 @@ -4746,7 +5003,7 @@ class ExportService { await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) - voiceTranscriptMap.set(msg.localId, transcript) + voiceTranscriptMap.set(this.getStableMessageKey(msg), transcript) voiceTranscribed++ onProgress?.({ current: 50, @@ -4760,15 +5017,41 @@ class ExportService { }) } + const shouldUseStreamingWriter = totalMessages > 20000 + if (shouldUseStreamingWriter) { + return this.exportSessionToExcelStreaming({ + outputPath, + options, + sessionId, + sessionInfo, + myInfo, + cleanedMyWxid, + rawMyWxid, + isGroup, + sortedMessages, + mediaCache, + voiceTranscriptMap, + getContactCached, + groupNicknamesMap, + onProgress, + control, + totalMessages + }) + } + onProgress?.({ current: 65, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) // ========== 写入 Excel 行 ========== - for (let i = 0; i < sortedMessages.length; i++) { + const senderProfileCache = new Map() + for (let i = 0; i < totalMessages; i++) { if ((i & 0x7f) === 0) { this.throwIfStopRequested(control) } @@ -4782,14 +5065,19 @@ class ExportService { let senderGroupNickname: string = '' // 群昵称 if (isGroup) { - const senderProfile = await this.resolveExportDisplayProfile( - msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), - options.displayNamePreference, - getContactCached, - groupNicknamesMap, - msg.isSend ? (myInfo.displayName || cleanedMyWxid) : (msg.senderUsername || ''), - msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] - ) + const senderProfileKey = `${msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid)}::${msg.isSend ? '1' : '0'}` + let senderProfile = senderProfileCache.get(senderProfileKey) + if (!senderProfile) { + senderProfile = await this.resolveExportDisplayProfile( + msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), + options.displayNamePreference, + getContactCached, + groupNicknamesMap, + msg.isSend ? (myInfo.displayName || cleanedMyWxid) : (msg.senderUsername || ''), + msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] + ) + senderProfileCache.set(senderProfileKey, senderProfile) + } senderWxid = senderProfile.wxid senderNickname = senderProfile.nickname senderRemark = senderProfile.remark @@ -4819,7 +5107,7 @@ class ExportService { const row = worksheet.getRow(currentRow) row.height = 24 - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) const mediaItem = mediaCache.get(mediaKey) const shouldUseTranscript = msg.localType === 34 && options.exportVoiceAsText const contentValue = shouldUseTranscript @@ -4827,7 +5115,7 @@ class ExportService { msg.content, msg.localType, options, - voiceTranscriptMap.get(msg.localId), + voiceTranscriptMap.get(this.getStableMessageKey(msg)), cleanedMyWxid, msg.senderUsername, msg.isSend @@ -4837,7 +5125,7 @@ class ExportService { msg.content, msg.localType, options, - voiceTranscriptMap.get(msg.localId), + voiceTranscriptMap.get(this.getStableMessageKey(msg)), cleanedMyWxid, msg.senderUsername, msg.isSend @@ -4883,14 +5171,6 @@ class ExportService { worksheet.getCell(currentRow, 9).value = enrichedContentValue } - // 设置每个单元格的样式 - const maxColumns = useCompactColumns ? 5 : 9 - for (let col = 1; col <= maxColumns; col++) { - const cell = worksheet.getCell(currentRow, col) - cell.font = { name: 'Calibri', size: 11 } - cell.alignment = { vertical: 'middle', wrapText: false } - } - currentRow++ // 每处理 100 条消息报告一次进度 @@ -4900,7 +5180,10 @@ class ExportService { current: progress, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: i + 1 }) } } @@ -4909,7 +5192,10 @@ class ExportService { current: 90, total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages }) // 写入文件 @@ -4920,7 +5206,11 @@ class ExportService { current: 100, total: 100, currentSession: sessionInfo.displayName, - phase: 'complete' + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 }) return { success: true } @@ -4939,6 +5229,236 @@ class ExportService { } } + private async exportSessionToExcelStreaming(params: { + outputPath: string + options: ExportOptions + sessionId: string + sessionInfo: { displayName: string } + myInfo: { displayName: string } + cleanedMyWxid: string + rawMyWxid: string + isGroup: boolean + sortedMessages: any[] + mediaCache: Map + voiceTranscriptMap: Map + getContactCached: (username: string) => Promise<{ success: boolean; contact?: any; error?: string }> + groupNicknamesMap: Map + onProgress?: (progress: ExportProgress) => void + control?: ExportTaskControl + totalMessages: number + }): Promise<{ success: boolean; error?: string }> { + const { + outputPath, + options, + sessionId, + sessionInfo, + myInfo, + cleanedMyWxid, + rawMyWxid, + isGroup, + sortedMessages, + mediaCache, + voiceTranscriptMap, + getContactCached, + groupNicknamesMap, + onProgress, + control, + totalMessages + } = params + + try { + const workbook = new ExcelJS.stream.xlsx.WorkbookWriter({ + filename: outputPath, + useStyles: true, + useSharedStrings: false + }) + const worksheet = workbook.addWorksheet('聊天记录') + const useCompactColumns = options.excelCompactColumns === true + const senderProfileCache = new Map() + + worksheet.columns = useCompactColumns + ? [ + { width: 8 }, + { width: 20 }, + { width: 18 }, + { width: 12 }, + { width: 50 } + ] + : [ + { width: 8 }, + { width: 20 }, + { width: 18 }, + { width: 25 }, + { width: 18 }, + { width: 18 }, + { width: 15 }, + { width: 12 }, + { width: 50 } + ] + + const appendRow = (values: any[]) => { + const row = worksheet.addRow(values) + row.commit() + } + + appendRow(['会话信息']) + appendRow(['微信ID', sessionId, '昵称', sessionInfo.displayName || sessionId]) + appendRow(['导出工具', 'WeFlow', '导出时间', this.formatTimestamp(Math.floor(Date.now() / 1000))]) + appendRow([]) + appendRow(useCompactColumns + ? ['序号', '时间', '发送者身份', '消息类型', '内容'] + : ['序号', '时间', '发送者昵称', '发送者微信ID', '发送者备注', '群昵称', '发送者身份', '消息类型', '内容']) + + for (let i = 0; i < totalMessages; i++) { + if ((i & 0x7f) === 0) this.throwIfStopRequested(control) + const msg = sortedMessages[i] + + let senderRole: string + let senderWxid: string + let senderNickname: string + let senderRemark = '' + let senderGroupNickname = '' + + if (isGroup) { + const senderProfileKey = `${msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid)}::${msg.isSend ? '1' : '0'}` + let senderProfile = senderProfileCache.get(senderProfileKey) + if (!senderProfile) { + senderProfile = await this.resolveExportDisplayProfile( + msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), + options.displayNamePreference, + getContactCached, + groupNicknamesMap, + msg.isSend ? (myInfo.displayName || cleanedMyWxid) : (msg.senderUsername || ''), + msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] + ) + senderProfileCache.set(senderProfileKey, senderProfile) + } + senderWxid = senderProfile.wxid + senderNickname = senderProfile.nickname + senderRemark = senderProfile.remark + senderGroupNickname = senderProfile.groupNickname + senderRole = senderProfile.displayName + } else if (msg.isSend) { + senderRole = '我' + senderWxid = cleanedMyWxid + senderNickname = myInfo.displayName || cleanedMyWxid + } else { + senderWxid = sessionId + const contactDetail = await getContactCached(sessionId) + if (contactDetail.success && contactDetail.contact) { + senderNickname = contactDetail.contact.nickName || sessionId + senderRemark = contactDetail.contact.remark || '' + senderRole = senderRemark || senderNickname + } else { + senderNickname = sessionInfo.displayName || sessionId + senderRole = senderNickname + } + } + + const mediaKey = this.getMediaCacheKey(msg) + const mediaItem = mediaCache.get(mediaKey) + const shouldUseTranscript = msg.localType === 34 && options.exportVoiceAsText + const contentValue = shouldUseTranscript + ? this.formatPlainExportContent( + msg.content, + msg.localType, + options, + voiceTranscriptMap.get(this.getStableMessageKey(msg)), + cleanedMyWxid, + msg.senderUsername, + msg.isSend + ) + : (mediaItem?.relativePath + || this.formatPlainExportContent( + msg.content, + msg.localType, + options, + voiceTranscriptMap.get(this.getStableMessageKey(msg)), + cleanedMyWxid, + msg.senderUsername, + msg.isSend + )) + + let enrichedContentValue = contentValue + if (this.isTransferExportContent(contentValue) && msg.content) { + const transferDesc = await this.resolveTransferDesc( + msg.content, + cleanedMyWxid, + groupNicknamesMap, + async (username) => { + const c = await getContactCached(username) + if (c.success && c.contact) { + return c.contact.remark || c.contact.nickName || c.contact.alias || username + } + return username + } + ) + if (transferDesc) { + enrichedContentValue = this.appendTransferDesc(contentValue, transferDesc) + } + } + + appendRow(useCompactColumns + ? [ + i + 1, + this.formatTimestamp(msg.createTime), + senderRole, + this.getMessageTypeName(msg.localType), + enrichedContentValue + ] + : [ + i + 1, + this.formatTimestamp(msg.createTime), + senderNickname, + senderWxid, + senderRemark, + senderGroupNickname, + senderRole, + this.getMessageTypeName(msg.localType), + enrichedContentValue + ]) + + if ((i + 1) % 200 === 0) { + onProgress?.({ + current: 65 + Math.floor((i + 1) / totalMessages * 25), + total: 100, + currentSession: sessionInfo.displayName, + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: i + 1 + }) + } + } + + worksheet.commit() + await workbook.commit() + + onProgress?.({ + current: 100, + total: 100, + currentSession: sessionInfo.displayName, + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 + }) + + return { success: true } + } catch (e) { + if (this.isStopError(e)) { + return { success: false, error: '导出任务已停止' } + } + if (e instanceof Error) { + if (e.message.includes('EBUSY') || e.message.includes('resource busy') || e.message.includes('locked')) { + return { success: false, error: '文件已经打开,请关闭后再导出' } + } + } + return { success: false, error: String(e) } + } + } + /** * 确保语音转写模型已下载 */ @@ -5024,9 +5544,10 @@ class ExportService { control, collectProgressReporter ) + const totalMessages = collected.rows.length // 如果没有消息,不创建文件 - if (collected.rows.length === 0) { + if (totalMessages === 0) { return { success: false, error: '该会话在指定时间范围内没有消息' } } @@ -5076,8 +5597,14 @@ class ExportService { : [] const mediaCache = new Map() + const mediaDirCache = new Set() if (mediaMessages.length > 0) { + const voiceMediaMessages = mediaMessages.filter(msg => msg.localType === 34) + if (voiceMediaMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMediaMessages, control) + } + onProgress?.({ current: 25, total: 100, @@ -5085,21 +5612,23 @@ class ExportService { phase: 'exporting-media', phaseProgress: 0, phaseTotal: mediaMessages.length, - phaseLabel: `导出媒体 0/${mediaMessages.length}` + phaseLabel: `导出媒体 0/${mediaMessages.length}`, + estimatedTotalMessages: totalMessages }) const mediaConcurrency = this.getClampedConcurrency(options.exportConcurrency) let mediaExported = 0 await parallelLimit(mediaMessages, mediaConcurrency, async (msg) => { this.throwIfStopRequested(control) - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) if (!mediaCache.has(mediaKey)) { const mediaItem = await this.exportMediaForMessage(msg, sessionId, mediaRootDir, mediaRelativePrefix, { exportImages: options.exportImages, exportVoices: options.exportVoices, exportVideos: options.exportVideos, exportEmojis: options.exportEmojis, - exportVoiceAsText: options.exportVoiceAsText + exportVoiceAsText: options.exportVoiceAsText, + dirCache: mediaDirCache }) mediaCache.set(mediaKey, mediaItem) } @@ -5118,9 +5647,11 @@ class ExportService { }) } - const voiceTranscriptMap = new Map() + const voiceTranscriptMap = new Map() if (voiceMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMessages, control) + onProgress?.({ current: 45, total: 100, @@ -5128,7 +5659,8 @@ class ExportService { phase: 'exporting-voice', phaseProgress: 0, phaseTotal: voiceMessages.length, - phaseLabel: `语音转文字 0/${voiceMessages.length}` + phaseLabel: `语音转文字 0/${voiceMessages.length}`, + estimatedTotalMessages: totalMessages }) const VOICE_CONCURRENCY = 4 @@ -5136,7 +5668,7 @@ class ExportService { await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) - voiceTranscriptMap.set(msg.localId, transcript) + voiceTranscriptMap.set(this.getStableMessageKey(msg), transcript) voiceTranscribed++ onProgress?.({ current: 45, @@ -5154,17 +5686,21 @@ class ExportService { current: 60, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) const lines: string[] = [] + const senderProfileCache = new Map() - for (let i = 0; i < sortedMessages.length; i++) { + for (let i = 0; i < totalMessages; i++) { if ((i & 0x7f) === 0) { this.throwIfStopRequested(control) } const msg = sortedMessages[i] - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) const mediaItem = mediaCache.get(mediaKey) const shouldUseTranscript = msg.localType === 34 && options.exportVoiceAsText const contentValue = shouldUseTranscript @@ -5172,7 +5708,7 @@ class ExportService { msg.content, msg.localType, options, - voiceTranscriptMap.get(msg.localId), + voiceTranscriptMap.get(this.getStableMessageKey(msg)), cleanedMyWxid, msg.senderUsername, msg.isSend @@ -5182,7 +5718,7 @@ class ExportService { msg.content, msg.localType, options, - voiceTranscriptMap.get(msg.localId), + voiceTranscriptMap.get(this.getStableMessageKey(msg)), cleanedMyWxid, msg.senderUsername, msg.isSend @@ -5214,14 +5750,19 @@ class ExportService { let senderRemark = '' if (isGroup) { - const senderProfile = await this.resolveExportDisplayProfile( - msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), - options.displayNamePreference, - getContactCached, - groupNicknamesMap, - msg.isSend ? (myInfo.displayName || cleanedMyWxid) : (msg.senderUsername || ''), - msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] - ) + const senderProfileKey = `${msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid)}::${msg.isSend ? '1' : '0'}` + let senderProfile = senderProfileCache.get(senderProfileKey) + if (!senderProfile) { + senderProfile = await this.resolveExportDisplayProfile( + msg.isSend ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), + options.displayNamePreference, + getContactCached, + groupNicknamesMap, + msg.isSend ? (myInfo.displayName || cleanedMyWxid) : (msg.senderUsername || ''), + msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] + ) + senderProfileCache.set(senderProfileKey, senderProfile) + } senderWxid = senderProfile.wxid senderNickname = senderProfile.nickname senderRemark = senderProfile.remark @@ -5253,7 +5794,10 @@ class ExportService { current: progress, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: i + 1 }) } } @@ -5262,17 +5806,24 @@ class ExportService { current: 92, total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages }) this.throwIfStopRequested(control) - fs.writeFileSync(outputPath, lines.join('\n'), 'utf-8') + await fs.promises.writeFile(outputPath, lines.join('\n'), 'utf-8') onProgress?.({ current: 100, total: 100, currentSession: sessionInfo.displayName, - phase: 'complete' + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 }) return { success: true } @@ -5334,7 +5885,8 @@ class ExportService { control, collectProgressReporter ) - if (collected.rows.length === 0) { + const totalMessages = collected.rows.length + if (totalMessages === 0) { return { success: false, error: '该会话在指定时间范围内没有消息' } } @@ -5383,8 +5935,14 @@ class ExportService { : [] const mediaCache = new Map() + const mediaDirCache = new Set() if (mediaMessages.length > 0) { + const voiceMediaMessages = mediaMessages.filter(msg => msg.localType === 34) + if (voiceMediaMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMediaMessages, control) + } + onProgress?.({ current: 25, total: 100, @@ -5392,14 +5950,15 @@ class ExportService { phase: 'exporting-media', phaseProgress: 0, phaseTotal: mediaMessages.length, - phaseLabel: `导出媒体 0/${mediaMessages.length}` + phaseLabel: `导出媒体 0/${mediaMessages.length}`, + estimatedTotalMessages: totalMessages }) const mediaConcurrency = this.getClampedConcurrency(options.exportConcurrency) let mediaExported = 0 await parallelLimit(mediaMessages, mediaConcurrency, async (msg) => { this.throwIfStopRequested(control) - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) if (!mediaCache.has(mediaKey)) { const mediaItem = await this.exportMediaForMessage(msg, sessionId, mediaRootDir, mediaRelativePrefix, { exportImages: options.exportImages, @@ -5425,9 +5984,11 @@ class ExportService { }) } - const voiceTranscriptMap = new Map() + const voiceTranscriptMap = new Map() if (voiceMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMessages, control) + onProgress?.({ current: 45, total: 100, @@ -5435,7 +5996,8 @@ class ExportService { phase: 'exporting-voice', phaseProgress: 0, phaseTotal: voiceMessages.length, - phaseLabel: `语音转文字 0/${voiceMessages.length}` + phaseLabel: `语音转文字 0/${voiceMessages.length}`, + estimatedTotalMessages: totalMessages }) const VOICE_CONCURRENCY = 4 @@ -5443,7 +6005,7 @@ class ExportService { await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) - voiceTranscriptMap.set(msg.localId, transcript) + voiceTranscriptMap.set(this.getStableMessageKey(msg), transcript) voiceTranscribed++ onProgress?.({ current: 45, @@ -5461,18 +6023,22 @@ class ExportService { current: 60, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) const lines: string[] = [] lines.push('id,MsgSvrID,type_name,is_sender,talker,msg,src,CreateTime') + const senderProfileCache = new Map() - for (let i = 0; i < sortedMessages.length; i++) { + for (let i = 0; i < totalMessages; i++) { if ((i & 0x7f) === 0) { this.throwIfStopRequested(control) } const msg = sortedMessages[i] - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) const mediaItem = mediaCache.get(mediaKey) || null const typeName = this.getWeCloneTypeName(msg.localType, msg.content || '') @@ -5485,14 +6051,19 @@ class ExportService { let talker = myInfo.displayName || '我' if (isGroup) { - const senderProfile = await this.resolveExportDisplayProfile( - msg.isSend ? cleanedMyWxid : senderWxid, - options.displayNamePreference, - getContactCached, - groupNicknamesMap, - msg.isSend ? (myInfo.displayName || cleanedMyWxid) : senderWxid, - msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] - ) + const senderProfileKey = `${msg.isSend ? cleanedMyWxid : senderWxid}::${msg.isSend ? '1' : '0'}` + let senderProfile = senderProfileCache.get(senderProfileKey) + if (!senderProfile) { + senderProfile = await this.resolveExportDisplayProfile( + msg.isSend ? cleanedMyWxid : senderWxid, + options.displayNamePreference, + getContactCached, + groupNicknamesMap, + msg.isSend ? (myInfo.displayName || cleanedMyWxid) : senderWxid, + msg.isSend ? [rawMyWxid, cleanedMyWxid] : [] + ) + senderProfileCache.set(senderProfileKey, senderProfile) + } talker = senderProfile.displayName } else if (!msg.isSend) { const contactDetail = await getContactCached(senderWxid) @@ -5515,7 +6086,7 @@ class ExportService { } const msgText = msg.localType === 34 && options.exportVoiceAsText - ? (voiceTranscriptMap.get(msg.localId) || '[语音消息 - 转文字失败]') + ? (voiceTranscriptMap.get(this.getStableMessageKey(msg)) || '[语音消息 - 转文字失败]') : (this.parseMessageContent( msg.content, msg.localType, @@ -5546,7 +6117,10 @@ class ExportService { current: progress, total: 100, currentSession: sessionInfo.displayName, - phase: 'exporting' + phase: 'exporting', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: i + 1 }) } } @@ -5555,17 +6129,24 @@ class ExportService { current: 92, total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages }) this.throwIfStopRequested(control) - fs.writeFileSync(outputPath, `\uFEFF${lines.join('\r\n')}`, 'utf-8') + await fs.promises.writeFile(outputPath, `\uFEFF${lines.join('\r\n')}`, 'utf-8') onProgress?.({ current: 100, total: 100, currentSession: sessionInfo.displayName, - phase: 'complete' + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 }) return { success: true } @@ -5763,6 +6344,11 @@ class ExportService { const mediaCache = new Map() if (mediaMessages.length > 0) { + const voiceMediaMessages = mediaMessages.filter(msg => msg.localType === 34) + if (voiceMediaMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMediaMessages, control) + } + onProgress?.({ current: 20, total: 100, @@ -5770,14 +6356,15 @@ class ExportService { phase: 'exporting-media', phaseProgress: 0, phaseTotal: mediaMessages.length, - phaseLabel: `导出媒体 0/${mediaMessages.length}` + phaseLabel: `导出媒体 0/${mediaMessages.length}`, + estimatedTotalMessages: totalMessages }) const MEDIA_CONCURRENCY = 6 let mediaExported = 0 await parallelLimit(mediaMessages, MEDIA_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) if (!mediaCache.has(mediaKey)) { const mediaItem = await this.exportMediaForMessage(msg, sessionId, mediaRootDir, mediaRelativePrefix, { exportImages: options.exportImages, @@ -5785,7 +6372,8 @@ class ExportService { exportEmojis: options.exportEmojis, exportVoiceAsText: options.exportVoiceAsText, includeVoiceWithTranscript: true, - exportVideos: options.exportVideos + exportVideos: options.exportVideos, + dirCache: mediaDirCache }) mediaCache.set(mediaKey, mediaItem) } @@ -5808,9 +6396,11 @@ class ExportService { const voiceMessages = useVoiceTranscript ? sortedMessages.filter(msg => msg.localType === 34) : [] - const voiceTranscriptMap = new Map() + const voiceTranscriptMap = new Map() if (voiceMessages.length > 0) { + await this.preloadVoiceWavCache(sessionId, voiceMessages, control) + onProgress?.({ current: 40, total: 100, @@ -5818,7 +6408,8 @@ class ExportService { phase: 'exporting-voice', phaseProgress: 0, phaseTotal: voiceMessages.length, - phaseLabel: `语音转文字 0/${voiceMessages.length}` + phaseLabel: `语音转文字 0/${voiceMessages.length}`, + estimatedTotalMessages: totalMessages }) const VOICE_CONCURRENCY = 4 @@ -5826,7 +6417,7 @@ class ExportService { await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { this.throwIfStopRequested(control) const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) - voiceTranscriptMap.set(msg.localId, transcript) + voiceTranscriptMap.set(this.getStableMessageKey(msg), transcript) voiceTranscribed++ onProgress?.({ current: 40, @@ -5858,7 +6449,10 @@ class ExportService { current: 60, total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: 0 }) // ================= BEGIN STREAM WRITING ================= @@ -5919,6 +6513,7 @@ class ExportService { // Pre-build avatar HTML lookup to avoid per-message rebuilds const avatarHtmlCache = new Map() + const senderProfileCache = new Map() const getAvatarHtml = (username: string, name: string): string => { const cached = avatarHtmlCache.get(username) if (cached !== undefined) return cached @@ -5934,28 +6529,41 @@ class ExportService { const WRITE_BATCH = 100 let writeBuf: string[] = [] - for (let i = 0; i < sortedMessages.length; i++) { + for (let i = 0; i < totalMessages; i++) { if ((i & 0x7f) === 0) { this.throwIfStopRequested(control) } const msg = sortedMessages[i] - const mediaKey = `${msg.localType}_${msg.localId}` + const mediaKey = this.getMediaCacheKey(msg) const mediaItem = mediaCache.get(mediaKey) || null const isSenderMe = msg.isSend const senderInfo = collected.memberSet.get(msg.senderUsername)?.member const senderName = isGroup - ? (await this.resolveExportDisplayProfile( - isSenderMe ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), - options.displayNamePreference, - getContactCached, - groupNicknamesMap, - isSenderMe ? (myInfo.displayName || cleanedMyWxid) : (senderInfo?.accountName || msg.senderUsername || ''), - isSenderMe ? [rawMyWxid, cleanedMyWxid] : [] - )).displayName + ? (() => { + const senderKey = `${isSenderMe ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid)}::${isSenderMe ? '1' : '0'}` + const cached = senderProfileCache.get(senderKey) + if (cached) return cached.displayName + return '' + })() : (isSenderMe ? (myInfo.displayName || '我') : (sessionInfo.displayName || sessionId)) + const resolvedSenderName = isGroup && !senderName + ? (await (async () => { + const senderKey = `${isSenderMe ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid)}::${isSenderMe ? '1' : '0'}` + const profile = await this.resolveExportDisplayProfile( + isSenderMe ? cleanedMyWxid : (msg.senderUsername || cleanedMyWxid), + options.displayNamePreference, + getContactCached, + groupNicknamesMap, + isSenderMe ? (myInfo.displayName || cleanedMyWxid) : (senderInfo?.accountName || msg.senderUsername || ''), + isSenderMe ? [rawMyWxid, cleanedMyWxid] : [] + ) + senderProfileCache.set(senderKey, profile) + return profile.displayName + })()) + : senderName - const avatarHtml = getAvatarHtml(isSenderMe ? cleanedMyWxid : msg.senderUsername, senderName) + const avatarHtml = getAvatarHtml(isSenderMe ? cleanedMyWxid : msg.senderUsername, resolvedSenderName) const timeText = this.formatTimestamp(msg.createTime) const typeName = this.getMessageTypeName(msg.localType) @@ -5968,7 +6576,7 @@ class ExportService { msg.isSend ) if (msg.localType === 34 && useVoiceTranscript) { - textContent = voiceTranscriptMap.get(msg.localId) || '[语音消息 - 转文字失败]' + textContent = voiceTranscriptMap.get(this.getStableMessageKey(msg)) || '[语音消息 - 转文字失败]' } if (mediaItem && (msg.localType === 3 || msg.localType === 47)) { textContent = '' @@ -6013,7 +6621,7 @@ class ExportService { ? `
${this.renderTextWithEmoji(textContent).replace(/\r?\n/g, '
')}
` : '') const senderNameHtml = isGroup - ? `
${this.escapeHtml(senderName)}
` + ? `
${this.escapeHtml(resolvedSenderName)}
` : '' const timeHtml = `
${this.escapeHtml(timeText)}
` const messageBody = `${timeHtml}${senderNameHtml}
${mediaHtml}${textHtml}
` @@ -6043,7 +6651,10 @@ class ExportService { current: 60 + Math.floor((i + 1) / sortedMessages.length * 30), total: 100, currentSession: sessionInfo.displayName, - phase: 'writing' + phase: 'writing', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: i + 1 }) } } @@ -6168,7 +6779,11 @@ class ExportService { current: 100, total: 100, currentSession: sessionInfo.displayName, - phase: 'complete' + phase: 'complete', + estimatedTotalMessages: totalMessages, + collectedMessages: totalMessages, + exportedMessages: totalMessages, + writtenFiles: 1 }) resolve({ success: true }) }) @@ -6443,6 +7058,10 @@ class ExportService { let failCount = 0 const successSessionIds: string[] = [] const failedSessionIds: string[] = [] + const progressEmitter = this.createProgressEmitter(onProgress) + const emitProgress = (progress: ExportProgress, options?: { force?: boolean }) => { + progressEmitter.emit(progress, options) + } try { const conn = await this.ensureConnected() @@ -6463,9 +7082,13 @@ class ExportService { const exportBaseDir = writeLayout === 'A' ? path.join(outputDir, 'texts') : outputDir - if (!fs.existsSync(exportBaseDir)) { - fs.mkdirSync(exportBaseDir, { recursive: true }) + const createdTaskDirs = new Set() + const ensureTaskDir = async (dirPath: string) => { + if (createdTaskDirs.has(dirPath)) return + await fs.promises.mkdir(dirPath, { recursive: true }) + createdTaskDirs.add(dirPath) } + await ensureTaskDir(exportBaseDir) const sessionLayout = exportMediaEnabled ? (effectiveOptions.sessionLayout ?? 'per-session') : 'shared' @@ -6521,7 +7144,7 @@ class ExportService { const EMPTY_SESSION_PRECHECK_LIMIT = 1200 if (precheckSessionIds.length <= EMPTY_SESSION_PRECHECK_LIMIT) { let checkedCount = 0 - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: '', @@ -6558,7 +7181,7 @@ class ExportService { } checkedCount = Math.min(precheckSessionIds.length, checkedCount + batchSessionIds.length) - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: '', @@ -6570,7 +7193,7 @@ class ExportService { }) } } else { - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: '', @@ -6653,14 +7276,16 @@ class ExportService { successSessionIds.push(sessionId) activeSessionRatios.delete(sessionId) completedCount++ - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: sessionInfo.displayName, currentSessionId: sessionId, phase: 'complete', - phaseLabel: '该会话没有消息,已跳过' - }) + phaseLabel: '该会话没有消息,已跳过', + estimatedTotalMessages: 0, + exportedMessages: 0 + }, { force: true }) return 'done' } @@ -6669,14 +7294,16 @@ class ExportService { successSessionIds.push(sessionId) activeSessionRatios.delete(sessionId) completedCount++ - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: sessionInfo.displayName, currentSessionId: sessionId, phase: 'complete', - phaseLabel: '该会话没有消息,已跳过' - }) + phaseLabel: '该会话没有消息,已跳过', + estimatedTotalMessages: 0, + exportedMessages: 0 + }, { force: true }) return 'done' } @@ -6687,13 +7314,13 @@ class ExportService { ? 1 : Math.max(0, Math.min(1, phaseCurrent / phaseTotal)) activeSessionRatios.set(sessionId, ratio) - onProgress?.({ + emitProgress({ ...progress, current: computeAggregateCurrent(), total: sessionIds.length, currentSession: sessionInfo.displayName, currentSessionId: sessionId - }) + }, { force: progress.phase === 'complete' }) } sessionProgress({ @@ -6715,8 +7342,8 @@ class ExportService { const sessionDirName = sessionNameWithTypePrefix ? `${sessionTypePrefix}${safeName}` : safeName const sessionDir = useSessionFolder ? path.join(exportBaseDir, sessionDirName) : exportBaseDir - if (useSessionFolder && !fs.existsSync(sessionDir)) { - fs.mkdirSync(sessionDir, { recursive: true }) + if (useSessionFolder) { + await ensureTaskDir(sessionDir) } let ext = '.json' @@ -6731,7 +7358,7 @@ class ExportService { messageCountHint >= 0 && typeof latestTimestampHint === 'number' && latestTimestampHint > 0 && - fs.existsSync(outputPath) + await this.pathExists(outputPath) if (canTrySkipUnchanged) { const latestRecord = exportRecordService.getLatestRecord(sessionId, effectiveOptions.format) const hasNoDataChange = Boolean( @@ -6744,14 +7371,16 @@ class ExportService { successSessionIds.push(sessionId) activeSessionRatios.delete(sessionId) completedCount++ - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: sessionInfo.displayName, currentSessionId: sessionId, phase: 'complete', - phaseLabel: '无变化,已跳过' - }) + phaseLabel: '无变化,已跳过', + estimatedTotalMessages: Math.max(0, Math.floor(messageCountHint || 0)), + exportedMessages: Math.max(0, Math.floor(messageCountHint || 0)) + }, { force: true }) return 'done' } } @@ -6797,14 +7426,14 @@ class ExportService { activeSessionRatios.delete(sessionId) completedCount++ - onProgress?.({ + emitProgress({ current: computeAggregateCurrent(), total: sessionIds.length, currentSession: sessionInfo.displayName, currentSessionId: sessionId, phase: 'complete', phaseLabel: result.success ? '完成' : '导出失败' - }) + }, { force: true }) return 'done' } catch (error) { if (this.isStopError(error)) { @@ -6886,16 +7515,18 @@ class ExportService { } } - onProgress?.({ + emitProgress({ current: sessionIds.length, total: sessionIds.length, currentSession: '', currentSessionId: '', phase: 'complete' - }) + }, { force: true }) + progressEmitter.flush() return { success: true, successCount, failCount, successSessionIds, failedSessionIds } } catch (e) { + progressEmitter.flush() return { success: false, successCount, failCount, error: String(e) } } } diff --git a/electron/services/groupAnalyticsService.ts b/electron/services/groupAnalyticsService.ts index 7a03d37..8d66ce9 100644 --- a/electron/services/groupAnalyticsService.ts +++ b/electron/services/groupAnalyticsService.ts @@ -230,10 +230,9 @@ class GroupAnalyticsService { } try { - const escapedChatroomId = chatroomId.replace(/'/g, "''") - const roomResult = await wcdbService.execQuery('contact', null, `SELECT * FROM chat_room WHERE username='${escapedChatroomId}' LIMIT 1`) - if (roomResult.success && roomResult.rows && roomResult.rows.length > 0) { - const owner = tryResolve(roomResult.rows[0]) + const roomExt = await wcdbService.getChatRoomExtBuffer(chatroomId) + if (roomExt.success && roomExt.extBuffer) { + const owner = tryResolve({ ext_buffer: roomExt.extBuffer }) if (owner) return owner } } catch { @@ -273,13 +272,12 @@ class GroupAnalyticsService { } try { - const sql = 'SELECT ext_buffer FROM chat_room WHERE username = ? LIMIT 1' - const result = await wcdbService.execQuery('contact', null, sql, [chatroomId]) - if (!result.success || !result.rows || result.rows.length === 0) { + const result = await wcdbService.getChatRoomExtBuffer(chatroomId) + if (!result.success || !result.extBuffer) { return nicknameMap } - const extBuffer = this.decodeExtBuffer((result.rows[0] as any).ext_buffer) + const extBuffer = this.decodeExtBuffer(result.extBuffer) if (!extBuffer) return nicknameMap this.mergeGroupNicknameEntries(nicknameMap, this.parseGroupNicknamesFromExtBuffer(extBuffer, candidates).entries()) return nicknameMap @@ -583,19 +581,9 @@ class GroupAnalyticsService { const batch = candidates.slice(i, i + batchSize) if (batch.length === 0) continue - const inList = batch.map((username) => `'${username.replace(/'/g, "''")}'`).join(',') - const lightweightSql = ` - SELECT username, user_name, encrypt_username, encrypt_user_name, remark, nick_name, alias, local_type - FROM contact - WHERE username IN (${inList}) - ` - let result = await wcdbService.execQuery('contact', null, lightweightSql) - if (!result.success || !result.rows) { - // 兼容历史/变体列名,轻查询失败时回退全字段查询,避免好友标识丢失 - result = await wcdbService.execQuery('contact', null, `SELECT * FROM contact WHERE username IN (${inList})`) - } - if (!result.success || !result.rows) continue - appendContactsToLookup(result.rows as Record[]) + const result = await wcdbService.getContactsCompact(batch) + if (!result.success || !result.contacts) continue + appendContactsToLookup(result.contacts as Record[]) } return lookup } @@ -774,31 +762,111 @@ class GroupAnalyticsService { return '' } + private normalizeCursorTimestamp(value: number): number { + if (!Number.isFinite(value) || value <= 0) return 0 + const normalized = Math.floor(value) + return normalized > 10000000000 ? Math.floor(normalized / 1000) : normalized + } + + private extractRowSenderUsername(row: Record): string { + const candidates = [ + row.sender_username, + row.senderUsername, + row.sender, + row.WCDB_CT_sender_username + ] + for (const candidate of candidates) { + const value = String(candidate || '').trim() + if (value) return value + } + for (const [key, value] of Object.entries(row)) { + const normalizedKey = key.toLowerCase() + if ( + normalizedKey === 'sender_username' || + normalizedKey === 'senderusername' || + normalizedKey === 'sender' || + normalizedKey === 'wcdb_ct_sender_username' + ) { + const normalizedValue = String(value || '').trim() + if (normalizedValue) return normalizedValue + } + } + return '' + } + + private parseSingleMessageRow(row: Record): Message | null { + try { + const mapped = chatService.mapRowsToMessagesForApi([row]) + return Array.isArray(mapped) && mapped.length > 0 ? mapped[0] : null + } catch { + return null + } + } + + private async openMemberMessageCursor( + chatroomId: string, + batchSize: number, + ascending: boolean, + startTime: number, + endTime: number + ): Promise<{ success: boolean; cursor?: number; error?: string }> { + const beginTimestamp = this.normalizeCursorTimestamp(startTime) + const endTimestamp = this.normalizeCursorTimestamp(endTime) + const liteResult = await wcdbService.openMessageCursorLite(chatroomId, batchSize, ascending, beginTimestamp, endTimestamp) + if (liteResult.success && liteResult.cursor) return liteResult + return wcdbService.openMessageCursor(chatroomId, batchSize, ascending, beginTimestamp, endTimestamp) + } + private async collectMessagesByMember( chatroomId: string, memberUsername: string, startTime: number, endTime: number ): Promise<{ success: boolean; data?: Message[]; error?: string }> { - const batchSize = 500 + const batchSize = 800 const matchedMessages: Message[] = [] - let offset = 0 + const senderMatchCache = new Map() + const matchesTargetSender = (sender: string | null | undefined): boolean => { + const key = String(sender || '').trim().toLowerCase() + if (!key) return false + const cached = senderMatchCache.get(key) + if (typeof cached === 'boolean') return cached + const matched = this.isSameAccountIdentity(memberUsername, sender) + senderMatchCache.set(key, matched) + return matched + } - while (true) { - const batch = await chatService.getMessages(chatroomId, offset, batchSize, startTime, endTime, true) - if (!batch.success || !batch.messages) { - return { success: false, error: batch.error || '获取群消息失败' } - } + const cursorResult = await this.openMemberMessageCursor(chatroomId, batchSize, true, startTime, endTime) + if (!cursorResult.success || !cursorResult.cursor) { + return { success: false, error: cursorResult.error || '创建群消息游标失败' } + } - for (const message of batch.messages) { - if (this.isSameAccountIdentity(memberUsername, message.senderUsername)) { - matchedMessages.push(message) + const cursor = cursorResult.cursor + try { + while (true) { + const batch = await wcdbService.fetchMessageBatch(cursor) + if (!batch.success) { + return { success: false, error: batch.error || '获取群消息失败' } } - } + const rows = Array.isArray(batch.rows) ? batch.rows as Record[] : [] + if (rows.length === 0) break - const fetchedCount = batch.messages.length - if (fetchedCount <= 0 || !batch.hasMore) break - offset += fetchedCount + for (const row of rows) { + const senderFromRow = this.extractRowSenderUsername(row) + if (senderFromRow && !matchesTargetSender(senderFromRow)) { + continue + } + const message = this.parseSingleMessageRow(row) + if (!message) continue + if (matchesTargetSender(message.senderUsername)) { + matchedMessages.push(message) + } + } + + if (!batch.hasMore) break + } + } finally { + await wcdbService.closeMessageCursor(cursor) } return { success: true, data: matchedMessages } @@ -832,57 +900,93 @@ class GroupAnalyticsService { : 0 const matchedMessages: Message[] = [] - const batchSize = Math.max(limit * 2, 100) + const senderMatchCache = new Map() + const matchesTargetSender = (sender: string | null | undefined): boolean => { + const key = String(sender || '').trim().toLowerCase() + if (!key) return false + const cached = senderMatchCache.get(key) + if (typeof cached === 'boolean') return cached + const matched = this.isSameAccountIdentity(normalizedMemberUsername, sender) + senderMatchCache.set(key, matched) + return matched + } + const batchSize = Math.max(limit * 4, 240) let hasMore = false - while (matchedMessages.length < limit) { - const batch = await chatService.getMessages( - normalizedChatroomId, - cursor, - batchSize, - startTimeValue, - endTimeValue, - false - ) - if (!batch.success || !batch.messages) { - return { success: false, error: batch.error || '获取群成员消息失败' } - } + const cursorResult = await this.openMemberMessageCursor( + normalizedChatroomId, + batchSize, + false, + startTimeValue, + endTimeValue + ) + if (!cursorResult.success || !cursorResult.cursor) { + return { success: false, error: cursorResult.error || '创建群成员消息游标失败' } + } - const currentMessages = batch.messages - const nextCursor = typeof batch.nextOffset === 'number' - ? Math.max(cursor, Math.floor(batch.nextOffset)) - : cursor + currentMessages.length + let consumedRows = 0 + const dbCursor = cursorResult.cursor - let overflowMatchFound = false - for (const message of currentMessages) { - if (!this.isSameAccountIdentity(normalizedMemberUsername, message.senderUsername)) { - continue + try { + while (matchedMessages.length < limit) { + const batch = await wcdbService.fetchMessageBatch(dbCursor) + if (!batch.success) { + return { success: false, error: batch.error || '获取群成员消息失败' } } - if (matchedMessages.length < limit) { + const rows = Array.isArray(batch.rows) ? batch.rows as Record[] : [] + if (rows.length === 0) { + hasMore = false + break + } + + let startIndex = 0 + if (cursor > consumedRows) { + const skipCount = Math.min(cursor - consumedRows, rows.length) + consumedRows += skipCount + startIndex = skipCount + if (startIndex >= rows.length) { + if (!batch.hasMore) { + hasMore = false + break + } + continue + } + } + + for (let index = startIndex; index < rows.length; index += 1) { + const row = rows[index] + consumedRows += 1 + + const senderFromRow = this.extractRowSenderUsername(row) + if (senderFromRow && !matchesTargetSender(senderFromRow)) { + continue + } + + const message = this.parseSingleMessageRow(row) + if (!message) continue + if (!matchesTargetSender(message.senderUsername)) { + continue + } + matchedMessages.push(message) - } else { - overflowMatchFound = true + if (matchedMessages.length >= limit) { + cursor = consumedRows + hasMore = index < rows.length - 1 || batch.hasMore === true + break + } + } + + if (matchedMessages.length >= limit) break + + cursor = consumedRows + if (!batch.hasMore) { + hasMore = false break } } - - cursor = nextCursor - - if (overflowMatchFound) { - hasMore = true - break - } - - if (currentMessages.length === 0 || !batch.hasMore) { - hasMore = false - break - } - - if (matchedMessages.length >= limit) { - hasMore = true - break - } + } finally { + await wcdbService.closeMessageCursor(dbCursor) } return { diff --git a/electron/services/imageDecryptService.ts b/electron/services/imageDecryptService.ts index 64c0e0a..d1b5b21 100644 --- a/electron/services/imageDecryptService.ts +++ b/electron/services/imageDecryptService.ts @@ -55,14 +55,8 @@ type DecryptResult = { isThumb?: boolean // 是否是缩略图(没有高清图时返回缩略图) } -type HardlinkState = { - imageTable?: string - dirTable?: string -} - export class ImageDecryptService { private configService = new ConfigService() - private hardlinkCache = new Map() private resolvedCache = new Map() private pending = new Map>() private readonly defaultV1AesKey = 'cfcd208495d565ef' @@ -683,45 +677,19 @@ export class ImageDecryptService { private async resolveHardlinkPath(accountDir: string, md5: string, _sessionId?: string): Promise { try { - const hardlinkPath = this.resolveHardlinkDbPath(accountDir) - if (!hardlinkPath) { - return null - } - const ready = await this.ensureWcdbReady() if (!ready) { this.logInfo('[ImageDecrypt] hardlink db not ready') return null } - const state = await this.getHardlinkState(accountDir, hardlinkPath) - if (!state.imageTable) { - this.logInfo('[ImageDecrypt] hardlink table missing', { hardlinkPath }) - return null - } + const resolveResult = await wcdbService.resolveImageHardlink(md5, accountDir) + if (!resolveResult.success || !resolveResult.data) return null + const fileName = String(resolveResult.data.file_name || '').trim() + const fullPath = String(resolveResult.data.full_path || '').trim() + if (!fileName) return null - const escapedMd5 = this.escapeSqlString(md5) - const rowResult = await wcdbService.execQuery( - 'media', - hardlinkPath, - `SELECT dir1, dir2, file_name FROM ${state.imageTable} WHERE lower(md5) = lower('${escapedMd5}') LIMIT 1` - ) - const row = rowResult.success && rowResult.rows ? rowResult.rows[0] : null - - if (!row) { - this.logInfo('[ImageDecrypt] hardlink row miss', { md5, table: state.imageTable }) - return null - } - - const dir1 = this.getRowValue(row, 'dir1') - const dir2 = this.getRowValue(row, 'dir2') - const fileName = this.getRowValue(row, 'file_name') ?? this.getRowValue(row, 'fileName') - if (dir1 === undefined || dir2 === undefined || !fileName) { - this.logInfo('[ImageDecrypt] hardlink row incomplete', { row }) - return null - } - - const lowerFileName = fileName.toLowerCase() + const lowerFileName = String(fileName).toLowerCase() if (lowerFileName.endsWith('.dat')) { const baseLower = lowerFileName.slice(0, -4) if (!this.isLikelyImageDatBase(baseLower) && !this.looksLikeMd5(baseLower)) { @@ -730,57 +698,11 @@ export class ImageDecryptService { } } - // dir1 和 dir2 是 rowid,需要从 dir2id 表查询对应的目录名 - let dir1Name: string | null = null - let dir2Name: string | null = null - - if (state.dirTable) { - try { - // 通过 rowid 查询目录名 - const dir1Result = await wcdbService.execQuery( - 'media', - hardlinkPath, - `SELECT username FROM ${state.dirTable} WHERE rowid = ${Number(dir1)} LIMIT 1` - ) - if (dir1Result.success && dir1Result.rows && dir1Result.rows.length > 0) { - const value = this.getRowValue(dir1Result.rows[0], 'username') - if (value) dir1Name = String(value) - } - - const dir2Result = await wcdbService.execQuery( - 'media', - hardlinkPath, - `SELECT username FROM ${state.dirTable} WHERE rowid = ${Number(dir2)} LIMIT 1` - ) - if (dir2Result.success && dir2Result.rows && dir2Result.rows.length > 0) { - const value = this.getRowValue(dir2Result.rows[0], 'username') - if (value) dir2Name = String(value) - } - } catch { - // ignore - } + if (fullPath && existsSync(fullPath)) { + this.logInfo('[ImageDecrypt] hardlink path hit', { fullPath }) + return fullPath } - - if (!dir1Name || !dir2Name) { - this.logInfo('[ImageDecrypt] hardlink dir resolve miss', { dir1, dir2, dir1Name, dir2Name }) - return null - } - - // 构建路径: msg/attach/{dir1Name}/{dir2Name}/Img/{fileName} - const possiblePaths = [ - join(accountDir, 'msg', 'attach', dir1Name, dir2Name, 'Img', fileName), - join(accountDir, 'msg', 'attach', dir1Name, dir2Name, 'mg', fileName), - join(accountDir, 'msg', 'attach', dir1Name, dir2Name, fileName), - ] - - for (const fullPath of possiblePaths) { - if (existsSync(fullPath)) { - this.logInfo('[ImageDecrypt] hardlink path hit', { fullPath }) - return fullPath - } - } - - this.logInfo('[ImageDecrypt] hardlink path miss', { possiblePaths }) + this.logInfo('[ImageDecrypt] hardlink path miss', { fullPath, md5 }) return null } catch { // ignore @@ -788,35 +710,6 @@ export class ImageDecryptService { return null } - private async getHardlinkState(accountDir: string, hardlinkPath: string): Promise { - const cached = this.hardlinkCache.get(hardlinkPath) - if (cached) return cached - - const imageResult = await wcdbService.execQuery( - 'media', - hardlinkPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'image_hardlink_info%' ORDER BY name DESC LIMIT 1" - ) - const dirResult = await wcdbService.execQuery( - 'media', - hardlinkPath, - "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'dir2id%' LIMIT 1" - ) - const imageTable = imageResult.success && imageResult.rows && imageResult.rows.length > 0 - ? this.getRowValue(imageResult.rows[0], 'name') - : undefined - const dirTable = dirResult.success && dirResult.rows && dirResult.rows.length > 0 - ? this.getRowValue(dirResult.rows[0], 'name') - : undefined - const state: HardlinkState = { - imageTable: imageTable ? String(imageTable) : undefined, - dirTable: dirTable ? String(dirTable) : undefined - } - this.logInfo('[ImageDecrypt] hardlink state', { hardlinkPath, imageTable: state.imageTable, dirTable: state.dirTable }) - this.hardlinkCache.set(hardlinkPath, state) - return state - } - private async ensureWcdbReady(): Promise { if (wcdbService.isReady()) return true const dbPath = this.configService.get('dbPath') @@ -1992,7 +1885,6 @@ export class ImageDecryptService { async clearCache(): Promise<{ success: boolean; error?: string }> { this.resolvedCache.clear() - this.hardlinkCache.clear() this.pending.clear() this.updateFlags.clear() this.cacheIndexed = false diff --git a/electron/services/keyServiceMac.ts b/electron/services/keyServiceMac.ts index f87e8d0..af33b75 100644 --- a/electron/services/keyServiceMac.ts +++ b/electron/services/keyServiceMac.ts @@ -136,7 +136,7 @@ export class KeyServiceMac { if (sipStatus.enabled) { return { success: false, - error: 'SIP (系统完整性保护) 已开启,无法获取密钥。请关闭 SIP 后重试。\n\n关闭方法:\n1. 重启 Mac 并按住 Command + R 进入恢复模式\n2. 打开终端,输入: csrutil disable\n3. 重启电脑' + error: 'SIP (系统完整性保护) 已开启,无法获取密钥。请关闭 SIP 后重试。\n\n关闭方法:\n1. Intel 芯片:重启 Mac 并按住 Command + R 进入恢复模式\n2. Apple 芯片(M 系列):关机后长按开机(指纹)键,选择“设置(选项)”进入恢复模式\n3. 打开终端,输入: csrutil disable\n4. 重启电脑' } } diff --git a/electron/services/snsService.ts b/electron/services/snsService.ts index 2bb2908..15497a9 100644 --- a/electron/services/snsService.ts +++ b/electron/services/snsService.ts @@ -663,100 +663,24 @@ class SnsService { } async getSnsUsernames(): Promise<{ success: boolean; usernames?: string[]; error?: string }> { - const collect = (rows?: any[]): string[] => { - if (!Array.isArray(rows)) return [] - const usernames: string[] = [] - for (const row of rows) { - const raw = row?.user_name ?? row?.userName ?? row?.username ?? Object.values(row || {})[0] - const username = typeof raw === 'string' ? raw.trim() : String(raw || '').trim() - if (username) usernames.push(username) - } - return usernames + const result = await wcdbService.getSnsUsernames() + if (!result.success) { + return { success: false, error: result.error || '获取朋友圈联系人失败' } } - - const primary = await wcdbService.execQuery( - 'sns', - null, - "SELECT DISTINCT user_name FROM SnsTimeLine WHERE user_name IS NOT NULL AND user_name <> ''" - ) - const fallback = await wcdbService.execQuery( - 'sns', - null, - "SELECT DISTINCT userName FROM SnsTimeLine WHERE userName IS NOT NULL AND userName <> ''" - ) - - const merged = Array.from(new Set([ - ...collect(primary.rows), - ...collect(fallback.rows) - ])) - - // 任一查询成功且拿到用户名即视为成功,避免因为列名差异导致误判为空。 - if (merged.length > 0) { - return { success: true, usernames: merged } - } - - // 两条查询都成功但无数据,说明确实没有朋友圈发布者。 - if (primary.success || fallback.success) { - return { success: true, usernames: [] } - } - - return { success: false, error: primary.error || fallback.error || '获取朋友圈联系人失败' } + return { success: true, usernames: result.usernames || [] } } private async getExportStatsFromTableCount(myWxid?: string): Promise<{ totalPosts: number; totalFriends: number; myPosts: number | null }> { - let totalPosts = 0 - let totalFriends = 0 - let myPosts: number | null = null - - const postCountResult = await wcdbService.execQuery('sns', null, 'SELECT COUNT(1) AS total FROM SnsTimeLine') - if (postCountResult.success && postCountResult.rows && postCountResult.rows.length > 0) { - totalPosts = this.parseCountValue(postCountResult.rows[0]) - } - - if (totalPosts > 0) { - const friendCountPrimary = await wcdbService.execQuery( - 'sns', - null, - "SELECT COUNT(DISTINCT user_name) AS total FROM SnsTimeLine WHERE user_name IS NOT NULL AND user_name <> ''" - ) - if (friendCountPrimary.success && friendCountPrimary.rows && friendCountPrimary.rows.length > 0) { - totalFriends = this.parseCountValue(friendCountPrimary.rows[0]) - } else { - const friendCountFallback = await wcdbService.execQuery( - 'sns', - null, - "SELECT COUNT(DISTINCT userName) AS total FROM SnsTimeLine WHERE userName IS NOT NULL AND userName <> ''" - ) - if (friendCountFallback.success && friendCountFallback.rows && friendCountFallback.rows.length > 0) { - totalFriends = this.parseCountValue(friendCountFallback.rows[0]) - } - } - } - const normalizedMyWxid = this.toOptionalString(myWxid) - if (normalizedMyWxid) { - const myPostPrimary = await wcdbService.execQuery( - 'sns', - null, - "SELECT COUNT(1) AS total FROM SnsTimeLine WHERE user_name = ?", - [normalizedMyWxid] - ) - if (myPostPrimary.success && myPostPrimary.rows && myPostPrimary.rows.length > 0) { - myPosts = this.parseCountValue(myPostPrimary.rows[0]) - } else { - const myPostFallback = await wcdbService.execQuery( - 'sns', - null, - "SELECT COUNT(1) AS total FROM SnsTimeLine WHERE userName = ?", - [normalizedMyWxid] - ) - if (myPostFallback.success && myPostFallback.rows && myPostFallback.rows.length > 0) { - myPosts = this.parseCountValue(myPostFallback.rows[0]) - } - } + const result = await wcdbService.getSnsExportStats(normalizedMyWxid || undefined) + if (!result.success || !result.data) { + return { totalPosts: 0, totalFriends: 0, myPosts: normalizedMyWxid ? 0 : null } + } + return { + totalPosts: Number(result.data.totalPosts || 0), + totalFriends: Number(result.data.totalFriends || 0), + myPosts: result.data.myPosts === null || result.data.myPosts === undefined ? null : Number(result.data.myPosts || 0) } - - return { totalPosts, totalFriends, myPosts } } async getExportStats(options?: { diff --git a/electron/services/videoService.ts b/electron/services/videoService.ts index 10eb1d2..09aad4d 100644 --- a/electron/services/videoService.ts +++ b/electron/services/videoService.ts @@ -70,7 +70,7 @@ class VideoService { /** * 从 video_hardlink_info_v4 表查询视频文件名 - * 使用 wcdbService.execQuery 查询加密的 hardlink.db + * 使用 wcdb 专属接口查询加密的 hardlink.db */ private async queryVideoFileName(md5: string): Promise { const dbPath = this.getDbPath() @@ -103,17 +103,11 @@ class VideoService { if (existsSync(p)) { try { this.log('尝试加密 hardlink.db', { path: p }) - const escapedMd5 = md5.replace(/'/g, "''") - const sql = `SELECT file_name FROM video_hardlink_info_v4 WHERE md5 = '${escapedMd5}' LIMIT 1` - const result = await wcdbService.execQuery('media', p, sql) - - if (result.success && result.rows && result.rows.length > 0) { - const row = result.rows[0] - if (row?.file_name) { - const realMd5 = String(row.file_name).replace(/\.[^.]+$/, '') - this.log('加密 hardlink.db 命中', { file_name: row.file_name, realMd5 }) - return realMd5 - } + const result = await wcdbService.resolveVideoHardlinkMd5(md5, p) + if (result.success && result.data?.resolved_md5) { + const realMd5 = String(result.data.resolved_md5) + this.log('加密 hardlink.db 命中', { file_name: result.data.file_name, realMd5 }) + return realMd5 } this.log('加密 hardlink.db 未命中', { path: p, result: JSON.stringify(result).slice(0, 200) }) } catch (e) { diff --git a/electron/services/wcdbCore.ts b/electron/services/wcdbCore.ts index a54a460..eaf9d73 100644 --- a/electron/services/wcdbCore.ts +++ b/electron/services/wcdbCore.ts @@ -5,47 +5,6 @@ import { tmpdir } from 'os' // DLL 初始化错误信息,用于帮助用户诊断问题 let lastDllInitError: string | null = null -/** - * 解析 extra_buffer(protobuf)中的免打扰状态 - * - field 12 (tag 0x60): 值非0 = 免打扰 - * 折叠状态通过 contact.flag & 0x10000000 判断 - */ -function parseExtraBuffer(raw: Buffer | string | null | undefined): { isMuted: boolean } { - if (!raw) return { isMuted: false } - // execQuery 返回的 BLOB 列是十六进制字符串,需要先解码 - const buf: Buffer = typeof raw === 'string' ? Buffer.from(raw, 'hex') : raw - if (buf.length === 0) return { isMuted: false } - let isMuted = false - let i = 0 - const len = buf.length - - const readVarint = (): number => { - let result = 0, shift = 0 - while (i < len) { - const b = buf[i++] - result |= (b & 0x7f) << shift - shift += 7 - if (!(b & 0x80)) break - } - return result - } - - while (i < len) { - const tag = readVarint() - const fieldNum = tag >>> 3 - const wireType = tag & 0x07 - if (wireType === 0) { - const val = readVarint() - if (fieldNum === 12 && val !== 0) isMuted = true - } else if (wireType === 2) { - const sz = readVarint() - i += sz - } else if (wireType === 5) { i += 4 - } else if (wireType === 1) { i += 8 - } else { break } - } - return { isMuted } -} export function getLastDllInitError(): string | null { return lastDllInitError } @@ -86,6 +45,11 @@ export class WcdbCore { private wcdbGetMessageMeta: any = null private wcdbGetContact: any = null private wcdbGetContactStatus: any = null + private wcdbGetContactTypeCounts: any = null + private wcdbGetContactsCompact: any = null + private wcdbGetContactAliasMap: any = null + private wcdbGetContactFriendFlags: any = null + private wcdbGetChatRoomExtBuffer: any = null private wcdbGetMessageTableStats: any = null private wcdbGetAggregateStats: any = null private wcdbGetAvailableYears: any = null @@ -106,9 +70,24 @@ export class WcdbCore { private wcdbGetEmoticonCdnUrl: any = null private wcdbGetDbStatus: any = null private wcdbGetVoiceData: any = null + private wcdbGetVoiceDataBatch: any = null + private wcdbGetMediaSchemaSummary: any = null + private wcdbGetSessionMessageCounts: any = null + private wcdbGetSessionMessageTypeStats: any = null + private wcdbGetSessionMessageTypeStatsBatch: any = null + private wcdbGetSessionMessageDateCounts: any = null + private wcdbGetSessionMessageDateCountsBatch: any = null + private wcdbGetMessagesByType: any = null + private wcdbGetHeadImageBuffers: any = null private wcdbSearchMessages: any = null private wcdbGetSnsTimeline: any = null private wcdbGetSnsAnnualStats: any = null + private wcdbGetSnsUsernames: any = null + private wcdbGetSnsExportStats: any = null + private wcdbGetMessageTableColumns: any = null + private wcdbGetMessageTableTimeRange: any = null + private wcdbResolveImageHardlink: any = null + private wcdbResolveVideoHardlinkMd5: any = null private wcdbInstallSnsBlockDeleteTrigger: any = null private wcdbUninstallSnsBlockDeleteTrigger: any = null private wcdbCheckSnsBlockDeleteTrigger: any = null @@ -719,6 +698,32 @@ export class WcdbCore { this.wcdbGetContactStatus = null } + try { + this.wcdbGetContactTypeCounts = this.lib.func('int32 wcdb_get_contact_type_counts(int64 handle, _Out_ void** outJson)') + } catch { + this.wcdbGetContactTypeCounts = null + } + try { + this.wcdbGetContactsCompact = this.lib.func('int32 wcdb_get_contacts_compact(int64 handle, const char* usernamesJson, _Out_ void** outJson)') + } catch { + this.wcdbGetContactsCompact = null + } + try { + this.wcdbGetContactAliasMap = this.lib.func('int32 wcdb_get_contact_alias_map(int64 handle, const char* usernamesJson, _Out_ void** outJson)') + } catch { + this.wcdbGetContactAliasMap = null + } + try { + this.wcdbGetContactFriendFlags = this.lib.func('int32 wcdb_get_contact_friend_flags(int64 handle, const char* usernamesJson, _Out_ void** outJson)') + } catch { + this.wcdbGetContactFriendFlags = null + } + try { + this.wcdbGetChatRoomExtBuffer = this.lib.func('int32 wcdb_get_chat_room_ext_buffer(int64 handle, const char* chatroomId, _Out_ void** outJson)') + } catch { + this.wcdbGetChatRoomExtBuffer = null + } + // wcdb_status wcdb_get_message_table_stats(wcdb_handle handle, const char* session_id, char** out_json) this.wcdbGetMessageTableStats = this.lib.func('int32 wcdb_get_message_table_stats(int64 handle, const char* sessionId, _Out_ void** outJson)') @@ -821,6 +826,51 @@ export class WcdbCore { } catch { this.wcdbGetVoiceData = null } + try { + this.wcdbGetVoiceDataBatch = this.lib.func('int32 wcdb_get_voice_data_batch(int64 handle, const char* requestsJson, _Out_ void** outJson)') + } catch { + this.wcdbGetVoiceDataBatch = null + } + try { + this.wcdbGetMediaSchemaSummary = this.lib.func('int32 wcdb_get_media_schema_summary(int64 handle, const char* dbPath, _Out_ void** outJson)') + } catch { + this.wcdbGetMediaSchemaSummary = null + } + try { + this.wcdbGetSessionMessageCounts = this.lib.func('int32 wcdb_get_session_message_counts(int64 handle, const char* sessionIdsJson, _Out_ void** outJson)') + } catch { + this.wcdbGetSessionMessageCounts = null + } + try { + this.wcdbGetSessionMessageTypeStats = this.lib.func('int32 wcdb_get_session_message_type_stats(int64 handle, const char* sessionId, int32 beginTimestamp, int32 endTimestamp, _Out_ void** outJson)') + } catch { + this.wcdbGetSessionMessageTypeStats = null + } + try { + this.wcdbGetSessionMessageTypeStatsBatch = this.lib.func('int32 wcdb_get_session_message_type_stats_batch(int64 handle, const char* sessionIdsJson, const char* optionsJson, _Out_ void** outJson)') + } catch { + this.wcdbGetSessionMessageTypeStatsBatch = null + } + try { + this.wcdbGetSessionMessageDateCounts = this.lib.func('int32 wcdb_get_session_message_date_counts(int64 handle, const char* sessionId, _Out_ void** outJson)') + } catch { + this.wcdbGetSessionMessageDateCounts = null + } + try { + this.wcdbGetSessionMessageDateCountsBatch = this.lib.func('int32 wcdb_get_session_message_date_counts_batch(int64 handle, const char* sessionIdsJson, _Out_ void** outJson)') + } catch { + this.wcdbGetSessionMessageDateCountsBatch = null + } + try { + this.wcdbGetMessagesByType = this.lib.func('int32 wcdb_get_messages_by_type(int64 handle, const char* sessionId, int64 localType, int32 ascending, int32 limit, int32 offset, _Out_ void** outJson)') + } catch { + this.wcdbGetMessagesByType = null + } + try { + this.wcdbGetHeadImageBuffers = this.lib.func('int32 wcdb_get_head_image_buffers(int64 handle, const char* usernamesJson, _Out_ void** outJson)') + } catch { + this.wcdbGetHeadImageBuffers = null + } // wcdb_status wcdb_search_messages(wcdb_handle handle, const char* session_id, const char* keyword, int32_t limit, int32_t offset, int32_t begin_timestamp, int32_t end_timestamp, char** out_json) try { @@ -842,6 +892,36 @@ export class WcdbCore { } catch { this.wcdbGetSnsAnnualStats = null } + try { + this.wcdbGetSnsUsernames = this.lib.func('int32 wcdb_get_sns_usernames(int64 handle, _Out_ void** outJson)') + } catch { + this.wcdbGetSnsUsernames = null + } + try { + this.wcdbGetSnsExportStats = this.lib.func('int32 wcdb_get_sns_export_stats(int64 handle, const char* myWxid, _Out_ void** outJson)') + } catch { + this.wcdbGetSnsExportStats = null + } + try { + this.wcdbGetMessageTableColumns = this.lib.func('int32 wcdb_get_message_table_columns(int64 handle, const char* dbPath, const char* tableName, _Out_ void** outJson)') + } catch { + this.wcdbGetMessageTableColumns = null + } + try { + this.wcdbGetMessageTableTimeRange = this.lib.func('int32 wcdb_get_message_table_time_range(int64 handle, const char* dbPath, const char* tableName, _Out_ void** outJson)') + } catch { + this.wcdbGetMessageTableTimeRange = null + } + try { + this.wcdbResolveImageHardlink = this.lib.func('int32 wcdb_resolve_image_hardlink(int64 handle, const char* md5, const char* accountDir, _Out_ void** outJson)') + } catch { + this.wcdbResolveImageHardlink = null + } + try { + this.wcdbResolveVideoHardlinkMd5 = this.lib.func('int32 wcdb_resolve_video_hardlink_md5(int64 handle, const char* md5, const char* dbPath, _Out_ void** outJson)') + } catch { + this.wcdbResolveVideoHardlinkMd5 = null + } // wcdb_status wcdb_install_sns_block_delete_trigger(wcdb_handle handle, char** out_error) try { @@ -1392,6 +1472,197 @@ export class WcdbCore { } } + async getSessionMessageCounts(sessionIds: string[]): Promise<{ success: boolean; counts?: Record; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetSessionMessageCounts) return this.getMessageCounts(sessionIds) + try { + const outPtr = [null as any] + const result = this.wcdbGetSessionMessageCounts(this.handle, JSON.stringify(sessionIds || []), outPtr) + if (result !== 0 || !outPtr[0]) { + return { success: false, error: `获取会话消息总数失败: ${result}` } + } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析会话消息总数失败' } + const raw = JSON.parse(jsonStr) || {} + const counts: Record = {} + for (const sid of sessionIds || []) { + const value = Number(raw?.[sid] ?? 0) + counts[sid] = Number.isFinite(value) ? Math.max(0, Math.floor(value)) : 0 + } + return { success: true, counts } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getSessionMessageTypeStats( + sessionId: string, + beginTimestamp: number = 0, + endTimestamp: number = 0 + ): Promise<{ success: boolean; data?: any; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetSessionMessageTypeStats) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetSessionMessageTypeStats( + this.handle, + sessionId, + this.normalizeTimestamp(beginTimestamp), + this.normalizeTimestamp(endTimestamp), + outPtr + ) + if (result !== 0 || !outPtr[0]) { + return { success: false, error: `获取会话类型统计失败: ${result}` } + } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析会话类型统计失败' } + return { success: true, data: JSON.parse(jsonStr) || {} } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getSessionMessageTypeStatsBatch( + sessionIds: string[], + options?: { + beginTimestamp?: number + endTimestamp?: number + quickMode?: boolean + includeGroupSenderCount?: boolean + } + ): Promise<{ success: boolean; data?: Record; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + const normalizedSessionIds = Array.from(new Set((sessionIds || []).map((id) => String(id || '').trim()).filter(Boolean))) + if (normalizedSessionIds.length === 0) return { success: true, data: {} } + + if (!this.wcdbGetSessionMessageTypeStatsBatch) { + const data: Record = {} + for (const sessionId of normalizedSessionIds) { + const single = await this.getSessionMessageTypeStats( + sessionId, + options?.beginTimestamp || 0, + options?.endTimestamp || 0 + ) + if (single.success) { + data[sessionId] = single.data || {} + } + } + return { success: true, data } + } + + try { + const outPtr = [null as any] + const optionsJson = JSON.stringify({ + begin: this.normalizeTimestamp(options?.beginTimestamp || 0), + end: this.normalizeTimestamp(options?.endTimestamp || 0), + quick_mode: options?.quickMode === true, + include_group_sender_count: options?.includeGroupSenderCount !== false + }) + const result = this.wcdbGetSessionMessageTypeStatsBatch( + this.handle, + JSON.stringify(normalizedSessionIds), + optionsJson, + outPtr + ) + if (result !== 0 || !outPtr[0]) return { success: false, error: `批量获取会话类型统计失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析批量会话类型统计失败' } + return { success: true, data: JSON.parse(jsonStr) || {} } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getSessionMessageDateCounts(sessionId: string): Promise<{ success: boolean; counts?: Record; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetSessionMessageDateCounts) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetSessionMessageDateCounts(this.handle, sessionId, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取会话日消息统计失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析会话日消息统计失败' } + const raw = JSON.parse(jsonStr) || {} + const counts: Record = {} + for (const [dateKey, value] of Object.entries(raw)) { + const count = Number(value) + if (!dateKey || !Number.isFinite(count) || count <= 0) continue + counts[String(dateKey)] = Math.floor(count) + } + return { success: true, counts } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getSessionMessageDateCountsBatch(sessionIds: string[]): Promise<{ success: boolean; data?: Record>; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + const normalizedSessionIds = Array.from(new Set((sessionIds || []).map((id) => String(id || '').trim()).filter(Boolean))) + if (normalizedSessionIds.length === 0) return { success: true, data: {} } + + if (!this.wcdbGetSessionMessageDateCountsBatch) { + const data: Record> = {} + for (const sessionId of normalizedSessionIds) { + const single = await this.getSessionMessageDateCounts(sessionId) + data[sessionId] = single.success && single.counts ? single.counts : {} + } + return { success: true, data } + } + + try { + const outPtr = [null as any] + const result = this.wcdbGetSessionMessageDateCountsBatch(this.handle, JSON.stringify(normalizedSessionIds), outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `批量获取会话日消息统计失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析批量会话日消息统计失败' } + const raw = JSON.parse(jsonStr) || {} + const data: Record> = {} + for (const sessionId of normalizedSessionIds) { + const source = raw?.[sessionId] || {} + const next: Record = {} + for (const [dateKey, value] of Object.entries(source)) { + const count = Number(value) + if (!dateKey || !Number.isFinite(count) || count <= 0) continue + next[String(dateKey)] = Math.floor(count) + } + data[sessionId] = next + } + return { success: true, data } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getMessagesByType( + sessionId: string, + localType: number, + ascending = false, + limit = 0, + offset = 0 + ): Promise<{ success: boolean; rows?: any[]; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetMessagesByType) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetMessagesByType( + this.handle, + sessionId, + BigInt(localType), + ascending ? 1 : 0, + Math.max(0, Math.floor(limit || 0)), + Math.max(0, Math.floor(offset || 0)), + outPtr + ) + if (result !== 0 || !outPtr[0]) return { success: false, error: `按类型读取消息失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析按类型消息失败' } + const rows = JSON.parse(jsonStr) + return { success: true, rows: Array.isArray(rows) ? rows : [] } + } catch (e) { + return { success: false, error: String(e) } + } + } + async getDisplayNames(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { if (!this.ensureReady()) { return { success: false, error: 'WCDB 未连接' } @@ -1766,24 +2037,25 @@ export class WcdbCore { if (!this.ensureReady()) { return { success: false, error: 'WCDB 未连接' } } + if (!this.wcdbGetContactStatus) { + return { success: false, error: '接口未就绪' } + } try { - // 分批查询,避免 SQL 过长(execQuery 不支持参数绑定,直接拼 SQL) - const BATCH = 200 + const outPtr = [null as any] + const code = this.wcdbGetContactStatus(this.handle, JSON.stringify(usernames || []), outPtr) + if (code !== 0 || !outPtr[0]) { + return { success: false, error: `获取会话状态失败: ${code}` } + } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析会话状态失败' } + + const rawMap = JSON.parse(jsonStr) || {} const map: Record = {} - for (let i = 0; i < usernames.length; i += BATCH) { - const batch = usernames.slice(i, i + BATCH) - const inList = batch.map(u => `'${u.replace(/'/g, "''")}'`).join(',') - const sql = `SELECT username, flag, extra_buffer FROM contact WHERE username IN (${inList})` - const result = await this.execQuery('contact', null, sql) - if (!result.success || !result.rows) continue - for (const row of result.rows) { - const uname: string = row.username - // 折叠:flag bit 28 (0x10000000) - const flag = parseInt(row.flag ?? '0', 10) - const isFolded = (flag & 0x10000000) !== 0 - // 免打扰:extra_buffer field 12 非0 - const { isMuted } = parseExtraBuffer(row.extra_buffer) - map[uname] = { isFolded, isMuted } + for (const username of usernames || []) { + const state = rawMap[username] || {} + map[username] = { + isFolded: Boolean(state.isFolded), + isMuted: Boolean(state.isMuted) } } return { success: true, map } @@ -1792,6 +2064,128 @@ export class WcdbCore { } } + async getMessageTableColumns(dbPath: string, tableName: string): Promise<{ success: boolean; columns?: string[]; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetMessageTableColumns) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetMessageTableColumns(this.handle, dbPath, tableName, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取消息表列失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析消息表列失败' } + const columns = JSON.parse(jsonStr) + return { success: true, columns: Array.isArray(columns) ? columns.map((c: any) => String(c || '')) : [] } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getMessageTableTimeRange(dbPath: string, tableName: string): Promise<{ success: boolean; data?: any; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetMessageTableTimeRange) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetMessageTableTimeRange(this.handle, dbPath, tableName, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取消息表时间范围失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析消息表时间范围失败' } + const data = JSON.parse(jsonStr) || {} + return { success: true, data } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getContactTypeCounts(): Promise<{ success: boolean; counts?: { private: number; group: number; official: number; former_friend: number }; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetContactTypeCounts) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const code = this.wcdbGetContactTypeCounts(this.handle, outPtr) + if (code !== 0 || !outPtr[0]) return { success: false, error: `获取联系人分类统计失败: ${code}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析联系人分类统计失败' } + const raw = JSON.parse(jsonStr) || {} + return { + success: true, + counts: { + private: Number(raw.private || 0), + group: Number(raw.group || 0), + official: Number(raw.official || 0), + former_friend: Number(raw.former_friend || 0) + } + } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getContactsCompact(usernames: string[] = []): Promise<{ success: boolean; contacts?: any[]; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetContactsCompact) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const payload = Array.isArray(usernames) && usernames.length > 0 ? JSON.stringify(usernames) : null + const code = this.wcdbGetContactsCompact(this.handle, payload, outPtr) + if (code !== 0 || !outPtr[0]) return { success: false, error: `获取联系人列表失败: ${code}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析联系人列表失败' } + const contacts = JSON.parse(jsonStr) + return { success: true, contacts: Array.isArray(contacts) ? contacts : [] } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getContactAliasMap(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetContactAliasMap) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const code = this.wcdbGetContactAliasMap(this.handle, JSON.stringify(usernames || []), outPtr) + if (code !== 0 || !outPtr[0]) return { success: false, error: `获取联系人 alias 失败: ${code}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析联系人 alias 失败' } + const map = JSON.parse(jsonStr) + return { success: true, map } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getContactFriendFlags(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetContactFriendFlags) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const code = this.wcdbGetContactFriendFlags(this.handle, JSON.stringify(usernames || []), outPtr) + if (code !== 0 || !outPtr[0]) return { success: false, error: `获取联系人好友标记失败: ${code}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析联系人好友标记失败' } + const map = JSON.parse(jsonStr) + return { success: true, map } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getChatRoomExtBuffer(chatroomId: string): Promise<{ success: boolean; extBuffer?: string; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetChatRoomExtBuffer) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const code = this.wcdbGetChatRoomExtBuffer(this.handle, chatroomId, outPtr) + if (code !== 0 || !outPtr[0]) return { success: false, error: `获取群聊 ext_buffer 失败: ${code}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析群聊 ext_buffer 失败' } + const data = JSON.parse(jsonStr) || {} + const extBuffer = String(data.ext_buffer || '').trim() + return { success: true, extBuffer: extBuffer || undefined } + } catch (e) { + return { success: false, error: String(e) } + } + } + async getAggregateStats(sessionIds: string[], beginTimestamp: number = 0, endTimestamp: number = 0): Promise<{ success: boolean; data?: any; error?: string }> { if (!this.ensureReady()) { return { success: false, error: 'WCDB 未连接' } @@ -2078,8 +2472,11 @@ export class WcdbCore { if (!this.ensureReady()) { return { success: false, error: 'WCDB 未连接' } } + const startedAt = Date.now() try { if (!this.wcdbExecQuery) return { success: false, error: '接口未就绪' } + const fallbackFlag = /fallback|diag|diagnostic/i.test(String(sql || '')) + this.writeLog(`[audit:execQuery] kind=${kind} path=${path || ''} sql_len=${String(sql || '').length} fallback=${fallbackFlag ? 1 : 0}`) // 如果提供了参数,使用参数化查询(需要 C++ 层支持) // 注意:当前 wcdbExecQuery 可能不支持参数化,这是一个占位符实现 @@ -2114,12 +2511,14 @@ export class WcdbCore { const jsonStr = this.decodeJsonPtr(outPtr[0]) if (!jsonStr) return { success: false, error: '解析查询结果失败' } const rows = JSON.parse(jsonStr) + this.writeLog(`[audit:execQuery] done kind=${kind} cost_ms=${Date.now() - startedAt} rows=${Array.isArray(rows) ? rows.length : -1}`) if (isContactQuery) { const count = Array.isArray(rows) ? rows.length : -1 this.writeLog(`[diag:execQuery] contact query ok rows=${count} kind=${kind} path=${effectivePath} sql="${this.formatSqlForLog(sql)}"`, true) } return { success: true, rows } } catch (e) { + this.writeLog(`[audit:execQuery] fail kind=${kind} cost_ms=${Date.now() - startedAt} err=${String(e)}`) const isContactQuery = String(kind).toLowerCase() === 'contact' || /\bfrom\s+contact\b/i.test(String(sql)) if (isContactQuery) { this.writeLog(`[diag:execQuery] contact query exception kind=${kind} path=${path || ''} sql="${this.formatSqlForLog(sql)}" err=${String(e)}`, true) @@ -2209,6 +2608,93 @@ export class WcdbCore { } } + async getVoiceDataBatch( + requests: Array<{ session_id: string; create_time: number; local_id?: number; svr_id?: string | number; candidates?: string[] }> + ): Promise<{ success: boolean; rows?: Array<{ index: number; hex?: string }>; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetVoiceDataBatch) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const payload = JSON.stringify(Array.isArray(requests) ? requests : []) + const result = this.wcdbGetVoiceDataBatch(this.handle, payload, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `批量获取语音数据失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析批量语音数据失败' } + const rows = JSON.parse(jsonStr) + const normalized = Array.isArray(rows) ? rows.map((row: any) => ({ + index: Number(row?.index ?? 0), + hex: row?.hex ? String(row.hex) : undefined + })) : [] + return { success: true, rows: normalized } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getMediaSchemaSummary(dbPath: string): Promise<{ success: boolean; data?: any; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetMediaSchemaSummary) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetMediaSchemaSummary(this.handle, dbPath, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取媒体表结构摘要失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析媒体表结构摘要失败' } + const data = JSON.parse(jsonStr) || {} + return { success: true, data } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getHeadImageBuffers(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetHeadImageBuffers) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetHeadImageBuffers(this.handle, JSON.stringify(usernames || []), outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取头像二进制失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析头像二进制失败' } + const map = JSON.parse(jsonStr) || {} + return { success: true, map } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async resolveImageHardlink(md5: string, accountDir?: string): Promise<{ success: boolean; data?: any; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbResolveImageHardlink) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbResolveImageHardlink(this.handle, md5, accountDir || null, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `解析图片 hardlink 失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析图片 hardlink 响应失败' } + const data = JSON.parse(jsonStr) || {} + return { success: true, data } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async resolveVideoHardlinkMd5(md5: string, dbPath?: string): Promise<{ success: boolean; data?: any; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbResolveVideoHardlinkMd5) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbResolveVideoHardlinkMd5(this.handle, md5, dbPath || null, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `解析视频 hardlink 失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析视频 hardlink 响应失败' } + const data = JSON.parse(jsonStr) || {} + return { success: true, data } + } catch (e) { + return { success: false, error: String(e) } + } + } + /** * 数据收集初始化 */ @@ -2373,6 +2859,45 @@ export class WcdbCore { return { success: false, error: String(e) } } } + + async getSnsUsernames(): Promise<{ success: boolean; usernames?: string[]; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetSnsUsernames) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetSnsUsernames(this.handle, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取朋友圈用户名失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析朋友圈用户名失败' } + const usernames = JSON.parse(jsonStr) + return { success: true, usernames: Array.isArray(usernames) ? usernames.map((u: any) => String(u || '').trim()).filter(Boolean) : [] } + } catch (e) { + return { success: false, error: String(e) } + } + } + + async getSnsExportStats(myWxid?: string): Promise<{ success: boolean; data?: { totalPosts: number; totalFriends: number; myPosts: number | null }; error?: string }> { + if (!this.ensureReady()) return { success: false, error: 'WCDB 未连接' } + if (!this.wcdbGetSnsExportStats) return { success: false, error: '接口未就绪' } + try { + const outPtr = [null as any] + const result = this.wcdbGetSnsExportStats(this.handle, myWxid || null, outPtr) + if (result !== 0 || !outPtr[0]) return { success: false, error: `获取朋友圈导出统计失败: ${result}` } + const jsonStr = this.decodeJsonPtr(outPtr[0]) + if (!jsonStr) return { success: false, error: '解析朋友圈导出统计失败' } + const raw = JSON.parse(jsonStr) || {} + return { + success: true, + data: { + totalPosts: Number(raw.total_posts || 0), + totalFriends: Number(raw.total_friends || 0), + myPosts: raw.my_posts === null || raw.my_posts === undefined ? null : Number(raw.my_posts || 0) + } + } + } catch (e) { + return { success: false, error: String(e) } + } + } /** * 为朋友圈安装删除 */ diff --git a/electron/services/wcdbService.ts b/electron/services/wcdbService.ts index b5fcb24..98ca962 100644 --- a/electron/services/wcdbService.ts +++ b/electron/services/wcdbService.ts @@ -222,6 +222,48 @@ export class WcdbService { return this.callWorker('getMessageCounts', { sessionIds }) } + async getSessionMessageCounts(sessionIds: string[]): Promise<{ success: boolean; counts?: Record; error?: string }> { + return this.callWorker('getSessionMessageCounts', { sessionIds }) + } + + async getSessionMessageTypeStats( + sessionId: string, + beginTimestamp: number = 0, + endTimestamp: number = 0 + ): Promise<{ success: boolean; data?: any; error?: string }> { + return this.callWorker('getSessionMessageTypeStats', { sessionId, beginTimestamp, endTimestamp }) + } + + async getSessionMessageTypeStatsBatch( + sessionIds: string[], + options?: { + beginTimestamp?: number + endTimestamp?: number + quickMode?: boolean + includeGroupSenderCount?: boolean + } + ): Promise<{ success: boolean; data?: Record; error?: string }> { + return this.callWorker('getSessionMessageTypeStatsBatch', { sessionIds, options }) + } + + async getSessionMessageDateCounts(sessionId: string): Promise<{ success: boolean; counts?: Record; error?: string }> { + return this.callWorker('getSessionMessageDateCounts', { sessionId }) + } + + async getSessionMessageDateCountsBatch(sessionIds: string[]): Promise<{ success: boolean; data?: Record>; error?: string }> { + return this.callWorker('getSessionMessageDateCountsBatch', { sessionIds }) + } + + async getMessagesByType( + sessionId: string, + localType: number, + ascending = false, + limit = 0, + offset = 0 + ): Promise<{ success: boolean; rows?: any[]; error?: string }> { + return this.callWorker('getMessagesByType', { sessionId, localType, ascending, limit, offset }) + } + /** * 获取联系人昵称 */ @@ -287,6 +329,14 @@ export class WcdbService { return this.callWorker('getMessageMeta', { dbPath, tableName, limit, offset }) } + async getMessageTableColumns(dbPath: string, tableName: string): Promise<{ success: boolean; columns?: string[]; error?: string }> { + return this.callWorker('getMessageTableColumns', { dbPath, tableName }) + } + + async getMessageTableTimeRange(dbPath: string, tableName: string): Promise<{ success: boolean; data?: any; error?: string }> { + return this.callWorker('getMessageTableTimeRange', { dbPath, tableName }) + } + /** * 获取联系人详情 */ @@ -301,6 +351,26 @@ export class WcdbService { return this.callWorker('getContactStatus', { usernames }) } + async getContactTypeCounts(): Promise<{ success: boolean; counts?: { private: number; group: number; official: number; former_friend: number }; error?: string }> { + return this.callWorker('getContactTypeCounts') + } + + async getContactsCompact(usernames: string[] = []): Promise<{ success: boolean; contacts?: any[]; error?: string }> { + return this.callWorker('getContactsCompact', { usernames }) + } + + async getContactAliasMap(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { + return this.callWorker('getContactAliasMap', { usernames }) + } + + async getContactFriendFlags(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { + return this.callWorker('getContactFriendFlags', { usernames }) + } + + async getChatRoomExtBuffer(chatroomId: string): Promise<{ success: boolean; extBuffer?: string; error?: string }> { + return this.callWorker('getChatRoomExtBuffer', { chatroomId }) + } + /** * 获取聚合统计数据 */ @@ -372,7 +442,7 @@ export class WcdbService { } /** - * 执行 SQL 查询(支持参数化查询) + * 执行 SQL 查询(仅主进程内部使用:fallback/diagnostic/低频兼容) */ async execQuery(kind: string, path: string | null, sql: string, params: any[] = []): Promise<{ success: boolean; rows?: any[]; error?: string }> { return this.callWorker('execQuery', { kind, path, sql, params }) @@ -417,6 +487,28 @@ export class WcdbService { return this.callWorker('getVoiceData', { sessionId, createTime, candidates, localId, svrId }) } + async getVoiceDataBatch( + requests: Array<{ session_id: string; create_time: number; local_id?: number; svr_id?: string | number; candidates?: string[] }> + ): Promise<{ success: boolean; rows?: Array<{ index: number; hex?: string }>; error?: string }> { + return this.callWorker('getVoiceDataBatch', { requests }) + } + + async getMediaSchemaSummary(dbPath: string): Promise<{ success: boolean; data?: any; error?: string }> { + return this.callWorker('getMediaSchemaSummary', { dbPath }) + } + + async getHeadImageBuffers(usernames: string[]): Promise<{ success: boolean; map?: Record; error?: string }> { + return this.callWorker('getHeadImageBuffers', { usernames }) + } + + async resolveImageHardlink(md5: string, accountDir?: string): Promise<{ success: boolean; data?: any; error?: string }> { + return this.callWorker('resolveImageHardlink', { md5, accountDir }) + } + + async resolveVideoHardlinkMd5(md5: string, dbPath?: string): Promise<{ success: boolean; data?: any; error?: string }> { + return this.callWorker('resolveVideoHardlinkMd5', { md5, dbPath }) + } + /** * 获取朋友圈 */ @@ -431,6 +523,14 @@ export class WcdbService { return this.callWorker('getSnsAnnualStats', { beginTimestamp, endTimestamp }) } + async getSnsUsernames(): Promise<{ success: boolean; usernames?: string[]; error?: string }> { + return this.callWorker('getSnsUsernames') + } + + async getSnsExportStats(myWxid?: string): Promise<{ success: boolean; data?: { totalPosts: number; totalFriends: number; myPosts: number | null }; error?: string }> { + return this.callWorker('getSnsExportStats', { myWxid }) + } + /** * 安装朋友圈删除拦截 */ diff --git a/electron/wcdbWorker.ts b/electron/wcdbWorker.ts index 5d02904..55ab3af 100644 --- a/electron/wcdbWorker.ts +++ b/electron/wcdbWorker.ts @@ -59,6 +59,24 @@ if (parentPort) { case 'getMessageCounts': result = await core.getMessageCounts(payload.sessionIds) break + case 'getSessionMessageCounts': + result = await core.getSessionMessageCounts(payload.sessionIds) + break + case 'getSessionMessageTypeStats': + result = await core.getSessionMessageTypeStats(payload.sessionId, payload.beginTimestamp, payload.endTimestamp) + break + case 'getSessionMessageTypeStatsBatch': + result = await core.getSessionMessageTypeStatsBatch(payload.sessionIds, payload.options) + break + case 'getSessionMessageDateCounts': + result = await core.getSessionMessageDateCounts(payload.sessionId) + break + case 'getSessionMessageDateCountsBatch': + result = await core.getSessionMessageDateCountsBatch(payload.sessionIds) + break + case 'getMessagesByType': + result = await core.getMessagesByType(payload.sessionId, payload.localType, payload.ascending, payload.limit, payload.offset) + break case 'getDisplayNames': result = await core.getDisplayNames(payload.usernames) break @@ -89,12 +107,33 @@ if (parentPort) { case 'getMessageMeta': result = await core.getMessageMeta(payload.dbPath, payload.tableName, payload.limit, payload.offset) break + case 'getMessageTableColumns': + result = await core.getMessageTableColumns(payload.dbPath, payload.tableName) + break + case 'getMessageTableTimeRange': + result = await core.getMessageTableTimeRange(payload.dbPath, payload.tableName) + break case 'getContact': result = await core.getContact(payload.username) break case 'getContactStatus': result = await core.getContactStatus(payload.usernames) break + case 'getContactTypeCounts': + result = await core.getContactTypeCounts() + break + case 'getContactsCompact': + result = await core.getContactsCompact(payload.usernames) + break + case 'getContactAliasMap': + result = await core.getContactAliasMap(payload.usernames) + break + case 'getContactFriendFlags': + result = await core.getContactFriendFlags(payload.usernames) + break + case 'getChatRoomExtBuffer': + result = await core.getChatRoomExtBuffer(payload.chatroomId) + break case 'getAggregateStats': result = await core.getAggregateStats(payload.sessionIds, payload.beginTimestamp, payload.endTimestamp) break @@ -149,12 +188,33 @@ if (parentPort) { console.error('[wcdbWorker] getVoiceData failed:', result.error) } break + case 'getVoiceDataBatch': + result = await core.getVoiceDataBatch(payload.requests) + break + case 'getMediaSchemaSummary': + result = await core.getMediaSchemaSummary(payload.dbPath) + break + case 'getHeadImageBuffers': + result = await core.getHeadImageBuffers(payload.usernames) + break + case 'resolveImageHardlink': + result = await core.resolveImageHardlink(payload.md5, payload.accountDir) + break + case 'resolveVideoHardlinkMd5': + result = await core.resolveVideoHardlinkMd5(payload.md5, payload.dbPath) + break case 'getSnsTimeline': result = await core.getSnsTimeline(payload.limit, payload.offset, payload.usernames, payload.keyword, payload.startTime, payload.endTime) break case 'getSnsAnnualStats': result = await core.getSnsAnnualStats(payload.beginTimestamp, payload.endTimestamp) break + case 'getSnsUsernames': + result = await core.getSnsUsernames() + break + case 'getSnsExportStats': + result = await core.getSnsExportStats(payload.myWxid) + break case 'installSnsBlockDeleteTrigger': result = await core.installSnsBlockDeleteTrigger() break diff --git a/resources/wcdb_api.dll b/resources/wcdb_api.dll index 31aa4a2005534e526066a607f9e4d6856189976c..9ed25388be8d2526f774d10290a4dda89dc416b6 100644 GIT binary patch literal 932864 zcmd?Sdwf*YxduGB3=Fxj2W2!M$|$2oqY#OgU_fUe1AAnmQAAJyV}%qHF~SU&$|YeE zVBCz-R$H{T(sMjYtsbdb2v{W{nuPnsThJU%x z4%#koXQuYN%;w0n*$Rm*n{7g451Y*?Pb+~2b)IUob(2LMM_Xl2gJ!BnD zy;dbQ4XjWVRUd)738>I=N_ojGOt1E@$G5m$16u0EyS@TAB7e|4%yzRq1=h%SpqUhHAh zW7!|3XWH~A{&^kv?<{Zf=A@+PQM>V3woQ+`ncI5a%ROw{5`Xe}(ucTFJwJ=}n!FBT z5syvgWz>O&H?d(h@X?==8o-V9xY62d7FyS}Cta`ZxZceAE3Iq7pU?O2ctOJd+G*fF z(}I7J`K0Os;rG>^PhexNL5~5%Sa$oT**5WZOg8s|1@*=1F;(BK>R+tt3)cTnRe!lv z|L_{wOEecHyh2@W>%iA}3f>R#a1y?@@lxVzrq$Amd=%~6&vsUs?N|d)OP+49uC~ec zQTOt;g)w4@duvBYHH&_&|@;JL0a_du7@V zHKc^HH{`I(#!fNrkHCvD!IQ5WO&Cu1U7g$WjzL>q-LQZ5TXdx0O+8wSsP6XNG=%``@e4EYa0fcJCEyuz8hA#Z1kZrtQ{Y(xG~zusp9;^3Kb#DYe4m>g zG&W%zzVT+-WIxA%n=AYOw3iR2gOFJ>??X6FLmmX`JO@z`26kl9BZ77a{#TNDIGKgy3w^! z`~@9(Nk?9Z<@TO(+@2uRio&{!%W8VqG-n#ReG7}D-9g4$uTel~&{Ikh%UezOpYl|) zKan@fPNHw!cyr8cu_JYq@qQ;WNtIM@(<`TN$%C26@1e8R*x?CRI-xu+JLc( z0F;Rn&}O>Pu1BloEj=>VX$!f0wNze^KX*#}HjAZ&4qLhQKvTIktHn{SYYXdvhH{^_ zu$?&Z0wF8p3DGiML*G#tG>Xvy48RR|7`K55aeXy9JFZUaMa~+x`Fm{<_(*ehR|U?S zoLVmwG8zQu>LjfhxH)LMS zK6Ds+hd$g4Dm-F#Fg6;Z@OfA@s8Aq*?vArwIMbXXKsuC$9h4MF7K$gg|JR|XYySq- z{@W4&NtRaIl0MB=b)!e?w&h9i$LyB?js)8(dEqlalOM!gJ2IsB2{hHk@u&4l)0;+^ z13iKQ-L@hSuNz)D)Mg7G(m|xgR`KBy(tm>~K9u})L!KSlloHC=z=y@H|7BHCGRu+` zJOVGjM-LM4B>L|KlkEI;g5L`PpB}x{lUoqiqw_tv9JgG6EzUO3xKtVjO7xmNp$xsI zE@TfHb#2+cT3UkOlrM^8$JnFjLr(n1C~Ot|0s9Jaa;{j-W|ZbABwOG546i4EMW8;C zcsc=}+XuchKJeGnh5Jzm$L#9~ZFD&3V3QhRIRwVexa)x)nKslrCt8GRi)FPDs0KYn zN|4o{w_^4=UEWGY7xCpot<%fjB>LWkG3ukEscg4PrI~S& zc&QugOxs=cM~*P`lO7!pj+mOGM=Q_+-7(I0tM4{iWhKTz<0}lazu@!YXjzLCZYja& z-A=v9m(v~1lovnN$I)2iRXMWCu3q_;?0`Y|r>XtTdybHF&u*e)Ji zM!*kZ@Z6|evl;hw0}Of3dwS9Pa{$5^rxYd+<#eA7B&FdEp3=4(bYqL2w=-yr26@!$ zc};pz^PG!WIcPKlB1cd+Xru*VL+7%`-F@1+H_N~OW4WKt_6!=Ebx3@$d&L0P? z#FrjU2WvH;8sC^U-^)tsMROa!CT zJ%vGxTK?!*@9RkvyN~FRBS7k>xNCF+N+mvlOD(b!MYx$ZKSx_PGM!k^s#!+R6`4vx z2pZp$dJ1%71gPoDlGtS<)w_en#R22p(Xq?s2QaEvo`BFa-VGSAkPnKBa1}J#gGKwb z>Q!hnkoTr;>kxMbgV89@FuP|t+(USdCUl$Sb4!l`H|GA{?V5QykoV(<#xxZNq#AwWoPiEj7zuo*3&qnu#T53{mf10BSThE^REG&}1x%41wzizDbYSoCEG zERd2k^gW<;QuU&pVZ7_DVA0=07nE!LtMQZ+HslbCNO}ao%E6+>@RtR9N{R%uNI_k& z=o9Vny1Y$VO$#0<*n`{JW1G;N_E=rsE*`62#|;U_ikdxI%}cm~Na^LHV9Uhsppe}^ zcyn8Nv9@-rUt5nSu1j<1#Y6w+m{k?!+NlNhGkwIY$L>&gAAuL$oCfUC+ zC-m58uoiITq!NHVi|7EP>E~?&S?dxulNc{;T~d8CdUQ}2mZhq%=Y1@7c6WXEG0+zo z((>DkopjwWF0fH%DO!pXesL+!PwN zqRaj^vA<2B{wMdhr|fSM{Kq8x-SpjHn74yq(x#Eh9RYTmMk@H9pP7Ikeql&j?EhEz zN5Xy~gx(*8{{p}dx*nkhOlnGv3Ug4%>cS_!+G~MhQyj1QH6Sf&30AuTAB3(b zk6b%2+)Iz$fXlt%3(F%z28R2$_0=O^fhs--^(tS%8lfz+Ap9+zE^r?GXkeusR0cmM zffWlSzkcwvD3Rl-;&&w7(+}Z@!wLn%eryEYEB;sg|5c*@Iy=n%qr>R`%|r+L4|K@> zx1#@hRsV;`{>uXPzggM6dG&gvJyrW<9a%I%t%^Tk%?3S=lY}zjVY=}heDtPbPX#4p zi80j)3pWs%OIx$V$iE?$em^;)q~;r~IvZ8=$bRU%_VoF^eVuKK#RpIgf`*C|R>dc{ zq7u}q-^ZD5+ySNcGiAUI)+5JK!=pPrKFjAH{5b^N*Lqr8AnhAvR?~xk)UXWeXo>}< zRO=VQ^bkKE;;^;#*K0luZPeBkPg2_VRlYd%-@aE<+FsD3(_q5H^$2VTGA8_^56Se# zdr%-^#j`zZH^j1v{MDa_dXzV%OhEtYQ*Sgo9f1Csff{=B0mv>yYGoU`(Y;`Ec{FQk zTVL^Mf5eFh6(_X7j#Qx69g4?SNVze=Gxbzq3H{i5C&Y_o>``CR-x<|WCiSNdyUqago8uXd=MR&~!GcLgB7N2k;s#MOt__SUl9f-); zKQb~wD7|jX2}Bp>BAx~#Lmw z;fT7v&qE6}b-L!?rS*bW=Yy5)%P}KAD$0|JD33T6k}(o1z{BwZf5CB*kW!MM9}q-) z3l0I?6d6KGfP3OA1@3<{XwMMG=v-PrzdjeFq+r)!b#}lQouw1e`9NLvf8ZGzf%KNs zY*S!o4^4pGtg9%M9TgnvZLzh6hnA%@`I{(vgl}FCTQU6LWKKgvP@bcJUH`sd%>Ta6cu$X&XyW$g zx-&}Es7Dqmq0&v&9C=dB17Z+sZs1hfMozuzhChxW){5T`q>XdvX=D2%U_!I|%kvx% zf1}{{p3O`B0*B34E7>~cy8coO6$%SbsK>@?dSt=H3>lBrf`-38@AToF$bz^nbXhU+ z>vEcp*wiBjaI?F7*@&!EGcD9T*mmCm#V8dca(7|S$NpHJk5JPW! zSMc&F&n|YM>P=#sHdvDVrSzAf;v-YVGCm)>Nf!smp0S&9#oy$K{ppL*m)K2+y>ySe zE;yWFMo}1bru6!Yd{O7AsgC$bq<*RxC|e$_i^pYyqjSY_)v{l$m zG2j+pEWNKBmoX3#K;)r5>S`*kri!_kg9ib^MWWx-S>FO*RbL-OkD*@~X_1{C2PxIj zX&G(zikC5G-l@~zR%)k?ey>vf-aEkR_pzrF{kBwyeBXZcKFygb@d{i`%jHND;iFIg zntawM6+_f(W}2@l6^|voMvi}}ZrI0EncR)pA;zAK-A&{WThoYi=Diq!enx#{f7;Nr z@V!kV$a1#z_k*>Ijp0t;`Z&&fhw4&%TJh%S=yad9VSmP~3ytBuharVxRXC%T?AiJu zeukk@79e%Q*182hU=lp(3}r}$Y~6q&Io%`u_(S!np>D;-4bHZ1cnSVsXcS^@;RZLw zRS%1aDe(r(?O{X65k8_Hp@w`3-0Bn)GzFG~svpANS5_S%Tw3*HG+A|oAZgXpa30z3 zj5NFJMS9y{v)_?+@0?zt{t=NH>KhR$Ay=e*a9c*C{h?6iuuSwC4qRQEUCuJ2Cm=}L zADm?aW7}e2&&Zpl$&)gYo*`d5#Oeo&OvG1vD$)6XfpCh7LrRlCcGML8u)iVw%OgX5 zoR47iF$*B*MI)SAO)Ae|rAUsth*C%L1yG^Gi1DIj%wAzWkS9I`Z_HJGp+!cwmP_e$ zD;3XHaoaaikCDENd)WyyK6wrm48%05Tr=Br$*<9ktIH#cE*luWL|Zp%U^yluvSFkR z4EIH8zAcOpHN^Z5(HK?_g!Z(JF8Hu*ROFaFob5gIR%&SIYi9tcwyS75f@W{^lqtf+ zB(Uu}@YQ#c>KQ;n+ghYO#n>vJ(EMBB`Nf? zxLZ$a4j_t*iR9jasLj{p?Kcqh0%&1~PEH_l0+y|A0LL&>WBq1GJ9LNm73>TecSF1O*G&KVJkm>S%n5BB zqN|8j!rer)5|DnN7i|iE0e6{>a#7pNQF`<)Cj_4Ly6y-=4;{~ufcdgh=*kESV%liI z)PyZ}XD$pm7<03vF-L{fARajZy0b)=Ja#F+m8GEdf&&n#cf%Yz#Tx)N5xgJnmOLLF zW!+6dwkJkKw=WB~S1D3^B<8)cgAMuN@&%E{HK{w*!DEN(2 z;2?L2CmWK5Py+`tJCI=C6*hGl1`T5*IrcH)BoI9>U`%qr_IA*1y4YwusMU{ffMdev zU~&O$8+W2)R#xOh3Su#;q|{+Zpydp|@G`m}`}_+?gqjb-m%wV*jTrGme!5IfXguX% zQY2@cfk(?&K^&IyC%e!2nKtnbA_^n`iT~Sx@k)j9uYZ=1b``Ru54@f7@&tb%r0Qj- z+~QYo>LcxEgs$Pl$?wtga?G;_2ZrI$6nk!@n0Z@@8F)AIJ*BqLTk`k;7;-b%~pYvLbPb8;Gr~@ms(w>KWRj5GxX9py5I}ck+~H z75h;2CObE&0kMi$_6Rq6|2O!FiVZCL3Y3Hqxtepi`TwK$%h4*u`|*G@x#aYf#3$_F z4tZt8VXMBDuo(7-=Or+_0$>G=Pjusw!F2_P0!>Zqc%gr?Ry`8KX^eGh8$Qj@BKf>1 z>8+GvD9cocHGNQg$X}MCRp;OgmMa7rd{n8Bij6JF%J*6L7)Cqe{M5bBpPrP~&oE?> zxK~?Ri4!W%R47kqP|W-c4rNB-_V66Eo*H^E7z=v?#>X5!FQV|`x0o_uuve@30Z#^u z>o~yE2WmB+>B*tF{D^2*m9jLvHh z7(L;gi=WYIM+HoZwu}3D5%HJ8X+?NvL7^PM>vRMDRIDE&^fIzh{5dsBOXvzt0q9g&^NrFw~zW}$Ry0az@mhKJ_$-E$;~T>mz!z_ z^w3j04rfHsL3bb)bRYx4k`}^)5_ABi23w;)X{5pyK084G{*i=Pug1~c6P!tqpPiGb0x zq|n(Vot5QCub7i%Da#$=91s=WG6R8!8Kw9?KDw~1apYtest{;$UT8YmF2o2_r^up` zUq7xt&kO(0^yjYt&}sDN2B03yKrOo;0j~d(3SG2*E*cY`SCRUERE18Nkx-#lcA2S2 z@B23?(!;cyWw!!%b)`r@t0a&=sz`JCLX{ZbTB<}22**RZ!r*QD)3Z$U!@w_yH~FNe z7RCJACK-@Lkcz@O)pVVxRZXFdJfiObpYoT2@K^F{>B1eVPuW1HPV;Yyj!4%we3CKi z0toagl^5q|N~0UscBAs)a7ibw?fS?k&d6qWeQSC&vy<`#;q(U=F2+&CW8Vgb2#QeNCQnBnJ+tu@53BuhlghAYc$9@hA#&))E(cog64qh z>d!L}aLNVTxRhGC^`~e;u}a7Ibj;7LXI&XD{6Lh*&K)FNQ^C}fJUcM0fzYW_<_p>@ zA?Bp95}l2bN$^M(y5p`5pJmXXgs7Agw~1L>YK-#;35d)su6&1r&E+~1Sds-VJu2Z! z^auGpXea@^cxfR~%`j)DBsIi03xRF_g9&US+PayRuA7!_cIee?Bu+olCSgL9Y5CWP z0zvk=ZK05n{l+WVwkf)iej!cS4Wt%aG#go|L$dG0g9|T53%B4zTnJo5hK*!nVWc`{ zU-)hY_;xWsie+EH3M&a-%$|*NM0@e-sQrALjCdgzWC1?YQO^>^k71c3dCVpb}ts#q!k}~-oW^0|0WXVGnvF5ycLEX~f z&VzB}!9^dYm+Ad;3g*9QzEtv+vD-0@6A-8+{S5q+c++bB3wMkW!C@HiMd6Hib96+o z^<|cg#Dn1>-of9jcj8j?mG5tsq^w5~@HW>CL>5l9g=yGMZG(CpS-~_WJ$hq>d`bN$ z88&Y<=5(G$6LHr}TpBF}bqBRS-Q^6=)(s6w(V(WC@jdHd#KUdI9i+PYTj+n^h6q?$ z+*N~zU}R;jx63w`;BuR>^aWffn0o_edAXiWaojb96&jbW!3AP+Y@rAxILnE(iF-wugJ!A-Sc9oyP4C{1*x%Z$dzJckXb zLDAbPR7U6GhhU1lwRDuTb3c&PV)mmg&9@dR6+=7%aQUkbY1O|34C_gC67@GZjTWtX z5iX5gK9eP0cYfRTIf!NLYwSjxU6a;5ifgqR+Gd! zJ85FR4UcZC+(^vZ!Z|CD`CX>a{yc7&<)K#9;BzQa7)PE7=dbeRB#b%8zh_Gcd4cd6 zdBlMC6dAF34z- zTq6mUxwFSUl6)gyE*-zS@bbT-P+<&m2c7{X{->~BA@SR?EQ$X*A_qzM=M-9Y4C@b| zYtTo?hmQ3XCjbGY>wyOn8qrb%=#ry#X+wAObxG~1@svrHVF>;RR^K5vjH?eYzN5|D zOPP2nOB1=58@#|X5UkW?A;PrQ*z;)7OCP$&gE|`OB8jteLkH$aLElMvp*`RyH}0AN z;8x&;xeZqPdyN#jr*T&S;f}jJ68uQLTRgc5`TdwYknjQ5eR(JGM|~&`AL&jNoFR!= z^m&92Apczs!)s$mqRrx$ILiLqCZ}~Fwo-$be`iD(DuUJoEE32b&U$0wQO=s@-Qm#d zkEOBelXS^wVDkR(qvk*Y^!o^SgTXQ%))0ak-;cw47|DpjTu4Kz*~pxLaT}(z=tLpj zllOs~`rav~GJwQZV_EwcJt%`>Ko$5|WOu9(5QXTD)j{G5tR8oL|AB=v>y|uH9y_i1 zK&*m7P!xnS<9=j6N9Q>~S~%pq0kC1Yq#(VZI6BXv8($%SI4=tviWpxZ{$rNYHy$++ z?3|Y$eQ;`%&rO0yrRgZC2u9ae;xd4oS_tG&`oXvt9h>VY*b^{Ns$;75wPmP)!wMX< zUXhjRuv#6ccJ=5lo7I(2hjw*f>^8jQ}nkZQ)R= z4&&9qi-R8hO&Jcr=WA2t<$XxYJ)TM&`GF$_`r>AwPw7?!`Y_44Gkyj@n_~s~WC?>= zFnuS;v_F~VWhvdH5trjl`&H(9LCAiK;a+qfFn6OIYUH4X&X6IK&T1j{2sQgfy89k>?(4pqH{XQK@6E(!aT955E4I^!w6YXD)!-t z73*~XBfLlnF@038^zcs&^Iq~3VjZ(x2=jsq^)=`4<;A50t{y`;bF@A)?k)y?Jnfz#^2S}9#lFGD8F2etg#bhGujb3 zlEQ>=83QFDor-t#XS}%U_3k#Wwibber{r=ZAgIEM2AecRC=&5^Bt1hWB2APTFZtGr zD-apvAV9$DE|sPqAId!#ACc9DLBT0g(%tLHufid--=uF}Sg^-e%R&yuYUw-J?b9UA znnpQ5hqk6sPFlDHoAu~Tu)=R*K)nE|WTTKRG755Ol&(idjmL4W)@vzg1P3Wu#%T84#`~}Jcc7 z9E*n>uQ^dUit?C!+yssyf*K@Wm^<>U*fV#%7gdBE!Df?nawSz49KuqLLZ$|y4i;sE z&VbsG7;cV3^EG3T3-OAuY|f3I(0*xnJK27@N!l++=H7{vUv?8~N1}5IH}Hj!rlJbr zy0ik*K)udbd%>gW+MKDtP5gI z2HtqS!bnkb0@k*k#T4!DGbWG$BR3dR)PWeL8}Z9r#4pW+pP=#AK=e*$AUX>IUS%@C zg}&`>)7`K3?3X?M7JNa0JIx%HU202RggdQ-KBjLAPe z_Ly2?36KlL4~)=b6{_T9XamF`tO{|LLv{z+qJj{fp&CybjTN$&6pE@BoQdlg{_kKnkKgN%hjNCpj;R6gXkg-2mMD|ku9#IT0? zS{sEM1B!o2@gsK~DrI*Y6I%fbN}*?fF)%wPu#yD}JZ4NcpcU~pbyY(946@uzHCqY# zQ93_Se2Ss44~CCc!)OHCllc}a?xSEZv)n2mnh-)Hew4q)oR%Y^AHv~kZCM5AmaP4( z`4qa{#e#jzGjf4lZWFLghR%8Ysi6v&wPsy~Y zZ42av2x>_%%HK^jolfcVKvKxn<`3_ZKIb`iOAU=`x3jhAD2#Pe^e#9=q%F|>mT77f zyI7n8sEnI)B44G1F6Ga;{BcH(ri9Y4Z39}o20K9TsF}wv)714&9#xmnlksXjv|BK{ z03LMUcow*yD(xYJ8xlP?>nG@kIuz@lZ3JKDoq?RBLNHU$p2y&zLQ$FOAC}E`wLUrF zk1|M){SV?9UHRveR9l09U^8NkVNvUEkPF+x%7re& zow)0h?ebk_MoQAsU}nD-4rNBEv8xS??mB=0Z0m!QMxH>5yMD_Pn4+#~HMXZVV$Kh$ zwo=*FR`F7RLkY!1Q5})1EIQ;Bb-R0PVjWTJ1y32r1M}FDG3}e~Fo~^Z1w|K)MkEVD z*T+gK#1A*fB$?kw`*=xhj}IXO~XyGl4#;P704(YhA)8>Un%g2n>;|F30u zFcA5t7SKi=)?*{$fu^_c_IQc$L!js_tT{Ruh~0)!9-gX4+MP2m^R1`(7mV2jhXh)- z8rcyrEzFj5Lqfu~+sbK{+SmusRE5wG@W69x_*^Xek2rK%&jP^-9!jrB0pfyK^l~5& z%eq=yn^HMHozt1nnme>=E-TgJo2}x|S9;!#K+$${RbRYbb{^uMaR#KM@Mk>M6KIRm z*y+5zfufJlr8cCuR+xQ$9}A1I7K$Kxg+oVQV(_78Kw+S`X#((aP~OD}ddZZRG`NCt zAkF(NfufH?XX|<2Yil#(uFqiAElWR7k2jz={58yMq>6jBUP!{ETJCj|a~T_#@WE;r z&-`Hdg4VNuE3*es9N%!!W4>DXh~XlWJ-KUxyX|IDUZh#miyG%3Gr?};3@c>@^#ICL&hvqIvg z3AX04^a2YvvN5ffMhxY{`*0R7n~rAKZ>H!KTBvc0-}zL|aD{jbXH-x|OmYL{e+$$p z#viCbZ;^#xBF!T7vT(5carT?-4cigt{qI)Fr%4VY&Y9U*2h*B|;ViZgTtRpDZfpsCSnT!PoZ?s>}VWYsk=6b77;xe4dSNd0*#9s@d zYsY{J43SL^sE{OoFQ!vLFxnh!MYNzc7`-17HVst1x=p8GfTRl)HO+BinKo3`S&}&* z^xFfmn^MGDN{^_2wR&}_j((Ho9{dIV2El7QJ(3rA15IIf-@Q+|@!DtXf!v!ZWb-B68{iisyb6n|*|7#+ z?E`bb!W-sJVW?rj%0MKZ5yr9!@WY%b<G6W(8{JOu1+3-J!{M`_@mJMf)p$R`~J~5O2)&mv$roypK$^j!FpRjP7_? zJ#rE%kPEk`0~Of%10flcV4T2U0w*uZE_K4m8DY#eNeqJE@K^#$HlTrmoVA1zJ42XM z*AfXSw1Yb(Z}QnuxnztOtZfiB1P= z+5}}dP}Re5FjKf6g7J_@a)aUU%b{pp#PHk6Bcg2UwEiD!#16u4a4NeY`zFh7!0Y4& zMx`D0!&nHJ9^!e3>J>o)doRcp9ZId&2l6mM)t;^`cG)Qlj&aEW)}#fEA|)MHnbL7h zAT~SwHDw_!SS6*LUiAI!TpbCdk*zTH_RdC3e{W|^zYe{S5kvnfJsMsEWnYWU1-J_X zyo0HTvkY%azh>aw6%~!?*TAA+hCg)VDy-&$s9I1O3pEGM4F9eqEw*uk(qe@_ro}ob z)KgOWlT;Wc+a_~m!DJftmI})i_g*Qjup?Z}H1OA}1#FJ7_$T>rVQK-Voq~Wk% zgeEeB59FFF<`r5htI`}4#3U9Rg!0&rp0!i5OW11{HFwx+Qh}+a*bFU=QZ7Tc7D+lm305oH^rE@WFy^k~TD2c6 z3p|T601I+_s;^QCKv4;BGImwx2N$d{AIvfz+>5{mAN;2jpbHXYf-^}b2@`E4a7)vw zjP&*+`z!o=?K9+oeV$BFaO|r#hBcv#c_RldR6XCM;Jrm31fj298W<9=<|ClTt`%xH#6La-PEy zso;ppu<%?$TOpyn@U?iHGtZU+e=8-V`66Fnrvp;_(yNrDtrXdcc}n(+G@Mm`h#5jy z0`W%L1CbMUZFxVeJsA8U+FT_*DNs+>JrE0Qn8#L&vLw@~oEs>@ zbaJSwIp11p@mYdyRxHE&WW@?!Emq;N%{ba5rpv^FL`6S^3+k1u@YOn1H6g13IpaEN ztukw^@yR8HXzT-3Yn8ZywS02vp=qj>I7M(EpCgmr;5*BmTDRCGvhFq{L2O5 z*NA1R_AbDaGPK_#nks?1ReB#V?GfTlS}|h=&mu!5+awt5^}4l zvWH+1NlS?P-+*X2V~ic1eNKjumHlJJ!~2gk*@{6MWLa@G3_x=kKf+3J*Q0Am*SFGD z$o?Lq8h3pGDy6D*b4oi`FZxKU9!?g8{3xaGI3COXF_Qp6$q8&ZYC1RU!oa~i>NayA ztc84^%xHtaLtJsfH*9c+D82p6jl^$0 zxsk=EX{6iCOHYR6S7sv{%tm^ckc53*L2<^+A*umM{Su1ZNF`=h=9vxTm<@z9jxupo z^D)9nZ5d7WU-+|S>WRbD#?T%&L zQk=(7Fe2|VxUXIv&hgb2a1>)M8xSncA$PVui4r6Oq=d1#?#1eEU*0`_1@5*j^3~p= z3NL4&kcIcgUDum0?qAb(GhSSO)Na1}zAcm0yOUmw=6f%|%WqXJjgX_eRs2RacJ3({ zksGlzb!@NupOmf|=lJs3h@01~~KLE?xBg*>9ehL?2Q7N<3SKt)<^cmVS zrGb43iu9=cQ9gm44!o91EA`bPFiBj$fc$jQq*pu-nbVaHF_nX1RxA@$iHgZOM7cVy zkgNvXcV|bfBpqVbnxty25?6K9sxvj@E=#4jbXBWPXdSioo3#!m^ysCk)_&1C$m)RK zX4Z20YWWER^s~3BWfKi%EyzCmPq|Y_lYKf4{9C^tKVmQ{z_JJ0bl#5I13bi*@unWl z9wD!?FO&C5V4A@P7SAST+w`}F9!Usq=% zI-dRdyXiKmD6N6vh&)DF8Ou)jFVJ=c&Y>l;UqF2^;6{RY)oMO#4EqBPfuh4&H6^LF zUtEd7wS!n=Yn-Tjs1HN~Qfu8oqfxy51~LYWt<~INW+!K>m_w!&Z`F-HtQdN~auKS} zgwx_ikXbx~>WBvXBv5oBG!gn13s{kQKgvr%V2s1u=TWJE9hF0dhK5;Jw#veXkR%%$ z=T+ivCv}9>$k_h?VRU49qk&yw&d0R9OWb18CFoG35i0VqR^x+;ih%jC<>tCh>b9$_4j;7|u&^I|f2HHi;cyS($qmdZ5G){@h%`%(0leD<{ zPBrqKniD^{l#U7EcXNM>$k%QiPL=#ygdHuA6b!Bi7B$RyAP{NS=Je+lOcsE0XA=n@ zXZ_t2?+Nf465t`u!r8mMa`xskyiS4FT{qs96Te^`nMgqFs#aQ!J9^keGq}JUP6?mN z2hj~CQTD-pqM=?CCxb5{uh7ug7d}8#<;zA)yCLzsTowU)b6a4a^k%^uT%FL?Lb(u>L62Cy!8Ghw7$A;G96hzy_ z@1CU-fLYTrDYA4uj$}I7$9lc$s11JH%t6={<6>mhv`hO5bI+0X{#vZ&R_9h?QM(82M z1C1$aybKHubMz`8M&{-Oqh-iJkUsO&-@|Cwg(s4}T5#R9=5YG^Gx{;)!WhO^tJw(6 z6L$VyDvAG41s z0_s4<)tlJ5;kuL8+#7ec9_u|8(4sJVAPcc|lt~-d5ARgk@G;|o&Dzr2z(1`6fg#a=dD39?!d)EACi`|Ah#a8e!WVHar_t>H zDbGgZlMmUeaT<)?1L-uv+V*>Z?A@XP(pUg0!#MLX;)FgQ>5o#lVmD)P9~LSCJ?q}? zj#e?XAAU}A&UH32)>($;yynLvTr=phh&fBbq5~uy28U*r{H1N%jA#0VH#WO zbyXVS?=>t72hz@Dd`CgjPNV-h4$X7omh%nnZE*^+$xibr1sb;cf93BnL*>*Tr4@-NrOb1u6O#>?`&h38NINuJAa z0h~<0BLSS?@lrKR!eXJZs{wcNA20#cZns~J0abbcG88G<;okV{%35uWzY#No3gUpg#K3qu6iOAeh{Qp2tJ3`%cft+!e@+Sna z(@gpOje3d?$d=?&Y)w8IIg&AR7$*FO_!R$OquH4K&->_x?i9y40f5jl!U&jBZim|= zFh>8PJ%_fq2DMb14xY(2A2i$igW2X-v&~S@>=hwmPbGX3T6PUvm@_uePxHy;sj96j z%(f<)Z6UZI;R~B>owl!MFxtVkRGfi*ZRO%O^tIPXeGR1}%$myJEe1mjIFC$%5s`sg znN&(ehS9r(&vEoP?i@a7lIflt(`YNh=y$&|G5V$AD})8OJII}&G$rOSF8+c;+}B;# zW5X`J3Y9VRpnNR<%X+pG=Vap&Sv5DJj^dmq`*56-X{`01@M55H&pmSvMF`cj#07#A z_3i0MchQ!_I3m_`46KP3ZRxk5ZW^FoJ?~q+{scC`--_L=(#0d^v(qAoQ7PoM0A5J5 z5-d?2j9_9lnxP=OA{c!T?hn#`dj$-xdiFU=qJvAKGoi}soq@Jrvro3wF`19z8TT7{x!dZH&lI zS{nw8rOM@EQGR~}k3wQ%7;w^tk00?xW2W*&yn{{JE9b!j!#wW@N9A02VQ1<^aQNy&aM7Wc^wKe4#!b72Qj z>#=jsDaZnBR#{r#Gy<&MMqE#;H>?mFw$oU^Gni*o z4`CwYWRn3w65ca&j+N72WbFeB)Vhb`hs^A&+kO~&X zXAcZ;N9moAlSeoceWWeROfqPP>j`5Yp7GRvWVeHIGBFrkP>Ct+WtiEpi`rk15?qOiLi-hn+U5A zx8O8EeF6Du(DzW(#T1Pj(=UZ2rLk^lW(H#=ImL!QAKW>35EDoy{FcnE)w~J*fPIH6 zqg_Ux+QpIHcn7%R2o@un_HXn5q&tvTq6A??6V#W_lAxBfi`6)b#P1I|s^YXh!eao% z3j+zo$4_N|@4u^HKv%_oI_T6_D+4Yu*Asw4G5er%%--h1+YfYJ(Uhg5l@%Q4W+zaJ)bXAWGn}!3EGqM9XkspD9kDLp9 zq|#SLFq^)zT#>F~n{ik3Z`cV0%Me|l@fIFoBFSqpbE&VEEkMA%@SZ}FS7bm8$|3NI zjhJ#XPdzT=%=bVpj<(ib{XjNim0I<;kh&dt*ny2U+f6@z>_)KHUp~BY?fZ*AK4%1^ z(^X#$%1l~cM8J`Q!pL0ApF_}c34R|y;gh>#AXnZ^h`0qB?H}}k(_amES1>lEjGMVS z0=tD0vI#*QfI!TW0`E7y0KU500zXy2^*u<2ZuGaH0R)7(;~DaG{UB@$6sGSXUI$%T zY?R~|>{-wFMclRWN#Nw3gP;RJiC^?BKhQK*P*|dsgK|#1r7`^qTia;P73Cd4g3!T$ zQO8I|Q9D1-#L5#}Oe=k2i=MVOXf%;0wuG7sx3y_Oe2l^r!82$D#E^e$Ht**g zYnLDsVq&i|#D9B&qc|4+HrS>f+jROO+cEn&u^kD^?SKyEm{bs0xq_ThTGvJiHpZ5Y zgGb|jDAIel7&c_G_uzNRdT2u-)(cNET-xaO;$`7>vrT-m=t%m^t6*JU;gb_75CMy^ z2tWp!c8FJy^8jKb5LRP!EbMyT2_$E!tq4zQ4bu8V3Tc5Y(zi#8{g66uws<#NWJF;v zE1A=r)!TRx!T!tDn{Z}@`CaLRBv#@TMQ?S7{}L`u3UC-^wpl-I@wd7;k9&hDRi@R zF%adlq7Ebzlg!4pU|2w^oD3m;3pe_6>LAPF%K!5+BG6z}-B7;%}Ow3pbKcT~19z-q0 zx<}a#eaPAq=Vib-V6eVr5q2hMuzm7_ovYkGw&EMo9#|qDV6GCpwd#BEfVP}_Rnt$) zYYr6c3_0ib++dq<5hh^89}o^{YYHH+iSGs0A3a0I$};t_Kzs?%J6r?P)GtVlZ$j0D ztooE#cLv5lX)x1&#ry_+(4_TP#@7gkR)PtktggAxR91fQ^AW7k0gfJ+rf_s6v%a{Z z4kLL$sF8$Qg=`Tce2^OoL+tE8`j-gCJlGX^D0T(e2k|G~{yDmXgoPnpX0SCukmF`Q z5ZRCHUyLl#c&fG-iU_o|0CHEp?L;8fZ>W?RJH`F-Ee)Y5mjBx2+syrvRleM4?3dgN zALcpvb3|XXxhcSqe%Vn2`DsZXAo@ZP{~G4z<3DEfxxB$z%uupM9LN9##>TFZ$l9}k zmKRDd(PSxw_!=?&HIy2z`!AvmfN1IHq-d#^h5tHAh_yt?F5>erZMKQJeDJ2zzeek2 zKZ4QJoF#BtvQOZY&_Zd#WRoG$`w86|@mNn9)yM|whzna{)2%ID22mSONkS#Y^=7vr zDcx3P?ivcp%TE@RmMPt_2IpMKlkIxczlJ$U5R=W2jf=3JK&~9iu90UqIUyU}rfjT5 z8a`#C1e0kLpb-E(E31c18rDnf@04fT);rK0@d4+YW7*@l3_l7p4M~U)U!23pEk?`+ z6Sqi#vgcgsfZ@s+he@z&B`h>Seu)+$!@ipWV>5&e18%`RPA_P=C2KJEK~!e%z|9Vi zOj}q7$u)*aYZ8gDlOLls6IM#az6!PR{uXgfHo!7U+9^vu9B9fCybZDhTaI?Ij7wTd zaaa78aF~mu_t%=Sp98!Wtr#lH98HQx(J1ZM&s^sG1!Kdq@D%{L**HFt6LgJq}G0nrd==mh0D6Z>S#W**gw+;LGI0RyPTpxf<9M3(6_hMI`$@#A|4yL)gWGBnK=952h|`18KO5?&0_4Qps2XL z5qGdpdskeNqAlLU7g?!vic4U?S+;n7AT}e#H6P=Wbr9xGPV zv7I}@+p~X;6p1J}tCPQj{nx6#-p|e%_I~|=A_lsv)kX|zneOr6b#$;sN$w=XGt z@2&f5<`8C@Xz4rCtKl|d{$2PvlyZF{EAS;6oJ3C2-A*eT=NpxuQ zX&C4Tb5($6tG96SE$9iw>-E~5hsS*OU%$b;c2)g!h%xC_+!Lse>wvySA#j=gFGLKf`6m zV*n!VT8|>#ST6HK2h=9_;4*~sr}x%pra$X+Io@&R)b3MoG!-qEMH>r&JQ7<_Zb zcCAw0!E_-5VbC1ONnoo0CsVAOV2pJ~ zvdh>NxD||Db?({R@C5IL$BT$)oZm5U}USn%K4mJ0n2W0d^2>H#TEd zWU5H)!hZeO;A9Rd!~}#1D$b3&z5#n~r0U|B&1E5YwiHimYyGR2aV3H@A7rBe$zf`F zT?Ot{biBZ9?Wd@L*WQY^uxphN-m;rJ@cn9>Yiof3`G)IMMIxg>N_dH+LY!7(#}GFO zQkD#qEwm_%s{C9&bNCl{k1CXDVJ0dasGeJ^?0pNuJpj$pf zA}yUHeAVK@4iV#ALt3&!e$Lw@4as+Yjg)w%a+UJ53L?9{y4k_TBB zE7>QOd`JqMh$T1+4l~SwGZfkYUyG5c za`DE1K)f-)iR4b;BLPiYTnyF;dxZ$!Hz9q!iOa?GP)e0-_| zwM($qf*;lW%pS@9iKdGMFGW`xG7%2qfBPv3xWVX85iBqhaM?Oj6La*)0l?n| z6v6P>D$YfhP>!y|#&&0dUKaZpE9ox2x52e^!m-~dH&ECiesP&xF$Pq%;1+wdoT{Ayg!)ffg)7o_n;>%xI+d*&#SN$;jF+Byw2mXlf&g(m0@T`IZ zKwS!sW(2#GQp2!c;4%eG4b2mncILNp$`Bu*b7e;6OLRDxU{>v{1VSX7VgR4&x>pPz>8if1TcTgm>`ps!u;uET;4l!4q5w!cw!e!zfoQXTSvm;&id$p)s$N=@u9BXh^cMMLhDEPO5 ze2EEiuGo28fxKG0g)>U!SgaC*Ax6GO{KOvT1$h?Vm-=1O>ZDSm)B(e}v}RAJXUrG> z15$F33DXx-64>|@t5D=qugixcuhV8>kV{<~YPX_}HH~fPG~-79AMdB(F9X|E;Q!o2 z{HaVl(2jj5s&?86O+tbY2ZJb-j94uNd6{_fpF~v>hsu6}LwB=AfRLJ_HV|wLTv| zqA!zhqWFi6fukxFDf%KkCcF({mKrvsH_3)1mp0YppoAjdYPa%w@T}a#9UbM9;?nsf z3S)te)xD*GqJL`DG$x@jugZ79V=)kH!Zr%kE7>$8I%K{4U=H?{0teH{&?PUUxm9fL z&MUfOCC$!s*;9}d3-!qBwK&kek=H>Zwg%V1v@NHpAVrbC%#4~>1du?J$vKybMt_;D zEjyTp2PxmMRW-;~4q6==6gzfHj!HFO{#zE}Xlf~L7bu|9Gi?y(X9j3~e zYW~Ma*mEC;zk&Fb55R9IMKAZGwg|U&w^d@9l`WJPfZY-(8tKFafV2sk#rkJq6VPDb z)K-(Uw{{561j%~xmEwKS9pFX}w#zf)aiT{iKwc>mASEizEKo!^XX3LCW`Z#CK_e{KlKi&qgedB;$nZRyzW zEmEH&21*!5!wAHpiPnS5&8eIeehLr&-T0rc^sr^{tNl9hIptZ1<#l}Ps}dmlv`c0+ zLlHlbZ7Skw&s6qA?Yp2e8!DlTxkaj4G*KY;^IQfeeI>&7f!OF}!qG0Z#b4xBoMXSoDS@yT{}efvZIS#U(q)q}w4OBygBELa7c=cnqTND{(X@RrdyCuc~rv zDyADMf)q^qj&8-E#C|(-mYV!ZuL9YgstK!lqG=NVHcjWKU~{1M!T}dlfBw{WTk*jQ zd>I_^D(pX(-XmC0SE9Ytq$8GAv}NYkScHjeK&%vKM3^o$fbUzr;hKNLqV@Bx`5jl_ zq&4dW_(~$kDbdA4|Dev;nGlx9w}i@!`)bce*Ek*=Wl;&Q3u9b!4iu>lpjk+%iguW> z_aNp0rE87X?(e3jVd((iXaxW#zw;nk6^rps$nnS2GJ39;3QAd`NFr&TWKdVx)LpMQ zSXjfklE-Ay4Cd<~>91o|*7D zINE5Wj3zZ(nrF4N5qkvaMp4kX$050_gPFLnz+@)b$KP$2oGH0$6+8XWR!K|Ht0pb6 zlmpHq34ww&nU-X^NlQuxNm?pM%!kp{z8Kw>{(OR-qbgt4M_O6^WB}8OHW(wp~=!UjZ=bk z-Te6y2($TIvw6u+NqkjCzA6)azWZPC)sw*e3Q6&kO^WB<%x(KlOYw@*$sz?ZD|ETk zBjSP+(8tuT%avM!f<17iIoHJ=o1w0g=gjYFfDu7ACi@RBLXR%51_#iru!KmPEI=$? z(MI+h)+$F~&@7YBj%8`-$))31dTml^qSePynDBp*NIaeM;fN=jN!?)N?>K{22O4ur z1)-Kknrn;joqLp{Q*iTUIs?X8BD{*Wa>v@MtyqL_uD#k3Fb3*rt$NW9Ax}B>hs4a( z&dQ?~hcm>gC%W5SM$~Sn_!Z7%GXFleSofhw_?K{$!x24oi;eMCcly#=w&Qu zJgpF%b8}cHUK4jcxe!7Zb54NXp%;yDhR$1-s>eq-@SO_asFQ*DC91-}l$E!N9^<7w zORsg|H;|K&rc~Jj?6b7^I%r)^uNh!`nzRd${US|T_CC__bq4WyH5xJFJ)n1xIzRGa z8JO7a*%%UxrF)8vo71@qZn1H@!zaHYIBPr)}~Z%|4@!)pq*_Z1GiX z`umR8>x(m+F$4Hvh1*k{h7S4Dw)*NfYyLD;-Rv{!5AXI3s2i{)vl%zDiqm%c>bGS0 zalof+jZM5+?;FsZ*<4lsk~aSb)N!WmRxlY`)P2CUnfEVkTsjK(0Y|+F4)#|DIEQxw zAikig{>+j2t5GGVIBoMuFbvpIjI{#&07_s``}2M;@oO;7i*{S$gGB$AB8=^-dO zGmIGHHp9padO*Wl1;(11Nr{_g-%9A%Qi0M>6!*CKZ(1U6!n$mcQ4l8UYZDMu4em z2AF8g=+1o(JSZq-T|0KmvQ1PO9Z+*{eKi; z(`UfufWo=2xx$}!5cvo5-8ExK-`fuuVsw-xuUmKb$6vXz0XYOgYXW1bpx9=Zi4bUZr-9AYk$lTp`b0?efXH8t8G*<3cDFvQozc2DO1-3E9hWCdVNOa#|01{@B!k* zXV2yPL}TK!ls9tHJ74E^=Js?vx2aV_RN4Da{lQVI4JvtH`I|?Q#85H!w;S&&_v_=! z$|IlntW=E{peC9Ms#HC>_^Is5N^{%GlZ~BM{kCv`E`71>WI9wxRAIiU6CuX2~B>lsm+>*^V@^u&|T&V6QsT5ei4@&*T`4Xc^;zmK7tPY+nn zOVb(}`3~R#_m1aA(2k&{qp!OEBCW?wte*^Y@;7&l&O1u5Z0UV>k8kLpb=38;RNd$) zOV(X;)v;?q;Ew0ETFY#BsdU5=`nl!gL3dLLD@;~TpHoj0FM-cY8I8lr(q!`!e_OFT zlz41{)3N+OAd$c9V;$2_XY1-&IchhMJxM)H_A@eVmG? z(4Wi`0e$E{eGLtGpABd_fx#!Ja5R>>R4Mxthq)GM#9SAxT&%qP!uxOIsLubR3 zPdAC)F*1SfFDYH@`tOY`O{9q4$z>|wmA$KMo(g&0*}WF=x{G_A#OtmLW~yZL^!1-l zii9S6oMOx$$)A5Hw-I|5kzcV@@klc{5}meB42Asc{q4xcW{; zPa~MhyW}0$04vIONtpX;YyzYByjM+`p?SHbO+!QTCJ!!cIvfUeavsk-o+EjVOyn{e zybMZA9_-$Ru=#Lrn)u_}_WZ#76COn7oRB^+34(GWU&&_yJ%i*~^hw&W7a|F*3 zJVQLuBF8`o81+}AGlnqKYIwBCJFWConUH5ZUAbuz?6=Uzwkd03$ZyvAsMRpO)nbs% zQRu{!b`jc2RCKYO8MIURxjf67|MbGgJR{${@%UVxu}hEJ2NaYC5}e9tC&P6{+F4Xf zMui5TM8P6&XLk0sGr|wgRcJ*IH%|s7O@~m1ZG6qilDxNFaU)yTrYK;m2G|;|s*lSh;XS z8lnHHu#c&=1G=NjTX|x}T}~>N;mzf}c5jTl*H|IbDFgz;Ryq}q@g91rn>}o(;UEgN z7u{T9FY^H}7wv=^f9mR^yfyrC_@UP+FW^_iuY_L(Kgyp9K&;@Ge{PisZVPyogvKCs zw*}TkaE=w%!S@If283qIy=}OD76ZbU@6-g#IV?19yZzk!;&sa%mE(kKZGtJhlfn_g zSUSau*Iv@|2-|ekbsWX_{efnup~GN87yMzgrd7D6A-hS153=U0RHF&)Ldax9*j6p~ zR^BiyN99^lJxQyN@;mq9c{H-H+mgJFS2ZnqR&VboE+o;ggzvmRtdPVP6jFinjfN=t zjyLlBq8Wo8ePAQ=E^myCM*2%tA>X=5%?XjxX2hWo3(Xm$qR`Nj1NV>1f{D_18Ilp^ zoZtO^8aT9Yj8rKjRa(ifD$-n63#4qSVibKBHKu2+)9=+Dd@>F{=*??2L%d)AMt&gw z^B}c&_3ioC2PIGk=9r@b&wLmRjTE0)FpK!-(CgF;p7{D| zJUyJqR2}sgt>ZqiGc^MJT)0INFexYW69y&kA1kR63yzR`x2gr9-Dcij7TT?3F00RW zpZFxH9Ag9QQ_W2o#@gI~YD#I7>y=G9Ak=UKr^l!rB64{?R(_#|1Bf`M48yhsB05i9 zKGXgAO7PZ&mB8E^i&;t90-z-S98R+hLiSqT>U*Oui6!XYk$F*MeQ;=Y0t(GlVEG+t zI1pu%v@E#XcvddjB1b0obxs4y+w6#3O}o2823rYEzSXp`CZ)pD&dp5sK_HUN^4|p0 zUHVa`d-W&|oVM$mzP-r24;DSx-SX^T4}o|$qzJsD@X;y>%Z33ob|1b88MMy?1xTRp_`k_A%JceXls*7%aX5keqG zjk!dqxtu9HwbtPM4tX@8Yg6IB@#?4`fkpN$N`xK~+q?@CreIaJZ4FWvbaTwCz3;CA zm5m$ujo{F!WBw+R!cm;!?&_boBaU>+yfU6% z;_Bn9^kLRCHKo@3FQo@!UVI~L3}%*h1;lLtD7i81F#z{=miN#FS$HRyBG|jo>O*{k z+E{V#jD4KAKDp)I92oA26fX%ibkl+LdAE3v7lonfdyuqf;uRyc-jvr6_F@6~2*-up z3H>lw;yhH}-f>aC1se)^(_ryiwA2n(n)mszWrpsuMolkAELoVIk&uKbe z)6rU24tQ}XZ_(7#n&%J%CVA9d^=uPf4lqq!okc1Z1k`2&iV-XRSLhm@DAlEBCqyyp zjTT>;Uww3>3-dc6%;9-@I_mUGtVsr-P7t7YYovKI(J8a}P3Ynqf`>ZmOUnSkettAtb#3sPZ^-@ zQmz54()@JNXsiWTEEa52~vC`qwPKS`h66{g>A6$gnUbjW)nt3ukaNa;7 zX>TAEfv%@Ao;-I8a|fb}-6~?m@5vp=SKr|dvWW}L zA2OBKb4u}D%E{Ry72S0B=D4ief(@>i>VIQ5Ik|K2E;)=34*JOCnEvjMm_zJ%8wj0g# z6A$Vie)?dw&9))8dt_>MLLWItP<{*{QsE<~iE@iRqW}j9Q{hcd9iCIaJkQk=WZRB$ zQI;NB&UqM(l4;@jB3)N2Y#*^fInAe8CcjQCbUK2iIs|GchE565kt%NtE#X7E%ppL8 z34E>1P7*5u4LZfHq=C zv^NHcv-S#dsqh2zTh&a5P^7{;Rf^UIyRzBitBCbB8LFKbVq5~z#0#l#xvLvRK1Jwb zrKG|?A{y_&lQS{@qj0OsWf&5)S$*>^d&zHzn*$}5H?g$u9v`~y8?{fnq$B#pCR}Wz z3?%#+*kGt2gsP-fdRF<*TL0PNKU@80oBwR*X-5Hh+Fojo6_x2mIOs+NIa1-PKpvXZ z_y@q6u3W>ULOeYImW2V0`{W73H-9u!;Xe@c_p~LdMwvOUuUNwvSi?y1k@?jHHgg8y zy9{gZi;?Cr?|Qt={w}gQ8PmnBVqj8z}U3jEU_jCGhFH?WDBdXbX?Y3e(c{f?H@2SZ>!{C z>+07X7rJ(-IyW~ouOasjSP&&<*EjG$`kHzxy|^90897xtuNIc|U*u1x?CYo8t`sr4 z>69P&Dc30F&)F$?e#&&E%*jsq4@U%5&rzhTo|P_Yl^?yoqR&Z3FY}`d6n%8<7X>p8 zD@!~F|2&@ryf&!k5{kBWGitKR2yR1`JUr|CubpCD?!9(3#lX`q_ZHUxTOHE*6f-hO z_C$pcb7X{Q~6!QZxb134ccT_?%-hq{0$i( z?)yaz^~s3vFF&J->33hOP95e54}^k9o#WSVZVLa?qxck5^sc{ZSWd}4sgfq+ko?4B z5-#y#5=-ZEfA4mvLAEWKbj8-8#?|C0?^jf=U({rBm+ym&``8jT6Cv+rGs=WtIJSWB z$6h^Q?U_Q9?)FS?UE%XzjCjB?mKf)yi1oeWl{GmhpH=yRVe_&v7yi+ zW}DlZKJ0Hz7YAEX-wRJ*IXoV>Q5^Akn8tCQ+%tRUJO{%7N@rcCVo5$XUFr>fsdsMZ z(+86)27vv>4d3Zl5Xf&yk?IsV(j-e=4NQZ*@7yH_Cimj4#=R`4b_ zoMn?P-ntsa)a1OfNmX0d=sf90JaO)-&4KTUb6e9R`2I&Np3O-=f1KMemqPQhabh?0(?Q>5*s`6aEs2l5 z-OUbt3%zfC8KCccAJMut{2Ie|zINz49~4^Qz4wmLcNyqw#j5YjihHnXx8(cNrQYV3 zdLOe%Z3znJW6+n6LEqcH5Bg4}NTKg--jSUSeOGv;{@Z+SfA@yg%-h3{TzXmb%l}{ScRTPmjg}WOTtds=Ggv-a3aP#wEq!Y3^v_xNY3ec4 zpI10jOs5uf%&_b(`DO6&ZAQTRf>|BxyX}nfgrVs}-M0x#(Y-dNsx!p-FB&%(=1*oa zssSxp+2|tQATpBJDw@ld(cp^$o;_6w3dfmF;Yf0iKL0B@jfNC@_dU&&2uix%FX<+g zlWeNpz4VE5&j!4-hFjZxRrw~ozeANvODJP=}mPl zXrpf0GWGTnj;wut$zuE+qz8I~n?0W@qlG$`o-5=t``V4)?-^?Nr^?Q_BMUW1>MNII zp@!cpi8ZviqvoG|j}b7>8`)yNn|{g`l+i>&HF$g+e8P(h_C#WD&na)-cYOVegM{Em zCbt_JOI!h3*oC|-O5 z4yevfy{M>27Xlofwo&2z1l}dH=2a!*VLR(g>}>no3zq^$(-&~YN7Luu$e4lV91BUX zA|;e})#>STGEOY#4)?W^#*TUJ-vJDQ8%YXu#!u0-3KHjAi*W{~;h&>&a&WkCOS?o- zmk@|GKWI56+*A9463P?YzIt%k-^3JbALn87AzP%@N^b9ANe!?_S3vD7WJprsTgrvp zkAE~mFn3t5&fM>3QfBNFlt~BC?AtRVgCotikF@u!xa5s9SzVgvjJ)0dR%M_+=UckG z=Sw`)Wg;~e`P2@a$MQfBMUL<g634itYM{Z6fo*ds}iTKRWlfywPd5TuM81MBi!9t=DRyyF1RL!JY~91x8I6 z`OtDH-frXYgis-#F*)iPjXtuO67yG~87UE?If9V->%xOYGK(}G`dkHRSjGCdBV`st zSKE}5JgC%no_XsbS|_@y4{90EpJf;RSxCh|kB`39f96Zhs;j{ut3I7TMS521De(k8 z6MVSuy&x~A?!|TzTzeTpootz@mg?Q{7FgIAb0KkjN&4GoxO`6Tw)~>@d(yB<_OKi`Im(*nZ zd1i9B`=*iAxE$%_$M`g@pcpw+bNCpW2_1P>`?sAhs6bS64JrwQ`|3gQ97B(41Ovdv zJd2>I5Z?o{G-Tc@#>oLI|jfnzuSm(j<#Q5=^ z2mfMfPtE&&Q=a0y&5CWxqf>B0HfMaV8b|3ib06mLhkqq+!}wZ|Qzsv1+gty`kB72; z*x|=7$fQxSVi=`$6sPg`V;H41RzZ4{KA;5}rL%nhw%;~bCF|kq|7E;3hS6@|d^9}m zF*kNqY48MuP5twV&UR$Ns80PtCN%wXquby{cNfttg9X-se<8b0&npKqhk{tMdtZ&9 z9a<~6IBGmyh39T7(YebJgS0DB16d&!{$7^57>imv;Eu~h#h#`xvU9*=_4TJGW{sT2 z(k;X}ssx$Ui;m{z5fsf;v@OIXnnvW-LfnG}2D%$+xRIBrJHaoS?fp8t>=u=6SfRK6 zSaArA;P@*ih!yugkq^)6U6f z<@7D~6+N}opq=3KBOw-Z%tl@iS2PueaOt_WgY6?s^()qP4&yfH(}XBZ{gMLVb)}Zg zU19l+c_}n___1%5XkkM@!p_rNdLTPLA>X^VU5h3NOf@Va<2|0i;^@Y!R%On31Dlx_ zH*@m{HiMGAiCLeHr;d^#8AJ zwhZ%Ui<@F00wD)wvwH;O+K-Z8ow4K%zMUhgF-lNP=;Wa>hm?7hyV>?l%|H( z^7N`^gKLj}6mku{-6B=(ToN7ErEDUH_7oMgmt4+ADgjq^&c8|*%woo0Ub_5(N8HU& zJ7$+6`l~P#K=o+n3m7=j3&U;Ub(?a!A-Ub8(uF!>j(o55QZbS*OTlo6%xR#und`ec zh1Ee>K^Z|ELCb?W>emgsEl?}H^BxiEisYSk6fPo|%jGnzZxd{YoPHNe=ORqe zQ>itfj>&n@T!{>Fp>(PIbo59?!y8K^L)_O=?W#EGDLT*ruT4=Hc9=sahzN33Kcl+a59?e z6GIS@CR9{Kuego0Hp2sMq;+0lDWa3#1zfS1z)EkDqyXtPFgfaJ%;LRA5Opk*`Ac%t zqYB?mm`sxkh?tL+xOWo~qQ9e#QSzM0BwKcfJ$D}ZC5m>qN?ulZ{`ni}t0c}lK9W3t z{6b`Ty}$%H-bJ1M&b@qpF7V*w&BWK6r{RtAIq&bVDY){y3<21DO{B*Tq=K&U+bEt7 z*QA$>B3m+MJkE$W*XVA{hY^6>r)I|2dKIq@%XvahLn(#xDYHVFx%M_Jw`RN0{NW3J zd=?&vyK6WGa>OR}eP)XRC8d<_-F6=_b{q>fe^5(6!#ZsJ&aHBHonXd~eua z@=%C<7HYIv0nDwb5rCdkw=v|%r6!x-dSyE;)`R-_Tk^0mGw zkGnwea3k)t@Hyj7%ZGKAuT6WOTI=0)nc)r{k_`XYYeDbiG(12}#a%%8$MOn7cXiXq z3ZA-YJ!Vt=laC|T-X0?ddY#%3a%&g>D%cSr)kis7`pVQZ+(FK zTgn<1l;zW%oik-^zCl@cd{#eGEyE=Q;qm5HR3;H$nz9=p~z5RcO_pDhD z=TsjOm8a2TFiANkzj{}Mp=)htfa6YoWAIRS7U(1OrC6p6r>M1F*=q)T0Ds*>M*hH( zT6;@O#la2YQAhUTW3t4fKfv=%!yzJjzfnID@%=U1593`rv0k9UY%jtuEqXCsC6_j) zXTAmYD475Mx`~{TGb?ZyFysz%fY`8&WG8YliIs#>%97V8rmVSPn`)lk_0vUij%?z7 zshfU&y2ofNid@$ZboafU7!Swr5x1K(SG^!~yWQ>i zH@s;J`lN$9 zqUlcFAhDM><`ALz4dUm#M2Wpe$mCsgV1N>%Xou~bxaa2Ac17kosw;?0pr0LIXhc_f zbrz2hg$sCUT7g38f&vXxGJFy1C89*{qG`T5whVtGzCptDKxYakC@*kTsCAwfLyr20 z>v&G-rU|7BKvos>BNe3Roiin66vHJ=AZX@ZAk*lYt(J@>w@^Wvb~C-1Qir+Mf8OuQ zFABZCxmODB4kAzR7Wt72yhr@EmEHsX+dA(~-lEO>MVm3gZoV`hr;R{l77$6{W11VE zYSn6Ep_rV*xPvQn?X`-MOJ=a6{XwDE%4qXYGww=`oD^+73JpA_y%Yrk)fD)<)XB-#k$hJ2<_OCo{eW&?5_)iWJMe?Eg(nD+fiIM1Fo^&(4(+8+6EEfLIE-r zKE4RF@_OQFv#_*&b|d-)Ns9yh!n2EfnugGTDTgo$P6ho!H~Ix0Jv>m<6p1yl<`2Tk zAlAGamIWB`ohO@VmnOSSuq?#0)_=D6&sLsg$laA5Z~l|hH2f)}Y54tfK+YM+NxD6g zY!cHq>2qJxprWK{P*GYC^?pC^dA#$glG*e2(=_OF?@xuo2q#v|SHv&5N&{@c1eTDo zt$gThi4@uwO|f@$(hW&2SX=fMd}!4If|711+N2v*39>?|8m8ns(S}npbZ{Ms=az3=Go=d8e7B=77*b z@aZ+|Vv@+5b`u_m{#0d;d8KMB+WY@i&$bGBX7wz%$0tfv-b1{4fB3VoeIrBGqJi$* z*|omNZ@q7mo`tj}>cB-s|F1eQb+A7eR?pf$_#tatA0dec96mVt24*Tj<5(BQ9OERD z$`ME=_3k8-Ht(FI%h2Gwp-wWX9NKy+(u9ydfk@%Ua5v72Fg+fhr^mr}FC58rk7;`Y zUyxYKH(mw%zO;C`fEYK8)ddOMw0G0|RoLcl1)WefP2mTjd?uaz6EA+DEu?v0vd_yR z42UL?!uOX;o`$x_ZNZV`$({si_n)hA^d$kbK^5jj9z!<%}&j;DI9aJtvZ#u?v?9?X#hUrb+^ z)`Q(Yf+VaWo^K!})pPKn?8vfb((KVW?H%Ppa9P-tpB4$);v}X4BnSdr0zOayW zs{TdOOlP#D>-;>*n+orvJi;&g)Yp>QdsbXpOZtKTt;$G+f6TX3KFqINk)pDdRIZWW z0ZNf0{FY9l(lM3mjeSL0(pTYVIM1^i38p3eF=s}+uU{TYK4_kOHha8E^d@ykG`oq3 z>7*pJG*qH`BCa#dBU@4zM%J(}O}BVN1AqI-?=@oH*C&ZPWd$(w=-SndibIyIcadhav$XD; zZWonD*sUipI8(r<0Of3|%i!N=8b4KEo(o=waWc zf9m?-`ch#_V7Z{@{R*e`rAC(r{Z{hwUJ_iZecc$X&huOC$H045Y1DGmbOJLa(E>O8 zBUsJj1Kp_=`^E2kTr<#oKuGG-cc?~^==A~P$D{$1R?Hm>OeIP=c|i4nuRc8l6wl}n z{xAACx+pN!(o8*@^h|3}tGvJe+H?!s1+en_Z^-gMR5&RnB6WwGSc+CmiT5Fj@PQ}R zkl~MLVgb#}#Hs=ez0|A)W-BSLP=7fdu@1gnbR|>r&6$$LfDW|I6srj7zb5mwzmq8G zU&^9`AQRH)y~1i~_M&Nh*m6i8wxn75usmNM_B*9Wa;lxj$?z13<7C1p=C;2YY&rGT zuR{%XzLk}w2I~PrUIBnJ8l{kCi^tQ=7K;%y43cTPf6gC8e0k|M!-4ie>G`6M)NV~Kr(d#|V7{~}StIPTlN=FKx1W8<^h=`yT4A&1X(pqF zMmbdEbe@t|x)|w~Dv9y+O9N-J5q48H&@XAmX7o!6$uT%2E2CesS$fVHHWC~~Bux{$ zTVyT&64Nh@at*!RB1JNlD8{RoCq9uv(a@APW63{Qd^|Me-3Vzbl_&STXz?4>6U>MI znG@1JoZpa7@IWK)XAO!?qA~D`rKpeax-;~W6Qap!LrYDPgF5MW9V<(4P0kD64Nm|x zXv8?AOf}nVtjyKXjim%V^*iyR{4#|aceCyx_z$l=nI-*S*uP7>w7H`FUg`tuX?-d; zbj>>8sXJXu7qSA7XUI+``b}Ks#at6Z4RXsIo$xfrd=U&F>j2D8T2~{Ct-7o&lOUR{ zQ4HVqb~bhMnwyLT+4Vr4|Uw z`YuP1Bqf?okM*5zf$9eFf2!M-W$)*^L(-k%>dT*kzwhrxSXqkvEEV1qW$7QaZ~Cj_ zILf_CkU`yr1^TNBy2}-08nDNXA)^3sjy zzy9P)mNwLX!434&e~qKEjqAU};I6O#TH#f2cX6QqT7mBAW79q9?Y$qQ|61YQI|l^F z(tq8W=k#A&3S8f<|9bw1=)YF@!gpwCp#OTqo%`YMz!$ATT` zzt$qAU5j)$l%@Y#>+8RU_1Ayxyq^9G7h~~Z`W*e&+ARIo`Z}wNk55yhQ)MLqHOlDs zeVx_D%j&PQ+A~wu=6+deeZF*7w8ht1)#DOoV4c+pr?Yx5&{=){P!_l{I;$04i&HiO ztXFTc361t@nZ5o0qqFMSNd)WN$AF2iv$~%5Z`WCAe&qZ9-I*lli1Axq_d&ae91h+; zESdB`D@ev=YRNiLn7+HUMEJTbc8$H35w*>k+w@a1oJDYBN`?q&kc0UuuXeGD&j~f^ zNJ>~WaJs&I1$cX`QrW(Ra@zeZ(}l)E|7eah5QheWAPu9rAsOZN-APGRtZ6YuHipz zq$Tckev6@p%6%|+E%EMhuYSXC4nnQ!Mx%wKK6`nrG$(d?ubmWVd|@>4i?p^9H;Vmy z>}mW9vR$3S5EUR%myv)m(L;{7*C&#VJ**)(*^^(Z2x>#SPzO_g&i^!Nzd9+B{EhZ8 zrgJ)uX6Oz+UjZv-=Q8&jEO7`u4Vzw+|=?^ zaN`aaSypeKk*{%G%kbF5Zmw&2k?UHb#od>DXlv0e;&P*m^8H|fcd54V>{)b&MRgPz zvDS?0pW{2MsCGduIdiI~O>DQ*?ak%j))ABBNPqB}6mC}%M-)Yy<9vPu>XJBNfPCQ? z0r{CoA}N??T^*0{dsDeiN?uaV9$aFC_Sg}^*)Et@J z4Bc{ovCJ)zt}ft~N@VzlYu4u<*z=GhZ7BG`Eqy-<@QzGe7Y#l94GdPaxaSgh>*WK0JoiL_Jdzjf z>QvhW&x51Ij-jdM9DOMu=C0T^sgk@{;&jwZXURFiS=#wuK1l)~bZa`FhF#AIecRB$ zg&xD?jm7lC_isUlGW^QO%h-mF8=w9?Gq8DBEO{;pE{c{MP=YU=k(u2g%i(2S)y_;a zS7*8^`4^;7_$Fe1SrKg>JU)s}6OvQSwGtfjn}C%fJlhmATl$giyToNmz8`5uOPl(U zU|WJ29I5LN3T7bWJ#c{_V-*xx_nS{Ia-9}TerOc}lt%XTEkQ}l6Kn=D-qS7i1!6Vc z4V!1iyZ`iif*dWSwV3Jwot)~Q#+%PZ$2g1TQRuIf2uMN=n<3nCy*yl94>f)*BEdZm zcp1xIQx@vDbYyA$H^je_iLc1(TS3T1s4<@*#Q9%yV}S^Lb7LWo(giWlg?lZn{et!NnB# zLTX;L#ws2XzQ@ock~|v448i>r$zjX4;F1e9uCn6(5fyN3xK>wp z4=I*cOw$&%D_`!%aqj8ay)^XHW~p!vd>k&L%~9f~HLGI@`#Q+#ilkX8Lq$eIQDR|cJ z$;SBZTGDPe;_ z8QHJBQ&j3nt_cIcw|{$gSLQu8+TIcU;5$m0b29B+6SVhXy{y+>CHBo$!UpXf+ONG! zqm=qbBpZNifc6gQ2jAZ*^DLKn0Qe5?*WOvmTw$3FzBcIv-;~gFz4j`x?~MWRcjN|0 zKT#!r#u2iOBfXEuKGJWl51z3P2I}Onex3X@Lgu+H^MIW^EDPy-l=&ByxrXhrBVEOv z)v!1H5ni+_#^q4nXZzXK-_emx8(4emI}5mLJJfi)sky|2qXn+ zuf@F!O}qy8-lO-K?!8U#=eu{+=vDHr^{Ypv9_t6z5WxRze)iIK86ooZQb{U&4FRol zH?0%H17j6%v_XdR{BK?MEBsKtYW(OLy9k)&pn{;WKb5>d$*1!uU2p`ILv_xbV)ZGH zm$-HS_U9jxO*r<)IG-P>636)r!`Q?)A9tDXz`W0`bEzQUeXi6_ZOFE_D{7d}`B>F0 zCw*_ur!ll1=W`_yY0l>~m->I;e57Gbk3bH^iSs#AkzGr*ok;8V)0tl0%nj24WC~Wz z3I-6^SGq@)d(^r|i+i-XN1J=J^Y|A2hbpr8pHZ&Dd-bWmObfI4zSoA;t?>c7w1xk% zvcUiFvEzSS_#MKIr4io9F7dGfLzKq~d1!5t;L|b4=QV;MQMM--yW;SydW_GxN^tSQ z3E0HdlT@&JOD38M<4aAdLT`r;GW>+Fo`&Wq-OsimKcP(C6R>waw^ij@RI5iTf-VU@il3b*B_!T{3iN_*5qV?a1 zC;BFqyvJfu@xY*zkP?@M=d0?%&{LsQxNbB8#9?xQQv8)PJoc@h(J#=i$}jLm)F_+Q zjIpg)crvG)y-PW&BKmu;m?PJ$th{+a-d&aV2tV&H2h2Mx$U8!Lf8^&qYQVhdHoV8# z8t*?y4%CJnGkLvvS3wl(pDBnHpO5#!#;$K(c(x{X5B9> zDQ}7L)<|++PK$rTlIBg%0r6Ph4&i+5fQsEt**~!U+40-p9YUL628>H8V_%Iff>%o^+Lpx?ulYM-DI9#{DwpAuJbtzX};iiP)=*2ET3(obU)okx1KRVy5 z@S}x1-efr5=#R~QmFCIiuR>R#GW>?{!4@@b2G6BQ?64eY2;SN9L90P zfy3{!+}ZaF5NV0DR;iE2@97{^q`-L~9z2-Hc220_QRyX4)*bVdtCNqP)T;^F;EceN)FBTj9@QYDZFI{%KFugd2|J8lLcN5 zBdnRYzPLJ_~&E#t|j2>{mkF!Wtnhre~fd$&GENBB-`3`b6BS8hCux{ES~rzp73G`j%nF- zK?SkI*;l6pw3p$dDw5Q3iuzf%X=&0cAgbV1|0ibM;H$RW`PTP_XREfNaM5Hg@{0Uo ziX`iexN?dt$;v5;z%rNk1#J`9XX!rb+xnH4_RG2MU`+R5{u3*`AU`8^7{Gs@`^;qz|i z3K311Uo$M4xUHASXt6!2x8>YBaD365Q=sl?{w+yun$y>7BTnd1LO!=vzMKiLDxP@S zCJz1^D}FChl87${$5(Je2(q?*y|3k4S{&#!>IiPE_h*xaimQLaYfo0g^FUEXo!Yt4 zAPg9EWN^8Ekj8uRlAztgDZ(0J4Ju#7-5UC>;77yprGGqHufy{hOzubC&JE^!-j$bX zUg$*8FsUVyzb07sv=Ba{j>z2p;?9Sf{>R-{j9_(5M6T$~gRVSw21=c@3gMUE^n=0` z1UI7DsU!({LL0O9k^Qhh7%(n_0lNP=(C1{vpYCA&RRD357|nY?Cx(1w&fbw?lTlXV zU3vdl^JS3S!!n8m>24y;=z`JbG#{PUw-_)i6hrO3G}rhO6QbEVzM%%;r0Wo? zFP1cVtgs9Nn4>Y$)N`lJm^Jn(ayavvBlY+%W4#1G{g)>2SriLFKNy&Zlw><9mpSYk>d50Gk?*YiXhhL~E~y8uo(GkJK&g z4raGLnJ-zv2l}Ain27m zj_iV+b)mK6K0bR&fa$xGH~Z9`X$f&~r=8a6sTEnzUY=M^xAD-Qe1t6UpY1#sR`8$q z?^~G!nbSK#2KAKU;UZmmGKTLZ4gos*8~m;F%;T3XzyIkSeeQkuKPH~vM%$^;fJtDA z8dAcubiovrhEJewusRwKMf+nry+(>o>nvEyNuW_*l&Q`3y!Jp$Q{__z~IGXG0*U$>0*T6#0zJQ6> zYQh~-_lbJ>XKX}WQ{g*^3C%-oZs}LMbUwF%l8$nB(`_7Sx((z;?lixt$|kRWlpj~d zp@uN1X!f7L#8t5kg=&}oB^3%%F7_*Eh;}FM5KF_Q*1!f!0iKoqQyh%Kwf?ikf42J1 zHvieqGlJ2756{3IzoOE${Yn%|!3v_8XJ4!G>Mb%c)5y>l0XfrcG1yUNjunJOqroyL zVf&y!MRU&sK@B4{xQGv_!ABnrs?bJ+M$ZC0WfI(@>`L`6s(#%E2g zL>W2&Z*t}MN}s2Ye_^wYoC5om@xLK!(FzeQh9CVb4fSq4J8PwCaMiI|6$(Ao5?PF@ zeX7sJ#IXKT%e~ikw53RGTXT^$*Khp4f{^R^FX(v|s0S15`xqso+R#fusqp9^hYRi) z1PfKo9F?|uxZ$69w~r=%luf-}S=*0#{hi=OsMq64iY5-JJv0YLIvTzDE|h_esOSu( zyLbwc-#cVj4&4-lm{$o@hJ-{-BF$4+i)Xv{#L=vGj#3fNjC6-%$PbZgF#i<9W0Qs% zroK%aU7+|LS5ATA?LBdHq2gD%_(H|od*Wyo5l5*ghxHA3xpLsm9n~V91#h-dFz9k; z&LHE27JTM|+(_47-_X$!*J!U1yFq5Wqrug?x`}H#Zq_6>nOUV~j6}t&HOcqN5lPTi ztuk;LJKboUh87)h8r(5wPGvLveSODR?+~l=NLV18Q0!ip{slR(CWT8{X;8eam@37uHT4h~&&8uiAK7r4@6 zp(z*KX%o48aXfj>;3p&*izI6n$BN&+bkAtwjY$3Tp-Ay-mm>FgZS}|nTPeACWh8VM z#Nfz5-p&_`zOR8HT^wsZ8~$$Eimss-%sBV7Nb)Egn|12y+2x#OIZT)0SUqJDvBP>u z`G-7LoiF0TUYJf&6iEs;Io@hKL`nKn5^wylCSOwj+_I*=lX%e3XDv2EH13BG?ab1REQl1;Ivu&DXYG>KAceHqFMfC)20b<2p;5VO!^uG^GjN5@fqM7pt^<6B)rBy*|tPQGlT&5x4 zQGYVo#5j6$WnEOyeyKW7a2@LkUJTl;u#L}RZrV$fFBh-7YsQcX5q23Al>JU*;!5mk z-c0Xz0F#|bFJJ7snT+Ro`({}%okKtKt1JC}R&TXoACKQ&cVhZr5*`$JGdRKSZ$6^M z%R>zZ(@L}X!FLK5-NqAKBD})eo(~0_IA_FaqoNa@VG7~4>}>LAtQ}%d zO=4SWs`;(qD=as_jTiUELx(->rq(KHQ1Fw|%+}Gxy8-;%p;I!x%8Omdx`20=kL9xX zqM!>j|4aw(Sn^D@e-(qXHpHyu&3bTU+J#`Oxcjmn^EDD#*9Gv5_Am23Nu=BF%<3Bl zS^MK?$F1FWr$HX|G2(^}LmY=CKoqr$mH*M-$oZiGKFm?r~~KQ(_=gnXv5!s1nKS zQ$dyLtu{oH&$e-BvL|%mTgqNewk(*$Bi@IG# z_V<7C;CQ=ssP2PG%{%UYo)y?Diiy*`YS5o5cCzvjUa4!`eEq{Q_}~Pfw`e_=v~&mj zVH0-Bi9Z0@APwSL>D|0(`eYT-J$GIa5!udi$^__5qG!tW*##=#7 zR99^(qJEL8P@h~l(b%r&Wcp;`=Rg@F^-x2C_|V4vmsel7p1;ri%s*jK;C*%VQQq(- zyEt>mtyen}b9YOon)tu7bun6!wMJN3BwCvpTM>jGKhPr@b>9n+CbCc z6*Lky9ros9?`zmI4uhPro90BkEz(uKKwEd=lGs6jGVUEPnDCl(MGo&*eC$+2YrI8g z;qTy4SI`a{E2!3c_1~_b+Dt)35Et)yzo1&Lnu7d;6Fo@iddaAH0%&C zQ!5y{b$To})kc-qnTTIpgeOaov=hmJcb<$Dy6LHMTvo@_DX{ zOwbD8ar?rb}q&nBQ>hl@O>ue&$6NR-b-m^^YT5I}r-akK`>l z>kQG_c6aqesNpReXqt4&X~u<3ooT{u(4Jed###Xzc87L<6Pdi9{Nh>e-aQkE&hi&-IgXv|67}xt|jTlr>AR$ z*abhH>6$&4vB&?vP1l9M5@x)CwusR9^R*ssV`KAmP@X?uPv_G}^4sU@b-n*D<|{Ov zWw9oEw(fn>_nEC#UUW_{TaP|f2sE_{o}r1p8-G(3OC)OvIB%5wlibWLqTUjI5$0{E z@mFB7h;H-L5;u7xo#jP2ef2_c#Ov6n8WkJL>~7;;pnRS_d*xK*PuxsvVosAzJ0#5$ z;jqM5ZZgN#5ofyXr$R(5>{`<%d5APn^%uP3VXY5 zW^KE6pjEL0P9HmiGf<;L`6uS%>ai^}dQd1ojzBlc`KqY|r?sy})T$emCZ?JZ9Fh*vf7UFYx@VTev!JDS9X?HFl7E2AD?VEces!Z zCv(dt0PF&N0`OgAL&q_$;5bJAQ^iIp?m&0i66|r>t$#kHc!U59WWC0JAg*}EYBsG} z3U+4>_O;2((?+_;`!y0@XmkWBUjmgcV#JHGsC-ctl`m*9`EwU#^`r0ht$l|JNB`R& zMBo2uqy#sQSDxtbMDr_~#8+h@$-pH3IcAXe0Hz%x@g?4||8pe1#7O*9Sxp2?%?~E= zEDUH!vPt~*!3bxKRYtD5&+814IAd>nXiQ)1d(7>8#?4!GgHakg$HLr}pj;El!jKtB z?2XI}n88hNV_qRPo+kHbB#*rJGP%9Z@}8VvcK3Mqpk8NodyH9c{D8B^&e)|ils^@h zefiTgw|lrmsT_-hcrPz;P46D2ckk-0w2KR-caJu44-R)Tya)gIZsgQz8##Z5t7ln* zH}IU3?zJF$hCl6ThW`W87tQc{AD`@V#kfqP7Ao$37iS0mpTx-1yDcl?Pm1`Ji_pf7rg(&W@etf> z`n^S-pUCZ`1AYN+dj;mMSEN4T)WGg{Hg)2yvwg*m^bJx*ZMB+ zy{XpvVOH}$*a)rP`T?5#SBkf0KO}G^%ZIV07-y22VXzSQu?Zc+GjOVn{ZPVaO}2dx z#9*zH)MOd`XfHO!_A800DVx{6W9Ij=CiM^S%CY+2n%INTpg%Hb^-w&9pC*Kk55u2u zUXDfVWf8l2ZxLbW9iJlHz6Q&fth4ZJeP(bn`fXu#Ib$^SKCcx)4H&G@s3I)vy>UcH zegGgzu2ZtH66>9puKFOATF}CYTJO)uXCf1N!L}{W^Rcb5b_)sG*KtuI-qpoaCzGwC z$$Qwv($*v%Y9p|ohDqXaG)&`7F87#nL(LcP5T|BgBi42M$~|WCh$d?S-P0mV zE&lJNMci2Z9qOlhh3=e+Z}y9PEUU<_VR6$#9gQC988}aG%CGWrItTC16;GuLJVTab z0mnf9rT9E9?D01TyZZ~dEOW*pae*Ztg9gdqo> zYqCzJcz6QGP_-&YQsIMCs5T7|GS5wgzk1!mmNr&tr3;upoa>7-X%=LF6Q5a&96GvCG%9&plnF^Qyw;&Hvbs)1%;v|{l{jE<69 zz~(!O$Yp@VSUNc5%^@Xywr++td^Ci7B`Bq(+Lz>4{kuy2TX4v_-uloX>$n3FpT{+u zf$KBzaFh!FV488|I-S=sF}(I87caS zKyn&lSRd{eQA|rDML(k4fEsJw4}&;)MyB6IK8_>>EAQ1R8!m|%6R#WH8uI*EYHy>G zsX`AsSu+w`P(PF5UBW^-JK*nal^jYeGK=t77dsPUDX&CZDQs1xZeih597WA#)~3R9 zz)L&e5x$TGi*mH2dN0oQ%eke}>P_krAg}3`e&yK3KpaMf;N$Pn;r9(Cz`%Ud-qK_k zd62~;g^@yOf0rrgk~-9dWHQgbf6(E6(v^0vOKPzu-smT(zEn8jlB(zg=a~H@H98gU zwV_CMBl1gyPxg~sH>bL<#v*o3g-iS-0U{MX&?T)yCYuWH>?g@x0(jvH^sM6Hev(k% z`|vdbMY2hOihmG@B}TQ7{qafw5X^0;L@%Z=09$j2zKZ6g!t2N<3!(<$c@VkOBCBVl zBmQU+HD@qQH3+fdb=5eBbpukrNJP|lW=l&nRuPugcra#R=^`$p2+e-go(jKZSQylI z1!?eLD^0xZH*8A3{D0|}|47mtk!)AhoJ!{LIGt5>_ai^Y4vY_&(?Mi`0edGRK~(pt z(AN=yq)`yf81F+&WYToNryxUK8JdOm;lp6Js78~{+vmCf$My49Dlz#DCd6;^KGtd*}oirt~i9Ppd7%Nh2suePe_-4>o6<7*5G}BgI_r8 zDiun3H9@7IM)WMVfP7x5u0oV0T}?WCedzD1O2SKjXwHAt4W&!|m4KQ|I&{9+)nf~q z5&e9(SMk66Vg+A1@96N_MWB;LL9`QFohz{kbyOerVGZb|!L?O!hCWkqsqg~#Y9uBV z{v{#mc9Y^$2NGL1QsG1WkORwG0t@>?o5aifBnQb(m*l4YU;HFD9slH#+;qIvPjd4+ z$JOlS_Z5DU8{!)Gm0JZX{Uk>)PI5_(V3hkwZb5w*pwhzWMm=`-lWcw;{E?gA4u{9M zB3cd0H}Ug1od3$TsnACJJp!S5je=oAJ4QdR_o--X0nJ-^GGcIVJVB4d9o_a=q-lg; zIn>a_RLb~EV7{1Z1UFWVCCcTg?s9NLOh-H6lbQmHh$}7aNHl@6kAuvA$6s6s+DxruZeY)S(dRqtyei&P>09 zYK~MjbxUn$N;euOOVysZLpeEUuX6BpSd$MdqRig3JT;b>oF6MTvQ<+#@iW<+92rae z*T1bemYC?1Js8TFlp#`QWH9v9$Rhj`LyQvZINd*Tzf^b!0>xc5+eA{GDm7ZX=90%^ z#b1URM2h>AVX^56S9TS}-V_m%6@^j2ETqMD(b5;O;%6`08M~dD!4un8@1&cF z#4ph&AiAHdIZ%raiA?BPJuK4I4%FC;VuN(cQUK87m6zMt1Bzna+^%tr1~JB$vE(V^ zt8k>1A5C20wv2(aVcD|U19G^OitBv(b{sk^XX!FW1VW=r^UeIx_KPsf+|g}=BKyU> z^jRcb#U;T+$E|)h35`#s>5`sUnj2?RCc@ITgt#mG30he;+ zgc@e65W0yVrhi>GSzQfQSM|w3J+HamVTY|dh~ptw&o5j(DX*M*=vL~9dUQv9NdqNZ z0R8^cwwx@;)$kj-kMn+`i0SEwl-Eqe>LqH+p64(r`nTqwP1WFm?<3F$0s4u?LHRkDcSe&(7kF>39h&pm(!tgF^>2SkoMn7m8!Fv?M&#EnGUeUl zc3D91x4bbfjLoHt%{Q1kCh)3aHhhsp2#k0i4v+h|{TA+LE$jj#z6mg5y|LNfwQ!s_ zS`_T@)x%xmN@(mj?_e5e12=xXYWMN!`}(!-k*C^Uec8e1S;LHewXX-CgIw@(>YvZ+yE6+v z5?g}~$I8A(M|T1EFBO3efFH5SJ5LcD32ZxwWcHjdhG%&zyxjM>~D9@|-6^Ij4>s;7PXc-`@( z!6M~d=IR;i#;c(31{*IoJg<*oG+xdcp63*CPS)@&Bw}^DhR5b}|MtuoB7EJ&+7oKn zk{xN#CZB$;H(NG!Z5rpjJ=yv`M$@GJ`4StS8)|8ox9R^hL?s%H#laB0bBGNQ4o~Xe zUKI>ck0Nb|I(f?;qJ7i+-1_kQV6fVIX^+FF8umWl-rf_x@bPJ)Ywu>Rp{;_TCip4; z^(Xk`^_s9ZO(-MNdgJ#Ma|rsk+|@tyJL`Y#bHDyaARypM$kpE-)c?kR{Q8$3+#duR ztDn=<^xv=lHnsuZ(f^?SiLQP(k#6V>>OUo@fAaUMe~#7v*^93Kh2L5KYwLpkmsk63{x*&dG5#;O z{vYw3^}n_@=s#45@!!+#+so2#p-{C=SYwLdh4&%f2m*p>l()X>+gE=^~9k5 ziK2qZ8?<*Zz@HgZe1uipCDnjFaWJPSPh||*)Y@C;;h#rd&&oa(iyEzeuLeiEk)27$9 zna!p6k1ZX`);XtX5d3CAq`9<+m`N5>T0m3@Q58g;;G#;1sw4{0Zs|-HRT&yxS1TAc z*O>yYt8OkKOS5>ATU~OS9$j?{(#eV^xt#}J_vq18CrPOLTJa?J@*sJQ9$j_o6v?m2 z;z_n?&|H_VLFuZ~`7xKQc#;bg-&|MZk|(8;6;E=BOP0)muTMxPE1u*^mt5tNB@%Om zTYRF!@#mTINp&4c@QM!*pO#P=-d^s#K<_)b_Z+>Caqqo!#T((?+x4EBWZ$;x{lD(L zR`2iGJAMq_bT1{|-`z`rw@feMF?AqnF@en1!rs<9ANAn)1^{+$oGru#o0U9R{vo zW5`jEyl4WT6EsAVh{Eoo;lG*jA#LP{WyKJ=^r}U^p63KHXQ+BiAlFa zQNFX)Qz**0Erg9-?tO-pe`x-Y-B?=AncO^hugRT*ccpVUO841XuAAf_9Ws+j@AlQ~ z%kvrD@)l&JGm&wJ@=GuiN{T1%5sG6E(T+I6)gHeeg@4C6p&2Xl&WVJsYG+$%)=MqXvEP2(ajx=Fc9a&HN63b?vA{spSj0nr_;Z>hSn}FwX*r$9ynvh}UyPij znffFqx5ajvXL2_VVV@K-Nu;tAMqmADu&aK2-%?(Y^H`ra#B>5T zC~|D~ZdW;X6X^IHmA81CEjFF&1uYzg3pKQA^%i9pVm)%Ki9ir9Bu}8DUi~QMS#puy zk(E^mI0!#n*kvJTS@AqIU7*SRBnpp-2M~Nyz0-+A#QCQB#vLcD^xoQ6E6}2DfxCGY zA`-M*doJpSe?KO;EHNd^P4<-FM%gV$YKbP}oZ)D+Mxj}(@b1`E$YJMc5bPNMIH!yB z;}(0bUu2_7OD!Br*noTczc-YY;Gag*JjkmnRj(h3$SGN~65anA>6&>Xn$P1avHbR8 zxqWi~8FubJ2hqoD_n%43)J@%qwO@sIEMEIIY}xprwvDvx4tG^IO?hOZrt1YQ(Yj}B zwkB^`ZzwFRlXZ=PzNXVI(S^YY!ZiQv{7J0CKltat`8wyGD1c$5tdL&Cge{h+%8TQb zVMa6&=LX^OqUcUtkzD5amL0L=;EqUQllTEuc{ST{gso;2=|FFjC_2{FVJRQ&ZG_T> z$`b-fiLIikc)rpi&Hm%CylC>Md~fAGc{z_4fd+DIzdx#X?HW_zt)DQ>fJ47W$%Dat zE$1cY%2pn`A;$f->XVsaHGR~@vG`bm6o1QVX-h;pv z9o($iiS6;mR81sJccwMjbd3#NZ@TIdsDY;IPU-l*EqQfRsD#o{!dB?vqpyffJn>>& zghu|1l*QYROKkyCV?-GbXjELyHW}LC=W1CoG^g(jDAGc)3f_mFiw{|z2^-GmERCM+&mru!PnjmM=JTZ)$I3fi{89DRaZGEY&KYbxv7b*9 zSG^50o0tV;{KF0L=2>*6rVxkPg~F{p1^d##-N!gE1r%^2qF86>?Z;MtEb*cMEZ<{R zpHA(3!h|*eMfij}iX6-mw+Lo|lbN64E=UI9L81X!hof{^wj_Fg0XcCE!g-`6-cH zj4v<%8FG3bTOe{&0=^dj2uNK^^SqApO&4Zv>2+Y6wl66mv6Z#dtFDpmJK3lJG&4Vs zhls>MG{D&>9QLV-inpY~g-;sc2>-zqZfxvX6mGg%F3_Gd#VJI+$)*rpXKP-viCM^b z?*;nS6rzQwtkLf;bX3SC*HAP~%A@*JxYE^gi!xI4IxqEs)8@G^`yS^@DMUe9A2Nk@ z^9~18WJR@(erPmc`H)X4vkFOt|KeVgYIiC;gAg_90;5#;BS#X|$zq>63KIBh6&TQg z+Msm%NrDyro?KFa^+w}GH3slhc#JE1uI0PQCB?>1_wM6{H05$*T;~cHOH)(f^9j^0 zQnPb(e|hqLi+vR!p^4lw9q~00QRmw}$Ss|b%U!5y6EzD&8cI7GyD1BVm<9&`gErx@ zejLCa1UJHgjwT5>vbcg5Giir7#0bh5uM1?Uoi#V7=H~=kGITNfk_B#DC=&5joH35n zecz*kPGEvQC5!E4#744JbL4OleH@XbT z^7&ljZf-f0ds1V)GkMAna7SIrtWF&f-*Wa{91V* z{J8%XO8S`*($7RvJGX-CZr7LDWEqjr{+T^QX#u|?ekJ@W_*L?&VkcS4fcYOvzm}!X znOb^Wsjtp?aD4vfwl!OW#S2@r%}ax=SuZmU{Z1tL7uzN`*R+|{&fbso8~J?*Zp_uf zR;1x-VX>i3sPQon*ipB3Ev49u@Q5eQO%p4J{5kW@v@A`*4DDCXW5}Azo9uhYmQ$dx zxpVYuf%MeP{B!hcCiLqrEG~`01qJ2X-2A;2r2RoMJZ}wIaP$W~p-u)dJoaOY>G57a z*XCCE<&PBM&Y*NDjs~E)0e2Q^hwdG!inUEl*Ihx~VIx`4b-2==$bub4oY;NXR)2N2 zYoUgBX-L{)tx^_i(>1qTfghm|_FX1Hg(I+FuX@*?r^d)&47V%rWyO(ZoRI|InQd9~ z*3r67?f6+n)luC+1b%WkOW&1RWRgQ}JWOO%ZGt736iJjfDO99}ROziyGoeIp?3&^n zzR|LT1qfqg79huH9&6K4;a&I`?TIBv?RR1-^|&exeEXr2{HDT5hXLxLfSNDN>oxX9 z0z9l4MmGXj$kpZ( za~z^T5WDE)D{O=XY7aqlKL!As6E1J|zW zaNZXNh7ITw_?d;Q;8JllLM%0N*&K=gqm6%3<1rslsDOH5aEP4MSV$=9>zV{6uOKMO z_;_$BvXeL(x*s8)fAqq05f)a5y+F4L8=>9GgopLuK8J$FunH0qb)3QljOn|tw|2>- zj5Wu=Z4H`0fxQn>v80Vre!~2iNfOoJ{#x7;GQVXuM`|h-p>lEnaGGzQknPQ?9(C)!|uj17F_NLpTxLg9q;O5T6I84WDo z?)hZ6yQRq}g`>qyyLPlEmuQYFa@*hzE~;KH9q4=oJUfu&^v@ANU-wuSSv3p69n4af zAqh+Ff-DTUw<2(KN%y1?cW_p+-#_aMC1DZiwqE0VPQL%YA}|&gyH0FgCfLv%9OPmx zjKx}W#SziGSsXVN*+uoo71hsx@hY6_KP(h+i{XcL2!8N%(;4aQcW`^hJ)z7QbwX+7 z09&HH7O_?uLKcB0=1J}z%W>#t1SJhpmS(1K2>&oegv0oUDI#1dPC_vU_oCZjNRkk! zjKb?Uz_ZQYI0rIT9R2`{Z2JBT^ISc?Wz#xFixTvJzk_bfxetO&;MqQn+s{!?FR)AC3p7EJ7jNvMJz|<#osj{fJSTdI~-zE{qS3^i?2* zL>z<&J*z0=nTP-%nG87~QY0A^i!mi0Tn`>coi_BI3>PSmHoO$M1?4(oqOO+>zTkSf zlRpBR#nX(*CT?uRMK$adbd}jl5e}K-_QJX{ziBASVa`g2sfpJ>aImr`unm)G)?cv*|C-c<*{F5VcSfSB z7R~~Y+JxvzE*)Y;jphNrifR;xmVL!-T1B<30#RM6fOsT%V7ekv0T!iI#i5qj-7|0+Fw&Va+WD6lHQ%`Yw(Oi}Vp;w4fQ; z&3^r5mVj%|@i==vDMwv<;_))N_Vk+Y*80h=J!eSe3D=$i@Qid3w1Xe!Ai@L{+k!SY zKfHpCTOK1Tq4=J;f>PX@7wGUac{0Ga@a+!u+2yZ#`w4Uriu+M;yZl8X8*WnlZ^&D)eK3;u%U?88w%{&g?3@>)F5Hv3MR=x9@9;-szkd-;hSvr-a@$5>7SI2#!8W^YEIPf(lq zlv-ffx%Bljdrjj-04H)pDpb#S*GgORlCT{wkf>9h81&C4qE*PPtVl;m<4KDu! zMsf4{-oWT}!rradD)(oPU6J64^Djy6vERe9*9btJOog;S-E7q4rnB5dlgK_!@0#}W z!9G{heHC?uNkw^^D`2cmdS#Lb9s(uTb{UM09)3^3mmctYTx_q2-ctK32D6${(OcrF zy)t1(6{2v^d^4Qm78Mrl%VFFL`_CA@jet^y??iY=#ORg#WO6F-47|OH^O_+?oRG(Z z7d#}hVA_2-TyEgqx^rPop}UA!+L?zls#i2N8G@&Rui;^Wd*wk$j@ZfREvYHh*XN{A z^E@-x%>B3z9%|^5>cnn!peJExlj>4DSh0|5|Ljr(=G4$!+9lxBp9}e!cFb?IY04ws zQ?FSOqG!isnWOusQ5PO2Ux#bMBIsqt;Hg|__)ANHt8Q%m_IPhqF6UFvB%UtrU~a{` zg+P-p8xLGsM)6cPi8;Ac9K4sBfVs$gba zEp`o@%QY~~jM;|%O0WvXriEJs1{%RdaHRg6bflmgU~iPquf8s85{$RUB8KEVR0(wZ#h_=++K`q^&}S0r6>`?B4R=5wfb>@~YhdYD zeQjQ!^wYh(NK9uUNa+)>3NKOP{@b5@0-~35LGlzO;se;g?n%UPIP|dtA_kUjOrJa? zuynJu1U*FQ@b&$qLv4I&2uT(~(qSfHgTp|f!;hBKVbbwMMZ@;O-=+Mfm7$8^H5)(H zB4cvr*7xMRM{5WdUM9uZ*M;?7KUG<8 zcP*b7$c-3z%6fw=>pf_*?qRd~WPRGtI+#hxtoOuzq~zdxd`fm5#UIN-oAvAy5rt&E z>!FreT5gB+1`7kx#;@b|2((QK?IEnUhqB%ZMEW#5-ZJMPDLKezz0DX8WIga+`v@?j zN2g=(jUmeWedItpAw2wBkEc>XNKVkH3e|v4FQ%rHrgR)4{5L(3x0-olnTTOr=2YYDdaY=A7nzN*^IOO4$Wq-zFIH`j}4rDDwM0!gX*Ta4S|FhLtX~T|EJ4qyYjP_bHw;0Sp@4&d*5?jD)aHLPjJjIO> z+)$RCJZyBxUkt#?e+GJ?y{6}C#~4UPoUdiqA&E_b zKQN{cpm#;=4>BK5IEcwRI2^DdtrNve=LD|C*3(#*qr!9s#iM^iS`V8vOEnd!6DiWQ z8QL`MLGj=ZB$VS)|5S|cI5!#N65=Tsztmq&CNzT#8Q=kAPXPtv!TnitGI?Sl5Ii0{ zlH}-0p}t`JWC|VrW_JpqR=ve|Ilw|d$#bT_2zxx*jR#NBqz0kYXq!YhPqieqV};#N}Cid6&7?llu$z9c<^*Bl`ajhW4|Q2;-+^9A}DGuIXSr_VyxAC zdwz0P)G^L7P&~L1bYORD^D|j3_VA?n%cXfa#3CK8ebVQgo(> zAOTROP!6(8vG<*9q06xO=5{ud7&d!h0o--i06y*BGqpFgd&eR`B5H%9HK`Sl#e)ag zB*KY%m6}v695TQr5i5*4f`j2I-TSpA8c7llc90gaSSdz4?$_8PrS3XSQU-k1CMlO4 zs1@qaZL~?s(RXMm<>)#lwLc?FK@K`FnoM8q6p9&a(sifTOV~9}rq{pLcBhw$8AT&Y zTU9gy3XlkaX?L(1%J;3(C%%MP`lcW*-9GQ6E__Es%wFepVQdwNA`;@k-B2m}L@{2d z#88ZHLBPrxB7D^Ek`ZPfDnm^KNi5?im&G7}(F4zcOKiMS$1>Ebq()bU`tz+_3AAcW zcLD)IrA{A(P^t5^1zx$PL+BGzu6f5MDX*>5B;~bdHA!fCkgzgo`hYE<40Ep*P=@)V zO;Qg0PI^-~u>BbslBkK3(C(!5ZYL&FDZv&;gC^au{_CH*V*Tc8-LXz)i-8J}BEE&R z6-gEkUL^1kg-?l0LfZZ1b=I#F&y+|{w&(>Bg-Sf<99`IAGkPS!7B>l%tZ2VZ+E#(n zxRyxaqD4$2*`X_9hBlTA|YctVquJMPvb;f{X7mn7|MTR^#ErWR1{xZEZwcf2E=s@!oq zr~IGBCle;Y5C_UmTNk-{$Na8{zO=eKqR9;LqX1{c-A0nLeJC2FS`?$wBMO3L&HiM~ z$y}}aU6g?2PL%3K@{DefWebv%oCC^PB7)eAjkHYvL74R4pR;#Il40Czi;l^ zS3_Ru-dDcJI#mHxraVpn^_VhOlawhBuu004dux(1Wx6H_Q&vddkf`5SdMHzVA;gX; zQ@(4HlqvJ2h%#kwDB-5;v}D30SV3(aU6?Yh8={A;>W*kKQ(mG#D6YRH5bd=os-xe8 zU)w{IR(n14al!Th>C2@;SBhVEQ&)=L-}-Zae55EVAgd7Yc=9*5uo{x@NyHY;8O;ON zTn^CE-G*k#VY)of@fa%=<+u*Hb=!&SAKI%=Js4}FnJc(X>Ta)wX{I78LyWkdvHJN2 zwhIfjyBcQaZ1ed_fKMYbO~>-K4DGqyjk(ybin<>}>d#Iusy``oCibE@xuQ;*SwT?P zvu~4KOgA+WJ2h0Dn^JLfB<7aD&T9@h6SVcrvC$ZwWs>#R{H$gXJviOA6)-hCi{YQr zA-0`t^A%+T%OH!K_rTg{epaqX2oz|R0#M6RunZ3A2E6$zg1CRXX?c1@2-j=*ViF6) zgTE6}wFZR9lmihVp(fE8M%>?|bp6p#-C zA@o(+)#6)lCT;%+P1I0WLnmm+(NK78H{d)mucqu` zQzXirC9rGCx?!xm_6Uh`X9*sfa*s`sD0i0Nq$!u%6p3(%>HOgTg>DKrB~J-aTIBVKQfqL+vkYFVPV-B@hlJR z&m1jVEIsyDo|KV!V>RlC2k${ZH(TZ)%*~c29QoMcW(&q=;(lDsGO+Z57`acctKmfD zCIq`~Ks)XVHMZ!fNO<4GiXm`tc~juvs)aDL{J5tzv|zv@rO@3f#unM8sdC)8S;bVn z@pjo9B8*>J1^8xP6Mn_9og6K$&1yv$m)vp-u(eZG5LkSFmdt=C(To%v3n{>920W({ zn1=^$z~T9jTD4i#NRvm5htj`8_+re5c=`xu9qA`zwfXg=zVI|AdHS2Xvp|}fQiOkur{k0BQwDF2<>mV{jJ6?$1&66!DS#8#4m=m1YeppS z93ctJ%|rE+_Shl9tr96dD&}ToO6Pt3N0z672eLq<#p7Mr+1q3@V0h zgCYD|iv2Fj3QC3LBoG11Ka^Bg#6Es%(hig%X}`~`3yf@jGsDs^N4#mP(dgU}aZ&X5?Ght5wz;-QRi2{t2+*7q*FcT2LJTM@BVYh_W zrz^3y;mic{B8DRl4wPZH!%iuiL!5aHPb~>4w5mQpfN9!uogSUEx7#hQi@?wE;G15e za?@zA0!u0(79$Z)G}45V5}5Z+GJ+?0OX&HM?Bh6@7L^_17^@fF+a8X8lvB??gJV11 zd`iM`e~X6VIKV?gaZIy`isM&6N=hn@B_MPH$2W*^-6nmWv3f=(w!9t(qPVwsRFXZ` z_TcSDU@YSx?oncR#qKZ^4|ui0EmoWd@M*BN9W0IQv!hZfA{_AAp|#qfu*}*qgd<`L zc%UP>V~0`&k-?$^RC@O-JpU!|D{|Skj}*B<2z8_h48F_dyt|~$K==38%jloKjP}C&#md=ir(Ae#?HrKW>Z_jYSv`xL!FB80EbL&Xm~WoP$N>=;pv1`K zFA|lr54C-#y*>mX-05**SMRZb z#e?_PoQwb5C#B{e0mk6&GRxkN7&sn`}FIl-oujS*u{mZ1w$_SF=81>xP}Ce}OO8jg$T^Oy=(V?ZVV{N? zuupa?Yv8KbRCnT>m937qJx9qQT#rl+j;kXhtE(^Z4=T6NSET2zz@y6=zsfP2`lfVT z!=N(AfoReK-M}UXe%&{vW-ZSbmD(`jHtVKC?Mp?AiRyzV%g{R~-;=9P5f@9a-Bc@IhPgdg3^(;TT92!uh zW?Nv&{!s`dX6MW93-Qa5isvf&5`0$KadO0SlfIs=EY^1nbZUMWqA&FZ>@&SHwu0hd z0v7Nq#NcOzMX?i7Igvm+IFPmzOohx=vo>|)`w6D%n238wr0*7_nHNBA9BtZ#^o+*R z4tRzW18b;z&>pGQ2cQFT=3F0iMh{Y`Cc2a@ksoT-@;DCqMFc?u<(ny9!b0K^bwD0Ns@qifK5uR7+kY)o0mikO*)dgbsjFl2WH7>)m~Vhb-6)& z>{8zHeF~BV!ldqcjIji}ZL02dW*uZ>YMG3uLKh&=<@mXAQz+=xrMPQ_%+yN zkpRV%lees5KjvV7XyCZB2E?&#tLeDkiZNDUeu8|E-e7j~l^0TB5<+9p`qXD~4KC}2 zDCib}g>b?-SSyAostFJFhsW=|zcFUuAEtAm=iFr#^oR4O((|M+{7GE5Z85RMZ zw-zH-mU&W3)edU8&9CJ+TT5n_TFRxC>n}~I7+d7dt`<1A3(f?;qW_z&;DowVbP&=# zPV??t7UwrX>jIsFLow>L<8FjtBuUr{+~KI6HZ-L&x6Awql{+Li)y&m(%)Gj`*$EV` zp{t+RNf}O{V7228Wx0yCt7i;N3DnI&UD4PHAz7)LF(?EjuI_4qkIZrsCK0(rgS(77 zhOu(72V)22fWPb)ekl>p;hoSQX6h(YzX*B$@8|_(<1Lials$Q!iZbKu#+=5rq zi`;68*+^b9-vS-{ij!B8Q8CQ(znS+^#Q=vEEW}oR-O&pxCtB3%$QGUO*<4W;ja`$u zou1_c2<{vAwAZt{f7_#HXUu_12|U@oSHjf=u3ltw3d1DTi8BUZ1=2t5-<$$whbVOG znrBSK`#6JGF`l@OrS;}lprCU*Kx8NoYo79em{g<1H~tWH~y^sujhhYO*4%)1sNAmUz+ zQ}FxJ7<^QK{w}-PgZDYrr+I%9+YMTsXAkDhu=?@oo+8R=hYBH=WlKR1j4W%`b#JEj zfXPnI-vgmVOsyFOb5%@0y~|p9pUYa0!h{6A7vAARj^cC$Y?tH#F&>2-#(vu2!;1Nd$f z_?}bv;E4QKd7t`>5May2rCwYQ4WS9&OIsiw{Aij0cZ&Mt{Gk$8LTuBpYzbUg@Uhft zbHI)O8!oeznz;nBNvC&#Ox(M4gDmW?FHwCM@RcZh;coC9w^Q(;)M`_+YzKrRe8?eY zIDu~!2Bwc^&5UwTZo$vNR|@#56u#1K@ZEFm&d?8~R-1n`{|tP{k$~^uB>1AS#npff z;vB1l+CO#!^BBlicz09Qg9EE>(4{DJ6TIHVmPxnX-A`tQ)#ij90XIx8-zQ*;VSstH z0Jg>iZ1cLomWM7b;DFsRe5DXsxaYMK@ICnA4v5zszAt~<1-|D03BKm4orSN@&cavJ z6~4Cr3BJ%y!*}ruJ4wI4ozjJVDbNor@BJ73TMeCW=lZwh`JIGsU|0C4zx?;`wOzBb z@cn9M;k%-^3;n|X6MW&FhHut$J4wISCUk+X^nZe{v2thW_s?f{628Nd;B!XlR2!(B z47;)Dh_zYO);`)`e;e)ZBK&d=XL>x?2l|R<^DSl$aV3I{4}7b)nd&}C_H1l|Nb$6b ze}p=Q)hWwxiWW7&PSue-7*)$auxRWzCquhY`6j-(pst~SX~eNgYeg)FPG-t~fQCjb zgCQ&74JyES;LEAksd2Fl`!0BY>{IO9qIUg?DUUkEaBy`a7XKy!)$ zfkE1DH$jiBdw|}Q(WG<)a%#8k$#O1STRtbIx=8HI99BalOt1Zg5>Vp_F}JP121$iB z#KDZaqE8Ae!f)OV~d+D@susD^C+tfP-zoOq0`2L=Xr_51AhGgQiAMbk%()Nv6te7erRmg@jvvJ{>^~>64EYIN6@Ia`3|ovWu^4T_%k0)N6YbWrq#Y_y#Ggkfd26{G^fh;7kPRVk5zwvWj})Kz(kx3e3H*X+Y%O1wh>3ZKYleIL zAn_@$mf>r8ZnMRX&g{c&=l(E&!cO;_R)}aarY!AahxNNh zG14Y`2~2_7iwA0VYwYK!k9N#r#$vt+k)rs+?`-?68_gTHK|`s>-|idDEP`&6jpiJD zvuM~B#iwIG3rBuNYl~E+2 zO#urtJ;VNn?5~_70TYE0E(E8d?^so$TRyr(L?d>&iE|Ck#g6lB1~|(`YlGX}a4;6b zA3j^*xI}9+`@#M}RweT7hjCPKX@vTL4PrAmo|`wd%;i=026~g# z<)S)TwiIHxH8pbM%3UuSm+x^9ERWLpO}NE}I)abNrKo6Dx%uNqBEwFDGd(b72(_8b zlR1C1LL!+*=Lugi<4qfov3(L~WEcIk40HuNjEOt(a8*2b-1Yz;Y5@=T0Q_D62f4I; zz|rvpe3}pV>mT+2{I~?*-^P5v*RLnwi_jbZF9pSEGI*5L`4lhh26!FDH7Py|xe~;k zpH)T~v1Qi;n2?W%^3)P;f_Vn`;7xX1F@wocVCPGApV0HJ_6a>s;hifP%z*@%+1OzF z_Z$SVKUE9JFVNx!1Rj?VSqA5gG_5P~mtiDt4~IE~=cq0?7}jW2t1bA>=LI%W`$M5N zBo2b6^aBA38j>VhW_jfgJ`UIOJRzZ$?B~C0abSb(M=K7EEL!sd$59U)B&{nBKSAzn z4~K=s0UEW>E)YYA@^Hw-x4++`_j2b-26NZ@76)ec`=L()hiCP8q|JW!I~E5v*si-c ze`*Hoz+oMJdf*^wU2zz-0~}gWrFk?x83zYZ9u6h=&ToRuU_bod0+rFsVAj89abU>D zVQjhI51X+;B>f=SH@t0eXhrt+$FKtgUTR~#H7|7H2RK~FNEr;|B}wawLnQiKrW3w8PRt8 zSR;NT5nDXTfJx-3tZIM`J+M3lTTbDc)w^IDE9~temz&9TSTDr6iCn;WBCs!oXG#i= zybM1cnwC8egIoO+Z4b`y_mkn+gfa6GLyabH+tshKe%rGD{C7!yQwFL-*SsfJ>3Ezr zOaaNQI>+ynzg?-Fg2-}HT5m;?V+!BGxeh!xhnls$qYxn*#vNzvxT&lBrruWhklfT* zG^MZdy?rBy3LUn2mfzmnZ(1Hua-MrWF49wUCuAD|+?TT5m%rP=_20LX4T#k*!?qKZrp_-5gm2(~UF z@fDGpmXL03Z(m)A=CuWG_z)fxgr13|GWn8!sDEVIZ(mmYbeoPdlF5`qfN`x#&?4@6 z=~4H7DZvFgYl*s#3ct#>@oCnc5IZTvDVh~TYJLph;mx-lcN*^Ecuw8nFfp39xhOEU z#asd-21iu@;|H7;xM2W3qV5llJ508epTN#McBIFm@f<9cL)ah7l}!q`y3nCwo4`5; zN4Gx0)2++RAY17w;26#OHc-<-WNm))>g$SA10uJ>Xplz88~mq`f!%kx3czGW+i;m~ z+wCvgc5~%0PS2gYaeDHRb(Ek@Pv3Ohao9Q?mw{t#B1+~9b;+$43`f&7aslr4(13Qx<%$4Zvyi*vo#cl64*(8;l$u?oy88T z1Qe0yyuEJU_<_x$eIJO&!-2(XyKH(#0*}AyZF+m(-1PRox#{hFbJN@V=BBsz%}sCb zo15PJjvR1f69HZJN$*In8yorQo`uc0*<=N599LxX#euwO8Q9Cp+fad%duOAkreTvi z;?828j(+w7$D!)puiQ1_-YZ4j~6B8W8CrA6ddjE zY}%N|zD8Zs?QXKJvTi(^Tn1YlYHB0Y{&sRA9h8`xRn98Uhw>;PF-3gK`*}>0ZjmZ-IPq7(R$UBFl)_6829aeMmD|$fm5jkS*851oQt|@G|XS}B!3(2 z?;`u#j9*U9#bR9i;4Gm?lwQ@E@$JCnFXk(R9zlq@2VX3j&NA2nsS>tQpjM98cdq*K zT3rZQEo#LHTtJsHy$>eTF-zu&aar{Zs2jgds2kX6UTa2S&13jrgzeEaTvQPl zjs^_v{<+_7#Mp!*;4Jq##gr|O#sYHy3#}s702U^;If88;BumyD-19AAahwy0W+C(e zLP^Mh;!%uea`jqM?lpjXhoT1fK%!lCDvRJ)EOK1=GLEkfme|XrS}9l3LWznilUTl! zJm9ZNoLAu#kb%DA5e7t)zj``U75l^U!hs(ad|Of=^g2Se5ZIP5+;9=_{yyhY$?Ss|g$-jcJ^$-_}AIaPJ}KWHv~ z=M>m*kKbS13SKQSuOdczD%^X3Ujca}(JYEP{v;jXE zy0Ne;&*0SKFO55x$YW{WeToL^aT;eiE=cB_y`24rf$P1$-Q~T8QcCNYUo^^Y3Vq#< znp#}Z7w@8fht*~{cd8SpGx%!BcT$~EqXM;M*g z?>XC4#e+mBa-j)<@rE#|*c{#f1E4;dM%}uEmYQNNH|q8haIJ6Gp8&k}?R`I^%ItW#4T&G-y55ww{I_pr~XF zJ_KoqDyq$ISp`l(h|sn^z013`j#uv*fk8CJv5qdxF{A%!C;uGtXKX^M5Ho$Cv&mm$_mLSkFD;FG*dgS}Oj9ZG+%t;7KHTj#XV1hS zu(tP;t4tJB;Tco7yQVqTjMi`%VQOpUPz{3`^VTywT*9|h;~P<17}Zas8a0Y0D6{EW z)_O~`M$sB#{-IHA8b#xRS*KAc_(ok-jCx+92q~g&W7H!W#mN~_O^mu#qe?YuJ)>$R zN*`J(!>j;wOF>aHQNP3dF4pf5zYFv`h2OdQ-Nt$j)$eA0hxEIV--GqLn&0XAUCQqt zS4dl7es}73h~J;#8xjWo-T2614Y8iNoD-y+b`{yUUlDB@{#%s$BlzmfX;I!~sN7@a zxG0t#*DvXVBG`{cT7%>6hDS6=6F#OHJH6W6_zag2>3HrYCz7|eVowZQJBlOjo*dI= z%oMUOCGlUQ90!y*2N&$T#A!zJCLR83QOUW*avBbP*NEV^OGWbRL6l;_N*A?5SN#(0 z**Ppn2Wm7cY)4&=4pl^S8+F@}J{)>~_UfvuMk88VOtdSGVvUq>ERj9NzZFGK{*idc zScRG3)mT_+rAWC-ky0x~y2}IDYqO*7*bKEzVX$H0TZH#Q{CdK+o?@*BsPY<4QE?Aw zFkO&NX#!1A*sOrkr6M|Hs{na`R$<6ik<*PxQFk1`mnsc`yI9|w!om@cf~<-EHXX~3j(#mORoFJupCq+`pYbPY^@+=~GOfSvQmBLnz3Z!l znA5jbFJXNtfx1gMFs_BkhxaDWK_D8Ny#+r!hMN0K1~L@|3R<+IFbu?(cVO}OiwfKc zmlwEamKC_?q528M1-VnoE8vv(%qk}a1yEGMInb)<`yjgj%bHM;+gj)@H}l@YQ}@_6 z=B0c@=O7c(F~|$uSMsrYa_$RUpFWd`ma)%Q)G}KTcU-)d0Lhg1Va4Iy&c9~+t3;fC z{Rc#woPYh0{t)1x?F1awcqRvx9r=F8)!gU~J2-HjL+|nhuTm5-MqdVl+Kbss^qu+> zGQjEJO{5CSwi3s^k)pU|HVK1^GWl&zy^sr^2A`D8`0T`IIzFGo(H0QRytf+sif-KH z$Y$zICDbhc^r>o=rTUupWjW9+)pI#%=ee%=27Tq^y;1?#CURkd)2c%;tkTUv2LV%f zrE%(q;U`1=W2}TvPy8X`ZUC=Fs>3I|w#$d4#^c|~!0!a;ns}<%JprCq#%JO;gx?U3 z%!?PC`tkVf>eKw^^wShtobYas=%;Bfy=9rKu9KYPe$B^vaz}~6`XseaH$UWz%FnFq zi>=lB5D{2>3P@CxZniv)@fX2q-N=YDGI1Zg7vx_iS@U=t8khBkJT_r+o)!_lFR_Gu z0ynfM!Vkf+US&vwl_8Bu(ku$CkzTiAg;aV<%nAFoW4{{A4E<7c{$K-w>P0qB zy7?WxBJRgHYJ^u_(LW>j>}4-8`dQ-l29G>mAMeDiRp`laAIH zr`>4%^9%9gxSO33-&S1i;BNiwi~2BP4Xs+H7$OP&dL4Ix_raVX0A9=Zc^ffgZ%WGEvc0UMBSO`$i$Zv@cb>1#EW08@r({URFSIwa5J1ZOm80t zZn%WDQTKVp`T;@^$@?)-OOJ7$GT^xTM(dB4frmYl+*DDEhJ*gq&r*qm@C>js++I&W z60D9FV@!3n)EQKjQeB1pZk%sl2e20r>?Wc42{}%ET^quhE!6{Go{`2KBiAMP#EcMQ z!UXIXy}i^=FV*IT>gT0_%Cz?PC~IO1SUu>u$eb=sNcB#AA-eQ*v|f~Le&WzVs1>k? zKKzA^XhuX6fHm(+L@bs|NZ0&bMpy z_yijO-Bb}{uJh^wC-@VK9eL0wsEt5qdSlMk>#x&(MTlgba}?`QEuh#dR@$u?R!2mU zTvtpMBD%vj$oQudEnwJ!3t?W$r&stj`XZobg(RYt0!3A34NmkynpoAXOlm{)tzK1l z)J+wv#%>gXFv+$uDc#IrE$FUv^Y6cjB*E8dOGJ?1Nw*X2SCt9t7q{Dfqo0aXwijP) z_Vzw=%pm<`UhT*+e>uKS zO2@AFEH<|t2YB)R$|AMgp1w#}@aB*|7lR>Fxc6=Om9usoSyl5}uGO(IF;Pk*R${{$ zrz0U_ehk!I3DdD1sC?+;L{DD8l=dX&Kv(33G{ji&ajpmua4fntyjyy-wbYSG>EdEs*gpfHmGUDW%j(zw}St$AX z-&O|;A*7cey;#j4IF#afGy$orIJ73C6Lc;sVeq2IWTYLae0UA7xneFm7kex{xVk&* za5fW;Mo$&JqpXu{p8Tt_PPQ2eH@WCx8gzEk&zLlsY6Ak!cZ>VtfFQdU`w}PQMn;{G z(}B$mATjFX;{3pZmAFU@!%&QKIW?BgHc(?xPZ>K@KbKHfH<5BcV%~hd4_$9jf@Z@0 z&BvUU(3nMp-LwU-T4kZ|c(GA_?bM&%7wgY@yaiN0eNR0a^(xx*t!D`z9EAZ@&kFZN z*2C+kALF>kS>4PTaU*p{r|GYc$e%;BJFo)ryJOU?R0ywz5q7Ov`yEx^%Jezoa@$`K zz;0wBoN>X`$87x^9C4O?+S}=Mt5h5-3YfF-^p1sKr2=}ub^&#ZfJ@Oz$m4+H7U2Qe z!aec57IB#82z()K@f99~-;eQoIDR*}g~!wvekHnV;bx3L^uTH}RUkvSeq2t=xZG5X zyp?w3t;EP%X)^atjJ%a*)_Qb5@&s(20P+OPcf%8T0_Fnbp$XD0!fw~ArmqBX`kXE4 z8$h0=S^AHr<%EqBbJJF}biSwPXG!ta?Q|8C&|ad7f(p3w$DNupp@~u>#haWiE(F(4 zz|46Pw9yGr6R;IrKOy9v1TA!8R&o7=Y}!b>T3prNTlLgjz`vnlKYiGTn3_SruzHH6MidJu?vc0aE?4Dgi)Cm!;22YhNJRv+%VzFN7;UtbmDZlBNxD<6BC4+~~k z)>EVPM?~xYfECFfGPn_fag`E2@=Mu$;3@-i9*pnY{R_{zJS!(3&K@{>!uVPX0pOp< zz%e@9aLtU=Y>|ca5O^fntNQ!>E6)hmepwN9Tqyc^<1;GoDunE1w3@SBSWjxkr-wQ+ zRQ=Muil_F$c$Q{GC&ROV4vq1cmC+jD>L>_5o!W6cYdyC5`-zn}=5bOgoOn#e6<^$N z@>@S`uT(T&(GPhldOtC-14C_t&d@hZ?1OC@@EFz{dFul=jFk;(E|ROBU{8U!A)?5B zbKa(GnV41DV>M*u2Ny*lzL4NK?W0x2anmNWTDp6;q(S-(IPBlT(Aeg4)xVpG`Qi0XaC3fD!9e>9ESyK+O@%5*wZ4^jed@2)lOg znsKa+RSjX%h!%7Js^UhIg9(uv<&zKMeNAqJSSwMlz~TY9c&}ir*ctobI1#g5{Q(y+ zlofef12wH6j7Y9iGx2z@jDcR&qjL|dz|I3|O2mw)?B~R$prNlPL$~hQ2=?cm%l8^- zaq=d!5j?(jrR9jke!O4{EN-}w?T)}g3NW>x?>l{{hhaN2kC#=^9XS8-l%0GXbJK&Q z=X#B=ecZ;EnW^{$L>+iED2m73FGUdhN3Ok|jqyrTM`iLGY&^5$EAu;`}XfiL?Kstm`zJEMHW?PrI|ACia4u{$0roY;4E zsC+B~-*AU9X{fXmrr<(Ikq(u2%^cW9^5-0Ns6SN3T;&aw<1g@sio>B&!v9L`IB~pj zQnKA~((5r&9b20mCk|h^Ee*&ZafG+r4!=W3$RIh6oXSB0wmw(~iG!zS=VFi78zjSo zv;R*A$!-j={v8jJ4)Rc!L9!2P;~c7EkQFj{VjJS@MsQa>$*AC>D0oGgyqqR73X?FdjFU_u~*IexlXJS!lVfQP7hFAV9xs*Pa^geg9UfQonG63 z)js))FwwnhrsDt$$1wXyo`M|l5xg!zkgY&gC|P}@dCLPgd?0-fb&pd`GpCxXuaCrV zx2?XgFCK#2?BG38G(?r|s9x|TbIs65uV$RLo3eW(@4G3zN5)~|aJNN9{MeBumsp}B zmg7{76FV8I);nfAIwtC_q=f}ideX-IH&?F)z3C@`jm}Vg9fJoqmt*j(A9Y}o7 z0i$lN3fEdoz{gPt*=IRtg0gFIe(svXte>h#9{g0{WQ#v#t_KrA8lIGD-j%TkLuujK zXnp0!PW?F>Tlzo-oDAI-c)n|DamIdZOYfsCrea(wT5FC!SH^!nwjEMNu8PzbW#C^X z#=pdH{Ntl2V-D0yyd`L#J_bXqHEEBC_yzVqJj})4%fNR}a^ry4lpEWK!ORt8t1b*V z`frr97w3CyY4tzs*PovBWRp;G<`*;!%W?+#F}NL9GYUw3PyahVBU*ocrZ3kbI5TfX zgB0pYwtz|wWb-!JE*Vykd*RSP-Jf97#nW4rLBG_uxFW!{%gA$Ze3kDtaW6F13Aj!5 z`{4R$ENuWPRySQA{VpLeJuRoChrIMCRWJu{Mwe#f*R0t^fXQ!yK@9yGjLXeTPH)dc zsk7x14^7*0UNtD+Tgp=h&8A;#=qR*AgReR(HX&h}*k6d-&8j#;7#or<}!Xq}m4f$HZ0)rp&# zLa24-u$=^I*I!1dJ_(?HctC+#XTHW4I!- z0Zd^jb+HAi(@a#L$^cY`Io<*_&;x1{W;3BwhUvAFK<)O+fcgL(V1au5ex+1~S&1)D zsvJP&m`CnaN(DTirg}i-m@CiNIZFM)!8bku)MyJ-jyY0+ssd2OCTM}$-2>`JO!z{n zVzU9p@&72Z!03a18Ks^;2Utoy1aX8K+k^n-TLAa;04(g+j=byTB6x{2V0eEZzz{4$o0?qyutDbpb!-c9P3`AzGZwhj! z4yAXtap?uQRYNQH5N~WyIQ*n!8uXr=eAUa$q>azl8qO50`SxkB|cSqBIwXT|TfF=2O^|j}PZgf&TO>XfTDfUnc2K zPhNoA1<<3vMeh_I`6Ui5gfMc~nQ?EZ^0XF5yfF%3jQ{f~=s$ZXc4w5QY#L|s;hs|< z@s+2SF45(yW2(2$5K=CoJgtQmfE|XNnsAB8A*j_d?7onK^68kt`U%8#rD%K#U3gv? znq@)mWgyGFpt9b-DXjf0i8y}(Nm=JRza?=#Q-urj_u|`82mHWV$f$B+&dhjSNp{zH z9?7mO_DNRek*vx}k%S$~!?j>ei06idXwVpebbb>!2jeUFv?W@ZISHUh4T-(9@SL1v zI~V|ij)KzIR9mE*YBY=;i46!OVXE<{$whydnkUrKD35cRSb<0-}qPcp^6f}eV%ceX0y3M1%+ZHz)FWVM}$xT{If}NkT zzB`>pt%o6vI?0W0+Qz?oR)z`YGF0FOUw#5Hv7(J;^et?>=pb{;&D%i3VamSSE~5Bt zHS_S|EX@!_8^M>ek#8kgS+;}=XJe^)t2Y$HWL1)3rY{B4dP01_xs)8(;2Do<@bOTh z@Ixs4%$&?*kIClmHxm1zhfL<30@F$p(2v=skA56ve!4@FHk$A7;ihc^VsM8Us=)z@ zU7Pj*8?^H=j+!mI1m-V~)$GoQmj$IF>{C6Ll|t!Uf6nps=Zs%jm^T9{D+`a|B5`Hm zNN$3!EIfQq`5BQXKL_y#?+_nKa%`aqxZ)}@!VE^_t(#w zYEC^_aGssOSqRn*=jZ1M&a+LHBG%Uo!-u&TozavD=sR|yY1IPm7ER!if9Ug|0Sr)b z++yYm_HlxXvC{?Jo9DJ(Y9LhhW?ZF(>iHr<1zz*P0)z6%0=G@jnHi{zzjEcp>?_cb zGwUEgwc2U&HSn`V906vE)aErPGk9Fu`wp%tcb$dW#&Ze>~=nIRIc$GryTAdi-U zRIT5D3EjPy@h3KLDSqU1*r=(1k*C9A!GALehs0t7Ka($>72A6QKUb#B!w>&Rncr7= zWd@#z#=L`NE7KO)Tqy7w643uFdjlZkXFS*&0CBgjRK`=;@^1b#bHE%JKo35KI`zI& zHezUA!qulXR_0=^|3r?8jUhgj15Lj((WkB^7mOP7yT|*d%&^S)Ea)r#ZT^Z6oCpZi z-X|Z}B)c6SGF#VXm0}X%eZq44TSawbWeZ3e=e^H(^Z4A+y(>41RcWr|Hcvxdcn-9T zEw;t}@_ZZ0>3pg3r?1?0gV_yN_mRt7V~eYgm34>`{P>Hzt<1u#j5pI3V$u|k9gKws zCdLNp?jS9YrMZxS#C=tc1|hpX8xWoYOzZ^8VXPbkCj+Y=)?6qNj}b#v^q8I>9FhW8<>3@ zaYg?OTmn07eO|PF8a8>SVWjnSc+qD(tdY3-gVXK!1#s+K>ofe;(-&D4B*&by z0QU-2=j@7*cOM`4Bp$B@>6^LYBrQa@NA*-5RF_go}E)((Y1k0r0o3GB zcuyc7K$uqm8|DI{O~x=UK)V8KV{4Q|SmcF54BaQ1*L;!R%u>zBy)P%@^XMhz;98tn zlaWzO)xV6~g8Qs;MOIlh9z1Oy5@!99ayEB1NyDx}KzbG2AI6EqFsAr$4*rGluNePI zSqH8(P`TX;HQ@B}-PI@*sjuS?HP}7n7R!gj`=u;p-8{(ih3*Y|P50Z^UR^9U?+EQY zBw7)QxG~mbM*q>jt=C;3FrD(PyF6%LAVi~RSToa?1HEp-1zh#Mlac{=Vrd(2znIu^ z$xYu5l;SwRg_M;xg@;retmi4`>1PW3!967&=aB1#Meg$i!p)1grH_e;yAG@e|I3U@emc%$jEO%8m5d?*L{j|sq`nuZr5#R&W<2;lqJ$(e zh|ZCEk_XXA+aE-SZ|7*^HG6T_FNC_$TdTmLBj2F1eO3rMqq*t{PQ(`6KOKSf{m6Jb zk2|_)_XEr^qHqq5x7MdEKu{D<+#43)+`ZpHloK0=4b8OG{B*}e4Sy!2=euu3*}uyQ za?c-HnT4^}>WnH0P49;UEJ!mt`pd?nob|@ZXe?bnbRhpYg6rpJW#b3ZSP!ijT)GMY@^2WWqxJWTxL=ZsBIXvHiD|&v zC={(PqjkleG=`$X3VFc13X^h`yy}IKj)#H>PvBr%7qn9dKUNFH`9ic}7H9CqlF1v= zxtp~{y0ZTeGM80i>v4EZys~h3m^pKjdGcDaPkvJ-n~nuP!0lu5WJSKulR2I;2QKf% zlXGRfku7tS0nd39Z0X;Ls$pfqt_QL@>J5qt$&q8p!bzH|6`Q1u&9%v0+9TGb#2O;M zils#4Gln9+oGD-+lFB>{*Kbm3S6#GQb(F!wJP}lEs^?m|NEKIWh=c7C?=#0t^zu}* znUlSc&^0U}y+PH2ga0R_bKQztrMU63CZ5q*5Lk8%E>La5TGqxDr_0b<$GYx&(9Twd zq3>J^3(+(GL}+Al`$UKyUmgw0WKYqBl4|u~WF)&4^OwS`9fL!rnz_O&@QWa$1telt zyr+tweXUF*8d2lVbdub}Ugwi|{{}+HhRRV9r!+fwSKS~9zJx5Ma4hA2WvW2q0SZq* z7Mu4yIn}_C@g;jBzln=&bB2%no^;JQyN{!GprN!h?(<50aLm!B3%!JLbF7yj9eSvjP;B<|5~@KZvxgTV z?M#{%3L_K`&ZF?6ub_js!0HC5rLJ|?3v(QxG}+};WsX-y|F`{E%HH}JSwb`~XYG2A z&N2!cu6$g9bR*)Dbq5oD$OusK#NUWWmEF_j8)C89d@s49iG7&08 zUGm@CCI3y#e;4!jb<|ak<3gZA&!rXW7Mw`IffE`?5(iH3I7$EbPw}Kfec>};hFruR zannlg#)PLT5Ag_i^&B4oye=>kbw=yS|9F;_dx0 z0J!{XCWx_t2S@{t%KJg)+<`zE2g=-%9O}r2N(px@Wcf+ya70pxd&2Oev^qWrG1CUr z#8WHbmIL+Uf>rubPVEjX0uMaQO5Pz$l$zl)ty+Ub6PQku-4JOw_zlN2X4+kkrDHql zccqkFA(ji1<-`n&2;Y2{blJ~*hiAhir}^ErG%=!#X|7{iQJC`<%a;mC^RSIBHTUw% zRb2feZn1$|?qV0cHxN=BnvzFr`-BWwVa`Gno4JC$d@lFMlK<%WH}F6kv7$SdcBk%* z%1oc5a3zBTS06Fwz@LbkQp_F?)1(2nJk7A|iXmsZbPQgqK~3G>D-!Qbv8u4FY1W!& zj^S!^jahpk>wrfKh1EQMy%M__HJJORk=TO?RxJ3y1SR&}xoYs%0;G2-OIIUT63I(R z@^a5iO0yN73p6wFj-4-&qpZ-DG~-b#rxLp%pgRFpYJ{{OAqcvfhUM9pD6B5Le||jH zzS?s?618p|5GFXqU5lFwtGsSsRYR=V?Jvrg?e-^Zbg5Zrqnm-Hxzh$38JNcadYmNZ zic$N9tkI>@k~$ncO(nH@%+e2Go~=wXKjd$V*Ni#s4uob56cauAnpyB{(!i7NBxlX( z-(~REBZ$F&Ez^<*|0G1{;J<`9oSHFxn1!Ri4fR#v{!RNgoW16p3)E}Ilpqzy7YB~Q zZ~hV_q%4I%$4gn`2mT6Ch3+z5*ny8X{L8_=Y*~C{aDMr9KlEOG+CzYvM*l$F3oHns z(1~C8aZdLXnnr|8S+%lNH3C?R8)qsx3-0Ye_TYs@%30%%=8aLg`c&Gz1C^h`bEw$+ zi#l_}pS>Y`>os0q{v_gpg5%p{!SPQUXhfT40|V$H!YTr){R067E;*U}2pGdx=Rc1s zbPxPSI27=X0M6XD3M-KIYC*B(RtO%w;#k}bTF^V4C8KWI*4sg~!1&-N_%%^f%$iDj z44-Zlm?tU~$x@SPkqn#NEM5Y5s^B$n5UL&dMtIJciSLtn4(Q8)Hn2Bhyqc4LAo? zBL+sSc*RusN$*2&AZ@YBaFG^`x1=q45AB(pDWv=$LKX|UCn@De9Hj(;97yRY(!1}- z#440XA@i-sGK%$f`5L&3K(V6Ci63}40ncVXvOC36BV0tM*b3P zUYzVzGaV2 z!@K@KO0USST-UYvv2-6E4~|4^@^Y~n*mAkpz+X;e#Qw@{Kgpzw`#fq8#%d++ZZvN9%TFgKtpAl9Iv9QLGC`X5+!<0R@T#Z^sP*R!7g?=< z)=Wd7J6~yseho?7lds;Ve0Dp1GX&uyWX3|mF#KtfuePA$GxCug4NK?5ae+fwB-KVs zUu3_yeZErmzE&C}Uo{`Cb&+-B!3#hVvet29G*&wDZnS_=nP9C~$!nIiD#%*U3oL8t z7_i($S_pUbLUT#nRp14s`WGIte4-${>nD;mzWzR$!T#Ze1oJwtU>nJE$v(*pw#3UR zZ2DJ(NU%(H&XuR5J+K?01H1i723%T0AutBXn}kKu&dSqZvj%S-t-)3ePUgr%=5-8$ zRo9^^vg&&L%K0F0>l(>wWx|OOWl*9h3|fyVP$;5EU(Fd2iacP{h_etOk0UD8Q7`;) zixjl3cCjzC9xVj+EdY&itxcAzB5k)(48lU|4uSl@Xr*hvcLkXFB947RJbjp@7>jWY zpN(Hooj%pnH=v zY$;5>mP^9@{nIbIlFVKOg@Xc`C8nRFG9BE1fFe-g}Zj z$GI-;I?iVkv&wMcAhmrF`v&%1$^x0yL^!y(6Xsp59Oj57OGOM99Rst!#JUal)&f)Z zzC8BW1Xp)E^fd7ZZmmwC48{a4QDV0aZwwlb_K zSQ(z8#91@(3jBB4JFu6;Yyetrn1qGjIMtng1sEj1$-4Hr3O7JG)lWFY8i(|Luc~*t zHONI{H|35O9pp|ySk?(zhAjx|AFu$cOYb^^G%V5Aq5D<*fa>O>O3T@zTdea!nFR4A zhVnPH>{2l(zviDmv0~z49BajH=#vQp0>6ACO@fVM^9txS_ zvjHFs9*LuwOi#d)5mP z00gq%Ny#4e6(Ndj%&(~wPbOTu2|G2=82n^aANosj8vuDYtOHyG_GwSZoHRcRrybe% z@!+K?5Q6{+42`Z7NbE0|Z41J1tBn;URRPJ8PJ}@q$%-sxEP@Q>_+3)P9=r}`VdSPZ zHZ!C?ToS{`Ws7F;nV6$(Zf@CSptgt`=O-)HD_TzMsjOD$Hhklb?Xo$B=~e7>ue7$6 zfwnmH0ua9~_Z{=MGuX_&4$g>B>tquDIPhVQ#@P}cpm%1rlmXt6?|1y^=MnlV4(Y(7 z9E@c3KsB7+v0GF(xA^q0Q{R_xHV7F!3Z_*Y2BHHf@}}Q2)C%IkKcIhQzhdAD9?Zlp zoepWdj4O5EWiI}LV&p;c1xbu`-%sh}-Gp+)V)5V&8tvs8#_nXH5YB$YgBNW>A?;mk zA*r|A4;GMSTP!lXC0vYcz9(D)Q-C|Wpgs#nUf8eyS*>G-JR$TCrwjc9wKGA-C_D|9 zh`->18RYT@zt;!OiivU;hA1aPTqX_n=%jSv#W?Tsiu1HQ@4Y|2yXwyad55B(La2s* z?u$ph-+m>eE8rdE!5gi=9RBa2W#_OLNpO4d8HYW1-h^bLg$#(z&!WI_Tr5Z7R~dwZ zmK0d512O;Dl*)(fE#;Oc3ucW!JUDl>;~?JP!Skyfx)WDB-rDkL2dOHoPJfG^{s0q_C01~Y!5t{5A*9^z{$De2Aq$|UBl z+pIKJhT7mUl(Or!;2?s%UZjrj6N7Wmyt!sD8i~3C_xUkBWhuu}qGlQGW4)RwdvHD# z*;qDHSaT>@lR*_&gKRsU*yM@_e~sk;nICjjwj4L z2Iby!k_IIUcO8@@GK6CHLHYQ#9F)6n{@FqK4i2hpM{-Vnj1$CvJ1D2mw($P9gK{)T z^WP21JHG#)2j!Wl!kc;je;JgUw)%r|+EyKuS;DA~`ZFJz{$j1I~IvJ3}{4$99( z;Ch2n_{krXpJZ4aM+eMOn^niv{a!t)MBHr?OU2|c8zFBrHDfgK*2q&?>+luM#j7J6 zYjwRL21NHQ<8UjbsF{ncZ-2NY{730bAOjUDw$>ZXf|d8^#~>&4)Y-beWRbfr^AB()S8X@QuRX%6x}ay(e@_FWPzrH& z&0AIhmpgW<#j+v?k-Ds4GWWu{B4gvbCK}%tjZ+6~1*BX_kU|w_JAANqa=Ox_YTkBf zf;|#N(1D*OZ?3d2Ym~D#nJpj^`CS982frB|^2R60Vl8~^8}rD`B72p}MfPnE$>hcLD*^go5$YoPxTPs1kP-`U~% z`IN5f=T|sm02-+*ZEp%8yX5|v^|NGNKOC94e%|pIIq)|gBTu`c#~3lY5J_#>XJppQ z^>H(Pm5~`kMs8vXXpxUq4|;>6=!`Nuig4V9sTl30{DsO~hF^3m1_?xgVbfeEBhbVnmi}@UF`$c|+K9aeKnRh@R9&83H3_QxC&)JvvpigV6(ubA# z^pODQBlyXo7sil2f;s53-(Eg_j=tnS4)h!U`2XQR&*aLp`#@hdPtnMwDn0)kaI3$7 z-v_sW*roFTvek&nfsH4_tNE=*(j;2;#9+KZG}rZAd|drU5ePT@B{lnOX3oV^xLb$;T2?!NlNC3Rp3lUjU zA|a1ve2-xvAx#jkViYbT)gq1*=_S2HBim}T+iJgW`kU#qfHeq9^UnH27hwO0T`=NJ zb(Xr^yWBEDPZXbx%PsJhrp{8Y86sPS$)}0?f0xcp+tp?tRFAPOwioGKtCC^O$Bwsa zK2E{r)~|#-){<49ZbQ^$%w-pVNZYZ9O+LWp%4M$8Q3j9p4AApbX>y>2@>(`1afGI@ zjx30q=U^M$R1NoZnKl_bfGu6e#j9H-nUFDw4N#o9;GxdI!R4)igR7db1-fa9zXcjX z3SHD+Q~(=9shq&EH)o(G-3C0NjB?lWS2Whuy%DJ08y{vt9l0K+3>pyRHP?UZ=(?c&@AMyzUR#- zQ~nfKF&cYD(lNGJl+Wqu@BMPX!9IxiuJi1H2kc+_*nC#aSmE*7O~Cn-Wa7NuXz}E5iehzHHw6(wPTb|z7pNTaYq5Wg{Du8hs^^-w zAlGQ9ad4uRx+GkszlQguI;ljiXAkvuKZ5%MqQJW%#gskxj`B3bYV#fLnuO;Zh3Ch# z&mA22hN6;d{&pU!1sHm1Tqzzg(mP-}mA~e(xYAGph zG}U{#AwyAnP^Q+2HYJu4O+qqPMl55>_>OeO((hnotU-}#wW*~|jivV3Ph`x**2ZA& z@BMzB=X~zHX-fUS{$A2^&-tA5oacGYbDr~@=WOHgZ>(ysbfFV}j`bzcqz`B)T6+1OwdLBssP0xD!^b_)dsyO zzR<>461@d)UzFosjH$SF*uPd4AjfkBYay1g9d+sCiVje{Wb!mzF!Ev5W?1j2+Bmey z(|y91NArjg`U9Jp3PSjL>KOJW4D6DM)y}iAyJHk-dHC1hc+=t4Zp03>iY@~>DLxcK zbSC>_4#RmG!1y%TKb|Ft5Y?u`3*B}ng8Zh#^V}Br@whVOc{l3{c6Dn64^&?r_z@aK zY_qtJ{VPBZM-4$GRWt=`-0FBSw)oWu;lkA_sM#z%yzjPN4=1QF*V4mB^sJvAJ`diD z0rl`sCy;VeVR^q2J&c`4NDFT|M)mOEjsJhv!}CV2uO1$LM4*SyJ3i3Er|C~4;%FZe z$;o|Rmd9+soSd?lXysjy6I%IREJSh9Zamw;CM|{d&EbY={X2 z-8&RkWa}fx5auA4x{KmmXKuv*e84c%g~qH<1-kNPwTwcD(h)|J+r^T}2;q(u3CB$$ z1Kh=aBM)@U$Y+K4XbYA}CiSET?_saipZ*^98`)pj)WpEOI2ZDWI$I3$`3M#B z>ttEFKjzShN~G<+#t0*Eq_Zfs42c(ONmkJ;b5mF(nroF zZNQ~X&A}&^+3`b*+!ZK{ha~d4w}Q^1m1un;MnoYpQxTRX zS3`omVTS88OB)sx)Sz@=e^XnNnNV33Y&14UsP0_2rR!5yU|heppq%iM3wiQcK##>! z1ARkruDa=XdaPNit#D6&{3XksLgo{5EltY~BmMmb)kvHEB#l&jlWHXC51?XtK*jeL4MatT zM$#f_jl`mCFEWC%A#tpHhs18WU=r@3;)7XXNCvoAz3!fqK_hnFeYDpul;z@!E$WBNP_6@2`GrXfx`)XA+HbsBI9CCkQyV zD{Yt~^4vIwf{sLzf`B&~AfU~PEaMU2Fh*heRA2XrujKl(B_yHWeOVFN{g!*t8G-*X zA1U!z4%HH75RUi%i1m0~}C|<_{a6kr6--YV-@p}@6Vj?C+B{1p`#>MJ)0bFJijgmSG9LUI=ibNqxB=WL{gUpdM!R9(&_ z_c9lE1CtCXL}sdFx~-sr;aFV!!_d1w#Dehd58T%e_s99%d$;fdD4*wDZ8?XUUe*<3 zF@$hKqQ8y6Rwryvkl+5BZ0$1mn8mU_>)J(p6i5CU&wW-3sucbLY^59xV~*x;UcrA; zoE0-GyoHM*J@0X+om2-qG17yF?=+g&{~-Yps^0+;RN8nDHCUJQmqSE@?F>d?j=Eg# z8o>KsnAjP6X})>>wDY&B3rV)MCnhf;=hBDXsJhu)RA$wrN>&n?!ad7*&HZ~HqiDE` zeNH0g&PELL*V%bM4#R}9{G@`Z@#1&z&H@(it!XM`3W5?ch{$=)3U~P?^fX~Cte~79 zO*hAM@iomxL6MfUx9J=td8bbBN&QVnra#f`huYb$-Bq%suNo7va|e1+XlQ6oFLZk% z`GM`QO(b`;=4)n?*^HwFzss6t54C3!)c2Pt{`R81@Xlwf_Id2Bex0uiy^e9X_S-G= z0CULRO1P(tL!ZbsVX~VL9=D6KM=Tw7;F?yK(tNy~vedQ|iITP01BP12aWL^MvOu<>-Q9J5Uyu~p;L-JFKr zh1xvyUjA0-l5EhK4CtAl{eHc0-bRWv^SgryRzD0U3!U6A;N{Jc9jhujsBi zs>61OFT+j?yDaQQNI3kS3h(!_Y^n;sySWn2>(bm_^_)G54J2dpV00dIu-peuLMCWC zCi;Cin0Thbr>!IuJ)2X34U4Jpb}!}ST(umhZF8Wx3Z*{Dxd$+0EGo5cMSMk($Vm>f z0UyNfBb8GKCaV^c$s(#te&fs%y3?-L6K;*c!A*h4Senf7fI*6qQ@|=)5NbsZ zH|82?5?nXN{5-T3*6QHV=J#K}WV(g6qg%!pHhXS>JdanPt-SCU=Eq!Mtx7hg!ViE6 z#9vuBNi4}7_|^%m*lIkuo5BLv<9I#=5H#C7J+>9AC zWdx}lRLULHKB>eAR}zo*5LDzAh_D3kkCCsYOsn|y2{gaNwU?&h=I00S1}O@9GIwHP<=^TMlpS z$ed`B-h`|^p_`UsyI%K&U<+%9v*TJR;NI=V zkcuxj`y-n|3B|o}ut}_N>IK9+wqRHcyGn^bsD2)4GWPj~AvVF@gE=F$s|wI#N(sjB z4R#>Bfcqyqp{Fqh;w;u~0S__=QLZGo4WYxGKa*~gV)V{$%Nl1(=M?B;Jj%kGT|UaC zJ^dLj`67aCXdb-3G;%O*Lli0D4lFb-(~+SxW4D|PHQ^<)_nMo?Zl9PfCfRgiOTwB%|bWj1`?9*8;iqd3yLS2epz`OF+A{+K5XH~ahxb#UJKPN1Nznj z+EI+0>O>fv>VWdVzQ-%DF@h8_!Zy<4U5x*m;$>`ZW0*b z?aWy2r4L{*>Oz+A7M7TgHF5XZrAP!dvTj#R5-N$r=@k^uzJSYh1^mYAnJa|~Y_>-| ziKaWG-%J|!8Q!f6)m;zv#@d3zSm+ux$SudOo{jOO$CzhnMkz2cXV@M9+JI0i?v~}? zRs6`rSQC!qC0}({UryXp3NYgkmMYq94Rzrr{{pS8;6A7!|r`Xgs-hLHsH3 zkpEp7$9t03JkMQicsKImT`AIpz#)PV@IS1KVeB`o9c{W&JW5_ntZ5Wh)yqY zP(}(<;TmKYL1J<$d^Vys0n~(YB#1Ahlk!!GOz!(06AR68m*i05IsDWhPk#>nF!s2} zc~I!;d8DAJfn78ez68CRGo3m%%7By@1=yUWomvUQJ0K{TLC{>P2c6L>x>q70O%NNv z?Uqf@E0W_5X(TQvwf=u0XmIH2Ta=)D>4ftauRlR7;adv#8KYzdK}!+MBIs{ONE1{< zf=>K2tA&ONLHCM0(Q8N%{x=NqJ}!>|$EAxJWX!YEn=y}iU&EaV-{s(jy9n~lA~orpc?(5xTVp)LS7!pG?Sy1D@QKQYu zvR)6)^hC)5jMy<|G`@j%uG0LOu&YdU?AxFA32d1g^(Rg>u>N`<6YMTVECK&qr5Wq- zrbn2It4dgTI0&llP;TZiOM|?o%BdlNaFCM6c*!Zak9dVV%2j`}Nao>Dtcph9jvNn# zj%&0dc;2HtR(lEbJC^Dx-2-S5pFz8+(nV@&b@86FV{_ZAe;n!&MfWOyaaQZR+a+(-(Ut}?V!fD?$3=q@1|dy*OQ#-9#c+hOi55xQ|NLg8DNY+kw3Ifp+3I<~nPME&PpS7dk~bNsZtst+XrQbi(wX$e;CVsl&$vE!Dc0wUj{r zvyZV(cax8mlbWl2OlYk}EP-n>$$xfZiW8^2(|I@-*0~GS?Vq;Ji|~~Lb`)U(7E5JW z^5DQqR}<^er>JJT%mg4dzVA%MZ?)2|JccF*{^u;Bu7DrlJU#QD(AbEw3>3pVs}TiH z#8_YW8^{c{;OYgKt)%0MYSE2r8S836-bt%v)21x9!V zu3Hd&1%YtKpf1RN_-spT#f-*9nFyl9Sf5WyDv89yQz$B##yY=&n1;j9q9CS4q7N0Y zI+!@LerdkTf$X(y_EzK;n|%{p?34=6e2i%MX$&lINT4^nwf=pi{!Pl2t8>+{}<6L%eEf;$tWRkCb$GF0}zu?|0y@s8}v zpD-R1sC#4qaDl~s1-f59i(T5_kf|oQ+CW!6X@#{NBWOpqj2hD$A}0Et5|9cHv5#u8 zf96Z7#eVDpEvXiJr~gP{bMOB{ni%W!V$MH-kE}$e1$QFG3m=M*lfLEEX6lY7oiL}O z2*uQWJ8kM#!vv2fzZd@EXWGgF7aws7fM@J1UvvYFQCxg?8`z*=TRE>!DqPrd^~IZi|Q;8=1Bmi>W< zVD&No&;|2JDo&(T$C4N`&4i>0Ui)mM`!QO>z_XGiw_Ax(UA?@cP?H}N z3-Q~pk%bp=>pcoEgZtYaK(pi#*e`*ZsmA37SX`V`w|ds-pxn8iWt6)M1W&^KQ%!uJ z{aQJ#BNRkOsY+dk!kqM^-1i6`)uIls$^ncV_5FvaMk-xwHY> zGtxUAf~(u!=TMG{nBRqg&^ipIe&rL%>W5mr(^f94tA0HF8j`6WxVC=R+EGBRM z;&swpX~~xIb<$C?9x(9xq}^NeGiQg1Ia><)``NRfVKa5WnVFfg^Jlaqhbl^!?Gc23 zyGm3=9~U#=3`*%9LDJ2&gd&7G36&HG9Se&hS>b9<@_PiiQ&~3%&b3zJ(yQBk*T7`v zqN3YmJ29E<*vAtz<)9rlqJZhj+xpM(Rv(%<$D6v1n7k%hkB^Z?Vtd`MKjDdD{quZG zu)ER6q><|xqXKUR1%CS{e^cfdx}&el*qbUT!Csp-FvU&u@Vc0L5@tJ@=V9rwBlB00 zvsk~{2YYI;e#Paeto5t&!86-Ar$N8{XD#p?^Ze_CVEw8YDYAYAlMqzm1OfM-wd1E> z!ul>B$vpY`C4RU+9;QoJ>D8x&Hso{bFY8*r%4aUDUy%-7zmluqAaV|O)^h!dIc)t(KXtM?((m@UUe~V#X{aCh z4(tSZV5ccRuztk?ZaX?!GS;soar926L`aSsff(mltd(98#rm00{T*P9anO-t);fLo z9V}rz{e@~iW^gx%TESJkh@=nEqKjYuFnd~h35&VO=^Rw4y_+dESpOB4cfTbpfj+Ik zuom{5^_(nW-OUa%wllWyKe@s=3_@<~&Oxtt98$L4T6(>m<=^&8?e*bRf&M3WKT#&` z15cC%X|zrU*y7e4BKjY4Oa1?Mc5c%%z?-@n7=BQCE} zc^ISy^21ttE`A3a78W{fZDw$Hh{6Ix2tCmx8%b~_4kBF0J9aSDjZ6WX$s}k5Zp>jL zN$Hz+5Q15C5TPF&jmaIO4=dnGI?STS4Gej~=;35yQktuK-Q{L^_g|-;$ zrPQ?`RHp?_*W!;*BS#;eWn8;G;5b*>x|owMyD{Ry0=J)xY<4?Vt(aP5%YHTP2|s`1RSo26e%LVH$)~85w+w48wjx{nSv?3vsix_>#s=%9+1Fs9#S?=Xzrpq!43#_}eBC~pv_RK^W zE)RT=9hnT9!hiTs#kdnQeRt`}P||@LiMO4({mv4TFK{CtBHcd_$+>5U%-#RQn(=IlA+qCcVn_ zGte4fFy^DuI7870jA1VU!2ZjBWDBOkpCHPQ^fBQcPydl(kP090SN*6yric7TijG^N zH~nL$o=D*B2B${ay%8}J#v*hFGAoKu_Ua%sTZf-=uwK%DGFU)ZDGUTj_<@kssc!b zpF)%x8oXe>RQOILq#Xpr)g1-nMHs6&zLg@kDQO%pmI4otIZa!kWbDFNa%p^x%SKwA zH}9Z;Eji+T$YlTsBk_Xd@j zOX6({@`XI0J7Om?Qz96=Vo21%iz!k|hua0vQ>6vbo}u^``)RbS+iPpcsc&$*U=_S} z2Vla3ZNI7%{Q?tR18-s*CTw={QU+^yTiH3NPg}@3q_;Cf`h1D64Pq`pm?)MLRnvsz?42QyWcFcK+EQdmjX-!C@ zLt!gast$!7Jm+jEc7Poo#Z~;Rn<6FI1~n%4o4p4Ph3nr^gqYtg#)QktQ%o`k#eU_@ zp}<^hD+gA(yT)fa6wbr=6nr|@1E&2ZSiyel2a*nj^7U~j2+y|yM06|~UmI^_x=gUh z@iF4&z8ICE=iG-rCTxAx$As}6hy@OXT>^)~ma^VeJmB)!mi_z*!`J0c_*bSsVaH6- zIqC(Dn{by?Z1lz+Og0LnZ}syhkZc+@(-CU-kren7SlIjtMG5auu$gS*_~ev=QZ_^k z%F@jUfgebb9yXmR6_yfZo(85I!4$>{8Ee^CY{m#X3--Z%f>y=s?^X(+Ivjpzrz|(g z5vC1T=yL=)oAj6S1f3n72F zBM_IU*IMNwF6jqWse+kUL8__Jnnv$ixm zB*R3_Z~!tGS-mJn2T~3%RYRC>VZ_2B3!@g6BMhkZjUL<-DaG zAo*5vIpavLu=HM}V?p=!opeE0k~2QfmF(fEa%=~~MJoI(5h%sx)(AU4!PBX&<)#!= z5H-d04#iXoHQ;w?@?xwb99My}T>kZTmP&=k-Y#@5n}n@FnWS#bbi&hY-~CCIh(iAu zF$mDk)^M8m`u|voPB!#qn@U5^fQfAFSYho`XN`;q$2Q1kKZIKGc{6{vv zI{^l`)TyE}&fv5PdfOt#wK$T*b@*#IBL<-9h^N9=0xTC$&(2Dn$I8%|DHC2bA-kw1 zsBuwE7Dg;AvM_34xrG%LRw4{UI*L0jQ{jK0p}k0#7F4J_Ckm#kFweu5nn0LsCrt$r zrx3VnAfWvOSJo7+tjG}DWIJWHNO*mbR7RQI`(5Q^3s{#5pQ5rAKJ+b3&EeQ{OTwUI zn*zNLXUi>Tu*nNlW|`=>I*AZ=%uUOz3dz;Cm>g)E+)j=Hd2N$Mt@I|7H>+hwwQ^O0 zQ{fTp2PU&%Pqt%#$Wvei6A;;(C9r4TYL%<>KjWh$E)}jtl(^8%p9+63-Hm(|ejMtf z%C=7s6}&Mg$Nb-aB(GE9=j`KnY0iiINA0ECS}k}^4O#!7AJMw*-oKl)sua{4kaih% zeuEfhfFviUDxWp?iJXQ2t!GF{a&hAj)eIaE-1S2-{EC2LGU?@~+#a>^_sPam?KOCk zd)6Ah)25FsN8KMbv4OjSaQ=6QSOf*A6aup2+n^a1!C%^g2@*TApCEPNcR#y;j|@iH z9Lz_gYY@6xJhlZp1HF(?zkgjhDW76#&@K4vLAT=fTA+mrl|8b4cpt;|F5dO|%ENBkA3F@0eP^Z<8m(6pqLy6Nsv8CNZ) z4Z4<E(QUllqI`(zO7Ie2jPDkmx7}ov*2U z3aDyS$Ia-1W^%brRCky9Q*7%=^MRb7{sINQjWXV-`0Lk75erBsK&Uh!QAweZ!5T zaegAVbBYnz-fP$W+wN$4YgS%XJ$`tg7VF5RsjjN5R~?GrdUtE3%-SZ%_`6(*ra5NeBZ+?C<-SAijWDse`_c7PPJpuk;joKQ)Yr$UE6guN6=`L*?+}v|qU{P13q8Ji zc$yzbh^Llzhv0SPExjTZk8#++ggEOQoN!jx#bS49XCE25JKP1clw zS{JR%)-7wgn-Jtun*@)6BP~(1WQt*I? z+`z>pa#NUlCVE{-Xp>=~!jb3b&m;0fg}E2#??WROpeRT~8h&TO?bikm%GL74C-{CnEmkiyRExut%TNqzpjz0C0_5)(;9-~0% zQUaUMOHBm7`wc~affqMTNaqZKJ%_uhoq&YRhx~3Hoe-RnurPAgAWVhd{T+J#W8;z0 zbzol%6${L($kJ#Y>d#pk9l-!zfm65S3~LCke9q^p4TS-z?~P{aAebR}Ud-GvuS1EW zF>9AcV@>)JAZejfu?3-=Fwo*@qp1d!q{79-#e0ARyFHPDo6CCzU&#~FJPOMUH25Z~ zb}LD)!1YUq=hc2QXx4WA){v6qQr^iV7g%p-iRF3CSPimsNZO*M`9 zzyFbVW|aq{g85v)%oDB^=SAJFA|;;16Eszhgbk!6p~__pL#?UxIL-w0F~T5x^2lv|F@_Aj;-I|~{v-i_s8sdJ_rr3!+qsB^6eVZ} zWH1gztzpV7oQlvR7M}5x(#1^f?J<-PPEJH!(#xd$KHu4tzR2yWKTXSS<72{*jeWLqHv~V)xQOe<9SH2x zk?t$ez(Kp+mDz5uV46i+M_O1HA2FZ18=ZxFXt?n#mRzHonMD|YKZQU|JxRghBMXZN zFLw`OV?F0Qrb~*r6_edLVC57DoXNjnUiyX1g0@GqV*L3RywaQn9R##&m2O~$(;t$2 z-gr&>c{l%PSh>6Y-!dO!>gxXl?Ca5=+AH1LK1PvnD|}2^0Q*F=1t`ewjG5LRy@+95 zwjomq-t4nhFl&R4)kxN5^_fcWT>r6;HJ;x>B{Y|rXwQLZQ*VN z1L3yletyOe-LKg@l6^3Di~O|z0x9CZz+8#U#&R3o#0-03UE4K1`_O5^Ww+h%!#%n! zSKDL*qOG=VgJj>&=>4Z9%#fBaLbJu^;wPFDI+5RSY31_kgDH80eGrCpA1Y;Wt~4?P zrs>JZzn;+E$4qX}eJ`Rs3wjN+*a3W^p_kxi>%B}XtGr08+_WvK?*7Fcx z<(B$thzTdQ12C$?eK^*4=fGDZnEz>w(IJ>OBL>WKxGsQ}Z6|9Gc3RkFVXuWbHf7JZ zFoG};7I3N)G`k5a*@@MwE3E6eL;4|(Gyx0|u0*Iaai-WzoYj?qMy7_x}VSHYZ8e4?MbBaxtRGnOMR+x&mjty^DY#QsL=y zgxqDN!4jr|n96igtl9QQlrjCdBVy>u^pZURC~Po609~<=h#)LN7z~IfW)R{ofHI?y zNlx<*WOm83uFe)Rfs8gIMD2}CF*m`L*l@37Mj&MT>h}NIgiH~>w8p5J%a7aOBV_Jc zXdI$mWU>^su-w853o9+Gv9Q^~77JSu1`AQsWi{=vt7w?@nzkE{O39O`g)xM>B(*Vj z4S5?CYcI^ul>61+z=1$Y!skDxyk|?e^1Vcq=W-pDf=~U+hN*`fqwW)A<->SzZo?w@;dU>7?xpJUU45yH&e^EOa%Wulo> zQ-=}C)>jaUcDOz)rlrEKOA7GP3}2ucV!28d5Z}^DZz^D3CQB_BJz#^SLO7L8CKnB} z<0uPdjseertltBFk}Al6)FNP>me9wpv{Ngvh;@m0{lxQ2bYijH5ty4mL? z^Kj3opkyS>j#4yVGS?PISHJ=A~HK6Ad+LQg&Ry?U^0WcSU@My$%qOZZ5HxRE9m zUVs>uLP!yIsSYv1#tZ5Z0A;`XOhg4|EhY63r25sWSPV*Hs&5SdblZG}_Jhe=il&Fj zi+V&6fAp81G9pQl_diF^$(WyuxD4WH6SM#$=@vK`DB1kHFpLb4Cll$lrsxZXQ?7z3 zx{7q}LA;YIJw=~Nwmq;6njO7L=jWnaahI{o%tb<)rW8~V1#N&kGQ?6F{#K;etX#8P zqFDeWt~$u3Oc01 ziE=Du>?fHh=fEFA-)WYKGN#vSM8R?HZ0jJx*A3+(E+dV}cBxt_7wjxA$IXOQ5$K1* zBkmKtPf2s^U52%bqWCoHW8PmHizTPAJ7FomGqX&4R2NK^DedMT#Cm;;0DG1AooAPFPb^O*Os{yrO|up zmQjO2PBir-O|5?rshRBt|1Eq!dF*MhQS%YfMs2_|t7z4=20dhvA&OaaJhVAKB`saq zCzlapPQs7DuPk9)j06#?NP7`P7~jAYLq>niQ7c816@D&=p(l&35b`Kpv(YA5bo~EjRi=v36? zc1C`a?rI_fq#7)2M(CR$`~a;FfMh1Okcy!dXWgsV&oM2g50whKL><5_}FJ-wS6N)bGCp{!F!%6VzpP` zPA0f-hS4EZk=ZwWGazKgENeP*qXMnypZdxH*~l$wfxRy^jY_9qN(dFV3y(#h3l8H4F_QNS|+>jC1{fk2Efi&L;u#*6fd{?{+ zcKvt!36jv^;V9ucVU1wrlJvXhwaR)R5TTCm*J=**i+y0IC;nP&;J;}otgo6 zItymYjy=M|T!B#jW0+w+9;t4hw>T~L0{e$g>>EqCMvbw`EBuF1{7~s*Lj37ICXAWl zW5Ve}eXN@0#!D=)Xy&j>dW&W|F=)0x4jMEYGyEA1nvJW?pxGV^;b`|CF=$rI^g0`8 zr^1~VT68X{nDMa~H17lZACRD++sZjCYhO34hxD!6_4VJ2C^~d~t%oyb%h6uogL$?z z!OD-&iUZkceKWGi`ld3ItUsdEIy{*4J;H-|3%9z!gNbOC2Xm#%eAvjgVD;O7#p`q6 zzdZKa4gLPBC{oJ!J`iUN$v1G{mu$DH#_iAIu>1{vxMA3YpM5;wRNfA)I=c&qaLY3h zV%Uc;eGkK0uK_W;tEbAc@=@$XV!3jJGy|q`ZxUJ+W&l5-%V4`Pzu|y8W(_H+;jR+U<{;8+6ZRRO!2Y3w}eLCmN^c$CgG%>39T%M6B*#WxY^h zn|x@!P%0UMm?13S?C2W71v0kc@6-(j?9XTp9zSP}tmEhNsC1czZlzu=JnA+Or_c?YvNE%0hYeX1aTL0rxSY z)8nxl%+cD7otOGXi zg=dT?sr_!ytc=xdw!F0UWdZ^*Y3uV5LtC%J&QPPW2F&IBs~KV7dCL=} zi;3oR>&xRvao0J7qE5HD;;Nc5Xn-@AU_*Y2%nw@ z2w<{!RBF&U^r-r;u~&v-k>(k{foBJNL*#hGJ?kJm%^5ie|9(#%sxF;QM7*VhzQsE% zV+wkNfQAt+$98eEIk+d7-HkU_>|JUE6SO$SKn zl6MXMbo`F$Bbl^@Vg97 zgJ95%7{*`r2>1%07YbqLGAu@22t#!b<6qDPqB*R{g)uZ|`AtW+R)FH@)Q*s&QwKs0 z8t`NAlX#G~1BS?s-xG$0>Th6m=z;A7g0R!VE(?1tBp80rw=iNMZ?$5RuzV`~7vCNl zy&O@B8({*UVn6>M8 z`8umZbIe8#C=(82WK>S5eq(4~VG+h8})ro4W&L()E8*&~LnH6;T_y7Z8Jj zE&_02K_?RR&XV1+dneEunRk{jOFa2Cws@2VENmrDO+#(cx=66IW$uTLRuS^G6W5Wlmu?`$jX78e44^7dSo4s`!f_6 z2t#F|$zPWZ`6|(L+gj;wCx*NO(>7jsr8-h@04{v+pHIyax*aIu-ImO<1z$={O=c<9;c=!Tcl&Xpa zJV^SV2rPj&9^(4O!!6h;Ph*nF)F7;x|$Oe)hLzc#iJFB(~J+fg_ z$)% zRd`4+(%mEl-K_;F!sW~y%4PY2ZfE=#xzdh^l(He;uhrM^QG1{7aLeP^j;bB*=rX)Z zG4{Q(B+}5~)>Iu_HujyMzfD4an;3dz^R1c=d%Ecm_O?#+vC`1wmr9zVWXjNzn)b*f z^tUt8{q5U8nv*!nDp>v}L?4o19Gbi^KIB>K2(OwL*1N;+3J=BL>I@h78S@8F7((J!DXP zNIS2Uy@nfZAS)&&6_7Bf4ff1R3LC;|gt6l1LUT@sO^TPcyMbz^>-9Dy&aJk^6*d%8PHNxVLBfrqtOcd@#tb5CEf@@(~ki~bmR{Rd! z9a68OQLx}m^ zU0|@4&mjY>d_I2nD{r^MFc--wXX%D7&^!U7jsUX3r?NC)vfBgZAkq&oo1R(L$3HDh z{Nid83Tej=U$Ryej9&FI;^{hkOlW=F$9jqTy*?(5@F&EAn__kfZi?A#9kV()7aFRTNIP6Gg1`AEZuf_aeqyI>gbkJqLiM@U67u(AjQH zi&#E5s|Pp7%_Bf_RF~5MN&@t((q{I_fJ+J zHo$D+-!c))m`%vRg|*#1m%-hW8ra=)EkP3zwx7EKG0Z032VM5L%#rD*fN zs1!}94HQ)oa`~2x^0z7~Nw$_{a=(^YKPe&*=P(I3pq-Q=1KNe(YXP;Dnn{bSRawB@ zz1)ZtaJTqaGl3@&lQA~a?-)!XPri*}N4MWN>0EeTKFim-dGIP!5N&6I+u+{?lq zf!_%o-HyW^dvmc$*Ogf#LFN;Y0h)D`%zZPO^{0FB9)2;iS?@+{V4r`Kz5w|A@9c%@ zxN0%o_gOywk!J#qdyNw82H|)5;C0~t$EoXfFd1I|3LN)~>8a~hNqGYv{#nDtj_;Y} zw*MU04r8t|ybWqK)iVuTAGeGSie_fU+IEW+>J-VtPgfq1!|)h4_yMgDbLZotE-JBO z-UcjgTVi6z3q~ySx#zIK8pP(d-A3yU2Akjl8W&>C88o&d(}{~bAs`@{<9aKFcTT!4RG7XBNq3;#g_;U8-}sUULfaV1kqjx9MZP0B0pWsy>b z0Vnx}n3?3MVZXF3!`e>qmypc3u06fT z#Z@Iv;c*avbdOELI9|N8YBVnisl8HH|F@LKqgh;ev>pr&_K69qLLDK#ys8ZFO4`A4F*rt29sExbIa>D6Ug)AU#|eEn64MB|Q$ z#xwGi`h7kdka~FkK~1c2Bl>Nj#SVuDpcI?OaK9-pE}hEVFw^sUHcK?gXPnyMity#1 zqtXO2mg~sHO*+DriF*cP7MawF9WJu+P{@^spZp+q?b1m1AX;0{p%tv4$i2i{%0c!y zI2ssl#NkmUzTF{Rog(x;CKobtiNG!PA1Yk@I8gv=y`Aj!z+xLUzx>*-~VE+$k zF;6>Gp!GF51n>JAJjdvIoY>7}7ldAHLnz&?13%W)-I&SUObue)P0!G?$F<^GN$T2D@QH^jL-j|dKb7ajAp`VDQBQPV0L>zg{hU`Y zy)5|=7cDB|*zN<-h3N~8lDQK$2TkJEaBDj(Q$`@%kyLp9DY~FSR(62^hP@W%V10q{ ze1u~CAUzd6_2_ho>C9<zC^smhdZ~8$UF@W|Mww9iy|g8n<#pUq9?ewv-yl%%B*#+W zRz&#`3+#yPibkQPDzB+N8|wbA%Hx-B(LBQAM+ax~_?ows$NRm3Ou%q09)Aq_vUz;R zk>v5vY#u)fhNXEtPuSO=$Hg#&Gk9Deq@a(9XbjBbSSNY>*93v5c}(?09=8QNK2LVZ z2#=YV#p9uOuA9e_xj&DSB334qsc-_(G>?}E$HRY^tBJzY(+6cUbuYQMw<-7iRme0D zQ?D=U&(tHq=Gx`?*-Sm%T2}=(A^hsk)Q_*qV(JPs4w~x+nfm2&GWD3lvzgj%OzjAm zy5+~{!RU{mfQea5z5g%kW~yZF&(wVdv4E*-q}zDGy--+ulW7Iau%xGcz&xlw$&s}7 znIevBh3*wdFr;V-?80p>Bx3I#(N(*Z&Y(_|A zTM&BxmFlQ8zW<=qriV_D#hP%KSHgA+J1y+8u-C$zVVW-=p>zs_e)5=B#>$zqrGJ1? z5ulR_zl8qpIio3kNJ%8SIKEX9LDkyS6UZm(Qd2sqIf9Weoiiu9g3pl+LgZWGeU=KE z=_~({ddlsLEAk|(%IJ~)qayAkil;3rdUmG|8Xd6)T_?fqJ$zrcGKO!}h($Pl(;6Zx zXdw9kbSf%Q<8&_e%LD^x+BCd%JxEKTtfnuvb;7#@RWEvGEjo)>HB_aT8KA5SGexk1 zls)^T8cYG zjbjsy=h_@;6RczpAcn9~Ri$noO3kn8M$9L8%#Ge$Q51F`*=y9oK-L zZsLb%9D4ou!F&BAlNZ}T1;Gr;1o_-|NroBIKYbE~UKq==q6@#`j0y+FiJP?OZ2B-D zI^h?-$IUz1N#n3*EyAFy}PW32lr`^WTKHkMUv&d@O5Cu{b%RJLy=g{9bd z3crD(Kz(KPA7aB0l_>D6VQ8}vDpo(ngcn?+6*GgoPV^i0&m&@P%GlCH^wQvJBbXJ} z9EQxoE8TX?LL76cvek>v6mwg)z>QGaP_P}gKO`FWC9eGFP6T!`RFF7Vh8P^i8{@YO zn`9@@)(djX+D(gE0XoEh}=;ausV zGHixtSQYS$;{9V(0jk4i^MEv)4U+AmnuvCW`f`KwrMB<^mZco()NRWwAQ!?1b4RC6 zzsHsxaRwNTw1b**&s|9ZIlaZs2-X>UZ2OIl?>JqM%^rjga3eD7bnfrSVh(eudk38D@SQYw5&so68yexoT+_=rIfY#54|h^0;| zzDHhu?3AYd#FwPFq{8JB^UZ@r)waHyjOLjVK-^$>Iv(*<&+ zhg_o{7?%&_{zHX+U>qV1#}SIglGx#gFg~_3_Eh>soh1Xjs51w};yk-}Fxm#D=J~)( zX9>*@f)ttfE}k*pvUuFB zyEFiZ?;ztsgf-m*y`j@YRGS(a5TwG*C4z3%z~~y98Sm$4ozJ0^w6I1WL^KQQTal2) zx)&I^$=O)`f6jVh&D?3MPeG{+UQh0i_3l|%Q-0l>XJ%nthaA>XI?)t< zxah)fKcfq`aBN^_XImv7mGQ|2Tc&~xm-`Xc1F_TMYYdlq^VAvewHx3Xgelb2ApRtBd!g6a>n>Y3k70Mn&>DULBnVR*;;mE`Otx<30LgrHBAAqgxPzWa9@ zd!?$CJ|+|{LX3>3z>*og#Af3UmF$fJvd=psAiFt(pX}g9wj>+bOzww#K=z?CldMaw|`+?F3G*<&yiYirLs-N?ppq)m-c z)DW)l?NqrgQct{)q;fgrWJ--bo)h)O{%_5@QJT&irHu7_eZP@RE#N*uj6|}7kjPfH z?OyLIkw?{gBAa2cn@Cq?v~5kgZ6(>-mdWcP_?${@TjqCXQ)GTtnzsZ*Yugc?P^s#_ ze>1X$!d}Dzal2dEz&iP>XwDcEd>8QJ)*3Z$=N}BLp%ihdZf~-yQ@-NzX@qLtN(y$> zu$=6w>2Qz1A;DcWi6pM*wmC;*QJ_xF^B9S8I>pB*Zm!(NdI8QI;$!*zwl`zmO3)49 z95mg8-yDE!NO*Qw${dbEY@1yW`4IbRWH_~V7Kja z*itqREN6TmrwM?ZwiHMyL32xI?ddW&ZnI~sX~eLS)*aw3a0`~RJ^SEM3e`>I=du6A zE@$ip-xrZY)0Km`g*OYdY~hs@h^t`DyOD<@`(aJn6dm3)Vm||Ynt<*V&<+w7AGi1>R5 z)D3|$t4$P?VyhfHR>A>jX@phdcvpi|tk*lRUS972$$zMT5gyD$0B+Vv$wPzyP8|NMzt{R3%Vts^bh)#t zwaW?c{i%J?<&-}wMBnJ%2dEub&3hJScR3cKAWS86;SE!)%N+*Kh<3Ridgx+yghVRJ z0ls1_RUp3`TuvWLcR4#QTB;9e!l68L1aOFP`OwbLny?eU)rB$dOr?Nd-NjT!>uB-7 zg>m|CGH9N}5}d@b8Zw`7s85I}=5g+;2EAg?X7p?qp<%-R8VyqM?ucpMB)r4f$~S&>BdIcZvBn^tlOYfOvX!JeZeWrRE2oY+z;}e9L*( z&>+BF{*m}j%souMrrZBt;_C?9CgSWw(-#fnMBv+TtiKm<_B>zVaNA}o`~mQS@P>PE zp%0~@7c+173qWV$JC+C+NsilqiI57g5)1k2rnpMB&h!OH;{$IYsT5}jAko9X`r!ik z!PkF3dw@QXBljQ<0s~7qpgMb9b#tjqd?LZRYVuY0_m7Ee@cM6tTSOOS*LI8e*MD=L zdKwjCaH zNprLiN*x?kaH;T_Xbp*K;|xP1@MEipO0WOO7EFb^5#`4&@rnGyf8^dwoQvH{Khi^; z3P0jMQgmDgyuDJ1O5i+$GafYHodd+8d!?d#t&Wa=NCmgL zzX@6~{oTrcPlX4uY7Bu3|GiDL<`aw;T7ZrW0-!&jEpT8A>=w8LpaZwSB~nAEewtu$ zn__X*BJC>eUjI-eM5FUY0OAKqqYV$~D8n__zXA+LjqF305gI7ynMD>xEu^=P=@k}M zT3BOYGeR~z%csJ-YlCAcP@=;TrO}4Q(S-jNv6C&bT_91Q=N27nji5O`L=J!GauvQ) zy*P%bgYi`OedLf<)9CYvS{<73z}j`3>g&)Pc|eONUC5>~T3ERd6*M%D2N9=Wkdxy< zOo2%x8Q%gk^?YGj^2L(mi}B)TX6`KK4G+b6mr;1csU+E1`~H=&f4raA=(*a3!zb0X zUy_SlGv19SUym)s<50El4WD&Lx^$uK5B$;cwcn1IbzE8fvZ|w^j|}Q5E2;fv@T@)4 zaJK(Z0P!IUd$vHa+*!k7we3TDHpK5iaJbgC=K;acoL%WoM@vbol>K>FPR->7(VSVM zgPF?b)3hti1w-6!V5wZRWEyr9Sm-W(S*LD13!wAUSB?&*ZiMSqIyo;>FEf~I>c(W5 zx}`Vemty&~v_x*gM)!sogg>=$N$|Y$m|zaq@A=d;2)ZTK>lI%i>}WuQc)`2jV)INV zNmU2~Vn8PMWN3*x@NL^6_!SFH`iGe#lr&E*V&y?eD?xpOWXy?f&;p zR0m(qEwC5BJ)eBTQ9n0{l~V!|&ulRg1%u-d15rgMk*L)f)O3OMo|<0#=A#XG0IFt! zCx988yF&?ZvpfNkyz*B+P5@eXbSVZ#JPZ6&8tX2Imo?TOZ#PP$&L+eH!7YU)LUu~~ z&SVixVB5g*oT`ybZzuOJgJV2iyEx(}jNN;!$+)C^P$q~XfS@*?k8}Dt*(`lC?7r7M^#9H@n+4Nle=>^tkl#JwV-<`&St<*a13WXz(_pN6|EiaL@HIw(GirTVRs8r#=)+SId!twaamD zVrn{Tggs){eM}y3+UgnI44R&zV$RN?hT}&cxGgsyLQlxehX^?|(c(vdF$TsZk-$z~ zY`Roq|DogAa0$4|nxK!=(l0HDFb6KcJE!u|5^5zus`ks$^dzqF+R3`bz$b-p_3!MR?y!=S_0|H|9;e z|NEE7rtTWNv&FixqkB9>0Kah$7uTt`UJ3bJGV~y1d^e6uCVEj4@*)2=jj-+kS6kcvVOlESwqT?Gw6M##7{sUX7CfTnMDrqm$X33O87(-DQ?y-7Ny z0V%Qq4r4~L9IRP3V-`(06DhVTjadc2V|_dWj;2HfP8UlNgH(9UPEwV?(Uffs4pzE- zrlXJ~=qZqiKB^V(?W2nPPAre2CKrf7EXb%f>((6>c1rgK7RVmHM)V?lD*x%lui2S88jmT0=xXk1JGa+*4;bs6t+^v5I5V;ONV@W%45p|V@N?`^n6MlA7 zMyF8;rBNAbs6ar-qK~duuG|Nw6m2}F{XO<`bLBcTxR^x|S9f#3l}qr`>xpntrU;#i z{IMjarxY(;cEC8cCwjDvW3ucZA_;?rqNoOqq`;tIIWuSufe(TPjUU%cNWcHRpy37m zf*q}otfB;W`Hy{!y@XiSIX9Xdv}j((PCHJ~Xq3d0Cr0DRnX!2CgTSf@&c5*sT)+KT zRM9YGZoVflWT?E$l8&x->=nWNecXhVwrJ+%1C_~-^|xq#i)8De)6p4aX9+@DG&Km# zqTwe|cO;K_I7l<>MX09D>*d<YJ<)q|$Q`L!EMuop&4$gs)fl;qGHIQ2q{moqkMGhPu{r z9)DFp;YqL82yPG_azKSg>PpHz2_tdH3Aes+OIBIqEK!Jp;!-Lzsz*}j9zzTU(Qq)C z8ge|+$WtFi5q~TS@NUGTz|Fe}Gxy>$tM^m#e&(l$j30)n&}EQANciL;;b%4k<~{yA zU%&TnncID${oY!@Mg&*#E)NwUCV9SuGU6sqsSXS*WOX?FUi@y=PI!xBAKQnEdw`Y2}lCMjL2PRf7lM)TTRKDheLxUR5E(t zh^XN_4pKsoU?-1!U#Z^}2v7I@q-XOm>krir19QkE1z%0@+8`p_U~Oi{4?0rI(aKtp z@du&q`gJ7SCJlT1f$foNeS6UJi~T$@y9d=bTMtqUS8r>2S6X$t|0paz!N)}2-Wn-G zh;_Y#@C{w>S}wYRTtR$Sq^0klN^{{H)IkIL8csw5-Xt`&{z9Yw zYro?yU$4ZHm*Cp(OZ4FH23*K1UW1!YE9vasp9|69Eu-9FB;K0 z2>#4rvE+&QJ;M@wp>b>0Q1xezMoG<;s4x+4IxZ4Ro&eyPcZz3Jjl0K|;65=_w#aSR zud*+#vJIrNA*8A}rN=}F!9CD4j8jA?qV8*OM~VLAItoRc%@ZL%5br~7#tRXTC*KL0 zk=*^iid0D(j1Un5LQ6~4$)mHRYROjVxrsLFKapZ$p$R*p#H6|pGyJT$5MChW0J2*g z<&`@hisB7)^EEgS!#X9$pOM42EHzuq^**I;*sjyW$b`G$h=YQmq78Uc=~IXqb|N%a zEI;Y|Kuy8SU16mSk)ZkltDgDYj;P*j`a(as7~iiXCl`h5Gr16gRvv8DYoS|`H1#D_ zwP}nb-iM#rM1T9F61^D~h}HLe{DD6w(R<*q5P2?`><$!vUZUSZ3yH~I=vMwVljubn zBhhX6X>TMng^SG_FD&~LN|&_ZYH6St-aqq8oqT~L;mZ_WS*p`i_fM=?>flJoPc2a9 zEkD&WZ<`4}C-c7G27S-G&)F`z@9JlgnA-u-n0HfSCiAY=7)iX$|EzYE_~{4ZDcE@9 zd9n(9+ViB^{q+gu$>1|QPx6X?PM*9I&)~`1WcSa?lO!M-Pih)6c``#|FoE2!{m+;? z2|vBVC6gzMF-=PI`V`qHh` z+or8Fy~4NB5$UM{Dfz$Z|H&Dxv?Fl+d8uCsk+N1=QlCkEo5t8m_xYbO_h5(WX66%-nLdzwj_34&WNwApc?(diE`4!@5Iik0 z&X{yID=C=PvADTH_QM&XUWogY#5;XVEb*iC2(?+_ z58+#ucZ7ZndPknP8^U_kVmdkkkH{$*_W>Pqba0za(|HBWxKgK*L?m7&3 zE5ctCf90{JW4iFJ9jX8y%kXm^e)8=diCim@-ZHG|)LqWe5BBWEYvZwGc+S#Nu^fTQ z=3vJP_x`wC>KR}NQQ87n^jtPzwVL7U5Hg&==>?A)VUiprCvpGnclZFha8f=McK9te zqr_f9ECXWW#o{l(G#410<&_so?Vy|y{yrrT;A<(XpsZYXr^pHgKx73s#GH6?miz35 z?l)6IGjGM}=TB?N6WKX*Zs1RAMvC~;%y&(fTB;Q5J~7$NdMsyy+-p&WAMRgw_IIou zsPjUdX!Y^9B`o(mzzkus2TDLPuR?zgD3-6GtVO z7pa8j9)Ho?FidslT?H0kCr*xlmOYfr6{?>nqK8QyV^-%X{PqSzc!wiZ`!R$28p?;0 zALc*v+Zl;*KK%ZUPYZejwK6^D3!GK)&#pLo-O- zkR|ADWCg*7FQE&Px8T%Z-(;&4#uNfj+)yQfRep0N9gfRn$K?IUBSNf<7W}igyujud z0^~XZgVS2N)`+Q)?F$Lu6Lza69qjt)Qc!2jJ?XCBbW z$Sl14i{-t9S@rS;l7JqV|iq_^rDnM`mK??=84Z56?D*XHL{MrDMb$yTEoyidT{Amu|CXvv)}{ zQJft>H5GnkL)PB~+1RL5;c)(#3O@2HbWXUjMAOPSGLRMb&)PYcI8YVTt z^9T_moTgYlE{$@3c~W*m0#q!CALNjmY3wRWP;t9N8C@`{2!} z4GOxP=Rk{yCb`cPoD7|&TOr8{_6$&i`<^qpdD`77TOtE^@JDRi3ZChN|yunsUpgc<3%1m@*mkusqj1Yu~o8m_>W{L)^j${ zl7*7>9{-VoBhg9e<3L@e}(_EdWIwiVt0KT?Qokd)I<9e3)d!Y_kP zIoQe-7EWgv z>?h<`cZMh&SYpgWukJ*Ebc1fgr&9}h? z&PA-;6m}H911t4bZo@~*FoUb7cCrhcNf116rMRgi)~xq8Z-|D@zQ1|Gff=PQ1}&5J z!j7|}qhe~gCHHb1?nOd`RZybc14!d6=OEOpbG-cBVB)J^n}m8SrP(>}QOWS0BPPoo z$?0bXOKM-p^OMW)12P8L@bD2#CYe3p7FkM+Z3OJX?|v}s0%ztTs^q_0Iu~sdFskVQ zB~?CM>j85d^e4mCh6>EElVwUl<@$K1qy@$SFr<|OTHz%b!r(^x7*TX1e2g4(|E>Oi zw7m&@ltt19oIpat$>798dp~%qJ~2Vf)Fpn6I?|)MkOjj4nI!t|zTfxp(>&8xb#--h zb#--jwaFV@) z<9inp>2co-$9!>@GUL1~bPIaZ!Qdm4by?_)rHt?_bl7C7Ee^hVXh;l(7mJ&P&RI`e z^#!fVE!55aa05$5)2GH$`!U53;Pkp`A z=(CdNk*Q=P9Iz44qR&d7&7KeBS!cE+=sI)p+tp{!H4`~AsKZc|81oTG(r1TdkTDYb zxy&tl5%_AxV2sgc$Ns}=TG)*`kr)f`j&jqD4zjA92Z(AFMweQeP@R1j1QAt>gn>HC z)=37gtgYzb?5s7~dymtDo~i2U+fad#R2*qGJ89tVp`U98gAB#vS%OL}tKoeh!r`32 zRIaGLJm1x8+ZlzdQt)Wo7OD7Pgjlc9Zl6L!{wTY^8I{$CJ$ z%>p|DlL-EYGDC1-ky~v@$bb6~A^)4{8r4#?Ur?QlAFkjyn6nj{%v9BzBF)?ZdRlnU zG90xa9B?`4o@1GPYy}2KBv1LOp=v?Bolf=kN&Jk!s^FOJVdF_6QpVMB=Zj8rd5Y+m zlF?no!04m3+Y#7`_Gph4JPzZL12`q=vHmp3|t`X12>r1VzOBf(8*??7qm~UZPw#(%`fS-EJTHosQs#5 zn=zAm?KQhHklpCDDJV;G9XI=QO~*=2qSwj}pwVkr|Fc`YR+s!0z4qfM=%)4BE2-Cl z;zp^xLo2lnU}jgTWw%jCb1cLIGxucZxv)en-izv?)K>qsi&85zb0CsINK4n*ptl4y z`40z~nOH9j;MYXg9TyMuHi^7s6%YJqOOl%Lz$JT0EZjvErFOkeq=m38VDvW4RLhaV zd_goI9(V>JsBLUbO4$fDD2EM$E=ztaJ18FL2e>#@IMAlW10z`zp4`E^JC_V|I$w@> z&s-iVMS11Js!=XSfOEb$8cnO(m5O7soA}dL&|-!_3#Ek7_%`8p!m5GuAj!w;nN`(N zj!W%H3pCFmbGY6vB$0l{vRpicI@ z6d0AL|5UsBPdm!V`?l4?YCytB^xyPXwg9uWaaXpEMW_L-;Dv+(|40pp`hmTl{vz#E z=6DidacVbcMB+Bz%)};NHWPG0{H?n z&ER7Obp=b10|}iR7$UDRi7v|aE24`s2zs*sx$*{~Fsu44exfFtj9vd^U8{uDVU-6O zEkdf?dNYN8vK7$lpKJ@{q*r+oWWXBT8Us^cwfjvH>@C?zYrlD z$T=5Hw2DTT*)%A^bl}gZn`>|2ZRn^xbfjlHJ+ZF82aT|18Jxx;!D8u)c|aM(Sq9BM z-l$vcls{SjkXe@GT_DLYp>eA9uSlM18OcobVwLzKlz8o*tnyU$vhIj@;5HzNDIsv1 ziIsu-FX#>KRBQZ<9YaLXg%(%QJ<@y5CZaIw(6Io^Ci@v9!Z5jc{fs?0jkE2pA2~4) z23jf2z--$e8poY&+TGXUs7r&4t?VtQFddSO2?H4KhQJ6U{ERiDKJsrVX_t+j4)dBu-|c43ounK(JHwpo$LeDdtFq!sOJDUK z&pjsyJOG53pzeo%BFMxnVUtH}B0DP{xZfn!NteyEiKHU-BY*-+W=hs8+(h83%JwnB zT615KfioXz@xX})St;zRZUSsOz1pc4ez2v+7^!!=G=dF%{~wp>(O8Lc4YU)GY-r;Q@clvZd-WEC!|d>@lGo zrs7V7qnYeK^6n+A?gxlqBDN*fHmg)^zsj^;+M^J1yW`KMJEZhl88VPf;3uPD;pX~$ z3@)#R#jMn@g7|6;OJX1kSk7oz&poI$EJyo6ssSM#tzk(`S6YlnX>}n(Rzhj-MmYeb zF2mNF3<-y!9OS~}`#wM!R%F*&RwU23+Vf8%^}t{T)qD--5?nn+z#3P)YC@A4oY<-s zA4e?2_R$Kj+s7DVWBCwkC4JFCd>nb&C3VfYvip|I!_p+tl8MOGy^o`IG?ZH8l{^Cj zkGD|flC(&#{@B>yN9*1Mp`GEI=;dfW!oDNnG6-L2mBHIwt+Em^`Ozhq=Ssqu!lNJI z7tRe-56c>WtOz(TvPHjwp&$fR61&CwBbrKP0e*<#Ee}7`GdTH49U`G^4o9@<3#d%=kIkKA4vPIJfrJ(&d_36>E}_3C z_8|sO;QGUK2Rn#VTdqb4Q9V(WJ9RTD9DPeYc$%wvO77MxkXu*v8Gf>+i&lyD`By;{ z7^9@tm!(RhdS33WvJ6#{r-+o{DI6c?d*sw>JO(?$A~Vsare-F_7-pISn*wysq0l*< zXaq;%YT?TX8Z>gK(=?h0p;2lyLg4+yIBUpRvj%a3VLg6;jPCoWnx6CzYF=t#PPKxf z01ee<(MqC(8H@h3XnSK8<4u%FYQr4JJ2FQNLZA&D9WlW-dr4yG5y!4H8avF>EyWb3 z-O=dmAN~s(O}gI-lCCs5_;TsWIf9-FW|%Q1ZSG;y98zFgsnG9^K?ds%9;v5&2hE@s zBQyc7Y%=eJoB%Zj*Fy9e?Y>~RhtaZlAO_6A{QH_?519nrn!6|7c8pvSdBdB zUmURy;%n|GF$v4@HKES6YX1bR`;^XgUya28_Um-rcs5FoT(ASw4XB%&-eg0(aax6o zDzAEmP6TgP0}WwPpizokM56$HNmv|cU~jf-Fx`pnB?3$(9YXjLflv*MK={oKsssWr80vpkc5-J5%oYTE8i6cBffiEWIv@Zr z!BN}WMoIf$H|=NYC~5vC{9^42UtK#^D)`M}Wb+iJV~Dc1Qp$>*Je+_*6!wLn39!Go zAK6nHYBM(lIe=KOEyy9HbG2~rlCxAH?7J2;4>ffHO5zjfGbfOGzXVk0N&szNl>mxM z^PPcedN-@z{wh$ND*^OjFHjJH#Ogu>Qj7TRJ^t75)wvR&LmtrV6fH?eAK&c0SkX|B z`2ktPNDx2V>3jQ7Ek>BCdPDS)#hAmLzL(;30KJgE34cG|B})?)Vs~cat0gXDjKm!R z>kJJ)og}VQ)N+ZDCN0RXmf8?0re3fic8dDD4YA)(T>8*NU9 zp;Ck((-o#*lA;m$g%nNrp;y6+uF`MUs!d_vTD2 zbMWk4321C)fp*rn=~-hpfV}{7nrbMcyu|Qi$c(8<^ghndeZ|#_zQQ$GR-5l32IHj% zIb7%Yx)o$ch&O(4{s5smS+9xF!PIc0)<&^x5+D~T0sDe(NYZ0Q&A?sGnB0CfMa`#Q z5V&bEnwrC=VF>5q%YT|Y56>WHh>?H^_U#>M+^Cb;nee_v$etr7UMSW)k5;e@{8Vi* zt2WXr9+-w8o0tiy5f6M1?42q+ELYFXUu|LIbE@pSCi87E-%a?kB-7z9~SSBHK6H{Insh@*;b@9MMZAnsp5-?TUkJECX0)e(;lcpV}k7^=&GLh7-#Ft_h zHUlPti_!{kaz`tguOop3U-QRQ?DYzfBBrf2FnB6*&XjxU|gsPcXZ_)7?^hFad#JNL!e1ErU`OF2`CaN zyg%?ISfzCp(YI5FuX?>{O{TXs*F4?1HK(HN|K6ILuVic9g|YH~Z_T~3f1ErL(3)fa z)7EUpc*F43^p6K-5J7}A<9CqwXe3FJQZ`7si_}2|&EGrzosj}xDp9@TbHXqh~l@^;Qh{@R;evzUs~RWrh>EkHeYIfXnP;zCrWNG2f8+7MpLW`A){y z-BqQ_HrNd*$)fG1f*jDzj@MlL*5mbEZbnuP^)ccx4$Vpobn{=0u>Y0`n-! zJHoLGLN00EhS3gvc+Unt2 z*bvN;>c#uqnSzpA-F2gA*6Al)r%__0nJ`MRAd3e!ZxqSiLI`?%JO;ka_bvJ+Q;&7T z>zvP%9thFC7Y{tDYlm-Tj&wvzbthtrMYvIe3IcV^Q*iskfgt3d!Im8g zVD_TeY-d6e2pp!w0~>6RZHxyV6ghzhAEX5XH71rUmq?ueuBo?&)I(^J^ywCxND{{b zn@pl+;5Tieo>E4cTJ-6^g*K6$uU_wv9z&}IY`uZgj`=(uxDz3mMA(>=GBHth;AcGW zH3*9x(k!B*WBjZ_7WDX2;+EMbk>dp97!~(kAg_Z&Rs(VQh#bOz5bQ$a1HrIGh^kne zDe=GvMAIsKH5CdsHWjgkt;tH3t%LaODssp00tZSkg9?>UcEmn&j1an^-}enF92 ztlwUVXf`uO6I)XhH9AeQk&CZ=xl_b5PkrL zwA5@z83!jXQ;@Fj6WdO?4XE-|D9&YgI^_}_J9`#lEsPw%(1)k5EjN=MVDdQ}uagGm zibS`vl8K)C<#u&492RcyrL&|Xoo7s{a`g^@wkVKE|F3eBQ#9pfVe}1h9zi8|Z1!j9 zI>Ti3Bt>*1oo_9`&-~ZHn{q0(0U_9#m@Y*LA|5yiMSZU|SGA`4svm{SlpjafACG{Q z;fJv-V8K}ct*wdaz>gZ(tf2Ykm~Y5@i_N#xd?%Z4CBAG6%d;&Sq1sOk8!|c`xE4Wi zd<&+Ph;tBunF7m2U-j2)3Jr0ewQ{Ujr$m0|{M z)~v-!$s!ahLR0x#nie6y3~gqM2TnlHY_sTygAkF}W+CG0%~UhF=p0id2iye`E^HxW zt=7#+oV4I$a8h=&HW@zbP-f!D4D;tTmyI#o7n&$~`+_i>+Qd2B6=E1&lHBgq8s6{D z>Xp(~L5P}5#-TE!EfGOAJPc!f)tXf4YE<)Gh6KtYyi+)1994^ymf}Ijr@4 zEHM(TTvB!jNzW#RtKxc1&44lWSAf~16BwuNMokjZ?Rn*+3>>O?gQO+o)~9g1gF<~1 z0yv*`0Q#C9{ff!DseHczL}T^*@N9`d}Qz zqV|DZ;4xF@H^OWVIs{%D$Z3qm={wGm)*ZAQF<4|rVq;(AFJHk%?$eZ#WR)w6txZKWm?bsS>OMxlX3n225>c{JJNN_$5nC(*{nYP9lv%0Cr!dVAuddokSNnRNp;AK)oec5SlFt_==JS4F^7X(qJa(Do-YBj5rkDqWq95YUA3Tcq`}po$s)Z-_TY_2vh(K?S zzU?|38DM>AM1}>`LP#I@sAQJ}RSug?8vtk4 zlKawsisxUmr66g2L;o5$1i`dpeyA1KaZuu@5B9>)!=C-VRvIhq+}y-8xq>H1-|WZH8djc-5G&6$-w?j; zI^=QQuK-|XQjL%rT!%1c(%#)mkQm;*JLcwGMNoRylS;sL5L_)d!tP!kJsBQn4fMND zm&TYz%=spbD*Zn>=3{4=(Yd>ink zWe^|!W4G}jF~7{J-O0U*ePDNT1J{}i_4oq(M0y`1Jen8@Pd0|}yAi)(TS&mKJT($+ zTBK)kP#?)^#R_UHFqxMU0Jv%rzi3Py3TjJ3-U|}&Rgc7YCt{UIdU-Pbs9{7*o1GQH z(pEGxgrh5=ApXZy`A`V|7vuj@M?cw|%W7{r7^KOsdJD?j^}~Wj%M? z?V(fcZ~*^J0{>+=d=-b8<)|i}dceb_^J$X+&Id7K`83D%*m!cnU@VHh+QGb)keQ3;|r$F>74rkP(18a^6K z8%Hi5KB^unE99om!=9`lV-%Q4{vlyync}%2b2S@nSxPExtiJoe3YNAZ!>$)j}7- zX$S)kv03E3DH02$XozxN=Jpx>&2*wm!oyc!e(meKlgeA$@Xok?gd0flz`S<_*Xr|8 zNH#%+;YTF)HvvwJasbwchZ}T^j0vdHe7{5Ys_9 z6Kl`P^u3rKhmo}A^gdV^^yT4_=zHo&m^@CS$8QcV+=kS0An<}%Q>ku#w9Va3A(vue zWcT{8?GW@EyLhi(DB$1v8 zDIeITQZg;tL_lipkD#Td7Da>w?6Ccw^{}Bctk9b#9Fz)!Cc zvk7q3SyLc}Kz0U1^4+@zB1L<_yiK-_MUQC*ek(isRNvt1oXQlE1wbWSYCx}G$-!VIo z@h6aBIcTv!#xKY~-IcDhwFfOS8n*!mMz8?SB{xymC-6$L*myY>2{m~844nLNavVGd zlkVhwKRpfSI}wV{=;P#7AFP#4&cOuOT4 zNM!yP8!q3L@JQTtU?gwpjKL@q-k~DV zrQszV8R2LX%S3uM5%NAcVr_ZJ8_xznV*^&#*OIi#2xJx(gw~*k+wNN7O#( z3y3X1BXyfsu+0VN!7BkGf7VI{Uxu+Qr6BM70$=3&!o1yuzO#3;k4XS?{=G17hwmOC zL-e9dsABoiRdO7_eO#f4f)&pz6|s+E}F1RDadv9FZ-1D zk;sZ@#R7aV2V4)Tqb*M(RER9)y$bUHV!G2v6$Ae=gXgaR}Ixm&DR zV$CI(1qx~>AL!r~du;_4NEQBxD??c*0cTOgKm#)hG)n?Hk_rKkg3K-Dh$B1|e!rTaFR8A&;;ksg8z8^;r(6`aBM3sGuK-)nQBR&Jl2gv$25mB}cx?cIS zvgqa-)}_{|PF{=e56=*z*y#J&YS=v0eKOKph^$4rj#+xHu=or7=(q!Gd%*IN2A>B0 z$_ik47`+?tSNS0EcU>ZgZb0WsED_z%h9h-|Ns(;*62FP##`34w`rMT zq#C{ioZkcfU?an_)i-J8WIU{jhK`x&a?;a}ua(|`texa=>|i33I)V}|9NkF#z)sRG zR3z=h`T@|LybZppN|FN7=};HSdS0@!PzGRyO8i(Xy5B>L7in61EG_771v#J?LEUT; zzTN9Fg3yYujgS=pjVC}<#h0~~f}Px|CwQxV0QpG|Hnodyhsz;GX-u)t2(t#_Kze8# zBnIMFD5c$>+;Xkn-h>-o%J-0Q>>$`>10R`J*ivFak|@pk>;y@ zo2kP;!=+&Ordy6cBwCme!9%%sej>9$kq?72JiG~uq10PuhGU^rc-Vt(Sh&Nf`k58s zM{IP@NZ$6T`-gir;f>8{1HyURrlpOdv*zgD@bKMj>932l9KH;8E-XUe7-YSghOUH+ zZUES)XIk&K}_-C+9E&x&%%O1Vz^qsk0O5! zBtM)+LGo+7Q1bXu!t!YSaQwovfN1YvvgOGa5|u~v&BIyC$yN#WymXnmo?}HlfaAED zCqw5sRo?{ZwWVrFmOAAx93N+9I#tVqziVyB`N-BN{v_CUO#zn$1(>L^v>!+NLKn9y zamC_Q$2GLl3IGEu1=wW%grM#KHie_U%#ZF)9C(`@KpG9Lci@M*^g?~10u@w1K-fFH zS0l}xqqy%wXnuTY)-NGTOyZx(-mB}?sI0Snm2R)z)Y9U79Daf%ATV{r46&>-^^@bo z&aY=f1p|QKjjy@z&L}l_HpXH&1}BD?^R@E>ZNB6(*qSe2MeV{{xXy_}k=nn>aYuf+ z0pprtFOF-O%}nYTAjcWI5dnL)SFTYUy_7;TaTbKRDKrU63r(qnhNNayc$F2FUy%GH zd!#nV=1L_UIYwS8R=IP%5qv_5ZxDigcKbk$aVc^T<4NYreWjNjz*8g62d3TWt2S$e zDN@NIlUQUoj-hm0#AaK63DpDH6b2$2FB_sG+#x~AX`nYLGSOA80 z^DQ;s$>v*WzIEn1-+UX)w+UbOd|ESf#dzSl#a#8+^Jz7v5q0KU&&J4k$r0Yh=({6W zEeF0vHxYZ}gI#OJHr=;e@Ti+_5JER@kXGu0YMU^9sO+gopn-}Z&dM8b{0Y4u4}A9u zd%Ycyw*90baX`ld>wzRhf8bmLpDLgl0Qj6&(aj<7q56D0w<=>}?=65I6X+X^G`2H7 za0&hSWkS&_a>!c5>_rStp!P_CRVhS3I-~DZU3rTf%lcVYjx(w#0q&t9l z9UZOYP`ed!U`%JrD{MTY#&)pDf)tt@LQlvd>*Gack;s&IU^L;d5;id&_z9^DHG-h= zz)czx4J{sMw0TLtc;L54W!@6>MLaOh<|UEw9B!g%yzaRl~%27J|vL0pQ2N?>m6|HTwq`mimtaBM;{cW?hUUhtYx zfx4*|8k$K;q z#*M64`lEE-06wP>F*{CryhdIi>AfTvjeb&KT*PA-C7v+K#(CVjP9_kqlxl{&8tP; zM5HpW7J0=suNHY>lc+`BD4VDS>m$H{CADB3WD`Z?Wxr+GsktT9z|pfo8!&JM*hqrV z0`5EjgvbjfVs2#>)RM(a4EDjuq!%MN<8lFbB;X%Om9_&R0bNTR1QZK#5^*RNVSp^( zPs9~tXX6;u*#M8k2vn#Pj6S|UlZkIp-X33dJvN67i%VBvpf!?Zv1!$WFC-~9t(YX; z#2>VEV6;Dh_oQh%4rvI+RKl`gF%A!QEAyK(;5GQE{(3Hio7mu(fvDqK2dCV;ONrN7 zXXx!OoJtP7^lb+F9pXser4%o?S-@L88s8mngE4bOu+843WITsww)y7ZD>5i@@Q6Kohv!gFp)ip$_bd0ON_kCi7MJY6Rw(1KU#a3XMRfj4L#s zM6qO`=E~wJWiz|Q=YelXkep_s3AF{yFfuha7b%qxyHPp7E@HzWFY|S64sXR4*mZ)79hZtmgcxb$+|$ z1j5*zp$#NbZK=E1TOpH|zidF&maS}wfXY2g&rg|*#v0r-@DN5b)B+6DK!iH?J^gus z|3-D@zje6D6%Q=INJe|HdvzA4ys2Og9Sl)$+RG=tk1$YFr^ zFp%v;ML^@ATTygfC&@;=QYoB!7e-?d^^Zdh+Yy?2#D+u&&9xzsh;_|o9$CPgw;(NC zh3kV8cIw@k^F%j#YN2O$W>FzcMNmKKrC5~U)*Jbb1`HgPXi{QprrcYq8l^ZrVCv{p z_&5~ihACIX>?Yo8QU}pwVgqyZvB<#FMwI!P#M zu8^{DxJ=|9ebVS00^@@qDH4JA!dL&y3V>tlMKr?20v)?OG#E+{v4HZ%^+lXGhQ_vo zwDD9PLiWwR66-gd;Rrzr^u$kkhh{5>nK?^Zx$e9)?H4)_HlkCa8xbu^9$s^^&78;C zwcBQ1+$u<&35mjH-j2e;tkSYQL)o&xATP$h74R2@gb?!y|j6RndwS9Fv!S0A=zw1M@`?p{Dd^=3PX@OhpLi*8yRN<28+WzD84F+* zNBHB|G;pF3cwg)M$(;Ic!AW?1{&7o^(Ty|dT?bJ{ zV%SsQIKOw&utYhHF6?Tn`$?21DR%E95V3Y%zugqb;CDfAKOFmJAP4}k(>$*Et6oAm ze=~!Z15RE0C!LcLM!kB!;eN%CZ-a!p7c2ng&@QH<8ZakDqbuvj9J!ZBWTB zpf@~Pf$-Nd63DAS6eYFmfE{65xl(iHl$jeGX_b% z>Q%DRIuWym2$oB5Pz5H2Qg$nT*XHIo!pZ@HpFb=p^*;JEx0)enVf}XUK9t+lmyhB> zuyK#!e(ouUO3c*~GX^nE-s-Z0iJ7DBKETY!Kyna}#K{#ol0x7(9>Yz-mwwz0zP*G~ zFM>|={9z%pm-C?$D?{l) za=jt6BwW>zR-QR4x9pbktIEblP_ZOo_v39O^(;TI(DzcG##^t#Uit9m^4^8M7tiRC zU)4IL5a&9woKBEZ%X2DoZ!I6LQGa@fX`Q3~Vt=Bc$3V^&QcWn6KCb#coUy8@PN_PA7kru)S>n#s(%Jz4Xh2p zf|H*=|DBw%YNGGhCAak`(>qc)t$>vg62C;E6P+`xlHCoK-;J$TKJHDG36Fcj$>Nk? zIC^_FANalucMpDP|873=!%e9Z{UL&TIJFlH9o1A@_=GTI52yAtzur=+y*R6;hir+} zPJhCQroz5G6I*5ZnKX3Iqr#SjhrHxoN1a|eOI z*c*(im;Aj_Ru(=18xe5E6`rqp;3;E+<5r{{O=k|taX?p%AX%jL zDv;~al||7vU=_uw8#MLG^>!vkQJNKTY;0x(=F4{ER68&} z>Tv#*@M)q|Q>8-O?}UX>`*VC@rEJCeun0>52CUF;zFGL1H5-%cQe7vPxJ&h#tb7{J zP-|dWJH{?5XLfb>DnRbu>9teqElwLD(dCkh;)f7Q31QM`7&Y@7u_Z^~=NjOWbc_JU z0ekq0MY7Ldf%PPI1(`JoIEh2baY~pvUQX@6=YUXci8E_wia#agmf<)ja|90Tbcp0o znHT^=rw*dT3&MVl_5P@Lco3~OMCKYb6noyRmM~bQbPuQ|Rim3|g)t^IVkWKO4|Usq z!j-0N*V|AX(=M|ipa z`s)yVAOf9z!$&%e#Z_=cnlMKQOu>d$;v0^hovE(I-9n6?7c}IqXW27+cTS^Eq}bD% z7%&OQD1ri@W6V%%62x$LzS;Kyemj2FoZbsZCo<%``upluTp!Zs)f*3G z|HT4FA`iy~!K$M{6N5dui#^d~zQTce;4#ULTb-O3crdY9xkFn?35cpU)JbNZ=;oOx z)<+;}@f&V^b*7&A=F2tOe=yKdUw-2#mWc&ucO__oQkN${w;PZtq!gOOEhYn+Nwz6E z`Tx)q0#V;Dcbmci#(IM0%k4o^ACqi-IytGn{KgP*jRgk6X3C~8zk0xe#xX_8k5c}b zBoGm!!9^IG1dH7;pTtHtG`iiu7tcVKsH8n#t;Itd9(9r7#jTXqo@Wu>WvMkgh(I*kMkf*#-0=C^eO!HEWh4Z0S2$ zs_8@%Q)C=86in+8yf=_*e-^7_^iMArM5LmTVY%_Z_(!nN)HexoMpBQ!@Gju{j#zeey-cu#zAtMrmS_0oRshz# zr)M)N1NRFu37TzJi@w?|b3OCqawQp(>jRUyKFTG?LO4@`f&KXA-z)RaA!2M)BC2ikp0ruD1Zn_Aw-#1v=N!64MqWBLGadb~iWM#|civNC**y&htyr)J=NniCs=4zaJ#S#3kM|ezOrmy;0;8_HG z_y!%yF^Ix#z<`3&*l`cvyqASFH%KAB(Mj7TsMR zJ;)6~U-d;)(a^0rcCn6~osU@AQJ5!hiX<}JhYaj@^~bI8IF{gGIN^#MP%j?10jb@M zQBYXMC|ZVzI0gJ-j^2^&STs?=NL@j5Jdj0TFLp3VL-!#fR2lE-n|&VupdP*R$KL0> z)`G8{sXIgcq@HMV_%Jg~ZU59U7WVT93KB?%A616**&P;$2g(pZjaV~08=ww(%~)@A zjyI9RG(Cu9il-d&&Ba%5&+Ih11#_qtiU51=tTV#H0Ss!De9+-rmx(WLToE8EW zako8<<6@q^;q29bg>qP}{&yO12IR~dbr8;ia4fI}s(6Iu^MkP^j0PgiUSXIEmtWL~ zC-pYMSaaQj4?r)vgf~)fix4nU%C3tC<~&3~Y~u5zf-}zd9i z({aD0_y6FR={Mbm_Yo0}`kd4;Y=vK1ftw*XqP#>Te+pt$-7HutQ*)ivQ{alAte2BI zBeN|HfBi7U<)q9Q04*?!vp|kIyh`Upf3o%JgiJ#*fs>6;>wWa2;)<1WLCp=`WrL+G z-H~BRS2Faq4Q&F|)F(C+V%l08n$J)ZLbMfep-Wp)3%7LPu%d-a;%v+cjGwifE9At2 z`ghAzM<3LuM$X(Fr+)(PdE3`W0r$MEzY?Y%lMd%y57v`$eqT&uae&t|YpaLQGz_~D z59>0eAa*BX3XpOozUsTB0_~ah;2wXPfAg>cYtp8kaEdSZvuht{-WPR`Tm(W-V z>8|eP#R}~|eKMu}k&B0w;)}KZrUTuzelcPSqd)UBu!Gmy3&1%g3=~6y+JrPnN2I^bZJSB%{A8|B- zTwJT)zfS~>4-36tC-JLGu#v@H;o%ZO@ME2?YH^EzfjYLu$w8$y@bMi+{LN?5F(yd@ zO*W~KTN?YCBndojlO{1~#|RBj0(aY_1_J!VBuU^Vnj9^3o}s0$@$=q`78QL zB@^*xQuS(vL9P%zcP!q3H)#+dG1=lsuojX|pLWyJ`37_#Au4`Rj$yUDdN&-2w}TlL zHEU)N@vsnj3i?^jv+3t+VdUzC{8yeq9ARx>hJcgh1v3W7@Kqw zu3UJl2?_h&WO-Eh{Bj$T0dbxUHL&7B8mnzbu8E4hD0_@u*4P- zcMd{0ntyr$yBkU^_=Oa0WV;d0G~o)+1h<5GE&-Rv4*RBwT4Fr0K7k055^$i!oWAPE zMk0Uh({hGhpXWV)808{N)DYL4(s-j_6KN->3`E}j>mx8s)!I~amH4D3A(`)nKS+EJ ziAQ*P3PH7qGO9;bJn;D(uwK>LGZ@J0 zgdL^vz#B0XKzfg|{j0v(<4q?pCc-^+Xe` zsNhfGHhs94%$D%r!Lbn!q!Zy}4<0+CYy%ib=lGaGY^rdnR!TZon*OQ-04=~Wp9r4o>)K1qgj5;a3FKz)IrY4uREsxgG(mANyItz;fw;8gLzJuUZ;neImG? zDntga;NrlR&bS%Xic%Mt_J)S21=nw-lVXAQm+4p$FY}}xkKkH%3gLp}SZ9jhy5koF z7dGLx+-*pv1y{&YP#`ZlHc4>3YZFBPeLKS|xHj65G<}vWD1z(ve-%Pt>ZZW^7jn9S zOP^X5G4&`gaZjyE%reBtU?>;{@dJhc0eNZ_yTxvwo%oKCV{M}$!Z7NlzRE(Du@*}q z*^llj-Y_^ZS}$OM+3|9iD2$Ah)2tYStOphcR?GgQBw(IWet}Lsxd_)$>zSU1FT%d+ zDaSIFo95`|Opb(kkc86B43XF0eNvxk9muT6C9~dZYcT6!64RMvxJ&%{Bcu=DLWLuR za)HxNEd2pU7fwMHj0O-!tKK1VJd7cnLh`4S4ME;(Oae}A;JXCH$J8QpEq7~*O}iT3;(0+wyBC%AxaPf*%3$E4&iW!EWej|e)` z7LiN^Ml$hi-&e1*wX8u({1&LO9X#9j)kd2n)ttg4W+Z|t2O*H}8dDwHWzkgCsJ0W* z2O#fQlUFEG$~?YB-(|FAA?YZSR6?u^k%W{?QqiETsItW%&r#&7%qfF>i?-`zpd)4e zvXgjMZ@-mE8B!8SQqx^bB5uS{RUm{4ml%d<24ENOHDe9lE$s2npfp2>=p`0UTyEfe z6ieqlC9)xxS_uAmy$&h~VxvL6*bd64HRhRiWTWIyVMAdE$ix?UQec^4 zl6Dn8vv(ns*SRMN7J;Jo$XpmutRWLfG^9px-e~qaGp4&_%>RMrwhmD82+6JSVX`25 z#jzB?t_exH=#(5bM@wk|9b0JHC&?Q-Og9ODw{1u|Z5cu%n*_%PfHQ<7&!YXytds;; z5Ww>F8cd4J|K1|_fMn~0;F4pyBKYWtP6&RZ9}6%nc8Wzw5X`Y5sqIjNXuE9&$vXLS z;?3WH@6J>6Ai4*+1p0mlMZn6;)(>%PjINs+SrQD>OsJchED>o1PI#(F+Sw(~cZ8iOd)> zUx!W9TMQU~?WT*L>nE9&W9hH# z!&q99#30AUs1a{L+=5To)BEe`SNu9@Q#ZMD1H_X!1<_F8Q&{AcRd)9wRz|)M)p#Hc zF=mfO>%(8nk}PHySi5;z33Cpv)2+k4%-NYZ1Xw=Q?$qQ*S0ZwJKiu5+Zq{Iy@m2pF zTL!dGPU1d;Z)i1oOLL#D`C3%O{f3#y#%|ED5gj}G8pN6r;XoXdKT3>vE;Zu0rg|8Y z%&r8nPk`A|DXoCD{0sat)^gpzj}XyKnQlzwLPLlEa$r304*^L|rzD^uzEa0n;?6?Q z@)P`7F{Dl9ED#TzhKPi?C+2GF<3_sc9QDZ2dMAhkzgPH)jw1du38#gCg&9|Wi`UW7 z{{iWL+P4`^`!+$+z8#VuSv6_7QUsATrn1bUe@VkEPC3Z9Nb z&4TUa$kuu?OnY1^RnYK@KPD}(AdVYYp3I|}*~iQ{_Q0ij*lf*l3>Ba^Tks7>x6Ah2 zc#r>nFfp^}{kfHD&0VrTw~sC2ZqTtjx*W7|H|UmmH|Rc4_exQ?@L{gTQTks`8WOWf zsp|EkSq=6D5OUDXO#nxFaqI8pViZzsIK*N`E+d`Tzi9^JPkT^%To@-LvZzsXZ}LI}KZQ)39YX9u`+yExVJg_Z?|eczx!I6_V7% zRJ{og*Jc+l65S^pJts3i`j!)28j0d0Zsl$8oAVp+OJqzaNT*0h@i;|lHV3q|QzX^| zfkR3{On(WU02SUtC|{fe^(xBC4^E%vG~#&${_Ew8IUReOf5X`bCwdAAQ3-KI)akB8 zxA`Q3z^XVNNcOFc`@q?PmOXEI#~UDmx4J=N4q#@@ay3FA8MP{GwH}xnmY(ejU{NU zt(FKVt$s}s@SX5A6I!2dyqXtW66pabl=;qvq+d4Kke^k(V?)B0%Mt3Lm3<+%i9A}_ z;kROVYpu+O&2}T(v8~rtD|;+8p_QR4*&4O6k1=&Qm<`l9*lVg}v|pPI|QxdiU*n*(kdAX!~@SFBB7G8aq5ysj7p|+q@#w`PtbVie*&77 z6bl^bFyX}9FSSZG*dx!Pc$136@g8Pi1@x!)tA`n=Tm`+yc~82HhZ&0d>B9`HkUcb>>Bkj4i-?=v7JU(-cIB2`Hwp7tFMweZ7|wW$enpi zedyc5DBPewt=A=x{$z!evdQp63+9zA2b`m1E088*8TyfqDX7g(97<{6(BdY~IVi@v zR5+KyI60RR*vsqJJ8nqar8+=jzC{d%Be7@;!M2_-s%uL;&mWf32PkvU`6tCX6x9O6 zhwv@N*P)4>f{O@}B!YZi0(t2Iq=}Rf!(?*oB8`Eb=9Li2O+&GC;BFg~3GYS}iok1a2OzL_HsG65-n(e_m%i$6 za7Bo9$!L22by)|Q9KPxu$j5uhr93V&w^c$SFiC9n#3m}Ou#7^rBV;2C)XZn(oO}~> z&S9^ESb$y+;iU#2g7FPIYF|cr*1{u(Fy1wxijuHP;$rEmUvu+HQ+guaJN_T5*UJb= zyz2`?DgjYpLpiMcS{tfo=n@;^{GiUVA!$|!p|(>&oU)VHG-aA5HT-QM4+bUXjA7pD zGf>b=W(sjEP^W_}7KQrv6hdS}G^-o&kcuH(Bl3Vw^UNk+CX+WFtm$+UBXwo-8K1Gg z#A`uh5=xkGnNCPQJW(J-Rb_paDIglGhE&RgV=Sb0R<9GJ?fV%>Yq&$BKwey#ldDLzCkyrfGO*0U7iJ+e5OJ!PE4fw&T0e=5YR#d1<@q z?VWR>P{pt3l-_})uX;~87@zIl9B#vdQWt_m0q0;5OdRheZ7jv(fjxkz(Yg-5=oY>x z`coUO4I>w_&C`c++*Yh*c4F426J}QlX6>+IhJ1^*^qF#iZ_y6%pn`p0*%8#J+$Ghy zh)zTBm*#`tOIE6pZ(pY|^JVX7J3f&;nZBc$9e#rPqC$EnDG;OJ3KaEaw*#fVf>I*Y zrOuDYBBMbw&6fx!&WR=yt3|RBrBm=r`_TW1D52B4A=Y1*9VqonLMaciP&R;4KS3#x z>Y`LC^|(|z2SNL`*F1gk32B-e$4XYB^whN$C9qW@doq>wVRoR@KMAD;C<8W zBi~a-d;o;YO6euk&1~Xy^106}ce1n(4&$A(^q|k=Q;B6(;flItP zu+%vJuNspqo(|Eq2;fP;#9M2ox7M}~ytRIckSr6y^B~u?nOHzW)#h0cGQ8+>V{|pf ztuD7q>C5*qmn*ySvE;9x45(Pvo=5&0@I?n#D?(JWkIz=?5@UGk-4Q zuj@-{yTcG?1>nz2=%zCXA@8a+gp}kB?-}w4fH!TZghdzIPz6KJAY`%r3#A7bzLcW> z@wYl78+}$I8)EVUeqn+18I06;1R4KYpCn{c78R5YB4V8IRO?Tjw2y`fowSbyg!k|L*c#ouCTbr` z*qxN(3=tYZ!*8FIHcTkHvc-r=(mqD$3ZN|$&WAS`?L(^B1(J&Pp#Y8VaoAb<>&vwM zVNb~D$$E{Boy{ZO%qvo6$J2n=t%h+wvZE2uMsCM1gOpYtZb5`LhTmsKp2(903CN(1vD(NX2ofcx#{;`AC3AEnBL0ntgd7pP@4>Y^X|XPnO90R{ z#Jr@>YDl&k471iRa8@I+JSOQAqLxhT0hl+YqIP%Cn(HrX6ELa$0q$4N*Z;18j(f zLe)_P-pXY)lVu#h> z(>m>KO_pMUc;NRS93E0{1ZM_YYu@rC-Hs$VB!B$ny7U?N0I2Rt7((=|AK2^@0LB{t zAw0IMPQqz1(q96fY7PwS0T4zOGe=D-waUObW_pykGQ{Oa_taIzGkmdofEGHO2U!1B z=P7u$F37u4F0ec)_-WOytm&cIA4{3Z-t+@lhNkm=A?NqY#DX53Cl+)IA|5#PLTnH$ zYkLLt<$B9*g!qiFY?Vu$vA{wzLkhmjk%a7zdgB@pXWWOG=^?Gh{kan2S{Z-0021h5|pyW%jEAa zFq|(i?q8z?wwMDj3;gx;_|hxRN6XmkN-?r-afcWc7D zhWN^Pf>4u}9uovBV+499?CGU?5psb(UVM+!Z8&YArws=o&h!$^OP*db@9SyK>?b#z zD$uHFcwQaP&VSC{L&IseavOda-#asHA3fn$+kUuhdq2sCmo;?T2~XvYOM~6ZpVQV8 zrcWBg!oH(m47*H7O@ozN<8RQTn%2uN`_=kfT0bKBTw06ytNAoiE{nAO)Usn_j)zJ+ zc3XD5`EF12CPd5FOR(dsySit`wW{ims3aCB!>v&=)Zb7x!H$Qo5_Wv)DG&5Jk;9k0 zR=9D+IZOz=6xD^VX2r2Uoj3b=g3P;;{T`jY#$?ac*>Cn{ABH$SN#$Y2!Vt^|f}=`YfE5y1Ccy5`>0&YgmdnBkgDg@vv6+((WTKX=k&r2!MEvr=A;G zPqMT-bLTHne89az@uLjIM@m^E?QSUcO1mdkdZgXmr+XS}q}|fTJV>Cx4vvE3SHg1nH+a`QXHYUk|4Q29lm^{p2@-PX_eng){ zjUGTLD1B?t#<*)VlXL9i(LX;JhoxFam0(Aa}54JUef5R}&xze~UrV+1#q z?GuiLQ=PoG%hU0)TU&3f*+rrsMWSyO;T6!{MbVZpyh=uY_%B|E#HnxijnuD04m9#3 z5mmNLu&BNb6G&0s2fn#Wpo~Xw^-Y_sHN~8~74W+XzO>IP42ncg_mj^^PxV;^`$nA0 zI}$z#M)#O@nRBLs;StieMhV#%D z)h&p@bAQqW&G=2Vl%tH%_-?{C9G!|@kf%D}{WH-EAf)dPeR)DbdVz2qpy|A+F96XAsZwCFcN7cm;CE^|wqn-dQVBQQu7}Fklfnryc^7;~&bBH!X+_&v? z)))jCObCCZg4HTLDs#a@xXnV^9}WPC z*>}Mb_C(-bZxw0Cp@$3JSv!Ly4~(hSgpV5TwKtPR=42PU2y8Yi-O=lA}k2Z z7%4=I|JBooGk#>xed^9X{{iH@k9<|n5iTC%<)ZRzc8Vp+PMm{4+$-KXzG58okl4u& zb73T;itQ)H7Fk}r_kqtVI<5kl z61=hVHFO+a?>$s6#GYU#i|bh$*N44vCrR8qeJ30lOSr@?->8Y6#o^Q0Wq#$^L{41h zkLDPo9YO3u`08Wh5(9;V#f|&?dw)nb?(^aAS^Ecy)MgViF+&spYiWb@+XHVH6NSj5 zY@5cRqlVa!%=rBz1b{Rb7|;97Zv#Jg-j^s(lIwZ@WahO^edtzFe9o{^M8*Tvr)zR; zkkE?-Mhz5gA_d$eI0lKwEytS>8DEV)!GxL^I^2f*%$a3FTtcZnHZ+N8yDgMPhQ70* z`OLY=hUyr4$A(g9Bpn7bi{Mhiv_S}U@9Lk9oaoCc4M*na%Sv26!Izb|e44eq63I!v ztd7R8uTv98<9XxD@uyB5AQ1ulRet;tCsUq3bXWtIiPsOq-9tPQa1p#;<-mbem`c}9 zESj9?Kgy1`s@t>h0@3QJ(6RbD(f8p$=PbU-Qx?V(zd?Gs{}d7i%pJrDSl@sQ zY8NZVqs3@ObR9kF@~7GiRQNbU$f4=`dU}z8OEY-G%9*f?whs8(K5ZTz7W%k#^{Axx zZCmqjMcRWuz}Ke2@4Nk%jt%kI0CLVb=Le^+nAVWb-veIodY znnV+7=a(}%jC43(f*Um^uFiZnnC~Wh2_cgI*Naty1& zldSuxJfp9b0<1cAhe+}y_fzw^>9U#DDehD=M49V{FF~BNT3ogOswvNW5nJ zj0Zk|SjKJ9fr*$sh!J14ZqHQB!2oE>#JDTK+3*lGh#K~PmG&~lr{tZO_A*t+-*~HO z3|=Q$Av_Xze72@#JEj3uF;}yS1P*BCfJ4K`2HHcM#8B!^9B-5UyaW2HTLZ za&H^TV%n||rp4I|y>*lc$tW5zTtav-SavVXxIOYdlSc;n0XVfS6cgdF=S5s&YHGdz zY_U>s-1qrrq-du^Q+dR>UY4wMJ0MuN*z5`r}WS%D0>o6 z2208^5@eOlssA|*tcLPwl8Z^;S>7#(A;B!48pMy0ph4X7w=YjC%gV3%a+j&o!n$)D zVQpXDqiirzanpg^fSw^nYAkyViK%6Skhs@PlvV_h$X6TcpJA74!5l5Ake|Xbe*Pr) zMBF!F$+yQxRS!BtX^N6^Un#p^EWl3_vmxg!jZpb=6vh775+pc!B( zCy=9%+d@ZOyU>x%6M^v>RThS%Ee$p#g63RXa0BTxy2K0{5m0v_C)`D8K_g137Bn{k z69^jdDWYTMA%?`3ZbL;f3kR1N(}*Wxr`FS8>+avB?AAMO3n+mezEiu1VkvX@RN|liR7m@XzSak~w`4OM zo|ppR!J2abm$eD^eT8@Uq#qd4E|ut=XuQeW&K_9GJQ(Ad;+^P9sCxt>qw)zPA;qtU zqvoPw>M!4!;p&&Mywx49QYw{A#8}Rh#2s#;)b{0brv1cItw)HRPzsTlK>()i|K@dxSkJpKSUp)%A&5UpBwwViTURL!n^Pn+7X(sPR5ljV>nvjGPoGX+G zs)cZy*;yH;nIUP(>uyV=)DYr`W(Fm3qnlVykb4?TGl{3#iV$$mHkBrI(YUU-ABeoW zyUO zI8FE<9=HW!$@7+|pX6T)_lRvL$&0G1%;;r27a6Dozxd6@R~t=FzK-0Wg`nE^h4hq0 z2-}o`zMEt$V2&3Py>}3aRp1NNU@?kZ!DS;I0@CZv6?ZfE1+3<{Pt3B;YOrxG0?3vqCAg{_hsYHIlCrjywL{ z6~}kK?1bZ?NjR1Pk2<%J6KzOpD?v#7K#<_cues2Z75qSCo{m$n@Wo_U;|LVM69qDm zBCTgycUCM8A=ZMgac9L}dgsZHpPV$vbo^%H3wKt7^gCs-7xcuN_aog|eI~D4<$cJl zgAcoV(<+1F63PSzlE8bxF!Lh<7w)X~plijQRT_5bw3CRvi0b4dBDN{rI*Gtd6v&3H z@WM0_orDgmGOWZ3)Cr}ohXM968<1iel8LYJ5Wpns(Lg6Bc?ckUaV^E6;1bHAYbnNv zV+f{LPFymL`Mwrx?SYs$mLxO6Ik}iAq}xdr0nY)p&hJLaSR6nZeayDr+*|W~oUkWs`DOUT=-ZvaRq~1*yS5Ay{cp(!3c2 zU9=HvFmYR^LE!=l*Jq%RUTj@-JQoy3j|9H)KoMe$+cKTyXq`oaqMd(Kc;yOM(BZah zEj*N+Y2B8=Y`Hq_#~YuB9B18@NhIEw5w~TJSRy<-}nFi zd^FElYwva0Ywi29pS3w2SK`U>81XZh6vDfg0k#TcNwZnF&1|zUiCJ=hVwQ-_QkuxZ zB$~QD13Tdj!&g&iAM7eQ6Mh23Ff=u5ae2yRY~Aki6!8FD!^$7`9s?PM zK{$jyCg-SP9N((|x~d%aP9wz4EUnw{6A*#P0Teesxs@AP#=XBGhYi*c!B18H>wU;a zCKUb1W&VlvAcunqfhvU6FD;uCtbz9Zp9gE`M$Lc4eBFs1b_8pnKsrEtg$NrQnHXV% z?xaHq)2(U5!*W>0kwmN@%1*!2Hes!qXQC{LgSEsZ9Ci%Sw8RJCSCYe~te5Q9d^SRu z27UJS-r_~)vu=P17d=cU=(8JuNcfEP(HxAGl+1?O#An|ihxOSa{L~WcFMJX{+u>IA z8CHRQvxm=E)suWi0snKKWum>mg0rT{K9j~1@EP0J2KlW1Z%ICTJUjRSZ?eyBN1B$n z0l$)bwqU(vzviAr3S+iM?#B`#!Bjf&Nf+V?VRy`3O#PZ*T7bc)$rXK*13OXt zXt#_9y0OiGc7(mCqNPXcf2q`tRXnBY9K5$kXeUhyX>4n%9WhDTwK(nmz-9~Wh!E{| z6$27!qF_wBu;d^{0UmHVwZ#kuM*5jz`%lK8>}D}niVN?$F$>PpOn5$v4>YtYerP> zT01ai-cFG};7|l4*8a5BMVQ^<{CI4Om$_psb!SA~Kbo*qNBox1)!%@cJMY~b8lp4s zK2`0++Qi*Tyx8NBn7RAn`xBSM6KN9FQZwLW8n2xrfDr-|UG9+Dt9r1lAoqgsym`gb z@6ZUub@%RvT-YxVnPA$?EfL6T!BcOH+k?k^3K}cJn1147k_=q42+hh6axyO?k(War zOUaOveA>-i{$%?gdvomeoDV`H9o8cw4wXGt`pg`5i*1FhV&*^xl`(BEK)p|`*4;^+ zqFlNgTOt@M7;~V^7USrC{>#D|A)=Q|gNCs?WC6&^)x|*=*Q6@uzptIW|JB-gC3>0v zzINUk0lH-E9L5g~1w9eJl0!is`MSS!#&#R#GG8LTVirA(_=mOZ{a^H3~Sv7y8AuD{<@6hAhg+%ZyKm?PukKSdIgH%KS=8%OodOlas{yk)RnTk9CXr&BHS{ zbUjwPax_js6#JCbH`yvJDxT>evD0h^rBnUG0S#GMor5oVl2%r2=sE4m>INKlu`4UQ zxgEN)+T$UVV93hq!AFTrURmup$6r}}xw&k@@=u;yS@A+NUT)Vqcx5FC{=l~m9VVs% zG6T>S`8_a6E2}p&i?aIvwX(X~F6va!nc&Os|F25I7Av;?LSSukZbl7eg=l3>MjzRR zr(G;DX_!?F;=k=~Bhy}~g#LtCgAH;1?k zAgd5L#l6{tg0t!wKqO{pRNVCAyBp~XmE;DJprx{$*f>4~<3MtxWg)uva7J1V)o~w} zV@?`!N1{hD2yij(lMBWH-kINPY*;8@YJgC{?Ra2-+Xi(Twpa>CLjjLvDBw`6p8ZuI z9B`dRwyWE1Z{RT&i7p^yJYagPiDMBvIdj_*HmPVa;{r#*!wyEw%)yANa4_PtSdTF9 zCrwNK=H-cOUJM2dOcsZkGR6-8K>PR+fdzmyrMAef5HZ{pY88uhn)45}<`=uxUXQWr zBy7#{J%U7s(Q3LfGiktj-+^V){y}7GX*amyKt79YC;%0;A5XhNWU4qf1#<>C_d9}E z4b||;7%Cs~2g`t`x#C*sCAjg=vkB}>nknw&-}7|n493(;xb&#lX zfPOwxbf@Fh0dAC$Yd-%jx;KzG$)2WsZ~Rs{~@scQhgOLylgGFQf5}AfCmSTpuqA z4oYu1NJOr1P&4VC^dZ)zdmSXjyxBowjXyi6i?&$^h~il9O=dgK%mlUv`?i;MU{8V| zTN*t!`EBZGOOFO@ex~6`SPh8Wbb)o9P-{MIS5aV+`sFiK0FK;{&lcJ8y4s4Fw&SRj zy7xkLc=#&Dy)00$D;%GM9jn-S9K~`yxg3GACByw@VK+9+#4n8v_NgDTEP3Jh81r(r zhJa+~7IcW^HdrwdilaT4@f3uf`gmi;mim5U%pwZ#FE3H%qrq>q7=hu5C^SYnlZpGfs}co$iuTB&DN0!#!S zOD_Erl9haS!Y^8CP^_|Kl^U2GDs7Ua(nMe-R@uiAtL*zks;|-^A_t(Vlml>mEBQ>x zN|mnJ)>$bjR#~!2|3N0IG%iV{KLg7XI8S{nvC6(rr1~m7O2UL6?*y0#K9+2yzerZ9 z6rZdr6(QDKAXZtjN~bV8R2rY8($65pG6O0}oU-o|slH0vC#$rXsDws{7BP4u_!n?P zvxG`#`zrm5D!J^*Dy?F6sI+O4N@s{l-O&P8@t#d3eA=cAorZr>#mOY@T`97B=UoD@ zc*Gr<9Z;-z1TJ%+g7`2STk3oLcwsq4OU6H2rt#0P?bC&H1VZb?K~)7JBitpd=%t0Y zqiQT8u8qg1Rr7FZg8h^SBY6*#bNg}TW;y3>1P6`Y1^vj>0o&ux*JiruJ6X# zjYvH@lvq*iY5Mas9#PDHAiU~_!uc}nA(~j$iwJ4KNqVY5fb+Gfl8knTc{~Q&7U3T)> zYFFF&i(5tQ*8bHz}k6ya$Wy;qH7wB_$AwUu6OPL zBGEf1lilZ&9Vuk;jzb%O@Ij?D5Lx@nNNi967y!^a6YrmDf8j0Oz@(rb?>$g3dxh$! z;s>!j+uXYg0c-rYcbtgw!808w(}4G{vi@Z?Fs}hhs<|(5F@;%HC#qXYs4j*VmBETE zRb=a9ZAETpokaB(#v>h8UF_{v1?xbGE=~?Q|E0b&l4VlDvW{9tx?a8M)Y&9IGt^2Ic41e0E)9%_>^R^FdzE9o_o8o{+f9c%=R zz$7(-3Kf7kH~DO~i){p56f+g!i#Y?j0VQ%O#=V_E!8TBvgiRCd-1CR8|695Ge*}J6 z`C5@XfT(+K?(|{l?oFbLjKI>w3RU7-q$d=+PICKo_$~*E>oTsi&gy3!8tWjboIf`P zYILF^zrbY>yXGbM!5Z!AuK4tjS++(eb=Z45toqBl;g70e588-%)ONF(?8Vh99mK!? ztgX0Y?5a8)Fr`BhQr|n%CrBaw-eCxun6Qy0xF$hRN&KINA;2ye;{R$wYEgn9oA{z( z2x>U_Zm|R@34(IsGln6^W5Ris;E6N*GDxHR{F$MJu4c3PttFUN=@W?09w!04Ex95M zuJN(C?e8EFxx0fzvuzzzLv_*}B*omwL1K&_uCP2SX@buj)I_M;LE?ay9n{9Or4ABr zKHwnnc?+QEtV|ql3tfGit-R9iuZKF=tdV*pZQGl73JQ$!wXudaXlIsMPNdeAW?HB1 zX`0PH`X=@FQn8F?5>u_rwYvh+C|f#2*)J9hR<`T+0cGE_ z{pB(u1ImsZM%h)w*-WDBwn@rXLIv@%D0_;7MA=ym5@intgelRnFpw5eM|Z~3p|!7_2_2e{nwB8Q!EkAE96?}GmBEBRy95@-mP_=z&~m!# z9AC7Q;_D?tMN44|Ey2+V0`cF|Bw)pmTr=yffrMGUgGA&M2Z?4oIY zv9`|g{}w{NZ^(ofKHxbresf|g^`yGVCMz^L(+ zL~`lUn@(r-lU9eAFp}(U8%@luwjMefTWxY|3{4t`F_^U8Y22sasSBf(_?0yJJr9KJ z3rB6&AWkhl>gPaMH0qHkOS3S;1d2IjwRNsyoWkb;WOk;E0Jzl31-LtFtjOYuO$Q`I6LfpAi8?DT4}SaNG1D222@&H=Fh~ z=Px7XhM3sE#6?KNQBr`_1R1YI^4baE(U)PjG~Gs8)5>!@WJq06@DT?}yV(i(-BPP} zHmV`}+H_lMr7i8KV^Hd(#9$^Z=PX?ap#2?s^@5@qs-ca?{qDE!4pVy)!ULQ_NHqfN$o> z=fQ1kgBCHbBmN?%nAfmD2k+}thdwo4+w+{H_PkiJ^(O-RD{T|!-&p^KZS^H!qjh%* zekHZbU4f8x*$`}(kIwYNC?>apk-{n1DBl@pE2g%EcLCC7+QJ?s6l|0?0WqjiM%>4+ zO7g9cBsa>L>svQgA+r{2VnUKCas&~B8|5|w$qntx`DkbtB{j6^!qV2ExOb=nrOqxz zei?!*?CyA(PG}Y%r=@PE-=BC&+EnV8#3HPl_zxbnZEbK1nf90xEI*CblBOoo9w33M zfF=*J1rlcaI7mch0*Vfrd&v}S(nW)(Gb603GG`lSRsE#Qmn^Mns;KJEy`2{Fl^fDm!raIU1-n0s3v*&mXw&z=o!%y|CS4#Zq zhXr4!U9c)q$%GQoG?scD*Gh_SBK}235a@+v_Pvb~;6)DWnNqZoVx;AC?H_zjqV6S* zljy4iQmQvJA@%lzXmQk`jv!De)t{E&hy;Ojv0D>QpGdBIF9{m*W(SGLKRZY?Tj(Is ze~yEsn5Q~OtZ}S^Dp}GZ2bB`abx<~;JpfS^>F&F38PwfhpJuyz>dkCnw!)VJv+`CV zTIogh6oi;fyZd~hRtstuy&o`1-Tjs-;3}as9b39>HFEt3(S+IEr()SV-2Cn3G1}jM zn$+Llr`Y;czz*A!*CK;NM@cgz9&r=RV_D!{(siR< zJmS_M?M%=n;t@{{Dm_(InR{YDm9XNr59S+391fmz&`w-s&wwmg-~h@&G>0$m7K6N6 z8sO7S9BAZK9%({Kb5$_YBa#W>6v()~W4>qK^mQQ8t45$fgx3K`y8V~{>v<~fmLTp7 z;6hoeM7#Tc7VU1K&!FAmn*E|+_WeaLVr;k)ov$=!TAGPUbJpyD*wL1z$I%?9G}A22 zXLpGewhPL6gE&}03P>w#tTdO;3^2Z532zDFZU9aKrMd&cHo)h@5RS<7@_Fmi`v#a) zkU)Z?euNYAu3DHQfR5VuruA#ZE_)t;bl7DY#YT_H5}TdRG=%NT%cbY`_@XqAAQ9sy`mE=J%0^-&Y{-sk}vp2eevprc7 zu;{`$d$SStE>XR%mt*jqW=AlPE?&s)JfA&*cUMrvh=d5~V9@*|?>m26pNLx#juc#q zt%#00f+7x55f_yNN^uKvfFN#HG}7f0ajy2V$B;=}vbh=uN=|6!qHlx9Vc z&q0=^-_cyGG#6N!9hBy8L7Gi1jr5YN!-Y!oTTAox-$dU9L7I1ogKjCDR*`0c(u}n< zPbtj_L7KZP4c~4G&A$euJjWLYjI$7#&`Id|%W{rvc!yspBitg{p-My}WU6^+70k^8 zd=-)h-okUkq7fpz7+y+~$$h_r3vrHJcm;Ozf9z2=Br12%p_MV3sq%5p`y_BLlc&h)cvH6l2+Vgi>X9zHRs_`Q z6h_#&CkNkOfBuj7YtdesDF>MnUENb>C;98gU}wE4a{B(tCQtY)Pk3X^kmN6>n%}-+ zn_Q0M!5I@gf7M^iY-Svw{t`;~i+{!DQ^jBBkQ@AUzc9l7Ejjr9`rv!<*C%^urUqn6_-pK0 zN&Y&dB%td_$m#nlgFNA{Ea8nK!AbsNs=4}Q>#wln!A3uxzv?e$HrH}&Lt_w1_=}Y5 z@z)mU81)Ny&1T+yUrgF^R6zB=-R%48S6L4B*MqwU7#$Br@Yhj6<_8m(XkTKPVEfu~ z@%sGrKDGqG?P(4~@YlM}vwq3Eu8boxX=*I}P~f=N*H4?`?UF!~zZtD2<;=^BaXQL+dCloo zW7)j8smB_h-IIwqh=Yq+;Ghgb=Q~K&jx*k~bZIQjoeB+##CPiqw_8Ik{(^JF;^si?i4}^Ftmot43PZ9=R8fRvm8hZ%Ur5QoCeO+FC*_}*Kl|j9PFQAcI1}YD zZ~l8NqOr#0_X_;B0ZSv%*LyRdhKpa?yY}6YJ^*CzCCM;@lZFd$0yE>NV~)+Am49^p zG5N=~w@~BrQ4wsQQ&~<%Q&(N;2RNMOD zfRQP4R|lh;envC+9a|YFDWd{UY<#em5M@fAL@P$F(?SdCGSjh1LNQ_c%(BmHJoS6W z19^0)5&!4mGsisn%yGmB@^x8rEJ>bEGIo6=E-T{(I}NxQMh(jCvx00Qu!~uSqbtKo zc3CSeNwrVXv_2BeT9sK@6e}zh?a`n$lIdFP)D}f=t`S#Y=e7^9bwU^HMQ8NbCtE0C z&QbYf8{{)=pV{`AXP>2b%AOI8pMh6Lac`qaw_Ykhh+fn>XoSyepR9&X=2e_m z@k@=Q;@E+Y<4iK6kw(x7?(iG!1Uu4@*TcLMZL6J&^rG0&c@)!wkQwHczaxSBn1s06 z;|9BI!(GD;gMGZ$ysL6z*M_*I&n~3AU}&t^QK9Whk`o#Z(C2 zRMChUgf|VF-*NAgugFC=&nvJo7WZ!ddUQ(u(v*}Me1|L_(xI!CtPepT86&bcvfZTO zv7F#`nv=Kh4z}-5UfV)R)p$khaI-$h$oqQ-><2psA#JzVM z$P&iA8v#-tV~oYUEmRHku9Eje3S=tH7x#X#oo%{!(zrz07~enG#BwS2N|#7K#l5Lk zO1ETvKog5IOU<&;wuD+c7F#CGqTA(wYA{ZrBsS11&r-*|uVGUc=v6UWkU#2BrJr5S z9BAV2SmM6%Jj0z=9KBCF9qmfcQSl42es*JM(h=GW@PLI&EnI^J#`GHc8|jh{aD#0T6g@7UQZGnxBNMWe&__T2!`OeD5@=pfu5buVivHfs=ydv~@Y=9X6vcIeomK8W5!6-0FQkx*a9B@j6FVcb=1op&uyP?V?i~U+c>sV& zKFzV5>jRl(k$jqifD|TW@Qs=3s!toCEg=A5ZkJ7DA+Tbk_u!>Y_H2O5Eu2jYZI_4F zQ-Srh{iGmwX{IFCP30M9bj$4^)&RFtaekks0LK<*WAuJ`>G&7Mzij-=!@pAeE4RHu z165wY$i|51Xv5xW@6ZpvW+%)I_!&?-Qf=s4l$S}gaT=tIk#7u%k=J4v!hno>i~3Nd zK{QG_6(-4URotsZf{lc0Xg2h8(3gckY{#;7GVqFxs18 zMXx>838wk9Q*c=-MjgCt~8I- zYcHT;b~Mmi{Uud4N&u-`p^OD zQXQaJiopYv1or&^3P=TD3F2N3nb1x;bgV%tAsssAs2Zp&Vw0sVuMSWrB9(d5Wq>-w z<<$Wy&nD^swW~|iVencjMTf!hn#cia2fU~kZM2fCrE?%bN9|7m`6G@5uh0>v1l(MJ zV8zS^ zLDe+ORwBFyLN9^9o;$upjCqBLv9QvX?^pDwZbEqe#gBV&?W*_XrM>`gU@LP`GI&!Znn=B zJk<)Piexk$Qs!FWh@p*X6flsVZljPi!F4V!M+<%zH&&)c5M2hjQkKg=mR_|P;k;q&UfHq_^Rn>nAqaDpl_!TCJgy8u>g8rJV2 zk$W3@rhp~Hd+YZ6ANc(ok#7Ay!zzH=pnSjQS-+Qa)tIg^R4eg&sNeI%@6Y;v-{~0j zdszJbf%-k2NZ;=p0UB&@#7i2kzj=0R+W8?2kb&}w|Hcn3@A^GI59i5!@kgOs_F^j?@ky=Qp@0M~&ZA+ZaY`Ch4qY!^s0ALkBB>+2sfEirf84u~~I-@rC1~wd-Sm#`PjykdOK3BU`AwqzQmLFp&t6=u|AlxS3>|T(ZYRly>(7o#i|qD#5%yGm`~sI5 z;%eEzWriDtF8cvo@g389Tw{dlKcmTTY1+c)IN6JPuUq_UN%%+%p^f5Rrr3?gEjGh1 zRwSR2_T`|4coX1&c{(zEieI*A^do7?OWb%$p_+K6;aL)0Zr74bH>XOU7u^K=5TK+Z zD<~L$u9D@98TF#>^DsAejH*W3)s>JRb9kVKj(Z=79-OPjy*J6Pc3DR68#q$xOk1@n z8Plw0xA(w^3#D>=Uc{@_A;7JhXnX0RqLbYBCwdq1=O_VBey{^6!oj7YXqN<3#PutO zg(K4=fy;fnu)QXClIn%PVtd|AkzLZ+L|W&HM-dPt3cTt3a0 zyTHGE)1oz;KRm_{YavH~ z%n?%Gy#fv#KsGVQs`+dbUiB^k+!ErVIHd;dq$z&)COa6fZ#*)g;oPJ&RY967EKP=^ zc}8iTur#MDO(aNjl%)wfnk$v2*3wK-njfYHblVO%d-5<#$R;&ud*Z^?9X&jV3|tAn zn&*xlp1w%{{ZF9X(ZjJS_Yp3eP`)Kd@{b;_egkE9M-O-Mj~*u97%b-!ajLkx_q;); z4o^;kQ6UiP4wEcz$DISZ97=&PZ&I+J)2Q|nBUmSLw4llTN3gs{20gm&Qdi!K#s*}3 z2DB^hM3yP$E#u+{sh&xzu%Qg<=+eZ}ZW{YXFEtiu{ zGxn0<&qAy;T@&Oi#B-egqh#M+;zm)D%|Yh{u~%gVM65y%*7b<1gQH&;+r()*aCngE z*k29O++=A=9nBkELbKA+T%t6ygEXgGnleXoi_%EbHU-VUt2et*`XbNI@FHhjW3aduL(X5{b}$ticn&h2qUw;Q4$Q=9Leoz zlr!;pgPunDF~R{GhA(c!jM1*xCLhd+0}|ND+EXR(@Z=~?l?W=3@U5OfC^6@nu(`5Xb^$dYQ@2zg#p1cOVx4IHYnOc^i zROZq?+bGzk%t?joI}{@4D{v@ec7+}akrNmTU*N%v;9-zgB2nBoTNXY#ad;yVYmFf6 zWMtu&HGFIGo67dkZ>n2yJ?(@OHrDHD>r3&Xza;u?arBEw^xH`EX@0y`9KF-v5sBX1 zFVNEiglZQcVs72EG#czW&ausIA&D8e0x%~qW)k5NXc4y3_py>@GwpY9YYFDTv7_6~lbcF3 zmek*42Xx9C>=%B-W$Pk>D`Tt|^7tnrTM5AEPEs+k)&BNjUPF!x0q1Q2Mr<wwzkC0^{5-;Pr+;No$Q)TR7c*x_~H-0o0%H8wNmnL*4V z(d%dhnX?^?FKZ&vSPS7_o3gQhNmI6}e{jln83T3(P-PKk84^e8-vaox~dy&QyQCCmw zm)1~->dW2O5}?ZbCe)Atc!0soq8S*tBm;DSu^+i^2E{qV6I zH{$l>ab&{41G7j!or61>XesOrU<|5-^vHtBsGCi{-hye5tSwJFuIJ^DXZPxG{pvFEsOZ zb@)q9*u)(*vHn9K<+at(sO~l`{<3I^eUUry3r(>U+Gk*&0+8!a0@=GXdzV=ihPnfq z_Yuj9F%=>MdGFA?V0|clNq0)l^#UB6!5Aq~KFV_V#5bjz;&+f|QRqUbvje2~gL%wkMvaHKVd$GdPkmwH@0n)3&a zTiE9!qCybZiXlX7JDx@C@i*OJXpeuN9IPwa?M1zc@d4~u^Tr6F#q6~Ww0dI%G16Y@ zWXG4ck5*6so|Sl(#OAr%7MDr}jsScA`Ur3%tRW+SvgPSRWxH6|;}_>_+PwL-?Hvm^#$dyi zf68oUmZ!ZEc3mUMuVkH(x!u#x^2@2EZv2w%H5MNetvoZ=amTh1g~KK?WZ)@7iQdb= zB$b433oOce~k2*?#ODk6LxOe|@zq|hHY`=amZ9P49Cchv}^w{WrQ|~!4&|_m;j4Di? z;JR$wKm%AIK&pO%sP@A#bO?!iOF-7-TaSC}e^CsM zI|<)w0J_$QxMqYnxpuFQjsil~#272D62(o*7j`X4Nw^0dIeOWe;@;u-3AaGV56j30 zG^}nP?9HlzGttPOv~4UV`t>!)pl##+6`Y`t#*6MydO>Dh2z$n46iP=w!3|?ExO62e zFdLNVII^LT)a4J;Y@5*1FM^)Pn$5ONx|FIj;@%YyAP3?W3uC5<^U%pCrZL;iYqj^6 zecKOF19<~g1Z?DWS8EAhcU}4P=#<*uF?eol`~!li0fzJHzA;l)^Bomdh?GnxQK>|w zia+nnc_)5Zw=hfGdmji49r%3sIc#!cUSrN|v*WJy(x3LlDyonxa=&)15Pm+`?Z5$u zH-{oWDhdu}6FR^_&4l)JP&c74Aa)7q927CaX5-vTWZ?@OBNO8(J{YOU0Y^8U9vvJ| zapiRy_sAE1DXaZx>Q{%lJ%S!ckUfHrBGEP26(~o8ibNl);6s;#vv4#VQ$2Q^#*6>L zU4Z3)y9lQemNEC}N;B{afml6LF!?EsL}#X%zfBxE)ZSl%96HisakUlr7suvRV!6=( zJO|l%mC~m14xCqL^Cda{ONz=ojk;M{@!8H((q7E{eVq_a1*14N+Gq zw;t{LFT9>HFFTSn=0z~(J$6`N%)5?Sn_b7cA#XO0R$z&pEvppdp2edUB@K8#MzPY1 zidu1RTOjNz1<5Iz%tg-sZk6&V^uS_+#l&|b&*-?uJ!YI&a_Cw`*Rv_;`lQoOI~i%( z-KXLg+e8?Oqxb(UK-Z}qoyfnJpZ_g%fx75G?sO942D@;|{B)K+%+o4|@e6N8b+qb@ zL?$jH{-DbU)p<48Bvefk_A%LvF_&bE+e=E#`Sw?(IbDCrBG(*mfhH8plmNh*ft?R~ zw3F~!89f?1r$CQ}CBk)6Y?sFMPVb6V{~Ncwqaw9mLh*NyP;Rc4SOSNYnmdsLOVccT z9%t5U!d=?Ku&{bPQu{*qgkA%L`(7@%-e|A60xF%!4XE9EusC zQ^lJG5g`Uo?nL)63HS_@p>WD4h0&k+x^@=-l=4qG&mGl0aVT=}!?*|V!yJRCproM< zkUV#6J9_1K@Ab@tks$p-8~7Taxa6Yj(s#C(^Eddsnjke{pgl6Az|JiqJ--2n{D z1;OjTkb%1lLC(|)e)?s?2s0>@z?=Y?IDB%49BskvUzqW8$zGd-4L}CziqtNtftG-t zBLwEze*#&-$aVO%?-3^X=V8p*tj}YYaN;uHPm4M^Y@n>&GJHT$JWb())U6+L?cDEC z3CT4V=snMt8IFAB6^R{{Ck5LZ37=LWLC!S+q7f?3#WRX;UhjR%)@bjcACyxL>=XB{ zg&Hu77qa}*_XnHT&LV$36JK^d5bMq%Uv>gq{-8UUt%p&_qd3|@Ni1$r6ko_}4@qKb zQsO%@2MXsOPP9f<>El&8PBBAIv&#eccGEA*)((;)FL8ujw9CzU{moUGw59px{&^O_oJbuQ#x1VI2oQos14zmsz8o3KOi4`B!j6mJs)t|Ha(oi$`tCS}a=y!S< z9P2XEQB|Y|;VCZGXEyP0aMDb+Hc@hn6B>J_7^Cg<0FzBWNb+bPGJ z+R1VCijAtaL6&vNS*V;jg62hz5ml3rgN_lIx9>2OfAFywN`y~cUL=ajYL2@I@+?>dUtrqa=52CCmJU|7 zPky0v9MFSwzk}&UmB6|O#EH*$;3M0?^xF=Gu=(Wg>|n4e_1?udgk)QJAkeR#F4f5Y zT1V^h^LfmWmyHaUR9Q%jL)7H1c@A9rhd8Lrlkc_Q^M;l`ckd@kwL(4gRBekwl5-+8A}i6n#X=2NAwY&E| zK13mlCT!iCn@$x&dDmKGTL$f=NHhv$VLwq#>8LebTPs{6Fk+&}6a5}qy(ym~b>LF2 zJ-GBust8oURsR$=(ePdX=$!RDFtMq%^i2! znvnwgm}z>^4hCb`(lod<+S~jI5b6Szz@WdCGDnfAsn zLFvdK~1l=vO_&}F|?LwV&>g`61Jy94N}>^QqwQZvvIm%XGNkh-Phm@8Vi1v>H8>vHbWNMi0H z{pPf8<&IDno7_Dhk@ZepW(9^hj#Skg?y#{{gQx7WXp)TF%;R_At6u+E?)v;Ac=-*b zhdE%EemvRHDFwu{pGQfVZeB!qY*e1b0?BHT&KFW%p@=M@?P{PI>cTJlo(mrmFVOF~ z@Tr@(;tRwd^o~H+gt_fzb`sk`zW4vURz56Pk@%jAc$t6NXE&ZQR(g|rv>giN_gQin z@|(#rSVp3`k?5Q>e%~>S{9Q!;>uAma`JGr)m_3HdCtk*X`|QC}<=^~)$`{Hxklzk> zrQ~n29M-F0*<;1<95$)CL6TB634xOD$G1DIt7RKQSkGzL^1vXU)|Y{#V{B3elU_s; zQqrwwvrr$XLymps;VBDkoXV7+x@WD)<^CJm<@{Q7p{V_YSfF)fTU9cUJ9{dz_E~Y>#1tMuo&dDeg}w(_*uXFHzO zfK1Y@3cO^H#DJ99LOdZU%r$_-fG4Cya@P)R1jm0$ z0~Vvl2pEuO$W7~-AqFI#hRd)|?&)bI%=niYP$<7f?}SfYzS%a}e5As`TU4@7KT-4L z(Bb8Or1_A2OyAZ>8-cHjXxbc>r2uJ6!lyZyrt;4$Ys!cpzU`c7`Q;B>7*9>I5IbD-xDeG-E5W+>9SA3le5_>aLY-FfL zV%`ELT9UVf=%BFv9Vo2a2_xtW+usS(Oe6oU{XzCZh?zeT%Tj2^hDn0{d?0(p>CsL! z`Pbyo6Rg0@BaXETYRNUDL>ofKWk{Mfh)?KJFC^7BR_*U_Qhp zx?3tNR?)((UPXM3*!EIivB-#f)lNhyK#Hh7R7KD&i0^afpi;EoZA-y?ac`j$LGrk_ zgNnG;il`8z=R^>si0;Ew1U(k_<_{Kev=hO6*l%|tl-siaVW>PSqDDkK%sey{L5k=q zR}pk(+?zC5#CLbuQZOIh&x#?@W|Z4(aAT)@0y(+fwR8%q#f{t|v^{0h_N+h02_w8# z1>`r=YaM%HalXp27asq_EdqVBllzILL%?fZMS^*Dn1mhP13Tupx%|Q-hR9a&w9(zVqyZT~l3_@azXKwe6QHc*=alQ)( zwHH9&7$@IhjiH&c)D>_Qx!%r@XE4T%hYT@>=z5YK_|qbp7p}L)u;r$kW8TiA)EMbt z824(FKe{{W31j5UCVFF0Hpv()uDR_@(GES4EquTDqAs&%3pK`oz&4B#*kOePA5~jp z5E5fNbenIC^ld1x8VE54LEjih()olm(d8y4B=y3(BHPYRJwjBk?Rcx+C$|n#?=YtxvzW48kjQ?h05b{b*NjqO+J3*7 z4@O@Ay6Yya!v}Z1*|%)r_DvUINxnRUiQN+EE3mIm26Ia6cD;D!Gbmv<*RqbI#+Yi? zuqw_CSW`GH9&e|J%xBJB1oy_5_1(iVGM$uKeP#%yQ=pI;0c6l4WgiECB}d4tBC(FB z+!9#|xj&pVZ)Ky3d*|F@n})P8FbtF7m|LuiHB&ho6w=DU3Fk<)HKAh`@DVtGi4EA9 z#JpPC9=7ekCh|;+{)aEaAI;1HM$X3kBwgXch%L7MCFqx97nDPqFtKLMUu+W=PB-Q2 zx`Z{01X}y{0H4I+3G|s4gK%mgN&{;WaC?Ap?*dn)NJ$P%j(djz&Es^(V&NT(kLPC? zYct$~3<nZrVH5WZ{6b}EuJxJ>X zXiG_Zm7`_8xc3$8oZpT?UugT2Xy2hPt=xXnmO5JILwp&b#porpEt>@8-W;IKChZoE zmif>x2`z>jq0Pd%)P#k9AE50bZ8v6;Qhk^&?oCHJr<#@gQ&oTp-%LK}S!<9xrRq$~ zuhDtggLaj`F|7elo*Tj`WBe*;3@1+7bzs1df$$>sE$Cp0kiO%$_^>wah5wp3X;&ba zErEdpEBhuT?}vvT#|}=^e>sG+rcR@)$eQo#7H5`PjVgSNh)L3@(`oc6Dk(K0LNvN> zCu(%{bqS3g7EB#5(5UKHHOdo>&WU?Jk+o`+Z8eJc8WEGEQJ2%`D60_>qR~W=|MQ}R zMq$Bx2Mn4=GhFgtmCA3&n+T}}ZAsPOc=T@C&{EjXfmMohVd#OR8temXKBL?TZO(W; zUE|-@r+wiDTT09ZktOb}1tPy4ty{=ClE^+snu?4G8Rm?behL}+Bx+0~se!inWXA|u zKgpN{{UH$}(1XKTcvo1SQZ<%f7QntV{>m1+)@A1KiP)rLapY?LcziK64+9Fm*0#xc zeCGD!z2b6OLO{H`jz}_Ml>pZP>##9&(n`^lQLJcCNC^XRKp;M-%{jd^JP$#0mQlt|bP`O~g}$`po6qOS4*g z5y1cJv)AKDqP@z+UeE2M_7VlawuPw>-ioK%>!v+Y#a_fji!&<&#v;lZOMj}d>~Ap^ ze>-F8Z#5QwJ2^BKi!+?DsF%6wsw87o1dNppIvOhnPc>GR80)tTLF=DqN5PoUx0mL& z_9B4)f6ZQ%Vz0kus=Y)9ux+#DXvb6Sbr#QaAcYv%t14hGqO862r`pT@7JKoxvzPu> zd+|5z#V75>;tXdm>Sbm}6ZS&I>#wHHc+bML%7vKyF(wE`bc=5wzD)6~$UTt3bd#oZ z%}lTUh_iouBy~xi_8Ft`GtxH-e@i2|bIRtAiZsqC!;!yok~V{ddGRt4#mU-s9PPx) zxY;gtSS9liG)G_=Z$p$&9rMr_yQXAkZ~o>W7QtNSpi)9tIH;1)#ejMrU9AVeThV!& zV{sA>tJl<9e_&_ZMFVsa|KNd`_i+oWLZ;1`^*u_hHKds zRw>!WJ=8(6IedVFWXpL^2gxcS?4TS9{LTq%g3+*FcP&)y8}9u%w1|*k`_a}PErd3A z5Z}+3R0nl1?Z;G`vxm?c_o{(bHt!(~6{`ldLZ+CA?b40k;ohpAIA6=)IyKafHe^Mw zj{6xI6QB=YKJNQGenesiF5#oT180lx=dVx!<}8!%5+shb6v&V`fZA$K!K-F0@xow) zotQ1YLuNR1Hi8P+7j2!GlCm9j+h-4+_MIh@+&fE6PI}SCDl1inb2@0MUttl$HdBqK zR536yU$*=5S}}c=c59y6nq+kgu@@qZ~l^C-5@lWXxe8Bo|ZL} z9BWNZVqLTXS6#;A{&+Ivz6a8qofD#3t+jxW(sYQa@Jy_(-J}|Ec0sntP#$l zKa-sPnw%sgA1C~zE-kV#_L<*ol3*RNEX(Y(T=?mmTls0<+)8p1Ybb8dbEy8KMSsL* zK+{8RbJyd(k+Osuqnv%_;b~pXB&WY7Cke5wZu~FkY~AXPB&K_{?N0>SemtV}2N6xwNwWeCD7|=InNmw9}UzB%RDs2T3RMfPpKr zGS@grI+;c81%`Ao7b1;OqqJw4_&x(C*prm_Vqk_Wrf$C~5N_(BOeHYzaJcu_w{-C6 z=4iL;Uq@o49XMR4r;5N`Gw;gG=mM_F+}tLyBzq}9lY&2;-0%B2i&?qVfiL}eFzOQ`uSK1Q~IN*kT~!_6-^IqMMfLX*@ldy1c^LSyrsy) zy&93c*8nySQBercoJ}y>uN}E<8Ot)B7==2?M{bWKiVACvDFoMd3jQzg`VcH`L=mTSq^lN6#WB) z(N!1FKF{$T2CYS#n$3|D$1JIVJ===!fmXS)PI6m3@TL@QgA*75#&Eq&qH|sMG*eaC-k&!lB)-1QvP9(kIy&! z3Q&Xn>$tZsu)))|ZMFh**a|?{RL+wM;FG4|eF*kZ8k`f;t-BhqCl>d<15230JNG$t zEsxHcJ@ywHc{^ETKhEx$3`HhR*Y>kqtT23kglae-aNm zPWK9gwlou68trYy0YWvPSI|T5EuA2OSOVmM%am$7dD=EZ5?sX4NV|(Ex}LzHJ>VAi z+O8P>9B#A4KgIGSg$2!!4$~l=tB<(%Py8Bk4mU+IE%P(ogI|erxb5uuR!cYBFXwPi zArCmIn?*qD)~7v(`!Ag7u;*}(e9$%z;V|_l8%0Z{JuTAMc0~9CjeZk8z@8k1PvhJiHCBnR@l8C6!*o-Y$!-GuzT~Fc zk=s9CJIs9vr$5W1h2NrI(4&R&T}l@VUh+DQ7Va?zn8~UP8$5j3Gt}XnWF4|t-Cyb&q66`&Lk@mXhdex0hyAP$LOb5- z;MoyXw0D)Gdss>UI;)d&5ma zd;ZUApKaLn5Q8!On{mAhp~@(nLr{_#`({oKmbmtX%+d@Mc=PBdoY|eQKzL>`u zS1S6zYKA^T$~a9K=Nn@YQwU{2O>;S*!L{bU-S@GSmf0KqZNM^VoT$fM8)6yat$*-K z{DY_ZXYE7QKcsyfT?UP@#d_;b2C|{spO`;wa{Wc_Y*7-JtidU5uu^a8L9{Isz(`qQIB#w)jscG z#zH3v?L%wSK3h`{VyH*R)|@84=Cs(F)0(I`OmsCzlLyzFkk${m=SGB8{a|a(rkWxF zoW&f+GeznVomLEJaLpOEHEn{`Z`@l~pX8egvN-OQA-*AAZBmV2v`Gz~YLgWYs!fFU z<^i?I=IgC9WbkYK&3X6)Ebje2S+@uX&C@G~=tjKt7k-Jq@KoJ)v$_fG2&-F$_zQXH zuk`izH`_l+E#9k3vQQT2%zi_)AYQe|!7pl&ho@?B=L2dXp}piswa`}7f*5KsLCj^V zP9>`j0?IAUtdXj-II|&9b(rX?jwT1=Ab{8B6Xs;#@uRYo9tA?o)bDKlN!R3bbr9<^ zlRYLga|NL>fT&)V$S=suBfv__IdcvHszD%|K$`^+2jY+T+&B8#a3iyP@_GwiQi&MS zo0e~_P_j1HIEd^_orAgvUFaYg->a{;GaHWn=6IwdqH}+l)3{uh+g!5ze{fHf8b+$5+>d&Hks~Ss z)a!Xd?@rrM)i6hPCMIJs?;UPtf=Y1P5QleVVNO^$B|Pe4rpk8>T!a6-qtLt+q%p*S zCd<)mr!*NH$3WAmH1`B)90B4m>^3id)-fMu(#6rPFXr$D`QcNF!qT^*k@t) zQIILbh3ZcL9NMmcK0{7HA{=%hb73!fWkAb>$pGn6qL6Tqc)fWaz{(l(%`{h7^52e7EckO!t+%&4K z1?F3;$l&_}S_7UwGU(EEVOQRZY^N#Z{S0VV-ia&|;(tHRq9Oh_lKk?H{(n>6DK7=e zc02{fyv>8SgQ+&li?;<*Ug;dGL)*#w@KAjX%FB4yk=PtR=JoMGho+LjKCDa&?hnZN zdOLPYGY}og-tIPur|?kfJ0BAzp1~)11eYUUB#MOw8u~_a$)Fg4F|%>{HWDq!tnR%~ zE9zOD0p8b;Cg#-!ar1$*<=~q`Mjt>YU#&sAhbzQ&K`-TzS_<*heE~tg0eaX%^gJpW ztl@$Mg&0AFY#|P;a)mexr)HB1ao36f?^m}K7Jm)mo&+wR&cM+}Da7w;7Ho~3+{-Wn z$LCVm%87aZ3R<}V1cjpaMnS#LCvWbS9Sgr?ex1KxrJ_95UxzC^yz4*y&2DSr79{)arqh1W?@+S(6c_+LXz?}x1 zmbDUP)jsBF>)SKk}RJe`@PjE~$CK<}Uh2}?mvJfA7vFYN14$kCdnh0JG~E99;^ zT%nK|I{xG)jaROuXC##@RDT@cr146MJA=7m-j_ksM<+>fyMwrkh>ISQ&UTMDDL8*B z2QRine-_EDmhp0c4e z*}l_=3)Lgqt*xGt2lub2zYYjiqxZHJ1+s#;6@tTCDK4DRo*Ov(+-MAyLE|QJ@LdAq zWlAKsQ%{%oS&~UZ2kP5z^5WZXA%~f^pU4+03NIg(fwYeaawE04F-)nXFt2>dIXx0M zEw&d5G^~NKaG`*p0!jXb0%tR?)BE__SU|iN0utY6ol9q7#|X=SxOd^%c1xMn!t~?C zELCJLUxMn$f=G{#{Ct`Rr;SQ^N`@`iK`=L@p%j$F@XNk+`4ndZS5J2OiJk7?lH^XIPmI(fpYPRzA zWMh^x{43Y1=ccbG8?#j4U!`W-Y(3eSr8?611bz4<{}_XVDZ{D9T(S?<_yphbDcdE( zXTCx*;&y~6L-$Fzh}swOPF_X}N1`tT13WJLvIj3O0+&FHTayN#;m!ywd->jrTOp7a zX`Dq?h@Fg$c)-PYO4Gn3Br*o+c$Uf&o8WkIt;vWOe5u=p{J0gV08X7%GW{al=@6QP z6#12kU#x(6sVIB@eG()Rw>n_`NW=$36r&(SU<1m$Mugo);I0*~o03ngu;*S4n0xL8 z4Ufu>R>}0a5VeL4A8X4zDu;M#S94E^^`EcW&DZavH6#8p1@NViIY%VMQa$X&>Rl4| zUh5xa=&%yI?6aE^H8L@i+_r@#Cn5zGG$0Bo=4KGS9+;IZ+Ntk}DJXz{+~yF=U6OVX?%BLCvqre{!U+UO9m<{dq4knNzLpd5 zYaw5U+!VGBWBV&+^HIEZLft@_l_C=%mdO*YYR1#P9-(Sd9R4up_ShX0DM7h|@|bp{ zgE|NmIB0-onC75vLRo-%zad`@MEWv*O03aEVhPjmckFC%;;UPqax=yC%>I98hyPU4 z4x5a`afe~5C|(Pdv)pn$h5pw2DbQyEU)(q+`GN`zax8P{2cuH@Cc3X7yx-%CO;!Z5 zGF#wuTv6@3^pv>;wtbLed z+sxI~4j|W8*O#ZHtX{TJ)r8uQ*HJa0zv16->gr`9s^mQZg_z5MvTF7KrkeeDvTh8J zJA}bTOoCGmPOHsHS+FyHr1Qt*$Px}P_-{e}(k+pLSE6SlYp;Ql?)1Ai=}EN?nV8j0 zBU2v2eCyz}XgWKAi0uUOnArFhE1l0Y5?$sv7VWkIp^8R@F8d4Q&_ZG4=h>MYJUNZ9 z815QMaSAfai()fJJ<9?_Vt`~1QPqs(uDWn9j%T&2LI?nIVQM70wr@;P?$1S`gMLOF z_7SG*L-;{99q~sPaqO#P+^1?@b`zb2%}GpEE}VcPiKz$4RuIO<{KiqCgO(ReABFBg zOj?cN#_EN!WT+SF_t-^py-X;X)Y=*`gDl#nz)tYq+J4Ok?1k$db?pB6&`q#B5^j(nLooL z-T&77G<^18!{e&M_?Euqk3qpV#PUCfVEOUgvNeOv;rzyNV_`(tQ%b%yW zy;{Hho;O#j<&V*y*76ZRFb}6#{Mc3QZscth99Rj z9?Dy2?#9oCgK!JYp<`J0qzJ6q=9Wz{_W=tyt2i^Vd{mnMg^1_Lc^+26!>;znW7f~X zJ)9j+ndJH??En+wG5RQu_vNhfuu?U%N^2m78dWmIwVwB4zPvo9qpK>l&oVqWVEl%> z{Pyj&>d&<+ak4Ts3Dz9%$hy-$c@oF6W|Aw4CJ!k}7~F#0lFpXoek?mr@DidpL{gNo zPacl3qL}1FX>yXN{Pr2hfChZJJzd58=BcZE0}TKs>ol}@KGX5EteNCkYjP56H^UoR z3aKJ29~?p^=Fo(^4lAe2K6zBc%43p~r^!k3^4kl*3q>imYjx%~-$ebQa9PMAG}&jf z@RPH#OmeI>If?a#6@^U9f`q(sE2q*vt3`;&W0I4n$w~6^+oxzzdby(nD>1*xOt8+g zEKBXPO!x_FCOOucoWy#=ib5vlQLF*&h#t0bvh6cRgor#QIeD6#Brm`HKrPCJ_Ba>w zo8uC!J21l2D_!>4ji+Gq9i|@u$J1=6`R=SviT0kad+l0It zE2qgmn?;DoW0I4n$w~732=)y)MkM_r@|$H1zLm-?%S!vK7JkB-NshH9C$ZizuaJqH zud@{_&&nya&oU7r@|fi0X>yXh{PuM9%3F3{pZU$e6@F2|mSwhm<_JGw%_PTKlap9) zSW(EtG$iD;*f!E;pY75>L>`lzJWWoL=NIL>`_(JVZ}v#A?y)TU?Q=l*32P=f)|#Be znnmG)oSiXarDz2sh83)oDX3s%VxGo(W$Tp&Se9+G**;tFv~80~PM#(Yk=J7@^nhQX ziJ`oHTcOFslqBTw+!N)cF(01kq}0_klbk$FPLh}3o(o>+{4cWWW#%{E)%!(BVNuD_ zJ~QyNteNCkYjP568b-L?@w!aj^dn94R|kpF8XVL@6aL9TQa8?aP#$Z_Ne(I}RO+A_ zLI*jhh0s(7r4ZWLK^=rL92BO!u@1^3^fUSkne3Mn`r1J?gnAs*LFf$!$te7SgSzRK z#~sv8sMSGvaEZCmK{bS~QiwCTh4?8;)+#Iw@D)2fGS7O1W;W$@*jIcbznxPN8n%PT z1=w4V9uPnzid!h+UdM^pHPu@m?)jcm(gAK?NhRP7KPf}5r`zu{G#Pi<(c;X0xF6qV zJ=sgFy`c`@_)*#(2nfs#C!SVe1>}84O?b+EN0dNSBmw%dfN^gkwXxp^P-EPi0E}LF zyI>jo=h#mAJPE90`d7wpz{)9TZW~(GsF()`kN>&1>w|q2I+^!B<1TApo2^yec3Q`kxIa{&ylYy1fO4tDxw`p~X zdoz#$?!wEr-s9zy|5+qvp18Li(%hEGV7g6|uFH&lNPlzhwPNW2n$t zAxs;V@I0T;BO$i>uqG`_&>kYRICwsc&?!FcJ7xZN6p;k&CPIsM<-^ea2ntpBW}!tt zBuB`c&Z~gsHaOy^KAKqr76kG*%(l_;RTsy-N7;_idugAtRO65#1NTli4lAZ0c(GLm zJTBJ&q=6RS<>xNVBuauwy!sK(_&sWx|WPN0YW?xTYlJt~rme&=Oqv@!gM2Vg|i8f<~ z(Q`*h`Ogv16TK(Y*icm~MOB#e_YfB}DXTD5t@c$VCP`K4*{SMdsQRiZQKIUfKBP%! zL!rSYt(KHSscLa%-UjIzJvgjac!u$1dO=DRzDzGmHocXa2^; zxjpkn6*vAq16yn1;@s-+d_dL6gp9R%z1S?XNdflLa37B%b0V=>xa)KEj35%V8C!oa zrTMqT!y4?LQ>q*t8VlxtK$*4qN=oM^WvLJ@%+hVMsK{zg+A?Ht!d{YDdpq~{av~#6 z=EwJ1#FORY`;$wHa~I&_`{Kq0Wk||PnLh#Bpykv!&lIR;IzQN&k#BP}y^`rU<{#5l zEjQ{+?R4`P_|oj`ASptIgIFcaSO>Kb`gsKglqc5ky}cU|ijHP0_QB&Fn8N(8AipH` zu;kA;sDn_OgUSir?w~NCMLt9>mpdqrP&FWK=JACa- zsk3l>;WM4Jy(2<(ccTW#4|YD7^wh2yQMCgu4#i7KymP%MLr?oYaT#m=Ds#l?J zY#Pz5WTUY$Kg^e0jT4F+^AUZlC|zEX>Z@q^%lFY~M;~)+{;d3?^N-0tHi9ehN_h}> z;g@X~K#HPkVAJC0N0G*(yQaK^b|1!!>&J&s-dIUb+&d5|qC7|U;C`$Ww28R4vXrBW zVHvB@zs!{M)Or5|1q@g%hAC_bO(<-`zm7<(u!Z<6%ug3ep2C*pg{`QqC2euRY16FF|2bF$#5*Q?_5U&V zE^t*B>Hjz?D4BN9#OPw4k_sa?$}SXIpdg=@JDYpfuoK zY9>OX**DpY0eTu8%+dW4UCgZ*u}h=p&r8kFce&m08O-)vD##R#0}6Pm5HzdHR^hB8 zwp>aAuKX6$OkU)KpC$F}y)|Nk<7D74>IGT~INUeYk;v~<4|l4sP2|xUurfA!SZ;A3 z(x`FGZ(Jzyv1(}|Ms`+5*`u)(B8R5%UAWs6RBbEU%QytI?-Q)f#M60+fok5E*N4ao zNxy@>-|~*``)rY)@@9AO>Fl)@yo{&rdhw?SJ61c7BSA2f_j>rmLj^G7t+2albFn)R>OKxYm$xZcEhJ zB;&}5O0x4~$DDqjE$Cvi?lrv9Mz({UyrY&aGFCSmgoSQZGDN#%k@l>h@i6|2Wi#zYdHG)>*F0}h{n+jfscW-|P_ z4#Q0h1f7Q+I8bmw+Z%`#c^hg-Y&)W$>-%yUJSjm@0HMOC=Bjg&bdUCDsn$mY*Gz>I zQr~8`_2G6-Xl=&1YgnHY${WfWsa0>s{RXdI@!@KB9J-w-$3Y(FfZN8U;1{B7929`n zVD21I1XRDVB!5a~AbfhJ+CD}A2Y{o#)W9?V(^L)T?eLUh0L3Z=g4(8!oM|9We+Cxc)kG7cT^vUP*TwC=QQPmi75&9bKKu1s^_m{XEi(cQtc!n zK|ro|%ufusg^3l{;O?t&j@w@@!5U0|JJZw6;u7|Cpc=ITqSH`Fj`*3;c^%lYwbR+R zPW5R??fnbThAaSns^KTt<$>@r{y16R`zqTI2)d^P+`5!~=)d)3Gbg{H3oHRL=uB8w#pVMF@57>oiS}Iy>%JNQz3| zXe-@USGq5RCAw-tw9*B((!)qi%>7|K)E~JEQQ&Dw(n_d57%w0|De7Nn>yNTfe@=1% z2v~3>htvhX>oS~PAwMPB@!`IMY9^}k)B0eS9{cetQlzdM)kPn%DIgj-hmya&At_u~ z62#c5T30qeyLN@vmgHQ3=h6qxdovLtc>jE!ASxZO98w$L0RUf_KlU+x!ybLv(B;ru z;+hiviU^#(ofk>&oPZS2Owv;Jq9WkgR@`B~L5u^JA(~hmchnIAYLlYVryZ~GiYUe( z{RXF>x-rI1M$r8}nEq|)EJp}LvHgNs9lo3DfhN%KX#$RGa}&K-{b4mZI2R*R3;wh~ zcmSG_GCJ$M(viZC6VRq$iYbXsq}dq(#bn58bvP~vc0x^l-0g~lW$);xn6OB~)H0b< zeh?~Yj@-u3tVZHYqQnHM`>Dk*phSH3tNSnJXd5{3pKP=D@+g{h%^)nW!qQdNRwh0+ zT!emLGpo~(FRGA;e9-!xr;^P7qL$N%n=t8h&v~l`F}bK%VGdqRM888PkAq;A%5$m5 zrzP>eH?Jo0RR$1H-?Z+)g*2Uru+K}L#P6WJL@gV$BO;nfrQB9V(~*M$_*=-L^`$&= z-Xv0A0U1;F15eBA2k^N6qozYa<2=3V)7N+{m&*1urrO|>lg)66A=Z=h&9P;NdEb9` zk#S8BoY^bmUJ(Ic_%u-u=jRGv?rr#T0YG6%vE^l1f>RD+*KpLQ1tK{2>t8}`10QfEI(|-p_QL3{$@S6iRZxC0GORi{eilt z5#$^Q{_!n~?;jl9T;TghvlD3uWNn!BC7rg2ktLMiHxT~gBK)X9kAWdL(yKO=9vH~_ zGdr<#Fa&vqSKkfK(J)3`_wn(4%^fI>@STCqA>9FMem1l` zUhL~MESw7Ce0S9^9N%ksGpMZE=9{#kPC*aIYW7WPt~(ZS3^i1bj|Y!*fQIVvi3oK{ zXaJdX8iHgX=@cNvrD+|$%J-0Sc{Vksio+a^Gkpo&$^m!P#?nJk8X$070{?Nx!?>n z`nfJBY{TQzpnJUEIca=K+3CnusGgG9a$<&hLExkI6%HS>FH*4%c7f)Y<1Tos$y&HW&iD@>E@?+X0Z} z3aLC#(_XX(h{urFC|(a>o|Um#T?kDD%f%ARkR?eotEZ*#dH4+9NW&u_#dHzGvDHq4 zI@RgZ!rtDD>Z*zCbF5ph)Si@IXbLxh%yK%qF zL!<%s?fu@fscZgTDGud9Y!gtYHg<4+vNrV!gkiPuPSQ6L-!3f9VudZwvjw1q*s$6B zgD1E#^4VtQDQ?7e!RWbK9Y#9QMj2{fBGTE)EiIIn-Es!OGhwVlNq|_~cl;BaY}W?K z``NIfX=F=PIhZ?!+!^*m zxtd^u87j-Bk>(m@p-vVv+(Oc$gDgaPR3Cw`^)gaM_Zy-zV|1_AffRNBDKVov=k3_h z{noj$qkH+Y@pOORN4vj6A(k8J92YMB=xbUdp4&_hvBmOIU%)*#JK)ZSDduBu3A9EX zHp)1_?{R*=a=kadF9Pa3_v`5F?l-f0HU_@T?%&$k{d3OlL*C}>u3~2Q%`&^24*BPC z-UQDPLH=cX^0yqn=GHyTZ@b*L$K>ip43_BZP8O$hWA)9|T#Qm3{mksnp~2amv3how z?-l2mW-Vgsi=MGU^EaS05WdIG?j#C#B7&$Ii@_yS(jL!Gk(v5Wl|zq?HB zkeIsa1yzyK!(ylQN^lJ_berEd>iJ!8LKQ3wgv0C_b=(78CilB)5gDD_E12YKylJf` z_l;S&?0KaqXqc3d(W+|%k_-UN2F6tbWavxLo_$j!)h|;BO7frqKpn{ccj`dC zrw-&NqRdWET%A9Fvn`1y8Pba)@Tm@*hghu+947Q^j#URT; zkB1_V-)rIc=~#nSk1uxf2UL&0ym5RRI?CRq4lTr>a{nxH*U3&yZL&kn-6UyU$l`)g({Wy@9?Ay zb)XKUsBaK3+Q>$A8}f^Q6;3;1YV5$;3k7Ml8B!QX5{jFtjZi+*B7E9OT?W=ffb++O zkwg^dp-l<%5spzsjzj{q(69yTsEUlIDl(Tr_xOtbRu$QnL!DWxBD3}{8$oODNz+6N z+0cU)g2Q~Gh4`U`q+zB%3d9|imx)7y&_a-{w2KyU2#WDlo`AXp!=nZO2v%QC_R?Ey zS`oQTT#Bo4LfL&Q;O^u)vII-%E{aHQb%|k!k~0 zfLmohEGo$15JONwX5B+Fn$^izAIjJl)e8$pR<77g^|AAEx4n0x`*0%+g^3^(k5Nv% zpJJV5aQcZ3sz)hY+_n1Pw{tyWyWsS+j(;o$X`-3kLqyD`ujjUk2e%WuWe&RQxlpQ= z%3;G4ziQsA;9F1kxTlO*&8J+8m^O3Kg0!nmcdSUy*7kIodg48Tc!^4&>idoQAyE6@ zrLTFuyj2HHiJL4`OB8EuGQV1GgN5n|o5s)ntF@5y=Is_DJ*rY5%rQ_uFr3eV#ZrcI zPzO@f2r#raoL9HR4(DlS#t!F`fvKm{cbtZ(e4LEDdsaS{q}tPWI3Gs)MWU#<4^ z56!1I2EeWBw#8D#(7zR-k(|A~E}7bbG(4cg43=9d{} zq9(1rJr;#~GkOp9h2I`S>aYR{=s=3{Ba3HWSoMk#0px9U)}&ZQJ@FCCsK&nVr+Uul zdOaquT1~n*cZ-f6iFrB2Tgv@ z8xH>u>`OIjmPZ&-|tKg-<5Sc>IO-g=I+nYwQcXezASwyer6)yVw_= z{kxD?t_BqUFYOBl-iOwrePJ*Ho_*n}wg1Mxur`eZz`pRj4y35tM|$#VqdErpWhikh zs-_9C1M87mJFtv>ArY^NMePfpr*#=v?EvSG9fc%T6*&aq7**tDBtQ!dJ9If!5wS1q z$Dn(>e>;D;)$xDTzR-XxF+BUi;{bZFFC4Rm?eU-57cMzeT65qB%cy@e9HI4(Y|p-M z;_&~#zA*T&M7k&YLI*l3*1pin=T&p+(zOb5QCO=W@BG%&5TJVfckBx{MsfQ81N*|H zTeQ~US7V9jKejIne*t{!=^kTeXx*cg)AuJ>3HGecbTN5Q{fOg)7B+h(^~~I~(u@az zM&54J4}si!q_3%EROsL>+SoD6LbXIO-6r#^vu&_Yoo>_kIqb46luhVZ3y~g`Dv)Pi z_@38tayWmX11W0FVKKw`A~;n>hjSO zm5(Bzj;_ZziTW?xBkv#5e_`8!p86rCr|_uKr#X(bV>_;zpaKX>!K=7`JGF~=3Id!z z_Ew}8@s!+@umIs0@sy4POM5NUC~)H4{hmUJPFg?GrKv2%IjO{deP1V3pVSUll}>E4 zimQ_n-=w}y)?EMfi2u>a`mtV&BHHh1NM~L2I59Vd8?+)hanzVWjn~bFA>aL2zf9~IVr9* zzA--u>4Wf&Z5hnO2>lW_D#7wZ7!}BY!#46~sO*~sk}13vRH&nMgiMKXj5wGPT$9vN zoM1GyQdcb|7D6ID&Z(AF2%c&}isaP!)J~e!WGpd_qEFq|Zuw;(Ob@D0MX|Tyv&G(la1Yqoa>UN0#9l${Wg5FacAEUdJdIsGogBqpk1Q5@3&Oi#M=udI z(-CzMQ6HdDL%|~9nK+{Aefj`r2~DF{;Ilqsvu6sLaqFEvW05-?I;Vy5jxmH^@NfvHT{?SQ6uijM{F~) za+~%JcqDQe)e0CsVj1ue%k1JKrhUNWds*(#I_Aq=a!Wg^8af7Hjnr<3XhIo4Bl~=O6 z-fo(W-b7=a@StfdEC&!%;I?sLnO#8ow#!-)OUV8hyRxY4g@F3_NeaV`nC0ZxXgMys zrmlkyhwgW(%qf|QQ(+(a3&^HVW{IqLDp-l#J@U#G>EzqNZ?qbem?gtf{{ET&+tiYvlE;)#eLmt~xi!#fK7&>fK^u*n4jLOaCmOkxTX(Rzn-IStA=!3pJ*h&Y8ivj+a1<15DS zJ!0cG!6fQoE!yss46IiRs-kMRuNK29WU$8{G7QGb!mz>yKpnM>i%Xg`X9WZi|C`6< zReA$%*v#}Tc#bQ0Oddo`{!sX(;ladU8MKr!7+{VafYY$(!ZHZ*??v9X84SZQI_Cx6 z2Alp9TiGR@%#C#tMX0QdXx{WCC45zm z3oUT)*_Sl%I~|;qgy>Ek&i8)`CY)Ga0=L;MZz?#z--w$S) z6w(wrJd3_+}^8IJ7k;)>t1VoqkF+CkNe{97W6&z_HF-AK5{byXt0S zj5ab(lC!{F+xax#g0nc?08zgB|%5Od8HPt!q=4u#s_}Y1c-^1(7>> zt)_0}2nMTZWr!GQWuqQo9Zq*%Us}SJxu&ht2Da)T+Bz-a6CKX?`_cv~6Q99$ZwDal zp6z=s;Zp!JbE@-kxN*{HRHUWiSSzQgGsN-{?E|AaO-2s3X^HBMV@gK3VJ_PT^$7RS z2PJCLO*B{+gVehULNnIygk57?WBe&VgcIUw;LH2KU}9?$gNRA|rV+-Ps|SC0Y4|xrVe+!|n3v7Q z3yvN9nhTEk3FG<}QA#+znVI98bl{ko+BuyjMA~M3RnH>M4o%{#0L)*GBhT{tp3FOB z?{6V8s4_4argt;x;7XHklG#+mS$eph{2>NpFhbly7Z5*P+!h7vMPvMERP*D4>KSIt zY^XG>N6J;bg-Et~%0l%hQ9TF<6Aip^yIkQ_1o5L*(k_8o5`aA|k{lU?Ek1pLm--vY z-b}M0*}Ew_k!{qJJ%B&(Rle@8puW0KFg!a+`=s)QFBu@y=@~RVbsGAm+oSZ*^wcK{ zh4O?q?!jU7>b^MgjK%U~e3*!*2Sm5XRvjVTYdM%{>D|aXaKbbqQ%i$iWI3ivD}$*t zq2pRXRwVfd(r>Q(Vx=OGJcI7r-)vKT@lDq`C{w*iGo`;4KLDvQ;&?6_PeSZ-r^n+!iG5+ALoUnF* z;RIdZX5GM<# zE$~~KDy@pbi@;n(Dc~e3UXR>}_Jf(4N&W2y2Z27*n~Zt0hB+a2)nl^alfuWMq{tc= zXO3$d194-k)@rKOfnP0uZ1+ZzU*1RGUv>gC+i2|LI=0G>SfNfcAlrxIgTIULs||jS zJqSv7wK(c5dF~gGSGieV`NCM5+2({P7}cUKSY&=n%x{JHtueo~=69+2t;a80vIW0+ z`U!6^Vd zac01GL*q=xcf+^j=Jo{15N(QA_U;?kHkGZu%kcEZrtZ|$NNLCB69`kv>yf$$khuZ~ zO-%At9t`$2@z?U%EPkNKgH4KDy>J3{0(yGnshohx6P228;lF+txu$_$R z$u6Z+7I=&L#j6NUA9^i_sPdguk_fE>C@5V%!D7YM&V7g#8e5*xiML2Q9I`~|yO z=@Eey_M(L7{U1OYpAwMA>qt9hTl6`Qxi*P1glR7 zR?oqP^0-XuvGE-d>_EGxWjNLQ;0HzlXm_l~oZjREslFO~4Vaf_(88^tm|ft%hcSy~ zGQhfq?HTQY^I=~EhU0)i&aj5-kxPZ21^a{(8ZQN2+^3X=_kO|NSY@i=Pc)alk5>lrq7{q_LPa^7I9-rc@E zLJAyo5Ge)$n{i(!nZAYb<%psMif;u0`iErS5Tsz`zi!>15ohhZ76E)g3(?k|ZX z{~ak{yoVgKqeh0z2^Vt6BzELPCg2LDt21$FWJa+1DlDlZrN0s4G*#MIcu;`1G|^ZH zisq4`vb{_c?;%o@^A_pMcb`$pP&AluANg}AL zWvzrd)j!4`towUpSV+XaM|RyUp2eUQDllBq^&N(oB4ACUKSMTx*llAF_m*Nkj4;(5 z&N6wUzszyJ&xKXtI9hBg4?hGnRBiE94nsi2!G78GMB3i`uKfm@A?(x>L1WvY{zz-h zX2iyooeJSPJF_qD^T&72I{d7Txv|?GYi*gCSp?VZfUqK7;s<$H>N5^#?wkQMe}1wz zHv1IX|p<>Im=C|D=*nHp2uPDaC~>E#8N_Wc;n^-3}Ry3o(dh6Wqy- zO<3TIaA_u{YFsvpuT+Jro|hg@KKn!tE7K^KPmF0HAGZIx>_XpAN?8NFgzb0X??ES8 zp?bR43ev92A7v|GA=X+P(;I3W@=D`K=Ho0Rv`t7dDWw5Y>^EuD{uYv6`DwQF%HZJ` zmracvw$#}-qbB@qWsNXqutt|liiDoOoVFtp+RzIxID)(w#KLMWW3pF>-{g)%#tQZ6Hg5l!_-^5kfo#Gf2gqB3S*nu4n z`AYNbw7|t{gW&-Ud6j0D!`ZXm7cN1f z9QS7|f(t{DcwhKTzybH=K>GSvXGmV%6XR!@lhxu2kCc>y%%VRH?Zk>@n%`{vnwv^I z|FEw1UFJ}4Qvm4ExP)-^B~ZdvY)vswY7v{>mKxw&Fp4i#hM!55qADBKKI z;LHEcP*aHZfeHeqD`HFGmu`8%@YMsJ*U!PN6tBA=o_-s{yO2Wbecp9-^We(EU8>FP z1D(*0p>?u}=R;V=f8cv z?R@%u_t5zhaPnuu!lO<_-yG!K(eO0VvdYA&w)supi|q=c0+Fo1Li|b}(6nUwTz@O} z`n(ZIR&2$B@ZWbj4JIy&(kC_wA@wZQB7}q0-LWQd#wbx!FE>3R#0CI$+1#Xw>W4r& z-)hYEEvVQJn8FWAkJE1TBaAxlCo+Vs%1&Ryh%c`&v}ak^RY4- zc$<#Rz}SUnN>jjnL)`+?2KE6@WD5_=~@LbPPu=`-f$+4AlhRCewxvM>WcvW`2wCYs%y&+r9d8 z_cHg*sXGE321zvPTwNvRQN>a8t)?m+=64T5VOQ=M!YV0XWR>E)Dlvvt>f{$Y=)Z&a zv#HV|!~9Fk?^67lD)E!8lK$MiO39vZz5QfeCFW6gMbR&0@o2F{=C>BV20cGn^!jsm z^h4pHa2$yitfyXT#s!;69b+K}Xw(P`NslF4h`g!#0m2EzjJVRt4rchxppZE0Na?jR zfKx8NNlwAz2YLYZeb}miIGjQ3Gf*E<=StKHFbjev`{RIu7f(;k&cllZX9g~PLm|2M z_24M-*Tw&mqx+GEx*<=DB0s+i@<|4{(DIUI`9_&W!xlw#efg#!w_giQwI8WueQC-_EnndUB^F35Lz4!SAc8$&6 zXEwU2t0@B-S;h6x$f_Y9oFsC#bi_(5I#DL|>SJ)u402+aW)Zz_Sw#C`F_+y%?1T>X z@H(ji5D;Q4IV6&N(Rb7>W0m-6h%rjMPI96ov3Nf0?G@d3TW>COs%|hCS>;G_oK3F5 zK^7FkLo-cdQRb*J3;D^Pmsn^CdF^Zqr4gD4sO>AmR1RZKLX4;Hu|B%EYrf?&!dLk% zFh*m~)3H_WA=d7icVAItAPpCsk>oeO(JKld)hmdB_+%gR?w;*OB-YvPMTnEOmyLML z0#F9-9IzI;sz195>X{y77wX75+yp`el*%1-F^0#7u)am>bhS;Ot9Y{o7lLs0(?zkvaI1yU!7?546FjH{fmx;Dp!A<2`L4iFyM#)o*??%x^Y+v6;%x{Er=*f-rxXR7>;&svyzr zh8ZqyGzrr1i(vvoIQ)?j=J+5!*%+XU5Wfx_A6*KaRBt)^rnO%+e7+ethI^I&o zUU(M@#AqQP)60Wf!5x~IaOIw+7tSlVSp^JTgJR4eX8*B98Rj<=zd3aygpTA(`C1dm zkxs7U%nnm~={1Pt(|TNkYD1DzxSm%yR8rntgp|a;V(UKEy{1T}DRHmS(#6bIwJ0x= z-25duJa%S!5i!1HB4Blrdvp@ab%Ca}wBpgr=BOO^6}Z_U*>LM-ljE+X?@f0< zo9s$#=3ml97-Rw|XOMASVh_-1{q#E(&1wv$m+06z{d^ALseU$IEi;drCW^$s zJ<>u^0$L6k5kt!x7fLU6qvaIR0!AZlTHLn|iY>k6JkzsM^lCs(-Nqlz{P>}}*ZQ3w zuJl8o!o}P>GHYq9o+>mB*dvWNDoz^D^2gAa(Ibt2g{~P(<7r)JJgN(g2a`s3YKGTd zKTi=__NL~uM|w<~6~xk0OUY%qo+zdN`gfyeMVB61d~R%;-3rLJY-$?jA@i7kGrGm` z{o{39Q#&#mJTe+gj|Pv521iAMzljEqHbG~^oid%UFZ$GTPUMUcaDxrl4Aip_Hrl~( zeKr-i19;*m2{+58l@17Gt@Bl_g{heyQWCb~EGV}ADN_92>p^xFblxxLE?clf)c2djT?{9Vqy9_j7$9UcDS z??N2L-$jDvd^=@_^>>jl6uBD28Gjd@G0JRh}Tr|^UIcacPv%!v&#{x1BYp1qDt z4Mm4VLGh%(j7mjHwzh5bhH(RlZGI8FCJj)QP=>28=VM@~07S=NIP7Cb`|UQ)8=Y{d zD8oe%Ker!4R%Zs9PZr`=TZAMA`vJ@>Q^!X2FZlWM+z!<^#es~A`9YWvm~INEF&_l9 zvIcY64|;}@<N-PYH9Na&k`4W+Yhb0RJ*86YJ27)T~1* zbBR@pF>LkC`~s?oUwyr|S6(fsWO+-?ZykPr+1krHUm6O;42nMywYJ3h1(mkMWeEB% zHXd^gE>r2X*tK(n-)Sgm#a=2{pTRuH)aWQU(L$tKjkJ)|>Oc!gOAoYAD^o@w4F!v^ z#n%F%XN94-OMV|a1oN(RWY!0z$Ib+=_7OJaU|g@Bc+q3dz16U5(5s;}Nlw-WWt%y& z1P}OtGr5!gx)b`SgL^FVx5q(~os|xea)jfa+vz|r4=J1+=^Q?1C{FmtdIeI_0b>(z_!(SXPnC6Sn|j==sCjrg{;oEWfM4aQWtTVM8mK>bXDb_R(2V9o#hXLD^TVP6?~QQ6tsa(_WSH`%M@CzqY1$sEEEC z>(v|O(VDVQ)>H}w5q@$kblY^J#wLbvrMTxp-jVBTxOhNL=%-#~I06{!LaxZ+K2%Bi zyM|5F%R(Ft>f6cUu{J=zVvwL;dO~gKbwOvTZ|8z2JW7d;UHq<0#VV4ALFld#b(+Fq zkOQHS)Tm_q6&JR)yMfm_v*B02@5V>bph2qlSF_7-Gf0T9y48F^DZjSs3Cp2@N$6}Z1gsFCuW`uIW$s${X%&RAr}FaRNnoL z!s8Ha)PRz`7}Pta6$l$|06aINw-E8B5su=BnbVaM@Y9&; zXI|M&)s+y%W054x#aV^$VTte}1BPH$C)|ixO*zN_4rT$e0{}#D?NNU_KpsvwFEtxo zUl!zbagMmLq+>@Q$8EG{34B!tAR@ZZkq=zx_^NtEKNKbgLQQ@iD=KWSh+RRJU_w?r zGbDl^0Gv4ecs~~`VEwpjK$(v|#^!ga`K`w<#~!~&l5hIJDEKYVB_hcS-!}^qO0IK% z&lwLJ$R(yV3&D$#7Uh z+UJwiG&rd_Z($ zsYtR|eTC*t2y&IZ4U#09xqw%+)GeO2|t1omYIM=M=(ZC!QMdr7}{8pIX8uMFgewUixdi;_ZTkxCbu4T&= zGRkYYhd3-y9+CT5JT@Y+qnLqU&MKNy=?#zxXyIc09XW|1l6)?5+A|b)qHp93MT!lC z(W!EV0&}62fGt47a$3!Ahxv^IKE@}RU%&ayFu&ROCFRUd%60kAZy^r@WOO8XF+h3t z)<%RRqE!z0ea88>3Ow*W0;aYcQJCvjrgkELgT#a(58`=r0{=1`IX+>=VdG8?ubn)P zm-W-^@i<3u(9w|9`W(fjn4|PL3X{4MtK87X*s)GHU4QCBI%Pn=#|3btslAT&TgKRi z=Ya}RBK`xY(JrLHDw!GjOqL*m>4Ac7{`^gHh$7k|x4**{nU2TCXm#>P0UAYGM-&KBxGuM_Aaab_9x+2(r+7e8Xr`f7lYumC|6&Jtg=~Hs zti#h3rcs(Fa7xhVVh>ahz1^-Pn%G-d8hOAe=0Jti9tSE6%BmpD$FrhEUV$PF(Iiuy zl^>7JhUxrQ_JUVHDhlXwoI*E0Hr4HMifmF0dXn&~68?pL_o`@)Q?P!4P(&{o2*`4$ zSuFv#NhdH)t(a)!q2~K`i0MFNEoZpGwij`xf*iy;@#Zq=RQ$#vV@@5E4-}fb4rc{D zy2oIyqrO0@0`3J^us<%TsfIIm#kIJ1K9Wi*U6zC+$_> zuEod*`o=Y>W8v!$pZUI5`<{%n4+&;{Hai}Hz30R~2~Wn+>w6D!vGfmsk5X7* z>0ff>w!+*%7`7+(oFpf7jYbTw0o|jfYz+k6CTPtlZH-!svqT)(evt~-an)cbgZ!!XowKqd=mX0Z!tn_Y1Be#%>` zm`=aky7puvkLnGrL3*_YP$c>JH_b@X|J`g1})TL~&g=!j3w4nalBH*5BFocP98!ru+B>3wZg-@`zV zwZpgI55_VpqwXt*b0d`J7#VD5P%@v#vO{^0(l&iHBpn(qDypQpzx{|Jxmn$PDsV#c z!7QEOWw{Xr)wHMJ4SMZ!%ZAOMMq0#lQ0S@k<_zQEXQ*7hWn64|2D9eqt6Tv*v*}xw zn|h2hy4i-0jR}vA2_F{|K0YRVLQMEX6Lv=2T*txL2g6}OEkXe|w;9h?E}$j9ba;Uq z-|QP+fiNt$(~`>I6V%bZR{*|^RR@y8@n$y+p-+j~KTCc}ufy$-DZ6b}?I4(Z2@ZRD zZFDRo*sjgG7*3S9d7<8qjeU_=T=|->o;x-rzvL z6g74jf3h|^zT6*oOB@#Kpep&DficA0rG;L%K99hv;4PSVhX_sD;DNb6f~>YaEE(5U zwl#B?*hs~$>;+|nMNJ(NQ`C_t%1S?T!wl?I8zRXgDKWrV5N2||Eh9TR^Q5JrQ*&T$7xMtV$uNBv-+DgC#pNd##_tsCg>eN} za99|ZFn<18u3KXl#%2xN?S3LIpLst5SJhbE-g>ULy5;(s5A3Anxt(0yrphb6Fvu|_ z?tW}$Q(;ozDF`a56%voZgY8tf^771sUv#SRaBY{x;>i-g_Q){^s6KLqA)KW-E~9tm z9>7Fw7<7eNwRXGR&R+y_XosK$MJ!|Z-NO=@$yEtN9FxLyNzsx z^9<{b$K79>$b=Vs-`lFUHIVzZ_O%Ra>!3s%M@vRGlKiNF(5}Oh^CEh-WO|herPbtb zW}}+?n-T7opKZt_R7G*v)#_(}>ggK^<>56tQ;O=xda3uYxgl-LTx#PuGf<@11`lFw zp9U0k({alt?snB43n<|D#c(sFO)oo`rF@n9?aNx%%issX0vsFH7v?IW_dmteH+Y$l z@NQi)0-?+}U*!`Fxww0q%QHxk6f!Psa~-~_6Ht7>y*>#?Tmqr%p_jx5-1B)h2MmF= z5{(Dk)}Dr6Zfg=Yd&z9P$JT7uT(lGrt;Dp3^+QWww~{d+r=GvzF*)*5{9Ed6j0$ep zoht9jKbJT&^y7J@eew6`vb~&8eQ$g#Q%rC$_}K}cxzqPte@U|s)0E;w)jLks>au@1 z={ua)?D)z+C3w5;GqMxFUk5Q%q_oY6-_@0;Nc*qU9?YPXX-KPyfjXbfbazl>qRJg4 z98J)PUsj#4t~$M$RM90g#e@?w@%9rK6eCHZmw)4NX$dk|F0Ei#bE!mIcVI+kFT^T5 zdM|oT=oOrYo}TIl?#;(iltXMG8B1uvU{RmVAy;Wigw2LxU1NEd;!Y?mf ziwdFoKOTcfoudO7)R$$9=PA?{wnh!p2G|-%d+7mQ+NF$dkhI|&Ymw2UZ(;oYCjAxB z^jh9%+;;KT!t%~HX=g;~kdZutX}$jVLGzW~Qc`UelG3(VNN9T1LN%mhm4&2kPgxUXadO^w+^#MDVIxkgTn7pdJj;71tn!>?spES?*%Z zay7sMmOG1349{)BnQV{ertGgPUBZf-akb{7s-wM1OTSz_yGx~OnD(C%7f$$oKQHZ4 z#uw=L8!J$DEYCe;(*GDuFFZF)V&UJ^e71j2ux-@?VNt=SEh~>E(J7Re5(yUmXJJ&)<%vfL{;ki>S zRLg?y)3qnh{mC|jG<*t@wf&a%e9$T}eGvm;R|5VDVqJ$|A%Zy!+UeIVha=*3yd94w zR&14$54lruAX720mn6r95u8}v{G=}aE2Gy%F9G1;|5USHGVdolb=Hd~h$S2@0N~00 zk2&3;>FYRShbLyMuSU|@$Vr4Fg0FHUti?{&M8{V-9HC(N!omO!h+{&k^bv-gq>jRc z^EH1#atlZnwc~@nMyi1KIK^Or2(4muNGuGaA|>kAX!`O2K@_M%OylkkkUqk|AaQJmo z&|{l`jVW2CpJ;?Y1`$lLP!b`>LhLVfvW29Rj{-!YM>g(hqCIcw4mieMmzr7$$%o6u z<8s1NWyz96Tsx2EaF=Tg8``h@qjCo%aT_dK5KVDAghMd?P)vSBqq- z&lQyR(7y_!>W+x8bNB%nuA$j8MowLH!j)KgwZ4YE*$^pAy-`0e}S3@x=nzlPYo@7fO?Ot!&7!Y%cHVkcPEF;=PTn5-w*Dr9wB z?wz9Q!liw$l!m}QAvlmLqSODv$l@W61W#k@D zv6gYtA#ve^cMtcvp@Usk%y?OQN|%)|ZY|;rzG)ab>N^-fNUnT*YqV({$-d4)Qpocb z5;Fd7p+XMSdo5H#=r#-05c<|O^FAE8uTw+toWPP@UIHuJ^3&~727LbGC>`=I+ z;d`8~>S8t_clh=6t*7p`KqnSHsE`!U7uhiX=+UXiHNQ!5pXbdbg|BlA>?zW(5l691U*SZPP#L_i=?R_+f_)MSx#Lm21=ub&-nv; zH=OWjs@Idk;Qv$HrPoV{dAr1g6AqxgQget5lv#`~z$UAXs}X)SX`hJVUCQ_g8gCZ? zF!)kU!zQ`>O*p59U3Y*^+eH9;YVdBQ%dIX?+IH(Dz`>RlF;Q_$tN@s0p%zjw-9kdo z6blK}j)kONCtIk5`Hr$sA)$jUltC!TLekp3EtJG>-(_?i%Op2;ET^8K$MVPMD6`96 z!rG6~A`NGu*x4A#*K*);=IH=hM)ZHq8_8FS2QtOVvqqXe`-3-(Ysmty&g{~m!mK0F zXt6`{Y_nGVs(3rQEXW4dck^G3tFoc-oE z)`K`>dV<-hZN*o-LN=D$OE2SQY6n`)ZfR&Itsb_CdfuX8V{-r-e@xi71JGl&Kc=s$ z6J(Fx;_hg}iT0k1UH5TS2rV&*-3H4~3Vtb?32Xjqq0o78sdNtbPhx(C~v1^>w-~UVYu0mEw>|I4<94NXNGEm5@y^G(~JO~7IuD&>df`w_cy^G)3 z;>@ic$Ykwd1e4k?P6a5nC#-80@+vdsiJ6AZWDYd;J*h7~M>-?#E8eZj`=m`K_Mzi>5l|cVHuH_jk|E^ZH{-1NJM~?@3D}EHaU;57;9MsC{y}e31zqEql zwuUy&T6b!@5f~r?BSh=(DI6;(f@8+GA^)yO@9|*Gf`tjTc;IS9r60?(!bEz_$n-`_3McB7StOW87%GBQ~J7M6QCAP&n0I%+s=`u5wcN19d? z#;vfB6g|sAQordIlJ=frA(q&7Acr|nwotOCA4Zg}*$_kQQpP4T7AmI*@*2iGa0p^@ z^tCUA?8Dm`K{O?VKJiPBV)qNElMm;y9rWn?aD+4K!A_*It(*udOpi*mX=O%tYbEyR zB1E%CmogWO^*V+x)QGf8Ie_3^Bbr zkZ5)O4v2P-`%q-J{OnP-411JGNttLEo%!fdZ)N+9v2)9(7vA--C$WJnzx9lr9bsoB zX?b?cUp00kLT`z+qF)fjo)Lo`TL3-L&W z0brLJ(j@G{7_!SkDVoa71R~d+%8_JA-@I$XkRBOq58!^r=$w&ogfKsGZMTw5YV?JL zSWor7g`~k+EW{R8t1VQ*mUzZOWCQiEg@j2Kc@Vft-E1LY&+9BCW8e=KDj}943l$Rj zt%Yh>Uap0f5<0;`Eril6#D-G`SZErd0TxOjv{Qr!ny8LY+$&~UT}0?3e8bNFE)MY> z_{e?#kDRDOd{2(>gGcu89zq7#9Q*taXLG3`2YK#KvU|oq+5D3R z1FEm`5kC@CZSqytBA{|%!Ze3<`q#mqBGPs%zoRNOK%^2L;*=-e>h<7G^)Fl|D!os0 zm-_5G?(1t`cSi8KM5z{@UAh~$Nbpq;@-cHhACs05Oq-2g$Hl1wT)~?4e(5DlTu8)E z;2@7o#&TPpL`}StdcW0EA`_~ znCOU{W^O-!<%nwn?eU?TaaS4hNpa8YG#y?`ln)Dp3w0Yl#8uKS^YPURHV6DmGWn+j zvT>I9s|Ru2Yu%4rv4wMa?oLmZ_r@^XgmLOd^Mimck(#{YDfIAqbo| z;z)~*m`{t877d~<9^utgn(*T{V`|!{bqD5u9zizGLbmg*Ut`z-kR10x z#!6c;+4LC7OyY(s#D9ff=NKfl97I3<#7aQ5<#1z1XYvx6?DSgPa|NY2 zNT&$#hrp=}B;czU#X2C6UbqY-U0DiHbOwal;SS;s^T}m_{nU z$Axn&iA~Eb$WI}t1KzGTPsx$5N$GhhxbNJz;;X^D@Z7(feUg5@1tV~8Vb^^U?e?)5 zC0Nm;5C&cSysZ*`{H0qZ52UhnWvfK8VFgKiTm*OU*ByA$PYH3=KJ1hnhX8g;;(f~! z(h*#k-xqr({mh=p$jN%oghp{cYlcgy(BA0NSA-IIfs8h+?wZg+pDk+M4a|~|9u&#nc8{CZU0ryb50aW0oVgu;LrD!X9 zRigsTtsa9IG%E9=m_n9B3z2A32%~!_1o!!&X6%E7Kk5oFlbS@_n$il46sz{sAlw5I zJedoQrAElaBruamjvR~YU(ge{1`!*WEW=6CdYgQ1f6XhSD5i{(p368uhJlCsiD70< z!4g%ig@pLqEwq_bR9dK$&>Ra14-{KS81Ebnaqvw-kSp#~+-jod4DC0&H!E2ymAo^R zR6B5~m^IcYe2l1sYwAciU#S5=L91;E7wwsR&Vf@8hQ5eMj{V!f?HK!1BOn<<97|^L z0^9OygNYonz%*vT{zQk(A#B_xH+Sm3a{8j6HPbM0!PxQx?YL%EWL4XLi+FA#>9|gg zt^6}}+DoF=z*dy5R_U~G5|a|+nD#)E_R45lKjZIUTG2futxQN4SiDghq+>2&TGl~Q z{fPCXK!T^;LQ>j$77}_kT1cpFuuux?^|Xbg_77Poli&UfXir^6qS$4tvP_pTf?YOe z5OSZ5+%a8nI^rNaO3*ov($zF{14cyUy$sUby9C?zrMTwZY}+ql|8X|B0SV}j#_+|G zI7?iJ;eV$kk>d{SzG**vW)1J>4~}l$-G05OLD?i9mlmp1@pyvSuP?*Zt&LQT58qwUg=gdhCtl=+`)F6p$+lM8=oSt^#d;1nN!6Pu}?ljZ~ z-BXOzagg1L&1nc@hUx9iF#PySXPBIWy%|QbVTK_-&M-yz)$<2DlGUdLIBSyA6o1Oe zCv*2*&m=gi#4S_Sw?}DDl_Ebs#WZ80t|>UP$(1#!qnFCT|AyZoW(6ZKXAm<)NGr0c3H>zV z6PH2+);U36UPBNMOA##14ulIc9ONd|aQ-YE5j{bJ!zxmFeo_T5_eQNAlq%uI`fT4_ zO>Kz~A!f_PVPX3p0Vxr5NgclXkBS3TwBBqQ&J%XM=tB(I$EXKq0knG4AbeTH$6 z&vy`kk*}m+qK>ajWm)D!E7#xm^Mhvv8q$y1n$=1Wyr(HS>N_$&n3~3e|I%ngIDe?= z+BlXw+d@L!3=0YUQ!OO53;>FVLp)vA-9%1)(yr*03brpKY1s+53vpQ|t`R?&YZ(0* zC)haX&fdzk@n*i-(|#bPtxsPwDh8Wyugk?uI=Oo>BzOp+G&8yzT5t41h;PQ&&=ygS=K>e!rD3_FFgqcp7?Nq`(Pkl8 z{I2RGsHtakw_?0&vA^TxX+(=O>VucOMp?xC2JI5TC1@quP|xUYXt@uCn?PFdRsK)-lh_t&Gl ztm{hCRHjA7VWEz+5N9lP5Fjq~%G>i*62k5M#Q>p~edrj;^20u+_L8Lykluuqb%a*P z+b;W#Te>tpMOTAsP)(d`^qUn&rM^s+iQ4Y`7RjS2|H70q82D<6ud*62b^i)9Mo#!F znZsHURzD@^IcyMOWfGGH`qaewcwoMy0QKo&>YyqE;6*c*3U+t!2q?W>`yPiMFB>(HJSa8k`31-r&UiYDc|S%%YfLmPCt@Xe;A% zG2IPL1H2jQL0s1)@{PFfjp8nk!M!kwTcWLe>lydn!Z#u}trSH&x3CcARwqXbnHEz> zakLPLHia-+BuZDaT#_eAAK0lYz)b4>ReKhCU6J(fN%D#Ax9mu5bK1+BXKoRjwNVY{ z+G2JQ*j)>Ns@qL!`^hQO4EBDWY@PG7u7rHv-(s&6+t4nuHKvTvMr=624$8)ryzliF z$w2YBNe2zdYb`_xua;RzT5XAi%Grj0wa_9$w^*o-&kkFrA^8iJm8LW!(A*2jVb9tZd>#d6H-1tR^R z2T=^43&oeDc35+9c2iKv*l$Hp-Ec`CaK+`RM`1?D^?IwcKi)It0qCRJ`$ig}D&&$3 z=Cv0?2p-#bZCA!z48bqzOzn53YpCAtXWDRKUwqs0cT)@5<9We;E9SR<0K)AtZKr>t zy_QHL8%i2~));QA!XGk)zt{s}d+Qr4^mk@PV#ceyo45=$yTa+1f+ex}MH>lh6F29w z_fv9ch381kjN^i_(`9@ zIn*q=)=KF%Tx4Z5#>an_?X!gIxY3}caw{tkKNigtHOI<`ZjrcfLUuH*2${`eB(3$J z6^Z$vNjo5#R+{*6oz|LRAUr)3VDh!K0edQM3-qh(P7c_`HP#{ogGl1l(&OA@ep1Nku{ylIoUONE+l43rVw` zZ6Rsci53#|cC3Y@bB?x1;i-2*p@3l1=D6nPy1xGcEagYJh;^;yjYE{@E1J-+o4j&Jqy zEw~v?5zuNxz}45B$2Vp$O zn{#`G!Q<$mp~)pM$la+v&9DW>S5@XtTi~9&qQJd;{DkKfLe+O59!q%X^SuP znN;PV3@1EbXwK4;Y5ls;;#$vd7T1da1W%;iaZiuEvLvg)7pm20a2LmbzBx+|C7J_( zhAm2}=HqiPeH-4ij+B-YOF{UCZq(rR#M$SwQm2InoMKSC#l7LIHKlomic&ndHXv1I zzJ9^#EAa}$l_`#UMp7W_tyyI-eg(tXkwE%exab&n7Ojrnnsi!t$Vu(`))wYVLEkNZ zA%VBP6AMlM;l46>3R=|Dy(mv1KMFd??`vgyda-_6Xa3p>R3ysx=dV$zf5BQV{eHsem>qHS(O#E+Dy}8--83W0=xc@1 zGcBWURG-lAgDjOTjLx^h!04kjqx&596x=5V&gzO2d_IUN!Uw^Vc))&!&#$(qzDK7z z=?0Y|5S|7ceYsW%WNn_Efm=bqXU$G%yBL2GE5_{aFNL#lmzcfE65$tw^t0Y@+#UG! zh4>()yDYBPa@PT>?G6vEfq0Qg-L9e$;_?4aD zTZAHNH9`Rw$7u?Nli^>d3k#f9TG z%lFDX%l8?v^8I7V_jkJ-$=y}HkLhhW9`b!gPx4*i_z2|t;Zga%_(db%@5Q^mx(6WN zKS6%T_Zhp&cYimoU!rFI%(gv|GWg$$_v5;AeT;bDI^1x*Pq?0En8EeEHP^SYgr23l zbRuMGjC2oKRBPG6R=Ph2pa5th^#KTXKA*WG+>wP`&(#|ik$7705{UInM65emZ_X+Q zi4g0(ob)$$5$mY*G3^I>`6$*OLYL`XR3H(_{xk#+8NEfljbpMglKpep7T&#NKkW`O z`jAK;Vf1eIJ;7E1TnP^k^87#R5L1A`<$g1I3uJ$h_ zqYy3h>sNy8T67_?H#PClI!3W?crK>iNd35qF@5DOF1#~kHU!@Ub@p1(Vr1glsvN)a z78N`Q5mdKdMokcF5JGYrPg^1aavRSF2nC^J1+$7%e3h>;9*zg3XzDsAt0co$Nv&4y zGsfBaAkP5b5Hs}$UL=Y5Z(c#xPTx)Q#b_7t%}oiy_)zFH;qV6caeYaB1x5R~04CN@ zvoDa#wP4sXsv$@j{?%K|mL{X$9eY$l^DtzE8kG7blFbFM{#o z+K>0)9JYfXNW-092*@)o$?reQVS9^wQqK@0T7~Jbq9!rg;E%Aipe#Wcb5`sI4xS?D z&8GQ}eHVlKgAb)yb~(^#K!K!NaCem4F>Ml{iWg9^^WW{j@j zVOWTmMq9|vFpVZ$raMNWjggPh-Kh2|8-amB3PKvSlkN6jt?%Q&XzF|44^m&VqQAp~ zSi>qnsB#f0S;B}nM(Qdr#$!0T%E#j2Zd2tYF;%W(SXWu1O_dqFyDASbRc3m%_kX?0 z`h9lk;wQG5Doatd9>f~n4hU7wW|f;6@nM>-a>M7g%BNyPnJPEORC#l>$`Wm=%;?=! zdH?5hFEhPLA@lrKd%00Rs!pzc9?B6q9Ccz*fA=8P@LoWH@Ljd|!W4>e?c%)=PS}Dy z0o~Dozj?J*NNIVylVRP_5^ZYD=-t(N#4=rLrdNlOfBvhrZbA1L-hSyjQ)?;eIS*nD z9|43~SAYoCI+0@F`@?l#{|sZEuJxG@d$mqPE?esqhIOqa+SHoSyQ}pmBe$7e9Yq%U zuh#kjTW8xDlwa-#0>{M!%Lc(C zGgxVCj3k$aK(**HrFh5oPPxI3hT9^f(q?0a>9LStJ~1FRt12AYX^bC@==THF2gykZ zrc$R`QrPI~7=e(pgcxw@G|g?YFC&y4WDlJp=Gp+nVK^>=d7G5Ia6VFpx+$y)opz}eKig-1#U+W+E#g&^GcbbxjqIbW6@mir?>I{ z4AF;)kQfhE)R&o~N?|6#7->a2t8+@^l2Lt0=t9_Y=>y8WBIi4t#?j>U7f+I2ieb1 z2GaoX3{j@}&Bm|S-7mx9BLfK-%_w{n;=dKvAjxZl2logTf6mMF>BM5Xy!3Za3h zSv@;~{5%}I^Kn7-;U4mmugo|jb!ygKy~&Fg!sD7W)*_BH+TSIBmpg30XSpZc)4mgv zlADN*M6>?5mm6oVLf0n6mEz!&91vqNHKZ7hht>FkgH~He5ocHR;vZuAri0nhH#BXV zYdaaG_8$i!$1E}zxX6;H&oyPR-%1>K!Ae&2K&L^`0_2{7wh!G0vc)m^5nkPEbUSG; z(Y*K->qgXMwuiA(juVNIOi zg0dgb6_?m^XH#yQ>3hQ!+;&+hEk^HMmKnejrSdQcS#wr~79pdgIQSfNH}W)?D<_+< zcwk9CJi``2eF>583s`|d0r1=q{mF9Nm#l2^RnbOj<&*iKUu}6P`T_ULhMN3sf8b~i zmt+v3)b9VV_9gI970Lez5C|&HfQ$m7j2bnFM+A>(P$vlTMkbnFP~(akb;WpRC4qPn zO(Kb7+^ma=yXY^Tu}0nE;9rbr+A7cz29Pytr}x-*0vIdoPn9?Edv5c~gB< zS5;SE)z#fN-$rFD8BR+|wp_TpT20fJ*5PXS_`lTU0$?MJ=_BoUT5t_*JU$t`c(Cbr z42ito+$GPu-`q!9sdu+Hy-OlO+gfv%cq6D*6<1M|dhd(p?wiTVFPytiokUg9RpsPh z#{tBaPU3;V6Ihed;6}WOH>6Opi|rdye3tG|Jao3n8L`;DAr+W;6gC;uAK~mW7Nli~ zg9_?`I@dN6*MFMIs|W0_Il}7d<*YfhTSDj|{)xX7^*nx|a5%E(31(O~b=K+KC1j+I zA!DGjSi0etO{J|b$<*&v^8S7`y`8}%rI!hEnsV~V z+r*O5Q?ur8Mj)>MSV&$WzJ@#pKU3hTE6%tu!rmBk;`^{fMyNOb!X4rp;aZ1Fb>S!S zZaZA;Ry*-ioSvJl{nVsozc(VVV6XBmhn5aj8?blv?4d56F97n~=UVk2^Q#%F&%eQ$ ze$-m^#9z&ft!~k_m;PF? zY*l8^A#U}xhB&5vjGy#kcBS;DO(|8m6p)ix(Y6{b%KwN|5Tk>7ZzzT&P(*-@x*oU_ zp+VE|hJv(7yudmZoqm>nnD|HS2f?u=3tG|?NylG&_TUGvv{e5L$<^SImI=82nI~3j z)B4eQ5S!-}i_=+-=-;i4*rkO^K_)@{urRy|hyl)7Ts6VmV|rxdkO)X*9dsJ+sFcd< z4lU%BG$%rn5n^5#)=6@75{=4q1+SwE@AA5^^bg&>F1!T%cqP17qTfAws#EC8I<)Fu zgo;@Td+_kg@Us0G2{5+cb>UR}3M^R1C?-jSikbKQ(m9ZUo=rKdc1V>Ct6OBJ2{MR7 zQWEJ<9b!@L2ap9YJ`vhD6%b#svH>3=z%*hi6Z;sd8oyLRZ~vdMsu0~9{6BTA!egWp zU;hLu&DU`Jg5y56D?ex-=_T(hhC7)YHI0j=(a1y|%tya|y4ddp&HdSv%-Mn*WV6gf zXgpJbYf{BT^`vgVh3EuQ2N4!(KmN=#3S&2 zblglO#;hcZ7%6f>0qo*B5 zPubuOE-j#n72ayT3SV1mq0+~+{xFd$Y=cB2FTyNaDI#~`&`zuj%F700sGTA0pdgGR z4y8j}1Ow;#5S%%?M@nQQrWF&ztR|83i1pgFZcj6zk zb}}q@o@5(xUyI$QUyCJy9D%3cOYEgMi+@J4f8hl% zB>UcpPeMsZ!?ZTd7H4q+X__>uO}R*Ir8WIs3RT|~R0g$FD?X3_PEnDjfI-jcAjw2C zje1xI$YiGsql)^I4luWsqx23+$2e1QP*K;i9_XkAhc3n;O|>sg1Jg{9G}7ln`%_fT zI*f9;4F{9!+E6K;1mcSFSgN-+o7E%6PATT&chZ!?JTS{t!V7WklLGc!f5Y$A=q6Xd zs1I-#he7PHQjKAXBT5&{kEoE zqM9&EG(ws0!`|3E_5y>QNr`suPT zL@l`66-YS>x7h3OJBe`8$|P#9w~SAnK&2m=ZcNZ!W+9fZ&b5#*GC@P^;vzO;9myMM zA<9{0SZEXD_O=jfSfyJ?RAtM5OwrUW^_7LPsbL>l$YH(~3l%VKiG}K!?|BQ&X58Zz zY9KV*LhA_KVWBcYH(4l~bY5ej0z!orDkJn;3rUAQ)^KW`5X!DFBSbx+Rc9Hf zn$S?hb^o3b4STc??v{c9znh1Bm)zC^_CY84ecr}&)VFz`cWhvIWH$ad)%a6ah7~Wq zvx{WqoA&JYeSm)%=cD<^lNWD`;TjscRZjGs(e$2wSaGLPrt$S{In>PL`^TW--4rpKQTrhZF+Ggy?j{!77gv_zVC}LVB?EFRK9%*Vq&p8mf27k1@Eh!@VAf+b4AxInR8+f@;F_;M<^aZ|ItQ^>OnU*@O_(fG`GaTo+XnYW3bkBpyZexJP zcZ9)KXi6cZPQ^Q8+ENH8r4%O@u#RNJs;Q7E55)mDakf9brL`0E}m3{W#4G_(*(DZP-DI0!$*@VFat=XyI~ zfvU}eSspEAiJ*zl*5+0(f^UQ`7Zykj#YM4*=vJ+}QK3m)Y`$fZ3qzB%Nt26-)X~0N##@G{3G(H_$k24CKoQ;9XHd2LlDE3g)F1B~DDJhpsIq^Lcq3@^Ab2L!ZfOLku zB9Oz|MCRyAC-KED7LfRTwVVdjIRBf$OXg;_4MzgJi90=mSJIU+IR-Fhqs3M{wlHl3 z*!G~%vtIjGuH%y@>$-dLR`*}+A#)CPq4_H126TY2+J4TAMB=3|$hUXo zVwyrF8M+O5s}iLbxY!oG1!c3X&32Wv_SeBfty80$Avdgb)99vn5&7wD1%OQDP>tkN zz*BNtH+uxo4w}pa{IL5pTTG|Y5M{N#6#-1$VZNIrmsx`ye!tGeMCy%yd$};{lUzab z9fYsjn%CT`b1{*+-moslt4mloC|wR-ShrgdWNhCtT8ZerDpb}+wWTKe(n=&{%iLQAE{*is8o zgh(6Bn9WT7poM$M3pu|UV%lf;3EMv5UnsMvk8D%*+NZveTAC=2QJ{IEiB2zY_gA=^ zs7PGrruv5K%N~Gz@)F%t>0N8Iq2BO5-+UYRjbDbLbcViJ;1sW+#&TK%Gfz7Ng;#7t zL#1(!+1OB-O*hm&GOht^djO@lj?g=9s3YIe4OLTOP@Ev5a-?ow3$-`0YsF|Q4Z?gk;p;wSJi(|N6RAaS`x*qWFjvrg2jQFBfSa?Zqz^1N z4T42gn_PPE;A@wK3nNIU66hY11`j9F&B(#BsgGe`Gc;>m|Ampm?r%Xq?f6kX*Xrjk zj351c%IQ!kza?kCpp?%RYNh06wIQ+*5~qk-%y%8X@oRUWlqxXu#e=An+XK^aq)BI^ zQZk!QDT$R;-u5U;!lRx$8$s@0s}<8v4aYR1&8r<}^)doaexhy97u`%Zx+x`n>FK8* z3yCBat)Gi(be%JWnuS6+c_Zu4&E2$aauj)KsvbppT<(Epez+&Z$`Wwz$a;!i~t>d(6P7|INVmW2OJDqAG|6Tt;=k zBiA#v@T7$K4`Zp0#A1zzZ$M!#gYW2Pi2Cg}-K}J_U8!WsOnpahK=9j$Ksit|OBy%x z%VOrIhq;)?_8olX^%5hDY~&%!e6#U&$KR9X5Y?S>ELRO~LG9pjut4Q2B3->o#nkSu zRVYof>>x&EEh7=@Xd0-eWKeh!!yER8!9%~AnfAEmmm`u2r;FyMDO&$Eo@Rz;r!t(z zdl9EBu6y-BmDDq#yA{M79Q?hiP_ z_HH}QgsrDrT6{)OTp%J+>BN!b|8Sl4e_)*Y0-*7KFu%nA0gi9>_90WKd$e0OeEd3(U6=U%THRKlPPO zI=V{<*f%4-eCZ)ZN%^&DZ@p|qo(qHc|0Z%=d}2ht z9M~w0EOijocGpA>7ZTXjc3I>rp&CZyi3sqxSUX4LTerBmg{nN1gETHn6aK~fGV6?eM!6TcOsLDPd ztgW1bm9OE6Y8)}h)xuTg%#�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

ssvk2%h-&g^7OWQaEhDmEH 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
- {completedSessionTotal > 0 - ? `已完成 ${completedSessionCount} / ${completedSessionTotal}` - : '处理中'} + {`${sessionProgressLabel} · ${messageProgressLabel}`} {task.status === 'running' && currentSessionRatio !== null ? `(当前会话 ${Math.round(currentSessionRatio * 100)}%)` : ''} @@ -1387,6 +1402,8 @@ const TaskCenterModal = memo(function TaskCenterModal({ }) function ExportPage() { + const navigate = useNavigate() + const { setCurrentSession } = useChatStore() const location = useLocation() const isExportRoute = location.pathname === '/export' @@ -2787,6 +2804,7 @@ function ExportPage() { }, []) const enqueueSessionMutualFriendsRequests = useCallback((sessionIds: string[], options?: { front?: boolean }) => { + if (activeTaskCountRef.current > 0) return const front = options?.front === true const incoming: string[] = [] for (const sessionIdRaw of sessionIds) { @@ -2976,6 +2994,7 @@ function ExportPage() { }, []) const enqueueSessionMediaMetricRequests = useCallback((sessionIds: string[], options?: { front?: boolean }) => { + if (activeTaskCountRef.current > 0) return const front = options?.front === true const incoming: string[] = [] for (const sessionIdRaw of sessionIds) { @@ -3025,13 +3044,27 @@ function ExportPage() { const runSessionMediaMetricWorker = useCallback(async (runId: number) => { if (sessionMediaMetricWorkerRunningRef.current) return sessionMediaMetricWorkerRunningRef.current = true + const withTimeout = async (promise: Promise, timeoutMs: number, stage: string): Promise => { + let timer: number | null = null + try { + const timeoutPromise = new Promise((_, reject) => { + timer = window.setTimeout(() => { + reject(new Error(`会话多媒体统计超时(${stage}, ${timeoutMs}ms)`)) + }, timeoutMs) + }) + return await Promise.race([promise, timeoutPromise]) + } finally { + if (timer !== null) { + window.clearTimeout(timer) + } + } + } try { while (runId === sessionMediaMetricRunIdRef.current) { - if (isLoadingSessionCountsRef.current || detailStatsPriorityRef.current) { - await new Promise(resolve => window.setTimeout(resolve, 80)) + if (activeTaskCountRef.current > 0) { + await new Promise(resolve => window.setTimeout(resolve, 150)) continue } - if (sessionMediaMetricQueueRef.current.length === 0) break const batchSessionIds: string[] = [] @@ -3050,9 +3083,13 @@ function ExportPage() { patchSessionLoadTraceStage(batchSessionIds, 'mediaMetrics', 'loading') try { - const cacheResult = await window.electronAPI.chat.getExportSessionStats( - batchSessionIds, - { includeRelations: false, allowStaleCache: true, cacheOnly: true } + const cacheResult = await withTimeout( + window.electronAPI.chat.getExportSessionStats( + batchSessionIds, + { includeRelations: false, allowStaleCache: true, cacheOnly: true } + ), + 12000, + 'cacheOnly' ) if (runId !== sessionMediaMetricRunIdRef.current) return if (cacheResult.success && cacheResult.data) { @@ -3061,15 +3098,26 @@ function ExportPage() { const missingSessionIds = batchSessionIds.filter(sessionId => !isSessionMediaMetricReady(sessionId)) if (missingSessionIds.length > 0) { - const freshResult = await window.electronAPI.chat.getExportSessionStats( - missingSessionIds, - { includeRelations: false, allowStaleCache: true } + const freshResult = await withTimeout( + window.electronAPI.chat.getExportSessionStats( + missingSessionIds, + { includeRelations: false, allowStaleCache: true } + ), + 45000, + 'fresh' ) if (runId !== sessionMediaMetricRunIdRef.current) return if (freshResult.success && freshResult.data) { applySessionMediaMetricsFromStats(freshResult.data as Record) } } + + const unresolvedSessionIds = batchSessionIds.filter(sessionId => !isSessionMediaMetricReady(sessionId)) + if (unresolvedSessionIds.length > 0) { + patchSessionLoadTraceStage(unresolvedSessionIds, 'mediaMetrics', 'failed', { + error: '统计结果缺失,已跳过当前批次' + }) + } } catch (error) { console.error('导出页加载会话媒体统计失败:', error) patchSessionLoadTraceStage(batchSessionIds, 'mediaMetrics', 'failed', { @@ -3100,12 +3148,11 @@ function ExportPage() { }, [applySessionMediaMetricsFromStats, isSessionMediaMetricReady, patchSessionLoadTraceStage]) const scheduleSessionMediaMetricWorker = useCallback(() => { - if (!isSessionCountStageReady) return - if (isLoadingSessionCountsRef.current) return + if (activeTaskCountRef.current > 0) return if (sessionMediaMetricWorkerRunningRef.current) return const runId = sessionMediaMetricRunIdRef.current void runSessionMediaMetricWorker(runId) - }, [isSessionCountStageReady, runSessionMediaMetricWorker]) + }, [runSessionMediaMetricWorker]) const loadSessionMutualFriendsMetric = useCallback(async (sessionId: string): Promise => { const normalizedSessionId = String(sessionId || '').trim() @@ -3150,6 +3197,10 @@ function ExportPage() { sessionMutualFriendsWorkerRunningRef.current = true try { while (runId === sessionMutualFriendsRunIdRef.current) { + if (activeTaskCountRef.current > 0) { + await new Promise(resolve => window.setTimeout(resolve, 150)) + continue + } if (hasPendingMetricLoads()) { await new Promise(resolve => window.setTimeout(resolve, 120)) continue @@ -3196,6 +3247,7 @@ function ExportPage() { ]) const scheduleSessionMutualFriendsWorker = useCallback(() => { + if (activeTaskCountRef.current > 0) return if (!isSessionCountStageReady) return if (hasPendingMetricLoads()) return if (sessionMutualFriendsWorkerRunningRef.current) return @@ -3291,9 +3343,6 @@ function ExportPage() { setIsLoadingSessionCounts(true) try { - if (detailStatsPriorityRef.current) { - return { ...accumulatedCounts } - } if (prioritizedSessionIds.length > 0) { patchSessionLoadTraceStage(prioritizedSessionIds, 'messageCount', 'loading') const priorityResult = await window.electronAPI.chat.getSessionMessageCounts(prioritizedSessionIds) @@ -3311,9 +3360,6 @@ function ExportPage() { } } - if (detailStatsPriorityRef.current) { - return { ...accumulatedCounts } - } if (remainingSessionIds.length > 0) { patchSessionLoadTraceStage(remainingSessionIds, 'messageCount', 'loading') const remainingResult = await window.electronAPI.chat.getSessionMessageCounts(remainingSessionIds) @@ -4135,6 +4181,126 @@ function ExportPage() { progressUnsubscribeRef.current?.() const settledSessionIdsFromProgress = new Set() + const sessionMessageProgress = new Map() + let queuedProgressPayload: ExportProgress | null = null + let queuedProgressRaf: number | null = null + let queuedProgressTimer: number | null = null + + const clearQueuedProgress = () => { + if (queuedProgressRaf !== null) { + window.cancelAnimationFrame(queuedProgressRaf) + queuedProgressRaf = null + } + if (queuedProgressTimer !== null) { + window.clearTimeout(queuedProgressTimer) + queuedProgressTimer = null + } + } + + const updateSessionMessageProgress = (payload: ExportProgress) => { + const sessionId = String(payload.currentSessionId || '').trim() + if (!sessionId) return + const prev = sessionMessageProgress.get(sessionId) || { exported: 0, total: 0, knownTotal: false } + const nextExported = Number.isFinite(payload.exportedMessages) + ? Math.max(prev.exported, Math.max(0, Math.floor(Number(payload.exportedMessages || 0)))) + : prev.exported + const hasEstimatedTotal = Number.isFinite(payload.estimatedTotalMessages) + const nextTotal = hasEstimatedTotal + ? Math.max(prev.total, Math.max(0, Math.floor(Number(payload.estimatedTotalMessages || 0)))) + : prev.total + const knownTotal = prev.knownTotal || hasEstimatedTotal + sessionMessageProgress.set(sessionId, { + exported: nextExported, + total: nextTotal, + knownTotal + }) + } + + const resolveAggregatedMessageProgress = () => { + let exported = 0 + let estimated = 0 + let allKnown = true + for (const sessionId of next.payload.sessionIds) { + const entry = sessionMessageProgress.get(sessionId) + if (!entry) { + allKnown = false + continue + } + exported += entry.exported + estimated += entry.total + if (!entry.knownTotal) { + allKnown = false + } + } + return { + exported: Math.max(0, Math.floor(exported)), + estimated: allKnown ? Math.max(0, Math.floor(estimated)) : 0 + } + } + + const flushQueuedProgress = () => { + if (!queuedProgressPayload) return + const payload = queuedProgressPayload + queuedProgressPayload = null + const now = Date.now() + const currentSessionId = String(payload.currentSessionId || '').trim() + updateTask(next.id, task => { + if (task.status !== 'running') return task + const performance = applyProgressToTaskPerformance(task, payload, now) + const settledSessionIds = task.settledSessionIds || [] + const nextSettledSessionIds = ( + payload.phase === 'complete' && + currentSessionId && + !settledSessionIds.includes(currentSessionId) + ) + ? [...settledSessionIds, currentSessionId] + : settledSessionIds + const aggregatedMessageProgress = resolveAggregatedMessageProgress() + const collectedMessages = Number.isFinite(payload.collectedMessages) + ? Math.max(0, Math.floor(Number(payload.collectedMessages || 0))) + : task.progress.collectedMessages + const writtenFiles = Number.isFinite(payload.writtenFiles) + ? Math.max(task.progress.writtenFiles, Math.max(0, Math.floor(Number(payload.writtenFiles || 0)))) + : task.progress.writtenFiles + return { + ...task, + progress: { + current: payload.current, + total: payload.total, + currentName: payload.currentSession, + phase: payload.phase, + phaseLabel: payload.phaseLabel || '', + phaseProgress: payload.phaseProgress || 0, + phaseTotal: payload.phaseTotal || 0, + exportedMessages: Math.max(task.progress.exportedMessages, aggregatedMessageProgress.exported), + estimatedTotalMessages: aggregatedMessageProgress.estimated > 0 + ? Math.max(task.progress.estimatedTotalMessages, aggregatedMessageProgress.estimated) + : (task.progress.estimatedTotalMessages > 0 ? task.progress.estimatedTotalMessages : 0), + collectedMessages: Math.max(task.progress.collectedMessages, collectedMessages), + writtenFiles + }, + settledSessionIds: nextSettledSessionIds, + performance + } + }) + } + + const queueProgressUpdate = (payload: ExportProgress) => { + queuedProgressPayload = payload + if (payload.phase === 'complete') { + clearQueuedProgress() + flushQueuedProgress() + return + } + if (queuedProgressRaf !== null || queuedProgressTimer !== null) return + queuedProgressRaf = window.requestAnimationFrame(() => { + queuedProgressRaf = null + queuedProgressTimer = window.setTimeout(() => { + queuedProgressTimer = null + flushQueuedProgress() + }, 100) + }) + } if (next.payload.scope === 'sns') { progressUnsubscribeRef.current = window.electronAPI.sns.onExportProgress((payload) => { updateTask(next.id, task => { @@ -4148,7 +4314,11 @@ function ExportPage() { phase: 'exporting', phaseLabel: payload.status || '', phaseProgress: payload.total > 0 ? payload.current : 0, - phaseTotal: payload.total || 0 + phaseTotal: payload.total || 0, + exportedMessages: payload.total > 0 ? Math.max(0, Math.floor(payload.current || 0)) : task.progress.exportedMessages, + estimatedTotalMessages: payload.total > 0 ? Math.max(0, Math.floor(payload.total || 0)) : task.progress.estimatedTotalMessages, + collectedMessages: task.progress.collectedMessages, + writtenFiles: task.progress.writtenFiles } } }) @@ -4157,6 +4327,7 @@ function ExportPage() { progressUnsubscribeRef.current = window.electronAPI.export.onProgress((payload: ExportProgress) => { const now = Date.now() const currentSessionId = String(payload.currentSessionId || '').trim() + updateSessionMessageProgress(payload) if (payload.phase === 'complete' && currentSessionId && !settledSessionIdsFromProgress.has(currentSessionId)) { settledSessionIdsFromProgress.add(currentSessionId) const phaseLabel = String(payload.phaseLabel || '') @@ -4172,33 +4343,7 @@ function ExportPage() { markSessionExportRecords([currentSessionId], taskExportContentLabel, next.payload.outputDir, now) } } - - updateTask(next.id, task => { - if (task.status !== 'running') return task - const performance = applyProgressToTaskPerformance(task, payload, now) - const settledSessionIds = task.settledSessionIds || [] - const nextSettledSessionIds = ( - payload.phase === 'complete' && - currentSessionId && - !settledSessionIds.includes(currentSessionId) - ) - ? [...settledSessionIds, currentSessionId] - : settledSessionIds - return { - ...task, - progress: { - current: payload.current, - total: payload.total, - currentName: payload.currentSession, - phase: payload.phase, - phaseLabel: payload.phaseLabel || '', - phaseProgress: payload.phaseProgress || 0, - phaseTotal: payload.phaseTotal || 0 - }, - settledSessionIds: nextSettledSessionIds, - performance - } - }) + queueProgressUpdate(payload) }) } @@ -4310,6 +4455,8 @@ function ExportPage() { performance: finalizeTaskPerformance(task, doneAt) })) } finally { + clearQueuedProgress() + flushQueuedProgress() progressUnsubscribeRef.current?.() progressUnsubscribeRef.current = null runningTaskIdRef.current = null @@ -4715,10 +4862,22 @@ function ExportPage() { return new Date(value).toLocaleTimeString('zh-CN', { hour12: false }) }, []) - const getLoadDetailStatusLabel = useCallback((loaded: number, total: number, hasStarted: boolean): string => { + const getLoadDetailStatusLabel = useCallback(( + loaded: number, + total: number, + hasStarted: boolean, + hasLoading: boolean, + failedCount: number + ): string => { if (total <= 0) return '待加载' - if (loaded >= total) return `已完成 ${total}` - if (hasStarted) return `加载中 ${loaded}/${total}` + const terminalCount = loaded + failedCount + if (terminalCount >= total) { + if (failedCount > 0) return `已完成 ${loaded}/${total}(失败 ${failedCount})` + return `已完成 ${total}` + } + if (hasLoading) return `加载中 ${loaded}/${total}` + if (hasStarted && failedCount > 0) return `已完成 ${loaded}/${total}(失败 ${failedCount})` + if (hasStarted) return `已完成 ${loaded}/${total}` return '待加载' }, []) @@ -4728,7 +4887,9 @@ function ExportPage() { ): SessionLoadStageSummary => { const total = sessionIds.length let loaded = 0 + let failedCount = 0 let hasStarted = false + let hasLoading = false let earliestStart: number | undefined let latestFinish: number | undefined let latestProgressAt: number | undefined @@ -4742,6 +4903,12 @@ function ExportPage() { : Math.max(latestProgressAt, stage.finishedAt) } } + if (stage?.status === 'failed') { + failedCount += 1 + } + if (stage?.status === 'loading') { + hasLoading = true + } if (stage?.status === 'loading' || stage?.status === 'failed' || typeof stage?.startedAt === 'number') { hasStarted = true } @@ -4759,9 +4926,9 @@ function ExportPage() { return { total, loaded, - statusLabel: getLoadDetailStatusLabel(loaded, total, hasStarted), + statusLabel: getLoadDetailStatusLabel(loaded, total, hasStarted, hasLoading, failedCount), startedAt: earliestStart, - finishedAt: loaded >= total ? latestFinish : undefined, + finishedAt: (loaded + failedCount) >= total ? latestFinish : undefined, latestProgressAt } }, [getLoadDetailStatusLabel, sessionLoadTraceMap]) @@ -4907,7 +5074,6 @@ function ExportPage() { const endIndex = Number.isFinite(range?.endIndex) ? Math.max(startIndex, Math.floor(range.endIndex)) : startIndex sessionMediaMetricVisibleRangeRef.current = { startIndex, endIndex } sessionMutualFriendsVisibleRangeRef.current = { startIndex, endIndex } - if (isLoadingSessionCountsRef.current || !isSessionCountStageReady) return const visibleTargets = collectVisibleSessionMetricTargets(filteredContacts) if (visibleTargets.length === 0) return enqueueSessionMediaMetricRequests(visibleTargets, { front: true }) @@ -4923,13 +5089,13 @@ function ExportPage() { enqueueSessionMediaMetricRequests, enqueueSessionMutualFriendsRequests, filteredContacts, - isSessionCountStageReady, scheduleSessionMediaMetricWorker, scheduleSessionMutualFriendsWorker ]) useEffect(() => { - if (!isSessionCountStageReady || filteredContacts.length === 0) return + if (activeTaskCount > 0) return + if (filteredContacts.length === 0) return const runId = sessionMediaMetricRunIdRef.current const visibleTargets = collectVisibleSessionMetricTargets(filteredContacts) if (visibleTargets.length > 0) { @@ -4946,7 +5112,6 @@ function ExportPage() { let cursor = 0 const feedNext = () => { if (runId !== sessionMediaMetricRunIdRef.current) return - if (isLoadingSessionCountsRef.current) return const batchIds: string[] = [] while (cursor < filteredContacts.length && batchIds.length < SESSION_MEDIA_METRIC_BACKGROUND_FEED_SIZE) { const contact = filteredContacts[cursor] @@ -4976,15 +5141,61 @@ function ExportPage() { } } }, [ + activeTaskCount, collectVisibleSessionMetricTargets, enqueueSessionMediaMetricRequests, filteredContacts, - isSessionCountStageReady, scheduleSessionMediaMetricWorker, sessionRowByUsername ]) useEffect(() => { + if (activeTaskCount > 0) return + const runId = sessionMediaMetricRunIdRef.current + const allTargets = [ + ...(loadDetailTargetsByTab.private || []), + ...(loadDetailTargetsByTab.group || []), + ...(loadDetailTargetsByTab.former_friend || []) + ] + if (allTargets.length === 0) return + + let timer: number | null = null + let cursor = 0 + const feedNext = () => { + if (runId !== sessionMediaMetricRunIdRef.current) return + const batchIds: string[] = [] + while (cursor < allTargets.length && batchIds.length < SESSION_MEDIA_METRIC_BACKGROUND_FEED_SIZE) { + const sessionId = allTargets[cursor] + cursor += 1 + if (!sessionId) continue + batchIds.push(sessionId) + } + if (batchIds.length > 0) { + enqueueSessionMediaMetricRequests(batchIds) + scheduleSessionMediaMetricWorker() + } + if (cursor < allTargets.length) { + timer = window.setTimeout(feedNext, SESSION_MEDIA_METRIC_BACKGROUND_FEED_INTERVAL_MS) + } + } + + feedNext() + return () => { + if (timer !== null) { + window.clearTimeout(timer) + } + } + }, [ + activeTaskCount, + enqueueSessionMediaMetricRequests, + loadDetailTargetsByTab.former_friend, + loadDetailTargetsByTab.group, + loadDetailTargetsByTab.private, + scheduleSessionMediaMetricWorker + ]) + + useEffect(() => { + if (activeTaskCount > 0) return if (!isSessionCountStageReady || filteredContacts.length === 0) return const runId = sessionMutualFriendsRunIdRef.current const visibleTargets = collectVisibleSessionMutualFriendsTargets(filteredContacts) @@ -5031,6 +5242,7 @@ function ExportPage() { } } }, [ + activeTaskCount, collectVisibleSessionMutualFriendsTargets, enqueueSessionMutualFriendsRequests, filteredContacts, @@ -5348,16 +5560,16 @@ function ExportPage() { const lastPreciseAt = sessionPreciseRefreshAtRef.current[preciseCacheKey] || 0 const hasRecentPrecise = Date.now() - lastPreciseAt <= DETAIL_PRECISE_REFRESH_COOLDOWN_MS - const shouldRunPreciseRefresh = !hasRecentPrecise && (!quickMetric || Boolean(quickCacheMeta?.stale)) + const shouldRunBackgroundRefresh = !hasRecentPrecise && (!quickMetric || Boolean(quickCacheMeta?.stale)) - if (shouldRunPreciseRefresh) { + if (shouldRunBackgroundRefresh) { setIsRefreshingSessionDetailStats(true) void (async () => { try { - // 后台精确补算三类重字段(转账/红包/通话),不阻塞首屏基础统计显示。 + // 后台补齐非关系统计,不走精确特型扫描,避免阻塞列表统计队列。 const freshResult = await window.electronAPI.chat.getExportSessionStats( [normalizedSessionId], - { includeRelations: false, forceRefresh: true, preferAccurateSpecialTypes: true } + { includeRelations: false, forceRefresh: true } ) if (requestSeq !== detailRequestSeqRef.current) return if (freshResult.success && freshResult.data) { @@ -6083,14 +6295,10 @@ function ExportPage() {

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 diff --git a/src/pages/ChatPage.tsx b/src/pages/ChatPage.tsx index 1454e37..1ebcf00 100644 --- a/src/pages/ChatPage.tsx +++ b/src/pages/ChatPage.tsx @@ -1443,7 +1443,7 @@ function ChatPage(props: ChatPageProps) { window.electronAPI.chat.getSessionDetailExtra(normalizedSessionId), window.electronAPI.chat.getExportSessionStats( [normalizedSessionId], - { includeRelations: false, forceRefresh: true, preferAccurateSpecialTypes: true } + { includeRelations: false, allowStaleCache: true, cacheOnly: true } ) ]) @@ -1476,6 +1476,7 @@ function ChatPage(props: ChatPageProps) { } let refreshIncludeRelations = false + let shouldRefreshStatsInBackground = false if (statsResultSettled.status === 'fulfilled' && statsResultSettled.value.success) { const metric = statsResultSettled.value.data?.[normalizedSessionId] as SessionExportMetric | undefined const cacheMeta = statsResultSettled.value.cache?.[normalizedSessionId] as SessionExportCacheMeta | undefined @@ -1493,11 +1494,49 @@ function ChatPage(props: ChatPageProps) { } }) } + shouldRefreshStatsInBackground = !metric || Boolean(cacheMeta?.stale) + } else { + shouldRefreshStatsInBackground = true } finishBackgroundTask(taskId, 'completed', { detail: '聊天页会话详情统计完成', progressText: '已完成' }) + + if (shouldRefreshStatsInBackground) { + setIsRefreshingDetailStats(true) + void (async () => { + try { + const freshResult = await window.electronAPI.chat.getExportSessionStats( + [normalizedSessionId], + { includeRelations: false, forceRefresh: true } + ) + if (requestSeq !== detailRequestSeqRef.current) return + if (freshResult.success && freshResult.data) { + const freshMetric = freshResult.data[normalizedSessionId] as SessionExportMetric | undefined + const freshMeta = freshResult.cache?.[normalizedSessionId] as SessionExportCacheMeta | undefined + if (freshMetric) { + applySessionDetailStats(normalizedSessionId, freshMetric, freshMeta, false) + } else if (freshMeta) { + setSessionDetail((prev) => { + if (!prev || prev.wxid !== normalizedSessionId) return prev + return { + ...prev, + statsUpdatedAt: freshMeta.updatedAt, + statsStale: freshMeta.stale + } + }) + } + } + } catch (error) { + console.error('聊天页后台刷新会话统计失败:', error) + } finally { + if (requestSeq === detailRequestSeqRef.current) { + setIsRefreshingDetailStats(false) + } + } + })() + } } catch (e) { console.error('加载会话详情补充统计失败:', e) finishBackgroundTask(taskId, 'failed', { @@ -5778,12 +5817,13 @@ function ChatPage(props: ChatPageProps) { // 下载完成后,触发页面刷新让组件重新尝试转写 // 通过更新缓存触发组件重新检查 if (pendingVoiceTranscriptRequest) { - // 清除缓存中的请求标记,让组件可以重新尝试 - const cacheKey = `voice-transcript:${pendingVoiceTranscriptRequest.messageId}` // 不直接调用转写,而是让组件自己重试 // 通过触发一个自定义事件来通知所有 MessageBubble 组件 window.dispatchEvent(new CustomEvent('model-downloaded', { - detail: { messageId: pendingVoiceTranscriptRequest.messageId } + detail: { + sessionId: pendingVoiceTranscriptRequest.sessionId, + messageId: pendingVoiceTranscriptRequest.messageId + } })) } setPendingVoiceTranscriptRequest(null) @@ -6298,6 +6338,20 @@ const voiceTranscriptCache = new Map() const senderAvatarCache = new Map() const senderAvatarLoading = new Map>() +const buildVoiceCacheIdentity = ( + sessionId: string, + message: Pick +): string => { + const normalizedSessionId = String(sessionId || '').trim() + const localId = Math.max(0, Math.floor(Number(message?.localId || 0))) + const createTime = Math.max(0, Math.floor(Number(message?.createTime || 0))) + const serverIdRaw = String(message?.serverId ?? '').trim() + const serverId = /^\d+$/.test(serverIdRaw) + ? serverIdRaw.replace(/^0+(?=\d)/, '') + : String(Math.max(0, Math.floor(Number(serverIdRaw || 0)))) + return `${normalizedSessionId}:${localId}:${createTime}:${serverId || '0'}` +} + // 引用消息中的动画表情组件 function QuotedEmoji({ cdnUrl, md5 }: { cdnUrl: string; md5?: string }) { const cacheKey = md5 || cdnUrl @@ -6372,11 +6426,12 @@ function MessageBubble({ const [imageLocalPath, setImageLocalPath] = useState( () => imageDataUrlCache.get(imageCacheKey) ) - const voiceCacheKey = `voice:${message.localId}` + const voiceIdentityKey = buildVoiceCacheIdentity(session.username, message) + const voiceCacheKey = `voice:${voiceIdentityKey}` const [voiceDataUrl, setVoiceDataUrl] = useState( () => voiceDataUrlCache.get(voiceCacheKey) ) - const voiceTranscriptCacheKey = `voice-transcript:${message.localId}` + const voiceTranscriptCacheKey = `voice-transcript:${voiceIdentityKey}` const [voiceTranscript, setVoiceTranscript] = useState( () => voiceTranscriptCache.get(voiceTranscriptCacheKey) ) @@ -6938,14 +6993,16 @@ function MessageBubble({ // 监听流式转写结果 useEffect(() => { if (!isVoice) return - const removeListener = window.electronAPI.chat.onVoiceTranscriptPartial?.((payload: { msgId: string; text: string }) => { - if (payload.msgId === String(message.localId)) { - setVoiceTranscript(payload.text) - voiceTranscriptCache.set(voiceTranscriptCacheKey, payload.text) - } + const removeListener = window.electronAPI.chat.onVoiceTranscriptPartial?.((payload: { sessionId?: string; msgId: string; createTime?: number; text: string }) => { + const sameSession = !payload.sessionId || payload.sessionId === session.username + const sameMsgId = payload.msgId === String(message.localId) + const sameCreateTime = payload.createTime == null || Number(payload.createTime) === Number(message.createTime || 0) + if (!sameSession || !sameMsgId || !sameCreateTime) return + setVoiceTranscript(payload.text) + voiceTranscriptCache.set(voiceTranscriptCacheKey, payload.text) }) return () => removeListener?.() - }, [isVoice, message.localId, voiceTranscriptCacheKey]) + }, [isVoice, message.createTime, message.localId, session.username, voiceTranscriptCacheKey]) const requestVoiceTranscript = useCallback(async () => { if (voiceTranscriptLoading || voiceTranscriptRequestedRef.current) return @@ -6999,14 +7056,17 @@ function MessageBubble({ } finally { setVoiceTranscriptLoading(false) } - }, [message.localId, session.username, voiceTranscriptCacheKey, voiceTranscriptLoading, onRequireModelDownload]) + }, [message.createTime, message.localId, session.username, voiceTranscriptCacheKey, voiceTranscriptLoading, onRequireModelDownload]) // 监听模型下载完成事件 useEffect(() => { if (!isVoice) return const handleModelDownloaded = (event: CustomEvent) => { - if (event.detail?.messageId === String(message.localId)) { + if ( + event.detail?.messageId === String(message.localId) && + (!event.detail?.sessionId || event.detail?.sessionId === session.username) + ) { // 重置状态,允许重新尝试转写 voiceTranscriptRequestedRef.current = false setVoiceTranscriptError(false) @@ -7019,7 +7079,7 @@ function MessageBubble({ return () => { window.removeEventListener('model-downloaded', handleModelDownloaded as EventListener) } - }, [isVoice, message.localId, requestVoiceTranscript]) + }, [isVoice, message.localId, requestVoiceTranscript, session.username]) // 视频懒加载 const videoAutoLoadTriggered = useRef(false) diff --git a/src/pages/ExportPage.tsx b/src/pages/ExportPage.tsx index 0b228ea..248b946 100644 --- a/src/pages/ExportPage.tsx +++ b/src/pages/ExportPage.tsx @@ -1,5 +1,5 @@ import { memo, useCallback, useEffect, useMemo, useRef, useState, type CSSProperties, type PointerEvent, type UIEvent, type WheelEvent } from 'react' -import { useLocation } from 'react-router-dom' +import { useLocation, useNavigate } from 'react-router-dom' import { Virtuoso, type VirtuosoHandle } from 'react-virtuoso' import { createPortal } from 'react-dom' import { @@ -44,6 +44,7 @@ import { subscribeBackgroundTasks } from '../services/backgroundTaskMonitor' import { useContactTypeCountsStore } from '../stores/contactTypeCountsStore' +import { useChatStore } from '../stores/chatStore' import { SnsPostItem } from '../components/Sns/SnsPostItem' import { ContactSnsTimelineDialog } from '../components/Sns/ContactSnsTimelineDialog' import { ExportDateRangeDialog } from '../components/Export/ExportDateRangeDialog' @@ -104,6 +105,10 @@ interface TaskProgress { phaseLabel: string phaseProgress: number phaseTotal: number + exportedMessages: number + estimatedTotalMessages: number + collectedMessages: number + writtenFiles: number } type TaskPerfStage = 'collect' | 'build' | 'write' | 'other' @@ -166,7 +171,7 @@ interface ExportDialogState { const defaultTxtColumns = ['index', 'time', 'senderRole', 'messageType', 'content'] const DETAIL_PRECISE_REFRESH_COOLDOWN_MS = 10 * 60 * 1000 const SESSION_MEDIA_METRIC_PREFETCH_ROWS = 10 -const SESSION_MEDIA_METRIC_BATCH_SIZE = 12 +const SESSION_MEDIA_METRIC_BATCH_SIZE = 8 const SESSION_MEDIA_METRIC_BACKGROUND_FEED_SIZE = 48 const SESSION_MEDIA_METRIC_BACKGROUND_FEED_INTERVAL_MS = 120 const SESSION_MEDIA_METRIC_CACHE_FLUSH_DELAY_MS = 1200 @@ -254,7 +259,11 @@ const createEmptyProgress = (): TaskProgress => ({ phase: '', phaseLabel: '', phaseProgress: 0, - phaseTotal: 0 + phaseTotal: 0, + exportedMessages: 0, + estimatedTotalMessages: 0, + collectedMessages: 0, + writtenFiles: 0 }) const createEmptyTaskPerformance = (): TaskPerformance => ({ @@ -1280,6 +1289,14 @@ const TaskCenterModal = memo(function TaskCenterModal({ completedSessionTotal, (task.settledSessionIds || []).length ) + const exportedMessages = Math.max(0, Math.floor(task.progress.exportedMessages || 0)) + const estimatedTotalMessages = Math.max(0, Math.floor(task.progress.estimatedTotalMessages || 0)) + const messageProgressLabel = estimatedTotalMessages > 0 + ? `已导出 ${Math.min(exportedMessages, estimatedTotalMessages)}/${estimatedTotalMessages} 条` + : `已导出 ${exportedMessages} 条` + const sessionProgressLabel = completedSessionTotal > 0 + ? `会话 ${completedSessionCount}/${completedSessionTotal}` + : '会话处理中' const currentSessionRatio = task.progress.phaseTotal > 0 ? Math.max(0, Math.min(1, task.progress.phaseProgress / task.progress.phaseTotal)) : null @@ -1300,9 +1317,7 @@ const TaskCenterModal = memo(function TaskCenterModal({ />

f!8l z&ioZ)-jqA@*A7DXU`PHo{;e3#x#P|i9hh`>fe}H$de$ZaTLHG+rd~GRshS6wkPqTJ zRYSW-e+7;FLFH%W40$nMo1sX%9Ln zVeU}vOG;H`rq~g?T`skp`&G)#VHPv7NjpLJ@KHi(B#$QN;UhmU7|m+GbEu{_X7=y; z=oQd3SOI@yucnDbuIpW71ml%gP!_;QFK6_VAS>P#ig3g7eLoB`lIMTVAN}q>7Z|^lW zz-E+@GxN{`nd1V3i@~>tMz3@J==uC7^u<^2Z-06EJxrJHAn*SAN~^%){cO|t4z^z! zw0&|gsd0-T`dYMmrdc`7!WGY{90?V2HY$VWxBjj4vQ;VD%LB9JhNnOuGhg^?57LZ+ z(Su*f>tpHw^33*qe-~NLEZ_I{+4}yS{d`ybH|+cS9r}LpzQ1dekeR&i?;(9ZWUud9 zwih`IUu@$uB9&i#Dlbx*@9PCZD6AbSMBQb|ThX3=@asJO=V>H%HYBF4!_2Mod^(ZZlx?nBLZ!2d?glPOM@9nEkT| zy~vOip#sz6+TPRXbga~Kn89C`dGZS?O}@W_Zd88y7ti$PgW8k+xmkuo|NRiT|3iDy z->uQ+{r?Vo($VuY^Z#e;Nq>ig;s0KHQu9a8t-n`VuP<183Qe8Ds44FO*%Dz%K%i#m z+UEhOJ+VAsEWH+5*V6?Ncn5I@$t|)=Ghh0=x5)P4N^r*3z3uBfNsEs!TEA4#-U3{4 zl%eC@AXz7!Y6HP$E1uCq?id4(MR2aTD7cs}1CYc*|Ey`ai``yGAn-w^+|G8)wfnNn z%FlW2-Uo76v?bqewU6Bf@-GfzGvQYaObI$N3kqt6Qu1iAJq7|ESTbz*z;^5=+CYUG z?`*|!g&q0OfQ~43;%sZO-)R! zLJ_|&d>;lB_wSk1H>EFsMy2f&-~VBg*N1`h%9Gu^UwSpVu>Ch%jjP}nt^JVf{`Bho zx4m}%ZPz-;5!?am{fdJ1Q?TBRp?vCe8($#+F_eQW^RhfB?QgkUn)$C5Z*2Fm%x4s| z&-NSXQO`z2CKs*gYq;M5(>Jh$ur(hpn?*wQo`)T>?1cC40*6syk9zU4InHSV9E zLcpP|?ET0%{m3gD-49Wyg9w-?NN5+yV6{i7-SKO87y-@`%Iv(<+vWbd{cTXSEmr6z z_a_wQ5a_sHf4z_S{@&tM`0v*D`Edo~TRT{NVQWmjzJOPse?A-#G#QOKBApo9NNLTh z(R<3e=7YuG`1R@PDXzx5|NZzI@lPYd`Jaft5!?XGzOVQjkDiv3Y54Z%@_5+pUi%9V zz1q+L7nfwVe=3)-aQ%gBEo^shKTN$Jk&AFf`di5SrT#{*^5^v!SN^XX)FTffD@x@iLuXCR}(A!BAc!+vu3z!59r-3}l9C)I@ zU^Mf?KF$2qCGQuz%v_giBKrq%G<*A_?HSx3?Hdh3jMsFMze%cae9@c{tF($*JZChV zh_YSgf#y8&OjG&`mF9$o9IDR~Z9YCT;-*n1$Q5lGQp(HfOo(XiXwmvN1MNX%zWEJG zfkzr*vFP&O!$lPFUuvtcq*8_Qk!y4QX?S{sqKd@W=bA>OVY#LioKMr=KWz)Asa*eJ zQ|fG7)7D2hSE;Fl6Yx+ARy9o?BiFRanF#epQ$(Rk+*rjC03iQD*R)vbou<^YUaiIp z5k!6hwFcTBrO7D1+*L>fdJH# zcs&K${sFOUmzC_fqSN#y3Ic;_?v8jkvIJ*Eh+pYr2JaHK@J3Yy?v;=*yd)nK z$fUXpJS*2n1j#>rKsZZK3>9s5QkRxHBf6CVb(^VdajSgfc_>>YNa76lfqTJF$psiJ zP2-AO+;$#V!T>oN{FA+5wr4mG=3vx$Am>hL@&iJPjA;nmdof^hV667Cy!d3(R4$TZLz zoF$1Qa9k|K&6d_9V^YE-q4QG+bA<94<|4@*QBRVDr%EdD51CJkVQV_h*DolTLO2NQ zai#@EibOd`9!L}wE@+<>7>K-zqj4_(l^-*w^@LRobm&A3vFuDCL#^ozF@;qqE7h9! zYDn)go8S+?KOSEzG`;G7fPXyiLJ#5ZgMX}Cox`S{zLkONvwtpha*?87-)=5$%jwx{ zc-LCFj5GtT+Ujmc2Q7%NlVQUEQLK%JPHL4v5arl83?lK*&Z#8AOdvRfcY)wpLHmlH zzk7-qV>K*3kg367D*{43r-uJ^f#4KWqLC1(YrNF>lT0yxl7_|SlI+|X`IL~fng1Am zO$qCnE(1sXM3pR!hZg!{V>Eafv0rZb>|c77Dw^UVd#E7YbXd zi|_0byiMP{!gNPrmWo>nTgrvPEXkOKo%Zy#&E91j7Yfr$3bRY_Hhl|>N$Ns&y(GJy zDAzLRHud$LT%xJA9d=pla%oB~@h^JGlO;(m)DuQm(PUDeqsg!7y@%%zoLal{N2={- zrtKIv#y-SCWTtTu+TTo1A=#9g)Rb^C5>8ENNJgMVUF3GiIfMVq;1oyC%;XGjCTB2{ zE#6E{AsIk0CNhhp^J7VyQF6@ED{^4VAD!Q@cnY7V%x7HM=#g^v$KE-6F0?GqoQ9UA zz<;ra72&QwS0h>IzbLeAYOq54p4m~3Bk`1A(C%4{wf|_qrj-628B2af=SE^(k679K ztRbDHJF|)i1iz7c$xRJkDHv<~rqt|8d4HGfjAYL&H==;u?1L~U9KEp12{b$w!ydoN zUAO^9A0_;d#WUO)33Q!l2Q?69heNS8W}C~GwB1}&)OsipprIh}0Pgqyx(l4>Q70!A z>^;^=eZxf8HozD;O4QG2d;S2dKTgV$wH?yr*aWi}iOO+fNtn^W>J5Huu~Y|~H`F>V znlfQLwm4C?74Gk<%pMm|QKrd?CPxFEj*M>&|fLum# z3E&&pLZP)=vlSixyO=j;EDzCnH-<9ZRE)$a_(#2zVvJ6U{zFOd93c!KLpz0`Jy?Nq z?45$+q(}Y0OO4Y?r8EJa<=~M!c419L81^(KAecMB67FU0gnkHcPOWn$PYEqJ-hqT2 z76^jp4h#f82~y)|m?#&p-k33gF&EQ}NQlEZLg?v2(Im&wrMONGhZf9^)vs&~v34*B z;mF0{41UJ2vd_}hA^U-WF`p#6<7G+8VB{>U=A)qnCq}7N$2JyJ%ad0xxySH-@0xRP zZm|z?0n5XR7~jTFHl=5A6eljh7=kvXUMB>`mUm4+w+DC%eDy_=2+&(3$eShV0%|47 z0Qz<(MS!vi2R3oM1oE0#$zwVZE_D{LeSIjJ`XVG@E#WlEU|y2bQzPL3)_9MHZ6TF- z8vpfFqM(i3LTL6aFa|4i#-~%>Ho2(vfZBCD2Y%4idyIGY{jT1lqA3xXsg-<*W7m8R zGlDMw59{z|A+o@?x}5Ym#Z4uTM@#-J>R$pqD%~`N^Dm!_rT!{!?yoe!40w?epl-80 zNuI=gVqoW!f^6atYT}1P0MGc?rV`+iGXu6x2?QImJ1GjgXAbc4#t$_TtV9?Y;HNLk z44+%zBdTGmG!r@h9C6#KL~Xop5^C6LEc;XVT;PC#yd#o&mGdGN+>n!hrb}_PX86rR zU}v-h{XB6G0PWFmQ`>a*N|~Y-DnQ^4JTWTcFt!nwJO3!=5+}Pcs>79WAn;CCj>;(Q zG53Tkr9;CQAH!?kXW;A6^wk`%Yi8xMjM0rBW1a&aQ3>)MpaiVRdSDHllE>VazqmVl zR;uCT-7##=DWi!~&QipgHyeW4+M@ag)_ywE-r)_(|Ci%oM>+3vJdUC>|KWH%dByu4 zkA{NrfM3h`4;xDL92z2u`-Pw!-K)86VOW_VKyDgmJlI?d3U)BZgf$_xNvsUHKY1XV zB`$RP#b8P&RU%j2Vd2H|f|-$kPc*@~RLpaIO+4h@;HNxJDU&C6bBH+rwsu;uDDw<= z?#2FhlgaB?-nDjs-bb`K(H*cxxY1F@5nf_%TK}o$IDy7(y@yGrVU0V`=hwH<+}vSA z>GMJgVe-Zwy|(^ZfKB?qy$$}@`G*4M&}C=1zjCZqcYzle!S zlDaf#P5fxCiGhxPSkY^j2vQX*^=RAJrn)TM3%!+yZ7e1tHmUdoB2D!J7V3MT#H(=~1piezsZTR)*rJ8&<{T1l?6bF`i}qgq43IT&Zx5>Jp~}-c zLbkm$m=^c8ud{&Kfd=^MN)^(&I$Re&gy?qZMyq!#2T8PdDlFb{Op$N^<5S!_75qc3 z%q%vqy~NWzbHMNs`R!!dIIq0-P=?W;-Co=Wc&ifl;=8Ig`@12@PT1PcG8E>8NzU(S z)t8{`PD3c9>9vJt`*%%^Jj7sTA(v(j{D?$r|L4m8-9#%Nf7CCUzlCb5k;_Q>J8cYR z9=~Eay@;gR?cAbkdioA`u6NVvUhUm1bwBUjw7Hk)#xuuf0^6`Ij^AIfGwQP+2{F-` z?;vN+k>0-jBV&2IB-x);o7h^h8wUe~ITyrRU}2#Fj=VB`zeI%Q(G$5*``5Q*4JFrx ztrPNs?oICT)MKEH6ql?f=GN?nnNvUVwKt`vzoGug65XFuP`?Dl=-yOF{J27SmgOL^duk&%gx}2=Ju*0@r&h_{5g8B;kJ9W_her>+h=XW{LRpmZ8 zzM#ve=cyrGfsA&RAV4xrzYDUW-x*fb(xMZ*FtCP|((TkT`;E)E)(tpId3 z9-k1=ZdN0!;51;%7>|eDNJ{N{&F141VRs6RLrxQNC##h$Hb@)YJI?e63F};$R>M;? zYq*@8{GsO4g~Mg*VK4hFPn|pIw*~6laeBz9b2*j100g~>_J7r*_ixX2&28$Eci@Tp z_eMHo_9Ra#p5DIgx!!;IqYKNw*()FY<$IKm{uo(}7I6y}OK+Z>w^(8%Up1qp^X0SL zsl7^=Krb!obQtp@nfjnUF8^OclflOk_j6!xu){On`MF0&%Xw=@c8D`x5yPIcLe ze_2l7FZy6De0Cu%>_VUgbKs_*$r%x)*s&GN@IZa+t%5rrif!B&qkY>CEm&MI-!DzI z`NqCh`q(Qk3WAyX84%_4=KE82UY7Z}6|+x8@|6H?Vf#5(DXVq6q>Xd zl7AhcZ@Cj2WZyNTmwic>toCQ%5J9g$VX;+CbLuz7Ym7g5guSy>?SDdTP7xcuNHJa! zoak&NIY}b3B(JFxXI^j665~M7W3|1P4`z=_GB-gTv_NYP_8_Xhha$c56yBR}2%XhA zC2o;n*^nukp4GDze7_CEWNaLHnvC7aavW;QK z>D90pr$GqOHA^^9u^tGFraw`R2W8s=qy(ejv+CThpjVBo9m-&S%YmRd>DxuuvK6f? zq9x|mk}lg^>($_i2xo}oU`gvS5@s(fQ*lE?B69|nSc9C;sad`|RL*AjDGe*rgm0uS zRZjZEpH@@$(m@^XrE&yKK0?z9gR|C2(ezwOIgioY z=w5e#WLa~OQIyT4)M#?3UriH;orBPBnt+9H!vv;B=ElBFO8Ug3NZUsbtv;^>4~O^H zf@kj9y9F-~&$r-TAGH?XKtF+|BWmD^DyqDoNrkOpB)&_Icw5dFOTvjTsKLqkV|^Ou zbl@Tf19>fdEOmlpLKkcNYlKL{KCx{FxM)s_G5SQa+m0%en;Q2DK$FKVMB0;JbIE zyUzIoyeEBQuqCA1CVDeKW(SH^kRbq3GCK+5LVBuk13gIB(q&7$<>quRx`)o`&o(23 zerhnr;!nsTvhO$klgB{dE-m|YWDb{^Tz-aFdVA_a4R)t#_xK4#m*11ExbdgOMY~o> z#=qMdvdMiNWw^&aSQ$A>Yp)>Xue`u~7xT;2ocuC@d#98yW?_04_Mnxh-Yc^eLw+ti zauI8>sRp{nobu%GWT(rI1XvJ>$uN#C`E`&jzd zx-`|l*m`4AYQltQ>aYn-sW^~(dbIv;tw%=d-wm{1BdC!wRJJGPzbIAip(KbuNrKi0 zJ9}`Q{87qlcNN56&>?x`;asJk0DL>BNUZMDr|SBalU*wpn8%}&(7mS2d$3^cZ@-(= zyk4qI$qu`uzOR=~GOf#lnpcNuo|Nj&2lqmM(5&=d$@@# zwor0Z)5%j|?Rw_*GQCcA*d_ISy`*-#Q1Q_P6=MM8RZLTE9GS>kR51wIhAhX$Cmv7% zRNJ*U-NQ{}@$I@ekkr(j7K~HSWsaXhG?#uF<>Xaf*gZD3IbI0?&}vyHi(PWBAEw=U zBV{0H7R~?(#U(b*7 zQ?$W71A`mG51G%BJ`eRQw~K2F{3m?-2cqU7katIaMlv4B@3DIF)n+R`ew!w zXNMBIhs5i$6)*ijj4I`!`i!Q}f@soAW(|W91meF#;>0OF3>oJA+OkNN#|dA)Fai5* zvNJUs-Is=%?YlLs+?Uf2$mL`wF8Y3PQSbKN#~3ujN9tb=X)93P(GxTSj8ZgLMz&%) zd7RW`h&n%TguJqojpf1e({}t`z+@k-4Zw%42Fyc;l?Lyd+~=6yeWJs{{aL!~qVYqD z6hexY?{SaHmlX0#x^s|{a`r|#54|c|@w&}}!d`?fVW6H{+K)NbcmaRzeeY0q#dRQ7 zs~--EwdeDDKm`0=#-PL<{Sqn+Cw+5BG@kW#CN~VjnN>1eF5{)w~|MxsbxNR=Dh@sQFbI1ARqk|%QzDT!`Ue)hOt z{@)CqpVnO1EN(mn)&bN0YPBeG51S?q7f=&tsHxcW>Kycjy6X>#Pjv{1RCnDW@v-Lr zh0q-)F(npYhjkZpQ zwmz*#qpee0NCa)24sCtNOXL&RRGX%@@;D3E^?Q+3?VaSn%aAY9GfF$HPG<6|0=({F zbbym#^tqd`QaHceKwSBA*M!+pS!m^B6*CYf0HA@f$_SPG7*V28uyASe0D zr4+!$$mReN>*Q!_!V>vklLIkPyVt~mjMLSN!{*! zP1z-NyCq7d?2>p;FO3?ej12lORJNWe4X!Is7h6OReS**jKR&-T_Io*y*=!j%xg8%@ z0fw5yv+d1q_2bum$pm^J7xMEr?l1rUh=1k|YI6Tst7h&rzSd){@XtIJOk|+3fB#G? z;Mao{@Z#J5|MAb9|D6JU;^hBsQ*2&Pq2DolmPJU3L=3f;-8^MMzG_*LXYM7IA&hyJ`oUy!i~Y@*L3Ew8(W~ z2>5yiFSFihj-OTIyt!cUm)&)^iW};ru@(bk!$aLji<{06Zv}<}JwBq791)f1Wik#E zDzl$-<1m8uA!Hy4;bN`MRMUgGkBbI;RO_q<>@}%q;i?v`f9k6d(^&DLZy66jAU5x) z%9Y;~c~Z$JBz9VomwB~>HstH?9#93Le(#&DQjMi)p+vS;IXT^Dc-$9D)2MHGmZmfg zc2s+MkAy`j0eZ6)BX~qwu~?w|?fYcqu*p4Q^{#9zedh#C6rwe@YjbL%sT=8^#Wc|( zR{y;D70RZkUVQ0n#rM8#$hU0lp&EN8>ar>@?C{#Hk!9VgV_w7?9Nw1Q!g1q>T-Hu4 z&yt4C#S`DP%);8!y>f)H!@6BNwS{&HRUfZM>Ars7MuA+^cF)!Mvo(6bKM~`E|5@mo zRCg%V4u0HI`=#$>gfuy^ImmE(>4UddKp^v}a zL9)!c(j*dpDbVmsz$M+kfwS=F~0ud(yTk?WEzm^J%ja6JB|K z^&UT^sSY}+vL7Cqmp~$j!Bk*!+0M`NDzyibk63DJYdD(N9lZXOi148l7EiHn5|@JcKixtl4Vl$(HUMw?`7abQf5 zr<5UDyTuNlcLIOh8nIIXoURv2W9iZ%9Ib+-$$h2MXHJ=1I;|lv<&j8gWhP0UH>74n zOPSBH<%NA_p#8lw0{5-A9B*v#stEjXolay)mm(q@M{uzFO3y2-r1xm{K7@^!b2x37 z7OQ?TaNn4jk@|5XIKF`3or$g?e7ybz8Q~zql$`TJ$1;3I9uupBm#tdH6c%}HoU*ES zJMi>d?G|z|-Z1gx)o3gr`)#vw)0^X$ef}fHS$q=Rb!3Jwd}{$Udx<*jq>c7XE1KJemFmFj{FYbQo(ht6B--v7D(;s*m}c> zkvFzsZL;iP`V)C$N7oA_fqPeW?ii9D862{%;iFxVw$7S{#Y0Kou@!%u?8dc2kL~^F z`_F-xK_dS)<^FGtiXY0HNsKR_F(G%dz#Cd_`2a(yq z#IL@KvmG+f>|*z)BRty#ZMPov%Ik5G*H#kq$GwoUrmQWkHL#v9#UHZ|s`a`e&~OAA zM}Cx26RT$+Id?Ay{0u7c{u}P~5{vYcT_}O30h(~Wq{s~u7zd#9Ji!mNpT&Z~x_dDM z(Kcp8rjxZBMhGD~paXwXAeePSvK1#0Y@nmljuHtt*psZT%h|OTlX7AUplSn(zO?T+7jJ!fC5L@tTNRju;T5ZE_7O>g@(#&XD@kwFU<^}1b4-lHwt&<73eAvmo z>?zmocRK$vT&x@=45I*pj{IzXl`?EH6SoLoY|=W!5#z$*K-Cj7qk#n+xmkAahldoo zT{dC1*X#~dsY?mOwQLpKMdf*kPv81F>d?aVMXkB@g;g~p6J4%lr9X_nZg8S+Y%}`+ zS$Bb8-`D}FAAGqfd%=3cXs^&;<^AU$boE^X*j+T}>O1&9S$z}gKG^E}2m>n1putw( zHUtsxWA*(6bClfbdmgElH`ZQ!N65x@_uRqPU%Ko^gwV+2@b_FV8wADLTo1ZlyybY; zH}<(^6u;SYJXOvEG)RB9m=_;HpjTp?=;}$S6K@ThceInlu%zU1JV_J^br?&--GI1) zu$0NtTKZZ=pjMWmA(bAs25aU{cMJ!pP>d#RhvTkiFr4J2hzN<*`#9SUm6yB*%+`b3 zpL;{D#QOZ6$t!lbD5#Gm%^=xI_3gTk*zJxmLuQ@r|7kK5J${?sE{z01(dcXDVZ6?MM$H>z;yK=v-)<*)2?y(w!?y2I< zbu}(vZHX2&!u~-$C7%=n)c;SDW%@2pHBIy?qc_FQgSpk_B(H$pTtWL#sJ-IUKNeVI zVU-ha4x2aL!3!q0*kq(T63iXA50T^gnXmnFX7ZQ|d#}tdx9+*aoo*3{Z0|??#j@LD zDfSdB!}K&P4Z7wzu+KL`YKz=cM9#JLHap4DDvY&hz_WlR?P1=i&#UZ{VxwD()S;1A zbSn{`ze?TUmg<+kf#W@F?(rJ$^tcOD*?tH82o3tOBZW{j+`=!&9D*~kHLxKclKL_5sECrUwPN6(`cRCAKl1qx zA3Xn8z5EC7ouB@&RKQQ}6c(0~uDJ4-pa6UE60!>qe@S2k(8A`fau)8DtnhHKWjIty=9Dz)Ye2GOY^6 zC>A`4w-01w0ec#_R#ED0?$(c~Ncn46DYB(D3Qr3XqF8-U z)Yl`k`AnBJ;x`07#zeh;^KActDsthA&8$I?(47Gv3AIlM+Z#F$BhG#oDL_qRSt&0$ zXSw3fw^&1n+KmwuE9=HegkVQ$Pg)c0?$k8r_>;~lb*C1^-?03>2WSJ9t|(D+P@+A- z=&RkSuXwew3p^CF8|fBisrH4d)vQ7Zfzc<^(5TTSkxi97KRVxNuN(LZu=z8S#77ot zWnVyZCj-QRj=u^`i@1N65AyzA$BW1^iA0ryohje`u!B50rawOWVpB9wR`g|qtacegt!%a*p5A}{QcQ@Z@>noqLs#I&&8`-Q$ zi!_`z4h-i*ACd^*&IuZ+e%6%PiQfTevJ-y-D#=bv+pq9ncH(gReXU*hf3e@Y?DsnR zooc_w+V2mogp2LB+J4iwD%TPAJKTOpX#6K0Zofy^?~(R9-hL6r{oY`|SK9BV?e}c^jo5Fk{Z6#s!hXGFWj<@ai|lvZO={t5{IYCB z53&_Qjiqx^I{OL4JqrN$&wi@STEt=&0ao9yrZQ+ut|81xd1U!;xX#{>CEhBIf21Kj zy;$M_J><2m0vn(c{|ti+tC98yvW{Is1~T+}+8*G}SvVlQ+g z;LPUPe7^h6iGpWsq(r~3U#C^eGw&1?)pxayLT|vA+I1|9Z*V+GNi}+Fltr(fDxXF9^cyBpfK~bm0#zzWra5Mi~G#%O!=J5~NcAka*=kX^HOAMlzH)82m;{+`^Wc};h`9~#*=cLGWc7+Wc>@%KlTQ9^3*$|wv+N3PJ0nnG(Ig~ieI9YLWwG)b}OE7UOBh*mBTol z?>#lxI5nsZ8mF+#8yS-;ebtPqWeolGheecV^SvlR%?)&?jqFh{UUzs0cSVd0x7&0Z z5vg6-ket0)W)jI6JvL6MOt#{!8w$I%hNu4Ba`N43pbHF?bqg-7!SC0@Mv$`=zw0YV z^Y1+k?3d4p%X`wyX;3dBPh8y`k(I2s=5A&AvpPJ+q)N1`3P3%E^7NemY}wW^*@^~B z6(5FuFN>F~0H_+mD)nt@fVETbRow0EPjsl|0ojUC`E1q7#?qrlRT`oGGP{it94E6C z{{$h)W;n4s+ge)N*-IGEpUfA@!meH&aH!W4TpK+y9)~zC>0eD~mXu`Si}$d5fSP`y z+$T&OOF;)rM&!0_iRa&CF3^*g8BM%Ce`7orlq5((Z zU}MLo*3$OJcx5Xf;l>&P;{hY|{wu&c>laeKo&Ay#(h_rJlO0CMA%*FUVs`yBt{kJM)xhCHqBqRCb=`78dl&x4k zSJ>7`yp zUGN|jb5yqCqP`k_XEn_AYWP{U;wx4|!-NTpL+`NeGsn@)A_gR~yi(0>-_v@Ywc0C{ zb$q2)>PNE`#raYL?Hr&0V@2B!vyuZH(=_lEA5-aukQ2{8PyCc}^&xp?B~+~5I*eB% znVyfUrLFbwYN@m!SK|3w57a2$Ibo;3W8rE+cy3Q!Fjl{^tQxD84Cq74P}~>wE@zEv zjY=*bj-)zKCCWws*7BwaHJofG4ik$zZ&ijssznXyX%sPy!u(|@+#BLi>lzdZzE0Sg zhoFe-c%5f>!x!LCfq-z~i?a>NYbNYejBE7!bx?dCP_-qOhOd8_>TGkKhN z_}#F@5-{iX=c}K-`S?$L7-;G(U-QoOkCgFz($+Q4KKan~y2WzE~oD*=hC$a;a5 zGG|lbnPIKhHNX?6(mAw4{(yP?n%Aws_(>NOr8XGn_s9+v z+e5KivOVKBw^qFtcwpuI?2U`6w^2;yZSJ`8wug0Djeu#@5t-+C>2$9WfGCaVMq+ny z{1PPp>86m!8oPHKN!QaOPj~9~v>sYuKODGs7)O|_Z72&NrrAUIenqqVDn zz(bXF4Do?SG#VdD6i%T?;(7EQrxINvU7(#EHgsc zpp~gKQ1&1+>mhp7PO1!Glall65~ zw0aGF?LD6kT6^6CyvEUVZ+}U9hFbN0m-F>=VuDVAxB3svk4V0D=X0>58U@gISita; zQNS!(s%8+&Y!I7g=3VG&WH?563|x=H%mukkGs?gmj=2=d?bNbs=qS>Vr%%NuL{i*w z^FFa=&&!=o{iZ0XQQMU-9)LV~6M7VCG_5WaNL z#?7mrx#FlT#roYkWc8{mj@n$Z`We3Sdv#?eXf$mj!a$!gQiS(T+o7@}#TNcX;P)Bd zg0K;1@e^V8YUUotxCQ40pg{}wxM17Bw>wKZVGG}^nKzP`i9OBU8yh~p=-rzkR5(g8 zf=o-90+J|8*k0_QNB)aud!a7ci-m7upjLztFBN+!_JnjT#0L_HFMRP1Wtrr$+~9?) z-$lBn31=H3qyQPqa8|1@flT>Nrrn@};`r#sz`aH8WjtnT_~C5Prs`*7_0I-w9mnIY zviXz)@mWhNqKUVIfm{E`os)P6M8bZoX!#hby`P(+>W3qVe*_v*uf>4rN1h|xgw{n% zB)f5X`qX3G-a}P5M#!l(-~v80rKjy=Ut+i=vhWpI-OP*xPH8D0IWw@JGctZ{>xjSu zozarcj82Ni&8qrG#YM6D?$&E!sV8F9e`gu*%&lHOUnH<#Wh1ivX^~V{Wc*6H9%?;7 zYu4Zo%CaR|vYB-`BydsJ%s}12D+BF!(Q@2xp%9@Hs61|Xyu6*Q~?1u4=1lo5p1`Xrai(?282(|ik>N%)T9v%riunv82 z$r?T&y2&*_W0z}yIM+}kGSEjNG@%{a<|3#hSu)?`R^oDOgV?a+sq?`4SV>nj)tO;i zX{fFyR{gB@b2FM!Z#Us}CmJv_aEtkZz3LfZRKKo@TC^W&Y2u(!#-~PDDsa(SjYenu zu%>imr`QOEYyCL#8AhWVEk))aDk1tv>%0Q`3L4w#qgN{t9NTh|%^eI{RAV1_0G8+p zQ0T#_CzYfkB^o06Z_O^V$(egeNL_H{ZO?2FL+&M*GID}doeeAv$xDZ znUF-n(zAu7-=V5NmB0KJuGVT46WWKZjn7P#O?s<@nOx5ygt63?CU7ueZxYY!2(+&x z$K9bo`wHa@{E0TK2YYQ3c3%DTXNtD1e&+JZ$BU!Y8+>}V=GoS>b|6m?YU~oLM$Du5 z3z5WAhqX?PR&PP_vK|16CZ2jbTHOVP48nkY1*F)zVa@B0ZzU7_UF#t*T%F6ITt(GA zummM5*I)?;8(Y4L8;)4AUNcUuH}DXD&A1f*>%g2|HtO5iy7unUR*8QUkc@6bt5FGG zqe(C7>7y@z!W8KB3&ELzRu;o!o%8`!_m=o`ys5YuKf^H3UYFx<3&uB|8{Y$L zd^3cL$ZCiSO5J;uQ)LTw_YEzvgA~acIQ=@U6`bD2)!?*5oWMXhow)?~9PWcAksP{0 z9LgB)HSjz(LRsmu>hEcL|1`#=D|6sk+#fvSheb=)86d829o0}*+*g0jQ0jO$0b!AAi1gDW#~4e&F>G z{eNSy{(r;o|5vR4%z)qj{&1!K$8-H>cR5)9zdKm}3&AP=;lBO{fR*Cb;gp13=KA<6 zgO9*p7=bN<3ypx+eIF{801xy(4+`(u|L}R9!AA?sL}*u@nW%}%=Jr*cRtxfCdk%r< z%A5;FG`3l``6ZPQM6d~hK9NlOm`9R zd-#QQP&&Mh0BNilrpT#AfzvH|wyO6Is*Gj{$oALx`rgGp*c(38d{x3N27TQqBlHRk zRZ}d*pg(Qe3KYUMd?{j@?FmveZ{S=^?`~TVh`Io!6TCD03)4ivH*G(y;{Wx7dDP`<&i9Yrl`#?>hUv-+sS&d4Wvlp@;hDnNvS% z&#NUxSSodO1!um|mCeSnoatH@%-qJl!nfxLf%oqJmV}ow>e;oD@QN!WK65>jEXkHb z?CdhI-jW<;o@4=V&FkKY7KPa7ao#epV|Blddztw^?`1WC*HHH|_KXj?$sP1KpBHUU z&2gouBEEhV4M>j~&qKE=;?+FwRXMM$9E4Xl@v1QIzdokC7xFe$w)qvQ?ngbvt5n7B zKhB5FWZC_^OqN{kq)I2wpwP&2WW}ts(#@%|rF@#2EJc1j+N1J5Ezml%^(L{Z=^@)7#sZoc~EVRP3!AXtl zNtGQ&8zRZlAlW7r)P6IWP0sI5XPOwuBdv@Y%jcB$mSGUrI(q7m$hXT z{1#gSSeO>4$UTMXY~CvgPP44(lMtlIWe=RbD;uBhd~VcEZh+EX>r%3Q;pFBv~($7JOH$n3z46-Ed=@6pcGB>~lUe(?a zyg=6sD1y+zpafHJn@5$urqLm)ZTS;eq^Dzn{5ORtxTF-&?uk&m+qNx65*)s-IB{BZ z60;lVSi`68vdKJvZi?JC60s*f+r1C?aKEUZBtL-cQR;4b)L1U=A8bj*C%K1v$wPd9 z70VaCC%Cv@<$HJ8KQL$ou8YDa2ykwNpoZJC@iW}>RUi>r5_LtWBte9mteLGWn6)dE zK`ddaB$gUAn!+O4E!nbXDayvkhSEbo7Tuh%Tnr6N!m8!q)*|9!JmIFO^edhM(@TgL$t% zda{h>)@}{ohF^kB(l+-562m$D#A`#H+CU>b-M7K9!WZKwpY#0}%GELQEZ4x~igJp+ z1^uz9=QvUTEylbseD$)gGNMA6=^4en=#h%P0Cn94Jl05A@!vFt0ZTomI6psQaQTGD zM*745D*QAg2C=bE;=oU$yb}z!E8BC^K|@3e{$`g;5NeihS%X)nqSS)_Nt3Ne&P1!0 zZ7oY=OX8f|;MZ7NP$NuSs_cNm)&_IwvK42M-D`F4(AvkqJ$hKHaDW~hlC<0O zS}Y8x#mNjN%st3NKw*?87Z@V*J=*Nk#impQaVD@k)%Wt&tO%s zF0!kLlRdVyj*Srhr|EOerEhGD!7G2RCpLad^mD7uN{xd_of;&NF_-dP4aFsaR$ODb zF5f9+HNGoW(i5wtu637WChX#kheP0v&F)1|7sTjrUEs$HU%96B@~alUdc`%DM@MW) zxdy@uUz>LMHSrOTq@8Tw$EiK>ODFC;BO7qK%Z?Fa*T&lDE}O)yxSG>ChhiI3by~~N zAw{i6o;F*T50%}s=WT!_G!H-iVwSBIt`qo4*PLgbJ zTbE7Xq29g8GBuhT@osn772K&A-DRKSPHPwv+01QV#q;Cl96_R&yUQB- zKAp&IciGAOGQCQ4XdqEb0W_$1v!{69Y|1J=9TrGP|0gM3Xu{A_hXy)c;xSeB&hsTj zzuS@MDeo?Ofm`va$ugI_$gZwX>t_=^q3*IRJeJvqP28c$FWF4H@8iB<{5o2Nn6vB` zda7R+KiO(HYUL>_k^7~}zRv5!sBiNdCgJ1VWgXnAwPcygZ7;_8Wmj_(Sn=G!b4EIW z6+4;#vP*aq39NW}?3}au$~z;1G99q*$^<87(X}L=8k#Jtm;k|DxNeg4fp2Va#*Ye- z)k%&zgv+VLbJ>DF^&pQ2_ytzXsjvd6Xvf$&!?~RJ&*w^tXazQU!fRKt8-yXN1MKm? z?4!-8?X~N$1Gx-jA|?5cxxpT#MUOozu>KN_u_z{WdWVD>cH+glEUD*I+0(it%g!6GCx{OB7xAjQ>{#BY z+U~NWx$~grc>iu0xR#jNouVX@l(W0EST*;(PmTKRvl^yYX(;y+EzPLE5(ye&}-fd(Uk z-qAz@=uA-kv)^Flhq4tXYe>5j*&#RmH#Oob#x^`}&pZUDX~^Si?X+4_1@~|u^`Y9% z$z?NWGwl7U?y|2Q?GYD`A1S{;7CB*P3W}Rfz&EwspN;>%)MleJwc+7O-r2NLj+#cNo}#0k!2Ecdmz!Vm|J(0T9)#1K&e`&t+@j3 zfb02!f^5ahpAxCiHjYnHK!gcpK$Qpxh?Bxc)fCQFJjpF|Y!n-n*7CGd;;t~_b?1c5 z3>KPkjTw45%?|3$)Qe&RfXMmJFa`IY@Z%?s{Z2LM>Q}|_>u$n)yOCY8>fiKfjaXyQ zNj5Tm$Mb~v@Oa%ne4gE>n<~BM6ZNf;P&|xC*N%`=%Y7|Pt?kOWfKUPELd$FWYJ>a5 zXsGPfr)dRiw%K`OGmqodDA*CTH$Cc`pk8*@*U&-uhxDipo-?n~I3xo}?rm@Ap0N(l zNR&@-pA$Vwln5>L|4HA1f^rlyf`N0J=n_|9FTYZKJtQc@_*ThD=v|s|w%;$=?^X7D zq5X#K_XPW$V85g7x5$3K%UEP5{>^?D*l(Nt3Ldf(|6#w+*{^HAFWB#k_WMu!U2MOv z+V8*Y_oQ=_x6Xb~vENhe_jLOW+wT4cfPwi(0Fc<8#w8`~R7 zdKx;Wm$tGq-z1+&+4DT?e%B!1*rNP~96f4|DbCM_cT*sbf=7w5p^Rz1n`$4AVOLif ztKQs1jDgEzslz5}Ni@|zGUuR~k%dne?QBYauL$lZvbIET<7|(}3)ny_RtHyQCw|`g zJ(?aDR@qlyc1Pj++9knbP=MV9(pay5HUUR$fHMyDGgKH_Z#H zYw@5%PU?kJV@+a5F+e^lad{0Ei%l)=?2Amm5b{;^R!Kqn+4=Odz4YOH`u?egc%{yM z$4dQBK9vfjz1GHWM5xQVM;Kp~`PYSo&raqaJp1We)c((V>2+`ES9|IGXD9OqJ*RJz zz$tULpI7+{S{BN;Kcx1D-OY0tGgdS1C+XW}Dd(T`CViWu``>Xd+~T$Or}kv+w>thD zw)X1Y+VgR*J^r(knc%k}*QU?s@~3ZWQR$@x?cIGrU&v$9|39p~51iEF`v1QO%PFlt zu?Qo@AdDld{}Yu#F$jw=Cvg@X24N*kinFI}Sx#7lJx5r?8HCj-Ho_t-ibb>$-fzNk z{8^O!Ua!~d{hqmJ+v4~5{Pywa(eu9F*L~gBb=`m8eW5}IC}|V(|7W3ow=CI#uY{jMZ|ma3rvs*1(Z5}RzLNRar7s; z=ubHM=S*_-SBCm8T&@1Vu2~iK!4vy4J0tLa#(B9k>z|fSGah5|@=PzgFo*{(yW^YZ z=;Mh-Q^mi)H*A%E=jib$97W;k)8e=^{C*`bs%>X$Sj2nSHYv4yHRDxp&rA6+I?H{R zTNk?-ad44+oyAVne>7|C1rfRObpC5F^e<@^`Sa61I_;3KEOyBw{IDG?@XWOjr0{z( zVFP|(9igy&=>Oy^*~Ss*t~3rsLL&zK)hzpc@7EkTH#W8oUQtqX$=-TxW<&(xvGsqr zP35FljVuHwSUbGxt#?Tfs?I)NGT&{OC_a}E+Bwy}mlxWO|1CcbpN0%`DtqGsGCR;cDF($3wLol|C3EAT%Up5=1epDElM~!lkS$=UYGH)_}wUN2Vp5SCWSnI+wg8p7JC2gBRzsCid z^Uc2uti|{+j^dbiK4-Nmm}a+o@VUCuV8Mi zvAJ~|WEsCgsbFo0*biix)X}Sv>Y)`R@++mHIVt+zg!<UEa7{`NobEfj!kl+3{ z=4ZgmjD!A^fbR=+tOQ(XbBmRaLvD`pQ{b#qeui<*li@YJrde9|MP^4#mUfQKO>&{O z^BrxY9c?Fe(Kf6bZQHuq?E0Ry*D>_D4YtiUra!^_+`}};zg`>nwY~80Pi!7H7aM;(G9WaTB;v+y>)+K>Hz{?RO7j$_4U6OQ4}ob4uC07CEBUM(hL`M+@K zn1T^$sl`e~bnKBMafUFZR>uo%bT1OW zC2DF=d1s%ips~wr706@43gm6hs)2c(eGbma=WE+gHrC0;8JzCbzl#fOT)R7~FyU=1 zt1#!;O8UVOp-K5*sXtVh$^K^Nuzfi;ij6}dvxoEBpb?Bq#I7ayb=se$%rbwfxEVS! z;wtbsF?Cmnxkiika5lG(&zR*w zy42ri*Ie5F!aizf$LgW|nK_)*Qs7N07=b46dd7-?Nyd;f2=xT9s8T8R#l?TMQsF+x zE_M{|5p{K83MEG$Y4xsA5;Z!$7Oa8QBa&VkbeDp zyJ^UmU2}a=uc({)Y}CX|lZ}Q=tV40Ur7b>|{?7VI&idJ95W<AHfm~6!29*AFzBYb1uA^x1Y4UAjdOLcIi3kGWpi4tua@AF zS?7Sw%mP!EgyLE$ZnsN&{$z2|r2MKc=u0hR7F04^NxPQmH|?)5DE{vcb9}LTc&}J` zFt20GM*lW{pupSW<6L{#Ru3wl{*r2Nq0*l#PTTc%Gj6-UIGOsUDKt|lcgcrVChW|% zB`@su&S{?&h@p~^gE-P6;OIqp?rZD@FxP{shxX6)=l4zpu0;O+;yUo|;&O059nK@T#RvUvmLmn@>ye%7)y-5@F~W;9x_qW z>cly?ZezV3*KO46pTJ2-XbKhIV>xEX>dQ5oYVXRF)5Wn^a610GCeI*U>fb+r26Hhv z^;z~lPREB>9c~2!ii-IN$<`Ckignt>IqSpq&^d7){O;_t{=wmzX72L{o*wNSaKj<& zsmSp^*x)Awhtv8VquG4)=j|b^*XE8Q|0Qt+_^4sDEoBw>|4}~q9&sCFZWYHNbB8@s zWcpL6>uTjkA#<@fgZ!ud!g^WPsmd=x{vl7YQE1ygC6htfzk|ck)$O8^>k@9ba^uC? zvBt(r`(aKaW?}5>Pq0Gv&3>vdjr`4xrP5r9AZOeu3ceYPZdYO8F3|eoS6DMu4l+8Gt)R1j5YSp4pZZO zc$&Eq_G`ZJiS5GYN6^6_UFxsDLoV(AcMdBnL3`bOC^-v{+-0szqN5;qnFr{RceFx8yg<&W6oU zgGV$x(g$*QAjhAxo`wgiFFAv4MRRB2`l!v_kZBNS!PCWbuT~sK*=ahLY=KOr^6Ao8 zaT58-$JzT>cE;(fs~N7=f&W-{?`Hnd^=9;Uy8)eV+$^m6=rPvFp#NDl(yASebN#&y zl9NwjbJl~4C7A)QIE{A3!R_J{c$qi?ZZ!`3pv5eSyvaJBWX%nOsk;pMeXX8c^Ud}w z%a*nZ?_Z0|(6C=tK=6MjvQP;EcbO_{vqc~KBAeavDxlR=lzFG;Ra8$wj7{`>O@xei zKUqYAd_o`uZo zl3{B)8hknYBfj1W;9{w)!jr`lG^f`^P--&A>a|@p)oWi=Mh+~j>T{21V zbAdegNpT7I!GKZkUE+4=yh+U1T^Hm-e!OwmySU#@LVAoOV&HOd20UEc2#$**;29(7 zc|EwboXq^GmY>(2zuqy<^7HM570o(X#QXWJTw?_b#j6JwC^tSbqy`7~HJdPb zfq%tmmv*`)wYQ|uK$hw}KwTYj_q;{9VuXBs8Iff9lg*%Ta$3_)H#eWeQEWbn1t$rO z;tcXn?;AIbU=BtH_ zcL2*$X0e!MTf`a2&lj_<#y|%72g=4cIC}*3Ff22~8RXZAsegjXCQ)xnHk5#8l`|gg z;DqwCC_7#G)R~l?IP!-$`pX>seWgDQJw?(J1CNxR62!`zN#9$b=RnI3V~PKRuHY}! zxf5+@7So0~;#!o=iqqg}rZXsCZ*PeB%T7}Jf?LHAe1OU3&;8h`+U$s>1}W7J9VNOh zoG`W{@9RjNQU{i?RM7?|=M7Yx%@>nf+vIX%z|QNwGs(j9IwzjnDFL7K3s$7^fA*ckkz_~fAK90YDVU6BjYhy znTaRuP2*9Me}!trGco=fAJBqIdz{VRR8G~|Q-c2b;w(;LACgQvPISN7mGUL_*s}kL zxXPYr_1_gYlo-D%j@UD~{Dg{75p;#a?MpJ&0+6!u`zh6gDD8a~r@RFC2n~IDvCZq$ z%l4aif^}Uh9&sg zZGN3J*TKfA;xuI1#U=1#oVZc-9jw}0Ahn^{n`>OVQ}xTcKiVA|8~8=DBM4s&uX%gV zzTt!~0X3L&R_>K=wmnmvL2%3;`W~Hag5wWl=uiWAn^&2Su=x{@Q~zgyWk{r5yb5?R}pqpcC;3|8Q$$Lu&nQk_4p&%~#*(}JLgHi9ltC7MOfI1rkHLa-k zqE|w77IRqQrw^dBNf{&nIg^2dwo z!RL!J;L+j~_(X9V_(*XP^c-xQ?;9YixeQYMB~=bC6<30Lb}3=gf86rThw*!w55YqO zcHMF>rs!*8toiLcUQlM~u-3v*2hRubd6|Tl-Z6||p_JQlSm?dK<1}P7Ew`~+uEySq zwktv_Z8OlFq&tHpy?s}s4`*1Y!9?t2rz{L=tFGtzy6yakH>}c*>m-Ifs zsYf@qVy%VlXLGub&FOaa4ait6CcEjxvm#gHF~gb~#$ZyndIzAHO?oqv#*?=utw4Og zM;M6E@IQAkd;l&%Stfm&5I>K7;cx)J+>vOdfxDZ^ngA2iBJG#*H zc6Xr}fbR*1%D-`3*fXa*bm4+i3u8Z^D3W(!N#MdMtEnZPujN_Cg;#eE16AmPHG>&N z7pxh=R#=I%gjHI1fIUi{bHSP+*9zz7l!q?NJf*7()(l}QSTnE{Ze3k1c$r3R-HC}K z=%mHDS_)mTW(ZxdW(Zx_e|5@B^2)!-yYP^`4k?dA7yOe~aUqg-VToK=_~vQ?70=i5 zY~F>TxmvookjcAnbjOo4s}s z8H-RU)Y}t$SQkerpZ8>nl+QVDi1M3?O{UB#ySRmA%dyRkD8B@2@MdD_EEZGGOvzJE zdn8})GBNF`a%2`LpE{ewZ8in?v&6KsT=Fe{vi#}FPhbyIE2eFe#k3(RdFmPK=qXV? zZ62w7)|+t3E`NhIQ-4hPthc|II!hh-Ig)37k@9Kt4CS*fZ#(K_U5mxEGvm}XU-_)7 zQB0jP9r>hF*EA=;%*mgieA*CkY#5__+EDJ4U7-y+{f#T1HVhKehNvUIK=RBlaq?$5 z`5oKluVK60U)S@szptsuS~GjEndqwX&!jeY$!xO8+MBT&!NSeXRjZM5H#=oE47?L^ zg5km*{O{OnCzKd|ee8r1_v>PI9Xew+clN2 zyX7_ZfEMgn-#?YRs#5gw*SBGQOnYR{bmZ!{GviiE7oHhIfj0n8Q*zEW^|lJw{T>A$ zzZ>blD$aucvm>jb37g6UROO$fYH7kzV#<88AZL!hmm{-N-b{aMhkH9R>je35_peU= zmwl-dJ7e2)-DxhF)kTn6OZ#NhY)1~$k!IL^(&5}j(w`5W&4tdSzOsvIxe(c7i34m| z3+C#WEo(N-*;8|+DBg8ZE4V9YD~*-&z8TiNV9@(w*lKq`@Wq^<8D9(IXCbF%3Qa6C z6J4VwwMDGo;5z;i+EeA0MiZJNBh3*jAEbsAq{@_vTh0D(lnpP}b$jc~v{162EFy32 z@P@|uP9D_h&p3=-Bcog4r|(2-cz1rhIsx8&@jueuJ`Ioi=~}age!KbBY?LW9wttJ_ZJtz(r4xr^gNrf&~93*wTCkM)i;crk;H(?L^-o;7!G6P@SHo?eu$RYB^58&gSeoO9eIBoQT3fQNQgH$$ zdV>GpSP1N;zJ-TSA9XYvhc#LqDd?T0!BXJAz*LL!MJec0KBmWCA>-|Vv0^8nl@?R9kkU!hW ze?*)_{=c34Tf}MPPjT|E64xUCA}9ZBaTfWfIQd75TabUKlfRF#T4dFDhu6=m%sH~0^>G~&PhVWf6!}F@R0-<_VTnm0&%(C|z2OR|c1LIOdfxi%Q*7``yneZ(!b-pNO+1X<1e?&|@o9xY2q0LVw7+LC^BAE<)xysRVk)!8q zF?~EmoP=#hgE4y@e*(Y3Vh?882N&%(r8d46_1L@ON&Ht`Q(nd6VtZ~g-;75$wpws*fj>hm-1zHV zV!v(7YoD;gS8EhFOHR57^Gw&busasqnqh?sW<)WN`^>A<=SBv!RQZ8Z>lr!Qu6EXlV%`rTdEo_#TC2?aAV@IiuLlXX&b%NI zx9U3k9L2V8v?Bbo86w-W#frXql}vxHp;mo)qh%$o%D_; z6~vdH9?*9B=6xAaM)4nFM(av3qje#;AX%Mtm>WoP6*^Ir;G+f6z&bTG|_u zp)*DgRy*;#lZkGurlm{vq1CkXZDU*0Y(4A1t@-)Ep%UXpFwBUktm=j;~c4EuXCt zfgSyIq!}@Y$c|F*bM`duuW(#Rj{u)voP+=Uh+zAv)1($1Z z&RYYAye)Eq77`0tk-x60VKegY#@(vBw^sG3u|1*dH1; zpaGD#*k5FyNjE7tYN;`n%0 z^Dk4A()(RiIlbRbOamv0Y2f+=2EJ)=$Q$^)rCbB68@n19FE#^{-5PlPW_bgji!(Yj z@E!Bgs%Sz4PuV;#bNyqA6r9*(FE(=pc)frjf39SzkpH!PaLx3PKNdHjE4(9S*;m9# z)Iwym}R^!$nxU~E$T4it}zLI5&-3a@{HQMS2dpt;6 zL1+p#TdjuOY__cZA>H)r86-}FqvA+0XT<$C=JeBKHQW3+xrC`A+y^bunH1Y~q-|x*Y1~`#6Fq2a zO4qMPTZ#OHRo&}2OBddSfdcRDhnyLerVh5#LsOZBNkhe`){OY8jA()rSM1JcXTTST zQ{Xejaqvmv7&ILvu1EeM;s|&zF$1s@IP6>zObON3wp!tr?4KE6n{F%N-H84%xUny@ z`ka|mPpjVN|I4=OtKgd+Y47-J)WN8F7!z&>!z*(Z3>@{VcB9KQb%L?m!Ayqtt2fgd zt#z28%OxMfeeB`lM&!rE33I?7Uer>ay{}FisLx%FV+f>g>A!? zpF%%~i<2gAjkaNL_8jh<-qFcIJMKWgVw~?EHN9qAdT^uZ%|Ab88#nLj2b}(qhDxls zb9=GdW#GcM`*A_TF@N31X=)SLKY&wL2YAFlg$_JeOn3Gc$B@6X7-stq&!8UizZ||< zTnm?f-c>yiHhd*!NSBJKbCEa=`IjA;xj{ba`peGrB?g&$m7fIPCZ;bnK|bUsidoks zVut-!2SkIrw&Q8TfiJn`4uE@@}r@ z@Gt+i{BZDcJ$J`Zun?EB|4Umt8g7ud1i^`lX;oh_gI^-1Z;w*uZFm$);^1|u}1>}UIEtzC^~b+C3d8+N~TLCCxLBCTCabX=*a zg>`(%L^mO!`Mb$X6!W(?#+*}(Q957ubJE~q2{q$AlGLyx{sH@VEA1iJ^*_1d!`|oFO;bYznD}TVkLYbbw zky|)lJxm!sYCc&qd^EjM41aBa9J(O~NG&Yd$V#|_;y0Tu3!i<3nD_h)XHcZgbva6K=13nUAyP?l*L#YdAsKl<8)!BdeGpr9#Jr2i%9tWB3dR+C*=sCly?RV!Vjkn*L zUnfz$iB*r1-c_iGSKylSidt8r$hKW5^Zo_ux=b8&g}N@a#exJq+kuI0`Z2r2SvxXT zDCVCmhCY9UIEi=;7FVDl_ZBC>J3I2*h#OFLW3gx6`s<3>jej1%x)SJ$Ux_QgOT|^- zMdB#5hdGKe-Wl(-2m1!$BKJ)?B!r9_F$u!`3`tjlx=^Y}yO;{dFRH6;u zkJNpbdhUN!0*kKIJz8}`%2FehO4++We!G28(kzbK53cx|sZ0u1Rf?%=W&^F_gxuai z%ejUu6W7bCN2Ij~U1z*XaLIqhHltPp{eDa(0y`EUidMI5d`78uSapi5Duq|u?!Y#U z!>Uchh^W7w7%}mG=|`Ci_-k=J_+xPj{0_LFtJ?Qw?Lclr4Xs`r-EMH>_IAMf?Z=0s zotwS=Z6~XK8xQ)eUGnYb`n^43{ySr&# zujD!SW|HcF_l?^zsyKc0S8Si}_3h#kOd`vi{3@LfF@J)XI+M4vZ8IisJ>%bNu|+cQ zzH`8|wV6smSDop~tuppV`2fh+b1BXv;Lzu#QD=B(uMyUr?pSo3m^BY`^7j|F%ZlOa zIA?45ue5A`TW$rbo&wco;+`gIU5FKZ+JhmX@&`7STXN(RITC{-$6Ub+3M}z_B-d?B z*Uge*`TcHVd2Ge($Q3#gNBJ96hEvR>e0l#eF-xB(j#=&g8DiFVyd!hC7-94eaOC$8 zQ~wTNbXnahi|AIF-AihPT`yhh*?;&mY!6T?zjfWq4n<`28pu&LX(p=YLfn4z!WRCu z5-;K7(4C3ihuUwV55dT_-(0Zfv|oX`naU^4g+|_kLfXEvk8c{L8ag{)?6I9m+fAT< z*e8yqf9rABIn-p#6tDAK4xoN8tESJJL!r9a`+28u0Ilin6mLkKUZDXL^X6Zy0Ytq| zG2srNNOA(!tEG|d>9B~WOq;#^v{E=eHM{i|^ zXfk>05aWMCB=yw9UEg#5FN3C=z;=0BQqzmrIonOIl^JF~Q)q7od}BlqM0D981ggi3VST3~gLR^5=Y)JUab zDBnJe^M3-hPix1s{Zr^~!!`_OIlP)KMtxTL5i6aW34+mC15don&CURAwxk~7M zu`fMjowLQ%^@y1D|65!R`CG)buzre|Wv>#qApasU%bqQ!x2K4y=V);mbRG&WSd)U= zWl#T=qbRtp^Y&pHMUUGfmfFffQ?Mt-FEe$!7}Y??>wOl7lM)xDHKO2zcNP=whzd?j z>Eiuc=R3e1#)adF_m3t^B#sLKmEx?;75-RpE$)-0#1)9nX1X`l0+~cm7WoG{@-cBS z`sU5*d8Ydvq- zQQ)q<+zNYdk6|z0)(YEN@xx&C^4IK9AoX&@E9m8Ikm+vAr8hfw9<5%E65iCm1-%?~ zT+Kvxy&UGxD`nW&Fi#k>ms`u$njU{7?m~rjM|cT#M1^zT|5`}lbk+XDpJ9V2d;mbd zr`YBGzwWv}bs>$ko7u0O$tXmip{7soAPO%%T{%3~t=fB+RkX<7(coZRe`J^qL$qZ=&AuDftlfo<1*()_+Ld7)t}c-JHhKz)y_} z+H*4Q6BSr#pSAh_t35xzAhd8LB0sosfZXPHzHA5d)3$%a?XK;)^dDh+9)3pHo)4cJ zw&y(orM=rkYR{=mbQ2=B=j(m)?fIOT;d)Zc_Iwar5Gk~0e>t|R9Qz30vN6ZD{X>qi zJtx`CBzx?|TGl@&jMfrTH^#C(w|5NeV;r_;%53llb#O+eR~?(tt4icg--I)K1l%H- zBzVX)&Z#kQv*gKhzy;oRHOE=}3~hd>!aO+ZC)VExu9Uuda9`EWI+LnDxM_6Jj~EJ5 z+Dyvk`#C=_#fv|!!Fd?gw*xibN3e2bY~yStT43`ypX*`0-eI_2r6FayGD_7$ZtV74 zoifnXUPqs)YmlQWTA=ID0$qcY%0gGf(KW--<>^{1?ON=)cK!H0y$bB|lxl*mg%R4t z-qs->VWU~URYCnd17GClZ_u#D*0K1MBkp6gW>UYm3Ht+iv6yjgaq{Oo`HfEgOeeqI z$)5&Zqb2GmW)Jt)V^o%Rn99ZcWXEuE3iq?>KWFS}ZL8+@P#j}en96j%k%V6pB-4ui zkQQewo))+L72S61gw|7ul49duZc$IixyIMVx&695P4bbY!>@Q-O?KXf;@&;>#9r>i zJq7i+x3%;;cJVaK>$4r356AqS)fKYH@3lQQJ#_8DjTv^je3m$kt=!4tBzT0FF2DH? z8cKe_;inybSloiTHda}7yLH7G*zy3lI61Rhwim88*BlEJDTbQ}x6yzUuWbPGn z7~CdK!-g71W+FK35^+7afdXE~saym$H@3C!CVb`2=F0C%!$shCuOppwvgXRTH+Kx@ zO5L8xGU3io!KR&Ne%Cu6hR=+1{Si+s`IB{{vJ%`JNP_2xJHT0S6M`|rk*O2cL1wBL zUqtuYma+dgYdV$?58;9Pt*xtBg{T)TV3h|zq}Cx712rRdF?c#6-N&F zJ9}g)oVZ6)apd1BPC{$7nDSRU`4@}ZAoEuz|5R|7UV;j|x6sIg8@I6n)=TD;sh2FU zeW!Lvzk8K@&y&Ec#!tvIDs z=ilF~dM&^<3YT4*Yopw!IsR^<*3@w*IpAB)DiLsJaFff}I>dgGYS99@PEbavAHJrB zth&zUN=1}@*{)NkGYDXCI^#j6+tV2cd8eGfX4NxbbM2cncv!dtN3u-7PyT7f z<`b=!_P_fRU55_;GvnO&uRwQR=p1bpCy+l!Y`xFkC;Nz(N0~oE`3SL}(2YXoPgOp~ zu%8KJ)I>LZ)lGk>@cuf<=?_7RU1p-zAEe9L`VJ- zN9G(c%bw=QAM3~ub>#PR&e#8(Tfn{ijP5XbHMCf2RW z^|-HQ{v73}Q6ejDhRh7H2QIE+7mH)3wfsZv*&v_%h|Fs(lWQmw!)n$nnMUlv=ZIV6 z#dWS1wjVp%N)NcU)cb$_t{N5(B7<*j1sh6Pv!GlbVXw5v9^2Vv%X$x68K9T#K5Y7t@NT#Bt<51n$xcP{8YVjN1#Q;frzB3;NoVbsE*bdsZ`XxQ2Ax`}`!e zJoUcML^mx@Gy6KGm539#F5W{-^E=jN7!o+aTrRGHOq)1^{K-X}^E+@7S1B%r%p9j| zRvbnC3~>v})`=Uz1JzgBAycc<1g^o);L3-x*%Q7@&I+nbBlbpolY z9I59dMT<9A9pnuI>v31*w|D3XwT@Oky}dRU)wON!bS}E8n0L{TLG5UFppuJ4$mq;iw?vvZnW2L;Cpds90q)f)oAg5rctkR1M zj@nCh49-{{6^HorPi6dzHVlM?zgF6yH~y%!5-Etpb@{lQxC!3msv*&y9Cx{>vX3s zvH#W>Fmox2unhi z>J^2dZVlY7(HQ=4J4>-T+HkH=E16czypzRP1FZ>;hRga18GkF4h+8cD z)AdGG5*MkCQ;7=O=~#)eAF>3bEOmO2g7v@jw{1q~e7x(34z|-7_#C%QOTL?=VM=uk zt`vAT*#kMN45fJPdvJKav!>Zx^?KnHsq2_CLHDyp<=*EwN$N%_7;te6xCW@Z%YHpH z*Ja}7jrsP)2ln6Z`NIgsTJmi$P0Yd9e09DJdMcl7P$WjpR?jPo?LT|N2(5ODO0W&y z*OgVa^6PJ~hM)~RSZ0^K)CTVdDYU_*JN$t*K)rt7U)XJ{z)ia6R0<6}l;47O>iGGW zd^_#z8U?yzjTm~|}^v#wTg67mbgX>gO6Hp~*U-Ue}#)ocBJ z_IpLEEEaZxeuLff4tiAe6sR`QyG_&rLgmMQz)7+U6>XuLTUkjRD=8l7^(D9Enwkb6TZ2I*pZjNfdDAb9Wo$RGt$4-}NS!zpu!$^>!~ zaU|@#e8scT9N?ch9=vfG$ev)b>=1C@_Lcq^Rap)${+^-0cZB^F|0CBTzbVPJq8>a; z+_;f(gSY}bU7UqXt+)jFlf`^vx>DQ%nX%#sWNNS1vWWa?;wa94qOWq6YQ;PDXF~iQ%CE=D((wxAF`}(8o_m*#5rH??t3^i&kvN{WpN1PQVenSB$|PaI z`yX|)%Cy@o>kYKWchtq4Q9dNM$_&9OgO9~}_v6&0>-u4W!Om_7J|uuv@vd5pV6e~( z!9s(uczgfNLJ{sw5FB%S;v)O+_grGYUV1qn;9V6w2KWq}crd{CNQMn^t2hYoUlc|L zcsG>@0(>hhumuGH-fNpb5a41o{d@mo?`Lygsk<+g2>d+DFAQw3Yz)D&QGzhsg`!~? z+EMLPDdX&(Sw%sxYz)D&Q3nO5xeCw({!vmu3l8a`U_i!3mrddJVEK^n)C*d+aJ6{o z+UrV7Gx+E4=pSG6_(}}p?fy0M8^MdjQCRS@7$=GTTrsVARLrvXipwE$n$V_x( zE)g><=ZIq{dz!coe5{x!twY7EYdQ*f!exp&}Qj;0JMETBu1EmQ~~AF6Y+^Z!t1;h|Htyj7%l?UUA_4Ws(X~=O{(r zdY$7&>6ik!!3C+koKo-FWA1qyw#1P&&ns&_n)Bw3H|Y%{{mD1`WE3)r{Vhv>%z zYS6l!eWs#VIO7EkUb#wPtJu°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 z�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�zSZfrO0(gM+@*oJs85vvbD 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 literal 852992 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