From ef99d1c8c8a86bd931eff8739d819236a1024d69 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:49:30 +0000 Subject: [PATCH 1/3] Server: native Claude/Gemini message APIs, unified SSE engine, /models endpoint, validation, auth hook, rate limiting, tests; remove dead assistant/upload code Co-Authored-By: Nader Dabit --- app/src/screens/assistant.tsx | 791 --------- server/.env.example | 7 + server/package.json | 21 +- server/pnpm-lock.yaml | 1432 ++++++++++++----- server/src/__tests__/api.test.ts | 113 ++ server/src/chat/addMessageToThread.ts | 58 - server/src/chat/chatRouter.ts | 4 + server/src/chat/claude.ts | 135 +- server/src/chat/cohere.ts | 73 - server/src/chat/createAssistant.ts | 84 - server/src/chat/gemini.ts | 109 +- server/src/chat/getThreadMessages.ts | 22 - server/src/chat/glm.ts | 7 +- server/src/chat/gpt.ts | 98 +- server/src/chat/kimi.ts | 7 +- server/src/chat/openaiCompatible.ts | 127 +- server/src/chat/runResponse.ts | 24 - server/src/chat/runStatus.ts | 30 - server/src/files/fileRouter.ts | 8 - server/src/files/upload-file.ts | 11 - server/src/helpers/saveFileToOpenai.ts | 40 - server/src/images/gemini.ts | 63 +- server/src/index.ts | 54 +- server/src/middleware.ts | 29 + server/src/models.ts | 126 ++ server/src/sse.ts | 55 + server/src/types.ts | 26 + server/src/utils.ts | 3 - .../Dabit_chapter_10_April_10_2017.docx | Bin 780220 -> 0 bytes server/uploads/migration_plan_v2_upgrade.pdf | Bin 92035 -> 0 bytes 30 files changed, 1689 insertions(+), 1868 deletions(-) delete mode 100644 app/src/screens/assistant.tsx create mode 100644 server/src/__tests__/api.test.ts delete mode 100644 server/src/chat/addMessageToThread.ts delete mode 100644 server/src/chat/cohere.ts delete mode 100644 server/src/chat/createAssistant.ts delete mode 100644 server/src/chat/getThreadMessages.ts delete mode 100644 server/src/chat/runResponse.ts delete mode 100644 server/src/chat/runStatus.ts delete mode 100644 server/src/files/fileRouter.ts delete mode 100644 server/src/files/upload-file.ts delete mode 100644 server/src/helpers/saveFileToOpenai.ts create mode 100644 server/src/middleware.ts create mode 100644 server/src/models.ts create mode 100644 server/src/sse.ts create mode 100644 server/src/types.ts delete mode 100644 server/src/utils.ts delete mode 100644 server/uploads/Dabit_chapter_10_April_10_2017.docx delete mode 100644 server/uploads/migration_plan_v2_upgrade.pdf diff --git a/app/src/screens/assistant.tsx b/app/src/screens/assistant.tsx deleted file mode 100644 index acac94eb..00000000 --- a/app/src/screens/assistant.tsx +++ /dev/null @@ -1,791 +0,0 @@ -import { useState, useContext, useRef } from 'react' -import { - View, - Text, - KeyboardAvoidingView, - StyleSheet, - TouchableHighlight, - TextInput, - FlatList, - ScrollView, - Dimensions, - Keyboard, - ActivityIndicator -} from 'react-native' -import { ThemeContext } from '../context' -import { DOMAIN } from '../../constants' -import { useActionSheet } from '@expo/react-native-action-sheet' -import Ionicons from '@expo/vector-icons/Ionicons' -import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons' -import Markdown from '@ronradtke/react-native-markdown-display' -import * as DocumentPicker from 'expo-document-picker' -import * as Clipboard from 'expo-clipboard' - -const { height } = Dimensions.get('window') - -export function Assistant() { - const [loading, setLoading] = useState(false) - const scrollViewRef = useRef(null) - const [input, setInput] = useState("") - const [instructions, setInstructions] = useState("") - const [file, setFile] = useState(null) - const [assistantId, setAssistantId] = useState('') - const [threadId, setThreadId] = useState('') - const [openaiResponse, setOpenaiResponse] = useState([]) - - const { theme } = useContext(ThemeContext) - const { showActionSheetWithOptions } = useActionSheet() - - function onChangeInputText(v) { - setInput(v) - } - - function onChangeInstructionsText(v) { - setInstructions(v) - } - - async function clearChat() { - if (loading) return - setFile(null) - setOpenaiResponse([]) - setInput('') - setInstructions('') - setAssistantId('') - setThreadId('') - } - - async function copyToClipboard(text) { - await Clipboard.setStringAsync(text) - } - - async function showClipboardActionsheet(text) { - const cancelButtonIndex = 2 - showActionSheetWithOptions({ - options: ['Copy to clipboard', 'Clear chat', 'cancel'], - cancelButtonIndex - }, selectedIndex => { - if (selectedIndex === Number(0)) { - copyToClipboard(text) - } - if (selectedIndex === 1) { - clearChat() - } - }) - } - - async function createThread() { - if (!input) return - generateAssistantResponse() - } - - async function generateAssistantResponse() { - try { - Keyboard.dismiss() - const fileCopy = file - let localInput = { - type: 'user', - value: input - } as any - - if (instructions) { - localInput.instructions = instructions - } - setOpenaiResponse([localInput]) - - setInput('') - setInstructions('') - setLoading(true) - setFile(null) - - const body: { - input: string, - instructions?: string - } = { - input - } - if (instructions) { - body.instructions = instructions - } - let response - if (fileCopy) { - const formData = new FormData() - // @ts-ignore - formData.append('file', { - uri: fileCopy.uri.replace('file://', ''), - name: fileCopy.name, - type: fileCopy.mimeType - }) - for (const key in body) { - formData.append(key, body[key]) - } - response = await fetch(`${DOMAIN}/chat/create-assistant`, { - method: 'POST', - body: formData, - headers: { - 'Content-Type': 'multipart/form-data' - } - }).then(res => res.json()) - - } else { - response = await fetch(`${DOMAIN}/chat/create-assistant`, { - method: 'POST', - body: JSON.stringify(body), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => res.json()) - } - - const { - assistantId: _assistantId, threadId: _threadId, runId: _runId - } = await response - - setThreadId(_threadId) - setAssistantId(_assistantId) - checkThread(_runId, _threadId) - } catch (err) { - console.log('error calling assistant API:', err) - setLoading(false) - } - } - - async function checkThread(_runId, _threadId) { - try { - let finished = false - while (!finished) { - const response = await fetch(`${DOMAIN}/chat/run-status`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - thread_id: _threadId, - run_id: _runId - }) - }).then(res => res.json()) - if (response.status === 'completed') { - finished = true - break - } else { - await new Promise(resolve => setTimeout(resolve, 250)) - } - } - - const thread = await fetch(`${DOMAIN}/chat/get-thread-messages`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - thread_id: _threadId - }) - }).then(res => res.json()) - - const { data } = thread - let localResponse:any = [] - - data.data.forEach((data) => { - data.content.forEach(({ text }) => { - if (data.role === 'assistant') { - localResponse.push({ - type: 'assistant', - value: text.value - }) - } else { - localResponse.push({ - type: 'user', - value: text.value - }) - } - }) - }) - setOpenaiResponse(localResponse.reverse()) - setLoading(false) - } catch (err) { - console.log('error: ', err) - setLoading(false) - } - } - - - - async function addMessageToThread() { - try { - if (!input) return - Keyboard.dismiss() - const fileCopy = file - - let localInput = { - type: 'user', - value: input - } as any - setInput('') - setOpenaiResponse([...openaiResponse, localInput]) - setInput('') - setLoading(true) - setFile(null) - - const body: { - input: string, - thread_id: string, - assistant_id: string - } = { - input, - thread_id: threadId, - assistant_id: assistantId - } - let response - if (fileCopy) { - const formData = new FormData() - // @ts-ignore - formData.append('file', { - uri: fileCopy.uri.replace('file://', ''), - name: fileCopy.name, - type: fileCopy.mimeType - }) - for (const key in body) { - formData.append(key, body[key]) - } - response = await fetch(`${DOMAIN}/chat/add-message-to-thread`, { - method: 'POST', - body: formData, - headers: { - 'Content-Type': 'multipart/form-data' - } - }).then(res => res.json()) - } else { - response = await fetch(`${DOMAIN}/chat/add-message-to-thread`, { - method: 'POST', - body: JSON.stringify(body), - headers: { - 'Content-Type': 'application/json' - } - }).then(res => res.json()) - } - - const { - runId: _runId - } = response - - checkThread(_runId, threadId) - } catch (err) { - console.log('error: ', err) - setLoading(false) - } - } - - async function chooseDocument() { - try { - const res = await DocumentPicker.getDocumentAsync() - console.log('res: ', res) - if (!res || !res.assets) return - setFile(res.assets[0]) - } catch (err) { - console.log('error:', err) - } - } - - const styles = getStyleSheet(theme) - const isStarted = openaiResponse.length - - function renderItem({ item, index }) { - return ( - - { - item.type === 'user' && ( - - - - {item.value} - - - - ) - } - { - item.type === 'assistant' && ( - - {item.value} - showClipboardActionsheet(item.assistant)} - underlayColor={'transparent'} - > - - - - - - ) - } - - ) - } - - - return ( - - - { - (!isStarted) && ( - - - - - - - - - - - - Chat - - - - { - file && ( - - - {file.name || 'File from device'} - - setFile(null)} - style={styles.closeIconContainer} - underlayColor={'transparent'} - > - - - - ) - } - - Chat with an assistant (with optional instructions and file interpreter) - - - - ) - } - { - Boolean(isStarted) && ( - - ) - } - { - loading && ( - - - - ) - } - - { - Boolean(isStarted) && file && ( - - - {file.name || 'File from device'} - - setFile(null)} - style={styles.closeIconContainer} - underlayColor={'transparent'} - > - - - - ) - } - { - (Boolean(isStarted)) && ( - - - - - - - - - - - - ) - } - - ) -} - -const getStyleSheet = theme => StyleSheet.create({ - chatDescription: { - color: theme.textColor, - textAlign: 'center', - marginTop: 15, - fontSize: 13, - opacity: .8, - paddingHorizontal: 30, - fontFamily: theme.regularFont - }, - image: { - width: 250, - height: 250, - borderRadius: 8, - marginBottom: 5, - marginTop: 10, - borderWidth:1, - borderColor: theme.borderColor - }, - optionsIconWrapper: { - padding: 10, - paddingTop: 9, - alignItems: 'flex-end' - }, - loadingContainer: { - marginVertical: 25, - justifyContent: 'center', - flexDirection: 'row', - alignItems: 'center' - }, - iconContainer: { - justifyContent: 'center', - alignItems: 'center', - }, - midInput: { - marginBottom: 8, - borderWidth: 1, - paddingHorizontal: 25, - paddingRight: 48, - marginHorizontal: 10, - paddingVertical: 15, - borderRadius: 99, - color: theme.textColor, - borderColor: theme.borderColor, - fontFamily: theme.semiBoldFont, - }, - midChatInputWrapper: { - flex: 1, - justifyContent: 'center', - alignItems: 'center' - }, - midChatInputContainer: { - width: '100%', - paddingVertical: 5 - }, - midButtonStyle: { - flexDirection: 'row', - marginHorizontal: 14, - paddingHorizontal: 15, - paddingVertical: 12, - borderRadius: 99, - backgroundColor: theme.tintColor, - justifyContent: 'center', - alignItems: 'center' - }, - midButtonText: { - color: theme.tintTextColor, - marginLeft: 10, - fontFamily: theme.boldFont, - fontSize: 16 - }, - closeIconContainer: { - position: 'absolute', - right: -15, - top: -17, - padding: 10, - backgroundColor: 'transparent', - borderRadius: 25, - }, - closeIcon: { - borderWidth: 1, - padding: 4, - backgroundColor: theme.backgroundColor, - borderColor: theme.borderColor, - borderRadius: 15 - }, - fileNameContainer: { - marginHorizontal: 10, - marginRight: 20, - paddingHorizontal: 10, - paddingVertical: 10, - borderWidth: 1, - borderColor: theme.borderColor, - borderRadius: 7, - }, - midFileNameContainer: { - marginTop: 20, - marginHorizontal: 10, - marginRight: 20, - paddingHorizontal: 10, - paddingVertical: 10, - borderWidth: 1, - borderColor: theme.borderColor, - borderRadius: 7, - }, - fileName: { - color: theme.textColor, - }, - chatTypeContainer: { - flexDirection: 'row', - justifyContent: 'center', - alignItems: 'center' - }, - heroContainer: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - height: height - 300 - }, - promptResponse: { - marginTop: 10, - }, - textStyleContainer: { - borderWidth: 1, - marginRight: 25, - borderColor: theme.borderColor, - padding: 15, - paddingBottom: 6, - paddingTop: 5, - margin: 10, - marginTop: 0, - borderRadius: 13 - }, - textStyle: { - body: { - color: theme.textColor, - fontFamily: theme.regularFont - }, - paragraph: { - color: theme.textColor, - fontSize: 16, - fontFamily: theme.regularFont - }, - heading1: { - color: theme.textColor, - fontFamily: theme.semiBoldFont, - marginVertical: 5 - }, - heading2: { - marginTop: 20, - color: theme.textColor, - fontFamily: theme.semiBoldFont, - marginBottom: 5 - }, - heading3: { - marginTop: 20, - color: theme.textColor, - fontFamily: theme.mediumFont, - marginBottom: 5 - }, - heading4: { - marginTop: 10, - color: theme.textColor, - fontFamily: theme.mediumFont, - marginBottom: 5 - }, - heading5: { - marginTop: 10, - color: theme.textColor, - fontFamily: theme.mediumFont, - marginBottom: 5 - }, - heading6: { - color: theme.textColor, - fontFamily: theme.mediumFont, - marginVertical: 5 - }, - list_item: { - marginTop: 7, - fontFamily: theme.regularFont, - fontSize: 16 - }, - ordered_list_icon: { - color: theme.textColor, - fontSize: 16, - fontFamily: theme.regularFont - }, - bullet_list: { - marginTop: 10 - }, - ordered_list: { - marginTop: 7 - }, - bullet_list_icon: { - color: theme.textColor, - fontSize: 16, - fontFamily: theme.regularFont - }, - code_inline: { - color: theme.secondaryTextColor, - backgroundColor: theme.secondaryBackgroundColor, - borderWidth: 1, - borderColor: 'rgba(255, 255, 255, .1)', - fontFamily: theme.lightFont - }, - hr: { - backgroundColor: 'rgba(255, 255, 255, .1)', - height: 1, - }, - fence: { - marginVertical: 5, - padding: 10, - color: theme.secondaryTextColor, - backgroundColor: theme.secondaryBackgroundColor, - borderColor: 'rgba(255, 255, 255, .1)', - fontFamily: theme.regularFont - }, - tr: { - borderBottomWidth: 1, - borderColor: 'rgba(255, 255, 255, .2)', - flexDirection: 'row', - }, - table: { - marginTop: 7, - borderWidth: 1, - borderColor: 'rgba(255, 255, 255, .2)', - borderRadius: 3, - }, - blockquote: { - backgroundColor: '#312e2e', - borderColor: '#CCC', - borderLeftWidth: 4, - marginLeft: 5, - paddingHorizontal: 5, - marginVertical: 5, - }, - } as any, - promptTextContainer: { - flex: 1, - alignItems: 'flex-end', - marginRight: 15, - marginLeft: 24 - }, - promptTextWrapper: { - borderRadius: 8, - borderTopRightRadius: 0, - backgroundColor: theme.tintColor - }, - promptText: { - color: theme.tintTextColor, - fontFamily: theme.regularFont, - paddingVertical: 5, - paddingHorizontal: 9, - fontSize: 16 - }, - chatButton: { - marginRight: 14, - padding: 5, - borderRadius: 99, - backgroundColor: theme.tintColor - }, - buttonText: { - color: theme.textColor, - fontFamily: theme.mediumFont, - }, - chatInputContainer: { - paddingTop: 5, - borderColor: theme.borderColor, - width: '100%', - flexDirection: 'row', - alignItems: 'center', - paddingBottom: 5 - }, - container: { - flex: 1, - backgroundColor: theme.backgroundColor - }, - input: { - flex: 1, - borderWidth: 1, - borderRadius: 99, - color: theme.textColor, - marginHorizontal: 10, - paddingVertical: 10, - paddingHorizontal: 21, - paddingRight: 39, - borderColor: theme.borderColor, - fontFamily: theme.semiBoldFont, - } -}) \ No newline at end of file diff --git a/server/.env.example b/server/.env.example index 079fa5e9..c3bf8129 100644 --- a/server/.env.example +++ b/server/.env.example @@ -3,3 +3,10 @@ OPENAI_API_KEY="" GEMINI_API_KEY="" ZAI_API_KEY="" MOONSHOT_API_KEY="" + +# Optional server configuration +# PORT=3050 +# CORS_ORIGIN="*" +# RATE_LIMIT_PER_MINUTE=60 +# Require clients to send "Authorization: Bearer " when set +# API_AUTH_TOKEN="" diff --git a/server/package.json b/server/package.json index 13960817..fc0c5085 100644 --- a/server/package.json +++ b/server/package.json @@ -9,34 +9,31 @@ "ngrok": "ngrok http 3050", "dev": "concurrently \"npx tsc --watch\" \"nodemon --exitcrash dist/index.js\"", "ngrokfixed": "ngrok http --domain=f82f850f17ee-443370837071186036.ngrok-free.app 3050", - "test": "echo \"Error: no test specified\" && exit 1" + "typecheck": "tsc --noEmit", + "test": "vitest run" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { - "@google/generative-ai": "^0.24.1", - "@types/body-parser": "^1.19.6", "@types/express": "^5.0.6", "@types/node": "^26.1.0", - "body-parser": "^2.3.0", "cors": "^2.8.6", "dotenv": "^17.4.2", - "eventsource": "^4.1.0", "express": "^5.2.1", "express-async-handler": "^1.2.0", + "express-rate-limit": "^8.2.1", "multer": "^2.2.0", - "node-fetch": "2.7.0", - "stream": "^0.0.3", - "ts-node-dev": "^2.0.0", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "zod": "^3.25.76" }, "devDependencies": { "@types/cors": "^2.8.19", - "@types/eventsource": "^3.0.0", "@types/multer": "^2.2.0", - "@types/node-fetch": "^2.6.13", + "@types/supertest": "^6.0.3", "concurrently": "^10.0.3", - "nodemon": "^3.1.14" + "nodemon": "^3.1.14", + "supertest": "^7.1.4", + "vitest": "^3.2.4" } } diff --git a/server/pnpm-lock.yaml b/server/pnpm-lock.yaml index 68deac8c..07479a14 100644 --- a/server/pnpm-lock.yaml +++ b/server/pnpm-lock.yaml @@ -8,115 +8,385 @@ importers: .: dependencies: - '@google/generative-ai': - specifier: ^0.24.1 - version: 0.24.1 - '@types/body-parser': - specifier: ^1.19.6 - version: 1.19.6 '@types/express': specifier: ^5.0.6 version: 5.0.6 '@types/node': specifier: ^26.1.0 version: 26.1.0 - body-parser: - specifier: ^2.3.0 - version: 2.3.0 cors: specifier: ^2.8.6 version: 2.8.6 dotenv: specifier: ^17.4.2 version: 17.4.2 - eventsource: - specifier: ^4.1.0 - version: 4.1.0 express: specifier: ^5.2.1 version: 5.2.1 express-async-handler: specifier: ^1.2.0 version: 1.2.0 + express-rate-limit: + specifier: ^8.2.1 + version: 8.5.2(express@5.2.1) multer: specifier: ^2.2.0 version: 2.2.0 - node-fetch: - specifier: 2.7.0 - version: 2.7.0 - stream: - specifier: ^0.0.3 - version: 0.0.3 - ts-node-dev: - specifier: ^2.0.0 - version: 2.0.0(@types/node@26.1.0)(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 + zod: + specifier: ^3.25.76 + version: 3.25.76 devDependencies: '@types/cors': specifier: ^2.8.19 version: 2.8.19 - '@types/eventsource': - specifier: ^3.0.0 - version: 3.0.0 '@types/multer': specifier: ^2.2.0 version: 2.2.0 - '@types/node-fetch': - specifier: ^2.6.13 - version: 2.6.13 + '@types/supertest': + specifier: ^6.0.3 + version: 6.0.3 concurrently: specifier: ^10.0.3 version: 10.0.3 nodemon: specifier: ^3.1.14 version: 3.1.14 + supertest: + specifier: ^7.1.4 + version: 7.2.2 + vitest: + specifier: ^3.2.4 + version: 3.2.7(@types/node@26.1.0) packages: - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] - '@google/generative-ai@0.24.1': - resolution: {integrity: sha512-MqO+MLfM6kjxcKoy0p1wRzG3b4ZZXtPI+z2IE26UogS2Cm/XHO+7gGRBh6gcJsOiIVoH93UwKvW4HdgiOZCy9Q==} - engines: {node: '>=18.0.0'} + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} - '@tsconfig/node10@1.0.12': - resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + '@paralleldrive/cuid2@2.3.1': + resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + cpu: [arm] + os: [android] - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + cpu: [arm64] + os: [android] - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + cpu: [x64] + os: [win32] '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/cookiejar@2.1.5': + resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} + '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} - '@types/eventsource@3.0.0': - resolution: {integrity: sha512-yEhFj31FTD29DtNeqePu+A+lD6loRef6YOM5XfN1kUwBHyy2DySGlA3jJU+FbQSkrfmlBVluf2Dub/OyReFGKA==} - deprecated: This is a stub types definition. eventsource provides its own type definitions, so you do not need this installed. + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} '@types/express-serve-static-core@5.1.1': resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} @@ -127,12 +397,12 @@ packages: '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + '@types/methods@1.1.4': + resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} + '@types/multer@2.2.0': resolution: {integrity: sha512-3U1troeqGV8Ntp7Q3klwf4zr23VEoqYVocYXaswm9+8z3O9UHDYAqLxjJ/h550iRADTjKdOdhhasXw6gD6kYtg==} - '@types/node-fetch@2.6.13': - resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - '@types/node@26.1.0': resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} @@ -148,25 +418,45 @@ packages: '@types/serve-static@2.2.0': resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} - '@types/strip-bom@3.0.0': - resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} + '@types/superagent@8.1.10': + resolution: {integrity: sha512-nbt4IWXABhW0jGmmpRzCFNlbmwCTzZ2gTUsNIr+X+ItdqPms+PAJZbWsNzpS2USqXjcoNLQcO6nXo60zcPQiIg==} + + '@types/supertest@6.0.3': + resolution: {integrity: sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==} + + '@vitest/expect@3.2.7': + resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==} + + '@vitest/mocker@3.2.7': + resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.7': + resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==} + + '@vitest/runner@3.2.7': + resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==} + + '@vitest/snapshot@3.2.7': + resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==} + + '@vitest/spy@3.2.7': + resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==} - '@types/strip-json-comments@0.0.30': - resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} + '@vitest/utils@3.2.7': + resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==} accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - ansi-regex@6.2.2: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} @@ -182,15 +472,16 @@ packages: append-field@1.0.0: resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -203,9 +494,6 @@ packages: resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} engines: {node: '>=18'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@5.0.7: resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} @@ -225,6 +513,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -233,10 +525,18 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + engines: {node: '>= 16'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -249,12 +549,8 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - component-emitter@2.0.0: - resolution: {integrity: sha512-4m5s3Me2xxlVKG9PkZpQqHQR7bgpnN7joDMJ4yvVkVXngjoITG76IaZmzmywSeRTeTpc6N6r3H3+KyUurV8OYw==} - engines: {node: '>=18'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} @@ -285,13 +581,13 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + cors@2.8.6: resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -301,6 +597,10 @@ packages: supports-color: optional: true + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -309,9 +609,8 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - diff@4.0.4: - resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} - engines: {node: '>=0.3.1'} + dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dotenv@17.4.2: resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} @@ -321,9 +620,6 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - dynamic-dedupe@0.3.0: - resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -342,6 +638,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -350,6 +649,11 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -357,25 +661,42 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - eventsource-parser@3.1.0: - resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==} - engines: {node: '>=18.0.0'} - - eventsource@4.1.0: - resolution: {integrity: sha512-2GuF51iuHX6A9xdTccMTsNb7VO0lHZihApxhvQzJB5A03DvHDd2FQepodbMaztPBmBcE/ox7o2gqaxGhYB9LhQ==} - engines: {node: '>=20.0.0'} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + engines: {node: '>=12.0.0'} express-async-handler@1.2.0: resolution: {integrity: sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==} + express-rate-limit@8.5.2: + resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} + engines: {node: '>= 16'} + peerDependencies: + express: '>= 4.11' + express@5.2.1: resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} engines: {node: '>= 18'} + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -388,6 +709,10 @@ packages: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} + formidable@3.5.4: + resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==} + engines: {node: '>=14.0.0'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -396,9 +721,6 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -427,10 +749,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -462,13 +780,13 @@ packages: ignore-by-default@1.0.1: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ip-address@10.2.0: + resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + engines: {node: '>= 12'} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -477,10 +795,6 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -496,8 +810,14 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} @@ -515,6 +835,10 @@ packages: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -531,21 +855,15 @@ packages: resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} engines: {node: '>=18'} + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -553,19 +871,15 @@ packages: resolution: {integrity: sha512-6rdyFg2kLrMh9Jee7/BMPuV9lEAd7lLW2YUpF9/YxR7njyoUwwQ0ZPh3TaIY50Sw6vlyD2HW3wGOkTS4P79xrQ==} engines: {node: '>= 10.16.0'} + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - nodemon@3.1.14: resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==} engines: {node: '>=10'} @@ -594,20 +908,31 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@8.4.2: resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + engines: {node: ^10 || ^12 || >=14} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -639,14 +964,9 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true router@2.2.0: @@ -682,10 +1002,6 @@ packages: resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} engines: {node: '>= 0.4'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - side-channel-list@1.0.1: resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} @@ -706,23 +1022,26 @@ packages: resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - stream@0.0.3: - resolution: {integrity: sha512-aMsbn7VKrl4A2T7QAQQbzgN7NVc70vgF5INQrBXqn4dCXN1zy3L9HGgLO5s7PExmdrzTJ8uR/27aviW8or8/+A==} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -739,13 +1058,16 @@ packages: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} + superagent@10.3.0: + resolution: {integrity: sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==} + engines: {node: '>=14.18.0'} + + supertest@7.2.2: + resolution: {integrity: sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==} + engines: {node: '>=14.18.0'} supports-color@10.2.2: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} @@ -755,9 +1077,27 @@ packages: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -771,41 +1111,10 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-node-dev@2.0.0: - resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} - engines: {node: '>=0.8.0'} - hasBin: true - peerDependencies: - node-notifier: '*' - typescript: '*' - peerDependenciesMeta: - node-notifier: - optional: true - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tsconfig@7.0.0: - resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -838,18 +1147,87 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + vite@7.3.6: + resolution: {integrity: sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.2.7: + resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.7 + '@vitest/ui': 3.2.7 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} @@ -858,10 +1236,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -874,51 +1248,195 @@ packages: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} snapshots: - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 + '@esbuild/aix-ppc64@0.28.1': + optional: true + + '@esbuild/android-arm64@0.28.1': + optional: true + + '@esbuild/android-arm@0.28.1': + optional: true + + '@esbuild/android-x64@0.28.1': + optional: true + + '@esbuild/darwin-arm64@0.28.1': + optional: true - '@google/generative-ai@0.24.1': {} + '@esbuild/darwin-x64@0.28.1': + optional: true + + '@esbuild/freebsd-arm64@0.28.1': + optional: true + + '@esbuild/freebsd-x64@0.28.1': + optional: true + + '@esbuild/linux-arm64@0.28.1': + optional: true - '@jridgewell/resolve-uri@3.1.2': {} + '@esbuild/linux-arm@0.28.1': + optional: true + + '@esbuild/linux-ia32@0.28.1': + optional: true + + '@esbuild/linux-loong64@0.28.1': + optional: true + + '@esbuild/linux-mips64el@0.28.1': + optional: true + + '@esbuild/linux-ppc64@0.28.1': + optional: true + + '@esbuild/linux-riscv64@0.28.1': + optional: true + + '@esbuild/linux-s390x@0.28.1': + optional: true + + '@esbuild/linux-x64@0.28.1': + optional: true + + '@esbuild/netbsd-arm64@0.28.1': + optional: true + + '@esbuild/netbsd-x64@0.28.1': + optional: true + + '@esbuild/openbsd-arm64@0.28.1': + optional: true + + '@esbuild/openbsd-x64@0.28.1': + optional: true + + '@esbuild/openharmony-arm64@0.28.1': + optional: true + + '@esbuild/sunos-x64@0.28.1': + optional: true + + '@esbuild/win32-arm64@0.28.1': + optional: true + + '@esbuild/win32-ia32@0.28.1': + optional: true + + '@esbuild/win32-x64@0.28.1': + optional: true '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.9': + '@noble/hashes@1.8.0': {} + + '@paralleldrive/cuid2@2.3.1': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@noble/hashes': 1.8.0 - '@tsconfig/node10@1.0.12': {} + '@rollup/rollup-android-arm-eabi@4.62.2': + optional: true - '@tsconfig/node12@1.0.11': {} + '@rollup/rollup-android-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.2': + optional: true + + '@rollup/rollup-darwin-x64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.2': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.2': + optional: true - '@tsconfig/node14@1.0.3': {} + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.62.2': + optional: true - '@tsconfig/node16@1.0.4': {} + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.62.2': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-linux-x64-musl@4.62.2': + optional: true + + '@rollup/rollup-openbsd-x64@4.62.2': + optional: true + + '@rollup/rollup-openharmony-arm64@4.62.2': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.62.2': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.62.2': + optional: true '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 '@types/node': 26.1.0 + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/connect@3.4.38': dependencies: '@types/node': 26.1.0 + '@types/cookiejar@2.1.5': {} + '@types/cors@2.8.19': dependencies: '@types/node': 26.1.0 - '@types/eventsource@3.0.0': - dependencies: - eventsource: 4.1.0 + '@types/deep-eql@4.0.2': {} + + '@types/estree@1.0.9': {} '@types/express-serve-static-core@5.1.1': dependencies: @@ -935,15 +1453,12 @@ snapshots: '@types/http-errors@2.0.5': {} + '@types/methods@1.1.4': {} + '@types/multer@2.2.0': dependencies: '@types/express': 5.0.6 - '@types/node-fetch@2.6.13': - dependencies: - '@types/node': 26.1.0 - form-data: 4.0.5 - '@types/node@26.1.0': dependencies: undici-types: 8.3.0 @@ -961,20 +1476,64 @@ snapshots: '@types/http-errors': 2.0.5 '@types/node': 26.1.0 - '@types/strip-bom@3.0.0': {} + '@types/superagent@8.1.10': + dependencies: + '@types/cookiejar': 2.1.5 + '@types/methods': 1.1.4 + '@types/node': 26.1.0 + form-data: 4.0.5 + + '@types/supertest@6.0.3': + dependencies: + '@types/methods': 1.1.4 + '@types/superagent': 8.1.10 - '@types/strip-json-comments@0.0.30': {} + '@vitest/expect@3.2.7': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + tinyrainbow: 2.0.0 - accepts@2.0.0: + '@vitest/mocker@3.2.7(vite@7.3.6(@types/node@26.1.0))': dependencies: - mime-types: 3.0.2 - negotiator: 1.0.0 + '@vitest/spy': 3.2.7 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.6(@types/node@26.1.0) + + '@vitest/pretty-format@3.2.7': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.7': + dependencies: + '@vitest/utils': 3.2.7 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@3.2.7': + dependencies: + tinyspy: 4.0.4 - acorn-walk@8.3.4: + '@vitest/utils@3.2.7': dependencies: - acorn: 8.15.0 + '@vitest/pretty-format': 3.2.7 + loupe: 3.2.1 + tinyrainbow: 2.0.0 - acorn@8.15.0: {} + accepts@2.0.0: + dependencies: + mime-types: 3.0.2 + negotiator: 1.0.0 ansi-regex@6.2.2: {} @@ -987,11 +1546,11 @@ snapshots: append-field@1.0.0: {} - arg@4.1.3: {} + asap@2.0.6: {} - asynckit@0.4.0: {} + assertion-error@2.0.1: {} - balanced-match@1.0.2: {} + asynckit@0.4.0: {} balanced-match@4.0.4: {} @@ -1011,11 +1570,6 @@ snapshots: transitivePeerDependencies: - supports-color - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - brace-expansion@5.0.7: dependencies: balanced-match: 4.0.4 @@ -1032,6 +1586,8 @@ snapshots: bytes@3.1.2: {} + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -1042,8 +1598,18 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + chalk@5.6.2: {} + check-error@2.1.3: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -1066,9 +1632,7 @@ snapshots: dependencies: delayed-stream: 1.0.0 - component-emitter@2.0.0: {} - - concat-map@0.0.1: {} + component-emitter@1.3.1: {} concat-stream@2.0.0: dependencies: @@ -1096,24 +1660,29 @@ snapshots: cookie@0.7.2: {} + cookiejar@2.1.4: {} + cors@2.8.6: dependencies: object-assign: 4.1.1 vary: 1.1.2 - create-require@1.1.1: {} - debug@4.4.3(supports-color@5.5.0): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 5.5.0 + deep-eql@5.0.2: {} + delayed-stream@1.0.0: {} depd@2.0.0: {} - diff@4.0.4: {} + dezalgo@1.0.4: + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 dotenv@17.4.2: {} @@ -1123,10 +1692,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - dynamic-dedupe@0.3.0: - dependencies: - xtend: 4.0.2 - ee-first@1.1.1: {} emoji-regex@10.6.0: {} @@ -1137,6 +1702,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -1148,20 +1715,54 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + escalade@3.2.0: {} escape-html@1.0.3: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + etag@1.8.1: {} - eventsource-parser@3.1.0: {} - - eventsource@4.1.0: - dependencies: - eventsource-parser: 3.1.0 + expect-type@1.4.0: {} express-async-handler@1.2.0: {} + express-rate-limit@8.5.2(express@5.2.1): + dependencies: + express: 5.2.1 + ip-address: 10.2.0 + express@5.2.1: dependencies: accepts: 2.0.0 @@ -1195,6 +1796,12 @@ snapshots: transitivePeerDependencies: - supports-color + fast-safe-stringify@2.1.1: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -1218,12 +1825,16 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + formidable@3.5.4: + dependencies: + '@paralleldrive/cuid2': 2.3.1 + dezalgo: 1.0.4 + once: 1.4.0 + forwarded@0.2.0: {} fresh@2.0.0: {} - fs.realpath@1.0.0: {} - fsevents@2.3.3: optional: true @@ -1255,15 +1866,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - gopd@1.2.0: {} has-flag@3.0.0: {} @@ -1292,23 +1894,16 @@ snapshots: ignore-by-default@1.0.1: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - inherits@2.0.4: {} + ip-address@10.2.0: {} + ipaddr.js@1.9.1: {} is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - is-extglob@2.1.1: {} is-glob@4.0.3: @@ -1319,7 +1914,13 @@ snapshots: is-promise@4.0.0: {} - make-error@1.3.6: {} + js-tokens@9.0.1: {} + + loupe@3.2.1: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 math-intrinsics@1.1.0: {} @@ -1329,6 +1930,8 @@ snapshots: merge-descriptors@2.0.0: {} + methods@1.1.2: {} + mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -1341,18 +1944,12 @@ snapshots: dependencies: mime-db: 1.54.0 + mime@2.6.0: {} + minimatch@10.2.5: dependencies: brace-expansion: 5.0.7 - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - minimist@1.2.8: {} - - mkdirp@1.0.4: {} - ms@2.1.3: {} multer@2.2.0: @@ -1362,11 +1959,9 @@ snapshots: concat-stream: 2.0.0 type-is: 1.6.18 - negotiator@1.0.0: {} + nanoid@3.3.15: {} - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 + negotiator@1.0.0: {} nodemon@3.1.14: dependencies: @@ -1397,14 +1992,24 @@ snapshots: parseurl@1.3.3: {} - path-is-absolute@1.0.1: {} + path-to-regexp@8.4.2: {} - path-parse@1.0.7: {} + pathe@2.0.3: {} - path-to-regexp@8.4.2: {} + pathval@2.0.1: {} + + picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.5: {} + + postcss@8.5.16: + dependencies: + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -1440,15 +2045,36 @@ snapshots: dependencies: picomatch: 2.3.1 - resolve@1.22.11: + rollup@4.62.2: dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - rimraf@2.7.1: - dependencies: - glob: 7.2.3 + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 + fsevents: 2.3.3 router@2.2.0: dependencies: @@ -1499,11 +2125,6 @@ snapshots: shell-quote@1.8.4: {} - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 @@ -1528,7 +2149,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -1540,22 +2161,19 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + simple-update-notifier@2.0.0: dependencies: semver: 7.7.3 - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 + source-map-js@1.2.1: {} - source-map@0.6.1: {} + stackback@0.0.2: {} statuses@2.0.2: {} - stream@0.0.3: - dependencies: - component-emitter: 2.0.0 + std-env@3.10.0: {} streamsearch@1.1.0: {} @@ -1573,9 +2191,31 @@ snapshots: dependencies: ansi-regex: 6.2.2 - strip-bom@3.0.0: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + + superagent@10.3.0: + dependencies: + component-emitter: 1.3.1 + cookiejar: 2.1.4 + debug: 4.4.3(supports-color@5.5.0) + fast-safe-stringify: 2.1.1 + form-data: 4.0.5 + formidable: 3.5.4 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.15.3 + transitivePeerDependencies: + - supports-color - strip-json-comments@2.0.1: {} + supertest@7.2.2: + dependencies: + cookie-signature: 1.2.2 + methods: 1.1.2 + superagent: 10.3.0 + transitivePeerDependencies: + - supports-color supports-color@10.2.2: {} @@ -1583,7 +2223,20 @@ snapshots: dependencies: has-flag: 3.0.0 - supports-preserve-symlinks-flag@1.0.0: {} + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} to-regex-range@5.0.1: dependencies: @@ -1593,53 +2246,8 @@ snapshots: touch@3.1.1: {} - tr46@0.0.3: {} - tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@types/node@26.1.0)(typescript@5.9.3): - dependencies: - chokidar: 3.6.0 - dynamic-dedupe: 0.3.0 - minimist: 1.2.8 - mkdirp: 1.0.4 - resolve: 1.22.11 - rimraf: 2.7.1 - source-map-support: 0.5.21 - tree-kill: 1.2.2 - ts-node: 10.9.2(@types/node@26.1.0)(typescript@5.9.3) - tsconfig: 7.0.0 - typescript: 5.9.3 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@types/node' - - ts-node@10.9.2(@types/node@26.1.0)(typescript@5.9.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 26.1.0 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.4 - make-error: 1.3.6 - typescript: 5.9.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - tsconfig@7.0.0: - dependencies: - '@types/strip-bom': 3.0.0 - '@types/strip-json-comments': 0.0.30 - strip-bom: 3.0.0 - strip-json-comments: 2.0.1 - tslib@2.8.1: {} type-is@1.6.18: @@ -1665,16 +2273,86 @@ snapshots: util-deprecate@1.0.2: {} - v8-compile-cache-lib@3.0.1: {} - vary@1.1.2: {} - webidl-conversions@3.0.1: {} + vite-node@3.2.4(@types/node@26.1.0): + dependencies: + cac: 6.7.14 + debug: 4.4.3(supports-color@5.5.0) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.6(@types/node@26.1.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@7.3.6(@types/node@26.1.0): + dependencies: + esbuild: 0.28.1 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + postcss: 8.5.16 + rollup: 4.62.2 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.1.0 + fsevents: 2.3.3 + + vitest@3.2.7(@types/node@26.1.0): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.7 + '@vitest/mocker': 3.2.7(vite@7.3.6(@types/node@26.1.0)) + '@vitest/pretty-format': 3.2.7 + '@vitest/runner': 3.2.7 + '@vitest/snapshot': 3.2.7 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + debug: 4.4.3(supports-color@5.5.0) + expect-type: 1.4.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.5 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.17 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.3.6(@types/node@26.1.0) + vite-node: 3.2.4(@types/node@26.1.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 26.1.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml - whatwg-url@5.0.0: + why-is-node-running@2.3.0: dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 + siginfo: 2.0.0 + stackback: 0.0.2 wrap-ansi@9.0.2: dependencies: @@ -1684,8 +2362,6 @@ snapshots: wrappy@1.0.2: {} - xtend@4.0.2: {} - y18n@5.0.8: {} yargs-parser@22.0.0: {} @@ -1699,4 +2375,4 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 - yn@3.1.1: {} + zod@3.25.76: {} diff --git a/server/src/__tests__/api.test.ts b/server/src/__tests__/api.test.ts new file mode 100644 index 00000000..95ed8f36 --- /dev/null +++ b/server/src/__tests__/api.test.ts @@ -0,0 +1,113 @@ +import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest' +import request from 'supertest' +import { createApp } from '../index' + +function sseResponse(events: string[]) { + const encoder = new TextEncoder() + const stream = new ReadableStream({ + start(controller) { + for (const event of events) { + controller.enqueue(encoder.encode(event)) + } + controller.close() + } + }) + return new Response(stream, { + status: 200, + headers: { 'Content-Type': 'text/event-stream' } + }) +} + +describe('server', () => { + beforeEach(() => { + delete process.env.API_AUTH_TOKEN + }) + + afterEach(() => { + vi.restoreAllMocks() + }) + + it('GET /health returns ok', async () => { + const res = await request(createApp()).get('/health') + expect(res.status).toBe(200) + expect(res.body).toEqual({ status: 'ok' }) + }) + + it('GET /models returns chat and image models', async () => { + const res = await request(createApp()).get('/models') + expect(res.status).toBe(200) + expect(res.body.chatModels.length).toBeGreaterThan(0) + expect(res.body.imageModels.length).toBeGreaterThan(0) + const claude = res.body.chatModels.find((m: any) => m.label === 'claudeOpus') + expect(claude.provider).toBe('anthropic') + expect(res.body.chatModels.every((m: any) => !m.modelId)).toBe(true) + }) + + it('rejects invalid chat request bodies', async () => { + const res = await request(createApp()) + .post('/chat/claude') + .send({ model: 'claudeOpus' }) + expect(res.status).toBe(400) + expect(res.body.error).toBe('invalid request body') + }) + + it('requires bearer token when API_AUTH_TOKEN is set', async () => { + process.env.API_AUTH_TOKEN = 'secret' + const app = createApp() + const unauthorized = await request(app) + .post('/chat/claude') + .send({ model: 'claudeOpus', messages: [{ role: 'user', content: 'hi' }] }) + expect(unauthorized.status).toBe(401) + }) + + it('streams claude tokens as normalized SSE events', async () => { + vi.spyOn(global, 'fetch').mockResolvedValue( + sseResponse([ + 'data: {"type":"content_block_delta","delta":{"text":"Hel"}}\n\n', + 'data: {"type":"content_block_delta","del', + 'ta":{"text":"lo"}}\n\n' + ]) as any + ) + const res = await request(createApp()) + .post('/chat/claude') + .send({ model: 'claudeOpus', messages: [{ role: 'user', content: 'hi' }] }) + expect(res.status).toBe(200) + expect(res.text).toContain('data: {"content":"Hel"}') + expect(res.text).toContain('data: {"content":"lo"}') + expect(res.text).toContain('data: [DONE]') + }) + + it('streams openai-compatible tokens as normalized SSE events', async () => { + vi.spyOn(global, 'fetch').mockResolvedValue( + sseResponse([ + 'data: {"choices":[{"delta":{"content":"Hi"}}]}\n\n', + 'data: [DONE]\n\n' + ]) as any + ) + const res = await request(createApp()) + .post('/chat/gpt') + .send({ model: 'gpt52', messages: [{ role: 'user', content: 'hi' }] }) + expect(res.status).toBe(200) + expect(res.text).toContain('data: {"content":"Hi"}') + expect(res.text).toContain('data: [DONE]') + }) + + it('emits an error event for unsupported models', async () => { + const res = await request(createApp()) + .post('/chat/gpt') + .send({ model: 'not-a-model', messages: [{ role: 'user', content: 'hi' }] }) + expect(res.text).toContain('unsupported model') + expect(res.text).toContain('data: [DONE]') + }) + + it('emits an error event when the provider fails', async () => { + vi.spyOn(global, 'fetch').mockResolvedValue( + new Response('rate limited', { status: 429 }) as any + ) + const res = await request(createApp()) + .post('/chat/claude') + .send({ model: 'claudeOpus', messages: [{ role: 'user', content: 'hi' }] }) + expect(res.text).toContain('provider error (429)') + expect(res.text).toContain('data: [DONE]') + }) +}) diff --git a/server/src/chat/addMessageToThread.ts b/server/src/chat/addMessageToThread.ts deleted file mode 100644 index be697a84..00000000 --- a/server/src/chat/addMessageToThread.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Request, Response } from "express" -import { saveFileToOpenai } from '../helpers/saveFileToOpenai' - -interface Body { - role: string - content: string - file_ids?: [string] - tools?: [{ type: string }] -} - -export async function addMessageToThread(req: Request, res: Response) { - try { - const { thread_id, input, assistant_id } = req.body - const file = req.file - - const body:Body = { - role: 'user', - content: input - } - - if (file) { - const response = await saveFileToOpenai(file) - console.log('response: ', response) - body.file_ids = [response.id] - } - console.log('body:', body) - - const headers = { - 'Content-Type': 'application/json', - 'OpenAI-Beta': 'assistants=v1', - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` - } - - await fetch(`https://api.openai.com/v1/threads/${thread_id}/messages`, { - method: 'POST', - body: JSON.stringify(body), - headers - }).then(res => res.json()) - - const run = await fetch(`https://api.openai.com/v1/threads/${thread_id}/runs`, { - method: 'POST', - headers, - body: JSON.stringify({ - assistant_id, - tools: [{ type: "code_interpreter" }, { type: "retrieval" }] - }) - }).then(res => res.json()) - - return res.json({ - runId: run.id - }) - } catch (err) { - console.log('error in assistant chat: ', err) - return res.json({ - error: err - }) - } -} diff --git a/server/src/chat/chatRouter.ts b/server/src/chat/chatRouter.ts index 64c851b2..50faaeb1 100644 --- a/server/src/chat/chatRouter.ts +++ b/server/src/chat/chatRouter.ts @@ -4,9 +4,13 @@ import { gpt } from './gpt' import { gemini } from './gemini' import { glm } from './glm' import { kimi } from './kimi' +import { validateBody } from '../middleware' +import { chatRequestSchema } from '../types' const router = express.Router() +router.use(validateBody(chatRequestSchema)) + router.post('/claude', claude) router.post('/gpt', gpt) router.post('/gemini', gemini) diff --git a/server/src/chat/claude.ts b/server/src/chat/claude.ts index 602f9d15..54fe0f59 100644 --- a/server/src/chat/claude.ts +++ b/server/src/chat/claude.ts @@ -1,106 +1,85 @@ -import { Request, Response, NextFunction } from "express" +import { Request, Response } from 'express' import asyncHandler from 'express-async-handler' +import { getChatModel } from '../models' +import { ChatMessage, ChatRequest } from '../types' +import { initSSE, sendToken, sendError, sendDone, createSSEParser, pumpStream } from '../sse' -type ModelLabel = 'claudeOpus' | 'claudeOpus47' | 'claudeSonnet' | 'claudeHaiku' | 'claudeSonnet4' | 'claudeFable5' | 'claudeSonnet5' -type ModelName = - | 'claude-opus-4-5-20251101' - | 'claude-opus-4-7' - | 'claude-sonnet-4-5-20250929' - | 'claude-haiku-4-5-20251001' - | 'claude-sonnet-4-6-20260201' - | 'claude-fable-5' - | 'claude-sonnet-5'; - -const models: Record = { - claudeFable5: 'claude-fable-5', - claudeSonnet5: 'claude-sonnet-5', - claudeOpus: 'claude-opus-4-5-20251101', - claudeOpus47: 'claude-opus-4-7', - claudeSonnet: 'claude-sonnet-4-5-20250929', - claudeHaiku: 'claude-haiku-4-5-20251001', - claudeSonnet4: 'claude-sonnet-4-6-20260201' -} - -interface RequestBody { - prompt: any; - model: ModelLabel; +function toAnthropicMessages(messages: ChatMessage[]) { + return messages + .filter(m => m.role !== 'system') + .map(m => { + if (m.image) { + return { + role: m.role, + content: [ + { + type: 'image', + source: { + type: 'base64', + media_type: m.image.mimeType, + data: m.image.data + } + }, + ...(m.content ? [{ type: 'text', text: m.content }] : []) + ] + } + } + return { role: m.role, content: m.content } + }) } export const claude = asyncHandler(async (req: Request, res: Response) => { + initSSE(res) try { - res.writeHead(200, { - 'Content-Type': 'text/event-stream', - 'Connection': 'keep-alive', - 'Cache-Control': 'no-cache' - }) + const { messages, model }: ChatRequest = req.body + const chatModel = getChatModel(model) - const { prompt, model }: RequestBody = req.body - const selectedModel = models[model] - - if (!selectedModel) { - res.write('data: [DONE]\n\n') - res.end() + if (!chatModel || chatModel.provider !== 'anthropic') { + sendError(res, `unsupported model: ${model}`) + sendDone(res) return } - const decoder = new TextDecoder() + const system = messages.filter(m => m.role === 'system').map(m => m.content).join('\n') + const response = await fetch('https://api.anthropic.com/v1/messages', { method: 'POST', headers: { 'Content-Type': 'application/json', 'anthropic-version': '2023-06-01', - 'anthropic-beta': 'messages-2023-12-15', 'x-api-key': process.env.ANTHROPIC_API_KEY || '' }, body: JSON.stringify({ - model: selectedModel, - "messages": [{"role": "user", "content": prompt }], - "max_tokens": 4096, + model: chatModel.modelId, + messages: toAnthropicMessages(messages), + ...(system ? { system } : {}), + max_tokens: 4096, stream: true }) }) - const reader = response.body?.getReader() - if (reader) { - let index = 0 - - while (true) { - const { done, value } = await reader.read() + if (!response.ok) { + const detail = await response.text() + console.error('anthropic error:', response.status, detail) + sendError(res, `provider error (${response.status})`) + sendDone(res) + return + } - if (done) { - break + const parse = createSSEParser(data => { + try { + const parsed = JSON.parse(data) + if (parsed.type === 'content_block_delta' && parsed.delta?.text) { + sendToken(res, parsed.delta.text) } - - let chunk = decoder.decode(value) - - const lines = chunk.split("\n") - - const parsedLines = lines - .filter(line => line.startsWith('data: ')) - .map(line => { - try { - return JSON.parse(line.replace('data: ', '')) - } catch { - return null - } - }) - .filter(Boolean) + } catch {} + }) - for (const parsedLine of parsedLines) { - if (parsedLine) { - if (parsedLine.delta && parsedLine.delta.text) { - res.write(`data: ${JSON.stringify(parsedLine.delta)}\n\n`) - } - } - } - } - - res.write('data: [DONE]\n\n') - res.end() - } + await pumpStream(response.body, parse) + sendDone(res) } catch (err) { - console.log('error in claude chat: ', err) - res.write('data: [DONE]\n\n') - res.end() + console.error('error in claude chat:', err) + sendError(res, 'unexpected server error') + sendDone(res) } }) diff --git a/server/src/chat/cohere.ts b/server/src/chat/cohere.ts deleted file mode 100644 index 120cd45a..00000000 --- a/server/src/chat/cohere.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* -* stream help from https://www.builder.io/blog/stream-ai-javascript -*/ -import { Request, Response } from "express" - -type ModelName = 'cohere' | 'cohereWeb'; - -interface RequestBody { - prompt: any; - model: ModelName; - conversation_id: string; -} - -export async function cohere(req: Request, res: Response) { - try { - res.writeHead(200, { - 'Content-Type': 'text/event-stream', - 'Connection': 'keep-alive', - 'Cache-Control': 'no-cache' - }) - let { prompt, conversation_id, model }: RequestBody = req.body - - if (!prompt) { - return res.json({ - error: 'no prompt' - }) - } - - const body = { - message: prompt, - stream: true, - conversation_id, - } as { message: string, stream: boolean, conversation_id: string, connectors?: any[]} - if (model.includes('web')) { - body.connectors = [{"id": "web-search"}] - } - - const decoder = new TextDecoder() - const response = await fetch('https://api.cohere.ai/v1/chat', { - method: 'POST', - headers: { - 'accept': 'application/json', - 'content-type': 'application/json', - 'authorization': `Bearer ${process.env.COHERE_API_KEY}` - }, - body: JSON.stringify(body) - }) - - if (response) { - const reader = response.body?.getReader() - if (!reader) return res.end - - while (true) { - const { done, value } = await reader.read() - if (done) { - break - } - let chunk = decoder.decode(value) - res.write(`data: ${chunk}\n\n`) - } - - res.write('data: [DONE]\n\n') - res.end() - } else { - res.end() - } - - } catch (err) { - console.log('error in cohere chat: ', err) - res.write('data: [DONE]\n\n') - res.end() - } -} \ No newline at end of file diff --git a/server/src/chat/createAssistant.ts b/server/src/chat/createAssistant.ts deleted file mode 100644 index 7a8e690e..00000000 --- a/server/src/chat/createAssistant.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Request, Response } from "express" -import { saveFileToOpenai } from '../helpers/saveFileToOpenai' - -interface Body { - model: string - name: string - instructions?: string - file_ids?: [string] - tools?: any[] -} - -export async function createAssistant(req: Request, res: Response) { - try { - const { instructions, input } = req.body - const file = req.file - let assistantId - let threadId - let runId - - const body: Body = { - model: 'gpt-4-1106-preview', - name: 'RN AI Assistant' - } - - const headers = { - 'Content-Type': 'application/json', - 'OpenAI-Beta': 'assistants=v1', - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` - } - - if (instructions) { - body.instructions = instructions - } - - if (file) { - const response = await saveFileToOpenai(file) - body.file_ids = [response.id] - body.tools = [{ type: "code_interpreter" }, { type: "retrieval" }] - } - - const assistant = await fetch('https://api.openai.com/v1/assistants', { - method: 'POST', - body: JSON.stringify(body), - headers - }).then(res => res.json()) - assistantId = assistant.id - - const thread = await fetch('https://api.openai.com/v1/threads', { - method: 'POST', - headers - }).then(res => res.json()) - threadId = thread.id - - console.log('threadId: ', threadId) - - await fetch(`https://api.openai.com/v1/threads/${threadId}/messages`, { - method: 'POST', - body: JSON.stringify({ - role: 'user', - content: input - }), - headers - }).then(res => res.json()) - - const run = await fetch(`https://api.openai.com/v1/threads/${threadId}/runs`, { - method: 'POST', - headers, - body: JSON.stringify({ - assistant_id: assistantId - }) - }).then(res => res.json()) - runId = run.id - - return res.json({ - assistantId, - threadId, - runId - }) - - } catch (err) { - console.log('error in assistant chat: ', err) - return res.json({ error: err }) - } -} \ No newline at end of file diff --git a/server/src/chat/gemini.ts b/server/src/chat/gemini.ts index 1ff3030c..16519b16 100644 --- a/server/src/chat/gemini.ts +++ b/server/src/chat/gemini.ts @@ -1,47 +1,82 @@ -import { GoogleGenerativeAI } from "@google/generative-ai" +import { Request, Response } from 'express' +import asyncHandler from 'express-async-handler' +import { getChatModel } from '../models' +import { ChatMessage, ChatRequest } from '../types' +import { initSSE, sendToken, sendError, sendDone, createSSEParser, pumpStream } from '../sse' -import { Request, Response } from "express" +function toGeminiContents(messages: ChatMessage[]) { + return messages + .filter(m => m.role !== 'system') + .map(m => { + const parts: any[] = [] + if (m.content) parts.push({ text: m.content }) + if (m.image) { + parts.push({ + inline_data: { + mime_type: m.image.mimeType, + data: m.image.data + } + }) + } + return { + role: m.role === 'assistant' ? 'model' : 'user', + parts + } + }) +} -export async function gemini(req: Request, res: Response) { +export const gemini = asyncHandler(async (req: Request, res: Response) => { + initSSE(res) try { - res.writeHead(200, { - 'Content-Type': 'text/event-stream', - 'Connection': 'keep-alive', - 'Cache-Control': 'no-cache' - }) - const { prompt } = req.body - if (!prompt) { - return res.json({ - error: 'no prompt' - }) - } + const { messages, model }: ChatRequest = req.body + const chatModel = getChatModel(model) - const genAIInit = new GoogleGenerativeAI(`${process.env.GEMINI_API_KEY}`) + if (!chatModel || chatModel.provider !== 'google') { + sendError(res, `unsupported model: ${model}`) + sendDone(res) + return + } - const model = genAIInit.getGenerativeModel({ - model: "gemini-3-pro-preview", - }) - - const geminiResult = await model.generateContentStream(prompt) + const system = messages.filter(m => m.role === 'system').map(m => m.content).join('\n') - if (geminiResult && geminiResult.stream) { - await streamToStdout(geminiResult.stream, res) - } else { - res.end() + const response = await fetch( + `https://generativelanguage.googleapis.com/v1beta/models/${chatModel.modelId}:streamGenerateContent?alt=sse`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-goog-api-key': process.env.GEMINI_API_KEY || '' + }, + body: JSON.stringify({ + contents: toGeminiContents(messages), + ...(system ? { systemInstruction: { parts: [{ text: system }] } } : {}) + }) } - - } catch (err) { - console.log('error in Gemini chat: ', err) - res.write('data: [DONE]\n\n') - res.end() + ) + + if (!response.ok) { + const detail = await response.text() + console.error('gemini error:', response.status, detail) + sendError(res, `provider error (${response.status})`) + sendDone(res) + return } -} -export async function streamToStdout(stream :any, res: Response) { - for await (const chunk of stream) { - const chunkText = chunk.text() - res.write(`data: ${JSON.stringify(chunkText)}\n\n`) + const parse = createSSEParser(data => { + try { + const parsed = JSON.parse(data) + const text = parsed.candidates?.[0]?.content?.parts + ?.map((p: any) => p.text || '') + .join('') + if (text) sendToken(res, text) + } catch {} + }) + + await pumpStream(response.body, parse) + sendDone(res) + } catch (err) { + console.error('error in gemini chat:', err) + sendError(res, 'unexpected server error') + sendDone(res) } - res.write('data: [DONE]\n\n') - res.end() -} \ No newline at end of file +}) diff --git a/server/src/chat/getThreadMessages.ts b/server/src/chat/getThreadMessages.ts deleted file mode 100644 index d12718ee..00000000 --- a/server/src/chat/getThreadMessages.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Request, Response } from "express" - -export async function getThreadMessages(req: Request, res: Response) { - try { - const { thread_id } = req.body - const headers = { - 'OpenAI-Beta': 'assistants=v1', - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` - } - const response = await fetch(`https://api.openai.com/v1/threads/${thread_id}/messages`, { - headers - }).then(res => res.json()) - - return res.json({ - success: true, - data: response - }) - } catch (err) { - console.log('error in assistant chat: ', err) - } -} diff --git a/server/src/chat/glm.ts b/server/src/chat/glm.ts index 426ead7c..bfe0c81e 100644 --- a/server/src/chat/glm.ts +++ b/server/src/chat/glm.ts @@ -1,15 +1,12 @@ -import { Request, Response } from "express" +import { Request, Response } from 'express' import asyncHandler from 'express-async-handler' import { streamOpenAICompatible } from './openaiCompatible' export const glm = asyncHandler(async (req: Request, res: Response) => { - const models: any = { - glm52: 'glm-5.2' - } await streamOpenAICompatible({ req, res, - models, + provider: 'zai', apiUrl: 'https://api.z.ai/api/paas/v4/chat/completions', apiKey: process.env.ZAI_API_KEY || '' }) diff --git a/server/src/chat/gpt.ts b/server/src/chat/gpt.ts index 83a37ce6..c8860e1c 100644 --- a/server/src/chat/gpt.ts +++ b/server/src/chat/gpt.ts @@ -1,91 +1,13 @@ -import { Request, Response } from "express" +import { Request, Response } from 'express' import asyncHandler from 'express-async-handler' +import { streamOpenAICompatible } from './openaiCompatible' export const gpt = asyncHandler(async (req: Request, res: Response) => { - const models:any = { - gpt52: 'gpt-5.2-2025-12-11', - gpt5Mini: 'gpt-5-mini-2025-08-07' - } - try { - res.writeHead(200, { - 'Content-Type': 'text/event-stream', - 'Connection': 'keep-alive', - 'Cache-Control': 'no-cache' - }) - const { model, messages } = req.body - const selectedModel = models[model] - - if (!selectedModel) { - res.write('data: [DONE]\n\n') - res.end() - return - } - - const response = await fetch('https://api.openai.com/v1/chat/completions', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` - }, - body: JSON.stringify({ - model: selectedModel, - messages, - stream: true - }) - }) - const reader = response.body?.getReader() - const decoder = new TextDecoder() - let brokenLine = '' - if (reader) { - while (true) { - const { done, value } = await reader.read() - if (done) { - break - } - - let chunk = decoder.decode(value) - if (brokenLine) { - try { - const { choices } = JSON.parse(brokenLine) - const { delta } = choices[0] - const { content } = delta - if (content) { - res.write(`data: ${JSON.stringify(content)}\n\n`) - } - brokenLine = '' - } catch (err) {} - } - - const lines = chunk.split("data: ") - const parsedLines = lines - .filter(line => line !== "" && line !== "[DONE]") - .filter(l => { - try { - JSON.parse(l) - return true - } catch (err) { - console.log('line thats not json:', l) - if (!l.includes('[DONE]')) { - brokenLine = brokenLine + l - } - return false - } - }) - .map(l => JSON.parse(l)) - - for (const parsedLine of parsedLines) { - const { choices } = parsedLine - const { delta } = choices[0] - const { content } = delta - if (content) { - res.write(`data: ${JSON.stringify(delta)}\n\n`) - } - } - } - } - - res.write('data: [DONE]\n\n') - } catch (err) { - console.log('error: ', err) - } -}) \ No newline at end of file + await streamOpenAICompatible({ + req, + res, + provider: 'openai', + apiUrl: 'https://api.openai.com/v1/chat/completions', + apiKey: process.env.OPENAI_API_KEY || '' + }) +}) diff --git a/server/src/chat/kimi.ts b/server/src/chat/kimi.ts index 6a8eddca..6970b874 100644 --- a/server/src/chat/kimi.ts +++ b/server/src/chat/kimi.ts @@ -1,15 +1,12 @@ -import { Request, Response } from "express" +import { Request, Response } from 'express' import asyncHandler from 'express-async-handler' import { streamOpenAICompatible } from './openaiCompatible' export const kimi = asyncHandler(async (req: Request, res: Response) => { - const models: any = { - kimiK27: 'kimi-k2.7' - } await streamOpenAICompatible({ req, res, - models, + provider: 'moonshot', apiUrl: 'https://api.moonshot.ai/v1/chat/completions', apiKey: process.env.MOONSHOT_API_KEY || '' }) diff --git a/server/src/chat/openaiCompatible.ts b/server/src/chat/openaiCompatible.ts index f0dbcd0c..4a0eaa05 100644 --- a/server/src/chat/openaiCompatible.ts +++ b/server/src/chat/openaiCompatible.ts @@ -1,26 +1,43 @@ -import { Request, Response } from "express" +import { Request, Response } from 'express' +import { Provider, getChatModel } from '../models' +import { ChatMessage, ChatRequest } from '../types' +import { initSSE, sendToken, sendError, sendDone, createSSEParser, pumpStream } from '../sse' interface StreamArgs { - req: Request; - res: Response; - models: Record; - apiUrl: string; - apiKey: string; + req: Request + res: Response + provider: Provider + apiUrl: string + apiKey: string } -export async function streamOpenAICompatible({ req, res, models, apiUrl, apiKey }: StreamArgs) { +function toOpenAIMessages(messages: ChatMessage[], supportsVision: boolean) { + return messages.map(m => { + if (m.image && supportsVision) { + return { + role: m.role, + content: [ + ...(m.content ? [{ type: 'text', text: m.content }] : []), + { + type: 'image_url', + image_url: { url: `data:${m.image.mimeType};base64,${m.image.data}` } + } + ] + } + } + return { role: m.role, content: m.content } + }) +} + +export async function streamOpenAICompatible({ req, res, provider, apiUrl, apiKey }: StreamArgs) { + initSSE(res) try { - res.writeHead(200, { - 'Content-Type': 'text/event-stream', - 'Connection': 'keep-alive', - 'Cache-Control': 'no-cache' - }) - const { model, messages } = req.body - const selectedModel = models[model] + const { model, messages }: ChatRequest = req.body + const chatModel = getChatModel(model) - if (!selectedModel) { - res.write('data: [DONE]\n\n') - res.end() + if (!chatModel || chatModel.provider !== provider) { + sendError(res, `unsupported model: ${model}`) + sendDone(res) return } @@ -31,66 +48,34 @@ export async function streamOpenAICompatible({ req, res, models, apiUrl, apiKey 'Authorization': `Bearer ${apiKey}` }, body: JSON.stringify({ - model: selectedModel, - messages, + model: chatModel.modelId, + messages: toOpenAIMessages(messages, chatModel.supportsVision), stream: true }) }) - const reader = response.body?.getReader() - const decoder = new TextDecoder() - let brokenLine = '' - if (reader) { - while (true) { - const { done, value } = await reader.read() - if (done) { - break - } - - let chunk = decoder.decode(value) - if (brokenLine) { - try { - const { choices } = JSON.parse(brokenLine) - const { delta } = choices[0] - const { content } = delta - if (content) { - res.write(`data: ${JSON.stringify(content)}\n\n`) - } - brokenLine = '' - } catch (err) {} - } - const lines = chunk.split("data: ") - const parsedLines = lines - .filter(line => line !== "" && line !== "[DONE]") - .filter(l => { - try { - JSON.parse(l) - return true - } catch (err) { - if (!l.includes('[DONE]')) { - brokenLine = brokenLine + l - } - return false - } - }) - .map(l => JSON.parse(l)) - - for (const parsedLine of parsedLines) { - const { choices } = parsedLine - const { delta } = choices[0] - const { content } = delta - if (content) { - res.write(`data: ${JSON.stringify(delta)}\n\n`) - } - } - } + if (!response.ok) { + const detail = await response.text() + console.error(`${provider} error:`, response.status, detail) + sendError(res, `provider error (${response.status})`) + sendDone(res) + return } - res.write('data: [DONE]\n\n') - res.end() + const parse = createSSEParser(data => { + if (data === '[DONE]') return + try { + const parsed = JSON.parse(data) + const content = parsed.choices?.[0]?.delta?.content + if (content) sendToken(res, content) + } catch {} + }) + + await pumpStream(response.body, parse) + sendDone(res) } catch (err) { - console.log('error in openai-compatible chat: ', err) - res.write('data: [DONE]\n\n') - res.end() + console.error(`error in ${provider} chat:`, err) + sendError(res, 'unexpected server error') + sendDone(res) } } diff --git a/server/src/chat/runResponse.ts b/server/src/chat/runResponse.ts deleted file mode 100644 index 9fe283b9..00000000 --- a/server/src/chat/runResponse.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Request, Response } from "express" - -// not in use yet, not complete - -export async function runResponse(req: Request, res: Response) { - try { - const { thread_id } = req.body - const headers = { - 'OpenAI-Beta': 'assistants=v1', - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` - } - const response = await fetch(`https://api.openai.com/v1/threads/${thread_id}/runs`, { - headers - }) - const json = await response.json() - console.log('json: ', json) - return res.json({ - success: true - }) - } catch (err) { - console.log('error in assistant chat: ', err) - } -} diff --git a/server/src/chat/runStatus.ts b/server/src/chat/runStatus.ts deleted file mode 100644 index 565ad547..00000000 --- a/server/src/chat/runStatus.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Request, Response } from "express" - -export async function runStatus(req: Request, res: Response) { - try { - const { thread_id, run_id } = req.body - - console.log('thread_id: ', thread_id) - console.log('run_id: ', run_id) - - const headers = { - 'OpenAI-Beta': 'assistants=v1', - 'Content-Type': 'application/json', - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` - } - const response = await fetch(`https://api.openai.com/v1/threads/${thread_id}/runs/${run_id}`, { - headers - }) - const json = await response.json() - - if (json.status === 'completed') { - return res.json(json) - } else { - return res.json({ - status: 'running' - }) - } - } catch (err) { - console.log('error in assistant chat: ', err) - } -} \ No newline at end of file diff --git a/server/src/files/fileRouter.ts b/server/src/files/fileRouter.ts deleted file mode 100644 index e7855717..00000000 --- a/server/src/files/fileRouter.ts +++ /dev/null @@ -1,8 +0,0 @@ -import express from 'express' -import { uploadFile } from './upload-file' - -const router = express.Router() - -router.post('/upload-file', uploadFile) - -export default router diff --git a/server/src/files/upload-file.ts b/server/src/files/upload-file.ts deleted file mode 100644 index b492e693..00000000 --- a/server/src/files/upload-file.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response } from "express" - -const endpoint = 'https://api.openai.com/v1/files' - -export async function uploadFile(req: Request, res: Response) { - try { - const { prompt, codeInterpreter } = req.body - } catch (err) { - console.log('error in assistant chat: ', err) - } -} \ No newline at end of file diff --git a/server/src/helpers/saveFileToOpenai.ts b/server/src/helpers/saveFileToOpenai.ts deleted file mode 100644 index f363e498..00000000 --- a/server/src/helpers/saveFileToOpenai.ts +++ /dev/null @@ -1,40 +0,0 @@ -import fs from 'fs' -import path from 'path' -import { baseHeaders } from '../utils' -import { Readable } from 'stream' - -export async function saveFileToOpenai(file: any) { - const uploadsDir = path.join(process.cwd(), 'uploads') - if (!fs.existsSync(uploadsDir)){ - fs.mkdirSync(uploadsDir); - } - const filePath = path.join(uploadsDir, file.originalname); - try { - const writeToFile = new Promise((resolve, reject) => { - const readableStream = new Readable({ - read() { - this.push(file.buffer); - this.push(null); - } - }) - const writeStream = fs.createWriteStream(filePath) - readableStream.pipe(writeStream) - writeStream.on('finish', resolve) - writeStream.on('error', reject) - }) - await writeToFile - const formData = new FormData() - formData.append('purpose', 'assistants') - formData.append('file', new Blob([fs.readFileSync(filePath)], { type: 'application/json' }), file.originalname) - const response = await fetch('https://api.openai.com/v1/files', { - method: 'POST', - headers: { - ...baseHeaders - }, - body: formData - }).then(res => res.json()) - return response - } catch (err) { - console.log('error saving file to openai: ', err) - } -} \ No newline at end of file diff --git a/server/src/images/gemini.ts b/server/src/images/gemini.ts index 8b7b1b2b..ebaae0ff 100644 --- a/server/src/images/gemini.ts +++ b/server/src/images/gemini.ts @@ -1,13 +1,7 @@ -import { Request, Response } from "express" +import { Request, Response } from 'express' +import { getImageModel } from '../models' -type GeminiImageModel = "nanoBanana" | "nanoBananaPro" - -const geminiModels: Record = { - nanoBanana: "gemini-2.5-flash-image", - nanoBananaPro: "gemini-3-pro-image-preview" -} - -const geminiApiBase = "https://generativelanguage.googleapis.com/v1beta/models" +const geminiApiBase = 'https://generativelanguage.googleapis.com/v1beta/models' function getInlineData(part: any) { return part?.inlineData || part?.inline_data @@ -16,18 +10,14 @@ function getInlineData(part: any) { export async function geminiImage(req: Request, res: Response) { try { const { prompt, model } = req.body - const selectedModel = geminiModels[model as GeminiImageModel] + const imageModel = getImageModel(model) - if (!selectedModel) { - return res.json({ - error: "unsupported model" - }) + if (!imageModel) { + return res.status(400).json({ error: `unsupported model: ${model}` }) } if (!prompt && !req.file) { - return res.json({ - error: "no prompt" - }) + return res.status(400).json({ error: 'a prompt or image is required' }) } const parts: any[] = [] @@ -39,51 +29,50 @@ export async function geminiImage(req: Request, res: Response) { parts.push({ inline_data: { mime_type: req.file.mimetype, - data: req.file.buffer.toString("base64") + data: req.file.buffer.toString('base64') } }) } - const response = await fetch(`${geminiApiBase}/${selectedModel}:generateContent`, { - method: "POST", + const response = await fetch(`${geminiApiBase}/${imageModel.modelId}:generateContent`, { + method: 'POST', headers: { - "Content-Type": "application/json", - "x-goog-api-key": process.env.GEMINI_API_KEY || "" + 'Content-Type': 'application/json', + 'x-goog-api-key': process.env.GEMINI_API_KEY || '' }, body: JSON.stringify({ - contents: [{ - parts - }], + contents: [{ parts }], generationConfig: { - responseModalities: ["TEXT", "IMAGE"] + responseModalities: ['TEXT', 'IMAGE'] } }) }) + if (!response.ok) { + const detail = await response.text() + console.error('gemini image error:', response.status, detail) + return res.status(502).json({ error: `provider error (${response.status})` }) + } + const data = await response.json() const responseParts = data?.candidates?.[0]?.content?.parts || [] - const imagePart = responseParts.find((part: any) => { - const inlineData = getInlineData(part) - return inlineData?.data - }) + const imagePart = responseParts.find((part: any) => getInlineData(part)?.data) const inlineData = getInlineData(imagePart) if (!inlineData?.data) { - return res.json({ - error: "error generating image", + return res.status(502).json({ + error: 'the model did not return an image', details: data }) } - const mimeType = inlineData.mimeType || inlineData.mime_type || "image/png" + const mimeType = inlineData.mimeType || inlineData.mime_type || 'image/png' return res.json({ image: `data:${mimeType};base64,${inlineData.data}` }) } catch (err) { - console.log("error generating Gemini image: ", err) - return res.json({ - error: "error generating image" - }) + console.error('error generating Gemini image:', err) + return res.status(500).json({ error: 'error generating image' }) } } diff --git a/server/src/index.ts b/server/src/index.ts index 044ca985..6d6c62d5 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -1,22 +1,50 @@ import express from 'express' +import cors from 'cors' +import rateLimit from 'express-rate-limit' import chatRouter from './chat/chatRouter' import imagesRouter from './images/imagesRouter' -import bodyParser from 'body-parser' +import { auth } from './middleware' +import { CHAT_MODELS, IMAGE_MODELS } from './models' import 'dotenv/config' -const app = express() +export function createApp() { + const app = express() -app.use(bodyParser.urlencoded({ extended: true })) -app.use(bodyParser.json()) -app.use(express.json({limit: '50mb'})) + app.use(cors({ origin: process.env.CORS_ORIGIN || '*' })) + app.use(express.json({ limit: '50mb' })) + app.use(express.urlencoded({ extended: true })) -app.get('/', (req, res) => { - res.send('Hello World!') -}) + app.get('/health', (req, res) => { + res.json({ status: 'ok' }) + }) -app.use('/chat', chatRouter) -app.use('/images', imagesRouter) + app.get('/models', (req, res) => { + res.json({ + chatModels: Object.values(CHAT_MODELS).map(({ name, label, provider, supportsVision }) => ({ + name, label, provider, supportsVision + })), + imageModels: Object.values(IMAGE_MODELS).map(({ name, label, provider }) => ({ + name, label, provider + })) + }) + }) -app.listen(3050, () => { - console.log('Server started on port 3050') -}) + const limiter = rateLimit({ + windowMs: 60 * 1000, + limit: Number(process.env.RATE_LIMIT_PER_MINUTE || 60), + standardHeaders: true, + legacyHeaders: false + }) + + app.use('/chat', auth, limiter, chatRouter) + app.use('/images', auth, limiter, imagesRouter) + + return app +} + +if (require.main === module) { + const port = Number(process.env.PORT || 3050) + createApp().listen(port, () => { + console.log(`Server started on port ${port}`) + }) +} diff --git a/server/src/middleware.ts b/server/src/middleware.ts new file mode 100644 index 00000000..58d8a46c --- /dev/null +++ b/server/src/middleware.ts @@ -0,0 +1,29 @@ +import { Request, Response, NextFunction } from 'express' +import { ZodSchema } from 'zod' + +/** + * Optional bearer-token auth. Enabled by setting API_AUTH_TOKEN in the + * server environment; clients must then send `Authorization: Bearer `. + */ +export function auth(req: Request, res: Response, next: NextFunction) { + const token = process.env.API_AUTH_TOKEN + if (!token) return next() + const header = req.headers.authorization || '' + if (header === `Bearer ${token}`) return next() + res.status(401).json({ error: 'unauthorized' }) +} + +export function validateBody(schema: ZodSchema) { + return (req: Request, res: Response, next: NextFunction) => { + const result = schema.safeParse(req.body) + if (!result.success) { + res.status(400).json({ + error: 'invalid request body', + details: result.error.issues.map(i => `${i.path.join('.')}: ${i.message}`) + }) + return + } + req.body = result.data + next() + } +} diff --git a/server/src/models.ts b/server/src/models.ts new file mode 100644 index 00000000..e554895a --- /dev/null +++ b/server/src/models.ts @@ -0,0 +1,126 @@ +export type Provider = 'anthropic' | 'openai' | 'google' | 'zai' | 'moonshot' + +export interface ChatModel { + name: string + label: string + provider: Provider + modelId: string + supportsVision: boolean +} + +export interface ImageModel { + name: string + label: string + provider: Provider + modelId: string +} + +export const CHAT_MODELS: Record = { + claudeFable5: { + name: 'Claude Fable 5', + label: 'claudeFable5', + provider: 'anthropic', + modelId: 'claude-fable-5', + supportsVision: true + }, + claudeSonnet5: { + name: 'Claude Sonnet 5', + label: 'claudeSonnet5', + provider: 'anthropic', + modelId: 'claude-sonnet-5', + supportsVision: true + }, + claudeOpus47: { + name: 'Claude Opus 4.7', + label: 'claudeOpus47', + provider: 'anthropic', + modelId: 'claude-opus-4-7', + supportsVision: true + }, + claudeOpus: { + name: 'Claude Opus', + label: 'claudeOpus', + provider: 'anthropic', + modelId: 'claude-opus-4-5-20251101', + supportsVision: true + }, + claudeSonnet: { + name: 'Claude Sonnet', + label: 'claudeSonnet', + provider: 'anthropic', + modelId: 'claude-sonnet-4-5-20250929', + supportsVision: true + }, + claudeHaiku: { + name: 'Claude Haiku', + label: 'claudeHaiku', + provider: 'anthropic', + modelId: 'claude-haiku-4-5-20251001', + supportsVision: true + }, + claudeSonnet4: { + name: 'Claude Sonnet 4', + label: 'claudeSonnet4', + provider: 'anthropic', + modelId: 'claude-sonnet-4-6-20260201', + supportsVision: true + }, + gpt52: { + name: 'GPT 5.2', + label: 'gpt52', + provider: 'openai', + modelId: 'gpt-5.2-2025-12-11', + supportsVision: true + }, + gpt5Mini: { + name: 'GPT 5 Mini', + label: 'gpt5Mini', + provider: 'openai', + modelId: 'gpt-5-mini-2025-08-07', + supportsVision: true + }, + gemini: { + name: 'Gemini', + label: 'gemini', + provider: 'google', + modelId: 'gemini-3-pro-preview', + supportsVision: true + }, + glm52: { + name: 'GLM 5.2', + label: 'glm52', + provider: 'zai', + modelId: 'glm-5.2', + supportsVision: false + }, + kimiK27: { + name: 'Kimi K2.7', + label: 'kimiK27', + provider: 'moonshot', + modelId: 'kimi-k2.7', + supportsVision: false + } +} + +export const IMAGE_MODELS: Record = { + nanoBanana: { + name: 'Nano Banana (Gemini Flash Image)', + label: 'nanoBanana', + provider: 'google', + modelId: 'gemini-2.5-flash-image' + }, + nanoBananaPro: { + name: 'Nano Banana Pro (Gemini 3 Pro)', + label: 'nanoBananaPro', + provider: 'google', + modelId: 'gemini-3-pro-image-preview' + } +} + +export function getChatModel(label: string): ChatModel | undefined { + return CHAT_MODELS[label] +} + +export function getImageModel(label: string): ImageModel | undefined { + return IMAGE_MODELS[label] +} diff --git a/server/src/sse.ts b/server/src/sse.ts new file mode 100644 index 00000000..b2fc5f77 --- /dev/null +++ b/server/src/sse.ts @@ -0,0 +1,55 @@ +import { Response } from 'express' + +export function initSSE(res: Response) { + res.writeHead(200, { + 'Content-Type': 'text/event-stream', + 'Connection': 'keep-alive', + 'Cache-Control': 'no-cache' + }) +} + +export function sendToken(res: Response, content: string) { + res.write(`data: ${JSON.stringify({ content })}\n\n`) +} + +export function sendError(res: Response, message: string) { + res.write(`data: ${JSON.stringify({ error: message })}\n\n`) +} + +export function sendDone(res: Response) { + res.write('data: [DONE]\n\n') + res.end() +} + +/** + * Incrementally parses an SSE byte stream, buffering partial lines across + * chunk boundaries. Calls onData for each complete `data:` payload. + */ +export function createSSEParser(onData: (data: string) => void) { + let buffer = '' + return (chunk: string) => { + buffer += chunk + const lines = buffer.split('\n') + buffer = lines.pop() || '' + for (const line of lines) { + const trimmed = line.trim() + if (!trimmed.startsWith('data:')) continue + const data = trimmed.slice(5).trim() + if (data) onData(data) + } + } +} + +export async function pumpStream( + body: ReadableStream | null, + onChunk: (chunk: string) => void +) { + if (!body) return + const reader = body.getReader() + const decoder = new TextDecoder() + while (true) { + const { done, value } = await reader.read() + if (done) break + onChunk(decoder.decode(value, { stream: true })) + } +} diff --git a/server/src/types.ts b/server/src/types.ts new file mode 100644 index 00000000..29cb3a7a --- /dev/null +++ b/server/src/types.ts @@ -0,0 +1,26 @@ +import { z } from 'zod' + +export const imageAttachmentSchema = z.object({ + mimeType: z.string().min(1), + data: z.string().min(1) +}) + +export const chatMessageSchema = z.object({ + role: z.enum(['system', 'user', 'assistant']), + content: z.string(), + image: imageAttachmentSchema.optional() +}) + +export const chatRequestSchema = z.object({ + model: z.string().min(1), + messages: z.array(chatMessageSchema).min(1) +}) + +export const imageRequestSchema = z.object({ + model: z.string().min(1), + prompt: z.string().optional() +}) + +export type ImageAttachment = z.infer +export type ChatMessage = z.infer +export type ChatRequest = z.infer diff --git a/server/src/utils.ts b/server/src/utils.ts deleted file mode 100644 index 9842a98f..00000000 --- a/server/src/utils.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const baseHeaders = { - 'Authorization': `Bearer ${process.env.OPENAI_API_KEY}` -} \ No newline at end of file diff --git a/server/uploads/Dabit_chapter_10_April_10_2017.docx b/server/uploads/Dabit_chapter_10_April_10_2017.docx deleted file mode 100644 index ec9c4aec1c999ccb24777b6e24ffb065c12959b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780220 zcmeFXLy#s+6fIcjvTfV8ZQHhO^DEo7^_9D9+wQWBE_KcS=EX$3nV7}w-`qvsMcz$j z+;dK3o~tYe{tF!h5(F9q1cU^H*7cj_5)=f48Xg1$4FnoYPt3{D-NMn`NZrTT!p(ru z+rgf=Os_6o7;A%$7#G|s zl}u%+?eA}?_TzDLu}fVgT#$Oc`)@o_l6kAEVVbK1e~IgDCM0^vF|ZvY*ta9UI^SEo zm1=@#peyP^BJqinYG1CjYIDQFlqK3=5H?A=kuR4Vr-$^6lLa^8JAmSsXXTFi7v_% zyDmOk57!jv90|VU4n-o++`T0EZ3j)M`xB-dl{RFs_TVl2W53^2g*|5Z11)&B7X7Xu zFf#5u;;NLq%t+_k>yMc)Q*)m(#GoIH+iJ!!X3Ka+2j4*J|5an8Lw{`PVKG`B#Z^oq z@ykxU4PC!L`j-X$vy5BQi4KN>`120qyYJ6WEGYsLJjfI4jFfvfO8t*{KD2eMq*?or zUGj?l7q&|DpYuG415K(ZFlebWAWAo$YA|(_tNaA%O)$*;lT%Hf?T&ao~&@9s~t6&5B6?*91!2T}gNQ3Rs`6ZyaY zcK-aw0C4|NgpsR-y&Dtb|5*QjYWUxn5B`^<*QF@PfwLe--i7{<%=GeY(~>Uj8j7DQ zn16$cv3`nh5s|Ao{Pcoi7*yFI30OYPrCJTuaY6Cba3$E>H-uWKgql|N;^=D)+C8;) zLZyf26)*BN98AD)zPzk{L`bFVqoJFWQ#r})m?zAoPRJ!grt*FQ!;*abZIZHaSLu4_rToq|L zt{U?2!IO!m3N0ZCUclMiTb8^>_29X8#>Q6J+Ecc~{&4hkTPpITQ2^A*cY1o`EwUgH z6Riq34icoM>Wgr0$$EkMe}zl9%30sWe~RkxpQ7S}K!bWYxtcTmPt2G*nRz(;C$9fP zRsS#ifc__~|5g9*9X%NeN=MB9^^f#d)P&a|WyBDvDr4|S`i-ogN2&~Nw2-+{$UncC z3Y*@AIBx8OC*5ox{%j;8gZ?Q-AIK}+df1F|w2WX{kJXwA;~-2gDlB>zYIO?U`XXaI z=WE|UfA<%VeBqyDy|yumy;xTWJ(3)`IfE`R8vPms>L67+Itbro&YkE-8TNsvN%Jv> z^RU^Ur|caq2;kc)QwBXJWZ$9Qx`*CSJmWelIwAC+9K(KM-W!cQxOS6>OfSzIy%?a{y|t1t|o<8cp)Xf%TaE zbaXKYFZ{>q)l^c%+^qkn_Knc?`V~V&Lph+K?@#zhwC=C^XM;|tWaYLJtf!SKOLWsZ zNK!HRWhpj9ls4Ki5=EKl<-!ndGLpGKNK;AC8B@_ZVf8=W*ACqx^Zi7`RG^G~K_Uw{ z(cKhC;Qu3)uOqg7U6tM-FS$29Vv3|(MDv!d=rRs|ye$-1QmG)TM5PTYKn()RJF4$h z##6z?gLaXPYn7o@qL$(4gMvz+#bL=WgMIHHPw+?wHe}GnS4d8b;E1pxBSfQlE5ZEWX@4u$mR|X{ zP}e?|2zAO^-fj5yu@@zL(^gYf$WARg5a=_S!`LW}KD$tw?nv6`DlX zcQ$Gprw~2mqZv)aG&Sm>8`~Hw_b_t!7_p>`HXH6Z{uMeaTUYf~OXA9Gbh&}jLlxD-ItxFsTq za!c&TH~xA=DWF@{aX9ZQjCNmnS$vfp>hCWe2XFZ+Qd__TO!Oz8f!yHqcL25x@5rcq z2WYh5z}KTo>QkmfS6-vkG!fTU)ZvpYy)p$~+^W1QR@+0u zJ|n|It5~jas~|x~$B6#i;3e|n!1Jg8VVPqp!{{%{cKe6C3coU*G5CpTCs*(ln zqQXbt439tPVFN--mU-$=?xa&0-3y)|Rr6n_ z-PBLjoOr>>_bSOw8?>XNNwiFQ>xk+7kmQzp$r& z{uVD$ISP9s7jwFbp^>cbZ71jdW0Gt^gH8{N5I+pV=A%;D_ zZQN52@8QWh#5eqlVq=W_!9BDDnPsdXxoH1HgMi)&SVvfP*>O^@k*T>?LkQ<>u4Azl zU>hNb03a&SBnK^U@gyo^M8BuwFs8PohX=>^4qgl}J>BMhH4|$vMtsaWFV<&~4-SGF zH&F+-A*MxG(N}*4y<^w&&)iF&_RSiOgv1Ah&GKrQ7>U!XrXZZA9~_kfpE5HYhp_-i z`k4O4cc~Uyn*%KgY-wRNn4+2>k-5K4Ljn~c4z$HM99E!gVzfG|F48bGx=3JkI z1R=Tl-Gwd9d}9Bqmd|)hr`7Wz6VJkrFdQ~A+8W`TTB0~1BTlwgNsZ`#9Az&-E~65K za@#1-#3*4fRDw}om|2p|p~MtY$K~Ux2UE{Au>XbzoWDW%iWw4$brGt_+(cXAmZX04 zF4IHdD_Y!=OJ~1Td(^R^S0C2o1BJZPxem{&^J9RxKLmb&W{0R?vrs9GS|<-2nF+ps z5i9Tt$AG&Ra zc>#awy6)6KZ>!yysK-tD;kI$!z;OHAxa!bF?U)hz*Yr4hAAbU1VmzAn1VT!)%OxEO zd;02MW*KQ}TeXB~T0ErfTd7_X%vvmFy&&nvv!E8rkB!UvTKWw>yBw`l3k`tG>v%Larc!{@P&0THrl>Im3;P0!2vTjs>Ztvr>E#4rAQ_Q{@fCFk$n zvUva_A*jtX9z_&Od!loe6jEl4&D-nZ8GMn_~2ou+;tp zdxvgB0UZvmTB-_;P|mA)X}o#%u+0qN+&Gbf)&KUe%HX;p3ggwl#@>-IeGJsZ9$GDp zXt4SU#f}nxfCy-s!_Y!g)&s_(Ram~ip-vZ__>|h31>KK5L!26C< zVs@Qq-H7hu+Mk}zr?KX%bFy#tahfiK%p{8~bK|h`>6(_QLWL)pYfcsgNnurrCzdEi z*}KryLe<&T=W|%0J*(WUO`QiTTnl*$hQ!l)oP|94Pn3PmG)}VsF3dP8_`@j`U1uHB zBZJpHQ;~pBcBTfR==%-qj=73qVPAF{@Wi8-5bN#B*+s?TC0iJTj2wEacOy{a=vnex z2M=T8+%Vy<%{d92r zncEM-`cAGBjTbz+ga$BlJKn>cDjMb zDEF{sz{-uFcthgQLPskFC{aCOXdf<@O3^uv_=C*dOC*UF)>}S^T#S|)on{KRzZ!a@ zR&}y0ywev_iN=HfyWiB!GhaU=&KKPw9#IH^>aV>#O(mVtI{bk4A@?R?MeplKM(ckQ z*!H_{1_+ZW5t-Yn-QjjE~(VxczL@m$$Fmc#J&G&sE5iq-9?o@PBE+4$z zUiF8ea81ifb>E$deSe$fL(K8AWiLr~+H2gt;Th^%2hgB;u*6F z600{C8Xx@k;WYsvJXrw@2MnOM^uXUaDMwOrN5SH$j3HH; zB*`M$ur5ry{5P8-RLe$`BYx>}!eB*x>(X#Rb=hyl8Y&}yr7GBkDhrmmf2flapENF< zCBm4}(`OxVLue%$+QaR6no+pdk5aggp%FM7eB7whyn}&y5OWq%QBAfDnWUndKg#lO zqpW8$w$UcQ*x2xn(S`jqc)20D?Ed2H2K4`<===BcvAxt^;p7bT%AWxG3V4E_5fw3_ z2xO9qC!;=x)zukkHybv_f|xsJEsVoX!{crJ`#Og{5p}d-)iIZ)l%KXMYlKo09sCLl zU#|6f!Ip(-Kng0Cb()cL4aGCBmO%VBi+L&2bYx_1FA3#RK1CIEaPc;PL`CvV}ZRu)+I@4F*N9rHL4DuR`X z5_qDnF;<^>q)|PIlUd)$foJY37zEB!|#PG*>vKB*{Hm zA(Sq?3;<7@`@HeIhgu;V{uzG-OPjWu zm(huoa+GD+E-fjOs|`FKYJBCRKYObmnCC+y!z2RUY`ipZfA|=vJi40t-b+#b$RLOJ z&A&Eu+=%hiyaGr8wdcIUG3q zQ=o!|#yJ^tJ>m-o^G5}NkeN?$Of9T}6M+fFFYab#dFT{{hz1k}&#g!~jQK!V`Bg%Q_OqFvKj^80<-RUi8D_svdIS^|=6+Kfn1YHe9;+|_&yhp;4V6Cpwn~copDS<6h zkoBX?8RVWmqK9Ef5c28*sGd78FD;3g;}+Pw_)Q~7T)N@}_~lrx`{~tk7G#cmdA(o~ z?Gu+LqK)dEHEce0TbL~><+658gm5>KVWwg?2R9}S;@`Wn+l8QVSZl`V#TQ1r)w@8rPGiZ`x zvgB2w z$*DOajy-xuSSboM)H>-PjI5MZc)xabzp0dc-chL^*00PQ6TLtmnLal0aP#u{iZ=bV z)&sud3-*V=JMuU0nV!d(Aqq}n^77dQ=YMqKS zSEfpM#2ALd{-f8cg=VPwFqUJz9$Qt;F7RpGs2*3>qpI7{nTMaRdA zv^7c^Hv7xQnncSu@i={KDW}ReaeHOc+QmJo#*h{W+BmE3wk;B!{RxY?qQEM~{#q6G zyt@z;6~9OtZ1tO51S&O$pA9s}7>|YW6Xh1;oPivnnZTq=>yTM`t2#zdcLHhCRKwt9 zc3T53ViJmu%Ik4MKM0xkyDsuu;mo1G zy}HiO;Kqh^F#=y=WHGl>6~&Lrut$*WFg@9NRl-aHc7s7vOf6OS)-a_HGwJqi{~!3} zaNy4k5#slJzA=e? zxW+oza5mDoDC>}Z(!rLiqf@)8fp5N4%gZ2Zg!`cRQe-2Wh7Y-Efv1@@uFz7>23VW%u%4!G%=?H=(X$j~e# z93)L`Roh>#Lo=|5Ws58zeu=+GI1uiG^$?Jo6j4QZ$7N0H2;I0c-RqG!un9j}t(tGx zB1R|2e|ho~M?S2AvP6boEEPozsCW4@S+_V=@4pr;?-??`qszTt?oyGv6t=4`9I6G+16I0jDIl` z40Nu;NhH*HEp^|0wbz$AxWB7pT3zii94AtuDuIoAWR=!uY;smouO;+)y8?njAvwgm zu@_p;dRO_FhPB@Xc?sG0Gge-aTQi|(dpm6jNN-AYr;$&kLY|(dXA>n(Yp+co=2DQp z-P0{ZcR5B$ksQ!M930)aSaoFlHPxevk3c>7nOLj$e6j&qlbm{oilxAbYGnZ!E*-cX zaEF_TjsU7f_0nhw(aVy+tD(%|`W^a4)0*W6PA7CS%=Qll_e5nkDhX=Gql5aS^h}u%y_$oGlznt0J%MG7s_Vr?_M}bO|-ZiZOBZCtaqr= zr1lJ2XcX2pwJbBdoQOKO z_!F(86n;#YgK8DF+_0=qgUi@_ZbTpCY<6&;8-E6nq3BCZB((82(XPgGj7N{<@882) zv+3>A&xjt+FeW0RhVhZx5z{nOX@0(=3&lA#2Fzj!(?eNV=mNJGY^AWewra6E)+nLK1q0T!y#f5<10_SDRJX`7-2O+ zo9XVK^nv{g2FuvyXLGpVuA3tdJ3VsTMqMW z=k$TEa@@x6V{t=bK1Zy;BwlVck% zqJXyyTPO~7y@hr7qEDShP7eRJSdusTuOZdlb+Ku0+qZL?t5n|!*)qXOe9+sKi zvnZMqpFe10vci(uEnKM_ofvQGRNJ%jERmW*JW&#m5>R)eS@*p}^=iAf=_C{P{>Jt) zyOQ;ScOrAefp`x0^{GQkJBlEH%H^{|W&}x*- z5zI0_0$YlE`ESWK=Ukx9Z#6U?&jKydXNm;GEYcI+*L-V|r!Gt?tZM)(C{f!nfPsZN zXe>VZR{|KOyfy0ifBEUoGaenmni*@bx%pxNpZOYCy8lhDg`sSOb z#y6h=c@D65_eTQjqIkBYw->I-hE8;)m&uSx%LFJ9Ba#X$2Xbp|8kfb2qv#wpS%<|6 z{FipkRImJn$;a6W)880syNA?Ue+HYYk42TpFa0MR^6mrEux^P4syJ)e)cr0@PIUQ5 zt+WS6vx&BvRgC|Uo}Rlzg^j{XfpP+73Nf-x&h0I!CU!SmC`*{cumAZ@#irn5zG+JJ zveN}vp6QZQ8H#+M9B{)YAKB?)8={wbDpX3;7`(6ugp8S>JUNsW%=sOV{XrcOxwcDy zQ{v}({rWdInpy1YhslXA^`6?gQL8vtK_$t2%X&O%c7!B~;P4bvyWN91H|1P;$zXaH ziIUJY8S_v;@DFhBkmDw*C|^co5|h6`Zq#cvqG`b!oD2BkV~hvaL42pJs9SZS1V(;S zyJzoVJr`Nki_HJx;ew&gsC*#gc2zLlG#?X}#^novL;g;k#IXc~b?zj)Eo5aM*V&^N zO=Je+N0K?TreTD84lJZvS$jhGV)OpNK#Pe}EcL@lsUfx2_UCTvOa4UiqIo%`|06^C zBuL7d#wcpM&SmIjiHpFCe4E48b4PtC0hz>Ch2oVD;7T~M zn%fiX$xL1+wp=(+sHl2|_`n z8H+qe*Ch8Y*=+uKfBfPxS499CR^lzigx;B7s4rWKnjL-qmag*I+yX!AYez9N1yd!~ zgKCR6fj>=Qi_<3$c>T2hP;}eW-!fs`hS?l*i>3r1sjkO!OF94Duz!PV+BuAx$|tm6}QGGG;2 z&}FvAPRmA?gA?mXIOKFVOyN4SYf}r%Q(m-8X}+@L12Prw=q*%06Kb!!9ZY=IfyGym zz%bhH>xp1Ef;qH(m}mT~vxtW2kG}2LnOo}%D0#7t*HWV;7EYA>9KngwXImjco)8D9 zJoVKikZp#k3snZ0-Ac1DS@!Nb!Q9Hs;mFTL4BU2=2*{&`as6J=VM;_w@o7SVuJ)~Z z(c#;cDYCOyBMMyQ+@tLfCW7XvPAFpi;sV-RWUtsur`NUv5=0qj{$ZqQ~h3f z7;DCd2*|@CdEy0oK4;1(z*e7M-tm>p&Z3EYlvhenAr~E+_L_ZaH{Hc%UL@>xu;a?l zyq;QGv@Xhq`q~<)e?mH^YEC!F`;nV_ejdR21q|qpFZ;8SVgcSXTm7KyXMfF%eU@+O zso{CJE_XbUdF?a*(UU(jCm0RSWUrtxI|8E@!?5&9by>n$Jch!uaZ0zKbG+$EB?UMN zFwRZR@vp~sxNHxeSjjaqE(UikuY<=z(6ZDY?$UR)2-9?iaqvtEm(DS`hZJ%pOYIZw zw#nHqp<1lU0(CS!0$s3TWYAuJMtu1ujZH4RH$q zrwX9Us{^su{*e5wowR2Wk`a|6B=KID05P|$2{Yb@=``ebi~d@Fts%ASt?`%VVcX*D zw(0@lBr><-8V$jbNt!kc@$EtOeW?7p%U<|wNZzwr7)-7ZX-?T0aEWZD3|D@|sw+WVuyxj99MWXiqy#Bb0uihor zLz+mg5@U}GB8h(I{n=nh>5XSE1Rh#|^jndg6Zlt0e+`4wDHzP34!hTe(f$ zf#zpGwvqkyk7+Dbhf8?F5Mln>{VaEtUTdP7#(04Q`_>Q zBitvV<&2f&4e*T?`8UHgU-CU_r#+|lg7!^olMaN#35AT zt*-)6(iQhfyjJJc2h~GYeCc0|`@7q#Li!jm#phGSsOVgon&Eby=S*guz->BC$?dwX zSb_QTjS#FyO8DS0&%=n72rj~+Gvg=|)Y03)zq!5*)h;CRS!A98kz#1_1^k5lg>%u} zhT$iMA&Bl12&C6r-(o^up>uEqgw=!+DsH9a0HLU6JwrFBD5Sg%aOulSfOP+fdmS*kLfY>kBt_kAukVMI`o98$ushg#B z#b{+fiuwFLo1kOE;GNP6C!u9y=XKBB^DNWF=g(_%_Nkxllw3?)j%Ro(HqL6EEldt$ z?2v(nQznZ=7o<7jo_TplBp|&HS=ukM=JJd{1G@W&f zj`eO2jI!3=CwuB#k*l4w4k(AD_yWi_jC~BM#zzH&^!3$s0wPV`=<~jo{ughG^6UTM zO$~Q%<@kqC!0`+^)lCwNObwA2VOC!slIE^7cY9H)Kw_e(k^Tr|o^96O_F;eo(4Gad zXjpAm)h@d}x|o3ez-}9r5z`Po$skMxb08`9^}oXrrz)jHbb?~j2qd3#X!W6?>4lim z)S!{DYIz6<@d!3hir%ZP#!G#9sxUSz>-rn$6LRT$3-D2bbsb%?GmT8ktxj!6eN5nH z3A^6@{UrKan^RWNtz2_W7Ba5tD#^lD@aN5L96&836wq}cI|X-+WC}%}wO{mX$NgQz z+9uUM!xUnF(|b>@>|$2*q$8;GxCwtBHNSR9{#y|00{!q*wgsB-tDz=WDTdhya0NFk z9r{Kh_Qwy8=fQ6unE!?tLx8u*i0JZ{j-SEYT?f>x3}{`@0Sv!EaMeFcmC#AYdP!EU z{hyOOx}ngn#w*TIE6XYAi4?*&MlgrXqF~1LwkVoP4F^XN19wt`vX|MbNGaHMUw`x{ z5WIaKPfT49f{M*M8b#4j#*QDnzyJEHtOiYrLqq?6wz7F2Z%j0g);k8wKE;b!A!Apj|%&hQX{j0wUOz8nQI zD5qGrnIt?3`PjTpqFCyJ0o1jl_zz-t!1Kn~TJ;LSQYBCjeW<$(ICigl5^=4v@WPSV z@-#ZoGM`L=UwaDAN2j4^YcRJBF&(Sl)S{t)IYbjcmD{Ytyt;X4u)HLZ<=GY9<@f@| zrSWLuQRyp|t{{8wbs}9GaOaG*Q>d_=ivWgc4(Bzvwrs&~9!J_^2%l+=iGoQ0-y3-< zzT4xW*f+amW7aM&`n2k5(EWI8!3Hx6+TZ^+0U{a$k%PZ-54LA5mtr!+dWo{Wef~&D zxl#Vul+1yz@OMQ&hE;jrA(&a%A+c_MWfYbYFz9Jq8m2^Jm(o@3O z2Mc8j_{uQko=m;Hz?eDQng2c}lKGHDUu~oLGA=ZHL~%hQ5{6vmf?C;x<8K8=!WjeE zQBTTCman!Y)c_w%cP3)=UzfFGNJy1|O7y(N7wy>ETJ&Hk4z9uhGrhsq9^#xXM+>7@ zsRIY2+irZ6Fp-fb9%E^Iv2UYU6}?G>^Z0s{u&??YR}cGgN*1MfdH3mQAu7{JH}C5X ziiGe9*yi8p?w=?kxB6L9EYI;pR+{@E>1ibzy=Y^Ota^%g1_)Mm{lJ^Cs+1x3ZyRN zP7-`qWwkz3PJYf*e9HoLqO=$ck`x*yi zy9E0HPA9~X6mB^ymsOr=VQuas!nYUo#-qP1ZzX|DLMS|uuSJc!KPN0htSMI81rUM7 z@c2*AtuBGx@c3_NhdeDRL0sTbXzM0vlEOVyGXuS6306QMp#aDP=5-e-sJ)2+6mv2x zPafeBCBT*IUd7n${6Mzlep5k!TE>sjW=GgeU%llO6-NC(ca1g8D+dyI6IQ;Ke6pds z#2|qjETyEh;RT~xBb}}ST^*~F_Q~`97FVUD^kM#ikxZSGgiVP)C2X_rz9zox-P0va zpr2EW-G-IUS?`3{cBi1;c}Y&h-ccH^pPB+b_-(2??X+maQK;Q3BCF@kUT90!?&QBx z5_!xMJu|;O|l_7^5x2f?WoJX&&+6 z8k*Ysc$2Q)j^5$49lZ*4-@%3<;;v98cxhh0ZUr0#$0i|yZKA(ahCV@Gkm!zU3GC2f zd?dbVviPGSZ$)oZXSP5D>S6zl&GaD-l&1gwgMaurZ`R?$3z>k+uqpB-S@IZ2GS_C+ zwzqmLzK_+o>cWYej6>Fk#+EC#HxkJ#mt=oPZk6?npu|Lym|Nz8`mnF{I<%g>JNjM9 zhF@}mS{%5Cf#%IersDXihSYu(h%1jdGakmj4e_&99{S)51>Nsp5K^e&1yU8*=VK-? z8%PWf$wS6CW?llYrf+{i4RY9uO=aPW6jo_lMz_Z=w)d_}sQ~HRSdey(Nq0zT!P3K; zk+#X5IusbWW2A%m)u(pL8KmMQ6u|gNxyw(2Vq|{o36dJa|w7I_6&B|Av10}zu+vEBL;l#?L z5pg3wa(4l|=!Mnwf*XMG1Aa&po9}V-y4>hX{__j{mT3S%4I4P%MfQ#Dyp5TuW14e+zWfh|hF>yu z4)2Q12eTK@CQRZ1_GXOQ@aFTz#}RR`aJ$c8BhX~E6PF`ujP(w~VPnvuWgj=>jZUdJ z@J2Y+(V4|DN+oi=ykVaD0tD-g-wd#2t4LiL6*-?$l&4(acz>oMxe!*14#Z}z=!@%? zB1SSpa&ch8eBzE@>8?+{B&;IT#jCET7W%7hqleLU<6Yx^mggHE>Bq#sbu!_O`q%LI zf{K879{`hTXF;H3Qt8_`oZI{ge;N;T*OG6XBI4!A-i^8C@RA9d-bkxn`qYTetQl4k zvT9MLi$Ek^zK*3O)Vpi-CuE02d-;8kGOURkjcpeN%moe^ju3XwZRBp8)S&xJ}|3?s)km_`qD; zu$!1;$alxJd4jdBJ{)dE9wT~dODKps*z2?$Xlldv=kvD@#-BSHRt`#kAjTaGG}0H$ z49$~gQ`G4{1)+RtTdKhu3-zd9o|%j76YVU=FE~}mXe915vi`j)h`_LcahLuKYxAGi zes2-A!^T9E>u4XCwNH^RHP#^tb9Ix)_1~(?lr{_sUr+bp88BSQ3iKbIFe5o#@{!l9S5wI60~7V~IsBk2=XJsqdC&)4eFSeq6Le-PJ90=M8>aR1*>S_rh`2 z1tRYXUKF-Xf!wIo@b^}2tz=Yu|9!A7n$BPnDOzaNciVf?GHWWw-5WP z8R?Xj2NNODC2kYSP&gSEd$rRxApZ91nr%d~%RZ84n$dWHv&m-DT=-6z$S2Fr$MM1T zkgeVl*stv3be9L}e>)A;{#mK{)NxxOW^UeQ=Y*nlS7Am;xBtdh0t;34XS z5J!uK0JbOLNy2D2sbH~uO<7pSwZlWXuzW z+-~N^23U8f4vuK0O7N&L@ck3=+wa@%T)cj#-T7ieJZS#hD+5IuuuBQ^mq~(0J)p;g z(=Bm0O{EY?8+U<(oa4JT`t&`MQ8bc%AXT-MZ5OwIlpaHs;i#>tt*!lCd&!k}r>RpE zKX+9_9M?pM^9`F!56rja-_rX~zsm;(}0k z&oJEj`|pDyrcIa&K|mb2Y`_8E2z9@06afc+y?p1lyy`Z4pxP{#fEl4}2C6G{ZOw@l zWJOrinq`GAy{VWF0{wk!a#36MJ!!fhT66k?W|D6CMQp=GJw=O|(IhT{?NtSyp!0B} zhrrwz(ua=mx&CgwW-7@qD^WZNZcB z{DXt`KEyrus|M;`j>7a^)mjI3lMgVo@X^c@E4~>Vs07i!uAErlH#(&Ro+pJ@YOet? zAh{^S(x=w!s_aq6D%Uv!tM!K_pDIJYv^u#{dApix@=-?f=AC?Fnz2rKZJ|~2t@?h; zs^b%(EAROusrC`rDE~QGOp!>$Y7%SrY(JbE!GD9DWPRxVX||N=J8Zx&8zO@m;y}!kTp=qXA2QV5f32Ob z&^z7yQa$7U?G+(q--BRvc6EQm6!0?nu}p8|TBC6e$w>R@#)I@&U;B@{7~zg|-hps1nBuCbcJjhGsswqJv0&w)J ztT}TIJ8D2B9gcRS?^NfdeJcyWpjHNf_%IST1;`4S)4x%)TXSgHC${IhwaLSue*S0D7N{aKFxlp(YPjhBV+FRyR01rk{LXlT{R%Ol4& zEt+LamZw01%hYX;SI4*ls4gBiW1K8bL%aJ_=N!}>Yd&?41ex@lIzi8{!3r6(lF zRyT5Q0(f$ASM@!tu|d~bGYro=wRtF=%o!}q=jm4TPbxAH&nkaI2~OE`#6hrB+Tu9D z=C}&JG6QtcC298?2C%)0wNtaMMI}u!DrGt9X`H_kR1dzEBq1F0Z)?-7E!x6coK5TX zD`fKJ4^V~-c)9oFWe*oYR4+M{KEkn1w>-UnZSldE*YxTV44j>gTF}6R#8BdjpV^x> z89H_36QQF@cBwG*ls-PGC|i~U6*MjL+mg%UyIf!E(_^v8gKZxppDW;8Fsp1tAnL+R z^A%)KO{!`Y)-c^}S6gvLDN5r?+ETYzC)SYq0 z2|LYGIfant(WV;2VLgRc{*@%9kT8=tmtCgFVY*~S@`xW$C+OT~SZDWCjlqNdSd{I> zCf@#$_GuB0Y;*&yj>QqTMX25h556>5vU3-?3y?@R#&V709D>No@H<0)C%47)fDoO( zk%lrxl#)$XEw|t>M^lI{A%@0J4K<58Xy!w-gnPSSH>h|J|9ASq##|51fHX>QoSR0C zCyc}eXY_Ly160m7tp72a68!H+y<~yh)*0mbETZWIN0%{p^|=f?VM(GQaa|oj zQ}w$v6`UU|{QPsz%T5B7P&c}AB*PO0B}N|kbP|n1f?!5wCnUuM3ZB%V@Rr| zi|4cdUgu7Q-<#@VdPX{Tl7~ty-c~IN!=mFZ(A*&oIo>II3PIYGNIF7@BrwF}=f6H& z2ouLIo^Pi_2dwXsprhuUG6L{O&E8dat+$nX_8ubpS3gbJJMm-0Zu7$}R$^`0mZep& zL74bKXZ6OLvKh>s6DMUD-G(PfYBn}6YDtNihurJO_J}o9m;z?iQ9gf}NGhpfV99`= zRG77z9P>pZ^j*!!o1*iy6Cnh8^lc?Dw?=P7Y=lrXje67djO;JX$LrNj7Zt^z8UGo9+sj+AJl5k)FcYOTnRpwF@-TA!d!c#EG z?(kw|2au{2!;@inMo|s+xU-#WV=38Z;{RoIVGI@wt^A^+}_S zySR})0N%D2=}MzW8W(<#GT-48UyD-)ssFrKEJDm$M17C`?VC?LDL|a6f&VJ#}T&=GQn)EFSvV4@~C)A3KjiIZVNSy2Pr$zh6 zSVvSbdN=oERIc*?%r#G;vgKS+zAQZCRm!Ut&q8lAttWu3yIeQKK1UOqaRakG9Osc;-N84`uym%ZZfKwRJK z9U|e+-0r3yRB3C==Y==G{9}oW4PN3Kd5H`qqT{NpR!Ma0kSrvA!CoL= zppktu1d=K2VG!B!FvW<`fMdmT^~zHC&Q5&eK}mVJ*o%F87&=9jA&mFrBgl6QdT$3D zEEp*~xoBVwT5cfnY%H@f-Dy7aL*~qfz~>G&QI8V8xPAN}C}qrqeTS{C^(3)5p_c*W z5?|cLV*mKQI>Iy!MG1jL^sY7Wz6rD@@Lh$U*`vwC=M_HtB23Tryu=2oShJ<}0>ffH zJ~zcuipxB9g%&fPYs$;ok;@!j)suDiV$mB zJ~28olptE89#4a>s^r9n9nmrERpY#!GItfnj*|B&0=KeHhbHr3%ccpS7IBYTTN68P z8H&q&#(mO<3@9CVEq>OWE11-V%MX6AoXq^=sn0`_?M`rl=n<`gysX^aFy93Swi5}D zGzNZc$t0w~%9^5R9wz-~@q0Lq{4JXR6v)tL=4y%l2oJVSd5K*y1xFHcSL)j~6?Sjx zNqP;IIb>Obc`t^pnqC(~T*6lcB*Pcs&3nmfKscB?TWj;+%$#@{?W+P{K@lT$Dkb)L z?^WF7$lU}RHTt{E-bK9XB6L!~yR!5_2`xWQI6;y?V>?H-1nwF~pWL?H3hP+tlD!%P ztqEuw`ZWLZ_s_ywKRLrXLh$?3B?amNwckrwBU?=b86uPw$ice16O|km_ZXUB+>Jwu z_#6jIL?BrfZ%k-1j9^Z0g!z8E_?_x`sXPJ(<)T`N7^^{5r1Cuj4}w{(zRPiW>4om` zUaolQO9)&aRHr*AjUC7D(V3}aWiJWVBG|AD3e2!Mu`1y?Y(>^AX%d^qxQTz8#HtU! zb7nz>WiL_TcM$x2al(3FthPOZwtRgGP9bARyXUKBok^@j}gUkywiIO##TR}?f=2nI|s+sb?x4< zZQHi7W82=bZQHhOJK3>q@7T7Te7W!UJ5QZD@6+9@de*AdfAyT#8soRd9M@b|b~`wQ zD4abOa;!WKg2ye<8Re`}f zTl?F}TG#(`j-mfmv?vRg(5)^o2!frp6Rs~X?{~M~dmMHr+*JA+NME3JTHy^xo|_Lg z1iX2`P25MQo`4$|M1SL1b+h|kvbfpyAb73o;yk;5r8%5g|PGG@Y%P>7f5kFM@?zY=j+e*qn5)cy61CnU z#R9Xa&Jq!8d>07BQ6l2SbTxbzYv4=PxiW|&1c6#i_Anm!&?=*YolftT<*a1KXpf@0 zfU~F;plg<<9Q|=G-~Ahw!7u}u+fnw2Yj>r1X9{ZYjlR($xLJL!CUTcpDMn%kc7w2n zVhEz&L7R>ks}>hI4n-FbTfp+dn2Z5IoB@mZpF1~6aWel zhRjkp9*oY{FS;xzLlwq>4OiV;hYHIBI>2Y~CaSXv6BcZg-7F#~Ylw)aDD^q7FGXfL zaq%UxM+NBf;>R;!bOJ;H!CQ}O|3(@1f|(&IVzB!?aINou86+-30xLWZi>sA+?821Q z9d4Wt5WG>gcO5@sFhW+TKvzbd<*H*@)=wf*1I&xcz?rwIuhiOsBStl-rZ)}^dKy`w z@66(;lI~A`0E)~?;1VWi2ZXl}sQ|$aS$2+*Jls#$C~*F24bA;JP&+zZa#ho5{kkid z6O)}i_H~hH91xdg#!KAWX(O?C-5F1!s-C&*h(teK9lGk|?n~EMeC$ZQ9KM63G$WsH z{tE{OGdYNtYx}g?ImOY<+uOP;k>)FfM#uRyTVK` z>4;z@S)dXDA@G^BqUj*gosij9832cv%had7chXT8t7Q;xULGx6U=Sdro1+5vFv08i z>c~9wI93!#tQQPHt~%D=jZG)xP*np8e3uQ32pFT0i4b$WWiG>Whbn!I+DjDHt3{sW z1v*p;Uo?gn2f$pqf9U^`g6M|#dAL4ZO4-K$fdP3y zajAGO^bMf6lQ2_0IT`K5yo?7~+}(gEe=OTbtAYuO6}rup@Oc$*W0YJC)yH5|%ie^Y zh5XG>2mA}H5bsl-k@8V{x^K?7L#9oQxr30(q?fWN!rxyj4=*o}neQDAuVX*PcW`rnWf^F?B~d(wR1mB~;y z`&3!ykR}GYMF@{Ma5~2*sC}Guqnf(iIO(m8ag0Vrf`RP}=8BYKg-KklwBRKDG13rs zjGu5n<`oR!NO+{whIC$ZtT-m@-NnSHH|i2IdFFCRdV8`IPC;zrId0u98LX)_%*EBUi87-8Lldxd$)j;vfWk4R7Ae_G;yDShxUrw}n zm-w+AcTH&A)EkFfkrL$}2f34t@r2@W*o4#ruy|C{b9ceoB9N{pd!?Oce1m$yBUSG|JMPE=FfL3#GzfA4tHXL2+zNAi{@k(dpd6tPn(64 z#w{l7zGNaA2{P8q@PFwx7h5i}=RRqWlPXV2c@RX!hO8{w(HNG2oR(r?bfOhTNXs>m zmG!zr+k#U#{g!wb<^oAHk$c*lkZtZ?K= z(Dzw9#T%uM8u61y0-}7hGYEqadkM6qREb)!gOkG>jn_8VQm-%q9)hQeFDqWe8mRK* zE6?weWXal#hMwjLQ1zeZTcR6J$qF0;D=XU}va{v(jvbhgl(OUMB)M4Uq>yF_j0E-< zVP6DQAUDcV-^+iKtMAG|^{6}v7;KK@HkE3Z65q@$Ebu#&g@Kdz z6a1`K79w;svMe+@!R6bZXdPG#(Jek&{ULZQ)0+`9d-Rx)VU_F~9I7^pT5X=1K0Pd! z`3l(tHjfx+#|LBD7h;-ER}ZTfd~^yw?$2SPo4ThGM%Ie2yy zeQ9F&%ebr885BLe9bU+ek*;16++AqJ9$k#G?rSNvy-E;lEVG!Vambi3!=!*OP)dD% z9<_@Qh|mh7Lp4m*r8;;E8j=`0z&Z35m+g|UWM}_yvO59?MwlK810`h7AznaXot!T#UDv_a2M2FA^qq3BY%yPT8&~LHyXTIm*MB1gt&vz`8V2DkD&c_PN%qqmkC94+kSh`@o9o9nVQ4HHS~wM!NBCf{7) z2CN5OaTfA(ts{AlEXGVubDYOjcy2;-IiZ_(Bht$P$2q$`o8wumGb@E4tdgun&MZYT z6F)>{?h@*cg$151s|x}e)*e0k%id)q!He{QZKM&jlAQpOESUq;$87{7_HP!48n;f7 zgQgJ4#CNMV_Mk9KGi(?XstiIn^*|Y|aeM}g1;ws*Hp0yB0TV@R&r^Ry2ym2$13wxeZE}gde038et z`W7I-Qd})bVco?JH>PQ+4Vvd*y?V8jmf7~Ju3!%~t3&dBJ*&e6mz%Z@eZr~lgy`gb zY61QXf&GSRC*_-=+?f`mn1RT}mstV|f6MQ%+srMxR0leZIT((6dP8dVIB`F%x`D*`1Zd-!*m@SkmK0CL@ z9I6}tSiv?%OF?dXjiS0askH%wJDjGDMB$1yGMHw9_axZiQUpUoc`#Yj*0sTw6YIwZ&{th?_dT^)K< zQFy}$DWHe83GYr^a3;i$J4R$hbSpc1h95kh+FuNh!Db>I+v@dB-#%YSG-S8hI&K-z z3Kme0EEFLSH;1F~>VpCHJ1GtHRO*o+ zvDlbLgWwN>`AL+==8(d))rGlx5*eO5VW(v(XUNG~ zjF>pwrJJbTKC(Yg9DbbLF=20#!`E*Cp*`D}MuxgkcGF$aInsKiX%qEr913O04o#T$ z+h=Z()?nBb7Apf4w`FekTx(IwgqPE`;Gv(w$xJm53R~_iEP08fyfnF5F31(|lg!*j zB8W7$E?=w;<=%5sw(q&WT2hWR58IHP@*qLmQ3AiNYHE|hvpWPu5P}zPh8GikrP1EY zX>#SpUyeh8Zh7Vcee(kHcwKV^^&J0#5&30xBJ?ftr3te*B5fhY19@aVrxI5+c0hWdnlngK0g*`iG{G1v9sMvd{Ia+3Hp zbrzB!N(t~vt3<}q{dVqhOYjZFgykX(t-p}hN#py|S7+inVKtDHA0i$KD@k}?E{eVhhU}L&%6BC>RfWbUU1%|aP0CmHM}~9;n>8I;?D)+nrA5;RF)sZzKZT`gSDY{X zS{Zwr&8&rtg_52%bC06!gDbC3GpbtSti>Cp$@-G?X4*BE*J^GO+O!ta@jGgMS+_ZV zY#uu_I=R$qiw9^D^tZe%Ck?;!ysvH5wZTpMO5#GxoqR2Ash6u#O55l{@qF>PnO^bc z4<9Sbx-xEvTdk!E=G4(m8*d8?h>o)e1AeH1!Uf5$(b~Q zq$E^4BsY<45VWeqB9an_K&nf#EvgcM=b6AgbmPk{B6dD9$lfe*{aN2T0a%B_hU`$l zwzP0@3@04XOPbRn-m7ze)NdcpT_5trC_|$|@q#P2WtsY8_8X6gqQO|8Skvr8VlB_3 zt*H^c%M;th!&_X*dcM-n;!AYV(r)L8mDkJ;^KLCdr-W@YCEM3$w~Nv&>b52a`JW|M zgT8o+7DkK>yd@J$O}g@_#0oya_?ra~!3+RJlK*hKa5^iESvQE66dG9TtzUjnXj2Q+ z5SX>R=-RlB!^!Mfotl_ycVQl_9C$a=uf0tuv{Y$7&D&S#t<{rqA!@5`xqeRN-oAgo zkgh~!l?oDoqW?T4!Acu+vPA!4g)wRDYISw9;8v?q()kr}x)pxGdF z?k%2FzIv_PXL9~>PK0PAjpZ}2OxU8?8*0oTPq?jdrol5&tnp<-wS!mbsRLnmg<{j~ zl$I}1)(hZAAxRaHnlE<~uPZK>7vpmnMyA(;Qlk6ZN#C(6nIM78FuJU~AFg%qzZm^? z+M=0jo}pl8mG)@Uo+SVqa_mgYSoPa0Rhc41ki@wg`0KYcrN#uX4*pt^ryycNmdJEK z12oDCN$0yzzb%VPK;Yz6idY(9eI&Ru7Prk_U}GKlY|?p_SbhU&Y`D6;;=uT>T=wU! z%7gxz{q|ASrmm_*x5X++EzIMy)g?xZ@lWP(0psWczpcPr==WFc_lno5zVRJlWc1mB zAbXhhs0>hvoGjuxX9>liUw()_L3|y0GBNlNW62<_B%#$2hwndlaX>=QVkwi}+o++-Z>qfH_ep&P- zwF^!O2{VDT>|*DaSyQkOFgFbGpAedTa2~rej?v9T!OxhvB7)Ms$GZ?)!fGLD#C0}X z0_|3e6uaans3R}t{mys3Swd$WdcS*CCqv5Zn)5WUeAs+1=Ow@f-m||sL}tb3we8Fr zf4pF2HV{O$sbAb|e(okqvX4^RZ?S0rYNA;zqJQ>9VG6kr1_=M?-af5rF8py+k=omM zqkylsi0aO*Xl!vs(qCfzoe}DDfY7emocwNJtPM`jL9y`aA?;YwLy^OSoa1#BG|M(t z;i;6fR&H2>4|tVnbcrXrhun<$Yz2lD&ERN_m5vg~5nvU5*-yYQuEHH&G#)dp2JVcrE-(sSIES5>jUMZ;@|TObGCY)LrjQ4N$1)|EcRDc` zQ5O~x;n5#4;3nRkiZCA*QLSFi9zz6{95;AUXpoM*1gtlsSk|uQ&i(3Q9ojp^@#*U8 zY_~6B+nbu4d)uhtKF;u6blp+RWR;{4ZHGcwUc@{%z-Ih!WQ2W>O^1hlqU?z2UC7+d zK@cY$-`hvK41nn0pqc@mZDxsBzTv81;DdORIb$rwJ;Y!G1_TLqCuv#jc{UKTabZfQ zp%2!Nxh6ahs#QK_Dy?$@GP5TD-x{uB zGBEXN=eT&;LG$RAkw&kXO#`O6&1O+m=+C%29UCMz2Pa+`f6Nze843qh`y(I>~M>Z%Df2O~FgF__Xm(L~cMrT=^U`qabCy zu!6{%A47LyY5qY8)36xG`vdple_W`zg@;L;!Dtxiy1WYwB1YIo`jZ*>H~`|0-)Fho zpa;XoeuF%Yzf z5P+`S5N%VR_R$)@Xlk_8dy5DX4F3$1?LD&ae<(-k2Rd7oWll2;>rAI*(h2dJufk>G zu!*v04y1s1wNs@MWt9Vb<_N#}6=H(| zHJ!a%i%fg&lJMbdERdKC4o!&cI1DL`>C0y_@$j^Yo}D6{sUF-3gF*H-|aw1aUO}KnGI8Vvc?%;~|R0XJkvZY@W#D14^y&}v}J77cMNB(FRecxWB= zImjoi%Cx&MoKRGqV9% zT9wY|fr5&b6-Bh7O;`^{3lAw!AeRRt6R$E9KcN1qsDX;Xs7L)$C?$B}PvlLgRNSdM zunDIzE2W}C1EpbKFVpe#am7xC7b^$aXUY756iXY*hka)Kh~5V8-D3*W&;%vb)V*)G zOY5)2cwIV98r<26ukyb#ECm<^INCXMB~0PUmjq2eW0oa_KB`Luy z*aZv>8+@^fkaRe7eFd&UO!}6#RY8fZKi#@L_xo|Hm94Vet({jjJ%c|Gy3|=V#Xhcm z&Q&xlNrH4q!83$yj$SaF(x#uvd*{mIu`w6N&|5$f<^G@NgMI)8wQZgbUM76gCW)DD z^?T&sHvLF@NrlZG#v`WYp!_Wc7S2N_W-;@##88Ij@>VK-QBd7feqv;wsBr{MQ?e*< z6#>R6yOPjqsZkif0=+M{up->flTRArQL`TK#7{q!DY}TLf6kZFL$uksv4ThY5HPZ} z@dL7Jm|LVdunXUHs{{mj;N1gFr;sAkXzI7h+m6SJW;jTEjIgsIa8v75^6C$!f|&cY zkM{bcE7#kr(sX4!qJ?b4;;m5_xZ`vuR+)dta3B)E@ukY@C2Lp#2uZ)HJsU>B{yP-c~>pe@CYQ^97&6o z*~bqtV1FNUg&+?GpyvQwNDr+|bHXbAE2_YeHuQDgMiIr0!OY}lXr6>2je8bs62BL^ zGeq$K^IBuNZj!9Im2fgW2cvBUKdkbSx8S+?y3yV;eH6LMbFLH+Lyz95?itpLn^J3Kb-Q%5_HB{hqvCLd>j+|4jXpyM!d-kc|$ zhnk>Wfu~w@@`E~^%5TbzM;CYS7?AMIPj7FzoPh$;lKgr(WL&97@jDRhJg4-Cyl<~1 z@e`FIY7rU~T!}&yvNfS{M21O0fxy%6aS>+!v`k`zY@T0F=5BOc8<;Mtlk&*XfoH~U zNKuAFW_??ho75nM#6-jtj%_!S(THJK)0h6eQR7U+^(oR=voi24UMiDSS6rAFKM{;$ zj9<(`hZ>GjT5f$p1vS0VAeW%WL3Q)b=hKj8i4@`U_>jRy7qf00BeuebIa-e}&o7Wl zhJN3gv#0VdLE;@HaV$DsNL=tlNwaINZ2_WaYk#a|A~N_!znUA3q_j8i;2I8Wa;7hK z+zA$@)snj1XC%85y<0&ym*t-MIqxiKCU+?=7p8gOyJvu&&;w#&wIn^jn_LxSJ;W!l z$Io4TJ_)0e@T^DZ^>2H!&Y3FQmR4ly=`p=6HX#6RAOyAo>##s8`~(lwDz)goPrmRG zP(h{JUveX)NQE@Byl|$+$`#A%R=?IXM;F%oq4I)PY{=k!iD{%^GOtMCm?0{kow>hj3=HS3&I`- zK;Zf7K51i%tkAeDSB1DYA%nz2_|vlxYOLlTOtWfDCmmj+nqM1ZTBwJXqU^{>FN4~h zWe1mnlq$EcFYmRXl22 z-4-;`lhf>T$jaU|oqBiR015Jl4u8*yN|z6r8dZNxTfbCv0(Elp==u76SyIX15mhTT z(kZm$NYkKz_4d@Fn@GxQt)uyrd=5Xs^i?FRU{!1Bb$4&(H9JZ3w(KJxWlxivJ<$oT zI5FHv&!+`VZEPSKC)1!#fD>_05!`n&<&~T^ZD!O3&@S$ItF+fw4gh|;18(=46M_?P zFof?x@1S-F!F#gEU@-A_4q6w;SOy2){G36`luasn|C{c#jqQShB7|@laDX#ZuoOQk&NXXX+tX|y81omNSdsn_Gm<(|M7su2rK7+QbH zt((S|SNCYjHfbZcln(+CDhoyUa4tym+uUA!7LJVH8^xEJoN`mcn@)^4;Reko_bY2U zOZ6&GccMojUV3bbZ_)nYC%Ca~1^V5!2=*h{inT_yg!MtC^^w|H^jA%2P0O~$mxc^a z@bf&f=PFvGehyUE82MRnlD2uHVSaH5>1pzKm-H@AQKD&fU&$?++Sa+EXDyYFrpaoN zhhC%Ro`8+7%zXS^Km8!Qaf!yORyrOfwab|B^y-Iw&heQ#ya6G($1mHAt*L~`h}=C> z>TaEgM=h((@Q~7F9*v?#d(_PoOj33MdI#V|8uQo!1ozo$bot*HTvg3}KgsTs)OG#RTxwhGSsC`^B-6A#)4TBC=eS(rpE!-?md<}Ir<5WCefg)PhP4-U8FIQ>*@U1Fpb#-qd}op)%anS-6P74U>m-du3rQ7Up>kUGGXh& zDX-m*eB|lsgW5K``z3%0aM89@Z5w8EPQT2pl=r=iK+Wa62dF6wb}4!zygcLr`KGw>m86U zY&-t84sP2gC6cj=*BH;@miQOR&SsH^>Daj0KgCF4>NA9;;dmofAYKIyr74?(7$W&*iMB^x=x>bdotZ`Pqx9R2Y6;*$)@M$ z(AHm?A`^F-pF9M7-Km7{_Txhu5A%PDqke~ou_-rOPha>vIXzu@?l#X<@tZ`Bz4&%j zb{L`ae|;>tistz&#%M=?@!w+{Y7o#DbR#a#BZ9FDCI!?%vWMx|AV-`zo5oU^^Xgus z-IhANexMOAgKXj=3k!O9tvH6-zlybYe#=T-Uu37`uHjD9HpeUulk$I@8vg8)zX6>@ ztkfX(JLrSg6U7VH4e_oBtJNfdK`4orro@^gSdU6* z>5*UpOb+$mS3rOndfiSVSObBl7KByHcPQpo6|5|`^vLX{kHK(k+jp=+n&b3ZRW9vT zlgK9F*4xN(5jYj*7x-^HTyGpJQww};Ch^Wu zm#n_50cXcHVmi!0f&&bgZtQ5gu{b$m*~RYFy!1J`xb)lKBzIQ)Ng%M=z}TZky=5Z= z%{ozXdpib9$WLFJQwMWpU(~?blg4v9KTQHo8Zn1={R$AH07en+&3`MK9?FDY)pdlu zObP_ncUS@#IjkBJ9mWYDh)fYD^**`fE$gB3IXxI+<2Q5HQW#GI<$l6@nl|jSAb`y3 z-69s5Eqbn_lRT5zh%@jbh=)Y65SbwjCj0KdzanY3Fvsv}R3MYPfQ*Fmy3lSO>Q=mg z&co&iLZl~K9gDVm>>7kRT~eR$HZM>@RH#;gKmENI&3%C~b`y4<={qP1oI6Chz?g}0 zrnzh>%VIR0f1+Bge!mFTw#Texjg)2NtE@+v%7;uvtdX|x=^9(sW#@QkdF*%s*bme6 z%LyP6B(VI@CL2;e1YgueEj0E>J)k$AiIbYx2`znXtvwfM@GA4e`IV-zSe|{Du*k>U*~E4v&AG$i6TWS2Uim)R`tTt!nE}2dagfNxgRnRWM_A z&V*@JIs>uqR^i@(SCwKdmTRtu>7LsrUAUne5p~TRnlb1yuz4R>GIDuva_Oe|-S@c^ zqbcp%$xXskJQ?3U>=X-lMQGRo$1k=cQ~eB-dp@ZKZ+h{GHr(kch7e`tJfw}H9^htvm7~cyebtI^j9sYHe!>#{3=LXbE(XV3NB;x52O<-v0c{(p9EiOV?QKFn}u}& zOci!NqF?9EEkagdb$v3IZ##Jf?hdmIr;Z9#YZZGrDp({dS;ecY^OC4_qzdBtQQ3lc z7;HJxCUIxlVn|61uV)w+p#H2|59H;IdyT62I9RMwy7(VTM;+%b6oh6x;XqS7tVvdAw$FpUm^M9^^tqb zl=+YPVLgk9U*ME{=)3)}nK-41T(#?=YlWxmZdenKF;=s^gMzV(RB8DQW@B3Q-^z?P z5^dB24W)=Z3vHEjW;+$CiHK`L%xvH3K^61Da2J%uF?-l%IFg}f@P-7gR=^>+Hk*AO zbfe-nhmCwT*P4yO5{+L&7R8aU|G&`566syFK0 zU}p}A);ul$PI1u1OcZ+|$VQn)#n|bi6kz`~6TKYCLLWOMN>LA-V8o7mF8HH8 zADZ=|n79s+VXs|d(3`xt`{`GnV>YU)qXCeb#aj0c{y3^lQ_YR(hG+42^=bTlQ01>g`VhVnW_nx>6=#dy|a zJow(kz@oTp)QSmv;C++l%eWsIFJwtc z7h1~0OyTv&FcE@@;4-9`;3^Gt6=Ja~_V;lKtUv2na?JABFN}cF=B06)e(G;J7uuZC zq2`v!6H968uOCaS@9zWk?Zh=UgfBG~o`ZzY=~s3(%E{kW8BX(Xj@s*{`q1*0T6hv6 z+RU%p9SPC~9B`wL4vErNyH?e%#hce!)lHL!Is&sUb$vs1?E0LiIiA*NlPRK-}<*0%D7G22H2Is4L^6i$~pDUx@(ROUUOz^8uD8QUa0e$MgnHi+V`z}gUpE5<@d+yU zbCJnj)hNXZz7WkmI~+bdElRf92~;r(}+qL)B^v+oTUVOXX{e=9i=gKWiZgJ$vA zzEl0w17p-#15pQW1}4OKvZOO&sd1XJ^a!q?&mYPzgkMXe zR_U}0vSX}g41%A&<=nk$l0F27{q?qGdiop#Byu_FnB(|-3(KODY)NeQ-!H#gxSfuk zpM~l_ICp;z+1a>iZ^bpLqLCoAwQDAF3~vL`ftq&Htlb22V6h!Xy6*_QoMV-({FrUR z7RvyMId^S40`E;PA5E}RH1251Xpn@O?IS9DaFLPxTT5Dv;mceDqSA-_m(ftb{@HMC zeDS$ik;ft(ausoerPO3@XqtQ?>a>r;5LBt&9Mgt`c@IebW2PRP>@JWfBtpy&%X-s|?G6e*1rEIWCa7Q)puOhUa z4m!&~Lc>{t(p>XJuS{T|H8!_7OLG@5()?)Vu;eWsWc7laSpNyUfNcI^y8~1)@O{P) z-f7Da*;>k@vQR{6=fYWE&3+YYjY5TA7HLN)YF;OI{I8m+prT{b^?87nH*%pPX$B$|4SVBakF24paIF!+b5v68>)H|tnU=j z=@@gJl0BlNl1J9?sa_wPC5_1{Fn^C9nIUY-bh-v;g_4{=P1yec_is!LFILm zPTV}WU${hD1*L76*}GVF7Ko`OsB&h;``M$#7d?f|?vpWSOt(?>?xr*Dr=1JgfVW0R_zHVX_W-C}#VG~2DO8tchs zr%f!d4?qfxaemw@_L+5qEmox(_~9!%V;ryM%MFZcDuM?@EwSF+_u2QHVr}i+Gt5o; zlBEIfe^1vj7-dDW?wVuyeIq;!qnZeL$kKNvN3=?A9}gZYE9bQ^gL^YAYm*j7!Wriq zX=IR7kT++PDuU3c7fOj*2Q88nO_BwNQY^V$coQY%OIU+4kh%%6TJ736;AqL6*qyCC zVa}6WF=83{JQ7~`SqCW=#>Huc!`O$yi(C*Llne?8ox8T>f^m-;d%}8dWVCo!rkBG0qT~X31a! zM6bZJnPM}vGZA9K2PfL%`dh))y^tN>A3C9I+|1SbW?X^fu89PNDKW&NgdIYzB#wcD zKq*axvPWWySK%cSorje*A`yFG=7bE2UP|62pF9V<*=O~@ud;U>`yAx>2iQ!3rZI_) z7ez+oyAJP$OPUmegZNlx>I!}~G751j4rPttPmqe^5=4beuwoROebg^9eP75W)oM7_ zHgl5q-o_+m5S_BoF5;vPr$93f3~+iCIv6^Wf!!VjxH!#SxXvwWQl+>@ok|;TGr2=@ z$lMUsO@g0p0EX?6B3}sB z&37&_j~B0qRQ!+nLvJUKxA9DuTj?8Oo;JAhRYDR-MG@7cj|G!4-`D zQD&a8r5AcY~(v!hsJGZ?4L$l4YgvmBvI>5MAy;{{9Ub0 zI=Q>WClxqk5tPMqGpDbWsGXhqP+d&x1ipjw>W)uxuKQ|k5MXLVLQoRMiS)JUsO<3Z zvNoeLHFrq1f)8Bu4J_@h>ws5fGwDw@U3j^8KM19A09-{lHX`PD9R8}K0PLG*WTZxA zeX0Z-L12uy;enFFy7tSNnW2j)M6-Q@Ip`L*TTY20r0?uC5`H;z7ns@~D&zYMrIDiJH@dRSSlL=0|21@ zcqsly(9DeWjf@=_|M{~AQ?zXNI8a8m#WJoDUhPRUp!1W=`jd7QRWdB(C$0u8^rQ{K zSYxbL!9r~LN7~}&=jV6z-3i8SIln)qheGJ}d=DpAk&4TA81HI%4iIv}lJ1#3u^~va=R}IXjI^Y9dR#>kP0U;FxzTmnGy`WlNW>`X;qJ?5ZkC# zsWT8<$(7H*a;{Nb6~lwfU~91qyN9q;9NIYKXh$TxvE8;{d6c%yI!TZc?9{a(lMR7m zEnpGPjzwL5DH#Z*CMh(wYOX|2vWa336-pK^*!@j|04T7YwlKX-v4zysIfHP9Gs0v- z93vy&Kyj-fg7E`g!AuTq|18I%F=-yn{6Y7d68xQ2r^vyscAOA7fw?IHoYZ66st;Yv zTn3~WVU7qnJ&k1M@Y`22k_%Kd+wW<=>}Uv9Qdy5>!=ri1<|Y<@id{t~a)|I}D>61@ zW%R)Alk_3E8RQDyS<#{BF%bkNaLU>ZN3dXbof2;_M3Jbya)--2dDDXTZ!u6+g?unA zVM`O|9z0B{5wr464WoFjwQ9NVY_S%!H4J;upE?8W1y$V!CZ(R+Sf{{t&A6y2k1GD~ zr1KK*G!D^-ZVR_R$6KPq=$@Tv){;g2HhwIcMcc6C!G{0)a3W_A&hGqtBXIMQde7k9nK|vl!xx1{4t^iV z41u&GdTEdR7dAXHWQbx&%A&p1@?}^5>2ISYJU>raheS_7~D=2l8YtE6lvSuMOw)^{&$9d99>5Mc z=f^-ly8Qdc^YlN~jm9=cHa{_j<3B61DoMw&;2(2n*OG7lu`Z+!I%1cm7Va$@SKnV) z1tyYwWRQyApE&?TmfSVf4uHEP$DFoX!0CLQku*OMcv}KwL^}qkv|_SDo5XDH_DnV; zR24B3X?g;UfTzjaz{S-_Q&_rmvBM;oUmP19i_GjYCvIqdu@+g_C6sJ*gT-aLa=3i; zN>)RiJQ=JfNB^NXwn%!j{B`^&ZhhG>q%)=rf(OPELryPuD(rqCQE__ESTj=qhZ`&Q zD1&X=6@U`*h@SiK=2oL9tVwF##^@gtCoEh(axlPKS)!B4 z(^6^YZor|iYS|Pq?=t*}%rpRMz`q(r8}|{>e~Q8^)qkgxg>V=n1i5A8$tu?@#Ic2a zZa@Xh{hr5mN}bHEs@i<994?#YbhDpXs$lI zQ^Suo5=q#7J(X*t&`G6|d6SN>EHPrNnex5~Wb4Dn<~wx&&L zBds7(o~cy_vv2N>^9O4w^GQW%PGTWXsiaTmhu4KvnY7}0Aj^{eXz>u2l4b~8F;Yy* zx^}8NVTU2~H>%y>0rW^7!s(ES#oM^Zae6{`!6YEH*0k#S23I>!e)#HMiO*BQ#Zbp- ztSBK-Z3M7XXgcVsU5eD-guXSx;0&P4uRNt~TUb@+U?#jxY6-#IQL+OAe}jGzXrni& z9*sCr7j&pu6V4E7q!03Fpaz{LvB)Cxu;pyfw5%fECCR1e?JJYaKM)WpnU^J*SMNzXCn{DM1`H22@+d zr<{v5x7iy@rZ8kcHL=pTr3l1jDINNhR;sn)G8sJV*zCE|3Q4Mt#nVTquxYty#)if4 zVpO}Q_YCh$p>ZNg?8k%wTk3McGC3Z~Rt%Zk3u&Y%UJ#~@?D@d1x~AwRGe1jZEj7@! z8c@=TnWB2nx()@9mPi_F7GAhI*x<9F{#2OArS-CE_c7s- z#j`1Q_2upnWkMPccFrRhk;XP#GzCfUi&jqNO*-dB(iBHBd(XY5gI!7;e37NFO{xzq z1GG&5{1taGvrXWy5TW4q1eV%Yr4tihau&Ty3{^UwGcG+tHcscL0qQ6`8QrJK-p5VeP6Dw=RR@<}5agm7<_!RRc9Wq}9qIV}7+PKO*f5J@taKc29U4+7&Ul z1UE44a^QEW^E1lnewV1a$L!lr1>@Yr)E>BQEx*})Vr>ej3_eSVdx6DHdvyVmgssex zr_d43seRjkpg-B4$wox!zqp{F|MHEnY2ormQD3jtWa zNH@ESoO2;wTi|{=e8mFF?7>zm->LbK8mvOl`M?E?(a(6T?j<^Xs=a?I`f1)RR!6E?}s zV9ha#0V)*5LqM06+`?oF5rexhSS&wkn2_mXXi}DJZ}<1%}(UNAH%61@}z zn3?^k!MIZuBtn8cJpgU6J%6hW<}<6(-;m1S6?x_lZ%S1Mnq!zkjj@vfj3%zJ>;Z@{ zcsy(5?%JB>$?2TY2_MmU66>rsgE_T(w@ErO%=|?g*ZY$~M&<^4TqX9ERf~MzOG`;D zE9J&M%mp!jd7`i?b&o8JU2IHJ7+Ya%kgp}1WIMjzEu$sZ5m@3gVE>Q*-R5#uE|!CH z$?dwC*6T*Yc;f+Xl~Q7d7ISO3`v&si*Dry>OW6Q2xpbui%_Gj0uDeFj$Z5=D)OcR1 z)_w*NmioMS=vxxez&y<|?JW+f;}$xO?3#cnrnDcTvl>}l_^49S4$S_FN*om!`kSZE z+H6WO!L)^0Y2Ml0QtCajO>byJr;E;qT_=WZU*QFF=v*-x+LlXDK$GtNjKHJQsWin` z9}aHd(2eC?*>Owx7Qe8B8s{smrhBk#x|imEz~=v(gVhvz(6|40&hT$o-l@9ou*QJk zeJ%YhQ0RISELBEM229q(V>HfkDZS242;yR(Bbs3UQuHO-Q*{mv$6^kpugR}IFX{Po zf#*Jwss_&^f?Xm*Bofxu5{ZbcOov<#cbhu1una(K7_Oe6428Bw%lu;T@-$_PS5+mt zLn|FejkWhz6O|(-pK*V%$z8CS#ld)8*+HyE71CIi?s5KBXNJ~PQffTPUmg(=+rSQX zhDJW#FS*`(;oZD~EQLt(1Yx*a;zSG^twf+(W~-o0ybdf27e>OYN!kS|}8LqvXfM&rdRR z>APVF^zZnIn;4eI6J&vw-87R1)Y#>aUCI^Q_C9)+lJl+v&*i>so`1zBr$uqEbZzn1 z49?)Q3q$NU-Zciv2~m%$vnTM(tar9!(E|H&L%+(mBsA<@a?8J0WKEOpuGntpD)dr* zhlce0U%?C1&-kAgApmS*5eEz*5WqhN>d%>fjmoW!jm-7w&8_uKjald{>`cG^e(%DF ziny7Z0079y08ss02LS*Mhy?Hx^#B0=ya52Q0DfS_KO+DGK5fESR46d*1JR?>YDUaewD&+?ndC>h9|5 z>YnbJ?h*V=00iHz0{|D<&%2_dmjfKC=i-I(@^$g@hAJyVMTCUKq33k$VF*t&k{bXK zk}^V~GD0FyVPP2&aT#$@Fe?Bv1M*wO42+-UV7|-1{0T#L(2QWffnfgN#rd;75YFHA zfe8Fr9}LK^JS4yc!;d-;;+j04BO@QPi1~^_v^BqqE zw*VqMJUo0nB7A%zazX+^a%xf{B2sEPN=j->rIDQV12c^V@oCHu{bif24 z7+BaixOn&kgrE`pl?VYaFnmUeP$I!BjxO`QD067y>l$C(CkHSvKxwf~ zWWvS47C#YzMVJB$l)#6T5?ka(EEQUUc7wrBqU;WDk)d(QhSV@$u`Lc9v;erA;?IUa zA+l*5RgEQ3@P%I@{Cf$wev5EC1rTALlt~WA18Xt~a;|BI?duQedavZI7d1W|4@<%| zuo^c$2CzDOY%LiJ6})DzgfKNOj-p0Ui7}S^iWx%%3WEz?Ml@5W!)o( zoi~RMVvm6v$H1Dn^O*~Vx9AFCBb7p(+!u+h* zs&$bR?8ZnO$2{fZhje!-pl0XKn;uaH9Qj{yJqBK#w{3X*mFmven^L>AQQ@mAXHc7? zsx2ImSQ3l4kKJ^aU44h96mb@Dl{dVORAr~4ksU`d9fw=TK-!w-+2WboHb}$rA0N5f7634 z!sP4-;&I8E;3f!(to zxjDWsv&ZMeX>xFT%P-#BbXHyK_sF{=DV<|6iJfEW)$G2145TzIuO0)7X_Ny(m}-lA zgT!0ksSCMRgpPqN!GUX^T6K@+Y^q(V@>5#)vSHQ@M+ZGZ@~Txko);b;Tsa1IYqWE( z2a}HG)obuSA@jpxI)q>ccYTOTTKD+=_Bqii|(PvNvzdtI9K_FFOKaLqS- zWZSg-tKBEp4zFpnuyN(igC{lD%=YilU8~Hai9Q=5_fibiD>+HC6KRnQY))H7KCk!i zxYo9DX1behQQSlNV)+YLrfRBS?(5w3c zHa3o0$H&-!!~7bMh5~j)5;L(}%d2z7e?7SoN;z@5-#ZHi$Gx zX5O7=jyeXq%g%oDu^QVUc@*g8?lp~h(?$$B>NVtfk9#%P^xN%S=eN#BZzft|LN9JY zRn*ds_6c7!!lq=nMw9n8ccK2{1?E|MwpYKiIbH^BhBYpJEQV1)0DJ*Ea`ZWaFFkYj z0cIY2@J@_J#U4(}SWPLvo6Vy3*?@s>;J|XxqIB0jb+7NuW!<6Sch|VqcV7u%V2d#y?;?F+MmlIVf2VEmC~5YCP5STQ>$HCi zpNwH_*6JMGXIMD6*>eJKf&b!j(VB-^56T2mA3R^VTW)<#HDI&sK>e;2?U%Q($AdB< z7RSKFwElb&@3WariDT2un@3q%L9NN4$$qyO_WGRuhIIRO`mAYXIsNmpH(whDo=f*p zEgeoVi|)Oe8Q*GYYmP)Vwq5T1co=*Pd`r=~asx6+E54k~&;`H(#h>fSOt&3{Zrj%Q zT{}z$_2^}L3_Q@@u(mx~aXJR3$B%)fAw}A;$2Pt*;}uzT(q)hO8SS6Q%loE$4A^Ga zT?R+nU)C$hBk#I?4D5?a9?gM`$64ejUt@VY3EtQEo>{s5O72G#&ZE*dPOBjX+6_k> zmbHD=a+Ke;}KINnzz`jzexYI?HFV0L})-8)K7kPY})e(7IL zdh&RK>eBC-yr_T>Af=?KgT-+&p+vv_`b#*W$(*2;!7G}Mo>2n;p*Iqo`Rn?jy!}vM z6utBS^n6i<4qjgFCmfodC^+2H&jU?B!|1!RI}#lyJxObb2t;!zAyDWvX!2>EaO5R> z54e%4nGuLOE$lRb9@5Lp$qDfTvgj-@_`%EX8dLmHV_k0)!pqYa zq|>4~mAz4(KPv%N(gFD^V&Lqn^DCl^^i=*G@kITOTy${v{YAOtjPm~#QT1?F`4s{6 z_&aMQn49wtMVx90Fi=-g2BkqS2>}B~DAdu*&q2X!9vwXi>PXN3f>Uz;uY5{KM%ghK5uf1D>sN~tPWoT*Gbg!zK8b@HZcYQ_Bo(+mM+br*odmS< z6W-kutOg+H z5a9jCNOO|#_vJ_TL?h5S{qlGG;`oE%7w(71=(wk!J9>OXR~^T}%g@u%_h0%w3?&TG z(B=c6JIgPN1mpi=(SXt~%Rd#v;Fn>aR1(M69RY*;nz&y?cTLD&%E3ONfoQb%9`_`o zsq#lzxXwr~KkvVwaJ-NRXT+~jSJe=myY2}N%!An859Or}_k<(uQE;^K0HYx9pAQX! zQ)V;sF{u}`Dexm=vjPK%w3|4eUIRDfX>1pLPexkve<2u5f?EOv#WPE=(67@IiCO^@C zWhZoSR`zoDLjIv#^3(j4)PE7cB)}yvPqeP_QC{BQgWVVY=ZHt(4i1g~1xw^`GL-%o zJR#V`F8|7Y(tppP3j&|qpgGHbI)P979@PnqHet*YJ~RhF$PQl6og)MM>4D%p=&S@m z(8EUudhGu3=>6l-`^TgAk4NtxkKR8Xy?;D<|9JHN@#y{I(fhy9qjxf2W&x+g0ALON zz;!U_VgnbZj-X@A0bHa)!Kt$g2&2HC?+N4$a?t({98f?R{DT4_fDj-IoVo>0N;+K| z$qgaUCHYZ}8|PLL(RnHw?aH1PgY9NjtL2Ux1zulnM0k_JE`8q2PvJ zPhXipIo6ZRWk48>7G#B>}kd96=1}bVl$^v6@tUoFh5D*{`AS&R6bQTnr zmX;P25)l*;;RiYReSsxb`&YJq ztE-=kj<8>R-r$1tq;N-=Alx190ry1tf_fE3SN~_GIy%4D|2A6>k6+xrC{=$@qW`YJ ze9`MfK?At2mmd-aSM>)=Wcyi|FUkP^TQz@M*k6-_?7tFw|J*r`l zB{_l)%74Qw4krAA*~<~(6!br`I>Ka}ypSIDpq@`Q@Cdqk!<|ox)6tR9^z=p9d&1zF zDsrq~4FwPgM;QqbabcLFkQivR(jxp~(!y|lDQO82eg~MSw1lV>OvFJ{`e%9-FPIgz{%5XesT|Q#i8;cgBt;zgr6gbu{9+6721O^utb`WKS{x0{# zm7wG02rB(Acui$x(9Q0Ia0dy#poO@Z_E8(mj8!>VJ`Nb&Tw$J7G(XmHG+A0qJ2`oYvpZ^1YhESM?!t&Se=kw9#DI4 zZ_xK=k8VOie^19B4~k#b14Vg3|L83Lwjl6K7UB=({aMT}8KD1P7WhB5)qmD`|65!8 zKh{=)=!ej0R}%c!UUnK+In}2cx`|E(cbUKIPyeYsf}_0*I2`>Np#I+tC8y<|dW`=! zh9tD@oK*aer}0k|_=rb?zvdPfe$D~@x&Nbqe>Cuq2L92&KN|Q)1OFFk;J0@IJYX!x z8UXqpju(i`z(tF#o`J5K=0(*LhYFF#MTDmp2KZ9m1KfjyUd5Q1TR?I9z?bs);BEo% z^}9XH*IUO>4ZUdz09QCr^il^6{|KN{W^e3tr^Yb9h8`69lkgwj$zk3|a5D}Bd1*iae;0(Y9oCEkl2dg9?3n&1pfEJ(&7y;&h4Y<3=1@HiO6$Jp7fg3;= z5COyh2|x<)7{~z%fij>Hr~{gTcHjl@3K#%JfoWhKSO(q$pMX8!5Znoc3n7M3Lg*o9 zAsi51hzLXqasi?Wxd<_Um_zI!&Ja(CALKIRCL{t92T6fsLJA=jkOoLQqz5txnS{KB ztUN>U%ov;)f*4X5iWu4$Mi|x@&KN!z!5FtNqA(s}WMPzG)MB(_yuuj8 zn8$dJu?rsHBE+P@WWnUel)_ZT)Wx*GbizbpUd0T@OvKE>EW>QX?7|$zoX7lt`4tNX zixLZp#g8S6rGaIP1;g^ex{4Kvm4a1(Rg3i;YZ&V-)+ekZY+`ICY+h^`Y)x!4Y-j8M z>@e&^>^$rm>`v@a>}Bjd92^`P94;J591R?E99NtWoJgEUIORA`aRzY~advTWap`e+ zapiDzaqV$YxM8@-xFxu4xI?(hxL@!H@y_Cj;HlwR;CbSO;w9o0;kDuo;jQ8w;*;TX z;LG6a;ydC8;YZ`=;5Xv;<1gbM5|9&c5y%l35x5fEAb3bnM$kzxL-3i9kdT#7noyq* zL3o|;A>k9kZo;>OUx_G)c!-pVtcd)GqKNW|o)S$GeI_O*<|I}iwjf3kM-dkicM#7J ze<7hH5g^edaU{7$l1frbGDNaTiciWxsz_=>8cdozTE)lxHuT zMVyU4+je#xN)1(nxcARjiLG@mD57T-8O5x*k8KYua* zTLBt@ivpnnbpo4$?1C18v4UNKM?&I4?m{_2)4~+OTEd~ijl$a^JR&fWRFM%;Vo^2G zYohg{TVlLoaIti;32{ns9q~Kj&&0n=NJ=0j$|Tk#*(L2H(ev89!y zuSqvcf0dDtLCI9ge3a#vb(1ZUeRrPgJp6pl`9(QaIeWQGx%msw3w9SWF3iib$lJ?j z$uB6dDL5+RDXc1TE4nI{C~hhVDIt|=l=hWnl&>g1Rl!tIR|!|?Q>9QfRs}!Jr^c%0 ztX8b{NnKn$ME$7-wuZJwtj4$|vnEWlQ1g?Pq}CO!=h{TthT19G3m17VA}==TVCZP+ zJkXiB#Bs^HY)NhHZL93C?M&^8?7rFS+GpACI%qniIedaC!;)a{9Tgno9oOJ; z@HqIYlblnW(>rH5=LgPfF7hskE*}ueh!n(@tA^`i*L^o#w|uu_cT@Lr4?GV$j|NW) zPdCr!UT3@ly#~E`y~DicePnzRd_Ezyk$JulUu)lb6csp`>h(M4ciZo+{{{b4|1SY1 z0abzIfu4cAK|DeCf>wjof^$Q#LSP}!F0)*|arx~P#VeUtAy*x)KD)+t?bfyB>+07F zZV=pXyYV^{{0K(q&P~&sjklO@UB9(>Tm5!%7)cm1Z2XSwoyT{v?jr8?-4nf+eD5gS zG5lqOP()(Hw@6sz%lpFjAKpKXa*FDUmWWP|!HMyV8H<&VEr=tJ3yxcSp!1+M9vUAW zzms5_(32>Z_&A9m$uDXC;l+pb$?VB7$=_03QbtpiQp?kr((a}0KXQCDl&+9o_L%u` z#N&euM8-s>dS-1FXI5f1PPTvcN{&fRSFTiUVID(XMBev&&;0oUgM#OUl7)puOhwVf z7{z|YYb91C1EngZ^=15JndLO)5l?_8eoxjb>?+18wJV=hNmZ3qb5y6*P}YRkLTZC* zKh?R^&DWdP4>o8uJZqF~tZ5Qx%5P?APHmxXiEbrmz14c$7TmV`)cfg&cIWoRXSUC# zJIp#pp6fsF>(uV-exdfFqf4=?ty`|Uxksj_;ic5ex>pjfYJ0_dYhH`LuIZELtL>NU zuOE;eXdFC0*g7OX)IO{-{9;6N0x972UxF7z7 z{!77EsjpoJrU$Es0pD=HJ^ar7z41u%&`JE7dSn0e0rkyKe}T44w%2f zA1To%Y%zWj{!`!>edZXlgZT~<0v^)+edhQIc;*%_*m`YKE zjT&EHiN>B?l-9uK2AxAJhjM1cCr&XW0e$)jPBn|!DnPH<+Ey1i!&k7z8iu2 z%F7%xJ^H569Sc4~qk2OI`UZo;7I|48rITNl#e{ttufMvm`K_i|x$?t+0=t=kIeUWk zxHYPXA6z_cx;`*e)bbm6+!!z`7}K(_MEKGBd;3fsZf)Yx!qC)IpC9-+uy|-9B3HP( zw|9t?fQQG0A*BX08!^!GUU#~MIc(!{>r_Su{5)e>lK0!K!DN@mf|agr+#*$WONFM7 zwvv_A*z?BBV;Yn!b-EYrS8`^hg&P_-2NUdT8dA)L*}wC258)L*C{aV1G(eq8O!up% zYWA|{n2&*}L;i``sSfeNx^xBVUdckHn0uokCT7oXz=su3>i|x^MlWfIXG7J)skAxc|qloIS*1?tlTI}HCgN>CN*JKD?G$-|7f2wtz~BU z{)2}>maa^%+VjN?+wXyID)N_0=j$FA3ps$V>7-&k*1Y!jU< zxgaZ;-kFw1>p8g5>mi}bZOh5Y&8=q2W>iz5u1yq|qrA_4MUgL<@gu3c=b1V8Jqiz# z3hl-@t7eTMjKQwA1FE7fn;nxoPf8cC4uD#~*HtZ~Qz4!Dz zB)*2L_iJ%0x{_I96CS-aqCDT6Bd& znnUYG>p+YmmSNU0(D<=6b-%@uR!sf1rAM<>N3||NbM1N$(NsuK zf+xAbGUiuT-pdurc;M}|Tz~~FiN;TxM02EM^h z>XH_hi9h>Im2FO0hFAu!j!<^Qg6de_E`V}P*p}*<4PmsZ%eZwmW$k^jQ?PHT~Xu!GCJwd>BLYHRppit`^S6 z%;{x4^R=~-m+dYLzG2bTG1xLO?0fQXHe4ttCQFrDIO6%hRel_9PUZ0M?g}YI+XxM@ zv6jGMS6gE91rfXs0I}e9-<*5PSf$_tB3~`rqL?JE^76{0AQ81xU(DwDPJR=fa&BF5 z2~zt((QAb7FRCL~&*kL4{Aj_@7@Q_)<}}~k-51L3Y_Ccwr;WAm^j%tj?cptQni1U` zIE@2P_?w}L5hAjif0QG(CXkXSLEc>Z1Lc3q^>2k&vQT*#&xZlx)_U=kGB@e%@6`|tG%uKj3AK?qNAaYL z8s9A@HnO}(bm^sDs8PKY&8K0d?v+P5ylvQbh90x;s}2c$VFy(qb|N9X z#VZ@V5~FiQO@_2_bB7nQA_6X8vPBj>U;P|Ucl#B*)*3Drzq@TXW|*OA!7sv9%NY>u z6?Y(pb>l2T8pkXk zB^bEy^xOE;#aa?ll)tn2W}1h=#(Br4HrbjdfefWdI@9JPl@WFQIv(};vy)7_{)<;q z4e4?VADBo4FL2Klahqky`#aRd?XvN6g$`w8^xpUEVeX54inkOT5JSgH&7YT>YHcd7 zt4C=QIx2O~iDW=DMueFnr$EL}AlG7mFrWu?jk_J4vd-w`fZfl2- zkn>-ks=w4awe?YM_QGmGs^8E?P0@>uwb;eb@Wx85lza=9U5zVKW+{vj^-T9^))~yP zwbWXncOQJYOLC1M&PWtcc<;a47&WJ%zSmbwC&g#3o!_Gj=`2)I4aQ$NvSX&?RQA`m zli2$_N9NJ&A!j4gq|_SOWK+2JbmUx~=#`A(zfE#yC}j~{;}Nm!!152p z+@my*F;xGIi|Aivvor;7xZ^!Ld&Nx6&h)%6!ujAdK#-U$tU zuTfPAI{2&;TAG;~mz7wgpK19l?wlKJq0k8<0p~8e6CcBEf|83`QlzuYknuY<^7xY+ z-oRaHX*Le3a~U%C5Y(t~gsbZBL}g$lY#RcxIY6mDRJkK67Rw>)FPY z*`_D5b&|Ix8m3(Dzf8W}-y`v&M^E=W)%GHHu>sjGEB%;$uFIUXlP2V@T3`P6FBH^| zs>g4TOO$kyAfH8U}cyVYw~Y*54SdD<}J&R4&ig{{^bHfwW-wq6^= zPwIQEJ%#cXl~2|;mkV8rIOFgaKE*{w z7lL2Z;IEk-xwEqvt(RGje9bOWc;=?UIaP5?8#>|<-CB#W&RC;pyQ#r{%+k@{WO3bS)#h7aYLxc+rqqbm_ZoSM~1p)jouYu z6+2u|yjV?9o2ch^`K}2MY0QX%#V3n(Dcr1a?axWB8_dZ#AvK@A@bsp94BAU{NGTR}UBG(Lw`ltGW#*-Oms3{q{E3-Av; z0Ss@?7RVa#!IsA8>g=AmzbrX_=x@{Cz0)G_Ij_sWbFz+K?Mz)&MR`l$MCJ%+iKcbm@3%%@!#ItC(}nuIO) zDaR(6ORHi7M78gi=gl-snNY5nGHP-VYU))|-%FYswb9|GaIJS%DAdC@KjUc56QYEP zm0KfZN5v2T8NOt|E~+uFP^2w!>5*_JKORP2v6w3!mK%rLl&%)j<8If;e47vMN1YR5 z;0N3$X;ephs-xggc2%Iihd8xPQsCK3-HDK!Ma74#P4tzN z?n_(9k@>wA&#yC#*Ki}tXBPds#Bl~PQu4Un*5*U=0`H$UXuf}@+(xdYuqmd2W{Xvt zi(TMhWC`Lr>y{sxODA=BA?qCk)uwwaY-FFJ8li+6aF5-GdqfTHvJ=Xane0bxph4ze z*DH`YXXvhfy~EQr{L;8iMEttdt;4Hfi6mW<);CgTrQFr+=hv3Y57+tgqas|4O_zvK zMx*f$*SMEm2rm_G^ykOODs#~I$-UG;72eJ_Ehvf)9JxKDDWDXCzZT6PlFshQd~O7K z!$i}7Mzs{*Zd)*cAk5B%)T~l&zv)e!=!yAvl0#S^cNi35M3@r)9 z^^D?`by0%2wqxQo6FRRh`HZGsC@Z?-)1yu`>MdFq#iauY`eyc&(C=VbZ)=#$AnsZR zg`Qc1auJa6#C=fZhQlBmhKJ%E!*IQ1{4I(!{l%wBiz>Y?1oH``hW(ctZfsS@TC&yc|wXw*1QIm&Rnm#@w%1hyuT3VsaUHyq> zQ!fcSj5P^kbnt|WUCgmX^VCUbM~x(Lnf1cldNyDNmt`>5nL?LI6LTUnuc%K@UUWz1`;R4_M)d~S%n;%;&7WKRzda(N45e`@R|wtIQ*0Xl z9hfdBq|pF0P<_P(A^m{b_j7U~TSryp{#{l*lh>dDG%!~ft*>_D+xPbiA510rF7Pd~Y6h!ipzXDC*0#PGzwv`dHLe`6D6+4`a6;(nO z0IRriysBJ{+P*3Ay+O5MiHt(FThK+Ao&(03vA`>f2dXB}^>uOFs~>gtpR~%D_|?96 zzfRKgm0Z7-+vQ!|ilM0C__Ws5!p>Em5a1fsw3z;C9jmdEcZBBMPdR*uA{`wCTTGRs zM&Wj`bb5ZzTBrA7M6f~1qOBpiFBziCRNQuSB2lFTESAxQ{wCVFbsN+l5zOKP!`1BW z2Rw8YMz|5EnyIs_2XCau z_Fh+Sji4W*&SD;ZXOqRO96LwAsy@?|#v?yO}; z;PT3}rRyEuvItzPdUq|y&-9l+)Q?2fx)i)aVMlRly5=WtK&$GW*vk2OFKy(_ZObak zEp31CDW)jYYfMgy95lU7&wfLHOy$bdl`yYnT-nXEHs99P*(V-}+I~S|E|r%IG*yIE zG31>Z*g4B~ja0d`DR4E*!LJbUz5%DgAD?f&POhtcu{$YbznyT$lVP%U#S4;NP@0up zo)y8jD^29*!KrlPZ8|>ZLm{4bWA%6qnCWNJGG-{&d!RG?)iijTYU%|h*49r$bA;Hx zk|747KWguL+}!-yuwC=wRj==+RdI9R8l@FG!k1`oK_X82JdfJD9@b_gPkBn^2!?5D zUGp~G>%q8=joH##*R3ynkza~>M4r{SArnR{RFV3c>g=eAcWepG`px&GoeZ91*EMtO zzxudbe`vkgdbn{6@EwLA8azTco`xQ{-CGVvI1!YKSl}H4IyB;TMW1m==HD9J$tqLX z!x>MJR_c1VZ)2Z6x3VWlLv@eMQKN^2!P>g_Qe1C=sn!67W$qoj0RO@FM@cixlg2kM zCokDd2xmEPOjC_~q5-Rmth^#mZyW_r?y{ysiZg3rHk7!~0VoxokfyxpK+&i^SDb zIS%z%Rm=NXkGsq-*%6AFxG2@LitW9bn{Gv}n0@sPoS3hTd&`^=Xgy&fE?}T=1Xs*1 z#a1N<-@TjOab*MiPIkkdfXd3%OEuH0&0z?Bj@m?XoC2fnfj*AU!ePAZ!KMZ=dKjc8 z)|~t6k5U!&AAOK-zDcR9X#B8e4E7|5FO19MEq8ieB2(*nai`(MFJDByYDv4idyteK z*iGmb8*>H4oA8zNVMCYF2R&7e=MV1M-_MPb7U0OL$|3mB%5sm{F@6L~*&vW4`R!bj z8wZU;WwEQNyV|n_@6>Fzh}W<0y^f!3%DX9=Fx?cFSd4FIabq=WdiS2OBHNWtu}_m1 zV;i+b5>>;wovz)cs>o*mH1qpz<~Nkb&62kYj)iPmv~pwN3$)6%3a*8aIH34hM!beM?YCB2qAUzy3qg9zD~`HK72xo zzh`u0zybNN^z{UazQ`&{x*)&&g`q01;n+w!AAE9)u^>?zaxfAYpS4eH5Q?IGR@|jr zZW1rX!Ca_BU>CoY8805a{+PVzriz)!n)n6AC+DskzgK#RX~eU3!R6cK?)LkooyWix zk%`NRtVw)_5!7SSGf^`g{WhunU;HQfm)8s|f{9mSi{JN-^3m;lPUb174&oOh=3viJ zoKnukSSNC&?h32&r@+Z#@nIvtC}OB)eH5t9#>_(UkJfEN4l;2UZNb=r z*hgPuxAwhKlH#nVA7y9eS%qnHR~?MYH&#gXDs;JDd}QL<*hG)X9@y-DCG|#V?!ft2 zlO>wR%9>1>eDAhq2u%zZlj$#5j2Yr#rI3y!U-UUc@^lH%)d|Cy^)$)jRP|BNC1AzK{-9WYr7U-h#@u*h}1} zR?ZB~@}!nrTRiu&WWosQSu+@n(^#Lc-YjAWDyv+NfG$K@aMNnOHXR7n4?G4Q%Ho`_ zbI{xTey63j^USLcueU1Rab`~>Z*-VT47}I$KjIAuxUj9opj$O%jfk9SiXyOWHs`sl zFH#+D+0Eukqv`O($u7={SV01Vw|79fB%N67?)uH!Mo|P^#o7l*Yp97AUJyYNt003e z5z&)yk&?L}x=lTmb63@OFHYlL-V0x>3wF1@(ZJ)Mt}M=F1Am^HFR0$Yz2~R$$nCzy zQn%MP=~+KbMQRVKYhL=ooFd)ghudzkeAX;6HLoBHhzo2K=BkF_BgKZsLOd>_V-whM zE26AJ)WuK46)?i&I_?oXjS=C!B(=sS*xMg9l1$ui=jE~}9nsu1Ve{+VcKbB1i=H_J z?+dFoWlRVvPf5L8gB4FvjC|B8aN*u5HA~LZ?D{Gi)LB3j%3=5XMY(?Ln+1e{n#!GL z@h;%;LzcT@WjQ5^k>QF4if2#|y87*NG%5~Hhwg_D7Ism77R=b*ozN1jdt;`tk2CV> z<2q5<+Iyn0x#!AHgfORjmk(_OtSln>)pzH7sf<&v2(#IwTqTkpG< zL{{buGo)^YCZdk3#Zz&p7b{1HZ@s1NmqxzvOC6W5rI9G=biY|qMF!96mVL}27<<_v zFr6G3Ss7^HFT^fUg4c~wVwVrQ&kpNlwhJ}M(IeI_#Dj|sspDhf^1wK6w3BNpN0t)f z1FJLF_=C&on;7lpT{vHR(Mbl_*m30aIOIKhEAo)|V~fO#zV6N0+>~J>-<=Rw>uGgi z)39Wo=iLs@cdNs9B(}9BZ>^ieQC+1rph4nO&)duncZVB=Qx_X(L_q4*h{DKOW7~`0 zJ`&&dpumxWdY39f0vazU?dq84yrn5F*#yFk#`a86KYG`R9QERB5N+e zRj<#ad|}fsl`2{rSsbOcSU<1oqN8UVp|Ya13s{ zP!q`UsPYMnR*%#FuBz8YNDeA7myQ|><8oqk?iHyhIjP;K8@K7kZuSljkKajBb$0vq zd^*``++}bxs=>Ncag003J&`6tTsLi#hxWzCbG1%9#N#8zUrL+eU$nQRQ z%s)8G6W%xhXWeLrri=;@#F)cmyfvKph;*Ok#3G85vV>(|PH<=gyOVUJ%Jqz%nF*o- zZ1zhsLrN|;T<5P_E4bb<`C2|;&>mjgvCt&%Z{W0Lb~#F-%4z3leg@?`wz@T)#2-GT zW2~8nHMhMeVdD@ad=MRe-n}ztMUbsG>ejjv6^5VQ8V{Rh^39+kRaV)@&qz|-u!G$l zZ?WS`A=q89n$(IE%6+?Y$%5hz8XF(QQ+HWJzIi7(+B?(Np z78Emx^R;;ys*0XfRpdC4(j64(F$gW3t;cA{+$hUXw|cXDO-;RCZ7$Bbi|!6D4Xt>i z;{<*Dgrz!%Y1-_e8$HhU>;_)O^jdPi`}tCF_NcNrF}z-V&U?x1hMi(IGE!t;)D$j> zW8cqXQS9-ds7?V&AxtiWLmhk~bk_1l5-CKFqolyu;`2nY@?_T=3L4=5Xr?n_UYa^_ zxDrj=THs@CTXn7pS6a0(_&ry($k)=`)Mt)$I75Bz2kxt3d`E&ounJEXXLVII6g37- zV?={rsAeMT5MKm+RE9=ny;4QvgNZJS%VyNlG8PGuYWrl<$s@d(F&DG~?UOAO6kgsZ zQlPhkoFyw#y0e_fg?;AhoqCy%)K#LEjLa3=$;=I7({DWYIp1aulO-gl%VZgN3yyl7uIt zNk#8!e5{*}b%~-~L9Xa5)b72Kv8r-qY&xn<^uR`nxAJTEQr46)<7dih|EP`U_Un}s zX=Sw1)s3sjg}TJ$poOm1iOj;{4@Fv{7^TKqTq(_szs=CEm|5N^l|aDzuyrmY?rg{4NkZJ{F-BN$*E@Pdvlim{9E+ zgNRT^`Ni-3+c(dSjJ9}S%iAn$OKrY*cH!y+`PTjO%*NNF3@;F$li5y{OKx}crkk63 zt>;YaAt5Pid?%Z1NSo2uj&>4$gDUPJr~81i+PfGI@FOee%%@Ca5#CG(^`%_ zM@fKwr~@2k!Enxqq?Cil7+!YEm5fd}_}rRL)JDmMdf?d3o_2{4RbbJT2k{^9>RJUu z44jI&B@R{*wVMOcC=b%j??m-PFAloHKi1?%)mCIh)1QyDkd<#ypBpcj2t;9OB{=ze z@Ze_>!3?>vRVl8gRNh>pr(6@0D5s))XT)>g9jRy>drRTw+$a>ti*CwpIC$mu;nJ%Q z!U@yU5Aa8(1H3nxS9NMC&8#}FifuG|*k~0Knp7u168=xkNblATT z@&r1yz1y~Ld3j{9LaZlZ=Cc=p29Hx|PS{2Fm=V#Oy9Kr$bi9ssF~aF@GZ>08G~!$w z0w0sy(!gT~_m5#RELP9Vjb(puk=K)pUn`dWe%k%>msQUV##(c{GY(JLDFxU6@1UA>Be+BOf8O?IUC;3RB9B((*cb5SqP<=ahn*a74*Ah_}D5nm~0ot z;Tw=DmD0H3#%1SpFDB8)beRr!nk&X+9J;<_Sl1l4qDJ|lR(8+`QM#B?(7jvhvJvXfp0Hi54> zMW&H=5iURifUb|B_iq~aZ9rhW1>BYL@#_28kpKT7jtAy+mn4?E+*{*5lrBCzeEgPC z*WJX^Dt}UWU;J^$6CE0ZrVZ|0t{J26HN1gCi-fte!<4-cR zF*VbACb__+%Iv&=u7?vN!!X0md!=QaEBeJ-SN)yHHF7eY244AokZeQV5%3jl7uc=) z@<8QWS=nG~oLf#Mnbx@2`SXP%EgR8oHXjb9y&BC!f?g9M>TINf>{8|!3y3lhl!?%!`zb*5NT!K@a{C3dp{zwfQ%W|Iwm1peCG*W!>_ z>7-;y^YWn3Js96UMU7*e@|Sy581WFL>jfFu0A!d`es#a2+2#^c4UK56Nmim)eP(W| zyRnf&#ps!0-RKvul7xo4Q~Dwj$&Ud?{@a;n%nvI=$a|W%=a!J;bpw{ZUg6s>j`;eq zn=4JNYRAe}=-54UW+K2heu7GmhGzw?&eaO8&n@>7a}MdTL73e5?p9}MixdRWVq~PR z6NBG;cf9=hi|uri?_uG@Lz4b}`@~AV1g>brC`{yGN!q!s&IcXvccQ{3i*AYB^n}^e zD2K9=yt(Bv`{mN;REhDapgUfc5fts$3r$Rzn3**k?Vn{V*^T(&`?j$l?=&zHHCOaa zvjUw6{(&2&VV%sX*Iqg;v#sSfZC*q3 zn)jm8C1VOI)mvjuzS2a`6a2Q@FJ(!!4>SEg?7e4Hl*_g*+$Izi5d{N5a!vvQ5*tNw z&LB~8MslW6l$>*roU`Q6K&#{|IW!HDB{UhDhNk&mb*;VEUVE>7&i(E=cic0^{UI{C zshU-DKJ%$L=UY{;)E9;Zs8>zT2Uz#1r_G0kx*MM2-ZnD>TL*cCWI?7+J{4w=g4V*H zAFW1vf1DyuXt-}ELsq)X**&`_#q#dLg4~n$Y2q0m)gf`hTcMBcqno{6br?C+&!n{u z*hVaB_IS~$!??$t2K5tLmBe?Ac1ipl)%a$f_IW8+isDIJ3soiYyzNZ$ta+QKu&&bv zijW}738T4S;(QxQT-A2z0!am^iY{96a+;qF8q@1Tf8;{XSLZr#$;+&^W1+p>ug4~+ z5oz$5=S~u(G^s8b8IRt*PL)NUS>8OiM|^85VJ2bYV(LUpByv`YpWj@5`%q5p4I#x_ zrfb|}l+o_F@fItQO~d!twCh_MHztZ24^`L4bkzo*;h*xrdUw7W?QVbc+2BdRAAfe|ESfORA0TrB12qZcZH;y7ECrNuWCn85xAV zK?3o~n#aCEns-ZZN=4R6)|?85N6WkkGcp&dpDSAATTl;{k@@XkohN@~{h{_#LEDk- z?58ba+@qs~r}D78#kA#Poi`#EK1bZ zHN;w(V@P?PX*&>K7WObQC}DhV@m!L=c*73Ijd^-O|EQGHP5J2|E19x?(S-t{OSyS6 ztLa~4Yb7Y-%BD!BUvB2A`&8DdO&$*6njr+3B1%!Xn)5SC?RQLgaD;D)7BLkKeQCTX z<$l99gd$dw+bxZ*2+RI3F1P%|MU7SAF{A9^_a(O`%DWc0^A__Fmo)qo(D|i>8wKlS z4ADhsdrb3&CCb@ZU&~Hwop<&Ib#0xdO?mxz45fenP0ayO(eMyAiEy~{)Z)7=%M*;M zD&O@fMk@DwSCQFGU-9s$Fs1?0k*kW4eGGGV-Y{~$S0>~e%WF0lxI|Fu#1?t&vWmp} z=Q+3M@=u%%&3Y}pb*o(%FiDA9^6Q1kkLVmq!X6BVDHr`(bl@d#OTGNtYU|HVR zS%}I!pH$AMi>aGNAooD=%5iL@>%iwas_uHh}Fkx_k zurs(dI5|2e>rQ@k+-1Mv1d{#5c~j!}vH+s$IwT&gOIOZ@^t79cnj@`({#PEGf};<4 zHm%Gbbh&J$_i_lpXzf|iwUKP`po~|V^1%_*^BooRgSAgo$!UoS3)k1BC8G;-iZuOJ zZZt#3mw_p2PX{Y-71o%7Rb@Ve@pGA)7=VHCm3=u<6IJ zcE%$c7Pq(_Z`iKg{C7%jS~j6^HLbAEv6h?-uIMUGXf5OOt-!&&bzGh!ef)@0l2*GBo6uNy z=@0i7+m}~!Bk<*45iVq?j7mI-0{+?L!@sES+UCC|wurqbZy}{_DDusjKTPCpj=QsB z;K$Dw*%B8G)ZYaw-82jc94>K+6vfwTX78JO!?oV-hwVbAq9ZvwBmw)ad&_Iqt{i%wHhGqaQ9HR$ zAz+p<*1v{JaqF3O%|^!D?NRINwKJ+~I>QDe4+d3R#A#-cEF3ga*K?`WFWVR72R$oZ z_$sJn9`{vH0=Xr`KP=E?Vp{V4Iwp|+S!b(CCe!HHWW%R*FEE$S#gX|0+tzW<+}GDr zv~H2r;#t?D?;F43gxXnpx81enyP`7x(S3T_*+Qm9q&QyMkEL`8<*sIWCrFhj^6@K? z3-}M-`(AwWEb!X*3{Zwe=Ahmk{%UK|brnUot zBYnHwcbkno)-T^$hf0pMOIbWj4eI5fnaDdRHR89(09AidEY5uXMx?07sVMl$1CUc( zz|!j8a&GpZqOx;<;n(3U)2xTp8CjdxaV;$>YP8?h`rVaLlbU=zHeZWm72oV3>QHRv zd7A4rREgQBg7+c0w_n5$r+j zQ2V&5(PJmo{jm{6Q4J*`7DFw41)fnW#xk8~2oIaZ_Z!h|tTBM)s7dW_i9ETDmp2R+U7x_$3 z&Q6p%^FmylFJ%L@lxj|h8Vz~h?N6h|w?!!Y6h)}>v!mvnqUo~BFC7IxdfG*E`}MPY zkubCFh~>`cjyz_@v9qxFJfgUo8t#WLg+FzzRPGrA+kuH<;V}+lE`%u&PV-Bd@KFLb zFs+7KL=ZzJ!I#DhM<@MMGNkJVNp8gWsBg(R%AvCicPtIGHF27GGAJk|rdCwVIh1gF z*!}z7D;6+GQcUDdp?h~MVzaGvH@ob60~uW8MW40jVTzEnnapR46}~R4PE!$w;$_cq zcVBX>#7o>NTk;>#PYVpi#qQsD(0QOxim(1$F`F`*!9e)gcTGs`aLwrz#$mebCDh(Z z@fRLM@%q-MlD6*n!hTg+J$A3rrQ%{M7mT)i5oy|d3PgCZXWn%BqeR%#p5zAmxBfJN zD(}TEMBrWTX!KO%zFJoKJ_JH?FPw+vBt@B8y$D~AMQb@WebfP0*jZP^0(<*Xeb!f{ zNrLAdDb2zLUgU^VFm<)XN3!>|cxpU8H*KxRCZwWEKDBHh9@s25GBGezqI-hxC%m@3 ziO2n7>$$?ssDRw~WHF8V%1UvuUyn4xU)b(ZMPH-9rEx8a95YINx*;Kh$5!)_)ZLUj zFj@KCv3XFW7$LESkZY~*D=)gwPDflhj!&^;v!0^lQALANbVkN4?38TFMKf^%HN5vY z^KDIc<2;R6Lk7kknp<-0x2j325^xDfZm)ylm2%Z=7F9$2#1-GXMO`-y{j@_YpKQ^o zM^3gBK(`?7dbOU+!;)bd>Z$50Md@o`C2bV5Y__+Ph+Ii2sXG`(x+`ZBsnFeZ<2F9D z->Tv%4NlzXIQHXtmnTBc9&stdK0^rmrC{JlU2t0y z^F2AIj`9VIN5%=cQZ(;~uiPiI_|hmr#!$?cII=5gv=f(dMs)`#Sv6HoWu(<>{+R#l zZE6u*v=Vp`Q3Rtxn(QhHVjnCvQ=O;*kM*oOE#ozxT6G&jqKSh^D>~0X1i>HHwBA&p zG|xd&bdpeYk@=Qxi-k2om9~tDZ22Oypwb*V{TprELs{wj)-hy|KuVenn`iP87sPxf zewvdb4*OL{2&O{Qcz%?MV@R6)bHh(QPqDhxi^4;N4h(-XVT5wszJM z=4SSHj5!+I76pu$gS!+>KaMeL1@zBXO$v2}4t}e0D~g*?&=6C*^1{`CT;?%1Q%*L) zOwQLGs*J*}Jri2Z*CsT?eq%-Ey?Wz>)LlyiN_!Lp-$jIQlD3oPdI$WBO&J`#JtwPE z1Z-{kY}KF(Y0zt$q+`A z1z0O-2~+_-3>3{Lz5V5~$(7p~nJS${R7?zNWEqcW(m35}xamq4$X*S;w!M7Q>3Jn= zCqsY9Ecweh$knPs=pgY$fca+$(crbS&bkgd)}Z%Y$mRm5Prltz9%q%!2iv(mwIS(A zG-C?o71iRGmNGHh%2#45;zTW36aQA)Ng2%125VDYVBZ}}8vhb|z z08f_NLqj8N1wn=^d<`@yT}Up0p7x~rnAK&BKj^_lU&UM1ffYqr*BR!|LHFCzIpw9g z2PI|6F$_>NGqNO&i|cK|lAZv)zl)dd%R`=};wRw;4b%5tDMTWrd!)luQ<9s(E__$f zQsAPevL4EcRgB%b^qXI!M$Q%(CMIf|WbQ0hNtJ7rWQGCIx|F@G(sI zXeCuSLV~Tis646V@CU6@5j^Ui(^jF@ud7m8+^g0Whmk1J3ca{H zJaBbJd9(vu-KbD0Y_NS1^eiXv-=D>VC2gRDbSa6s`ChSG3 zjc?(uS@Pamm?7beRhLM-7jx+P9{R|NDjnE_;+CPd=dz8wMfTy8=_VS+mFYb9Cc$kNhm4((5*e$-4= z0!`6zx( z*#!kb7rS;i?_WFz>3M%jTk#%jjzXEGrlh+UThCC><_#TMSveT^pSE65oym*m@9~Wm zlp~S!#o->5;xn3+cU@);bB9=`O>Jgher_6}{Rx*Y&>5u4!BR|NP$I_>9?Q4A`Vdp- zDm>D?DU0gHgGEk13}r@chT|RKTS&<9kS$2Y$I(QXm+UlMeBzd)ek(ewp8x&Xl1>WU zAYB)qIkMuG{=H&r)=xQB7YoF~M7mTJFMb_WB%UbnOmu-ivVo(Ti<3&*x8@pXf}EmN zk9%2VlLIr0?-md|Cw`~+<}2>VIjHXj`l(adMvAA+V4S<)*3!$DGd{$1F39kXZnl}s zuB>*Q!~*k^a}YUc+?Z4Eyhl$2w?tsvO>Pc~aK)pP7&N_OirX|*L(FT2t}wwg`gdWw zECx)zlAleBE!rJC-Zht>)|_f1ADx37`$xM75ohw%veB21`n_A!v}OG|p6mW+ ztZHN@n}Dfnc-Lf#i%zPoY4(kP4cpG$rM(7Fw~BtE$rMMs`j^yDj`sZan>1OVCOppK zVrpN-x7P%(J*B_|c52KvBqZ{MuZ-_|&$6*?WrP`p5J zsM|z$WKO7xXp|ICk&f!PgTkk6d;CT7O3>6-KK+jXh#fP=7!ZUrV7Cd$~ z$U#|*ybL*SXO(?_N*r2lv^v;gVcu9DR?tEXy0PYR`GU)*kvna&9yp% z-FSMI4rypbZ#>1QbH*M{(&XF0C&M3Jb7hOKbG;+rd8cliWpu$TdT2fFnl zG+#^rC7YYAAXb1(0`c^$3dWoci`?+2~Q)4&@b`M5H%lPYr4Wv=g80 z$LAAnRuy!NofS5U5y${+&FdBA{R|+E{x?#528hwR5rRwKd%a zZ2@5wQp;xnm&YrNw4$qzw#2m9!PKy0gF4d?Pl|K5U(oJ`=A*Zf9R=WvrC0Bc_z)93 z7tAJg@SXwyb9kV-#P*l&9G1rB-=*S<%pv6Fn)tpU8pFWzS zHTAQt6PhtD#o^nYmUWH%a@UZ{iiU$-^5*OkNlS}Q|GP7qru;cBE)jcFOFPzEhgu% z3`yMHGa2aoXu$=cE~-4%tN!w=uC{i(Ytb`2-%40GK7~qxADR_&MPttr}O^I8U zo3K=kG&t_Lb2vquc~ofo8~z1?4<8r;Th(%}*ZE6F<1tI*2VM%09VR2R;Wy=6Br>8% z5H4N-Jx{w-O?J7kHvnrq*FAzqqhm;6Wo)G z`)ZzIwAOm}jSU%hkDacOkOmL?N4wKReMmU;b8BGLmFS;rl++zua2V=Td6WCx_lidr zlr8ni1&bVa3MGo`e%%%<{%IyfQWQ>|fmj3bZiOq2{`;L?AzgH~{F^@F(R>Baw>t7X z#Uzb9D~AD_1$T|xX`&Pwc~bFoz7$#J+1z;^MtbLg-_VQx6OKGjL&_@Z?`@wqwp1D=)1Aa+-1aeujsaVEDIHz(JgUJiPD4D8J4PFmAKwv z4Pf0ywo6Cjc0_ypjV!ZMT^dWkF$TGSO;nd{V@dcoxiNmbfPiv~Z@o&b^)XwSZ~X<0 z&D$gWgQciFJ0uPdca3l(=TW4bdmYH6Dx!u z*I6}M_Bn)qaM|&m>?$>yzB-0~sDwS0ObrGOmyr*B$Vk@*u?Gjqy~q{IaF^A=S7>H8 zr+kf1E_!r=_11-AS%B9>ZXRG7+4&+?9%7Q~2**@x$>X4df=&werbBqO5PXe3)%hie zNd#J7YW%jTi~4icI?*VEo5#zb!gYV~)T}p*WA{>D7*=Gp1qSV2BDe32x@J$zMOw)a zb^0#$g9pGG)a}6=mcX zs*rohkUbprR1G*9PSlb9#Y>it zLOJJT)EFnP_bo(k*L%iiR+*5ybpSIol%kbW;_P}HdWmCJG9@+;6u}> zSy8SA&S)u16md6czOaOjHhEWC!Vcp?3QW>!Y0B$sNB)FmE% z*m$%oD@6Bc8V+Hst$<5W3@C3|ziF?fXJ^5cBa(eG`lKgH1XqR8{)^O=zFRp#xx1t> zGuo|^8^t%}Zu4YE&fy7u&&^JoHBT%ErV50;yTsgMehWm~#q?ODU#e3r9Sn=Pr%il} zLG>VZ8;af{gQf8X8<{<0?Cn_YT{2ZR`OY)Y_i5GP^i~nSP)bP1b<>#RBUq}84zy^e?8{>V#9w{Qkp1pVkL z|G9UGt9r_`xZ41D)&X^uv$0fKlwI+T+BE)cEY|Y zY;|wdQDs8Wt(W{J983#%~fg6Eos?lX1c}jrk6O_ zeTl?Usl_40$fogu5!_Op=gSy9qOGGaOJrA`#{s+UZ5Y=8HWM5h2Xn9d9=QichxYn;AmDHE(dEw>ppNBIs0Oq zXAtk9-g*|AENzBljyERf^DBQdPqQ_b%jBIXoZh@?C*0cgkxtB&wHL7&0$l@B$7&kY z%=cd!$@(h^NVh~+``&|a6EkMlmA=1(lk2pW$&CZX%OW5@))Y6me;ni>W0q?=h;@T? z+nE?tp87-|uUAc3(?HrvdS?Avdr_Qpy-wQ__GGN!Dr2Jq<}Os<<#t0<5O z-d1@L_2P}t=16NeMKG1z3((^m94>YTeVdx;D#0Mo$I*u~(EA1#Xrj$Cn95JolthGw zEv4x1X`_KU2wiBiiJB2+0g-60`ZX$Sy526DME_Dm_;pe?eqtRqe1eHcqmQE;Bi~-V zy24LmXi;QbTa;v1W0;G7r$oWUN<*XH%~zG->V+E=NTc!YQbv)BBfwpgjpJ$6F5HVH z)ELS9Ormqp{PXl4#;FgOuGY7kn(x--w_jWdqG7sKTUkKwE9{5xn9yeMGMI`s2k7H3+c|I5pf`NV=2GjDdJT>q;be0w)gE;yc-pQnsXU@L z-|S=Z@7)SLvx*|R$Df#bJJU!=XG!cLbOzsfEA7v&ttR(xg#x?7-g z-nL<_ftgc$jVz^lSMll^v1JLDQr%ARou8K-mx!}@S(nptjdpDiIt-FGqSQ#H;8qsM zTl<@c1Xgt!8*A3w8R$94yvBy?hHc5f>{N=K&&o#&C7H13mNzIi4I;nHE0mT6c*b3q zq?3CA^oHKTewUBiNZa*kNVi7;#qZB6Ckgqk3Cc*DgqqrE*ZX!Z`1bR_c^00I+|XeY zm%PE;-284Sf$E|0eq+hY;nOQWwoMs9oM2MUu8v1^(+INFd-LlyZ(yjh?l-kJRU5W; z5!~8FHj9;-Mbf%e_c(3RL-Pi7&5fyNbwCKfgeR}r3>y_Q~N(V2mqqGili@d}$^432AP@%+Nc%^% zQ{WT;&j7~oSa%P);=eG6R0wXqG}Vkuovx1^*s_#wfjhegx?tH}7MN!g_8HsU<07?O z&sTlRXR2jJ8EW~Nw7d}|1&h+Z@AJY-V)LO#`BJBx9X5LN!R{!Z6I|#`-Ns|*n#2!r zf@-Sng2p41S-nO}QqPkLO_HCkXax22gokW3e`O9n2ZiMEVza*k?^~w=1B~LmR|}lX zga164cQ&EoiPGCxs>6H+Z$evuTI9koY65$PH?)oL%z6*}DF5;OEa0&ynDbWifAt5A z=}X=_p7RQW<v4eyf@Q&W~v2R7xbn#!YUFG=oTcr zxwY9r!cxVk;_!x?QuG%Wb!{)3vu;TTF44vIQgVdxx|iz5x@a|ZV6v<5d$d*XO4h26 z=5@lz82jxDHI1wHcrZaNyfLPZ{ehFCH>&L&mrWzww#@T$@j~;WbK14Io|nyYrvs?R zxA1c9Iq1|FHmO_UCL~MMfQe7{Bl9A!9SORvTaRkV)kH~lhZj4lESo!NJT?tamXzg~ z32+3^JLEgSQN zhK0b0Q`;19^G<3AaE#7Q$yOGre%H>fiBNH#_t9X7gxD2fx}t|nM$xIFXZ<3tm_5s# zTI+=$9IDSulH;C=*R9BZItPivm|X`gk&ikyd$8r3WY9`1AHDonYfKtSx=7~>-S+0@ z7R^>ddy(Q-rLP(*j6)WdG&u=d8VJw4wCQ8B2)Mn|_|E#kOuPCa*x}&OIQjvXK6M5h zLJqxKaPRieC^y0^p&GgD@4dnRX2|x!Jb))P z;)hKQ1|hnWx5;383Qe9PSv>JFRVTBzf`iMz5f(wkbLq5?W5#X!dli&+pC=G#Xsc;7 zF!$e_bZJ*p8Ed2W7t?p%dc&Rsd-Rx`&_`<9Heec&ebpJ+T<*Jm*8c{{Z&O1zm_Pee z@9TzK@l@i6FdldUePRlkBnPyJ*0))-Y3E(+yNOKiiN;K9|2ZfrsQDbUvj+UO^#ua> z8kdb+Ze!ib(w9v{M6D~%KH@ZiS}qWtqG9=}Qai-KY;P=_DyMz^wOg=dU!DfF8s!br z+hR1~GfXjnr{$i5tT0~N1O73%`0h>tb_Z?ncz(3Yl5Y7pbg(REhQM$-iqqlMUDx^7 z$hZj7!yVkdi_dVAA0Lg^0mMV`W3wqdA1wiamqHTku#B!9b7u!|4S<={$^WbU_`ii5 z{(YzC!w9RD9IjD}6#AipjDm`W8dzaF(V~!HZKb%lC{2g#rKp08lpJXdks6oeXXU43 zsgu4L(N_T$t9HOH*`0&XD6)ieP}ZvFIp{FpM>O(Z@af|Ae^0;vUE}?K{r<50^9X6% zvg2dm<~*oCy~mu1i#o5%=8SI|ZAzId+^8z?Wmc3~ZJtLO3yqD&n;F&XuTn4Ik$g|) ztP&$(Z$wF#$9R|Tku2-mm_e;7T-Z%%bq#sA%#r3U_b^4DoR3C>MOp7neDbSZyZJS! zJFT)XE8OEG&w}P7K^DNSuRT&$#M!f3p4jO}klF9(*I01shSgf_LQyqUSDnVTuLSq!dlUC zp@O&FAVtl%#>b8l9vNGgAfG~>yA8N~vEcC(=8NHX+v@Lfsr5d$P`t*rTfS3M{kb)+ z*|iHDM&Gp^mMn{^&ji`ay}FYsmwyuz+)V3Z`L~SkLQ&n8dIC)KT2iW;{q%w3(Y5* zI!&;2E!&-eGFLG&IK8IPc02g!P-pT_$d8kGh zBHJPDBS4o*2awY!a)38m(Ap|kA)C5$kmXGe_7k1pRsHj{xS0YnXJNbIWVv0zmJjm z$HM6T?Hm+71Q~5R2L%Hm{Kl*sc(GdlkOREX0@w`of3Pj&FXg5m#UCQbyrC}Tubfx5 zdp2!9O?n30ht>)o!rd=DOP@~3##OFyD;Z}hqgR(&ThZkdwmPjvc>!pfW2vk2ZtvvBvb zCWqAWhSTeG0~&@!f^M5f8urGFyL)GTcdWieJPF=pe`svwEdiJ=LSe5DYp9QheT;dD zzOn1Ma#aH*VZCX)zkL<}PwLMe+uiK04L_L{pteL36K>e{kt7HNlod@kq>fZ)0;61u z2w;zRCZ>#(;?@W#6GaOpAme)Ght{ae-hlXfi@{D5%v}O>y`;8< zXScit#s{}H<8XLk3<934)m#sSYi1)=<~Q!z*p%3a54`0~PShZMcc;nm6E#aY&`;1_ z?=q@WAubi#2S!I1YcX|#&7NO{5USoQZwjKU4z{&Gkgxp2zY2vV`>IyiQ@jU;? zUEQh*0o!nb&^E*3h2(@6)f_Y}8;I+=D9m8yY;(ZdE&Y&Ye1)CWIu2bq_D+k+YO;2P zJ^EsE;U_JV+3=vRLaw{#pj!U75k)7k^3~)wR>j$!!*XoOWtRDcY=_Qwz>O#|vlU3M z_u#%h%nFL~_{Os}*r)D{QgdGNbhRbb-)WS-RX*j0C}_A+(D99@M^)99e@-kkx* z+e&f~XzHlr8~aQVi{Xa3A79_R?=j|_4nIsYW$|Ch>axMejtazUYO0R6va(nz#J%L~ z0T5NqzItOENP-p(&O!8~d*>kDvqe#u=e=^Y-@&B=c{RsWsRpaZryPysOP1R`*ESlf zZiEMrDMa=^3v~@Hl5n3UGEpOl1~6ga{DTzg6!w4`M%~ME5ZfF^c{>btx>oyxJW9Yn zxatQz{ju!zKkS3^kvRpI=*OSlK6{v2`Hb|o_;Q=3-!U~XGo7Y=NT&s4-RK+{T#Gd4LjrjN)x~67jlebKa++0M%{mEzVg4<{NG6b{`1h@;6F}x z@IOD@f2poNw3ql+&|`hD`nA1?CV4lrmf6;=#32qD8H9ih5q$y_`52P4Dwu5yeeX<8NvINYir z(KsU++U}8ft7*CshQ^p3*Ux79;pFakHwVV(XCpi_jDFPcpGuRj-k&*Rg{ul(P}@E8 zh$-IFb!NL>T)D8>F(?&@NFwXw?2ZaBvR3QJVbr1Ac|gyiS{JFqfYMu!-PPZ90uE=6 zdXr<9Bz_F6MST?5d#h~&1o(dVz~#&9b^yzG?FwrT5ApUyM6(=Ytg2kgt>WD|s_zI? z%<+BELaa?8CikRhVh#b%9`ZPq#z&7Y!1l)g3i#RB6UhKs)dosygX#hR+JCx!btXVq zw#?@sA>f)4?2r4dCR&CAu+H`6m_sAj$&U??dZ*Il|0^A7ZvS80PvZZ$d1?KX!Tzpi zzyB6{=>|)aM4(85Pa@FHMzHd;=Rd+qwZT~F;yrLP5drnHY3LG@cnGO^_Unl$hg6`HOdUPfFnSBvbz~;l+NZmx{FQ8VFUs#+MQ&&f%wug}G&~7bN9u!c zxPBSs7aP38hND`RiL&LwE(HnSp3z0B!m?!28diZZ)w8;&CVTNvA2glcuCRVfz@)h^atR56^U#-d^pU<|+&mLnM&Ov6dqoE1N&Mt%rvif0t8?%A{pLwCSk1w2+oP+WffiPjS z7dv%=`b`erALZQtkL3V$)cijPg3T`qs{*9UH#UdvZ-ktnx94^)ooWEL-E{)-!BoOo z)#3IrxOof^O`ZVWL}91-Q9rbh0zZZRLldn(H8}$oh<|MIQ*q}YzB+|-kiO6<76h>Z zuhp%9PdS0;*axWcUPU#+4qEqC&(eT9v?cV;K>;CXm2;5bss{c^9s;}xUPhyTDx&yb zDdKMm_ryM8Usk~EH|w5*KEU(OLFH*@=O7Tc268atNPdG>g4rNb+h^6z z+sAIOIPm_!p)1y5D;?YNb2|xR19HC7-y9uw@&`x%lLPAi^7Pd84ag|Z z8Wwic^eSM0tjn<0sDg<1OQ*} zZG`A`za%Z%I=f>353aZG zy5HvWM`nQiYc_rf*_%WcPXV`y;+v}+@sLY45eO)VXy3Y>{Vg(pG#T~eSuSC?fTrMNoCpQ7B{R1n4r zEE}=Hia^TO;F^FvIUC!)&)?(Ia!(HkLw=6{3XjW=8;v0A!V%{n2kIZu_8hY%q_eaZ zsF6GiI0qq|d4a{d#U0FAkCxjLIS0ufAR%X4TxmcbrCU?m)(LuBl00YkuHTG^d59zZ zvM3nM`1Y)A*pj1{?SV&BM}X(AD*%|)3WTiX#$aEwpIL9{Zw&FCaRHzoZ~@rB+w&|L2^`%L zECZiG7RJ=iLE6}ho~V;PQDE(4N&h+c|44x6e^LMjJX51^4pKgy_|-iSrwm*H#*k`v z=0OKIo+TJPFn3s94yn?uhpff{G`Knq@OdHl5ei#%8{lmjddxTdlc{moM4sJ=DM0%l zkifOqC#X|ycmUR22ZHr3g3V$_=3wK7WrX>EFhq{o8l~PUC;7)Z@1qL(rdKhgGG(a{glOpbr=@ z9~@hAxP4^hijUc=KL=q>)gXuTz$#hN20j>;0utW)*jnfE!?k~dg&b7*VPXh28Hjg& z4S(*Rh7bLLHO6N@v9oai#BCou=l-Npt1}N%K&AgYh2K?r`2Pz-zb0G``Rn;QV(ZZK zFv!md!+x4;0ydHLCv!pnX0DT%Spe{c>?aobzr%CnPw+(ig6BC%cufCHYFmGU1OM-) z`VBgNHBX__GgC@H4{-pNetK5(KY14Ue$Q73pq2DPShvvjuRo7h_+{9Cnr9tg*J|ftu zOz9DSa@x87#E1a3|2`tvKaU7Fv*&ETdJdu*(?`O-{SJZdzhV9d{}ue5|7`!rfB#v` z|HiKXhx`us-zW+w*#3b7zdzr=k9;V12(@tOH@%ql#Xbr10ceJ6u3h>&VgE0B28nZf{qoAFQ2y z1d7o47@!JOncNbI_|F zwFyTo3c%qHrNid%kHFh5KYyLYrf-uYn@>xD#326^ax^zFyE_gn9^2@LsLb)k4JGD;!UV5LSIGo*rCGF$xNW6%1=MR>)Z2HhGbK^-U``vv=(}$XF zXxT>143Z@Gz*D!0Yb$2zOO;qntAoWQM3@!zeNd0l8ydH7>T#bGJreo2ri4vbb<-^o zrFCItpHWgP0oHH#OoMfYwOGpyG62qnq{yKv9ZAf$6_!umbNcLkR_sEV|#c3EXN&)%+B zVYR1Fy=+F)`mV5w255k_S(?BaWtIEzH@bQ;s0{f?&n$j0jdA$%A}4OrSI59xb(8UEXvd^Ne{jbJ)^lucBJ2KJGjo)xT)7UC+FX; zatQGu4?m5titmEB(<4f2!uPUf62FXQ6Dd_yLfseA;vJtR8yAGdU5^%th!>h(*0W!c zf4N-x-ZWlrBHls%Zh>Ind?K_?sN1P(&+N5W?vj5{Lazu^L5{h)?tFvk@vA6 zfmqEx{+4^j_HNkcx|6shrcAu5_S~pm9D|nx|pvPK@J%iw&GA3O_KvpGGXwBaoo z%A(n*dV0%ox|JqtZ@goZKERPi`Ndn!$gW}m?dmk#?5Ed0HyUn(gS4x%D}b{F*yzUm znl%rYj}bqt#@wTqwmx@8$PrdmJ*M`Q^cLh&!|SKgMTz?|Vo#h7o#d3{#|WNijOX>D zZ_MIlr?VXikgs=aSIaaax4jJ}y07`~4O11fRLI<{EJ{3N7Ib*`I`mO2RRJ2P00D_Z zq_wNnexIj0@)p7?-ZjK{->o)*)9vk(c)t0-N&zt{mI|wgwy>{}Jt97{U>wilS4U)K z8e3YmV>}xHiyez-O5o*2m4~s=5L=s@V(J=>);i2$5&Ke;Pm^{JpV(b4B;zX#I1EHQ zNZ4$_?13LUERl}YbUMLh9BBl&V&;oQx!XcW?<-$CxEFm@>QW(lW(%40Cze^C?I!d` zM?y?Rql|eR&7Rx$UwXaNl5+F=cHg--Hov_)amp#( zwG#W(j$h}!PST{gsa>r0LWIHL)<{!g{fh2bNUy4#usl@@!}m2>w^X=vtR3q8l2c9e znss@)*wMaqR~A((imX_7R>$zUATIUwNN(qcG-3u>IjjoM2*IYWBJl9pG}`$7*CibW z%q=>d7G@W49>3_Nu99WUp;0C>rMT34cPDTQZ>*&@Zx$`HJHf3qrY%vy+i7LOXaO}% zCz%lNEaBAL6kjbGJi~s@EiN`G@8W#HaHm`Y-sR)ZdD4WMK)H;3+&Yb@A??2GS+ks4 z`j*RPd7G|9BKk^*7@R2#SAAF3X}rb5w`sO*%tONHXk_3smz z%^kv@G#0^s6(DjyREhI1G5#9c}J#<1Y#WL0B50q?8I%?L9L z5|yF}uV^QZCVWWaaBd(vc|>+RhP(K_wS z>ho*BTZrY3rpOmYyNi+*V>%gLnXXQ$&a8fX0rkuokt6G4XL|4|T45yYZPx&yr2^i^ zZ^5OvIEI=8BCUtl z*V3Nm;9bUN@t`aB?^|ccEN~l+<(?mQ>`5t6AJ&Wi%wX+fM0bvA`hCO{02K zy@qgcf`7JP?&lfDIK8VnI<5cJfv3wi^wHh){Iw!i&OIS#d|ymnTJ5jQRpe0RxOXG+;ET-YbIT$%%9k5IoHXgB zaJM9k(ma6kP3o4&N`p+M-KEiZ8H@QUuiAG5pebjVM>ae2#FuEtu(Vg|OG8WESop{1-7kUh9>?Bq9)h^S24 z9+IAs(l8M+9IdpxEyUMGc}tz#G+#Vn~-5M=pPb)_snB-rS*3+>Jt!GJ1 z+f#0P&1S2UWWjRk%9$bFsY4Ho)OM@vQ%M9@YDbMPW13uJ`js)e6|tcg@j zkJO|)TAo)Z-c;Sy!6ZtBuR*IGHO%w=)>^!8;=3drnbSO1tm@?0xu2qoLR%~L*gCbk zP|S;bC(;9`+de*Ed;@>>x|MWE!H%)>X7Ru$c(*q(wGPY<(#i0e)-axJ380@e32c5eQ}5sccsS+T!U1{dS57Je$4cy*wEDBLnc zK3w|d`k3Iy8CROh1E1k=poy!eXfg>D7e!N$0NO}hmH`!oMp*zvBoQ(P?Sqs0frWr9 zy+?OZ;3Pw`R-O;jybRN+Ico$GZdr=%%?wsZNg!Nd^JW4m$wy>CjJN~>pC2q-pivhv zEbaYEV~l&%+>9Or0=*XY2vd$*P8mY9>7Zy{Yp1Apz!g|2NZRrs0xelE%>bG^8%2;C zzO)vZV3WTb%4m|Sf-VU-Cef#}=m50K`fD6oJp^r%Vhq{RDiBMm)j;wHsRPyE`#{rz zqu_tT&ep%$JlK!k|MhUymKm-NGs9I>ABx&z$?yd&XXg3ok_bEKk}04|(E|#3g#>3L zV#;Mvy*#yyPRr?2VA}%`p=H}?Jc>z4z_f)YLdT4$BqJIKKF8=#kUks+8|~u_ry*+T zp|l_zO18v0q#Q&M2rL4$Z8ODJLvieFRCcCyqfb#*&{TFbG|6WbKb!!k0Of;tNy;t8 zz?M*?q(xv3t1CeJBqDApZ&8*`UR&US48J48y5r&IG?zNkw$F3(tyR^$1ba-C=gG7@ zXRO@rBJqoZMtJ3s3(BVyhrJK^Zf(Hwup1A$NDQ+nVl2*84B7-r3VR{tr z>Y5SxE$tne2E*rDqjcihFvQ!WR)?0-zW7dKH8(~-)qG@Tk3^LEQ4J?aQrIHNm+#qvy^A_exlFfArnSw|dtG^=7-F z&H``1P!x0yqod_gZqvIF1+}aQ2Cbc>PMVD`%*=dL*jg%f_Vg*}Lf$_sls(t& zu^?RCyue@7vAmVhaS@k1T-RRZreK|85#r)270n_YvyZQNbG2Sg;6>$=DOMHL)@z~; zZE>jkuIT$ULlSL)Qmmuf5W?lo6{6+nBN(j5CDjTf??CP7-58hNg{r#47i*LR?uW!h z87p10de9ehk0=-aeOMFcIcc9!c9PAZV)CqouRv06#Igl{SFLo!{>|7gFzv(xF;2Vu zZXD$$n39(*D_D}OCURPwyJ^YR&4tQWK6!H)d_75dX%@Uau&a4wCe-M;nqjMTT8iu% z<1UrEMBK%Lw*$Yo$EdJ`(DWA4pq7FZd&UDtS`Jni?ex9kVges@Sq;}PCsnH+OiJ<3 z4HecRt@%gW#93RNh^mURL%6GfR&#D{B@?%8iqvMOUQY}NohcP}-f=(LM9m#3awMXM z?`53Cg|085U-eV851mTRAra0sza6TOhhA|i9-AXpVtD8GXm|^nO7BnJT7=Tp@BE(p z%ra4(OEW^9JD+XGbN&@}tOUKe6H9VhHN1Oav4Ul?n+u@`4MOxiha6{Anyim`H+;3-D#t z*4+u8F?oq{hLgyvLf8Q@TZ&URU)tCeL0_?U*b#U)ZS{N_$gC!SU;pA4UimX`w3UK*m9=`M;dyOhiDS+>C{ZIr zb$h{h`;S`J=2DN|^F47eB`}XDrl|DTOhUo>;wIJ)>rfn|Z5>AQZWvM+f>UsGA4DH8 zKU9qA2nInwfb1%8U0ewpsZ&HK@OlD(BeRZyEDPfaCboG#2yoT|Vz{sDK0NR|ABi!B zC|z-Em@*_uqC(clG(-t0w+aL6S_WnixK7jwO!*w58U%WuP^+Zss-6|ZskU{*BM zCxS42jhcp&q)g*ryM=)lW6Hi9Oy*ot9GiVvf~5GRS$9!mdpI6Lb1(pjdf>lOle5yujP0#dmlZ*7J;@e$XOG?jf3QcyD;89!h5}XO{|%(Bo$&N= z$0F!*)-a;YC26UFf@XLB!7}ln5F9@r0(jZR4o?cA8i2waoznWd^)O8LGt>x=Te=PH z^N|5=i3vQ2i7Vt_rZ+$l4F*O)jr)Mq27w_C!f)?Y(n2u?wVl33$LCN$W*t+twot{O zGS0OzWBMN~2OJPML;%V)_gQdksoNa4h1Z;Yk5)vTIWio()_#9U|6?n-rJ};2!0^S1 z%(^P8-8vRo?-E{5heRj!?!yodR=-Du1>df=iBS3tlGS;bP~7c-JP8~;`| z8v`eATlEra_iqQJtF|g|o7rc4(!95vFBkUooQQL`b@UG5^Js1kK|61M`!Zn{+o4Q& z#meR#dAH_mfghk+_VvTr#v6vm&u0&P4AD~6M z@$@lGh1&BZmX8@SVu>yFQzbIDMVuB4Gi7?hTO6}XoZeF~tQGH?mCG%XRV?Hp^Rm)n z98`SYB#WLr_lm>JnTx6|VLIiA`%peWEQ+)a;npABOf+&n`lKXBDe%i(SM8lUbFbI( z0_|yN@6HpbYTxGafMk89JVMj%L+Js|FI{pKtUKqAzxjOf-K+E&+bBXp#_N<}{mj5y zRq`D74K?P2!^0zw1;JjlblVR)fGnGU9$|NI)$2x!u?*$h39DBnPsfk%A8^_>Z!6U7 zeyBZrrmT{rbZk1}l1SwNVMk&|@@s*>jLm84iZO2i3~K0l<$&^`dG2}Jt%a{QC5P2= zsd2mOeF<;BDv^A_dhpr}JDIioPw{$|9S)K?jl3{(HwE=i){pv(rFHh*-`z20Q9p(V zRtrxxmQ&Tb=~b})u>;a>JP29YR*Ql;V8^L;y7g@ju?Jcc4R%~|mvCS76@Mx3(9>NE zy?;}>s)c*6e@8)0nW~Ghpg4bpcF4t>Rr%BE`^u-Y_#d6`=G7UIk#cm@HuJxn#?31( zpogKN_F&6{wiQbSI4r2umN|Rm2i5l~8~P9)Smu+VMHvDI)Q`jtDd%sM7^gQ$5i$d( zn;*mnS0>%=obi8P=6|+QQKJgEV`lWUezLWO;^sqX683o(s}V-)?(E1m&II%9d^N!? z<@ZOc@4AH5cWdBt`qlS&+=t7V>CFqKHr9=j_6AtY@ zQwJM&E)rN0gEe|J-V6+$6_7iVu4l;G(>w8a)yliALKIDK-s0?cI`(1@OP9w**HS)z z#Xr9&&7l&P}gNnppLu++jWrH6d+AU!&!2Ck97lR`syx;Q(a&n$?|DI<&9;Q6z zaq`L2gDj^$X?-b~Fd@`T8o7LW(Fk9QJ1t%?z4?3owcc{+MF(U52`-uFDWCrVn!-S!-KpL<3 zzBe>BgUc%d=17-i@19%ua;tZDlnr(tRuw8brNw@~vbY(86{UBRBE4_OBvjf8G??nQ zSgc+6+`0V;Z-K%W|1?$IC#%XWv_`9Hdt#VD{oQb(DYsyYoyVTejC{NO!OQ%0aCi3| zxpN$+-XZ#$->HL$&(SfBO2}I!p=660yj27fcpET=V~C_RI$?zw(~+p`GlW4;P@JB$ zpd_N_}doZMUUoy1PU#+`tEaelYwURAKcB zJ2FTN;0+yLRup!?R?o%f_;=YlUd|no4m|CDDELcxf>8PE88hFrJ|<2^gTiHP)s^VB z!KD@>g|1>*OsNCO{bHem*mV85G>=n)uUrKVnPup2-m74(dE^I6t+Q7-1(8gHF#O-Z z%n9pavIN+w*D!QJ?@_xPV>5fDIGxii@CQq0Cx!+9#oX}|7#fv!6mb4pEkNjkw3d4w zMb;5Q5&#?v1;X-fbt#0388opeh?!B3IhOM8~~gu%J}mm&I~4O zdlUOGH{(?Wl-_y))rLWhlvSG`+E6ug;4wi`j{s+d%Gisjz|bM$q132BL{c8&^L3Ix zxYPbj2k0EF>bL^@RtLuz*vjX-U=k}_Bi{e&0im|PK0x>cGYTb9%p4iD0HEAQtwMCH zJpRE_X3|Cm`1mc5$BvZC^AM6q$H|(GEf-Z$FdI6^v@Bf#jKl-`!?SCx2WghXjrEl_sk|oU)QHYv+k|$W^ zDo`B(Y^pc){s+y;UFiC&A~OCyL;)EGeI+R}$n)8tCT zVD1=mt$#2Jf*L!p@d_qufgcFJA1v)%yAeOh1+sDfM6M#lVCUbc1-NU2x@#y|`VW?E zsG%uFXgr$Uw7?|K_Y>4wL`UR(utNz*<_?K7mrq(3rtiIoTl(Vx{I3rjr+)dt(h>9E zFHfLh-w9}1{To;sAaUL=Bu?5OvCkrI)#^_YmqVI=@;q}^M$8iVUwQFQT0IB5B=jdU z;+WGyfoVa(v`|Y%f0dKJZp$xn@^f2$u&iGBf}>acbx$^U{^ypQ`9~IJZiyKJ`}?o> z5%#K+PtE}h^#%`{Ab#By%x(tO@3$K%45S`xBo>jxL~#EhkDzbCI{jhw&u#gW%24LE z9RJ(4q=0R~Gq__m)Wi{{Qb_{>{#zoWR;>o08*B_l>}_7gGrSq>D{I50z*edQw*OVQ zAREF(A3;qw18(^SbP))P_O||fhK?Yl9$}mU0*v{s0B@|m7)S$Hy%X&ho@9XY%U`&7 zYJ-a*8!8V$jWhbo;zOWQ#a|fEQNNAPfb)Vs6a|`0!7vpCjB?rjuZjYo0|9ypL|t#X zn0k-*uXICfR3`jn&qyYFrsQofwD1N)L(^!)Qb(r9So~eX$N(ApIlIt}*?}qxAYzae z^-oL=_$y=nq9iwDSPHhX_Asd_W{m$44W5L|l+t5;^(A;hukd5d8K{(eoJZtt)%c*} zYfvlKk30Hz6m1uWBM%?BYC$R?rG?3iRT3EvH!3URE|l!9d)sDzx|qxTY4Q%f=25Y3 zg(JN8InzjrMD?Vq*n+8bkLBJ@PWN+j!~3_kxQp&P{iQLzUI{jT@OI|mg}TG3P1XMt z;13^nePig+`j(^y23yyx!H9TosbZ zNY2g*2FEDr*?KgSOQNpsDHXl116mm{ey+5jp9QrNf1#C5@#E53ANoD zWFjk^v9n41&#`M{$xTl`q=;U@IaqL9?ADe3RM05xz@w=HRn@1)(~Bk(P5Q-l$IIZ{ z1HqM#Ltj35MxB3hu`~Os?^Uwvc4|!1U|kh~h>Tb0xKLLx@Zqp#(H_o5o|ei@5ac_4 zIv0`U`}{E!rT60~E@_=(jdTL?(1V`=c)6dSzNy=TfgGHNk#%#Sc8ImYTvP|JYryqX z6lM&({=rhE!w$sGm<_<-QzLLh_`eyWAGzX?^&uR^uK^%bl@$ieEv ztPzwy_iBR={=Qc|Op*1&=K;0>z9(;p1>O4!impRI;Qbn5tDQ!SM(8vf@{f((7+m5? z_>;%zh~27;C58?tDEK+LYeU_@{)PI0(S0{ql1Z1p%g4XuV9=wIIh9pV%uxfh!QZ4C z0puGfk3WSKNH=gh+UEtq*)dpXFJw6i)S~z`f@%@$#_R!G(wJ=dbM`J5U3BY)uR5UX zt(>s#CqnAG#tIgj^|Xkir=wF}D{l4~T$b>FJvEy*8TcGs z**hT2P;yUWoVEwLxr&2X{tZfgN7z?5*OQiTqY3;9?nlrGGkx6Ae&y%kBEpAz>Rglt zc#01Yl0vaa%Wh)G1g>Jc6H%E*QMsEuEA4}Omw8L*o=lhUpv;*-KRp0o06oaQ`HeX? z@TN2F#;d#21o|tu-Dqz;jfIuQ%Y*VfjUKcWiuHDV3<=FCpeLb{Y;_3I-xj}0de_@O z%12+1*>v~AtxE^An?ZljGG^Hq)#V4vSpwBHZy6A-PG}v7S#`V(u&=YV0OIiPdMo#z z*agIo_TOX+O84!^XYpIx9!?m7r%!_0YX{;stB-#Tpw9uP1)rCn4B&W%2ueiKDzke> z74ZsUIZGXsQ2+~;?9C*~pCck6bZ+pDJnvu#Ewc+0o4o;67srHq%mJ5jLN|%=5m+$= zrniE#0FKM~BA_hJKq=xNNn=Vq4<+lQfr>2v^8Z&uxc(Rd^jHTIOhW1dK~7T+^ydxh z%x)U>p$r{spwVw3{(C3;e{v@O-Gu#fuKzCx+pF~5SIENuDyUw5k;Pb*0cf91Ucj{| z&>+hJfXc)$jEX1e0q*$UE5L+ZK+I)SDO(YJVK6J>qwk*1D9&ijx4ZyN%?JEfp|`Q^tP1A1spR^JwF;Yt#Uc zP)U|YQ`>+ghqalb7W17*^eA@9_B_OnzrD?eUR#amNF1Y2ffBf>eAv2v8Jy7+Kxf6E zp6LLa9|%TDu%moNaM0=qfJZgjk zvGN{NBz}`4AWGfaC?bQ1$~D3ooyh-#W%m(bM85`b;XFx;fhcl^4r1yADQ{3}iq0hj z9rh$q7;p~INiZk|HJ6TPmw~U#!)VhssFg4(X@O^j5qtzfkb%l_T&KF-Ui@M%x!wW+$KB@Pn}a|92No_Q2-8YudQJgGa_QeJeOR2p+&$kdE<)l25-=q z?Lq#|8-$H*|4+zP&N%pwlJdK42Z@~xDcD#m_b@o3|5Nn9p8mu1{&7z^7kO_3xxpJxVj}~i5)?{GA~JcGdhi$CwTR)lAnjxG_Gb5Dz)ca=+nN`@-F`0kcx$#j z16krAmh-Lil*};h%0u66sfN1}ImxRY&DD6gNh|du9CD8OvdF=xE4jSJ@v4WxDXs+H zcI}fB8DS!~%M|x=8xc=}a4~&qfGwa(qDK8zbjPl9l%P#D$C&Pf6J3!q29%g#mKU(E z1z`krnhJIbxVM0>fyHEDFwGm&+%gU7|Lo3k9l!HQm`=j*uQXu#BL8>(W4ijEOdYf7 z&;L177s(6lLsTV!ZRfX5wbX@vM_`>9XuupQ7m|fz4hkT8zPy*u^?Atya(I($@;_K2 z_WxjsBQS24g6fbTENL@G=x4K0cwrSsQaortNTG7B`Fq2YmM9>nP8p*+dNPj*7a_2; zDNu?Celr9dprc7+j!Z}>7z3LDR|*qM;4~h1B!h&eE_f4wQ@0*+mH9USzJY@x3Ysa7 z;I-knVUkGTL=k{Tlh*Sli5qn&a1dN0p`dJq3_u>3>Pkorz^T#^%oUh`#sJX_R3tdi z0RKSbG%(&Gs+e1eOIiYs!xEFb5nsI}NDD{|s+Sf5@E)L5lnHZMp;XL~sbR)9P>6{J za3N50IYJn61ZSVXCszj_#=}W5Z2&Q}L}Pg4^ALV{h!P|f2kI`@Hflgv9Z8{iOgsr4 z@fFnAGivD@H6aWtO$dr!mSHY&4K;jqEQm^)!c-4OQgdN!+fr2%&!<0ye(!`*Yls|E zl0R7VfMV+6r#*I!f;i10YW6mXLYBBlj1J2gPPseTY-%~{lYk~`y=5^7zeyl|))WKfa)W86axO$89 z{BCYxh}zphY~=B%f-$|*Tlo%ss@ZFAT#X+(k~D>+<;fl~^EtSdv~qo&r@JC~bn*hc z*2(KG`TCN&yI!O2kTaGW;^gR1IJAGv!oH?_sdSEro?9qvFuR=bvaxrhaDTU!<=L-> zHm0B@V$RL~Y8h6wA&APgyutuC&J5tFgHudr-sB7g@d-lk0SZ@XVrM5U={*ey`;2ma z@S-y>VsuIeLEL$y%rD%Q`U><*1z87vV^1mx(X|@Hc&!Uti%EG21h(M^OA6zy_xAiG z{rg?1?5uAG$zBe_SbeY5?}MCirPG&=-ny_?K~>;&_M3t8hFn}q6Y1%(puK(`i*X;j zedEcS!F;baZ;E)heSYR14vBL>mQdZW)_kO{tJ=YbDhhcw>0IYay0&xXVS>P*6CrJO zx;*a_q~HL1xp!cNk)XRu#|wFNoETph{qwuUuwf@@T}BT*je=Kao%MMy&2DldsibI{ z?!g_8^=4#;7*)}M=G5z2Kk&HR+QgJM*d^6A^>rItbNMgM$ zHK%n?J^W6L);s0j*jXdpU8t>r(fZQfEytmDCA{$5rw4sL>_y8Cy89(URMWwoR|S4w zs!_6`Koi=NS6n|Khr|{%2hU(9wq(C_6gjokJX`KO#}%vN?caUb*`D@p}=?sY(d3d28Q*H;p#3caNW8_NIBTSYJlbgH2|g+V{}wEV1PCgggU6U!(o6z z10HoCqB0RWykQ+ky};Xs%*o)HmLilC;sH#>&p}2Mpx6&w2bfFZ8UYvrvvmle6sY$p zOb%mhl?F0kGE^E50CaBMz;jm9;22;HU?dzUp9k&^(2{|4c4kcrz!8Sx859h_2u^`o ze4~{%nmiq-?J+O}Mh{q{P%+JUpimD-K~zG3S@XoH0}h0PFK$%w(GYzQ5-=ISeEFzP zF&BX+;F6ezhkRrml>RZDFJ-kwmHEH|=!7$5olyv-;yxiIKtiF)oe>KitIbZQ#vn%J zoMLFpz#knDS$$T=qY^-OB)wlaj4zfEvPP)@riT*lGu1u%KUDWUcu>UyR0#i)-vqmg zS1iLE)neqckPx}3H)?+kTP9OhVA;^_VA?acy>4{b_3@pUuU$G*qiFMFa8%K-jJI``vr7i)`5dn=Yo%yh?gW-9g;`7a zKfH3M>)+27{XMZl*#rV=A6a?(wzsg&6v7Cm?RNSA$IzxFqhgVxd7()cKH-E*VCd?x z*$d6DY8%UD@(-G)!-KMAZUyB;AkvlXlQCKVD%7e3 zJs3&qGid7AoK-L9swB-}AR)4v>b$!^GRsYC&ZMcyT*)!OzrTKuB}om9B)O?_4pj;G^%>zE z98_?xq*$}6g*zNuqPe;I>B$A71(3Y1I_>y>5AGh=Pz1)`jyU+bh~gv7$FUpHCz zf83k=;X>v7`8Qv`by_!NU9r-WejufHCq>ofO3t>MF#Uxi!Y#By$HF1GQsw*s!+G=Z zOcN6$tivUMLwB9I+)!^o+tF<8FTC}Z?}gj(nYgmoWRpQD(;y$^JHEN=*z!dxCH`Rf z;Vgh=r5DH^S1u{MG+A&cO2N-{{312gKa+)U`j(S!vNETK9i!)k#ym0N=mVU_t{x{= zX9Pf?d&SS*GXqncJ~w07H+mV$g}(ct6O@S7bcO(BP8ve%`yHvp&_H z!K*HC>$=dD{O5g?pm-xuxm!|67tTKvc~yFJEXCNB*U6=|**L%T*u3au{QKN5b*%2* z@=X^LH4e>g-mMT*8hp|=$Sp@+Qecw~hxYFCPu?qj-*i{lNu70Njp($M<^Oq<3)X+nolXgaWr8}`X4bPc!;0J~m=3Fx9ZGO#O* z&rDAqRLFzu2pyO=8F(%VXY36fGi64wG%Y$wmiYrh$os*-^=FKO13WD3QvIOcUNF>o7!7dx<}EYMzHH9s*whr+V2<5s6;2xw3nu?G6nEYU#i zC)JZg^^rx60x5R%0sjD&+H)!tJq7|w+z7L~0GO5;ns;L=YA8@8NMSI4gIEc%7C=Q; zVRBX@aL}bW-A6xI&Xp2Ku}Mj0rp_Sg?}?{hMxX->?vR9lx9C41OrEF)Ws3J_cE6wt zfPiWm{=9r%Q8m-C6Sd4v?FTdLURs0TLrEwgu{JsXR3YkGNT8jGnc$W3SyOC=O~?(y zj!NOj5%t1h!7t};<&Lh;Kg%A3cfA)^${v8*lNb(uJQ45O%onfpw^o%b>ksxG*B-xU zK$DmL5Rxew5CQI($tq&FCOknkNsaKg@>b0_RFF~2!WBL)W@7g>N#G=Y7ghav% z?XS)D#)@L*4t+#JEv)fUt!vgOt+EZK{tev^{VWhlpy*wM$D-sJfSv3a!u{r1jfsVaf$+40SOxuIDIT=X(K07#SP{Q5}9?( z9K!+vION`lpIQlI!r4jrXd1ZwWDck`9B_BRyx4(Ix-x1hhz8Ik2V`9;5k`n=M)ev~ zL#YwS6a)2oNhD^1D2BI+ zK~$zNKorVM;WPw;{1cdWbp(9;2Mfyl6O5sC3AYB;S=(py7I@I672rTSX=$lf+q)UH zbfQd^;o*py=cL>)hpHgJDm{5e94hW~&c?6i(fk-hZ}3@ZZ;)!G6Trv*MY44(x4XMT zRg%^ngCeBt$iP~Z3+P&{r-yVl5In7>!yhfd=>6bjrFNxIi#(#({x!FF8-^9U?RM;N z)0|01=+%T)6f$?Tj&n5QYRkgxw~3|64?N~veu`mv>8T=Ld5WqNRGlrD(M`DN{|EHS z?>f2t|9a(bdWD{Ie%^6i&}WkECP?IR{x*@T3L@9hEt=bm zDEw&N=h=XVpqoT-eZ@tZNft| zDywa4@~zQ?%m+@_#^lD8M<&_{*j$}{kG42L;st8_e2H4Qd{}WeKKIHw?sDI1J`Xny zze=kB-fb8$!gAmY&kzQSDkh>C>brgWQAOZ``SCu>gQ%^-k?ObGVhoJTNYL?ljOAciqyzP{y|bN|-IkS{ z6!RA)aoZhpK160%zqMk=1Zy_hmmYZ|L(iFU6 z7KRfBTw`~Np-tSj!EEhk#5uf09h|(ZcKFo@spRgm*jASgz}bGPjy^h|A~K_J+{W^zVf($n@T&3unGyM&&~+^i_J^+g5yOk3f}rXoRW;@UAj#}l$#hoL86i>`wO=v}jMN~1Rh zAb?s`DvY!P*cuW+1pUieJy{%cNU zuf+Ino%?1X`ts{8f4SqS62`$|&;_oG+D)IlzvUeF?Jce&%$Hd%CR?8~WaAOS+I<^C zSex^;TRkk#Fw|a3QPg!`!IMo15I=5+h1;=&7_|ZFebKb2v zrnkp9FUXm&xk++;)uli8S8>%eNYP-GV!t9^WvuGBI(#VbUC6x7G4_#Tdu0b`<&7vG zS$qYu0Dicw1=_1KB!-Xof8K#aLFFB_I*UWdA=2)y*cw-5ao6bkyn0nb+k#@3*O!hbo|w$iH9sU?Xo7bO zy#V1p&ER+H}A4!u~uPr10ai;kHO3wZkUoP(-tY+;RV_?Fm+_C+yWf z9A{;lIh-0LbC3Lf$tP=M%I99WP@d=YKGCE0$YSJf2OGOR@iyn`Cq6{y18mE)=IGWU zd!>_|u!W<_@P41fwSomdchDYT=c@yc3>Wzxy<5#=%OgOGJK@*AVcy0Its>_S-GK(4 zyy!QoP@r`^LdCjAWmYuhQSFDf#aG(+U)r3oc1)`;sJHA!mOtC0{|R|&X|7%JV46k` zagF268SN#m!#nYE>R60;^woZjiC`|dR8e;w>!bTvt|?aGL{3oV-HGya|R;(DFE^a~&3d1clwmuUM+t|-i?J&>1oI@f_)cV7%} zrxpERQ8G$R_O_ReopE?yUl%#IFp4vaXMHMqsD~rW;!=^lL7*RhxXP~k8JU-RI=k*@ zZLzjGpss%GBm5hgx7&V1pUbvPjpNA65n@*;7bHyL(9_(>6=>jJq-}WE^#WIenUo0G&d%nW?;Io?98SsV*b7Hi@MoOL0!=gb zVL7CPUB9Pa+E;bk`LyyDvSi!kI~L(tqyCwRVY(VOmpj`uylf^)-nL$>_N{fnn(nlc zNz=Hi{QcrKgmnf>XYs7UWN3wKGyh4#@OQYuf=S**dv4AA^3cz4>tucW=v6)U)7Lb| zG+te?A#gWb)6!<8Bi2K~WgQo34AeY< zfuny1p4AM0wK{ce7Qhk(N(qaU7I36QJUj&@|9TchpeZ?M0(h(ufvVsW_9nDFX%0FZ zP->Lhy;`112gmfsfp-WZz#( z{&^lX-$hGC&G(|3kv~`tRg5_@DE3+4Z&~b2$E}L##etXpoA&Sd@w>J?|2Dpf?mRsv zc5uJ8&gY`nk12-k+0ljku+TcRjNpMSSyxe`t}d$4=^u>>>sUo{vh9?rU$V~QhaL^N zaO-jEaUAY#Q!C3DeI?zGM(dc3WLZZU-*^)@PR*2f5U=gvRmfL)Icglfm@#?|Q*QB> z76O2|e|N3tN)y=@K#A0r0RZe^nk|Ch%8Dxa`CCx6etBv#{(8qkqH8Q zW6q)Gt@VDe+(7?h`VI%ucZklwW=6qkzBnxeWJXZ$iI=I8wX#)kV9X%PCqTrK)wynh zUiJd1^Yw??pkskVKK+S1ifl-Pt_IMAdmmE)Zs|ol0Y_WSqZ<`Z`yno%sKT&71col4 z1yK3dhic}iu^?ag(whMezn-kIdiSGd)~VhzYmE%v+zRgH!t4TEOPeR{TJE~X66wSz z(v;J}d`=Z|VGNs54u?7~%;se2nYO3!o7V3dl7|YAFEbd&G zh>fBt8!GP>3JBA_xo=BwQ6N`h7-W;=?sQ`43OB=yM_xT&tQVd~!C6~b^sVn53#cb> z*;m}6rX4X-Rg@eF#qV+5@GUy+KqxwAR3tO0)e&~w`<OCHSi+9(Y7aL&Xz1OVnF@b+^85$IQs)jd*IA{po6Wr+AJu1W{%~?Piy#XNn@rHV z7A1B4mlc_*Q=Xac&W3&8#oi|wUj!Xn>PLjrR|gNLZaVFQTC za%NYN23hklbMld@YJD&ErXI9TsXMY>CSY0QL&oeDUKKTRA(D6ev*o2yVuC99yfZg! z+d_T`syI8#YWIC-_Ib6{i}vwNfhUcxXhNnxZGjMrp>JR@CeKJVLmpHwl4`$HM)B~l z(?rQUQs_MLqUsg(0})r7+Q01Jyi_^P!pfToBYSsP`iRg3=R+g+-&nsrKo-ZsSx1u; z+6>f%hwpUiISklsn`zYCa_{Utcx|7pg@Ltc#%!8S9mckca8-vs^H2T=Jae)K*FZ-jdO3k~2 z1$Zj$B6w`RpA(daMng?qQn6TE>q)j&ydcDO&LP^kSVorL+592dq)xAhXa#*#qZd>+ zh0i#gw>SEm*uU_lRam9Vl&)<%^ z=0fF|qZ(J(IXy;p-d?cPqp>EnGXw;^F$lPW1r#B_2g2Lc4JkD#;LJ&P*v- zO8iC#1$Lh`JnlO)sSePQ_MpdNo-2k*m;qgAd6{i(RzU7=qxE}?;W9YXZUy(@A=GDp z`xF3xP*^&&9@s5YI?;6jXrdPzht=$Bp}_l!fKM@G0xQ5bqAjYEmix(!B$%1QMh>3v zPdRvy3~hyl01GoIrl?OpiTM7Enz24Zn}^#7WVWWAD@_vWFJ1JG56y@1%LJu`IVT^ zhltcY)$E%in$_j^#qJd|%*;DwASxys?K${OK^rDmAR!;TS>Z)8F4;-n4^w_Z|JSRS z0A|JT_XVr}*@3V+0Lx}0hCv+SlH7-6Y`q9sDar)*cMLG|^!&f%>D_X=?6tL+ z;U4(&#tQbKwqZ8)A=1}?Sa;5zobQ)f>aU$baQ{e^9$VIz-$S*@-zmhCn9b ztt)(oL{*v|oZlXkaolwud~b`C_<3q!BTyt4VY}@=49uG<@2c2(=j)98J!nK?uq->u z(@{XSqe$Le>K;KLer$egfYphIpH^0jqKcx$ENVrKXO6;3dUqSA8zot( zBZqml4{tuW=Cgy#=4!inaoWnPcK#GYBa~oCqn}w#evR;M74LrR)KzQmX;iyNGw!yi z%>}uHx9c-20b>N<^j}erHc2W&+NpP-PFl3gzY@0A=(K`yzPOi;B}Z|F_ack zQIU*OK63?=`nK-WQ}*!gtcQJs1qpY@z^kbGk#-gBdx6(kdZXI%qOOK_zn`C~KIYeq zdkpFmkvYvEXCLN6aWD^=*Hk%Erg_utM&faW{ZY^~9ii-N@=jY3&s<>57_x_Z@6vE= zTauJ&Q2{m0aPZF zR?;(oe}PV@sty?+nHq$_dIyh%D3yYlw?>#r0x0rFAni< z--5R5?&@&x&N0zB?i=CfGM`Cl?7O6YcDnF2hmI>-I!{xL`oT-PcJI5oWoeE$Vema% zL+8cp{=PJS%ww#B1K;k=w^BkL3M_A7)bvczK9li1S8y$3V*yR3L36tQoi-N_5{BYDRJ@mFBZ-&`e#Ye z)APIR7%Pocr@i+`*d#419FDWe;I!@^uuHieY!w(ZS0O`#`^?L%-dqqlaYyrGhn7m9 z-}QR`v?r$F)FHx=6Ap|KxN^Re&;%FNxd12cdP?zFL*f;TuWf*3_?F;zXI)S1#PD@z zoJzS(A=fVD?WK(nr&#twP@W-aBcgag#aEGiaWZxq=RvB#!l6~qLrXJ! zge6pGI)&4fK4uH{B5qsmZ{%ul5#ce^yQ486Dtai`+d6h#q8)WrfMMoHm=p<}44#Hj$#noPVeI}G!I8JHz7k_bWIca$7 zWCt~K@2ju-wJ)7k$T{uwuKj>g&h-?52sNcKGZaxTf0;ZM%UA4sHT5+% zr|GtVkg15sNri%GrP%#z(~_rdT4~lU1&zC-L(;z@#Bxxj)Bwk=1by)}ab?SxBV}87 z;>xle9ZSUQr0^TD5>fJQ5dBiT=35Qj6aSXmU&SL~FS( zm9iG;@nPPz<7`G)*)=J9oak30&!VzWM>CE(p&+5rgG&1$dyqlR%{33S@zh96zO^mCd0xHxeZQ|vjoG;q5Egqs`dP-UPa`%cbR(YRd9Mr3g%fP<( z>*uj5zq5QE>D}@IlirsmJ)2?WV{nmA4(@N47SylQZUZ@#(}MOXzN7ll8pTE#doGoF z?@>{7Q@eX9D{QwCD3uN$%GzB)FW)h5?_m{v;s*;`VA`bGWlyoGTpi-npbV(6 znM|~%whtIPtVAHjLrb@4$Q~Vo?VAqXZj*kL_hxsTtL-+|?V8#D4}0Go7iE^LjiO=# z44?u6DoL`EgMg@jfJkhjfMf{`k~6KSAShX~fMmMKvB{|9oMY28lA+0|i9O$GXWTn; zcV_qQ-QD}UyWjoKANJdQPQ6ui>Qp`TRA2@eE1~=Z@$ks>1ApQ(>qoZvj)l~U8N}XH zzpjnAv*S1jz%nbKENtVxP~{$!zHhTF5e6#MIUu81GX@(3P)IHv1+X)af#NT| z5>|a@e-OY_$O%vt(0mOW!i?<^dIbgn;X#nwx50AkA%OqyH-U^&kD|v9yzAy4t)}!h?-cqCG;^>H{(-Qbj_RPCpyQIUE`S>)!RuQgm9`{ zSj~EWFaJjS!)He}utv$GLl|0tOP7sS?i`ZdIR`P!ut#~Hr=-}6h&b!c#ZICqCas;C z=8(w zN{0>Ufa_Ak%9rzq$1=#z50+2smfG(=JT9Op9M#l&>XNdeZdi8a3%SH_O8}TP9v1Hq{-F^?y=b@rZ1j7b2CHNX?B7uD4px_f*iTF(cS zK+R_FptQL?fT5zR|AZ>K^2Ays2kB_s1E;Q#h)VLNKCCNJ(B)M<-4H%LfXGg|a^c1n z3aXA*Xkyvvy`~-d_(;wXKB~le-gy2wXZvLdKD6B>^itti#C@%d(6oA3=!%S(9hyY5&o!s8}?=YEqfUVmi)GaXkmWL#Jm`Skq zoKg}1cWD$q94s6JwGjiGPk`EOhfpnXKU}2WmLPlv0Av6IfDl0#*^Qe(Vs)ONqJz`R z1wIReoSyit?;olLPv#z|V)6;q96Eqo9ZUcqoCVN#1c>%QV-+=S<&NWWrNkI)Xai4z z2};lrb3c%10AhOr%by+F8`S-Np#gI&aXCQjfH_xU5%$>~18_5Ix!-Rp_Fx++@n8W# zdb#*yTg+r4Hv8HT zSXVxv{&tTNzKDNlhPSNQ6`2GrCNQ@(M4}2h%s=Zq4Gwf@vnO`*?9sJuSxp zJHW#9LHgct86@{@w&;5galM#ALd1aEfg!&;F^Q1IgZHSp?>&CoI1p0o!Gh=rIJY}6 zB%q4)IvmUg?eGV{#bwN5zvFmeEBfD)bvoeO)g{Ma^du&#zhh*v03!FZXB?b73>qYm zKY|Kq1_0#d{)~*X$FFtnuY4kOljz|Sz?80_TtYQ<3%Q5U-@)t<40%vut%l%>Xx;J5 zxV+gQ;EjQIAx!J?#A7fuTvZ#`iiB;6MG2Ir*#0b7oBp@0NkHpL?*#^MRP7KxhTMk{ zkiEKiSVQ9hzylu=ns5d;Yc>zO9{$|cxRXHm-B2Au9Wg6r+af7owpTl60G-cg5V(p8TfK1E~A&64CwF^Lmb+n3m*S zbw~PkiFf^n_0^&*1tk&Ibi){(TZSbeDE+Simqy>6?kkqrsiwKEW`Q^%Ss9-fAM#YV zG{J1-M1btip7&}{21JidV-@WI%{hbGtC?3RHy=IkOt@?YtgEe#Xihwih zK(zL-8WaE)^)WTM6}|_FQu{gtibo&UO85crlOXzdaS>IsXN3zI2H7ZWHymN*t%Q}+Z;R4^#x|JO_oe%OU;4_< z5iwx>X`L>I5j9)sxv(zrgsXrAV#nEc-}BcifA@zg*Z=dC-~YpvbMGD=f|VP=wz*d@ zgXmhkQsQCucWPN879?zQc!j=T5MQ(f_H$};XGUVC^gplTk0q$TvA_Q-38H`m>wm1n zM&j23%>5z2@5_Mw@iJESNO~tDfiouq>0q1un*GbT+@FPQ>-C?74J`jZgbn+lCb%u! zb1=6>sK)X;#pS7`+5e;_)8L)eR7#*0ZSVl7y|-TqYoX9Dt|8Er9^2l)$BIpEYlGk~ zz6y|)?0JBSPr|n`@PYz=ttfxm<{v4_UlTXj=ip?*f9x~0W;XJNTK$!s0)x=c`SoJ{ zq_w}5d3q!F&r17WSWEA(*8*hzi-IeAfvEU53jQB5|Fvo2w)USl?tJ`{6jy#hJCIEz1T!Ub%{Y?eaJL z!3u4{2yJp1?gVO-hRi>RysW0YkyIu6a4_&oKXvXmmq(t@ZuM$ZhJ=S5Ox(QY?HRdT zIqX_KEN{eFWJwb&OP%>jpGPKAg{4^EA?NXSLfm$T>xgiyU1?2mpo!-6xs#}d_YIEE z0(4H-`O{s~$ac6*(p5tMo8_fz>HKX#`|qqK5HJ<6tmHL~Q~L7>gl(R679))>3FF+o z0V6i1h?~>LUM49S_H`#{CnujbQ*k)SpB||<&;IXUR{VSWQuhZ5aVH_P{AXo|{$i@+ zqLG;50gHhJP3}%!rz}47tWTumSIfp{c`culaD|5$%Iy6JTw>0vH*Pq|6Wn;NsFl4S zPy!r%dx*((#I=khtYM)w`$`6YQCe4lu=#k6R-1h`n^5|lI8hx?VgEP_#PTi$qqt4{ zy#++}YWh6vd(9mQvLmmTLG_Jj8n$LwVS_J%DuN(L@1HKm-=w|}Hh52o?WMbsz4$>jQ2!cI7{6Tb<; zg9{6JzNTlKYN4QjK0`ShtDukg6Sr}Jg2|7nCah`MsXo;?kMemQ7^kI$52?NhIHWEP zal~mC-%YpCo0D%JcdIVs?dKy$xweg6=JxT?UDFTthIcd|TyAWrOn!s=C_(6W;*VdT zy#*gM(-k?MfiAz;K$%slW649qxZimrH0O9iyTt|M_8^8g;BKc(;^m~nU2p38 zgM^b4Wty}bP9F-JrUj**V!Uq6PAY~5hUs;SBuxc#$ucIm9eqJo)yu^W>=*OHe!&Iy z5A0X}uh?%lh?gW*^nkjLcH%FB=+>Ax9Hi>}mumL9i^YKTxD)>Ge=cDTuh|86c~r3| zh~CJS(*Wkj_a(?f3-_l)6%z1l&!F>i z3vIhX@%&s#4lz`m1^`;Kmw+spbRXfRFa3xHG9_kk>#wFR*OU8&>%Qu8x&8K0#|A2v8!0ZUwxqq> zR(HTTk8b4cUV()R$H#uoLyP6!@84OsI3eo^Enlj_h`k!hMu}D+&3R{ZYncJOZ<{2>4f@%cUtL`;LxEL}+Rc^0 zJ3#7{YHAJ$vPZ46xDf-l>IR=rxQP2az4xkYU~2J-nZ(AMiu8Wf49=+sa6 z{EcloyWzc$oKJ|crsrV!MFE+O_q!%#C4p;W-Q(3Frfc+9ylxy!?w-P2$s&_@4l&!W zus;x7_WC-1hl?G~<8GgiEa}JU<_;GRJ#kWH-g)b}@z*3^~*<%LMwvtJ~aj9n9QcO{YHr6QDD9;x4OQuA7p{;+(%ydk zE4YoNj@n(SDtAHSDflY=d67;}84aZKw9sO}MofC>sas`FEMDuL6yc+X*ao^!`0 zn%1_^*{gPRh_<_CTYWDJOFLY6OY1D;5tUdwa{shsGt07|eAynf#mXGOSu-VlsVVL7`as0Qx(bw|T9i@y{KdM#&}V&H5e36fScr zhNJp7+x>DzyYx?0Sd51v>1}6OKrfCjuI0`=zb*AIda8$yMv!fvX;0`%BYl>{@ zyj~N^a^HD+|F0Y97g_!1SL*n$-3@f!V4-T3pXs=zs)4ydbC-(A&B*H&B@rTkrF7@@ zrX#0}Zftty8@B6DTWBeZVo_*EZoLHs3B?sevy>Pm^NI4*9*w|IUpK3k^0L>r@ARBx zg>S4Y@MbCJ_aHQ1e#R|X;sN>Z!?VB1?t;qQe=oaBpz#p|s`=OMTp3#qABs1N`S|<# zwu<ksfvT#o)U1WpauWpen4J#Jl z|JjrW<$L`7@IJXE^rP2hiG)Ulw;i*$`81zECS+mr>{{Z z@uoT-y1z^a9mYZmk)V&dKX5% zcA`!uIC@swh~8|^Y@Y4)fdl~tO_-aT(!PP9FSByaeKA0;PIN$ zr0r^Nw~F+JT!%WJl9u0I82F)d7|@+R>teiK!J92WZnw3)wh-SpqN%$(Nc#%8uA}O< zh;EdQK6_~zRp#%U(mcUaWT$0u6U#c9nR}wqo8WUlxSTz4#$r6LLf`V6t*DLFQsraO zBS@!ZVp&%c;e&djcsV1j zfO_=-mBTuDnpTqdlX?;y<~)~lMo(Pc3vy#5W65>E;{Erz@h+U8fDwN-0nGbzA4tVt zA1s$1oW$lsiiH;AXw@aI%dksoNa-B=(683Zvf%IL8qVY|b>Ks^kEEk@&n;P54+J!{ zAg#@XIZ#;%sM(({ArvRGB!17-{>=9NcmLt1e?j=a1`z(wY{dfSpd4h=-QtEX5ow7d zFxs2*CffdQ&)%{=oyEn#mLkb$ejV{CxZ#Yq>O#q#eM@Cxy7cVLq|Z>@GMTE9>hXGL zSRvwB#eLVs4BKX{a71#)#2SrT4&rP-&&&c_rV%13qz=M))rW*vCRO>B1>8{0e~>uW zLGiZ!ngggI^m)?br(~A!#eYBE>91aQ{%5ZL;Icp43$j^#OPvRz<*|Uen~nr1xwhbh z#J!){Xn=##RrLb-iD1}RCwLF(K>$wqiG7Gm=Owyi=7P(pq>9solrrBBEXh$@~@ zEEDK_@{OI%5}q;JgcEZJkW}8@pvpr@oQg`Jj%IwH3{kq~4rk`Mdo9+djX%v+TDNsd`I>)H zwCTGhekm4qqowj&*{qG(n;Sukf#pe~LsgjIR%e0v)^7}mD_f((S4llI;zQHou9;6~ z#-vdjFiEGK2e@4EO~_k@BC@J(kKgo$Bi#n|J+eV799;>>HWiCR($7S6Kf*GY5QA zHjOGUBaLEU5C5D@Em+K-z0U<;zX^(m6{<*y)#U}7!yOkwfcXsbqtOmTH;xK>8hA-i zRv-i(@#4vcws;&^V>YB(`Ojw^9JdwHS}eUe|SnASc0Aj1Agnw#k3?0~Lwu;B z?PHTEi@=fpu^y^WB^B1%JH=*hDX6~EAu=IQa=ylwU!?yreY1|37!QNI2rXCE1T#IS6YZa^QZEmqY!?&%gPh8FTw6U$z)Z?yRHQES8jJqf~M-XvCP^c zXCqXS-Jo%el+tF`{lCu6t@ZV}m|1+GD7`bKO6^Cud=I z+spm)BMR9HQ61L0xhIx|IZF0MXxM2_2zU<47Y&5b(oJUjAfL}vFMMjV!sJ z8EN}yKW$h1xTv(!!5;F+!}b>Vl0JO?*p}y;qMOeAPN_{XR29a53%~=uVEfo=3z(5r$P!u9{qtX%#VIatZaK8MbJ^zc}+%Er}+dKZHCp$#) zA9v(Cr`D$o`J$*otg5D<$fu;nO8rWbJ*n{~dwX9zArpKN1R|>cxZw)oL3n_Db|cv7 zU-QAQ^m>M<=;~12hPOpgg87;Amf8gzK3uOzJ~kLnM0i(FX}m_e>)1^exQKO^VBtLE z(<$+M20Stxb~20>wP^ROD*1t^$MM+g?12iWOa>j_ks_Y%9*Bu?x?A%Iq9l_^ZH7(6 z?T+Vh?lJWy)_KAlKl5a<(az)+C!%!1*}PFDeGmNaPB(p=L>dEGVc9DOL^5p) zV;%4oW4N8JhI|eDwoAE5iqI%xxQg2rvCSI=C%0u&m%N-u+GoqG#93 zA%F=!IV0UPpw5hFedSX2g3@`n%wnfT%Wo-lvI=LTuf`AgGEitamYU#XaEMt3cn-Z8Wd?%?^Luq1R zjqk&xqfB|Ps63MtMf7Q_7D(NVvtb-wx5(n|-U4y9_74$;jqRJ}IzwAVnI-IJ1spwA z~j_w2*b?R@=}qB&4zZREs?(U8ZwY$!4Or^y3ZDUVuR%m9gxbCBKl?u z#kb3}v-+ZGYva(-@89n%3S5Zr*q+YXKgh3xE>+zR__8!Aj9~mCqi|013&#p$*180E z1q1?j!Yla40$h%OL+DS%8GY-7KgW`Qkp15SOY-*u!hVteKkfeX7cZuH(5li378^(L zq4p{1w&k&;G*lEq_e*hdQj!(ExiJ-F%XyPzm`mz&FUVdCX$bDPp|AP$4aeOKYh<_U z3R%(TrI$$OvCr|^V@OP2r`BuU%jT=Y$F>HZBBEQxGq^kqhMM?9_}ko~>kKWj*T|~6 zXaU6NU78?1c@99qZb&$Ti_LmT`hgqD2H$rDb~va?u*uo*^+9|~?36E_^*$(GecgF4C^L9hkeJ={k2-fe^an?!~k>lA%V_IP`P^m=WA^>R*t_xJZZa| zaKc}LPOZ-q(nR~3UF2<>CuZsG zcF9pY-@I&RV&yLfUwFHytwH>b@g|*y@=VKXavqVJq8ht(KM`?f_eTmjF3$^0y;pwP zWJ4NIT{1?UCd+ms{o!P*#?o}s>-;EjcnqUv?d@x<+fYF^o8YvPqGK8_Ojx!xB*NYN zN`k6#^J(g5yBj-5i9?inbw;IqubH$Nb5rByDY9K0jZl{MOI5Sp4b}mP3164viepmc zM#aZb!y+6VmszE!Uc(!w)_T>H)$g{YSOg3`Ilo0$yDr7Z)vZ9o@nY(nB>gjC>~#Tj zCv?mTid0C#(`1*JkY3FfX{LdXH_gfA?RvX;;2uZ*$?ktQL);I*zTye{PU+ULZ|FYE z{^}~>jP0&DzjyJ_cfSib#J>%zdg_psc`b2aG4L@Rd{`_Y?`h{WEU3Fx@mTCcRO5aB zh#XC7&6yavldKMvtQ2;)!nCfDc@}NA%`MKj3@d3|yohP~liuE{tMB}?Lf*Qbf6yJ#cOrx_5*nO$ zE#Z!1b=108HmNhDZ_93}KhRIG>haoS+9F=o8}3;1$}9GYJO1RL(su*~J;K0{adCxmg~F@D z?kuV}QF_L*@s?IH(Opk|*JwqGH_z-&N9!@Vv4`?GjKvPRI6cO;+f;uU-L1k_Ia4ZU zbu0%o>vGB84*hs|te=;DIPIn9t=>9@^z`?~{LT|83!ro)%`e=yxuT|gmx!1?axXJM zywta5;}Wi&CVP3SX4zhM+4;g{S4Jl%QwagaaiUMpA*Yl4iB2W##EyDFZ2-T4&8B?! z-VX6bE6jso>8z)*EA>I6jI~ELrG%y9Vqv?um~EJv45|9|$maV_I&K%}p0oLv*Eft4 z1K_h|&r)9tx6zPRFIi08)JZv(2@C#-=)vxuE!AWQJ?KpEDtk9VW>&0T8anxbE9F6X z31diF(V8JuuLv>ZMm*E8#}2{GRZa|?0i6@J(WCrUR2<@#^imP^#^(CX3i<&}y)s(& zwG>&X#}R4Ky5!TE?yuvh1&tk(;fZvwZLy^S&Q62d5y$~mjtG0{0*0LX3@=(f@9_l7 zG;K~USKa*M+wDXP6xEhRAmUV%YIDr*ESo84KtIaWm+q~#fMcU zQ$Lj)E59?sQ^0;S=f!?9s};RZoO>dhH5OZHvET5H>c!}DC|%!I#?p^8_5O1- z186$W?<9FYfE7QEZU=pF9gs1<>5&MKyLKzwhgGaVu_)vlhL-N;ab6KN06x;oV+yN zv5X0T(IM66o7AU~0yA^VX`?hj?4if)gzqey89e3D@_6G`WP4smD;ORsD=8&1v??AC zqMAVlJOz7blkBJj_3FC1S_yMxHgZNi_Ntk^44GV^{kNM7*vYh-0JgN$WFLWGqPDl0 zUL<9r!9=Sz0Vk3scaJCztL`g4sm8BT&EBbP5}1+Rb1Vq=?wdcm9y~=xlo!BHtv09s z4XcN|#*lA&<>X-KXP3qFL8EyQ@yfNvvU97#>76+)Ia+shAA|(yN6vPS?$YP;hze%7 zMJNn*15D)@Rm+?+ok;q#ao!JVQCxZLOJ{9x@)k}4OHKX824it?m68nxA48xqP*n$v~^h>Ol485WnDdd`O@Ph;U6TeWdi_u!f0#uaBF4pp4-dgwgaGx zx|KvUc2xg}IJdF$(SoV#SeLx+6K}sZl9y~~1ymrPz=@DyHWP3i{r!Ty-Tvj1GY=l( zs=lbcd=3*(Y6m?vTC&Mpf3uwQecagP%Y`unA)C(H(WkuP#ezFh8d7$q||f4ujWbTK>4hpEw9z^xW#F<*Y&?HMdIUmU2FSN^3B3ifA4Y z%Ghuf$r_kwH!4};vO`|ly>lnL!qN;dcME$|K38LU5>-z9CXHOFTY3ykRtuUAsS=#o z+p!!hv+hLGrdB)82)f_``$yd|Wdd3IEMC?Namiyhm+ig zZFuFT6K+Df`@brACabF}Pi8Ev3saXr@sgmISJu_n*HtEEA|)kd+R`L z>22tdXM7K*W;MNbl#to-8#>JIr~Nogffet@dNq28+-KGjxU@U6-|$FV?E))?fo`nD zSkI5yMC9zt`#M2D0k{bXn=TW^Hx8z%W)MfyfVXEaNvUWHut^?y!AJv!r2%3Vkg13* zqpNUCmCuF6aT#7Dxx*n`;RU*&k={fAPq3Xt_f9luDD*C{d~%hbSFIynIS@m52mR~ zBX-3+>fWU@wLzM;xR&jp=Qxs(Mc3HKrL(B*CS#|7yWC7!FCUf5TzdA%@DOK~f^2JESr^63 zI42?SW<3c!&+lZ)ZE|npLYy(SWrb$bkM)aq^w4q?p=56d-!)&SI^R(2%y9h(+ZiSL zL~@AZz?lrU&fL9Rt5YY&u-S1)0lh12vhh#6P<1^M=Cc{5u4mNLQn^F#XP}2RmXDT~ zx>rOmr|eAGHE!@@YbtYFx1Xf9x|4H2>tboEJJ=mq{4_(9cx{(0)Mov}I4o|LE|h0^ zI_e&$gjh3c&DIa7seIvA7jQ#pWmuRt_Q}%7%Wz6jJ_xRmR;zs6WS!#OD1%n`wc^^U zJU~$ELyD8wbNQSjQVz(B60Bq#!-UaUTjMT#dJI0 ziDaKg*}r|gq8*2Ov3v|;i3&~;mkuW z$=}m(w5l`_s2_q{nXGmuk&>)Io?6U`nEWy@sNslqGM%Zpd?XQmuVY^00-`}|u>64$ zULJ>O+Kc;GaiOMIq#!ln+D`2&R^CQsvcF9mBOTtQFK%?yL*r*; zue!uoIKVqN4P1FB-kr__=ThZ6hXeRh07kXI-V_L303FvHvD-Vi|>UmQz!L^UWq)HEkC+(*Ur`UY#AlA$njoIBcJh6249~mMUF)=(^^%`fP#lXUMpYPFk-q7{ zw4w@~tj9iEd0~R`su`@%g>fT7qt>INvFS&K9rle*q1?I3IiUQ)=%}kT`r>ls<$-Wh zpQx^!`(2ywZh+`2bTKIOu(@#msBgYN{NW_L$f4C(Gt>z2@(qT-YSf47%7JqVJ8V3K@x0RjtN4UpA49|1x!IVbS)sQX0cq zTlMpu*Wl_8`+)*-yXIgQ+R6Z{S%UM-}WnNiothQW>R{U0xiiC;_P(Qg{m&QX>#$6UK``{c< zW!^33ndR!vUFES4?vX|I74o?v0?DZZK`GCpXk)nqua}C_q}~*~w9sgco>hLEHCo0Y zO(PZ@4L6^gP3wgmZ7~hKVE|lo_sXyR^q(Q!fBd1_W7h^W&?c_?{zOFCS_wwjF6V+6 z$Ag0qq*!>`7M43f0|qH}v(xjKN6V~h8keb(np9K_#uS|oPB0Ih7^tLn3_{L__@{4))y^6Zg8N&`&79;99rWdr$5xi7TKb`I1 z-l>D=JQJSKEx1Og}U}`ivxunqQ3HY}eZ(^Km{mn!9YJ1pjRe zy`rNQYE`k>Z~E-K9(puXzN(B>nh|$$IzSc-J(Is+_7<=gtWHceD_4*2>O^MMav+;j z4Mf6d{aZRu_-rao*@;eyO3CobrVlbP-FrjQrI6*wQhI^H;L-^3?u9Ml^)B{(Hy;jI z#llz7QhHk)=X5^lSjf`QajpIU@k2>y)0AlqR5k`sxwd;Rtjb48iE13{QDk?*h#i`}Ew-XnU%ymD8K+oPf zm|oT6%$jn68Tx125t}G?uaLQ0L+{H{8@sEdq*Qx9v%;sk`Y9Ee9;EApIUBle?_E&4 z*a+%CF~8T!ZT)Z3%H4&LcZStR{zSy^H`A)+J-p^EdDWZrt;D!Y7vY*oN#%9^z%16W zwLE1=_#&nB_D@8z5S^1YRhx0b8bkDTgCeNv%(RQo0}B#(nJ1-ML`!ZZPm`bvq7S{m zZHBY}cDkg-6gSu$U%PB&eV?I7^ob)G3seOv-ifJr4DBp(3er=3D(Ka_SV`B@0zL3D zgZ5kVg(oFt^XK=ec5=2b=2C%Uz;RLHT@~xF>)8`#{77CMd(jf7#37-NIL#H$>Au}! z?1rhr8{IH$+t?VQWpP0(+$8N2-27>3l;vxN3xF9#ZmFur)1YWQ%v4}z7=KZNTW!fY z&?>P-S=a6UEkY}p+*E%(2nSku%A!R4BsZq5Ge!D9}Dlv&` zYhM_Pnr?7TZW8X(LAI_joLx%DSy77R|k17)p z?Gcobw8TV4$0loFb&+Iv7r(Gr_G04yWDS#an z_E;Vq>C2l&=uyj^8h<$Zp}p;s5J)SN;dY>Fvw5bC?WInEUeR!;OAMJjMi$%5_+i#6 z5e)GaU-E)|N`b(MTF^%FRY{dEuOV7l1$!Lwz`$Ga1`_B4M^Jr-cdLq%7w`3fq3G4P z`uq|b?UkhpT50Jp>p`oWO7K>l#4n$ElY~eI?L260>IMql$qNxl@tPCiS7j-zs4cGzhHYRF0Mo%o2P4h4P6imb1=HG2!}u8?-f(m zvam=`i+N}gl5AHE?Bnt_Qq#&ayd1f_iMpctepEMByf?wMpVQM*NdL%2w0RpeGormUhE47z6QSEWjy>j=_%XN7DxXs6}8^*4SLD8ljDrCDA@;RgAQ zh8b39`(e7VVckprt?Jjhg{VV@GCQHF8YHi#WLRoyQ$3OuA#gDCFe6@DIKtuyKg3HU zG>l%%@ItjvJTL#|i@Kq{%onn>?uhtCSpAqUen72e|3iE~8F98FuJLyXhyHPdCHabX zDDs+>Rr%Cb@1;)1yI#0yD7odz7>u|PwD6FSciFu7MfI#BMX!|du_i_z7e-lw2!YEQ zfe%|5lF1W~5pZi+gcn8-cd4&R+sh9H=3Jk=TM^TaXV8v1@4nY!T7Ss_^-&c>wYYsq zN?^Eu+}NK^L>4hW2@koFr~Z&mDm>gj_8f;5@D7fmzkGb)Gy||t zlY@9RKW}bsK533%v#?+`_CI;e?~G{vX~Zc;0**Q>ME+`bBOecAUW*@xN*$KbPUeP> zEQ2GHE-k@*6B?zS9D*NM0sdRYJ0~Uts!_p)I%bDMr{hDbr2cVmdYR;c!e$ zVn(Jx6vG=Mij3`^7T_yY#D015DFTs}l$Mc|mEj#47<$SAv4BVoJZ+)9&|>s|@D%d$+ABg| za8^7J<6Lmk;@!(fr(ST?u?507>W&;L67<;C{mB!ehX*fgjBMttU?_Kx?x+EKAjH&v z*u6RTU+mt5t+CrA9L{9|!8km{3s09EqkJ1R+v#QyL8! z8mALqBFv|rW=}&n5rTzBNvjH(vmr_@j``g$J$&z*8nqb&PGAqbS2*hx655oQXVW=9 zj<()Wkk?y?rm$7tI?a*)As{-SZ^5#7?B+Au!SY=45WM2%|Kftj6vu{xh zur}`Oi6#9Y)?yxqxZ#iy+ihRSGIYa#PWN4&sD$fuNlwR@&|$A~V6$VRp|Yv1`=qIw z$!)%b`ux7A$_6l*>pna^I zros4F<5Yfk7VBA6je$`V!BB?};3bO9@%ivY-5``Zw^P?R83}!vyDH4dy5;lY(r|^> z(-~aDHex9qJK90Nyslf-!!N3C#s8SaZW{Dq93O}{{f=W(2m`20bbj%W{jh_;xkoZC z2k|?-k`gM0#%L@VUyJcEW7dYasR*CjR1uSmzOsRO*4wvm9DLt>+Wtp8X znf2C}av=wVJue9Egm7dsNVKV%FQc(*u?(+AbOgDpbw#<;>|-M@zCu|JQJq$ZED@El zSQhJzp_Lw&K|5%E)Z?5+jGS$;FG_kyAv*5|zQPl)k0O8W7*rRSF@y>OACA;{3Ee58 zfjO(IwU$0bY09Dd z5I__DMD(6EyIY@WzrbQaJ6a?Xy7)d)ug1*8iB2OM=iId1(~3JWw_gqI?!afOV3nwnB7PjV0tn#ukb{dph@%++9 zlQ|{xWo&LtNA#k1^UAPjuNm}x3GZ`{SIHy$mh9n~v7V5m9@eIBN#wXZ70>q+g%SQS ziXc>=8J}rsTci(+g%O7h3+EIxsM&Z;j8>3m3({&N2oJ_VDl1?f)*bNSGB(AE92zGN za=jVbuJ_l%eU2ZUyelc6=s8#}C=S+@s~8(68i5hZUM0ydiD(=ZO|aWCYYWKNO6VM? zXJA{5N3?C3K~-!xs_kN^=Wee-%Rf%JJY!1_rFtT_dM(e0aEK&a5_xsIA2h<(L^+v~ zhLj5A>N}b4&4J1=ukeYcRwORR%_}jGuAzNt$W~!EZ~s7_JOpz4fo50ho#pi=b-vSF3NMJ)R{GM(ss>T8 zf8SvxJs9EwUZJ?MLc0oIiO{6lr+K`Fyuw)xat^7D6Zt}wVXj6f*$@$$Nrp0XK-H)O8m2$nC=?={Bl=o;W}R}DzD(e_Mmm%t`LsTsu=c+i z$iOab{BVk|c$5DWhe^1O{24;)QhFzdI_|bi+qzs;R}}r&tYnZE^~lpypEs(dzg7~^ zOyu{iL#B9K*%l%L;{$zsBA7$9jGw;smlYuVDE4AR{p^}h);2kVOyrl@+eK6#x%6q3 zY4t=o-?pgKgGmmP3rVK_Y5vuL4iT&r;Vz@+w}3YG`VvAQ@avxn^Y&X)_X3eNlkTb| zA{#k&G>Am=l4-IHbd+ZeB+`iCUayK|Fv3Sa-`}L0N&a|xK-1arHSlC={5TpVZ*G{_ zY2DsmQc_Kpl;-1~z*}lx+9u9}C}eJlY7vneS;)ASmD$|1P}KdPlX3C0^pz08qn9H3 zljSX{ictNq)am`MkkxRNYXM1PLH)zXkDPt?B zKOpq-EuMF&RVl^45zg?tFaMZy3PO;bmTZMUicV63QFFP#!iq)Pld=|t*aOR}&JgKK zaRY4c>s*d!SbeHjZM~7)S0sPZ8PcEe!gH|vcwr4!HOG=iho$whVlevt%T8$d-htk? zIum5c4WF7*A@voFVM#5LcbfVjS9Wh0@KjZrC@k54w@ju5{qo}TI2I}HF6{ed>7%L0 zqXtFW89N7;%1eUe6cYAa>NT9Yd=z{xbMrwVX(9bb?Fl_-i~{sFTZ-mTk#^j`VMu{< zbz7tOJ&v3?RO~yd;I9)*^$+@~ZWi)43%xtHsg^ktthQ71`9Z=bAA)Ga3zr|KEPFVq za`$;JH5Q&nsln z3m);PuTC&aN1VQ?V1QiDl9k>n+T}f|m!0}Y6>MT^F2YA6RXa^H#_7z_rZ4h70)!_6 zTbHeq=VR`O-$#lH8abw3`ql(H^F?h%xAom;smPquL5!Lky2@1Wz&IxL2*`;mkiLqH z8+g#ER223_Ur}D;zVdM>lj9vq2Z)1xJw#SZ9&$lZ0V1zT+1CF25~28h=7kD2-EBR#KHO={VvrnT^EH zg!+sHVaS6nw0di=5^Ife`ZT^S?)n$woJg}dtU}w!X-<-oMV}s;Z-u4g6bp0bhydz+9;o>e|&Y! zBU<&NX?}JNyQOyCiiIAJN@p+nZS5S0CqW73Ey}b$InhDq3pL@XxxVL4`+iIl44RQ= z(5TJ}?y^>>j20PXpS{%&RUOZ*&oQD=mNS)RoqgGZ(+4{}No#{Tgp4}4KJis`;_6)V zze?*NRN1fB-ri$ozNSSTqn4ANloR1MrR^3yH+3ONkeN4=FeW!6mcC-ovQUtDcDTxM zBo0>XY}yu*gx0aKSk98R;sco@Jj9l?Jv6kH6$GE|41mLe#90<=6b@^3yT&ChAMYmxhm)lo;-|jYbN_6Doy%~ z8w3@W>QD1g<*Dc6DZUeb`i;Nll!fbOt+N+jo8D?;2+@((D#{bcCpbB|>0g=^!9oXS zV5@PM{cBfq@f;dZ&_o^p2O`fL`DG9PMJNg3hWt08Pk!@=0;Url4vR>KE;!sp)xy=N zXc>;9@^2kEciH4PI^ct+tiV+Q_CV(B!|Q72Bu~_xlRQRr^4j`I!n^w0SXe&M|9Ywa z-ju4nnENg%cH=R^MuD0std(v0t6Z6VgiOnjdcw+ zq!VvPZNgd_jQ1*bwU*BY;<7SYJzikcO5-s(9!}JP7@^_4bg$(HY4CvC^Q1>* zLu-5ce3G=CZm<)7$`i+;Pt&)NRCexPBWBza&h7W=++(l(kyy%!?}$5gz_w2SkFDBh@5 z)j7C$hJ#-p3b~zZe-C*tn>p8U`AvL9P|+T0x{5@0nQIdhSCJ3cm1p;Fh&=w%xLDtz zwDM8kVsR-~_oHw?KJqywKOdFFqsp0xK($q+M3)JUmkXIl|)Oi$gZVxZqmW__6VBXxMO!$&t=6bG5K|YHS z5SU7FSM6a_odwqi=9jy^KpWBF?(At^e3K&YU`|}Tv^qnjV(A|jy&|vAgvLH$h@WJ%=NBuwc-aDYlG+iIY zv5kr{7A#biHc|yCLMWpM2ndLjNC`-<2|c0XSU^BPdI#yfLjnZCAVTO!CkYACTM~LR zfWJ5M?d;k8cJ`dJv+bNc`%nIW@bbRT`#jfu-R-&?g2rYS`LM$WKuL&@oWEohWr?*_ z`&h8Jh>f!TW0m?HJ=`db_1Sirk9&>CJx4qw=TrJOSre?L=f|!Z2jI+6^A=Xy)wFM_ z^5G|}r9zsV$*G~I(uxpPCTbyq;Zq?=G2+9QhNBdLbh*Pa3!|>-nWi|>!ixxYj^+Hl z*kQdv*wqWi`!s41L5^@xp(P=!6kF!@C~kVUI7+ z?fcI9i@1my#JrZT7S_TpJCD4dO)MgL#8kV73Z4AHL(-Hfrrm5^;{3f6QV<;f73?;KXkG|^t>r|S*kO&zN#sZ} z)-Z8p^JO}drSiSY#asGx;ll^>^Qn@oXD}FtC(n*u#j_8u*-TkE*=bK_i`RD7_<=ha zxBH^1Jd{p_M^-ZXnTP$*=A^qDvsUY=-vWqbSfG*K`o5G>Jm`*y!H6{b!Yq#(SjzS{#qE)Dx`^@f)qzfcj;;>e_#O z_^kF^`^zg$7q6^MOb2%5cQ_@n@j#Vr%!ap6_PW-b;$a%c&+>xYV76k+%xfy_65LfE zjoLCUMR-u(rJr^g>zN*FRMct6UqtAuiOfRQZl*;+hA+$&J$dN`6YdD|#cFXF>w*;P zFP;i}RCn5c;mMPddp9iTX3l1@SeYC!>lH|51e>j}Y48s2TCA&|dW);ITeEPS%MfSH zCJPN~8-LF`uIqJ>^P*XWL%biXGg#~aRJt0Fca0%?l*d%10e) zNSgp-t{1C-M)A^bW<)P-4uFU6H6F^Yj5oP9Y)u+gdQ}aZ`alxS^2`;#>A7up^9g2| zcoooo)HRq$XgVrM+R4f)TUITitvFAu?S#!>2PcRQ*4qr7tjE^L8JvS(A4+BKh60|Sjvc?!~!my+ayUVHg4xmH^X~-neYS^ zE2_-6Nk@m)o80jV;gRAO_Jv8F>(Kjli?fjf-$p5TP!ra?igWSHNqw{E=Y^#~3bh~` z+pQp@nOpN~b9NZ!ZP-LQa_7X-HwfWKM_BzwszxkZc1*+#^+zweRmFVD++TH0O9BP5 zT*SFuUk(M%w;9Waz1al!bel(3AD~|XA_;M_k{ofaVS?hj-Ol0MdJbo=eAxh&FKZ7F z{H-cy_re>2VeTeI7e|3SQte6u>Wg2q6Q-&4iFuXofoQFmZW?>gJ=2pG>hH3?_~V=LvW@@c2_mSi0$&D(W0ON&5Q+ zF|Y++&*0!_`|IowwV`nMS^g|04{FjEOhgSvq)dfcjG^r=Po%076}ZI+0s@gZA9+Ke z*%J#Z{$0d6xf(pHQ#IeXK__%0A**l3BD>Gxa3o2_p2dzO&S)@}?v;2|uU$Q|dU2Y% zT9%1@vK>K_O$NECqy{FPhK~5Sfi{$zpzyQC61tyCJT#|^2(h>nKl>=E%LiMdZHob5 zGpJ0|?pvmx@^_>rg|OKXfv$%%Vq{W~e8nKrhaC-{=sZY$fvY?HsB?lxHTlEj&D<=k zm|B(ML#`JBN;v=!dBCFq4Xort!=?j9r$hSc7MlP^j_#^6dZg>He_2L@-eP|FzwME2N}{E#A6#{Ryfq7`=BaeYJGXNoiYH;!^(vBae>3Dbe2hn{a-@ve?G1G zxA;cR%KTS`z*gWRj?-XVWOo`m(^ zjT-bkx! zPBVb(4%I$(xRxCPDYECOGZ1U` z-I>acsnYMcdVW|%PSDN2L+^();0mYx1@~3PA@>Ldha}=v&FZnJuA$w-3<8a_cn50> zPa2xmah~20R&;^&wo=-^M+iB_T$o(6y**ZY3lO4GnTNs#7b5_3aTd>c#ha@RaTHeC zGUgCF?!oFrOOEL_NAQyI66k1~gYMYiYLq)#Mf%m@HZ;F*4xuKqChHRKoTRVH+&EhQ z9l{j6HMcVc9VVpPOo~C=hY0>*aPvVV=;-ltLmg8atgw)%2xcB8T>qrlQ$y8f;k*wN zzX@fom0uW!v>TZ zhks-M$W5sAPrD9lMMYvpIs&7Ob_YZGW9!)jwRF}-8r$S5EOMwVGulbdi6sp4iBt); zoyqY`GdNQjFGCM3?4S<$_kHlhkkpdr%d*xWADwv=$1+woSI4>Mc{8kM^5_$44*`kP z(=>r5BT<^OxvsIXo8q^1)i@OM#Rsp+jn-dwfNKu5ugEoxdDP0tq*7{}S)(1GL@bxC z-!`9<)9D6g_*|Y`p+apKLqaAvPU4wWG?9rO(ly;wYZV%5$$ zAUNm4UcU`n#;S&nv-$|Jb|^+>!BzE)Teu}IZCx5ZpZ!UTF%r-Pci@JV76Qcd{e-Qr z{Q@xzi9Tuf?8^?j-YZH%+_^rD(RV#gDe=z+S_4_(Nudbqop5!jgr3KbKR4&(zEEut zU#&P_7{?7PTn|#7$JZN2a0s9Xo;0bx8{Ur}LUa1{nWA@kZCq_6O+f76Hyv$Pzjx6+2J+csA z%ho&a6ZrE6DAdZbf(CL?x~G+nQ@l~RzROad8lRZkc8^_|AMDM0zTkWj1F#4=R#zTx zrAY}@RXwGohGO-$4zZmcrQO-s4u~Qkn0--9^h_i{m+&O6RH#B*QQVXNX@6dJoUQrW zY*--`kiyH>0{a>-$j6PFk}#Fah3qwHp{MkaE_z`J<6gB$n zAuq4nFBXd8QXY|ft=�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%0DZlm$ql4hf6Z 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 diff --git a/server/uploads/migration_plan_v2_upgrade.pdf b/server/uploads/migration_plan_v2_upgrade.pdf deleted file mode 100644 index 22f7ebdf662c45273a4e5ef33fcfff951da4ad52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92035 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 T-|tLtSPUFR$H%9rp+xsTMJuqG From a7780a19f26c09b1fd3f0c7207e3b96d63ce7565 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:59:04 +0000 Subject: [PATCH 2/3] App: unified useChatStream hook, chat persistence, error UI, model pill header, System theme, settings redesign, camera-roll save/share, a11y labels, ESLint + CI Co-Authored-By: Nader Dabit --- .github/workflows/ci.yml | 45 + app/App.tsx | 62 +- app/constants.ts | 100 +- app/eslint.config.js | 10 + app/package.json | 11 +- app/pnpm-lock.yaml | 2439 ++++++++++++++++++++++++- app/src/components/AnthropicIcon.tsx | 4 +- app/src/components/ChatModelModal.tsx | 18 +- app/src/components/CohereIcon.tsx | 4 +- app/src/components/GLMIcon.tsx | 3 +- app/src/components/GeminiIcon.tsx | 3 +- app/src/components/Header.tsx | 44 +- app/src/components/KimiIcon.tsx | 3 +- app/src/components/MistralIcon.tsx | 3 +- app/src/components/OpenAIIcon.tsx | 4 +- app/src/context.tsx | 8 +- app/src/hooks/useChatStream.ts | 131 ++ app/src/main.tsx | 6 +- app/src/screens/chat.tsx | 932 ++++++---- app/src/screens/images.tsx | 80 +- app/src/screens/settings.tsx | 316 ++-- app/src/theme.ts | 44 +- app/src/utils.ts | 53 +- app/tsconfig.json | 1 - app/types.ts | 86 +- 25 files changed, 3724 insertions(+), 686 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 app/eslint.config.js create mode 100644 app/src/hooks/useChatStream.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..d7ddf640 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +jobs: + app: + runs-on: ubuntu-latest + defaults: + run: + working-directory: app + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 10 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + cache-dependency-path: app/pnpm-lock.yaml + - run: pnpm install --frozen-lockfile + - run: pnpm typecheck + - run: pnpm lint + + server: + runs-on: ubuntu-latest + defaults: + run: + working-directory: server + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 10 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + cache-dependency-path: server/pnpm-lock.yaml + - run: pnpm install --frozen-lockfile + - run: pnpm typecheck + - run: pnpm test diff --git a/app/App.tsx b/app/App.tsx index 0375cfe4..85208f75 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -4,20 +4,21 @@ import { NavigationContainer } from '@react-navigation/native' import { Main } from './src/main' import { useFonts } from 'expo-font' import { ThemeContext, AppContext } from './src/context' -import * as themes from './src/theme' -import { IMAGE_MODELS, MODELS } from './constants' +import { getTheme } from './src/theme' +import { IMAGE_MODELS, MODELS, fetchModels } from './constants' import { GestureHandlerRootView } from 'react-native-gesture-handler' import { ChatModelModal } from './src/components/index' -import { Model } from './types' +import { Model, Theme } from './types' import { ActionSheetProvider } from '@expo/react-native-action-sheet' import AsyncStorage from '@react-native-async-storage/async-storage' +import { StatusBar } from 'expo-status-bar' import { BottomSheetBackdrop, BottomSheetModal, BottomSheetModalProvider, BottomSheetView, } from '@gorhom/bottom-sheet' -import { StyleSheet, LogBox } from 'react-native' +import { StyleSheet, LogBox, useColorScheme } from 'react-native' LogBox.ignoreLogs([ 'Key "cancelled" in the image picker result is deprecated and will be removed in SDK 48, use "canceled" instead', @@ -25,11 +26,14 @@ LogBox.ignoreLogs([ ]) export default function App() { + const colorScheme = useColorScheme() const [theme, setTheme] = useState('light') const [chatType, setChatType] = useState(MODELS.claudeOpus) const [imageModel, setImageModel] = useState(IMAGE_MODELS.nanoBanana.label) + const [models, setModels] = useState(Object.values(MODELS)) + const [systemPrompt, setSystemPrompt] = useState('') const [modalVisible, setModalVisible] = useState(false) - const [fontsLoaded] = useFonts({ + const [fontsLoaded] = useFonts({ 'Geist-Regular': require('./assets/fonts/Geist-Regular.otf'), 'Geist-Light': require('./assets/fonts/Geist-Light.otf'), 'Geist-Bold': require('./assets/fonts/Geist-Bold.otf'), @@ -43,6 +47,10 @@ export default function App() { useEffect(() => { configureStorage() + fetchModels().then(remoteModels => { + setModels(remoteModels) + setChatType(current => remoteModels.find(m => m.label === current.label) || current) + }) }, []) async function configureStorage() { @@ -50,9 +58,15 @@ export default function App() { const _theme = await AsyncStorage.getItem('rnai-theme') if (_theme) setTheme(_theme) const _chatType = await AsyncStorage.getItem('rnai-chatType') - if (_chatType) setChatType(JSON.parse(_chatType)) + if (_chatType) { + const parsed = JSON.parse(_chatType) + const model = MODELS[parsed.label] + if (model) setChatType(model) + } const _imageModel = await AsyncStorage.getItem('rnai-imageModel') if (_imageModel) setImageModel(_imageModel) + const _systemPrompt = await AsyncStorage.getItem('rnai-systemPrompt') + if (_systemPrompt) setSystemPrompt(_systemPrompt) } catch (err) { console.log('error configuring storage', err) } @@ -73,22 +87,28 @@ export default function App() { } } - function _setChatType(type) { + function _setChatType(type: Model) { setChatType(type) - AsyncStorage.setItem('rnai-chatType', JSON.stringify(type)) + AsyncStorage.setItem('rnai-chatType', JSON.stringify({ label: type.label })) } - function _setImageModel(model) { + function _setImageModel(model: string) { setImageModel(model) AsyncStorage.setItem('rnai-imageModel', model) } - function _setTheme(theme) { + function _setTheme(theme: string) { setTheme(theme) AsyncStorage.setItem('rnai-theme', theme) } - const bottomSheetStyles = getBottomsheetStyles(getTheme(theme)) + function _setSystemPrompt(prompt: string) { + setSystemPrompt(prompt) + AsyncStorage.setItem('rnai-systemPrompt', prompt) + } + + const currentTheme = getTheme(theme, colorScheme) + const bottomSheetStyles = getBottomsheetStyles(currentTheme) if (!fontsLoaded) return null return ( @@ -101,13 +121,17 @@ export default function App() { imageModel, setImageModel: _setImageModel, closeModal, + models, + systemPrompt, + setSystemPrompt: _setSystemPrompt, }} > +

@@ -138,7 +162,7 @@ export default function App() { ) } -const getBottomsheetStyles = theme => StyleSheet.create({ +const getBottomsheetStyles = (theme: Theme) => StyleSheet.create({ background: { paddingHorizontal: 24, backgroundColor: theme.backgroundColor @@ -150,16 +174,6 @@ const getBottomsheetStyles = theme => StyleSheet.create({ borderTopRightRadius: 24, }, handleIndicator: { - backgroundColor: 'rgba(255, 255, 255, .3)' + backgroundColor: theme.mutedForegroundColor } }) - -function getTheme(theme: any) { - let current - Object.keys(themes).forEach(_theme => { - if (_theme.includes(theme)) { - current = themes[_theme] - } - }) - return current -} diff --git a/app/constants.ts b/app/constants.ts index 49729771..b5755eb9 100644 --- a/app/constants.ts +++ b/app/constants.ts @@ -3,6 +3,7 @@ import { GeminiIcon } from './src/components/GeminiIcon' import { OpenAIIcon } from './src/components/OpenAIIcon' import { GLMIcon } from './src/components/GLMIcon' import { KimiIcon } from './src/components/KimiIcon' +import { Model, Provider } from './types' const normalizeDomain = (value?: string) => { if (!value) return '' @@ -19,50 +20,137 @@ const rawDomain = env === 'DEVELOPMENT' ? devUrl : prodUrl export const DOMAIN = normalizeDomain(rawDomain || devUrl || prodUrl || '') -export const MODELS = { +const PROVIDER_ICONS: Record = { + anthropic: AnthropicIcon, + openai: OpenAIIcon, + google: GeminiIcon, + zai: GLMIcon, + moonshot: KimiIcon +} + +export function getProviderIcon(provider: Provider): Model['icon'] { + return PROVIDER_ICONS[provider] || GeminiIcon +} + +export const MODELS: Record = { claudeFable5: { name: 'Claude Fable 5', label: 'claudeFable5', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, claudeSonnet5: { name: 'Claude Sonnet 5', label: 'claudeSonnet5', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, claudeOpus47: { name: 'Claude Opus 4.7', label: 'claudeOpus47', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, claudeOpus: { name: 'Claude Opus', label: 'claudeOpus', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, claudeSonnet: { name: 'Claude Sonnet', label: 'claudeSonnet', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, claudeHaiku: { name: 'Claude Haiku', label: 'claudeHaiku', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, claudeSonnet4: { name: 'Claude Sonnet 4', label: 'claudeSonnet4', + provider: 'anthropic', + supportsVision: true, icon: AnthropicIcon }, - gpt52: { name: 'GPT 5.2', label: 'gpt52', icon: OpenAIIcon }, - gpt5Mini: { name: 'GPT 5 Mini', label: 'gpt5Mini', icon: OpenAIIcon }, - gemini: { name: 'Gemini', label: 'gemini', icon: GeminiIcon }, - glm52: { name: 'GLM 5.2', label: 'glm52', icon: GLMIcon }, - kimiK27: { name: 'Kimi K2.7', label: 'kimiK27', icon: KimiIcon }, + gpt52: { + name: 'GPT 5.2', + label: 'gpt52', + provider: 'openai', + supportsVision: true, + icon: OpenAIIcon + }, + gpt5Mini: { + name: 'GPT 5 Mini', + label: 'gpt5Mini', + provider: 'openai', + supportsVision: true, + icon: OpenAIIcon + }, + gemini: { + name: 'Gemini', + label: 'gemini', + provider: 'google', + supportsVision: true, + icon: GeminiIcon + }, + glm52: { + name: 'GLM 5.2', + label: 'glm52', + provider: 'zai', + supportsVision: false, + icon: GLMIcon + }, + kimiK27: { + name: 'Kimi K2.7', + label: 'kimiK27', + provider: 'moonshot', + supportsVision: false, + icon: KimiIcon + } } export const IMAGE_MODELS = { nanoBanana: { name: 'Nano Banana (Gemini Flash Image)', label: 'nanoBanana' }, nanoBananaPro: { name: 'Nano Banana Pro (Gemini 3 Pro)', label: 'nanoBananaPro' }, } + +export const PROMPT_SUGGESTIONS = [ + 'Explain a concept like I am five', + 'Help me brainstorm project ideas', + 'Write a short story about space travel', + 'Summarize the plot of a classic novel' +] + +/** + * Fetches the model registry from the server so the server remains the + * single source of truth. Falls back to the local constants when offline. + */ +export async function fetchModels(): Promise { + const fallback = Object.values(MODELS) + if (!DOMAIN) return fallback + try { + const res = await fetch(`${DOMAIN}/models`) + if (!res.ok) return fallback + const data = await res.json() + if (!Array.isArray(data.chatModels) || !data.chatModels.length) return fallback + return data.chatModels.map((m: any) => ({ + name: m.name, + label: m.label, + provider: m.provider, + supportsVision: !!m.supportsVision, + icon: getProviderIcon(m.provider) + })) + } catch { + return fallback + } +} diff --git a/app/eslint.config.js b/app/eslint.config.js new file mode 100644 index 00000000..ece97001 --- /dev/null +++ b/app/eslint.config.js @@ -0,0 +1,10 @@ +// https://docs.expo.dev/guides/using-eslint/ +const { defineConfig } = require("eslint/config"); +const expoConfig = require("eslint-config-expo/flat"); + +module.exports = defineConfig([ + expoConfig, + { + ignores: ["dist/*"], + }, +]); diff --git a/app/package.json b/app/package.json index 0efc125f..9cc26fde 100644 --- a/app/package.json +++ b/app/package.json @@ -6,11 +6,14 @@ "start": "expo start", "android": "expo run:android", "ios": "expo run:ios", - "web": "expo start --web" + "web": "expo start --web", + "typecheck": "tsc --noEmit", + "lint": "expo lint" }, "dependencies": { "@expo/metro-runtime": "~6.1.2", "@expo/react-native-action-sheet": "^4.0.1", + "@expo/vector-icons": "^15.0.3", "@gorhom/bottom-sheet": "^5.2.14", "@react-native-async-storage/async-storage": "3.1.1", "@react-native-camera-roll/camera-roll": "^7.10.2", @@ -23,7 +26,11 @@ "expo-document-picker": "~14.0.8", "expo-file-system": "~19.0.23", "expo-font": "~14.0.12", + "expo-haptics": "~15.0.8", "expo-image-picker": "~17.0.11", + "expo-media-library": "~18.2.1", + "expo-sharing": "~14.0.8", + "expo-speech": "~14.0.8", "expo-splash-screen": "~31.0.13", "expo-status-bar": "~3.0.9", "punycode": "^2.3.1", @@ -43,6 +50,8 @@ "devDependencies": { "@babel/core": "^7.24.0", "@types/react": "~19.2.17", + "eslint": "^9.39.4", + "eslint-config-expo": "^57.0.0", "typescript": "~5.9.3" }, "private": true diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index c921efe2..d5fd574c 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@expo/react-native-action-sheet': specifier: ^4.0.1 version: 4.1.1(@types/react@19.2.17)(react@19.1.0) + '@expo/vector-icons': + specifier: ^15.0.3 + version: 15.0.3(expo-font@14.0.12(expo@54.0.35)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) '@gorhom/bottom-sheet': specifier: ^5.2.14 version: 5.2.14(@types/react@19.2.17)(react-native-gesture-handler@3.0.2(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.2.3(react-native-worklets@0.7.2(@babel/core@7.28.6)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) @@ -50,9 +53,21 @@ importers: expo-font: specifier: ~14.0.12 version: 14.0.12(expo@54.0.35)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) + expo-haptics: + specifier: ~15.0.8 + version: 15.0.8(expo@54.0.35) expo-image-picker: specifier: ~17.0.11 version: 17.0.11(expo@54.0.35) + expo-media-library: + specifier: ~18.2.1 + version: 18.2.1(expo@54.0.35)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0)) + expo-sharing: + specifier: ~14.0.8 + version: 14.0.8(expo@54.0.35) + expo-speech: + specifier: ~14.0.8 + version: 14.0.8(expo@54.0.35) expo-splash-screen: specifier: ~31.0.13 version: 31.0.13(expo@54.0.35) @@ -105,6 +120,12 @@ importers: '@types/react': specifier: ~19.2.17 version: 19.2.17 + eslint: + specifier: ^9.39.4 + version: 9.39.4 + eslint-config-expo: + specifier: ^57.0.0 + version: 57.0.0(eslint@9.39.4)(typescript@5.9.3) typescript: specifier: ~5.9.3 version: 5.9.3 @@ -652,6 +673,53 @@ packages: resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} engines: {node: '>=6.9.0'} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.5': + resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.4': + resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@expo/cli@54.0.25': resolution: {integrity: sha512-WnUqIb8oMBhtwSfIqdCHCzcaDIpLNXItRVd5miuvWi4GO0SGo89PSsAkbVJ+LJgcaY+v5rbgMELJS9I/CqOulA==} hasBin: true @@ -803,6 +871,26 @@ packages: react: '*' react-native: '*' + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -862,6 +950,16 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + '@react-native-async-storage/async-storage@3.1.1': resolution: {integrity: sha512-z+PnLz1n6ECKhgoHZHkfc+dijXZEyZnNFSajbtE0NEbsJhmX8x9GlOeiMQIKX2E4DUqPSgfIh4FYBv1M49KgPQ==} peerDependencies: @@ -1018,6 +1116,9 @@ packages: react: '>=16.2.0' react-native: '>=0.50.4' + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1027,6 +1128,9 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1039,6 +1143,9 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -1056,6 +1163,12 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/node@25.1.0': resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==} @@ -1080,10 +1193,189 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@typescript-eslint/eslint-plugin@8.63.0': + resolution: {integrity: sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.63.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.63.0': + resolution: {integrity: sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.63.0': + resolution: {integrity: sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.63.0': + resolution: {integrity: sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.63.0': + resolution: {integrity: sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.63.0': + resolution: {integrity: sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.63.0': + resolution: {integrity: sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.63.0': + resolution: {integrity: sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.63.0': + resolution: {integrity: sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.63.0': + resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} deprecated: Potential CWE-502 - Update to 1.3.1 or higher + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + cpu: [x64] + os: [win32] + '@urql/core@5.2.0': resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==} @@ -1105,8 +1397,13 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} engines: {node: '>=0.4.0'} hasBin: true @@ -1114,6 +1411,9 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + anser@1.4.10: resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} @@ -1157,12 +1457,52 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1295,6 +1635,22 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -1447,6 +1803,18 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -1480,6 +1848,9 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -1487,10 +1858,18 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -1503,6 +1882,10 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1524,6 +1907,10 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -1552,6 +1939,42 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.3.3: + resolution: {integrity: sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.4: + resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} + engines: {node: '>= 0.4'} + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1571,11 +1994,127 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + eslint-config-expo@57.0.0: + resolution: {integrity: sha512-T7OTN9xrSZYjLw4qTkL1Mn2WfAUVmMGY38+OYAcraI1uiTFVH6jfkSkv84WLTqnneblLcb6AsMDV+SHcUj3hGw==} + peerDependencies: + eslint: '>=8.10' + + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} + + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-expo@1.1.0: + resolution: {integrity: sha512-vPP0EPx7IA7ZfP49dY4rq9RV5jqkFWG+Pih3/oGjzIRjMI+ogcOE8i6isYkLXAdw/yvFV2BRZkTaQaiOGQqn6Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + eslint: '>=8.10' + + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-react-hooks@7.1.1: + resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.4: + resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -1625,6 +2164,11 @@ packages: react: '*' react-native: '*' + expo-haptics@15.0.8: + resolution: {integrity: sha512-lftutojy8Qs8zaDzzjwM3gKHFZ8bOOEZDCkmh2Ddpe95Ra6kt2izeOfOfKuP/QEh0MZ1j9TfqippyHdRd1ZM9g==} + peerDependencies: + expo: '*' + expo-image-loader@6.0.0: resolution: {integrity: sha512-nKs/xnOGw6ACb4g26xceBD57FKLFkSwEUTDXEDF3Gtcu3MqF3ZIYd3YM+sSb1/z9AKV1dYT7rMSGVNgsveXLIQ==} peerDependencies: @@ -1641,6 +2185,12 @@ packages: expo: '*' react: '*' + expo-media-library@18.2.1: + resolution: {integrity: sha512-dV1acx6Aseu+I5hmF61wY8UkD4vdt8d7YXHDfgNp6ZSs06qxayUxgrBsiG2eigLe54VLm3ycbFBbWi31lhfsCA==} + peerDependencies: + expo: '*' + react-native: '*' + expo-modules-autolinking@3.0.26: resolution: {integrity: sha512-WOaud6UKg16ciCOj8raKcMOoKFMHLXKI29U29yhgu1lf+Y7VxJyCktUcYo6AM+ccZ7zLD1uWZdMtgnpf+95OXA==} hasBin: true @@ -1655,6 +2205,16 @@ packages: resolution: {integrity: sha512-mcmyML3oXcqFUXUxtdtCL1O00ztNI2v76d+MdniXRUgHNxIcHZ05zo+DqBaOOT6LQnPk4vA4YHqQl7iGUfRb3g==} engines: {node: '>=20.16.0'} + expo-sharing@14.0.8: + resolution: {integrity: sha512-A1pPr2iBrxypFDCWVAESk532HK+db7MFXbvO2sCV9ienaFXAk7lIBm6bkqgE6vzRd9O3RGdEGzYx80cYlc089Q==} + peerDependencies: + expo: '*' + + expo-speech@14.0.8: + resolution: {integrity: sha512-UjBFCFv58nutlLw92L7kUS0ZjbOOfaTdiEv/HbjvMrT6BfldoOLLBZbaEcEhDdZK36NY/kass0Kzxk+co6vxSQ==} + peerDependencies: + expo: '*' + expo-splash-screen@31.0.13: resolution: {integrity: sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA==} peerDependencies: @@ -1695,6 +2255,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -1713,6 +2276,10 @@ packages: picomatch: optional: true + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1729,16 +2296,31 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + find-up@8.0.0: resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==} engines: {node: '>=20'} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} fontfaceobserver@2.3.0: resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + freeport-async@2.0.0: resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==} engines: {node: '>=8'} @@ -1758,6 +2340,17 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function.prototype.name@1.2.0: + resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -1766,14 +2359,33 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - getenv@2.0.0: - resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + + getenv@2.0.0: + resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} engines: {node: '>=6'} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + glob@13.0.0: resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} engines: {node: 20 || >=22} @@ -1786,9 +2398,29 @@ packages: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} engines: {node: '>=4'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -1797,16 +2429,41 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + hermes-estree@0.29.1: resolution: {integrity: sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==} hermes-estree@0.32.0: resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + hermes-parser@0.29.1: resolution: {integrity: sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==} @@ -1841,11 +2498,19 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} hasBin: true + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -1863,33 +2528,143 @@ packages: inline-style-prefixer@7.0.1: resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + is-arrayish@0.3.4: resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + is-document.all@1.0.0: + resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1901,6 +2676,10 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1959,11 +2738,31 @@ packages: engines: {node: '>=6'} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -1976,6 +2775,10 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} @@ -2063,6 +2866,10 @@ packages: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + locate-path@8.0.0: resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==} engines: {node: '>=20'} @@ -2070,6 +2877,9 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} @@ -2104,6 +2914,10 @@ packages: marky@1.3.0: resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -2209,6 +3023,9 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -2243,6 +3060,14 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -2254,6 +3079,10 @@ packages: nested-error-stacks@2.0.1: resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} + engines: {node: '>= 0.4'} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -2295,6 +3124,34 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -2322,10 +3179,18 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@3.4.0: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -2342,6 +3207,10 @@ packages: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2350,6 +3219,10 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + parse-png@2.1.0: resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} engines: {node: '>=10'} @@ -2400,6 +3273,10 @@ packages: resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} engines: {node: '>=4.0.0'} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -2407,6 +3284,10 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -2577,6 +3458,10 @@ packages: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + regenerate-unicode-properties@10.2.2: resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} @@ -2587,6 +3472,10 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + regexpu-core@6.4.0: resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} @@ -2610,6 +3499,10 @@ packages: resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} engines: {node: '>= 4.0.0'} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -2618,6 +3511,9 @@ packages: resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-workspace-root@2.0.1: resolution: {integrity: sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w==} @@ -2633,6 +3529,11 @@ packages: resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} + engines: {node: '>= 0.4'} + hasBin: true + restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} @@ -2642,9 +3543,21 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} + engines: {node: '>=0.4'} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + sax@1.4.4: resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} engines: {node: '>=11.0.0'} @@ -2673,6 +3586,18 @@ packages: resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} engines: {node: '>= 0.8.0'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -2695,6 +3620,22 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -2737,6 +3678,9 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -2759,6 +3703,10 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} @@ -2771,6 +3719,25 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + strip-ansi@5.2.0: resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} engines: {node: '>=6'} @@ -2779,10 +3746,18 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + structured-headers@0.4.1: resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} @@ -2864,9 +3839,25 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -2879,6 +3870,22 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} + engines: {node: '>= 0.4'} + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -2891,6 +3898,10 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -2926,12 +3937,18 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-latest-callback@0.2.6: resolution: {integrity: sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==} peerDependencies: @@ -2992,6 +4009,22 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} + engines: {node: '>= 0.4'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3000,6 +4033,10 @@ packages: wonka@6.3.5: resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -3094,6 +4131,15 @@ packages: resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + snapshots: '@0no-co/graphql.web@1.2.0': {} @@ -3752,6 +4798,68 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4)': + dependencies: + eslint: 9.39.4 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.5': + dependencies: + ajv: 6.15.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.4': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + '@expo/cli@54.0.25(expo@54.0.35)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))': dependencies: '@0no-co/graphql.web': 1.2.0 @@ -4091,6 +5199,22 @@ snapshots: react: 19.1.0 react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0) + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -4184,6 +5308,15 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.3 + optional: true + + '@nolyfill/is-core-module@1.0.39': {} + '@react-native-async-storage/async-storage@3.1.1(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0)': dependencies: idb: 8.0.3 @@ -4418,6 +5551,8 @@ snapshots: - '@react-native/assets-registry' - expo-font + '@rtsao/scc@1.1.0': {} + '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@3.0.1': @@ -4428,6 +5563,11 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@tybys/wasm-util@0.10.3': + dependencies: + tslib: 2.8.1 + optional: true + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.6 @@ -4449,6 +5589,8 @@ snapshots: dependencies: '@babel/types': 7.28.6 + '@types/estree@1.0.9': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 25.1.0 @@ -4468,6 +5610,10 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + '@types/node@25.1.0': dependencies: undici-types: 7.16.0 @@ -4494,8 +5640,169 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/type-utils': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.63.0 + eslint: 9.39.4 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.63.0 + debug: 4.4.3 + eslint: 9.39.4 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.63.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.63.0': + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 + + '@typescript-eslint/tsconfig-utils@8.63.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.63.0(eslint@9.39.4)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.63.0': {} + + '@typescript-eslint/typescript-estree@8.63.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.63.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.63.0(eslint@9.39.4)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + eslint: 9.39.4 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.63.0': + dependencies: + '@typescript-eslint/types': 8.63.0 + eslint-visitor-keys: 5.0.1 + '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + optional: true + '@urql/core@5.2.0': dependencies: '@0no-co/graphql.web': 1.2.0 @@ -4519,10 +5826,21 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn@8.15.0: {} + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + + acorn@8.17.0: {} agent-base@7.1.4: {} + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + anser@1.4.10: {} ansi-escapes@4.3.2: @@ -4558,10 +5876,83 @@ snapshots: argparse@2.0.1: {} + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-includes@3.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + asap@2.0.6: {} + async-function@1.0.0: {} + async-limiter@1.0.1: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + babel-jest@29.7.0(@babel/core@7.28.6): dependencies: '@babel/core': 7.28.6 @@ -4755,6 +6146,25 @@ snapshots: bytes@3.1.2: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -4922,6 +6332,24 @@ snapshots: csstype@3.2.3: {} + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + debug@2.6.9: dependencies: ms: 2.0.0 @@ -4938,20 +6366,38 @@ snapshots: deep-extend@0.6.0: {} + deep-is@0.1.4: {} + deepmerge@4.3.1: {} defaults@1.0.4: dependencies: clone: 1.0.4 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + depd@2.0.0: {} destroy@1.2.0: {} detect-libc@2.1.2: {} + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -4976,6 +6422,12 @@ snapshots: dotenv@16.4.7: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + ee-first@1.1.1: {} electron-to-chromium@1.5.283: {} @@ -4994,6 +6446,117 @@ snapshots: dependencies: stackframe: 1.3.4 + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + + es-abstract@1.24.2: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.4 + function.prototype.name: 1.2.0 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.4 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.8 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.22 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.3.3: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + math-intrinsics: 1.1.0 + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.4: + dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -5004,8 +6567,198 @@ snapshots: escape-string-regexp@4.0.0: {} + eslint-config-expo@57.0.0(eslint@9.39.4)(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.63.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3) + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + eslint: 9.39.4 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4) + eslint-plugin-expo: 1.1.0(eslint@9.39.4)(typescript@5.9.3) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4) + eslint-plugin-react: 7.37.5(eslint@9.39.4) + eslint-plugin-react-hooks: 7.1.1(eslint@9.39.4) + globals: 16.5.0 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + - typescript + + eslint-import-resolver-node@0.3.10: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 2.0.0-next.7 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.3 + eslint: 9.39.4 + get-tsconfig: 4.14.0 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.15 + unrs-resolver: 1.12.2 + optionalDependencies: + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.14.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + eslint: 9.39.4 + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4) + transitivePeerDependencies: + - supports-color + + eslint-plugin-expo@1.1.0(eslint@9.39.4)(typescript@5.9.3): + dependencies: + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/utils': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + eslint: 9.39.4 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.39.4 + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.63.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4))(eslint@9.39.4))(eslint@9.39.4) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.10 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.63.0(eslint@9.39.4)(typescript@5.9.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-react-hooks@7.1.1(eslint@9.39.4): + dependencies: + '@babel/core': 7.28.6 + '@babel/parser': 7.28.6 + eslint: 9.39.4 + hermes-parser: 0.25.1 + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react@7.37.5(eslint@9.39.4): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.3.3 + eslint: 9.39.4 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.7 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@9.39.4: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.4 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + eslint-visitor-keys: 4.2.1 + esprima@4.0.1: {} + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + etag@1.8.1: {} event-target-shim@5.0.1: {} @@ -5053,6 +6806,10 @@ snapshots: react: 19.1.0 react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0) + expo-haptics@15.0.8(expo@54.0.35): + dependencies: + expo: 54.0.35(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) + expo-image-loader@6.0.0(expo@54.0.35): dependencies: expo: 54.0.35(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) @@ -5067,6 +6824,11 @@ snapshots: expo: 54.0.35(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) react: 19.1.0 + expo-media-library@18.2.1(expo@54.0.35)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0)): + dependencies: + expo: 54.0.35(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0) + expo-modules-autolinking@3.0.26: dependencies: '@expo/spawn-async': 1.7.2 @@ -5083,6 +6845,14 @@ snapshots: expo-server@1.0.7: {} + expo-sharing@14.0.8(expo@54.0.35): + dependencies: + expo: 54.0.35(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) + + expo-speech@14.0.8(expo@54.0.35): + dependencies: + expo: 54.0.35(@babel/core@7.28.6)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.28.6)(@types/react@19.2.17)(react@19.1.0))(react@19.1.0) + expo-splash-screen@31.0.13(expo@54.0.35): dependencies: '@expo/prebuild-config': 54.0.8(expo@54.0.35) @@ -5139,6 +6909,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@2.0.6: {} + fb-watchman@2.0.2: dependencies: bser: 2.1.1 @@ -5161,6 +6933,10 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -5184,15 +6960,31 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + find-up@8.0.0: dependencies: locate-path: 8.0.0 unicorn-magic: 0.3.0 + flat-cache@4.0.1: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + + flatted@3.4.2: {} + flow-enums-runtime@0.0.6: {} fontfaceobserver@2.3.0: {} + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + freeport-async@2.0.0: {} fresh@0.5.2: {} @@ -5204,14 +6996,62 @@ snapshots: function-bind@1.1.2: {} + function.prototype.name@1.2.0: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + es-define-property: 1.0.1 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 + is-callable: 1.2.7 + is-document.all: 1.0.0 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-package-type@0.1.0: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + getenv@2.0.0: {} + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + glob@13.0.0: dependencies: minimatch: 10.2.5 @@ -5231,20 +7071,57 @@ snapshots: dependencies: ini: 1.3.8 + globals@14.0.0: {} + + globals@16.5.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + graceful-fs@4.2.11: {} + has-bigints@1.1.0: {} + has-flag@3.0.0: {} has-flag@4.0.0: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + hasown@2.0.2: dependencies: function-bind: 1.1.2 + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + hermes-estree@0.25.1: {} + hermes-estree@0.29.1: {} hermes-estree@0.32.0: {} + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + hermes-parser@0.29.1: dependencies: hermes-estree: 0.29.1 @@ -5284,10 +7161,17 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + image-size@1.2.1: dependencies: queue: 6.0.2 + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + imurmurhash@0.1.4: {} inflight@1.0.6: @@ -5303,26 +7187,148 @@ snapshots: dependencies: css-in-js-utils: 3.1.0 + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.1 + invariant@2.2.4: dependencies: loose-envify: 1.4.0 + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-arrayish@0.3.4: {} + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-bun-module@2.0.0: + dependencies: + semver: 7.7.3 + + is-callable@1.2.7: {} + is-core-module@2.16.1: dependencies: hasown: 2.0.2 + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + is-docker@2.2.1: {} + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + is-number@7.0.0: {} + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.22 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 + isarray@2.0.5: {} + isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -5337,6 +7343,15 @@ snapshots: transitivePeerDependencies: - supports-color + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -5426,14 +7441,40 @@ snapshots: jsesc@3.1.0: {} + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + json5@2.2.3: {} + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kleur@3.0.3: {} lan-network@0.2.1: {} leven@3.1.0: {} + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + lighthouse-logger@1.4.2: dependencies: debug: 2.6.9 @@ -5500,12 +7541,18 @@ snapshots: dependencies: p-locate: 4.1.0 + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + locate-path@8.0.0: dependencies: p-locate: 6.0.0 lodash.debounce@4.0.8: {} + lodash.merge@4.6.2: {} + lodash.throttle@4.1.1: {} log-symbols@2.2.0: @@ -5541,6 +7588,8 @@ snapshots: marky@1.3.0: {} + math-intrinsics@1.1.0: {} + mdn-data@2.0.14: {} mdurl@2.0.0: {} @@ -5751,6 +7800,10 @@ snapshots: dependencies: brace-expansion: 1.1.12 + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 @@ -5777,12 +7830,23 @@ snapshots: nanoid@3.3.11: {} + napi-postinstall@0.3.4: {} + + natural-compare@1.4.0: {} + negotiator@0.6.3: {} negotiator@0.6.4: {} nested-error-stacks@2.0.1: {} + node-exports-info@1.6.2: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -5814,6 +7878,46 @@ snapshots: object-assign@4.1.1: {} + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -5843,6 +7947,15 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@3.4.0: dependencies: chalk: 2.4.2 @@ -5852,6 +7965,12 @@ snapshots: strip-ansi: 5.2.0 wcwidth: 1.0.1 + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -5868,12 +7987,20 @@ snapshots: dependencies: p-limit: 2.3.0 + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + p-locate@6.0.0: dependencies: p-limit: 4.0.0 p-try@2.2.0: {} + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + parse-png@2.1.0: dependencies: pngjs: 3.4.0 @@ -5909,6 +8036,8 @@ snapshots: pngjs@3.4.0: {} + possible-typed-array-names@1.1.0: {} + postcss-value-parser@4.2.0: {} postcss@8.4.49: @@ -5917,6 +8046,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prelude-ls@1.2.1: {} + pretty-bytes@5.6.0: {} pretty-format@29.7.0: @@ -6143,6 +8274,17 @@ snapshots: react@19.1.0: {} + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -6151,6 +8293,15 @@ snapshots: regenerator-runtime@0.13.11: {} + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 @@ -6176,12 +8327,16 @@ snapshots: rc: 1.2.8 resolve: 1.7.1 + resolve-from@4.0.0: {} + resolve-from@5.0.0: {} resolve-global@1.0.0: dependencies: global-dirs: 0.1.1 + resolve-pkg-maps@1.0.0: {} + resolve-workspace-root@2.0.1: {} resolve.exports@2.0.3: {} @@ -6196,6 +8351,15 @@ snapshots: dependencies: path-parse: 1.0.7 + resolve@2.0.0-next.7: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.2 + object-keys: 1.1.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -6205,8 +8369,27 @@ snapshots: dependencies: glob: 7.2.3 + safe-array-concat@1.1.4: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + sax@1.4.4: {} scheduler@0.26.0: {} @@ -6244,6 +8427,28 @@ snapshots: transitivePeerDependencies: - supports-color + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -6258,6 +8463,34 @@ snapshots: shell-quote@1.8.3: {} + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} simple-plist@1.3.1: @@ -6291,6 +8524,8 @@ snapshots: sprintf-js@1.0.3: {} + stable-hash@0.0.5: {} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -6307,6 +8542,11 @@ snapshots: statuses@2.0.2: {} + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + stream-buffers@2.2.0: {} strict-uri-encode@2.0.0: {} @@ -6317,6 +8557,51 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.1 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.2 + + string.prototype.trim@1.2.11: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 + + string.prototype.trimend@1.0.10: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + strip-ansi@5.2.0: dependencies: ansi-regex: 4.1.1 @@ -6325,8 +8610,12 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-bom@3.0.0: {} + strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} + structured-headers@0.4.1: {} styleq@0.1.3: {} @@ -6378,7 +8667,7 @@ snapshots: terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 + acorn: 8.17.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -6413,20 +8702,78 @@ snapshots: tr46@0.0.3: {} + ts-api-utils@2.5.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + ts-interface-checker@0.1.13: {} + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: + optional: true + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-detect@4.0.8: {} type-fest@0.21.3: {} type-fest@0.7.1: {} + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.8: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + typescript@5.9.3: {} ua-parser-js@1.0.41: {} uc.micro@2.1.0: {} + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + undici-types@7.16.0: {} undici@6.23.0: {} @@ -6450,12 +8797,43 @@ snapshots: unpipe@1.0.0: {} + unrs-resolver@1.12.2: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + use-latest-callback@0.2.6(react@19.1.0): dependencies: react: 19.1.0 @@ -6503,12 +8881,55 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.2.0 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.22 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.22: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 wonka@6.3.5: {} + word-wrap@1.2.5: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -6567,3 +8988,9 @@ snapshots: yocto-queue@0.1.0: {} yocto-queue@1.2.2: {} + + zod-validation-error@4.0.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + + zod@4.4.3: {} diff --git a/app/src/components/AnthropicIcon.tsx b/app/src/components/AnthropicIcon.tsx index e9b4bdcc..e120f1c9 100644 --- a/app/src/components/AnthropicIcon.tsx +++ b/app/src/components/AnthropicIcon.tsx @@ -1,9 +1,9 @@ import Svg, { Path } from 'react-native-svg'; interface IAnthropicIcon { - size: number + size?: number theme: any - selected: boolean + selected?: boolean } export function AnthropicIcon({ diff --git a/app/src/components/ChatModelModal.tsx b/app/src/components/ChatModelModal.tsx index 68991f5a..094a66f0 100644 --- a/app/src/components/ChatModelModal.tsx +++ b/app/src/components/ChatModelModal.tsx @@ -1,15 +1,15 @@ import { useContext } from 'react' import { ThemeContext, AppContext } from '../context' -import { MODELS } from '../../constants' import { View, Text, StyleSheet, TouchableHighlight } from 'react-native' +import { Model, Theme } from '../../types' -export function ChatModelModal({ handlePresentModalPress }) { +export function ChatModelModal({ handlePresentModalPress }: { handlePresentModalPress: () => void }) { const { theme } = useContext(ThemeContext) - const { setChatType, chatType } = useContext(AppContext) + const { setChatType, chatType, models } = useContext(AppContext) const styles = getStyles(theme) - const options = Object.values(MODELS) + const options = models - function _setChatType(v) { + function _setChatType(v: Model) { setChatType(v) handlePresentModalPress() } @@ -27,6 +27,8 @@ export function ChatModelModal({ handlePresentModalPress }) { _setChatType(option)} + accessibilityRole="button" + accessibilityLabel={`Select model ${option.name}`} key={index}> + + + + {chatType.name} + + ({ - theme: {}, + theme: lightTheme, setTheme: () => null, themeName: '' }) @@ -15,8 +16,11 @@ const AppContext = createContext({ handlePresentModalPress: () => null, setImageModel: () => null, closeModal: () => null, + models: Object.values(MODELS), + systemPrompt: '', + setSystemPrompt: () => null, }) export { ThemeContext, AppContext -} \ No newline at end of file +} diff --git a/app/src/hooks/useChatStream.ts b/app/src/hooks/useChatStream.ts new file mode 100644 index 00000000..a2ce3510 --- /dev/null +++ b/app/src/hooks/useChatStream.ts @@ -0,0 +1,131 @@ +import { useRef, useState, useCallback, useEffect } from 'react' +import { getEventSource, getChatRoute } from '../utils' +import { ChatMessage, Model } from '../../types' + +const FLUSH_INTERVAL_MS = 50 + +export interface StreamCallbacks { + onToken: (fullResponse: string) => void + onDone: (fullResponse: string) => void + onError: (message: string) => void +} + +interface WireMessage { + role: 'system' | 'user' | 'assistant' + content: string + image?: { mimeType: string, data: string } +} + +function toWireMessages(messages: ChatMessage[], systemPrompt: string): WireMessage[] { + const wire: WireMessage[] = [] + if (systemPrompt.trim()) { + wire.push({ role: 'system', content: systemPrompt.trim() }) + } + for (const message of messages) { + wire.push({ + role: message.role, + content: message.content, + ...(message.image?.base64 + ? { image: { mimeType: message.image.mimeType, data: message.image.base64 } } + : {}) + }) + } + return wire +} + +/** + * Streams a chat completion for any provider through the server proxy. + * Batches token updates to avoid re-rendering on every SSE event and + * supports cancelling an in-flight response. + */ +export function useChatStream() { + const [streaming, setStreaming] = useState(false) + const esRef = useRef | null>(null) + const flushTimerRef = useRef | null>(null) + + const stop = useCallback(() => { + if (flushTimerRef.current) { + clearTimeout(flushTimerRef.current) + flushTimerRef.current = null + } + esRef.current?.close() + esRef.current = null + setStreaming(false) + }, []) + + useEffect(() => stop, [stop]) + + const send = useCallback(( + model: Model, + messages: ChatMessage[], + systemPrompt: string, + callbacks: StreamCallbacks + ) => { + stop() + setStreaming(true) + + let response = '' + let pendingFlush = false + let finished = false + + const flush = () => { + flushTimerRef.current = null + pendingFlush = false + callbacks.onToken(response) + } + + const scheduleFlush = () => { + if (pendingFlush) return + pendingFlush = true + flushTimerRef.current = setTimeout(flush, FLUSH_INTERVAL_MS) + } + + const finish = (handler: () => void) => { + if (finished) return + finished = true + if (flushTimerRef.current) { + clearTimeout(flushTimerRef.current) + flushTimerRef.current = null + } + esRef.current?.close() + esRef.current = null + setStreaming(false) + handler() + } + + const es = getEventSource({ + body: { + model: model.label, + messages: toWireMessages(messages, systemPrompt) + }, + type: getChatRoute(model) + }) + esRef.current = es + + es.addEventListener('message', (event: any) => { + if (event.data === '[DONE]') { + finish(() => callbacks.onDone(response)) + return + } + try { + const data = JSON.parse(event.data) + if (data?.error) { + finish(() => callbacks.onError(data.error)) + return + } + if (typeof data?.content === 'string') { + response += data.content + scheduleFlush() + } + } catch {} + }) + + es.addEventListener('error', (event: any) => { + finish(() => callbacks.onError( + event?.message || 'Unable to reach the server. Check your connection and try again.' + )) + }) + }, [stop]) + + return { streaming, send, stop } +} diff --git a/app/src/main.tsx b/app/src/main.tsx index 78f382d3..13201a2a 100644 --- a/app/src/main.tsx +++ b/app/src/main.tsx @@ -1,9 +1,9 @@ -import { useContext, useRef, useCallback } from 'react'; -import { StyleSheet, Text, View, Button } from 'react-native'; +import { useContext } from 'react'; +import { StyleSheet, View } from 'react-native'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { Chat, Images, Settings } from './screens' import { Header } from './components' -import FeatherIcon from '@expo/vector-icons/Feather' +import { Feather as FeatherIcon } from '@expo/vector-icons' import { SafeAreaProvider, useSafeAreaInsets, diff --git a/app/src/screens/chat.tsx b/app/src/screens/chat.tsx index b48d1217..40ff0a8e 100644 --- a/app/src/screens/chat.tsx +++ b/app/src/screens/chat.tsx @@ -4,478 +4,595 @@ import { KeyboardAvoidingView, StyleSheet, TouchableHighlight, + TouchableOpacity, TextInput, - ScrollView, ActivityIndicator, FlatList, - Keyboard + Keyboard, + Share, + Platform, + Image } from 'react-native' import 'react-native-get-random-values' -import { useContext, useState, useRef } from 'react' +import { useContext, useState, useRef, useEffect, useCallback, memo } from 'react' import { ThemeContext, AppContext } from '../context' -import { getEventSource, getFirstNCharsOrLess, getChatType } from '../utils' -import { v4 as uuid } from 'uuid' -import Ionicons from '@expo/vector-icons/Ionicons' +import { useChatStream } from '../hooks/useChatStream' +import { PROMPT_SUGGESTIONS } from '../../constants' +import { Ionicons } from '@expo/vector-icons' import * as Clipboard from 'expo-clipboard' +import * as Haptics from 'expo-haptics' +import * as ImagePicker from 'expo-image-picker' +import * as Speech from 'expo-speech' +import AsyncStorage from '@react-native-async-storage/async-storage' import { useActionSheet } from '@expo/react-native-action-sheet' import Markdown from '@ronradtke/react-native-markdown-display' +import { ChatMessage, ImageAttachment, Theme } from '../../types' -type ChatState = { - messages: Array<{user: string, assistant?: string}>, - index: string, - apiMessages: string +const STORAGE_KEY = 'rnai-chats-v1' + +type ChatStates = Record + +function stripMarkdown(text: string) { + return text + .replace(/```[\s\S]*?```/g, ' code block ') + .replace(/[*_~`#>]/g, '') } -const createEmptyChatState = (): ChatState => ({ - messages: [], - index: uuid(), - apiMessages: '' +const MessageBubble = memo(function MessageBubble({ + item, + theme, + streaming, + isLast, + onOptions, + onRetry +}: { + item: ChatMessage, + theme: Theme, + streaming: boolean, + isLast: boolean, + onOptions: (message: ChatMessage) => void, + onRetry: () => void +}) { + const styles = getStyles(theme) + if (item.role === 'user') { + return ( + + + + { + item.image && ( + + ) + } + { + !!item.content && ( + + {item.content} + + ) + } + + + + ) + } + if (item.error) { + return ( + + {item.error} + + + Retry + + + ) + } + return ( + + { + streaming && isLast && !item.content ? ( + + ) : ( + {item.content} + ) + } + { + !(streaming && isLast) && !!item.content && ( + onOptions(item)} + underlayColor={'transparent'} + accessibilityRole="button" + accessibilityLabel="Message options" + > + + + + + ) + } + + ) }) export function Chat() { - const [loading, setLoading] = useState(false) const [input, setInput] = useState('') - const scrollViewRef = useRef(null) + const [attachment, setAttachment] = useState(null) + const [chatStates, setChatStates] = useState({}) + const [hydrated, setHydrated] = useState(false) + const flatListRef = useRef(null) + const autoScrollRef = useRef(true) const { showActionSheetWithOptions } = useActionSheet() - - // Per-model chat state - each model has its own conversation history - const [chatStates, setChatStates] = useState>({}) - - // Helper to get or create chat state for current model - const getChatState = (modelLabel: string): ChatState => { - return chatStates[modelLabel] || createEmptyChatState() - } - - // Helper to update chat state for a specific model - const updateChatState = (modelLabel: string, updater: (prev: ChatState) => ChatState) => { - setChatStates(prev => ({ - ...prev, - [modelLabel]: updater(prev[modelLabel] || createEmptyChatState()) - })) - } + const { streaming, send, stop } = useChatStream() const { theme } = useContext(ThemeContext) - const { chatType } = useContext(AppContext) + const { chatType, systemPrompt } = useContext(AppContext) const styles = getStyles(theme) - async function chat() { - if (!input) return - Keyboard.dismiss() - if (chatType.label.includes('claude')) { - generateClaudeResponse() - } else if (chatType.label.includes('gpt')) { - generateGptResponse() - } else if (chatType.label.includes('gemini')) { - generateGeminiResponse() - } else if (chatType.label.includes('glm') || chatType.label.includes('kimi')) { - generateGptResponse() - } - } - async function generateGptResponse() { - if (!input) return - Keyboard.dismiss() - let localResponse = '' - const modelLabel = chatType.label - const currentState = getChatState(modelLabel) + const messages = chatStates[chatType.label] || [] - let messageArray = [ - ...currentState.messages, { - user: input, + useEffect(() => { + AsyncStorage.getItem(STORAGE_KEY) + .then(value => { + if (value) setChatStates(JSON.parse(value)) + }) + .catch(err => console.log('error restoring chats', err)) + .finally(() => setHydrated(true)) + }, []) + + useEffect(() => { + if (!hydrated) return + const timer = setTimeout(() => { + const sanitized: ChatStates = {} + for (const [label, msgs] of Object.entries(chatStates)) { + sanitized[label] = msgs + .filter(m => !m.error) + .map(m => m.image ? { ...m, image: { ...m.image, base64: undefined } } : m) } - ] as [{user: string, assistant?: string}] + AsyncStorage.setItem(STORAGE_KEY, JSON.stringify(sanitized)) + .catch(err => console.log('error persisting chats', err)) + }, 400) + return () => clearTimeout(timer) + }, [chatStates, hydrated]) - updateChatState(modelLabel, prev => ({ + const updateMessages = useCallback((modelLabel: string, updater: (prev: ChatMessage[]) => ChatMessage[]) => { + setChatStates(prev => ({ ...prev, - messages: JSON.parse(JSON.stringify(messageArray)) + [modelLabel]: updater(prev[modelLabel] || []) })) - - setLoading(true) - setTimeout(() => { - scrollViewRef.current?.scrollToEnd({ - animated: true - }) - }, 1) - setInput('') - - const messages = messageArray.reduce((acc: any[], message) => { - acc.push({ role: 'user', content: message.user }) - if (message.assistant) { - acc.push({ role: 'assistant', content: message.assistant }) - } - return acc - }, []) - - const eventSourceArgs = { - body: { - messages, - model: chatType.label + }, []) + + function streamResponse(modelLabel: string, history: ChatMessage[]) { + autoScrollRef.current = true + updateMessages(modelLabel, () => [ + ...history, + { role: 'assistant', content: '', model: modelLabel } + ]) + send(chatType, history, systemPrompt, { + onToken: response => { + updateMessages(modelLabel, prev => [ + ...prev.slice(0, -1), + { role: 'assistant', content: response, model: modelLabel } + ]) }, - type: getChatType(chatType) - } - - const es = await getEventSource(eventSourceArgs) - - const listener = (event) => { - if (event.type === "open") { - console.log("Open SSE connection.") - setLoading(false) - } else if (event.type === "message") { - if (event.data !== "[DONE]") { - if (localResponse.length < 850) { - scrollViewRef.current?.scrollToEnd({ - animated: true - }) - } - const data = JSON.parse(event.data) - if (typeof data === 'string') { - localResponse = localResponse + data - } else if (data?.content) { - localResponse = localResponse + data.content - } - messageArray[messageArray.length - 1].assistant = localResponse - updateChatState(modelLabel, prev => ({ - ...prev, - messages: JSON.parse(JSON.stringify(messageArray)) - })) - } else { - setLoading(false) - es.close() - } - } else if (event.type === "error") { - console.error("Connection error:", event.message) - setLoading(false) - } else if (event.type === "exception") { - console.error("Error:", event.message, event.error) - setLoading(false) + onDone: response => { + updateMessages(modelLabel, prev => [ + ...prev.slice(0, -1), + { role: 'assistant', content: response, model: modelLabel } + ]) + }, + onError: message => { + updateMessages(modelLabel, prev => [ + ...prev.slice(0, -1), + { role: 'assistant', content: '', error: message, model: modelLabel } + ]) } - } - - es.addEventListener("open", listener) - es.addEventListener("message", listener) - es.addEventListener("error", listener) + }) } - async function generateGeminiResponse() { - if (!input) return - Keyboard.dismiss() - let localResponse = '' - const modelLabel = chatType.label - const currentState = getChatState(modelLabel) - const geminiInput = `${input}` - - let messageArray = [ - ...currentState.messages, { - user: input, - } - ] as [{user: string, assistant?: string}] - - updateChatState(modelLabel, prev => ({ - ...prev, - messages: JSON.parse(JSON.stringify(messageArray)) - })) - - setLoading(true) - setTimeout(() => { - scrollViewRef.current?.scrollToEnd({ - animated: true - }) - }, 1) - setInput('') - - const eventSourceArgs = { - body: { - prompt: geminiInput, - model: chatType.label - }, - type: getChatType(chatType) - } - const es = await getEventSource(eventSourceArgs) + function chat(text?: string) { + const value = (text ?? input).trim() + if (!value && !attachment) return + if (streaming) return + Keyboard.dismiss() + Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light).catch(() => null) - - const listener = (event) => { - if (event.type === "open") { - console.log("Open SSE connection.") - setLoading(false) - } else if (event.type === "message") { - if (event.data !== "[DONE]") { - if (localResponse.length < 850) { - scrollViewRef.current?.scrollToEnd({ - animated: true - }) - } - - const data = event.data - localResponse = localResponse + JSON.parse(data) - messageArray[messageArray.length - 1].assistant = localResponse - updateChatState(modelLabel, prev => ({ - ...prev, - messages: JSON.parse(JSON.stringify(messageArray)) - })) - } else { - setLoading(false) - updateChatState(modelLabel, prev => ({ - ...prev, - apiMessages: `${prev.apiMessages}\n\nPrompt: ${input}\n\nResponse:${localResponse}` - })) - es.close() - } - } else if (event.type === "error") { - console.error("Connection error:", event.message) - setLoading(false) - } else if (event.type === "exception") { - console.error("Error:", event.message, event.error) - setLoading(false) - } + const userMessage: ChatMessage = { + role: 'user', + content: value, + ...(attachment ? { image: attachment } : {}) } - - es.addEventListener("open", listener); - es.addEventListener("message", listener); - es.addEventListener("error", listener); + const history = [...messages.filter(m => !m.error), userMessage] + setInput('') + setAttachment(null) + streamResponse(chatType.label, history) } - async function generateClaudeResponse() { - if (!input) return - Keyboard.dismiss() - let localResponse = '' - const modelLabel = chatType.label - const currentState = getChatState(modelLabel) - const claudeInput = `${currentState.apiMessages}\n\nHuman: ${input}\n\nAssistant:` - - let messageArray = [ - ...currentState.messages, { - user: input, - } - ] as [{user: string, assistant?: string}] + function retryLast() { + if (streaming) return + const history = messages.filter(m => !m.error) + const lastUserIndex = history.map(m => m.role).lastIndexOf('user') + if (lastUserIndex === -1) return + streamResponse(chatType.label, history.slice(0, lastUserIndex + 1)) + } - updateChatState(modelLabel, prev => ({ - ...prev, - messages: JSON.parse(JSON.stringify(messageArray)) - })) + function regenerate() { + retryLast() + } - setLoading(true) - setTimeout(() => { - scrollViewRef.current?.scrollToEnd({ - animated: true + async function attachImage() { + try { + const res = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ImagePicker.MediaTypeOptions.Images, + allowsEditing: true, + quality: 0.8, + base64: true }) - }, 1) - setInput('') - - const eventSourceArgs = { - body: { - prompt: claudeInput, - model: chatType.label - }, - type: getChatType(chatType), + if (res.canceled || !res.assets?.length) return + const asset = res.assets[0] + setAttachment({ + uri: asset.uri, + mimeType: asset.mimeType || 'image/jpeg', + base64: asset.base64 || undefined + }) + } catch (err) { + console.log('error picking image:', err) } + } - const es = await getEventSource(eventSourceArgs) + async function copyToClipboard(text: string) { + await Clipboard.setStringAsync(text) + Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success).catch(() => null) + } - const listener = (event) => { - if (event.type === "open") { - console.log("Open SSE connection.") - setLoading(false) - } else if (event.type === "message") { - if (event.data !== "[DONE]") { - if (localResponse.length < 850) { - scrollViewRef.current?.scrollToEnd({ - animated: true - }) - } - const data = event.data - localResponse = localResponse + JSON.parse(data).text - messageArray[messageArray.length - 1].assistant = localResponse - updateChatState(modelLabel, prev => ({ - ...prev, - messages: JSON.parse(JSON.stringify(messageArray)) - })) - } else { - setLoading(false) - updateChatState(modelLabel, prev => ({ - ...prev, - apiMessages: `${prev.apiMessages}\n\nHuman: ${input}\n\nAssistant:${getFirstNCharsOrLess(localResponse, 2000)}` - })) - es.close() - } - } else if (event.type === "error") { - console.error("Connection error:", event.message) - setLoading(false) - } else if (event.type === "exception") { - console.error("Error:", event.message, event.error) - setLoading(false) - } - } - es.addEventListener("open", listener) - es.addEventListener("message", listener) - es.addEventListener("error", listener) + async function shareConversation() { + const transcript = messages + .filter(m => !m.error) + .map(m => `**${m.role === 'user' ? 'You' : chatType.name}**: ${m.content}`) + .join('\n\n') + try { + await Share.share({ message: transcript }) + } catch {} } - async function copyToClipboard(text) { - await Clipboard.setStringAsync(text) + function clearChat() { + if (streaming) return + Speech.stop() + updateMessages(chatType.label, () => []) } - async function showClipboardActionsheet(text) { - const cancelButtonIndex = 2 + function showMessageOptions(message: ChatMessage) { + const options = [ + 'Copy to clipboard', + 'Speak aloud', + 'Regenerate response', + 'Share conversation', + 'Clear chat', + 'Cancel' + ] showActionSheetWithOptions({ - options: ['Copy to clipboard', 'Clear chat', 'cancel'], - cancelButtonIndex - }, selectedIndex => { - if (selectedIndex === Number(0)) { - copyToClipboard(text) - } - if (selectedIndex === 1) { - clearChat() + options, + cancelButtonIndex: options.length - 1, + destructiveButtonIndex: 4 + }, index => { + switch (index) { + case 0: copyToClipboard(message.content); break + case 1: Speech.speak(stripMarkdown(message.content)); break + case 2: regenerate(); break + case 3: shareConversation(); break + case 4: clearChat(); break } }) } - async function clearChat() { - if (loading) return - const modelLabel = chatType.label - updateChatState(modelLabel, () => createEmptyChatState()) + const callMade = messages.length > 0 + + function renderItem({ item, index }: { item: ChatMessage, index: number }) { + return ( + + ) } - function renderItem({ - item, index - } : { - item: any, index: number - }) { + function renderAttachmentPreview() { + if (!attachment) return null return ( - - - - - {item.user} - - - - { - item.assistant && ( - - {item.assistant} - showClipboardActionsheet(item.assistant)} - underlayColor={'transparent'} - > - - - - - - ) - } + + + Image attached + setAttachment(null)} + accessibilityRole="button" + accessibilityLabel="Remove attached image" + style={styles.attachmentRemove} + > + + ) } - const currentChatState = getChatState(chatType.label) - const callMade = currentChatState.messages.length > 0 + function renderInputRow(midScreen: boolean) { + return ( + + { + chatType.supportsVision && !midScreen && ( + + + + ) + } + + { + !midScreen && ( + streaming ? ( + + + + + + ) : ( + chat()} + accessibilityRole="button" + accessibilityLabel="Send message" + > + + + + + ) + ) + } + + ) + } return ( - - { - !callMade && ( - - - - setInput(v)} - style={styles.midInput} - placeholder='Message' - placeholderTextColor={theme.placeholderTextColor} - autoCorrect={true} - /> - - - - - Start chat - - - - - Chat with a variety of different language models. - + { + !callMade ? ( + + + {renderInputRow(true)} + chat()} + underlayColor={'transparent'} + accessibilityRole="button" + accessibilityLabel="Start chat" + > + + + + Start chat + + + + {renderAttachmentPreview()} + { + chatType.supportsVision && !attachment && ( + + + Attach an image + + ) + } + + Chat with a variety of different language models. + + + { + PROMPT_SUGGESTIONS.map(suggestion => ( + chat(suggestion)} + accessibilityRole="button" + style={styles.suggestionChip} + > + {suggestion} + + )) + } - ) - } - { - callMade && ( + + ) : ( + <> - ) - } - { - loading && ( - - ) - } - - { - callMade && ( - - setInput(v)} - placeholder='Message' - placeholderTextColor={theme.placeholderTextColor} - value={input} + keyExtractor={(_, index) => `${chatType.label}-${index}`} + keyboardShouldPersistTaps='handled' + contentContainerStyle={styles.listContent} + onScrollBeginDrag={() => { autoScrollRef.current = false }} + onScroll={event => { + const { layoutMeasurement, contentOffset, contentSize } = event.nativeEvent + const distanceFromBottom = contentSize.height - layoutMeasurement.height - contentOffset.y + if (distanceFromBottom < 40) autoScrollRef.current = true + }} + scrollEventThrottle={100} + onContentSizeChange={() => { + if (autoScrollRef.current) { + flatListRef.current?.scrollToEnd({ animated: true }) + } + }} /> - - - - - - + {renderAttachmentPreview()} + {renderInputRow(false)} + ) } ) } -const getStyles = (theme: any) => StyleSheet.create({ +const getStyles = (theme: Theme) => StyleSheet.create({ optionsIconWrapper: { padding: 10, paddingTop: 9, alignItems: 'flex-end' }, - scrollContentContainer: { + listContent: { + paddingBottom: 10 + }, + typingIndicator: { + marginVertical: 10, + alignSelf: 'flex-start', + marginLeft: 5 + }, + errorContainer: { + marginHorizontal: 10, + marginTop: 10, + padding: 13, + borderRadius: 13, + borderWidth: 1, + borderColor: theme.borderColor, + }, + errorText: { + color: theme.textColor, + fontFamily: theme.regularFont, + marginBottom: 10 + }, + retryButton: { + flexDirection: 'row', + alignSelf: 'flex-start', + alignItems: 'center', + backgroundColor: theme.tintColor, + borderRadius: 99, + paddingVertical: 6, + paddingHorizontal: 14 + }, + retryButtonText: { + color: theme.tintTextColor, + fontFamily: theme.mediumFont, + marginLeft: 6 + }, + suggestionsContainer: { + flexDirection: 'row', + flexWrap: 'wrap', + justifyContent: 'center', + marginTop: 18, + paddingHorizontal: 14, + gap: 8 + }, + suggestionChip: { + borderWidth: 1, + borderColor: theme.borderColor, + borderRadius: 99, + paddingVertical: 8, + paddingHorizontal: 14 + }, + suggestionText: { + color: theme.textColor, + fontFamily: theme.regularFont, + fontSize: 13 + }, + attachmentPreview: { + flexDirection: 'row', + alignItems: 'center', + marginHorizontal: 10, + marginTop: 8, + padding: 8, + borderWidth: 1, + borderColor: theme.borderColor, + borderRadius: 10 + }, + attachmentThumbnail: { + width: 36, + height: 36, + borderRadius: 6, + marginRight: 10 + }, + attachmentText: { flex: 1, + color: theme.textColor, + fontFamily: theme.regularFont, + fontSize: 13 + }, + attachmentRemove: { + padding: 6 + }, + attachIconButton: { + marginLeft: 10, + padding: 8, + borderRadius: 99, + borderWidth: 1, + borderColor: theme.borderColor + }, + midAttachButton: { + flexDirection: 'row', + alignItems: 'center', + alignSelf: 'center', + marginTop: 12, + borderWidth: 1, + borderColor: theme.borderColor, + borderRadius: 99, + paddingVertical: 7, + paddingHorizontal: 14 + }, + midAttachButtonText: { + color: theme.textColor, + fontFamily: theme.mediumFont, + fontSize: 13, + marginLeft: 7 }, chatDescription: { color: theme.textColor, @@ -492,7 +609,7 @@ const getStyles = (theme: any) => StyleSheet.create({ paddingHorizontal: 25, marginHorizontal: 10, paddingVertical: 15, - borderRadius: 99, + borderRadius: 24, color: theme.textColor, borderColor: theme.borderColor, fontFamily: theme.mediumFont, @@ -523,9 +640,6 @@ const getStyles = (theme: any) => StyleSheet.create({ paddingTop: 5, paddingBottom: 5 }, - loadingContainer: { - marginTop: 25 - }, promptResponse: { marginTop: 10, }, @@ -549,6 +663,13 @@ const getStyles = (theme: any) => StyleSheet.create({ borderRadius: 8, borderTopRightRadius: 0, backgroundColor: theme.tintColor, + overflow: 'hidden' + }, + promptImage: { + width: 180, + height: 180, + borderRadius: 4, + margin: 5 }, promptText: { color: theme.tintTextColor, @@ -574,12 +695,13 @@ const getStyles = (theme: any) => StyleSheet.create({ input: { flex: 1, borderWidth: 1, - borderRadius: 99, + borderRadius: 24, color: theme.textColor, marginHorizontal: 10, paddingVertical: 10, paddingHorizontal: 21, paddingRight: 39, + maxHeight: 110, borderColor: theme.borderColor, fontFamily: theme.semiBoldFont, }, @@ -657,11 +779,11 @@ const getStyles = (theme: any) => StyleSheet.create({ color: theme.secondaryTextColor, backgroundColor: theme.secondaryBackgroundColor, borderWidth: 1, - borderColor: 'rgba(255, 255, 255, .1)', + borderColor: theme.codeBorderColor, fontFamily: theme.lightFont }, hr: { - backgroundColor: 'rgba(255, 255, 255, .1)', + backgroundColor: theme.codeBorderColor, height: 1, }, fence: { @@ -669,23 +791,23 @@ const getStyles = (theme: any) => StyleSheet.create({ padding: 10, color: theme.secondaryTextColor, backgroundColor: theme.secondaryBackgroundColor, - borderColor: 'rgba(255, 255, 255, .1)', + borderColor: theme.codeBorderColor, fontFamily: theme.regularFont }, tr: { borderBottomWidth: 1, - borderColor: 'rgba(255, 255, 255, .2)', + borderColor: theme.borderColor, flexDirection: 'row', }, table: { marginTop: 7, borderWidth: 1, - borderColor: 'rgba(255, 255, 255, .2)', + borderColor: theme.borderColor, borderRadius: 3, }, blockquote: { - backgroundColor: '#312e2e', - borderColor: '#CCC', + backgroundColor: theme.quoteBackgroundColor, + borderColor: theme.tintColor, borderLeftWidth: 4, marginLeft: 5, paddingHorizontal: 5, diff --git a/app/src/screens/images.tsx b/app/src/screens/images.tsx index cb2abce2..c0541b3c 100644 --- a/app/src/screens/images.tsx +++ b/app/src/screens/images.tsx @@ -9,18 +9,20 @@ import { TextInput, Dimensions, Keyboard, - Image + Image, + Alert } from 'react-native' import { useState, useRef, useContext } from 'react' import { DOMAIN, IMAGE_MODELS } from '../../constants' import { v4 as uuid } from 'uuid' import { ThemeContext, AppContext } from '../context' -import Ionicons from '@expo/vector-icons/Ionicons' -import MaterialIcons from '@expo/vector-icons/MaterialCommunityIcons' +import { Theme } from '../../types' +import { Ionicons, MaterialCommunityIcons as MaterialIcons } from '@expo/vector-icons' import { useActionSheet } from '@expo/react-native-action-sheet' -import * as FileSystem from 'expo-file-system' +import * as FileSystem from 'expo-file-system/legacy' import * as ImagePicker from 'expo-image-picker' -import * as Clipboard from 'expo-clipboard' +import * as MediaLibrary from 'expo-media-library' +import * as Sharing from 'expo-sharing' const { width } = Dimensions.get('window') @@ -66,7 +68,7 @@ export function Images() { } Keyboard.dismiss() const imageCopy = image - const currentModel = IMAGE_MODELS[imageModel].name + const currentModel = IMAGE_MODELS[imageModel as keyof typeof IMAGE_MODELS].name const providerLabel = 'Gemini' try { setTimeout(() => { @@ -140,10 +142,11 @@ export function Images() { }, 50) } else { setLoading(false) - console.log('error generating image ...', response) + Alert.alert('Image generation failed', response?.error || 'The model did not return an image. Please try again.') } } catch (err) { setLoading(false) + Alert.alert('Image generation failed', 'Unable to reach the server. Check your connection and try again.') console.log('error generating image ...', err) } } @@ -171,10 +174,6 @@ export function Images() { ) } - async function copyToClipboard(text:string) { - await Clipboard.setStringAsync(text) - } - function clearPrompts() { setCallMade(false) setImages({ @@ -183,36 +182,61 @@ export function Images() { }) } - async function showClipboardActionsheet(d) { + async function showClipboardActionsheet(d: { image: string }) { closeModal() - const cancelButtonIndex = 2 + const cancelButtonIndex = 3 showActionSheetWithOptions({ - options: ['Save image', 'Clear prompts', 'cancel'], + options: ['Save to camera roll', 'Share image', 'Clear prompts', 'Cancel'], cancelButtonIndex }, selectedIndex => { - if (selectedIndex === Number(0)) { - console.log('saving image ...') - downloadImageToDevice(d.image) + if (selectedIndex === 0) { + saveImageToCameraRoll(d.image) + } + if (selectedIndex === 1) { + shareImage(d.image) } - if (selectedIndex === Number(1)) { + if (selectedIndex === 2) { clearPrompts() } }) } - async function downloadImageToDevice(url: string) { + async function imageToLocalFile(image: string): Promise { + if (!image.startsWith('data:')) return image + const base64 = image.split(',')[1] + const fileUri = FileSystem.cacheDirectory + uuid() + '.png' + await FileSystem.writeAsStringAsync(fileUri, base64, { + encoding: FileSystem.EncodingType.Base64 + }) + return fileUri + } + + async function saveImageToCameraRoll(image: string) { try { - const downloadResumable = FileSystem.createDownloadResumable( - url, - FileSystem.documentDirectory + uuid() + '.png', - ) - try { - await downloadResumable.downloadAsync() - } catch (e) { - console.error(e) + const { status } = await MediaLibrary.requestPermissionsAsync() + if (status !== 'granted') { + Alert.alert('Permission needed', 'Allow photo library access to save images.') + return } + const fileUri = await imageToLocalFile(image) + await MediaLibrary.saveToLibraryAsync(fileUri) + Alert.alert('Saved', 'Image saved to your camera roll.') } catch (err) { console.log('error saving image ...', err) + Alert.alert('Save failed', 'Unable to save the image. Please try again.') + } + } + + async function shareImage(image: string) { + try { + if (!(await Sharing.isAvailableAsync())) { + Alert.alert('Sharing unavailable', 'Sharing is not available on this device.') + return + } + const fileUri = await imageToLocalFile(image) + await Sharing.shareAsync(fileUri, { mimeType: 'image/png' }) + } catch (err) { + console.log('error sharing image ...', err) } } @@ -470,7 +494,7 @@ export function Images() { ) } -const getStyles = theme => StyleSheet.create({ +const getStyles = (theme: Theme) => StyleSheet.create({ midButtonRow: { flexDirection: 'row', alignItems: 'center', diff --git a/app/src/screens/settings.tsx b/app/src/screens/settings.tsx index fae1e910..bd253d2c 100644 --- a/app/src/screens/settings.tsx +++ b/app/src/screens/settings.tsx @@ -4,30 +4,26 @@ import { StyleSheet, TouchableHighlight, ScrollView, - Dimensions, - Image + TextInput } from 'react-native' import { useContext } from 'react' import { AppContext, ThemeContext } from '../context' -import { - AnthropicIcon, - GeminiIcon, - OpenAIIcon, - GLMIcon, - KimiIcon - } from '../components/index' -import FontAwesome from '@expo/vector-icons/FontAwesome5' -import { IIconProps } from '../../types' -import { MODELS, IMAGE_MODELS } from '../../constants' -import * as themes from '../theme' +import { GeminiIcon } from '../components/index' +import { Ionicons } from '@expo/vector-icons' +import { IMAGE_MODELS } from '../../constants' +import { THEMES } from '../theme' +import { Theme } from '../../types' -const { width } = Dimensions.get('window') -const models = Object.values(MODELS) const imageModels = Object.values(IMAGE_MODELS) -const _themes = Object.values(themes).map(v => ({ - name: v.name, - label: v.label -})) + +const themeOptions: { name: string, label: string, swatches?: string[] }[] = [ + { name: 'System', label: 'system' }, + ...Object.values(THEMES).map(v => ({ + name: v.name, + label: v.label, + swatches: [v.backgroundColor, v.tintColor, v.textColor] + })) +] export function Settings() { const { theme, setTheme, themeName } = useContext(ThemeContext) @@ -36,87 +32,96 @@ export function Settings() { setChatType, setImageModel, imageModel, + models, + systemPrompt, + setSystemPrompt, } = useContext(AppContext) const styles = getStyles(theme) - function renderIcon({ - type, props - }: IIconProps) { - if (type.includes('claude')) { - return - } - if (type.includes('gpt')) { - return - } - if (type.includes('gemini')) { - return - } - if (type.includes('glm')) { - return - } - if (type.includes('kimi')) { - return - } - if (type.includes('nanoBanana')) { - return - } - return - } - return ( - - Theme + + Theme { - _themes.map((value, index) => ( - { - setTheme(value.label) - }} - > - - { + const selected = themeName === value.label + return ( + { + setTheme(value.label) }} > - {value.name} - - - - )) + + { + value.swatches ? ( + + {value.swatches.map((color, i) => ( + + ))} + + ) : ( + + ) + } + + {value.name} + + { + selected && ( + + ) + } + + + ) + }) } - - Chat Model + + Chat Model { models.map((model, index) => { + const ModelIcon = model.icon + const selected = chatType.label === model.label return ( { setChatType(model) }} @@ -124,42 +129,46 @@ export function Settings() { - { - renderIcon({ - type: model.label, - props: { - theme, - size: 18, - style: {marginRight: 8}, - selected: chatType.label === model.label - } - }) - } - - { model.name } - - - + + + { model.name } + + { + selected && ( + + ) + } + + ) }) } - - Image Model + + Image Model { imageModels.map((model, index) => { + const selected = imageModel === model.label return ( { setImageModel(model.label) }} @@ -167,33 +176,53 @@ export function Settings() { - { - renderIcon({ - type: model.label, - props: { - theme, - size: 18, - style: {marginRight: 8}, - color: imageModel === model.label ? theme.tintTextColor : theme.textColor - } - }) - } - - { model.name } - - - + + + { model.name } + + { + selected && ( + + ) + } + + ) }) } + + Custom Instructions + + Sent to the model with every chat as a system prompt. + + + ) } -function getDynamicTextStyle(baseType:string, type:string, theme:any) { +function getDynamicTextStyle(baseType: string, type: string, theme: Theme) { if (type === baseType) { return { color: theme.tintTextColor, @@ -201,8 +230,7 @@ function getDynamicTextStyle(baseType:string, type:string, theme:any) { } else return {} } - -function getDynamicViewStyle(baseType:string, type:string, theme:any) { +function getDynamicViewStyle(baseType: string, type: string, theme: Theme) { if (type === baseType) { return { backgroundColor: theme.tintColor @@ -210,7 +238,7 @@ function getDynamicViewStyle(baseType:string, type:string, theme:any) { } else return {} } -const getStyles = (theme:any) => StyleSheet.create({ +const getStyles = (theme: Theme) => StyleSheet.create({ buttonContainer: { marginBottom: 20 }, @@ -228,10 +256,28 @@ const getStyles = (theme:any) => StyleSheet.create({ paddingHorizontal: 15, marginTop: 10 }, + swatchRow: { + flexDirection: 'row', + alignItems: 'center', + marginRight: 10 + }, + swatch: { + width: 14, + height: 14, + borderRadius: 7, + marginRight: 4, + borderWidth: 1, + borderColor: theme.borderColor + }, + checkmark: { + marginLeft: 'auto' + }, chatChoiceButton: { padding: 15, borderRadius: 8, - flexDirection: 'row' + flexDirection: 'row', + alignItems: 'center', + minHeight: 44 }, chatTypeText: { fontFamily: theme.semiBoldFont, @@ -242,4 +288,22 @@ const getStyles = (theme:any) => StyleSheet.create({ fontSize: 18, color: theme.textColor }, -}) \ No newline at end of file + subText: { + fontFamily: theme.regularFont, + fontSize: 13, + marginTop: 4, + color: theme.mutedForegroundColor + }, + systemPromptInput: { + borderWidth: 1, + borderColor: theme.borderColor, + borderRadius: 12, + marginHorizontal: 15, + marginBottom: 24, + padding: 12, + minHeight: 90, + textAlignVertical: 'top', + color: theme.textColor, + fontFamily: theme.regularFont + }, +}) diff --git a/app/src/theme.ts b/app/src/theme.ts index 4bf4b103..07094b5d 100644 --- a/app/src/theme.ts +++ b/app/src/theme.ts @@ -1,3 +1,5 @@ +import { Theme } from '../types' + const colors = { white: '#fff', black: '#000', @@ -28,10 +30,13 @@ const fonts = { ultraBlackFont: 'Geist-Ultrablack', } -const lightTheme = { +const lightTheme: Theme = { ...fonts, name: 'Light', label: 'light', + quoteBackgroundColor: 'rgba(0, 0, 0, .05)', + codeBorderColor: 'rgba(255, 255, 255, .2)', + statusBarStyle: 'dark', textColor: colors.black, secondaryTextColor: colors.white, mutedForegroundColor: colors.gray, @@ -45,10 +50,13 @@ const lightTheme = { tabBarInactiveTintColor: colors.gray, } -const darkTheme = { +const darkTheme: Theme = { ...fonts, name: 'Dark', label: 'dark', + quoteBackgroundColor: 'rgba(255, 255, 255, .06)', + codeBorderColor: 'rgba(255, 255, 255, .2)', + statusBarStyle: 'light', textColor: colors.white, secondaryTextColor: colors.black, mutedForegroundColor: colors.lightWhite, @@ -62,7 +70,7 @@ const darkTheme = { tabBarInactiveTintColor: colors.lightWhite, } -const hackerNews = { +const hackerNews: Theme = { ...lightTheme, name: 'Hacker News', label: 'hackerNews', @@ -70,7 +78,7 @@ const hackerNews = { tintColor: '#ed702d', } -const miami = { +const miami: Theme = { ...darkTheme, name: 'Miami', label: 'miami', @@ -80,7 +88,7 @@ const miami = { tabBarActiveTintColor: colors.lightPink } -const vercel = { +const vercel: Theme = { ...darkTheme, name: 'Vercel', label: 'vercel', @@ -91,7 +99,7 @@ const vercel = { secondaryTextColor: colors.white, } -const cyberpunk = { +const cyberpunk: Theme = { ...darkTheme, name: 'Cyberpunk', label: 'cyberpunk', @@ -103,7 +111,7 @@ const cyberpunk = { borderColor: 'rgba(0, 240, 255, .3)', } -const matrix = { +const matrix: Theme = { ...darkTheme, name: 'Matrix', label: 'matrix', @@ -115,7 +123,7 @@ const matrix = { borderColor: 'rgba(0, 255, 65, .3)', } -const pink = { +const pink: Theme = { ...lightTheme, name: 'Pink', label: 'pink', @@ -127,6 +135,24 @@ const pink = { borderColor: 'rgba(233, 30, 140, .2)', } +const THEMES: Record = { + light: lightTheme, + dark: darkTheme, + hackerNews, + miami, + vercel, + cyberpunk, + matrix, + pink +} + +function getTheme(label: string, systemColorScheme?: 'light' | 'dark' | null): Theme { + if (label === 'system') { + return systemColorScheme === 'dark' ? darkTheme : lightTheme + } + return THEMES[label] || lightTheme +} + export { - lightTheme, darkTheme, hackerNews, miami, vercel, cyberpunk, matrix, pink + lightTheme, darkTheme, hackerNews, miami, vercel, cyberpunk, matrix, pink, THEMES, getTheme } diff --git a/app/src/utils.ts b/app/src/utils.ts index c4479242..5f9166f5 100644 --- a/app/src/utils.ts +++ b/app/src/utils.ts @@ -1,14 +1,26 @@ import { DOMAIN } from '../constants' import EventSource from 'react-native-sse' -import { Model } from '../types' +import { Model, Provider } from '../types' + +const PROVIDER_ROUTES: Record = { + anthropic: 'claude', + openai: 'gpt', + google: 'gemini', + zai: 'glm', + moonshot: 'kimi' +} + +export function getChatRoute(model: Model): string { + return PROVIDER_ROUTES[model.provider] || 'claude' +} export function getEventSource({ headers, body, type } : { - headers?: any, - body: any, + headers?: Record, + body: object, type: string }) { const es = new EventSource(`${DOMAIN}/chat/${type}`, { @@ -22,38 +34,3 @@ export function getEventSource({ return es; } - -export function getFirstNCharsOrLess(text:string, numChars:number = 1000) { - if (text.length <= numChars) { - return text; - } - return text.substring(0, numChars); -} - -export function getFirstN({ messages, size = 10 } : { size?: number, messages: any[] }) { - if (messages.length > size) { - const firstN = new Array() - for(let i = 0; i < size; i++) { - firstN.push(messages[i]) - } - return firstN - } else { - return messages - } -} - -export function getChatType(type: Model) { - if (type.label.includes('gpt')) { - return 'gpt' - } - if (type.label.includes('gemini')) { - return 'gemini' - } - if (type.label.includes('glm')) { - return 'glm' - } - if (type.label.includes('kimi')) { - return 'kimi' - } - else return 'claude' -} diff --git a/app/tsconfig.json b/app/tsconfig.json index 0b9a390a..a0863d0f 100644 --- a/app/tsconfig.json +++ b/app/tsconfig.json @@ -2,7 +2,6 @@ "extends": "expo/tsconfig.base", "compilerOptions": { "strict": true, - "noImplicitAny": false, "jsx": "react-jsx" } } diff --git a/app/types.ts b/app/types.ts index 104ff22c..5d4425c3 100644 --- a/app/types.ts +++ b/app/types.ts @@ -1,27 +1,85 @@ -import { SetStateAction, Dispatch } from 'react' +import { ComponentType } from 'react' + +export type Provider = 'anthropic' | 'openai' | 'google' | 'zai' | 'moonshot' + +export interface Theme { + name: string + label: string + textColor: string + secondaryTextColor: string + mutedForegroundColor: string + backgroundColor: string + placeholderTextColor: string + secondaryBackgroundColor: string + borderColor: string + tintColor: string + tintTextColor: string + tabBarActiveTintColor: string + tabBarInactiveTintColor: string + quoteBackgroundColor: string + codeBorderColor: string + statusBarStyle: 'light' | 'dark' + regularFont: string + lightFont: string + mediumFont: string + semiBoldFont: string + boldFont: string + blackFont: string + thinFont: string + ultraLightFont: string + ultraBlackFont: string +} + +export interface IconProps { + size?: number + theme: Theme + selected?: boolean + color?: string + style?: object + fill?: string +} export interface IIconProps { type: string props: any } -export interface IThemeContext { - theme: any - setTheme: Dispatch> - themeName: string +export interface Model { + name: string + label: string + provider: Provider + supportsVision: boolean + icon: ComponentType } -export interface Model { - name: string; - label: string; - icon: any +export interface ImageAttachment { + uri: string + mimeType: string + base64?: string +} + +export interface ChatMessage { + role: 'user' | 'assistant' + content: string + image?: ImageAttachment + error?: string + model?: string +} + +export interface IThemeContext { + theme: Theme + setTheme: (theme: string) => void + themeName: string } export interface IAppContext { chatType: Model - setChatType: Dispatch> + setChatType: (model: Model) => void handlePresentModalPress: () => void - setImageModel: Dispatch> - imageModel: string, - closeModal: () => void, -} \ No newline at end of file + setImageModel: (model: string) => void + imageModel: string + closeModal: () => void + models: Model[] + systemPrompt: string + setSystemPrompt: (prompt: string) => void +} From db22ab69e74af02f3925ec5067ce102d61d5cfc8 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 15:04:09 +0000 Subject: [PATCH 3/3] Fix light-theme code border color; use timing-safe auth token comparison Co-Authored-By: Nader Dabit --- app/src/theme.ts | 2 +- server/src/middleware.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/theme.ts b/app/src/theme.ts index 07094b5d..fe79563c 100644 --- a/app/src/theme.ts +++ b/app/src/theme.ts @@ -35,7 +35,7 @@ const lightTheme: Theme = { name: 'Light', label: 'light', quoteBackgroundColor: 'rgba(0, 0, 0, .05)', - codeBorderColor: 'rgba(255, 255, 255, .2)', + codeBorderColor: 'rgba(0, 0, 0, .15)', statusBarStyle: 'dark', textColor: colors.black, secondaryTextColor: colors.white, diff --git a/server/src/middleware.ts b/server/src/middleware.ts index 58d8a46c..4b7f136d 100644 --- a/server/src/middleware.ts +++ b/server/src/middleware.ts @@ -1,4 +1,5 @@ import { Request, Response, NextFunction } from 'express' +import { timingSafeEqual } from 'crypto' import { ZodSchema } from 'zod' /** @@ -9,7 +10,12 @@ export function auth(req: Request, res: Response, next: NextFunction) { const token = process.env.API_AUTH_TOKEN if (!token) return next() const header = req.headers.authorization || '' - if (header === `Bearer ${token}`) return next() + const expected = Buffer.from(`Bearer ${token}`) + const provided = Buffer.from(header) + if ( + expected.length === provided.length && + timingSafeEqual(expected, provided) + ) return next() res.status(401).json({ error: 'unauthorized' }) }