commit 5b35d2a5dc30126895de4a0fea464a55001f2106 Author: Yufan Sheng Date: Fri Nov 15 16:01:33 2024 +0800 feat: squash all the commits for hiding some sensitive information. diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f06235c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6845745 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,25 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{md,mdx}] +indent_size = tab +trim_trailing_whitespace = false + +[*.{js,jsx,ts,tsx,css,less,sass,scss}] +indent_style = space +indent_size = 2 + +[*.{yml,yaml,json}] +indent_style = space +indent_size = 2 + +[*.go] +indent_style = tab + +[Makefile] +indent_size = tab \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..b2446e9 --- /dev/null +++ b/.env.example @@ -0,0 +1,17 @@ +# Since the ".env" file is gitignored, you can use the ".env.example" file to +# build a new ".env" file when you clone the repo. Keep this file up-to-date +# when you add new variables to `.env`. + +# This file will be committed to version control, so make sure not to have any +# secrets in it. If you are cloning this repo, create a copy of this file named +# ".env" and populate it with your secrets. + +# PostgreSQL configuration. +POSTGRES_HOST= +POSTGRES_PORT= +POSTGRES_USERNAME= +POSTGRES_PASSWORD= +POSTGRES_DATABASE= + +# Artalk configuration +ARTALK_HOST= diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..58b89fd --- /dev/null +++ b/.gitattributes @@ -0,0 +1,162 @@ +# This file is inspired by https://github.com/alexkaratarakis/gitattributes +# +# Auto detect text files and perform LF normalization +# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ +* text=auto + +# The above will handle all files NOT found below +# These files are text and should be normalized (Convert crlf => lf) + +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text +*.cql text +*.df text +*.ejs text +*.html text +*.java text +*.js text +*.json text +*.less text +*.properties text +*.sass text +*.scss text +*.sh text +*.sql text +*.txt text +*.ts text +*.xml text +*.yaml text +*.yml text + +# Documents +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.markdown text +*.md text +*.adoc text +*.textile text +*.mustache text +*.csv text +*.tab text +*.tsv text +*.txt text +*.config text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text +Jenkinsfile text + +# Graphics +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.tif binary +*.tiff binary +*.ico binary +# SVG treated as an asset (binary) by default. If you want to treat it as text, +# comment-out the following line and uncomment the line after. +*.svg binary +#*.svg text +*.eps binary +*.sketch binary + +# These files are binary and should be left untouched +# (binary is a macro for -text -diff) +*.class binary +*.jar binary +*.war binary + +## LINTERS +.csslintrc text +.eslintrc text +.jscsrc text +.jshintrc text +.jshintignore text +.stylelintrc text +.prettierignore text +.prettierrc text +.scalafmt.conf text + +## CONFIGS +*.bowerrc text +*.conf text +*.config text +.editorconfig text +.gitattributes text +.gitconfig text +.gitignore text +.htaccess text +*.npmignore text + +## HEROKU +Procfile text +.slugignore text + +## AUDIO +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +## VIDEO +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.swc binary +*.swf binary +*.webm binary + +## ARCHIVES +*.7z binary +*.gz binary +*.rar binary +*.tar binary +*.zip binary + +## FONTS +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +## Bun +*.lockb binary diff=lockb + +## License File +LICENSE.* text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..216c1ea --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# build output +dist/ +.zeabur/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +!.idea/icon.svg +.idea/ + +# Hide the SQL session +*.session.sql diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..2312dc5 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx lint-staged diff --git a/.idea/icon.svg b/.idea/icon.svg new file mode 100644 index 0000000..13eb2db --- /dev/null +++ b/.idea/icon.svg @@ -0,0 +1,12 @@ + + + favicon + + + + + + + + + diff --git a/.ncurc.json b/.ncurc.json new file mode 100644 index 0000000..6f681ee --- /dev/null +++ b/.ncurc.json @@ -0,0 +1,3 @@ +{ + "upgrade": true +} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..71604a4 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +dist +.zeabur +node_modules +public/images + +# The MDX files +*.mdx +*.md diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..eee2597 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,20 @@ +{ + "trailingComma": "all", + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "printWidth": 120, + "bracketSpacing": true, + "astroAllowShorthand": true, + "astroOrganizeImportsMode": "All", + "endOfLine": "lf", + "plugins": ["prettier-plugin-astro", "prettier-plugin-organize-imports", "prettier-plugin-astro-organize-imports"], + "overrides": [ + { + "files": "**/*.astro", + "options": { + "parser": "astro" + } + } + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..647984c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode", "esbenp.prettier-vscode", "biomejs.Biome"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d642209 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..46096eb --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,163 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit" + }, + "astro.content-intellisense": true, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[astro]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "cSpell.words": [ + "alexinea", + "alignfull", + "alignleft", + "alignright", + "alignwide", + "ameho", + "amehochan", + "aplayer", + "artalk", + "astro", + "astrojs", + "batang", + "bigserial", + "biomejs", + "blogroll", + "blogster", + "blurhash", + "bxaw", + "captainofphb", + "cfilter", + "cimage", + "ckenh", + "cnip", + "commentform", + "csvg", + "ctan", + "cynosura", + "datetime", + "dichen", + "dinesh", + "dotum", + "duoshuo", + "emde", + "eparams", + "firis", + "flexdinesh", + "fmoran", + "fong", + "forencrypt", + "giscus", + "gogogo", + "gotop", + "gungseo", + "hefei", + "heiti", + "honorbkk", + "huaweiyal", + "ianvs", + "iconfont", + "iroha", + "isodate", + "jamo", + "jian", + "jiasm", + "jing", + "jmoiron", + "jungshik", + "khalil", + "khtml", + "koanughi", + "koaunghi", + "lafoyer", + "lanczos", + "lantinghei", + "lastmod", + "lazyload", + "linuxapi", + "longluo", + "loveness", + "luoli", + "luxon", + "mboker", + "microflash", + "minagi", + "miui", + "mmwebid", + "mmwebsdk", + "mochi", + "napi", + "netease", + "nextval", + "nian", + "nocolor", + "nofollow", + "nopd", + "noto", + "opendal", + "oppo", + "opposans", + "pandiyan", + "penheulim", + "pilgi", + "plaiceholder", + "playform", + "psql", + "pwsz", + "qrcode", + "quan", + "recma", + "redmi", + "regclass", + "rehype", + "rivo", + "sauvignon", + "sheng", + "shiki", + "shinmun", + "shmily", + "skrs", + "sqlx", + "syhily", + "tabindex", + "tagcloud", + "taza", + "teruteru", + "timestamptz", + "tlyric", + "toolsmp", + "tsconfigs", + "tview", + "ultrahtml", + "unpic", + "unsharp", + "upyun", + "urlset", + "varchar", + "velite", + "vercel", + "weapi", + "wechat", + "weibo", + "xiao", + "xinsenz", + "xweb", + "yefengs", + "yetgul", + "ying", + "yuaanlin", + "yual", + "yufan", + "yyjn", + "zeabur", + "zhihu" + ], + "[mdx]": { + "editor.defaultFormatter": "unifiedjs.vscode-mdx" + }, + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3af2f2d --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Yufan Sheng + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b61aafe --- /dev/null +++ b/README.md @@ -0,0 +1,246 @@ + + + Yufan Blog Logo + + +# Yufan Personal Weblog + +This is a personal weblog for [Yufan Sheng](https://github.com/syhily) +which is built on [Astro](https://astro.build) and hosted on [zeabur](https://zeabur.com). + +[![Deployed on Zeabur](https://zeabur.com/deployed-on-zeabur-dark.svg)](https://zeabur.com?referralCode=syhily&utm_source=syhily) + +## History + +The blog's source code has evolved through four stages. Initially, it was built on WordPress in 2011. +In 2017, I switched to Hexo and converted all my blog posts to Markdown; +the code is available in the [Hexo branch](https://github.com/syhily/yufan.me/tree/hexo). +By 2024, the blog had been rewritten using Next.js with App Router; +you can find this version in the [Next branch](https://github.com/syhily/yufan.me/tree/next). +Currently, the blog has transitioned to Astro, which is located in +the [Astro branch](https://github.com/syhily/yufan.me/tree/astro). + +## Core Frameworks + +- [Node.js](https://nodejs.org): The latest Node.js LTS +- [Astro](https://astro.build): Core engine +- [Artalk](https://artalk.js.org): The self-hosted comment system +- [Fuse.js](https://www.fusejs.io): Search engine +- [Postgres](https://zeabur.com/docs/marketplace/postgresql): The view counter and like button for all my posts + +## Local Development + +You can fork and clone this project for your own use. But do so at your own risk. + +The project uses npm for development. Run it locally with these commands: + +```shell +# Install the dependencies by using bun. +npm install + +# Init git hooks. +npx husky + +# Check the newer dependencies. +npm update + +# Start local development with a live preview. The weblog is hosted on http://localhost:4321 +npm run dev +``` + +### Postgres Database + +This blog uses Postgres to store post views and favorites. For security reasons, +the configuration isn't defined in the `.env` file. +Modify the `.env.example` file and rename it to `.env` for local development. + +You can create a Postgres database by installing [Postgres.app](https://postgresapp.com). +The default username is `your system username`, with no password. + +Create and initialize the database and user with these commands: + +```postgresql +-- Create a database. +CREATE DATABASE ; + +-- Create a user. +CREATE USER PASSWORD ''; + +-- Grant the connection. +GRANT CONNECT ON DATABASE TO ; + +-- Grant the database privilege. +GRANT ALL PRIVILEGES ON DATABASE TO ; + +-- If you are using Postgres 15 or above. +-- Switch to the created database and execute SQL. +GRANT ALL ON SCHEMA public TO ; +``` + +Most tables are created by the Artalk. [Execute the Artalk](https://artalk.js.org/guide/deploy.html) to create the +tables. + +The like table should be created manually. Execute the SQL below. + +```postgresql +-- Sequence and defined type +CREATE SEQUENCE IF NOT EXISTS atk_likes_id_seq; + +-- Table Definition +CREATE TABLE "public"."atk_likes" +( + "id" int8 NOT NULL DEFAULT nextval('atk_likes_id_seq'::regclass), + "created_at" timestamptz, + "updated_at" timestamptz, + "deleted_at" timestamptz, + "token" varchar(255), + "page_key" varchar(255), + PRIMARY KEY ("id") +); + +-- Create table index +CREATE INDEX IF NOT EXISTS "idx_atk_likes_token" ON "public"."atk_likes" ("token"); +``` + +### Comments Integration + +This weblog uses artalk as its backend comment service. But since artalk didn't provide the latest comments API. +We decide to query it directly from the Postgres database. So the comments and fav clicks are living in the same +database. + +### S3 Compatible Storage Integration + +This blog will upload all the built resources at build stage. You can remove this feature by removing the +`uploader` integration in `astro.config.ts`. + +## Writing + +All the posts should be placed in `src/content/posts` directory with MDX format. +All the pages should be placed in `src/content/pages` directory with MDX format. +You can add any scripts or other customizable features by leveraging the MDX. + +### Front Matter + +Front-matter is a block of YAML at the beginning of the file that is used to configure settings for your writings. +Front-matter is terminated by three dashes when written in YAML. + +```yaml +--- +title: Hello World +date: 2013/7/13 20:46:25 +--- +``` + +### Post Front Matter Settings + +| Setting | Description | Required | Default | +|-------------|--------------------------------------|----------|----------------------| +| `slug` | ID (unique), used as the permalink | true | Filename | +| `title` | Title | true | Filename | +| `date` | Published date | true | | +| `updated` | Updated date | false | Published date | +| `comments` | Enables comment feature for the post | false | `true` | +| `tags` | Tags | false | `null` | +| `category` | Category | true | `null` | +| `summary` | Post summary in plain text | false | First 140 characters | +| `cover` | The cover image | false | `null` | +| `published` | Whether the post should be published | false | `true` | +| `toc` | Display the Table of Contents | false | `false` | +| `alias` | The alternatives slugs for post | false | `[]` | + +### Pages Front Matter Settings + +| Setting | Description | Required | Default | +|-------------|--------------------------------------|----------|----------------| +| `slug` | ID (unique), used as the permalink | true | Filename | +| `title` | Title | true | Filename | +| `date` | Published date | true | | +| `updated` | Updated date | false | Published date | +| `comments` | Enables comment feature for the post | false | `true` | +| `cover` | The cover image | false | `null` | +| `published` | Whether the post should be published | false | `true` | +| `toc` | Display the Table of Contents | false | `false` | + +## Weblog Design + +Almost all the design resources are placed in the file [yufan.me.sketch](docs/yufan.me.sketch). +I mainly use the [Sketch](https://www.sketch.com) as my design tools. + +The favicon is almost the same as the weblog logo. The main different is that we simplify the elements used in logo. +Pick up the main park from the logo and change the dot color for readability in small icon. +The background color is included in the exported favicon. +That is because we want to make sure it could be viewed clearly in any browser. + +The size of the favicon is following this +[tutorial](https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs) +to get it worked everywhere. + +## Deploy the Weblog + +This weblog is deployed on the [zeabur](https://zeabur.com) platform. +You can check their documents and get your own weblog to be published without any budget at first. + +Or you can host on your own machine. Use [Dockerfile](./Dockerfile) to build an image and run it locally. + +The comment system is leverage the [Artalk](https://artalk.js.org), a self-hosted comment system. +You should host it on your own machine. + +## Short-Term TODO Checklist + +- [ ] Add last modified time component for post. +- [ ] Add light box for images and album component. +- [ ] Check article grammar errors by using ChatGPT. Remain **42** posts. +- [ ] Add music to the articles. Remain **42** posts. + +## Long-Term TODO Checklist + +- [ ] Use self-developed comment solution. + - [ ] Support modification after commenting in 60 minutes even if you have refreshed the page. + - [ ] Support login into the blog for managing the comments. +- [ ] Slide share components integration. +- [ ] Add han.js support for better typography. +- [ ] Drop bootstrap, in favor of tailwind css. + +## License + +The source code of this blog is licensed under the [MIT](LICENSE) license, +feel to free to use it without any legal risks. + +The [content](src/content) of this blog's posts is licensed under the +[CC BY-NC-SA 4.0](src/content/LICENSE) license. + +### Logo Fonts License + +The fonts used in weblog logo is [M+A1](https://booth.pm/ja/items/2347968) with [license](licenses/LICENSE.m-plus.txt), +[UnGungseo](https://kldp.net/unfonts) with [license](licenses/LICENSE.un-fonts.txt), +and [Iroha Mochi](https://modi.jpn.org/font_iroha-mochi.php) with [license](licenses/LICENSE.iroha-mochi.txt). + +They are the fonts that can be used in business without any charge. + +### Open Graph Font & Web Font License + +The [OPPOSans 4.0](https://open.oppomobile.com/new/developmentDoc/info?id=13223) +is used for rendering the open graph image in my weblog. +We also use it as the main web font for articles. +It can be used in business scenarios without any modification. +The license file is [here](licenses/LICENSE.opposans.txt) + +### Third Party Codes License + +Some codes in this project are copied from other projects. I have added the comments in the files' header. + +The source codes used from third party projects are: + +- [seo.ts](src/helpers/seo.ts) + from [flexdinesh/blogster](https://github.com/flexdinesh/blogster/blob/main/packages/shared/src/seo.ts) + with [license](licenses/LICENSE.flexdinesh.txt) +- [og.ts](src/helpers/og.ts) + from [yuaanlin/yual.in](https://github.com/yuaanlin/yual.in/blob/main/pages/og_image/%5Bslug%5D.tsx) + with [permission](licenses/LICENSE.yuaanlin.jpg) +- [images.ts](src/helpers/images.ts) + and [config.ts](src/content/config.ts) + from [zce/velite](https://github.com/zce/velite/blob/main/src/assets.ts) + with [license](licenses/LICENSE.zce.txt) +- [images.ts](src/helpers/images.ts) + from [vercel/next.js](https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/image-blur-svg.ts) + with [license](licenses/LICENSE.vercel.txt) diff --git a/astro.config.ts b/astro.config.ts new file mode 100644 index 0000000..44248d5 --- /dev/null +++ b/astro.config.ts @@ -0,0 +1,80 @@ +import mdx from '@astrojs/mdx'; +import zeabur from '@zeabur/astro-adapter/serverless'; +import { uploader } from 'astro-uploader'; +import { defineConfig, envField } from 'astro/config'; +import rehypeAutolinkHeadings from 'rehype-autolink-headings'; +import rehypeExternalLinks from 'rehype-external-links'; +import rehypeSlug from 'rehype-slug'; +import options from './options'; +import { astroImage } from './plugins/images'; + +// https://astro.build/config +export default defineConfig({ + // This will override the import.meta.env.SITE. No need to introduce method. + site: options.isProd() ? options.website : options.local.website, + output: 'server', + security: { + checkOrigin: true, + }, + image: { + domains: ['localhost', '127.0.0.1'], + service: !options.isProd() ? { entrypoint: './plugins/resize', config: {} } : undefined, + }, + experimental: { + contentLayer: true, + contentIntellisense: true, + env: { + schema: { + // Postgres Database + POSTGRES_HOST: envField.string({ context: 'server', access: 'secret' }), + POSTGRES_PORT: envField.number({ context: 'server', access: 'secret' }), + POSTGRES_USERNAME: envField.string({ context: 'server', access: 'secret' }), + POSTGRES_PASSWORD: envField.string({ context: 'server', access: 'secret' }), + POSTGRES_DATABASE: envField.string({ context: 'server', access: 'secret' }), + // Artalk Comment + ARTALK_HOST: envField.string({ context: 'server', access: 'secret' }), + }, + validateSecrets: true, + }, + }, + integrations: [ + mdx({ + remarkPlugins: [astroImage], + rehypePlugins: [ + [rehypeExternalLinks, { rel: 'nofollow', target: '_blank' }], + rehypeSlug, + [rehypeAutolinkHeadings, { behavior: 'append', properties: {} }], + ], + }), + uploader({ + paths: ['images', 'og', 'cats'], + endpoint: process.env.S3_ENDPOINT, + bucket: process.env.S3_BUCKET as string, + accessKey: process.env.S3_ACCESS_KEY as string, + secretAccessKey: process.env.S3_SECRET_ACCESS_KEY as string, + }), + ], + adapter: zeabur(), + markdown: { + gfm: true, + shikiConfig: { + theme: 'solarized-light', + wrap: false, + }, + }, + server: { + port: options.local.port, + }, + devToolbar: { + // I don't need such toolbar. + enabled: false, + }, + vite: { + // Add this for avoiding the needless import optimize in Vite. + optimizeDeps: { exclude: ['@napi-rs/canvas', 'opendal'] }, + }, + build: { + assets: 'cats', + assetsPrefix: options.assetsPrefix(), + }, +}); diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..6f5cbdb --- /dev/null +++ b/biome.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json", + "formatter": { + "enabled": false + }, + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "a11y": { + "useGenericFontNames": "off" + } + } + }, + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + } +} diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 0000000..dc95f85 --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,18 @@ +FROM node:lts AS base +WORKDIR /app +COPY package.json package-lock.json ./ + +FROM base AS build +COPY . . + +ENV ASTRO_TELEMETRY_DISABLED=1 +RUN NODE_ENV=development npm install +RUN NODE_ENV=production npm run build + +FROM base AS runtime +RUN npm install --omit=dev +COPY --from=build /app/dist ./dist +ENV HOST=0.0.0.0 +ENV PORT=4321 +EXPOSE 4321 +CMD NODE_ENV=production node ./dist/server/entry.mjs diff --git a/docs/yufan.me.sketch b/docs/yufan.me.sketch new file mode 100644 index 0000000..4ae865b Binary files /dev/null and b/docs/yufan.me.sketch differ diff --git a/licenses/LICENSE.flexdinesh.txt b/licenses/LICENSE.flexdinesh.txt new file mode 100644 index 0000000..7173736 --- /dev/null +++ b/licenses/LICENSE.flexdinesh.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Dinesh Pandiyan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/LICENSE.iroha-mochi.txt b/licenses/LICENSE.iroha-mochi.txt new file mode 100644 index 0000000..d392d68 --- /dev/null +++ b/licenses/LICENSE.iroha-mochi.txt @@ -0,0 +1,64 @@ +いろはモチ ver.1.00 +OpenType形式 + +公開日 2018.01.12 +MODI工場/倒神神倒 + +紹介・詳細ページ +http://modi.jpn.org/font_iroha-mochi.php + +---------------------------------------------- + +懐かしい絵本みたいなひらがなフォントです。 + +ウェイト(太さ)は1種類のみです。 + +---------------------------------------------- +## 仕様・収録文字について + +−ひらがな・カタカナ +−illustratorやInDesignの合成フォント機能における「かな」に含まれる全文字です。 +−おまけでいくつか基本的な約物(記号) + +ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゝゞ +ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶーヽヾ +濁点付きの『う』 +小書きの『か』 +小書きの『け』 +濁点付きの『ワ』 +濁点付きの『ヰ』 +濁点付きの『ヱ』 +濁点付きの『ヲ』 +"',{}、。,.・:;?!゛゜´`¨^ ̄_〆ー—‐/〜|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】′″ + +---------------------------------------------- +## ライセンスについて + +−「いろはモチ」は、MODI工場独自ライセンスです。 + +−連絡表記不要。商用、非商用問わずご自由にどうぞ。素材集書籍などへの収録も同様です。 + +−通常利用、商用利用、改変、再配布、埋め込みもOK。とにかくご自由にどうぞ。 + +−オリジナル・改造フォントともに、フォント単体で有料販売してはいけません。 + +---------------------------------------------- +## 免責事項 + +このフォントの使用に関してはすべて無保証とさせていただきます。 + +---------------------------------------------- +## 更新履歴 + +■2018.01.12 v1.00 +公開 + +---------------------------------------------- +## MODI工場ホームページ +http://modi.jpn.org/ + +## 連絡先 +modi@modi.jpn.org + +誤字などのミスがあったら教えていただければ幸いです。 +お返事はできないですがご了承ください。 diff --git a/licenses/LICENSE.m-plus.txt b/licenses/LICENSE.m-plus.txt new file mode 100644 index 0000000..d04c73e --- /dev/null +++ b/licenses/LICENSE.m-plus.txt @@ -0,0 +1,10 @@ +M+ FONTS Copyright (C) 2002-2019 M+ FONTS PROJECT + +- + +These fonts are free software. +Unlimited permission is granted to use, copy, and distribute them, with +or without modification, either commercially or noncommercially. +THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY. + +http://mplus-fonts.osdn.jp diff --git a/licenses/LICENSE.opposans.txt b/licenses/LICENSE.opposans.txt new file mode 100644 index 0000000..28f5122 --- /dev/null +++ b/licenses/LICENSE.opposans.txt @@ -0,0 +1,34 @@ +License Notice +Copyright 2024 Guangdong OPPO Mobile Telecommunications Corp., Ltd. + +OPPO Sans Fonts Software is licensed under OPPO Sans Fonts License Agreement. + +-------------------------------------------------------------------------------- +OPPO Sans Fonts License Agreement + +THIS OPPO SANS FONTS LICENSE AGREEMENT ("AGREEMENT") IS A LEGAL AGREEMENT BETWEEN YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND GUANGDONG OPPO MOBILE TELECOMMUNICATION CORP.,LTD. ( "LICENSOR") FOR THE USE OF THE OPPO SANS FONTS ACCOMPANYING THIS AGREEMENT. BY DOWNLOADING, COPYING OR OTHERWISE USING OPPO SANS FONTS YOU INDICATE THAT YOU AGREE TO BE BOUND BY ALL OF THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, YOU MAY NOT DOWNLOAD, COPY OR OTHERWISE USE THE OPPO SANS FONTS, AND YOU SHALL PROMPTLY DESTROY AND DELETE ALL THE OPPO SANS FONTS. + +1.Definition +"OPPO Sans Fonts" shall mean the collection of fonts software components provided by Licensor under this Agreement and clearly marked as "OPPO Sans". + +"YOU" shall mean an individual or legal entity exercising permissions granted by this Agreement. + +2.GRANT OF LICENSE + +Subject to the terms and conditions of this Agreement, Licensor hereby grant YOU a non-transferable, non-exclusive, royalty-free, revocable, worldwide copyright license to use, copy, merge, embed, bundle, redistribute and/or sell unmodified copies of OPPO Sans Fonts with any software except for fonts software,subject to the following conditions: +1)YOU shall make a prominent notice in the software to state that OPPO Sans Fonts are used. +2)YOU may not make any modifications to OPPO Sans Fonts or any of their individual components. +3)Neither OPPO Sans Fonts nor any of their individual components may be redistributed or sold in a stand-alone base. This limitation does not apply to any work created by using OPPO Sans Fonts. You can freely distribute or sell your work, such as materials, logos, application software etc. created by using OPPO Sans Fonts. +4)YOU shall retain the copyright notice and this Agreement in any copies of OPPO Sans Fonts. + +3.Termination +This Agreement will be automatically terminated if YOU breach any of this Agreement. + +4.NO WARRANTY +YOU AGREE THAT THE OPPO SANS FONTS ARE PROVIDED BY LICENSOR ON AN "AS IS" BASIS. LICENSOR MAKES NO WARRANTY, EXPRESSED OR IMPLIED OR STATUTORY, WITH RESPECT TO ANY OF THE OPPO SANS FONTS, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. + +5.NO LIABILITY + +IN NO EVENT SHALL LICENSOR BE LIABLE FOR ANY DIRECT OR INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE OF OR INABILITY TO USE OPPO SANS FONTS, WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHER LEGAL THEORY, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +YOU EXPRESSLY ASSUME ALL LIABILITIES AND RISKS FOR USE OF OPPO SANS FONTS. SHOULD THE OPPO SANS FONTS PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. \ No newline at end of file diff --git a/licenses/LICENSE.un-fonts.txt b/licenses/LICENSE.un-fonts.txt new file mode 100644 index 0000000..a96ebc4 --- /dev/null +++ b/licenses/LICENSE.un-fonts.txt @@ -0,0 +1,37 @@ +Copyright (c) 1998-2004 Koanughi Un. + +Please see the enclosed file COPYING for license information (GPL). If you +did not receive this file, see http://www.gnu.org/licenses/gpl.txt. + + +Un-fonts is comes from the HLaTeX as type1 fonts in 1998 by Koaunghi Un, +he made type1 fonts to use with Korean TeX(HLaTeX [1]) in the late 1990's and +release it under the GNU GPL license. + +It converted to TrueType with the FontForge(PfaEdit) by Won-kyu Park in 2003. + + +Core families (9 fonts) + * UnBatang, UnBatangBold: serif + * UnDotum, UnDotumBold: sans-serif + * UnGraphic, UnGraphicBold: sans-serif style + * UnPilgi, UnPilgiBold: script + * UnGungseo: cursive, brush-stroke + +Extra families (10 fonts) + * UnPen, UnPenheulim: script + * UnTaza: typewriter style + * UnBom: decorative + * UnShinmun + * UnYetgul: old Korean printing style + * UnJamoSora, UnJamoNovel, UnJamoDotum, UnJamoBatang + +Please send problems and feedback at http://kldp.net/projects/unfonts/ + + +Project maintainers: + + * Won-kyu Park + * Jungshik Shin +---- +[1] http://ftp.dante.de/tex-archive/fonts/korean/HLaTeX and other CTAN archives) diff --git a/licenses/LICENSE.vercel.txt b/licenses/LICENSE.vercel.txt new file mode 100644 index 0000000..ec9dcd9 --- /dev/null +++ b/licenses/LICENSE.vercel.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 Vercel, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/LICENSE.yuaanlin.jpg b/licenses/LICENSE.yuaanlin.jpg new file mode 100644 index 0000000..ce44364 Binary files /dev/null and b/licenses/LICENSE.yuaanlin.jpg differ diff --git a/licenses/LICENSE.zce.txt b/licenses/LICENSE.zce.txt new file mode 100644 index 0000000..1e93ffe --- /dev/null +++ b/licenses/LICENSE.zce.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 zce (https://zce.me) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/options.ts b/options.ts new file mode 100644 index 0000000..4b125f5 --- /dev/null +++ b/options.ts @@ -0,0 +1,221 @@ +import { z } from 'astro/zod'; + +const isProd = (): boolean => import.meta.env.MODE === 'production' || process.env.NODE_ENV === 'production'; + +// The type of the options, use zod for better validation. +const Options = z + .object({ + local: z + .object({ + port: z.number(), + }) + .transform((local) => ({ ...local, website: `http://localhost:${local.port}` })), + title: z.string().max(40), + website: z + .string() + .url() + .refine((u) => !u.endsWith('/')) + .readonly(), + description: z.string().max(100), + keywords: z.array(z.string()), + author: z.object({ name: z.string(), email: z.string().email(), url: z.string().url() }), + navigation: z.array(z.object({ text: z.string().trim(), link: z.string(), target: z.string().optional() })), + socials: z.array( + z.object({ + name: z.string(), + icon: z.string(), + type: z.enum(['link', 'qrcode']), + title: z.string().optional(), + link: z.string().url(), + }), + ), + settings: z.object({ + footer: z.object({ + initialYear: z.number().max(2024), + icpNo: z.string().optional(), + moeIcpNo: z.string().optional(), + astroBadge: z.boolean().default(true), + }), + locale: z.string().optional().default('zh-CN'), + timeZone: z.string().optional().default('Asia/Shanghai'), + timeFormat: z.string().optional().default('yyyy-MM-dd HH:mm:ss'), + twitter: z.string(), + assetPrefix: z + .string() + .url() + .refine((u) => !u.endsWith('/')) + .readonly(), + post: z.object({ + sort: z.enum(['asc', 'desc']), + feature: z.array(z.string()).min(3).optional(), + category: z.array(z.string()).optional(), + }), + pagination: z.object({ + posts: z.number().optional().default(5), + category: z.number().optional().default(7), + tags: z.number().optional().default(7), + search: z.number().optional().default(7), + }), + feed: z.object({ + full: z.boolean().optional().default(true), + size: z.number().optional().default(20), + }), + sidebar: z.object({ + search: z.boolean().default(false), + post: z.number().default(6), + comment: z.number().default(0), + tag: z.number().default(20), + }), + comments: z.object({ + server: z.string().url().readonly(), + size: z.number().default(10).readonly(), + avatar: z.object({ + mirror: z.string().url().readonly(), + size: z.number(), + }), + }), + toc: z.object({ + minHeadingLevel: z.number().optional().default(2), + maxHeadingLevel: z.number().optional().default(3), + }), + }), + thumbnail: z + .function() + .args(z.object({ src: z.string().min(1), width: z.number().or(z.string()), height: z.number().or(z.string()) })) + .returns(z.string()), + }) + .transform((opts) => { + const assetsPrefix = (): string => (isProd() ? opts.settings.assetPrefix : opts.local.website); + return { + ...opts, + // Monkey patch for the issue https://github.com/withastro/astro/issues/11282 + // No need to fallback to the import.meta.env.PROD I think. + isProd, + // Given that the import.meta.env.ASSETS_PREFIX has two types. + // I have to use this uniform method instead. + assetsPrefix, + defaultOpenGraph: (): string => `${assetsPrefix()}/images/open-graph.png`, + }; + }) + .refine( + (options) => options.settings.toc.minHeadingLevel <= options.settings.toc.maxHeadingLevel, + 'Invalid toc setting, the minHeadingLevel should bellow the maxHeadingLevel', + ); + +const options: z.input = { + local: { + port: 4321, + }, + title: '且听书吟', + website: 'https://yufan.me', + description: '诗与梦想的远方', + keywords: ['雨帆', '且听书吟', 'syhily', 'amehochan', 'yufan'], + author: { + name: '雨帆', + email: 'syhily@gmail.com', + url: 'https://yufan.me', + }, + navigation: [ + { + text: '首页', + link: '/', + }, + { + text: '关于', + link: '/about', + }, + { + text: '留言', + link: '/guestbook', + }, + { + text: '友链', + link: '/links', + }, + { + text: '笔记', + link: 'https://note.yufan.me', + target: '_blank', + }, + ], + socials: [ + { + name: 'GitHub', + icon: 'icon-github-fill', + type: 'link', + link: 'https://github.com/syhily', + }, + { + name: '知乎', + icon: 'icon-zhihu-square-fill', + type: 'link', + link: 'https://www.zhihu.com/people/syhily', + }, + { + name: '微信', + icon: 'icon-wechat', + type: 'qrcode', + title: '扫码加我微信好友', + link: 'https://u.wechat.com/EBpmuKmrVz4YVFnoCJdnruA', + }, + ], + settings: { + footer: { + initialYear: 2011, + icpNo: '皖ICP备2021002315号-2', + moeIcpNo: '萌ICP备20200318号', + astroBadge: true, + }, + locale: 'zh-CN', + timeZone: 'Asia/Shanghai', + timeFormat: 'yyyy-MM-dd', + twitter: 'amehochan', + assetPrefix: 'https://cat.yufan.me', + post: { + sort: 'desc', + category: ['article', 'think', 'gossip', 'coding'], + }, + pagination: { + posts: 5, + category: 7, + tags: 7, + search: 7, + }, + feed: { + full: true, + size: 10, + }, + sidebar: { + search: true, + post: 6, + comment: 6, + tag: 20, + }, + comments: { + server: 'https://comment.yufan.me', + size: 10, + avatar: { + mirror: 'https://weavatar.com/avatar', + size: 120, + }, + }, + toc: { + minHeadingLevel: 2, + maxHeadingLevel: 3, + }, + }, + thumbnail: ({ src, width, height }) => { + if (src.endsWith('.svg')) { + return src; + } + if (isProd()) { + // Add upyun thumbnail support. + return `${src}!upyun520/both/${width}x${height}/format/webp/quality/100/unsharp/true/progressive/true`; + } + // See https://docs.astro.build/en/reference/image-service-reference/#local-services + // Remember to add the localhost to you image service settings. + return `http://localhost:4321/_image?href=${src}&w=${width}&h=${height}&f=webp&q=100`; + }, +}; + +export default Options.parse(options); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6755bcf --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9644 @@ +{ + "name": "yufan.me", + "version": "3.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "yufan.me", + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@astrojs/mdx": "^3.1.9", + "@astrojs/rss": "^4.0.9", + "@zeabur/astro-adapter": "^1.0.6", + "astro": "^4.16.12", + "drizzle-orm": "^0.36.2", + "fuse.js": "^7.0.0", + "lodash": "^4.17.21", + "luxon": "^3.5.0", + "marked": "^15.0.0", + "pg": "^8.13.1", + "qrcode-svg": "^1.1.0", + "ultrahtml": "^1.5.3" + }, + "devDependencies": { + "@astrojs/check": "^0.9.4", + "@biomejs/biome": "^1.9.4", + "@napi-rs/canvas": "^0.1.61", + "@types/lodash": "^4.17.13", + "@types/luxon": "^3.4.2", + "@types/node": "^22.9.0", + "@types/pg": "^8.11.10", + "@types/qrcode-svg": "^1.1.5", + "@types/unist": "^3.0.3", + "aplayer": "^1.10.1", + "astro-uploader": "^1.1.3", + "bootstrap": "^5.3.3", + "prettier": "^3.3.3", + "prettier-plugin-astro": "^0.14.1", + "prettier-plugin-astro-organize-imports": "^0.4.11", + "prettier-plugin-organize-imports": "^4.1.0", + "rehype-autolink-headings": "^7.1.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "resize-sensor": "^0.0.6", + "rimraf": "^6.0.1", + "sharp": "^0.33.5", + "typescript": "^5.6.3", + "unist-util-select": "^5.1.0" + }, + "engines": { + "node": "22.11.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@astrojs/check": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.4.tgz", + "integrity": "sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/language-server": "^2.15.0", + "chokidar": "^4.0.1", + "kleur": "^4.1.5", + "yargs": "^17.7.2" + }, + "bin": { + "astro-check": "dist/bin.js" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@astrojs/compiler": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.10.3.tgz", + "integrity": "sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==", + "license": "MIT" + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.4.1.tgz", + "integrity": "sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==", + "license": "MIT" + }, + "node_modules/@astrojs/language-server": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.15.4.tgz", + "integrity": "sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.10.3", + "@astrojs/yaml2ts": "^0.2.2", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@volar/kit": "~2.4.7", + "@volar/language-core": "~2.4.7", + "@volar/language-server": "~2.4.7", + "@volar/language-service": "~2.4.7", + "fast-glob": "^3.2.12", + "muggle-string": "^0.4.1", + "volar-service-css": "0.0.62", + "volar-service-emmet": "0.0.62", + "volar-service-html": "0.0.62", + "volar-service-prettier": "0.0.62", + "volar-service-typescript": "0.0.62", + "volar-service-typescript-twoslash-queries": "0.0.62", + "volar-service-yaml": "0.0.62", + "vscode-html-languageservice": "^5.2.0", + "vscode-uri": "^3.0.8" + }, + "bin": { + "astro-ls": "bin/nodeServer.js" + }, + "peerDependencies": { + "prettier": "^3.0.0", + "prettier-plugin-astro": ">=0.11.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + } + } + }, + "node_modules/@astrojs/markdown-remark": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-5.3.0.tgz", + "integrity": "sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==", + "license": "MIT", + "dependencies": { + "@astrojs/prism": "3.1.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "import-meta-resolve": "^4.1.0", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.1", + "remark-smartypants": "^3.0.2", + "shiki": "^1.22.0", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/mdx": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-3.1.9.tgz", + "integrity": "sha512-3jPD4Bff6lIA20RQoonnZkRtZ9T3i0HFm6fcDF7BMsKIZ+xBP2KXzQWiuGu62lrVCmU612N+SQVGl5e0fI+zWg==", + "license": "MIT", + "dependencies": { + "@astrojs/markdown-remark": "5.3.0", + "@mdx-js/mdx": "^3.1.0", + "acorn": "^8.14.0", + "es-module-lexer": "^1.5.4", + "estree-util-visit": "^2.0.0", + "gray-matter": "^4.0.3", + "hast-util-to-html": "^9.0.3", + "kleur": "^4.1.5", + "rehype-raw": "^7.0.0", + "remark-gfm": "^4.0.0", + "remark-smartypants": "^3.0.2", + "source-map": "^0.7.4", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.3" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + }, + "peerDependencies": { + "astro": "^4.8.0" + } + }, + "node_modules/@astrojs/prism": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.1.0.tgz", + "integrity": "sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.29.0" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + } + }, + "node_modules/@astrojs/rss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.9.tgz", + "integrity": "sha512-W1qeLc/WP1vMS5xXa+BnaLU0paeSeGjN8RJVAoBaOIkQuKXjIUA9hvPno89heo73in5i67g40gy70oeeHMqp6A==", + "license": "MIT", + "dependencies": { + "fast-xml-parser": "^4.5.0", + "kleur": "^4.1.5" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.1.0.tgz", + "integrity": "sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==", + "license": "MIT", + "dependencies": { + "ci-info": "^4.0.0", + "debug": "^4.3.4", + "dlv": "^1.1.3", + "dset": "^3.1.3", + "is-docker": "^3.0.0", + "is-wsl": "^3.0.0", + "which-pm-runs": "^1.1.0" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=21.0.0" + } + }, + "node_modules/@astrojs/yaml2ts": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.2.tgz", + "integrity": "sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yaml": "^2.5.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@biomejs/biome": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz", + "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", + "dev": true, + "hasInstallScript": true, + "license": "MIT OR Apache-2.0", + "bin": { + "biome": "bin/biome" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/biome" + }, + "optionalDependencies": { + "@biomejs/cli-darwin-arm64": "1.9.4", + "@biomejs/cli-darwin-x64": "1.9.4", + "@biomejs/cli-linux-arm64": "1.9.4", + "@biomejs/cli-linux-arm64-musl": "1.9.4", + "@biomejs/cli-linux-x64": "1.9.4", + "@biomejs/cli-linux-x64-musl": "1.9.4", + "@biomejs/cli-win32-arm64": "1.9.4", + "@biomejs/cli-win32-x64": "1.9.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz", + "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz", + "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz", + "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz", + "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz", + "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz", + "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz", + "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz", + "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@emmetio/abbreviation": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", + "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-abbreviation": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", + "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-parser": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", + "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "node_modules/@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@emmetio/scanner": "^1.0.0" + } + }, + "node_modules/@emmetio/scanner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", + "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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" + ], + "dev": true, + "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/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/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/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.61.tgz", + "integrity": "sha512-IJDok7OsGQ+Wd9QOWaOnFszw1mxNtJuynD+tBAhWMV6QJr7fWZx83eYS9xSl+3XR2tUa9oiHc44APcHBgdErmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.61", + "@napi-rs/canvas-darwin-arm64": "0.1.61", + "@napi-rs/canvas-darwin-x64": "0.1.61", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.61", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.61", + "@napi-rs/canvas-linux-arm64-musl": "0.1.61", + "@napi-rs/canvas-linux-x64-gnu": "0.1.61", + "@napi-rs/canvas-linux-x64-musl": "0.1.61", + "@napi-rs/canvas-win32-x64-msvc": "0.1.61" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.61.tgz", + "integrity": "sha512-vnQobU4n2oTMXtDW0EHwdDIpUs4PqtAAK6vvYr9I9w984xrKe+NzFypmtGy/NkFrLoXn/i8WuCHAd1jLDGO3eA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.61.tgz", + "integrity": "sha512-zH44Bs7SoaTMJ5TEuTwE4MQuijWNdvvleJacnclapKYSWywc4X5YResFmlDieHLESS0C0EwxpqyX0JT07IKKnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.61.tgz", + "integrity": "sha512-pTNL/peBGHUZxECDXPw9IbL3aQdn+7UBjzqM1xo+L4rwBkFLewpst5aWsMDpYyjVGvKZHbNj3J1PMmlbu6XgzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.61.tgz", + "integrity": "sha512-sXrPJ+HvX3H58/uHP3QGe2Nafk1cUBfnErfQ8PtO464lEnhvCHdGsdml48dqhnQHErFkPYhHYobHDXfYT6Kq0w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.61.tgz", + "integrity": "sha512-HtLV2lWc3VIJ1XpXqoGJo596UCSYVbHIoFAO9Apj/BdNteBGUfUq1gDALrgM+WPhNM8XLMaU+HBphUVWRvgwBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.61.tgz", + "integrity": "sha512-W3jYZhDLghJauKQWl8lvA7ISElWzlkdUIM+bwQqlDzYtpD4wEgi/vICiMuUbJz73fKGgYwFLgKL6dF2H3bpVYg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.61.tgz", + "integrity": "sha512-tfMIZukLG+Q9mg+1LJFa852GhSlwg29pZaZ/UrLRdLRG0AJ1lckyHxOhNf9z+srMsEsryaQAIYHFIoOGYGhweA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.61.tgz", + "integrity": "sha512-Go7zAENKdoDELf4X55pCbt4IrbrNOL+BarxO8A3MdDKF+isBioG4lNXpnAdswrDx8iJu+o1rzaGupQsF9YWxFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.61", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.61.tgz", + "integrity": "sha512-awGSMk4PlCV7SWC9ZxREkZvtiY+NWkramwYoQIEUJ+0KatLCbFnAaoxT7B7QE25ZUrjd1c3ZeV/Ae4Sggt276A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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==", + "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==", + "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==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opendal/lib-darwin-arm64": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-darwin-arm64/-/lib-darwin-arm64-0.47.7.tgz", + "integrity": "sha512-1upzDBXmr/lAheJCTn2flGfZDs4G3VpjmnLG/fvhU9FnAD3lU5n3MRtarO0bFxaEKCM/yT/jGFKeiGxICxgHZw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@opendal/lib-darwin-x64": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-darwin-x64/-/lib-darwin-x64-0.47.7.tgz", + "integrity": "sha512-QdKDI80YzC+peWRg7pa4OoTb1P7XFaRWwBTbZTMTlKZKdg4d3A2dUu1POa0kPKDkuMsHNTZciXBPERzHjIGY4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@opendal/lib-linux-arm64-gnu": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-linux-arm64-gnu/-/lib-linux-arm64-gnu-0.47.7.tgz", + "integrity": "sha512-V/XcdfJn6VfULTtzCiNQXsoy7suELbFK/zdIfQNk78IlpdjOoh2cw/hcUZXH1K03cJ+DhHBnUiQk7AEg8pWgdg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@opendal/lib-linux-arm64-musl": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-linux-arm64-musl/-/lib-linux-arm64-musl-0.47.7.tgz", + "integrity": "sha512-ArG8c8dQHVhAXyMilZuubIRfK8wttqdpSaSHy6ao6efro70AWBTnzSK5fuutCzOvgqHnRQuaJti1BUwnLr+Hnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@opendal/lib-linux-x64-gnu": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-linux-x64-gnu/-/lib-linux-x64-gnu-0.47.7.tgz", + "integrity": "sha512-oFEVTUpdFIjlxJ3cP7eqN6Wfq9kPB3PvfCiBIPvGbD8tK+6TqOOh7FO88NxBrBWoBhK3BvLvjRUJ6jWoCtlbtw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@opendal/lib-win32-arm64-msvc": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-win32-arm64-msvc/-/lib-win32-arm64-msvc-0.47.7.tgz", + "integrity": "sha512-Dq6goHu5l5HKPbYa2MWt2n8iKjbvyH8dhw3BgO/2caTrFsI2zFHLQONglBpVKhh6rtE11ivLMLR/ydElGmxFUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@opendal/lib-win32-x64-msvc": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/@opendal/lib-win32-x64-msvc/-/lib-win32-x64-msvc-0.47.7.tgz", + "integrity": "sha512-RCGSFV/mGNLGyzV3PWkgzTn50CftHc7oTdfZ+6NJnKuDT7pKmEJNIqpjhL1GGf/QnPPMgpEC5fQSW6ennt8EVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz", + "integrity": "sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz", + "integrity": "sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz", + "integrity": "sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz", + "integrity": "sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz", + "integrity": "sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz", + "integrity": "sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz", + "integrity": "sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz", + "integrity": "sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz", + "integrity": "sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz", + "integrity": "sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz", + "integrity": "sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz", + "integrity": "sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz", + "integrity": "sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz", + "integrity": "sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz", + "integrity": "sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz", + "integrity": "sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz", + "integrity": "sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz", + "integrity": "sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.22.2.tgz", + "integrity": "sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==", + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.3" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.22.2.tgz", + "integrity": "sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "oniguruma-to-js": "0.4.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.22.2.tgz", + "integrity": "sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0" + } + }, + "node_modules/@shikijs/types": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.22.2.tgz", + "integrity": "sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz", + "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==", + "license": "MIT" + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/luxon": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/pg": { + "version": "8.11.10", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.10.tgz", + "integrity": "sha512-LczQUW4dbOQzsH2RQ5qoeJ6qJPdrcM/DcMLoqWQkMLMsq83J5lAX3LXjdkWdpscFy67JSOWDnh7Ny/sPFykmkg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^4.0.1" + } + }, + "node_modules/@types/qrcode-svg": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/qrcode-svg/-/qrcode-svg-1.1.5.tgz", + "integrity": "sha512-GjkD+HB8S1wrIsf3skHDtcYBjzNhTxocMbX+wG166xDkaVOnLiMUla7bLjbwxo6mMvqqWQNP0Dk8nkIeizSmnw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC" + }, + "node_modules/@vercel/nft": { + "version": "0.27.6", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.27.6.tgz", + "integrity": "sha512-mwuyUxskdcV8dd7N7JnxBgvFEz1D9UOePI/WyLLzktv6HSCwgPNQGit/UJ2IykAWGlypKw4pBQjOKWvIbXITSg==", + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.11", + "@rollup/pluginutils": "^4.0.0", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.5", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.8", + "node-gyp-build": "^4.2.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@vercel/nft/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@volar/kit": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.10.tgz", + "integrity": "sha512-ul+rLeO9RlFDgkY/FhPWMnpFqAsjvjkKz8VZeOY5YCJMwTblmmSBlNJtFNxSBx9t/k1q80nEthLyxiJ50ZbIAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-service": "2.4.10", + "@volar/typescript": "2.4.10", + "typesafe-path": "^0.2.2", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.10.tgz", + "integrity": "sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.10" + } + }, + "node_modules/@volar/language-server": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.10.tgz", + "integrity": "sha512-odQsgrJh8hOXfxkSj/BSnpjThb2/KDhbxZnG/XAEx6E3QGDQv4hAOz9GWuKoNs0tkjgwphQGIwDMT1JYaTgRJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.10", + "@volar/language-service": "2.4.10", + "@volar/typescript": "2.4.10", + "path-browserify": "^1.0.1", + "request-light": "^0.7.0", + "vscode-languageserver": "^9.0.1", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/language-service": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.10.tgz", + "integrity": "sha512-VxUiWS11rnRzakkqw5x1LPhsz+RBfD0CrrFarLGW2/voliYXEdCuSOM3r8JyNRvMvP4uwhD38ccAdTcULQEAIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.10", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.10.tgz", + "integrity": "sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.10.tgz", + "integrity": "sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.10", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vscode/emmet-helper": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.10.0.tgz", + "integrity": "sha512-UHw1EQRgLbSYkyB73/7wR/IzV6zTBnbzEHuuU4Z6b95HKf2lmeTdGwBIwspWBSRrnIA1TI2x2tetBym6ErA7Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "emmet": "^2.4.3", + "jsonc-parser": "^2.3.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.15.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vscode/l10n": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@zeabur/astro-adapter": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@zeabur/astro-adapter/-/astro-adapter-1.0.6.tgz", + "integrity": "sha512-srLlJrC0bn4+/BRGN8AHauDHXbe1R43vkiRhhqVyr+5qtmQYRexusKA0DgI044sT238U6kN6eGpFPvHzj51aEw==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.4.1", + "@vercel/nft": "^0.27.3", + "esbuild": "^0.21.5", + "fast-glob": "^3.3.2", + "set-cookie-parser": "^2.6.0", + "web-vitals": "^3.5.2" + }, + "peerDependencies": { + "astro": "^4.0.2" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "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/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aplayer": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/aplayer/-/aplayer-1.10.1.tgz", + "integrity": "sha512-HAfyxgCUTLAqtYlxzzK9Fyqg6y+kZ9CqT1WfeWE8FSzwspT6oBqWOZHANPHF3RGTtC33IsyEgrfthPDzU5r9kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balloon-css": "^0.5.0", + "promise-polyfill": "7.1.0", + "smoothscroll": "0.4.0" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/astro": { + "version": "4.16.12", + "resolved": "https://registry.npmjs.org/astro/-/astro-4.16.12.tgz", + "integrity": "sha512-NnFeIKhGW6MdXCQT2hRariUwfxqJUIRs6qKqaovaQkTojzxh2r1L8C49qanKc+huH9wK2C94VZB2T/tosyRl1A==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.10.3", + "@astrojs/internal-helpers": "0.4.1", + "@astrojs/markdown-remark": "5.3.0", + "@astrojs/telemetry": "3.1.0", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/types": "^7.26.0", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.1.3", + "@types/babel__core": "^7.20.5", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "boxen": "8.0.1", + "ci-info": "^4.0.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^1.0.1", + "cookie": "^0.7.2", + "cssesc": "^3.0.0", + "debug": "^4.3.7", + "deterministic-object-hash": "^2.0.2", + "devalue": "^5.1.1", + "diff": "^5.2.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "es-module-lexer": "^1.5.4", + "esbuild": "^0.21.5", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "flattie": "^1.1.1", + "github-slugger": "^2.0.0", + "gray-matter": "^4.0.3", + "html-escaper": "^3.0.3", + "http-cache-semantics": "^4.1.1", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.12", + "magicast": "^0.3.5", + "micromatch": "^4.0.8", + "mrmime": "^2.0.0", + "neotraverse": "^0.6.18", + "ora": "^8.1.1", + "p-limit": "^6.1.0", + "p-queue": "^8.0.1", + "preferred-pm": "^4.0.0", + "prompts": "^2.4.2", + "rehype": "^13.0.2", + "semver": "^7.6.3", + "shiki": "^1.22.2", + "tinyexec": "^0.3.1", + "tsconfck": "^3.1.4", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.3", + "vite": "^5.4.10", + "vitefu": "^1.0.3", + "which-pm": "^3.0.0", + "xxhash-wasm": "^1.0.2", + "yargs-parser": "^21.1.1", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.23.5", + "zod-to-ts": "^1.2.0" + }, + "bin": { + "astro": "astro.js" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "optionalDependencies": { + "sharp": "^0.33.3" + } + }, + "node_modules/astro-uploader": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/astro-uploader/-/astro-uploader-1.1.3.tgz", + "integrity": "sha512-Ij5IJj1J2Fb/Ik8RcQ2kaaOIFxvWQmfE4zrAUjIpg/RvH9sb9LpsgRRkqUkPRDxhlzNCguwo6awjrdcdnOwcRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime": "^4.0.4", + "opendal": "^0.47.0", + "rimraf": "^5.0.8" + } + }, + "node_modules/astro-uploader/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/astro-uploader/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/astro-uploader/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/astro-uploader/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/astro-uploader/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/astro/node_modules/@rollup/pluginutils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/astro/node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/astro/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "license": "MIT" + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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/balloon-css": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/balloon-css/-/balloon-css-0.5.2.tgz", + "integrity": "sha512-zheJpzwyNrG4t39vusA67v3BYg1HTVXOF8cErPEHzWK88PEOFwgo6Ea9VHOgOWNMgeuOtFVtB73NE2NWl9uDyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", + "license": "MIT" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/boxen": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "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": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", + "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/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/cliui/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/cliui/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/cliui/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/cliui/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/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "devOptional": true, + "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==", + "devOptional": true, + "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==", + "devOptional": true, + "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==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/common-ancestor-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", + "license": "ISC" + }, + "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/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-selector-parser": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.0.5.tgz", + "integrity": "sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "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==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/deterministic-object-hash": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz", + "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==", + "license": "MIT", + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/drizzle-orm": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.36.2.tgz", + "integrity": "sha512-uVwIdQMo+zwI09hCSNVR29tYn4Vw6F7gga/CsZgDJmTSGDdUdLo+Ur45Qc3gDK7oFTxD/eRANNnPgvPmRY+jSA==", + "license": "Apache-2.0", + "peerDependencies": { + "@aws-sdk/client-rds-data": ">=3", + "@cloudflare/workers-types": ">=3", + "@electric-sql/pglite": ">=0.2.0", + "@libsql/client": ">=0.10.0", + "@libsql/client-wasm": ">=0.10.0", + "@neondatabase/serverless": ">=0.1", + "@op-engineering/op-sqlite": ">=2", + "@opentelemetry/api": "^1.4.1", + "@planetscale/database": ">=1", + "@prisma/client": "*", + "@tidbcloud/serverless": "*", + "@types/better-sqlite3": "*", + "@types/pg": "*", + "@types/react": ">=18", + "@types/sql.js": "*", + "@vercel/postgres": ">=0.8.0", + "@xata.io/client": "*", + "better-sqlite3": ">=7", + "bun-types": "*", + "expo-sqlite": ">=14.0.0", + "knex": "*", + "kysely": "*", + "mysql2": ">=2", + "pg": ">=8", + "postgres": ">=3", + "react": ">=18", + "sql.js": ">=1", + "sqlite3": ">=5" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-rds-data": { + "optional": true + }, + "@cloudflare/workers-types": { + "optional": true + }, + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "@libsql/client-wasm": { + "optional": true + }, + "@neondatabase/serverless": { + "optional": true + }, + "@op-engineering/op-sqlite": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@prisma/client": { + "optional": true + }, + "@tidbcloud/serverless": { + "optional": true + }, + "@types/better-sqlite3": { + "optional": true + }, + "@types/pg": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "@types/sql.js": { + "optional": true + }, + "@vercel/postgres": { + "optional": true + }, + "@xata.io/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "bun-types": { + "optional": true + }, + "expo-sqlite": { + "optional": true + }, + "knex": { + "optional": true + }, + "kysely": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "postgres": { + "optional": true + }, + "prisma": { + "optional": true + }, + "react": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.59", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.59.tgz", + "integrity": "sha512-faAXB6+gEbC8FsiRdpOXgOe4snP49YwjiXynEB8Mp7sUx80W5eN+BnnBHJ/F7eIeLzs+QBfDD40bJMm97oEFcw==", + "license": "ISC" + }, + "node_modules/emmet": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "./packages/scanner", + "./packages/abbreviation", + "./packages/css-abbreviation", + "./" + ], + "dependencies": { + "@emmetio/abbreviation": "^2.3.3", + "@emmetio/css-abbreviation": "^2.1.8" + } + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "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/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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/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/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "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-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-parser": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "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/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "license": "Apache-2.0", + "dependencies": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "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/fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge/node_modules/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==", + "license": "MIT" + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "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/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "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/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "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/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "ISC" + }, + "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.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC" + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", + "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^8.0.0", + "property-information": "^6.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "license": "MIT" + }, + "node_modules/hast-util-to-estree/node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", + "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", + "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "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/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "devOptional": true, + "license": "MIT" + }, + "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-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "dev": true, + "license": "MIT" + }, + "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/load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-yaml-file/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/load-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/marked": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.0.tgz", + "integrity": "sha512-0mouKmBROJv/WSHJBPZZyYofUgawMChnD5je/g+aOBXsHDjb/IsnTQj7mnhQZu+qPJmRQ0ecX3mLGEUm3BgwYA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", + "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", + "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", + "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", + "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.2.tgz", + "integrity": "sha512-xKxhkB62vwHUuuxHe9Xqty3UaAsizV2YKq5OV344u3hFBbf8zIYrhYOWhAQb94MtMPkjTOzzjJ/hid9/dR5vFA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", + "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "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/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "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-gyp-build": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.3.tgz", + "integrity": "sha512-EMS95CMJzdoSKoIiXo8pxKoL8DYxwIZXYlLmgPb8KUv794abpnLK6ynsCAWNliOjREKruYKdzbh76HHYUHX7nw==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "devOptional": true, + "license": "MIT" + }, + "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/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oniguruma-to-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "license": "MIT", + "dependencies": { + "regex": "^4.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/opendal": { + "version": "0.47.7", + "resolved": "https://registry.npmjs.org/opendal/-/opendal-0.47.7.tgz", + "integrity": "sha512-pgp0fZTITdStnBnh0nQRZWZF3kCUyu+TxOZepC2ScZ9bRVOtkz2GyXHndkxZ6g+ohI5v7HCDh/1Ixd8btMMjtw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@opendal/lib-darwin-arm64": "0.47.7", + "@opendal/lib-darwin-x64": "0.47.7", + "@opendal/lib-linux-arm64-gnu": "0.47.7", + "@opendal/lib-linux-arm64-musl": "0.47.7", + "@opendal/lib-linux-x64-gnu": "0.47.7", + "@opendal/lib-win32-arm64-msvc": "0.47.7", + "@opendal/lib-win32-x64-msvc": "0.47.7" + } + }, + "node_modules/ora": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.1.1.tgz", + "integrity": "sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/p-limit": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz", + "integrity": "sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.0.1.tgz", + "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.3.tgz", + "integrity": "sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/pg": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.1.tgz", + "integrity": "sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.7.0", + "pg-pool": "^3.7.0", + "pg-protocol": "^1.7.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", + "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-numeric": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", + "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/pg-pool": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.0.tgz", + "integrity": "sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", + "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "pg-numeric": "1.0.2", + "postgres-array": "~3.0.1", + "postgres-bytea": "~3.0.0", + "postgres-date": "~2.1.0", + "postgres-interval": "^3.0.0", + "postgres-range": "^1.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pg/node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pg/node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pg/node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pg/node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pg/node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "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": "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/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "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.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postgres-array": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", + "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/postgres-bytea": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", + "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "obuf": "~1.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postgres-date": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", + "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/postgres-interval": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", + "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/postgres-range": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", + "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/preferred-pm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-4.0.0.tgz", + "integrity": "sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==", + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "find-yarn-workspace-root2": "1.2.16", + "which-pm": "^3.0.0" + }, + "engines": { + "node": ">=18.12" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-astro": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.1.tgz", + "integrity": "sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.9.1", + "prettier": "^3.0.0", + "sass-formatter": "^0.7.6" + }, + "engines": { + "node": "^14.15.0 || >=16.0.0" + } + }, + "node_modules/prettier-plugin-astro-organize-imports": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-astro-organize-imports/-/prettier-plugin-astro-organize-imports-0.4.11.tgz", + "integrity": "sha512-qJQZ7qgnTVmk8ALe1SXpCVGa2QNanhsKn6ivfGQqWH8SCgQY1/poxLVras0Q4fqRBugR3xPRGxovODk1tmkbwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.8.0", + "typescript": "^5.4.5" + }, + "peerDependencies": { + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-tailwindcss": "*" + }, + "peerDependenciesMeta": { + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-tailwindcss": { + "optional": true + } + } + }, + "node_modules/prettier-plugin-organize-imports": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz", + "integrity": "sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9", + "vue-tsc": "^2.1.0" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/promise-polyfill": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.0.tgz", + "integrity": "sha512-P6NJ2wU/8fac44ENORsuqT8TiolKGB2u0fEClPtXezn7w5cmLIjM/7mhPlTebke2EPr6tmqZbXvnX0TxwykGrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/qrcode-svg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/qrcode-svg/-/qrcode-svg-1.1.0.tgz", + "integrity": "sha512-XyQCIXux1zEIA3NPb0AeR8UMYvXZzWEhgdBgBjH9gO7M48H9uoHzviNz8pXw3UzrAcxRRRn9gxHewAVK7bn9qw==", + "license": "MIT", + "bin": { + "qrcode-svg": "bin/qrcode-svg.js" + } + }, + "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==", + "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/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regex": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.4.0.tgz", + "integrity": "sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==", + "license": "MIT" + }, + "node_modules/rehype": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rehype-autolink-headings/-/rehype-autolink-headings-7.1.0.tgz", + "integrity": "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", + "dev": true, + "license": "MIT" + }, + "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/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-sensor": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/resize-sensor/-/resize-sensor-0.0.6.tgz", + "integrity": "sha512-e+3wwdki9elemYP6AnyG2BK9/Gd7ak46wZN+Z62WwmWfhn2La1XV2rPRRIcar+PhRhfiQDXi29TapGMTIbI3Pg==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/rimraf/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.26.0.tgz", + "integrity": "sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.26.0", + "@rollup/rollup-android-arm64": "4.26.0", + "@rollup/rollup-darwin-arm64": "4.26.0", + "@rollup/rollup-darwin-x64": "4.26.0", + "@rollup/rollup-freebsd-arm64": "4.26.0", + "@rollup/rollup-freebsd-x64": "4.26.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.26.0", + "@rollup/rollup-linux-arm-musleabihf": "4.26.0", + "@rollup/rollup-linux-arm64-gnu": "4.26.0", + "@rollup/rollup-linux-arm64-musl": "4.26.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.26.0", + "@rollup/rollup-linux-riscv64-gnu": "4.26.0", + "@rollup/rollup-linux-s390x-gnu": "4.26.0", + "@rollup/rollup-linux-x64-gnu": "4.26.0", + "@rollup/rollup-linux-x64-musl": "4.26.0", + "@rollup/rollup-win32-arm64-msvc": "4.26.0", + "@rollup/rollup-win32-ia32-msvc": "4.26.0", + "@rollup/rollup-win32-x64-msvc": "4.26.0", + "fsevents": "~2.3.2" + } + }, + "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==", + "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/s.color": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/sass-formatter": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", + "integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "suf-log": "^2.5.3" + } + }, + "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.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "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==", + "devOptional": true, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.22.2.tgz", + "integrity": "sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "1.22.2", + "@shikijs/engine-javascript": "1.22.2", + "@shikijs/engine-oniguruma": "1.22.2", + "@shikijs/types": "1.22.2", + "@shikijs/vscode-textmate": "^9.3.0", + "@types/hast": "^3.0.4" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/smoothscroll": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/smoothscroll/-/smoothscroll-0.4.0.tgz", + "integrity": "sha512-sggQ3U2Un38b3+q/j1P4Y4fCboCtoUIaBYoge+Lb6Xg1H8RTIif/hugVr+ErMtIDpvBbhQfTjtiTeYAfbw1ZGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "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/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "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/string-width-cjs/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/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "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": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/suf-log": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", + "dev": true, + "license": "MIT", + "dependencies": { + "s.color": "0.0.15" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "license": "MIT" + }, + "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/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tsconfck": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz", + "integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==", + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/type-fest": { + "version": "4.26.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", + "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typesafe-path": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", + "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-auto-import-cache": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.5.tgz", + "integrity": "sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.8" + } + }, + "node_modules/ultrahtml": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-5.1.0.tgz", + "integrity": "sha512-4A5mfokSHG/rNQ4g7gSbdEs+H586xyd24sdJqF1IWamqrLHvYb+DH48fzxowyOhOfK7YSqX+XlCojAyuuyyT2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "css-selector-parser": "^3.0.0", + "devlop": "^1.1.0", + "nth-check": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "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.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.3.tgz", + "integrity": "sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/volar-service-css": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-emmet": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emmetio/css-parser": "^0.4.0", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-html": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-prettier": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.62.tgz", + "integrity": "sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0", + "prettier": "^2.2 || ^3.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + }, + "prettier": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-browserify": "^1.0.1", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.3", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-nls": "^5.2.0", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript-twoslash-queries": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-yaml": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.62.tgz", + "integrity": "sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8", + "yaml-language-server": "~1.15.0" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/vscode-css-languageservice": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.1.tgz", + "integrity": "sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/vscode-html-languageservice": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", + "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.2" + }, + "engines": { + "npm": ">=7.0.0" + } + }, + "node_modules/vscode-json-languageservice/node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-nls": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/web-vitals": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", + "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", + "license": "Apache-2.0" + }, + "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/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-pm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-3.0.0.tgz", + "integrity": "sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==", + "license": "MIT", + "dependencies": { + "load-yaml-file": "^0.2.0" + }, + "engines": { + "node": ">=18.12" + } + }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wide-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "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/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-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/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", + "license": "MIT" + }, + "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/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yaml-language-server": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.15.0.tgz", + "integrity": "sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.11.0", + "lodash": "4.17.21", + "request-light": "^0.5.7", + "vscode-json-languageservice": "4.1.8", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.2", + "yaml": "2.2.2" + }, + "bin": { + "yaml-language-server": "bin/yaml-language-server" + }, + "optionalDependencies": { + "prettier": "2.8.7" + } + }, + "node_modules/yaml-language-server/node_modules/prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/yaml-language-server/node_modules/request-light": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", + "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==", + "dev": true, + "license": "MIT" + }, + "node_modules/yaml-language-server/node_modules/vscode-jsonrpc": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0 || >=10.0.0" + } + }, + "node_modules/yaml-language-server/node_modules/vscode-languageserver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.16.0" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/yaml-language-server/node_modules/vscode-languageserver-protocol": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "dev": true, + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "6.0.0", + "vscode-languageserver-types": "3.16.0" + } + }, + "node_modules/yaml-language-server/node_modules/vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true, + "license": "MIT" + }, + "node_modules/yaml-language-server/node_modules/yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/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/yargs/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/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.23.5", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.5.tgz", + "integrity": "sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.23.3" + } + }, + "node_modules/zod-to-ts": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz", + "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==", + "peerDependencies": { + "typescript": "^4.9.4 || ^5.0.2", + "zod": "^3" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..36f52eb --- /dev/null +++ b/package.json @@ -0,0 +1,88 @@ +{ + "name": "yufan.me", + "version": "3.0.0", + "private": true, + "description": "The personal blog for Yufan Sheng", + "keywords": [ + "blog", + "astro", + "yufan", + "ameho", + "syhily" + ], + "homepage": "https://yufan.me", + "bugs": { + "url": "https://github.com/syhily/yufan.me/issues", + "email": "syhily@gmail.com" + }, + "repository": { + "type": "git", + "url": "https://github.com/syhily/yufan.me.git" + }, + "license": "MIT", + "author": { + "name": "Yufan Sheng", + "email": "syhily@gmail.com", + "url": "https://yufan.me" + }, + "type": "module", + "scripts": { + "astro": "astro", + "build": "rimraf dist && rimraf .zeabur && astro check && astro build", + "dev": "astro dev", + "lint": "biome check --write . && prettier . --write", + "prepare": "npx husky", + "preview": "astro preview", + "start": "astro dev" + }, + "lint-staged": { + "**/*": [ + "biome check --no-errors-on-unmatched --files-ignore-unknown=true", + "prettier --write --ignore-unknown" + ] + }, + "dependencies": { + "@astrojs/mdx": "^3.1.9", + "@astrojs/rss": "^4.0.9", + "@zeabur/astro-adapter": "^1.0.6", + "astro": "^4.16.12", + "drizzle-orm": "^0.36.2", + "fuse.js": "^7.0.0", + "lodash": "^4.17.21", + "luxon": "^3.5.0", + "marked": "^15.0.0", + "pg": "^8.13.1", + "qrcode-svg": "^1.1.0", + "ultrahtml": "^1.5.3" + }, + "devDependencies": { + "@astrojs/check": "^0.9.4", + "@biomejs/biome": "^1.9.4", + "@napi-rs/canvas": "^0.1.61", + "@types/lodash": "^4.17.13", + "@types/luxon": "^3.4.2", + "@types/node": "^22.9.0", + "@types/pg": "^8.11.10", + "@types/qrcode-svg": "^1.1.5", + "@types/unist": "^3.0.3", + "aplayer": "^1.10.1", + "astro-uploader": "^1.1.3", + "bootstrap": "^5.3.3", + "prettier": "^3.3.3", + "prettier-plugin-astro": "^0.14.1", + "prettier-plugin-astro-organize-imports": "^0.4.11", + "prettier-plugin-organize-imports": "^4.1.0", + "rehype-autolink-headings": "^7.1.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "resize-sensor": "^0.0.6", + "rimraf": "^6.0.1", + "sharp": "^0.33.5", + "typescript": "^5.6.3", + "unist-util-select": "^5.1.0" + }, + "packageManager": "npm@10.9.0", + "engines": { + "node": "22.11.0" + } +} diff --git a/plugins/images.ts b/plugins/images.ts new file mode 100644 index 0000000..eb13743 --- /dev/null +++ b/plugins/images.ts @@ -0,0 +1,59 @@ +import type { Literal, Node, Parent } from 'unist'; +import { selectAll } from 'unist-util-select'; +import options from '../options'; +import { imageMetadata } from '../src/helpers/images'; +import { urlJoin } from '../src/helpers/tools'; + +type ImageNode = Parent & { + url: string; + alt: string; + name: string; + width?: number; + height?: number; + attributes: (Literal & { name: string })[]; +}; + +export const astroImage = () => { + return async (tree: Node) => { + // Find all the image node. + const imageNodes = selectAll('image', tree) + .map((node) => node as ImageNode) + .filter((imageNode) => !imageNode.url.startsWith('http')) + .map(transformAstroImage); + + // Process image with blur metadata. + await Promise.all(imageNodes); + return tree; + }; +}; + +const transformAstroImage = async (imageNode: ImageNode) => { + imageNode.type = 'mdxJsxFlowElement'; + imageNode.name = 'Image'; + + try { + const metadata = await imageMetadata(imageNode.url); + if (metadata == null) { + throw new Error(`Failed to get image metadata: ${imageNode.url}`); + } + + imageNode.attributes = [ + { type: 'mdxJsxAttribute', name: 'alt', value: imageNode.alt }, + { type: 'mdxJsxAttribute', name: 'src', value: metadata.src }, + { type: 'mdxJsxAttribute', name: 'width', value: imageNode.width ?? metadata.width }, + { type: 'mdxJsxAttribute', name: 'height', value: imageNode.height ?? metadata.height }, + { type: 'mdxJsxAttribute', name: 'blurDataURL', value: metadata.blurDataURL }, + { type: 'mdxJsxAttribute', name: 'blurWidth', value: metadata.blurWidth }, + { type: 'mdxJsxAttribute', name: 'blurHeight', value: metadata.blurHeight }, + ]; + } catch (error) { + imageNode.attributes = [ + { type: 'mdxJsxAttribute', name: 'alt', value: imageNode.alt }, + { + type: 'mdxJsxAttribute', + name: 'src', + value: imageNode.url.startsWith('/') ? urlJoin(options.assetsPrefix(), imageNode.url) : imageNode.url, + }, + ]; + } +}; diff --git a/plugins/resize.ts b/plugins/resize.ts new file mode 100644 index 0000000..7c2773c --- /dev/null +++ b/plugins/resize.ts @@ -0,0 +1,91 @@ +import type { ImageOutputFormat, ImageQualityPreset, LocalImageService } from 'astro'; +import { baseService } from 'astro/assets'; + +const qualityTable: Record = { + low: 25, + mid: 50, + high: 80, + max: 100, +}; + +const parseQuality = (quality: string): string | number => { + const result = Number.parseInt(quality); + if (Number.isNaN(result)) { + return quality; + } + + return result; +}; + +type BaseServiceTransform = { + src: string; + width?: number; + height?: number; + format: string; + quality?: string | null; +}; + +interface SharpImageServiceConfig { + /** + * The `limitInputPixels` option passed to Sharp. See https://sharp.pixelplumbing.com/api-constructor for more information + */ + limitInputPixels?: import('sharp').SharpOptions['limitInputPixels']; +} + +const imageService: LocalImageService = { + getURL: baseService.getURL, + getSrcSet: baseService.getSrcSet, + getHTMLAttributes: baseService.getHTMLAttributes, + validateOptions: baseService.validateOptions, + parseURL: baseService.parseURL, + async transform(inputBuffer, transformOptions, config) { + const { default: sharp } = await import('sharp'); + const transform: BaseServiceTransform = transformOptions as BaseServiceTransform; + + // Sharp has some support for SVGs, we could probably support this once Sharp is the default and only service. + if (transform.format === 'svg') return { data: inputBuffer, format: 'svg' }; + + const result = sharp(inputBuffer, { + failOnError: false, + pages: -1, + limitInputPixels: config.service.config.limitInputPixels, + }); + + result.rotate(); + + // Never resize using both width and height at the same time, prioritizing width. + if (transform.height) { + if (!transform.width) { + result.resize({ height: Math.round(transform.height) }); + } else { + // Allow the width and height to be set. + result.resize({ width: Math.round(transform.width), height: Math.round(transform.height) }); + } + } else if (transform.width) { + result.resize({ width: Math.round(transform.width) }); + } + + if (transform.format) { + let quality: number | string | undefined = undefined; + if (transform.quality) { + const parsedQuality = parseQuality(transform.quality); + if (typeof parsedQuality === 'number') { + quality = parsedQuality; + } else { + quality = transform.quality in qualityTable ? qualityTable[transform.quality] : undefined; + } + } + + result.toFormat(transform.format as keyof import('sharp').FormatEnum, { quality: quality }); + } + + const { data, info } = await result.toBuffer({ resolveWithObject: true }); + + return { + data: data, + format: info.format as ImageOutputFormat, + }; + }, +}; + +export default imageService; diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..ee0b2d2 Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/blog-poster-dark.png b/public/blog-poster-dark.png new file mode 100644 index 0000000..43ea2c6 Binary files /dev/null and b/public/blog-poster-dark.png differ diff --git a/public/blog-poster.png b/public/blog-poster.png new file mode 100644 index 0000000..0f29c66 Binary files /dev/null and b/public/blog-poster.png differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..076c336 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..13eb2db --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,12 @@ + + + favicon + + + + + + + + + diff --git a/public/feed.xsl b/public/feed.xsl new file mode 100644 index 0000000..baf6f13 --- /dev/null +++ b/public/feed.xsl @@ -0,0 +1,68 @@ + + + + + + + 订阅 - <xsl:value-of select="/rss/channel/title"/> + + + + + + +
+

This is a web feed, also known as an RSS feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to get started with newsreaders and subscribing. It's free.

+

这是一个网络订阅,也称为 RSS 订阅。将地址栏中的 URL 复制到新闻阅读器中即可订阅。访问关于订阅以开始使用新闻阅读器和订阅。并且是免费的。

+
+ + +
+
+ +
+

+ + + + + + +

+
+
+ + + +
+
diff --git a/public/icon-192.png b/public/icon-192.png new file mode 100644 index 0000000..a8a2446 Binary files /dev/null and b/public/icon-192.png differ diff --git a/public/icon-512.png b/public/icon-512.png new file mode 100644 index 0000000..8e0d255 Binary files /dev/null and b/public/icon-512.png differ diff --git a/public/images/2011/04/2011041420484000.jpg b/public/images/2011/04/2011041420484000.jpg new file mode 100644 index 0000000..6c0c831 Binary files /dev/null and b/public/images/2011/04/2011041420484000.jpg differ diff --git a/public/images/2011/04/2011041520510800.jpg b/public/images/2011/04/2011041520510800.jpg new file mode 100644 index 0000000..4408c64 Binary files /dev/null and b/public/images/2011/04/2011041520510800.jpg differ diff --git a/public/images/2011/04/2011041520580200.jpg b/public/images/2011/04/2011041520580200.jpg new file mode 100644 index 0000000..08923fa Binary files /dev/null and b/public/images/2011/04/2011041520580200.jpg differ diff --git a/public/images/2011/04/2011041522562500.jpg b/public/images/2011/04/2011041522562500.jpg new file mode 100644 index 0000000..70adca5 Binary files /dev/null and b/public/images/2011/04/2011041522562500.jpg differ diff --git a/public/images/2011/04/2011042321083500.jpg b/public/images/2011/04/2011042321083500.jpg new file mode 100644 index 0000000..d6d440c Binary files /dev/null and b/public/images/2011/04/2011042321083500.jpg differ diff --git a/public/images/2011/04/2011042321142000.jpg b/public/images/2011/04/2011042321142000.jpg new file mode 100644 index 0000000..4cad2de Binary files /dev/null and b/public/images/2011/04/2011042321142000.jpg differ diff --git a/public/images/2011/04/2011042321143500.jpg b/public/images/2011/04/2011042321143500.jpg new file mode 100644 index 0000000..c82c01d Binary files /dev/null and b/public/images/2011/04/2011042321143500.jpg differ diff --git a/public/images/2011/04/2011042321155000.jpg b/public/images/2011/04/2011042321155000.jpg new file mode 100644 index 0000000..0d4e6ab Binary files /dev/null and b/public/images/2011/04/2011042321155000.jpg differ diff --git a/public/images/2011/04/2011042511393900.jpg b/public/images/2011/04/2011042511393900.jpg new file mode 100644 index 0000000..5e47103 Binary files /dev/null and b/public/images/2011/04/2011042511393900.jpg differ diff --git a/public/images/2011/04/2011042521290100.jpg b/public/images/2011/04/2011042521290100.jpg new file mode 100644 index 0000000..edbc167 Binary files /dev/null and b/public/images/2011/04/2011042521290100.jpg differ diff --git a/public/images/2011/04/2011042521292600.jpg b/public/images/2011/04/2011042521292600.jpg new file mode 100644 index 0000000..ed1a674 Binary files /dev/null and b/public/images/2011/04/2011042521292600.jpg differ diff --git a/public/images/2011/04/2011042521293200.jpg b/public/images/2011/04/2011042521293200.jpg new file mode 100644 index 0000000..b0331c5 Binary files /dev/null and b/public/images/2011/04/2011042521293200.jpg differ diff --git a/public/images/2011/04/2011042521302200.jpg b/public/images/2011/04/2011042521302200.jpg new file mode 100644 index 0000000..8f76be4 Binary files /dev/null and b/public/images/2011/04/2011042521302200.jpg differ diff --git a/public/images/2011/04/2011042521302700.jpg b/public/images/2011/04/2011042521302700.jpg new file mode 100644 index 0000000..a75d52a Binary files /dev/null and b/public/images/2011/04/2011042521302700.jpg differ diff --git a/public/images/2011/04/2011042521351900.jpg b/public/images/2011/04/2011042521351900.jpg new file mode 100644 index 0000000..5611dd6 Binary files /dev/null and b/public/images/2011/04/2011042521351900.jpg differ diff --git a/public/images/2011/04/2011042521393900.jpg b/public/images/2011/04/2011042521393900.jpg new file mode 100644 index 0000000..1eb1b5a Binary files /dev/null and b/public/images/2011/04/2011042521393900.jpg differ diff --git a/public/images/2011/05/2011051421445100.jpg b/public/images/2011/05/2011051421445100.jpg new file mode 100644 index 0000000..00ecdf0 Binary files /dev/null and b/public/images/2011/05/2011051421445100.jpg differ diff --git a/public/images/2011/05/2011051421472100.jpg b/public/images/2011/05/2011051421472100.jpg new file mode 100644 index 0000000..5b2a268 Binary files /dev/null and b/public/images/2011/05/2011051421472100.jpg differ diff --git a/public/images/2011/05/2011051521491300.jpg b/public/images/2011/05/2011051521491300.jpg new file mode 100644 index 0000000..b78e12f Binary files /dev/null and b/public/images/2011/05/2011051521491300.jpg differ diff --git a/public/images/2011/05/2011052622280900.jpg b/public/images/2011/05/2011052622280900.jpg new file mode 100644 index 0000000..e1575ed Binary files /dev/null and b/public/images/2011/05/2011052622280900.jpg differ diff --git a/public/images/2011/05/2011052622281600.jpg b/public/images/2011/05/2011052622281600.jpg new file mode 100644 index 0000000..ca9b6e2 Binary files /dev/null and b/public/images/2011/05/2011052622281600.jpg differ diff --git a/public/images/2011/05/2011052622282200.jpg b/public/images/2011/05/2011052622282200.jpg new file mode 100644 index 0000000..d95762d Binary files /dev/null and b/public/images/2011/05/2011052622282200.jpg differ diff --git a/public/images/2011/05/2011052622285100.jpg b/public/images/2011/05/2011052622285100.jpg new file mode 100644 index 0000000..016896c Binary files /dev/null and b/public/images/2011/05/2011052622285100.jpg differ diff --git a/public/images/2011/06/2011061816481300.jpg b/public/images/2011/06/2011061816481300.jpg new file mode 100644 index 0000000..1d2ab32 Binary files /dev/null and b/public/images/2011/06/2011061816481300.jpg differ diff --git a/public/images/2011/06/2011061816505900.jpg b/public/images/2011/06/2011061816505900.jpg new file mode 100644 index 0000000..6c950fc Binary files /dev/null and b/public/images/2011/06/2011061816505900.jpg differ diff --git a/public/images/2011/06/2011062418273300.jpg b/public/images/2011/06/2011062418273300.jpg new file mode 100644 index 0000000..d35db04 Binary files /dev/null and b/public/images/2011/06/2011062418273300.jpg differ diff --git a/public/images/2011/06/2011062418362900.jpg b/public/images/2011/06/2011062418362900.jpg new file mode 100644 index 0000000..49397b9 Binary files /dev/null and b/public/images/2011/06/2011062418362900.jpg differ diff --git a/public/images/2011/06/2011062418383500.jpg b/public/images/2011/06/2011062418383500.jpg new file mode 100644 index 0000000..eb8b4eb Binary files /dev/null and b/public/images/2011/06/2011062418383500.jpg differ diff --git a/public/images/2011/06/2011062418552500.jpg b/public/images/2011/06/2011062418552500.jpg new file mode 100644 index 0000000..3224df9 Binary files /dev/null and b/public/images/2011/06/2011062418552500.jpg differ diff --git a/public/images/2011/07/2011070220190200.jpg b/public/images/2011/07/2011070220190200.jpg new file mode 100644 index 0000000..35816f6 Binary files /dev/null and b/public/images/2011/07/2011070220190200.jpg differ diff --git a/public/images/2011/07/2011070220314300.jpg b/public/images/2011/07/2011070220314300.jpg new file mode 100644 index 0000000..01186d4 Binary files /dev/null and b/public/images/2011/07/2011070220314300.jpg differ diff --git a/public/images/2011/07/2011070220315100.jpg b/public/images/2011/07/2011070220315100.jpg new file mode 100644 index 0000000..bef58f6 Binary files /dev/null and b/public/images/2011/07/2011070220315100.jpg differ diff --git a/public/images/2011/07/2011070220315800.jpg b/public/images/2011/07/2011070220315800.jpg new file mode 100644 index 0000000..96710a1 Binary files /dev/null and b/public/images/2011/07/2011070220315800.jpg differ diff --git a/public/images/2011/07/2011070220320500.jpg b/public/images/2011/07/2011070220320500.jpg new file mode 100644 index 0000000..edb45e4 Binary files /dev/null and b/public/images/2011/07/2011070220320500.jpg differ diff --git a/public/images/2011/07/2011070220322300.jpg b/public/images/2011/07/2011070220322300.jpg new file mode 100644 index 0000000..80574a0 Binary files /dev/null and b/public/images/2011/07/2011070220322300.jpg differ diff --git a/public/images/2011/07/2011070220323300.jpg b/public/images/2011/07/2011070220323300.jpg new file mode 100644 index 0000000..f0c54d7 Binary files /dev/null and b/public/images/2011/07/2011070220323300.jpg differ diff --git a/public/images/2011/07/2011070220324000.jpg b/public/images/2011/07/2011070220324000.jpg new file mode 100644 index 0000000..a74a525 Binary files /dev/null and b/public/images/2011/07/2011070220324000.jpg differ diff --git a/public/images/2011/07/2011070220324800.jpg b/public/images/2011/07/2011070220324800.jpg new file mode 100644 index 0000000..3ed90b7 Binary files /dev/null and b/public/images/2011/07/2011070220324800.jpg differ diff --git a/public/images/2011/07/2011070220325600.jpg b/public/images/2011/07/2011070220325600.jpg new file mode 100644 index 0000000..9db9064 Binary files /dev/null and b/public/images/2011/07/2011070220325600.jpg differ diff --git a/public/images/2011/07/2011070220330400.jpg b/public/images/2011/07/2011070220330400.jpg new file mode 100644 index 0000000..7f87aee Binary files /dev/null and b/public/images/2011/07/2011070220330400.jpg differ diff --git a/public/images/2011/07/2011070220331000.jpg b/public/images/2011/07/2011070220331000.jpg new file mode 100644 index 0000000..a23dacd Binary files /dev/null and b/public/images/2011/07/2011070220331000.jpg differ diff --git a/public/images/2011/07/2011070220331700.jpg b/public/images/2011/07/2011070220331700.jpg new file mode 100644 index 0000000..99a148f Binary files /dev/null and b/public/images/2011/07/2011070220331700.jpg differ diff --git a/public/images/2011/07/2011070220332300.jpg b/public/images/2011/07/2011070220332300.jpg new file mode 100644 index 0000000..6dc9642 Binary files /dev/null and b/public/images/2011/07/2011070220332300.jpg differ diff --git a/public/images/2011/07/2011070220332900.jpg b/public/images/2011/07/2011070220332900.jpg new file mode 100644 index 0000000..c84a3fc Binary files /dev/null and b/public/images/2011/07/2011070220332900.jpg differ diff --git a/public/images/2011/07/2011070220544000.jpg b/public/images/2011/07/2011070220544000.jpg new file mode 100644 index 0000000..bc77b04 Binary files /dev/null and b/public/images/2011/07/2011070220544000.jpg differ diff --git a/public/images/2011/07/2011070220550500.jpg b/public/images/2011/07/2011070220550500.jpg new file mode 100644 index 0000000..a9f742d Binary files /dev/null and b/public/images/2011/07/2011070220550500.jpg differ diff --git a/public/images/2011/07/2011070220552500.jpg b/public/images/2011/07/2011070220552500.jpg new file mode 100644 index 0000000..a0c65c9 Binary files /dev/null and b/public/images/2011/07/2011070220552500.jpg differ diff --git a/public/images/2011/07/2011070220554100.jpg b/public/images/2011/07/2011070220554100.jpg new file mode 100644 index 0000000..3cada17 Binary files /dev/null and b/public/images/2011/07/2011070220554100.jpg differ diff --git a/public/images/2011/07/2011070220560200.jpg b/public/images/2011/07/2011070220560200.jpg new file mode 100644 index 0000000..b95497b Binary files /dev/null and b/public/images/2011/07/2011070220560200.jpg differ diff --git a/public/images/2012/01/2012011519234100.jpg b/public/images/2012/01/2012011519234100.jpg new file mode 100644 index 0000000..8b50c52 Binary files /dev/null and b/public/images/2012/01/2012011519234100.jpg differ diff --git a/public/images/2012/01/2012011819285800.jpg b/public/images/2012/01/2012011819285800.jpg new file mode 100644 index 0000000..ff6a819 Binary files /dev/null and b/public/images/2012/01/2012011819285800.jpg differ diff --git a/public/images/2012/01/2012011819343900.jpg b/public/images/2012/01/2012011819343900.jpg new file mode 100644 index 0000000..7164c99 Binary files /dev/null and b/public/images/2012/01/2012011819343900.jpg differ diff --git a/public/images/2012/02/2012020222465000.jpg b/public/images/2012/02/2012020222465000.jpg new file mode 100644 index 0000000..4b399d1 Binary files /dev/null and b/public/images/2012/02/2012020222465000.jpg differ diff --git a/public/images/2012/02/2012020521241800.jpg b/public/images/2012/02/2012020521241800.jpg new file mode 100644 index 0000000..29c0d2d Binary files /dev/null and b/public/images/2012/02/2012020521241800.jpg differ diff --git a/public/images/2012/02/2012020521304400.jpg b/public/images/2012/02/2012020521304400.jpg new file mode 100644 index 0000000..b757890 Binary files /dev/null and b/public/images/2012/02/2012020521304400.jpg differ diff --git a/public/images/2012/02/2012020521334700.jpg b/public/images/2012/02/2012020521334700.jpg new file mode 100644 index 0000000..4506b77 Binary files /dev/null and b/public/images/2012/02/2012020521334700.jpg differ diff --git a/public/images/2012/02/2012020821400300.jpg b/public/images/2012/02/2012020821400300.jpg new file mode 100644 index 0000000..2030cd4 Binary files /dev/null and b/public/images/2012/02/2012020821400300.jpg differ diff --git a/public/images/2012/02/2012020821442400.jpg b/public/images/2012/02/2012020821442400.jpg new file mode 100644 index 0000000..68c17f6 Binary files /dev/null and b/public/images/2012/02/2012020821442400.jpg differ diff --git a/public/images/2012/02/2012020821481600.jpg b/public/images/2012/02/2012020821481600.jpg new file mode 100644 index 0000000..bacce16 Binary files /dev/null and b/public/images/2012/02/2012020821481600.jpg differ diff --git a/public/images/2012/02/2012020922491700.jpg b/public/images/2012/02/2012020922491700.jpg new file mode 100644 index 0000000..7ffaa6f Binary files /dev/null and b/public/images/2012/02/2012020922491700.jpg differ diff --git a/public/images/2012/02/2012021222511100.jpg b/public/images/2012/02/2012021222511100.jpg new file mode 100644 index 0000000..79c7765 Binary files /dev/null and b/public/images/2012/02/2012021222511100.jpg differ diff --git a/public/images/2012/02/2012021422120000.jpg b/public/images/2012/02/2012021422120000.jpg new file mode 100644 index 0000000..8fc9c73 Binary files /dev/null and b/public/images/2012/02/2012021422120000.jpg differ diff --git a/public/images/2012/02/2012021422134400.jpg b/public/images/2012/02/2012021422134400.jpg new file mode 100644 index 0000000..32847ab Binary files /dev/null and b/public/images/2012/02/2012021422134400.jpg differ diff --git a/public/images/2012/02/2012021422134700.jpg b/public/images/2012/02/2012021422134700.jpg new file mode 100644 index 0000000..217f071 Binary files /dev/null and b/public/images/2012/02/2012021422134700.jpg differ diff --git a/public/images/2012/02/2012021423061000.jpg b/public/images/2012/02/2012021423061000.jpg new file mode 100644 index 0000000..3fe3c44 Binary files /dev/null and b/public/images/2012/02/2012021423061000.jpg differ diff --git a/public/images/2012/02/2012021521553500.jpg b/public/images/2012/02/2012021521553500.jpg new file mode 100644 index 0000000..a43b852 Binary files /dev/null and b/public/images/2012/02/2012021521553500.jpg differ diff --git a/public/images/2012/02/2012021522061800.jpg b/public/images/2012/02/2012021522061800.jpg new file mode 100644 index 0000000..2c3bd8f Binary files /dev/null and b/public/images/2012/02/2012021522061800.jpg differ diff --git a/public/images/2012/02/2012021822255600.jpg b/public/images/2012/02/2012021822255600.jpg new file mode 100644 index 0000000..1a734ae Binary files /dev/null and b/public/images/2012/02/2012021822255600.jpg differ diff --git a/public/images/2012/02/2012021822273700.jpg b/public/images/2012/02/2012021822273700.jpg new file mode 100644 index 0000000..58af0cc Binary files /dev/null and b/public/images/2012/02/2012021822273700.jpg differ diff --git a/public/images/2012/02/2012021822292100.jpg b/public/images/2012/02/2012021822292100.jpg new file mode 100644 index 0000000..e5ffacd Binary files /dev/null and b/public/images/2012/02/2012021822292100.jpg differ diff --git a/public/images/2012/02/2012022022154700.jpg b/public/images/2012/02/2012022022154700.jpg new file mode 100644 index 0000000..6e3e7d9 Binary files /dev/null and b/public/images/2012/02/2012022022154700.jpg differ diff --git a/public/images/2012/02/2012022122162200.jpg b/public/images/2012/02/2012022122162200.jpg new file mode 100644 index 0000000..725513c Binary files /dev/null and b/public/images/2012/02/2012022122162200.jpg differ diff --git a/public/images/2012/02/2012022122173300.jpg b/public/images/2012/02/2012022122173300.jpg new file mode 100644 index 0000000..8dc381d Binary files /dev/null and b/public/images/2012/02/2012022122173300.jpg differ diff --git a/public/images/2012/03/2012030819164800.jpg b/public/images/2012/03/2012030819164800.jpg new file mode 100644 index 0000000..1072113 Binary files /dev/null and b/public/images/2012/03/2012030819164800.jpg differ diff --git a/public/images/2012/03/2012031120464600.jpg b/public/images/2012/03/2012031120464600.jpg new file mode 100644 index 0000000..a44ca45 Binary files /dev/null and b/public/images/2012/03/2012031120464600.jpg differ diff --git a/public/images/2012/03/2012032502314500.jpg b/public/images/2012/03/2012032502314500.jpg new file mode 100644 index 0000000..183c306 Binary files /dev/null and b/public/images/2012/03/2012032502314500.jpg differ diff --git a/public/images/2012/03/2012032522505100.jpg b/public/images/2012/03/2012032522505100.jpg new file mode 100644 index 0000000..edbfd5c Binary files /dev/null and b/public/images/2012/03/2012032522505100.jpg differ diff --git a/public/images/2012/03/2012032522524300.jpg b/public/images/2012/03/2012032522524300.jpg new file mode 100644 index 0000000..0187a8f Binary files /dev/null and b/public/images/2012/03/2012032522524300.jpg differ diff --git a/public/images/2012/03/2012032522551000.jpg b/public/images/2012/03/2012032522551000.jpg new file mode 100644 index 0000000..44ad8b8 Binary files /dev/null and b/public/images/2012/03/2012032522551000.jpg differ diff --git a/public/images/2012/04/2012040101152600.jpg b/public/images/2012/04/2012040101152600.jpg new file mode 100644 index 0000000..95c9f02 Binary files /dev/null and b/public/images/2012/04/2012040101152600.jpg differ diff --git a/public/images/2012/04/2012040201181900.jpg b/public/images/2012/04/2012040201181900.jpg new file mode 100644 index 0000000..76c44c0 Binary files /dev/null and b/public/images/2012/04/2012040201181900.jpg differ diff --git a/public/images/2012/04/2012040801480400.jpg b/public/images/2012/04/2012040801480400.jpg new file mode 100644 index 0000000..9a7ede8 Binary files /dev/null and b/public/images/2012/04/2012040801480400.jpg differ diff --git a/public/images/2012/04/2012040801491700.jpg b/public/images/2012/04/2012040801491700.jpg new file mode 100644 index 0000000..28b6fb9 Binary files /dev/null and b/public/images/2012/04/2012040801491700.jpg differ diff --git a/public/images/2012/04/2012040801511700.jpg b/public/images/2012/04/2012040801511700.jpg new file mode 100644 index 0000000..6970e02 Binary files /dev/null and b/public/images/2012/04/2012040801511700.jpg differ diff --git a/public/images/2012/04/2012040801560900.jpg b/public/images/2012/04/2012040801560900.jpg new file mode 100644 index 0000000..c04f3ab Binary files /dev/null and b/public/images/2012/04/2012040801560900.jpg differ diff --git a/public/images/2012/04/2012040802192000.jpg b/public/images/2012/04/2012040802192000.jpg new file mode 100644 index 0000000..7480e3d Binary files /dev/null and b/public/images/2012/04/2012040802192000.jpg differ diff --git a/public/images/2012/04/2012040802235300.jpg b/public/images/2012/04/2012040802235300.jpg new file mode 100644 index 0000000..c226696 Binary files /dev/null and b/public/images/2012/04/2012040802235300.jpg differ diff --git a/public/images/2012/04/2012040802264300.jpg b/public/images/2012/04/2012040802264300.jpg new file mode 100644 index 0000000..931db41 Binary files /dev/null and b/public/images/2012/04/2012040802264300.jpg differ diff --git a/public/images/2012/04/2012041301591600.jpg b/public/images/2012/04/2012041301591600.jpg new file mode 100644 index 0000000..37d8bff Binary files /dev/null and b/public/images/2012/04/2012041301591600.jpg differ diff --git a/public/images/2012/04/2012041302022500.jpg b/public/images/2012/04/2012041302022500.jpg new file mode 100644 index 0000000..e77c912 Binary files /dev/null and b/public/images/2012/04/2012041302022500.jpg differ diff --git a/public/images/2012/04/2012041302080500.jpg b/public/images/2012/04/2012041302080500.jpg new file mode 100644 index 0000000..399b318 Binary files /dev/null and b/public/images/2012/04/2012041302080500.jpg differ diff --git a/public/images/2012/04/2012042002132500.jpg b/public/images/2012/04/2012042002132500.jpg new file mode 100644 index 0000000..649025a Binary files /dev/null and b/public/images/2012/04/2012042002132500.jpg differ diff --git a/public/images/2012/04/2012042002155800.jpg b/public/images/2012/04/2012042002155800.jpg new file mode 100644 index 0000000..f2d2947 Binary files /dev/null and b/public/images/2012/04/2012042002155800.jpg differ diff --git a/public/images/2012/04/2012042002155900.jpg b/public/images/2012/04/2012042002155900.jpg new file mode 100644 index 0000000..100920f Binary files /dev/null and b/public/images/2012/04/2012042002155900.jpg differ diff --git a/public/images/2012/04/2012042820485500.jpg b/public/images/2012/04/2012042820485500.jpg new file mode 100644 index 0000000..5896be0 Binary files /dev/null and b/public/images/2012/04/2012042820485500.jpg differ diff --git a/public/images/2012/04/2012042820514100.jpg b/public/images/2012/04/2012042820514100.jpg new file mode 100644 index 0000000..f4d6d87 Binary files /dev/null and b/public/images/2012/04/2012042820514100.jpg differ diff --git a/public/images/2012/04/2012042820532500.jpg b/public/images/2012/04/2012042820532500.jpg new file mode 100644 index 0000000..246c8cb Binary files /dev/null and b/public/images/2012/04/2012042820532500.jpg differ diff --git a/public/images/2012/05/2012050221032900.jpg b/public/images/2012/05/2012050221032900.jpg new file mode 100644 index 0000000..e63de2f Binary files /dev/null and b/public/images/2012/05/2012050221032900.jpg differ diff --git a/public/images/2012/05/2012050320564300.jpg b/public/images/2012/05/2012050320564300.jpg new file mode 100644 index 0000000..8acab06 Binary files /dev/null and b/public/images/2012/05/2012050320564300.jpg differ diff --git a/public/images/2012/05/2012050320583300.jpg b/public/images/2012/05/2012050320583300.jpg new file mode 100644 index 0000000..9045b02 Binary files /dev/null and b/public/images/2012/05/2012050320583300.jpg differ diff --git a/public/images/2012/05/2012050321012100.jpg b/public/images/2012/05/2012050321012100.jpg new file mode 100644 index 0000000..5e627c5 Binary files /dev/null and b/public/images/2012/05/2012050321012100.jpg differ diff --git a/public/images/2012/05/2012050521085500.jpg b/public/images/2012/05/2012050521085500.jpg new file mode 100644 index 0000000..13620e8 Binary files /dev/null and b/public/images/2012/05/2012050521085500.jpg differ diff --git a/public/images/2012/05/2012050521120700.jpg b/public/images/2012/05/2012050521120700.jpg new file mode 100644 index 0000000..018cb5c Binary files /dev/null and b/public/images/2012/05/2012050521120700.jpg differ diff --git a/public/images/2012/05/2012050521172300.jpg b/public/images/2012/05/2012050521172300.jpg new file mode 100644 index 0000000..38e02a4 Binary files /dev/null and b/public/images/2012/05/2012050521172300.jpg differ diff --git a/public/images/2012/05/2012051121064800.jpg b/public/images/2012/05/2012051121064800.jpg new file mode 100644 index 0000000..22baa5f Binary files /dev/null and b/public/images/2012/05/2012051121064800.jpg differ diff --git a/public/images/2012/05/2012051121114900.jpg b/public/images/2012/05/2012051121114900.jpg new file mode 100644 index 0000000..d7d3b90 Binary files /dev/null and b/public/images/2012/05/2012051121114900.jpg differ diff --git a/public/images/2012/05/2012051121115700.jpg b/public/images/2012/05/2012051121115700.jpg new file mode 100644 index 0000000..34ad355 Binary files /dev/null and b/public/images/2012/05/2012051121115700.jpg differ diff --git a/public/images/2012/05/2012051121120000.jpg b/public/images/2012/05/2012051121120000.jpg new file mode 100644 index 0000000..2491e62 Binary files /dev/null and b/public/images/2012/05/2012051121120000.jpg differ diff --git a/public/images/2012/05/2012051221344000.jpg b/public/images/2012/05/2012051221344000.jpg new file mode 100644 index 0000000..62bac1c Binary files /dev/null and b/public/images/2012/05/2012051221344000.jpg differ diff --git a/public/images/2012/05/2012051221344500.jpg b/public/images/2012/05/2012051221344500.jpg new file mode 100644 index 0000000..012b25f Binary files /dev/null and b/public/images/2012/05/2012051221344500.jpg differ diff --git a/public/images/2012/05/2012051221344700.jpg b/public/images/2012/05/2012051221344700.jpg new file mode 100644 index 0000000..8f69f37 Binary files /dev/null and b/public/images/2012/05/2012051221344700.jpg differ diff --git a/public/images/2012/05/2012051221345000.jpg b/public/images/2012/05/2012051221345000.jpg new file mode 100644 index 0000000..f634a83 Binary files /dev/null and b/public/images/2012/05/2012051221345000.jpg differ diff --git a/public/images/2012/05/2012051221345300.jpg b/public/images/2012/05/2012051221345300.jpg new file mode 100644 index 0000000..169ec15 Binary files /dev/null and b/public/images/2012/05/2012051221345300.jpg differ diff --git a/public/images/2012/05/2012051221345500.jpg b/public/images/2012/05/2012051221345500.jpg new file mode 100644 index 0000000..6b3a967 Binary files /dev/null and b/public/images/2012/05/2012051221345500.jpg differ diff --git a/public/images/2012/05/2012051421440600.jpg b/public/images/2012/05/2012051421440600.jpg new file mode 100644 index 0000000..2839f1d Binary files /dev/null and b/public/images/2012/05/2012051421440600.jpg differ diff --git a/public/images/2012/05/2012051422003500.jpg b/public/images/2012/05/2012051422003500.jpg new file mode 100644 index 0000000..8a0331d Binary files /dev/null and b/public/images/2012/05/2012051422003500.jpg differ diff --git a/public/images/2012/05/2012051422070900.jpg b/public/images/2012/05/2012051422070900.jpg new file mode 100644 index 0000000..979a69e Binary files /dev/null and b/public/images/2012/05/2012051422070900.jpg differ diff --git a/public/images/2012/05/2012051622352100.jpg b/public/images/2012/05/2012051622352100.jpg new file mode 100644 index 0000000..053a1a2 Binary files /dev/null and b/public/images/2012/05/2012051622352100.jpg differ diff --git a/public/images/2012/05/2012051622362800.jpg b/public/images/2012/05/2012051622362800.jpg new file mode 100644 index 0000000..4899c96 Binary files /dev/null and b/public/images/2012/05/2012051622362800.jpg differ diff --git a/public/images/2012/05/2012051622363300.jpg b/public/images/2012/05/2012051622363300.jpg new file mode 100644 index 0000000..cdf6140 Binary files /dev/null and b/public/images/2012/05/2012051622363300.jpg differ diff --git a/public/images/2012/05/2012051622403100.jpg b/public/images/2012/05/2012051622403100.jpg new file mode 100644 index 0000000..f20748f Binary files /dev/null and b/public/images/2012/05/2012051622403100.jpg differ diff --git a/public/images/2012/05/2012051623044800.jpg b/public/images/2012/05/2012051623044800.jpg new file mode 100644 index 0000000..aabefbf Binary files /dev/null and b/public/images/2012/05/2012051623044800.jpg differ diff --git a/public/images/2012/05/2012051822452400.jpg b/public/images/2012/05/2012051822452400.jpg new file mode 100644 index 0000000..d11211d Binary files /dev/null and b/public/images/2012/05/2012051822452400.jpg differ diff --git a/public/images/2012/05/2012051822495900.jpg b/public/images/2012/05/2012051822495900.jpg new file mode 100644 index 0000000..f629679 Binary files /dev/null and b/public/images/2012/05/2012051822495900.jpg differ diff --git a/public/images/2012/05/2012051822565000.jpg b/public/images/2012/05/2012051822565000.jpg new file mode 100644 index 0000000..2a1f390 Binary files /dev/null and b/public/images/2012/05/2012051822565000.jpg differ diff --git a/public/images/2012/05/2012051823010500.jpg b/public/images/2012/05/2012051823010500.jpg new file mode 100644 index 0000000..4aa78c2 Binary files /dev/null and b/public/images/2012/05/2012051823010500.jpg differ diff --git a/public/images/2012/05/2012051823075400.jpg b/public/images/2012/05/2012051823075400.jpg new file mode 100644 index 0000000..3094290 Binary files /dev/null and b/public/images/2012/05/2012051823075400.jpg differ diff --git a/public/images/2012/05/2012051823112900.jpg b/public/images/2012/05/2012051823112900.jpg new file mode 100644 index 0000000..43aa01e Binary files /dev/null and b/public/images/2012/05/2012051823112900.jpg differ diff --git a/public/images/2012/05/2012052618260200.jpg b/public/images/2012/05/2012052618260200.jpg new file mode 100644 index 0000000..cf8c9e6 Binary files /dev/null and b/public/images/2012/05/2012052618260200.jpg differ diff --git a/public/images/2012/05/2012052618260900.jpg b/public/images/2012/05/2012052618260900.jpg new file mode 100644 index 0000000..ec02ce0 Binary files /dev/null and b/public/images/2012/05/2012052618260900.jpg differ diff --git a/public/images/2012/05/2012052618262000.jpg b/public/images/2012/05/2012052618262000.jpg new file mode 100644 index 0000000..9aae9e4 Binary files /dev/null and b/public/images/2012/05/2012052618262000.jpg differ diff --git a/public/images/2012/06/2012060318520600.jpg b/public/images/2012/06/2012060318520600.jpg new file mode 100644 index 0000000..52f8498 Binary files /dev/null and b/public/images/2012/06/2012060318520600.jpg differ diff --git a/public/images/2012/06/2012060318543000.jpg b/public/images/2012/06/2012060318543000.jpg new file mode 100644 index 0000000..8081d6b Binary files /dev/null and b/public/images/2012/06/2012060318543000.jpg differ diff --git a/public/images/2012/06/2012060319082400.jpg b/public/images/2012/06/2012060319082400.jpg new file mode 100644 index 0000000..6364df5 Binary files /dev/null and b/public/images/2012/06/2012060319082400.jpg differ diff --git a/public/images/2012/06/2012060719153400.jpg b/public/images/2012/06/2012060719153400.jpg new file mode 100644 index 0000000..d530039 Binary files /dev/null and b/public/images/2012/06/2012060719153400.jpg differ diff --git a/public/images/2012/06/2012060719184100.jpg b/public/images/2012/06/2012060719184100.jpg new file mode 100644 index 0000000..74fbbd5 Binary files /dev/null and b/public/images/2012/06/2012060719184100.jpg differ diff --git a/public/images/2012/06/2012060719205200.jpg b/public/images/2012/06/2012060719205200.jpg new file mode 100644 index 0000000..1b078cb Binary files /dev/null and b/public/images/2012/06/2012060719205200.jpg differ diff --git a/public/images/2012/06/2012061019245600.jpg b/public/images/2012/06/2012061019245600.jpg new file mode 100644 index 0000000..3b0db8a Binary files /dev/null and b/public/images/2012/06/2012061019245600.jpg differ diff --git a/public/images/2012/06/2012061019294200.jpg b/public/images/2012/06/2012061019294200.jpg new file mode 100644 index 0000000..67082a7 Binary files /dev/null and b/public/images/2012/06/2012061019294200.jpg differ diff --git a/public/images/2012/06/2012061019294700.jpg b/public/images/2012/06/2012061019294700.jpg new file mode 100644 index 0000000..b03fb31 Binary files /dev/null and b/public/images/2012/06/2012061019294700.jpg differ diff --git a/public/images/2012/06/2012061100345100.jpg b/public/images/2012/06/2012061100345100.jpg new file mode 100644 index 0000000..0e0d7c9 Binary files /dev/null and b/public/images/2012/06/2012061100345100.jpg differ diff --git a/public/images/2012/06/2012061119343300.jpg b/public/images/2012/06/2012061119343300.jpg new file mode 100644 index 0000000..9d06068 Binary files /dev/null and b/public/images/2012/06/2012061119343300.jpg differ diff --git a/public/images/2012/06/2012061119414600.jpg b/public/images/2012/06/2012061119414600.jpg new file mode 100644 index 0000000..10678b4 Binary files /dev/null and b/public/images/2012/06/2012061119414600.jpg differ diff --git a/public/images/2012/06/2012061119415100.jpg b/public/images/2012/06/2012061119415100.jpg new file mode 100644 index 0000000..a850b56 Binary files /dev/null and b/public/images/2012/06/2012061119415100.jpg differ diff --git a/public/images/2012/06/2012061119415700.jpg b/public/images/2012/06/2012061119415700.jpg new file mode 100644 index 0000000..66960d0 Binary files /dev/null and b/public/images/2012/06/2012061119415700.jpg differ diff --git a/public/images/2012/06/2012061119420300.jpg b/public/images/2012/06/2012061119420300.jpg new file mode 100644 index 0000000..aa9c38c Binary files /dev/null and b/public/images/2012/06/2012061119420300.jpg differ diff --git a/public/images/2012/06/2012061321240400.jpg b/public/images/2012/06/2012061321240400.jpg new file mode 100644 index 0000000..bba6062 Binary files /dev/null and b/public/images/2012/06/2012061321240400.jpg differ diff --git a/public/images/2012/06/2012061321255600.jpg b/public/images/2012/06/2012061321255600.jpg new file mode 100644 index 0000000..c1782da Binary files /dev/null and b/public/images/2012/06/2012061321255600.jpg differ diff --git a/public/images/2012/06/2012061321260500.jpg b/public/images/2012/06/2012061321260500.jpg new file mode 100644 index 0000000..b392b8d Binary files /dev/null and b/public/images/2012/06/2012061321260500.jpg differ diff --git a/public/images/2012/06/2012061421301300.jpg b/public/images/2012/06/2012061421301300.jpg new file mode 100644 index 0000000..a7ab63d Binary files /dev/null and b/public/images/2012/06/2012061421301300.jpg differ diff --git a/public/images/2012/06/2012061421341600.jpg b/public/images/2012/06/2012061421341600.jpg new file mode 100644 index 0000000..c3c9400 Binary files /dev/null and b/public/images/2012/06/2012061421341600.jpg differ diff --git a/public/images/2012/06/2012061421342000.jpg b/public/images/2012/06/2012061421342000.jpg new file mode 100644 index 0000000..71f1b5b Binary files /dev/null and b/public/images/2012/06/2012061421342000.jpg differ diff --git a/public/images/2012/06/2012061822004800.jpg b/public/images/2012/06/2012061822004800.jpg new file mode 100644 index 0000000..abf6dd7 Binary files /dev/null and b/public/images/2012/06/2012061822004800.jpg differ diff --git a/public/images/2012/06/2012061822023600.jpg b/public/images/2012/06/2012061822023600.jpg new file mode 100644 index 0000000..3de6b88 Binary files /dev/null and b/public/images/2012/06/2012061822023600.jpg differ diff --git a/public/images/2012/06/2012061822064600.jpg b/public/images/2012/06/2012061822064600.jpg new file mode 100644 index 0000000..e4cc3aa Binary files /dev/null and b/public/images/2012/06/2012061822064600.jpg differ diff --git a/public/images/2012/06/2012061822101400.jpg b/public/images/2012/06/2012061822101400.jpg new file mode 100644 index 0000000..e67dac1 Binary files /dev/null and b/public/images/2012/06/2012061822101400.jpg differ diff --git a/public/images/2012/06/2012061822102000.jpg b/public/images/2012/06/2012061822102000.jpg new file mode 100644 index 0000000..79f44c3 Binary files /dev/null and b/public/images/2012/06/2012061822102000.jpg differ diff --git a/public/images/2012/06/2012062122492500.jpg b/public/images/2012/06/2012062122492500.jpg new file mode 100644 index 0000000..526a92e Binary files /dev/null and b/public/images/2012/06/2012062122492500.jpg differ diff --git a/public/images/2012/06/2012062122522200.jpg b/public/images/2012/06/2012062122522200.jpg new file mode 100644 index 0000000..53de900 Binary files /dev/null and b/public/images/2012/06/2012062122522200.jpg differ diff --git a/public/images/2012/06/2012062122543800.jpg b/public/images/2012/06/2012062122543800.jpg new file mode 100644 index 0000000..8b1d60b Binary files /dev/null and b/public/images/2012/06/2012062122543800.jpg differ diff --git a/public/images/2012/06/2012062222340200.jpg b/public/images/2012/06/2012062222340200.jpg new file mode 100644 index 0000000..1165185 Binary files /dev/null and b/public/images/2012/06/2012062222340200.jpg differ diff --git a/public/images/2012/06/2012062222380700.jpg b/public/images/2012/06/2012062222380700.jpg new file mode 100644 index 0000000..7933f86 Binary files /dev/null and b/public/images/2012/06/2012062222380700.jpg differ diff --git a/public/images/2012/06/2012062222394000.jpg b/public/images/2012/06/2012062222394000.jpg new file mode 100644 index 0000000..b10c1f0 Binary files /dev/null and b/public/images/2012/06/2012062222394000.jpg differ diff --git a/public/images/2012/06/2012062423110400.jpg b/public/images/2012/06/2012062423110400.jpg new file mode 100644 index 0000000..18f3df4 Binary files /dev/null and b/public/images/2012/06/2012062423110400.jpg differ diff --git a/public/images/2012/06/2012062423141100.jpg b/public/images/2012/06/2012062423141100.jpg new file mode 100644 index 0000000..2f1fdd7 Binary files /dev/null and b/public/images/2012/06/2012062423141100.jpg differ diff --git a/public/images/2012/06/2012062423151000.jpg b/public/images/2012/06/2012062423151000.jpg new file mode 100644 index 0000000..62ac4f4 Binary files /dev/null and b/public/images/2012/06/2012062423151000.jpg differ diff --git a/public/images/2012/06/2012062423174400.jpg b/public/images/2012/06/2012062423174400.jpg new file mode 100644 index 0000000..0cbe18f Binary files /dev/null and b/public/images/2012/06/2012062423174400.jpg differ diff --git a/public/images/2012/06/2012062623222100.jpg b/public/images/2012/06/2012062623222100.jpg new file mode 100644 index 0000000..abe05fb Binary files /dev/null and b/public/images/2012/06/2012062623222100.jpg differ diff --git a/public/images/2012/06/2012062623233400.jpg b/public/images/2012/06/2012062623233400.jpg new file mode 100644 index 0000000..3a4541c Binary files /dev/null and b/public/images/2012/06/2012062623233400.jpg differ diff --git a/public/images/2012/06/2012062623233900.jpg b/public/images/2012/06/2012062623233900.jpg new file mode 100644 index 0000000..712b63c Binary files /dev/null and b/public/images/2012/06/2012062623233900.jpg differ diff --git a/public/images/2012/06/2012062823283400.jpg b/public/images/2012/06/2012062823283400.jpg new file mode 100644 index 0000000..4de18ad Binary files /dev/null and b/public/images/2012/06/2012062823283400.jpg differ diff --git a/public/images/2012/06/2012062823295700.jpg b/public/images/2012/06/2012062823295700.jpg new file mode 100644 index 0000000..01df1a4 Binary files /dev/null and b/public/images/2012/06/2012062823295700.jpg differ diff --git a/public/images/2012/06/2012062823300200.jpg b/public/images/2012/06/2012062823300200.jpg new file mode 100644 index 0000000..fdd7654 Binary files /dev/null and b/public/images/2012/06/2012062823300200.jpg differ diff --git a/public/images/2012/07/2012071223421000.jpg b/public/images/2012/07/2012071223421000.jpg new file mode 100644 index 0000000..e975a9f Binary files /dev/null and b/public/images/2012/07/2012071223421000.jpg differ diff --git a/public/images/2012/07/2012071223421600.jpg b/public/images/2012/07/2012071223421600.jpg new file mode 100644 index 0000000..c638ee0 Binary files /dev/null and b/public/images/2012/07/2012071223421600.jpg differ diff --git a/public/images/2012/07/2012071223422100.jpg b/public/images/2012/07/2012071223422100.jpg new file mode 100644 index 0000000..8dfcc77 Binary files /dev/null and b/public/images/2012/07/2012071223422100.jpg differ diff --git a/public/images/2012/07/2012072022533700.jpg b/public/images/2012/07/2012072022533700.jpg new file mode 100644 index 0000000..af9b7f0 Binary files /dev/null and b/public/images/2012/07/2012072022533700.jpg differ diff --git a/public/images/2012/07/2012072022545900.jpg b/public/images/2012/07/2012072022545900.jpg new file mode 100644 index 0000000..bce69d7 Binary files /dev/null and b/public/images/2012/07/2012072022545900.jpg differ diff --git a/public/images/2012/07/2012072022550500.jpg b/public/images/2012/07/2012072022550500.jpg new file mode 100644 index 0000000..209c001 Binary files /dev/null and b/public/images/2012/07/2012072022550500.jpg differ diff --git a/public/images/2012/07/2012072523060500.jpg b/public/images/2012/07/2012072523060500.jpg new file mode 100644 index 0000000..1726520 Binary files /dev/null and b/public/images/2012/07/2012072523060500.jpg differ diff --git a/public/images/2012/07/2012072523090800.jpg b/public/images/2012/07/2012072523090800.jpg new file mode 100644 index 0000000..c39cf6a Binary files /dev/null and b/public/images/2012/07/2012072523090800.jpg differ diff --git a/public/images/2012/07/2012072523091100.jpg b/public/images/2012/07/2012072523091100.jpg new file mode 100644 index 0000000..d6541fd Binary files /dev/null and b/public/images/2012/07/2012072523091100.jpg differ diff --git a/public/images/2012/07/2012072523091300.jpg b/public/images/2012/07/2012072523091300.jpg new file mode 100644 index 0000000..15bbfa8 Binary files /dev/null and b/public/images/2012/07/2012072523091300.jpg differ diff --git a/public/images/2012/07/2012072523091700.jpg b/public/images/2012/07/2012072523091700.jpg new file mode 100644 index 0000000..028fedc Binary files /dev/null and b/public/images/2012/07/2012072523091700.jpg differ diff --git a/public/images/2012/08/2012080819554000.jpg b/public/images/2012/08/2012080819554000.jpg new file mode 100644 index 0000000..315e238 Binary files /dev/null and b/public/images/2012/08/2012080819554000.jpg differ diff --git a/public/images/2012/08/2012080819561600.jpg b/public/images/2012/08/2012080819561600.jpg new file mode 100644 index 0000000..ca36fc5 Binary files /dev/null and b/public/images/2012/08/2012080819561600.jpg differ diff --git a/public/images/2012/08/2012080819562000.jpg b/public/images/2012/08/2012080819562000.jpg new file mode 100644 index 0000000..fb1995e Binary files /dev/null and b/public/images/2012/08/2012080819562000.jpg differ diff --git a/public/images/2012/08/2012082820070400.jpg b/public/images/2012/08/2012082820070400.jpg new file mode 100644 index 0000000..c76a1b1 Binary files /dev/null and b/public/images/2012/08/2012082820070400.jpg differ diff --git a/public/images/2012/08/2012082820071600.jpg b/public/images/2012/08/2012082820071600.jpg new file mode 100644 index 0000000..58b8481 Binary files /dev/null and b/public/images/2012/08/2012082820071600.jpg differ diff --git a/public/images/2012/08/2012082820072500.jpg b/public/images/2012/08/2012082820072500.jpg new file mode 100644 index 0000000..2844631 Binary files /dev/null and b/public/images/2012/08/2012082820072500.jpg differ diff --git a/public/images/2012/09/2012090220180700.jpg b/public/images/2012/09/2012090220180700.jpg new file mode 100644 index 0000000..c9b47d0 Binary files /dev/null and b/public/images/2012/09/2012090220180700.jpg differ diff --git a/public/images/2012/09/2012090220233200.jpg b/public/images/2012/09/2012090220233200.jpg new file mode 100644 index 0000000..b3528d1 Binary files /dev/null and b/public/images/2012/09/2012090220233200.jpg differ diff --git a/public/images/2012/09/2012090220242000.jpg b/public/images/2012/09/2012090220242000.jpg new file mode 100644 index 0000000..dc94736 Binary files /dev/null and b/public/images/2012/09/2012090220242000.jpg differ diff --git a/public/images/2012/09/2012090220242500.jpg b/public/images/2012/09/2012090220242500.jpg new file mode 100644 index 0000000..e8966e5 Binary files /dev/null and b/public/images/2012/09/2012090220242500.jpg differ diff --git a/public/images/2012/09/2012090720304800.jpg b/public/images/2012/09/2012090720304800.jpg new file mode 100644 index 0000000..f27b0f6 Binary files /dev/null and b/public/images/2012/09/2012090720304800.jpg differ diff --git a/public/images/2012/09/2012090720323100.jpg b/public/images/2012/09/2012090720323100.jpg new file mode 100644 index 0000000..24428f1 Binary files /dev/null and b/public/images/2012/09/2012090720323100.jpg differ diff --git a/public/images/2012/09/2012090720323500.jpg b/public/images/2012/09/2012090720323500.jpg new file mode 100644 index 0000000..813e6c8 Binary files /dev/null and b/public/images/2012/09/2012090720323500.jpg differ diff --git a/public/images/2012/09/2012091420414300.jpg b/public/images/2012/09/2012091420414300.jpg new file mode 100644 index 0000000..d770ee0 Binary files /dev/null and b/public/images/2012/09/2012091420414300.jpg differ diff --git a/public/images/2012/09/2012091420462600.jpg b/public/images/2012/09/2012091420462600.jpg new file mode 100644 index 0000000..9476d58 Binary files /dev/null and b/public/images/2012/09/2012091420462600.jpg differ diff --git a/public/images/2012/09/2012091420484600.jpg b/public/images/2012/09/2012091420484600.jpg new file mode 100644 index 0000000..7465cb5 Binary files /dev/null and b/public/images/2012/09/2012091420484600.jpg differ diff --git a/public/images/2012/09/2012091821015000.jpg b/public/images/2012/09/2012091821015000.jpg new file mode 100644 index 0000000..787d6d3 Binary files /dev/null and b/public/images/2012/09/2012091821015000.jpg differ diff --git a/public/images/2012/09/2012091821040800.jpg b/public/images/2012/09/2012091821040800.jpg new file mode 100644 index 0000000..3acd549 Binary files /dev/null and b/public/images/2012/09/2012091821040800.jpg differ diff --git a/public/images/2012/09/2012091821082200.jpg b/public/images/2012/09/2012091821082200.jpg new file mode 100644 index 0000000..6a3af1a Binary files /dev/null and b/public/images/2012/09/2012091821082200.jpg differ diff --git a/public/images/2012/09/2012091821131300.jpg b/public/images/2012/09/2012091821131300.jpg new file mode 100644 index 0000000..dd3511b Binary files /dev/null and b/public/images/2012/09/2012091821131300.jpg differ diff --git a/public/images/2012/09/2012092721182400.jpg b/public/images/2012/09/2012092721182400.jpg new file mode 100644 index 0000000..82b1895 Binary files /dev/null and b/public/images/2012/09/2012092721182400.jpg differ diff --git a/public/images/2012/09/2012092721202300.jpg b/public/images/2012/09/2012092721202300.jpg new file mode 100644 index 0000000..38310ae Binary files /dev/null and b/public/images/2012/09/2012092721202300.jpg differ diff --git a/public/images/2012/09/2012092721395300.jpg b/public/images/2012/09/2012092721395300.jpg new file mode 100644 index 0000000..2856342 Binary files /dev/null and b/public/images/2012/09/2012092721395300.jpg differ diff --git a/public/images/2012/09/2012093021252300.jpg b/public/images/2012/09/2012093021252300.jpg new file mode 100644 index 0000000..bb99a26 Binary files /dev/null and b/public/images/2012/09/2012093021252300.jpg differ diff --git a/public/images/2012/09/2012093021302700.jpg b/public/images/2012/09/2012093021302700.jpg new file mode 100644 index 0000000..50fef5f Binary files /dev/null and b/public/images/2012/09/2012093021302700.jpg differ diff --git a/public/images/2012/09/2012093021303100.jpg b/public/images/2012/09/2012093021303100.jpg new file mode 100644 index 0000000..998b127 Binary files /dev/null and b/public/images/2012/09/2012093021303100.jpg differ diff --git a/public/images/2012/10/2012102720033500.jpg b/public/images/2012/10/2012102720033500.jpg new file mode 100644 index 0000000..d3f03a3 Binary files /dev/null and b/public/images/2012/10/2012102720033500.jpg differ diff --git a/public/images/2012/10/2012102720131600.jpg b/public/images/2012/10/2012102720131600.jpg new file mode 100644 index 0000000..18765b1 Binary files /dev/null and b/public/images/2012/10/2012102720131600.jpg differ diff --git a/public/images/2012/10/2012102720132100.jpg b/public/images/2012/10/2012102720132100.jpg new file mode 100644 index 0000000..a479275 Binary files /dev/null and b/public/images/2012/10/2012102720132100.jpg differ diff --git a/public/images/2012/10/2012102720132600.jpg b/public/images/2012/10/2012102720132600.jpg new file mode 100644 index 0000000..719c665 Binary files /dev/null and b/public/images/2012/10/2012102720132600.jpg differ diff --git a/public/images/2012/11/2012110720214400.jpg b/public/images/2012/11/2012110720214400.jpg new file mode 100644 index 0000000..d5e8f95 Binary files /dev/null and b/public/images/2012/11/2012110720214400.jpg differ diff --git a/public/images/2012/11/2012110720214600.jpg b/public/images/2012/11/2012110720214600.jpg new file mode 100644 index 0000000..fa5e64d Binary files /dev/null and b/public/images/2012/11/2012110720214600.jpg differ diff --git a/public/images/2012/11/2012110720214800.jpg b/public/images/2012/11/2012110720214800.jpg new file mode 100644 index 0000000..1f485ae Binary files /dev/null and b/public/images/2012/11/2012110720214800.jpg differ diff --git a/public/images/2012/11/2012110720214900.jpg b/public/images/2012/11/2012110720214900.jpg new file mode 100644 index 0000000..4a70195 Binary files /dev/null and b/public/images/2012/11/2012110720214900.jpg differ diff --git a/public/images/2012/11/2012110720215200.jpg b/public/images/2012/11/2012110720215200.jpg new file mode 100644 index 0000000..56a23d3 Binary files /dev/null and b/public/images/2012/11/2012110720215200.jpg differ diff --git a/public/images/2012/11/2012110720215500.jpg b/public/images/2012/11/2012110720215500.jpg new file mode 100644 index 0000000..3ad067d Binary files /dev/null and b/public/images/2012/11/2012110720215500.jpg differ diff --git a/public/images/2012/11/2012110720215700.jpg b/public/images/2012/11/2012110720215700.jpg new file mode 100644 index 0000000..cb13813 Binary files /dev/null and b/public/images/2012/11/2012110720215700.jpg differ diff --git a/public/images/2012/11/2012111120345400.jpg b/public/images/2012/11/2012111120345400.jpg new file mode 100644 index 0000000..c01949a Binary files /dev/null and b/public/images/2012/11/2012111120345400.jpg differ diff --git a/public/images/2012/11/2012111121163300.jpg b/public/images/2012/11/2012111121163300.jpg new file mode 100644 index 0000000..ba48660 Binary files /dev/null and b/public/images/2012/11/2012111121163300.jpg differ diff --git a/public/images/2012/11/2012111121163800.jpg b/public/images/2012/11/2012111121163800.jpg new file mode 100644 index 0000000..a56838f Binary files /dev/null and b/public/images/2012/11/2012111121163800.jpg differ diff --git a/public/images/2012/11/2012111121164200.jpg b/public/images/2012/11/2012111121164200.jpg new file mode 100644 index 0000000..6b56176 Binary files /dev/null and b/public/images/2012/11/2012111121164200.jpg differ diff --git a/public/images/2012/11/2012111521361400.jpg b/public/images/2012/11/2012111521361400.jpg new file mode 100644 index 0000000..6fb8299 Binary files /dev/null and b/public/images/2012/11/2012111521361400.jpg differ diff --git a/public/images/2012/11/2012111521361800.jpg b/public/images/2012/11/2012111521361800.jpg new file mode 100644 index 0000000..41468bd Binary files /dev/null and b/public/images/2012/11/2012111521361800.jpg differ diff --git a/public/images/2012/11/2012111521362300.jpg b/public/images/2012/11/2012111521362300.jpg new file mode 100644 index 0000000..fc6e282 Binary files /dev/null and b/public/images/2012/11/2012111521362300.jpg differ diff --git a/public/images/2012/11/2012112821464700.jpg b/public/images/2012/11/2012112821464700.jpg new file mode 100644 index 0000000..5331628 Binary files /dev/null and b/public/images/2012/11/2012112821464700.jpg differ diff --git a/public/images/2012/11/2012112821481600.jpg b/public/images/2012/11/2012112821481600.jpg new file mode 100644 index 0000000..96d610d Binary files /dev/null and b/public/images/2012/11/2012112821481600.jpg differ diff --git a/public/images/2012/11/2012112821482100.jpg b/public/images/2012/11/2012112821482100.jpg new file mode 100644 index 0000000..2151ee1 Binary files /dev/null and b/public/images/2012/11/2012112821482100.jpg differ diff --git a/public/images/2012/12/2012121021594300.jpg b/public/images/2012/12/2012121021594300.jpg new file mode 100644 index 0000000..142572a Binary files /dev/null and b/public/images/2012/12/2012121021594300.jpg differ diff --git a/public/images/2012/12/2012121022012400.jpg b/public/images/2012/12/2012121022012400.jpg new file mode 100644 index 0000000..b6aa22b Binary files /dev/null and b/public/images/2012/12/2012121022012400.jpg differ diff --git a/public/images/2012/12/2012121022012900.jpg b/public/images/2012/12/2012121022012900.jpg new file mode 100644 index 0000000..ee41e90 Binary files /dev/null and b/public/images/2012/12/2012121022012900.jpg differ diff --git a/public/images/2012/12/2012121122120900.jpg b/public/images/2012/12/2012121122120900.jpg new file mode 100644 index 0000000..0c56d10 Binary files /dev/null and b/public/images/2012/12/2012121122120900.jpg differ diff --git a/public/images/2012/12/2012121122144500.jpg b/public/images/2012/12/2012121122144500.jpg new file mode 100644 index 0000000..9961910 Binary files /dev/null and b/public/images/2012/12/2012121122144500.jpg differ diff --git a/public/images/2012/12/2012121122170800.jpg b/public/images/2012/12/2012121122170800.jpg new file mode 100644 index 0000000..3d6de84 Binary files /dev/null and b/public/images/2012/12/2012121122170800.jpg differ diff --git a/public/images/2012/12/2012121422373000.jpg b/public/images/2012/12/2012121422373000.jpg new file mode 100644 index 0000000..5f479e8 Binary files /dev/null and b/public/images/2012/12/2012121422373000.jpg differ diff --git a/public/images/2012/12/2012121422380800.jpg b/public/images/2012/12/2012121422380800.jpg new file mode 100644 index 0000000..eb588de Binary files /dev/null and b/public/images/2012/12/2012121422380800.jpg differ diff --git a/public/images/2012/12/2012121422381400.jpg b/public/images/2012/12/2012121422381400.jpg new file mode 100644 index 0000000..900124b Binary files /dev/null and b/public/images/2012/12/2012121422381400.jpg differ diff --git a/public/images/2013/01/2013010122575800.jpg b/public/images/2013/01/2013010122575800.jpg new file mode 100644 index 0000000..2145510 Binary files /dev/null and b/public/images/2013/01/2013010122575800.jpg differ diff --git a/public/images/2013/01/2013010123020800.jpg b/public/images/2013/01/2013010123020800.jpg new file mode 100644 index 0000000..7ca5f6e Binary files /dev/null and b/public/images/2013/01/2013010123020800.jpg differ diff --git a/public/images/2013/01/2013010123033300.jpg b/public/images/2013/01/2013010123033300.jpg new file mode 100644 index 0000000..c868a85 Binary files /dev/null and b/public/images/2013/01/2013010123033300.jpg differ diff --git a/public/images/2013/01/2013010123075700.jpg b/public/images/2013/01/2013010123075700.jpg new file mode 100644 index 0000000..b3b0666 Binary files /dev/null and b/public/images/2013/01/2013010123075700.jpg differ diff --git a/public/images/2013/01/2013010712171200.jpg b/public/images/2013/01/2013010712171200.jpg new file mode 100644 index 0000000..253f3fb Binary files /dev/null and b/public/images/2013/01/2013010712171200.jpg differ diff --git a/public/images/2013/01/2013010923141500.jpg b/public/images/2013/01/2013010923141500.jpg new file mode 100644 index 0000000..2122e98 Binary files /dev/null and b/public/images/2013/01/2013010923141500.jpg differ diff --git a/public/images/2013/01/2013010923203400.jpg b/public/images/2013/01/2013010923203400.jpg new file mode 100644 index 0000000..8f9dcf8 Binary files /dev/null and b/public/images/2013/01/2013010923203400.jpg differ diff --git a/public/images/2013/01/2013010923242700.jpg b/public/images/2013/01/2013010923242700.jpg new file mode 100644 index 0000000..1d2bb87 Binary files /dev/null and b/public/images/2013/01/2013010923242700.jpg differ diff --git a/public/images/2013/01/2013010923260800.jpg b/public/images/2013/01/2013010923260800.jpg new file mode 100644 index 0000000..e7937dc Binary files /dev/null and b/public/images/2013/01/2013010923260800.jpg differ diff --git a/public/images/2013/01/2013011017463500.jpg b/public/images/2013/01/2013011017463500.jpg new file mode 100644 index 0000000..6f809e0 Binary files /dev/null and b/public/images/2013/01/2013011017463500.jpg differ diff --git a/public/images/2013/01/2013011323292300.jpg b/public/images/2013/01/2013011323292300.jpg new file mode 100644 index 0000000..5f3218c Binary files /dev/null and b/public/images/2013/01/2013011323292300.jpg differ diff --git a/public/images/2013/01/2013011323344400.jpg b/public/images/2013/01/2013011323344400.jpg new file mode 100644 index 0000000..8727bf6 Binary files /dev/null and b/public/images/2013/01/2013011323344400.jpg differ diff --git a/public/images/2013/01/2013011323372700.jpg b/public/images/2013/01/2013011323372700.jpg new file mode 100644 index 0000000..149d9e9 Binary files /dev/null and b/public/images/2013/01/2013011323372700.jpg differ diff --git a/public/images/2013/01/2013011323391300.jpg b/public/images/2013/01/2013011323391300.jpg new file mode 100644 index 0000000..ae5e369 Binary files /dev/null and b/public/images/2013/01/2013011323391300.jpg differ diff --git a/public/images/2013/01/2013012920023000.jpg b/public/images/2013/01/2013012920023000.jpg new file mode 100644 index 0000000..5282c49 Binary files /dev/null and b/public/images/2013/01/2013012920023000.jpg differ diff --git a/public/images/2013/01/2013012920112800.jpg b/public/images/2013/01/2013012920112800.jpg new file mode 100644 index 0000000..f630837 Binary files /dev/null and b/public/images/2013/01/2013012920112800.jpg differ diff --git a/public/images/2013/01/2013012920123600.jpg b/public/images/2013/01/2013012920123600.jpg new file mode 100644 index 0000000..4303c06 Binary files /dev/null and b/public/images/2013/01/2013012920123600.jpg differ diff --git a/public/images/2013/01/2013012920140500.jpg b/public/images/2013/01/2013012920140500.jpg new file mode 100644 index 0000000..f0f375b Binary files /dev/null and b/public/images/2013/01/2013012920140500.jpg differ diff --git a/public/images/2013/01/2013012920154100.jpg b/public/images/2013/01/2013012920154100.jpg new file mode 100644 index 0000000..06ebe8c Binary files /dev/null and b/public/images/2013/01/2013012920154100.jpg differ diff --git a/public/images/2013/01/2013013120175200.jpg b/public/images/2013/01/2013013120175200.jpg new file mode 100644 index 0000000..7a7c27b Binary files /dev/null and b/public/images/2013/01/2013013120175200.jpg differ diff --git a/public/images/2013/01/2013013120222500.jpg b/public/images/2013/01/2013013120222500.jpg new file mode 100644 index 0000000..700c8ef Binary files /dev/null and b/public/images/2013/01/2013013120222500.jpg differ diff --git a/public/images/2013/01/2013013120320300.jpg b/public/images/2013/01/2013013120320300.jpg new file mode 100644 index 0000000..fd311b6 Binary files /dev/null and b/public/images/2013/01/2013013120320300.jpg differ diff --git a/public/images/2013/01/2013013120385500.jpg b/public/images/2013/01/2013013120385500.jpg new file mode 100644 index 0000000..e4167d7 Binary files /dev/null and b/public/images/2013/01/2013013120385500.jpg differ diff --git a/public/images/2013/01/2013013120403900.jpg b/public/images/2013/01/2013013120403900.jpg new file mode 100644 index 0000000..2843733 Binary files /dev/null and b/public/images/2013/01/2013013120403900.jpg differ diff --git a/public/images/2013/02/2013021404315100.jpg b/public/images/2013/02/2013021404315100.jpg new file mode 100644 index 0000000..f0fdc08 Binary files /dev/null and b/public/images/2013/02/2013021404315100.jpg differ diff --git a/public/images/2013/03/2013030220520400.jpg b/public/images/2013/03/2013030220520400.jpg new file mode 100644 index 0000000..b0bf0e0 Binary files /dev/null and b/public/images/2013/03/2013030220520400.jpg differ diff --git a/public/images/2013/03/2013030220535900.jpg b/public/images/2013/03/2013030220535900.jpg new file mode 100644 index 0000000..cfb88e1 Binary files /dev/null and b/public/images/2013/03/2013030220535900.jpg differ diff --git a/public/images/2013/03/2013030220565000.jpg b/public/images/2013/03/2013030220565000.jpg new file mode 100644 index 0000000..490e768 Binary files /dev/null and b/public/images/2013/03/2013030220565000.jpg differ diff --git a/public/images/2013/03/2013030220581600.jpg b/public/images/2013/03/2013030220581600.jpg new file mode 100644 index 0000000..032e8e1 Binary files /dev/null and b/public/images/2013/03/2013030220581600.jpg differ diff --git a/public/images/2013/03/2013030821022700.jpg b/public/images/2013/03/2013030821022700.jpg new file mode 100644 index 0000000..7c1b851 Binary files /dev/null and b/public/images/2013/03/2013030821022700.jpg differ diff --git a/public/images/2013/03/2013030821042700.jpg b/public/images/2013/03/2013030821042700.jpg new file mode 100644 index 0000000..f71b210 Binary files /dev/null and b/public/images/2013/03/2013030821042700.jpg differ diff --git a/public/images/2013/03/2013030821055700.jpg b/public/images/2013/03/2013030821055700.jpg new file mode 100644 index 0000000..c3c68db Binary files /dev/null and b/public/images/2013/03/2013030821055700.jpg differ diff --git a/public/images/2013/03/2013030821095600.jpg b/public/images/2013/03/2013030821095600.jpg new file mode 100644 index 0000000..49a190a Binary files /dev/null and b/public/images/2013/03/2013030821095600.jpg differ diff --git a/public/images/2013/03/2013031621203200.jpg b/public/images/2013/03/2013031621203200.jpg new file mode 100644 index 0000000..8c4cd6c Binary files /dev/null and b/public/images/2013/03/2013031621203200.jpg differ diff --git a/public/images/2013/03/2013031621223800.jpg b/public/images/2013/03/2013031621223800.jpg new file mode 100644 index 0000000..337ce30 Binary files /dev/null and b/public/images/2013/03/2013031621223800.jpg differ diff --git a/public/images/2013/03/2013031621245200.jpg b/public/images/2013/03/2013031621245200.jpg new file mode 100644 index 0000000..964251e Binary files /dev/null and b/public/images/2013/03/2013031621245200.jpg differ diff --git a/public/images/2013/03/2013031621265500.jpg b/public/images/2013/03/2013031621265500.jpg new file mode 100644 index 0000000..00a3d28 Binary files /dev/null and b/public/images/2013/03/2013031621265500.jpg differ diff --git a/public/images/2013/04/2013040621410400.jpg b/public/images/2013/04/2013040621410400.jpg new file mode 100644 index 0000000..74d9036 Binary files /dev/null and b/public/images/2013/04/2013040621410400.jpg differ diff --git a/public/images/2013/04/2013040621452600.jpg b/public/images/2013/04/2013040621452600.jpg new file mode 100644 index 0000000..02e5517 Binary files /dev/null and b/public/images/2013/04/2013040621452600.jpg differ diff --git a/public/images/2013/04/2013040621482300.jpg b/public/images/2013/04/2013040621482300.jpg new file mode 100644 index 0000000..57ac1c3 Binary files /dev/null and b/public/images/2013/04/2013040621482300.jpg differ diff --git a/public/images/2013/04/2013040621510000.jpg b/public/images/2013/04/2013040621510000.jpg new file mode 100644 index 0000000..cad75a2 Binary files /dev/null and b/public/images/2013/04/2013040621510000.jpg differ diff --git a/public/images/2013/04/2013042722324600.jpg b/public/images/2013/04/2013042722324600.jpg new file mode 100644 index 0000000..4095956 Binary files /dev/null and b/public/images/2013/04/2013042722324600.jpg differ diff --git a/public/images/2013/04/2013042823510900.jpg b/public/images/2013/04/2013042823510900.jpg new file mode 100644 index 0000000..a3c3a2a Binary files /dev/null and b/public/images/2013/04/2013042823510900.jpg differ diff --git a/public/images/2013/04/2013043022435500.jpg b/public/images/2013/04/2013043022435500.jpg new file mode 100644 index 0000000..e8d3002 Binary files /dev/null and b/public/images/2013/04/2013043022435500.jpg differ diff --git a/public/images/2013/04/2013043022480300.jpg b/public/images/2013/04/2013043022480300.jpg new file mode 100644 index 0000000..921058b Binary files /dev/null and b/public/images/2013/04/2013043022480300.jpg differ diff --git a/public/images/2013/04/2013043022492800.jpg b/public/images/2013/04/2013043022492800.jpg new file mode 100644 index 0000000..2e7b9fe Binary files /dev/null and b/public/images/2013/04/2013043022492800.jpg differ diff --git a/public/images/2013/04/2013043022510700.jpg b/public/images/2013/04/2013043022510700.jpg new file mode 100644 index 0000000..5a385f6 Binary files /dev/null and b/public/images/2013/04/2013043022510700.jpg differ diff --git a/public/images/2013/04/2013043022511000.jpg b/public/images/2013/04/2013043022511000.jpg new file mode 100644 index 0000000..3454f03 Binary files /dev/null and b/public/images/2013/04/2013043022511000.jpg differ diff --git a/public/images/2013/05/2013051722351900.jpg b/public/images/2013/05/2013051722351900.jpg new file mode 100644 index 0000000..5be765e Binary files /dev/null and b/public/images/2013/05/2013051722351900.jpg differ diff --git a/public/images/2013/05/2013051722363500.jpg b/public/images/2013/05/2013051722363500.jpg new file mode 100644 index 0000000..faf68ac Binary files /dev/null and b/public/images/2013/05/2013051722363500.jpg differ diff --git a/public/images/2013/05/2013051722381700.jpg b/public/images/2013/05/2013051722381700.jpg new file mode 100644 index 0000000..ebfaf13 Binary files /dev/null and b/public/images/2013/05/2013051722381700.jpg differ diff --git a/public/images/2013/05/2013051722382300.jpg b/public/images/2013/05/2013051722382300.jpg new file mode 100644 index 0000000..d81268c Binary files /dev/null and b/public/images/2013/05/2013051722382300.jpg differ diff --git a/public/images/2013/05/2013051722382500.jpg b/public/images/2013/05/2013051722382500.jpg new file mode 100644 index 0000000..0d1bf75 Binary files /dev/null and b/public/images/2013/05/2013051722382500.jpg differ diff --git a/public/images/2013/05/2013052022592400.jpg b/public/images/2013/05/2013052022592400.jpg new file mode 100644 index 0000000..2095d50 Binary files /dev/null and b/public/images/2013/05/2013052022592400.jpg differ diff --git a/public/images/2013/05/2013052023024000.jpg b/public/images/2013/05/2013052023024000.jpg new file mode 100644 index 0000000..cadc8ee Binary files /dev/null and b/public/images/2013/05/2013052023024000.jpg differ diff --git a/public/images/2013/05/2013052023095200.jpg b/public/images/2013/05/2013052023095200.jpg new file mode 100644 index 0000000..57f44fd Binary files /dev/null and b/public/images/2013/05/2013052023095200.jpg differ diff --git a/public/images/2013/05/2013052023120700.jpg b/public/images/2013/05/2013052023120700.jpg new file mode 100644 index 0000000..c0c2f4d Binary files /dev/null and b/public/images/2013/05/2013052023120700.jpg differ diff --git a/public/images/2013/06/2013062023165500.jpg b/public/images/2013/06/2013062023165500.jpg new file mode 100644 index 0000000..2cfbc73 Binary files /dev/null and b/public/images/2013/06/2013062023165500.jpg differ diff --git a/public/images/2013/06/2013062023193800.jpg b/public/images/2013/06/2013062023193800.jpg new file mode 100644 index 0000000..d9c51ec Binary files /dev/null and b/public/images/2013/06/2013062023193800.jpg differ diff --git a/public/images/2013/06/2013062023222900.jpg b/public/images/2013/06/2013062023222900.jpg new file mode 100644 index 0000000..b7c618c Binary files /dev/null and b/public/images/2013/06/2013062023222900.jpg differ diff --git a/public/images/2013/06/2013062923260700.jpg b/public/images/2013/06/2013062923260700.jpg new file mode 100644 index 0000000..87f4799 Binary files /dev/null and b/public/images/2013/06/2013062923260700.jpg differ diff --git a/public/images/2013/06/2013062923282500.jpg b/public/images/2013/06/2013062923282500.jpg new file mode 100644 index 0000000..99f1c20 Binary files /dev/null and b/public/images/2013/06/2013062923282500.jpg differ diff --git a/public/images/2013/06/2013062923304000.jpg b/public/images/2013/06/2013062923304000.jpg new file mode 100644 index 0000000..8260b81 Binary files /dev/null and b/public/images/2013/06/2013062923304000.jpg differ diff --git a/public/images/2013/06/2013062923361600.jpg b/public/images/2013/06/2013062923361600.jpg new file mode 100644 index 0000000..fac7259 Binary files /dev/null and b/public/images/2013/06/2013062923361600.jpg differ diff --git a/public/images/2013/07/2013071822320501.jpg b/public/images/2013/07/2013071822320501.jpg new file mode 100644 index 0000000..63c4d83 Binary files /dev/null and b/public/images/2013/07/2013071822320501.jpg differ diff --git a/public/images/2013/07/2013071823431400.jpg b/public/images/2013/07/2013071823431400.jpg new file mode 100644 index 0000000..7c25d8c Binary files /dev/null and b/public/images/2013/07/2013071823431400.jpg differ diff --git a/public/images/2013/07/2013071823450900.jpg b/public/images/2013/07/2013071823450900.jpg new file mode 100644 index 0000000..e43bf2f Binary files /dev/null and b/public/images/2013/07/2013071823450900.jpg differ diff --git a/public/images/2013/07/2013071823470800.jpg b/public/images/2013/07/2013071823470800.jpg new file mode 100644 index 0000000..1896366 Binary files /dev/null and b/public/images/2013/07/2013071823470800.jpg differ diff --git a/public/images/2013/07/2013071823490400.jpg b/public/images/2013/07/2013071823490400.jpg new file mode 100644 index 0000000..ffb10d9 Binary files /dev/null and b/public/images/2013/07/2013071823490400.jpg differ diff --git a/public/images/2013/07/2013072700011200.jpg b/public/images/2013/07/2013072700011200.jpg new file mode 100644 index 0000000..c3ba6f8 Binary files /dev/null and b/public/images/2013/07/2013072700011200.jpg differ diff --git a/public/images/2013/07/2013072700022500.jpg b/public/images/2013/07/2013072700022500.jpg new file mode 100644 index 0000000..11c36f2 Binary files /dev/null and b/public/images/2013/07/2013072700022500.jpg differ diff --git a/public/images/2013/07/2013072723570200.jpg b/public/images/2013/07/2013072723570200.jpg new file mode 100644 index 0000000..7881bd8 Binary files /dev/null and b/public/images/2013/07/2013072723570200.jpg differ diff --git a/public/images/2013/07/2013072723584300.jpg b/public/images/2013/07/2013072723584300.jpg new file mode 100644 index 0000000..446da48 Binary files /dev/null and b/public/images/2013/07/2013072723584300.jpg differ diff --git a/public/images/2013/08/2013080200113300.jpg b/public/images/2013/08/2013080200113300.jpg new file mode 100644 index 0000000..402c453 Binary files /dev/null and b/public/images/2013/08/2013080200113300.jpg differ diff --git a/public/images/2013/08/2013080200132700.jpg b/public/images/2013/08/2013080200132700.jpg new file mode 100644 index 0000000..60627f9 Binary files /dev/null and b/public/images/2013/08/2013080200132700.jpg differ diff --git a/public/images/2013/08/2013080200173500.jpg b/public/images/2013/08/2013080200173500.jpg new file mode 100644 index 0000000..b7229bc Binary files /dev/null and b/public/images/2013/08/2013080200173500.jpg differ diff --git a/public/images/2013/08/2013080200191900.jpg b/public/images/2013/08/2013080200191900.jpg new file mode 100644 index 0000000..5c3d0be Binary files /dev/null and b/public/images/2013/08/2013080200191900.jpg differ diff --git a/public/images/2013/08/2013080700214600.jpg b/public/images/2013/08/2013080700214600.jpg new file mode 100644 index 0000000..3bf7452 Binary files /dev/null and b/public/images/2013/08/2013080700214600.jpg differ diff --git a/public/images/2013/08/2013080700242200.jpg b/public/images/2013/08/2013080700242200.jpg new file mode 100644 index 0000000..18298a9 Binary files /dev/null and b/public/images/2013/08/2013080700242200.jpg differ diff --git a/public/images/2013/08/2013080700290300.jpg b/public/images/2013/08/2013080700290300.jpg new file mode 100644 index 0000000..7d249d9 Binary files /dev/null and b/public/images/2013/08/2013080700290300.jpg differ diff --git a/public/images/2013/08/2013080700290500.jpg b/public/images/2013/08/2013080700290500.jpg new file mode 100644 index 0000000..ca46518 Binary files /dev/null and b/public/images/2013/08/2013080700290500.jpg differ diff --git a/public/images/2013/08/2013080700290700.jpg b/public/images/2013/08/2013080700290700.jpg new file mode 100644 index 0000000..b273ff4 Binary files /dev/null and b/public/images/2013/08/2013080700290700.jpg differ diff --git a/public/images/2013/09/2013092100390300.jpg b/public/images/2013/09/2013092100390300.jpg new file mode 100644 index 0000000..ac328f2 Binary files /dev/null and b/public/images/2013/09/2013092100390300.jpg differ diff --git a/public/images/2013/09/2013092100464200.jpg b/public/images/2013/09/2013092100464200.jpg new file mode 100644 index 0000000..a3f44da Binary files /dev/null and b/public/images/2013/09/2013092100464200.jpg differ diff --git a/public/images/2013/09/2013092100465400.jpg b/public/images/2013/09/2013092100465400.jpg new file mode 100644 index 0000000..f44f82e Binary files /dev/null and b/public/images/2013/09/2013092100465400.jpg differ diff --git a/public/images/2013/09/2013092121155300.jpg b/public/images/2013/09/2013092121155300.jpg new file mode 100644 index 0000000..4e600cd Binary files /dev/null and b/public/images/2013/09/2013092121155300.jpg differ diff --git a/public/images/2013/10/2013100501035200.jpg b/public/images/2013/10/2013100501035200.jpg new file mode 100644 index 0000000..970035a Binary files /dev/null and b/public/images/2013/10/2013100501035200.jpg differ diff --git a/public/images/2013/10/2013100501103300.jpg b/public/images/2013/10/2013100501103300.jpg new file mode 100644 index 0000000..7f89d1c Binary files /dev/null and b/public/images/2013/10/2013100501103300.jpg differ diff --git a/public/images/2013/10/2013100501130100.jpg b/public/images/2013/10/2013100501130100.jpg new file mode 100644 index 0000000..6525171 Binary files /dev/null and b/public/images/2013/10/2013100501130100.jpg differ diff --git a/public/images/2013/10/2013100501170700.jpg b/public/images/2013/10/2013100501170700.jpg new file mode 100644 index 0000000..0acfe3b Binary files /dev/null and b/public/images/2013/10/2013100501170700.jpg differ diff --git a/public/images/2013/11/2013110400534500.jpg b/public/images/2013/11/2013110400534500.jpg new file mode 100644 index 0000000..be00ca9 Binary files /dev/null and b/public/images/2013/11/2013110400534500.jpg differ diff --git a/public/images/2013/11/2013110400564500.jpg b/public/images/2013/11/2013110400564500.jpg new file mode 100644 index 0000000..68ac7d4 Binary files /dev/null and b/public/images/2013/11/2013110400564500.jpg differ diff --git a/public/images/2013/11/2013110400564800.jpg b/public/images/2013/11/2013110400564800.jpg new file mode 100644 index 0000000..cb46f3a Binary files /dev/null and b/public/images/2013/11/2013110400564800.jpg differ diff --git a/public/images/2013/11/2013110400595700.jpg b/public/images/2013/11/2013110400595700.jpg new file mode 100644 index 0000000..39a8136 Binary files /dev/null and b/public/images/2013/11/2013110400595700.jpg differ diff --git a/public/images/2013/11/2013111801235800.jpg b/public/images/2013/11/2013111801235800.jpg new file mode 100644 index 0000000..ba164e2 Binary files /dev/null and b/public/images/2013/11/2013111801235800.jpg differ diff --git a/public/images/2013/11/2013111801261300.jpg b/public/images/2013/11/2013111801261300.jpg new file mode 100644 index 0000000..afcc975 Binary files /dev/null and b/public/images/2013/11/2013111801261300.jpg differ diff --git a/public/images/2013/11/2013111801282600.jpg b/public/images/2013/11/2013111801282600.jpg new file mode 100644 index 0000000..0e08a1d Binary files /dev/null and b/public/images/2013/11/2013111801282600.jpg differ diff --git a/public/images/2013/11/2013111801302100.jpg b/public/images/2013/11/2013111801302100.jpg new file mode 100644 index 0000000..70f7762 Binary files /dev/null and b/public/images/2013/11/2013111801302100.jpg differ diff --git a/public/images/2013/11/2013112501343300.jpg b/public/images/2013/11/2013112501343300.jpg new file mode 100644 index 0000000..f32a5b1 Binary files /dev/null and b/public/images/2013/11/2013112501343300.jpg differ diff --git a/public/images/2013/11/2013112501353300.jpg b/public/images/2013/11/2013112501353300.jpg new file mode 100644 index 0000000..a1048d4 Binary files /dev/null and b/public/images/2013/11/2013112501353300.jpg differ diff --git a/public/images/2013/12/2013120201424100.jpg b/public/images/2013/12/2013120201424100.jpg new file mode 100644 index 0000000..7a08cac Binary files /dev/null and b/public/images/2013/12/2013120201424100.jpg differ diff --git a/public/images/2013/12/2013120201503000.jpg b/public/images/2013/12/2013120201503000.jpg new file mode 100644 index 0000000..563c28c Binary files /dev/null and b/public/images/2013/12/2013120201503000.jpg differ diff --git a/public/images/2013/12/2013120201523700.jpg b/public/images/2013/12/2013120201523700.jpg new file mode 100644 index 0000000..0108aa8 Binary files /dev/null and b/public/images/2013/12/2013120201523700.jpg differ diff --git a/public/images/2013/12/2013120201524100.jpg b/public/images/2013/12/2013120201524100.jpg new file mode 100644 index 0000000..edb2119 Binary files /dev/null and b/public/images/2013/12/2013120201524100.jpg differ diff --git a/public/images/2013/12/2013123101375300.jpg b/public/images/2013/12/2013123101375300.jpg new file mode 100644 index 0000000..e54160c Binary files /dev/null and b/public/images/2013/12/2013123101375300.jpg differ diff --git a/public/images/2013/12/2013123101553100.jpg b/public/images/2013/12/2013123101553100.jpg new file mode 100644 index 0000000..729c1df Binary files /dev/null and b/public/images/2013/12/2013123101553100.jpg differ diff --git a/public/images/2013/12/2013123101571500.jpg b/public/images/2013/12/2013123101571500.jpg new file mode 100644 index 0000000..25f2915 Binary files /dev/null and b/public/images/2013/12/2013123101571500.jpg differ diff --git a/public/images/2019/05/2019050901494935.jpg b/public/images/2019/05/2019050901494935.jpg new file mode 100644 index 0000000..1f28273 Binary files /dev/null and b/public/images/2019/05/2019050901494935.jpg differ diff --git a/public/images/2019/05/2019050902101874.jpg b/public/images/2019/05/2019050902101874.jpg new file mode 100644 index 0000000..0f48935 Binary files /dev/null and b/public/images/2019/05/2019050902101874.jpg differ diff --git a/public/images/2019/05/2019050902175888.jpg b/public/images/2019/05/2019050902175888.jpg new file mode 100644 index 0000000..bee996c Binary files /dev/null and b/public/images/2019/05/2019050902175888.jpg differ diff --git a/public/images/2019/05/2019050902252161.jpg b/public/images/2019/05/2019050902252161.jpg new file mode 100644 index 0000000..d62c222 Binary files /dev/null and b/public/images/2019/05/2019050902252161.jpg differ diff --git a/public/images/2019/05/2019050902332168.jpg b/public/images/2019/05/2019050902332168.jpg new file mode 100644 index 0000000..2aa840a Binary files /dev/null and b/public/images/2019/05/2019050902332168.jpg differ diff --git a/public/images/2019/05/2019050902371572.jpg b/public/images/2019/05/2019050902371572.jpg new file mode 100644 index 0000000..d93a6d9 Binary files /dev/null and b/public/images/2019/05/2019050902371572.jpg differ diff --git a/public/images/2019/05/2019050902442970.jpg b/public/images/2019/05/2019050902442970.jpg new file mode 100644 index 0000000..d5d132a Binary files /dev/null and b/public/images/2019/05/2019050902442970.jpg differ diff --git a/public/images/2019/05/2019050902470727.jpg b/public/images/2019/05/2019050902470727.jpg new file mode 100644 index 0000000..f14ddaa Binary files /dev/null and b/public/images/2019/05/2019050902470727.jpg differ diff --git a/public/images/2019/05/2019050902474279.jpg b/public/images/2019/05/2019050902474279.jpg new file mode 100644 index 0000000..f99ca43 Binary files /dev/null and b/public/images/2019/05/2019050902474279.jpg differ diff --git a/public/images/2019/05/2019050902483348.jpg b/public/images/2019/05/2019050902483348.jpg new file mode 100644 index 0000000..1c9c964 Binary files /dev/null and b/public/images/2019/05/2019050902483348.jpg differ diff --git a/public/images/2019/05/2019050902492485.jpg b/public/images/2019/05/2019050902492485.jpg new file mode 100644 index 0000000..4f4e85f Binary files /dev/null and b/public/images/2019/05/2019050902492485.jpg differ diff --git a/public/images/2019/05/2019050902504379.jpg b/public/images/2019/05/2019050902504379.jpg new file mode 100644 index 0000000..12de637 Binary files /dev/null and b/public/images/2019/05/2019050902504379.jpg differ diff --git a/public/images/2019/05/2019050908152192.jpg b/public/images/2019/05/2019050908152192.jpg new file mode 100644 index 0000000..22b1a8a Binary files /dev/null and b/public/images/2019/05/2019050908152192.jpg differ diff --git a/public/images/2019/05/2019050908220042.png b/public/images/2019/05/2019050908220042.png new file mode 100644 index 0000000..b10080c Binary files /dev/null and b/public/images/2019/05/2019050908220042.png differ diff --git a/public/images/2019/05/2019050908223772.png b/public/images/2019/05/2019050908223772.png new file mode 100644 index 0000000..1cc883a Binary files /dev/null and b/public/images/2019/05/2019050908223772.png differ diff --git a/public/images/2019/05/2019050908233838.gif b/public/images/2019/05/2019050908233838.gif new file mode 100644 index 0000000..cb8d20b Binary files /dev/null and b/public/images/2019/05/2019050908233838.gif differ diff --git a/public/images/2019/05/2019050908243939.png b/public/images/2019/05/2019050908243939.png new file mode 100644 index 0000000..8c791f1 Binary files /dev/null and b/public/images/2019/05/2019050908243939.png differ diff --git a/public/images/2019/05/2019050908302180.jpg b/public/images/2019/05/2019050908302180.jpg new file mode 100644 index 0000000..74fd89e Binary files /dev/null and b/public/images/2019/05/2019050908302180.jpg differ diff --git a/public/images/2019/05/2019050908380382.jpg b/public/images/2019/05/2019050908380382.jpg new file mode 100644 index 0000000..01c0c41 Binary files /dev/null and b/public/images/2019/05/2019050908380382.jpg differ diff --git a/public/images/2019/05/2019050909495525.jpg b/public/images/2019/05/2019050909495525.jpg new file mode 100644 index 0000000..d694028 Binary files /dev/null and b/public/images/2019/05/2019050909495525.jpg differ diff --git a/public/images/2019/05/2019050909531558.jpg b/public/images/2019/05/2019050909531558.jpg new file mode 100644 index 0000000..9ef6296 Binary files /dev/null and b/public/images/2019/05/2019050909531558.jpg differ diff --git a/public/images/2019/05/2019050913525690.jpg b/public/images/2019/05/2019050913525690.jpg new file mode 100644 index 0000000..aa435e2 Binary files /dev/null and b/public/images/2019/05/2019050913525690.jpg differ diff --git a/public/images/2019/05/2019051406433394.jpg b/public/images/2019/05/2019051406433394.jpg new file mode 100644 index 0000000..82e0a65 Binary files /dev/null and b/public/images/2019/05/2019051406433394.jpg differ diff --git a/public/images/2019/05/2019051406483929.jpg b/public/images/2019/05/2019051406483929.jpg new file mode 100644 index 0000000..ec60834 Binary files /dev/null and b/public/images/2019/05/2019051406483929.jpg differ diff --git a/public/images/2019/05/2019051406592297.jpg b/public/images/2019/05/2019051406592297.jpg new file mode 100644 index 0000000..dffe3b9 Binary files /dev/null and b/public/images/2019/05/2019051406592297.jpg differ diff --git a/public/images/2019/05/2019051407200569.jpg b/public/images/2019/05/2019051407200569.jpg new file mode 100644 index 0000000..518c8f3 Binary files /dev/null and b/public/images/2019/05/2019051407200569.jpg differ diff --git a/public/images/2019/05/2019051407531632.jpg b/public/images/2019/05/2019051407531632.jpg new file mode 100644 index 0000000..4ad077c Binary files /dev/null and b/public/images/2019/05/2019051407531632.jpg differ diff --git a/public/images/2019/05/2019051408020581.jpg b/public/images/2019/05/2019051408020581.jpg new file mode 100644 index 0000000..7ff67a6 Binary files /dev/null and b/public/images/2019/05/2019051408020581.jpg differ diff --git a/public/images/2019/05/2019051408021050.jpg b/public/images/2019/05/2019051408021050.jpg new file mode 100644 index 0000000..af87c4e Binary files /dev/null and b/public/images/2019/05/2019051408021050.jpg differ diff --git a/public/images/2019/05/2019051408062596.jpg b/public/images/2019/05/2019051408062596.jpg new file mode 100644 index 0000000..6681fb8 Binary files /dev/null and b/public/images/2019/05/2019051408062596.jpg differ diff --git a/public/images/2019/05/2019051817144382.jpg b/public/images/2019/05/2019051817144382.jpg new file mode 100644 index 0000000..de62389 Binary files /dev/null and b/public/images/2019/05/2019051817144382.jpg differ diff --git a/public/images/2019/05/2019051817144785.jpg b/public/images/2019/05/2019051817144785.jpg new file mode 100644 index 0000000..39228fd Binary files /dev/null and b/public/images/2019/05/2019051817144785.jpg differ diff --git a/public/images/2019/05/2019051818094781.jpg b/public/images/2019/05/2019051818094781.jpg new file mode 100644 index 0000000..dbd459c Binary files /dev/null and b/public/images/2019/05/2019051818094781.jpg differ diff --git a/public/images/2019/05/2019051818123745.jpg b/public/images/2019/05/2019051818123745.jpg new file mode 100644 index 0000000..78bc2e9 Binary files /dev/null and b/public/images/2019/05/2019051818123745.jpg differ diff --git a/public/images/2019/05/2019051818154567.jpg b/public/images/2019/05/2019051818154567.jpg new file mode 100644 index 0000000..c99cea5 Binary files /dev/null and b/public/images/2019/05/2019051818154567.jpg differ diff --git a/public/images/2019/05/2019051818191979.jpg b/public/images/2019/05/2019051818191979.jpg new file mode 100644 index 0000000..c394e47 Binary files /dev/null and b/public/images/2019/05/2019051818191979.jpg differ diff --git a/public/images/2019/05/2019051818210131.jpg b/public/images/2019/05/2019051818210131.jpg new file mode 100644 index 0000000..99031f9 Binary files /dev/null and b/public/images/2019/05/2019051818210131.jpg differ diff --git a/public/images/2019/05/2019051818253816.jpg b/public/images/2019/05/2019051818253816.jpg new file mode 100644 index 0000000..5f9f595 Binary files /dev/null and b/public/images/2019/05/2019051818253816.jpg differ diff --git a/public/images/2019/05/2019051818284917.jpg b/public/images/2019/05/2019051818284917.jpg new file mode 100644 index 0000000..1c4146c Binary files /dev/null and b/public/images/2019/05/2019051818284917.jpg differ diff --git a/public/images/2019/05/2019051818392913.jpg b/public/images/2019/05/2019051818392913.jpg new file mode 100644 index 0000000..7f180bf Binary files /dev/null and b/public/images/2019/05/2019051818392913.jpg differ diff --git a/public/images/2019/05/2019051818531636.jpg b/public/images/2019/05/2019051818531636.jpg new file mode 100644 index 0000000..69e1de6 Binary files /dev/null and b/public/images/2019/05/2019051818531636.jpg differ diff --git a/public/images/2019/05/2019051819045635.jpg b/public/images/2019/05/2019051819045635.jpg new file mode 100644 index 0000000..2230ca6 Binary files /dev/null and b/public/images/2019/05/2019051819045635.jpg differ diff --git a/public/images/2019/05/2019051819045868.jpg b/public/images/2019/05/2019051819045868.jpg new file mode 100644 index 0000000..cf3729e Binary files /dev/null and b/public/images/2019/05/2019051819045868.jpg differ diff --git a/public/images/2019/05/2019051819050372.jpg b/public/images/2019/05/2019051819050372.jpg new file mode 100644 index 0000000..6b24136 Binary files /dev/null and b/public/images/2019/05/2019051819050372.jpg differ diff --git a/public/images/2019/05/2019051819204032.jpg b/public/images/2019/05/2019051819204032.jpg new file mode 100644 index 0000000..823069e Binary files /dev/null and b/public/images/2019/05/2019051819204032.jpg differ diff --git a/public/images/2019/05/2019051819204562.jpg b/public/images/2019/05/2019051819204562.jpg new file mode 100644 index 0000000..14fc3ba Binary files /dev/null and b/public/images/2019/05/2019051819204562.jpg differ diff --git a/public/images/2019/05/2019051819205590.jpg b/public/images/2019/05/2019051819205590.jpg new file mode 100644 index 0000000..7c09ae9 Binary files /dev/null and b/public/images/2019/05/2019051819205590.jpg differ diff --git a/public/images/2019/05/2019051819264475.jpg b/public/images/2019/05/2019051819264475.jpg new file mode 100644 index 0000000..ffb51ba Binary files /dev/null and b/public/images/2019/05/2019051819264475.jpg differ diff --git a/public/images/2019/05/2019051819371735.jpg b/public/images/2019/05/2019051819371735.jpg new file mode 100644 index 0000000..f6ab2c1 Binary files /dev/null and b/public/images/2019/05/2019051819371735.jpg differ diff --git a/public/images/2019/05/2019051819372187.jpg b/public/images/2019/05/2019051819372187.jpg new file mode 100644 index 0000000..8253194 Binary files /dev/null and b/public/images/2019/05/2019051819372187.jpg differ diff --git a/public/images/2019/05/2019051819385367.jpg b/public/images/2019/05/2019051819385367.jpg new file mode 100644 index 0000000..7ae843d Binary files /dev/null and b/public/images/2019/05/2019051819385367.jpg differ diff --git a/public/images/2019/05/2019051819432258.jpg b/public/images/2019/05/2019051819432258.jpg new file mode 100644 index 0000000..4609265 Binary files /dev/null and b/public/images/2019/05/2019051819432258.jpg differ diff --git a/public/images/2019/05/2019051819444155.jpg b/public/images/2019/05/2019051819444155.jpg new file mode 100644 index 0000000..c3e88ee Binary files /dev/null and b/public/images/2019/05/2019051819444155.jpg differ diff --git a/public/images/2019/05/2019051819515850.jpg b/public/images/2019/05/2019051819515850.jpg new file mode 100644 index 0000000..2136658 Binary files /dev/null and b/public/images/2019/05/2019051819515850.jpg differ diff --git a/public/images/2019/05/2019051819555579.jpg b/public/images/2019/05/2019051819555579.jpg new file mode 100644 index 0000000..0963ee2 Binary files /dev/null and b/public/images/2019/05/2019051819555579.jpg differ diff --git a/public/images/2019/05/2019051820015162.jpg b/public/images/2019/05/2019051820015162.jpg new file mode 100644 index 0000000..1d845aa Binary files /dev/null and b/public/images/2019/05/2019051820015162.jpg differ diff --git a/public/images/2019/05/2019051820063483.jpg b/public/images/2019/05/2019051820063483.jpg new file mode 100644 index 0000000..57b7fb9 Binary files /dev/null and b/public/images/2019/05/2019051820063483.jpg differ diff --git a/public/images/2019/05/2019051820064137.jpg b/public/images/2019/05/2019051820064137.jpg new file mode 100644 index 0000000..96ba22c Binary files /dev/null and b/public/images/2019/05/2019051820064137.jpg differ diff --git a/public/images/2019/05/2019051820064669.jpg b/public/images/2019/05/2019051820064669.jpg new file mode 100644 index 0000000..80ec190 Binary files /dev/null and b/public/images/2019/05/2019051820064669.jpg differ diff --git a/public/images/2019/05/2019051820203226.jpg b/public/images/2019/05/2019051820203226.jpg new file mode 100644 index 0000000..ae6dc6e Binary files /dev/null and b/public/images/2019/05/2019051820203226.jpg differ diff --git a/public/images/2019/05/2019051820203620.jpg b/public/images/2019/05/2019051820203620.jpg new file mode 100644 index 0000000..adda8b8 Binary files /dev/null and b/public/images/2019/05/2019051820203620.jpg differ diff --git a/public/images/2019/05/2019051820214283.jpg b/public/images/2019/05/2019051820214283.jpg new file mode 100644 index 0000000..5867399 Binary files /dev/null and b/public/images/2019/05/2019051820214283.jpg differ diff --git a/public/images/2019/05/2019051820293355.jpg b/public/images/2019/05/2019051820293355.jpg new file mode 100644 index 0000000..beb1264 Binary files /dev/null and b/public/images/2019/05/2019051820293355.jpg differ diff --git a/public/images/2019/05/2019051820293559.jpg b/public/images/2019/05/2019051820293559.jpg new file mode 100644 index 0000000..906743e Binary files /dev/null and b/public/images/2019/05/2019051820293559.jpg differ diff --git a/public/images/2019/05/2019051820583532.jpg b/public/images/2019/05/2019051820583532.jpg new file mode 100644 index 0000000..bb610f7 Binary files /dev/null and b/public/images/2019/05/2019051820583532.jpg differ diff --git a/public/images/2019/05/2019051820594178.jpg b/public/images/2019/05/2019051820594178.jpg new file mode 100644 index 0000000..038e00e Binary files /dev/null and b/public/images/2019/05/2019051820594178.jpg differ diff --git a/public/images/2019/05/2019051821092623.jpg b/public/images/2019/05/2019051821092623.jpg new file mode 100644 index 0000000..af6a349 Binary files /dev/null and b/public/images/2019/05/2019051821092623.jpg differ diff --git a/public/images/2019/05/2019051821153851.jpg b/public/images/2019/05/2019051821153851.jpg new file mode 100644 index 0000000..4859339 Binary files /dev/null and b/public/images/2019/05/2019051821153851.jpg differ diff --git a/public/images/2019/05/2019051821154097.jpg b/public/images/2019/05/2019051821154097.jpg new file mode 100644 index 0000000..771508b Binary files /dev/null and b/public/images/2019/05/2019051821154097.jpg differ diff --git a/public/images/2019/05/2019051821154311.jpg b/public/images/2019/05/2019051821154311.jpg new file mode 100644 index 0000000..b07f305 Binary files /dev/null and b/public/images/2019/05/2019051821154311.jpg differ diff --git a/public/images/2019/05/2019051821195094.jpg b/public/images/2019/05/2019051821195094.jpg new file mode 100644 index 0000000..13915bf Binary files /dev/null and b/public/images/2019/05/2019051821195094.jpg differ diff --git a/public/images/2019/05/2019051821225090.jpg b/public/images/2019/05/2019051821225090.jpg new file mode 100644 index 0000000..eddcc86 Binary files /dev/null and b/public/images/2019/05/2019051821225090.jpg differ diff --git a/public/images/2019/05/2019051821225466.jpg b/public/images/2019/05/2019051821225466.jpg new file mode 100644 index 0000000..9bbc943 Binary files /dev/null and b/public/images/2019/05/2019051821225466.jpg differ diff --git a/public/images/2019/05/2019051821422182.jpg b/public/images/2019/05/2019051821422182.jpg new file mode 100644 index 0000000..4acecc8 Binary files /dev/null and b/public/images/2019/05/2019051821422182.jpg differ diff --git a/public/images/2019/05/2019051821474615.png b/public/images/2019/05/2019051821474615.png new file mode 100644 index 0000000..4cdcfc6 Binary files /dev/null and b/public/images/2019/05/2019051821474615.png differ diff --git a/public/images/2019/05/2019052211311784.jpg b/public/images/2019/05/2019052211311784.jpg new file mode 100644 index 0000000..bd157f1 Binary files /dev/null and b/public/images/2019/05/2019052211311784.jpg differ diff --git a/public/images/2019/05/2019052708543516.jpg b/public/images/2019/05/2019052708543516.jpg new file mode 100644 index 0000000..0c1f0e4 Binary files /dev/null and b/public/images/2019/05/2019052708543516.jpg differ diff --git a/public/images/2019/05/2019052708550328.jpg b/public/images/2019/05/2019052708550328.jpg new file mode 100644 index 0000000..e28303c Binary files /dev/null and b/public/images/2019/05/2019052708550328.jpg differ diff --git a/public/images/2019/05/2019052708553042.jpg b/public/images/2019/05/2019052708553042.jpg new file mode 100644 index 0000000..da98325 Binary files /dev/null and b/public/images/2019/05/2019052708553042.jpg differ diff --git a/public/images/2019/06/2019060512012051.jpg b/public/images/2019/06/2019060512012051.jpg new file mode 100644 index 0000000..483fc93 Binary files /dev/null and b/public/images/2019/06/2019060512012051.jpg differ diff --git a/public/images/2019/06/2019060512074454.jpg b/public/images/2019/06/2019060512074454.jpg new file mode 100644 index 0000000..e3aab39 Binary files /dev/null and b/public/images/2019/06/2019060512074454.jpg differ diff --git a/public/images/2019/06/2019060512093940.jpg b/public/images/2019/06/2019060512093940.jpg new file mode 100644 index 0000000..e44cc7c Binary files /dev/null and b/public/images/2019/06/2019060512093940.jpg differ diff --git a/public/images/2019/06/2019060512135888.jpg b/public/images/2019/06/2019060512135888.jpg new file mode 100644 index 0000000..d3c8c58 Binary files /dev/null and b/public/images/2019/06/2019060512135888.jpg differ diff --git a/public/images/2019/06/2019060512145995.jpg b/public/images/2019/06/2019060512145995.jpg new file mode 100644 index 0000000..14475fc Binary files /dev/null and b/public/images/2019/06/2019060512145995.jpg differ diff --git a/public/images/2019/06/2019060512164612.jpg b/public/images/2019/06/2019060512164612.jpg new file mode 100644 index 0000000..41d8d76 Binary files /dev/null and b/public/images/2019/06/2019060512164612.jpg differ diff --git a/public/images/2019/06/2019060607035266.jpg b/public/images/2019/06/2019060607035266.jpg new file mode 100644 index 0000000..e2e9ba5 Binary files /dev/null and b/public/images/2019/06/2019060607035266.jpg differ diff --git a/public/images/2019/06/2019060607035676.jpg b/public/images/2019/06/2019060607035676.jpg new file mode 100644 index 0000000..d65f2ff Binary files /dev/null and b/public/images/2019/06/2019060607035676.jpg differ diff --git a/public/images/2019/06/2019060607083452.jpg b/public/images/2019/06/2019060607083452.jpg new file mode 100644 index 0000000..d2e709a Binary files /dev/null and b/public/images/2019/06/2019060607083452.jpg differ diff --git a/public/images/2019/06/2019060607142477.jpg b/public/images/2019/06/2019060607142477.jpg new file mode 100644 index 0000000..57086fe Binary files /dev/null and b/public/images/2019/06/2019060607142477.jpg differ diff --git a/public/images/2019/06/2019060607161615.jpg b/public/images/2019/06/2019060607161615.jpg new file mode 100644 index 0000000..cdf5735 Binary files /dev/null and b/public/images/2019/06/2019060607161615.jpg differ diff --git a/public/images/2019/06/2019060607183287.jpg b/public/images/2019/06/2019060607183287.jpg new file mode 100644 index 0000000..d376871 Binary files /dev/null and b/public/images/2019/06/2019060607183287.jpg differ diff --git a/public/images/2019/06/2019060607210889.jpg b/public/images/2019/06/2019060607210889.jpg new file mode 100644 index 0000000..2a6f113 Binary files /dev/null and b/public/images/2019/06/2019060607210889.jpg differ diff --git a/public/images/2019/06/2019060607242852.jpg b/public/images/2019/06/2019060607242852.jpg new file mode 100644 index 0000000..f2481e6 Binary files /dev/null and b/public/images/2019/06/2019060607242852.jpg differ diff --git a/public/images/2019/06/2019060607270480.jpg b/public/images/2019/06/2019060607270480.jpg new file mode 100644 index 0000000..89c6d12 Binary files /dev/null and b/public/images/2019/06/2019060607270480.jpg differ diff --git a/public/images/2019/06/2019060607290148.jpg b/public/images/2019/06/2019060607290148.jpg new file mode 100644 index 0000000..5939ec7 Binary files /dev/null and b/public/images/2019/06/2019060607290148.jpg differ diff --git a/public/images/2019/06/2019060608035798.jpg b/public/images/2019/06/2019060608035798.jpg new file mode 100644 index 0000000..8f0e91d Binary files /dev/null and b/public/images/2019/06/2019060608035798.jpg differ diff --git a/public/images/2019/06/2019060608043422.jpg b/public/images/2019/06/2019060608043422.jpg new file mode 100644 index 0000000..d9734ba Binary files /dev/null and b/public/images/2019/06/2019060608043422.jpg differ diff --git a/public/images/2019/06/2019060608094516.jpg b/public/images/2019/06/2019060608094516.jpg new file mode 100644 index 0000000..2896be1 Binary files /dev/null and b/public/images/2019/06/2019060608094516.jpg differ diff --git a/public/images/2019/06/2019060608113231.jpg b/public/images/2019/06/2019060608113231.jpg new file mode 100644 index 0000000..28b8c7e Binary files /dev/null and b/public/images/2019/06/2019060608113231.jpg differ diff --git a/public/images/2019/06/2019061004374698.jpg b/public/images/2019/06/2019061004374698.jpg new file mode 100644 index 0000000..a17aeac Binary files /dev/null and b/public/images/2019/06/2019061004374698.jpg differ diff --git a/public/images/2019/06/2019061004383676.jpg b/public/images/2019/06/2019061004383676.jpg new file mode 100644 index 0000000..23ecb54 Binary files /dev/null and b/public/images/2019/06/2019061004383676.jpg differ diff --git a/public/images/2019/06/2019061004393184.jpg b/public/images/2019/06/2019061004393184.jpg new file mode 100644 index 0000000..f139cd9 Binary files /dev/null and b/public/images/2019/06/2019061004393184.jpg differ diff --git a/public/images/2019/07/2019070506303116.jpg b/public/images/2019/07/2019070506303116.jpg new file mode 100644 index 0000000..89b327f Binary files /dev/null and b/public/images/2019/07/2019070506303116.jpg differ diff --git a/public/images/2019/07/2019071213435191.jpg b/public/images/2019/07/2019071213435191.jpg new file mode 100644 index 0000000..c3c07d8 Binary files /dev/null and b/public/images/2019/07/2019071213435191.jpg differ diff --git a/public/images/2019/07/2019071213470131.jpg b/public/images/2019/07/2019071213470131.jpg new file mode 100644 index 0000000..686e94b Binary files /dev/null and b/public/images/2019/07/2019071213470131.jpg differ diff --git a/public/images/2019/07/2019071213533026.jpg b/public/images/2019/07/2019071213533026.jpg new file mode 100644 index 0000000..2d0b945 Binary files /dev/null and b/public/images/2019/07/2019071213533026.jpg differ diff --git a/public/images/2019/07/2019071213590880.jpg b/public/images/2019/07/2019071213590880.jpg new file mode 100644 index 0000000..d28a975 Binary files /dev/null and b/public/images/2019/07/2019071213590880.jpg differ diff --git a/public/images/2019/07/2019071214005288.jpg b/public/images/2019/07/2019071214005288.jpg new file mode 100644 index 0000000..b8d4520 Binary files /dev/null and b/public/images/2019/07/2019071214005288.jpg differ diff --git a/public/images/2019/07/2019071214170923.jpg b/public/images/2019/07/2019071214170923.jpg new file mode 100644 index 0000000..5d3c495 Binary files /dev/null and b/public/images/2019/07/2019071214170923.jpg differ diff --git a/public/images/2019/07/2019071214171174.jpg b/public/images/2019/07/2019071214171174.jpg new file mode 100644 index 0000000..b64f4c0 Binary files /dev/null and b/public/images/2019/07/2019071214171174.jpg differ diff --git a/public/images/2019/07/2019071310502777.jpg b/public/images/2019/07/2019071310502777.jpg new file mode 100644 index 0000000..00b7592 Binary files /dev/null and b/public/images/2019/07/2019071310502777.jpg differ diff --git a/public/images/2019/07/2019071310542523.jpg b/public/images/2019/07/2019071310542523.jpg new file mode 100644 index 0000000..1c2424f Binary files /dev/null and b/public/images/2019/07/2019071310542523.jpg differ diff --git a/public/images/2019/07/2019071310585310.jpg b/public/images/2019/07/2019071310585310.jpg new file mode 100644 index 0000000..bf839af Binary files /dev/null and b/public/images/2019/07/2019071310585310.jpg differ diff --git a/public/images/2019/08/2019081209080360.jpg b/public/images/2019/08/2019081209080360.jpg new file mode 100644 index 0000000..a5e8f77 Binary files /dev/null and b/public/images/2019/08/2019081209080360.jpg differ diff --git a/public/images/2019/08/2019081209080689.jpg b/public/images/2019/08/2019081209080689.jpg new file mode 100644 index 0000000..93238ae Binary files /dev/null and b/public/images/2019/08/2019081209080689.jpg differ diff --git a/public/images/2020/09/2020090412164155.jpg b/public/images/2020/09/2020090412164155.jpg new file mode 100644 index 0000000..f8c0ea7 Binary files /dev/null and b/public/images/2020/09/2020090412164155.jpg differ diff --git a/public/images/2020/09/2020090412291981.jpg b/public/images/2020/09/2020090412291981.jpg new file mode 100644 index 0000000..08eb559 Binary files /dev/null and b/public/images/2020/09/2020090412291981.jpg differ diff --git a/public/images/2020/09/2020090412370067.jpg b/public/images/2020/09/2020090412370067.jpg new file mode 100644 index 0000000..398ff4a Binary files /dev/null and b/public/images/2020/09/2020090412370067.jpg differ diff --git a/public/images/2020/09/2020090412405393.jpg b/public/images/2020/09/2020090412405393.jpg new file mode 100644 index 0000000..8f871b6 Binary files /dev/null and b/public/images/2020/09/2020090412405393.jpg differ diff --git a/public/images/2020/09/2020090412432012.jpg b/public/images/2020/09/2020090412432012.jpg new file mode 100644 index 0000000..ebc615e Binary files /dev/null and b/public/images/2020/09/2020090412432012.jpg differ diff --git a/public/images/2020/09/2020090412582582.jpg b/public/images/2020/09/2020090412582582.jpg new file mode 100644 index 0000000..b33bcc6 Binary files /dev/null and b/public/images/2020/09/2020090412582582.jpg differ diff --git a/public/images/2020/09/2020090412582748.jpg b/public/images/2020/09/2020090412582748.jpg new file mode 100644 index 0000000..06728de Binary files /dev/null and b/public/images/2020/09/2020090412582748.jpg differ diff --git a/public/images/2020/09/2020090413054831.jpg b/public/images/2020/09/2020090413054831.jpg new file mode 100644 index 0000000..bca762e Binary files /dev/null and b/public/images/2020/09/2020090413054831.jpg differ diff --git a/public/images/2020/09/2020090413160041.jpg b/public/images/2020/09/2020090413160041.jpg new file mode 100644 index 0000000..cffa248 Binary files /dev/null and b/public/images/2020/09/2020090413160041.jpg differ diff --git a/public/images/2020/09/2020090413182340.jpg b/public/images/2020/09/2020090413182340.jpg new file mode 100644 index 0000000..ce342c8 Binary files /dev/null and b/public/images/2020/09/2020090413182340.jpg differ diff --git a/public/images/2020/09/2020090413365426.jpg b/public/images/2020/09/2020090413365426.jpg new file mode 100644 index 0000000..50a85dc Binary files /dev/null and b/public/images/2020/09/2020090413365426.jpg differ diff --git a/public/images/2020/09/2020090418594290.jpg b/public/images/2020/09/2020090418594290.jpg new file mode 100644 index 0000000..2ac3eb0 Binary files /dev/null and b/public/images/2020/09/2020090418594290.jpg differ diff --git a/public/images/2020/09/2020090419083649.jpg b/public/images/2020/09/2020090419083649.jpg new file mode 100644 index 0000000..98dbae6 Binary files /dev/null and b/public/images/2020/09/2020090419083649.jpg differ diff --git a/public/images/2020/09/2020090419102255.jpg b/public/images/2020/09/2020090419102255.jpg new file mode 100644 index 0000000..702e4bd Binary files /dev/null and b/public/images/2020/09/2020090419102255.jpg differ diff --git a/public/images/2020/09/2020090419142440.jpg b/public/images/2020/09/2020090419142440.jpg new file mode 100644 index 0000000..ed391e6 Binary files /dev/null and b/public/images/2020/09/2020090419142440.jpg differ diff --git a/public/images/2020/09/2020090419171074.jpg b/public/images/2020/09/2020090419171074.jpg new file mode 100644 index 0000000..2c12bde Binary files /dev/null and b/public/images/2020/09/2020090419171074.jpg differ diff --git a/public/images/2020/09/2020090419174830.jpg b/public/images/2020/09/2020090419174830.jpg new file mode 100644 index 0000000..fa64b1a Binary files /dev/null and b/public/images/2020/09/2020090419174830.jpg differ diff --git a/public/images/2020/09/2020090419234660.jpg b/public/images/2020/09/2020090419234660.jpg new file mode 100644 index 0000000..fe1dc26 Binary files /dev/null and b/public/images/2020/09/2020090419234660.jpg differ diff --git a/public/images/2020/09/2020090419235130.png b/public/images/2020/09/2020090419235130.png new file mode 100644 index 0000000..e6f0ee0 Binary files /dev/null and b/public/images/2020/09/2020090419235130.png differ diff --git a/public/images/2020/09/2020090419260539.png b/public/images/2020/09/2020090419260539.png new file mode 100644 index 0000000..88de729 Binary files /dev/null and b/public/images/2020/09/2020090419260539.png differ diff --git a/public/images/2020/09/2020090419305167.jpg b/public/images/2020/09/2020090419305167.jpg new file mode 100644 index 0000000..86083b7 Binary files /dev/null and b/public/images/2020/09/2020090419305167.jpg differ diff --git a/public/images/2020/09/2020090419362643.jpg b/public/images/2020/09/2020090419362643.jpg new file mode 100644 index 0000000..169fe6d Binary files /dev/null and b/public/images/2020/09/2020090419362643.jpg differ diff --git a/public/images/2020/09/2020090419384411.jpg b/public/images/2020/09/2020090419384411.jpg new file mode 100644 index 0000000..e0bbcc2 Binary files /dev/null and b/public/images/2020/09/2020090419384411.jpg differ diff --git a/public/images/2020/09/2020090419425564.jpg b/public/images/2020/09/2020090419425564.jpg new file mode 100644 index 0000000..9041a75 Binary files /dev/null and b/public/images/2020/09/2020090419425564.jpg differ diff --git a/public/images/2020/09/2020090419493263.jpg b/public/images/2020/09/2020090419493263.jpg new file mode 100644 index 0000000..c21c045 Binary files /dev/null and b/public/images/2020/09/2020090419493263.jpg differ diff --git a/public/images/2020/09/2020090419530721.jpg b/public/images/2020/09/2020090419530721.jpg new file mode 100644 index 0000000..af1d2e8 Binary files /dev/null and b/public/images/2020/09/2020090419530721.jpg differ diff --git a/public/images/2020/09/2020090419532852.jpg b/public/images/2020/09/2020090419532852.jpg new file mode 100644 index 0000000..c1e6a52 Binary files /dev/null and b/public/images/2020/09/2020090419532852.jpg differ diff --git a/public/images/2020/09/2020090420094090.jpg b/public/images/2020/09/2020090420094090.jpg new file mode 100644 index 0000000..4a5b852 Binary files /dev/null and b/public/images/2020/09/2020090420094090.jpg differ diff --git a/public/images/2020/09/2020090420111684.jpg b/public/images/2020/09/2020090420111684.jpg new file mode 100644 index 0000000..b9f6cda Binary files /dev/null and b/public/images/2020/09/2020090420111684.jpg differ diff --git a/public/images/2020/09/2020090420194343.jpg b/public/images/2020/09/2020090420194343.jpg new file mode 100644 index 0000000..1cf1ba7 Binary files /dev/null and b/public/images/2020/09/2020090420194343.jpg differ diff --git a/public/images/2020/09/2020090420223787.jpg b/public/images/2020/09/2020090420223787.jpg new file mode 100644 index 0000000..e4abc83 Binary files /dev/null and b/public/images/2020/09/2020090420223787.jpg differ diff --git a/public/images/2020/09/2020090420290983.jpg b/public/images/2020/09/2020090420290983.jpg new file mode 100644 index 0000000..1b544b9 Binary files /dev/null and b/public/images/2020/09/2020090420290983.jpg differ diff --git a/public/images/2020/09/2020090420550333.jpg b/public/images/2020/09/2020090420550333.jpg new file mode 100644 index 0000000..647561c Binary files /dev/null and b/public/images/2020/09/2020090420550333.jpg differ diff --git a/public/images/2020/09/2020090420592363.jpg b/public/images/2020/09/2020090420592363.jpg new file mode 100644 index 0000000..ea0f02c Binary files /dev/null and b/public/images/2020/09/2020090420592363.jpg differ diff --git a/public/images/2020/09/2020090421041564.jpg b/public/images/2020/09/2020090421041564.jpg new file mode 100644 index 0000000..b29fd17 Binary files /dev/null and b/public/images/2020/09/2020090421041564.jpg differ diff --git a/public/images/2020/09/2020090421041838.jpg b/public/images/2020/09/2020090421041838.jpg new file mode 100644 index 0000000..b02f2c3 Binary files /dev/null and b/public/images/2020/09/2020090421041838.jpg differ diff --git a/public/images/2020/09/2020090421113833.jpg b/public/images/2020/09/2020090421113833.jpg new file mode 100644 index 0000000..e18a347 Binary files /dev/null and b/public/images/2020/09/2020090421113833.jpg differ diff --git a/public/images/2020/09/2020090421160773.jpg b/public/images/2020/09/2020090421160773.jpg new file mode 100644 index 0000000..941f9ca Binary files /dev/null and b/public/images/2020/09/2020090421160773.jpg differ diff --git a/public/images/2020/09/2020090421241938.jpg b/public/images/2020/09/2020090421241938.jpg new file mode 100644 index 0000000..1dc0dcf Binary files /dev/null and b/public/images/2020/09/2020090421241938.jpg differ diff --git a/public/images/2020/09/2020090421450493.jpg b/public/images/2020/09/2020090421450493.jpg new file mode 100644 index 0000000..afa73c8 Binary files /dev/null and b/public/images/2020/09/2020090421450493.jpg differ diff --git a/public/images/2020/09/2020090421472732.jpg b/public/images/2020/09/2020090421472732.jpg new file mode 100644 index 0000000..2b519b3 Binary files /dev/null and b/public/images/2020/09/2020090421472732.jpg differ diff --git a/public/images/2020/09/2020090421492124.jpg b/public/images/2020/09/2020090421492124.jpg new file mode 100644 index 0000000..d27fac2 Binary files /dev/null and b/public/images/2020/09/2020090421492124.jpg differ diff --git a/public/images/2020/09/2020090421522439.jpg b/public/images/2020/09/2020090421522439.jpg new file mode 100644 index 0000000..de4f946 Binary files /dev/null and b/public/images/2020/09/2020090421522439.jpg differ diff --git a/public/images/2020/09/2020090422023879.jpg b/public/images/2020/09/2020090422023879.jpg new file mode 100644 index 0000000..c81ab92 Binary files /dev/null and b/public/images/2020/09/2020090422023879.jpg differ diff --git a/public/images/2020/09/2020090422024176.jpg b/public/images/2020/09/2020090422024176.jpg new file mode 100644 index 0000000..736d772 Binary files /dev/null and b/public/images/2020/09/2020090422024176.jpg differ diff --git a/public/images/2020/09/2020090422091233.jpg b/public/images/2020/09/2020090422091233.jpg new file mode 100644 index 0000000..7624e26 Binary files /dev/null and b/public/images/2020/09/2020090422091233.jpg differ diff --git a/public/images/2020/09/2020090422164876.jpg b/public/images/2020/09/2020090422164876.jpg new file mode 100644 index 0000000..625b47d Binary files /dev/null and b/public/images/2020/09/2020090422164876.jpg differ diff --git a/public/images/2020/09/2020090422185883.jpg b/public/images/2020/09/2020090422185883.jpg new file mode 100644 index 0000000..8997481 Binary files /dev/null and b/public/images/2020/09/2020090422185883.jpg differ diff --git a/public/images/2020/09/2020090422270141.jpg b/public/images/2020/09/2020090422270141.jpg new file mode 100644 index 0000000..0c61022 Binary files /dev/null and b/public/images/2020/09/2020090422270141.jpg differ diff --git a/public/images/2020/09/2020090422290185.jpg b/public/images/2020/09/2020090422290185.jpg new file mode 100644 index 0000000..e9cdeed Binary files /dev/null and b/public/images/2020/09/2020090422290185.jpg differ diff --git a/public/images/2020/09/2020090422293440.jpg b/public/images/2020/09/2020090422293440.jpg new file mode 100644 index 0000000..35a3edd Binary files /dev/null and b/public/images/2020/09/2020090422293440.jpg differ diff --git a/public/images/2020/09/2020090422361856.jpg b/public/images/2020/09/2020090422361856.jpg new file mode 100644 index 0000000..9ffc640 Binary files /dev/null and b/public/images/2020/09/2020090422361856.jpg differ diff --git a/public/images/2020/09/2020090422395473.jpg b/public/images/2020/09/2020090422395473.jpg new file mode 100644 index 0000000..13b634d Binary files /dev/null and b/public/images/2020/09/2020090422395473.jpg differ diff --git a/public/images/2020/09/2020090422454021.jpg b/public/images/2020/09/2020090422454021.jpg new file mode 100644 index 0000000..d261f3a Binary files /dev/null and b/public/images/2020/09/2020090422454021.jpg differ diff --git a/public/images/2020/09/2020090423034580.jpg b/public/images/2020/09/2020090423034580.jpg new file mode 100644 index 0000000..749e9b8 Binary files /dev/null and b/public/images/2020/09/2020090423034580.jpg differ diff --git a/public/images/2020/09/2020090423035126.jpg b/public/images/2020/09/2020090423035126.jpg new file mode 100644 index 0000000..80421f6 Binary files /dev/null and b/public/images/2020/09/2020090423035126.jpg differ diff --git a/public/images/2020/09/2020092003563700.jpg b/public/images/2020/09/2020092003563700.jpg new file mode 100644 index 0000000..1280da3 Binary files /dev/null and b/public/images/2020/09/2020092003563700.jpg differ diff --git a/public/images/2020/11/2020111616102568.jpg b/public/images/2020/11/2020111616102568.jpg new file mode 100644 index 0000000..ec6426d Binary files /dev/null and b/public/images/2020/11/2020111616102568.jpg differ diff --git a/public/images/2020/11/2020111616303232.jpg b/public/images/2020/11/2020111616303232.jpg new file mode 100644 index 0000000..7a5be6f Binary files /dev/null and b/public/images/2020/11/2020111616303232.jpg differ diff --git a/public/images/2020/11/2020111616333446.jpg b/public/images/2020/11/2020111616333446.jpg new file mode 100644 index 0000000..02a7193 Binary files /dev/null and b/public/images/2020/11/2020111616333446.jpg differ diff --git a/public/images/2020/11/2020111617164786.jpg b/public/images/2020/11/2020111617164786.jpg new file mode 100644 index 0000000..925d0d1 Binary files /dev/null and b/public/images/2020/11/2020111617164786.jpg differ diff --git a/public/images/2020/11/2020111617250726.jpg b/public/images/2020/11/2020111617250726.jpg new file mode 100644 index 0000000..fa42ffc Binary files /dev/null and b/public/images/2020/11/2020111617250726.jpg differ diff --git a/public/images/2020/11/2020111617282542.jpg b/public/images/2020/11/2020111617282542.jpg new file mode 100644 index 0000000..f206991 Binary files /dev/null and b/public/images/2020/11/2020111617282542.jpg differ diff --git a/public/images/2020/11/2020111816301059.jpg b/public/images/2020/11/2020111816301059.jpg new file mode 100644 index 0000000..b00355e Binary files /dev/null and b/public/images/2020/11/2020111816301059.jpg differ diff --git a/public/images/2020/11/2020111816314240.jpg b/public/images/2020/11/2020111816314240.jpg new file mode 100644 index 0000000..7f60bfd Binary files /dev/null and b/public/images/2020/11/2020111816314240.jpg differ diff --git a/public/images/2020/11/2020111917590021.jpg b/public/images/2020/11/2020111917590021.jpg new file mode 100644 index 0000000..c38a1d1 Binary files /dev/null and b/public/images/2020/11/2020111917590021.jpg differ diff --git a/public/images/2020/11/2020111918020680.jpg b/public/images/2020/11/2020111918020680.jpg new file mode 100644 index 0000000..adab524 Binary files /dev/null and b/public/images/2020/11/2020111918020680.jpg differ diff --git a/public/images/2020/11/2020111918021296.jpg b/public/images/2020/11/2020111918021296.jpg new file mode 100644 index 0000000..46fd0ec Binary files /dev/null and b/public/images/2020/11/2020111918021296.jpg differ diff --git a/public/images/2020/11/2020111918234988.jpg b/public/images/2020/11/2020111918234988.jpg new file mode 100644 index 0000000..69757fe Binary files /dev/null and b/public/images/2020/11/2020111918234988.jpg differ diff --git a/public/images/2020/11/2020111918235219.jpg b/public/images/2020/11/2020111918235219.jpg new file mode 100644 index 0000000..3778623 Binary files /dev/null and b/public/images/2020/11/2020111918235219.jpg differ diff --git a/public/images/2020/11/2020111918235837.jpg b/public/images/2020/11/2020111918235837.jpg new file mode 100644 index 0000000..677e268 Binary files /dev/null and b/public/images/2020/11/2020111918235837.jpg differ diff --git a/public/images/2020/11/2020111918513387.jpg b/public/images/2020/11/2020111918513387.jpg new file mode 100644 index 0000000..ed81089 Binary files /dev/null and b/public/images/2020/11/2020111918513387.jpg differ diff --git a/public/images/2020/11/2020111918513562.jpg b/public/images/2020/11/2020111918513562.jpg new file mode 100644 index 0000000..4a5f7ff Binary files /dev/null and b/public/images/2020/11/2020111918513562.jpg differ diff --git a/public/images/2020/11/2020111918513875.jpg b/public/images/2020/11/2020111918513875.jpg new file mode 100644 index 0000000..b756ad2 Binary files /dev/null and b/public/images/2020/11/2020111918513875.jpg differ diff --git a/public/images/2020/11/2020111919141549.jpg b/public/images/2020/11/2020111919141549.jpg new file mode 100644 index 0000000..2afc00e Binary files /dev/null and b/public/images/2020/11/2020111919141549.jpg differ diff --git a/public/images/2020/11/2020111919163265.jpg b/public/images/2020/11/2020111919163265.jpg new file mode 100644 index 0000000..ee9148a Binary files /dev/null and b/public/images/2020/11/2020111919163265.jpg differ diff --git a/public/images/2020/11/2020111919171012.jpg b/public/images/2020/11/2020111919171012.jpg new file mode 100644 index 0000000..9f4ef7f Binary files /dev/null and b/public/images/2020/11/2020111919171012.jpg differ diff --git a/public/images/2020/12/2020121415154130.jpg b/public/images/2020/12/2020121415154130.jpg new file mode 100644 index 0000000..503a0b5 Binary files /dev/null and b/public/images/2020/12/2020121415154130.jpg differ diff --git a/public/images/2020/12/2020121415163788.jpg b/public/images/2020/12/2020121415163788.jpg new file mode 100644 index 0000000..ddc9b94 Binary files /dev/null and b/public/images/2020/12/2020121415163788.jpg differ diff --git a/public/images/2020/12/2020121415193370.jpg b/public/images/2020/12/2020121415193370.jpg new file mode 100644 index 0000000..ddc9b94 Binary files /dev/null and b/public/images/2020/12/2020121415193370.jpg differ diff --git a/public/images/2020/12/2020121415223435.jpg b/public/images/2020/12/2020121415223435.jpg new file mode 100644 index 0000000..a14bf17 Binary files /dev/null and b/public/images/2020/12/2020121415223435.jpg differ diff --git a/public/images/2022/02/2022022821353669.jpg b/public/images/2022/02/2022022821353669.jpg new file mode 100644 index 0000000..728fbf1 Binary files /dev/null and b/public/images/2022/02/2022022821353669.jpg differ diff --git a/public/images/2022/02/2022022821361976.jpg b/public/images/2022/02/2022022821361976.jpg new file mode 100644 index 0000000..b9bdf9a Binary files /dev/null and b/public/images/2022/02/2022022821361976.jpg differ diff --git a/public/images/2022/02/2022022821371261.jpg b/public/images/2022/02/2022022821371261.jpg new file mode 100644 index 0000000..ceca7b5 Binary files /dev/null and b/public/images/2022/02/2022022821371261.jpg differ diff --git a/public/images/2022/02/2022022821542418.jpg b/public/images/2022/02/2022022821542418.jpg new file mode 100644 index 0000000..4e84845 Binary files /dev/null and b/public/images/2022/02/2022022821542418.jpg differ diff --git a/public/images/2022/04/2022041519522100.jpg b/public/images/2022/04/2022041519522100.jpg new file mode 100644 index 0000000..ac3146b Binary files /dev/null and b/public/images/2022/04/2022041519522100.jpg differ diff --git a/public/images/2022/04/2022041519595100.jpg b/public/images/2022/04/2022041519595100.jpg new file mode 100644 index 0000000..fe3e21f Binary files /dev/null and b/public/images/2022/04/2022041519595100.jpg differ diff --git a/public/images/2022/04/2022042003433200.jpg b/public/images/2022/04/2022042003433200.jpg new file mode 100644 index 0000000..105d861 Binary files /dev/null and b/public/images/2022/04/2022042003433200.jpg differ diff --git a/public/images/2023/11/2023112805413770.jpg b/public/images/2023/11/2023112805413770.jpg new file mode 100644 index 0000000..3af37d2 Binary files /dev/null and b/public/images/2023/11/2023112805413770.jpg differ diff --git a/public/images/2023/11/2023112805465597.jpg b/public/images/2023/11/2023112805465597.jpg new file mode 100644 index 0000000..c9bbd1d Binary files /dev/null and b/public/images/2023/11/2023112805465597.jpg differ diff --git a/public/images/2023/11/2023112805523272.jpg b/public/images/2023/11/2023112805523272.jpg new file mode 100644 index 0000000..e03147f Binary files /dev/null and b/public/images/2023/11/2023112805523272.jpg differ diff --git a/public/images/2023/11/2023112806031098.jpg b/public/images/2023/11/2023112806031098.jpg new file mode 100644 index 0000000..fa96bab Binary files /dev/null and b/public/images/2023/11/2023112806031098.jpg differ diff --git a/public/images/2023/11/2023112806104737.jpg b/public/images/2023/11/2023112806104737.jpg new file mode 100644 index 0000000..64ded79 Binary files /dev/null and b/public/images/2023/11/2023112806104737.jpg differ diff --git a/public/images/2023/11/2023112806153845.jpg b/public/images/2023/11/2023112806153845.jpg new file mode 100644 index 0000000..602d0a9 Binary files /dev/null and b/public/images/2023/11/2023112806153845.jpg differ diff --git a/public/images/2023/11/2023112806215481.jpg b/public/images/2023/11/2023112806215481.jpg new file mode 100644 index 0000000..c2d5580 Binary files /dev/null and b/public/images/2023/11/2023112806215481.jpg differ diff --git a/public/images/2023/11/2023112806262013.jpg b/public/images/2023/11/2023112806262013.jpg new file mode 100644 index 0000000..6d634c2 Binary files /dev/null and b/public/images/2023/11/2023112806262013.jpg differ diff --git a/public/images/2023/12/2023120116264095.jpg b/public/images/2023/12/2023120116264095.jpg new file mode 100644 index 0000000..4016043 Binary files /dev/null and b/public/images/2023/12/2023120116264095.jpg differ diff --git a/public/images/2023/12/2023120116301766.jpg b/public/images/2023/12/2023120116301766.jpg new file mode 100644 index 0000000..6251fd6 Binary files /dev/null and b/public/images/2023/12/2023120116301766.jpg differ diff --git a/public/images/2023/12/2023120213055451.jpg b/public/images/2023/12/2023120213055451.jpg new file mode 100644 index 0000000..365c6d1 Binary files /dev/null and b/public/images/2023/12/2023120213055451.jpg differ diff --git a/public/images/2023/12/2023120213252111.jpg b/public/images/2023/12/2023120213252111.jpg new file mode 100644 index 0000000..8582ab9 Binary files /dev/null and b/public/images/2023/12/2023120213252111.jpg differ diff --git a/public/images/2023/12/2023120213392110.jpg b/public/images/2023/12/2023120213392110.jpg new file mode 100644 index 0000000..26d0f5a Binary files /dev/null and b/public/images/2023/12/2023120213392110.jpg differ diff --git a/public/images/2023/12/2023120213404421.jpg b/public/images/2023/12/2023120213404421.jpg new file mode 100644 index 0000000..9ebb93c Binary files /dev/null and b/public/images/2023/12/2023120213404421.jpg differ diff --git a/public/images/2023/12/2023120213463189.png b/public/images/2023/12/2023120213463189.png new file mode 100644 index 0000000..17c307b Binary files /dev/null and b/public/images/2023/12/2023120213463189.png differ diff --git a/public/images/2023/12/2023120214030421.jpg b/public/images/2023/12/2023120214030421.jpg new file mode 100644 index 0000000..6a348ad Binary files /dev/null and b/public/images/2023/12/2023120214030421.jpg differ diff --git a/public/images/2023/12/2023120214134645.png b/public/images/2023/12/2023120214134645.png new file mode 100644 index 0000000..ab816c0 Binary files /dev/null and b/public/images/2023/12/2023120214134645.png differ diff --git a/public/images/2023/12/2023120214181317.jpg b/public/images/2023/12/2023120214181317.jpg new file mode 100644 index 0000000..403977f Binary files /dev/null and b/public/images/2023/12/2023120214181317.jpg differ diff --git a/public/images/2023/12/2023120214201152.jpg b/public/images/2023/12/2023120214201152.jpg new file mode 100644 index 0000000..304b5f9 Binary files /dev/null and b/public/images/2023/12/2023120214201152.jpg differ diff --git a/public/images/2023/12/2023120214235774.jpg b/public/images/2023/12/2023120214235774.jpg new file mode 100644 index 0000000..7642f9e Binary files /dev/null and b/public/images/2023/12/2023120214235774.jpg differ diff --git a/public/images/2023/12/2023120214271365.jpg b/public/images/2023/12/2023120214271365.jpg new file mode 100644 index 0000000..8c1702e Binary files /dev/null and b/public/images/2023/12/2023120214271365.jpg differ diff --git a/public/images/2023/12/2023120214292360.jpg b/public/images/2023/12/2023120214292360.jpg new file mode 100644 index 0000000..f62cd7b Binary files /dev/null and b/public/images/2023/12/2023120214292360.jpg differ diff --git a/public/images/2023/12/2023120215051513.jpg b/public/images/2023/12/2023120215051513.jpg new file mode 100644 index 0000000..30b6f84 Binary files /dev/null and b/public/images/2023/12/2023120215051513.jpg differ diff --git a/public/images/2023/12/2023120215075156.jpg b/public/images/2023/12/2023120215075156.jpg new file mode 100644 index 0000000..0844bf1 Binary files /dev/null and b/public/images/2023/12/2023120215075156.jpg differ diff --git a/public/images/2023/12/2023120215112245.jpg b/public/images/2023/12/2023120215112245.jpg new file mode 100644 index 0000000..cd4aa44 Binary files /dev/null and b/public/images/2023/12/2023120215112245.jpg differ diff --git a/public/images/2023/12/2023120215124283.jpg b/public/images/2023/12/2023120215124283.jpg new file mode 100644 index 0000000..b430684 Binary files /dev/null and b/public/images/2023/12/2023120215124283.jpg differ diff --git a/public/images/2023/12/2023120215143345.jpg b/public/images/2023/12/2023120215143345.jpg new file mode 100644 index 0000000..cc26abb Binary files /dev/null and b/public/images/2023/12/2023120215143345.jpg differ diff --git a/public/images/2023/12/2023120305291357.jpg b/public/images/2023/12/2023120305291357.jpg new file mode 100644 index 0000000..90a40e7 Binary files /dev/null and b/public/images/2023/12/2023120305291357.jpg differ diff --git a/public/images/2023/12/2023120306243223.jpg b/public/images/2023/12/2023120306243223.jpg new file mode 100644 index 0000000..d2ae183 Binary files /dev/null and b/public/images/2023/12/2023120306243223.jpg differ diff --git a/public/images/2023/12/2023120306305570.jpg b/public/images/2023/12/2023120306305570.jpg new file mode 100644 index 0000000..6766cdd Binary files /dev/null and b/public/images/2023/12/2023120306305570.jpg differ diff --git a/public/images/2023/12/2023120306341521.jpg b/public/images/2023/12/2023120306341521.jpg new file mode 100644 index 0000000..5b4aab5 Binary files /dev/null and b/public/images/2023/12/2023120306341521.jpg differ diff --git a/public/images/2023/12/2023120306382895.jpg b/public/images/2023/12/2023120306382895.jpg new file mode 100644 index 0000000..1479b1e Binary files /dev/null and b/public/images/2023/12/2023120306382895.jpg differ diff --git a/public/images/2023/12/2023120306435871.jpg b/public/images/2023/12/2023120306435871.jpg new file mode 100644 index 0000000..971e3d0 Binary files /dev/null and b/public/images/2023/12/2023120306435871.jpg differ diff --git a/public/images/2023/12/2023120306565488.jpg b/public/images/2023/12/2023120306565488.jpg new file mode 100644 index 0000000..c4936e7 Binary files /dev/null and b/public/images/2023/12/2023120306565488.jpg differ diff --git a/public/images/2023/12/2023120307003245.jpg b/public/images/2023/12/2023120307003245.jpg new file mode 100644 index 0000000..fbf41ac Binary files /dev/null and b/public/images/2023/12/2023120307003245.jpg differ diff --git a/public/images/2023/12/2023120310270529.jpg b/public/images/2023/12/2023120310270529.jpg new file mode 100644 index 0000000..15ab601 Binary files /dev/null and b/public/images/2023/12/2023120310270529.jpg differ diff --git a/public/images/2023/12/2023120310325235.jpg b/public/images/2023/12/2023120310325235.jpg new file mode 100644 index 0000000..5036e82 Binary files /dev/null and b/public/images/2023/12/2023120310325235.jpg differ diff --git a/public/images/2023/12/2023120310341644.jpg b/public/images/2023/12/2023120310341644.jpg new file mode 100644 index 0000000..65bee82 Binary files /dev/null and b/public/images/2023/12/2023120310341644.jpg differ diff --git a/public/images/2023/12/2023120901275200.jpg b/public/images/2023/12/2023120901275200.jpg new file mode 100644 index 0000000..f5050a6 Binary files /dev/null and b/public/images/2023/12/2023120901275200.jpg differ diff --git a/public/images/2024/01/2024012605013787.jpg b/public/images/2024/01/2024012605013787.jpg new file mode 100644 index 0000000..8f6d834 Binary files /dev/null and b/public/images/2024/01/2024012605013787.jpg differ diff --git a/public/images/2024/04/2024040719182210.jpg b/public/images/2024/04/2024040719182210.jpg new file mode 100644 index 0000000..1be7416 Binary files /dev/null and b/public/images/2024/04/2024040719182210.jpg differ diff --git a/public/images/2024/04/2024040719182310.jpg b/public/images/2024/04/2024040719182310.jpg new file mode 100644 index 0000000..0b91e3f Binary files /dev/null and b/public/images/2024/04/2024040719182310.jpg differ diff --git a/public/images/2024/04/2024040719182344.jpg b/public/images/2024/04/2024040719182344.jpg new file mode 100644 index 0000000..155df53 Binary files /dev/null and b/public/images/2024/04/2024040719182344.jpg differ diff --git a/public/images/2024/04/2024040719234718.jpg b/public/images/2024/04/2024040719234718.jpg new file mode 100644 index 0000000..8255875 Binary files /dev/null and b/public/images/2024/04/2024040719234718.jpg differ diff --git a/public/images/2024/04/2024040719244778.jpg b/public/images/2024/04/2024040719244778.jpg new file mode 100644 index 0000000..2d8f269 Binary files /dev/null and b/public/images/2024/04/2024040719244778.jpg differ diff --git a/public/images/2024/04/2024040719297778.jpg b/public/images/2024/04/2024040719297778.jpg new file mode 100644 index 0000000..e0bc11f Binary files /dev/null and b/public/images/2024/04/2024040719297778.jpg differ diff --git a/public/images/2024/04/2024041123031132.jpg b/public/images/2024/04/2024041123031132.jpg new file mode 100644 index 0000000..5608da4 Binary files /dev/null and b/public/images/2024/04/2024041123031132.jpg differ diff --git a/public/images/2024/04/2024041123031192.jpg b/public/images/2024/04/2024041123031192.jpg new file mode 100644 index 0000000..68aaae3 Binary files /dev/null and b/public/images/2024/04/2024041123031192.jpg differ diff --git a/public/images/2024/04/2024041123031232.jpg b/public/images/2024/04/2024041123031232.jpg new file mode 100644 index 0000000..5a29615 Binary files /dev/null and b/public/images/2024/04/2024041123031232.jpg differ diff --git a/public/images/2024/04/2024041405050511.jpg b/public/images/2024/04/2024041405050511.jpg new file mode 100644 index 0000000..2f6ff29 Binary files /dev/null and b/public/images/2024/04/2024041405050511.jpg differ diff --git a/public/images/2024/04/2024041510373084.jpg b/public/images/2024/04/2024041510373084.jpg new file mode 100644 index 0000000..5ec2c45 Binary files /dev/null and b/public/images/2024/04/2024041510373084.jpg differ diff --git a/public/images/2024/04/2024041513050511.jpg b/public/images/2024/04/2024041513050511.jpg new file mode 100644 index 0000000..264a0e5 Binary files /dev/null and b/public/images/2024/04/2024041513050511.jpg differ diff --git a/public/images/2024/04/2024041519194400.jpg b/public/images/2024/04/2024041519194400.jpg new file mode 100644 index 0000000..86c497f Binary files /dev/null and b/public/images/2024/04/2024041519194400.jpg differ diff --git a/public/images/2024/04/2024041519203200.jpg b/public/images/2024/04/2024041519203200.jpg new file mode 100644 index 0000000..9d944dc Binary files /dev/null and b/public/images/2024/04/2024041519203200.jpg differ diff --git a/public/images/2024/04/2024041519283300.jpg b/public/images/2024/04/2024041519283300.jpg new file mode 100644 index 0000000..975f1d5 Binary files /dev/null and b/public/images/2024/04/2024041519283300.jpg differ diff --git a/public/images/2024/04/2024041519325100.jpg b/public/images/2024/04/2024041519325100.jpg new file mode 100644 index 0000000..0f1db69 Binary files /dev/null and b/public/images/2024/04/2024041519325100.jpg differ diff --git a/public/images/2024/04/2024041519344400.jpg b/public/images/2024/04/2024041519344400.jpg new file mode 100644 index 0000000..c452256 Binary files /dev/null and b/public/images/2024/04/2024041519344400.jpg differ diff --git a/public/images/2024/04/2024041519362100.jpg b/public/images/2024/04/2024041519362100.jpg new file mode 100644 index 0000000..afb9a18 Binary files /dev/null and b/public/images/2024/04/2024041519362100.jpg differ diff --git a/public/images/2024/04/2024041519424200.jpg b/public/images/2024/04/2024041519424200.jpg new file mode 100644 index 0000000..1d627e7 Binary files /dev/null and b/public/images/2024/04/2024041519424200.jpg differ diff --git a/public/images/2024/04/2024041519434100.jpg b/public/images/2024/04/2024041519434100.jpg new file mode 100644 index 0000000..80e0244 Binary files /dev/null and b/public/images/2024/04/2024041519434100.jpg differ diff --git a/public/images/2024/04/2024041519445600.jpg b/public/images/2024/04/2024041519445600.jpg new file mode 100644 index 0000000..f9cc769 Binary files /dev/null and b/public/images/2024/04/2024041519445600.jpg differ diff --git a/public/images/2024/04/2024041519462300.jpg b/public/images/2024/04/2024041519462300.jpg new file mode 100644 index 0000000..5d92173 Binary files /dev/null and b/public/images/2024/04/2024041519462300.jpg differ diff --git a/public/images/2024/04/2024041519475300.jpg b/public/images/2024/04/2024041519475300.jpg new file mode 100644 index 0000000..8c1c63c Binary files /dev/null and b/public/images/2024/04/2024041519475300.jpg differ diff --git a/public/images/2024/04/2024041520022600.jpg b/public/images/2024/04/2024041520022600.jpg new file mode 100644 index 0000000..f1c8509 Binary files /dev/null and b/public/images/2024/04/2024041520022600.jpg differ diff --git a/public/images/2024/04/2024041520054100.jpg b/public/images/2024/04/2024041520054100.jpg new file mode 100644 index 0000000..5c41fb3 Binary files /dev/null and b/public/images/2024/04/2024041520054100.jpg differ diff --git a/public/images/2024/04/2024041520111500.jpg b/public/images/2024/04/2024041520111500.jpg new file mode 100644 index 0000000..36a5560 Binary files /dev/null and b/public/images/2024/04/2024041520111500.jpg differ diff --git a/public/images/2024/04/2024041520204000.jpg b/public/images/2024/04/2024041520204000.jpg new file mode 100644 index 0000000..c32eedd Binary files /dev/null and b/public/images/2024/04/2024041520204000.jpg differ diff --git a/public/images/2024/04/2024041520232700.jpg b/public/images/2024/04/2024041520232700.jpg new file mode 100644 index 0000000..21f19c0 Binary files /dev/null and b/public/images/2024/04/2024041520232700.jpg differ diff --git a/public/images/2024/04/2024041520255800.jpg b/public/images/2024/04/2024041520255800.jpg new file mode 100644 index 0000000..bfbf72b Binary files /dev/null and b/public/images/2024/04/2024041520255800.jpg differ diff --git a/public/images/2024/04/2024041520433700.jpg b/public/images/2024/04/2024041520433700.jpg new file mode 100644 index 0000000..dd83128 Binary files /dev/null and b/public/images/2024/04/2024041520433700.jpg differ diff --git a/public/images/2024/04/2024041520451500.jpg b/public/images/2024/04/2024041520451500.jpg new file mode 100644 index 0000000..c2821e3 Binary files /dev/null and b/public/images/2024/04/2024041520451500.jpg differ diff --git a/public/images/2024/04/2024041520472600.jpg b/public/images/2024/04/2024041520472600.jpg new file mode 100644 index 0000000..c6d45cb Binary files /dev/null and b/public/images/2024/04/2024041520472600.jpg differ diff --git a/public/images/2024/04/2024041520494100.jpg b/public/images/2024/04/2024041520494100.jpg new file mode 100644 index 0000000..9ce56e9 Binary files /dev/null and b/public/images/2024/04/2024041520494100.jpg differ diff --git a/public/images/2024/04/2024041520520400.jpg b/public/images/2024/04/2024041520520400.jpg new file mode 100644 index 0000000..2c4c368 Binary files /dev/null and b/public/images/2024/04/2024041520520400.jpg differ diff --git a/public/images/2024/04/2024041520534000.jpg b/public/images/2024/04/2024041520534000.jpg new file mode 100644 index 0000000..72d87e2 Binary files /dev/null and b/public/images/2024/04/2024041520534000.jpg differ diff --git a/public/images/2024/04/2024041620281800.jpg b/public/images/2024/04/2024041620281800.jpg new file mode 100644 index 0000000..dc9ba01 Binary files /dev/null and b/public/images/2024/04/2024041620281800.jpg differ diff --git a/public/images/2024/04/2024041620334700.jpg b/public/images/2024/04/2024041620334700.jpg new file mode 100644 index 0000000..79aca22 Binary files /dev/null and b/public/images/2024/04/2024041620334700.jpg differ diff --git a/public/images/2024/04/2024041620352400.jpg b/public/images/2024/04/2024041620352400.jpg new file mode 100644 index 0000000..d2a659d Binary files /dev/null and b/public/images/2024/04/2024041620352400.jpg differ diff --git a/public/images/2024/04/2024041620355700.jpg b/public/images/2024/04/2024041620355700.jpg new file mode 100644 index 0000000..a802710 Binary files /dev/null and b/public/images/2024/04/2024041620355700.jpg differ diff --git a/public/images/2024/04/2024041620364900.jpg b/public/images/2024/04/2024041620364900.jpg new file mode 100644 index 0000000..429ed81 Binary files /dev/null and b/public/images/2024/04/2024041620364900.jpg differ diff --git a/public/images/2024/04/2024041620373800.jpg b/public/images/2024/04/2024041620373800.jpg new file mode 100644 index 0000000..a681fff Binary files /dev/null and b/public/images/2024/04/2024041620373800.jpg differ diff --git a/public/images/2024/04/2024041620384100.jpg b/public/images/2024/04/2024041620384100.jpg new file mode 100644 index 0000000..3fdf278 Binary files /dev/null and b/public/images/2024/04/2024041620384100.jpg differ diff --git a/public/images/2024/04/2024041620404500.jpg b/public/images/2024/04/2024041620404500.jpg new file mode 100644 index 0000000..5167285 Binary files /dev/null and b/public/images/2024/04/2024041620404500.jpg differ diff --git a/public/images/2024/04/2024041620434200.jpg b/public/images/2024/04/2024041620434200.jpg new file mode 100644 index 0000000..a2fd4e1 Binary files /dev/null and b/public/images/2024/04/2024041620434200.jpg differ diff --git a/public/images/2024/04/2024041620445700.jpg b/public/images/2024/04/2024041620445700.jpg new file mode 100644 index 0000000..41da9e4 Binary files /dev/null and b/public/images/2024/04/2024041620445700.jpg differ diff --git a/public/images/2024/04/2024041620473400.jpg b/public/images/2024/04/2024041620473400.jpg new file mode 100644 index 0000000..41c2dc5 Binary files /dev/null and b/public/images/2024/04/2024041620473400.jpg differ diff --git a/public/images/2024/05/2024052911583500.jpg b/public/images/2024/05/2024052911583500.jpg new file mode 100644 index 0000000..f14a908 Binary files /dev/null and b/public/images/2024/05/2024052911583500.jpg differ diff --git a/public/images/2024/05/2024052912154100.jpg b/public/images/2024/05/2024052912154100.jpg new file mode 100644 index 0000000..60a6225 Binary files /dev/null and b/public/images/2024/05/2024052912154100.jpg differ diff --git a/public/images/2024/05/2024052912190600.jpg b/public/images/2024/05/2024052912190600.jpg new file mode 100644 index 0000000..cd5fa04 Binary files /dev/null and b/public/images/2024/05/2024052912190600.jpg differ diff --git a/public/images/2024/06/2024062101010412.jpg b/public/images/2024/06/2024062101010412.jpg new file mode 100644 index 0000000..e60b058 Binary files /dev/null and b/public/images/2024/06/2024062101010412.jpg differ diff --git a/public/images/2024/06/2024063015135000.jpg b/public/images/2024/06/2024063015135000.jpg new file mode 100644 index 0000000..3f6816b Binary files /dev/null and b/public/images/2024/06/2024063015135000.jpg differ diff --git a/public/images/2024/06/2024063015140300.jpg b/public/images/2024/06/2024063015140300.jpg new file mode 100644 index 0000000..03e4ef4 Binary files /dev/null and b/public/images/2024/06/2024063015140300.jpg differ diff --git a/public/images/2024/06/2024063015145800.jpg b/public/images/2024/06/2024063015145800.jpg new file mode 100644 index 0000000..898800d Binary files /dev/null and b/public/images/2024/06/2024063015145800.jpg differ diff --git a/public/images/2024/07/2024070223190300.jpg b/public/images/2024/07/2024070223190300.jpg new file mode 100644 index 0000000..09fca1f Binary files /dev/null and b/public/images/2024/07/2024070223190300.jpg differ diff --git a/public/images/2024/07/2024070223215000.jpg b/public/images/2024/07/2024070223215000.jpg new file mode 100644 index 0000000..e21d42d Binary files /dev/null and b/public/images/2024/07/2024070223215000.jpg differ diff --git a/public/images/2024/07/2024070223233100.jpg b/public/images/2024/07/2024070223233100.jpg new file mode 100644 index 0000000..ce0b2de Binary files /dev/null and b/public/images/2024/07/2024070223233100.jpg differ diff --git a/public/images/2024/07/2024070223262900.jpg b/public/images/2024/07/2024070223262900.jpg new file mode 100644 index 0000000..1f719f9 Binary files /dev/null and b/public/images/2024/07/2024070223262900.jpg differ diff --git a/public/images/2024/07/2024070223283600.jpg b/public/images/2024/07/2024070223283600.jpg new file mode 100644 index 0000000..de47629 Binary files /dev/null and b/public/images/2024/07/2024070223283600.jpg differ diff --git a/public/images/2024/07/2024070223294700.jpg b/public/images/2024/07/2024070223294700.jpg new file mode 100644 index 0000000..8fa7fcb Binary files /dev/null and b/public/images/2024/07/2024070223294700.jpg differ diff --git a/public/images/2024/07/2024070223323000.jpg b/public/images/2024/07/2024070223323000.jpg new file mode 100644 index 0000000..7a5b3e1 Binary files /dev/null and b/public/images/2024/07/2024070223323000.jpg differ diff --git a/public/images/2024/07/2024070223342400.jpg b/public/images/2024/07/2024070223342400.jpg new file mode 100644 index 0000000..f37de82 Binary files /dev/null and b/public/images/2024/07/2024070223342400.jpg differ diff --git a/public/images/2024/07/2024070223362600.jpg b/public/images/2024/07/2024070223362600.jpg new file mode 100644 index 0000000..57a1eb0 Binary files /dev/null and b/public/images/2024/07/2024070223362600.jpg differ diff --git a/public/images/2024/09/2024090415411900.jpg b/public/images/2024/09/2024090415411900.jpg new file mode 100644 index 0000000..74d0776 Binary files /dev/null and b/public/images/2024/09/2024090415411900.jpg differ diff --git a/public/images/2024/09/2024090415531900.jpg b/public/images/2024/09/2024090415531900.jpg new file mode 100644 index 0000000..7671a36 Binary files /dev/null and b/public/images/2024/09/2024090415531900.jpg differ diff --git a/public/images/2024/09/2024090415593600.jpg b/public/images/2024/09/2024090415593600.jpg new file mode 100644 index 0000000..a554516 Binary files /dev/null and b/public/images/2024/09/2024090415593600.jpg differ diff --git a/public/images/2024/09/2024090416032000.jpg b/public/images/2024/09/2024090416032000.jpg new file mode 100644 index 0000000..f3084b5 Binary files /dev/null and b/public/images/2024/09/2024090416032000.jpg differ diff --git a/public/images/2024/10/2024101621015100.jpg b/public/images/2024/10/2024101621015100.jpg new file mode 100644 index 0000000..15fede3 Binary files /dev/null and b/public/images/2024/10/2024101621015100.jpg differ diff --git a/public/images/2024/10/2024101621055400.jpg b/public/images/2024/10/2024101621055400.jpg new file mode 100644 index 0000000..db62f3b Binary files /dev/null and b/public/images/2024/10/2024101621055400.jpg differ diff --git a/public/images/2024/10/2024101621070600.jpg b/public/images/2024/10/2024101621070600.jpg new file mode 100644 index 0000000..87270bb Binary files /dev/null and b/public/images/2024/10/2024101621070600.jpg differ diff --git a/public/images/2024/10/2024101818162700.jpg b/public/images/2024/10/2024101818162700.jpg new file mode 100644 index 0000000..ec362fb Binary files /dev/null and b/public/images/2024/10/2024101818162700.jpg differ diff --git a/public/images/2024/10/2024101818163700.jpg b/public/images/2024/10/2024101818163700.jpg new file mode 100644 index 0000000..b45d321 Binary files /dev/null and b/public/images/2024/10/2024101818163700.jpg differ diff --git a/public/images/2024/10/2024101818164300.jpg b/public/images/2024/10/2024101818164300.jpg new file mode 100644 index 0000000..e895050 Binary files /dev/null and b/public/images/2024/10/2024101818164300.jpg differ diff --git a/public/images/2024/10/2024101818215100.jpg b/public/images/2024/10/2024101818215100.jpg new file mode 100644 index 0000000..1c8a12e Binary files /dev/null and b/public/images/2024/10/2024101818215100.jpg differ diff --git a/public/images/2024/11/2024110618312000.jpg b/public/images/2024/11/2024110618312000.jpg new file mode 100644 index 0000000..8dfe28f Binary files /dev/null and b/public/images/2024/11/2024110618312000.jpg differ diff --git a/public/images/2024/11/2024110618345100.jpg b/public/images/2024/11/2024110618345100.jpg new file mode 100644 index 0000000..542432b Binary files /dev/null and b/public/images/2024/11/2024110618345100.jpg differ diff --git a/public/images/2024/11/2024110618351500.jpg b/public/images/2024/11/2024110618351500.jpg new file mode 100644 index 0000000..aecadb4 Binary files /dev/null and b/public/images/2024/11/2024110618351500.jpg differ diff --git a/public/images/categories/article.jpg b/public/images/categories/article.jpg new file mode 100644 index 0000000..aca9ecf Binary files /dev/null and b/public/images/categories/article.jpg differ diff --git a/public/images/categories/coding.jpg b/public/images/categories/coding.jpg new file mode 100644 index 0000000..4fae5a7 Binary files /dev/null and b/public/images/categories/coding.jpg differ diff --git a/public/images/categories/gossip.jpg b/public/images/categories/gossip.jpg new file mode 100644 index 0000000..bc6fa23 Binary files /dev/null and b/public/images/categories/gossip.jpg differ diff --git a/public/images/categories/novel.jpg b/public/images/categories/novel.jpg new file mode 100644 index 0000000..b0890d0 Binary files /dev/null and b/public/images/categories/novel.jpg differ diff --git a/public/images/categories/think.jpg b/public/images/categories/think.jpg new file mode 100644 index 0000000..a749968 Binary files /dev/null and b/public/images/categories/think.jpg differ diff --git a/public/images/default-avatar.png b/public/images/default-avatar.png new file mode 100644 index 0000000..5e9d814 Binary files /dev/null and b/public/images/default-avatar.png differ diff --git a/public/images/default-cover.jpg b/public/images/default-cover.jpg new file mode 100644 index 0000000..2f8dad4 Binary files /dev/null and b/public/images/default-cover.jpg differ diff --git a/public/images/links/80-go.com.jpg b/public/images/links/80-go.com.jpg new file mode 100644 index 0000000..2b2af37 Binary files /dev/null and b/public/images/links/80-go.com.jpg differ diff --git a/public/images/links/alexinea.com.jpg b/public/images/links/alexinea.com.jpg new file mode 100644 index 0000000..00164ac Binary files /dev/null and b/public/images/links/alexinea.com.jpg differ diff --git a/public/images/links/blog.bxaw.name.jpg b/public/images/links/blog.bxaw.name.jpg new file mode 100644 index 0000000..2be8c4b Binary files /dev/null and b/public/images/links/blog.bxaw.name.jpg differ diff --git a/public/images/links/captainofphb.me.jpg b/public/images/links/captainofphb.me.jpg new file mode 100644 index 0000000..bcab74a Binary files /dev/null and b/public/images/links/captainofphb.me.jpg differ diff --git a/public/images/links/cynosura.one.jpg b/public/images/links/cynosura.one.jpg new file mode 100644 index 0000000..2df7909 Binary files /dev/null and b/public/images/links/cynosura.one.jpg differ diff --git a/public/images/links/eee.me.jpg b/public/images/links/eee.me.jpg new file mode 100644 index 0000000..e1919ca Binary files /dev/null and b/public/images/links/eee.me.jpg differ diff --git a/public/images/links/fmoran.me.jpg b/public/images/links/fmoran.me.jpg new file mode 100644 index 0000000..fdbc62f Binary files /dev/null and b/public/images/links/fmoran.me.jpg differ diff --git a/public/images/links/jiasm.github.io.jpg b/public/images/links/jiasm.github.io.jpg new file mode 100644 index 0000000..5ef3768 Binary files /dev/null and b/public/images/links/jiasm.github.io.jpg differ diff --git a/public/images/links/kn007.net.jpg b/public/images/links/kn007.net.jpg new file mode 100644 index 0000000..864e013 Binary files /dev/null and b/public/images/links/kn007.net.jpg differ diff --git a/public/images/links/lafoyer.com.jpg b/public/images/links/lafoyer.com.jpg new file mode 100644 index 0000000..9df4133 Binary files /dev/null and b/public/images/links/lafoyer.com.jpg differ diff --git a/public/images/links/longluo.me.jpg b/public/images/links/longluo.me.jpg new file mode 100644 index 0000000..e112545 Binary files /dev/null and b/public/images/links/longluo.me.jpg differ diff --git a/public/images/links/luoli.net.jpg b/public/images/links/luoli.net.jpg new file mode 100644 index 0000000..247f01e Binary files /dev/null and b/public/images/links/luoli.net.jpg differ diff --git a/public/images/links/mboker.cn.jpg b/public/images/links/mboker.cn.jpg new file mode 100644 index 0000000..653438e Binary files /dev/null and b/public/images/links/mboker.cn.jpg differ diff --git a/public/images/links/minagi.me.jpg b/public/images/links/minagi.me.jpg new file mode 100644 index 0000000..c324d26 Binary files /dev/null and b/public/images/links/minagi.me.jpg differ diff --git a/public/images/links/pwsz.com.jpg b/public/images/links/pwsz.com.jpg new file mode 100644 index 0000000..1acebbd Binary files /dev/null and b/public/images/links/pwsz.com.jpg differ diff --git a/public/images/links/xinsenz.com.jpg b/public/images/links/xinsenz.com.jpg new file mode 100644 index 0000000..d5b4ac7 Binary files /dev/null and b/public/images/links/xinsenz.com.jpg differ diff --git a/public/images/links/yefengs.com.jpg b/public/images/links/yefengs.com.jpg new file mode 100644 index 0000000..642b482 Binary files /dev/null and b/public/images/links/yefengs.com.jpg differ diff --git a/public/images/links/yyjn.org.jpg b/public/images/links/yyjn.org.jpg new file mode 100644 index 0000000..c49292e Binary files /dev/null and b/public/images/links/yyjn.org.jpg differ diff --git a/public/images/open-graph.png b/public/images/open-graph.png new file mode 100644 index 0000000..1a1ee64 Binary files /dev/null and b/public/images/open-graph.png differ diff --git a/public/images/recaps/algo-minimal-costs/step1.svg b/public/images/recaps/algo-minimal-costs/step1.svg new file mode 100644 index 0000000..f1b49ea --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step1.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step2.svg b/public/images/recaps/algo-minimal-costs/step2.svg new file mode 100644 index 0000000..319f42a --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step2.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step3.svg b/public/images/recaps/algo-minimal-costs/step3.svg new file mode 100644 index 0000000..5af9946 --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step3.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step4.svg b/public/images/recaps/algo-minimal-costs/step4.svg new file mode 100644 index 0000000..661a9ad --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step4.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step5.svg b/public/images/recaps/algo-minimal-costs/step5.svg new file mode 100644 index 0000000..d89cb80 --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step5.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step6.svg b/public/images/recaps/algo-minimal-costs/step6.svg new file mode 100644 index 0000000..7fcfcad --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step6.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step7.svg b/public/images/recaps/algo-minimal-costs/step7.svg new file mode 100644 index 0000000..876bd3a --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step7.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/algo-minimal-costs/step8.svg b/public/images/recaps/algo-minimal-costs/step8.svg new file mode 100644 index 0000000..c71eafa --- /dev/null +++ b/public/images/recaps/algo-minimal-costs/step8.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/recaps/atelier-firis/01.jpg b/public/images/recaps/atelier-firis/01.jpg new file mode 100644 index 0000000..5f2486f Binary files /dev/null and b/public/images/recaps/atelier-firis/01.jpg differ diff --git a/public/images/recaps/atelier-firis/02.jpg b/public/images/recaps/atelier-firis/02.jpg new file mode 100644 index 0000000..e519c49 Binary files /dev/null and b/public/images/recaps/atelier-firis/02.jpg differ diff --git a/public/images/recaps/atelier-firis/03.jpg b/public/images/recaps/atelier-firis/03.jpg new file mode 100644 index 0000000..4c93660 Binary files /dev/null and b/public/images/recaps/atelier-firis/03.jpg differ diff --git a/public/images/recaps/atelier-firis/04.jpg b/public/images/recaps/atelier-firis/04.jpg new file mode 100644 index 0000000..9fc840d Binary files /dev/null and b/public/images/recaps/atelier-firis/04.jpg differ diff --git a/public/images/recaps/atelier-firis/05.jpg b/public/images/recaps/atelier-firis/05.jpg new file mode 100644 index 0000000..5395f1d Binary files /dev/null and b/public/images/recaps/atelier-firis/05.jpg differ diff --git a/public/images/recaps/atelier-firis/06.jpg b/public/images/recaps/atelier-firis/06.jpg new file mode 100644 index 0000000..6a890c7 Binary files /dev/null and b/public/images/recaps/atelier-firis/06.jpg differ diff --git a/public/images/recaps/atelier-firis/07.jpg b/public/images/recaps/atelier-firis/07.jpg new file mode 100644 index 0000000..e3074d9 Binary files /dev/null and b/public/images/recaps/atelier-firis/07.jpg differ diff --git a/public/images/recaps/atelier-firis/08.jpg b/public/images/recaps/atelier-firis/08.jpg new file mode 100644 index 0000000..c67b324 Binary files /dev/null and b/public/images/recaps/atelier-firis/08.jpg differ diff --git a/public/images/recaps/atelier-firis/09.jpg b/public/images/recaps/atelier-firis/09.jpg new file mode 100644 index 0000000..1cd11b7 Binary files /dev/null and b/public/images/recaps/atelier-firis/09.jpg differ diff --git a/public/images/recaps/atelier-firis/10.jpg b/public/images/recaps/atelier-firis/10.jpg new file mode 100644 index 0000000..5ac27af Binary files /dev/null and b/public/images/recaps/atelier-firis/10.jpg differ diff --git a/public/images/recaps/atelier-firis/11.jpg b/public/images/recaps/atelier-firis/11.jpg new file mode 100644 index 0000000..c702729 Binary files /dev/null and b/public/images/recaps/atelier-firis/11.jpg differ diff --git a/public/images/recaps/atelier-firis/12.jpg b/public/images/recaps/atelier-firis/12.jpg new file mode 100644 index 0000000..0dce700 Binary files /dev/null and b/public/images/recaps/atelier-firis/12.jpg differ diff --git a/public/images/recaps/atelier-firis/13.jpg b/public/images/recaps/atelier-firis/13.jpg new file mode 100644 index 0000000..07ce01a Binary files /dev/null and b/public/images/recaps/atelier-firis/13.jpg differ diff --git a/public/images/recaps/atelier-firis/14.jpg b/public/images/recaps/atelier-firis/14.jpg new file mode 100644 index 0000000..6244b9c Binary files /dev/null and b/public/images/recaps/atelier-firis/14.jpg differ diff --git a/public/images/recaps/atelier-firis/15.jpg b/public/images/recaps/atelier-firis/15.jpg new file mode 100644 index 0000000..e4351c6 Binary files /dev/null and b/public/images/recaps/atelier-firis/15.jpg differ diff --git a/public/images/recaps/atelier-firis/16.jpg b/public/images/recaps/atelier-firis/16.jpg new file mode 100644 index 0000000..e799624 Binary files /dev/null and b/public/images/recaps/atelier-firis/16.jpg differ diff --git a/public/images/recaps/atelier-firis/17.jpg b/public/images/recaps/atelier-firis/17.jpg new file mode 100644 index 0000000..a9e0eac Binary files /dev/null and b/public/images/recaps/atelier-firis/17.jpg differ diff --git a/public/images/recaps/atelier-firis/18.jpg b/public/images/recaps/atelier-firis/18.jpg new file mode 100644 index 0000000..c1ea640 Binary files /dev/null and b/public/images/recaps/atelier-firis/18.jpg differ diff --git a/public/images/recaps/atelier-firis/19.jpg b/public/images/recaps/atelier-firis/19.jpg new file mode 100644 index 0000000..9b5b3c6 Binary files /dev/null and b/public/images/recaps/atelier-firis/19.jpg differ diff --git a/public/images/recaps/atelier-firis/20.jpg b/public/images/recaps/atelier-firis/20.jpg new file mode 100644 index 0000000..782979d Binary files /dev/null and b/public/images/recaps/atelier-firis/20.jpg differ diff --git a/public/images/recaps/atelier-firis/21.jpg b/public/images/recaps/atelier-firis/21.jpg new file mode 100644 index 0000000..6d1f0cf Binary files /dev/null and b/public/images/recaps/atelier-firis/21.jpg differ diff --git a/public/images/recaps/atelier-firis/22.jpg b/public/images/recaps/atelier-firis/22.jpg new file mode 100644 index 0000000..dabe3ff Binary files /dev/null and b/public/images/recaps/atelier-firis/22.jpg differ diff --git a/public/images/recaps/atelier-firis/23.jpg b/public/images/recaps/atelier-firis/23.jpg new file mode 100644 index 0000000..8c93d71 Binary files /dev/null and b/public/images/recaps/atelier-firis/23.jpg differ diff --git a/public/images/recaps/atelier-firis/24.jpg b/public/images/recaps/atelier-firis/24.jpg new file mode 100644 index 0000000..746d742 Binary files /dev/null and b/public/images/recaps/atelier-firis/24.jpg differ diff --git a/public/images/recaps/atelier-firis/25.jpg b/public/images/recaps/atelier-firis/25.jpg new file mode 100644 index 0000000..997da6e Binary files /dev/null and b/public/images/recaps/atelier-firis/25.jpg differ diff --git a/public/images/recaps/atelier-firis/26.jpg b/public/images/recaps/atelier-firis/26.jpg new file mode 100644 index 0000000..2e2eadc Binary files /dev/null and b/public/images/recaps/atelier-firis/26.jpg differ diff --git a/public/images/recaps/atelier-firis/27.jpg b/public/images/recaps/atelier-firis/27.jpg new file mode 100644 index 0000000..69739cc Binary files /dev/null and b/public/images/recaps/atelier-firis/27.jpg differ diff --git a/public/images/recaps/atelier-firis/28.jpg b/public/images/recaps/atelier-firis/28.jpg new file mode 100644 index 0000000..507ad0f Binary files /dev/null and b/public/images/recaps/atelier-firis/28.jpg differ diff --git a/public/images/recaps/atelier-firis/29.jpg b/public/images/recaps/atelier-firis/29.jpg new file mode 100644 index 0000000..15b0ff5 Binary files /dev/null and b/public/images/recaps/atelier-firis/29.jpg differ diff --git a/public/images/recaps/atelier-firis/30.jpg b/public/images/recaps/atelier-firis/30.jpg new file mode 100644 index 0000000..bf09667 Binary files /dev/null and b/public/images/recaps/atelier-firis/30.jpg differ diff --git a/public/images/recaps/atelier-firis/31.jpg b/public/images/recaps/atelier-firis/31.jpg new file mode 100644 index 0000000..2d911e9 Binary files /dev/null and b/public/images/recaps/atelier-firis/31.jpg differ diff --git a/public/images/recaps/atelier-firis/32.jpg b/public/images/recaps/atelier-firis/32.jpg new file mode 100644 index 0000000..f2600ac Binary files /dev/null and b/public/images/recaps/atelier-firis/32.jpg differ diff --git a/public/images/recaps/atelier-firis/33.jpg b/public/images/recaps/atelier-firis/33.jpg new file mode 100644 index 0000000..e6da89e Binary files /dev/null and b/public/images/recaps/atelier-firis/33.jpg differ diff --git a/public/images/recaps/atelier-firis/34.jpg b/public/images/recaps/atelier-firis/34.jpg new file mode 100644 index 0000000..67b9496 Binary files /dev/null and b/public/images/recaps/atelier-firis/34.jpg differ diff --git a/public/images/recaps/atelier-firis/35.jpg b/public/images/recaps/atelier-firis/35.jpg new file mode 100644 index 0000000..fd3a939 Binary files /dev/null and b/public/images/recaps/atelier-firis/35.jpg differ diff --git a/public/images/recaps/atelier-firis/36.jpg b/public/images/recaps/atelier-firis/36.jpg new file mode 100644 index 0000000..2bf4b80 Binary files /dev/null and b/public/images/recaps/atelier-firis/36.jpg differ diff --git a/public/images/recaps/atelier-firis/37.jpg b/public/images/recaps/atelier-firis/37.jpg new file mode 100644 index 0000000..5511ad5 Binary files /dev/null and b/public/images/recaps/atelier-firis/37.jpg differ diff --git a/public/images/recaps/atelier-firis/38.jpg b/public/images/recaps/atelier-firis/38.jpg new file mode 100644 index 0000000..720250c Binary files /dev/null and b/public/images/recaps/atelier-firis/38.jpg differ diff --git a/public/images/recaps/atelier-firis/39.jpg b/public/images/recaps/atelier-firis/39.jpg new file mode 100644 index 0000000..27e1b6d Binary files /dev/null and b/public/images/recaps/atelier-firis/39.jpg differ diff --git a/public/images/recaps/atelier-firis/40.jpg b/public/images/recaps/atelier-firis/40.jpg new file mode 100644 index 0000000..97ff04f Binary files /dev/null and b/public/images/recaps/atelier-firis/40.jpg differ diff --git a/public/images/recaps/atelier-firis/41.jpg b/public/images/recaps/atelier-firis/41.jpg new file mode 100644 index 0000000..d8e6514 Binary files /dev/null and b/public/images/recaps/atelier-firis/41.jpg differ diff --git a/public/images/recaps/atelier-firis/42.jpg b/public/images/recaps/atelier-firis/42.jpg new file mode 100644 index 0000000..3fe0372 Binary files /dev/null and b/public/images/recaps/atelier-firis/42.jpg differ diff --git a/public/images/recaps/atelier-firis/43.jpg b/public/images/recaps/atelier-firis/43.jpg new file mode 100644 index 0000000..3cc92b3 Binary files /dev/null and b/public/images/recaps/atelier-firis/43.jpg differ diff --git a/public/images/recaps/atelier-firis/44.jpg b/public/images/recaps/atelier-firis/44.jpg new file mode 100644 index 0000000..463eb71 Binary files /dev/null and b/public/images/recaps/atelier-firis/44.jpg differ diff --git a/public/images/recaps/atelier-firis/45.jpg b/public/images/recaps/atelier-firis/45.jpg new file mode 100644 index 0000000..8ea4794 Binary files /dev/null and b/public/images/recaps/atelier-firis/45.jpg differ diff --git a/public/images/recaps/atelier-firis/46.jpg b/public/images/recaps/atelier-firis/46.jpg new file mode 100644 index 0000000..438f95d Binary files /dev/null and b/public/images/recaps/atelier-firis/46.jpg differ diff --git a/public/images/recaps/atelier-firis/47.jpg b/public/images/recaps/atelier-firis/47.jpg new file mode 100644 index 0000000..09418b3 Binary files /dev/null and b/public/images/recaps/atelier-firis/47.jpg differ diff --git a/public/images/recaps/atelier-firis/48.jpg b/public/images/recaps/atelier-firis/48.jpg new file mode 100644 index 0000000..30e1893 Binary files /dev/null and b/public/images/recaps/atelier-firis/48.jpg differ diff --git a/public/images/recaps/atelier-firis/49.jpg b/public/images/recaps/atelier-firis/49.jpg new file mode 100644 index 0000000..83b8427 Binary files /dev/null and b/public/images/recaps/atelier-firis/49.jpg differ diff --git a/public/images/recaps/atelier-firis/50.jpg b/public/images/recaps/atelier-firis/50.jpg new file mode 100644 index 0000000..3c91926 Binary files /dev/null and b/public/images/recaps/atelier-firis/50.jpg differ diff --git a/public/images/recaps/atelier-firis/51.jpg b/public/images/recaps/atelier-firis/51.jpg new file mode 100644 index 0000000..52cda94 Binary files /dev/null and b/public/images/recaps/atelier-firis/51.jpg differ diff --git a/public/images/recaps/atelier-firis/52.jpg b/public/images/recaps/atelier-firis/52.jpg new file mode 100644 index 0000000..bd7568f Binary files /dev/null and b/public/images/recaps/atelier-firis/52.jpg differ diff --git a/public/images/recaps/atelier-firis/53.jpg b/public/images/recaps/atelier-firis/53.jpg new file mode 100644 index 0000000..47cb1cf Binary files /dev/null and b/public/images/recaps/atelier-firis/53.jpg differ diff --git a/public/images/recaps/atelier-firis/54.jpg b/public/images/recaps/atelier-firis/54.jpg new file mode 100644 index 0000000..9744ff0 Binary files /dev/null and b/public/images/recaps/atelier-firis/54.jpg differ diff --git a/public/images/recaps/atelier-firis/55.jpg b/public/images/recaps/atelier-firis/55.jpg new file mode 100644 index 0000000..46d0738 Binary files /dev/null and b/public/images/recaps/atelier-firis/55.jpg differ diff --git a/public/images/recaps/atelier-firis/56.jpg b/public/images/recaps/atelier-firis/56.jpg new file mode 100644 index 0000000..2fa2ca4 Binary files /dev/null and b/public/images/recaps/atelier-firis/56.jpg differ diff --git a/public/images/recaps/atelier-firis/57.jpg b/public/images/recaps/atelier-firis/57.jpg new file mode 100644 index 0000000..32874b4 Binary files /dev/null and b/public/images/recaps/atelier-firis/57.jpg differ diff --git a/public/images/recaps/atelier-firis/58.jpg b/public/images/recaps/atelier-firis/58.jpg new file mode 100644 index 0000000..551d4d7 Binary files /dev/null and b/public/images/recaps/atelier-firis/58.jpg differ diff --git a/public/images/recaps/atelier-firis/59.jpg b/public/images/recaps/atelier-firis/59.jpg new file mode 100644 index 0000000..797e3ae Binary files /dev/null and b/public/images/recaps/atelier-firis/59.jpg differ diff --git a/public/images/recaps/atelier-firis/60.jpg b/public/images/recaps/atelier-firis/60.jpg new file mode 100644 index 0000000..f389dd4 Binary files /dev/null and b/public/images/recaps/atelier-firis/60.jpg differ diff --git a/public/images/recaps/atelier-firis/61.jpg b/public/images/recaps/atelier-firis/61.jpg new file mode 100644 index 0000000..6b86bb1 Binary files /dev/null and b/public/images/recaps/atelier-firis/61.jpg differ diff --git a/public/images/recaps/atelier-firis/62.jpg b/public/images/recaps/atelier-firis/62.jpg new file mode 100644 index 0000000..fb28691 Binary files /dev/null and b/public/images/recaps/atelier-firis/62.jpg differ diff --git a/public/images/recaps/atelier-firis/63.jpg b/public/images/recaps/atelier-firis/63.jpg new file mode 100644 index 0000000..ad93243 Binary files /dev/null and b/public/images/recaps/atelier-firis/63.jpg differ diff --git a/public/images/recaps/atelier-firis/64.jpg b/public/images/recaps/atelier-firis/64.jpg new file mode 100644 index 0000000..b6fbd6e Binary files /dev/null and b/public/images/recaps/atelier-firis/64.jpg differ diff --git a/public/images/recaps/atelier-firis/65.jpg b/public/images/recaps/atelier-firis/65.jpg new file mode 100644 index 0000000..785e6ac Binary files /dev/null and b/public/images/recaps/atelier-firis/65.jpg differ diff --git a/public/images/recaps/atelier-firis/66.jpg b/public/images/recaps/atelier-firis/66.jpg new file mode 100644 index 0000000..65285e2 Binary files /dev/null and b/public/images/recaps/atelier-firis/66.jpg differ diff --git a/public/images/recaps/atelier-firis/67.jpg b/public/images/recaps/atelier-firis/67.jpg new file mode 100644 index 0000000..d839ea8 Binary files /dev/null and b/public/images/recaps/atelier-firis/67.jpg differ diff --git a/public/images/recaps/atelier-firis/68.jpg b/public/images/recaps/atelier-firis/68.jpg new file mode 100644 index 0000000..a18ac17 Binary files /dev/null and b/public/images/recaps/atelier-firis/68.jpg differ diff --git a/public/images/recaps/atelier-firis/69.jpg b/public/images/recaps/atelier-firis/69.jpg new file mode 100644 index 0000000..f9c6677 Binary files /dev/null and b/public/images/recaps/atelier-firis/69.jpg differ diff --git a/public/images/recaps/atelier-firis/70.jpg b/public/images/recaps/atelier-firis/70.jpg new file mode 100644 index 0000000..ad3cb66 Binary files /dev/null and b/public/images/recaps/atelier-firis/70.jpg differ diff --git a/public/images/recaps/atelier-firis/71.jpg b/public/images/recaps/atelier-firis/71.jpg new file mode 100644 index 0000000..1352f94 Binary files /dev/null and b/public/images/recaps/atelier-firis/71.jpg differ diff --git a/public/images/recaps/atelier-firis/72.jpg b/public/images/recaps/atelier-firis/72.jpg new file mode 100644 index 0000000..59f05cb Binary files /dev/null and b/public/images/recaps/atelier-firis/72.jpg differ diff --git a/public/images/recaps/atelier-firis/73.jpg b/public/images/recaps/atelier-firis/73.jpg new file mode 100644 index 0000000..58180a8 Binary files /dev/null and b/public/images/recaps/atelier-firis/73.jpg differ diff --git a/public/images/recaps/atelier-firis/74.jpg b/public/images/recaps/atelier-firis/74.jpg new file mode 100644 index 0000000..0276713 Binary files /dev/null and b/public/images/recaps/atelier-firis/74.jpg differ diff --git a/public/images/recaps/atelier-firis/75.jpg b/public/images/recaps/atelier-firis/75.jpg new file mode 100644 index 0000000..e218c55 Binary files /dev/null and b/public/images/recaps/atelier-firis/75.jpg differ diff --git a/public/images/recaps/atelier-firis/76.jpg b/public/images/recaps/atelier-firis/76.jpg new file mode 100644 index 0000000..c00ff26 Binary files /dev/null and b/public/images/recaps/atelier-firis/76.jpg differ diff --git a/public/images/recaps/atelier-firis/77.jpg b/public/images/recaps/atelier-firis/77.jpg new file mode 100644 index 0000000..3b212b4 Binary files /dev/null and b/public/images/recaps/atelier-firis/77.jpg differ diff --git a/public/images/recaps/atelier-firis/78.jpg b/public/images/recaps/atelier-firis/78.jpg new file mode 100644 index 0000000..dbbbbdb Binary files /dev/null and b/public/images/recaps/atelier-firis/78.jpg differ diff --git a/public/images/recaps/atelier-firis/79.jpg b/public/images/recaps/atelier-firis/79.jpg new file mode 100644 index 0000000..85d180b Binary files /dev/null and b/public/images/recaps/atelier-firis/79.jpg differ diff --git a/public/images/recaps/atelier-firis/80.jpg b/public/images/recaps/atelier-firis/80.jpg new file mode 100644 index 0000000..420ee1c Binary files /dev/null and b/public/images/recaps/atelier-firis/80.jpg differ diff --git a/public/images/recaps/atelier-firis/81.jpg b/public/images/recaps/atelier-firis/81.jpg new file mode 100644 index 0000000..fe67c58 Binary files /dev/null and b/public/images/recaps/atelier-firis/81.jpg differ diff --git a/public/images/recaps/atelier-firis/82.jpg b/public/images/recaps/atelier-firis/82.jpg new file mode 100644 index 0000000..7c31ac2 Binary files /dev/null and b/public/images/recaps/atelier-firis/82.jpg differ diff --git a/public/images/recaps/atelier-firis/83.jpg b/public/images/recaps/atelier-firis/83.jpg new file mode 100644 index 0000000..6250c59 Binary files /dev/null and b/public/images/recaps/atelier-firis/83.jpg differ diff --git a/public/images/recaps/atelier-firis/84.jpg b/public/images/recaps/atelier-firis/84.jpg new file mode 100644 index 0000000..b3cbc33 Binary files /dev/null and b/public/images/recaps/atelier-firis/84.jpg differ diff --git a/public/images/recaps/atelier-firis/85.jpg b/public/images/recaps/atelier-firis/85.jpg new file mode 100644 index 0000000..9ce63dd Binary files /dev/null and b/public/images/recaps/atelier-firis/85.jpg differ diff --git a/public/images/recaps/atelier-firis/86.jpg b/public/images/recaps/atelier-firis/86.jpg new file mode 100644 index 0000000..1548864 Binary files /dev/null and b/public/images/recaps/atelier-firis/86.jpg differ diff --git a/public/images/recaps/atelier-firis/87.jpg b/public/images/recaps/atelier-firis/87.jpg new file mode 100644 index 0000000..45826a2 Binary files /dev/null and b/public/images/recaps/atelier-firis/87.jpg differ diff --git a/public/images/recaps/atelier-firis/88.jpg b/public/images/recaps/atelier-firis/88.jpg new file mode 100644 index 0000000..c2d6763 Binary files /dev/null and b/public/images/recaps/atelier-firis/88.jpg differ diff --git a/public/images/recaps/atelier-firis/89.jpg b/public/images/recaps/atelier-firis/89.jpg new file mode 100644 index 0000000..9decf1f Binary files /dev/null and b/public/images/recaps/atelier-firis/89.jpg differ diff --git a/public/images/recaps/atelier-firis/90.jpg b/public/images/recaps/atelier-firis/90.jpg new file mode 100644 index 0000000..c01e4df Binary files /dev/null and b/public/images/recaps/atelier-firis/90.jpg differ diff --git a/public/images/recaps/atelier-firis/91.jpg b/public/images/recaps/atelier-firis/91.jpg new file mode 100644 index 0000000..7d0323a Binary files /dev/null and b/public/images/recaps/atelier-firis/91.jpg differ diff --git a/public/images/recaps/atelier-firis/92.jpg b/public/images/recaps/atelier-firis/92.jpg new file mode 100644 index 0000000..020ac62 Binary files /dev/null and b/public/images/recaps/atelier-firis/92.jpg differ diff --git a/public/images/recaps/atelier-firis/93.jpg b/public/images/recaps/atelier-firis/93.jpg new file mode 100644 index 0000000..7f36606 Binary files /dev/null and b/public/images/recaps/atelier-firis/93.jpg differ diff --git a/public/images/recaps/switch-blog-to-nextjs/astro-actions.png b/public/images/recaps/switch-blog-to-nextjs/astro-actions.png new file mode 100644 index 0000000..c3b16df Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/astro-actions.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/astro-uploader.png b/public/images/recaps/switch-blog-to-nextjs/astro-uploader.png new file mode 100644 index 0000000..eb8780b Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/astro-uploader.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/astro.jpg b/public/images/recaps/switch-blog-to-nextjs/astro.jpg new file mode 100644 index 0000000..ebcd37f Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/astro.jpg differ diff --git a/public/images/recaps/switch-blog-to-nextjs/contentlayer.png b/public/images/recaps/switch-blog-to-nextjs/contentlayer.png new file mode 100644 index 0000000..3d830db Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/contentlayer.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/next.js.png b/public/images/recaps/switch-blog-to-nextjs/next.js.png new file mode 100644 index 0000000..bc4296f Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/next.js.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/open-graph.png b/public/images/recaps/switch-blog-to-nextjs/open-graph.png new file mode 100644 index 0000000..5ea45cd Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/open-graph.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/opendal.png b/public/images/recaps/switch-blog-to-nextjs/opendal.png new file mode 100644 index 0000000..609b0e2 Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/opendal.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/replace-artalk.png b/public/images/recaps/switch-blog-to-nextjs/replace-artalk.png new file mode 100644 index 0000000..fdaacf7 Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/replace-artalk.png differ diff --git a/public/images/recaps/switch-blog-to-nextjs/velite.jpg b/public/images/recaps/switch-blog-to-nextjs/velite.jpg new file mode 100644 index 0000000..c307b56 Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/velite.jpg differ diff --git a/public/images/recaps/switch-blog-to-nextjs/zeabur-astro.png b/public/images/recaps/switch-blog-to-nextjs/zeabur-astro.png new file mode 100644 index 0000000..dffb38f Binary files /dev/null and b/public/images/recaps/switch-blog-to-nextjs/zeabur-astro.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-browser.png b/public/images/recaps/the-best-way-to-learn-css/css-best-browser.png new file mode 100644 index 0000000..3177963 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-browser.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-class-selector-markup.png b/public/images/recaps/the-best-way-to-learn-css/css-best-class-selector-markup.png new file mode 100644 index 0000000..5aa2d9d Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-class-selector-markup.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-class-selector.png b/public/images/recaps/the-best-way-to-learn-css/css-best-class-selector.png new file mode 100644 index 0000000..f526581 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-class-selector.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-codeacademy.png b/public/images/recaps/the-best-way-to-learn-css/css-best-codeacademy.png new file mode 100644 index 0000000..6f83bc4 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-codeacademy.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-codepen.png b/public/images/recaps/the-best-way-to-learn-css/css-best-codepen.png new file mode 100644 index 0000000..2e145c9 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-codepen.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-css-book.png b/public/images/recaps/the-best-way-to-learn-css/css-best-css-book.png new file mode 100644 index 0000000..ffd4110 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-css-book.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-font-size.png b/public/images/recaps/the-best-way-to-learn-css/css-best-font-size.png new file mode 100644 index 0000000..efdf09c Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-font-size.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-property-value.png b/public/images/recaps/the-best-way-to-learn-css/css-best-property-value.png new file mode 100644 index 0000000..a8c8bcb Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-property-value.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-rule.png b/public/images/recaps/the-best-way-to-learn-css/css-best-rule.png new file mode 100644 index 0000000..e7bd812 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-rule.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-selector-declaration.png b/public/images/recaps/the-best-way-to-learn-css/css-best-selector-declaration.png new file mode 100644 index 0000000..6b0ce31 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-selector-declaration.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-stormtrooper.png b/public/images/recaps/the-best-way-to-learn-css/css-best-stormtrooper.png new file mode 100644 index 0000000..331e519 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-stormtrooper.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-type-selector.png b/public/images/recaps/the-best-way-to-learn-css/css-best-type-selector.png new file mode 100644 index 0000000..1d1bf40 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-type-selector.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/css-best-zen.png b/public/images/recaps/the-best-way-to-learn-css/css-best-zen.png new file mode 100644 index 0000000..dfac6a4 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/css-best-zen.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/secret.png b/public/images/recaps/the-best-way-to-learn-css/secret.png new file mode 100644 index 0000000..689b1d4 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/secret.png differ diff --git a/public/images/recaps/the-best-way-to-learn-css/tutsplus.png b/public/images/recaps/the-best-way-to-learn-css/tutsplus.png new file mode 100644 index 0000000..b857bc6 Binary files /dev/null and b/public/images/recaps/the-best-way-to-learn-css/tutsplus.png differ diff --git a/public/images/slide/first-three-month-in-oneapm/01.jpg b/public/images/slide/first-three-month-in-oneapm/01.jpg new file mode 100644 index 0000000..198274d Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/01.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/02.jpg b/public/images/slide/first-three-month-in-oneapm/02.jpg new file mode 100644 index 0000000..281cf6f Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/02.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/03.jpg b/public/images/slide/first-three-month-in-oneapm/03.jpg new file mode 100644 index 0000000..e297684 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/03.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/04.jpg b/public/images/slide/first-three-month-in-oneapm/04.jpg new file mode 100644 index 0000000..21f543f Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/04.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/05.jpg b/public/images/slide/first-three-month-in-oneapm/05.jpg new file mode 100644 index 0000000..54672ab Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/05.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/06.jpg b/public/images/slide/first-three-month-in-oneapm/06.jpg new file mode 100644 index 0000000..693bfa1 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/06.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/07.jpg b/public/images/slide/first-three-month-in-oneapm/07.jpg new file mode 100644 index 0000000..363931e Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/07.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/08.jpg b/public/images/slide/first-three-month-in-oneapm/08.jpg new file mode 100644 index 0000000..f4f8d74 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/08.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/09.jpg b/public/images/slide/first-three-month-in-oneapm/09.jpg new file mode 100644 index 0000000..b11c8d4 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/09.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/10.jpg b/public/images/slide/first-three-month-in-oneapm/10.jpg new file mode 100644 index 0000000..cdba4aa Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/10.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/11.jpg b/public/images/slide/first-three-month-in-oneapm/11.jpg new file mode 100644 index 0000000..fbfd262 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/11.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/12.jpg b/public/images/slide/first-three-month-in-oneapm/12.jpg new file mode 100644 index 0000000..bc019d7 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/12.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/13.jpg b/public/images/slide/first-three-month-in-oneapm/13.jpg new file mode 100644 index 0000000..dcd4132 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/13.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/14.jpg b/public/images/slide/first-three-month-in-oneapm/14.jpg new file mode 100644 index 0000000..d2bea29 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/14.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/15.jpg b/public/images/slide/first-three-month-in-oneapm/15.jpg new file mode 100644 index 0000000..41d4cef Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/15.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/16.jpg b/public/images/slide/first-three-month-in-oneapm/16.jpg new file mode 100644 index 0000000..a3b06e0 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/16.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/17.jpg b/public/images/slide/first-three-month-in-oneapm/17.jpg new file mode 100644 index 0000000..9e13a77 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/17.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/18.jpg b/public/images/slide/first-three-month-in-oneapm/18.jpg new file mode 100644 index 0000000..e5a956b Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/18.jpg differ diff --git a/public/images/slide/first-three-month-in-oneapm/19.jpg b/public/images/slide/first-three-month-in-oneapm/19.jpg new file mode 100644 index 0000000..ba1ab14 Binary files /dev/null and b/public/images/slide/first-three-month-in-oneapm/19.jpg differ diff --git a/public/images/slide/spring-boot-intro/01.jpg b/public/images/slide/spring-boot-intro/01.jpg new file mode 100644 index 0000000..c34b292 Binary files /dev/null and b/public/images/slide/spring-boot-intro/01.jpg differ diff --git a/public/images/slide/spring-boot-intro/02.jpg b/public/images/slide/spring-boot-intro/02.jpg new file mode 100644 index 0000000..aa70d84 Binary files /dev/null and b/public/images/slide/spring-boot-intro/02.jpg differ diff --git a/public/images/slide/spring-boot-intro/03.jpg b/public/images/slide/spring-boot-intro/03.jpg new file mode 100644 index 0000000..2911b43 Binary files /dev/null and b/public/images/slide/spring-boot-intro/03.jpg differ diff --git a/public/images/slide/spring-boot-intro/04.jpg b/public/images/slide/spring-boot-intro/04.jpg new file mode 100644 index 0000000..da52579 Binary files /dev/null and b/public/images/slide/spring-boot-intro/04.jpg differ diff --git a/public/images/slide/spring-boot-intro/05.jpg b/public/images/slide/spring-boot-intro/05.jpg new file mode 100644 index 0000000..4ee05f1 Binary files /dev/null and b/public/images/slide/spring-boot-intro/05.jpg differ diff --git a/public/images/slide/spring-boot-intro/06.jpg b/public/images/slide/spring-boot-intro/06.jpg new file mode 100644 index 0000000..792ee06 Binary files /dev/null and b/public/images/slide/spring-boot-intro/06.jpg differ diff --git a/public/images/slide/spring-boot-intro/07.jpg b/public/images/slide/spring-boot-intro/07.jpg new file mode 100644 index 0000000..c713633 Binary files /dev/null and b/public/images/slide/spring-boot-intro/07.jpg differ diff --git a/public/images/slide/spring-boot-intro/08.jpg b/public/images/slide/spring-boot-intro/08.jpg new file mode 100644 index 0000000..7a94cb6 Binary files /dev/null and b/public/images/slide/spring-boot-intro/08.jpg differ diff --git a/public/images/slide/spring-boot-intro/09.jpg b/public/images/slide/spring-boot-intro/09.jpg new file mode 100644 index 0000000..efb8f16 Binary files /dev/null and b/public/images/slide/spring-boot-intro/09.jpg differ diff --git a/public/images/slide/spring-boot-intro/10.jpg b/public/images/slide/spring-boot-intro/10.jpg new file mode 100644 index 0000000..f32eb96 Binary files /dev/null and b/public/images/slide/spring-boot-intro/10.jpg differ diff --git a/public/images/slide/spring-boot-intro/11.jpg b/public/images/slide/spring-boot-intro/11.jpg new file mode 100644 index 0000000..4c8f170 Binary files /dev/null and b/public/images/slide/spring-boot-intro/11.jpg differ diff --git a/public/images/slide/spring-boot-intro/12.jpg b/public/images/slide/spring-boot-intro/12.jpg new file mode 100644 index 0000000..3478bfc Binary files /dev/null and b/public/images/slide/spring-boot-intro/12.jpg differ diff --git a/public/images/slide/spring-boot-intro/13.jpg b/public/images/slide/spring-boot-intro/13.jpg new file mode 100644 index 0000000..3785c55 Binary files /dev/null and b/public/images/slide/spring-boot-intro/13.jpg differ diff --git a/public/images/slide/spring-boot-intro/14.jpg b/public/images/slide/spring-boot-intro/14.jpg new file mode 100644 index 0000000..ff09aa8 Binary files /dev/null and b/public/images/slide/spring-boot-intro/14.jpg differ diff --git a/public/images/slide/spring-boot-intro/15.jpg b/public/images/slide/spring-boot-intro/15.jpg new file mode 100644 index 0000000..a99b18a Binary files /dev/null and b/public/images/slide/spring-boot-intro/15.jpg differ diff --git a/public/images/slide/spring-boot-intro/16.jpg b/public/images/slide/spring-boot-intro/16.jpg new file mode 100644 index 0000000..d7603e8 Binary files /dev/null and b/public/images/slide/spring-boot-intro/16.jpg differ diff --git a/public/images/slide/spring-boot-intro/17.jpg b/public/images/slide/spring-boot-intro/17.jpg new file mode 100644 index 0000000..8b74844 Binary files /dev/null and b/public/images/slide/spring-boot-intro/17.jpg differ diff --git a/public/images/slide/spring-boot-intro/18.jpg b/public/images/slide/spring-boot-intro/18.jpg new file mode 100644 index 0000000..d4bd8df Binary files /dev/null and b/public/images/slide/spring-boot-intro/18.jpg differ diff --git a/public/images/slide/spring-boot-intro/19.jpg b/public/images/slide/spring-boot-intro/19.jpg new file mode 100644 index 0000000..6af3d73 Binary files /dev/null and b/public/images/slide/spring-boot-intro/19.jpg differ diff --git a/public/images/slide/spring-boot-intro/20.jpg b/public/images/slide/spring-boot-intro/20.jpg new file mode 100644 index 0000000..797afba Binary files /dev/null and b/public/images/slide/spring-boot-intro/20.jpg differ diff --git a/public/images/slide/spring-boot-intro/21.jpg b/public/images/slide/spring-boot-intro/21.jpg new file mode 100644 index 0000000..172175a Binary files /dev/null and b/public/images/slide/spring-boot-intro/21.jpg differ diff --git a/public/images/slide/spring-boot-intro/22.jpg b/public/images/slide/spring-boot-intro/22.jpg new file mode 100644 index 0000000..24e675a Binary files /dev/null and b/public/images/slide/spring-boot-intro/22.jpg differ diff --git a/public/images/slide/spring-boot-intro/23.jpg b/public/images/slide/spring-boot-intro/23.jpg new file mode 100644 index 0000000..76d597a Binary files /dev/null and b/public/images/slide/spring-boot-intro/23.jpg differ diff --git a/public/images/slide/spring-boot-intro/24.jpg b/public/images/slide/spring-boot-intro/24.jpg new file mode 100644 index 0000000..093b87b Binary files /dev/null and b/public/images/slide/spring-boot-intro/24.jpg differ diff --git a/public/images/slide/spring-boot-intro/25.jpg b/public/images/slide/spring-boot-intro/25.jpg new file mode 100644 index 0000000..0bbf72e Binary files /dev/null and b/public/images/slide/spring-boot-intro/25.jpg differ diff --git a/public/images/slide/spring-boot-intro/26.jpg b/public/images/slide/spring-boot-intro/26.jpg new file mode 100644 index 0000000..7cd6f82 Binary files /dev/null and b/public/images/slide/spring-boot-intro/26.jpg differ diff --git a/public/images/slide/spring-boot-intro/27.jpg b/public/images/slide/spring-boot-intro/27.jpg new file mode 100644 index 0000000..921ce1b Binary files /dev/null and b/public/images/slide/spring-boot-intro/27.jpg differ diff --git a/public/images/slide/spring-boot-intro/28.jpg b/public/images/slide/spring-boot-intro/28.jpg new file mode 100644 index 0000000..abc1c91 Binary files /dev/null and b/public/images/slide/spring-boot-intro/28.jpg differ diff --git a/public/images/slide/spring-boot-intro/29.jpg b/public/images/slide/spring-boot-intro/29.jpg new file mode 100644 index 0000000..9e26353 Binary files /dev/null and b/public/images/slide/spring-boot-intro/29.jpg differ diff --git a/public/images/slide/spring-boot-intro/30.jpg b/public/images/slide/spring-boot-intro/30.jpg new file mode 100644 index 0000000..e902595 Binary files /dev/null and b/public/images/slide/spring-boot-intro/30.jpg differ diff --git a/public/images/slide/spring-boot-intro/31.jpg b/public/images/slide/spring-boot-intro/31.jpg new file mode 100644 index 0000000..4668e35 Binary files /dev/null and b/public/images/slide/spring-boot-intro/31.jpg differ diff --git a/public/images/slide/spring-boot-intro/32.jpg b/public/images/slide/spring-boot-intro/32.jpg new file mode 100644 index 0000000..0d8ad13 Binary files /dev/null and b/public/images/slide/spring-boot-intro/32.jpg differ diff --git a/public/images/slide/spring-boot-intro/33.jpg b/public/images/slide/spring-boot-intro/33.jpg new file mode 100644 index 0000000..f0007c9 Binary files /dev/null and b/public/images/slide/spring-boot-intro/33.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/01.jpg b/public/images/slide/two-year-in-oneapm/01.jpg new file mode 100644 index 0000000..48202f6 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/01.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/02.jpg b/public/images/slide/two-year-in-oneapm/02.jpg new file mode 100644 index 0000000..78084a0 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/02.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/03.jpg b/public/images/slide/two-year-in-oneapm/03.jpg new file mode 100644 index 0000000..c838e8c Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/03.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/04.jpg b/public/images/slide/two-year-in-oneapm/04.jpg new file mode 100644 index 0000000..5d31a55 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/04.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/05.jpg b/public/images/slide/two-year-in-oneapm/05.jpg new file mode 100644 index 0000000..d6f49e3 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/05.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/06.jpg b/public/images/slide/two-year-in-oneapm/06.jpg new file mode 100644 index 0000000..b0b3969 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/06.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/07.jpg b/public/images/slide/two-year-in-oneapm/07.jpg new file mode 100644 index 0000000..d1208de Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/07.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/08.jpg b/public/images/slide/two-year-in-oneapm/08.jpg new file mode 100644 index 0000000..41ef518 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/08.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/09.jpg b/public/images/slide/two-year-in-oneapm/09.jpg new file mode 100644 index 0000000..99f57d5 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/09.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/10.jpg b/public/images/slide/two-year-in-oneapm/10.jpg new file mode 100644 index 0000000..9019867 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/10.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/11.jpg b/public/images/slide/two-year-in-oneapm/11.jpg new file mode 100644 index 0000000..2da6420 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/11.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/12.jpg b/public/images/slide/two-year-in-oneapm/12.jpg new file mode 100644 index 0000000..3eb1488 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/12.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/13.jpg b/public/images/slide/two-year-in-oneapm/13.jpg new file mode 100644 index 0000000..8f7b043 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/13.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/14.jpg b/public/images/slide/two-year-in-oneapm/14.jpg new file mode 100644 index 0000000..784aed3 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/14.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/15.jpg b/public/images/slide/two-year-in-oneapm/15.jpg new file mode 100644 index 0000000..788d8e3 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/15.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/16.jpg b/public/images/slide/two-year-in-oneapm/16.jpg new file mode 100644 index 0000000..6b8adf4 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/16.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/17.jpg b/public/images/slide/two-year-in-oneapm/17.jpg new file mode 100644 index 0000000..dd4f6a1 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/17.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/18.jpg b/public/images/slide/two-year-in-oneapm/18.jpg new file mode 100644 index 0000000..a7a6ea6 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/18.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/19.jpg b/public/images/slide/two-year-in-oneapm/19.jpg new file mode 100644 index 0000000..5e60ef8 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/19.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/20.jpg b/public/images/slide/two-year-in-oneapm/20.jpg new file mode 100644 index 0000000..47c787f Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/20.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/21.jpg b/public/images/slide/two-year-in-oneapm/21.jpg new file mode 100644 index 0000000..a3340ce Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/21.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/22.jpg b/public/images/slide/two-year-in-oneapm/22.jpg new file mode 100644 index 0000000..c510378 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/22.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/23.jpg b/public/images/slide/two-year-in-oneapm/23.jpg new file mode 100644 index 0000000..9255e92 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/23.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/24.jpg b/public/images/slide/two-year-in-oneapm/24.jpg new file mode 100644 index 0000000..4e81201 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/24.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/25.jpg b/public/images/slide/two-year-in-oneapm/25.jpg new file mode 100644 index 0000000..088a7f4 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/25.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/26.jpg b/public/images/slide/two-year-in-oneapm/26.jpg new file mode 100644 index 0000000..8fb5338 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/26.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/27.jpg b/public/images/slide/two-year-in-oneapm/27.jpg new file mode 100644 index 0000000..c3652bb Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/27.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/28.jpg b/public/images/slide/two-year-in-oneapm/28.jpg new file mode 100644 index 0000000..6c14dd9 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/28.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/29.jpg b/public/images/slide/two-year-in-oneapm/29.jpg new file mode 100644 index 0000000..0d45a15 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/29.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/30.jpg b/public/images/slide/two-year-in-oneapm/30.jpg new file mode 100644 index 0000000..2159686 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/30.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/31.jpg b/public/images/slide/two-year-in-oneapm/31.jpg new file mode 100644 index 0000000..7f0b834 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/31.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/32.jpg b/public/images/slide/two-year-in-oneapm/32.jpg new file mode 100644 index 0000000..44325dc Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/32.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/33.jpg b/public/images/slide/two-year-in-oneapm/33.jpg new file mode 100644 index 0000000..f55ad01 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/33.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/34.jpg b/public/images/slide/two-year-in-oneapm/34.jpg new file mode 100644 index 0000000..ff8caa4 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/34.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/35.jpg b/public/images/slide/two-year-in-oneapm/35.jpg new file mode 100644 index 0000000..88ff566 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/35.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/36.jpg b/public/images/slide/two-year-in-oneapm/36.jpg new file mode 100644 index 0000000..f79b70b Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/36.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/37.jpg b/public/images/slide/two-year-in-oneapm/37.jpg new file mode 100644 index 0000000..26d8245 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/37.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/38.jpg b/public/images/slide/two-year-in-oneapm/38.jpg new file mode 100644 index 0000000..523cc16 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/38.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/39.jpg b/public/images/slide/two-year-in-oneapm/39.jpg new file mode 100644 index 0000000..870cbc6 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/39.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/40.jpg b/public/images/slide/two-year-in-oneapm/40.jpg new file mode 100644 index 0000000..8fe0867 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/40.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/41.jpg b/public/images/slide/two-year-in-oneapm/41.jpg new file mode 100644 index 0000000..7f8ccfb Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/41.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/42.jpg b/public/images/slide/two-year-in-oneapm/42.jpg new file mode 100644 index 0000000..2ce1e08 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/42.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/43.jpg b/public/images/slide/two-year-in-oneapm/43.jpg new file mode 100644 index 0000000..edce57f Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/43.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/44.jpg b/public/images/slide/two-year-in-oneapm/44.jpg new file mode 100644 index 0000000..90d25d2 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/44.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/45.jpg b/public/images/slide/two-year-in-oneapm/45.jpg new file mode 100644 index 0000000..7b81745 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/45.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/46.jpg b/public/images/slide/two-year-in-oneapm/46.jpg new file mode 100644 index 0000000..b6f2d76 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/46.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/47.jpg b/public/images/slide/two-year-in-oneapm/47.jpg new file mode 100644 index 0000000..618b133 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/47.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/48.jpg b/public/images/slide/two-year-in-oneapm/48.jpg new file mode 100644 index 0000000..85c6754 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/48.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/49.jpg b/public/images/slide/two-year-in-oneapm/49.jpg new file mode 100644 index 0000000..2a60b46 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/49.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/50.jpg b/public/images/slide/two-year-in-oneapm/50.jpg new file mode 100644 index 0000000..1fd55dd Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/50.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/51.jpg b/public/images/slide/two-year-in-oneapm/51.jpg new file mode 100644 index 0000000..f21e066 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/51.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/52.jpg b/public/images/slide/two-year-in-oneapm/52.jpg new file mode 100644 index 0000000..4b1c685 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/52.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/53.jpg b/public/images/slide/two-year-in-oneapm/53.jpg new file mode 100644 index 0000000..1630c71 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/53.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/54.jpg b/public/images/slide/two-year-in-oneapm/54.jpg new file mode 100644 index 0000000..65e1538 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/54.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/55.jpg b/public/images/slide/two-year-in-oneapm/55.jpg new file mode 100644 index 0000000..0b86ca3 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/55.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/56.jpg b/public/images/slide/two-year-in-oneapm/56.jpg new file mode 100644 index 0000000..4080d4f Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/56.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/57.jpg b/public/images/slide/two-year-in-oneapm/57.jpg new file mode 100644 index 0000000..fbb8565 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/57.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/58.jpg b/public/images/slide/two-year-in-oneapm/58.jpg new file mode 100644 index 0000000..32db9de Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/58.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/59.jpg b/public/images/slide/two-year-in-oneapm/59.jpg new file mode 100644 index 0000000..94a2d2f Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/59.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/60.jpg b/public/images/slide/two-year-in-oneapm/60.jpg new file mode 100644 index 0000000..468568a Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/60.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/61.jpg b/public/images/slide/two-year-in-oneapm/61.jpg new file mode 100644 index 0000000..80d1d4c Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/61.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/62.jpg b/public/images/slide/two-year-in-oneapm/62.jpg new file mode 100644 index 0000000..fdbdebd Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/62.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/63.jpg b/public/images/slide/two-year-in-oneapm/63.jpg new file mode 100644 index 0000000..112d85e Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/63.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/64.jpg b/public/images/slide/two-year-in-oneapm/64.jpg new file mode 100644 index 0000000..e75509a Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/64.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/65.jpg b/public/images/slide/two-year-in-oneapm/65.jpg new file mode 100644 index 0000000..424e586 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/65.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/66.jpg b/public/images/slide/two-year-in-oneapm/66.jpg new file mode 100644 index 0000000..bd14013 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/66.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/67.jpg b/public/images/slide/two-year-in-oneapm/67.jpg new file mode 100644 index 0000000..eaaf2b0 Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/67.jpg differ diff --git a/public/images/slide/two-year-in-oneapm/68.jpg b/public/images/slide/two-year-in-oneapm/68.jpg new file mode 100644 index 0000000..e5bdaca Binary files /dev/null and b/public/images/slide/two-year-in-oneapm/68.jpg differ diff --git a/public/logo-dark.svg b/public/logo-dark.svg new file mode 100644 index 0000000..a012f2c --- /dev/null +++ b/public/logo-dark.svg @@ -0,0 +1,14 @@ + + + logo dark + + + + + + + + + + + diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..17c0ea2 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,14 @@ + + + logo + + + + + + + + + + + diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest new file mode 100644 index 0000000..d3fc690 --- /dev/null +++ b/public/manifest.webmanifest @@ -0,0 +1,7 @@ +{ + "name": "且听书吟", + "icons": [ + { "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" }, + { "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" } + ] +} diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..ac230b4 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Allow: / +Sitemap: https://yufan.me/sitemap.xml diff --git a/public/safari-pinned-tab.svg b/public/safari-pinned-tab.svg new file mode 100644 index 0000000..b6bf593 --- /dev/null +++ b/public/safari-pinned-tab.svg @@ -0,0 +1,40 @@ + + + + + + diff --git a/src/actions/index.ts b/src/actions/index.ts new file mode 100644 index 0000000..0fef424 --- /dev/null +++ b/src/actions/index.ts @@ -0,0 +1,100 @@ +import Comment from '@/components/comment/Comment.astro'; +import CommentItem from '@/components/comment/CommentItem.astro'; +import { createComment, loadComments } from '@/components/comment/artalk'; +import { partialRender } from '@/helpers/container'; +import { decreaseLikes, increaseLikes, queryLikes, queryUserId } from '@/helpers/db/query'; +import { pages, posts } from '@/helpers/schema'; +import { encodedEmail, urlJoin } from '@/helpers/tools'; +import options from '@/options'; +import { ActionError, defineAction } from 'astro:actions'; +import { z } from 'astro:schema'; + +const keys = [...posts.map((post) => post.permalink), ...pages.map((page) => page.permalink)]; +const CommentConnectError = new ActionError({ + code: 'INTERNAL_SERVER_ERROR', + message: "couldn't connect to comment server", +}); + +export const server = { + like: defineAction({ + accept: 'json', + input: z + .object({ + key: z.custom((val) => keys.includes(val)), + }) + .and( + z + .object({ + action: z.enum(['increase']), + }) + .or( + z.object({ + action: z.enum(['decrease']), + token: z.string().min(1), + }), + ), + ), + handler: async (input) => { + // Increase the like counts. + if (input.action === 'increase') { + return await increaseLikes(input.key); + } + // Decrease the like counts. + await decreaseLikes(input.key, input.token); + return { likes: await queryLikes(input.key) }; + }, + }), + avatar: defineAction({ + accept: 'json', + input: z.object({ email: z.string().email() }), + handler: async ({ email }) => { + const id = await queryUserId(email); + const hash = id === null ? encodedEmail(email) : `${id}`; + return { avatar: urlJoin(import.meta.env.SITE, 'avatar', `${hash}.webp`) }; + }, + }), + comment: defineAction({ + accept: 'json', + input: z.object({ + page_key: z.string(), + name: z.string(), + email: z.string().email(), + link: z.string().optional(), + content: z.string().min(1), + rid: z.number().optional(), + }), + handler: async (request) => { + const resp = await createComment(request); + if ('msg' in resp) { + throw new ActionError({ + code: 'INTERNAL_SERVER_ERROR', + message: resp.msg, + }); + } + + const content = await partialRender(CommentItem, { + props: { depth: resp.rid === 0 ? 1 : 2, comment: resp, pending: resp.is_pending }, + }); + + return { content }; + }, + }), + comments: defineAction({ + accept: 'json', + input: z.object({ + page_key: z.string(), + offset: z.number(), + }), + handler: async ({ page_key, offset }) => { + const comments = await loadComments(page_key, null, Number(offset)); + if (comments === null) { + throw CommentConnectError; + } + + const content = await partialRender(Comment, { props: { comments: comments } }); + const next = options.settings.comments.size + offset < comments.roots_count; + + return { content, next }; + }, + }), +}; diff --git a/src/assets/scripts/sticky-sidebar.js b/src/assets/scripts/sticky-sidebar.js new file mode 100644 index 0000000..fd52244 --- /dev/null +++ b/src/assets/scripts/sticky-sidebar.js @@ -0,0 +1,429 @@ +import resizeSensor from 'resize-sensor'; + +class stickySidebarEventHandler { + constructor() { + this.functionMap = {}; + } + + addEventListener(target, event, func) { + this.functionMap[event] = func; + target.addEventListener(event.split('.')[0], this.functionMap[event]); + } + + removeEventListener(target, event) { + target.removeEventListener(event.split('.')[0], this.functionMap[event]); + delete this.functionMap[event]; + } +} + +const stickySidebarStickySidebar = (target, opts) => { + const defaults = { + containerSelector: '', + additionalMarginTop: 0, + additionalMarginBottom: 0, + updateSidebarHeight: true, + minWidth: 0, + disableOnResponsiveLayouts: true, + sidebarBehavior: 'modern', + defaultPosition: 'relative', + namespace: 'TSS', + }; + + const options = Object.assign(defaults, opts); + + // Validate options + options.additionalMarginTop = Number.parseInt(options.additionalMarginTop) || 0; + options.additionalMarginBottom = Number.parseInt(options.additionalMarginBottom) || 0; + + tryInitOrHookIntoEvents(options, target); + + // Try doing init, otherwise hook into window.resize and document.scroll and try again then. + function tryInitOrHookIntoEvents(options, $that) { + const success = tryInit(options, $that); + + if (!success) { + console.log('TSS: Body width smaller than options.minWidth. Init is delayed.'); + + stickySidebarEventHandler.addEventListener( + document, + `scroll.${options.namespace}`, + ((options, $that) => () => { + const success = tryInit(options, $that); + + if (success) { + stickySidebarEventHandler.removeEventListener(document, `scroll.${options.namespace}`); + } + })(options, $that), + ); + + stickySidebarEventHandler.addEventListener( + window, + `resize.${options.namespace}`, + ((options, $that) => () => { + const success = tryInit(options, $that); + + if (success) { + stickySidebarEventHandler.removeEventListener(window, `resize.${options.namespace}`); + } + })(options, $that), + ); + } + } + + // Try doing init if proper conditions are met. + function tryInit(options, $that) { + if (options.initialized === true) { + return true; + } + + if (document.querySelector('body').getBoundingClientRect().width < options.minWidth) { + return false; + } + + init(options, $that); + + return true; + } + + // Init the sticky sidebar(s). + function init(options, $that) { + options.initialized = true; + + // Add CSS + const existingStylesheet = document.querySelectorAll( + `#stickySidebar-sticky-sidebar-stylesheet-${options.namespace}`, + ); + + if (existingStylesheet.length === 0) { + document + .querySelector('head') + .insertAdjacentHTML( + 'beforeend', + ``, + ); + } + + for (const element of $that) { + const o = {}; + + o.sidebar = element; + + // Save options + o.options = options || {}; + + // Get container + o.container = o.options.containerSelector === '' ? [] : document.querySelectorAll(o.options.containerSelector); + if (o.container.length === 0) { + o.container = o.sidebar.parentNode; + } + + // Create sticky sidebar + let parentNode = o.sidebar.parentNode; + while (parentNode && parentNode !== document) { + parentNode.style.setProperty('-webkit-transform', 'none'); // Fix for WebKit bug - https://code.google.com/p/chromium/issues/detail?id=20574 + parentNode = parentNode.parentNode; + } + + for (const [key, value] of Object.entries({ + position: o.options.defaultPosition, + overflow: 'visible', + // The "box-sizing" must be set to "content-box" because we set a fixed height to this element when the sticky sidebar has a fixed position. + '-webkit-box-sizing': 'border-box', + '-moz-box-sizing': 'border-box', + 'box-sizing': 'border-box', + })) { + o.sidebar.style.setProperty(key, value); + } + + // Get the sticky sidebar element. If none has been found, then create one. + o.stickySidebar = o.sidebar.querySelector('.stickySidebarStickySidebar'); + if (o.stickySidebar === null) { + // Remove + + + + + +
+ +
+
+
    +
  • + +
    客服
    +
    .icon-kefu
    +
  • +
  • + +
    客服
    +
    .icon-kefu1
    +
  • +
  • + +
    caret-up-1
    +
    .icon-caret-up1
    +
  • +
  • + +
    caret-down-1
    +
    .icon-caret-down1
    +
  • +
  • + +
    dot
    +
    .icon-dot
    +
  • +
  • + +
    play
    +
    .icon-play
    +
  • +
  • + +
    资源 2
    +
    .icon-zan
    +
  • +
  • + +
    square
    +
    .icon-ellipsis1
    +
  • +
  • + +
    箭头1
    +
    .icon-jiantou1
    +
  • +
  • + +
    night-circle-fill
    +
    .icon-night-circle-fill
    +
  • +
  • + +
    night
    +
    .icon-night
    +
  • +
  • + +
    share-square
    +
    .icon-share-square
    +
  • +
  • + +
    bxl-linkedin
    +
    .icon-linkedin2
    +
  • +
  • + +
    facebook
    +
    .icon-facebook1
    +
  • +
  • + +
    instagram-fill
    +
    .icon-instagram-fill1
    +
  • +
  • + +
    arrowdown
    +
    .icon-arrowdown
    +
  • +
  • + +
    dribbble-circle-fill
    +
    .icon-dribbble-circle-fill
    +
  • +
  • + +
    upload
    +
    .icon-upload
    +
  • +
  • + +
    google plus-circle-f
    +
    .icon-googleplus-circle-f
    +
  • +
  • + +
    colum-height
    +
    .icon-colum-height
    +
  • +
  • + +
    medium-circle-fill
    +
    .icon-medium-circle-fill
    +
  • +
  • + +
    vertical-align-botto
    +
    .icon-vertical-align-botto
    +
  • +
  • + +
    QQ-circle-fill
    +
    .icon-QQ-circle-fill
    +
  • +
  • + +
    vertical-align-middl
    +
    .icon-vertical-align-middl
    +
  • +
  • + +
    IE-circle-fill
    +
    .icon-IE-circle-fill
    +
  • +
  • + +
    totop
    +
    .icon-totop
    +
  • +
  • + +
    google-circle-fill
    +
    .icon-google-circle-fill
    +
  • +
  • + +
    vertical-align-top
    +
    .icon-vertical-align-top
    +
  • +
  • + +
    dingtalk-circle-fill
    +
    .icon-dingtalk-circle-fill
    +
  • +
  • + +
    download
    +
    .icon-download
    +
  • +
  • + +
    sketch-circle-fill
    +
    .icon-sketch-circle-fill
    +
  • +
  • + +
    sort-descending
    +
    .icon-sort-descending
    +
  • +
  • + +
    slack-circle-fill
    +
    .icon-slack-circle-fill
    +
  • +
  • + +
    sort-ascending
    +
    .icon-sort-ascending
    +
  • +
  • + +
    twitter-circle-fill
    +
    .icon-twitter-circle-fill
    +
  • +
  • + +
    fall
    +
    .icon-fall
    +
  • +
  • + +
    taobao-circle-fill
    +
    .icon-taobao-circle-fill
    +
  • +
  • + +
    swap
    +
    .icon-swap
    +
  • +
  • + +
    weibo-circle-fill
    +
    .icon-weibo-circle-fill
    +
  • +
  • + +
    stock
    +
    .icon-stock
    +
  • +
  • + +
    zhihu-circle-fill
    +
    .icon-zhihu-circle-fill
    +
  • +
  • + +
    rise
    +
    .icon-rise
    +
  • +
  • + +
    reddit-circle-fill
    +
    .icon-reddit-circle-fill
    +
  • +
  • + +
    indent
    +
    .icon-indent
    +
  • +
  • + +
    alipay-square-fill
    +
    .icon-alipay-square-fill
    +
  • +
  • + +
    outdent
    +
    .icon-outdent
    +
  • +
  • + +
    dingtalk-square-fill
    +
    .icon-dingtalk-square-fill
    +
  • +
  • + +
    menu
    +
    .icon-menu
    +
  • +
  • + +
    CodeSandbox-square-f
    +
    .icon-CodeSandbox-square-f
    +
  • +
  • + +
    unordered list
    +
    .icon-unorderedlist
    +
  • +
  • + +
    behance-square-fill
    +
    .icon-behance-square-fill
    +
  • +
  • + +
    ordered list
    +
    .icon-orderedlist
    +
  • +
  • + +
    amazon-square-fill
    +
    .icon-amazon-square-fill
    +
  • +
  • + +
    align-right
    +
    .icon-align-right
    +
  • +
  • + +
    codepen-square-fill
    +
    .icon-codepen-square-fill
    +
  • +
  • + +
    align-center
    +
    .icon-align-center
    +
  • +
  • + +
    dribbble-square-fill
    +
    .icon-dribbble-square-fill
    +
  • +
  • + +
    align-left
    +
    .icon-align-left
    +
  • +
  • + +
    dropbox-square-fill
    +
    .icon-dropbox-square-fill
    +
  • +
  • + +
    pic-right
    +
    .icon-pic-right
    +
  • +
  • + +
    facebook-fill
    +
    .icon-facebook-fill
    +
  • +
  • + +
    pic-left
    +
    .icon-pic-left
    +
  • +
  • + +
    google plus-square-f
    +
    .icon-googleplus-square-f
    +
  • +
  • + +
    bold
    +
    .icon-bold
    +
  • +
  • + +
    google-square-fill
    +
    .icon-google-square-fill
    +
  • +
  • + +
    font-colors
    +
    .icon-font-colors
    +
  • +
  • + +
    instagram-fill
    +
    .icon-instagram-fill
    +
  • +
  • + +
    exclaimination
    +
    .icon-exclaimination
    +
  • +
  • + +
    IE-square-fill
    +
    .icon-IE-square-fill
    +
  • +
  • + +
    font-size
    +
    .icon-font-size
    +
  • +
  • + +
    medium-square-fill
    +
    .icon-medium-square-fill
    +
  • +
  • + +
    check-circle
    +
    .icon-check-circle
    +
  • +
  • + +
    infomation
    +
    .icon-infomation
    +
  • +
  • + +
    linkedin-fill
    +
    .icon-linkedin-fill
    +
  • +
  • + +
    CI
    +
    .icon-CI
    +
  • +
  • + +
    line-height
    +
    .icon-line-height
    +
  • +
  • + +
    QQ-square-fill
    +
    .icon-QQ-square-fill
    +
  • +
  • + +
    Dollar
    +
    .icon-Dollar
    +
  • +
  • + +
    strikethrough
    +
    .icon-strikethrough
    +
  • +
  • + +
    reddit-square-fill
    +
    .icon-reddit-square-fill
    +
  • +
  • + +
    compass
    +
    .icon-compass
    +
  • +
  • + +
    underline
    +
    .icon-underline
    +
  • +
  • + +
    twitter-square-fill
    +
    .icon-twitter-square-fill
    +
  • +
  • + +
    close-circle
    +
    .icon-close-circle
    +
  • +
  • + +
    number
    +
    .icon-number
    +
  • +
  • + +
    sketch-square-fill
    +
    .icon-sketch-square-fill
    +
  • +
  • + +
    frown
    +
    .icon-frown
    +
  • +
  • + +
    italic
    +
    .icon-italic
    +
  • +
  • + +
    slack-square-fill
    +
    .icon-slack-square-fill
    +
  • +
  • + +
    info-circle
    +
    .icon-info-circle
    +
  • +
  • + +
    code
    +
    .icon-code
    +
  • +
  • + +
    taobao-square-fill
    +
    .icon-taobao-square-fill
    +
  • +
  • + +
    left-circle
    +
    .icon-left-circle
    +
  • +
  • + +
    column-width
    +
    .icon-column-width
    +
  • +
  • + +
    weibo-square-fill
    +
    .icon-weibo-square-fill
    +
  • +
  • + +
    down-circle
    +
    .icon-down-circle
    +
  • +
  • + +
    check
    +
    .icon-check
    +
  • +
  • + +
    zhihu-square-fill
    +
    .icon-zhihu-square-fill
    +
  • +
  • + +
    EURO
    +
    .icon-EURO
    +
  • +
  • + +
    ellipsis
    +
    .icon-ellipsis
    +
  • +
  • + +
    zoom out
    +
    .icon-zoomout
    +
  • +
  • + +
    copyright
    +
    .icon-copyright
    +
  • +
  • + +
    dash
    +
    .icon-dash
    +
  • +
  • + +
    apartment
    +
    .icon-apartment
    +
  • +
  • + +
    minus-circle
    +
    .icon-minus-circle
    +
  • +
  • + +
    close
    +
    .icon-close
    +
  • +
  • + +
    audio
    +
    .icon-audio
    +
  • +
  • + +
    meh
    +
    .icon-meh
    +
  • +
  • + +
    enter
    +
    .icon-enter
    +
  • +
  • + +
    audio-fill
    +
    .icon-audio-fill
    +
  • +
  • + +
    plus-circle
    +
    .icon-plus-circle
    +
  • +
  • + +
    line
    +
    .icon-line
    +
  • +
  • + +
    robot
    +
    .icon-robot
    +
  • +
  • + +
    play-circle
    +
    .icon-play-circle
    +
  • +
  • + +
    minus
    +
    .icon-minus
    +
  • +
  • + +
    zoom in
    +
    .icon-zoomin
    +
  • +
  • + +
    question-circle
    +
    .icon-question-circle
    +
  • +
  • + +
    question
    +
    .icon-question
    +
  • +
  • + +
    robot-fill
    +
    .icon-robot-fill
    +
  • +
  • + +
    Pound
    +
    .icon-Pound
    +
  • +
  • + +
    rollback
    +
    .icon-rollback
    +
  • +
  • + +
    bug-fill
    +
    .icon-bug-fill
    +
  • +
  • + +
    right-circle
    +
    .icon-right-circle
    +
  • +
  • + +
    small-dash
    +
    .icon-small-dash
    +
  • +
  • + +
    bug
    +
    .icon-bug
    +
  • +
  • + +
    smile
    +
    .icon-smile
    +
  • +
  • + +
    pause
    +
    .icon-pause
    +
  • +
  • + +
    audio static
    +
    .icon-audiostatic
    +
  • +
  • + +
    trademark
    +
    .icon-trademark
    +
  • +
  • + +
    bg-colors
    +
    .icon-bg-colors
    +
  • +
  • + +
    comment
    +
    .icon-comment
    +
  • +
  • + +
    time-circle
    +
    .icon-time-circle
    +
  • +
  • + +
    crown
    +
    .icon-crown
    +
  • +
  • + +
    signal-fill
    +
    .icon-signal-fill
    +
  • +
  • + +
    time out
    +
    .icon-timeout
    +
  • +
  • + +
    drag
    +
    .icon-drag
    +
  • +
  • + +
    verified
    +
    .icon-verified
    +
  • +
  • + +
    earth
    +
    .icon-earth
    +
  • +
  • + +
    desktop
    +
    .icon-desktop
    +
  • +
  • + +
    shortcut-fill
    +
    .icon-shortcut-fill
    +
  • +
  • + +
    YUAN
    +
    .icon-YUAN
    +
  • +
  • + +
    gift
    +
    .icon-gift
    +
  • +
  • + +
    videocamera add
    +
    .icon-videocameraadd
    +
  • +
  • + +
    up-circle
    +
    .icon-up-circle
    +
  • +
  • + +
    stop
    +
    .icon-stop
    +
  • +
  • + +
    switch user
    +
    .icon-switchuser
    +
  • +
  • + +
    warning-circle
    +
    .icon-warning-circle
    +
  • +
  • + +
    fire
    +
    .icon-fire
    +
  • +
  • + +
    whatsapp
    +
    .icon-whatsapp
    +
  • +
  • + +
    sync
    +
    .icon-sync
    +
  • +
  • + +
    thunderbolt
    +
    .icon-thunderbolt
    +
  • +
  • + +
    appstore add
    +
    .icon-appstoreadd
    +
  • +
  • + +
    transaction
    +
    .icon-transaction
    +
  • +
  • + +
    check-circle-fill
    +
    .icon-check-circle-fill
    +
  • +
  • + +
    caret-down
    +
    .icon-caret-down
    +
  • +
  • + +
    undo
    +
    .icon-undo
    +
  • +
  • + +
    left-circle-fill
    +
    .icon-left-circle-fill
    +
  • +
  • + +
    backward
    +
    .icon-backward
    +
  • +
  • + +
    redo
    +
    .icon-redo
    +
  • +
  • + +
    down-circle-fill
    +
    .icon-down-circle-fill
    +
  • +
  • + +
    caret-up
    +
    .icon-caret-up
    +
  • +
  • + +
    reload
    +
    .icon-reload
    +
  • +
  • + +
    minus-circle-fill
    +
    .icon-minus-circle-fill
    +
  • +
  • + +
    caret-right
    +
    .icon-caret-right
    +
  • +
  • + +
    reload time
    +
    .icon-reloadtime
    +
  • +
  • + +
    close-circle-fill
    +
    .icon-close-circle-fill
    +
  • +
  • + +
    caret-left
    +
    .icon-caret-left
    +
  • +
  • + +
    message
    +
    .icon-message
    +
  • +
  • + +
    info-circle-fill
    +
    .icon-info-circle-fill
    +
  • +
  • + +
    fast-backward
    +
    .icon-fast-backward
    +
  • +
  • + +
    dashboard
    +
    .icon-dashboard
    +
  • +
  • + +
    up-circle-fill
    +
    .icon-up-circle-fill
    +
  • +
  • + +
    forward
    +
    .icon-forward
    +
  • +
  • + +
    issues close
    +
    .icon-issuesclose
    +
  • +
  • + +
    right-circle-fill
    +
    .icon-right-circle-fill
    +
  • +
  • + +
    fast-forward
    +
    .icon-fast-forward
    +
  • +
  • + +
    poweroff
    +
    .icon-poweroff
    +
  • +
  • + +
    plus-circle-fill
    +
    .icon-plus-circle-fill
    +
  • +
  • + +
    search
    +
    .icon-search
    +
  • +
  • + +
    logout
    +
    .icon-logout
    +
  • +
  • + +
    question-circle-fill
    +
    .icon-question-circle-fill
    +
  • +
  • + +
    retweet
    +
    .icon-retweet
    +
  • +
  • + +
    pie chart
    +
    .icon-piechart
    +
  • +
  • + +
    EURO-circle-fill
    +
    .icon-EURO-circle-fill
    +
  • +
  • + +
    login
    +
    .icon-login
    +
  • +
  • + +
    setting
    +
    .icon-setting
    +
  • +
  • + +
    frown-fill
    +
    .icon-frown-fill
    +
  • +
  • + +
    step-backward
    +
    .icon-step-backward
    +
  • +
  • + +
    eye
    +
    .icon-eye
    +
  • +
  • + +
    copyright-circle-fil
    +
    .icon-copyright-circle-fil
    +
  • +
  • + +
    step-forward
    +
    .icon-step-forward
    +
  • +
  • + +
    location
    +
    .icon-location
    +
  • +
  • + +
    CI-circle-fill
    +
    .icon-CI-circle-fill
    +
  • +
  • + +
    swap-right
    +
    .icon-swap-right
    +
  • +
  • + +
    edit-square
    +
    .icon-edit-square
    +
  • +
  • + +
    compass-fill
    +
    .icon-compass-fill
    +
  • +
  • + +
    swap-left
    +
    .icon-swap-left
    +
  • +
  • + +
    export
    +
    .icon-export
    +
  • +
  • + +
    Dollar-circle-fill
    +
    .icon-Dollar-circle-fill
    +
  • +
  • + +
    woman
    +
    .icon-woman
    +
  • +
  • + +
    save
    +
    .icon-save
    +
  • +
  • + +
    poweroff-circle-fill
    +
    .icon-poweroff-circle-fill
    +
  • +
  • + +
    plus
    +
    .icon-plus
    +
  • +
  • + +
    Import
    +
    .icon-Import
    +
  • +
  • + +
    meh-fill
    +
    .icon-meh-fill
    +
  • +
  • + +
    eye close-fill
    +
    .icon-eyeclose-fill
    +
  • +
  • + +
    app store
    +
    .icon-appstore
    +
  • +
  • + +
    play-circle-fill
    +
    .icon-play-circle-fill
    +
  • +
  • + +
    eye-close
    +
    .icon-eye-close
    +
  • +
  • + +
    close-square
    +
    .icon-close-square
    +
  • +
  • + +
    Pound-circle-fill
    +
    .icon-Pound-circle-fill
    +
  • +
  • + +
    clear
    +
    .icon-clear
    +
  • +
  • + +
    down-square
    +
    .icon-down-square
    +
  • +
  • + +
    smile-fill
    +
    .icon-smile-fill
    +
  • +
  • + +
    collapse
    +
    .icon-collapse
    +
  • +
  • + +
    layout
    +
    .icon-layout
    +
  • +
  • + +
    stop-fill
    +
    .icon-stop-fill
    +
  • +
  • + +
    expand
    +
    .icon-expand
    +
  • +
  • + +
    left-square
    +
    .icon-left-square
    +
  • +
  • + +
    warning-circle-fill
    +
    .icon-warning-circle-fill
    +
  • +
  • + +
    delete column
    +
    .icon-deletecolumn
    +
  • +
  • + +
    play-square
    +
    .icon-play-square
    +
  • +
  • + +
    time-circle-fill
    +
    .icon-time-circle-fill
    +
  • +
  • + +
    merge-cells
    +
    .icon-merge-cells
    +
  • +
  • + +
    control
    +
    .icon-control
    +
  • +
  • + +
    trademark-circle-fil
    +
    .icon-trademark-circle-fil
    +
  • +
  • + +
    subnode
    +
    .icon-subnode
    +
  • +
  • + +
    code library
    +
    .icon-codelibrary
    +
  • +
  • + +
    YUAN-circle-fill
    +
    .icon-YUAN-circle-fill
    +
  • +
  • + +
    rotate-left
    +
    .icon-rotate-left
    +
  • +
  • + +
    detail
    +
    .icon-detail
    +
  • +
  • + +
    heart-fill
    +
    .icon-heart-fill
    +
  • +
  • + +
    rotate-right
    +
    .icon-rotate-right
    +
  • +
  • + +
    minus-square
    +
    .icon-minus-square
    +
  • +
  • + +
    pie chart-circle-fil
    +
    .icon-piechart-circle-fil
    +
  • +
  • + +
    insert row below
    +
    .icon-insertrowbelow
    +
  • +
  • + +
    plus-square
    +
    .icon-plus-square
    +
  • +
  • + +
    dashboard-fill
    +
    .icon-dashboard-fill
    +
  • +
  • + +
    insert row above
    +
    .icon-insertrowabove
    +
  • +
  • + +
    right-square
    +
    .icon-right-square
    +
  • +
  • + +
    message-fill
    +
    .icon-message-fill
    +
  • +
  • + +
    table
    +
    .icon-table1
    +
  • +
  • + +
    project
    +
    .icon-project
    +
  • +
  • + +
    check-square-fill
    +
    .icon-check-square-fill
    +
  • +
  • + +
    solit-cells
    +
    .icon-solit-cells
    +
  • +
  • + +
    wallet
    +
    .icon-wallet
    +
  • +
  • + +
    down-square-fill
    +
    .icon-down-square-fill
    +
  • +
  • + +
    format painter
    +
    .icon-formatpainter
    +
  • +
  • + +
    up-square
    +
    .icon-up-square
    +
  • +
  • + +
    minus-square-fill
    +
    .icon-minus-square-fill
    +
  • +
  • + +
    insert row right
    +
    .icon-insertrowright
    +
  • +
  • + +
    calculator
    +
    .icon-calculator
    +
  • +
  • + +
    close-square-fill
    +
    .icon-close-square-fill
    +
  • +
  • + +
    format painter-fill
    +
    .icon-formatpainter-fill
    +
  • +
  • + +
    interation
    +
    .icon-interation
    +
  • +
  • + +
    code library-fill
    +
    .icon-codelibrary-fill
    +
  • +
  • + +
    insert row left
    +
    .icon-insertrowleft
    +
  • +
  • + +
    check-square
    +
    .icon-check-square
    +
  • +
  • + +
    left-square-fill
    +
    .icon-left-square-fill
    +
  • +
  • + +
    translate
    +
    .icon-translate
    +
  • +
  • + +
    border
    +
    .icon-border
    +
  • +
  • + +
    play-square-fill
    +
    .icon-play-square-fill
    +
  • +
  • + +
    delete row
    +
    .icon-deleterow
    +
  • +
  • + +
    border-outer
    +
    .icon-border-outer
    +
  • +
  • + +
    up-square-fill
    +
    .icon-up-square-fill
    +
  • +
  • + +
    sisternode
    +
    .icon-sisternode
    +
  • +
  • + +
    border-top
    +
    .icon-border-top
    +
  • +
  • + +
    right-square-fill
    +
    .icon-right-square-fill
    +
  • +
  • + +
    google-fill
    +
    .icon-google-fill
    +
  • +
  • + +
    border-bottom
    +
    .icon-border-bottom
    +
  • +
  • + +
    plus-square-fill
    +
    .icon-plus-square-fill
    +
  • +
  • + +
    Field-number
    +
    .icon-Field-number
    +
  • +
  • + +
    border-left
    +
    .icon-border-left
    +
  • +
  • + +
    account book-fill
    +
    .icon-accountbook-fill
    +
  • +
  • + +
    Field-String
    +
    .icon-Field-String
    +
  • +
  • + +
    border-right
    +
    .icon-border-right
    +
  • +
  • + +
    carry out-fill
    +
    .icon-carryout-fill
    +
  • +
  • + +
    Function
    +
    .icon-Function
    +
  • +
  • + +
    border-inner
    +
    .icon-border-inner
    +
  • +
  • + +
    calendar-fill
    +
    .icon-calendar-fill
    +
  • +
  • + +
    Field-time
    +
    .icon-Field-time
    +
  • +
  • + +
    border-verticle
    +
    .icon-border-verticle
    +
  • +
  • + +
    calculator-fill
    +
    .icon-calculator-fill
    +
  • +
  • + +
    GIF
    +
    .icon-GIF
    +
  • +
  • + +
    border-horizontal
    +
    .icon-border-horizontal
    +
  • +
  • + +
    interation-fill
    +
    .icon-interation-fill
    +
  • +
  • + +
    Partition
    +
    .icon-Partition
    +
  • +
  • + +
    radius-bottomleft
    +
    .icon-radius-bottomleft
    +
  • +
  • + +
    project-fill
    +
    .icon-project-fill
    +
  • +
  • + +
    index
    +
    .icon-index
    +
  • +
  • + +
    radius-bottomright
    +
    .icon-radius-bottomright
    +
  • +
  • + +
    detail-fill
    +
    .icon-detail-fill
    +
  • +
  • + +
    Stored procedure
    +
    .icon-Storedprocedure
    +
  • +
  • + +
    radius-upleft
    +
    .icon-radius-upleft
    +
  • +
  • + +
    save-fill
    +
    .icon-save-fill
    +
  • +
  • + +
    Field-Binary
    +
    .icon-Field-Binary
    +
  • +
  • + +
    radius-upright
    +
    .icon-radius-upright
    +
  • +
  • + +
    wallet-fill
    +
    .icon-wallet-fill
    +
  • +
  • + +
    Console-SQL
    +
    .icon-Console-SQL
    +
  • +
  • + +
    radius-setting
    +
    .icon-radius-setting
    +
  • +
  • + +
    control-fill
    +
    .icon-control-fill
    +
  • +
  • + +
    1:1
    +
    .icon-icon-test
    +
  • +
  • + +
    add user
    +
    .icon-adduser
    +
  • +
  • + +
    layout-fill
    +
    .icon-layout-fill
    +
  • +
  • + +
    aim
    +
    .icon-aim
    +
  • +
  • + +
    delete team
    +
    .icon-deleteteam
    +
  • +
  • + +
    app store-fill
    +
    .icon-appstore-fill
    +
  • +
  • + +
    compress
    +
    .icon-compress
    +
  • +
  • + +
    delete user
    +
    .icon-deleteuser
    +
  • +
  • + +
    mobile-fill
    +
    .icon-mobile-fill
    +
  • +
  • + +
    expend
    +
    .icon-expend
    +
  • +
  • + +
    addteam
    +
    .icon-addteam
    +
  • +
  • + +
    tablet-fill
    +
    .icon-tablet-fill
    +
  • +
  • + +
    folder-view
    +
    .icon-folder-view
    +
  • +
  • + +
    user
    +
    .icon-user
    +
  • +
  • + +
    book-fill
    +
    .icon-book-fill
    +
  • +
  • + +
    file-GIF
    +
    .icon-file-GIF
    +
  • +
  • + +
    team
    +
    .icon-team
    +
  • +
  • + +
    red envelope-fill
    +
    .icon-redenvelope-fill
    +
  • +
  • + +
    group
    +
    .icon-group
    +
  • +
  • + +
    area chart
    +
    .icon-areachart
    +
  • +
  • + +
    safety certificate-f
    +
    .icon-safetycertificate-f
    +
  • +
  • + +
    send
    +
    .icon-send
    +
  • +
  • + +
    line chart
    +
    .icon-linechart
    +
  • +
  • + +
    property safety-fill
    +
    .icon-propertysafety-fill
    +
  • +
  • + +
    Report
    +
    .icon-Report
    +
  • +
  • + +
    bar chart
    +
    .icon-barchart
    +
  • +
  • + +
    insurance-fill
    +
    .icon-insurance-fill
    +
  • +
  • + +
    View
    +
    .icon-View
    +
  • +
  • + +
    point map
    +
    .icon-pointmap
    +
  • +
  • + +
    security scan-fill
    +
    .icon-securityscan-fill
    +
  • +
  • + +
    shortcut
    +
    .icon-shortcut
    +
  • +
  • + +
    container
    +
    .icon-container
    +
  • +
  • + +
    file-exclamation-fil
    +
    .icon-file-exclamation-fil
    +
  • +
  • + +
    ungroup
    +
    .icon-ungroup
    +
  • +
  • + +
    database
    +
    .icon-database
    +
  • +
  • + +
    file-add-fill
    +
    .icon-file-add-fill
    +
  • +
  • + +
    sever
    +
    .icon-sever
    +
  • +
  • + +
    file-fill
    +
    .icon-file-fill
    +
  • +
  • + +
    mobile
    +
    .icon-mobile
    +
  • +
  • + +
    file-excel-fill
    +
    .icon-file-excel-fill
    +
  • +
  • + +
    tablet
    +
    .icon-tablet
    +
  • +
  • + +
    file-markdown-fill
    +
    .icon-file-markdown-fill
    +
  • +
  • + +
    red envelope
    +
    .icon-redenvelope
    +
  • +
  • + +
    file-text-fill
    +
    .icon-file-text-fill
    +
  • +
  • + +
    book
    +
    .icon-book
    +
  • +
  • + +
    file-ppt-fill
    +
    .icon-file-ppt-fill
    +
  • +
  • + +
    file done
    +
    .icon-filedone
    +
  • +
  • + +
    file-unknown-fill
    +
    .icon-file-unknown-fill
    +
  • +
  • + +
    reconciliation
    +
    .icon-reconciliation
    +
  • +
  • + +
    file-word-fill
    +
    .icon-file-word-fill
    +
  • +
  • + +
    file -exception
    +
    .icon-file-exception
    +
  • +
  • + +
    file-zip-fill
    +
    .icon-file-zip-fill
    +
  • +
  • + +
    file sync
    +
    .icon-filesync
    +
  • +
  • + +
    file-pdf-fill
    +
    .icon-file-pdf-fill
    +
  • +
  • + +
    file search
    +
    .icon-filesearch
    +
  • +
  • + +
    file-image-fill
    +
    .icon-file-image-fill
    +
  • +
  • + +
    solution
    +
    .icon-solution
    +
  • +
  • + +
    diff-fill
    +
    .icon-diff-fill
    +
  • +
  • + +
    file protect
    +
    .icon-fileprotect
    +
  • +
  • + +
    file-copy-fill
    +
    .icon-file-copy-fill
    +
  • +
  • + +
    file-add
    +
    .icon-file-add
    +
  • +
  • + +
    snippets-fill
    +
    .icon-snippets-fill
    +
  • +
  • + +
    file-excel
    +
    .icon-file-excel
    +
  • +
  • + +
    batch folding-fill
    +
    .icon-batchfolding-fill
    +
  • +
  • + +
    file-exclamation
    +
    .icon-file-exclamation
    +
  • +
  • + +
    reconciliation-fill
    +
    .icon-reconciliation-fill
    +
  • +
  • + +
    file-pdf
    +
    .icon-file-pdf
    +
  • +
  • + +
    folder-add-fill
    +
    .icon-folder-add-fill
    +
  • +
  • + +
    file-image
    +
    .icon-file-image
    +
  • +
  • + +
    folder-fill
    +
    .icon-folder-fill
    +
  • +
  • + +
    file-markdown
    +
    .icon-file-markdown
    +
  • +
  • + +
    folder-open-fill
    +
    .icon-folder-open-fill
    +
  • +
  • + +
    file-unknown
    +
    .icon-file-unknown
    +
  • +
  • + +
    database-fill
    +
    .icon-database-fill
    +
  • +
  • + +
    file-ppt
    +
    .icon-file-ppt
    +
  • +
  • + +
    container-fill
    +
    .icon-container-fill
    +
  • +
  • + +
    file-word
    +
    .icon-file-word
    +
  • +
  • + +
    sever-fill
    +
    .icon-sever-fill
    +
  • +
  • + +
    file
    +
    .icon-file
    +
  • +
  • + +
    calendar-check-fill
    +
    .icon-calendar-check-fill
    +
  • +
  • + +
    file-zip
    +
    .icon-file-zip
    +
  • +
  • + +
    image-fill
    +
    .icon-image-fill
    +
  • +
  • + +
    file-text
    +
    .icon-file-text
    +
  • +
  • + +
    id card-fill
    +
    .icon-idcard-fill
    +
  • +
  • + +
    file-copy
    +
    .icon-file-copy
    +
  • +
  • + +
    credit card-fill
    +
    .icon-creditcard-fill
    +
  • +
  • + +
    snippets
    +
    .icon-snippets
    +
  • +
  • + +
    fund-fill
    +
    .icon-fund-fill
    +
  • +
  • + +
    audit
    +
    .icon-audit
    +
  • +
  • + +
    read-fill
    +
    .icon-read-fill
    +
  • +
  • + +
    diff
    +
    .icon-diff
    +
  • +
  • + +
    contacts-fill
    +
    .icon-contacts-fill
    +
  • +
  • + +
    Batch folding
    +
    .icon-Batchfolding
    +
  • +
  • + +
    delete-fill
    +
    .icon-delete-fill
    +
  • +
  • + +
    security scan
    +
    .icon-securityscan
    +
  • +
  • + +
    notification-fill
    +
    .icon-notification-fill
    +
  • +
  • + +
    property safety
    +
    .icon-propertysafety
    +
  • +
  • + +
    flag-fill
    +
    .icon-flag-fill
    +
  • +
  • + +
    safety certificate
    +
    .icon-safetycertificate
    +
  • +
  • + +
    money collect-fill
    +
    .icon-moneycollect-fill
    +
  • +
  • + +
    insurance
    +
    .icon-insurance
    +
  • +
  • + +
    medicine box-fill
    +
    .icon-medicinebox-fill
    +
  • +
  • + +
    alert
    +
    .icon-alert
    +
  • +
  • + +
    rest-fill
    +
    .icon-rest-fill
    +
  • +
  • + +
    delete
    +
    .icon-delete
    +
  • +
  • + +
    shopping-fill
    +
    .icon-shopping-fill
    +
  • +
  • + +
    hourglass
    +
    .icon-hourglass
    +
  • +
  • + +
    skin-fill
    +
    .icon-skin-fill
    +
  • +
  • + +
    bulb
    +
    .icon-bulb
    +
  • +
  • + +
    video-fill
    +
    .icon-video-fill
    +
  • +
  • + +
    experiment
    +
    .icon-experiment
    +
  • +
  • + +
    sound-fill
    +
    .icon-sound-fill
    +
  • +
  • + +
    bell
    +
    .icon-bell
    +
  • +
  • + +
    bulb-fill
    +
    .icon-bulb-fill
    +
  • +
  • + +
    trophy
    +
    .icon-trophy
    +
  • +
  • + +
    bell-fill
    +
    .icon-bell-fill
    +
  • +
  • + +
    rest
    +
    .icon-rest
    +
  • +
  • + +
    filter-fill
    +
    .icon-filter-fill
    +
  • +
  • + +
    USB
    +
    .icon-USB
    +
  • +
  • + +
    fire-fill
    +
    .icon-fire-fill
    +
  • +
  • + +
    skin
    +
    .icon-skin
    +
  • +
  • + +
    funnel plot-fill
    +
    .icon-funnelplot-fill
    +
  • +
  • + +
    home
    +
    .icon-home
    +
  • +
  • + +
    gift-fill
    +
    .icon-gift-fill
    +
  • +
  • + +
    bank
    +
    .icon-bank
    +
  • +
  • + +
    hourglass-fill
    +
    .icon-hourglass-fill
    +
  • +
  • + +
    filter
    +
    .icon-filter
    +
  • +
  • + +
    home-fill
    +
    .icon-home-fill
    +
  • +
  • + +
    funnel plot
    +
    .icon-funnelplot
    +
  • +
  • + +
    trophy-fill
    +
    .icon-trophy-fill
    +
  • +
  • + +
    like
    +
    .icon-like
    +
  • +
  • + +
    location-fill
    +
    .icon-location-fill
    +
  • +
  • + +
    unlike
    +
    .icon-unlike
    +
  • +
  • + +
    cloud-fill
    +
    .icon-cloud-fill
    +
  • +
  • + +
    unlock
    +
    .icon-unlock
    +
  • +
  • + +
    customerservice-fill
    +
    .icon-customerservice-fill
    +
  • +
  • + +
    lock
    +
    .icon-lock
    +
  • +
  • + +
    experiment-fill
    +
    .icon-experiment-fill
    +
  • +
  • + +
    customerservice
    +
    .icon-customerservice
    +
  • +
  • + +
    eye-fill
    +
    .icon-eye-fill
    +
  • +
  • + +
    flag
    +
    .icon-flag
    +
  • +
  • + +
    like-fill
    +
    .icon-like-fill
    +
  • +
  • + +
    money collect
    +
    .icon-moneycollect
    +
  • +
  • + +
    lock-fill
    +
    .icon-lock-fill
    +
  • +
  • + +
    medicinebox
    +
    .icon-medicinebox
    +
  • +
  • + +
    unlike-fill
    +
    .icon-unlike-fill
    +
  • +
  • + +
    shop
    +
    .icon-shop
    +
  • +
  • + +
    star-fill
    +
    .icon-star-fill
    +
  • +
  • + +
    rocket
    +
    .icon-rocket
    +
  • +
  • + +
    unlock-fill
    +
    .icon-unlock-fill
    +
  • +
  • + +
    shopping
    +
    .icon-shopping
    +
  • +
  • + +
    alert-fill
    +
    .icon-alert-fill
    +
  • +
  • + +
    folder
    +
    .icon-folder
    +
  • +
  • + +
    api-fill
    +
    .icon-api-fill
    +
  • +
  • + +
    folder-open
    +
    .icon-folder-open
    +
  • +
  • + +
    highlight-fill
    +
    .icon-highlight-fill
    +
  • +
  • + +
    folder-add
    +
    .icon-folder-add
    +
  • +
  • + +
    phone-fill
    +
    .icon-phone-fill
    +
  • +
  • + +
    deployment unit
    +
    .icon-deploymentunit
    +
  • +
  • + +
    edit-fill
    +
    .icon-edit-fill
    +
  • +
  • + +
    account book
    +
    .icon-accountbook
    +
  • +
  • + +
    pushpin-fill
    +
    .icon-pushpin-fill
    +
  • +
  • + +
    contacts
    +
    .icon-contacts
    +
  • +
  • + +
    rocket-fill
    +
    .icon-rocket-fill
    +
  • +
  • + +
    carry out
    +
    .icon-carryout
    +
  • +
  • + +
    thunderbolt-fill
    +
    .icon-thunderbolt-fill
    +
  • +
  • + +
    calendar-check
    +
    .icon-calendar-check
    +
  • +
  • + +
    tag-fill
    +
    .icon-tag-fill
    +
  • +
  • + +
    calendar
    +
    .icon-calendar
    +
  • +
  • + +
    wrench-fill
    +
    .icon-wrench-fill
    +
  • +
  • + +
    scan
    +
    .icon-scan
    +
  • +
  • + +
    tags-fill
    +
    .icon-tags-fill
    +
  • +
  • + +
    select
    +
    .icon-select
    +
  • +
  • + +
    bank-fill
    +
    .icon-bank-fill
    +
  • +
  • + +
    box plot
    +
    .icon-boxplot
    +
  • +
  • + +
    camera-fill
    +
    .icon-camera-fill
    +
  • +
  • + +
    build
    +
    .icon-build
    +
  • +
  • + +
    error-fill
    +
    .icon-error-fill
    +
  • +
  • + +
    sliders
    +
    .icon-sliders
    +
  • +
  • + +
    crown-fill
    +
    .icon-crown-fill
    +
  • +
  • + +
    laptop
    +
    .icon-laptop
    +
  • +
  • + +
    mail-fill
    +
    .icon-mail-fill
    +
  • +
  • + +
    barcode
    +
    .icon-barcode
    +
  • +
  • + +
    car-fill
    +
    .icon-car-fill
    +
  • +
  • + +
    camera
    +
    .icon-camera
    +
  • +
  • + +
    printer-fill
    +
    .icon-printer-fill
    +
  • +
  • + +
    cluster
    +
    .icon-cluster
    +
  • +
  • + +
    shop-fill
    +
    .icon-shop-fill
    +
  • +
  • + +
    gateway
    +
    .icon-gateway
    +
  • +
  • + +
    setting-fill
    +
    .icon-setting-fill
    +
  • +
  • + +
    car
    +
    .icon-car
    +
  • +
  • + +
    USB-fill
    +
    .icon-USB-fill
    +
  • +
  • + +
    printer
    +
    .icon-printer
    +
  • +
  • + +
    golden-fill
    +
    .icon-golden-fill
    +
  • +
  • + +
    read
    +
    .icon-read
    +
  • +
  • + +
    build-fill
    +
    .icon-build-fill
    +
  • +
  • + +
    cloud-server
    +
    .icon-cloud-server
    +
  • +
  • + +
    box plot-fill
    +
    .icon-boxplot-fill
    +
  • +
  • + +
    cloud-upload
    +
    .icon-cloud-upload
    +
  • +
  • + +
    sliders-fill
    +
    .icon-sliders-fill
    +
  • +
  • + +
    cloud
    +
    .icon-cloud
    +
  • +
  • + +
    alibaba
    +
    .icon-alibaba
    +
  • +
  • + +
    cloud-download
    +
    .icon-cloud-download
    +
  • +
  • + +
    alibabacloud
    +
    .icon-alibabacloud
    +
  • +
  • + +
    cloud-sync
    +
    .icon-cloud-sync
    +
  • +
  • + +
    ant design
    +
    .icon-antdesign
    +
  • +
  • + +
    video
    +
    .icon-video
    +
  • +
  • + +
    ant-cloud
    +
    .icon-ant-cloud
    +
  • +
  • + +
    notification
    +
    .icon-notification
    +
  • +
  • + +
    behance
    +
    .icon-behance
    +
  • +
  • + +
    sound
    +
    .icon-sound
    +
  • +
  • + +
    google plus
    +
    .icon-googleplus
    +
  • +
  • + +
    radar chart
    +
    .icon-radarchart
    +
  • +
  • + +
    medium
    +
    .icon-medium
    +
  • +
  • + +
    qrcode
    +
    .icon-qrcode
    +
  • +
  • + +
    google
    +
    .icon-google
    +
  • +
  • + +
    fund
    +
    .icon-fund
    +
  • +
  • + +
    IE
    +
    .icon-IE
    +
  • +
  • + +
    image
    +
    .icon-image
    +
  • +
  • + +
    amazon
    +
    .icon-amazon
    +
  • +
  • + +
    mail
    +
    .icon-mail
    +
  • +
  • + +
    slack
    +
    .icon-slack
    +
  • +
  • + +
    table
    +
    .icon-table
    +
  • +
  • + +
    alipay
    +
    .icon-alipay
    +
  • +
  • + +
    id card
    +
    .icon-idcard
    +
  • +
  • + +
    taobao
    +
    .icon-taobao
    +
  • +
  • + +
    credit card
    +
    .icon-creditcard
    +
  • +
  • + +
    zhihu
    +
    .icon-zhihu
    +
  • +
  • + +
    heart
    +
    .icon-heart
    +
  • +
  • + +
    HTML5
    +
    .icon-HTML
    +
  • +
  • + +
    block
    +
    .icon-block
    +
  • +
  • + +
    linkedin
    +
    .icon-linkedin
    +
  • +
  • + +
    error
    +
    .icon-error
    +
  • +
  • + +
    yahoo
    +
    .icon-yahoo
    +
  • +
  • + +
    star
    +
    .icon-star
    +
  • +
  • + +
    facebook
    +
    .icon-facebook
    +
  • +
  • + +
    gold
    +
    .icon-gold
    +
  • +
  • + +
    skype
    +
    .icon-skype
    +
  • +
  • + +
    heat map
    +
    .icon-heatmap
    +
  • +
  • + +
    CodeSandbox
    +
    .icon-CodeSandbox
    +
  • +
  • + +
    wifi
    +
    .icon-wifi
    +
  • +
  • + +
    chrome
    +
    .icon-chrome
    +
  • +
  • + +
    attachment
    +
    .icon-attachment
    +
  • +
  • + +
    codepen
    +
    .icon-codepen
    +
  • +
  • + +
    edit
    +
    .icon-edit
    +
  • +
  • + +
    aliwangwang
    +
    .icon-aliwangwang
    +
  • +
  • + +
    key
    +
    .icon-key
    +
  • +
  • + +
    apple
    +
    .icon-apple
    +
  • +
  • + +
    api
    +
    .icon-api
    +
  • +
  • + +
    android
    +
    .icon-android
    +
  • +
  • + +
    disconnect
    +
    .icon-disconnect
    +
  • +
  • + +
    sketch
    +
    .icon-sketch
    +
  • +
  • + +
    highlight
    +
    .icon-highlight
    +
  • +
  • + +
    Gitlab
    +
    .icon-Gitlab
    +
  • +
  • + +
    monitor
    +
    .icon-monitor
    +
  • +
  • + +
    dribbble
    +
    .icon-dribbble
    +
  • +
  • + +
    link
    +
    .icon-link
    +
  • +
  • + +
    instagram
    +
    .icon-instagram
    +
  • +
  • + +
    man
    +
    .icon-man
    +
  • +
  • + +
    reddit
    +
    .icon-reddit
    +
  • +
  • + +
    percentage
    +
    .icon-percentage
    +
  • +
  • + +
    windows
    +
    .icon-windows
    +
  • +
  • + +
    pushpin
    +
    .icon-pushpin
    +
  • +
  • + +
    yuque
    +
    .icon-yuque
    +
  • +
  • + +
    phone
    +
    .icon-phone
    +
  • +
  • + +
    Youtube
    +
    .icon-Youtube
    +
  • +
  • + +
    shake
    +
    .icon-shake
    +
  • +
  • + +
    Gitlab-fill
    +
    .icon-Gitlab-fill
    +
  • +
  • + +
    tag
    +
    .icon-tag
    +
  • +
  • + +
    dropbox
    +
    .icon-dropbox
    +
  • +
  • + +
    wrench
    +
    .icon-wrench
    +
  • +
  • + +
    dingtalk
    +
    .icon-dingtalk
    +
  • +
  • + +
    tags
    +
    .icon-tags
    +
  • +
  • + +
    android-fill
    +
    .icon-android-fill
    +
  • +
  • + +
    scissor
    +
    .icon-scissor
    +
  • +
  • + +
    apple-fill
    +
    .icon-apple-fill
    +
  • +
  • + +
    mr
    +
    .icon-mr
    +
  • +
  • + +
    HTML5-fill
    +
    .icon-HTML-fill
    +
  • +
  • + +
    share
    +
    .icon-share
    +
  • +
  • + +
    windows-fill
    +
    .icon-windows-fill
    +
  • +
  • + +
    branches
    +
    .icon-branches
    +
  • +
  • + +
    QQ
    +
    .icon-QQ
    +
  • +
  • + +
    fork
    +
    .icon-fork
    +
  • +
  • + +
    twitter
    +
    .icon-twitter
    +
  • +
  • + +
    shrink
    +
    .icon-shrink
    +
  • +
  • + +
    skype-fill
    +
    .icon-skype-fill
    +
  • +
  • + +
    arrawsalt
    +
    .icon-arrawsalt
    +
  • +
  • + +
    weibo
    +
    .icon-weibo
    +
  • +
  • + +
    vertical right
    +
    .icon-verticalright
    +
  • +
  • + +
    yuque-fill
    +
    .icon-yuque-fill
    +
  • +
  • + +
    vertical left
    +
    .icon-verticalleft
    +
  • +
  • + +
    Youtube-fill
    +
    .icon-Youtube-fill
    +
  • +
  • + +
    right
    +
    .icon-right
    +
  • +
  • + +
    yahoo-fill
    +
    .icon-yahoo-fill
    +
  • +
  • + +
    left
    +
    .icon-left
    +
  • +
  • + +
    wechat-fill
    +
    .icon-wechat
    +
  • +
  • + +
    up
    +
    .icon-up
    +
  • +
  • + +
    chrome-fill
    +
    .icon-chrome-fill
    +
  • +
  • + +
    down
    +
    .icon-down
    +
  • +
  • + +
    alipay-circle-fill
    +
    .icon-alipay-circle-fill
    +
  • +
  • + +
    fullscreen
    +
    .icon-fullscreen
    +
  • +
  • + +
    aliwangwang-fill
    +
    .icon-aliwangwang-fill
    +
  • +
  • + +
    fullscreen-exit
    +
    .icon-fullscreen-exit
    +
  • +
  • + +
    behance-circle-fill
    +
    .icon-behance-circle-fill
    +
  • +
  • + +
    doubleleft
    +
    .icon-doubleleft
    +
  • +
  • + +
    amazon-circle-fill
    +
    .icon-amazon-circle-fill
    +
  • +
  • + +
    double right
    +
    .icon-doubleright
    +
  • +
  • + +
    codepen-circle-fill
    +
    .icon-codepen-circle-fill
    +
  • +
  • + +
    arrowright
    +
    .icon-arrowright
    +
  • +
  • + +
    CodeSandbox-circle-f
    +
    .icon-CodeSandbox-circle-f
    +
  • +
  • + +
    arrowup
    +
    .icon-arrowup
    +
  • +
  • + +
    dropbox-circle-fill
    +
    .icon-dropbox-circle-fill
    +
  • +
  • + +
    arrowleft
    +
    .icon-arrowleft
    +
  • +
  • + +
    github-fill
    +
    .icon-github-fill
    +
  • +
+
+
+
+ + + diff --git a/src/assets/styles/iconfont/iconfont.ttf b/src/assets/styles/iconfont/iconfont.ttf new file mode 100644 index 0000000..721b31a Binary files /dev/null and b/src/assets/styles/iconfont/iconfont.ttf differ diff --git a/src/assets/styles/iconfont/iconfont.woff b/src/assets/styles/iconfont/iconfont.woff new file mode 100644 index 0000000..df5f049 Binary files /dev/null and b/src/assets/styles/iconfont/iconfont.woff differ diff --git a/src/assets/styles/iconfont/iconfont.woff2 b/src/assets/styles/iconfont/iconfont.woff2 new file mode 100644 index 0000000..5e83db1 Binary files /dev/null and b/src/assets/styles/iconfont/iconfont.woff2 differ diff --git a/src/assets/styles/opposans/opposans.css b/src/assets/styles/opposans/opposans.css new file mode 100644 index 0000000..67a3eb8 --- /dev/null +++ b/src/assets/styles/opposans/opposans.css @@ -0,0 +1,33 @@ +/** + * OPPO Sans Fonts + */ +@font-face { + font-family: 'OPPOSans'; + src: url(opposans.ttf) format('truetype'); + font-style: normal; + font-weight: 300; +} +@font-face { + font-family: 'OPPOSans'; + src: url(opposans.ttf) format('truetype'); + font-style: normal; + font-weight: 400; +} +@font-face { + font-family: 'OPPOSans'; + src: url(opposans.ttf) format('truetype'); + font-style: normal; + font-weight: 500; +} +@font-face { + font-family: 'OPPOSans'; + src: url(opposans.ttf) format('truetype'); + font-style: normal; + font-weight: 600; +} +@font-face { + font-family: 'OPPOSans'; + src: url(opposans.ttf) format('truetype'); + font-style: normal; + font-weight: 700; +} diff --git a/src/assets/styles/opposans/opposans.ttf b/src/assets/styles/opposans/opposans.ttf new file mode 100644 index 0000000..e649ce5 Binary files /dev/null and b/src/assets/styles/opposans/opposans.ttf differ diff --git a/src/assets/styles/reset.css b/src/assets/styles/reset.css new file mode 100644 index 0000000..dccd2be --- /dev/null +++ b/src/assets/styles/reset.css @@ -0,0 +1,1111 @@ +/*-------------------------------------------------------------- + color variables +--------------------------------------------------------------*/ +:root { + --color-primary: #008c95; + --color-dark: #151b2b; + --color-secondary: #404b69; + --color-muted: #8a92a9; + --color-light: #e8e9ea; + --color-danger: #f7094c; + --color-warning: #ff8338; + --color-body: #151924; + --btn-primary: #008c95; + --btn-dark: #151b2b; + --btn-secondary: #20283b; + --btn-danger: #f7094c; + --btn-light: #eceef1; + --btn-success: #41d589; + --bg-primary: #008c95; + --bg-dark: #151b2b; + --bg-secondary: #283149; + --bg-danger: #ff625e; + --bg-warning: #ffe9d5; + --bg-light: #f6f6f7; + --bg-muted: #ededf1; + --bg-white: #fff; + --bg-body: #fbfbfd; + --border-primary: #008c95; + --border-dark: #2b2a2a; + --border-secondary: #283149; + --border-danger: #f7094c; + --border-muted: #d4ddec; + --border-light: #eff3fa; + --border-white: #fff; + --btn-outline-primary: #fff0f0; + --btn-outline-danger: #ffe8e8; + --border-outline-primary: #ffd1d1; + --border-outline-danger: #ffe8e8; + --night-color-primary: #008c95; + --night-color-dark: #d7d7d7; + --night-color-secondary: #8c8c91; + --night-color-muted: #8a8a8a; + --night-color-light: #6a6a6a; + --night-color-danger: #f7094c; + --night-color-body: #e4e4e5; + --night-btn-primary: #008c95; + --night-btn-outline-primary: #ffd1d1; + --night-btn-dark: #1e1e21; + --night-btn-secondary: #252628; + --night-btn-light: #414147; + --night-btn-danger: #f7094c; + --night-btn-success: #41d589; + --night-bg-primary: #008c95; + --night-bg-dark: #141417; + --night-bg-secondary: #2f3035; + --night-bg-light: #232327; + --night-bg-muted: #202023; + --night-bg-body: #19191d; + --night-bg-danger: #f7094c; + --night-bg-warning: #f6d365; + --night-bg-white: #101012; + --night-border-primary: #008c95; + --night-border-outline-primary: #ffd1d1; + --night-border-dark: #141417; + --night-border-secondary: #2f3035; + --night-border-muted: #37373c; + --night-border-light: #3f4041; + --night-border-danger: #f7094c; + --night-border-white: #101012; + --radius-xs: 3px; + --radius-sm: 4px; + --radius-md: 6px; + --radius-lg: 10px; + --shadow-xs: 0 10px 40px 5px rgb(62 61 80 / 2%); + --shadow-sm: 0 5px 30px 5px rgb(62 61 80 / 5%); + --shadow-md: 0 10px 40px 5px rgb(62 61 80 / 6%); + --shadow-lg: 0 10px 40px 5px rgb(62 61 80 / 10%); + --text-dark: #000; +} + +/* -------------------------------------------------------------------------- */ +/* 0. CSS Reset +/* -------------------------------------------------------------------------- */ + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +html, +body { + border: none; + margin: 0; + padding: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +address, +big, +cite, +code, +em, +font, +img, +small, +strike, +sub, +sup, +li, +ol, +ul, +fieldset, +form, +label, +legend, +button, +table, +caption, +tr, +th, +td { + border: none; + font-size: inherit; + line-height: inherit; + text-align: inherit; + margin: 0; + padding: 0; +} + +/* code -------------------------- */ + +code { + font-size: 90%; + color: inherit; + word-wrap: break-word; + word-break: break-all; + background-color: rgb(253, 246, 227); + counter-reset: step; + counter-increment: step 0; +} + +code .line::before { + content: counter(step); + counter-increment: step; + width: 1rem; + margin-right: 1.5rem; + display: inline-block; + text-align: right; + color: rgba(115, 138, 148, 0.4); +} + +pre { + padding: 14px; + margin-bottom: 24px; + display: block; + overflow: auto; + word-wrap: normal; + overflow-wrap: normal; +} + +/* Table -------------------------- */ + +table { + max-width: 100%; + background-color: transparent; +} + +th, +td { + background: transparent; + padding: 6px 12px; + border: 0.0625rem solid var(--border-light); + text-align: initial; +} + +th { + background: rgba(var(--bg-light), 0.05); +} + +table caption { + padding: 0 0 8px 0; + width: auto; +} + +/* -------------------------------------------------------------------------- */ +/* 1. Document Setup +/* -------------------------------------------------------------------------- */ + +body { + font-family: + OPPOSans, + OPPOSans2, + OPlusSans3, + 'PingFang SC', + 'Lantinghei SC', + 'Microsoft YaHei', + 'Source Han Sans CN', + -apple-system, + BlinkMacSystemFont, + 'HanHei SC', + 'Helvetica Neue', + 'Open Sans', + Arial, + 'Hiragino Sans GB', + STHeiti, + 'WenQuanYi Micro Hei', + SimSun, + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji', + 'Segoe UI Symbol'; + font-size: 0.9375rem; + background-color: var(--bg-body); + color: var(--color-body); + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +/* Base Transitions -------------------------- */ + +p { + line-height: inherit; +} + +/*-------------------------------------------------------------- +## Reboot +--------------------------------------------------------------*/ + +a { + color: var(--color-body); + text-decoration: none; + -webkit-transition: all 0.25s; + transition: all 0.25s; +} + +a:hover, +a:active, +a:focus, +a:not([href]), +a:not([href]):hover { + color: inherit; + text-decoration: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +.screen-reader-text, +.sr-only { + display: none; +} + +i { + font-style: normal; +} + +/* -------------------------------------------------------------------------- */ + +/* 2. Element Base +/* ---------------------------------------------*---------------------------- */ + +.h1, +.h2, +.h3, +.h4, +.h5, +.h6, +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: 600; + margin: 0; +} + +/*-------------------------------------------------------------- +/* 3. title Font Size style +--------------------------------------------------------------*/ + +h1, +.h1, +.heading-size-1 { + font-size: 2rem; + line-height: 1.4; +} + +h2, +.h2, +.heading-size-2 { + font-size: 1.5rem; +} + +h3, +.h3, +.heading-size-3 { + font-size: 1.3125rem; +} + +h4, +.h4, +.heading-size-4 { + font-size: 1.25rem; + line-height: 1.4; +} + +h5, +.h5, +.heading-size-5 { + font-size: 1.25rem; + line-height: 1.4; +} + +h6, +.h6, +.heading-size-6 { + line-height: 1.4; +} + +@media (max-width: 767.98px) { + h1, + .h1, + .heading-size-1 { + font-size: 1.5rem; + } + + h2, + .h2, + .heading-size-2 { + font-size: 1.25rem; + } + + h3, + .h3, + .heading-size-3 { + font-size: 1.125rem; + } + + h4, + .h4, + .heading-size-4 { + font-size: 1rem; + } + + h5, + .h5, + .heading-size-5 { + font-size: 0.9375rem; + } + + h6, + .h6, + .heading-size-6 { + font-size: 0.9375rem; + } +} + +@media (min-width: 768px) and (max-width: 991.98px) { + h1, + .h1, + .heading-size-1 { + font-size: 1.625rem; + } + + h2, + .h2, + .heading-size-2 { + font-size: 1.375rem; + } + + h3, + .h3, + .heading-size-3 { + font-size: 1.125rem; + } + + h4, + .h4, + .heading-size-4 { + font-size: 1rem; + line-height: 1.5; + } + + h5, + .h5, + .heading-size-5 { + font-size: 1rem; + } + + h6, + .h6, + .heading-size-6 { + font-size: 1rem; + } +} + +@media (min-width: 992px) and (max-width: 1199.98px) { + h1, + .h1, + .heading-size-1 { + font-size: 1.75rem; + } + + h2, + .h2, + .heading-size-2 { + font-size: 1.5rem; + } + + h3, + .h3, + .heading-size-3 { + font-size: 1.375rem; + } + + h4, + .h4, + .heading-size-4 { + font-size: 1.25rem; + } + + h5, + .h5, + .heading-size-5 { + font-size: 1.125rem; + } + + h6, + .h6, + .heading-size-6 { + font-size: 1rem; + } +} + +@media (min-width: 1200px) and (max-width: 1399.98px) { + h1, + .h1, + .heading-size-1 { + font-size: 1.75rem; + } + + h2, + .h2, + .heading-size-2 { + font-size: 1.5rem; + } + + h3, + .h3, + .heading-size-3 { + font-size: 1.375rem; + } + + h4, + .h4, + .heading-size-4 { + font-size: 1.25rem; + } + + h5, + .h5, + .heading-size-5 { + font-size: 1.125rem; + } + + h6, + .h6, + .heading-size-6 { + font-size: 1rem; + } +} + +.h4 .small, +.h4 small, +.h5 .small, +.h5 small, +.h6 .small, +.h6 small, +h4 .small, +h4 small, +h5 .small, +h5 small, +h6 .small, +h6 small { + font-size: 85%; +} + +/* Inputs ------------------------------------ */ + +input, +textarea { + border-color: var(--border-light); + color: var(--text-dark); +} + +code, +input[type='url'], +input[type='email'], +input[type='tel'] { + /*rtl:ignore*/ + direction: ltr; +} + +input[type='text'], +input[type='password'], +input[type='email'], +input[type='url'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-box-shadow: none; + box-shadow: none; + outline: 0; +} + +input[type='date'], +input[type='month'], +input[type='time'], +input[type='datetime'], +input[type='datetime-local'], +input[type='week'], +input[type='number'], +input[type='search'], +input[type='tel'], +input[type='color'], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +input[type='number']::-webkit-outer-spin-button, +input[type='number']::-webkit-inner-spin-button { + -webkit-appearance: none; +} + +textarea { + line-height: 1.5; + width: 100%; +} + +input::-webkit-input-placeholder { + line-height: normal; +} + +input:-ms-input-placeholder { + line-height: normal; +} + +input::-moz-placeholder { + line-height: revert; + /* Reset to the value from the user-agent stylesheets. */ +} + +input[type='search']::-webkit-search-decoration, +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-results-button, +input[type='search']::-webkit-search-results-decoration { + display: none; +} + +button, +button:focus, +button:hover, +.button:focus, +.button:hover { + -webkit-appearance: none; + appearance: none; + outline: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} + +input[type='button'], +input[type='reset'], +input[type='submit'] { + -webkit-transition: all 0.15s linear; + transition: all 0.15s linear; +} + +button:focus, +button:hover, +.button:focus, +.button:hover, +input[type='button']:focus, +input[type='button']:hover, +input[type='reset']:focus, +input[type='reset']:hover, +input[type='submit']:focus, +input[type='submit']:hover { + text-decoration: none; +} + +input[type='text']:focus, +input[type='email']:focus, +input[type='url']:focus, +input[type='password']:focus, +input[type='number']:focus, +input[type='tel']:focus, +input[type='range']:focus, +input[type='date']:focus, +input[type='month']:focus, +input[type='week']:focus, +input[type='time']:focus, +input[type='datetime']:focus, +input[type='datetime-local']:focus, +input[type='color']:focus, +textarea:focus { + outline: 0; +} + +select { + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +textarea { + height: auto; + resize: none; +} + +/* Lists ------------------------------------- */ + +menu, +ul, +ol { + list-style: none; + margin: 0; + padding: 0; +} + +dt, +dd { + line-height: 1.5; +} + +dt { + font-weight: 600; +} + +dt + dd { + margin-top: 0.5rem; +} + +dd + dt { + margin-top: 1.5rem; +} + +/* Quotes ------------------------------------ */ + +blockquote { + padding: 16px 20px; + margin: 24px 0; + background-color: var(--bg-light); + border-radius: var(--radius-sm); +} + +blockquote::before, +blockquote::after { + content: ''; +} + +cite { + color: inherit; + font-size: 85%; + font-style: normal; + font-weight: 600; + line-height: 1.25; +} + +blockquote cite { + display: block; + margin: 32px 0 0 0; +} + +blockquote p, +blockquote > p:last-child { + margin-bottom: 32px; +} + +blockquote p:last-child { + margin: 0; +} + +blockquote em, +blockquote i, +blockquote cite { + font-style: normal; +} + +/* Media ------------------------------------- */ + +figure { + margin: 0; +} + +img, +embed, +iframe, +object, +video { + max-width: 100%; +} + +img { + height: auto; + max-width: 100%; + vertical-align: middle; +} + +/*-------------------------------------------------------------- +/* 5. Size style +--------------------------------------------------------------*/ + +.w-8 { + width: 8px !important; + height: 8px !important; +} + +.w-12 { + width: 12px !important; + height: 12px !important; +} + +.w-16 { + width: 16px !important; + height: 16px !important; +} + +.w-20 { + width: 20px !important; + height: 20px !important; + font-size: 0.6em; +} + +.w-24 { + width: 24px !important; + height: 24px !important; + font-size: 0.7em; +} + +.w-28 { + width: 28px !important; + height: 28px !important; + font-size: 0.8em; +} + +.w-32 { + width: 32px !important; + height: 32px !important; + font-size: 0.85em; +} + +.w-36 { + width: 36px !important; + height: 36px !important; + font-size: 0.875em; +} + +.w-40 { + width: 40px !important; + height: 40px !important; +} + +.w-48 { + width: 48px !important; + height: 48px !important; +} + +.w-56 { + width: 56px !important; + height: 56px !important; +} + +.w-64 { + width: 64px !important; + height: 64px !important; +} + +.w-72 { + width: 72px !important; + height: 72px !important; +} + +.w-80 { + width: 80px; + height: 80px; +} + +.w-96 { + width: 96px; + height: 96px; +} + +.w-128 { + width: 128px; + height: 128px; +} + +.w-168 { + width: 168px; + height: 168px; +} + +.w-192 { + width: 192px; +} + +.w-xs { + width: 90px; +} + +.w-auto { + width: auto; +} + +.h-auto { + height: auto; +} + +.hv { + height: 100vh; +} + +.h-v { + min-height: 100vh; +} + +.h-v-30 { + min-height: 30vh; +} + +.h-v-33 { + min-height: 33vh; +} + +.h-v-50 { + min-height: 50vh; +} + +.h-v-66 { + min-height: 66vh; +} + +.h-v-75 { + min-height: 75vh; +} + +@media (max-width: 1199.98px) { + .w-auto-lg { + width: auto !important; + } + + .w-100-lg { + width: 100% !important; + } +} + +@media (max-width: 991.98px) { + .w-auto-md { + width: auto !important; + } + + .w-100-md { + width: 100% !important; + } +} + +@media (max-width: 767.98px) { + .w-auto-sm { + width: auto !important; + } + + .w-100-sm { + width: 100% !important; + } +} + +@media (max-width: 575.98px) { + .w-auto-xs { + width: auto !important; + } + + .w-100-xs { + width: 100% !important; + } +} + +@media (min-width: 768px) { + .h-v-25 { + min-height: 25vh; + } +} + +.overflow-y { + overflow-x: hidden; + overflow-y: auto; +} + +/*-------------------------------------------------------------- +/* 7. title Font Size style +--------------------------------------------------------------*/ + +.text-xx { + font-size: 0.6875rem !important; +} + +.text-xs { + font-size: 0.75rem !important; +} + +.text-sm { + font-size: 0.875rem !important; +} + +.text-md { + font-size: 0.9375rem !important; +} + +.text-lg { + font-size: 1.125rem !important; +} + +.text-xl { + font-size: 1.625rem !important; +} + +.text-xxl { + font-size: 2.625rem !important; +} + +.text-40 { + font-size: 2.5rem !important; +} + +.text-50 { + font-size: 3.125rem !important; +} + +.text-64 { + font-size: 4rem !important; +} + +@media (max-width: 767.98px) { + .text-xl { + font-size: 1.5rem !important; + } + + .text-lg { + font-size: 1.125rem !important; + } + + .text-md { + font-size: 0.9375rem !important; + } + + .text-sm { + font-size: 0.8125rem !important; + } + + .text-xs { + font-size: 0.6875rem !important; + } + + .text-xx { + font-size: 0.625rem !important; + } +} + +@media (min-width: 768px) and (max-width: 991.98px) { + .text-xl { + font-size: 1.5rem !important; + } + + .text-lg { + font-size: 1.0625rem !important; + } + + .text-md { + font-size: 0.9375rem !important; + } + + .text-sm { + font-size: 0.8125rem !important; + } + + .text-xx { + font-size: 0.6875rem !important; + } +} + +/*-------------------------------------------------------------- +/* 8. title Font Size style +--------------------------------------------------------------*/ + +.text-height-xs { + line-height: 1 !important; +} + +.text-height-sm { + line-height: 1.2 !important; +} + +.text-height-md { + line-height: 1.75 !important; +} + +.text-height-lg { + line-height: 1.85 !important; +} + +.text-height-xl { + line-height: 2 !important; +} + +/* text space style ----------------------------- */ + +.text-space-md { + letter-spacing: 5px; +} + +.text-space-lg { + letter-spacing: 15px; +} + +/* Icon style ----------------------------- */ + +.iconfont { + display: inline-block; + vertical-align: middle; + line-height: normal; +} + +.text-sm .iconfont.text-md, +.text-xs .iconfont.text-md, +.text-xs .iconfont.text-sm, +.text-xx .iconfont.text-sm { + position: relative; + top: -1px; +} + +/*-------------------------------------------------------------- +/* 6. nice-dark-mode style +--------------------------------------------------------------*/ + +.nice-dark-mode code, +.nice-dark-mode pre { + background: var(--night-bg-light); +} + +/* Quotes ------------------------------------ */ + +.nice-dark-mode blockquote { + background-color: var(--night-bg-light); +} + +/*-------------------------------------------------------------- +## Cursor +--------------------------------------------------------------*/ + +body, +html { + cursor: + image-set( + url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAAHdbkFIAAAAAXNSR0IArs4c6QAAB4dJREFUeAHtWltIXUcUHY01Ro01Pus7WkWJCVWr1kptaqiEtFTij1+hGElCif1oEYSK5CdgBT+K/fAj2kow+Sk1kBBCNGlB+2ExthHbVKRNxCb4iFo1an17utbJHTneh/d67/HZs2HfOXdmz8yeNXv2zOxzhHCE7t27p0DO3aZsSEiIQobAPnOh1VqXLl0SEFqCgIe5kFBApgIWulkImAqt5W9V3uGbN2++u15nScRgdnb2N2tCqzhkZ2cfNQ3XQi4JOalgCr9iUWoqsJavcx77PuBKmyoUhOPp06dVaGh19PYalTPPBnq0wkNDQwvu7u4+yKMJ2aQ1tvXs2TPh6enJWXMzVX4Lz7+A52y2YCoIQ5oB9rInaJRbIkA3wKn0BnNhr4A3TPu5TEiouX+jtWlxqtWFhobSvXC+N2TSa0yWjYyMjPyLRnwd1WRNA6yUnJwsbt++PYVHf7A0dRbZpAMcPxdSTk6OUlxcrD6jESU/Pz/UZi1NwWoDFRUVXyD/bfD74A/A0WC7pDawtLQ0D8lDYA6L00sfYeHtkWdBnshJB0eCHRqzeQusxGVtAai5oPF/ryNAMzi0srIyy2Vx+fLlBPynfTllV86Axd0gUa7JmJgYPioPHz4sQj7LNt1G6cOS2CmdgpYXFhaU8fHxWyjnJunQ0oScw2R3ZJGRkSIxMfGjR48eTcNfDKJlP7BuithVQA4lNzdXhIeHB1dXV08CKB4XAsB0WC7ZyZqjhexMpsPDw6Kurq4xLS0tLjY2Nj4gIGDVP0OJMZwLO729vXMgb/foIds0T60qcO3aNREfH/+zm5vbOVQYBnPEhJ3yTMnMmzGlSFwjWnrC8vLyAg0Rz9lgjtZliNHGuiTnjyOiEjxf8GzBjZkblFPnDNQzyEDAQMBAwGEEtI6IXo+b0zJ4EbylTojngQi64bm5uV/xzOsJveOmE0dMFHgze429DQ4OpmLf/xOPm3IAYR/mRCWCwMeJAE9Dd+/eVXg+RN6rYO6AcqrwqD8R6mBwrlSAStTU1PAvd0bemDZ1V7SqAJW4cOGCqgQujmGbqYRNBahEXl6eqkRlZeURKMGjusPHOMg6ROsqQCWOHlUDbsqdO3dOoEUarG5KONTQ8+fPRXR0tDh16tQP3d3dH0MB3ZBwSAHiOD8/LxjGOHbs2JWBgYFKZOlyYVlXgdraWnH+/HmRnp4uPDxenl+pRFhY2OcvXrz4HkroMh1WbeDGjRtKX19fL+b91pMnT/5YXFycV61R8wMFuERZ32l6OSyz6ikpKeL06dPLCDt+iqJpMJHivJNZZwE8BHaZLBTAXUA0NzcLpCfQeh+YCpAoy9HKOryM0Fu6tGnJxtCOGu4TiNaK0tLST/C/HzwC5mhJ0h0zJdNLsnOmLhHhDQRnc3p7enqa8ZwI5o64rpGiXBdiJwfBSQj05SKlx2OgzyXjQn2HSMLJzYa3IhoZ55Y3Ix5MXIYXbaxLVIBEFKQyus2t2rLxYyBgIGAgYCBgILDDEZCboVRTbogyZT43R7lBSrk9k2oPXHzmsYTXjYN4i1qBC/rQ9PT01YsXL4YgTx5XeE4yBw5Zu584eB4MeQ9XXx5pLiAK7mV/1dfX87MPyvA6RCC0AOLv7iUOhDPPo3kCWD2eE4CIiAglISFB6ejoUPHA+4SJ1tbWfMgwdMM6vFew/q62Cs4mo3QMEyWB35Ozz9iEZFyIlevXr8uipd7e3lLI8vrAursaCHMA1FgZRyoHb56Wl5dLIJTR0dFv/Pz8+AKPfoJLaddYhNNrGP5AjdUUFhYKLy+v4snJybGZmZnmoqKiCA0QO95hOg0ABqkS/IGIi4sTWVlZApbwTkNDQx8c5u9I34CAdudwuS9Tl7omuimFOJbIyMjgm17R2dkZA0vogMMcaG9v/xAaM8Yhw0rsc8c4TN0AkNMyNTUlCgoKGEEUjY2NvrCMJjiLfx4/fvwZZMy30G0HQncAJBA4RImysjLVTyB1j42N/ZJAYJlcwda6Y7ZQbWxQ6m439fHxES0tLaq5WxPGQOkP1Dgj3juJiYkJAQcpfH19RWBg4Bl8+HlmbGzs66CgoArU56cB/ABi04Ng1nTdMABnz54VVVVVHNBEZmZm+YMHD0bRMKN4JFoUeR8i+X4oD8YhKgifIgV0dXX5Yyv1BwCHEGxfbGtra4Uc/QJfS27bUpAdc7uiMnRWPA2GYRZ/RKqaMFN/f39x//59ERUVxdn/9uTJk1eRPQlmiFrO4CoAyGObKhimlH3J97AMffKTF9aVFuBSmBvtOEV2LQDv6AS/WiopKRFwcEOpqannMJt/o7dxMGP3HIAMk3OQthhFKsmbJcEgs+62DF7VxvTD2eK5nq9sGZo/DgtYQ01NTV8hPxP8Ophy3OPl8RePdskcGLsVtlKApsobHt85HQa/ideB3xGB/v7+n7CGc5F3BBwO5sdzXC4EjYPa1SQHwJQD4jmeFxvOrrzycn3L11FM5bcU22620MVlkgCwIVoB/2sdF/O5ZrVrlf+3ZcuiMnqTFgBrbWvL98ygrQ3UyDMQMBAwEDAQMBAwEDAQMBAwEPifIfAfwZDQQN9qDuQAAAAASUVORK5CYII=) + 2x, + url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAAAXNSR0IArs4c6QAAArtJREFUWAntV01rGlEUHWuibcU2TVPTRonJpiL2a1FbaEtpAvobanGnIK4qKQjuhP4GseDWjYuii9CNiyJCN134segiJGlAcKELQWJDFZmeM+0TDRM/ppVuvHCceXfuPXPvfe/dN0qSmmxvb8vn9cvnFWPGFouF/pcHJjIEA/1AoXoTjUZpdfGbyFssFuVAIDDKP0Q34R1DlppuN/D+t+M87Qyy0Wh8VjO6RKVer5cymcyrXq/XUjPahPIxQOMlNQOdmvLf6wxI9SloNVdUKYXb7ZYPDg4+gMgwbYwiQRKcCCedTicdHh4emc3mB9D9EPpxVyWCVqvVgNET4CHwHHADJmCirMDiHnB1ouXCQLUCunq9/gZPrqg+nUK5zN7Rbre7sOVsiLUxhetvEwMJuCmPj4/ZNdYAZR9OyzAgIEmhUJB3d3fts5CMEJAklUrJ8Xicm3zi5hrpAHCUut2uVCqVpEgk8nV9ff1FOBz+AiKmdqEoEfh8PtnpdL6G1X2Ae+AlwFQmikKQTqeTsBQFZOiMbmIKZF8yGo13cbUBM1WfzkL4Js3OgmRx1ViB4XnmLvxvM8FAVrCpe/1+/zSfz7O/XAO4GGduD/CZWXiQbYq2srOzw/O+Xy6X30O/CvALZq6BMAC7CIAdhXC5XHKlUpFrtdrHra2t27AxAnOZJtUARCA2m03OZrMyDt5SMBh0Igi2/+H1g6E2mSobtshQKCQ5HI5H+Jb9dnZ2dpRIJNjteOr/VSBiXlmBO5iCE/RgJZVYLCZ5vd5KMpncR5u9brVa1/7I6g2IyWQy5HK5d36//xMcToGxPVshHfMzmAKPxyM3m82fOAj2YM/efhNgpmaAhyZbNqO8BVA3cqhgrEm4yjc6nc73arW6j/tnHANzW3TgVkRMAdcCM+H/DOr4iUD0gYUsKrCowFwr8AukF+p8blYsTwAAAABJRU5ErkJggg==) + 1x + ) + 4 4, + auto !important; +} + +a, +button, +i.iconfont, +.btn, +.nice-popup-close, +.aplayer-button { + cursor: image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAAHdbkFIAAAAAXNSR0IArs4c6QAAClpJREFUeAHtm2toVdkVx8+9eTpJjIl5GqtmMtTY2sYpRaehKFb8EBEfRacODVgsDi3S+TTS2n7rl9IWi5SOVEpttQ6WQgtSBaGdig+siEIUHyRYOh2MmMT4TGKe9/T/O5N9c+7Jufeec3Mn6dC7YHH23WfvtdZee6291177XMvKJkRtgQhG3ESjrh9OuaamJlZRUfFNb8MIvd2gBp+hs6FgRyKRNipcMEE5gZ9+7ywsLPzc6Ojof1Q+LowJZw00PLu4uHiDl6EZhVO/efPmv9OwqqqqLKGhFPOzbdu2xdXQ3t6ORhOgYMuWLfEGUDFv3XqokQ6+wwvp4X09/mUazc3zldra2pdiXZwJ+3wGCWhMO0UgPwyRUjobAnG1qXDv3j17+fLlaG++m2DCROnFYl729PS42zjlpqYmq6WlhXLFtJeeirKCgoLvHjx40C2APTg4aJeUlPxUbUvd7d3z6K6nXCh8RWjajKg8LJxVGxe/TyVEZQcdlZWVrZLeO82BBlTH/GFMap3ouD7d/Ti4OzHnZhp9uqcRsaur64EkiSGN8MeiUOBLZbIyKg98pIa3GML4+DgPB/bv3+88FyxY8D219ZPaIVG+cuXKyS7+Dyn2pFomeKeb2sjdu3e/NTyMtfqDyI75v5mqXaQh9Pvzt+28vLzNapo31Xx6CYleR2leoE7vVgkTZiXhxyQ9NE3DL2tFqqFOq+xjPTqFl4RDwjj4EeAlkswT4tIAexkdx/mRg/8tDSSbRD8paWsMH5My6Nc2q3UwLpEd9+7atcu+cuWKWarYwoyVZZWhlxie1+h2LsrykW2qrxIarXj7BfodpDMaSFiAoFxeXv6eBOlRtLVXPytKS0txWnyPttANM71qPh0gAjGINns10N3d7aw21F+4cMEp19XVxZYsWRLbtGmTmSaESrmG670vFFdXV/9248aNDmGFJA5B7/qW6jdh5sKFC4+Leq0w6QKabAoK+/r6fnfjxg3r6NGjVkdHh2+85Cu6q1ICYqSEiKGnA8EIwlrnz5//B7f6U43a/W716tW27OTnosGhY5oNqS4tIDXSvybciRDnzp1z80hafvjwobGB9eqb0lOCqIb5Qxuf1Ya4QlZ/WJxT+r925ePPnz8/oT53hT3CpDtxEAHU35lD1FgirBQuFBqXU9EBVkYYPRf2C58I00azQQUQLV/w9keIHOQ0kNPAp0sDXj9OJj3tDNIGf5+14zKMC7UEb9F+MCY8r98cAlkZefeJQ54yDLVsRrdv37bXrVvHRnNZXMl5JNvOsyrUPG2r31auxNn97t+/b3a6JeKSUbTjli7ICArEmU3IC6RRgvT39kv4HYRAngRgvr1QpAq2amhkbAtBBPAydn7LDq4Lb+lHpaIm4gW0RJwQSii/kYlGelB0lHfo0KHGU6dO9dFaWVMrFovtV5o3X8/O/v7+s6oeFTppXtqEAVTKSDCy6rKysne9RohFkgnBOwAFsU55+/btPGNy21+rL1oJrWWYFyqkboc4KC84YgSA2cTEBA8HxsbGTNFetmyZU1ZGweknOgSkoT0FiatgTJZRmReHmFuAOMcUBfqLzheEhG5Jwc8GEICVjtyI1dzcbF27ds06duxYUiIpXsA89BQgVKPm/SeMIlOY1MAbopWQo/UK6ycdm8wLwd9kzd1r16719snq72QCEFp/+OjRo3c6OzutM2fOZMqUwWQUKSMYqmshBY463ZafblouXbpkK3HJmYB8G0t2RsA6wAHkq8py/pWjdzrG5r3cMabV8ZD6NgtZsjMGfJhUTJsWlm6EwMdTwb59+8wasEn9GoR+nqbqjyHdJsJ7DqgQ+rwWpLeLioognAqGent731YD9ol/CweE2IIvpBOATtgD/lwvfFXYEI1Gy/Pz8wlI4v3lMaNamjkPci78cBL5nTI9GieghqkAIZjLcmG1kIWK3+7+bDrcWRkhXqgM85Re4CagtimBtgiCXYAYqbs/jBCCOx6egVzQTUB9QoG3b8qRhqKca5zTQE4DOQ3kNJDTwP+LBry76UzGDS2QcME5nSsmnafs/sSTJ09IoBMauEMEdu45372zpQAGTdzLefrrGvTvVU6grYzB8MjISNvTp0879I7TglHKnCtBsswIGDw5mQrF6xs4Puk4FNOsx88N5p6XY5KuWleqLReJHJW8AaWqZhdSnlYCisJMo4AyjXg5fXR9G9ExjqIDixdzqJK923aRLGGZisYCTLg+Z1bA7M0UUAAzSR6T01tKQAlqAHKkyAb/lPzSvcyGBcCDgQQdTBGnSa0T41oTsACUx9N9fjIWwdOgitmHbCkgsGRyjfe9jXWcPqlj9mrVLxVG5SZdSsMcVF7oL/pNitXsICjDKMoohmfGEHTW/Bhg+mAoOH36tPP9Ad9sXr161emrwb+lLy2aLl68mH/+/PloW1tbs+p+owWVj+JeCAeFw8IR4Z90acItPIuo38k8lDxhGjNYFAbTYm13DUoVvaWvO76vj+u+oQTal5TP/IEEtL2ZXPLYa9assZVmtDXbWgamYMeOHfaKFStspSKnKlVatWqVk146cuRIvP7w4cNOnXgMSAkk3czFfca7SdAZZOAwKdJX0C3ayj6QVEVSgtXY2Gjp6xJbeXJoYZ5RKcLSJ7wqzgzITotXApGtW7da2lYtKfWXjx8//pVe8nUfqS8TVyS0T/cjqAswOFbuBVrAfsjg9+zZY925c8fJ2+rqLII5a7tz6Ml80/EN9N47eDopunT6ap3ADciOsfNkbAFBFkEGD8KkWB+jvKeA5w19T1T54MGD+L3B0qVLrevXr6vJ7IAmAXncawAyhoYgU2VWW7YqwlklXnv3yAT/cfbsWUufitlYwhyBmZyMBo/MQRRAO3yb7eip8KHwI/nfL2QNP5Kfjq1fv97S58qq/uRBt48OE22T+L7ZEjNmHEZztEVhTtirJytwnbBei+G7CmxeJ/zV9am1aNEiVWcfhoaGWHSxyIjK7wwMDPxTZSaEbDjhNafNUIAfhQGYG2uAoYMvX77E+T/SFteqbUvrU8RqbW0NQzdQ2wMHDlg3b96MaPZvPXv27KQ6YZFcAZjBzygoCiTEZCOsAeURjPB1Jie8DbKCdsUGXcQC3FFdvnw5vofPpEDssHv3bhMD9InPm+L3FWGTkFMXi2FQd1bTKQjjAlO9Pi7RF2Qn4UKeixuOubUKil7TTrFP2yECWg0NDdbevXsdq6iv55IpNfCHBCJFfZdrnThxwmK3AbTe/Fn5hD+q2CvsEbIgmBggtPmrb/hQlk4eQPNmbUARfLfB+sA+XaG4oV6B0df0/KJcg5utoG43rpnvUYB1U98LfKBdx/g6n2YwcMx/SGgCoIzMfyYWIN5xMNbA4DBHXIM75jIhkQtl6lhAsRjTXsVpk2BWdrZdBseV36CQi3MQn2fg7ErMOgPPaPDqN405dTMBMzCeKIPBMmiD/KYei6ENYJ5mEDyNElAAyGBN2X10Nn30OjMwzDPrnb4X9A0PbzldbwZnBugtp+ube5/TQE4DOQ3kNBBEA/8FSS7Rlqfcs5YAAAAASUVORK5CYII=) 2x, url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAAAXNSR0IArs4c6QAAA9xJREFUWAntV8tLVFEYnzvvpzTazIijprZRpqRFhFLUooUglSFDs2vXInAxuBaX9RcEbVNBsHAlYtbGRUK4CnMhLoxQQ8lkZGZ0Xvf2+13m3O6dmYujhAT2wcc95zvf45zvdc61WEzABbpVW1PKAEJIECWHw5HERBIE4/fw8FDRU2w6HRY7VkqSJD3Sc9Q99lN3OBxWotHoR0j92SdV2Gy2h8IWvyBdIv08oaWlpQT33Kq0adjp7Ozs54GBgXxjY2OfgbG1tXVhaWlJO0Rvb++xYFA1bG1tPZ6fny8J4sHBgTbWhyOCPSRKAFmW34J5Twic/1dCvEZxsDRMe85i3kefMvB2u30ACtxAG1B/3pp6paampufIlAIVaD4tD46OjhTsqgBJn15aHyhpf3//E5JV2t7e1tNVfrfbbfF4PMwygwK9MjEO+ny+F8lkspjJZBRiKpVS4vF4HikbB5NTMPJrdi7SeW5HmYeWi2U0FBxoFx7oqEpwIw/SCNtONpv9gsXTOQ0hvM/cYfuBsL9Se+W8KmEgqyWK1+sNQIDdsIpPKKpcYPy13Jibm9sZHBzMIoW/d3R0vMcaG7cpOJubm4s4/yaPoIfJyUmlUCgofr9/GNKVRjWF0UQiUTg+PtbLGsaBQGAU3DxSTfDDgS83NjYMQvoJFDyDpKkCnr2jra1tSy8kxsvLy4zKbaDpEbCmFtBN9ITc+vq6WomsxpWVFaW9vf0n1jvJpAfN4zoiy/U6Svea1WoNkg4H/sJnFfiVU6AGtRRwkdukIrFd9nGWs9bPMf4P/4gHzIJYuT0GU4rFYmr7WVtbkzEXWMn71+d29LYrrPPFxUVlenqa91sGV1QUltgc6j3EmTeGruZ9IC5b8VTDrX0PGvkSE6l+JgOmfUGnjSes6vxo2B9wh1uKxeIrPIcyGJdyudwb3ME/wM+aEyE63Y1QNsxTOSKRSGcwGLwDdz8RHuATo7u7W4YxtU319PTIu7u7attBmOTx8XFlbGyshJ62B8+1UA/wVGGi8caurq5vExMTSjqdVoaGhvLob1XvHdEoa335zGxoaBihLmCVB0EzBTJHnE7nMJ94U1NTci0DJ9G4gfL9EYa+ekJt2BAFKHg3FAot9Pf354XLTzLMdfIiR2SXyzUIHZeBp/IA+FVgKHjBx6BoBN7IzczM1GOfIStgA+8ge6OswzQHTBcgKIBJxDhexUb68I/xFOMY/gWq3IobOY37bxXP3NdY59W1CTwEmt5C9WwA8moW06AXyNrnc4cvd8oTWWosO/7fpIEpYBYoyhHD2lDvBmpLG8vrTPVupvji0H8DAsFwgXvDpDQAAAAASUVORK5CYII=) 1x) 9 9, auto !important; +} + +input, +textarea { + cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAAAXNSR0IArs4c6QAAAupJREFUWAntl89vElEQx0EopAl6ESm2KgmcTLwoPWBjYojEpHeS3jnwH3jg5r/jwRN/gQd+hDsXLiWNgm0QSAUbEFjns77d7MKubCMYD0wymTcz35333sy8x8Pnc6NsNqvZfM1m024Q71sbwqZcXl4CT1qNpnJHWZ+LPLQiPI/3VXzzAyOkbigWiw9arRbjgIn4t4MkCVxepG0JyrlvNdp20ev18D10AwQGg4FPtjqzAvwWhdQ+E74r/NFi3/LQugTrVBHZ8fdwOPwB42QyOTs4OGBpIyvoT+OIOF+0220NZiyMbYWCK5bfBmY6H4/HhvtcBo6zuwXQP4xGo0YAV+kW4CgWi30ulUr6hzLuX11dPRLly3IktyTSzwRfqA/oGBpgrvSdWJOBwGKx6I9Go+tyufwKiS7feL4owtPp9LpWq2mZTEZDokuA8JqJTTczPU6lUmdSfw2JLux5BUSiP54SAKl0Ed4pMJvNhgRAymeus9vuJEv8oCRO9ynp1vI+twCzUCj0hoBK2u4xy0SOAdh/UO6BdwCVZAVu5waYjfY0oXg8rnU6HV2iC2LPhlKKU1SAL4W5DL4J3xfmwq4J/xS2kVMAfQuCIj8cXyrAsSYPrGRH/1kGnIrotERwFNVgMBSWoho+w4bd8GHbCNGah/Qz55seLxQKWrfb1SU6dgicsGPP/81KCHgk/DqRSBQqlcqnarWqT8p9iY4dv8JtfAGkmfPEpczBPOa1xa7Vq+tY2fGD81pa/bdX8GuJ1HKoqe0PYfPNIWMIHftUGKxn8rxSFZHUxqXUF/LaMieRLPj8fv8TMXwVXrmuTOAGBiyAn7fTpRKcKvuta8+xug1Rhv7JyYm8p7mf5ZYWiY5dGP9WiMaKzOfzATuv1+taLpfT0um0xn8DdOz4wQmD3yjR3UmeJ0w0HA5vGo1GLZ/Pv0eiY1fPl6RgwXsir03IjviDc09JOn0iTMNRdyYk1o0wbyjk1sohsXe0uQz8AtSlOGRROrZeAAAAAElFTkSuQmCC) !important; +} diff --git a/src/components/comment/Comment.astro b/src/components/comment/Comment.astro new file mode 100644 index 0000000..576b1d2 --- /dev/null +++ b/src/components/comment/Comment.astro @@ -0,0 +1,17 @@ +--- +/** + * This module is a reuse component which can be used in ajax loading. + */ +import CommentItem from '@/components/comment/CommentItem.astro'; +import { parseComments } from '@/components/comment/artalk'; +import type { Comments } from '@/components/comment/types'; + +interface Props { + comments: Comments; +} + +const { comments } = Astro.props; +const parsedComments = await parseComments(comments.comments); +--- + +{parsedComments.map((item) => )} diff --git a/src/components/comment/CommentItem.astro b/src/components/comment/CommentItem.astro new file mode 100644 index 0000000..5612bb9 --- /dev/null +++ b/src/components/comment/CommentItem.astro @@ -0,0 +1,76 @@ +--- +import type { CommentItem } from '@/components/comment/types'; +import { formatLocalDate } from '@/helpers/formatter'; +import { encodedEmail, urlJoin } from '@/helpers/tools'; +import options from '@/options'; + +interface Props { + depth: number; + comment: CommentItem; + pending?: false; +} + +const { comment, depth, pending } = Astro.props; +--- + +
  • +
    +
    + {comment.nick} +
    +
    +
    + { + comment.link === '' ? ( + comment.nick + ) : ( + + {comment.nick} + + ) + } + { + encodedEmail(options.author.email) === comment.email_encrypted && ( + + 站长 + + ) + } +
    +
    + + {pending &&

    您的评论正在等待审核中...

    } +
    + +
    +
    + { + comment.children && depth === 1 && ( +
      + {comment.children.map((childComment) => ( + + ))} +
    + ) + } +
  • +{ + comment.children && depth !== 1 && ( + <> + {comment.children.map((childComment) => ( + + ))} + + ) +} diff --git a/src/components/comment/Comments.astro b/src/components/comment/Comments.astro new file mode 100644 index 0000000..c8b6d3c --- /dev/null +++ b/src/components/comment/Comments.astro @@ -0,0 +1,87 @@ +--- +import { increaseViews, loadComments } from '@/components/comment/artalk'; +import Comment from '@/components/comment/Comment.astro'; +import { urlJoin } from '@/helpers/tools'; +import options from '@/options'; + +// This is a component which loads comments and renders it on server-side. +interface Props { + commentKey: string; + title: string; +} + +const { commentKey, title } = Astro.props; +const comments = await loadComments(commentKey, title, 0); + +// Increase the PV in production environment. +if (options.isProd()) { + await increaseViews(commentKey, title); +} +--- + +
    + { + comments != null ? ( + <> +
    + 评论 ({comments.count}) +
    +
    +
    +
    + 头像 +
    +
    +
    +