From c4581fb407a9b8a4d7e75776990d9147445e83fc Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 11:25:05 -0500 Subject: [PATCH 01/13] test Revert "Rest of course" --- src/pages/index.astro | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/index.astro b/src/pages/index.astro index 6550963..e84ae6b 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -16,7 +16,6 @@ const newestArticles = sortedArticles.slice(0, 3); const currentTime = new Date(); console.log(currentTime); -// test for Astro Studio const hour = currentTime.getHours(); const greeting = From 79b296e88e8fe084c3fd08ca85e3eaf284e31ced Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 11:26:17 -0500 Subject: [PATCH 02/13] Revert "Merge branch 'main' into rest-of-course" This reverts commit b93af46f51322d3969060fae039f79448a87934c, reversing changes made to c4581fb407a9b8a4d7e75776990d9147445e83fc. --- astro.config.mjs | 5 +- db/config.ts | 13 + db/seed.ts | 6 + package-lock.json | 557 +++++++++++++++++++++++++++++++- package.json | 1 + src/env.d.ts | 1 + src/layouts/ArticleLayout.astro | 4 +- src/pages/articles/[slug].astro | 15 +- src/pages/index.astro | 1 + 9 files changed, 596 insertions(+), 7 deletions(-) create mode 100644 db/config.ts create mode 100644 db/seed.ts diff --git a/astro.config.mjs b/astro.config.mjs index c4b1286..f19a67c 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,9 +1,10 @@ import { defineConfig } from 'astro/config'; import tailwind from "@astrojs/tailwind"; - import react from "@astrojs/react"; +import db from "@astrojs/db"; + // https://astro.build/config export default defineConfig({ - integrations: [tailwind(), react()] + integrations: [tailwind(), react(), db()] }); \ No newline at end of file diff --git a/db/config.ts b/db/config.ts new file mode 100644 index 0000000..adf41c4 --- /dev/null +++ b/db/config.ts @@ -0,0 +1,13 @@ +import { column, defineDb, defineTable } from 'astro:db'; + +const Views = defineTable({ + columns: { + slug: column.text(), + views: column.number(), + } +}) + +// https://astro.build/db/config +export default defineDb({ + tables: { Views } +}); diff --git a/db/seed.ts b/db/seed.ts new file mode 100644 index 0000000..fffc464 --- /dev/null +++ b/db/seed.ts @@ -0,0 +1,6 @@ +import { db } from 'astro:db'; + +// https://astro.build/db/seed +export default async function seed() { + // TODO +} diff --git a/package-lock.json b/package-lock.json index 7e7fd35..c1fec16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "version": "0.0.1", "dependencies": { "@astrojs/check": "^0.5.10", + "@astrojs/db": "^0.11.4", "@astrojs/react": "^3.3.1", "@astrojs/tailwind": "^5.1.0", "@types/react": "^18.3.1", @@ -65,6 +66,154 @@ "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.7.1.tgz", "integrity": "sha512-/POejAYuj8WEw7ZI0J8JBvevjfp9jQ9Wmu/Bg52RiNwGXkMV7JnYpsenVfHvvf1G7R5sXHGKlTcxlQWhoUTiGQ==" }, + "node_modules/@astrojs/db": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@astrojs/db/-/db-0.11.4.tgz", + "integrity": "sha512-PuVej9DNu5ZzlRGS0NUl3iH/5BRo/eG3XRywXbHIQvA0sdI7UZSFisbpUQYJU9iKK9Bxow/FWrqfw2jwqXaC8Q==", + "dependencies": { + "@astrojs/studio": "0.1.0", + "@libsql/client": "^0.6.0", + "async-listen": "^3.0.1", + "ci-info": "^4.0.0", + "deep-diff": "^1.0.2", + "drizzle-orm": "^0.30.10", + "github-slugger": "^2.0.0", + "kleur": "^4.1.5", + "nanoid": "^5.0.7", + "open": "^10.1.0", + "ora": "^8.0.1", + "prompts": "^2.4.2", + "strip-ansi": "^7.1.0", + "yargs-parser": "^21.1.1", + "zod": "^3.23.8" + } + }, + "node_modules/@astrojs/db/node_modules/drizzle-orm": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.30.10.tgz", + "integrity": "sha512-IRy/QmMWw9lAQHpwbUh1b8fcn27S/a9zMIzqea1WNOxK9/4EB8gIo+FZWLiPXzl2n9ixGSv8BhsLZiOppWEwBw==", + "peerDependencies": { + "@aws-sdk/client-rds-data": ">=3", + "@cloudflare/workers-types": ">=3", + "@electric-sql/pglite": ">=0.1.1", + "@libsql/client": "*", + "@neondatabase/serverless": ">=0.1", + "@op-engineering/op-sqlite": ">=2", + "@opentelemetry/api": "^1.4.1", + "@planetscale/database": ">=1", + "@types/better-sqlite3": "*", + "@types/pg": "*", + "@types/react": ">=18", + "@types/sql.js": "*", + "@vercel/postgres": ">=0.8.0", + "@xata.io/client": "*", + "better-sqlite3": ">=7", + "bun-types": "*", + "expo-sqlite": ">=13.2.0", + "knex": "*", + "kysely": "*", + "mysql2": ">=2", + "pg": ">=8", + "postgres": ">=3", + "react": ">=18", + "sql.js": ">=1", + "sqlite3": ">=5" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-rds-data": { + "optional": true + }, + "@cloudflare/workers-types": { + "optional": true + }, + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "@neondatabase/serverless": { + "optional": true + }, + "@op-engineering/op-sqlite": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@types/better-sqlite3": { + "optional": true + }, + "@types/pg": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "@types/sql.js": { + "optional": true + }, + "@vercel/postgres": { + "optional": true + }, + "@xata.io/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "bun-types": { + "optional": true + }, + "expo-sqlite": { + "optional": true + }, + "knex": { + "optional": true + }, + "kysely": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "postgres": { + "optional": true + }, + "react": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/@astrojs/db/node_modules/nanoid": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, "node_modules/@astrojs/internal-helpers": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.4.0.tgz", @@ -162,6 +311,16 @@ "react-dom": "^17.0.2 || ^18.0.0" } }, + "node_modules/@astrojs/studio": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@astrojs/studio/-/studio-0.1.0.tgz", + "integrity": "sha512-pjggMFgtZHPem6RWall02DTa54VCQ4fjqj4bLV0CpQEi0ydgDlughb81PtLhpQPTV0IUtTFOnHbzx6rcKMBAzg==", + "dependencies": { + "ci-info": "^4.0.0", + "kleur": "^4.1.5", + "ora": "^8.0.1" + } + }, "node_modules/@astrojs/tailwind": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.0.tgz", @@ -1442,6 +1601,139 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@libsql/client": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@libsql/client/-/client-0.6.0.tgz", + "integrity": "sha512-qhQzTG/y2IEVbL3+9PULDvlQFWJ/RnjFXECr/Nc3nRngGiiMysDaOV5VUzYk7DulUX98EA4wi+z3FspKrUplUA==", + "dependencies": { + "@libsql/core": "^0.6.0", + "@libsql/hrana-client": "^0.6.0", + "js-base64": "^3.7.5", + "libsql": "^0.3.10" + } + }, + "node_modules/@libsql/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@libsql/core/-/core-0.6.0.tgz", + "integrity": "sha512-affAB8vSqQwqI9NBDJ5uJCVaHoOAS2pOpbv1kWConh1SBbmJBnHHd4KG73RAJ2sgd2+NbT9WA+XJBqxgp28YSw==", + "dependencies": { + "js-base64": "^3.7.5" + } + }, + "node_modules/@libsql/darwin-arm64": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/darwin-arm64/-/darwin-arm64-0.3.18.tgz", + "integrity": "sha512-Zt49dt+cwhPCkuoWgvjbQd4ckNfCJR5xzIAyhgHl3CBZqZaEuaXTOGKLNQT7bnFRPuQcdLt5PBT1cenKu2N6pA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@libsql/darwin-x64": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/darwin-x64/-/darwin-x64-0.3.18.tgz", + "integrity": "sha512-faq6HUGDaNaueeqPei5cypHaD/hhazUyfHo094CXiEeRZq6ZKtNl5PHdlr8jE/Uw8USNpVVQaLdnvSgKcpRPHw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@libsql/hrana-client": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@libsql/hrana-client/-/hrana-client-0.6.0.tgz", + "integrity": "sha512-k+fqzdjqg3IvWfKmVJK5StsbjeTcyNAXFelUbXbGNz3yH1gEVT9mZ6kmhsIXP30ZSyVV0AE1Gi25p82mxC9hwg==", + "dependencies": { + "@libsql/isomorphic-fetch": "^0.2.1", + "@libsql/isomorphic-ws": "^0.1.5", + "js-base64": "^3.7.5", + "node-fetch": "^3.3.2" + } + }, + "node_modules/@libsql/isomorphic-fetch": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@libsql/isomorphic-fetch/-/isomorphic-fetch-0.2.1.tgz", + "integrity": "sha512-Sv07QP1Aw8A5OOrmKgRUBKe2fFhF2hpGJhtHe3d1aRnTESZCGkn//0zDycMKTGamVWb3oLYRroOsCV8Ukes9GA==" + }, + "node_modules/@libsql/isomorphic-ws": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@libsql/isomorphic-ws/-/isomorphic-ws-0.1.5.tgz", + "integrity": "sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==", + "dependencies": { + "@types/ws": "^8.5.4", + "ws": "^8.13.0" + } + }, + "node_modules/@libsql/linux-arm64-gnu": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/linux-arm64-gnu/-/linux-arm64-gnu-0.3.18.tgz", + "integrity": "sha512-5m9xtDAhoyLSV54tho9uQ2ZIDeJWc0vU3Xpe/VK4+6bpURISs23qNhXiCrZnnq3oV0hFlBfcIgQUIATmb6jD2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@libsql/linux-arm64-musl": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/linux-arm64-musl/-/linux-arm64-musl-0.3.18.tgz", + "integrity": "sha512-oYD5+oM2gPEalp+EoR5DVQBRtdGjLsocjsRbQs5O2m4WOBJKER7VUfDYZHsifLGZoBSc11Yo6s9IR9rjGWy20w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@libsql/linux-x64-gnu": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/linux-x64-gnu/-/linux-x64-gnu-0.3.18.tgz", + "integrity": "sha512-QDSSP60nS8KIldGE7H3bpEflQHiL1erwED6huoVJdmDFxsyDJX2CYdWUWW8Za0ZUOvUbnEWAOyMhp6j1dBbZqw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@libsql/linux-x64-musl": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/linux-x64-musl/-/linux-x64-musl-0.3.18.tgz", + "integrity": "sha512-5SXwTlaLCUPzxYyq+P0c7Ko7tcEjpd1X6RZKe1DuRFmJPg6f7j2+LrPEhMSIbqKcrl5ACUUAyoKmGZqNYwz23w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@libsql/win32-x64-msvc": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@libsql/win32-x64-msvc/-/win32-x64-msvc-0.3.18.tgz", + "integrity": "sha512-9EEIHz+e8tTbx9TMkb8ByZnzxc0pYFirK1nSbqC6cFEST95fiY0NCfQ/zAzJxe90KckbjifX6BbO69eWIi3TAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@neon-rs/load": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.4.tgz", + "integrity": "sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1769,6 +2061,14 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", @@ -1796,6 +2096,14 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -2122,6 +2430,14 @@ "sharp": "^0.33.3" } }, + "node_modules/async-listen": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-3.0.1.tgz", + "integrity": "sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==", + "engines": { + "node": ">= 14" + } + }, "node_modules/autoprefixer": { "version": "10.4.19", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", @@ -2299,6 +2615,20 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -2681,6 +3011,14 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2709,6 +3047,48 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/deep-diff": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz", + "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -2959,6 +3339,28 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3017,6 +3419,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -3607,6 +4020,11 @@ "jiti": "bin/jiti.js" } }, + "node_modules/js-base64": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3666,6 +4084,43 @@ "node": ">=6" } }, + "node_modules/libsql": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/libsql/-/libsql-0.3.18.tgz", + "integrity": "sha512-lvhKr7WV3NLWRbXkjn/MeKqXOAqWKU0PX9QYrvDh7fneukapj+iUQ4qgJASrQyxcCrEsClXCQiiK5W6OoYPAlA==", + "cpu": [ + "x64", + "arm64", + "wasm32" + ], + "os": [ + "darwin", + "linux", + "win32" + ], + "dependencies": { + "@neon-rs/load": "^0.0.4", + "detect-libc": "2.0.2", + "libsql": "^0.3.15" + }, + "optionalDependencies": { + "@libsql/darwin-arm64": "0.3.18", + "@libsql/darwin-x64": "0.3.18", + "@libsql/linux-arm64-gnu": "0.3.18", + "@libsql/linux-arm64-musl": "0.3.18", + "@libsql/linux-x64-gnu": "0.3.18", + "@libsql/linux-x64-musl": "0.3.18", + "@libsql/win32-x64-msvc": "0.3.18" + } + }, + "node_modules/libsql/node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } + }, "node_modules/lilconfig": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", @@ -4684,6 +5139,41 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -4760,6 +5250,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ora": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", @@ -5916,6 +6423,17 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6466,6 +6984,11 @@ "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==" }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/unherit": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/unherit/-/unherit-3.0.1.tgz", @@ -6953,6 +7476,14 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7154,6 +7685,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -7252,9 +7803,9 @@ } }, "node_modules/zod": { - "version": "3.23.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.4.tgz", - "integrity": "sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==", + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index 52e797a..b216f4e 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@astrojs/check": "^0.5.10", + "@astrojs/db": "^0.11.4", "@astrojs/react": "^3.3.1", "@astrojs/tailwind": "^5.1.0", "@types/react": "^18.3.1", diff --git a/src/env.d.ts b/src/env.d.ts index acef35f..99a3b5c 100644 --- a/src/env.d.ts +++ b/src/env.d.ts @@ -1,2 +1,3 @@ +/// /// /// diff --git a/src/layouts/ArticleLayout.astro b/src/layouts/ArticleLayout.astro index f5ff046..1ee2e03 100644 --- a/src/layouts/ArticleLayout.astro +++ b/src/layouts/ArticleLayout.astro @@ -1,13 +1,15 @@ --- import BaseLayout from "./BaseLayout.astro"; -const { article } = Astro.props; +const { article, views } = Astro.props; ---

{article.data.title}

{article.data.description}

+
+

{views} views

diff --git a/src/pages/articles/[slug].astro b/src/pages/articles/[slug].astro index ae53efe..209d9f8 100644 --- a/src/pages/articles/[slug].astro +++ b/src/pages/articles/[slug].astro @@ -1,5 +1,6 @@ --- import { getCollection, getEntry } from "astro:content"; +import { Views, db, eq } from "astro:db"; import ArticleLayout from "../../layouts/ArticleLayout.astro"; export async function getStaticPaths() { @@ -12,8 +13,20 @@ export async function getStaticPaths() { const { slug } = Astro.params; const entry = await getEntry("articles", slug); const { Content } = await entry.render(); + +let viewEntry; +try { + viewEntry = await db.select().from(Views).where(eq(Views.slug, entry.slug)); + await db + .update(Views) + .set({ views: viewEntry[0].views + 1 }) + .where(eq(Views.slug, entry.slug)); +} catch (error) { + await db.insert(Views).values({ slug: entry.slug, views: 1 }); + viewEntry = await db.select().from(Views).where(eq(Views.slug, entry.slug)); +} --- - + diff --git a/src/pages/index.astro b/src/pages/index.astro index a33df00..e84ae6b 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -23,6 +23,7 @@ const greeting = --- +

{currentTime}

{greeting}, I'm {SITE.name}.

From ae8b983629cd558c7ffee519259183a3828e6f8f Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 11:54:09 -0500 Subject: [PATCH 03/13] update to build remote --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b216f4e..7977c2c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "astro dev", "start": "astro dev", - "build": "astro check && astro build", + "build": "astro check && astro build --remote", "preview": "astro preview", "astro": "astro" }, From 835351f42b6dfefde24bedf912c955a5e90a39ad Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 11:57:47 -0500 Subject: [PATCH 04/13] pushing yaml --- .github/workflows/_studio.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/_studio.yml diff --git a/.github/workflows/_studio.yml b/.github/workflows/_studio.yml new file mode 100644 index 0000000..a1eb508 --- /dev/null +++ b/.github/workflows/_studio.yml @@ -0,0 +1,26 @@ +name: Astro Studio + +env: + ASTRO_STUDIO_APP_TOKEN: ${{secrets.ASTRO_STUDIO_APP_TOKEN }} + +on: + push: + branches: + - main + pull_request: + types: [opened, reopened, synchronize] + +jobs: + DB: + permissions: + contents: read + actions: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - uses: jaid/action-npm-install@v1.2.1 + - uses: withastro/action-studio@main From aa2a8781acffd8a45d60ad1f52113e2e6230a3b0 Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 12:03:41 -0500 Subject: [PATCH 05/13] Console logs --- src/pages/articles/[slug].astro | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/articles/[slug].astro b/src/pages/articles/[slug].astro index 209d9f8..f98c51f 100644 --- a/src/pages/articles/[slug].astro +++ b/src/pages/articles/[slug].astro @@ -22,8 +22,10 @@ try { .set({ views: viewEntry[0].views + 1 }) .where(eq(Views.slug, entry.slug)); } catch (error) { + console.log(error); await db.insert(Views).values({ slug: entry.slug, views: 1 }); viewEntry = await db.select().from(Views).where(eq(Views.slug, entry.slug)); + console.log(viewEntry); } --- From 95b7bd7ce27b2c5668a8b61c7fd40ce68342f89e Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 12:06:00 -0500 Subject: [PATCH 06/13] does it work on server --- astro.config.mjs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index f19a67c..3a64c40 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,10 +1,12 @@ -import { defineConfig } from 'astro/config'; -import tailwind from "@astrojs/tailwind"; import react from "@astrojs/react"; +import tailwind from "@astrojs/tailwind"; +import { defineConfig } from 'astro/config'; import db from "@astrojs/db"; // https://astro.build/config export default defineConfig({ + output: "server", integrations: [tailwind(), react(), db()] -}); \ No newline at end of file +}); + From 5625cebff596daa2c71b40fa02ab66fd16b74305 Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 12:06:57 -0500 Subject: [PATCH 07/13] Add vercel --- astro.config.mjs | 9 +- package-lock.json | 1103 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 3 files changed, 1108 insertions(+), 5 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index 3a64c40..943db25 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,12 +1,13 @@ import react from "@astrojs/react"; import tailwind from "@astrojs/tailwind"; import { defineConfig } from 'astro/config'; - import db from "@astrojs/db"; +import vercel from "@astrojs/vercel/serverless"; + // https://astro.build/config export default defineConfig({ output: "server", - integrations: [tailwind(), react(), db()] -}); - + integrations: [tailwind(), react(), db()], + adapter: vercel() +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c1fec16..a89803e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@astrojs/db": "^0.11.4", "@astrojs/react": "^3.3.1", "@astrojs/tailwind": "^5.1.0", + "@astrojs/vercel": "^7.6.0", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", "astro": "^4.7.0", @@ -352,6 +353,406 @@ "node": "^18.17.1 || ^20.3.0 || >=21.0.0" } }, + "node_modules/@astrojs/vercel": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@astrojs/vercel/-/vercel-7.6.0.tgz", + "integrity": "sha512-LLOpXWYwTlYgZJCC+ulCpSUnUzOzLrlna2T0WCkhkH1UeavBY5NI0Agpq3rcQd012I7Vr2io+ZKUgKGW+EFvhg==", + "dependencies": { + "@astrojs/internal-helpers": "0.4.0", + "@vercel/analytics": "^1.2.2", + "@vercel/edge": "^1.1.1", + "@vercel/nft": "^0.26.5", + "esbuild": "^0.21.1", + "fast-glob": "^3.3.2", + "set-cookie-parser": "^2.6.0", + "web-vitals": "^3.5.2" + }, + "peerDependencies": { + "astro": "^4.2.0" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.4.tgz", + "integrity": "sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/android-arm": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.4.tgz", + "integrity": "sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/android-arm64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.4.tgz", + "integrity": "sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/android-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.4.tgz", + "integrity": "sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.4.tgz", + "integrity": "sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/darwin-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.4.tgz", + "integrity": "sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.4.tgz", + "integrity": "sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.4.tgz", + "integrity": "sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-arm": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.4.tgz", + "integrity": "sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-arm64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.4.tgz", + "integrity": "sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-ia32": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.4.tgz", + "integrity": "sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-loong64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.4.tgz", + "integrity": "sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.4.tgz", + "integrity": "sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.4.tgz", + "integrity": "sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.4.tgz", + "integrity": "sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-s390x": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.4.tgz", + "integrity": "sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/linux-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.4.tgz", + "integrity": "sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.4.tgz", + "integrity": "sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.4.tgz", + "integrity": "sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/sunos-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.4.tgz", + "integrity": "sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/win32-arm64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.4.tgz", + "integrity": "sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/win32-ia32": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.4.tgz", + "integrity": "sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/@esbuild/win32-x64": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.4.tgz", + "integrity": "sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@astrojs/vercel/node_modules/esbuild": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.4.tgz", + "integrity": "sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.4", + "@esbuild/android-arm": "0.21.4", + "@esbuild/android-arm64": "0.21.4", + "@esbuild/android-x64": "0.21.4", + "@esbuild/darwin-arm64": "0.21.4", + "@esbuild/darwin-x64": "0.21.4", + "@esbuild/freebsd-arm64": "0.21.4", + "@esbuild/freebsd-x64": "0.21.4", + "@esbuild/linux-arm": "0.21.4", + "@esbuild/linux-arm64": "0.21.4", + "@esbuild/linux-ia32": "0.21.4", + "@esbuild/linux-loong64": "0.21.4", + "@esbuild/linux-mips64el": "0.21.4", + "@esbuild/linux-ppc64": "0.21.4", + "@esbuild/linux-riscv64": "0.21.4", + "@esbuild/linux-s390x": "0.21.4", + "@esbuild/linux-x64": "0.21.4", + "@esbuild/netbsd-x64": "0.21.4", + "@esbuild/openbsd-x64": "0.21.4", + "@esbuild/sunos-x64": "0.21.4", + "@esbuild/win32-arm64": "0.21.4", + "@esbuild/win32-ia32": "0.21.4", + "@esbuild/win32-x64": "0.21.4" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", @@ -1729,6 +2130,44 @@ "win32" ] }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/@neon-rs/load": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.4.tgz", @@ -1775,6 +2214,23 @@ "node": ">=14" } }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.1.tgz", @@ -2109,6 +2565,101 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, + "node_modules/@vercel/analytics": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.3.1.tgz", + "integrity": "sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==", + "dependencies": { + "server-only": "^0.0.1" + }, + "peerDependencies": { + "next": ">= 13", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/@vercel/edge": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@vercel/edge/-/edge-1.1.1.tgz", + "integrity": "sha512-NtKiIbn9Cq6HWGy+qRudz28mz5nxfOJWls5Pnckjw1yCfSX8rhXdvY/il3Sy3Zd5n/sKCM2h7VSCCpJF/oaDrQ==" + }, + "node_modules/@vercel/nft": { + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.5.tgz", + "integrity": "sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==", + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.5", + "@rollup/pluginutils": "^4.0.0", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.2", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.2", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@vercel/nft/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@vercel/nft/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/@vercel/nft/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vercel/nft/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@vitejs/plugin-react": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", @@ -2227,6 +2778,11 @@ "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.16.tgz", "integrity": "sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==" }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -2238,6 +2794,25 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -2322,6 +2897,24 @@ "node": ">= 8" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -2438,6 +3031,11 @@ "node": ">= 14" } }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==" + }, "node_modules/autoprefixer": { "version": "10.4.19", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", @@ -2512,6 +3110,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/boxen": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", @@ -2739,6 +3345,14 @@ "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/ci-info": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", @@ -2929,6 +3543,14 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/color/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2969,6 +3591,16 @@ "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3089,6 +3721,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -3101,7 +3738,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "optional": true, "engines": { "node": ">=8" } @@ -3361,6 +3997,11 @@ "node": "^12.20 || >= 14.13" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3442,6 +4083,38 @@ "url": "https://github.com/sponsors/rawify" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3463,6 +4136,68 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3593,6 +4328,11 @@ "node": ">=4" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -3791,6 +4531,18 @@ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -3808,6 +4560,21 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "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.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", @@ -4258,6 +5025,28 @@ "@jridgewell/sourcemap-codec": "^1.4.15" } }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/markdown-table": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", @@ -5082,6 +5871,45 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -5174,11 +6002,35 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5220,6 +6072,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -5236,6 +6100,14 @@ "node": ">= 6" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -5425,6 +6297,14 @@ "node": ">=8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5816,6 +6696,19 @@ "node": ">=0.10.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -5988,6 +6881,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, "node_modules/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", @@ -6389,6 +7290,61 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.1.tgz", @@ -6456,6 +7412,25 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -6506,6 +7481,21 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "node_modules/server-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", + "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==" + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, "node_modules/sharp": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.3.tgz", @@ -6631,6 +7621,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", @@ -6857,6 +7855,35 @@ "node": ">=10" } }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -6895,6 +7922,11 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -7484,6 +8516,25 @@ "node": ">= 8" } }, + "node_modules/web-vitals": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", + "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7518,6 +8569,51 @@ "node": ">=4" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", @@ -7685,6 +8781,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, "node_modules/ws": { "version": "8.17.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", diff --git a/package.json b/package.json index 7977c2c..1055134 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@astrojs/db": "^0.11.4", "@astrojs/react": "^3.3.1", "@astrojs/tailwind": "^5.1.0", + "@astrojs/vercel": "^7.6.0", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", "astro": "^4.7.0", From 3e800485f142cf0f99da8c0f75a2201d05e68da1 Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 12:23:03 -0500 Subject: [PATCH 08/13] delete vscode folder --- .vscode/extensions.json | 4 ---- .vscode/launch.json | 11 ----------- 2 files changed, 15 deletions(-) delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/launch.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 22a1505..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "recommendations": ["astro-build.astro-vscode"], - "unwantedRecommendations": [] -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index d642209..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "command": "./node_modules/.bin/astro dev", - "name": "Development server", - "request": "launch", - "type": "node-terminal" - } - ] -} From 8e0fa323929d2b08094d6d6bce44c3bde25d9f1b Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Sat, 1 Jun 2024 12:23:46 -0500 Subject: [PATCH 09/13] ignore vscode folder --- .gitignore | 2 ++ astro.config.mjs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 16d54bb..69e5285 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ pnpm-debug.log* # jetbrains setting folder .idea/ +.vscode/ + diff --git a/astro.config.mjs b/astro.config.mjs index 943db25..ff81f8c 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,7 +1,7 @@ +import db from "@astrojs/db"; import react from "@astrojs/react"; import tailwind from "@astrojs/tailwind"; import { defineConfig } from 'astro/config'; -import db from "@astrojs/db"; import vercel from "@astrojs/vercel/serverless"; From c2cabc3986a237f7ceab63a85f3834ad21745b26 Mon Sep 17 00:00:00 2001 From: Tadas Petra Date: Tue, 4 Jun 2024 09:11:33 -0500 Subject: [PATCH 10/13] make sure images work on deployed --- src/assets/one.jpg | Bin 0 -> 1075425 bytes src/assets/three.jpg | Bin 0 -> 1550077 bytes src/assets/two.jpg | Bin 0 -> 3091795 bytes src/components/ArticleCard.astro | 36 ++++++++++++++++++++----------- src/content/articles/hello.md | 2 ++ src/content/articles/second.md | 2 ++ src/content/config.ts | 2 ++ src/pages/articles/[slug].astro | 1 - src/pages/index.astro | 16 ++++++++------ 9 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 src/assets/one.jpg create mode 100644 src/assets/three.jpg create mode 100644 src/assets/two.jpg diff --git a/src/assets/one.jpg b/src/assets/one.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d4489e21f710ff3a24ce9420d3124d40ee80a7ac GIT binary patch literal 1075425 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

Z73aC0fm0GZDql|IQh_`87uG6oq2W95}e70rGc9 zkI@B}jN+Hr)v;|jt3z^;{A{>vSl^i3)d#U1-9En0?WVtCVLv)aMoepoUa4}4LD(tM zO+_Y=VpXw#$9NoL?7&yLV>W92Ss!~QH?v?{m^p`Jze|`SYu#5z)3vqcVzj*Z5>I&U z)~|t@$BI$P6xNaCG-A4A_gUOmzn!lSR??j|u;%v{DZC7z($-<);v?eaVnb4?3BJdu z>6P0iY!|=qm$z&gpP7{}4ClM+YZEaPqR3t7hFg1~@nSnie*pry;Ia?wl;0;MY{YRu9SL#u^ z)UcS%XU0Z6a@*JY3``LAG7Go*sfD%vhPVxzEX<-wq}-Iy)8Le&Q!DWLuSy4Up6U@> znNXJpOa_vNBS-rt(Q*!Sc}gjh?;tHf-5Zn*X|oIHW+B55;MzRAdFomcA{=M^#?0J%zg2M)MAma35EkL2*_O~<2VIyk$M?lxf z!c>d&zyQj7)X3y1VI`Aa8OAD)`$rAb+{}PmwN3*xsM~;V^Nu!z-M-5Bwy-w$v{NZ& za_Uwv@|FoLvu=4tD;9#$FgrN2tt6iO?v4F@&t8$-=aW6=@Nn}*ecNe@tZ#Yuc}})v zi;+RZV#SGw;C@1q8N`VMRf=7)7MeP6X&xU8z-^Wb?#3&qZnoBF#K|z$YSvDLxXs1D z{5-6RS`ApH6kCpX;^0JVZqcgNs_KD}+NB~_cU|>Q%WMeZRQ*xfhWrK(PjFmi%6DOb z{h8c98)1zLY5N-j4Z@sEn-g;l@Ve`)i|wmH-tE1hBwh}66{r_zT8!eA2n4k7VNkbG zAnqB89e{*z;aOKW>cO5|De@Lx=IyXpV?&O2_6$468Y<}W4rNzEOvuc=Dtf>@nBmg_ z-5o^4A2yqTM}y(C4SD^A9A>K-&wg%KO64z?>C}#~bKyku0y$MwL7bUWujzR^g@s-Y zSQY7y=l38h5DI77oQszd1mVmJ$QJ@4T*=FrV)gTfSgWJ3DQ<|6D6a=-2+^P4~ z*l}7-57Ur(IJ8_Zkw6LtE&x;@)sv_=L*%`RIu3x%rR=5ZTP`F`qW2n7H#v^mtwqkF zxhc2B@Zj^iEbwcK3<4slZQsLcek0+!JonW??gyGtEju@gym_dGCqj{yx0f@tAuYvg z3tMMPyJgo;jh5CS@k;$UMxr^ zCr?phmk{4APn09c^LGzvApEqA<*g>QHRIk_7CP0?%v!e*|AurU{R{X4*|+%mX62Ie zC`YTLbEW98-#O=X5#e^914A&MzqwBCo$X>a)8{aOkf!PP;2IZP$*lHR`)us-PJgBC z#L4hat1JJJ0L!E7wXV!uKDvDy`y#3FbqmkwXB1iEs&@3_)w{zmj_uDm{lW3aFE`O$ z8$X|~W@i+vu@)&&J#z3hAE{$rZK;1d(tA;3bFniswtW+nN1jy2Tq>O~ZlFW2(KMNV z!^O24b@;IZ)k5(ztKA^ZE5V{`h@FYeWe*;?q%oAkJGiAmfwzV zGzvtBcwtgY5AS08C6G#6TSc3Too+A}tFDSJ?hUzu`TK6Knb{Gg-|Gf#`=dS>yC zA6K1D+eHV=Plck?Oro+rbvhQ#R+ui=`amOCYTEos+p?5bi1t;t8ELt3>l~@3ajO+6 z_;I@#DcCKHtBgX8_%2Kdw26pRP32@6oLqp-6*ds=R0fbq$uPHf3s}MIUbB1E3zPS7 z73A*fs+G_xOzK40@R5$xqzgAT9d-P}rhRkf)iIF)xsucpq4-R-VbC7V_kWW08@{nqNL5#LzYA`KqNb~)60NBjd&?#BMUf{%AY zelv@%+UJd=XjV=H9nNeEcWg+ED@Y0cT7>O>FrcURaR1noZARh|ptt0r;h&%IvFWXp z8feBPr+Vgq60B|c{=OZd9JZ_ai9+GHoXe*2<1+&t5@H;7XWyoGjpJE6hJOM$SFg#G zQbcQ{lUn+|R(9;{VGHLBB4w=KT@U-&N84+*Gagji9LVc=Yz}gN)|F6;N*$(wk%bx7zvaxVb!w>%S7_&u%*#{Oxu65JM-;)Pp1+x zWY{e}n|~cEEaN-T{WIv|gt2P55F?Uaq`?KM@D^upA&>)2*)$CB?gz7^R)RVmIIY_-$m+ zd;8Vfu(QNwL8BK{=*11GMJ4-k^R|@&*Yv4N=!@h8g_T0w?XKD_x##sgto1$Y#K=-V z!CpL^2Tfoh^>rc>5-j3OV{i6?xfaEP+FyAzZwrMi*5t35W-W-<#`jkjH|*_VdkU*x zJ9y+?s~s{6<_j$;cE2e2p=G4Gl=b`eJ7LkxNd#KCHsW(gz{Sq}0_^(X0KGw{ZUx`XW6sAG;GlMfQRqLWjDkkUj7lCgVll zg{&z>sr+W!8eLdyPF|%_+pTR=gUR~UiILnz>klTmbLv<01CDnqVLM9&2x`m*rX>^? zB@g*kc02$&K!9#@>%%3^f~<^k#=Jt$S_Sh{j3&Qb%UIb*et+{lIBe}RKaYMiyRZ~? z53gU2w0LK>6%m?l&LaEDX19uQSB)`=N$S3PbR&q3H{G3J6r3M@+(?(|@n7JBt*2LT8 zTQc=#GQgl?^4;hQyK@|eh^elY0LA)XsX970TO|#ht4;s=v(Kh+GDw{o#i9o*<(!CV zK3Frl-1BAAb$b>|F(ivFh(eILj;ECBs9D1MGF7CA&53%+v*Mn@nQzf~&)&;H{Hd^ZQ8!tmO8B zbJ4$M>_^6Jek0y67UvYkRmN4WeL1uB$(|ctKSqhR$-)4Q(TAKIC(RBb=VTtaj+Rzq zSJ+5^-j>iMBt^coSjRzrKf5>LIN0Ism0tRsbPfaJB{rcy>2|(lu1MnS zT6{P4d;yLXE(uVyD9nXxI67>I^(cNk<=*sA@J(^+SAraQq%?j%r8;(&yWeehjqQ{_ zLqzoX{{zT9I4QFA;4DcpvJeV3=;BYB>K~9UjXUn0+K4<}oob$Xahfjoy#u%RaE4qe z3laZq6LOJ0Hs{e2K(T^uXVu!US5&m)Pp@<^tIc0MF_dI&QTs*zQ|T$>8#<)LfhBVG z(JLc={^9jQeK_z^t3 zIc9Rn^ND!u_3tGiM@dDp*()QJ%K(e-MjU5Y(7ipqCx1n!tc||x&Y;3ecwF=ejJWZ9P*A%&e@Ow&;>*9gSVGP zPbGg{u?jY*@B9p(QvAhQm-6(XMg1W1tj;27>m79khu2={_T*Bdk3wx9YgCuXafH>J zoDt{lZ{flnv`}Oxl2EtIrZys3{p`pr7{u7CKSk`c zE7WF#>xHYhS-JH;y1Ga3w+{C}LlF+Co;*f#w~(F5wEFM zDQC&KWlZqebvc%CjmZ)A|okbJoEQ6#d+rVLNs{P{~$~HWrbQm<>ct;gmgC%Bokg6(Wh4K~B}o zcP^w9DYeW*(cQ@LrxyvE{E+jE5bCDnmUMc*GBs34&z?}p7$D!rliU)~SNVEj_2Mc* ztB+v219aSQ)GgfQ_D;=yUam1Og+r+$z95I#h@73o zmW^LXxRKJ9kTR8{N;Ye%zFjQ%6xy4=QRkq>%^joHip&O!&q*v@lY7(#%Z+BQ#y0SO z+QS|XUq=3xrtPh%q_3~YB@ePj6((UcD$6&M>^XY|K-cnC0ZL?w-=p$-l^i|3eGl57 zELK#`xEmn~e_2NoQp1;b}u0{AR`c}+A<%1y5HKj}1uMPx~vo+j@{7seu zPF0>sCH4@ek2mnul&Sh7<&#DkkqfmP;+tROl`K=c|s}oppeJHP(4%s;tf;3q%ED5|lj*5im)trQE z$0bjgj`Rpin0w_Av@~?Y&FG}WTqqTwN0<(tDvw;LNg;My$+kuk;joVd)I!oT;0hl* z?-$_)yY}8WVleN06sfP@wqpCeNXkTv#mWQupa)FaHWWRAoSHs1`>v7*f|leubZ;=Z z)9$HNYkQzoV`#Gd%{^G5PYa7^QiJ4#;rQ6c<-T;#vi^c_MQizbZbe;)-Sn@ZpV;eU zw=X`5Q`uS9Pfowx6jnC%J8~(zTy3(hQFKN8De%d2uL#-O%iXq}ms!N=G;sDS7Zp0S zTZMH^8KxP!hVZutM$*;$t?0=F!?-KiuaQ%TC)_YphYJegG1Zck=4}j_SYa~DEqwkn zMZBgOylp=R30BI*!iAThTMf{*LW|XN4?9G-h2BU1!-L1R?NuLZdL)Y!J$w@9$oyG| z8>GdT&UXqE`y3q<{5^VBiUb@@FcBNQbDCj$Z5Q30n{Spk6EW1YGt3HoH#N^4qxK^* zF0k;kCy4T?-ih;!eD=AJZ})0YA6ZIkPkEec5(=7_=?<)FgXx?2Qw#KOM#a|sdZEKB z6%Gd7dxyh5tv(WN2i&LQ9X96}gV$G!hzr3S@5Q`9JFSoy+h+0loHZWC>KJsTFH$h#nz(0Wwi3sIK zLIjV8;w{?r5&o6&lV}9}gZiAWwrgip3z>cV4+_6L;5?_(O#Q*2ou(_HPB~8vMygSq zMZ4YCpB)8~v6E7$)9G*;Og}!UF;X@!smQ4~S`>O29E4VFQMLV48JU%pJXhgpqvr za~lD5U?~s;1T)%v%R}lIztUmbF_QD~av75lQTvoG^|=B<5tC#Ye$U8oQ#y)g_T(aM zTW%u>Rv4OmO|G=PHF=~IF#ANzd0BfNB@uet5fB%(lv|MO(DG(1elUlZ{s*ZDQ+C9ITit~Aty@1-YPegBe|8Sfcs@#Ql{oY_2el$?HY%Xa2 z;$7B#fJ^R^vhgh!2tR2__m|zytZLmSH5zS~GI?*q11Qf86(9Rw{FjWzkWF+b zb|ZMm@3sfLP?H5cuH^8rKONb_Zurc7J`_)Kq)6jk^sf*qi>cn?$4qCokH!Q}d+^WY z1AWA_Us4KCL5QGK8UhUxpaIFcfj-RnxBaZMYx5xqoQL-*R2GF|vlu-g?kAc@7wF8z zhKX~`>ZwA22YMjyXV31HSoPr>Iw6>SokL5cZ1v%If#rF(D_wQhI@~Ms@Gh$RFbJE` zr|F?KC-eprv+%k<>Jb$|-NWvyjhGIPY?k$?;D!QbrNgmqcWjClJmMwJS^uF}j(#kJ z3&ic6X!jPh+(yqK&rmLcA=v#jc{b#pPFN=Vwou#HTaz|`(?+;x0pl7)h&(v_uV^t~QO^MYg zP4CvVwPmS5Z=-2NfvHF}H6m3rI<+x59j?2jY1OhfYDB3?T+g^vbK578fJ~nH>yGgs zf%_MmX5ZR)!bvb2;vURGk%|GsQdbV0$tiQdAtWxX8#IaA=dShGe58CNdJ>`~EPoru zvEB-)?vSU>PPGEP8|l&b3JQ6l$ueGFTW!f!DZk}fwc_9dGX`T)9J^SQT>R$Fl1DDaW6{1Q%dQIi*f+OUfh({; z+_Je(EkNW|w2s?j_Y7jUXNTa-mXc;N#2%(;Vd-vLg${413#dw9{tPIUP`@w9Zu^>I1> zj;RllvJ1FZF;`_UFC=$fVV{3^-i4gZTnSCUtBPxwTCk~-gC)b5nz8$n4W;pwzSnFk zZCY;|-c=u@9psLkZ8SdF#xm^Po_xMCrktbFz7M|7rJ@z9P06jLqDBnF@dBvc1!45_ zR1v^4ZxtQ3lDlYmUB^W+4&f3T)Mn?(1W{;60$+m4s7!$79Cv#s>|E^8>XhP6iO$fB zFU+s*0!@cbhZ2;BOHA|Uj89>a)%k}VEbH3Iej^I{sT+zAKRim>@_H& z>gaUUyrAnYg#H~w8U*G@4L)_?3pOrf8Iqj>Ng}3u=Lhkf@5iSaM_^Fy{Bx!6DNIj@;tvMM#v6E&^lBgf8sGND|snHt~ZH+~JP{rBpH350j zEJmn#H%}7DWrl-;1R`Ih0Yy^ZQ&!l(Ad6d@gz%#?1d0ID#WpV{b8% zi?q9H23^(uTtKJKKSpb9r zLR{Ou@2ne%B4@u+E(X3QK*kfZCFrJpa?zoA@1ldNYQlw+YU0c<FsFR~V3)ww+)V@OteLlPIJEK`3yZizs}~-|qe`)TOPj;vJ)g2cu4g zpBd?z^fL*4A4yw+%%n$*Bd{TX&-84cL6zoqb?@}v>{I46wA7zL}}Mu~PFD7W27NUWh{m)FhOY zwyCCrYxkl{u~VDeS~vA`)~+^4*eGXpYp+W#Gh(y+)q#%)k1_MkUZRLnY_-HfO_6q& zumknEBqE}dzAV4{tmv)uYt9haq2T41pUj68Yt38oOpuR#c2}Leev!YvMx|o$&uCuk6gAeucSlV zSoOU$A+K_QV&T%Tdc3*()b~gM0`9ein0qNY;CFd=r$;6gFacUU3jz7Z!NB>nECw(I zDSH}MbUc;yr5C1ky{2mCVks~{`LTY+dsF=9QZ|C|Sq-Rw)|SMRJi@2akDhNgZ`buT zXf99M(gh?68d@G}beK)FRKQlB8qMvZYAS1HhS1lH-378eI?_flKR3kfu4Ef>hr>l- zJ9)n~#T}%I)ORonUF|=vFk1QR$A`%wu2UDY?b|GcQQ#`5aNh-el1AaaOb14>ml@@{ z6=VA?DprO4OM=V$F(Q&=pLpkr?$5o6q3B}Dt8Gjwp$03tZ()HELH4^s77q^od5CSSRY?&_XW*q3#d9VCf(Qlo|Gi=LgHC>E`Di* zY0tEtZt6%@yQ|%LjszxX;v~6!{B?zzm~D=aK6d8YOiN~|{6V$t&P66{DwTdwn@~>J zSi%FQYp@W2|843+6V%Mj{IyG7;`l+Syu?cGB*En(_!aydNlWn1w~BO7JF{y(8Td|+ zrUIZXWJAn9uZb2oH;N*&NJQ0HR&_Pv6@2urcS?r?t0gS)%9|68ZFAv~Yf(kQ0`Z$U zP;ZYqtk4Pk`pYHU{;6_lSRhuZL^k>n)o84_p25RLl%6$J2S8G8PY}ouvb#ukbX>bH zk?$))=dB{zVo`$0>CoBmsmCUnglkp`Z9LVt;bR(Fwo3|)-Tq8eoC>rOGO#M|f-U)F z>bbQhCKyjG*mVx;MRX`47DNlE#!|7IY{z}L)Vxsr`R0! ztLZkk(H*k(cDAwBgtNeR_N_)vcEA6O;0d1Fy=1t~X{)_nY5D;lFbjOY6^Vxlm6|Cj z)hd*Jm%N7UEI+&|HvhO2Gt(WBe95ibr_37CP&BtMoR4Ve{#L1DZJ_X5;Y!ldjP2y= zB(N_kitW~M=94N{B0C3N^q?k41J&-M6cIWaMdbHXx>!GF8cC&cpXfam1AWiJ4lMB9 zwDl|#g-kX*=>o^qy2R3G+qsXvcivv>K-2g^$c}%62RxFt)paS+=4G2MIAa^)ZJ+g( zpIst0vHZ#B2_{JQ(Nf5+j6-t$o2%gKe*og&PfI-`0w~wrdat^>f_PM6vRNTi6T1gn zKAp>{K1`^RiY9o)StF%@ciBvL;?Ad#)I zo_kmHRoq=3C1$zngxPs=7DANmc3%saxVu{3fiVplsHp-Xrvk=wf%#+CJR3XW8Qv)t z91o?b7$la^+QV*W)^kVLz$d>?swG=4A-Li!c;w2OVDF9Amb+-%YrK+J;QmrAc6Zeu z9``Qs*>T0)*kb5;SQ~^fN!C9Q{p4ShU;LS&x1Xo+tguK5!ZUqJ1=0fHy1f_}yxcHy z&{;OhJHJwI9A%K_3&I#P!&iJ{6XzYmcMPk&gD|>w*s4QPS@g8UZl$h|!jnU(mWh_K z!2ZBP&>=E(*>1l(UNmXRJ1DP~KF!K9$(5URx9qF~VbhUJ&|iuPGepUr6v%z`$#nGO zDd=gIF4Q=Thl|(Go~A&23gmp4ujb;!LacWiEQKG26v(RA-P1lu*b#Q=k=6TLKc#zK z)Ag|c&+fx)HHOhQ(l97we|}IZFF9-xmao@cr=R(~A>xOys+=q1cXJfwZ}8;ZSm22-+JEOU|M}L0?-+QIh`nm63%F^gX+0 zhr40F`=y*eOdk91brjEI=0+?Qc3dY7ejkKB4*5-pUO+&8btsXj|M&;+h&`ckP@Psk z9+;tF?fF6vYy|Rgd0%1qa0Z9OB}3F2D(2I(v;zxrxmO~YNm2UHiz4vG_$*IO!QUQ6 zT$-)wR0FTLZd3g*U22xOClVr^=?SH6&8Ca0H@}a-lfzgWPtV&5r5h$jUo6kb&3-&Y z-BarKJ>*7F&qeG)acp}}bJHrde-XaYZ|hE&_~#ms>k5DQ|{85N(L z4N$#budUF1(ySXj-V$cA=cR7%_7!U z4S9|R0$A3B6IFC&^=`=BzSE0!EOwu#VQjauj4+=ywK7jBDI0}0^*!63Pe-ARp=a3n z7Zbu&aT!Y0ke$kE z&Z`UEt}W)Vu5+)jbk}r_a=*{|!w?S(p?#DslPUT&yV>&}&rk=8y}cJig)KQX7=P@K8Pkexe*;|K~x-^KRCyDw$vR7@SY{U*&EJNf^(KYc7zgX!iHd&uO zD(FBQw9A|ERDMaEjPpTz5U%_xEI=6Xmg09mY+(P~lGu208|4?vB)ISQVeH)A0^6Wt zV7L3n$5nXyGUDPW9HOXf7#@V!%*WQCS4Vcnupd{g)Cum+bOiCdB-x}tkI~0%UWjq` z1$q;y;OM%%R(H-M%`ul#0eRzrjYozB!A^q?o3@#AliilrlQWFf^mBP2DSkXRbTJfr zEq7ZO-XXV&u9xc0UpI==>3Afx@#b@mfW!i{XG+!%(<(sMed0FkaC?SoT6bST|r)u+;NsOMP;7n5FM*$~M;E(>3!JCMP zee#8?rpyw#PE{)Dz8?<%07eh@Qa7dd)$f%Fe4Nc1ZnZbj?V75R)~$A=%64z=aA7GrX4TjJk@1-8M1X5X3v{n_P3VwlzZqcwpdixBrw+@AI?*JG&Xp> z&s~^fk5;PjxrFPfgI>ja>S3GMSqUCAdX&ebI9HmTZdJ6tt(!tV z8}w2{O^otG^ddY`^ohWe@ZM0Ei~(!oOz7k_P@V4uojRKuotg?rO*^~mZdTzm*gBGg zr>N)V{lN)DQLEw{m$sKKw_RrybXYj#0IS8!f?tVsuc6E8W>}9xmz^Iq64MKYV>!G( zMEWOMo<{cmiDnJZE0Rp6+g>d8UVxS-GU7_mL8#gV?hc>raD{O-(~g3JKC!!SdGTqf zCL@lzH+lDZ0%vDBf8ytkCq>iA+Mqt*KQnWpvH=R{t~Kd2W@dZW+X7$vnvOz9cDxPr z7z`#0%!I&N+u9Bg{Z>tmh534G?wTw&hDo~xs62is)e79Q62RI2? zkF;NnaQHL=@1xQ#j`@@=VG;J~D!q=m!DC;JrIS&nUw0$^+&;&%)odwRy;QDZKM~TC zXSl9kFe%rk^T+Ipb--avxk#l4afAf!y6D1d;ME z2XT8l#~34pF}JmsTkI+IkhhxsGU`B3xLK4lb9Bqoo;!*883?N^nF_T#?RzBLYlW^8 z-4(R>m1JWkJ&+f#@DD(9A+BgoGi2200deokSYt*K!5EHHe}A6REkwjsN6_yl7?gjLDf&f^(YSD$hIj<~X`0ntY#4M%E@3cIO z&|VzzGBl&ptE|$Ih@skkI<^R}S zT#pB8Ip~)Q)SHy@z^>N#bz;bZfm_(y1u4HHg@Wt;OD`I5p$q zfY}}ncGg>3J3UX>0)S}lc_+HP(@a3tX1;3Xs*I~iu8y(E zyNxclL8DlrSQCMqKvh9d5?~Xdth=wNpuHh2qxf&~!uL!-j$EyTiD!2wk!KfI<=47{ z!$Xbe+Zf`MkaV=`??*^^r|jhh)VjVPzG2rppG0Unpo<(84|5PfuiA!s>RbE`)h&~l ziUta^hb?cHoEJO-*+MEtqp!iIlwmgM|IF?{-bJ2wvO@*bB>SFGI+A1-_IqJuS5Ut00~D3jW( zMG_5_vu3JRESH!GsD8;dXNig*1Zo_~jVI#h9&daDKv6F8>j=~dH%Pw-b<8d>&)nNy z&_}+hqs_7i*2}WBUJQ|nWc|#aGTFQy4$OfstsyznI}7B-VwqyK{om-cyKt9g^1BUl z1_vjFc!(6pPPpw0QQNw68<;6(oEpN6NN18fq+QuJ<##x|uktHmijmW4+FYv6eDt{G z-4KmtnwBviK>_0*n$1mQPpYi%cCU#55(`Ojnp5%Gwtt>}zkN`N8jp<($ki5Ev~qW? zd8m|wH7dPQj4XWO2!?=W4yCP$@O=Z~onYr9zl{cn(5>L)Y z4*4o8At?rm$d5Q0P{-teiCiQ&JhhFZu{!f}OJ@k^-bR4Ah%V=6@aqn)ac~cd!?Uk9 z1Da1Aq+GuQRix-m-<@hGz_tn^TU>Sy{4hrc7dz?YFLDON;lG)FV#fTtm;DDG1lEY| z{v5Rp&BItN^t&2n?)Z$=$d*e8nbbpT`lb*3f7$qzoS%F_8{{m?3(nN>XfDTYnDt>I zji@KS&MY~sHMZ=}x1aSPc6U9CJMy|%LmRiRZtliBoz#Y+`SE+c;Cb2%6QG2da8|Tz zFQwZvDjG9N>&6UTI(4Gq`(iq7R8|j%@I|b3>~OR=3e!72o&+!)e6CQ3%C?UmwX0|d zl)Tvi9|&Z2HqCxwp9I7Q2P!h=TWW4Ej;JR|wy82ZYB%Ig3Ty5*Y4vUS%vn|l6z~PM zO~R;Z@CvkPpoy*@Gfvr^>gf``IB^UKu!#+FsZ3i>C(M{PY0`~(XX6%!@!1yZdg@v> zA=3j}1X=K#Yy9A*wsc)S%PE9DMb;2dYq8Pq_>U5|Nf>AoHa`AOB` zUS_1|x0|k-OL(};VK3{rLQ30d)aC<`v5S5PlylW!ImRCEB;vtzgaazJ3L917BM26{ z1mmgG=8<5ebAsk(i9bA5yGBplZZ7pl9-X;g^wV#+*5@578R^nC*N=8zaT=+lQ3V0n*1ZMrg8z%7^KfVLeg8g++C_;~Y8Q#UYS!LbGcs&q zkJ_WC-P(l2-kS)Cy;V`fo~1*ph}B`WrS0eYKrw22;EN){2A0LsU8=X^>95V?##7``6;E&Xh{f%r54bI1B)@M+Iuxaj~a^$mZB>-%hy$Sh*dSpnHO;QElasJTSws+Og6cabC zjh@Cxp08!ebF0*@l-+s0C0?6H{I<|>Q<0KJfxYghZT1vw-MkHNb84Llk5>6N6ajxp z%z5I;QBQ~%y)9Z%-@ksMc(nTt6W;l`oAziQepvg&sP7Ln_&lkfF!$z}xn-}?z|Ebq zvC=;Lvr*R5z`o6jfp@DEkWR<9qW8;p%7!)neIcGlSC)Ps`7ca-af`uGGtKy7{SdT! zwYv(i>M#||HN9tbEDLpOnLM-NJwqDni53)5n6(&_R)Cx~wN_plZ+*?MF@oW~7R1Ea z+sLhS<8s7zGz52ch}$ca8Iz1)A6HtH)Gk!bq-k|snbxKub3ARV9*Vp^{E8*OMZJ43Yj;FqSV6kd}Q2L4g790A(};;s^)7_K$;t{@l9> zU6uU%Q}-22lIboIIQWrc{7}oi}E&-0xye?XN_O zXB$2c8Y5a~q$dkU)87|DW3Dg4NqA)+j%>!A#nWq*mQ_bv5;8jz_hx_sI5Kd07b9@o+p zD7Y&^&CKci(&ptdFOTBJSlLa$eso_rXfJT#a$@yOy~kO3=-`m%E^FPu+$wZStY;79 zBS#7AN(OX5&}|Tw3Y1kD5gs0l5%`ho$u)Ll{4yc2sDLRE_u5d;Hy{` zu_519P_@=2#-OG8QWp+6?<|M-q9N@1i}SssQUlOHrvCW`iE!>@j+T9ljs4qODOh_U zl_7RhW1DVFjg!bipa|nLXz_PnG2exHbDtUjfZ_Y%)OF950(^cM>#<)dQdH`mX&8!m zqur^p44U0U=7-|@{Up%i`R*pi!yGxI#^^>@F>hCc6oYA-Q>%VoTh=p#;JO65s6Lb; z%?~z-Dc;nxztBpTahU7u{iONgV&_R|zVOYCOs=U^%{AX3>w^_d-^eIj4%JOc~E`WDJ+x?axE3z{3ESf{H&s1ls5>sVr$ zaE6FX*OKW$6qwuSOlzf|!-NXGc~^BmRNiX=gThwp$TwN036pu?t0Q5IY3}?2aK27+ zaT}@hFBvbEt&QeHw4L$wUH2*i>lcUIJ=ztKm=Chy3XlJaH(czzc%*ZM@jv^^_lKcu zKmkn$o5W6G;X&2rBP*kZqI}Y(FS5ICES)s`dl~v4D5(s;eNc0GeI5Hj=}!!8epf}# zgWLWO`_4Z01Sv{PV*kkRU2;bgCyzf=a!syy%x{MCa;|(Mj_j9Vu~5Gcm2nMfC4h^I zK+Wxi#T*RX;4`2*D^inaad&$vV5w zvFT%&Wnv^?lVNG;M<;+Pkj_SJY7Y#(V#K-{Iae>Ig3qnB&5jMU|7&KGLK5`PLn;?`R;G=Uc;b~E4 z`LVy*rFtJP%x4Gc*rZ2zOpzC)@prpNHk7TInp+VN!B|C|RZH9~cL-bvFF8MBpX!W&%r}JH}St{-!P+aIg5m=5^4@tM-P|DL9bh@PA|vZ-(c_5(?oLFODF?Tnqd56w^TmL4PzYS5B`Xs}ztr@wMCX&$SA^Vt zztIw8*+vE+=YeiZqFBqIW`*36MGkip(8KDdCxu7qg#imCA}K*=OIr5V{Me&ry>2~_ z_pPeBF?O~Y02y;0psh_@3fpp3K>Q9@VO%R&l){!k=QR}j$8M-XqFKks+X!t94q1}> z8`5gj*H^3=ojoq1BMFCpiFHF!alRW-|M6wNTsBY^JyERi_1j!6I`#Pe>+wmPR# z8T-xfF=zLWUr{0RTWd9Q6c}W5KqZR!GdwgZ?#)B%?(w;{8(T=1U0liemdiq|ZBejd zIJYBs?R{|2jkNsg% z;bltqrhSjm`MCT>i@Xl-ebEqcIZr;bU~5#=Et-qec8l>)u}>FV)$c9KCLlseX8i%c$wO2JZpxoUg~ zcTi(0V&hMf={mhqP=qu#C)YBo=8Q+PS6Auv%W|lO=AyOTgaOR%OUV-{KE~9EED0TB zMtZnURx|d7Y3$?Ehy<7&$fHf9+c(V>W6kQ(hk1M6!w15HC~cX~3rdD88RZ{Jw(&|R zsSjbX{)6))w|9Qu_ssdf-AzjM;m`X19EYx?|G&tjbGA18RuBG3TD|o0JM~szz1CBp zOAEyUl9Sj(+O$nwWtPkhjQN3SV0LRtp_SJuwC><4XCpz3PKa+d=~ri%a%xQ{gJ_Z) z+FlL~7mAmEr_iY#HcRiJv#_87!$mB5Y$Vp(e8w__S|kQ6r2Nd%Feli$R$pw*`hubY zH=mtt3jtm5F;In@sB0M)`c=_W7gA$Q?1|d3Lw}_mwff5P*KsrbdUILhLB(b1=lR{A z*F!g9Egw7|hjnj+67$2*S9_{|vF*KY9!tK(lx6QoT$~SRaZW;N9 z*TS56u4O^qnFfoiw)zBQR%ijxP4q|x3xI%awqfEXTM(}tzKt%Dhz4rogBeFnJ2S{l zI}7A8WH69QOT}W&7P%|qQ;>7o`OVkg-?Tc(2kfKQe(yAVd-|uW%XU){!p%RC&6$w$ zvPatt8qg~_Fpp={$ziziZB<Q$BSs6ngo zB`fj-NgLL85~*p%raIihDOskvdO|5l%=99H?R20JZSlkV8>9lqX08_Znjyj(t{Hmb;@MV8ob95HH?hXx8 zn(+tokLq6Uklwl<3!oQq`En(m1{vIVC>wygI<$$yL_5UFwBCR)uh(Zo&rUIrM$OI; zpDWQ}n*mpmQYeVT*Ajd9Xqzc8bzqnAHnk-o?Y)|-RaAwVc6LOZ6WiXwngmGvG)~^`>s}gZ!YfWwiU16`!?(2Q8J}$+;^}7Mcha?T#V%R zmgdhNhcpcSEa%Hn?=S6@m{WRWS~|LZU=Now^}O3p43u*8hpQJ8qow@+I2`=>%i#IM zEhqORNO4)TB4BRq*?NTkF7Y7D`bi@x5zH~Va#r~DQ0CyFBJJX$|GgH`*j>8o=xW=A zgkTyyQqmA+lTAUPn~w6gwc><mS@g1x52%rb5 z2{4-lyDr%18d7QErUom{AqgqYT`PA@4}evk;?b+OqxmqfSJ5_WuqGHV&Ch_cqksq9 zBBjrOuj;7-(3^OqdALQ%GqQ-8Kb;Nbo((e&E|(29PcNo^S3B_=9T}z!=VGf&qWX{a zqmqum>Zg}_7x|=Bo#tzgfFGC*6c~lGV7&7ZvNewU>i^faL4G zBQ{deIWJxRqA1X8Bg!W>zVr3sQ{^0{iqp-cigV~E-(Sa-j{+m~BbQH8!}e}tQG11( z)q8I+tk>MbnHw?waa)R&Y_Z7AJiY;Gq?7&K={t@k6^|M>iMypIy)T~m8QMW8&>`8m zLW;KAPPNfbG>&35H4Pu(7TWc_G;`FFluK4#126mk-LWgl91J3O0^4Uc`M7ZEA!=SQ zLiy_5;n=&6ogP%3-vw)^0c#9VN3-sm^GB`(-s|(hZ!<+fH;fWRSE|AghWKM$A)P4+ zhFf$il5Dy#*MZ3htoJ0pSGQ?HU0Bmwe5(O_6_h-FtQLOXk~0ks*5FWYS6kg9HN5ME z7C)XDNfoq}h{*b*S|BZJ0x71|Ve$>Q=Il~@#3!K3W=a9Br*UVq)Fqu-Y%UaVb zFh~@tnIut2qLG4B-QbZYo~SGf_x<%MuS^jR-N(MpD4Knm^L{%$s?;7_B2t@%Qx9xQ zndVH3Abq|}AaH*9%d@jzFp|>gn*-kuQ4M3|Y!=Q3b28_FlDTX%Uotc^bjTpPC_zkk zlVn^=%50XqAd7=YBJ-po&C4+z$rf9XrOPdGei>FWRT?oFn+`ft6afGPiFF46AccR4 zhodT2QBhX^XN=S*eK6lDv~$&eu6s>f8mjo%_EkU zJ`hXeZ80AIP@-MOv}9PUTY;2lmmyD`X27vdrb~D$Lpmf)o!R}UEY~d{^+CBb$AXZq z>NUu;DBlZB#_p|>@9^0P{Z5VXDQZ*7sJOzTp`GTRfB%aBc22D>cf<|3%R?dF4)C+n z%j+=Y`{Og=NTLnsXe)o+2pToSg5TZr!W?jQ+$IWliACVAIl z;J~|Jm=d1TxIV7kw^5qo?N9S}i$C&RE^e5&)V~ZpQ$r_QG^C%NTB45L*|c5ub+R z9^2<1|6TP5-w9Jj#D=HI$I=r=wa%ZZrg>fO81u=@)%8^yrcb0=P07@}M(FJJZ<=Mc zHjB)ZR>Q8N2R$1#)XaacNTo<9DJD+;l9R=`k?ZH`Ocf}wKGfotkVFDOR18$fklpb# zPK#6uR+~baY6UwFa${0m`cT3fp73mV{|3(_`er(Z(e`nLZeozUMKU>=uEo9}4s|E8z> z;*-nC^{C{B(WFMsRkQX?8xxNJMa})5GZp#G)dTU1f6Ub(ANGSxI)qul%p?kjelj_k zf~DZHm8IFD~Ov6w;cq1PLCz}@jDWn4IR6_IFI%9uAzi%%To8{GCkMblfD@#Ot zwnV2-eGGO{nrEJd*c*m$gKfDO0}GU3mWR{&AdtnlB|nWExnL%@v5gZ5R5%*@+t$2z{sF`(Ow%v+}hhu z)U2FGZ+dMmhnBeY1U@=+ymhGQiOuiov6pA$4h8;{IhOPrJAP4nlvwdhR%4x9rqf6X^^kDDYSuNz9*14x(?mz{=#%! zrrd^Wn2r)-VSw%vHX*j8lIck*h_B2({|{5H7T4)4_fRw(D3aI*VPybNK@kjGG@=tA zaa|h7Yz-MFzsaitF+FCwmOgE;qMS5}04l(E708Cz_ze>8lMb|2!YpNMV3B{zTi=#J z$!M>gLXMA-&;1Xseo8ivJYU8&%Z7L=)~zkOHxb;85qZKrih_iF;XW%<64xf#4I+us z*@E&O`$|VULGU1hct$cidX}28Nu?P|V+t0LD(%~qOGN4Wqvq4DD5Q?IunUzen4*iE z*@gcW8TiEGzRGdr_0bo#=mCwW>h8Yq<}h6mcvQo!>32sLKR&`b(RF7%866h zdzU$w@%{p9Z||Qp*;d>Sjr^lJ^j75=gWe(>2q)%C7< zVNL#GNB5CR-_PX&2SWGVC-TsQKuYVE{CG)F#_< zSX{Ty^3a~S%@<>eR$GMj{#BIyjfH8@F^z(mB6}SvO@|m`K$HDo9($$8Nx{WPvt%1Z zcaK>Mmuno_;-gNq!(44l7Aj7e3M&Y)xJ_Wy*}4GC6aowx+-!1m!mP~NG#z6iksWwY z$C!9x>Afla;!u7O!A~%Eu;0r;*-T^uq^9C04IpwHY^3MO<&3qK+1)%Zh~m-!zIv(eP>oG zCX+QS=u!zKdU>})#KIZWy|iu52nH#N=GrGZ1<%VRA&jF7+VXq=&5r)}2#R|x69eK? zgwz7{4pTo2-ew``51yCumGKB%VOnSzRsF1zd?3t}x z>%4E;aYQ7I?)UGjwMErs<=H=U;0j(ZMHXtCJhi zL}G>K>cLG8`Xa7znRt%+CsY&J8FPIfmeyce;zjMHDHhOF62FH}_q6r4krDxCK!2?p|b* zj5_?T<6{EkXq}FZm34QWM z8w)p$TgJc2prA{o5ErJ@(W147jJ)slfifR6H&}*a^=oXIK`KkAdm3Gxxv*ji9hsQ- z1|BV#I0O%79YX-#y3VfHgcYlpq6xqr;-Tj2>1YyN=R)>r>>X;SC$wKDbK}L&`*xc5 z|6WKleRyp1BjTPi)AsrN(9OPTAN);d%<4k) z(2nKV@7VhRe89kE>5>bLroU=C=!-Yq=Dwbe7OxLZg|rdrLQ^)PI#V!KR&8nuJwubG z=J$eH)72Idv>@k2-W)^XKRyZSc}w!8@1`}B-(Mep-|@^SveG{H zmeype4n&K~xY4OnZ0Q5mf*Ug&mg9^UoJtIJD_dy|p0XhxzDk;=QlVvEo1fNkQ^^ci z`SsW!A~Cw`+_V;QZ^`7wMds()Ff%m5{HgS$O9wLqWOSbAXVq~cQ42OJbX&lk{VB4m zc9vL1q;U7UvY~}_g!L1t@^l{RGifLajey~<(~&7qRHuLRS3IF*V6p1iecqG*3g_NT zot%qYM!m`H+`4{rpVX6YRej9&f}}E8k-uV3tgRF5a53Wt+Li!Ym;elzl~mDMEiQ*9 zyh4ou8?~KM&-Ka&srtpz!<%Qyi}~wGjiSXt(3M7%L#UWJYypnUJgGKRxeo7T8GYg2 z9#OfY`6cE}!tq6{?sVhx-ut(7!F2-Yb}l#zF%@#%sHDuhoN$vfkV<- z)vLKBkhur=UJWIPfUO4@DnyT5*S zLb(r0=M}p8vunASru#)_I2*n|9%!3|xMy0sL6ZaBC@um0=i%Mi3a4f#`Kl9p6@&MJ zwr}%=3%rSIR*_swBa|yS2JJB1ekxO*I7g_byR4%F8 z#@FoJmDvQ!t}t8}$txwg^XM04S9vN^)DMG`Y7F#0I23bO7V>IHDV@Jl&uKhaxNZtM zDe$ciF*ipmZUe>F+zE>Mv!OOwlM8iO zC>L{9t1t5S%sI6hz|~dsc*{fNJ%hZLtZl@Lg?~xErJn+p&>pRb;Jw8`sjv$BHk(y7P`13Yq z?@tWh;P^Smi|S>LLQnQ-XIfJACrO{5mEZf8e2s&Ji=ROcbwZ}IYM%{3*jqAO2h>^a zL5!PREZ;fm39Nk3B=+^q(*uvkBXL@t0d}L-B40GaRu>oIG_cbo{!`O^wavn|#(k2` z^Q7`{#LzRa{eDIC6GUmHy+h36>j9n@Qm>Mz)tU2v+>jm#fJyp5AA!JD7CuHrN$J`E zPP8VcPBah^#GYwjkFNjuh~!X_aFCD$i5br8o~g$hFwiYjOhBIZ3v_1@T`IR$BBlf1AJ5kB9qZTYhpV#@fA1SQ4+r^pA`Ecp zu$6+0&w4`zJo^^XNFq0RUTEfbohlt#+5 zy)k#WCqW?QaRnu^C5s7dci2_|2_FnFX0DyYbltLbl_6(<`s!2N`#22Qe1NF&fiyy4 zf!0!v*=FBmLP>4^4go9_NQDxdR~2LeDnZz-7cCEcF0a?CK7Wv``L|nMpsvE0B?|^i zoR_kkE+hP#xtlpm_E|Ztv|i~cfU8{VUsD0Xd=}0NTv;(fvXmaI)6^`}7yph(nlj^L`F=V>z?yR&GsAtj|vjdKQ@_Z&y__EqxKT%y=-+{L5;Ck6>ve^$p zJti)q&7Y8rH)7$0n6yCBj8l_EZDp$kR5KWa$fe;+*NcY1W^go>Q9GblA{9i-tkQ*P znLK@+(;&M_)mEzP&==TdhZu}(_#YY9>GCc+WfBnf{#W^_qPBA)8aYL0IdvHZd3)u$ zkYK&oOqQzaEWFa?%chW=jO1!cNwbZH!J<9{dCE8BxMt{qWa7KUg_*~0CjzK~m%vhx zrhXPsM()nS{3y?-lf|KcRs|Ho3&V*6`ItM1iM&z4Ut6}CXw1ZCF~6N)*3t7?6VkI7 zx1b?Q0W(vBE$-hdLBPcM=cQ6=OkG>a zS|2E31_jz{4FYQ}9iOj+MBZ`P`}h1l*f9tGWbuYh%Ku_+n_H~J^`OMPzad#dNgsm) zsI$X{wv+CCYrQAfHa6bNa5;M!`YpBZ^jAl%c>@zb|v=uPk?{1RuN+{iErTIBw|puB6|l|n#RlU#0gm+hbt7P z;H{=0Fl)C>i>Z&jczdGbJC(q9N8c+;HkWGK@04^j&YU`eS9eej_rkxxKDQT|3bG`# zP74CSwSp;J0Gwzoo7~5(x!w&*X8apk$&+X&$zzD~bSAlQt_<^SOZ{{)*IExr)k)~3 zT{cRA>jUIQRHb;}udjOLs=8s<*O^kapp!a*4!AvP%dfxcVWB|RyeA0RX&L=E;t48? zdQs(axbvPrT~Y69{ed3* zMxDrRnj}%C%@AZhDs%H_{$Jc<3!#&k-pzb7&9d#<)f-KYDq_s-&a)B1i^hSOS&}TK zi;p3O6Fz3JPScGoF^@4DDiS2w^Ol6GBqKi@!3fTE^A48cNwMta9^dS0Bju)cB(iF9 zbCIkx&H{qPWJXN@-HC!_y&M2+nT}a!+WD3#Td@VJ9hdckMUDTFWtKm^33;E~At&(` zZTBMXUZC7N?m912UYM0fqoWsg@UALWo%vx)%etAR!xyWhFgryjhr!7{RY~TD#HAT| z)7q?94%@l>sCe>P&a6Voa;_rDmz=43tn6|sG@){0Q!;I29{*)`zTVkvg_w5oI*YuB zOdjd9X;oRSEp?I_lzHbVb?vx)j`NA-V!*Z6+UC{az~1{S1L3xd*uXpA{@TUy@@4ZC ztQLowE??!g+cyI|?LOqzuS?<+Jd!8=`M-Np_U@20NFY0NFZ3epA}D%M@z;tTvmZN4 z*3}Eu*9+o2pA;^Jjz@**IN#IWuC31_cfr(B*>=>eJxyh>1d7CD5eLPVOLR>jORUT! zR0~B{f-tQXTs(fhQ?yDmc+s=;afF7v#^bo&!T}Ny=rjq67pBz*DdyG8x(L&X z=tNX1lh)aAg=TObDL%fLqa8QIBd?KDeWCfHV(32ZTyykAV`q;2^^QrFHYSr-D6vC9 zpM;G}Hv+Iotdoc*Z7k0noDFPz{};^kJ*?&7pSb&UhJjUSq-IjgE^bY07hqJQ zgEXjzyIAxzrT7+_q}FA2YNb*@1*lpjwZ~haLK;1+eTi@wyxCZs1?qZJ|88RU*TbP3 zOF-10B9Uz0l+=E(p2D)89G4|b2as5w5d8al$nJkHUW{%Zd^^AKvwV0d+5=7xqZeW% zHx{sD!0D#h5UeY|{FBbVag^-+a&$Qrs5cm+*=jPXiQcMsSD0=j+)P7DMT5*tW*#>t z(-tP#kMTY_mb&o<6kT#JXRBstutJZNTMv{gtlh6P|3`M;XM1tsmyC>oGZmg@c~Xg- zDuH=O&viThz{%{|u6MFP;iggnR)TE1U0v|*<2RS{|B+Q)$9=zJ*DU+r^CbgscbwlX zR&g2TT*-LI8LKP|d3@mwPmM5I7MWL|=yb0Ki1R5D;P4X;?uGM}J{YsmL`n+HE9WH> z86E9gY>cc-@^dG8i)Dw8?KENq&ed|XAM#k&g}^Z|$`0UclRCO@0`j#P9FT20BT3>s zt#6qt*(w%_&dLsD8G(T&D?c&s3g06!^Jrh=7ouSp26PF01wdVg4UKoXQHD|6> z6~)VwHYs;EsH81gg^}fi-3QYt6_=v6byVfNdIX-fhF1^g_E*2=UqU3CS0?Z4ln;h?a z!fKtqfWR?6Dfstfzf$*=R?^YmjaBrjlWtzS{Q9rIc7{xLjpr4mIgM|J%`Zl>@)*&I z0T3%{T5$=T^}L#d@nTo@d5B<C`tuoY{~XuTAR z1WU1)9EqcpQeHWkyXEC9+bX|4I_#NsT*X-Vqrsp=06;8KNZ!IVqS$Jj5DpBZ(8h{9id99pwhj6R^R4w3M-cP08D3Vyn;2e|=5-a)t^3RJ1H)UpBvAf`Mc ziY`{~!>!4!kG=NS!|d&ms}2-zFg+dZCAG2l_KBO|@W-)|gOy0%=6pb%GEj^rDFaeJ z1~LKxSdF@0bDzN16^q`u#V!_~d^!}%4W!@t5-k;dXcv>uK^VcEw?>b&&PTsLSvrsP ziG7}xGZqVc9fz;J!kaED&iCV#))cXst_?~PMle7 zuNlf7ZLRq}akBcNA}-de;>nVX$=7Zls`2htM#>?JyQaIiP&&Qdcey1CVGGz+_4i9# z#+dz1r7Ntdo6X8joYMT)oBPU#iW%#Vf3VEiNV32)#B~WQ{!p+?%gXkJ=^LP^#8hG{ zDaA}d3+`=KUCRtBxvL*@BOpO>jw>e@lUH{lyh{w|u`WmAtq9bty82Y9eNcd|q8{Fk zo?Rq|S#rAi9>`8?Wn6$JA@_Y#xP($N1Zd||Cd@6THElGjSc-5Z)VuhhiXDY<<9WMT zh+VzNJij!03eHGm1wRNy*|$tTPr1}h@x=!2n1)mL8|&3=1RgqdUG_UYGv<^)t&lX0go; z{FB2_;DI8HhpoRJWJ#+e<}GnczGZ#)*4AJB$#^s|($Bo!-CmJB%k2=E1NKid*V%FsoL%gdI0V^Cs2#yhQ&{%8Xi%6afGLRbFjI! z`K75rY;i;XmTGa(NcdxHjBlx(tsSyF^daG`xo5GetjcN?Q$VYImZ-u4s3eDGihPg% z=_|w`G+|)Vms4qCQ=|KU6p(tcp;!BV?*vq!#xVi$@B~pLM|1!k#kwxzFq6_Pa4Lpe z#q`8|a?nelwZ6@Y4_p=e^zw#2VljWIo%-*;?a1C=`)gxsfoQ2hwffzgAef|ME#cX{ z`3tMS>^lXq&-T^-gbo+x{Y3v!zq$A~n)W3AhGRa;W~TiK-_Y#0<+5c1lrpquf(h^t z(%qucqZAI`XN8KZ&94;o&XU*Ty9S(iJif;GOF!#F*7vL*DdV)~c^VXx zLnSgdt$Vf+dsRoM+@m~HyBp9;yu#71#tT^Cg|^zrS6QN?&h=2GEjmmMsoT==^Y_dT z7_?@0kU-2UG8`wxw1~beQ2eo|Kv(zPC!t24;=;qbj%)sNNJD*L`SkaoU)fKdPlw0e z)8H{xugJAO21C+77W8Dv9XVW-qG$kFBzQ6fP6?D{?&>h0piX>Yk*h0`W<0bGB(