From 2b225197b4c33017271ec8edd756b48a0063345f Mon Sep 17 00:00:00 2001 From: Ricardo Date: Sat, 24 Jan 2026 12:13:34 +0100 Subject: [PATCH] Initial commit: Indiekit Eleventy theme --- .gitignore | 26 + 404.njk | 8 + README.md | 56 + _data/blueskyFeed.js | 68 + _data/cv.js | 190 + _data/funkwhaleActivity.js | 123 + _data/githubActivity.js | 228 + _data/githubRepos.js | 48 + _data/mastodonFeed.js | 96 + _data/site.js | 66 + _data/youtubeChannel.js | 206 + _includes/components/blog-sidebar.njk | 184 + .../components/funkwhale-stats-content.njk | 66 + _includes/components/h-card.njk | 64 + _includes/components/reply-context.njk | 63 + _includes/components/sidebar.njk | 258 + _includes/components/webmentions.njk | 158 + _includes/layouts/base.njk | 219 + _includes/layouts/home.njk | 208 + _includes/layouts/post.njk | 123 + about.njk | 68 + articles.njk | 92 + blog.njk | 130 + bookmarks.njk | 29 + categories-index.njk | 27 + categories.njk | 69 + css/tailwind.css | 317 ++ eleventy.config.js | 360 ++ feed-json.njk | 34 + feed.njk | 31 + funkwhale.njk | 268 + github.njk | 266 + images/default-avatar.svg | 5 + images/og-default.png | Bin 0 -> 39412 bytes images/rick.jpg | Bin 0 -> 152493 bytes index.njk | 4 + interactions.njk | 105 + likes.njk | 47 + notes.njk | 89 + package-lock.json | 4514 +++++++++++++++++ package.json | 31 + photos.njk | 23 + postcss.config.js | 6 + replies.njk | 51 + reposts.njk | 53 + tailwind.config.js | 79 + youtube.njk | 262 + 47 files changed, 9418 insertions(+) create mode 100644 .gitignore create mode 100644 404.njk create mode 100644 README.md create mode 100644 _data/blueskyFeed.js create mode 100644 _data/cv.js create mode 100644 _data/funkwhaleActivity.js create mode 100644 _data/githubActivity.js create mode 100644 _data/githubRepos.js create mode 100644 _data/mastodonFeed.js create mode 100644 _data/site.js create mode 100644 _data/youtubeChannel.js create mode 100644 _includes/components/blog-sidebar.njk create mode 100644 _includes/components/funkwhale-stats-content.njk create mode 100644 _includes/components/h-card.njk create mode 100644 _includes/components/reply-context.njk create mode 100644 _includes/components/sidebar.njk create mode 100644 _includes/components/webmentions.njk create mode 100644 _includes/layouts/base.njk create mode 100644 _includes/layouts/home.njk create mode 100644 _includes/layouts/post.njk create mode 100644 about.njk create mode 100644 articles.njk create mode 100644 blog.njk create mode 100644 bookmarks.njk create mode 100644 categories-index.njk create mode 100644 categories.njk create mode 100644 css/tailwind.css create mode 100644 eleventy.config.js create mode 100644 feed-json.njk create mode 100644 feed.njk create mode 100644 funkwhale.njk create mode 100644 github.njk create mode 100644 images/default-avatar.svg create mode 100644 images/og-default.png create mode 100644 images/rick.jpg create mode 100644 index.njk create mode 100644 interactions.njk create mode 100644 likes.njk create mode 100644 notes.njk create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 photos.njk create mode 100644 postcss.config.js create mode 100644 replies.njk create mode 100644 reposts.njk create mode 100644 tailwind.config.js create mode 100644 youtube.njk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea329ac --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Dependencies +node_modules/ + +# Build output +_site/ +css/style.css + +# Cache +.cache/ + +# Content (symlinked at runtime) +content/ +uploads/ + +# Personal overrides (should be in parent repo) +*.rmendes + +# OS files +.DS_Store +Thumbs.db + +# Editor +.vscode/ +.idea/ +*.swp +*.swo diff --git a/404.njk b/404.njk new file mode 100644 index 0000000..332ccc1 --- /dev/null +++ b/404.njk @@ -0,0 +1,8 @@ +--- +layout: layouts/base.njk +title: Page Not Found +permalink: /404.html +--- +

404 - Page Not Found

+

Sorry, the page you're looking for doesn't exist.

+

Go back to the homepage

diff --git a/README.md b/README.md new file mode 100644 index 0000000..db997e0 --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +# Indiekit Eleventy Theme + +A modern, responsive Eleventy theme designed for [Indiekit](https://getindiekit.com/)-powered IndieWeb blogs. + +## Features + +- **IndieWeb Ready**: Full h-card, h-entry, h-feed microformats support +- **Dark Mode**: Automatic dark/light mode with manual toggle +- **Responsive**: Mobile-first design with Tailwind CSS +- **Social Integration**: + - Bluesky and Mastodon feeds in sidebar + - GitHub activity page + - Funkwhale listening history + - YouTube channel display +- **Performance**: Optimized images, lazy loading, prefetching +- **Accessible**: Semantic HTML, proper ARIA labels + +## Usage + +This theme is designed to be used as a git submodule in an Indiekit deployment: + +```bash +git submodule add https://github.com/rmdes/indiekit-eleventy-theme.git eleventy-site +``` + +## Configuration + +The theme uses environment variables for configuration. See the data files in `_data/` for required variables: + +- `SITE_NAME`, `SITE_URL`, `SITE_DESCRIPTION` +- `AUTHOR_NAME`, `AUTHOR_BIO`, `AUTHOR_AVATAR` +- `GITHUB_USERNAME`, `BLUESKY_HANDLE`, `MASTODON_INSTANCE` +- And more... + +## Directory Structure + +``` +├── _data/ # Eleventy data files (site config, API fetchers) +├── _includes/ # Layouts and components +├── css/ # Tailwind CSS source +├── images/ # Static images +├── *.njk # Page templates +├── eleventy.config.js +└── package.json +``` + +## Development + +```bash +npm install +npm run dev +``` + +## License + +MIT diff --git a/_data/blueskyFeed.js b/_data/blueskyFeed.js new file mode 100644 index 0000000..b0083bc --- /dev/null +++ b/_data/blueskyFeed.js @@ -0,0 +1,68 @@ +/** + * Bluesky Feed Data + * Fetches recent posts from Bluesky using the AT Protocol API + */ + +import EleventyFetch from "@11ty/eleventy-fetch"; +import { BskyAgent } from "@atproto/api"; + +export default async function () { + const handle = process.env.BLUESKY_HANDLE || ""; + + try { + // Create agent and resolve handle to DID + const agent = new BskyAgent({ service: "https://bsky.social" }); + + // Get the author's feed using public API (no auth needed for public posts) + const feedUrl = `https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=${handle}&limit=10`; + + const response = await EleventyFetch(feedUrl, { + duration: "15m", // Cache for 15 minutes + type: "json", + fetchOptions: { + headers: { + Accept: "application/json", + }, + }, + }); + + if (!response.feed) { + console.log("No Bluesky feed found for handle:", handle); + return []; + } + + // Transform the feed into a simpler format + return response.feed.map((item) => { + // Extract rkey from AT URI (at://did:plc:xxx/app.bsky.feed.post/rkey) + const rkey = item.post.uri.split("/").pop(); + const postUrl = `https://bsky.app/profile/${item.post.author.handle}/post/${rkey}`; + + return { + text: item.post.record.text, + createdAt: item.post.record.createdAt, + uri: item.post.uri, + url: postUrl, + cid: item.post.cid, + author: { + handle: item.post.author.handle, + displayName: item.post.author.displayName, + avatar: item.post.author.avatar, + }, + likeCount: item.post.likeCount || 0, + repostCount: item.post.repostCount || 0, + replyCount: item.post.replyCount || 0, + // Extract any embedded links or images + embed: item.post.embed + ? { + type: item.post.embed.$type, + images: item.post.embed.images || [], + external: item.post.embed.external || null, + } + : null, + }; + }); + } catch (error) { + console.error("Error fetching Bluesky feed:", error.message); + return []; + } +} diff --git a/_data/cv.js b/_data/cv.js new file mode 100644 index 0000000..576eac9 --- /dev/null +++ b/_data/cv.js @@ -0,0 +1,190 @@ +/** + * CV Data - Easy to update! + * + * To add a new experience: Add an entry to the `experience` array + * To add a new project: Add an entry to the `projects` array + * To update skills: Modify the `skills` object + */ + +export default { + // Last updated date - automatically set to build time + lastUpdated: new Date().toISOString().split("T")[0], + + // Work Experience - Add new positions at the TOP of the array + experience: [ + { + title: "Middleware Engineer", + company: "FGTB-ABVV", + location: "Brussels", + startDate: "2023-11", + endDate: null, // null = present + type: "full-time", + description: "Technology Specialist focusing on IT infrastructure and application delivery", + highlights: [ + "Strategic migration of Java applications from legacy IBM Datapowers and PureApp systems", + "Containerized application deployment on VMware Linux and OpenShift Kubernetes clusters", + "Mastering OpenShift, Kubernetes, and Docker technologies" + ] + }, + { + title: "Solution Architect", + company: "OSINTukraine.com", + location: "Remote", + startDate: "2022-02", + endDate: null, + type: "volunteer", + description: "Open-source intelligence (OSINT) initiative for Ukraine conflict monitoring", + highlights: [ + "Collection, archiving, translation, analysis and dissemination of critical information", + "Monitoring Russian Telegram channels with filtering, categorization, and archiving", + "Sub-projects: War crimes archive, Drones research, Location-related alerts system" + ] + }, + { + title: "DevOps Training", + company: "BeCode", + location: "Brussels", + startDate: "2021-09", + endDate: "2022-03", + type: "training", + description: "7-month intensive DevOps specialization", + highlights: [ + "Vagrant and Ansible infrastructure as code for WordPress, Nginx, Redis", + "Docker Swarm cluster management", + "GitLab CI/CD with SonarQube security audits", + "Jenkins pipelines, Python basics, Prometheus/Grafana monitoring" + ] + }, + { + title: "CTO", + company: "DigitYser", + location: "Brussels", + startDate: "2018-10", + endDate: "2020-03", + type: "full-time", + description: "Digital flagship of tech communities in Brussels", + highlights: [ + "Hosting infrastructure and automation", + "Integrations with digital marketing tools", + "Technical Event Management: Livestreaming, sound, video, photos" + ] + }, + { + title: "Solution Architect", + company: "Armada.digital", + location: "Brussels", + startDate: "2016-05", + endDate: "2021-12", + type: "freelance", + description: "Consultancy to amplify visibility of good causes", + highlights: [ + "Custom communication and collaboration solutions", + "Empowering individuals and ethical businesses" + ] + }, + { + title: "FactChecking Platform", + company: "Journalistes Solidaires", + location: "Brussels", + startDate: "2020-03", + endDate: "2020-05", + type: "volunteer", + description: "Cloudron/Docker backend for factchecking workflow", + highlights: [ + "WordPress with custom post types for COVID-19 disinformation monitoring" + ] + }, + { + title: "Event Manager", + company: "European Data Innovation Hub", + location: "Brussels", + startDate: "2019-02", + endDate: "2020-03", + type: "full-time", + description: "Technical event organization and management" + }, + { + title: "Technical Advisor", + company: "WomenPreneur-Initiative", + location: "Brussels", + startDate: "2019-01", + endDate: "2020-01", + type: "volunteer", + description: "Technical guidance for women-focused entrepreneurship initiative" + }, + { + title: "Technical Advisor", + company: "Promote Ukraine", + location: "Brussels", + startDate: "2019-01", + endDate: "2020-01", + type: "freelance", + description: "Technical consulting for Ukraine advocacy organization" + } + ], + + // Current/Recent Projects - Add new projects at the TOP + projects: [ + { + name: "OSINT Intelligence Platform", + url: "https://osintukraine.com", + description: "Real-time monitoring and analysis platform for open-source intelligence", + technologies: ["Docker", "Telegram API", "Python", "PostgreSQL"], + status: "active" + }, + { + name: "Indiekit Cloudron Package", + url: "https://github.com/rmdes/indiekit-cloudron", + description: "Cloudron-packaged IndieWeb publishing server with Eleventy frontend", + technologies: ["Node.js", "Eleventy", "Docker", "Cloudron"], + status: "active" + } + // Add more projects here as needed + ], + + // Skills - Organized by category + skills: { + containers: ["OpenShift", "Kubernetes", "Docker", "Docker Swarm"], + automation: ["Ansible", "Vagrant", "GitLab CI/CD", "Jenkins", "GitHub Actions"], + monitoring: ["Prometheus", "Grafana", "OpenTelemetry"], + systems: ["Linux Administration", "System Administration", "VMware"], + hosting: ["Cloudron", "On-Premise", "Cloud Infrastructure"], + web: ["Nginx", "Redis", "WordPress", "TLS/SSL", "Eleventy"], + security: ["SonarQube", "Information Assurance", "OSINT"], + languages: ["Python", "Bash", "JavaScript", "Node.js"] + }, + + // Languages spoken + languages: [ + { name: "Portuguese", level: "Native" }, + { name: "French", level: "Fluent" }, + { name: "English", level: "Fluent" }, + { name: "Spanish", level: "Conversational" } + ], + + // Education + education: [ + { + degree: "DevOps Training", + institution: "BeCode", + location: "Brussels", + year: "2021-2022", + description: "7-month intensive DevOps specialization" + }, + { + degree: "Bachelor's in Management Information Technology", + institution: "ISLA - Instituto Superior de Gestão e Tecnologia", + location: "Portugal", + year: "1998-2001", + description: "Curso Técnico Superior Profissional de Informática de Gestão" + } + ], + + // Interests + interests: [ + "Music Production (Ableton Live, Ableton Push 3)", + "IndieWeb & Decentralized Tech", + "Open Source Intelligence (OSINT)", + "Democracy & Digital Rights" + ] +}; diff --git a/_data/funkwhaleActivity.js b/_data/funkwhaleActivity.js new file mode 100644 index 0000000..316aeb4 --- /dev/null +++ b/_data/funkwhaleActivity.js @@ -0,0 +1,123 @@ +/** + * Funkwhale Activity Data + * Fetches from Indiekit's endpoint-funkwhale public API + */ + +import EleventyFetch from "@11ty/eleventy-fetch"; + +const INDIEKIT_URL = process.env.SITE_URL || "https://example.com"; +const FUNKWHALE_INSTANCE = process.env.FUNKWHALE_INSTANCE || ""; + +/** + * Fetch from Indiekit's public Funkwhale API endpoint + */ +async function fetchFromIndiekit(endpoint) { + try { + const url = `${INDIEKIT_URL}/funkwhaleapi/api/${endpoint}`; + console.log(`[funkwhaleActivity] Fetching from Indiekit: ${url}`); + const data = await EleventyFetch(url, { + duration: "15m", + type: "json", + }); + console.log(`[funkwhaleActivity] Indiekit ${endpoint} success`); + return data; + } catch (error) { + console.log( + `[funkwhaleActivity] Indiekit API unavailable for ${endpoint}: ${error.message}` + ); + return null; + } +} + +/** + * Format duration in seconds to human-readable string + */ +function formatDuration(seconds) { + if (!seconds || seconds < 0) return "0:00"; + + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor((seconds % 3600) / 60); + + if (hours > 24) { + const days = Math.floor(hours / 24); + return `${days}d`; + } + + if (hours > 0) { + return `${hours}h ${minutes}m`; + } + + return `${minutes}m`; +} + +export default async function () { + try { + console.log("[funkwhaleActivity] Fetching Funkwhale data..."); + + // Fetch all data from Indiekit API + const [nowPlaying, listenings, favorites, stats] = await Promise.all([ + fetchFromIndiekit("now-playing"), + fetchFromIndiekit("listenings"), + fetchFromIndiekit("favorites"), + fetchFromIndiekit("stats"), + ]); + + // Check if we got data + const hasData = nowPlaying || listenings?.listenings?.length || stats?.summary; + + if (!hasData) { + console.log("[funkwhaleActivity] No data available from Indiekit"); + return { + nowPlaying: null, + listenings: [], + favorites: [], + stats: null, + instanceUrl: FUNKWHALE_INSTANCE, + source: "unavailable", + }; + } + + console.log("[funkwhaleActivity] Using Indiekit API data"); + + // Format stats with human-readable durations + let formattedStats = null; + if (stats?.summary) { + formattedStats = { + ...stats, + summary: { + all: { + ...stats.summary.all, + totalDurationFormatted: formatDuration(stats.summary.all?.totalDuration || 0), + }, + month: { + ...stats.summary.month, + totalDurationFormatted: formatDuration(stats.summary.month?.totalDuration || 0), + }, + week: { + ...stats.summary.week, + totalDurationFormatted: formatDuration(stats.summary.week?.totalDuration || 0), + }, + }, + }; + } + + return { + nowPlaying: nowPlaying || null, + listenings: listenings?.listenings || [], + favorites: favorites?.favorites || [], + stats: formattedStats, + instanceUrl: FUNKWHALE_INSTANCE, + source: "indiekit", + }; + } catch (error) { + console.error("[funkwhaleActivity] Error:", error.message); + return { + nowPlaying: null, + listenings: [], + favorites: [], + stats: null, + instanceUrl: FUNKWHALE_INSTANCE, + source: "error", + }; + } +} diff --git a/_data/githubActivity.js b/_data/githubActivity.js new file mode 100644 index 0000000..f3f5f19 --- /dev/null +++ b/_data/githubActivity.js @@ -0,0 +1,228 @@ +/** + * GitHub Activity Data + * Fetches from Indiekit's endpoint-github public API + * Falls back to direct GitHub API if Indiekit is unavailable + */ + +import EleventyFetch from "@11ty/eleventy-fetch"; + +const GITHUB_USERNAME = process.env.GITHUB_USERNAME || ""; +const INDIEKIT_URL = process.env.SITE_URL || "https://example.com"; + +// Fallback featured repos if Indiekit API unavailable (from env: comma-separated) +const FALLBACK_FEATURED_REPOS = process.env.GITHUB_FEATURED_REPOS?.split(",").filter(Boolean) || []; + +/** + * Fetch from Indiekit's public GitHub API endpoint + */ +async function fetchFromIndiekit(endpoint) { + try { + const url = `${INDIEKIT_URL}/githubapi/api/${endpoint}`; + console.log(`[githubActivity] Fetching from Indiekit: ${url}`); + const data = await EleventyFetch(url, { + duration: "15m", + type: "json", + }); + console.log(`[githubActivity] Indiekit ${endpoint} success`); + return data; + } catch (error) { + console.log( + `[githubActivity] Indiekit API unavailable for ${endpoint}: ${error.message}` + ); + return null; + } +} + +/** + * Fetch from GitHub API directly + */ +async function fetchFromGitHub(endpoint) { + const url = `https://api.github.com${endpoint}`; + const headers = { + Accept: "application/vnd.github.v3+json", + "User-Agent": "Eleventy-Site", + }; + + if (process.env.GITHUB_TOKEN) { + headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; + } + + return await EleventyFetch(url, { + duration: "15m", + type: "json", + fetchOptions: { headers }, + }); +} + +/** + * Truncate text with ellipsis + */ +function truncate(text, maxLength = 80) { + if (!text || text.length <= maxLength) return text || ""; + return text.slice(0, maxLength - 1) + "..."; +} + +/** + * Extract commits from push events + */ +function extractCommits(events) { + if (!Array.isArray(events)) return []; + + return events + .filter((event) => event.type === "PushEvent") + .flatMap((event) => + (event.payload?.commits || []).map((commit) => ({ + sha: commit.sha.slice(0, 7), + message: truncate(commit.message.split("\n")[0]), + url: `https://github.com/${event.repo.name}/commit/${commit.sha}`, + repo: event.repo.name, + repoUrl: `https://github.com/${event.repo.name}`, + date: event.created_at, + })) + ) + .slice(0, 10); +} + +/** + * Extract PRs/Issues from events + */ +function extractContributions(events) { + if (!Array.isArray(events)) return []; + + return events + .filter( + (event) => + (event.type === "PullRequestEvent" || event.type === "IssuesEvent") && + event.payload?.action === "opened" + ) + .map((event) => { + const item = event.payload.pull_request || event.payload.issue; + return { + type: event.type === "PullRequestEvent" ? "pr" : "issue", + title: truncate(item?.title), + url: item?.html_url, + repo: event.repo.name, + repoUrl: `https://github.com/${event.repo.name}`, + number: item?.number, + date: event.created_at, + }; + }) + .slice(0, 10); +} + +/** + * Format starred repos + */ +function formatStarred(repos) { + if (!Array.isArray(repos)) return []; + + return repos.map((repo) => ({ + name: repo.full_name, + description: truncate(repo.description, 120), + url: repo.html_url, + stars: repo.stargazers_count, + language: repo.language, + topics: repo.topics?.slice(0, 5) || [], + })); +} + +/** + * Fetch featured repos directly from GitHub (fallback) + */ +async function fetchFeaturedFromGitHub(repoList) { + const featured = []; + + for (const repoFullName of repoList) { + try { + const repo = await fetchFromGitHub(`/repos/${repoFullName}`); + let commits = []; + try { + const commitsData = await fetchFromGitHub( + `/repos/${repoFullName}/commits?per_page=5` + ); + commits = commitsData.map((c) => ({ + sha: c.sha.slice(0, 7), + message: truncate(c.commit.message.split("\n")[0]), + url: c.html_url, + date: c.commit.author.date, + })); + } catch (e) { + console.log(`[githubActivity] Could not fetch commits for ${repoFullName}`); + } + + featured.push({ + fullName: repo.full_name, + name: repo.name, + description: repo.description, + url: repo.html_url, + stars: repo.stargazers_count, + forks: repo.forks_count, + language: repo.language, + isPrivate: repo.private, + commits, + }); + } catch (error) { + console.log(`[githubActivity] Could not fetch ${repoFullName}: ${error.message}`); + } + } + + return featured; +} + +export default async function () { + try { + console.log("[githubActivity] Fetching GitHub data..."); + + // Try Indiekit public API first + const [indiekitStars, indiekitCommits, indiekitActivity, indiekitFeatured] = + await Promise.all([ + fetchFromIndiekit("stars"), + fetchFromIndiekit("commits"), + fetchFromIndiekit("activity"), + fetchFromIndiekit("featured"), + ]); + + // Check if Indiekit API is available + const hasIndiekitData = + indiekitStars?.stars || + indiekitCommits?.commits || + indiekitFeatured?.featured; + + if (hasIndiekitData) { + console.log("[githubActivity] Using Indiekit API data"); + return { + stars: indiekitStars?.stars || [], + commits: indiekitCommits?.commits || [], + activity: indiekitActivity?.activity || [], + featured: indiekitFeatured?.featured || [], + source: "indiekit", + }; + } + + // Fallback to direct GitHub API + console.log("[githubActivity] Falling back to GitHub API"); + + const [events, starred, featured] = await Promise.all([ + fetchFromGitHub(`/users/${GITHUB_USERNAME}/events/public?per_page=50`), + fetchFromGitHub(`/users/${GITHUB_USERNAME}/starred?per_page=20&sort=created`), + fetchFeaturedFromGitHub(FALLBACK_FEATURED_REPOS), + ]); + + return { + stars: formatStarred(starred || []), + commits: extractCommits(events || []), + contributions: extractContributions(events || []), + featured, + source: "github", + }; + } catch (error) { + console.error("[githubActivity] Error:", error.message); + return { + stars: [], + commits: [], + contributions: [], + featured: [], + source: "error", + }; + } +} diff --git a/_data/githubRepos.js b/_data/githubRepos.js new file mode 100644 index 0000000..1b8fe5f --- /dev/null +++ b/_data/githubRepos.js @@ -0,0 +1,48 @@ +/** + * GitHub Repos Data + * Fetches public repositories from GitHub API + */ + +import EleventyFetch from "@11ty/eleventy-fetch"; + +export default async function () { + const username = process.env.GITHUB_USERNAME || ""; + + try { + // Fetch public repos, sorted by updated date + const url = `https://api.github.com/users/${username}/repos?sort=updated&per_page=10&type=owner`; + + const repos = await EleventyFetch(url, { + duration: "1h", // Cache for 1 hour + type: "json", + fetchOptions: { + headers: { + Accept: "application/vnd.github.v3+json", + "User-Agent": "Eleventy-Site", + }, + }, + }); + + // Filter and transform repos + return repos + .filter((repo) => !repo.fork && !repo.private) // Exclude forks and private repos + .map((repo) => ({ + name: repo.name, + full_name: repo.full_name, + description: repo.description, + html_url: repo.html_url, + homepage: repo.homepage, + language: repo.language, + stargazers_count: repo.stargazers_count, + forks_count: repo.forks_count, + open_issues_count: repo.open_issues_count, + topics: repo.topics || [], + updated_at: repo.updated_at, + created_at: repo.created_at, + })) + .slice(0, 10); // Limit to 10 repos + } catch (error) { + console.error("Error fetching GitHub repos:", error.message); + return []; + } +} diff --git a/_data/mastodonFeed.js b/_data/mastodonFeed.js new file mode 100644 index 0000000..0c79abf --- /dev/null +++ b/_data/mastodonFeed.js @@ -0,0 +1,96 @@ +/** + * Mastodon Feed Data + * Fetches recent posts from Mastodon using the public API + */ + +import EleventyFetch from "@11ty/eleventy-fetch"; + +export default async function () { + const instance = process.env.MASTODON_INSTANCE?.replace("https://", "") || ""; + const username = process.env.MASTODON_USER || ""; + + try { + // First, look up the account ID + const lookupUrl = `https://${instance}/api/v1/accounts/lookup?acct=${username}`; + + const account = await EleventyFetch(lookupUrl, { + duration: "1h", // Cache account lookup for 1 hour + type: "json", + fetchOptions: { + headers: { + Accept: "application/json", + }, + }, + }); + + if (!account || !account.id) { + console.log("Mastodon account not found:", username); + return []; + } + + // Fetch recent statuses (excluding replies and boosts for cleaner feed) + const statusesUrl = `https://${instance}/api/v1/accounts/${account.id}/statuses?limit=10&exclude_replies=true&exclude_reblogs=true`; + + const statuses = await EleventyFetch(statusesUrl, { + duration: "15m", // Cache for 15 minutes + type: "json", + fetchOptions: { + headers: { + Accept: "application/json", + }, + }, + }); + + if (!statuses || !Array.isArray(statuses)) { + console.log("No Mastodon statuses found for:", username); + return []; + } + + // Transform statuses into a simpler format + return statuses.map((status) => ({ + id: status.id, + url: status.url, + text: stripHtml(status.content), + htmlContent: status.content, + createdAt: status.created_at, + author: { + username: status.account.username, + displayName: status.account.display_name || status.account.username, + avatar: status.account.avatar, + url: status.account.url, + }, + favouritesCount: status.favourites_count || 0, + reblogsCount: status.reblogs_count || 0, + repliesCount: status.replies_count || 0, + // Media attachments + media: status.media_attachments + ? status.media_attachments.map((m) => ({ + type: m.type, + url: m.url, + previewUrl: m.preview_url, + description: m.description, + })) + : [], + })); + } catch (error) { + console.error("Error fetching Mastodon feed:", error.message); + return []; + } +} + +// Simple HTML stripper for plain text display +function stripHtml(html) { + if (!html) return ""; + return html + .replace(//gi, " ") + .replace(/<\/p>/gi, " ") + .replace(/<[^>]+>/g, "") + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, '"') + .replace(/'/g, "'") + .replace(/ /g, " ") + .replace(/\s+/g, " ") + .trim(); +} diff --git a/_data/site.js b/_data/site.js new file mode 100644 index 0000000..0f4b389 --- /dev/null +++ b/_data/site.js @@ -0,0 +1,66 @@ +/** + * Site configuration for Eleventy + * + * Configure via environment variables in Cloudron app settings. + * All values have sensible defaults for initial deployment. + */ + +// Parse social links from env (format: "name|url|icon,name|url|icon") +function parseSocialLinks(envVar) { + if (!envVar) return []; + return envVar.split(",").map((link) => { + const [name, url, icon] = link.split("|").map((s) => s.trim()); + return { name, url, rel: "me", icon: icon || name.toLowerCase() }; + }); +} + +// Default social links if none configured +const defaultSocial = [ + { + name: "GitHub", + url: "https://github.com/", + rel: "me", + icon: "github", + }, +]; + +export default { + // Basic site info + name: process.env.SITE_NAME || "My IndieWeb Blog", + url: process.env.SITE_URL || "https://example.com", + me: process.env.SITE_URL || "https://example.com", + locale: process.env.SITE_LOCALE || "en", + description: + process.env.SITE_DESCRIPTION || + "An IndieWeb-powered blog with Micropub support", + + // Author info (shown in h-card, about page, etc.) + author: { + name: process.env.AUTHOR_NAME || "Blog Author", + url: process.env.SITE_URL || "https://example.com", + avatar: process.env.AUTHOR_AVATAR || "/images/default-avatar.svg", + title: process.env.AUTHOR_TITLE || "", + bio: process.env.AUTHOR_BIO || "Welcome to my IndieWeb blog.", + location: process.env.AUTHOR_LOCATION || "", + email: process.env.AUTHOR_EMAIL || "", + }, + + // Social links (for rel="me" and footer) + // Set SITE_SOCIAL env var as: "GitHub|https://github.com/user|github,Mastodon|https://mastodon.social/@user|mastodon" + social: parseSocialLinks(process.env.SITE_SOCIAL) || defaultSocial, + + // Feed integrations (usernames for data fetching) + feeds: { + github: process.env.GITHUB_USERNAME || "", + bluesky: process.env.BLUESKY_HANDLE || "", + mastodon: { + instance: process.env.MASTODON_INSTANCE?.replace("https://", "") || "", + username: process.env.MASTODON_USER || "", + }, + }, + + // Webmentions configuration + webmentions: { + domain: process.env.SITE_URL?.replace("https://", "").replace("http://", "") || "example.com", + }, +}; diff --git a/_data/youtubeChannel.js b/_data/youtubeChannel.js new file mode 100644 index 0000000..7fbf461 --- /dev/null +++ b/_data/youtubeChannel.js @@ -0,0 +1,206 @@ +/** + * YouTube Channel Data + * Fetches from Indiekit's endpoint-youtube public API + * Supports single or multiple channels + */ + +import EleventyFetch from "@11ty/eleventy-fetch"; + +const INDIEKIT_URL = process.env.SITE_URL || "https://example.com"; + +/** + * Fetch from Indiekit's public YouTube API endpoint + */ +async function fetchFromIndiekit(endpoint) { + try { + const url = `${INDIEKIT_URL}/youtubeapi/api/${endpoint}`; + console.log(`[youtubeChannel] Fetching from Indiekit: ${url}`); + const data = await EleventyFetch(url, { + duration: "5m", + type: "json", + }); + console.log(`[youtubeChannel] Indiekit ${endpoint} success`); + return data; + } catch (error) { + console.log( + `[youtubeChannel] Indiekit API unavailable for ${endpoint}: ${error.message}` + ); + return null; + } +} + +/** + * Format large numbers with locale separators + */ +function formatNumber(num) { + if (!num) return "0"; + return new Intl.NumberFormat().format(num); +} + +/** + * Format view count with K/M suffix for compact display + */ +function formatViewCount(num) { + if (!num) return "0"; + if (num >= 1000000) { + return (num / 1000000).toFixed(1).replace(/\.0$/, "") + "M"; + } + if (num >= 1000) { + return (num / 1000).toFixed(1).replace(/\\.0$/, "") + "K"; + } + return num.toString(); +} + +/** + * Format relative time from ISO date string + */ +function formatRelativeTime(dateString) { + if (!dateString) return ""; + const date = new Date(dateString); + const now = new Date(); + const diffMs = now - date; + const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24)); + + if (diffDays === 0) return "Today"; + if (diffDays === 1) return "Yesterday"; + if (diffDays < 7) return `${diffDays} days ago`; + if (diffDays < 30) return `${Math.floor(diffDays / 7)} weeks ago`; + if (diffDays < 365) return `${Math.floor(diffDays / 30)} months ago`; + return `${Math.floor(diffDays / 365)} years ago`; +} + +/** + * Format channel data with computed fields + */ +function formatChannel(channel) { + if (!channel) return null; + return { + ...channel, + subscriberCountFormatted: formatNumber(channel.subscriberCount), + videoCountFormatted: formatNumber(channel.videoCount), + viewCountFormatted: formatNumber(channel.viewCount), + url: `https://www.youtube.com/channel/${channel.id}`, + }; +} + +/** + * Format video data with computed fields + */ +function formatVideo(video) { + return { + ...video, + viewCountFormatted: formatViewCount(video.viewCount), + relativeTime: formatRelativeTime(video.publishedAt), + }; +} + +export default async function () { + try { + console.log("[youtubeChannel] Fetching YouTube data..."); + + // Fetch all data from Indiekit API + const [channelData, videosData, liveData] = await Promise.all([ + fetchFromIndiekit("channel"), + fetchFromIndiekit("videos"), + fetchFromIndiekit("live"), + ]); + + // Check if we got data + const hasData = + channelData?.channel || + channelData?.channels?.length || + videosData?.videos?.length; + + if (!hasData) { + console.log("[youtubeChannel] No data available from Indiekit"); + return { + channel: null, + channels: [], + videos: [], + videosByChannel: {}, + liveStatus: null, + liveStatuses: [], + isMultiChannel: false, + source: "unavailable", + }; + } + + console.log("[youtubeChannel] Using Indiekit API data"); + + // Determine if multi-channel mode + const isMultiChannel = !!(channelData?.channels && channelData.channels.length > 1); + + // Format channels + let channels = []; + let channel = null; + + if (isMultiChannel) { + channels = (channelData.channels || []).map(formatChannel).filter(Boolean); + channel = channels[0] || null; + } else { + channel = formatChannel(channelData?.channel); + channels = channel ? [channel] : []; + } + + // Format videos + const videos = (videosData?.videos || []).map(formatVideo); + + // Group videos by channel if multi-channel + let videosByChannel = {}; + if (isMultiChannel && videosData?.videosByChannel) { + for (const [channelName, channelVideos] of Object.entries(videosData.videosByChannel)) { + videosByChannel[channelName] = (channelVideos || []).map(formatVideo); + } + } else if (channel) { + videosByChannel[channel.configName || channel.title] = videos; + } + + // Format live status + let liveStatus = null; + let liveStatuses = []; + + if (liveData) { + if (isMultiChannel && liveData.liveStatuses) { + liveStatuses = liveData.liveStatuses; + // Find first live or upcoming + const live = liveStatuses.find((s) => s.isLive); + const upcoming = liveStatuses.find((s) => s.isUpcoming && !s.isLive); + liveStatus = { + isLive: !!live, + isUpcoming: !live && !!upcoming, + stream: live?.stream || upcoming?.stream || null, + }; + } else { + liveStatus = { + isLive: liveData.isLive || false, + isUpcoming: liveData.isUpcoming || false, + stream: liveData.stream || null, + }; + liveStatuses = [{ ...liveStatus, channelConfigName: channel?.configName }]; + } + } + + return { + channel, + channels, + videos, + videosByChannel, + liveStatus, + liveStatuses, + isMultiChannel, + source: "indiekit", + }; + } catch (error) { + console.error("[youtubeChannel] Error:", error.message); + return { + channel: null, + channels: [], + videos: [], + videosByChannel: {}, + liveStatus: null, + liveStatuses: [], + isMultiChannel: false, + source: "error", + }; + } +} diff --git a/_includes/components/blog-sidebar.njk b/_includes/components/blog-sidebar.njk new file mode 100644 index 0000000..3ac588c --- /dev/null +++ b/_includes/components/blog-sidebar.njk @@ -0,0 +1,184 @@ +{# Blog Sidebar - Shown on individual post pages #} +{# Contains: Author compact card, Related posts, Categories, Recent posts #} + +{# Author Compact Card #} +
+
+ {{ site.author.name }} +
+ + {{ site.author.name }} + +

{{ site.author.title }}

+
+
+
+ +{# Post Navigation Widget - Previous/Next #} +{% if previousPost or nextPost %} +
+

More Posts

+
+ {% if previousPost %} + + {% endif %} + {% if nextPost %} +
+ Next + + {{ nextPost.data.title or nextPost.data.name or "Untitled" }} + +
+ {% endif %} +
+
+{% endif %} + +{# Table of Contents Widget (for articles with headings) #} +{% if toc and toc.length %} +
+

Contents

+ +
+{% endif %} + +{# Categories for This Post #} +{% if category %} +
+

Categories

+
+ {% if category is string %} + + {{ category }} + + {% else %} + {% for cat in category %} + + {{ cat }} + + {% endfor %} + {% endif %} +
+
+{% endif %} + +{# Recent Posts Widget #} +{% if collections.posts %} +
+

Recent Posts

+ + + View all posts + +
+{% endif %} + +{# Webmentions Widget (if this post has any) #} +{% if webmentions and webmentions.length %} +
+

+ + + + Interactions +

+
+ {% set likes = webmentions | filter("like-of") %} + {% set reposts = webmentions | filter("repost-of") %} + {% set replies = webmentions | filter("in-reply-to") %} + + {% if likes.length %} +

+ {{ likes.length }} likes +

+ {% endif %} + {% if reposts.length %} +

+ {{ reposts.length }} reposts +

+ {% endif %} + {% if replies.length %} +

+ {{ replies.length }} replies +

+ {% endif %} +
+
+{% endif %} + +{# Share Widget #} +
+

Share

+ +
+ +{# Subscribe Widget #} + diff --git a/_includes/components/funkwhale-stats-content.njk b/_includes/components/funkwhale-stats-content.njk new file mode 100644 index 0000000..12822e7 --- /dev/null +++ b/_includes/components/funkwhale-stats-content.njk @@ -0,0 +1,66 @@ +{# Stats Summary Cards #} +{% if summary %} +
+
+ {{ summary.totalPlays or 0 }} + Plays +
+
+ {{ summary.uniqueTracks or 0 }} + Tracks +
+
+ {{ summary.uniqueArtists or 0 }} + Artists +
+
+ {{ summary.totalDurationFormatted or '0m' }} + Listened +
+
+{% endif %} + +{# Top Artists #} +{% if topArtists and topArtists.length %} +
+

Top Artists

+
+ {% for artist in topArtists | head(5) %} +
+ {{ loop.index }} + {{ artist.name }} + {{ artist.playCount }} plays +
+ {% endfor %} +
+
+{% endif %} + +{# Top Albums #} +{% if topAlbums and topAlbums.length %} +
+

Top Albums

+
+ {% for album in topAlbums | head(5) %} +
+ {% if album.coverUrl %} + + {% else %} +
+ + + +
+ {% endif %} +

{{ album.title }}

+

{{ album.artist }}

+

{{ album.playCount }} plays

+
+ {% endfor %} +
+
+{% endif %} + +{% if not summary and not topArtists and not topAlbums %} +

No statistics available for this period.

+{% endif %} diff --git a/_includes/components/h-card.njk b/_includes/components/h-card.njk new file mode 100644 index 0000000..fc97162 --- /dev/null +++ b/_includes/components/h-card.njk @@ -0,0 +1,64 @@ +{# h-card - IndieWeb identity microformat #} +{# See: https://microformats.org/wiki/h-card #} + +
+ {# Avatar #} + + + {# Name and identity #} + + {{ site.author.name }} + + + {# Title/role #} + {% if site.author.title %} + + {{ site.author.title }} + + {% endif %} + + {# Location #} + {% if site.author.location %} + + {% endif %} + + {# Social links with rel="me" #} + +
diff --git a/_includes/components/reply-context.njk b/_includes/components/reply-context.njk new file mode 100644 index 0000000..9398caa --- /dev/null +++ b/_includes/components/reply-context.njk @@ -0,0 +1,63 @@ +{# Reply Context Component #} +{# Displays rich context for replies, likes, reposts, and bookmarks #} +{# Uses h-cite microformat for citing external content #} + +{% if in_reply_to or like_of or repost_of or bookmark_of %} + +{% endif %} diff --git a/_includes/components/sidebar.njk b/_includes/components/sidebar.njk new file mode 100644 index 0000000..79e1463 --- /dev/null +++ b/_includes/components/sidebar.njk @@ -0,0 +1,258 @@ +{# Sidebar Components #} +{# Contains: Author card, Bluesky feed, GitHub repos, RSS feed #} + +{# Author Card Widget #} +
+
+ {{ site.author.name }} +
+ + {{ site.author.name }} + +

{{ site.author.title }}

+

{{ site.author.location }}

+
+
+

{{ site.author.bio }}

+
+ +{# Social Feed Widget - Tabbed Bluesky/Mastodon #} +{% if (blueskyFeed and blueskyFeed.length) or (mastodonFeed and mastodonFeed.length) %} +
+

Social Activity

+ + {# Tab buttons #} +
+ {% if blueskyFeed and blueskyFeed.length %} + + {% endif %} + {% if mastodonFeed and mastodonFeed.length %} + + {% endif %} +
+ + {# Bluesky Tab Content #} + {% if blueskyFeed and blueskyFeed.length %} +
+ + + View on Bluesky + + +
+ {% endif %} + + {# Mastodon Tab Content #} + {% if mastodonFeed and mastodonFeed.length %} +
+ + + View on Mastodon + + +
+ {% endif %} +
+{% endif %} + +{# GitHub Repos Widget #} +{% if githubRepos and githubRepos.length %} +
+

+ + GitHub Projects +

+
    + {% for repo in githubRepos | head(5) %} +
  • + + {{ repo.name }} + + {% if repo.description %} +

    {{ repo.description | truncate(80) }}

    + {% endif %} +
    + {% if repo.language %} + {{ repo.language }} + {% endif %} + {{ repo.stargazers_count }} stars +
    +
  • + {% endfor %} +
+ + View all repositories + +
+{% endif %} + +{# Funkwhale Now Playing Widget #} +{% if funkwhaleActivity and (funkwhaleActivity.nowPlaying or funkwhaleActivity.stats) %} +
+

+ + + + Listening +

+ + {# Now Playing / Recently Played #} + {% if funkwhaleActivity.nowPlaying and funkwhaleActivity.nowPlaying.track %} +
+ {% if funkwhaleActivity.nowPlaying.status == 'now-playing' %} +
+ + + + + + Now Playing +
+ {% elif funkwhaleActivity.nowPlaying.status == 'recently-played' %} +
Recently Played
+ {% endif %} + +
+ {% if funkwhaleActivity.nowPlaying.coverUrl %} + + {% endif %} +
+

+ {% if funkwhaleActivity.nowPlaying.trackUrl %} + + {{ funkwhaleActivity.nowPlaying.track }} + + {% else %} + {{ funkwhaleActivity.nowPlaying.track }} + {% endif %} +

+

{{ funkwhaleActivity.nowPlaying.artist }}

+
+
+
+ {% endif %} + + {# Quick Stats #} + {% if funkwhaleActivity.stats and funkwhaleActivity.stats.summary %} + {% set stats = funkwhaleActivity.stats.summary.all %} +
+
+ {{ stats.totalPlays or 0 }} + plays +
+
+ {{ stats.uniqueArtists or 0 }} + artists +
+
+ {{ stats.totalDurationFormatted or '0m' }} + listened +
+
+ {% endif %} + + + View full listening history + + +
+{% endif %} + +{# Recent Posts Widget (for non-blog pages) #} +{% if recentPosts and recentPosts.length %} +
+

Recent Posts

+ + + View all posts + +
+{% endif %} + +{# Categories/Tags Widget #} +{% if categories and categories.length %} +
+

Categories

+
+ {% for category in categories %} + + {{ category }} + + {% endfor %} +
+
+{% endif %} diff --git a/_includes/components/webmentions.njk b/_includes/components/webmentions.njk new file mode 100644 index 0000000..5af3f1e --- /dev/null +++ b/_includes/components/webmentions.njk @@ -0,0 +1,158 @@ +{# Webmentions Component #} +{# Displays likes, reposts, and replies for a post #} + +{% set mentions = webmentions | webmentionsForUrl(page.url) %} + +{% if mentions.length %} +
+

+ Webmentions ({{ mentions.length }}) +

+ + {# Likes #} + {% set likes = mentions | webmentionsByType('likes') %} + {% if likes.length %} +
+

+ {{ likes.length }} Like{% if likes.length != 1 %}s{% endif %} +

+
+ {% for like in likes %} + + {{ like.author.name }} + + {% endfor %} +
+
+ {% endif %} + + {# Reposts #} + {% set reposts = mentions | webmentionsByType('reposts') %} + {% if reposts.length %} +
+

+ {{ reposts.length }} Repost{% if reposts.length != 1 %}s{% endif %} +

+
+ {% for repost in reposts %} + + {{ repost.author.name }} + + {% endfor %} +
+
+ {% endif %} + + {# Replies #} + {% set replies = mentions | webmentionsByType('replies') %} + {% if replies.length %} +
+

+ {{ replies.length }} Repl{% if replies.length != 1 %}ies{% else %}y{% endif %} +

+ +
+ {% endif %} + + {# Other mentions #} + {% set otherMentions = mentions | webmentionsByType('mentions') %} + {% if otherMentions.length %} +
+

+ {{ otherMentions.length }} Mention{% if otherMentions.length != 1 %}s{% endif %} +

+ +
+ {% endif %} +
+{% endif %} + +{# Webmention send form #} +
+

+ Send a Webmention +

+

+ Have you written a response to this post? Send a webmention by entering your post URL below. +

+
+ + + +
+
diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk new file mode 100644 index 0000000..d0fa075 --- /dev/null +++ b/_includes/layouts/base.njk @@ -0,0 +1,219 @@ + + + + + + {% if title %}{{ title }} - {% endif %}{{ site.name }} + + {# OpenGraph meta tags #} + {% set ogTitle = title | default(site.name) %} + {% set ogDesc = description | default(content | ogDescription(200)) | default(site.description) %} + {% set contentImage = content | extractFirstImage %} + + + + + + + {% if photo %} + + {% elif image %} + + {% elif contentImage %} + + {% else %} + + {% endif %} + + + + + {# Twitter Card meta tags #} + {% set hasImage = photo or image or contentImage %} + + + + {% if photo %} + + {% elif image %} + + {% elif contentImage %} + + {% endif %} + + + + + + + + + + + + + + + + {# IndieAuth rel="me" links for identity verification #} + {% for social in site.social %} + + {% endfor %} + + + + + +
+ {% if withSidebar %} +
+
+ {{ content | safe }} +
+ +
+ {% elif withBlogSidebar %} +
+
+ {{ content | safe }} +
+ +
+ {% else %} + {{ content | safe }} + {% endif %} +
+ + + + + diff --git a/_includes/layouts/home.njk b/_includes/layouts/home.njk new file mode 100644 index 0000000..126c7f4 --- /dev/null +++ b/_includes/layouts/home.njk @@ -0,0 +1,208 @@ +--- +layout: layouts/base.njk +withSidebar: true +--- + +{# Hero Section #} +
+
+ {# Avatar #} + {{ site.author.name }} + + {# Introduction #} +
+

+ {{ site.author.name }} +

+

+ {{ site.author.title }} +

+

+ {{ site.author.bio }} +

+ + {# Social Links #} + +
+
+
+ +{# Work Experience Timeline - only show if data exists #} +{% if cv.experience and cv.experience.length %} +
+

Experience

+ +
+ {% for job in cv.experience %} +
+
+

+ {{ job.title }} +

+ @ {{ job.company }} + {% if job.type != "full-time" %} + {{ job.type }} + {% endif %} +
+ +

+ - + {% if job.endDate %} + + {% else %} + Present + {% endif %} + · {{ job.location }} +

+ + {% if job.description %} +

{{ job.description }}

+ {% endif %} + + {% if job.highlights %} +
    + {% for highlight in job.highlights %} +
  • {{ highlight }}
  • + {% endfor %} +
+ {% endif %} +
+ {% endfor %} +
+
+{% endif %} + +{# Projects Section - only show if data exists #} +{% if cv.projects and cv.projects.length %} +
+

Projects

+ +
+ {% for project in cv.projects %} +
+

+ {% if project.url %} + + {{ project.name }} + + {% else %} + {{ project.name }} + {% endif %} +

+ +

{{ project.description }}

+ +
+ {% for tech in project.technologies %} + {{ tech }} + {% endfor %} +
+ + {% if project.status == "active" %} + Active + {% endif %} +
+ {% endfor %} +
+
+{% endif %} + +{# Skills Section - only show if data exists #} +{% if cv.skills and (cv.skills | dictsort | length) %} +
+

Skills

+ +
+ {% for category, skills in cv.skills %} +
+

+ {{ category }} +

+
+ {% for skill in skills %} + {{ skill }} + {% endfor %} +
+
+ {% endfor %} +
+
+{% endif %} + +{# Education & Languages - only show if data exists #} +{% if (cv.education and cv.education.length) or (cv.languages and cv.languages.length) %} +
+ {# Education #} + {% if cv.education and cv.education.length %} +
+

Education

+ {% for edu in cv.education %} +
+

{{ edu.degree }}

+

{{ edu.institution }}

+

{{ edu.year }} · {{ edu.location }}

+
+ {% endfor %} +
+ {% endif %} + + {# Languages #} + {% if cv.languages and cv.languages.length %} +
+

Languages

+
    + {% for lang in cv.languages %} +
  • + {{ lang.name }} + {{ lang.level }} +
  • + {% endfor %} +
+
+ {% endif %} +
+{% endif %} + +{# Interests - only show if data exists #} +{% if cv.interests and cv.interests.length %} +
+

Interests

+
+ {% for interest in cv.interests %} + {{ interest }} + {% endfor %} +
+
+{% endif %} + +{# Last Updated - only show if CV has content #} +{% if cv.lastUpdated and (cv.experience.length or cv.projects.length) %} +

+ Last updated: {{ cv.lastUpdated }} +

+{% endif %} diff --git a/_includes/layouts/post.njk b/_includes/layouts/post.njk new file mode 100644 index 0000000..d7d7bcb --- /dev/null +++ b/_includes/layouts/post.njk @@ -0,0 +1,123 @@ +--- +layout: layouts/base.njk +withBlogSidebar: true +--- +
+ {% if title %} +

{{ title }}

+ {% endif %} + + + + {# Bridgy syndication content - controls what gets posted to social networks #} + {# Uses description/summary if available, otherwise first 280 chars of content #} + {% set bridgySummary = description or summary or (content | ogDescription(280)) %} + {% if bridgySummary %} + + {% endif %} + +
+ {{ content | safe }} +
+ + {# Rich reply context with h-cite microformat #} + {% include "components/reply-context.njk" %} + + {# Syndication Footer - shows where this post was also published #} + {% if syndication %} + + {% endif %} + + + + {# Author h-card for IndieWeb authorship #} + + + {# JSON-LD Structured Data for SEO #} + {% set postImage = photo or image or (content | extractFirstImage) %} + {% set postDesc = description | default(content | ogDescription(160)) %} + +
+ +{# Webmentions display - likes, reposts, replies #} +{% include "components/webmentions.njk" %} diff --git a/about.njk b/about.njk new file mode 100644 index 0000000..b182335 --- /dev/null +++ b/about.njk @@ -0,0 +1,68 @@ +--- +layout: layouts/base.njk +title: About +permalink: /about/ +--- +
+
+ {{ site.author.name }} +
+

+ {{ site.author.name }} +

+ {% if site.author.title %} +

+ {{ site.author.title }} +

+ {% endif %} + {% if site.author.location %} +

+ {{ site.author.location }} +

+ {% endif %} + +
+
+ +
+

{{ site.author.bio }}

+ +

About This Site

+

+ This site is powered by Indiekit, an IndieWeb + server that supports Micropub, Webmentions, and other IndieWeb standards. It runs on + Cloudron for easy self-hosting. +

+ +

IndieWeb

+

+ I'm part of the IndieWeb movement - owning my content + and identity online. You can interact with my posts through Webmentions - reply, like, + or repost from your own website and it will show up here. +

+ + {% if site.social.length > 0 %} +

Connect

+

Find me on:

+ + {% endif %} + + {% if site.author.email %} +

+ Or send me an email at + {{ site.author.email }} +

+ {% endif %} +
+
diff --git a/articles.njk b/articles.njk new file mode 100644 index 0000000..a13cb40 --- /dev/null +++ b/articles.njk @@ -0,0 +1,92 @@ +--- +layout: layouts/base.njk +title: Articles +withSidebar: true +pagination: + data: collections.articles + size: 20 + alias: paginatedArticles +permalink: "articles/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}" +--- +
+

Articles

+

+ Long-form posts and essays. + ({{ collections.articles.length }} total) +

+ + {% if paginatedArticles.length > 0 %} +
    + {% for post in paginatedArticles %} +
  • +
    +

    + + {{ post.data.title or "Untitled" }} + +

    +
    + +

    + {{ post.templateContent | striptags | truncate(250) }} +

    + + Read more → + +
  • + {% endfor %} +
+ + {# Pagination controls #} + {% if pagination.pages.length > 1 %} + + {% endif %} + + {% else %} +

No articles yet.

+ {% endif %} +
diff --git a/blog.njk b/blog.njk new file mode 100644 index 0000000..0b8ca0b --- /dev/null +++ b/blog.njk @@ -0,0 +1,130 @@ +--- +layout: layouts/base.njk +title: Blog +withSidebar: true +pagination: + data: collections.posts + size: 20 + alias: paginatedPosts +permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}" +--- +
+

Blog

+

+ All posts including articles and notes. + ({{ collections.posts.length }} total) +

+ + {% if paginatedPosts.length > 0 %} +
    + {% for post in paginatedPosts %} +
  • + {# Article with title #} + {% if post.data.title %} +
    +

    + + {{ post.data.title }} + +

    + +
    +

    + {{ post.templateContent | striptags | truncate(250) }} +

    + + Read more → + + + {# Note without title #} + {% else %} +
    + + + + {% if post.data.category %} + + {% if post.data.category is string %} + {{ post.data.category }} + {% else %} + {% for cat in post.data.category %} + {{ cat }} + {% endfor %} + {% endif %} + + {% endif %} +
    +
    + {{ post.templateContent | safe }} +
    + + {% endif %} +
  • + {% endfor %} +
+ + {# Pagination controls #} + {% if pagination.pages.length > 1 %} + + {% endif %} + + {% else %} +

No posts yet. Create your first post using a Micropub client!

+

Some popular Micropub clients:

+ + {% endif %} +
diff --git a/bookmarks.njk b/bookmarks.njk new file mode 100644 index 0000000..070500d --- /dev/null +++ b/bookmarks.njk @@ -0,0 +1,29 @@ +--- +layout: layouts/base.njk +title: Bookmarks +permalink: /bookmarks/ +--- +

Bookmarks

+ +{% if collections.bookmarks.length > 0 %} + +{% else %} +

No bookmarks yet.

+{% endif %} diff --git a/categories-index.njk b/categories-index.njk new file mode 100644 index 0000000..1875dbd --- /dev/null +++ b/categories-index.njk @@ -0,0 +1,27 @@ +--- +layout: layouts/base.njk +title: Categories +withSidebar: true +permalink: categories/ +--- +
+

Categories

+

+ Browse posts by category. + ({{ collections.categories.length }} categories) +

+ + {% if collections.categories.length > 0 %} +
    + {% for cat in collections.categories %} +
  • + + {{ cat }} + +
  • + {% endfor %} +
+ {% else %} +

No categories yet.

+ {% endif %} +
diff --git a/categories.njk b/categories.njk new file mode 100644 index 0000000..da037ad --- /dev/null +++ b/categories.njk @@ -0,0 +1,69 @@ +--- +layout: layouts/base.njk +withSidebar: true +pagination: + data: collections.categories + size: 1 + alias: category +permalink: "categories/{{ category | slugify }}/" +eleventyComputed: + title: "{{ category }}" +--- +
+

{{ category }}

+

+ Posts tagged with "{{ category }}". +

+ + {% set categoryPosts = [] %} + {% for post in collections.posts %} + {% if post.data.category %} + {% if post.data.category is string %} + {% if post.data.category == category %} + {% set categoryPosts = (categoryPosts.push(post), categoryPosts) %} + {% endif %} + {% else %} + {% if category in post.data.category %} + {% set categoryPosts = (categoryPosts.push(post), categoryPosts) %} + {% endif %} + {% endif %} + {% endif %} + {% endfor %} + + {% if categoryPosts.length > 0 %} +

{{ categoryPosts.length }} post{% if categoryPosts.length != 1 %}s{% endif %}

+ + {% else %} +

No posts found with this category.

+ {% endif %} + + +
diff --git a/css/tailwind.css b/css/tailwind.css new file mode 100644 index 0000000..8c9b8e6 --- /dev/null +++ b/css/tailwind.css @@ -0,0 +1,317 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* Accessibility utilities */ +@layer utilities { + .visually-hidden { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; + } + + .skip-link { + @apply absolute -top-full left-0 z-50 bg-primary-600 text-white px-4 py-2; + } + + .skip-link:focus { + @apply top-0; + } +} + +/* Reduce motion for accessibility */ +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} + +/* Dark mode body background */ +@layer base { + body { + @apply bg-white dark:bg-surface-950 text-surface-900 dark:text-surface-100; + } +} + +/* Layout styles */ +@layer components { + /* Site header */ + .site-header { + @apply bg-white dark:bg-surface-900 border-b border-surface-200 dark:border-surface-700 py-4 sticky top-0 z-50; + } + + .header-container { + @apply flex items-center justify-between; + } + + .site-title { + @apply text-xl font-bold text-surface-900 dark:text-white no-underline hover:text-primary-600 dark:hover:text-primary-400 transition-colors; + } + + /* Header actions (nav + theme toggle) */ + .header-actions { + @apply hidden md:flex items-center gap-4; + } + + .site-nav { + @apply flex items-center gap-4; + } + + .site-nav a { + @apply text-surface-600 dark:text-surface-400 hover:text-primary-600 dark:hover:text-primary-400 no-underline transition-colors py-2; + } + + /* Mobile menu toggle button */ + .menu-toggle { + @apply md:hidden p-2 rounded-lg text-surface-600 dark:text-surface-400 hover:bg-surface-100 dark:hover:bg-surface-800 transition-colors; + } + + /* Mobile navigation dropdown */ + .mobile-nav { + @apply md:hidden border-t border-surface-200 dark:border-surface-700 bg-white dark:bg-surface-900; + } + + .mobile-nav a { + @apply block px-4 py-3 text-surface-600 dark:text-surface-400 hover:bg-surface-100 dark:hover:bg-surface-800 hover:text-primary-600 dark:hover:text-primary-400 no-underline transition-colors border-b border-surface-100 dark:border-surface-800 last:border-b-0; + } + + /* Theme toggle button */ + .theme-toggle { + @apply p-2 rounded-lg text-surface-600 dark:text-surface-400 hover:bg-surface-100 dark:hover:bg-surface-800 transition-colors; + } + + .theme-toggle .sun-icon { + @apply hidden; + } + + .theme-toggle .moon-icon { + @apply block; + } + + .dark .theme-toggle .sun-icon { + @apply block; + } + + .dark .theme-toggle .moon-icon { + @apply hidden; + } + + /* Container */ + .container { + @apply max-w-5xl mx-auto px-4; + } + + /* Site footer */ + .site-footer { + @apply mt-12 py-8 border-t border-surface-200 dark:border-surface-700 text-center text-sm text-surface-500; + } + + .site-footer a { + @apply text-primary-600 dark:text-primary-400 hover:underline; + } + + /* Layout with sidebar - mobile-first with responsive grid */ + .layout-with-sidebar { + @apply grid gap-6 md:gap-8 lg:grid-cols-3; + } + + .main-content { + @apply lg:col-span-2 min-w-0; /* min-w-0 prevents flex/grid overflow */ + } + + .sidebar { + @apply space-y-6 lg:sticky lg:top-24 lg:self-start; + } + + /* Main content area - adjust padding for mobile */ + main.container { + @apply py-6 md:py-8; + } +} + +/* Custom component styles */ +@layer components { + /* Post list */ + .post-list { + @apply list-none p-0 m-0 space-y-6; + } + + .post-list li { + @apply pb-6 border-b border-surface-200 dark:border-surface-700 last:border-0; + } + + /* Post meta */ + .post-meta { + @apply text-sm text-surface-600 dark:text-surface-400 flex flex-wrap gap-2 items-center; + } + + /* Category tags */ + .p-category { + @apply inline-block px-2 py-0.5 text-xs bg-primary-100 dark:bg-primary-900 text-primary-800 dark:text-primary-200 rounded; + } + + /* Webmention styles */ + .webmention-likes .avatar-row { + @apply flex flex-wrap gap-1; + } + + .webmention-likes img { + @apply w-8 h-8 rounded-full; + } + + /* GitHub components */ + .repo-card { + @apply p-4 border border-surface-200 dark:border-surface-700 rounded-lg; + } + + .repo-meta { + @apply flex gap-4 text-sm text-surface-600 dark:text-surface-400 mt-2; + } + + /* Timeline for CV */ + .timeline { + @apply relative pl-6 border-l-2 border-primary-500; + } + + .timeline-item { + @apply relative pb-6 last:pb-0; + } + + .timeline-item::before { + content: ''; + @apply absolute -left-[calc(1.5rem+5px)] top-1.5 w-3 h-3 bg-primary-500 rounded-full; + } + + /* Skills badges */ + .skill-badge { + @apply inline-block px-3 py-1 text-sm bg-surface-100 dark:bg-surface-800 rounded-full; + } + + /* Widget cards */ + .widget { + @apply p-4 bg-surface-100 dark:bg-surface-800 rounded-lg; + } + + .widget-title { + @apply font-bold text-lg mb-4; + } + + /* Post cards */ + .post-card { + @apply p-5 bg-white dark:bg-surface-800 rounded-lg border border-surface-200 dark:border-surface-700 shadow-sm; + } + + .post-header { + @apply flex flex-wrap items-center gap-2; + } + + .post-footer { + @apply pt-3 border-t border-surface-100 dark:border-surface-700; + } + + /* Pagination */ + .pagination { + @apply mt-12 pt-8 border-t border-surface-200 dark:border-surface-700 flex flex-col sm:flex-row items-center justify-between gap-4; + } + + .pagination-info { + @apply text-sm text-surface-600 dark:text-surface-400; + } + + .pagination-links { + @apply flex items-center gap-2; + } + + .pagination-link { + @apply inline-flex items-center gap-1 px-4 py-2 text-sm font-medium bg-surface-100 dark:bg-surface-800 rounded-lg hover:bg-surface-200 dark:hover:bg-surface-700 transition-colors; + } + + .pagination-link.disabled { + @apply opacity-50 cursor-not-allowed hover:bg-surface-100 dark:hover:bg-surface-800; + } +} + +/* Focus states */ +@layer base { + a:focus-visible, + button:focus-visible, + input:focus-visible, + textarea:focus-visible, + select:focus-visible { + @apply outline-2 outline-offset-2 outline-primary-500; + } +} + +/* Video embeds */ +@layer components { + .video-embed { + @apply relative w-full aspect-video my-4; + } + + .video-embed iframe { + @apply absolute inset-0 w-full h-full rounded-lg; + } +} + +/* Performance: content-visibility for off-screen rendering optimization */ +@layer utilities { + .content-auto { + content-visibility: auto; + contain-intrinsic-size: auto 500px; + } +} + +/* Apply content-visibility to images and post items for performance */ +@layer base { + /* Responsive typography */ + html { + @apply text-base md:text-lg; + } + + /* Prevent horizontal overflow */ + body { + @apply overflow-x-hidden; + } + + /* Images - prevent overflow and add content-visibility */ + img { + @apply max-w-full h-auto; + content-visibility: auto; + } + + /* Pre/code blocks - prevent overflow on mobile */ + pre { + @apply overflow-x-auto max-w-full; + } + + code { + @apply break-words; + } + + /* Links in content - break long URLs */ + .e-content a, + .prose a { + @apply break-words; + word-break: break-word; + } + + article { + scroll-margin-top: 80px; /* Prevent header overlap when scrolling to anchors */ + } + + .post-list li { + content-visibility: auto; + contain-intrinsic-size: auto 200px; + } +} diff --git a/eleventy.config.js b/eleventy.config.js new file mode 100644 index 0000000..1049ea1 --- /dev/null +++ b/eleventy.config.js @@ -0,0 +1,360 @@ +import pluginWebmentions from "@chrisburnell/eleventy-cache-webmentions"; +import pluginRss from "@11ty/eleventy-plugin-rss"; +import embedEverything from "eleventy-plugin-embed-everything"; +import { eleventyImageTransformPlugin } from "@11ty/eleventy-img"; +import sitemap from "@quasibit/eleventy-plugin-sitemap"; +import markdownIt from "markdown-it"; +import { minify } from "html-minifier-terser"; +import { createHash } from "crypto"; +import { readFileSync } from "fs"; +import { resolve, dirname } from "path"; +import { fileURLToPath } from "url"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const siteUrl = process.env.SITE_URL || "https://example.com"; + +export default function (eleventyConfig) { + // Ignore output directory (prevents re-processing generated files via symlink) + eleventyConfig.ignores.add("_site"); + eleventyConfig.ignores.add("_site/**"); + + // Configure markdown-it with linkify enabled (auto-convert URLs to links) + const md = markdownIt({ + html: true, + linkify: true, // Auto-convert URLs to clickable links + typographer: true, + }); + eleventyConfig.setLibrary("md", md); + + // RSS plugin for feed filters (dateToRfc822, absoluteUrl, etc.) + // Custom feed templates in feed.njk and feed-json.njk use these filters + eleventyConfig.addPlugin(pluginRss); + + // JSON encode filter for JSON feed + eleventyConfig.addFilter("jsonEncode", (value) => { + return JSON.stringify(value); + }); + + // Alias dateToRfc822 (plugin provides dateToRfc2822) + eleventyConfig.addFilter("dateToRfc822", (date) => { + return pluginRss.dateToRfc2822(date); + }); + + // Embed Everything - auto-embed YouTube, Vimeo, Bluesky, Mastodon, etc. + eleventyConfig.addPlugin(embedEverything, { + use: ["youtube", "vimeo", "twitter", "mastodon", "bluesky", "spotify", "soundcloud"], + youtube: { + options: { + lite: false, + recommendSelfOnly: true, + }, + }, + mastodon: { + options: { + server: "mstdn.social", + }, + }, + }); + + // Custom transform to convert YouTube links to embeds + eleventyConfig.addTransform("youtube-link-to-embed", function (content, outputPath) { + if (!outputPath || !outputPath.endsWith(".html")) { + return content; + } + // Match tags where href contains youtube.com/watch or youtu.be + // Link text can be: URL, www.youtube..., youtube..., or youtube-related text + const youtubePattern = /]+href="https?:\/\/(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]+)[^"]*"[^>]*>(?:https?:\/\/)?(?:www\.)?[^<]*(?:youtube|youtu\.be)[^<]*<\/a>/gi; + + content = content.replace(youtubePattern, (match, videoId) => { + // Use standard YouTube iframe with exact oEmbed parameters + return `

`; + }); + + // Clean up empty

tags created by the replacement + content = content.replace(/

\s*<\/p>/g, ''); + + return content; + }); + + // Image optimization - transforms tags automatically + eleventyConfig.addPlugin(eleventyImageTransformPlugin, { + extensions: "html", + formats: ["webp", "jpeg"], + widths: ["auto"], + failOnError: false, + defaultAttributes: { + loading: "lazy", + decoding: "async", + sizes: "auto", + alt: "", + }, + }); + + // Sitemap generation + eleventyConfig.addPlugin(sitemap, { + sitemap: { + hostname: siteUrl, + }, + }); + + // HTML minification for production builds + eleventyConfig.addTransform("htmlmin", async function (content, outputPath) { + if (outputPath && outputPath.endsWith(".html")) { + return await minify(content, { + collapseWhitespace: true, + removeComments: true, + html5: true, + decodeEntities: true, + minifyCSS: true, + minifyJS: true, + }); + } + return content; + }); + + // Copy static assets to output + eleventyConfig.addPassthroughCopy("css"); + eleventyConfig.addPassthroughCopy("images"); + + // Watch for content changes + eleventyConfig.addWatchTarget("./content/"); + eleventyConfig.addWatchTarget("./css/"); + + // Webmentions plugin configuration + const wmDomain = siteUrl.replace("https://", "").replace("http://", ""); + eleventyConfig.addPlugin(pluginWebmentions, { + domain: siteUrl, + feed: `https://webmention.io/api/mentions.jf2?domain=${wmDomain}&token=${process.env.WEBMENTION_IO_TOKEN}`, + key: "children", + }); + + // Date formatting filter + eleventyConfig.addFilter("dateDisplay", (dateObj) => { + if (!dateObj) return ""; + const date = new Date(dateObj); + return date.toLocaleDateString("en-GB", { + year: "numeric", + month: "long", + day: "numeric", + }); + }); + + // ISO date filter + eleventyConfig.addFilter("isoDate", (dateObj) => { + if (!dateObj) return ""; + return new Date(dateObj).toISOString(); + }); + + // Truncate filter + eleventyConfig.addFilter("truncate", (str, len = 200) => { + if (!str) return ""; + if (str.length <= len) return str; + return str.slice(0, len).trim() + "..."; + }); + + // Clean excerpt for OpenGraph - strips HTML, decodes entities, removes extra whitespace + eleventyConfig.addFilter("ogDescription", (content, len = 200) => { + if (!content) return ""; + // Strip HTML tags + let text = content.replace(/<[^>]+>/g, ' '); + // Decode common HTML entities + text = text.replace(/&/g, '&') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/"/g, '"') + .replace(/'/g, "'") + .replace(/ /g, ' '); + // Remove extra whitespace + text = text.replace(/\s+/g, ' ').trim(); + // Truncate + if (text.length > len) { + text = text.slice(0, len).trim() + "..."; + } + return text; + }); + + // Extract first image from content for OpenGraph fallback + eleventyConfig.addFilter("extractFirstImage", (content) => { + if (!content) return null; + // Match tags and extract src attribute + const imgMatch = content.match(/]+src=["']([^"']+)["']/i); + if (imgMatch && imgMatch[1]) { + let src = imgMatch[1]; + // Skip data URIs and external placeholder images + if (src.startsWith('data:')) return null; + // Return the src (will be made absolute in template) + return src; + } + return null; + }); + + // Head filter for arrays + eleventyConfig.addFilter("head", (array, n) => { + if (!Array.isArray(array) || n < 1) return array; + return array.slice(0, n); + }); + + // Slugify filter + eleventyConfig.addFilter("slugify", (str) => { + if (!str) return ""; + return str + .toLowerCase() + .replace(/[^\w\s-]/g, "") + .replace(/[\s_-]+/g, "-") + .replace(/^-+|-+$/g, ""); + }); + + // Hash filter for cache busting - generates MD5 hash of file content + eleventyConfig.addFilter("hash", (filePath) => { + try { + const fullPath = resolve(__dirname, filePath.startsWith("/") ? `.${filePath}` : filePath); + const content = readFileSync(fullPath); + return createHash("md5").update(content).digest("hex").slice(0, 8); + } catch { + // Return timestamp as fallback if file not found + return Date.now().toString(36); + } + }); + + // Date filter (for sidebar dates) + eleventyConfig.addFilter("date", (dateObj, format) => { + if (!dateObj) return ""; + const date = new Date(dateObj); + const options = {}; + + if (format.includes("MMM")) options.month = "short"; + if (format.includes("d")) options.day = "numeric"; + if (format.includes("yyyy")) options.year = "numeric"; + + return date.toLocaleDateString("en-US", options); + }); + + // Webmention filters + eleventyConfig.addFilter("webmentionsForUrl", function (webmentions, url) { + if (!webmentions || !url) return []; + const absoluteUrl = url.startsWith("http") + ? url + : `${siteUrl}${url}`; + return webmentions.filter( + (wm) => + wm["wm-target"] === absoluteUrl || + wm["wm-target"] === absoluteUrl.replace(/\/$/, "") + ); + }); + + eleventyConfig.addFilter("webmentionsByType", function (mentions, type) { + if (!mentions) return []; + const typeMap = { + likes: "like-of", + reposts: "repost-of", + bookmarks: "bookmark-of", + replies: "in-reply-to", + mentions: "mention-of", + }; + const wmProperty = typeMap[type] || type; + return mentions.filter((m) => m["wm-property"] === wmProperty); + }); + + // Collections for different post types + // Note: content path is content/ due to symlink structure + // "posts" shows ALL content types combined + eleventyConfig.addCollection("posts", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/**/*.md") + .sort((a, b) => b.date - a.date); + }); + + eleventyConfig.addCollection("notes", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/notes/**/*.md") + .sort((a, b) => b.date - a.date); + }); + + eleventyConfig.addCollection("articles", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/articles/**/*.md") + .sort((a, b) => b.date - a.date); + }); + + eleventyConfig.addCollection("bookmarks", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/bookmarks/**/*.md") + .sort((a, b) => b.date - a.date); + }); + + eleventyConfig.addCollection("photos", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/photos/**/*.md") + .sort((a, b) => b.date - a.date); + }); + + eleventyConfig.addCollection("likes", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/likes/**/*.md") + .sort((a, b) => b.date - a.date); + }); + + // Replies collection - posts with in_reply_to property + eleventyConfig.addCollection("replies", function (collectionApi) { + return collectionApi + .getAll() + .filter((item) => item.data.in_reply_to) + .sort((a, b) => b.date - a.date); + }); + + // Reposts collection - posts with repost_of property + eleventyConfig.addCollection("reposts", function (collectionApi) { + return collectionApi + .getAll() + .filter((item) => item.data.repost_of) + .sort((a, b) => b.date - a.date); + }); + + // All content combined for homepage feed + eleventyConfig.addCollection("feed", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/**/*.md") + .sort((a, b) => b.date - a.date) + .slice(0, 20); + }); + + // Categories collection - deduplicated by slug to avoid duplicate permalinks + eleventyConfig.addCollection("categories", function (collectionApi) { + const categoryMap = new Map(); // slug -> original name (first seen) + const slugify = (str) => str.toLowerCase().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); + + collectionApi.getAll().forEach((item) => { + if (item.data.category) { + const cats = Array.isArray(item.data.category) ? item.data.category : [item.data.category]; + cats.forEach((cat) => { + if (cat && typeof cat === 'string' && cat.trim()) { + const slug = slugify(cat.trim()); + if (slug && !categoryMap.has(slug)) { + categoryMap.set(slug, cat.trim()); + } + } + }); + } + }); + return [...categoryMap.values()].sort(); + }); + + // Recent posts for sidebar + eleventyConfig.addCollection("recentPosts", function (collectionApi) { + return collectionApi + .getFilteredByGlob("content/posts/**/*.md") + .sort((a, b) => b.date - a.date) + .slice(0, 5); + }); + + return { + dir: { + input: ".", + output: "_site", + includes: "_includes", + data: "_data", + }, + markdownTemplateEngine: false, // Disable to avoid Nunjucks interpreting {{ in content + htmlTemplateEngine: "njk", + }; +} diff --git a/feed-json.njk b/feed-json.njk new file mode 100644 index 0000000..c84e79c --- /dev/null +++ b/feed-json.njk @@ -0,0 +1,34 @@ +--- +permalink: /feed.json +eleventyExcludeFromCollections: true +--- +{ + "version": "https://jsonfeed.org/version/1.1", + "title": "{{ site.name }}", + "home_page_url": "{{ site.url }}/", + "feed_url": "{{ site.url }}/feed.json", + "description": "{{ site.description }}", + "language": "{{ site.locale | default('en') }}", + "authors": [ + { + "name": "{{ site.author | default('Ricardo Mendes') }}", + "url": "{{ site.url }}/" + } + ], + "items": [ + {%- for post in collections.feed %} + {%- set absolutePostUrl = site.url + post.url %} + {%- set postImage = post.data.photo or post.data.image or (post.content | extractFirstImage) %} + { + "id": "{{ absolutePostUrl }}", + "url": "{{ absolutePostUrl }}", + "title": {{ post.data.title | default(post.content | striptags | truncate(80)) | jsonEncode | safe }}, + "content_html": {{ post.content | htmlToAbsoluteUrls(absolutePostUrl) | jsonEncode | safe }}, + "date_published": "{{ post.date | dateToRfc3339 }}" + {%- if postImage %}, + "image": "{{ postImage | url | absoluteUrl(site.url) }}" + {%- endif %} + }{% if not loop.last %},{% endif %} + {%- endfor %} + ] +} diff --git a/feed.njk b/feed.njk new file mode 100644 index 0000000..7582d2a --- /dev/null +++ b/feed.njk @@ -0,0 +1,31 @@ +--- +permalink: /feed.xml +eleventyExcludeFromCollections: true +--- + + + + {{ site.name }} + {{ site.url }}/ + {{ site.description }} + {{ site.locale | default('en') }} + + {{ collections.feed | getNewestCollectionItemDate | dateToRfc822 }} + {%- for post in collections.feed %} + {%- set absolutePostUrl = site.url + post.url %} + {%- set postImage = post.data.photo or post.data.image or (post.content | extractFirstImage) %} + + {{ post.data.title | default(post.content | striptags | truncate(80)) | escape }} + {{ absolutePostUrl }} + {{ absolutePostUrl }} + {{ post.date | dateToRfc822 }} + {{ post.content | htmlToAbsoluteUrls(absolutePostUrl) | escape }} + {%- if postImage %} + {%- set imageUrl = postImage | url | absoluteUrl(site.url) %} + + + {%- endif %} + + {%- endfor %} + + diff --git a/funkwhale.njk b/funkwhale.njk new file mode 100644 index 0000000..2a121b4 --- /dev/null +++ b/funkwhale.njk @@ -0,0 +1,268 @@ +--- +layout: layouts/base.njk +title: Funkwhale Listening Activity +permalink: /funkwhale/ +withSidebar: true +--- +

+
+

Listening Activity

+

+ What I've been listening to on + + Funkwhale + +

+
+ + {# Now Playing / Recently Played Hero #} + {% if funkwhaleActivity.nowPlaying and funkwhaleActivity.nowPlaying.status %} +
+
+
+ {% if funkwhaleActivity.nowPlaying.coverUrl %} + + {% else %} +
+ + + +
+ {% endif %} + +
+
+ {% if funkwhaleActivity.nowPlaying.status == 'now-playing' %} + + + + + + + Now Playing + + {% else %} + + + Recently Played + + {% endif %} +
+ +

+ {% if funkwhaleActivity.nowPlaying.trackUrl %} + + {{ funkwhaleActivity.nowPlaying.track }} + + {% else %} + {{ funkwhaleActivity.nowPlaying.track }} + {% endif %} +

+

{{ funkwhaleActivity.nowPlaying.artist }}

+ {% if funkwhaleActivity.nowPlaying.album %} +

{{ funkwhaleActivity.nowPlaying.album }}

+ {% endif %} +

{{ funkwhaleActivity.nowPlaying.relativeTime }}

+
+
+
+
+ {% endif %} + + {# Stats Section with Tabs #} + {% if funkwhaleActivity.stats %} +
+

+ + + + Listening Statistics +

+ + {# Tab buttons #} +
+ + + + +
+ + {# All Time Tab #} +
+ {% set summary = funkwhaleActivity.stats.summary.all %} + {% set topArtists = funkwhaleActivity.stats.topArtists.all %} + {% set topAlbums = funkwhaleActivity.stats.topAlbums.all %} + {% include "components/funkwhale-stats-content.njk" %} +
+ + {# This Month Tab #} +
+ {% set summary = funkwhaleActivity.stats.summary.month %} + {% set topArtists = funkwhaleActivity.stats.topArtists.month %} + {% set topAlbums = funkwhaleActivity.stats.topAlbums.month %} + {% include "components/funkwhale-stats-content.njk" %} +
+ + {# This Week Tab #} +
+ {% set summary = funkwhaleActivity.stats.summary.week %} + {% set topArtists = funkwhaleActivity.stats.topArtists.week %} + {% set topAlbums = funkwhaleActivity.stats.topAlbums.week %} + {% include "components/funkwhale-stats-content.njk" %} +
+ + {# Trends Tab #} +
+ {% if funkwhaleActivity.stats.trends and funkwhaleActivity.stats.trends.length %} +
+

Daily Listening (Last 30 Days)

+
+ {% set maxCount = 1 %} + {% for day in funkwhaleActivity.stats.trends %} + {% if day.count > maxCount %} + {% set maxCount = day.count %} + {% endif %} + {% endfor %} + {% for day in funkwhaleActivity.stats.trends %} +
+ {% endfor %} +
+
+ {{ funkwhaleActivity.stats.trends[0].date }} + {{ funkwhaleActivity.stats.trends[funkwhaleActivity.stats.trends.length - 1].date }} +
+
+ {% else %} +

No trend data available yet.

+ {% endif %} +
+
+ {% endif %} + + {# Recent Listenings #} +
+

+ + + + Recent Listens +

+ + {% if funkwhaleActivity.listenings.length %} +
+ {% for listening in funkwhaleActivity.listenings | head(15) %} +
+ {% if listening.coverUrl %} + + {% else %} +
+ + + +
+ {% endif %} + +
+

+ {% if listening.trackUrl %} + + {{ listening.track }} + + {% else %} + {{ listening.track }} + {% endif %} +

+

{{ listening.artist }}

+
+ +
+ {{ listening.relativeTime }} + {% if listening.duration %} + {{ listening.duration }} + {% endif %} +
+
+ {% endfor %} +
+ {% else %} +

No recent listening history available.

+ {% endif %} +
+ + {# Favorites #} + {% if funkwhaleActivity.favorites.length %} +
+

+ + + + Favorite Tracks +

+ +
+ {% for favorite in funkwhaleActivity.favorites | head(10) %} +
+ {% if favorite.coverUrl %} + + {% else %} +
+ + + +
+ {% endif %} + +
+

+ {% if favorite.trackUrl %} + + {{ favorite.track }} + + {% else %} + {{ favorite.track }} + {% endif %} +

+

{{ favorite.artist }}

+ {% if favorite.album %} +

{{ favorite.album }}

+ {% endif %} +
+
+ {% endfor %} +
+
+ {% endif %} +
diff --git a/github.njk b/github.njk new file mode 100644 index 0000000..5d68cca --- /dev/null +++ b/github.njk @@ -0,0 +1,266 @@ +--- +layout: layouts/base.njk +title: GitHub Activity +permalink: /github/ +withSidebar: true +--- +
+
+

GitHub Activity

+

+ My open source contributions and starred repositories. + + Follow me on GitHub + +

+
+ + {# Featured Projects Section #} + {% if githubActivity.featured.length %} +
+

+ + + + Featured Projects +

+ +
+ {% for repo in githubActivity.featured %} +
+
+

+ + {{ repo.fullName }} + +

+ {% if repo.isPrivate %} + Private + {% endif %} +
+ + {% if repo.description %} +

{{ repo.description }}

+ {% endif %} + +
+ {% if repo.language %} + + + {{ repo.language }} + + {% endif %} + + + + + {{ repo.stars }} + + {% if repo.forks > 0 %} + + + + + {{ repo.forks }} + + {% endif %} +
+ + {% if repo.commits and repo.commits.length %} +
+ + Recent commits ({{ repo.commits.length }}) + +
    + {% for commit in repo.commits %} +
  • + + {{ commit.sha }} + + {{ commit.message }} +
  • + {% endfor %} +
+
+ {% endif %} +
+ {% endfor %} +
+
+ {% endif %} + + {# Starred Repos Section #} +
+

+ + + + Starred Repositories +

+ + {% if githubActivity.stars.length %} +
+ {% for repo in githubActivity.stars | head(10) %} +
+

+ + {{ repo.name }} + +

+ + {% if repo.description %} +

{{ repo.description }}

+ {% endif %} + +
+ {% for topic in repo.topics %} + + {{ topic }} + + {% endfor %} +
+ +
+ {% if repo.language %} + + + {{ repo.language }} + + {% endif %} + + + + + {{ repo.stars }} + +
+
+ {% endfor %} +
+ {% else %} +

No starred repositories found.

+ {% endif %} +
+ + {# Recent Commits Section #} +
+

+ + + + Recent Commits +

+ + {% if githubActivity.commits.length %} +
+ {% for commit in githubActivity.commits %} +
+ + {{ commit.sha }} + +
+ + {{ commit.message }} + +

+ {{ commit.repo }} + · {{ commit.date | date("MMM d, yyyy") }} +

+
+
+ {% endfor %} +
+ {% else %} +

No recent commits found.

+ {% endif %} +
+ + {# Contributions Section #} + {% if githubActivity.contributions.length %} +
+

+ + + + Pull Requests & Issues +

+ +
+ {% for item in githubActivity.contributions %} +
+ {% if item.type == "pr" %} + PR + {% else %} + Issue + {% endif %} +
+ + {{ item.title }} + +

+ {{ item.repo }} + #{{ item.number }} + · {{ item.date | date("MMM d, yyyy") }} +

+
+
+ {% endfor %} +
+
+ {% endif %} + + {# My Repositories Section #} +
+

+ + + + My Repositories +

+ + {% if githubRepos.length %} +
+ {% for repo in githubRepos | head(6) %} +
+

+ + {{ repo.name }} + +

+ + {% if repo.description %} +

{{ repo.description | truncate(100) }}

+ {% endif %} + +
+ {% if repo.language %} + + + {{ repo.language }} + + {% endif %} + + + + + {{ repo.stargazers_count }} + + + + + + {{ repo.forks_count }} + +
+
+ {% endfor %} +
+ + + View all repositories → + + {% else %} +

No repositories found.

+ {% endif %} +
+
diff --git a/images/default-avatar.svg b/images/default-avatar.svg new file mode 100644 index 0000000..3b15f50 --- /dev/null +++ b/images/default-avatar.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/images/og-default.png b/images/og-default.png new file mode 100644 index 0000000000000000000000000000000000000000..bfaee94a7da84174fe53902a1912582cfe5f531e GIT binary patch literal 39412 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�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 literal 0 HcmV?d00001 diff --git a/images/rick.jpg b/images/rick.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f976d6d16964900a192ce37d14e2148b3de14ee6 GIT binary patch literal 152493 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%0D#EEbHL6C0=q=;U^76Wav zPRBG}>?U0U00%=r)C<3MxdeQA5cm4{h0Txn0DoFA)XcuN>+@0{v%i4p1ABxoKlKl7(Vwh2YlANs>N3f#zo|G<39MR(_vv_pBkJ^9{%Cn}MQ=Ke#*wadZ%F5ERqZ|%Y3x{8Eu&nMVg~G7t zaA=Qkmty^-|`j?XoA0b@Tgqlv{BRIuwMJOOJ2Pd6dK$(3;TBbCV-#{-ei?EHllej)aa;L_uG6EaVH6?O#HUpO1Qz?8Lg;9;MN`^&3 zf;Aku^Q7JuIZ(<5*r^rLx<~}_88rd900ECmOhDZ0(ohcwI){;^;@J7~CWz-q*>X)p zuwcGIl?8%!T_CXA$Qla}0d7M*Y2*O-RgUyGbwC4nnCvOgfje!#BS0i;V5|<@jZN76 zry8geW9I{xP%7d?i429@jDIR=TTO-AZa;S4%Aw3`H}a`XAX_W8Y#c2C?N1bOQzKgs;6_I2Ean`i0+zt{$DUgCf1K#rT!tQZ?|tG(Btr|$Nm zg36u1^rjFeP%7Dr%8-hfSxxPbor3-pF=(AsAEjS0ovCPSdQb%wwNdv)IfM_oD&od- zOz~uIOhpEauHzLDtVZK%(C&uB@~IUV<+TV35!Nycg*o@xjkCfxybx*^v}I>_qK}z#~*xMz}<$`y})CR9wQpy z>txlR=Um!J%}j8Le0e!u-tb-{6n3|5BrKia3=|QkKhCu6(cyO&1!M~zr2~GIzuTY> z1u8~z<7(vMj^!ba;2~s?i1gQ?nr?e%FQa9OIOglIpC=2FQ2a{W#4^MQP(1x;_Lo*x z+&1rt@#3=Gjfuu^F}4M3L1M{b?Q*QEt9A6CTk!4|eSJKNbwcZgjkyEuUPo2rZG9PM zl_X>Ka?EkNC%xe}CM$NP$t;M)lpBZfY!_uotoN}r;<2ASagY5OxrpQAM81?k6`#U>0GB06>NW(hY zueAc&8%u5oZa91nCDZZ{a%+%#&LPKmg2gOOh7;jJ2sEcV%;x(U$!+DGTix5s#$w?1 z^98p9StF4?ResJJt|5Kh#G|>1uv^-L!}~O{G&d4AcX9^foprnp*?4u630M*dW@_oh zj~o7R?#|2+-NQ0_RWwnwcFd#09<0}z-(1NfIAB8OYV5eR^YKnQn;84lUk*;gYN5xi zjlHDHENQ8j5L9xmm^;dnCpJi_G=uQFdx$$f6BW;RGl9<)UJHr%T*0P^;0|@g{gB;-?HgO_!n%=NSeH{wcInh#{{Sar zlkKItE#nj;P?3oovAM5E`!v3l`y<^K&KZCe%Kf46#gC8P#S<{#=n@M*3%>`QYbW+-rQar0M<)9N<+*_=6OFBs!*e;lf(3Yh|`aH(z&5ANc( z49;<=^aiM2fo&x458~%m_;(U(I~LTyg&jHy^m0wS3Qx&8s639MXz@$CUI_#vT0G6o zb3%*a6g9>PhDFo|O5^XQwc``D$PTRw02`q-)bO4l^V>;o_$dnDA3dpQUi`~yFj)2^ z%eFQK;w8G70Km$v26Tq+hj9ybW(w#)U+)da<|`+I%fvXR5H`OM(AuCUDhEF*?R%Rs zVpU@Sv&6=oi07KyjXR5RsezHVIiRRjp6SN@0s7RZJ{|Wf z=UKj4_xPo{36!{*cYpxpRJVv4;hF|sHQp)H2yD3=$s-vx)p09~20@h`Rhe%CPLnz@ z4y0|4V?9lDVV2VkRz1qi-WH%DFa&OP^{$IqlGRiU4C5!SrDAXwGg>fZ1>$p(KkJoh z>(gk#@>rd*%B}sJ%d!a;K`W?g=A`nZ1AL}It2sIHp$S40tL~0NeA2cWkg)-r?s99I zXH*NQMmY=`m>(`Nf#=8y2zAC-f>-D&Ncmt@!5wqbpt5b^TnzK%Hl-FzxxobOmfQ+( z7={_~0tm;oGD?9}7_@81XK==Whz$(I0U?eE#Q?-(66J8Cbv0|ijzmSv<8pkxDh>hG zRFcR!A6k}DUYwh zB9P>iT#s{9B$FV4kUc7Zv>4@ajlQ*L6cFK84UNb3tk@2*q~mWhR`aD49U1iJiWwKl zdfa$HJ!sn0FyDHs9GFeHRArTPk_i=wZG~pi>~b+oWdsm8))n_0wXy`hH-l? zD;aAWg_BRryomZ$ZGFhzjoW!zCl0JZ9EdeJE;87C^S)|?Qh+hkbfnT}ext25z@^D> zUd(jk&z~#`uX`tY3z9>1-mA$W&e*E5zla`ZmI2zX*$p6bu~KkJ2Yt;@mR`B3+)79} zJ$hDrtar)SQxO^5u-w%nC{<(9rz7~VYb%Q1#bIdk&OlYV{I^vrWG*#DaLBKt8 zwrImhP*?-eLhn>#mnw0wK7DAhx{LtCXUnA{M9Z4Tgh&ByxI5I(%nI#}dETk4+MIyH zE9uUp0S~E_$R|HHDw-Hc2o2#Ohm|@UZh==Lefd;af#W#F^gNJ3&Kp*JF-nDG*tC<&@{brP-gJ;INO$L(GnQy+Z+1RTrYcLc!TCJ zxX1WS3txyF<8GC5*awl&?6NLDD%w1l%Y)5fCzn@j;Vq&Pd}wlMa~U-pV*IQ?Jhe#cYVYyAfLXUOnvGG@TkVw z^(XMHaNt>P`y4vWPeLiB$>Ld;8(c5cP~X1)0DixPeO-0go&?dq{{Ts{2M2KqkLg|) z+FK|sZ&Tx)5Cp-7)^%X46qb5j=dzaZ?3GDYA;nxXw z!mS?e2l2Beat|Z?>#E{igzUjgo)ZH90Kt*{Y9;AvGT7fGe67cNj|a>@6DTKip*Is~ z*r`BIrFyq(`z^sNdsV~it?a~bPE;@qa&mm@t^WYC9?Fs8v3#Dr>s8Cq=_cje&3fd2 zC(p~pHrg%fKN~4K#y*ww0sAZLtF{Hb!sp6kSohy%{hWeb5v|x@GySbf^nKh#l)Y{r zaXe&RF+0X-=byZb02MsU;hUWhOex2a`DrM;N zhjvo+yl?5ACk4R2E4Ir0}!-iUPR$YGk> zlkDe>CUe|mbnj{h?CXx>DzPx6vB8-OGw7`ba1XLN&f)p*8>L!3sIMcaTwHhoIc=tp`qyW zE_N_ltY4&O=p2cs2uSCeu(r2(@mSCQ03oH_Tz~ji81#((m6t+mx-?m%n?4OF$ z{!Z#YwOLUDd=0Tt&=W>awAPwoAmO(C;OYs@a0_XT)f69UpK&nztMn9mhRJ@Df%iwH z548DA(Od0SQWzc*R zMQ0;2aHa*h;!#4q`#`t5W;YxH?>FRYNbB-N+B1HUr*7!<82f)@ zh^TmV*-$V)e58sbA83|wu^+SU%Afqj$*()_2URrP@{Wh_tf#7ZKgl7lNWi-z&@TIB z!LLNCJ(mzwkxHEfKPtuS)$e7v7ZgkTc=*YYN$|)}gP&^VM9J&;Q}@U@kIJqZ*+M%a zl@;-LPP4R}L$bVn_Dh?S#vyjc_F+G*TI`=1?9XQ+mODq{a;%&F_BGi3D~eg7Clw(i zUU;n|>Nz5*3Hn|Zdd&T|?48ZGb9HHQ#ExY*smI&i0~Mrp*5-JkL4o_emE?y@a%D8* zAKk2Fsod?NU!`JyXQbWsm$SDrF*j4jNakWDtFIUA=!sMIjORJdVLz>T=>YjtXdXhe zde-67Yl2s#<6ms_`#v+-h~MsSh(@e=ohN$oP@r@bFaYQ& zgc5RDa zuqYb{Km*#7)U1z`FNK6&?aa80cOwN^%?kc)Aui|%H z76y*y?2(`_%8b>Z&Jl(Org>(pK$yHEPlTq}=|U)QK+jy~YN)$MoYgX@J_E>;zM)1@ zu$Yktd!PZ7NUV7%IHm$4Qpw&BRCL7v zGDdNzuqSYOdr^)Gj2tKN=ZOa zMgrpiosCkKLepnn2dKegOe`zNS%Z9tNx<8c2TGBU2;U^oiw^K*iO)QmIKd+T067AA z&<&Ooop*KQd}=GGmplhAjl-_Jw`tRLSiKptH=;>LA;muWU1bRBWZ4U zK6PH^MhZg%_)?*6IgT}H@iI2O&2zBZ+;F?d=d_TJL9rTgfg*o-3E(+#U~#@01AJIl>HAL-G-v z;PN$;lD-ECI^-)pc474CRp*mzDEul;;2H$ZrB0Futt5)FrPGjdGxR*FjF}+h)rsFH zf5xgz+imsqt4M~*cM|t`B;vg9w3k!y8}&ktAyeT~x7NFhrb(qJP83#c&74a5kwL8> z(q>csMm3d(a;d8st=n8CDwK#~V9GKD5-Cey4DVFklDIWR#@PB%qEbdq)k-BJNyyJU zRqqsIS0U$6YKxJOpbD^n6)YHU%Qa3ANzO2RcB>;G7S8nyu;M_ZhHd=l@yJOye3AbE zTrmC_GD$0*sTe9<}vnV)#(ty_ezE zBj=7FWIk?pZ_Jwc&#+ceT=tiT{A7t0v@!|gcjbjS$JF3g(a`pTgOmVqJ57iC(O#yS z6^{I#7pdj{0F^=ZMzg3W-qqlJqKCb*xo)w@Pv>6Q`*Vd9Y;h|?xBKP&Ysu%fS>wJ? z@iMzMoH*XSO(U(=c-i@qXb0Gp@rSi?Td~^a5JUg3FnZ0K~{#s2^}thEU|iK6knxa67Te`rS?yWmHzxc>nE0BZDk80}mK zZe#e4)9|;qK`2K;(k|gZJJ))wj=2tmf5a?90Ks(j65U+Fgm2=Ot-eXC*> z0g&okXU?0=r%DWpWPb?ccg} zD<07qFI`X#3o&B8V>P|nqVw?hrL_vODF-0=QmSI^TY^sU9HzuM4ewcXEVCSf zERIZ4GLlKEY}Z=y{2~H8wEe)DBRkbP??<6Ewc9Nl*fb2PU+JBi2M zxO^ik1|Wf)Y-v@Qt;{pdxC~^B06w&-yisqkEV5r`4VrA!Sy)sKq14ys2k2pgQZ2Or zG0ycYpHoNzY84+|wG5vsj;H7-7)@u9rqq6w58j`0)`BGSq#lb33yhARg)sp0P-+_LOCaS%j)y9}R-nPg%Ma#{n1kHVW4qJE*;yA>gN&c$>s5x`YUc-Ji;BS`J0|$ZIOkW5{{SRRmjU&D z{lVpv%CfkN2i2ZJweO?RcHk4wn5^rIHr~Tgk1~6Z6F$5feZ&qxp1Jd*RakjiR^vkmYhZ_ zW|JU-0j}QZ$9h);g~lqP_&ofoq*31(JClrNhz@XsleYM#B$gvd40raZWE>t!I*QI^ zz;I3oA1JBD+TDT5oKSKUfOF<*TEWgnRQXm$sJ5CsUEhh0*c^pUDcJ}NSUJxn*i~5A zs*@NP+aQ`M$c))$!u0@cOktssS(WtntTs6ylkZArbR@(XO6;kpAkcx0lSIg4EOsh! znvfw}tZd;rb=5!wEUv375Hbc;TWr;NQz9b76RSHB%cVieE?DO*cTE}Eg*ymNpvp!% z4pb5}-X;tg%Qqzl8&ydkLdX#!8bF;c}=Ne~$eDBNsL#2SmMCNc7#GrbT3Bn(Q7dgRcqR#^+QQHNz6 zcF(0s?mopEnAqxV@t$qV^WL(j41sd(;yk(4yPMJrptT&19uDdlHyLBlb2Uc(Lh-~>aI%wu0+Xdro422*{{W_s zaVn~q)!IfxT{+l+pA$AQgO9J3X|@SsY*lHc0303Y5=);F zoM)X?mg6UU144;?K&>u!HAd=kBWw{+o>trgR3>vSbr8KO)JSs%Br-_MNX9XmgUSMu zr#R<9mO#E0JC1dcdvhAbNs*V#W1U=KW>U(Ltt{$`-ZJYh&zMnip`^R?71EXE@$wkIoJX8p=ZKy zck&cL%z28Ei76my&d1KJDGCWEKDACmoDQO%IdHgae_BCh!0bF=?c``K!)<4CzSRQQ zUPA++rVa@iQarY##wi?bN}alMshsgx}Y9MJ~H52`6kqj%g zn8OlBomjR%zg%M;bx?A3BTxg8-!y1Q9o`0=@;xg^_ax7m}@){jGB-GG<(e7rXJ4^=nv?I*Mv^M)f?GZUQi=2M|#d5e5#ClM*`M*K&_&+C9KGM5K8ff^4 z+oy^kX*b$;Xpm*4v?@H}u22s#Po;XOKJ`n~GcW8*^z0v#sUKLBQvU$7 z&N^|Gv-a+f>s)g{ofI#%L%LwUI3BpF`7HkcqJB3Ae|xj7bAB>Ok(L|?StCx9fdvd@^+ z`qv1&@lz;z(_X2l{R#SJ56RsRw9D{8ZXafG>f8QwW&2dR7}vtBi0g?MSDvy1$ka3f zFjxae%IZHs@pwEPy7unXrZUOE^)cM&xnY{SAKEpBS3D9ygSMNj{{S&wb=?4bEmKIq z-!%SPQ~D?3wEqB;yO+0IC%t!W1$U{~u`74}RWaL+2`qR#BZ#N3#e@ATglNMI2Bfg4 z6m#gYm_6O-Ye+Q%5{h;tTZR1HeXAum%@gkhmF1u~nd#TKmSaFa@0O@r7YtH3_ z9BKUOEfE95jC$34&ZEgc5re_#N3`9IcJW$qz@&e?L;Y&)r)#?*Z4QXxpFoyN5Icnxb2r@E|`{1H4(-&1W(qLc{%0El^->z4~M{Z*iSle zs7NOmplaLFmUrb|G3*B@hmaJ-Ko7Pl4np8px%u=|IEebpo7) zJp}+u=}+EzQ9>k90p*<3S{T^!(rLAhw8gW?(*cdR<*}$6ZT6!F!5h-oy#QBhX9tx; zLnlF+wqMqtRRB{lOg`m5bs*fOT-8nv`_dUxyO4d_MI=9WdbQpUr8cphjQ~|K$iHx( zYK9zhMytX6KQYZrF~-DDBRCWMEm8-~NUPwUpi%@Kh#!R(1rWp9rV0DGtAruuqcsx@ zN8XxZD&&L8n^ju)agPbwp!ThdhNoaxWBJqrRGJBOV3APnr3a+|OIAfX%43lqo{|nI zdS&V<%1itirh<;AiK;hoaT@}XpkN0>{#vO(gBgm~M_ zHJN=0RtygLuE};%L5fNL02VxuMKqv*4Oil}QV9P5bPk+V%TQJ_#AMZxGP>zy+NQ?% zXEWLBa}OGcrA_)Aa<1CmrXMeb+sThgLo7upl@7dW zVS-OTr7~(n3Nl7{s|-+N00IVy8G$Do{xqY=8;JDho-hx$T3{KZm65UKzT}*FP$fCX zdcYifq~@5&(jn4>V_;7$ysERvNXLggNZ%CEEQHQMDXeF6=ZXZ5+6E-Td3w^zZ-ar4 zEM}|7Nbv5%9V&o>0`AOCG19DA#v3H4!Rlxc$DAo7XPs%o3WV#9i|0dh0nz{z6zF#x zsn2wSGC#|{%hI1#Q%D51H|d&U>cneh01TY+#Yb}c5DgBEL-%p97;Z;%`BZ0UW6X^q zA%>7a8bR|vtyh~>%CkVZjy4X3+yLwje-HZUT+a~g6kXeht^6^wvm>$JbIjuy_B}_H zTq5Mmr;$Y2yts~3BfgGl(~|}Od*`KccU)N{b8_n;iUQrj zSq+HMMv!`u>(6}ej)2o8`&wJF+{_%wBFd@=RV|IqapC|0pYyJ3iE#wFymf({ErI}$ zpAJtjzN4QysU^gW^Gx5of0t0)4DYb=u9b}Bb2>Y2B-30d7R=3p(V=3*Hb;nou&$0f zpppf7Ga(z~wk;&AGgaUhG1cm59}zhPopYnoP``oleJg z&cJ$qDzP2YNoS@RU05#ZokQ23DizF)-m#K1t8G}@Z!!2)OKC^N>jaWck^slCtyv z>vDCD^lAR^83**N(>$Hf4Kgw3lpQ?j?XD-(b0TfG%d-#0v7>#)%CK>(QjmO(MG5oC zM*Ql$EDLvq+bD@qxFP*uG8QlZ#Hn>kGQfZm^9PQ6bvRV5wUYu{1ljjfDW6M?3BG zrtmkP=Juc*ej@Pb5w|7+3_L+ zkfd%!9y|b}bBqI2l2 zBaT{yAQTWu%`;k&_o!`V*x9f>>4g?UfO2&GPAM~n$;kX_sIy=>lkY=oFi(hJ`_W-V ztw;xnf%?$oYhpZ1bLmYLiVlM`Q)q#DQ|=T5TtOM;edvpK3ENntEfYK9i|~n#LV%zT za)9_+pl-4-PvKU+6%_2arWT4$O#oH+$i~ek2dx=qg_CJ>Mi!Cda1YXvv_dif&$S`Z zR}h1pYxvWw(I^;@RiA~AstSp-i07piDiXSrkn2jD;1Pz@sn}7`>A7FN4NFzf^86{% z;zBZ16H*htcTr3Lw6`Gt0A?xGr*2>mYBZCAhf)w|UGT;Lpkn>$Cj<;su|M&qD!J5K z(A2=d&iSIiA@7GK6zcZ_Y>Hsubrm5XZL>vz5Yp#z0H*I{R@f;Xv_i-S%e^x^Yt1OI z0`txM3yN=yaB$HN!j16}Da$An#`4>2fkiO`7g^8l&%F_D0q2lti!4k5P%-I73j=IW zVt@iBQaRK2fbukM;s87=P?pt5@G%C80fTHh(-IqeP>gp8$OaVyEQ)++euA9fxjGBeJb7(0qK zg_aDt#xaUr_S^EH3{uDx_JxM;SFbvbv7UQSxteWNSNxX%sP0(>*Jc;hGN;x9_wV!;L~ig(E#{tK(pv zB`l?PCj)%fOdHumCI0{=l#(LQX&W3>PUNOZW179IPce$CBV~zi%B0wVDge%RI5_88 zvk;L z^pZ=2_o_3ifP98 zB>1<@5lBquB)6HNOD3fN43Ipjv)%$6jAzdVfreFo31Ss_k>^ql&PyVe^ynxG3NdVk z9Wr*Q_m6upIMLAl8upGUak=++Yb*A1#~8 zq6Q)wd?fF`@~ZbYh&9Hn6e5jo56kF1X>!MOgH0!SI>8$PdAk$xsQyIevu~~otnt|< zc2!fpkelu1N#(cWQiu#p(FXZKjqpzY0OwVB(>Q`jAn-g|K=EK>BRTv^cH_gb+UbJLB62bn#340_h56}$LbdzNvM zs;L^O(x4H{9%Sxz^v^2hV}YWuP{AXO1F9orobQ%6=6U;9OdzP_$vZTyt)Gawp7Et? zWpX1x+qnee*>R97BZ*nV#HYB?24RUZ2CNkv$=~Vkk?UH#G{|@=_pc;pyH!v!3D1Q{ z^u~W2)!}6Yt<}P+5fj6tj#)mYw7OdMt+hgc3YIbZDz81)_f-(WpFl26}iR3f30IW>2RZ0DfCg)!;g%7`#e*LP$5F}DcO?0m%5qd~ z2s<4j&I29u<;c|=_}5F9(#!?`1A5mn6$Gg#nflgs;!iA2(5PTWmq*SU*WR*>xiyq{ zIG!tQG%)KjFUz(#^PzTDv|fV?)W%uu%~g4LI>qmxDFqP z0E^*`a;0&CPn`-|Y3^;*W-_XVMJ@MzKDDpe&L1=u(zKyfi2+YNk3)*iQb`)d4#;2I z1&~G%X$Mg)u{-jrQC<8E!;c$4$4kb;C4Fn4bTdZrN)?@Q6cLg~y>mQ931GUzH;njK zJhQ*+Q5h%0E=jIYuWQ6%Skf^*rBkrwu{)2#wBwvdbKRMhk^WLgBkNpjy5J6%Dp=q# zBk=q)Q~2qk5ScW|6pR4J-P~{eDLhN)Ya{zR>q(MHN=f^v7t5%t7WXR_sN`d${H4WGXsIOAYh!FWwV}x&XDH#T<^%!>dJG; zUUdS@CklBs`SPno1%=M61pxVTt7za1>`p497Y;P0rRZ~3p;hES6{JaJ+dTvzxMoM$16L-dZGRMWV2WzSB=r>ok;qfDFZ@*% zfyv#!I^a4;c#qxBwJ=kjM0!-(*})_|N4tFBwmr=NEk0{QkZByv7(pQa0BQ%;k%nx1 z;EE^;x`^Znsb#k3nlZMM8(^A`b2^OZ$n-R*WC?68iMPy{C& zjXrjv_cHSX@~FtSAbhwK(h*~P^QjWR zGzhR9b*Iz^I;w6W=^UShH^s%)DGe|#YTseCK6V>bF?$L7t`D_K;vyp`v@rSz+!M=qptCZo4bRQRMuInto9D*^`9AORbShat5r zoM$xB3mu}2^8|ZS2$LHz9>${0o^>1wbQVqR(Z}}A4FRl)C^2+`qCzi zp}4Hpj-$Zm>qBvLn=aG&r$K0KXn7G# z3W|S$T zGG>P8nQUenT{hdujPl;L$0U~4OHS00xh!GS)fb3^wrfsk%uS4jkM6iR1bg+U9RO!E znxk~=%8moxWQ^9Vz!gGHFuMU&u4axkBvp~(wT1fW&1nM+%d;!Vp7Ak^FvfAxvu2lE ziZzxeI}yka{{T&BPJUCJutwFNBx&9T8nyHT%hsIx5fUYVLxu2-_v=WOkc3_Ea%sRN z3EMg34JHUM&!~aV6`6J-aNB}Un+y@}L2NX^j&&zWG>w-gHp&h`xzl4h8)Kb`&*ey@ zM+zS$j+5zAE+leYpGX+gPvuOJu$E26qsX_GDltS@=fnp>HZ+3Al0~*``k#dsn+8KhwzVIT7=Ha z`?Qrzplms?^)x2LD;UzoPJH}QH<|SFt4M~(UfnB7B8`fI2``_Nb*#Iol?+zVERWtW z3`x$Op+-LO{2 z<&)*owQoex!tuK^J=|t6;QYG~a8E9KeQ6~_yGJ4{&lA6%=66(iNJzk6n2oXr(>wXs zK->d7E-2(G{pQ1B02tfrkU!=%W3xOmSW+jsfD46P2bMP5Bg-|>i&atFxgHf#qgF<* zKgz0Ed=nf;7sL2-G=|-rghwr)?pFsJ`V4ffTZr6+bQzLX0D?1*Bfp>qwLfP!#+E9& z=Vx`1dSh%FJMj3stj7^8qzy{=+-!fIY9*4(jw6`3;L+TNl51k_Mwjma1P*$E8*}oi zqk+EP4pc;^5jqeEK1Y64+1nvF5+fXph8(f~09`1LWf9z9YTV#p{xp_WUqv2s#k)Ch z_c1IQ)afqj22_#Ek1T`u){hFYn#ur#Myy)^jF6(c2DVs`gmQ7vnyA*j+js*oJDibC z- zE2M}{LqrHx2bOXDYMO=Bjlmr}>fF&fsQ?f^8mgA;q#8;?>F{S?*xO!$F0J;?HDd&Q zMOBZ4#R9e-R~)eT{Bw%vL}MCTBiA(}8fZI$MPBw#O&rwLLD=UfZb0mQmCW%D2BLV~ zQ!}@LSD426CcD}6cbOy&x>Z?BCp)Mhv!$?+pXu--H=NtP~j`gHK@hR4&cK(D_ z>21;p2~`-z;;Tb$mlujwP?_cq&047@VB*ntv$IZ|KoaCEszHBIfB_!$*1;;z8iLK< z0nGE~TxpKt+V&}q2K{rrh=!#UIEO%gmUh?$oqhCC*& zLNyR^%BtHkux)`P=ku%aDA$a0ABAd(WrqI3Ol)vB^4_bdzyO@pnL~UT1Y;)#su9b2 z;nlC?bzuJh5cwF!YB^p+nhB>Q*Dlj*9fl8uh#qF4pz~%1n6c$aTxXVOps_3@9P8eS zgHFYb46yRvqRsTDL1CMpGfPnmvo%-LI+|Mix1~X0^^>tBfr6*W2OMFoxnXJboA@}x-|j@2G?P*_z2j&$I9f+%C(YFvjsr~%Hz_(d#_ z;U9%VRu4LTK=Pu3$pF8?KMHaeqK}}V>)M}JS|~)yC_8~nQFHQ&fqc|UdzxSnqMy3B z_NCpS=qN?JiKiR=<46LSQ^odpa^M=?&X>N7wR?$mgOJ*n6O zjj9^<^gStegJFU_=mEjO`9(fd1E^!#qo^F@)JqIdBF&QohUP|5rPoOH-j!D}crlVx zbQG%7q8x1KEug=-{{Xw$OCa#ez%oB@kg1ht@MmmD_K~MY8N=Gjlg)`g=52K0E~@?>s!1tQR6el8vqb% zyS+Wtx^MSsd>$LE%zrhN{{U2Y{{ZaXDqJA3pI4TepX^>TGoBf7^jhtsxpTyZIvU?g zfI!P&(_Vv%^uy+|{!!%Z!Z@)10QGIx{Dzn8jw(O>TXX*aA+K8iC_&f0EJ(;Eq8Rzn z@HoFrK5r-G9!z*&6a)VNw_N`K$Z3Ae;%EN=)z@GAX1!%(0Pbnac{Lvci}b_h@_tVw zJS&QS{Wk0W0F2Xq%i?`_ebD~^+coPACI&Uo*_e!n%`bt)`eXU5pOebR4&noEfw}(x z<21(3@qTMb!T$h&*QUzuGvciKi;v=Jm*`m6_G4bPlk#w14|WDcw7>G2BEfTvwY-Ww zRM%tPXB*WXCvl-d=W=mN;PJ2QSIo`-08?-z*BdnVc~SD!)KXf$iaq+PgQLcX?;EN< z>dd$e?Oi|H)uO@0;FdB@v4SfVfTi4_y{ z=wfvyQuQ2}If_1GlEU>qdpni?0E#9b(yC%Y`b2J9mXJ5Er!F{cys@xtT)&9dig3$y zf3z`f7?tlxs)wdy$eWAoMEy>9_>@jfZRgGnyxP398Zz449fiEd{06>_kAhe%qF&?~ zG0!HR?}pl>5Xuh8@>(u|Y6V)Q$EvuOI8`bT8^Hs)!2 zrA24QC2++41l9JplHS>EW6nUTj-w%i4McCAw0H2v6|tP>HC|0xfeH?K`B#}E z)rb}v5MX4T@lJ#Q6>zQ32g;EEHst5tnVe_9!~!?XK|^89gZI7rOy;C_9oflR{O}#}bUMLN@}Y>T-AA zs0TTqVrC9hBPkfhNaaAdB_eVOXCSJ8I{8u55y_56MFVf827d3GhiyBJBd_wRM6$Ci zR&X;hI`#yyIgrpKxy7vWN}68EJNm+@>CmysH zb{iJ_H>+6DESZ#%xh1@as`9onOKOOv-FQ-_HGkmQ1T)@;)R2VMXjb6D5>a?;x*Nv-*5P3br$ zM6y?Nvs=Y*K+7LLDyMkBt8ceFR}Onn>yL+uPw^Tv@jL7E0aQWi2|1B3|qef01NN@ zA}1LVDgH*NT6Ry5UO=z^(M4WW_Zx~xJ~dM`VB*F&hb%=Tr%`${{SVw zN{?rk@>12}f7ujT;y>c17fI)uws;l#jLE~V6nU6i^r(&#K6kaa9$?04drY5k4|9+7 zQ){&cWi=CinE44cdAL-7WZK*T{{RD24U(wC+sF^9nqJo;{;X?JjrL_T#1L|gzO^6P zLmm~u_N#vkig%5^qK47JKIKc(&3zTuhmao}?aDmVel}t9#hN$~XCKyx8YLTJ@ukt9 zfa=G|Nv>{4+9I_ymgIm+@~d6y5x4WHMIa|_=vZHX>c`1gO)=k2X_|T0ltk8mVT_gD zmbJ!oZ&dI}eFDoD_GTI98}|o3^y@vwGu>m}t*nu=WvKX5jk(lpehS`<@ioC*g*o=8 z4|q;OkHWM=k^^P($;e(xbkOUeu~~u-=bf;C7bw*Jj?@W|0$O#Ph9g(YO`?7tB_bhh=zeqmvgF z$^P+5v2)qWJG9gLSbYMY>tCTQP9^qy3&lI^a5l$BXf7Cxf&m|ZuG5Il8qEmXDk@3X z+a$T~ziSe4j1a%AU%2e-GDWBMmH-$V1N~_CIQ)%cmxG70CGWK!Rj%CglbY9$vJfNc zUMac$;QeUN*<~YcC;|Tf(;ux1Q;*2pCE&)2>l-ntwD}txiqro9MAsQSP-p)DOZ@6- z*@fR6NNxWBm;QA9&OajQ%fZjfE9%H60)W%Y$P-;dc3W(YBDnRB{OEt^pd>8p-IM@~aU}=;07(9|7wn5L--wKP_eb@kuMZ)z zUJhnE(K2(xc^c20Ge|?6dskZBi1B1`AV2m`>q)y9PT#c9pZz2H((A$fk8AL9C0SHq zvIS*vHFjit>?^-Li+p4Dq<{QJ^{Vss6`w!-Rvdc9e_EHC9!gPUKE>uEw0B9-q5h)1 zuDr{zeVv1|yhcmOucMs0Xc`6puR#5!YDPq$`wH{5pU)-7!P%vIVAJwlsP(FciQ0~G zfl+QHZ;uP)*D{2>9WNwnx#6F0GHT+{jQqVSt*lFZ_Bk;#DVEw|!AQnG>owVS{{XTr z+Iy2SUR&F?e)5uQ3x{?R`pbje@bu#r#u@qL4SKlTQdayPRPJ4lTkKl+T6V(UTZC36 z4o*3W`f=q&T(hViWY>Z4FSARo8N}hekBQmM-N+w9DFE-vy@9X6w+e0HV~k+7-^#hQ z5Z|?2Y zxo^_4)3AJ6HwV78Z#*++`Br%oDhGS^Lu=o0R+yX!p*wk!MRmVvoIk(dYjTZ)Z2E}v z2XE53ue0QC&t5s=AmO9Z3V6ELTiR|XWyCu_dv6quUE?Hv?DHG{07}Y9wv92gx%)hI z+r`WApqpbGn|{&Q zOA>{sMQ|IuGvSJC1p&lwsJsZbw%yXsqB(Cgw6u;A*Xp zRZoJuiLmm@NAU+Hnx&-aa8wk^r65%JWT zszP|#bX8tobs;zS}?;foFRjQUCE}{uzx0$4DoI2(`zZy3rXt7a= zi|MxSwC9k{=AK?1FicBzD>pm_z!kCZp_`tQo zuxvKNmMB7D@^iS~mQ5sI-Id0no_??dqEmyD2}V0v^QRx2rx%fwWUQIqy5F*JZu@AGNZu~(iN$f9qww)*$4yn( z{fuwg^xp%yYVV(BWcwcJHJnaDx`y`@&uU{(%H$Oz6>OE&%v5D@`@9}*1$l~cI(l)d zIA66ZxgUi^9Fa08VoM%JZL2Hn!r;%@Ykpv(I{tOjeXRlhjRT|-BpA=Ju2<}&gV{*( zx=5Ar>%DhjY2o1<`IAzn&qj&L!l37s7rt`19Oy+!g)z?+IM?@i`_;`zaU?^J8c1|~~mN=!@R?TZ$>scQ~+%T4HgJ>I?%;Hv7&`!*j z&@w*x?$rMPN~^4pO0G{YYPrMj2BB|oGN8{S>D!ASB`3Fr%^I_C6k+%Knv7ZXLqP5O{5# ze8fOi$wrjhex`vV0GS74OJsZxsXr&AaPG)XM?+uHEg2W@Tqg?ZX#yE;*F6xV}#< zzTuoLwS=*W3d5fcM)lGCp7wWx@gB?ZYm4g$rkW)1yAzez^4_o{Ig(FUtD^ffy;!?7 z#-J`WI;yDi<}1E>Xf^y|um1q_wnXsD3;lL7e}@^rCN z%NWU8XQQ4{hBqj_PY^wy;YY;DHVWrG>D$(oTGU=PP;g2RDOafUSU(8i_nH3yOwAqN zLfE8AbY`IrA1FWfgsFTT#xNuVd)L8rXXN{SoO}YC@Tb+Ek#wWrwW?G8+Fbtt#A#+= zGA59Ehc!^h;BJpm?_2m7d(qXOkm*CgbUn!*_ldFp0H|qqmw3Rrn;w!M)~FeYyNrM88l&+(rjWY9`Kaq;@*Nm>FZcXJa=f@8 zf94vCO?jQ}E(!ktjMZhlAH`4cfc^1`I@vsjMjiwFP2&Fm;w}gH&+AL#uMXc4IUZWg z3*xdiaf)@gK48(;$>dKAJOucQkUzAPe~8okUCjD~PCv$J9wBx{J|=JZ%}=|C{liE@5Im3L zN4Ux4J-$B#K0fRJ0Lh#Fb4Xv^gSEup^BO3IAK^cZF77U?Pu$PQy}myL2N1glBIaTK zGejIt^Zx+Lxc>m0((a)@bo~uCbqVAcQ}PyYZpsJ9fmBmVb3Jhhq+cONh3QFx=l z0N~P=rzF10T5N0Rn{hj==i=@&=^?28(z^cu^DaO68}+K@A)aEJxhJTod8g#lqYnke z;;({7h8q$1)h$HV*)LCz!Pv|I0oQaR zIjUe}5s{O%J%qvdbW5E|qe$O8sgwe^12waIm60AeEAaMy<&sPij8{;rD8Q}&+xpPr zA~tO#WSo&x2gRMp>M9wc267IS*qzUnJN?ppAoIsMX;=4vX(2buXOZdsY2;nPYXBY2 zdWs1YESlIWpARw)atNs%A-2hH&Y-G9jIH5NHUMKZLcplTHaN)sR57A2f-uSoj)$F9 zxdS6RE^+~@81ZTcY-ufyvB{e)QY%QAGncxFq?Lxl9&|fvMEHT-jJK~LTNA|7D-{HT(vQPzw18v* zTh_JTNY8DvQ-r~yCDnl4a4T**V9Ss)YQ3BxRd5C~n%RMHrwp~tDROi|G>myTV9OQ8 zu6(KyS_tGN#@NMldO-|u2hx$Z4}d_&om6sHb3-=XHDiIW9SvKO(PW8^oVTS}TRlEp zxzWT0VGWGtwNp$C3yT4O!+efaoYtxz8g}xo$c1@!O@iYLJt~CO(UPb~J@e30E;Bhv zEc0+MnnrdY)wQ)qha*>>7g4t+)`*?W;tLWC25H>KSSe6?y7EZRUh zG&UqLTxSOqg=I#Bl5l7*0Rph|R{F8T7NCdz1m za#(J8)0P`&mn>148NkBi`P6%d2LzvgDjP_K$}&b@AqM&CI#aEP05fv(tu>4)U~ig^ z1_&atawW2niwWTaY8$9yfsBf_Ml}t$pcMPuvrtPY%^pF>{3~fT4)ypc4#@VNg5O+I~ zgS|8+O+t_lEOZqh+OfBb&Y}Ya*a~#i+DiZrOjQW84oYB*5Nlhr*NMY8y`}u9WLtOd zG>)Wl{P9_lf+GO==8cB#@sKyFc{*Ro1IDr~tn}0NqXxyTu1+_`q0jK6S^ccX0A*Wy zlu}C&G@btd3i4)!$=Sgb69l0A!jF>3`2aWxf9Zm48}=$J$p4y0q504i^ZQRh|i`9tC{Gu;0G?PG_7;qOnLVgCR+C;hG1E*L2!9E`+& zTJW!lL+4NN3(#h#rus2thPE4&U%A8)#s)D;!a- zl~EZVTJf&^4#ZTya(65F)koFm6-jU@dOkUF+3xH1ufsxxCOw8eQ&WrWSB4&K52npt z3!)G(G6$ikm}2O0OXVNs3*q79`UL%_aOYCGp&q^=Nj}kdSsHuD2cL-kmGl1q!;JW5 zAbZmIX6Zdr^+vvg{Td!me*XYYcw-!y?X#cvl#gt9V`Dcqr$70^zJK_6f8OS!@Y9Y? zr|VX|UQ6hog^!cyChczxl#lg`W95m(JYA{bs^FPzn+G`W*1mdcd#vmgzO@q#!u-)G z_BCHJ>Zo4}A1Be=PqsEUYaDUQ3L^9qtyMg3#0EX|B=Y{*PxY^!9c25^wkTvL-ie2; zIQqubN+N!Yyq`n<)wCx)>}3A{>aXiW{i9@10LnbhwK@Fj=N&N~K#FY<6N1E5{M+y^ zgY$DO?ut^68#td03+#Z z+v{7Kc%xZJbmgdYs)1v22#{^)Yv(g-I-H4I`#Glzda88XPQKC_rRz(;z7}3jqD(-X zcd3Ez`c-?YVIU5YCPvuYSI;H*ik}VT$o~M`G*r0aN;C0SNB;nD(_XT?3*qJD`wNBf zz8N16w}MHq=^CjTPcS{JnfpjF@w+=k;j%1^6B0o>a6Yy3IO05A2r*vWss8}gH2(m$ zxXgLie|eMCN^3lRqmC2ammx1p$ky9Ed3!a*1lqf}nM&jPRi@w^1B&p=_cGgqZs&56 zsoU|dBmV$NxcUzV6TSZc8_>gaZc#T`ZVOJv)Z`bhZMQ}-MyoC zT|8^Q=T*BE!f&{5YwYf>?b;|2j<+l@Ha@lFQTD5j6XN2xyY0KxrR^UYVUfjd8{NOk zl>KTGRU`}1rxi(`WG4}{WCUEof5t0~`&A=|_I^05*i7O;+G9C9tLCxC__lmk^B+CI zryZ%{agqlSl~0xhb7I$F#Wg;7HJ_*ICmpVi;yw|@JLD;0IZX$|R|7pMS00_P<9d7? zNxrD3`ckgHo5kUn{6=3W*E~7;N+}K>Fy%R?Gq*hc6otbMRq?!^SU1644pRf~OX2Sq zlY>(Dr}L?cqINV}0D5m!?4Z+k*NQM=295C~b=r`)9(3)Fiss_y?^}UUH&SQC1za~O zdV(p8@wYlGD5de6c%aYHo8uurHMk#2yWd6*=QPaf-*HIw6zo(|H+J12{Hc6Rp&P^p z(yjp+=8H^Xi0n~mISz_uOE%_!(*FQZZb}7PHt=I~6(57PCzUjk0v z$MLHs#vX$|T5o`hnA(d90BxEGAAyi^n4hg1hedya zy6Gy4Uk7>CL63T|@H6z66vD>jf40pVf`JP=ulI{iEpETwDWiNP(EI-YoloJfF|>*7 zO)bKrskFNrhhN5-ZSO(Z){P=wDCP;EX7nDE(+Vf>*SOA9nqAfJP?+?lb9<+*{#3|s zSD`-Qivn6M$J`#(7Z+fEWtu2^v(lj~m&h~yDW(8OyXy@xHzS-od(#W6-0n8=#YkM; z{{RQ&Ok&qRSdJ=M=g)=%_|$~=By6IX++Bn6?@SGT%*`QrVw40t)E~~Yqy=RsJDTS0 zFD@gwh`M-lhB)b6JLRGU#v76Ju8dCOM?BWnM+#1HzB$w9LXt7;dekC1mmNh(ISoT3 z9<m3tCN5+?YO6S{{VfcxaEvvV^EvIFah)5 ztpLhbFOmt3f{#AFwMsz7P%t;@Yer&7C9+45pgM!4$Qp+sR~Ba^2`zyP203JbMz*pA zn1R1M8nb4qx{fegb64R)92ElxohHhP0}68txg>2@qClen4}NtG1D-1 zAmd4Forvd;FFK6Z0XgP_D{Yq5kM5dWhVZV#17JM{)Gb3m4v<^%p`2i6Y*8c`Jm^y3_(cT*JBobcl|pl- zCe!nDssIYSX9SLwNDB&lKyQvzc8s|2u>5FBj6f<0AdRX;$k~vJ$58%_u&=QgTpg+< zSRO{7y24&ANQSSjCEfh3;QltBl zeo`o~q6N^56$j~2J<%J+zl9hqCy^^qXd*nO{Ha(1?%+Rg3QccpSFU|1qTPB(zgm~W zuki!zPQr?Y))UEy6$57(u8frvZFs&Ss(!U^yPOV2n->er5Gb)xRHf34n41+I_GRZ2k8xMK*+-r!8;8c? zs=|t26yrNEr}(^c)GFV^ZMqHpDn0TO;!u8+SW#SFc|YPRV(1a#!J?kv;m^N9moQh+Cal%-$O$dHzRQ- zY9`k0d0^3C8{pS$NWgm1_%>gbV^z#|sm)2GC%IppTkxl12w}KgfmX*{R8(D#NVNfb zAUmTETAJSN$%nY5$Z#!lj&T#eN^sp38W*aCUl?>a!PF9V~RE+kv zx5z5(k5ftPU~%D;XQ8bVZ2=n`A6jE&9)C)Eg+_3*W%(svtt!53V(F-TX;kt(r%CX` z?y=28+qgSm)BgB<&}ny)4r@}zF}HKbRC|d95KhC-6#e-1p)df^$T}K_kI2=rC_I=_ z*Xk$&uA}8qB$LXnY6c3O>ck0z4J9Q$Z@M+QMjiKnmp8z z?D~c(qL%<|kx0zT%_vb7mX}C7icHJC!xc(PwgY7qUG81EjC)m37vyy3jp#-|MrzK6;d~MJVvt~WZ#}4P%o}0PZTV6G0;{r1YiT2LJ+uPfZm5SHU#4s9=PX7Mu9vd#mv(} zW5C*_U5FK@5g@MHb*d3ZjVyY3n!bdv$>rrql@Osrb=y4X>bW_{{3sE&<7^5rY=ctE zMAsU2IU3FszoOx0T4c_>a5(ZD5O`mgvx20836~Bm)Kzo52WzK<` zq)R0&+3)lXyz@Z3yGVP?vB+OK&%c?=871)Kcu;5N&e^Pl%SH1I+e{{m-qy%a{7E|l|x#Fc`R#VF8-8^W;6S=|2Ay^%=(x$v?TCzXR zRd7M`=lE9=m(38C-Iy}5@SJlbf7jzdnpq%Kl}nLjA#hsBg$i5;} z6X!-eQb@3}3_dw?2kTs1w?)hhz91N7Pq5y$V4N3`ALQhx$ka+H8b(c>65cF{-bCY2 z`=sYJG@Y6@Wf=0sb3jQHfn#%xTOPTsw2>o+=Gky@)YdXoZ5G*XDdZ|a*@pP^t5LpG zoaA(>(E`N|Hv<$~c!W`^WSn(1lR6?hmL{Pf^5;eOpvZh%ZBkGM-kEn@{P9on@~E%@ zbIO>R0>f5@7$j_b=x(7w$GuKdg(pZPZK3-e%rqp$e(8)uB z0|q~I)QBe4*qU>(7&OL8A(PKL?^-aghi!?fF#ubZb6Qah z9Aj#vNLW#nhSExmtlxQ*d)1@eADIO~qPKo(wIEd@EP%6b%?@7_V0A>rhFv#=EtXE+`i$FZY~>~dskuIBl9#h+?j#1rC&lVj4H+^<4KReOolc%Wc?s0Q$kaGZLIC@i{e;~#vF zYC`fpuT%~6M<=>L`BQvUXPhd2w5f%oN8@52eW}Ir9!37OPCJOt{vQIXiWfwG)L`)(HSQnGZ^Lic}eiyTR{3S!}@x8CNQOX@#oeXBC>#%7+pm6(Mq@1Cl8Wx^3JZ ze}yrL*O4_YELF#tuKae?$7}~4%xTU`O_O4ayBGT zS_xG0AB{u_K;+n_6cF&#Cn-A*rAPLBqdIN@_o$g%3}oh#&nKN7f`n|YN6JC^)D5-T z^!zB|<^1UjhR)#Au@ww=eO8=&NF8eDemS)xEM$DttSG2un0&#hRj&3RHzt)(&ZUQ; zsOiqtQ{ql)efh^K$OHF6mvT?tpb7I&-s5n_ivW#ppSweAaCzi=RE5KT6-&KuI(8HT z;f{PR!kM6ye6kudPTes~W!se&6j#wWJo8Z|am-bo^LmMpQDdU9c|V4coyOWI`j?;iwXcIVYx#@TY=OtspFk6QSCqr;u9R&oodJ0B0Bjq2376bfLNByG; ze~66#0JZ$81|nD5@U}-B_QkIJRc{#C>U@QGKHX4TS~b z$4#gr*@50h`Wi(Yc}UelC)_Vo&(e{FKZEk1Ihdad)HK|GyfnsH(Hi~Ty{aq`hBOMQ zR^WZ}P8M_bjQ|)zqwdt=j4P{Y!Bdey2|w`>Nu!_mn0;xlB))h$3rP*c3m^myXP;4@ z@~6njINK(ua9L#~ppl6xH7uhQxpsw-~9Z(l9D4 zHH@9H&ZU-^k;aS+(;Q>&k*zX;gp%5J{rI8y~y? z5#>TzBMgWcH4)VFqiawYu__nu5w#2uOy)udy&X@4XL_WWAQvFDSVC|IQAwjj%SgcE z6)fjrRn>1~~4CYz@f+eEL=>ouHCA5Cg30 z895~8x*MRfyrMW6W-)v=hisKSPtv*mFK;ci&Ac***sNnl1~Lzym2|_g&n5P0aNDL? zBhoMq#IfesB${dN7&MZ!L&Sah)muGsvc(=kM!q6PkmvQyS(g$lZ!e5C?4uZM#sTsa z=^+?*7cVS_8h>)bQ5$sqL8Gn7xp`udf@28Rwt>08J8-K?pe++&a~gc-_E$@aI!)?^|~9g;`j!U=M^5L$DD<_VK)A z%7C34latc51+=A?RA9(*RWZxRpKRAWTlvx>}efdK-9D{8661}hOGS5 zn3QsIh3zjs_#&YQ1kHDm0>KHFL=F zJ7h)*JR*tK**(*N?NHXszNuH!6{=qKB3xMWlnp8jMipva@lOjdSJ=3DD@E^IN#_M}y|3r5tvLeNGKI;qa5bN3}WOu#tf) z1L;F)f=nQSBmI=@Jqe;1WdrweD@fYZF5U}^BKoH!zpA>ElO)n$stRGqr?K#)yw>j&zO*oWC`%8by zffhyNTX@L#sjcE2gvx#Dvt8LR1jmf}Q>*ayA1*zps|zie!~XyQsUs=*g4Ht>gM6;b z>}iA+!{wRks(`pwEboC!L?mY%-0v5)hj3y^t?Q*dZ42Kv(y-3g%?l%26sR~}-LL1=RFFDh?{kZeGt zWCzNdBg|9U7EE0AWhdI8ZiaE7iW?Qq^vqWqQra7W_v6UZiWBbS9C^{ThT}uL&suRI9GbIpjzrUH z&mw71?9=ZUav;(Y9=xk8mLGVEZAbXc8(6m^TfHCjX~Pdc!m>aInLmw9QGCrC80{LG z)A*?ePvfdFulGr!X$S7nw02oCsQbW=dT#g)#a3v?JYu7yd5RQ7*=4SP*ye}vYER5+ zyAM%AI~;9KYYRqzxKH9Hk-7ljHY$p)d19mxdQ~VfZbk2jQ}=~MrcPZ!whFMl!AHHZDj67j;~rp_TH!l9Su!J zdj52rSXwUH+;~V^PystV9X`q9Hk>yg5FlBYdkO`)#xb$9|){eDz99Hq>ZJH zWXSTxB-4!{Na|>1mOSKwTafEaMX1IA3ZaQRoM6?JP;jS7QI39fPToLB!m|!pJ7TTE zsIh59)9FDdkyGN>6X-co83S-Zrw$kl4JX&7A_yZJ;*%_R$-z0mqeqMnS`ZmrDB7l* zV+WlgkZxX-&$!;Ac08%~Jg5K+g#v{+7~4GPZ4Ofo+0Q)Hm-YNA7z{Gl^a7bJ7}CI2 zZGXHuJLtw6)PvTuA++uzxVd6`$z7du&vUT+g>(*qT1S|MH{5)WZ zN_c_f7oYU5BaYj{eJF80{{VTEeciC9-xbx4XC_D#J2~CD-af8CHgSza1Gn;`!)$LQ zl2{-t6LO>hf*56V%LYpWMC8>KiRiD5Bkki6RTV!J~YLzNIcl{6`>u$ z?%+gI9BqJK8!criHftE98qU!c_Gy>ITV`hGoPRD=ZX0G-cW!54gUC^>85saykbJxI zqcF!U>z+@^(-eS}BOBDT_0Kwy85r`UK^ya_E{f$&t+~?`{AjrZoNtN|1sE~9JS2|rX#|Gnj&zQe1-!adc-lw0k~cWO8e2Fyt4)%50D99UGQ32SmOCCp z%88s2y(L`)^vy8?1d+HopkW5<rn1-$%v~O8lq!rI#0lL7mx*H9Hcc9-uZ(@Ft?Z$9_fMS zOQ!q}sEXz0Q@VmGCT1MtC)%x;n;gXnk%8QbPa7WeSNN>Z3QRP|BsPu_#oO$DPy<`#m`AUPX*QrbPpxv^bDQ>rOAD&I<`5l=TYAct4(<-zx( zU~VlK<311?oJA7zQfi}%k+_#4pt9Vl!NU(xM#e40;w{J?5_d zzEVahIELcVlwx$gSai)lco6Os`sTCLO0r-!)TWHN%eexlYZ_?0_fY^zIl$x%Rc<4s z{{UccDypnV4gt@pr(2CA=~73nH5L|&(O$tZ9Mt~+dWd|o1yNa*h8`h<gm}G@2*v1pDLz)K+uJDx3^y^2YTN zBVq{~^`)?TjZcn*{o(YeclzG}^oq|gDMH~-(xV$Tp9-BcwzNIQmZcjPC)CjqqbuS7 zk4ndTq(O$rBhG?v-A-dT6x1Xek-XAbsl=P zEVvyh?2xx3e8FTt+hUvG)C{H01!I|He5%@5^DgYeIf1b_-vN&?)D^tKYMm8#@)aoXCeG5ed9R z8sej2iFwUHjhfxvmT|U0p_-5tF}_eZ2H|Q&km5#jR#{{h5;wVz?=I zmQix9=L89Bdh_h(voMI1M|r8X$e8o2&d!VLt}h(?QPKr0G(e|Q9s1*ycRjR{@X>TZ?!S` zyX}X*)zMks2ZUSS@mqU|h|4+vzmKI+x)G;%7|A>*ZtYm$A3E@)p)c`6ma8psCSjh! za22(YqKe_>0}HBhGTkaR-(^NPR!h}V3n|J@au*prD|+vT&2?qowVd!lwuaO)4?;z3 zS-rvGkU@2J^Uik4`BKvK@Ik{rFaH3eHLT55xt>$nF3Rx!A8xVRv$e~~l|A7hSIVl{ zc2dq&22&}|JUJEUoNKc8w-<(Z6&V2AQ(&6NlHN;0qIk+zx1`hQa>ms%7JWU75*r3)n|X%o86P_M+V~1UQH}>6;~bEX-a|p-MN~z#5)1O z?C;o0OlfjaV2sM%4?OwSvO~n}xIN=q{5`a41UB#!;wQ|XKU!!ku5RVE{h=bsbzq() zX2=ca>s&n?Q*9{lH>k{?GGkqRn((JqhT1lceIpEIBxlbR%yzec@E!%-M$k%Rjyy0D z9~*g^^j-u0s|@@`_UtsX?5f9*9R_Qk;v53cw2b$O72U*Pw6PYxE41gGi zj(1H&u<4V%bKSDy{9A|(CiGg{=NLnb{uQirSlYD&XDxnr!jm4?v)!EFWj}4)uM@s= zg|~>1fd2q9{{UN6?j_m21RzI`ha_e9+23!@xb6#X@m*V%QqmUry4QWjT=y`5$6>x& zy0B=l#d8#4Jyv_Y?7$tG;Oql@BjeIWAJ(*ZXJ$AfNOjs47}zrtzvEJcWH6T__kB)k zc9S$x0*9|k=z2^IaRvVXqE@dz?VdB*o*{F>_`T(|s|8e$g#~(fZ(8>ES2vxTf_R~g zCdZ0H_lPx__LFap(MaGNG0td~j8A4`gE>{3&j44?<H@fUKVhys)IPMVI800B#-qh?bV2{AH6Wg+N){pBMBJOxaw=$Qc%z%91VvhuUFIb zxLS7YgHyx{ei)g{{YqT5`T$_{iEaDe_9Ou1B9$?rpyD400}|%zOv@87YE9PGyds-^5`l1 zOdo~+0HJ%V{{W_0y6pD{UK_)k;1D}R8Ji>%pFQge{{V&X=!185;c?_o>s?P3mrb>T zXJxls`{KD?H7|k4Zk6EbFym7H02F$7s!k4%3#X4(NUjDEhr__q^5Pk| zYz2YaBD#(-ARJcYbHT-O_I5lh-rdc`=A1eH%~7xizny!140~7cN0Zmd`eR+$@TlUH zEtCdnP9wtdu79?+O~Ye?2;fMiSn^$d@yA--;C5+u#mR$PK?%rr^Qu2-xl7QGjpG>4 zwQ_4P!DFQZpKkSgtAUrMQNMmrI^P*sez*>Z(ApZa{Qqgf^6+G1Mjz*aP z17!e>_Nb^Rir2`qUOdFvXobM4WTwQDsv$vV&OaO%%K_5H%{2ae#T68@^>E zA@C8`odmLLCNi%ZD*A6lg_t=kq@IB7kF5e(f})ui#@XfHO9C}=!;jm~{4c+Vrhl~&2` zM~iT{Bi4-*9}r=JKdmNOVFL6t>)|-1ki(uS&IlBSGYp*aH5E1So_<81rDj^$2<(+sBKI;D#tuYd%%410Ma12aqte;X zL_m?uk;r~ETevD?NLiLO2UsWa8`jEHj2vy5KL(I60Z~MQ#>H~S8=Tg3c7*W>A4n=r zjV#`v{{Yvubi7K+N#c;hBMAZ!6nw3b%igiAqmSUx#sLVfcjQLg{{SDYTxDcQ8PTR7 zVsN1W10H<;0G2CNElWhANg6~0mNA;cl}H~9jvgs+#j(2hg>-SqilK=a(~t!cVFViA zOfU^elOEqsI<>D->I?{|F(~>M8?JHYYOIbSeJtk~*?lw8v1sT;wqQm#-<=9)1D1Kz zT1eAS&xrZb-J=HwB-E5j6RNQfWQsW)b5&54M{{Z#pUZ2}24aa9M5Dbun ziuEzIx(W8+@iXrJa!-@zUd-6o@gCIh`x~eV+s!X_;aq}q%Dv7%vp&nJY4{dCrdH4M zuMh0M?mKJ3%YECl{&n>b+*aDmamLb$qdg{B%{|V}B7d^}%t^}DSpNXwm8!Y>ChXZH z=()$2d;V4E2Aa6+>;C}s^RxCx*}|+dcnRct-d~j~Z?Z1W#+aG!CTtDNfPNSi=y;{d zix)mmJb$td&Nn8#Uuj3_R5+j64`*Poo^Ja4F`;kmM^B}Co^x3Ju9vy&<@0qh=^tIH z;I~Odk&(E?$us4SDZ;I-FAQ-s%%iCz^seuTeVN$7z$|a==ev_yE6jG-5uJuBljDH= ze1M(yuW#X;N;r63jf*dM{lbEWuGQ(}(PCfY6nVb;KNlu>e-G>r1HDCL;#Xj|PY&Oe zYRC3d!QDUmmF{!T3;I>QDcQ-Fh&|T|ki(Oc7a>tg?kQq4+(P6IXQdBGhx0@Cncr!Z z+w7Btv11<-xzY#TMKl)sCE>+&N5tpI^Nd!^U7{x$T_eh@{@oHCDnRqaC85Ipkp1qV ze`a%I?3w~R996kbxuDv+80Y8dmO)KA$p!y(hfE&T^{e_He<;*m38u;tREyjC(aMsR6APQ&>_ z`5jN_^OpN0yVOK{Qqv%FD8hp`*!BFQ{{Xq!g&lOaI`uTUjfMjNK-}k@GhHgH9Y;u| z@z{SLy-QL0JbnJhc(4Z?M!@50% zKOyp(kJ02O?5mB2AM0E^=bw$X{HdGlvyGX4{{WSH2)R-@@~C`J!5w;0@mhb# z{#Q}t@!$I=?Eaf>2T|qDrY}P-l+V2{ ziqn2d`CU(w$EW)&<8$pKwj&3al<)aao9vs6jE#0Addh!F_D=MXl4=HA^J7QFX}k~R zwH{9wf3j{gc^eE5DUazw{{XU{(H8*^4?*T;KhRgTi4#^bq59Xl@Y^}K{{R<`+SvZ)G8$+8 z5#{b{sO_&}hZNCu!@?!fE|R#wVO+EH-7I9H&6lcY`bW&xU6$jQbN5hL>wb9e7xk+* zU6SMcJm&L<$r}Fv7NsNdHQe3X&%(Ha!znOaMtP~OyRy6z^R%xN+(Li;pBs3xcYJge zqx7vjRk3`wYx+FnhkcuNrvB0?;Nic!m31pLiZVYMRrM0xS=vIei6c}&qyTveRmtrj z{{Y4YpCdoHBaH1w1>yX5-WcRat>q1#`Y<)%3;=4+3gPi^?iUviwYx=CQW&Cq`Q}Y| zY5PXG$U^WZ;-&&+u+ONwF~I<{td#oUktZs?X=4yKCb!K zQ~or&Rl{K8cH$9wkUEfZ$)D?9WZ!6)XCM7G*KM|Dq<+wD*d1Ix+kfvhHLt*(sSD$C z_&W|2*wnPTEjJd1NJ+~?A;!P1Yi@1_ZZ8sOZ`LFu44v6I`sTdQcKYNMCx_c)Z@V$6 zAG8~y**rSe@oI@`^wW0Oe0F~arGCl{7j!t&m`TA#Qg-}lFK6SoiG`;Y5i@=L8jtg@ zG+(p})!1b+oAP%u_G02}m+cgd{{XgsTCFc* zwXT^s`6I}}PxY=p{?IS-55Zbwf5rOK{{W}g<@J0Orhmoy*3k6~7}Z7B{{V=ujLqQf zIA3ICR&ZQdi+Qf%b;ixz9Out!$dj`c^4u)X#bnih z7^)Ch5Av=7{?Is3oI+?{NM*P}NcCC$rY#6B2P0Mk56GCqK@xFFwwpyeiW1y_D_#ul{w){{W}lQNQrk zV?W(&{{T93+pa6j$81NIlls=5Esb`U{S)z7zb8{~_Im^j8Fh;fKE-#;`FJnv{{ZMdCo}pxrtG4$A|Km0 zRUhsT>p&flg{R`qVcr&Umj3|h8ZS-Mt`TSc$aq*}bH>=RoR8dpopdSL5U~VaE{&vPc+cxxs`k%`s2~V3 zc^x$|+iogOLcl-4R}WXk5Al;CUXz|((bTVGQ$8*)5bALe+w-FT0HP3#XN<>>NWadw z`FnB2#xO1LI(K~NZQHIc=K(Dj{{U~DU(G}I{{Zxf_-wuo)b>iyeB5XM0P%mFNBs}B za6savzxIF5xV7!a8bO^lZhyTO`P3h`oN@9r+DGcKf1Ne!F#W&!7sKZ8cbC1INy`5K zuaTibf!!XTTF1NWI$SBw5-XqlpYyI|duzssA*6#Rs7zEJwj66d8RP!|;}wj(PXxcq zlX!Y&qC6t({{Uu6>`3DZJ?+oyS9lj-zh+-Uar;pu5x8wV(Ol!FI>J4#<3wQ3AO8Rt zs5fc2%i#P-0CWf|50TT~2;1Yc*DUmluFngbxvn1cFL>Ip5S&(R*J5pM8&sT1Kz$>w zGiE2~o%%*^syzdS_Ilrj!Xt+1jyaN;&2l}u z>^%HpcA5?-6qUeNLUHNNsDGrKVTSXs{{R@I+<%M6xH2w3;1sfYwh6~&rXL!WB)iLNha-dVHg2Gv4t9USeM&^~$B znLTbR{wVa}q03*%kJ#zj^RtLqu=^7rSlAJM3$kQ&Rp&?u1-c)>RC`Mp+jq-zx*i`BMX}T}L!+Cp2b-7@VrxT3}^G&`tuC``D>6 zMe;Sd+UM#DJ1VDl`u8S;sZR%7mSUlaFjs zWr{gdOQ4e+wN`b_!i&O~)X@Qqjg%ky{HsK)#kyvklFK4QA!C z0HA~O5>9EXH9NEO*4g(1YNV5v;qs&m3$Vt2hbJG_haLF0SMJmIF&^zserDyj*EJh# zt;U=L2qKlq@eN0QS>CL7guJ0wDvS7<$1=1c7~RI5EZH9}u3#Tcjw$VKblRpR%akm0 z_nMy3?=Q8|Eb9vRq}8R*MIZDx03f6 zCGhG8xAipki+QCpD7aRUw8r4JoZJbcsfMx7hofel&h5H*v$nWT}%X ztXrN5#(g)e`=mG5mhAC6sE6bE}V}@Y484%bZ|-8`i8Cks;@k4y*y~S^Qct4TZ(CDOXn28E$28am(x@Z+2Qy|pqkIJQ^ODtQLc)^)Mvu~u0)N-pWC>h^7WK}67 z({KnUCo01nvHdDip7JeV@5><6(DzW+vUfn1$p;KP(D~JAXAc}wIm71-zs>1FzrE8U zESg&&WM`*QS;lcZZ5k1wPE*VQ`c{XlA+yvFK$UG}J~%QU_YC8>+?& zN?s7;5ZhoM@->5hf8AciG-^<$2v+jXU&PhM&iEGSYBcn;fDv`p-IdsL#wY@{qyc)2L`quVZ)#&i8? z6)PAR*zcO0E6Wt@drw&V7Qc^%$;BF9mDV%2rmFPYu0LmWZzKay5-D7fwRi^vyq?M% zmVxwwqbJI$%i3-(+^-xDAP4DP%TtaiZ(N>cO&&?f?R+!5J&CqXAh)pboie0>)l4Ut zIrFbnUeZ}2sAg_koL9|j+DmGciZ#icCVQa8smY<7qXCjze^dd zV*vDHn(!go-Z85tWY7MXq7K+`bAZnY1I{s7zf;8ghs0$^vEJ}b5g{$AFnrYFvaY)^ zXv7;^prrYl^FiA_ETfzU{{U`?J9WiD{>s?z{2%95y;l+sip+OXc4G5CxSA#&Wx%1H z&+$NUs@VI=D~dh6;@u;*AK*W&ME3KGf4jCn;6JT3>e$2LvYo7a4~qiCi(F%G-wJi$ z++$e87W?%V3%zk)>Gu=^2HMpB0EGUuhuRkuUUrs;{3n0TpUdMH#brB>*_>-ud#IPE z_Uro8&k5sURh&bmuyNjx=Ug)Vq45lOxP6KGH|tVwv>qVidkZt=^M16~tK$!f%6B5i zjVp)vc*>58GV}auOJ&9s>K3t;)#0F9~q zzCR@VR$m8tkny9CY?mXJC12K{mYivuGFpPa`iuJ43jY9Tx2=QwD%&HTWMfVL0BM(t z;XESWAMv#{>iGPL`c_{DcJ`cK8`&ImA=mY&n;t9jy`ldAoqt;4WBW?F&@}LyVBLRu z)JOYCy3xM}iI1e`^s4!6ens(ld>yLUaV=$j3Bxxbtxxr(C6^Ol{0rka`IP?vTH(jq zeA)j1?87{_nEsU`_MI>v{g*y?nEsS}t~d4{8JEG?$-}s#9RAOc`hq`Nl3DRITz<}< z@E@&lsrH>IIXoGIdH4SSt{Ej#MhwL)1>TPy3ao!bvX82o(V`G*QApxt^rtK}fa0b%F@wmq-@ZbAZ zjj|ffd=LDz zLi2>#{5%Ubo_ndPQ2nRbMgVJTmHZF&t1$hnaQ#QUH%sN<2m04f$YFe09>*`*9_Nbj z8TMf?^ayEH$UfCLM1X3N=pX$*^QBMZF?lE1Px5d^40NKw0AP0Btc7kwVvlVZQb`*c z_&aCZQI$L;NygPU;cXsudgeU8Evj*%ggF?h+$u7dkaUrnW^MUZ)`T-;5D!WdTb=gJ zJ;AgB;Ps+`o}!=O*kfZ;5CXi8XxtP8jCG}~gHbUsCzz;_Ak7v9m5_B5#nhaRUbH0E zcEG4Snoi*TC=hVK??s4%RK&^k@}exOov}d6Y$zptDq8$J>H&{hKsqj4eW;G0Q!5;F zsksCWR163M2AfSvrUrS^u%KeBN4Vc=hLA_C84%+lfS_z}cA@HQoY5UgIqOjq@9sL7UHzd8bdO6NO`s3G$BH$2eM8(v7IY$!Q21~?|HG-ny0 zvYqlN+X@;z*lkl|)5@MD0fs&4NTjjlPQr)-Q&MUg2peG3(MVBE1rA!KkBWf?mVD{h zsIroZFmOdt%}Y_D#k9Ix0+za@T=~?*pdS|F%8*g9!R{Pgv_U~h7Y(q_<3_tw*OeF* zmBQ{4JFr=G6Sh9JvvfR6bd|?JT`+&fjN1N14D$qy>TWeI4@1(J z7-rn=Inz8^TdB`lCBiwkV;}a5zrUqLqzsX^<4^?cOhs}Eo$|*xBvn~pZt%$y5J&t&?=PoWD-r?twq<@Hr zy8twjz~Fk|}BQ$cTI~BtL_2*cftBk?GmUOrd&@cy316rP*`NeIG^G7~T z)(Xvy+Z7vG!@Se|=Q!jKm-P3hvEtEBJc}cU;ZhY8920;6C-DAt$P0-Y6@mw4+q{wd zjz5sc@}oj6xMkAAGY5pA(#^h4-pAuz4hJg8ch@{l5yFxsmJWH8nRC9gvB+^8PF(cX+x{C5#)T2?HzK)HV{t6Z$lB9o{t<(>(w7r~wB))d zb%=}%5z&7(M)^i8OZd={OX+7CQci4ftX!Hz225?oWUMjW9v(3 zZZyxsTt@Gp&k5@NJwy0s}1~F=01n= ztqvyvni-)Cbw|r3XCMcJO2Rs zDE4V3qKV`49T@rteDy)JDIPSE!&?S-T~KQWNuR zH}w8SvW3xTWkSL^Bfww|MtuJOl{XZ)(+Z*^D+cj^d1HUWYRQg5*AAgoQsr2#Ic_%1 zIK+ueCltPnxO^3v1|(mh{S9Z?-h*n=e5@ooUmSty>s9!cx0xDe5z3%|!;{eLcz_n* zB8c?67gN*|)9G66V?56W?m`pskUNlmoy z_ig*U909q;Iet|_E9HjTcodW<$0r#Co?pn*Sj6&CphxWno5EMTTq>V4*YXuxh0PO- zXk;M>W>NvjCzefS$HZj#lyyKDZIhF~pr}N@3x4pq49u7=dLDVL6ioN?XJNwQdw`Ha zHAN(cL1FR$-4C^Oox#zDV9kO&M<%QAXwhvDz*NLk2#Dsu01F>XioByy7&?zy=99K{ z!EihgB1Ai-05|1U;E$f?B=x8%A#s7LklL)mqz}%Z)e&*JjGd}+F8KWF870rX9y6tU zs!KHOKx=uBlY*S2S6J!;b7MN(w6FkDm}0Y0=s^#);zZa|_1lgLn7AWw;N?^a9al`-7%sB$SF zOAyBBnD(c@2Vg%6Fd3&SQ(;ARP&t7^C^4LmYPM7ZwL!v;U}RBYMN))xrqk(0cLR{2 zw&!|Q6bZKHP4uIM8P3$Zz5Z{?iyaln7^sysaZn#`YGQzLqQZ*Gp4BZl=|NQ~=RoMSkqF4YsE-WL2CBMSQ8)QBSzl_eDQ*zH^GRq-Sx?mH?x0 zQCvg5{VGB+jAD!wmgz(YPrVitSJ1v#rtZhRTkeVLPu*gc;ZajgIZ`SOToI`96$b9t zsHbA0y2f$HQ};Rfsor?h^ZY8j*9Epyfl9|gUMTT{r|UpyEzisrf>@K{B-4ylSWr2* zb+hiQRk~uUKMarz#Ui-!BNcNXnvlnxH6|NTn)Z$qWkEhdqx(Ft&Y#M(^o~KPHbRUx zY42j%ik9|47jgMgt7E24X;a?9j;sJ^(fieHd-9?}$2H2$g&@nCENQkgz9>#dcxaKZ zqySnxHbKoGzl}(opITVQI$%Vrd2K{R3Z#*}I5jW z1BwO)C_F=!4GQAeYdcniE7bF$NxS5VRt9N<2j!^uI61+sOb)cg6ys`k1u3D#K+pm( z8xm`3NP&c76cKNqdN&0b>E2{y0w|KRD(;()D!47MdDBZ60E#RMu*jNmuqV!ojQL~I zg3;rZFjJAeP>UE9HGB=Xs@aeb2a1gw?sBw%c90TBT3`kaO*wen?hQeTXJB@w7B6Zn zZMYaTFu?3Ksm7$^2YM(7$`s=wpo4lOi-I#zRi#5FHy)J<6FD7dk%OFV&YnPZV2S`7 zYC-x`8~{%`umQ=%K#Z{zAOrxgju&D@u2YPUr7}}TvWgDCt87e#^8n8C$O^p3& zkc#*i*ql>lh(R31K#cXE2$vc4rwzHNu=c32BQ$_LwC3L7B_A+9!>YQeTUrLov0=>D z7v2@z9r{;mYp8Jhcbl6o)wUMbOI(bmfYs6&#hvSkS?_x&z)$wZ98C- z&ox}ebrQG+or$9s;wdN6(@FyYu~yDKF^*NwcCyK0;I}i$ER77j89+G#e7x$+a=u5#saIU9kU9)tkHWi}JnK51 z2_&b8#d&)(G>D*tZS$S5D@%ynnM>%9MHZ0Hq-=$bam$_*X1K^WtHE__=vF`+f(GZO z`PQV@Yab6pj4QXzE?XLlV*~RdvT)?JJ`H5zYWF5Pi8Wfv#e`=hw?XVVRsIEX6N^l< zXe~ThRFDINIMP2q%CLB>kuP&3QRRaVE$yw~X>y3tE15Il8Bv_{ITg-vS0?6p;MMUlW>!8!8)Og1HBK%jAyUkwqeh{b z_Sk=(2iAoAM8$u8lFGgG$fr=~gl;{C!jgjgo8gV2sCQ+g+Sx)2=k)K?Oqr+|l z)5vDXirr7{z{Xs$!1vsKRadifF<6Xp96J*3KI)Bt2h8HLr@ZdC-w{h-$rzBfT;qJ> z%ir*++E(tzOJ#B$9R!ZoB?Bu1)Sbtuz^i;B@si4DWXpEW=9D?UV&K-U`*POJ{TL{#N6Jkq%EBC7YBV6nl; z6$_&wfk7doO*kW};~A$!wr5;kg7TJiSt4<$bi)DqRVk$rcZ`hQ0p11m^z^|spV}EB zwc;K6VOn5S#y0n?h^}RlCwU1W{5<(%Z{=I4aA7IaH2B@)$jGQch#g_ExIR@v?%_(N zWg$l8d7o+ll)7n=iBNJexBYag61gD@obR2hXvU0XBWB`OySLJWcd-oMZb<5XIu(p^ z&uemHKoFpj)SP4kf<;$mYiOe>oD?Hc?ab5ghk2(`M{!tZYd=!ChLM?dQt74hz5~w~lLx?g2>S$W>hD zR>ud^7^#z_R2JrUQO017D1xj}Mm|+JCmkx?x_4*+7-Q>Ejxy^T%tn4-qOBx(IpthZ zXQ32H5FI1~&W_)^L!Pwos1+IVNg!nTR5N6V#4rK#G;Dg%)DQt6`BcRuRT|xzjv4sn zoHu{iJL!BJbU)=<-J$F)-HN^4gre%ppMiWy?mVlRwUMH@Nh3IAIR?EWvOS@ec=VTD zOS3I>#t_LGk;{^E$192Ee+~l`mGFG3dZCYH89ue`w{{#eiy-*B7+t);(ticc@cNiK9pF9g!HL}>C%QS zWBSrJLmMfk0d$^ts1c5IBX&-~MGV}z@}LVtH06BiiMVn1u|sQzJmjLl(IEib{xmZr zN_RD$Usv8OOaVW2jVlqNZX)SWYp_05HApM;!1t-?JzQd#P-A&1<$+K$$a%FyB7Yes zq!K?OezXAxa@(_?#)epV=B(&UY@(b3K2#rt0xFG1B6pg3U&bW{{V0wr7%&SlztR&26068#XAD2kI4l$b-Bvot>U7? ze_C6Bt|12m4XIVM9XV2?a8aPInzI%$l4^pu9H`OFfm20>lXp0&B~)p0XpqQrf+P85m>q%EQ#SpL@>4O5|lK_&gl~IvUQ&PEa5Z;Cj0}O}GgF58qii|RIQJvHd zVADWUW!TV&#Tl4T&hDY1WlqSH zRFxh8_e4ZtyS9wnD+TYcK~a-|k8(LxIH#5?i4Y)o$~NqFI2({Wwy#-txxihI?bPHb)xqNFzh3*?w6 zR9(hS0p7LUjnoF%m5*264V}gaKGlQ7KYJWZsuy1^_BF8#U@g3&Y?#waXz^rpABNej zTuhUqY(EOl?Ixb&GfElN2vE7m$?N!v z$cp2;Yj}%kc-)pb+n#e*IHULXk9NKVl;Lr>+ZjKN8$)%Q{g}IwI|wbwWDYlGVUjX= z55k^V2gI|M(+N^G6`lxzhyZ+2G2EYO=eT<6xR<@ubuMtHZ9cWp+B}P> z!w6OW&Mue-naAV3M3ovv+0wyvh@IvjJFb--6b$WD#f#@-+66#~e~l*WjKByZcO1VIQ1N5!|w6Eh8>+ z2*A%SRDK8y7xGQbEu(20+%CiZVk(Ssm2!0DLCEy2jvhqviyJ5&Mwo_n3#pj%#ySE1 zbuxSum6kgf!IOyJnIuU}Fn~@r+}C--;%B&$-N5eR%xt7%ATVK{#L)OhXQH*RG0QxH zN<;p3@3~)Z6bNbgL@>@G`W29JtLPP-rZGrUZR#h|jR5XS> zsPV2V26ZGzVN`%B0ATayN!wNia4FGELuQE*CzU=ahW@o9fN3T&K$Rf*Q(JLH;JjHU zT>LD|JHh09>AIQ)>??C=G%fdr$H><3l^D)DxIKr2-ihIkL?mh%0=B^u#e=c0B>OMp zGEDNf65f(F&sk0Ha89Wu1mr5u>%?%zDmDzKOHM1ni8vqal?mr%!^ z^h=f3AFXGknx$l)b>;6}F`c6q8U=B|yE}ecys*&6n?%}bgx!GQvzBWV-4cB(El|~s_C-0+Tk{pn7q;;-*k%YU%+8HMv%;R|1WO$DXR+GE@sK2r7L=dj9|myKuO6&JH~dWcGuy_WWAmt}LWjr(=?bU{Ca}9J)mLf!B*v`%Lp< zfEsYVRny&eD~{W)q_&E2{{WXDBz`!o>z>c?$YU(rGHoN73!3GYn=1aNRCB@hW>$mg zihTo~YQ4z0h007CHXPN4F;(@k&Lk%s_pW&+oiu8ieT$`(HadBli%Nr#&1V^gtN>b^ zG^di_deR-1n&fm82_!6cY*0*cHZnk@EyvzseW?KMSD87g@;Z({nzCR;+zrQ_MU{Zc zh5RT2vg#+ohw!QQQXXUvb5;~cb~vXIobOK1il#H2+iGHnF_vN~;emRJPXd+OYApd+ zM+TluPpvsv$I5_unzXShjrXKgKsXtvU{nRZ?wW>W&JQ8wR+|8Pqu!&pK}y1aqOm*C zRvofxLnEaTL19IK4(tQYpSxNnF}5jS4zvh{0LH?cA0bbX8Z zyeKbrzjwt<0%Q1((wqQ&s*~Kv$HIdZ1u~P8NFMY7rWHq!_obB_*j91L&RG665~Ixh zXbLoY)E{_Ip6W1h&)TX59#o32l@v12yxHatICA^=yG^ooFLX@I9R zGJvuGahy@1Ql9k-y$r(RT=fDR2i8FD5#$*DAposCus zxP9?}EV^sh>Dac{IC<-paJ{x*c&4_ zZB7MI6Go$*PAjAmWSmh!W!c;JfM<}Q_keY(mp37w!Bw7qrkaSX(=%_i0p-gb>WbZM zfT!tBBc4-`2wyWzL@cu;zO@x|%$kbXx%u1yL>BR=!PIKDg^Xk%j8&LivT{Dv1Oa|f zKD0$<9Jx_M*v%Vh*i~|7k8#SavvuD!0&}sVhCwbQBgDC@F-mjtjrrALLe$}rX@O81nEiUnvb=I;^NaK%8w5!ZUJcLnaI_}r<$*e(FaPv=2~c?{1SxYMv){oMI_ zR)%Dxm%G-@7?ovgmm8d80-h;JFvm37VJ)2`av#!#d=}G)VM;f4aK(8rs=eUQ@3x|L z9#l}QJTfG5+|1-4Y^njzbJDDE*rA+(AO{1(me>>2)l~@`Wyo0x?I`lEy zZLvc@nboO=+TtmrMq71U5_z^i&aK78(tCTE7buV)0Rx*6fIppc63-$;iq0~~d2+>4 z@5ErFGB6InzE3)b0@VB+e7B-59SjA=w;G!VJ|oCgiSCi(P!EDJps?8Fa{mCYO5~)w zPlnR&OQG0fat>-sb0D_vw`9+Wv$lM_>UI^p+DErHw)YLFz%i9qAd%E#+N*Yn#k)L7 zCwmIEsAXL4x#js*UA($jEUs5hG4<+eNO4%L<69mh7kz8uDDjXai#=4Ho`-5`G{og- z$(HfuiWDdhKzYz_F!H7khZxVb8b#sg;M-3;tE=UBgnM~sCx4|?ySaOr6p*NhG@>sh z9+j#xWOVAmRoaA3P6lZgAQc^Y)S*{9s)N2Vc~IC;GJNYtgIPVpOEYC)iB4Z(;=$6R zJxTntTHGsu!z@1$a81Uug^C{t9;J@|0Dv{s@U9f`A_=0m5TuOJ#1xfKdf@Xu^^Ec) zYaDHyrH2Zh_{VChMjcPJZdFQQLj@c6KDHBsRf}>yn z<dGGq5?tRl|h?KiaIvcEEArK(xsM#jYry_I2#&t`G}~v#Y1JHNrg~38gra_)Ih)$ zK3UBq#zdVYVudS^8*Qkhc!uNaRir*Mo&9S>$!HH|u8oIl<0O@e;9%pBtWkt zUpnzO_-m_MtenRx?mV+z_u1LI-W>xj`A}I|cSjb4Vlj_TR%E}q_H(;^%YYsl2#c-^kYrGqlasrM^|&svyM(9+SrDq9X` z70Aw!nEwFQDkPsOnUXR0hvPuFx{fu;Wgl8V5kbeVwKxsT)nR=YUUVkE1o%NT0e>0l zDUYeF<8>>1k(!B`bJI;a5u{xQI*F1o*AcxTA&c8+cYlrFn4N$T}BDU37`ugdQz&U^#>)TQZuAFN8YJK(SsPf!aeQa)9H!C^))*sRXB(W=Pxy@LLbPKql#o2y0 zB8OW!NIbGY{R;A{rODua>mTUGjDmKin3IjGUS7>{xLpzKSTvs~)Vuz4SbHnR z-d0m$;EtIa`%&$3J}6IDiFcAY^ha~btVeF=ope^cl;blA%vMkPk*W1yWAUe6&GBI2 z4Wnu)uVxz$*0fqYzmk34C)!BB_%Kdf zllFVsF(RkHq0inDt_QyLqS0jVN4v-5;*}+^p080F`RJj#t@#*uCx*-bW_c^36lN#sN|*u0LnpqyGT#)BgaKX%Dl`(jWXB zfBdUQu+8KC(Eaug(Z`8=f#1@N6z3QS53O}a?DMpr{v3b&t4^P1{iFmBgot|g%S+g1 z@&5p5UjG0G=;Wt)I%5W_=3Mg?)bXCkac&y1{93{boB*-|T>bT=wi7IOAOrBY5c!wcv)KtC*KZ_=$z#Q1fhlW}pUY=9J;)?VK$ z{;b#BV*MbO83a(%yeDny{f)YDXqHP^29`J)ffd+r{{XXoD{*djNzg!T9#!;!?{@yiCQO0S*&0F`=b{h4uYw^l>^P5Mmor_qNOd14`=s zD*ihw>_^F9{Tu-0y+<4ETelnrXqQt>86HBht{E-ZtDNJ?v6hcA{-*KPVSm_x9<;R7 zVYrHS(1EjE=VW^bc=R&L*S*3a0|Grn{&je?IcN1mW!GWGt+Rq`X9Vv^D6d^VWRNk* z;?MMeezfE4jvky{!2bZyAFXfkvi&2U+?B5Q%9#v_VbdWjJ2=g_Wcg1^{nZ#xAGk|eJ;rF*3Ug8^W z9cc4h&GN>l^FBk?u#TG~og{4aSeJHaNg@m#Kz(ZUmkGO(682bL8zef+(rhp{BzcSi zYq{*lVy!rPM>i4)cYFq-r+A`1gQ@j3$^Ei%?H!+n-rh$yd{R#CBbM&jua7hb+ zL()!mG!oIAxkHQs2K&_e;vXj-*s04IKQB71ASg0h0CNVZ5YTcAqay%~@+uQ3Tss_| zUrK0XRpd4`CjgRE0zGMn%HuW%h{F^`l_L+SpBZ2=)5^K7GuhZBySE8v0!odoW`RQL zBTg}oZ12{)Cq0jWadAG_FQ*oOC11SGi23beV`Mt+I{vd(|#0!L4|t3b$ueG5o3q z2=vwET^RGV!#Q$bOz_*3XMtp9R&ofDN%0R{c~)+Y?D&rS$B`B3{6n#_Xn12GZ6slg zoRz^iJ9FEuVDYZY+}lBKDm0VEiX(9729j~%QPld^RC7iBoU+3u^m1VuQ0#*m22BMb zk;61`u?x=|;=8MU&0F2uBHC(&$niU!&zK|h6_<0tCbPIm;EACnPN`oloO8$NRn$zE ziK7}vdze6zOiF~DDtNKyRP`#c?n54#Z_>A9vza3SyU78`CA=%-G5S!436^9Ch6Rvr zShfy6oa(nCcCwAOg^}2xItEmF)Zw{Dj#%zYfHQZQU%KD*fm&QYv$t1rEJzzrIFW;3 z4^v$gw`2q;-RE^7L%N)uS=b(xE@>38$@VxnUrc548)KC{Nv64e__U9NU;tGErFNE` zpR$86-=Py6g_LI*$=G}6@}`%v(@Av8B#=XH`ba`aVh52UYF$W=r6Y${QIc{FHua>S z%a9kv>0X38G@a7H9BB`D`<(3o zvp3k<7!vLZ-rC+ANox|tj;c9|xo01JGqlpGsto)33P}o;DmDU)6e$1a zq@*_Mj0#{Wb_33+%6x5CBt19Us!z7~=TwAZc8Wgphe$JmH?M5$6s<33Y+V4&Kr+An zXNgbcUNyzWczoaRlU}*@a>e^KV0Rdaf0b{9=G68_Z5SB!sY)`n2nJ}fj}Fz?aTyn@ zsTq8?6_;?$46t14z*D7%p{=WgCv0=9nHTp{M8g9c4z!m8G!@LzFacX^imPjM@q(b| zd~Z#{WCqp}cgKW}Y8WMN8~^|(G`_}Pa3)Yl{3R@$qp)fj2Sv0V&f41G1JYf7)l!+bEE;P3$_cf~v z{^$``wPG(*N^w(FA;wM)(c_c$N3^l)?yY;}18oEv=k9HIoHD#u7S}PjBpk#>;=TSu z`>;|%j5(1-6B40iVIU(Ibp#scdK^!&(zTOa(esCOf_uprkZ?vRcQLWp7B%!T@ZJnm znK&m6X6oI-TANwMw`v-wz!@{h8`0Hipt@e?F^_Z^kXMyQsOvu1;HSb4&a8rT%BG2g^ChYeH z+@2L_{{SUd!ava;IS7%|C;G zp!wK-PX%bn-v**%$3tH9`~!nz=Y?7f5BGSfL%=vL;PAUak^B^V6a5Fy!}540fk*{t3!j^~=lW6V;=oqMwIUJrx+ z0Me{>^Mq92g7B2ntAtqLxqjhj_!s&Y&d2h2KPp*V?tcpRW5IYc=Nu};779WkvHf12S|{ezorl!MGs@{{W>}oPXpBf7m<~yhnpr zd-np9^cVUc&O`Ee3*43YQxr3FD=ulm$K(2mXw z{{X2s{{Sm~w7v%~=xf%ocxQ+h(-_oA^{DqNj+N~rv7MY%-pPpn0M%^&06MyzhwRH+ z2K}Bv^Y35vqu}y+K>cSIhInG4jj>9)-rn$g4i2tt5Tk0?7A=8FvzMf0i>pS9)iFMK zJxO@Xa>}Uilt8~ebG=mJ(n!27_KXNhhQLp}an~MIdxiE-iX@%o++m|ptGU!NPnK!; zj|%Mt?BhoZYj_ZBfz;>ouNNnzPdoP$$5UOYpD)ax2RXxd?6=So09i&sPPMIPJeDYu z+#)Wm^r_1aTC>5sGk?Rli(g!Dww_N1i?esjdn|%0c%zVR6@k_7RMfG?;;ooU+vKj@seMU;Y_>G2BdBDs!ujF25_Gs~&2 zOO9}m@`?CCQ8(U4$R7ErSvMDpxk(HWM4Z)5bym(DM`qabOCRuSgH~=T^4d6Pd#Onv zA#9owOt$bxt+gECuycZHip1jKo!An`Cnm2$@X(ejo+kOXt+pttMsl2{?Ux6gIc#;_ zgYhwE1cCLYTexyS&TBod!0iSk_02?#oP$wol*UQgo4!t9ifJ%y98cOXktDX4Lw7@B z*w`B7cpMPl@f+8fLy>Gy5;KgN@B2~1Z+Oy(t?yC`Y+;d;P$shbKiM|nGh8&6kw|5a zMwLP_>(06%TsQPWl|`g{t$PbY#o4d`SxDv2derSCO)5a=7}7acv0eR*K|RCH+-!|a zs{-5{XZ%!F`yaQGFeT%1uw94xxc>n7sx~DnOxvvk-+Wq z%#7Cu!amO}xJ)KA;?p{}%sY?=^RE8d^4`+cI1yQbC;;NCCCWQjCJs^EW`WIfy}mf$ zh&<#Kr~6txU)h~Lb&JRE;NmePE~KiqaJ_3d#llKb;STrl6VD`y=JPRHTT44~!Y*-C zWcxkimxbOzZ)&*6GfRW`4A*@8UF={H*xMv2$Y5@32Z;8b?gsINAnbB03Fd=mr3_P} zo3#5ry|X>!xBNNe4e}(p!1{{yPQphY4z->;nc_wyU~3!KnqJ>Ua732vrQ7CQ@~YzE zRRDL5L~}(aA0o@9b60$x{{S1Lo1>{7hKvSqGArk=+ILZp1;mT&*r_jQxQaMoeR2rp zi4N56544OHpDOx28|{#P^e9zW=U*>6`G<>LBzH1u&P95~$7*h61LI|Dl~J$~Cs(*24fVQ|F$i*0XqzXlA*T z+VFUQ1mM44#<#_W8g*}$bL7c9@~HMD+KcwIvr9`v{{ZS2WJb9Ax$1ndGhaJ>r*Uz_ zzS1reUTy4S5Jsvt8U_dhrunaE;uh?jbB0BCI9THkaLu`CNEpESn)#tF4ew~Ut>n80 znV5olmOVPxCQO^>Z0^H}LMOO=n$Gg}dR=6dNm&yuowoAj&brO^J7&0FvS)VS7Xg^C z@6HA>j|dgrE(jy7c$$y?Mthon{xmemSP};H7{DNqep)a(dHGaI=#L<0eAXu9WC})i z$*S+KeI$>1wc}>h%v5yhVh%wZ=n+Z4Wy1mQROgCf$Y2qWHemflXv~=1Mo8yO6dxBa zJW~@!LkRV^O zT4JJTbDw4$#Zrd%x}3n|9C?GkvE@{W3#pX+gMMXps$T;f<5NaK$;f6b2h%vM1aT>1 z6a~)28iT%x0;-&zy(y*iZ7&_;WBDQ5=tRaZ%VY%r* zk|3-XyjA}1Q&gnLluW+iZLW3bB)8p+vp~-Bma?-09*o~CnjCo?To&+pO#z&s` zs&iU2j#y0Tfv_8jr6Op~p2iEPoJ|-ck^lo36`6CvEVGn{a4~?`&$VxaF{oB@Tg=sa zh*ioHAq7rwI@PJsE(!NDY#@ft4G=5plXlm+2i}SyWS_hf0yN`Bo^@%Es}|oF+J;vL zP~76G$*KV`iQ#DFQqki92+sas^q|MX;3^od91diY{OZEUr@|LoX9Rgv^c5ItEGQ6- zl1)Sh1Y=)OQ)XRCs<_*FAOzrkRTCM>IQoh#bUKZL0u3UEnghRFRFMc%;#^eMZG|ft z0ItCE6zHL4#&thBa7iUpY&k|p{GjHfV(#ThA{(CzKm)ZC zSQt_Bb*SSTkEI}_92^!kEVMHXM<=BqbI5H^(C0W5%QP;yiIs>u;O7-34#4vBq^qVf zGq<%%1dN(y9<+^X*tT&j|Df%sA= zC87yp4S}~>viA9ohr)W#V1H#Hjx34J-+%QX%sCaFaV!yWl2 zmn>3Gk)1`U4FMihRFs6&yvIrnkH}A@3PAD7#ZQFL#x=#(V{N=y-xN45R#T-JgAX%9 znl{OJ&OzoWL^283A3;fX8xJVC#-)&Eimf13)JZ*Rvd&eHoe)UJ>-koeKyfJ_H4!Bp z3C&UOU0(-qeCV=Bh@)DS^%Zf+CE1Yir`;Mc+(^DmJ!t8Agn;X&vtu~`#^Hq(PP~Ta zTgO=?+~=N(5;YXVFxl7ZwG>-;fm57T6spO%$zHV4&noW>j6E}3t!n!@W$Ewfo9zj5 zb*)6(e(;bsBNdY$7MvV8G<4!jz>e_y8rC|L`!gA6rZMIiAFPwL#o4=5s41}6J%sh+Q$U4LoiPi15Ax^PL zpd5lcy47W#e4LVKo$RUs497gc9ICy{Jd4`MtJ)iRTHf7+Oh@-dYbxAagwxzjr~U(7 zBzH5XRuoahE(XJ1pFvC9qSgr`D%?m=W+{K=H5^W}oW&tRIcYVnIE2{9cBlQNDL>ja z-1evL*ZL>h%fZjwq@<9r%g^{tTZ~KaKzB0iak84$H}W03#`ncH#>_|dtwPl$;5rg# zm3G^QaULNg(Luv5B}2Gngp-<8>Za~)Mc+Qusvc-Jc8wM}ucG{1Rh#BaA3f-UiRl@` z7WF3;;Qs*WXByNq#3awXPyH$5C;tE+C*@vK^&B1#L*laeJ>YSF2~w?+dGAU1q2#3J zt_iOP{{TvO*%&v@MM*nL#gJ#?WCzbQzC#Cr{9bP-y2r&gW5^Drj`YKdaZ$?lPsW1X zq2h;~?7#C-@;JN)#bxq+0rAYr3T0GzwKH)Hf&pgsHS_E7&LZOtcPak>5vCkw{Rf8X zQT`)O~hQteR)@fe09SO=X3R_d|k&b`b>YsX?&a)(EcV~Pj_4C z2?It4o@qVtUk;=`nz8+B!u~3Je`@&mq4(1cQZ{_^L-k1b4~UnO-aax;K&E{4R95MT zI+`+k#GmJ04%5y@_O1AuftFGJ(Z3pBD!dQj-;>^cEh9J&9)I;e&Vx1cvv?*%9)0C_ zQIb#NKaDqeC-ItJE&hk_@5%085LZ9zN=g3!&Y}Eflj6CL1OEU!f9GBt@=5$h@u)LD zEoP6G{{TbyfA)L2-hfH?!~>o?-}9zx_>cw{kuRU`zs|f4NnCBLG|w54o$R!lN1a`;XcHD+sq!vRicO%23(r0JTd>`rmH ztsWP{q~aF}hgOr(22B!JE#~6UaLyMPS6Mr!mC0hqsq_PXdfOa#x-rQm1#G|BZqN6Y zkH&bEVc|j+*4*#kN=_Fe%Qf8Hy70~(T2~$9qzNSDtGQ*=rJ{aU}CQmtw~pyq@YLw~4~R z7}_;B1fH!{yFUyzR{hvs`ew@<91dK`I{{d4Jh%6P*N56qD+Sba<0v!C?}4{0pD#Lo z)k$Z=jlbK6ON!r1dXI5$V(79d z7!p25fpeS;V1708j{uh~cI@P{usbeT^UgmS?(X=E+*62O++MCGx{NX;mZG{>dHJhu@=gl}_g;ali7fM2Yr3RpozV7cAF2Le+=? zqgfS3_`%2Z73wh(Mgi+yUZ?!o>FNIfz%V0naZDKGZ-75KZ6_Gb5P%eCmOQHiq<}&- zHlw7TRQTu5-jt4HO(+QZR13N}0ZATWf<)l39oZQ^bP@_57bDJ&a8p(>jmG++K)7HZX>~OHtALL6$M>`9<9o$5(SE+ zqfA(AY}lufU6hbi@0^;NTEx0p`iCItbpup)^AF&U9YtnwVFWknJ>E=f=_b{NZ7Wf)st4V=dLkPI1P;N)7F3pg8*dISPt-!lTXtE zhFA~jOaZ?6>58i+;MIv+!fLlX`OpSOAAKA)UVwvMoAxxUJ0ob)9oS@hX1uSpjiZLQ zOq^G&eU2es$5?9SRG-Y&*gKs1p2wrX%82`V(4yujkIKCh&MI8(gIUuk8bdK$^dETE zg}~>Yo>fjoY%asx^c0xWDe&0X@fm`QXRT{rS`OeBZN*XHxfjy_axgLPT9-mbi;(rr zNbH9U(jma0%-e{aXVeB(ii|cL zYWv1C@~X1IpAv!%J0YQf1dlp<)zxp2%uswm=y%sAx-qUdp}qkCw!6i^MLYGalpv5n zu4)Lv+$@c|56-sXdt68OLspegR1JW|OXFDK9BK!evg8q2U#}tNMk~--xb$ z`|Rhl7iwDEU0TXl0LLy=A3PCU^1(0bBY5S9_KD;F0Jb=o+;JP6{{ZS5f#Y0IfBMGf z{{WEJbH)D3ID|1gyejf5um;he1OAo6U+_LJ!}WY`4!Vc~g61=)@vdpZG){=TQtU(a zzY{ngv@UV$A*XIF#Phchx&Hv=HA+S9y3_I(&7V^?a%)JA*9?-h(FDHasL20s^l7C zDRpP$I#BQ#_=Wp(y`TPbN`a?(RCQeFbsxQvM@f-+($St~o8j}xj&aCVH)WF( zjMTfpS2}>K`4NHUaY+!iahjxrSZS9h#5SOrfzC*wybO6_fbmEVDx{EEVeS-T29jN` zomE>|<<6Dm=R{r^bXXlA4|;TlTQ^CJ>J<-(1QVJ`!zCkp3{h8xsNC<5S~vh}a=GPB zZZqeKGTMYb5H_jcsPLftC=p#G4A{ZNUVteX(0;T5-!phrRKS>YITV`$;8F)IswXv9 zRQ*Ld2?*S6o#|N8Er#f7CPCEDQCwt`o|va#LEKWZs3x)IDQ2s-e5o$3cr>giF{aKa zWSSevr(!6uCn4C8LS0fml*w-(GfxG)x0A;V2ULqFrjDjWVSA(Hc4Oak1= z6B0c1Bc1%Sj8;cyxQp>#&057MTOJ!`r5@*DB<=hw{Y?(W=H^SqOAyi8!?b7y$~?_< zx57F0wAwrV(Q(D#mMd#uvD%_%N=L9yUow43uM+JS7MlFbs?Dlj6pqc3N3Cr3*NKxL zi6qq7@v+>KTqKUyI+I?6ErP?XVU~YL+XfosC4@}<*d;Ng#Bu}B9rO6t7Xj`#_Y#HN z?;#*B-XP|?Yc-86iMVi<@jrJE3QUg7Ie7uLb6jT`PlWARSr`YEK|OS_Nmx59b>bOT)e3%a4-im&XRynj~j9{H4Lsx zzS-$Oh9kz|o5Rb}lE{I4y~RnwxB#v&bDugG&ZgCZy*8#I4oM`Pvr$q>@!*br)TBW2 zZpTRSqZJJn0p;gK0bfALDh_CJMjw6i)EYU~hZz_=s9HghnU3d`G$N}jDIkN7I;kqN zHl;Yg{A)%~+OP)L-mAQ9MihHhAu}+BX)?f#s-4oaI-$yezNJ6Y6|Hd-V_}?iebBDB!Peq(kiyV5^@DHLKhDi0d_pgb)YVQ-ymlLZx10;5bJCf%7c(9 zQo|ub-AX|nNT!&m95SX#Fw)0-0ksvwXM%#3%;Av(xWr_5v?s1b$XEWO; z{{T{4^=wzUeVkgGPRsE4-EoMQ`B#N@p-t80m8x@+Kn^`lE9njc5Qm4rgOaEf)2BG~ zOxKKHRN9$N)a-CJuH%HMI`35{3LQZ^fy%B*cc2sd-N42-CX)ahD+cOz3$}UIozcuA zd}P%g5g9E$2*GoW>iyb{D5M2Gy>f1nHbs7aWi}6x^Cp>^Paw zMz0t--mTiNixo=SDwsVhLdA6)`5Mg7+O&-688vD}p~3)FHD!P!)~yMZ1YK%Moa$ub zBArfX6^IU5ryvp1q&n1G;7}r^#0pg7%DKy;$spEtHNQKOb~xIyFO(2ZL0QPO3KbH1 z){VFz4=*~*frM;G=T~iIW^Fjyr4-F{0B$IgMkG~bIAx&2jU#QU#98`PG&EFoIAS(z zZanI!nd4`^7d_<{UtU|`_&to3$`@Ay@?X4T?6>eP`f z76XCI@}jKqvu)4bhZ~IefWfDDkexw5VdYv`4Hgte!>;uysiO(1C)_NT#e zFikr|@?2OBLq#y()|}6BnNoYi>JH+A3KY~BXC72WkjA)NjM$xM z;lTN_D6s_zk+{W31Aq-y_>;`A2AQruy`QZBS}}roif->4FFK_645R0u{9}X6iUw+T zSg6PV8#mIkJ}yp=NL@P;8K?sOQyk4e%&Ior)_k+EzyQ$mBj*5$23<2`XO#e#nZ$98 zPIdqebgf`%rdZrQgVA}K^?$Pt$2F77#CW~72*+}g4gKq*2A)}8`Y_FzV^(SXp7tsZ z2LxP3{Y&vDUzNUCy@#E2_p+BQxE@2!uDj%FJ$Y6o{OcTt%eu1Eo_wEw-*nJ7-K$Y73bdZpO8^Y=i@r-!*`T z2iml(oa@?}Vv;&V0I1IA&WeC?s?bT58Ru5UdDf`Gk$mLVKN%T@KtSbNWMp9TtiCN4 zs9((Ut7uVto;$_YyW&ivmpX$<-N4WMBCPh23UNb`&y`_zmf`KYJ$)=+I>N~+|!)o)}W0!KrWBJ#4*ttr@ z6j9|&nzd*+J9^c=1rAy0U6>yg3^Lufa|AmoKi$Vc>ss;ggtD=kXqlodkf0sUrE*=L zxScIT*MP0M0z`SicB5NBF3ZnzA&TBGN+CHWx)x93XDoLvOl$cj;xjzbKX(UGdeujC zRz-~t2g*91TDf=(#zw}NlaM`XjBTK61IBg-%CVKV$*QH;vk;OSX$``Mh_bU|nm0pS zXKK+?j@!rvks!k{-#gcHVx|}_1>7$rcPd6XV@~?MhZV>6;w4C|)383`%kjgG86mA*SdTjtGDT17^PYu+Y(f4KQHBq?taO* zna03I&pNXntQ;MWO7ofM zp)tVloM+CFL$(bxk}{AxvUAp&Sfp~Laxp*>L8-i5Da!)bRiWr|<0o;k6(Y^P+38G7 zi7DgKJajZulirXAoe|V(0QgNu!;LMH3FK*rh61;Q>dhyKLh2xrbM&H;hhzaxHua!_ zbGgBw0Ju9~?NPxXYBAn9R|J!f zYGR^|#0X^8q=QwOAL3BU>sm~p{MaM#s?tHN@))X*x;oWaEg7*wB9YoKs#xbpP$=@E zN}eI&8;+H3NI+0jVuHZn1Ni#WvUZt~8>CiO&iu6vu}teL4LFT+{38{lz>~Sjp}v8+ zTB{b*Ev=h7%cmUn&T0`tx=z}(or_iWP{5qv4pcG*DcGp5E|67#12iPoq=Et8n5z`6iUn=atjvY(pf~S^g-0evQ#MEWx4R#zr z9OkQdT2~~Ux^xv_43mw9XhgE4t%U=9=wm|QVm{%HtQL01<5#X6@&Fa(nybNWfwNNE zXC{kv2v_~vk_Spw1SDXvu{&b9YuQWAMt03?aXCsrRJP}8!cne4o|O%jk!~~v0X=H( z4@_sBRZ)y6txFXOHr|RT(uWLyQS(EOVTvVEC6SRe432axX*nF~#t9V$UU=n05G{Lp z&}NY1dYkRFR-KP6u~OMoSGbckojYn^4=T4ic(Kx}<1(Fr@~oRQNUjtEu*aQWv>&|B zl~Bg#THl%mBFD)5Pnod@-+Cy^(KZ? zw(J`tl>;n|CKtPl~5(GZ0@ zei*6{-0jY-#6cO(=CzEB+MvQs$P0>tvF~w%k2*>)dDNSpD@!0NE~OY_koLl~H77J0UbeCEG~F78D%Fqpm$F4>(cb!S|u8 zB%d4aL`yicsg6&nqQC@~86PfBr35t3^2BRX01OQvdJ1n57zKWYs=&|gW+Npu{b|jk zFy259rC()s0Ay5IAFe&cJ;(|l0-><-lj%hG7>6f%KXh}*)Vs0ebKJ1*BWM2rgl4pDyD!EjBqfB*!_yzmwT>yv zvL((dyE*X$eGzj}Xq0jSy9;i^amk4dXwd=poPZ5nwEH>YvN1OjTSC1xK6Ch1t4o#r z67%CWha67=)+HR!=d9BL<@l2XYlVA+egBV`<`CjQ*YnIs_3 zKBl#S0Bu$8fHvf|!lHbkF@wf;BeaDq|U6O?)f)ZN}NzkfszrApfV>{Pz*|Ln5 z(2Y^CYz7Ae`FnGxKE+|~bY|(`(k@$6+I~#zrnNXi8>m9fAw=d+kgjGVke>G7`180Y zEKO-!-ZXa7CnJtjvAXVSky_xF8@i3>Fk1!?jm9dyjFCj@Sv$tg;EaJ$i9^eW$PKY? zD!nm=-B(I(IRnE;E0SkARe1G-TrJ(W(h%xs^p0SRjD9sK(+S4oM=`?~Ny8$1g3GZd>-}p- zgWk6a0Vw~?Uf#;Ic|-X z3v5ER{-TBhh8Q@{ts}Y+Dmrvvu_RVyl79izL2T2K#ZGbbsNtN2I|@ulI#^?Vl|mzx zJF^gJyT#R{?guI(DsQ^y(uK%nlOUb3K#7u`6M=)uqS54nNWeVlwT$U2kOwhITt58$ zJg5-~0e9R1FP^fb`JJID_wp(T%R3z`Ak3TZ!&(f?ep`6IN zMGe4W+vjRxDmt!kIs4EYU=FoqfB=9-f1Lt-SlDAVM3o=rBO`hPDb52`h7ujv04OZV zGpK$7n1B#5$oXW`GUap=wrWSkojWM%Y5{>@x^s@S#5RCb2FTu=vv@**zvW9yXC;ED z>DHJQXCX(6u4n>F5Fm_dCv&|KNJ!2{paPhDx_P%#Q&iJ}!)iRtn7Bl+PKcv z-G^fs$*PYa`yFrC9}8=aF@40O1gZfNk~x#P{-2F~0)uMdKFD|(;Qf-c*1Be#ch9$0 z>G)#1)f;bKjtJ5`yz;pcQMC$VwHO=D2Y3%bu93cjPot zMn>--$Q^1MDI-qCH%L)c!2v+UR=IW#z=M!^(W350El6sG?Aikmb!Mfpq-60oXOWjY zx6KB~5`0~J>MZ6-aCauOAdgCoKxU;DNeAyX9V<%M3<3r!qzW}=w5>oH1XUpy5jLr) z2c0Fxnv#w8t0Y3CK+}qe=bB=`F6M>^rE+lOilsYcdGo7RB$9G+In`qsVURgiaxD~O zQb9F1Q*HTj-mLd30N$igS8-EA+*NqBFxb%{LVyMsIohm%rv|3rxX)2W(A+=;R?2hh zR-=7c>p<>&Su{wFoq*n{2s#`Lb)z0s6+7mN#~)gjS^&onP8c^aN_E>%{HhV|0ihJa zv_SGS39Z}%fCx2cdeoMkCMz){M~ITCw^2m5o!EdzpIX+IHEwm8a|VK44rz7{<;3wW zbGV{stx&a}7z{eq^*Xm4t5odCstxx66i#X}(uRX51xz;Q`BsR4Qm8wwK&tGZ)#p-E zJu0NCSAK@GnQ`O^@-*tjPDkNP#~|jSt>NCYvgo#xt42~qNh5A?xX3iBn;$N;sN6a{ zg>BFP2tSPxBUL^TnmU+=HU^<3)G_iK`&WW`!=jV-euAbD{{RW9zqA+btutRp-`S!1 zQWZQvaiQCGf(l4AquKV z=ml$Vt_63+XGpkxlgP|Rh%bbClU|?M&c)d9NALKP$8~fEg#!3g`}MA@I$31@07%0o zc);^M&hQQ^$7OMA3nXYfQntzumTSM@pJ#S<@hqHT;qE5ROmVgpdS|V6iz7+`BCK)w zD8Q+ag~HdXhe?hczE3|Us&e6QQ;n@SWI`(&B#B4xF6Zk(my6w;nB%}33cPR+iv-Z5 z?u%(=@gKT3z^=ORbKl!DQ;W>oOz)iXt7iBx-Lrw`O#C$@$yOlxilZk3xZgy}f_Db9 zlxOs4r2;p1yPf^2d>+f5xg^pLrPI0P5 z{_ts4Kou8YqmZaDEt1qUIRkH{SV4iQzY3;|tb)cs-+HOUFu|7~99D)po>hs)E&}8z z-`1i^kx=EF_14aCcPE`!DtF1LmhTv|9sMc57_M`qrt5=OEP%xVbs$sO$)&gDK$|!1 zjs~`x|wx?DrV$Yb~wTX<&@{bK-aZHHGL*nu^y5lLmVeuv3E6>)g_A`%j&bwBa zB$LR3YsdcD-#jwRDH?U;`t4rD+VQlQ>N8#?_QK5EI?t#QZ}?VAxzPI_UkJ$qujO5T zXUtOfDc{TAYQp1S4^Qb_m9QDEvw>zfqHAPUoW2mAK<0^+gxiW{xQt0Ab&Z+a){V3Q zgGkI05;Lfc&#}(5X%gTc_^V~>DP?3$5LF6hTbV!xWlpEWivUf2sSaE{hb)!aUn-a|pt%FD27Gu7U zIUG=JkVkI=ul6#>s5f1Ef!)nHvg)yGW|$CK6jmE`>q&S-SpJn=IiV zLu<#bAW~EYU^BP1bPoX1Nd)8_vCHPi=e1?_y4CDEMX2s2P)t*;fymUe%YjC1;Em3I^=FnN53oF$W%7SDbx@5*5H3#OdDj`(I|0n(5mE0Mo8;J3&U$Y^xc%5NhQg1VCzUZ1!iOh(dE%H7axySC z0;Xo~RZ8KPA291tB%VNKn1GeeTX1}h35#cOrM#%juOkx21D-tU61wL*6VibU8yE*U z9(2xdMv8~VMm^-N>k;f{Dlrrj47<4oNUU;`1%K!&3XicwAhz2C`U8>f# zW8wuzTCXaGa$?wzy^YN<0o}|F0*V_%#g294dQqGK{h2D<&S+SELP5VWY1o(h7Cgmow?D(Wb^Z= zY^3!fkPstJA>#9>V2*t8L<~vsd(_eSUPtxnP1p6|Lt z^K-6~>?eWzZyUPelCDzRcX8+Vk3Y-#)|l0^JhIyxJ=Vr0irORt01c|p=g)d%Tn+kB z02#>@>OoRGxjSS|%bKMtWzAfe;Z7=vY_Zy@l7UFvwkE28X1|RCU`D!*eCogf-*R#d zSK*ePZnRisn#$2w>kDEBEemeoj1v5rHfI2afd zm~y94>sCn?Fle~&?^Gtr(*`S% zRR$R0j>fN(wN;e>Z9r{Ff@N843Y|)6;*o;$&MMOG2H=BLrH?}rqrzygW#~v{$TeUO zE_In~;ah%HppCaZ>v+o1l$8cvvvb%vy>qVv3@gc2h$mI~ai41LICl=P;@5IZ zFJ`0R{5Swa(oLW*ulsxVE|1Dle4C~tosBn7L!?5|?@e;a}Bgc@L0(gDu((?#}sz~YlLTf^Ot zQ<@>9$t7tTL)76n{8K!egvG=-wa0VA?A~YOLJZ^I%Doq}-GCOQZhKE8Kx1oYj$1yb zm3DkNIClwv+VGobt&ok`2It(+u39{v^HC>#>%SI~7}d*`IqGFT7YLhi7;P!Fl1>2LpKZf$ilUI-GT=v{Pc|m5!D!37x{pCrq}ZBBn!b0&JgBM( zU{2$pq!u_lP2z7l6qi75fShhml@5f4zn{5`d7_leWfLYn`dKRKmDvsO|7zHo1E5vX791*mcVCx=gPW{07@z{%r(aPl>pqF z?Oe1YBv(zq^g!^)P`8LTglCm07lhxul_i@ZAsZ8xML7yjF-|~51nhbWwcSIdq=c#@ ztXvrfh-cE2DQ_9o-Zb)`m!K4)Z6J`^nL@0LM_g52DQu}4q)C+rB%XDC2@0bzIXS?g zPm7H@b!ktS<7(6B&0U$iItFK9@}@pxS1qMBcQ;V?5zE|#*ISuVi-nLW$rZheg zM7NYj#8P{fX0~KxlLI&eR&TLZa~-%W;tPYh4bRev!)9si!={mukWZhB{=T($j@q=` z3Sx{MRdS^BAb(oN;1a9ZDhw`=LG?I4(uV&4iJgBV)jq_h5qAFohOyWZ%DCmY#d`;D z{Ec_?5Hdm+yA(%1zMt>^$o3#8gKG61m_e?){f=JkOILI{< zf}AK&p3I4yQa0e4vKVQ``8D5mVJ=}}ndO{UPZNv+4n`}=lv;Fp$=a}> z;Wr!g+m#CD)JUw3#G`WuucaAW1_10mX`cm;i*d@35ky$PMF1cjDTo?z%hb~#M3DH2 z&inMIV5LDD(?A7)ZGj*Pts`s!7{@BI-0@M+Fmf^}h^|QHGwVoWK_{OSBry*ueuCRQ{e0S8WT&Vi9-U@!nA&{!(uFgf%zeCi-{J!%puOz8or z6Dr(E1TnKnp->IjnhHEqAd)kbKPd*T%8^YGON3bv^HMXK0z!~Ri3}kSa!@%6p%rwf zY$(s21S!eJNc0tSv2euc3OuMqHDD>g2cMlVDlBYs_eY%;6d2Ul#%Ru!jgP*`kvQ!&O%auf)Xu*US0REJ z?XlC$4s-_6T$7A>3Y#u@^{BQK0gdPwGwZOR$Ur-0r0jE=8yu2O=9PfN0MfAeY1~MKk6VlRMcT<0Zk#muSFhtUUQIYo17`Ys}h`?Rcnl>14(YD(vuniGc-`U zlBWY|FARmEw^COm_>Z}&mt$H*777<_hox)B3&yHLWpP=SSG;LJyJMDX zpuW)H>dt(t1(WyWW347MUg6Q0e5zQ% z#GWF!A6l@nlT8>0m(54VhsbrJfUL>@J8eSK;W!j|dVq2&3VE;MX#gO&Bp!Ip6apUy zU}+J^`BV84MF1KycLeQ680shpMn|n2AIgR_F$10|K}aOhRXd6zWO~vn$3czidCoIX zURzUxy-tsty?lFUBX!oIf}~LRd2Y+tZTIHrEep>Wh83` z1%|`O(x=EH^`%fz=bTfpJ*B;t8J@{rSjLh2iwHW6?R9)^`3jyS0Bh{bHS;Ip{Z>S~1TB+?MOr=1kQ z?D=LSb$>`nyDjC87CWh(tIH9 zYqZLz9L+jvbDGD3Mt93(Eo-cRAPcamPsp4?s0y3>$C;qzm9U^>^7Qwk=fR&kh5`b5 z^vzX}LF6#1$EX%NnwreWx!XRpG(}RIgPI>dENZFe>3csBjm~9&3Vg~1SKZQ}amlBSA6w*S6oxUiG7OEgQbD(^Vr)qVQC3FkY6vzvQI~N|63X(f zaX@7t@6xTvHv`t7-~mjQ8;6`frEfvcdcm^((zl@LR}v&>X9Bahj>^Wg2O(M9PvmN{ z5y5tYaVR}SeChVCaU>`XKx1D;_JH_h2bmbneCzhPg}jM+laWws^l%W8Gm7ds1>4)k ziuh>zz*ruD9qX2ekVn0A{3+p%)a&s`SPx-SBTP)`CAQUjJeKmApm_@`4ZsJd(um#7 zvM~j->q5PbcrGN07at77G6WpK8LLr4Z*Lfq;F)B`d$M*O^rCFVWavP#(t+_p&?cY~geK={`Uw5ROK9?a&5>LP|IHSY&+#ab27%9n7fA!SjH= zyVqxKhSmslyEJzyPP4I62?SRaajx66QkC!qVsd=3&Xjvm88~U3GOvg-uv47x({W!< zeUR~?#k(DC8#ZLN{o4Y6>)O6!Xw-tkQDS#LQJud!^q;X_Je(_xHJt9kJE9Z=$R9d* z%yO@@wEJ4@lTDs6!y_Ve{?%9S4?lY0`#aisA_)cFSwY5gxUZp4cRXbr21c(6`&H~@ z+#2>yFT>QEDH|@U_Ya@7VV?q*@<&#eQT-%!mUj`{pm^9Y#aRRf1a+?@?Ee5Cmex=M z9XyWp=)5D1Ti>n;(EPA#%#v|upldkq04PSsk)&HmY>yT;Tu{{i0MMel5?5^W$)N)W zmSLF`FQBM7$iVB*&Wu}eJodVn(JJKAkGl^J2gZRatY;3{wIs z11TWq29mHD82o5q^c(81l6>eY;N&RZJm`wpSh{g ziHuI1jNtw?2O5uz;*84KAy*)depE0SiCrgdpk|nWvK=_U`qVMv~^SiG!{B+|=_lZ~q4s6nMyen3zljQYGQP8TN`!0Sw)f&twARWAwH z8bcwlIUdyq9F0k^M(6OMKH~zA=oFoLP-G*JJ5d`O^Cp1!89jYzSmgRbUGV|-Z{wCx$>+~vP~*O2ro3O6;yL1>;)0rwo8*Mn9l;PRtMk~H-@ z??IkJ6fGkt)CK?*45SVvS@?rUz_f7UX^7s5`ut?(Z+PuARO}EqWr1bY8xJu*dS+abT+}MIr5?6q@ka5$66Zf zPdX+y!S~HU^VaAn2xqQq`zrsTA19Dl39F=~3L1nCOjP;Otj$b=+uKYHJUOxEUYGiRYB^YA{B)^TJJ#m% zYwU3N7y5l}2Zx8_-Ron4cBQzz!ozK15Or*l1u9jx4OUson=;F!#TeR0MpGvzdS~#D zT2!mhPR>e8uom$Rxz$j7y~D-)@4Y^5uY4&+?^8pwLD}wov zL)w)pmIx48HDH~OO0f*>tPYf^R5Fby7&?lZ4M66VDx_xnfw*q%0q8kaO1r%50LjfN zR58TA98Vzy&isHI0YbQ#E~H-&8xko}p^iMWHd%H%8qT?J>PM|ARf}ebuA?WO)gTUb z=}MJJL68s)9zL|GQ$(3+XbI;n9Dw2T1DT*@~3oWEFWU(8oFvbV{bgoCWUE<%xGcFG* zRH;L`Ilsi-vnF_zl;Ls${v#jMRqhudwY|5USmhmC8O178quk0$;(b@y?jpC`D%#}^ zRz(LsMzroAhVlo7;RJ}o1xVWzsaHcs6kD^we$x8~Cjz*8{udmLV#JqGzjl90R^-L_H?syk0)or`$*^(JC6__db+zVBNfu-H&#AbvD0Vr`5X&IkY0pg3 zrA!0?8cQAOOm!W(3RI~GjG9Q>ZK?r&QUC+ql`3F34UB`&si7Cp#4~3FCm ze6qfc&cya=|o*caN61+jtG}ZAm}MluSZP&9*w$e1~#rQl!BHb=JTzIXtSoiQnENStcmXTi%r_mRdDNV^P0? zvu|W19X{EmN|PEfE>YT4$r$CZtsWS +

Interactions

+

My engagement with content across the IndieWeb.

+ + +
+ +
+

About IndieWeb Interactions

+

+ These pages show different types of IndieWeb interactions I've made. Each type uses specific microformat properties + to indicate the relationship to the original content. +

+
    +
  • Likes use u-like-of
  • +
  • Replies use u-in-reply-to
  • +
  • Bookmarks use u-bookmark-of
  • +
  • Reposts use u-repost-of
  • +
+
diff --git a/likes.njk b/likes.njk new file mode 100644 index 0000000..03df191 --- /dev/null +++ b/likes.njk @@ -0,0 +1,47 @@ +--- +layout: layouts/base.njk +title: Likes +permalink: /likes/ +--- + + +{% if collections.likes.length > 0 %} +
    + {% for post in collections.likes %} +
  • +
    +
    + +
    +
    + + {% if post.data.like_of %} +

    + + {{ post.data.like_of }} + +

    + {% endif %} + {% if post.templateContent %} +
    + {{ post.templateContent | safe }} +
    + {% endif %} + Permalink +
    +
    +
  • + {% endfor %} +
+{% else %} +

No likes yet.

+{% endif %} diff --git a/notes.njk b/notes.njk new file mode 100644 index 0000000..c9ad0e6 --- /dev/null +++ b/notes.njk @@ -0,0 +1,89 @@ +--- +layout: layouts/base.njk +title: Notes +withSidebar: true +pagination: + data: collections.notes + size: 20 + alias: paginatedNotes +permalink: "notes/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}" +--- +
+

Notes

+

+ Short thoughts, updates, and quick posts. + ({{ collections.notes.length }} total) +

+ + {% if paginatedNotes.length > 0 %} +
    + {% for post in paginatedNotes %} +
  • +
    + + + + {% if post.data.category %} + + {% if post.data.category is string %} + {{ post.data.category }} + {% else %} + {% for cat in post.data.category %} + {{ cat }} + {% endfor %} + {% endif %} + + {% endif %} +
    +
    + {{ post.templateContent | safe }} +
    + +
  • + {% endfor %} +
+ + {# Pagination controls #} + {% if pagination.pages.length > 1 %} + + {% endif %} + + {% else %} +

No notes yet.

+ {% endif %} +
diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7aca266 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4514 @@ +{ + "name": "rmendes-eleventy-site", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "rmendes-eleventy-site", + "version": "1.0.0", + "dependencies": { + "@11ty/eleventy": "^3.0.0", + "@11ty/eleventy-fetch": "^4.0.1", + "@11ty/eleventy-img": "^6.0.0", + "@11ty/eleventy-plugin-rss": "^2.0.2", + "@atproto/api": "^0.12.0", + "@chrisburnell/eleventy-cache-webmentions": "^2.2.7", + "@quasibit/eleventy-plugin-sitemap": "^2.2.0", + "eleventy-plugin-embed-everything": "^1.21.0", + "html-minifier-terser": "^7.0.0", + "markdown-it": "^14.0.0", + "rss-parser": "^3.13.0" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.0", + "autoprefixer": "^10.4.0", + "postcss": "^8.4.0", + "postcss-cli": "^11.0.0", + "tailwindcss": "^3.4.0" + } + }, + "node_modules/@11ty/dependency-tree": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.2.tgz", + "integrity": "sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.1" + } + }, + "node_modules/@11ty/dependency-tree-esm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.4.tgz", + "integrity": "sha512-MYKC0Ac77ILr1HnRJalzKDlb9Z8To3kXQCltx299pUXXUFtJ1RIONtULlknknqW8cLe19DLVgmxVCtjEFm7h0A==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "acorn": "^8.15.0", + "dependency-graph": "^1.0.0", + "normalize-path": "^3.0.0" + } + }, + "node_modules/@11ty/eleventy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.2.tgz", + "integrity": "sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==", + "license": "MIT", + "dependencies": { + "@11ty/dependency-tree": "^4.0.0", + "@11ty/dependency-tree-esm": "^2.0.0", + "@11ty/eleventy-dev-server": "^2.0.8", + "@11ty/eleventy-plugin-bundle": "^3.0.6", + "@11ty/eleventy-utils": "^2.0.7", + "@11ty/lodash-custom": "^4.17.21", + "@11ty/posthtml-urls": "^1.0.1", + "@11ty/recursive-copy": "^4.0.2", + "@sindresorhus/slugify": "^2.2.1", + "bcp-47-normalize": "^2.3.0", + "chokidar": "^3.6.0", + "debug": "^4.4.1", + "dependency-graph": "^1.0.0", + "entities": "^6.0.1", + "filesize": "^10.1.6", + "gray-matter": "^4.0.3", + "iso-639-1": "^3.1.5", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "liquidjs": "^10.21.1", + "luxon": "^3.6.1", + "markdown-it": "^14.1.0", + "minimist": "^1.2.8", + "moo": "^0.5.2", + "node-retrieve-globals": "^6.0.1", + "nunjucks": "^3.2.4", + "picomatch": "^4.0.2", + "please-upgrade-node": "^3.2.0", + "posthtml": "^0.16.6", + "posthtml-match-helper": "^2.0.3", + "semver": "^7.7.2", + "slugify": "^1.6.6", + "tinyglobby": "^0.2.14" + }, + "bin": { + "eleventy": "cmd.cjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-dev-server": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz", + "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.1", + "chokidar": "^3.6.0", + "debug": "^4.4.0", + "finalhandler": "^1.3.1", + "mime": "^3.0.0", + "minimist": "^1.2.8", + "morphdom": "^2.7.4", + "please-upgrade-node": "^3.2.0", + "send": "^1.1.0", + "ssri": "^11.0.0", + "urlpattern-polyfill": "^10.0.0", + "ws": "^8.18.1" + }, + "bin": { + "eleventy-dev-server": "cmd.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-fetch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.1.tgz", + "integrity": "sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "flat-cache": "^3.0.4", + "node-fetch": "^2.6.7", + "p-queue": "^6.6.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-img": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-6.0.4.tgz", + "integrity": "sha512-jSy9BmubVs0mN76dcXWfSYDgRU+1+/rq/SxUR3MgIvTUAJRDop5pFW+Z1f56CDcOlEHaiPqHgnfOlqRmJvXl7g==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.0", + "@11ty/eleventy-utils": "^2.0.7", + "brotli-size": "^4.0.0", + "debug": "^4.4.0", + "entities": "^6.0.0", + "image-size": "^1.2.1", + "p-queue": "^6.6.2", + "sharp": "^0.33.5" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-img/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-plugin-bundle": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", + "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.2", + "debug": "^4.4.0", + "posthtml-match-helper": "^2.0.3" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-plugin-rss": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-2.0.4.tgz", + "integrity": "sha512-LF60sGVlxGTryQe3hTifuzrwF8R7XbrNsM2xfcDcNMSliLN4kmB+7zvoLRySRx0AQDjqhPTAeeeT0ra6/9zHUQ==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.0", + "@11ty/posthtml-urls": "^1.0.1", + "debug": "^4.4.0", + "posthtml": "^0.16.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz", + "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/lodash-custom": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", + "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/posthtml-urls": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.2.tgz", + "integrity": "sha512-0vaV3Wt0surZ+oS1VdKKe0axeeupuM+l7W/Z866WFQwF+dGg2Tc/nmhk/5l74/Y55P8KyImnLN9CdygNw2huHg==", + "license": "MIT", + "dependencies": { + "evaluate-value": "^2.0.0", + "http-equiv-refresh": "^2.0.1", + "list-to-array": "^1.1.0", + "parse-srcset": "^1.0.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@11ty/recursive-copy": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.3.tgz", + "integrity": "sha512-SX48BTLEGX8T/OsKWORsHAAeiDsbFl79Oa/0Wg/mv/d27b7trCVZs7fMHvpSgDvZz/fZqx5rDk8+nx5oyT7xBw==", + "license": "ISC", + "dependencies": { + "errno": "^1.0.0", + "junk": "^3.1.0", + "maximatch": "^0.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@atproto/api": { + "version": "0.12.29", + "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.12.29.tgz", + "integrity": "sha512-PyzPLjGWR0qNOMrmj3Nt3N5NuuANSgOk/33Bu3j+rFjjPrHvk9CI6iQPU6zuDaDCoyOTRJRafw8X/aMQw+ilgw==", + "license": "MIT", + "dependencies": { + "@atproto/common-web": "^0.3.0", + "@atproto/lexicon": "^0.4.0", + "@atproto/syntax": "^0.3.0", + "@atproto/xrpc": "^0.5.0", + "await-lock": "^2.2.2", + "multiformats": "^9.9.0", + "tlds": "^1.234.0" + } + }, + "node_modules/@atproto/common-web": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.3.2.tgz", + "integrity": "sha512-Vx0JtL1/CssJbFAb0UOdvTrkbUautsDfHNOXNTcX2vyPIxH9xOameSqLLunM1hZnOQbJwyjmQCt6TV+bhnanDg==", + "license": "MIT", + "dependencies": { + "graphemer": "^1.4.0", + "multiformats": "^9.9.0", + "uint8arrays": "3.0.0", + "zod": "^3.23.8" + } + }, + "node_modules/@atproto/lex-data": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@atproto/lex-data/-/lex-data-0.0.8.tgz", + "integrity": "sha512-1Y5tz7BkS7380QuLNXaE8GW8Xba+mRWugt8BKM4BUFYjjUZdmirU8lr72iM4XlEBrzRu8Cfvj+MbsbYaZv+IgA==", + "license": "MIT", + "dependencies": { + "@atproto/syntax": "0.4.2", + "multiformats": "^9.9.0", + "tslib": "^2.8.1", + "uint8arrays": "3.0.0", + "unicode-segmenter": "^0.14.0" + } + }, + "node_modules/@atproto/lex-data/node_modules/@atproto/syntax": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.2.tgz", + "integrity": "sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==", + "license": "MIT" + }, + "node_modules/@atproto/lex-json": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@atproto/lex-json/-/lex-json-0.0.8.tgz", + "integrity": "sha512-w1Qmkae1QhmNz+i1Zm3xr3jp0UPPRENmdlpU0qIrdxWDo9W4Mzkeyc3eSoa+Zs+zN8xkRSQw7RLZte/B7Ipdwg==", + "license": "MIT", + "dependencies": { + "@atproto/lex-data": "0.0.8", + "tslib": "^2.8.1" + } + }, + "node_modules/@atproto/lexicon": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.14.tgz", + "integrity": "sha512-jiKpmH1QER3Gvc7JVY5brwrfo+etFoe57tKPQX/SmPwjvUsFnJAow5xLIryuBaJgFAhnTZViXKs41t//pahGHQ==", + "license": "MIT", + "dependencies": { + "@atproto/common-web": "^0.4.2", + "@atproto/syntax": "^0.4.0", + "iso-datestring-validator": "^2.2.2", + "multiformats": "^9.9.0", + "zod": "^3.23.8" + } + }, + "node_modules/@atproto/lexicon/node_modules/@atproto/common-web": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.12.tgz", + "integrity": "sha512-3aCJemqM/fkHQrVPbTCHCdiVstKFI+2LkFLvUhO6XZP0EqUZa/rg/CIZBKTFUWu9I5iYiaEiXL9VwcDRpEevSw==", + "license": "MIT", + "dependencies": { + "@atproto/lex-data": "0.0.8", + "@atproto/lex-json": "0.0.8", + "zod": "^3.23.8" + } + }, + "node_modules/@atproto/lexicon/node_modules/@atproto/syntax": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.2.tgz", + "integrity": "sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==", + "license": "MIT" + }, + "node_modules/@atproto/syntax": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.4.tgz", + "integrity": "sha512-8CNmi5DipOLaVeSMPggMe7FCksVag0aO6XZy9WflbduTKM4dFZVCs4686UeMLfGRXX+X966XgwECHoLYrovMMg==", + "license": "MIT" + }, + "node_modules/@atproto/xrpc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.5.0.tgz", + "integrity": "sha512-swu+wyOLvYW4l3n+VAuJbHcPcES+tin2Lsrp8Bw5aIXIICiuFn1YMFlwK9JwVUzTH21Py1s1nHEjr4CJeElJog==", + "license": "MIT", + "dependencies": { + "@atproto/lexicon": "^0.4.0", + "zod": "^3.21.4" + } + }, + "node_modules/@chrisburnell/eleventy-cache-webmentions": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@chrisburnell/eleventy-cache-webmentions/-/eleventy-cache-webmentions-2.2.7.tgz", + "integrity": "sha512-9Z4fD5MdTBvOprzcNcRGOyyaVo0ETyoQEiotNgV/eFFJiSidV3VRcab69yybJCkrq7L+aqWRrCdrx7ilL8YKTg==", + "funding": [ + { + "type": "buymeacoffee", + "url": "https://buymeacoffee.com/chrisburnell" + }, + { + "type": "github", + "url": "https://github.com/sponsors/chrisburnell" + } + ], + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.1", + "sanitize-html": "^2.17.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@chrisburnell/eleventy-cache-webmentions/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@quasibit/eleventy-plugin-sitemap": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@quasibit/eleventy-plugin-sitemap/-/eleventy-plugin-sitemap-2.2.0.tgz", + "integrity": "sha512-7YoU4jjipLjifBhZwttLWbAAkImmBfeMQ0+1ST6mJO45z2mFLHZcgnfHwGF2joNk74wiYNsNOB1ennouzQFZIQ==", + "license": "MIT", + "dependencies": { + "array-flat-polyfill": "^1.0.1", + "sitemap": "^6.3.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@rgrove/parse-xml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@rgrove/parse-xml/-/parse-xml-4.2.0.tgz", + "integrity": "sha512-UuBOt7BOsKVOkFXRe4Ypd/lADuNIfqJXv8GvHqtXaTYXPPKkj2nS2zPllVsrtRjcomDhIJVBnZwfmlI222WH8g==", + "license": "ISC", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@sindresorhus/slugify": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", + "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", + "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", + "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flat-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz", + "integrity": "sha512-hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==", + "license": "CC0-1.0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/await-lock": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", + "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.17", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.17.tgz", + "integrity": "sha512-agD0MgJFUP/4nvjqzIB29zRPUuCF7Ge6mEv9s8dHrtYD7QWXRcx75rOADE/d5ah1NI+0vkDl0yorDd5U852IQQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/bcp-47": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", + "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-normalize": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz", + "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==", + "license": "MIT", + "dependencies": { + "bcp-47": "^2.0.0", + "bcp-47-match": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brotli-size": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz", + "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==", + "license": "MIT", + "dependencies": { + "duplexer": "0.1.1" + }, + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001766", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", + "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.277", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.277.tgz", + "integrity": "sha512-wKXFZw4erWmmOz5N/grBoJ2XrNJGDFMu2+W5ACHza5rHtvsqrK4gb6rnLC7XxKB9WlJ+RmyQatuEXmtm86xbnw==", + "dev": true, + "license": "ISC" + }, + "node_modules/eleventy-plugin-embed-bluesky": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-bluesky/-/eleventy-plugin-embed-bluesky-1.0.1.tgz", + "integrity": "sha512-6+0A92TIiJ5MJaJhcMshX5a2R4pdAJjAYz7EvDOk7T2zyr59Tyq9bRm9lEx2IRdZ5fx6CiRNMgLb+KXkzlLd2A==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.0", + "string-replace-async": "^3.0.2" + } + }, + "node_modules/eleventy-plugin-embed-bluesky/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/eleventy-plugin-embed-everything": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-everything/-/eleventy-plugin-embed-everything-1.21.1.tgz", + "integrity": "sha512-Ucr27//kAkmpAKGvzSYbtlSCTVu+F7iJF5Smw+81PxAaofouiHhusJUQA6GJkJ1A7WgTDuwHWJjZ5mAXJWNtuA==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "eleventy-plugin-embed-bluesky": "^1.0.1", + "eleventy-plugin-embed-instagram": "^1.3.0", + "eleventy-plugin-embed-mastodon": "^1.0.2", + "eleventy-plugin-embed-openstreetmap": "^1.1.0", + "eleventy-plugin-embed-soundcloud": "^1.2.10", + "eleventy-plugin-embed-spotify": "^1.3.0", + "eleventy-plugin-embed-ted": "^1.0.1", + "eleventy-plugin-embed-tiktok": "^1.1.8", + "eleventy-plugin-embed-twitch": "^1.2.8", + "eleventy-plugin-embed-twitter": "^1.4.3", + "eleventy-plugin-vimeo-embed": "^1.4.0", + "eleventy-plugin-youtube-embed": "^1.13.1" + } + }, + "node_modules/eleventy-plugin-embed-instagram": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-instagram/-/eleventy-plugin-embed-instagram-1.3.0.tgz", + "integrity": "sha512-uF63snWEViwLQzr85ZAbKRXlWcLdPwepxuy7gERQVPzTNYWiPU1ruyf8H40qmznWPo7kWHa9Nnb5p4tM2Ilcjg==", + "license": "MIT" + }, + "node_modules/eleventy-plugin-embed-mastodon": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-mastodon/-/eleventy-plugin-embed-mastodon-1.0.2.tgz", + "integrity": "sha512-JPDUcec2UouQ+tP1087ENMzfo0j8t0JXIYGfTjt+7HxF3cVUmPk+ZZhqX367OJmK2XSbeM5ZfPDORJ4Lhep8uQ==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.0", + "deepmerge": "^4.3.1", + "regex": "^6.0.1", + "string-replace-async": "^3.0.2" + } + }, + "node_modules/eleventy-plugin-embed-mastodon/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/eleventy-plugin-embed-openstreetmap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-openstreetmap/-/eleventy-plugin-embed-openstreetmap-1.1.0.tgz", + "integrity": "sha512-XKwEziI7feVZCkJXGSzgAlXR3ee9HeQ/WuTLS6KJKBQ+qGjOQHoi1seoTzsxeC/qt5V0pzgSD1xCgypQUlJ6Bw==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1" + } + }, + "node_modules/eleventy-plugin-embed-soundcloud": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-soundcloud/-/eleventy-plugin-embed-soundcloud-1.2.10.tgz", + "integrity": "sha512-4G8z4rmbPJDGi43kJG6K9pRWyVxWCo+CdFpWDUlkvUX5XyKfEzVNbO/8ML0ci4WU79U9FyjLtF1yKlGPEAO2lg==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.0" + } + }, + "node_modules/eleventy-plugin-embed-soundcloud/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/eleventy-plugin-embed-spotify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-spotify/-/eleventy-plugin-embed-spotify-1.3.0.tgz", + "integrity": "sha512-waVUtW5PO9aKYQEjnvHG4P5bPyKj+SSUBuDtqfF2K+j7dGItmEDD4DP7CmBz6lkn/LlJGmJ7uT4Mr6L4jAP4bg==", + "license": "MIT" + }, + "node_modules/eleventy-plugin-embed-ted": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-ted/-/eleventy-plugin-embed-ted-1.0.1.tgz", + "integrity": "sha512-F1CayKC05sGDAcdEgaZUP3Cs/71mwLT717sIUUiZWu+Gjd1Lp7m2gqL1R/uKnHN/CFxKYTpAA6ZNN/LCjg0ufw==", + "license": "MIT" + }, + "node_modules/eleventy-plugin-embed-tiktok": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-tiktok/-/eleventy-plugin-embed-tiktok-1.1.8.tgz", + "integrity": "sha512-U0J7LV0lXmRbEt05E0NzbXiPw8V0Rr5eEQSyFwzAMrdrsxhoCSYFuE2L6+b7SXbV8ZzFjbPX07n1c4hgLfvfrQ==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "regex": "^6.0.1" + } + }, + "node_modules/eleventy-plugin-embed-twitch": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitch/-/eleventy-plugin-embed-twitch-1.2.8.tgz", + "integrity": "sha512-ScjROm5sOwcClyE0DvZQ+6qF67lV4Yycsvb8p189QyJz3/wFw+9SQhyToY1FINRmUURIFRfLgp7AUXb3xAHmfg==", + "license": "MIT" + }, + "node_modules/eleventy-plugin-embed-twitter": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitter/-/eleventy-plugin-embed-twitter-1.4.3.tgz", + "integrity": "sha512-gHpoz7OFfpw/8QuK+m1ENQuzOdLAdGiP4R0cfAdMBAJMjMpB0moW6L3CDfG6Ai7R/Y8KwnTwnmLEznLv5v68BA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.0", + "deepmerge": "^4.3.1" + } + }, + "node_modules/eleventy-plugin-embed-twitter/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/eleventy-plugin-vimeo-embed": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-vimeo-embed/-/eleventy-plugin-vimeo-embed-1.4.0.tgz", + "integrity": "sha512-GaDCi3b4gFx+TSzTEPjHlcGPqDBc8tQwJIQqkFMfkFBEnwMpC8fYLh8x31DLJ9C7R7Qh1FGVrb+A6qgKt//IqA==", + "license": "MIT" + }, + "node_modules/eleventy-plugin-youtube-embed": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/eleventy-plugin-youtube-embed/-/eleventy-plugin-youtube-embed-1.13.1.tgz", + "integrity": "sha512-JfmPyNan5x9FC08RjLQIeBexpo1u+g06FCnEuQMkRbORh4dy/6LILJGcsPkrAHP6fw7ZnD/bogfTTuW5lCyukA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-fetch": "^5.1.0", + "deepmerge": "^4.3.1", + "lite-youtube-embed": "^0.3.4", + "string-replace-async": "^3.0.2" + } + }, + "node_modules/eleventy-plugin-youtube-embed/node_modules/@11ty/eleventy-fetch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-5.1.1.tgz", + "integrity": "sha512-/xFJLCrqKlcnRKIfO9Qjd1QOs4IpvypljXET955+EgdRPFA+h8Or6bDnZBbcwr6KS7yeUuzp5k1DhXgbentSTA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "@rgrove/parse-xml": "^4.2.0", + "debug": "^4.4.3", + "flatted": "^3.3.3", + "p-queue": "6.6.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz", + "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==", + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esm-import-transformer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz", + "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/evaluate-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz", + "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "license": "ISC" + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "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", + "license": "ISC", + "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/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-equiv-refresh": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz", + "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/image-size": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "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.", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "license": "ISC" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/iso-639-1": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.5.tgz", + "integrity": "sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/iso-datestring-validator": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", + "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==", + "license": "MIT" + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/liquidjs": { + "version": "10.24.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.24.0.tgz", + "integrity": "sha512-TAUNAdgwaAXjjcUFuYVJm9kOVH7zc0mTKxsG9t9Lu4qdWjB2BEblyVIYpjWcmJLMGgiYqnGNJjpNMHx0gp/46A==", + "license": "MIT", + "dependencies": { + "commander": "^10.0.0" + }, + "bin": { + "liquid": "bin/liquid.js", + "liquidjs": "bin/liquid.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/liquidjs" + } + }, + "node_modules/list-to-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", + "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", + "license": "MIT" + }, + "node_modules/lite-youtube-embed": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.3.4.tgz", + "integrity": "sha512-aXgxpwK7AIW58GEbRzA8EYaY4LWvF3FKak6B9OtSJmuNyLhX2ouD4cMTxz/yR5HFInhknaYd2jLWOTRTvT8oAw==", + "license": "Apache-2.0" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/maximatch": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", + "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==", + "license": "MIT", + "dependencies": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "license": "BSD-3-Clause" + }, + "node_modules/morphdom": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz", + "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-retrieve-globals": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz", + "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.1", + "acorn-walk": "^8.3.4", + "esm-import-transformer": "^3.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "license": "BSD-2-Clause", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "license": "MIT", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz", + "integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^1.0.0", + "fs-extra": "^11.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^5.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "tinyglobby": "^0.2.12", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reporter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz", + "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/posthtml": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz", + "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-match-helper": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz", + "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "posthtml": "^0.16.6" + } + }, + "node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "license": "MIT", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "license": "MIT", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT" + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "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", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rss-parser": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.13.0.tgz", + "integrity": "sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==", + "license": "MIT", + "dependencies": { + "entities": "^2.0.3", + "xml2js": "^0.5.0" + } + }, + "node_modules/rss-parser/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sanitize-html": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.0.tgz", + "integrity": "sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "htmlparser2": "^8.0.0", + "is-plain-object": "^5.0.0", + "parse-srcset": "^1.0.2", + "postcss": "^8.3.11" + } + }, + "node_modules/sanitize-html/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sanitize-html/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sitemap": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-6.4.0.tgz", + "integrity": "sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^14.14.28", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=10.3.0", + "npm": ">=5.6.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", + "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-replace-async": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/string-replace-async/-/string-replace-async-3.0.2.tgz", + "integrity": "sha512-s6hDtXJ7FKyRap/amefqrOMpkEQvxUDueyvJygQeHxCK5Za90dOMgdibCCrPdfdAYAkr8imrZ1PPXW7DOf0RzQ==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/terser": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tlds": { + "version": "1.261.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", + "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==", + "license": "MIT", + "bin": { + "tlds": "bin.js" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/unicode-segmenter": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz", + "integrity": "sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "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/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d4f693a --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "rmendes-eleventy-site", + "version": "1.0.0", + "description": "Personal website powered by Indiekit and Eleventy", + "type": "module", + "scripts": { + "build": "eleventy", + "dev": "eleventy --serve --watch", + "build:css": "postcss css/tailwind.css -o css/style.css" + }, + "dependencies": { + "@11ty/eleventy": "^3.0.0", + "html-minifier-terser": "^7.0.0", + "markdown-it": "^14.0.0", + "@11ty/eleventy-fetch": "^4.0.1", + "@11ty/eleventy-img": "^6.0.0", + "@11ty/eleventy-plugin-rss": "^2.0.2", + "@chrisburnell/eleventy-cache-webmentions": "^2.2.7", + "@quasibit/eleventy-plugin-sitemap": "^2.2.0", + "@atproto/api": "^0.12.0", + "eleventy-plugin-embed-everything": "^1.21.0", + "rss-parser": "^3.13.0" + }, + "devDependencies": { + "tailwindcss": "^3.4.0", + "postcss": "^8.4.0", + "postcss-cli": "^11.0.0", + "autoprefixer": "^10.4.0", + "@tailwindcss/typography": "^0.5.0" + } +} diff --git a/photos.njk b/photos.njk new file mode 100644 index 0000000..3a686e8 --- /dev/null +++ b/photos.njk @@ -0,0 +1,23 @@ +--- +layout: layouts/base.njk +title: Photos +permalink: /photos/ +--- +

Photos

+ +{% if collections.photos.length > 0 %} +
    + {% for post in collections.photos %} +
  • + +
    {{ post.templateContent | safe }}
    +
  • + {% endfor %} +
+{% else %} +

No photos yet.

+{% endif %} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/replies.njk b/replies.njk new file mode 100644 index 0000000..f0af02c --- /dev/null +++ b/replies.njk @@ -0,0 +1,51 @@ +--- +layout: layouts/base.njk +title: Replies +permalink: /replies/ +--- + + +{% if collections.replies.length > 0 %} +
    + {% for post in collections.replies %} +
  • +
    +
    + +
    +
    + {% if post.data.title %} +

    + {{ post.data.title }} +

    + {% endif %} + + {% if post.data.in_reply_to %} +

    + In reply to: + + {{ post.data.in_reply_to }} + +

    + {% endif %} +
    + {{ post.templateContent | safe }} +
    + Permalink +
    +
    +
  • + {% endfor %} +
+{% else %} +

No replies yet.

+{% endif %} diff --git a/reposts.njk b/reposts.njk new file mode 100644 index 0000000..b2dd622 --- /dev/null +++ b/reposts.njk @@ -0,0 +1,53 @@ +--- +layout: layouts/base.njk +title: Reposts +permalink: /reposts/ +--- + + +{% if collections.reposts.length > 0 %} +
    + {% for post in collections.reposts %} +
  • +
    +
    + +
    +
    + {% if post.data.title %} +

    + {{ post.data.title }} +

    + {% endif %} + + {% if post.data.repost_of %} +

    + Reposted: + + {{ post.data.repost_of }} + +

    + {% endif %} + {% if post.templateContent %} +
    + {{ post.templateContent | safe }} +
    + {% endif %} + Permalink +
    +
    +
  • + {% endfor %} +
+{% else %} +

No reposts yet.

+{% endif %} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..5449496 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,79 @@ +import typography from "@tailwindcss/typography"; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./**/*.njk", + "./**/*.md", + "./_includes/**/*.njk", + "./content/**/*.md", + ], + darkMode: "class", + theme: { + extend: { + colors: { + primary: { + 50: "#eff6ff", + 100: "#dbeafe", + 200: "#bfdbfe", + 300: "#93c5fd", + 400: "#60a5fa", + 500: "#3b82f6", + 600: "#2563eb", + 700: "#1d4ed8", + 800: "#1e40af", + 900: "#1e3a8a", + 950: "#172554", + }, + surface: { + 50: "#fafafa", + 100: "#f4f4f5", + 200: "#e4e4e7", + 300: "#d4d4d8", + 400: "#a1a1aa", + 500: "#71717a", + 600: "#52525b", + 700: "#3f3f46", + 800: "#27272a", + 900: "#18181b", + 950: "#09090b", + }, + }, + fontFamily: { + sans: [ + "system-ui", + "-apple-system", + "BlinkMacSystemFont", + "Segoe UI", + "Roboto", + "sans-serif", + ], + mono: [ + "ui-monospace", + "SF Mono", + "Monaco", + "Cascadia Code", + "monospace", + ], + }, + maxWidth: { + content: "720px", + wide: "1200px", + }, + typography: (theme) => ({ + DEFAULT: { + css: { + "--tw-prose-links": theme("colors.primary.600"), + maxWidth: "none", + }, + }, + invert: { + css: { + "--tw-prose-links": theme("colors.primary.400"), + }, + }, + }), + }, + }, + plugins: [typography], +}; diff --git a/youtube.njk b/youtube.njk new file mode 100644 index 0000000..1c3db17 --- /dev/null +++ b/youtube.njk @@ -0,0 +1,262 @@ +--- +layout: layouts/base.njk +title: YouTube Channels +permalink: /youtube/ +withSidebar: true +--- +
+
+

YouTube Channels

+

+ Latest videos and live streams from my YouTube channels. +

+
+ + {# Multi-channel tabs #} + {% if youtubeChannel.isMultiChannel and youtubeChannel.channels.length > 1 %} +
+
+ {% for channel in youtubeChannel.channels %} + + {% endfor %} +
+
+ {% endif %} + + {# Channel sections #} + {% for channel in youtubeChannel.channels %} +
+ {# Channel Header #} +
+
+ {% if channel.thumbnail %} + + {% else %} +
+ + + +
+ {% endif %} + +
+

+ + {{ channel.title }} + +

+ {% if channel.customUrl %} +

{{ channel.customUrl }}

+ {% endif %} +
+ + + + + {{ channel.subscriberCountFormatted }} subscribers + + + + + + {{ channel.videoCountFormatted }} videos + + + + + + + {{ channel.viewCountFormatted }} views + +
+
+ + {# Live Status Badge for this channel #} + {% set channelLiveStatus = youtubeChannel.liveStatuses | selectattr("channelConfigName", "equalto", channel.configName) | first %} +
+ {% if channelLiveStatus and channelLiveStatus.isLive %} + + + LIVE + + {% elif channelLiveStatus and channelLiveStatus.isUpcoming %} + + + + + Upcoming + + {% else %} + + Offline + + {% endif %} +
+
+
+ + {# Live Stream Section for this channel #} + {% set channelLiveStatus = youtubeChannel.liveStatuses | selectattr("channelConfigName", "equalto", channel.configName) | first %} + {% if channelLiveStatus and channelLiveStatus.stream and (channelLiveStatus.isLive or channelLiveStatus.isUpcoming) %} +
+

+ {% if channelLiveStatus.isLive %} + + + Live Now + + {% else %} + + + + Upcoming Stream + {% endif %} +

+ + +
+ {% if channelLiveStatus.stream.thumbnail %} + + {% endif %} +
+
+

+ {{ channelLiveStatus.stream.title }} +

+

+ + + + Watch Now +

+
+
+ {% if channelLiveStatus.isLive %} +
+ + + LIVE + +
+ {% endif %} +
+
+
+ {% endif %} + + {# Videos Grid for this channel #} +
+

+ + + + Latest Videos +

+ + {% set channelName = channel.configName or channel.title %} + {% set channelVideos = youtubeChannel.videosByChannel[channelName] %} + {% if channelVideos and channelVideos.length %} + + + + {% else %} +

No videos available yet.

+ {% endif %} +
+
+ {% endfor %} + + {# Fallback for no channels #} + {% if not youtubeChannel.channels.length %} +

No YouTube channels configured.

+ {% endif %} +