diff --git a/.circleci/canary-config.yml b/.circleci/canary-config.yml deleted file mode 100644 index 09cceb25..00000000 --- a/.circleci/canary-config.yml +++ /dev/null @@ -1,72 +0,0 @@ -version: 2.1 - -jobs: - build-amd64: - machine: - image: ubuntu-2004:current - steps: - - checkout - - run: - name: Prepare .env file - command: | - cp .env.production.example .env.production - - run: - name: Build and push AMD64 image - command: | - VERSION=$(node -p "require('./package.json').version") - echo $VERSION - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN - docker build --platform linux/amd64 -t dokploy/dokploy:canary-amd64 . - docker push dokploy/dokploy:canary-amd64 - - build-arm64: - machine: - image: ubuntu-2004:current - resource_class: arm.large - steps: - - checkout - - - run: - name: Prepare .env file - command: | - cp .env.production.example .env.production - - run: - name: Build and push ARM64 image - command: | - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN - docker build --platform linux/arm64 -t dokploy/dokploy:canary-arm64 . - docker push dokploy/dokploy:canary-arm64 - - combine-manifests: - docker: - - image: cimg/base:stable - steps: - - setup_remote_docker - - run: - name: Create and push multi-arch manifest - command: | - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN - docker manifest create dokploy/dokploy:canary \ - dokploy/dokploy:canary-amd64 \ - dokploy/dokploy:canary-arm64 - docker manifest push dokploy/dokploy:canary - -workflows: - version: 2 - build-all: - jobs: - - build-amd64: - filters: - branches: - only: feat/circle - - build-arm64: - filters: - branches: - only: feat/circle - - combine-manifests: - requires: - - build-amd64 - - build-arm64 - filters: - branches: - only: feat/circle diff --git a/.circleci/config.yml b/.circleci/config.yml index 5ac4ef1c..afd08199 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,8 @@ jobs: - run: name: Prepare .env file command: | - cp .env.production.example .env.production + cp apps/dokploy/.env.production.example .env.production + cp apps/dokploy/.env.production.example apps/dokploy/.env.production - run: name: Build and push AMD64 image command: | @@ -31,7 +32,8 @@ jobs: - run: name: Prepare .env file command: | - cp .env.production.example .env.production + cp apps/dokploy/.env.production.example .env.production + cp apps/dokploy/.env.production.example apps/dokploy/.env.production - run: name: Build and push ARM64 image command: | @@ -56,7 +58,7 @@ jobs: docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN if [ "${CIRCLE_BRANCH}" == "main" ]; then - VERSION=$(node -p "require('./package.json').version") + VERSION=$(node -p "require('apps/dokploy/package.json').version") echo $VERSION TAG="latest" @@ -78,7 +80,6 @@ jobs: fi workflows: - version: 2 build-all: jobs: - build-amd64: diff --git a/.circleci/main-config.yml b/.circleci/main-config.yml deleted file mode 100644 index 279c6f44..00000000 --- a/.circleci/main-config.yml +++ /dev/null @@ -1,76 +0,0 @@ -version: 2.1 - -jobs: - build-amd64: - machine: - image: ubuntu-2004:current - steps: - - checkout - - run: - name: Prepare .env file - command: | - cp .env.production.example .env.production - - run: - name: Build and push AMD64 image - command: | - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN - docker build --platform linux/amd64 -t dokploy/dokploy:latest-amd64 . - docker push dokploy/dokploy:latest-amd64 - - build-arm64: - machine: - image: ubuntu-2004:current - resource_class: arm.large - steps: - - checkout - - - run: - name: Prepare .env file - command: | - cp .env.production.example .env.production - - run: - name: Build and push ARM64 image - command: | - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN - docker build --platform linux/arm64 -t dokploy/dokploy:latest-arm64 . - docker push dokploy/dokploy:latest-arm64 - - combine-manifests: - docker: - - image: cimg/base:stable - steps: - - setup_remote_docker - - run: - name: Create and push multi-arch manifest - command: | - VERSION=$(node -p "require('./package.json').version") - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_TOKEN - docker manifest create dokploy/dokploy:latest \ - dokploy/dokploy:latest-amd64 \ - dokploy/dokploy:latest-arm64 - docker manifest push dokploy/dokploy:latest - - docker manifest create dokploy/dokploy:${VERSION} \ - dokploy/dokploy:latest-amd64 \ - dokploy/dokploy:latest-arm64 - docker manifest push dokploy/dokploy:${VERSION} - -workflows: - version: 2 - build-all: - jobs: - - build-amd64: - filters: - branches: - only: main - - build-arm64: - filters: - branches: - only: main - - combine-manifests: - requires: - - build-amd64 - - build-arm64 - filters: - branches: - only: main diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 325e92f0..b98dae66 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,49 +1,47 @@ -name: Pull request +name: Pull Request on: pull_request: - branches: - - main - - canary + branches: [main, canary] env: HUSKY: 0 jobs: - build-app: + lint-and-typecheck: runs-on: ubuntu-latest - strategy: - matrix: - node-version: [18.18.0] steps: - - name: Check out the code - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 with: - fetch-depth: 0 - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} + node-version: 18.18.0 cache: "pnpm" + - run: pnpm install --frozen-lockfile + - run: pnpm biome ci + - run: pnpm typecheck - - name: Install dependencies - run: pnpm install + build-and-test: + needs: lint-and-typecheck + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.18.0 + cache: "pnpm" + - run: pnpm install --frozen-lockfile + - run: pnpm build - # - name: Run commitlint - # run: pnpm commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose - - - name: Run format and lint - run: pnpm biome ci - - - name: Run type check - run: pnpm typecheck - - - name: Run Build - run: pnpm build - - - name: Run Tests - run: pnpm run test + parallel-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.18.0 + cache: "pnpm" + - run: pnpm install --frozen-lockfile + - run: pnpm test diff --git a/.gitignore b/.gitignore index 7acbe51a..c2034b77 100644 --- a/.gitignore +++ b/.gitignore @@ -1,59 +1,38 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -# dependencies -/node_modules -/.pnp +# Dependencies +node_modules +.pnp .pnp.js -/redis-data -traefik.yml .docker -.env.production -# testing -/coverage -/dist -/production-server -# database -/prisma/db.sqlite -/prisma/db.sqlite-journal -/logs +# Local env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local -# next.js -/.next/ -/out/ -next-env.d.ts -/dokploy -/config +# Testing +coverage -# production -/build +# Turbo +.turbo -# misc -.DS_Store -*.pem +# Vercel +.vercel -# debug +# Build Outputs +.next/ +out/ +dist + + +# Debug npm-debug.log* yarn-debug.log* yarn-error.log* -.pnpm-debug.log* -# local env files -# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables -.env -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo - -# otros -/.data -/.main -.vscode - -*.lockb -*.rdb -.idea +# Misc +.DS_Store +*.pem diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8686b98a..d04ee676 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,7 @@ - - # Contributing Hey, thanks for your interest in contributing to Dokploy! We appreciate your help and taking your time to contribute. - Before you start, please first discuss the feature/bug you want to add with the owners and comunity via github issues. We have a few guidelines to follow when contributing to this project: @@ -17,9 +14,10 @@ We have a few guidelines to follow when contributing to this project: ## Commit Convention -Before you craete a Pull Request, please make sure your commit message follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. +Before you create a Pull Request, please make sure your commit message follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. ### Commit Message Format + ``` [optional scope]: @@ -29,28 +27,27 @@ Before you craete a Pull Request, please make sure your commit message follows t ``` #### Type + Must be one of the following: -* **feat**: A new feature -* **fix**: A bug fix -* **docs**: Documentation only changes -* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) -* **refactor**: A code change that neither fixes a bug nor adds a feature -* **perf**: A code change that improves performance -* **test**: Adding missing tests or correcting existing tests -* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) -* **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) -* **chore**: Other changes that don't modify `src` or `test` files -* **revert**: Reverts a previous commit +- **feat**: A new feature +- **fix**: A bug fix +- **docs**: Documentation only changes +- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) +- **refactor**: A code change that neither fixes a bug nor adds a feature +- **perf**: A code change that improves performance +- **test**: Adding missing tests or correcting existing tests +- **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) +- **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) +- **chore**: Other changes that don't modify `src` or `test` files +- **revert**: Reverts a previous commit Example: + ``` feat: add new feature ``` - - - ## Setup Before you start, please make the clone based on the `canary` branch, since the `main` branch is the source of truth and should always reflect the latest stable release, also the PRs will be merged to the `canary` branch. @@ -59,45 +56,45 @@ Before you start, please make the clone based on the `canary` branch, since the git clone https://github.com/dokploy/dokploy.git cd dokploy pnpm install -cp .env.example .env +cp apps/dokploy/.env.example apps/dokploy/.env ``` ## Development Is required to have **Docker** installed on your machine. - ### Setup Run the command that will spin up all the required services and files. ```bash -pnpm run setup +pnpm run dokploy:setup ``` Now run the development server. ```bash -pnpm run dev +pnpm run dokploy:dev ``` - Go to http://localhost:3000 to see the development server ## Build ```bash -pnpm run build +pnpm run dokploy:build ``` ## Docker To build the docker image + ```bash pnpm run docker:build ``` To push the docker image + ```bash pnpm run docker:push ``` @@ -138,7 +135,6 @@ curl -sSL https://nixpacks.com/install.sh -o install.sh \ curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.32.1-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack ``` - ## Pull Request - The `main` branch is the source of truth and should always reflect the latest stable release. @@ -152,10 +148,6 @@ curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0. Thank you for your contribution! - - - - ## Templates To add a new template, go to `templates` folder and create a new folder with the name of the template. @@ -170,42 +162,40 @@ Let's take the example of `plausible` template. ```typescript // EXAMPLE import { - generateHash, - generateRandomDomain, - type Template, - type Schema, + generateHash, + generateRandomDomain, + type Template, + type Schema, } from "../utils"; - export function generate(schema: Schema): Template { + // do your stuff here, like create a new domain, generate random passwords, mounts. + const mainServiceHash = generateHash(schema.projectName); + const randomDomain = generateRandomDomain(schema); + const secretBase = generateBase64(64); + const toptKeyBase = generateBase64(32); - // do your stuff here, like create a new domain, generate random passwords, mounts. - const mainServiceHash = generateHash(schema.projectName); - const randomDomain = generateRandomDomain(schema); - const secretBase = generateBase64(64); - const toptKeyBase = generateBase64(32); + const envs = [ + // If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name. + `PLAUSIBLE_HOST=${randomDomain}`, + "PLAUSIBLE_PORT=8000", + `BASE_URL=http://${randomDomain}`, + `SECRET_KEY_BASE=${secretBase}`, + `TOTP_VAULT_KEY=${toptKeyBase}`, + `HASH=${mainServiceHash}`, + ]; - const envs = [ -// If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name. - `PLAUSIBLE_HOST=${randomDomain}`, - "PLAUSIBLE_PORT=8000", - `BASE_URL=http://${randomDomain}`, - `SECRET_KEY_BASE=${secretBase}`, - `TOTP_VAULT_KEY=${toptKeyBase}`, - `HASH=${mainServiceHash}`, - ]; + const mounts: Template["mounts"] = [ + { + mountPath: "./clickhouse/clickhouse-config.xml", + content: `some content......`, + }, + ]; - const mounts: Template["mounts"] = [ - { - mountPath: "./clickhouse/clickhouse-config.xml", - content: `some content......`, - }, - ]; - - return { - envs, - mounts, - }; + return { + envs, + mounts, + }; } ``` @@ -233,10 +223,37 @@ export function generate(schema: Schema): Template { 5. Add the logo or image of the template to `public/templates/plausible.svg` - ### Recomendations + - Use the same name of the folder as the id of the template. - The logo should be in the public folder. -- If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name. +- If you want to show a domain in the UI, please add the prefix \_HOST at the end of the variable name. - Test first on a vps or a server to make sure the template works. +## Docs + +To run the docs locally, run the following command: + +```bash +pnpm run docs:dev +``` + +To build the docs, run the following command: + +```bash +pnpm run docs:build +``` + +## Website + +To run the website locally, run the following command: + +```bash +pnpm run website:dev +``` + +To build the website, run the following command: + +```bash +pnpm run website:build +``` diff --git a/Dockerfile b/Dockerfile index e15e6bd6..40f1dbee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,65 +1,45 @@ FROM node:18-slim AS base - -# Disable husky -ENV HUSKY=0 - -# Set pnpm home ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" - -# Enable corepack RUN corepack enable -# Set workdir -WORKDIR /app +FROM base AS build +COPY . /usr/src/app +WORKDIR /usr/src/app -FROM base AS base-deps -# Install dependencies only for production RUN apt-get update && apt-get install -y python3 make g++ git && rm -rf /var/lib/apt/lists/* -# Copy install script for husky -COPY .husky/install.mjs ./.husky/install.mjs - -# Copy package.json and pnpm-lock.yaml -COPY package.json pnpm-lock.yaml ./ - -FROM base-deps AS prod-deps - -# Set production -ENV NODE_ENV=production - -# Install dependencies only for production -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile - -FROM base-deps AS build - -# Install dependencies only for building +# Install dependencies RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile -# Copy the rest of the source code -COPY . . +# Deploy only the dokploy app -# Build the application -RUN pnpm build +ENV NODE_ENV=production +RUN pnpm --filter=./apps/dokploy run build +RUN pnpm --filter=./apps/dokploy --prod deploy /prod/dokploy -FROM base AS production +RUN cp -R /usr/src/app/apps/dokploy/.next /prod/dokploy/.next +RUN cp -R /usr/src/app/apps/dokploy/dist /prod/dokploy/dist + +FROM base AS dokploy +WORKDIR /app # Set production ENV NODE_ENV=production -# Install dependencies only for production RUN apt-get update && apt-get install -y curl apache2-utils && rm -rf /var/lib/apt/lists/* -# Copy the rest of the source code -COPY --from=build /app/.next ./.next -COPY --from=build /app/dist ./dist -COPY --from=build /app/next.config.mjs ./next.config.mjs -COPY --from=build /app/public ./public -COPY --from=build /app/package.json ./package.json -COPY --from=build /app/drizzle ./drizzle -COPY --from=build /app/.env.production ./.env -COPY --from=build /app/components.json ./components.json -COPY --from=prod-deps /app/node_modules ./node_modules +# Copy only the necessary files +COPY --from=build /prod/dokploy/.next ./.next +COPY --from=build /prod/dokploy/dist ./dist +COPY --from=build /prod/dokploy/next.config.mjs ./next.config.mjs +COPY --from=build /prod/dokploy/public ./public +COPY --from=build /prod/dokploy/package.json ./package.json +COPY --from=build /prod/dokploy/drizzle ./drizzle +COPY .env.production ./.env +COPY --from=build /prod/dokploy/components.json ./components.json +COPY --from=build /prod/dokploy/node_modules ./node_modules + # Install docker RUN curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh && rm get-docker.sh @@ -74,7 +54,5 @@ RUN curl -sSL https://nixpacks.com/install.sh -o install.sh \ # Install buildpacks RUN curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.35.0/pack-v0.35.0-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack -# Expose port EXPOSE 3000 - -CMD ["pnpm", "start"] +CMD [ "pnpm", "start" ] diff --git a/README-de.md b/README-de.md deleted file mode 100644 index d9afbd41..00000000 --- a/README-de.md +++ /dev/null @@ -1,57 +0,0 @@ - - -
-

Dokploy

-
- -
-Reflex Logo -
-
- - -Dokploy ist eine kostenlose und self-hostable Platform as a Service (PaaS), welche das hosten und managen von deinen Projekten und Datenbanken vereinfacht, das geschieht mithilfe von Docker und Treafik. Es ist designt, um deine Leistung und die Sicherheit deiner Projekte zu verbessern. Dokploy erlaubt dir schnell und einfach auf jeder VPS deine Projekte zu verwirklichen. - - -## Erklärung -[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) | [Русский Язык](README-ru.md) - - - - -## 🌟 Vorteile - -- **Projekte**: - **Projekte**: Hoste jegliche Art von Projekt (Node.js, PHP, Python, Go, Ruby, etc.) mit Einfachheit. -- **Datenbanken**: Erstelle und manage Datenbanken, wie MySQL, PostgreSQL, MongoDB, MariaDB, Redis, und mehr. -- **Docker Management**: Einfach Docker container hosten und managen. -- **Traefik Integration**: Automatische Integration mit Traefik für routing und load balancing -- **Real-time Monitoring**: Monitor von CPU, RAM, Speicher, und network Nutzung. -- **Database Backups**: Automatische Backups mit Support für mehrere Speicher Systeme. - - -## 🚀 Loslegen - -Um anzufangen führe einfach den folgende command in einer VPS aus: - -```bash -curl -sSL https://dokploy.com/install.sh | sh -``` - -Getestete Systems: - -- Ubuntu 24.04 LTS (Noble Numbat) -- Ubuntu 23.10 (Mantic Minotaur) -- Ubuntu 22.04 LTS (Jammy Jellyfish) -- Ubuntu 20.04 LTS (Focal Fossa) -- Ubuntu 18.04 LTS (Bionic Beaver) -- Debian 12 -- Debian 11 -- Fedora 40 -- Centos 9 -- Centos 8 - - -## 📄 Dokumentation - -Für eine detaillierte Dokumentation, siehe [docs.dokploy.com/docs](https://docs.dokploy.com) - diff --git a/README-ru.md b/README-ru.md deleted file mode 100644 index 52881a4e..00000000 --- a/README-ru.md +++ /dev/null @@ -1,56 +0,0 @@ -
-

Dokploy

-
- -
-Логотип Dokploy -
-
- - - -Dokploy - это бесплатная самоустанавливаемая Платформа как Сервис (PaaS), которая упрощает развертывание и управление приложениями и базами данных с использованием Docker и Traefik. Разработанный для повышения эффективности и безопасности, Dokploy позволяет развертывать ваши приложения на любом VPS. - - - -## Объяснение -[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) - - - - -## 🌟 Особенности - -- **Приложения**: Легко развертывать любой тип приложения (Node.js, PHP, Python, Go, Ruby и др.). -- **Базы данных**: Создавайте и управляйте базами данных с поддержкой MySQL, PostgreSQL, MongoDB, MariaDB, Redis и других. -- **Управление Docker**: Легко развертывать и управляйте контейнерами Docker. -- **Интеграция с Traefik**: Автоматически интегрируется с Traefik для маршрутизации и балансировки нагрузки. -- **Мониторинг в реальном времени**: Отслеживайте использование CPU, памяти, хранилища и сети. -- **Резервное копирование баз данных**: Автоматизируйте резервное копирование с поддержкой нескольких мест хранения. - - -## 🚀 Начало работы - -Чтобы установить, выполните следующую команду на VPS: - - -```bash -curl -sSL https://dokploy.com/install.sh | sh -``` - -Проверенные системы: - -- Ubuntu 24.04 LTS (Noble Numbat) -- Ubuntu 23.10 (Mantic Minotaur) -- Ubuntu 22.04 LTS (Jammy Jellyfish) -- Ubuntu 20.04 LTS (Focal Fossa) -- Ubuntu 18.04 LTS (Bionic Beaver) -- Debian 12 -- Debian 11 -- Fedora 40 -- Centos 9 -- Centos 8 - - -## 📄 Документация -Для подробной документации посетите [docs.dokploy.com/docs](https://docs.dokploy.com). diff --git a/README-zh.md b/README-zh.md deleted file mode 100644 index 35c7fc1f..00000000 --- a/README-zh.md +++ /dev/null @@ -1,60 +0,0 @@ - - -
-

Dokploy

-
- -
-Reflex Logo -
-
- - - -Dokploy 是一个免费的自托管平台即服务 (PaaS),它使用 Docker 和 Traefik 简化了应用程序和数据库的部署和管理。 Dokploy 旨在提高效率和安全性,允许您在任何 VPS 上部署应用程序。 - -## 语言 -[English](README.md) - -[中文](README-zh.md) - -[Deutsch](README-de.md) - -[Русский Язык](README-ru.md) - - - - - -## 🌟 功能 - -- **应用程序**: 轻松部署任何类型的应用程序(Node.js,PHP,Python,Go、Ruby 等)。数据库: 创建和管理数据库,支持 MySQL,PostgreSQL,MongoDB、MariaDB、Redis 等。 -- **Docker 管理**: 轻松部署和管理 Docker 容器。 -- **Traefik 集成**: 自动与 Traefik 集成,用于路由和负载均衡。 -- **实时监控**: 监控 CPU,内存,存储和网络使用情况。 -- **数据库备份**: 支持多种存储目的地自动备份。 - -## 🚀 入门 -要开始使用 请在VPS 上运行以下命令: - -```bash -curl -sSL https://dokploy.com/install.sh | sh -``` - -经过测试的系统: - -- Ubuntu 24.04 LTS (Noble Numbat) -- Ubuntu 23.10 (Mantic Minotaur) -- Ubuntu 22.04 LTS (Jammy Jellyfish) -- Ubuntu 20.04 LTS (Focal Fossa) -- Ubuntu 18.04 LTS (Bionic Beaver) -- Debian 12 -- Debian 11 -- Fedora 40 -- Centos 9 -- Centos 8 - - -## 📄 文档 - -如需查看详细的文档资料 请访问[docs.dokploy.com/docs](https://docs.dokploy.com) diff --git a/README.md b/README.md index 9353e9de..f0365c5e 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Dokploy include multiples features to make your life easier. - **Real-time Monitoring**: Monitor CPU, memory, storage, and network usage, for every resource. - **Docker Management**: Easily deploy and manage Docker containers. - **CLI/API**: Manage your applications and databases using the command line or trought the API. +- **Notifications**: Get notified when your deployments are successful or failed (Slack, Discord, Telegram, Email, etc.) - **Self-Hosted**: Self-host Dokploy on your VPS. ## 🚀 Getting Started @@ -34,38 +35,63 @@ To get started run the following command in a VPS: curl -sSL https://dokploy.com/install.sh | sh ``` -## 📄 Documentation - For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com). +## Sponsors + +🙏 We're deeply grateful to all our sponsors who make Dokploy possible! Your support helps cover the costs of hosting, testing, and developing new features. + +[Dokploy Open Collective](https://opencollective.com/dokploy) + +[Github Sponsors](https://github.com/sponsors/Siumauricio) + + + + + +### Premium Supporters 🥇 + +
+bc direct logo +
+ + + + + +### Supporting Members 🥉 + +
+Lightspeed.run +
+ +### Community Backers 🤝 + +
+Lightspeed.run +
+ +#### Organizations: + +[![Sponsors on Open Collective](https://opencollective.com/dokploy/organizations.svg?width=890)](https://opencollective.com/dokploy) + +#### Individuals: + +[![Individual Contributors on Open Collective](https://opencollective.com/dokploy/individuals.svg?width=890)](https://opencollective.com/dokploy) + +### Contributors 🤝 + + + + + ## Video Tutorial Watch the video -## Donations - -If you like dokploy, and want to support the project to cover the costs of hosting, testing and development new features, you can donate to the project using the following link: - -Thanks to all the supporters! - -[Dokploy Open Collective](https://opencollective.com/dokploy) - -Organizations: - - - -Individuals: - - -## Contributors - - - - - -## Support OS + -## Explanation +## Contributing -[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) | [Русский Язык](README-ru.md) +Check out the [Contributing Guide](CONTRIBUTING.md) for more information. diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore new file mode 100644 index 00000000..0d548812 --- /dev/null +++ b/apps/docs/.gitignore @@ -0,0 +1,31 @@ +# deps +/node_modules + +# generated content +.contentlayer + +# test & build +/coverage +/.next/ +/out/ +/build +*.tsbuildinfo + +# bun +bun.lockb + +# misc +.DS_Store +*.pem +/.pnp +.pnp.js +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.idea/* +.idea + +# others +.env*.local +.vercel +next-env.d.ts diff --git a/apps/docs/.map.ts b/apps/docs/.map.ts new file mode 100644 index 00000000..bc920492 --- /dev/null +++ b/apps/docs/.map.ts @@ -0,0 +1,4 @@ +/** Auto-generated **/ +declare const map: Record; + +export { map }; diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 00000000..e3ee85e3 --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1,15 @@ +# Docs + +Dokploy Documentation + +Run development server: + +```bash +npm run dev +# or +pnpm dev +# or +yarn dev +``` + +Open http://localhost:3000 with your browser to see the result. diff --git a/apps/docs/api.json b/apps/docs/api.json new file mode 100644 index 00000000..bce590de --- /dev/null +++ b/apps/docs/api.json @@ -0,0 +1,9309 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Dokploy API", + "description": "Endpoints for dokploy", + "version": "v0.2.5" + }, + "servers": [ + { + "url": "http://localhost:3000/api" + } + ], + "paths": { + "/admin.one": { + "get": { + "operationId": "admin-one", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.createUserInvitation": { + "post": { + "operationId": "admin-createUserInvitation", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email" + } + }, + "required": ["email"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.removeUser": { + "post": { + "operationId": "admin-removeUser", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "authId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["authId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.getUserByToken": { + "get": { + "operationId": "admin-getUserByToken", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "token", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.assignPermissions": { + "post": { + "operationId": "admin-assignPermissions", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "minLength": 1 + }, + "canCreateProjects": { + "type": "boolean" + }, + "canCreateServices": { + "type": "boolean" + }, + "canDeleteProjects": { + "type": "boolean" + }, + "canDeleteServices": { + "type": "boolean" + }, + "accesedProjects": { + "type": "array", + "items": { + "type": "string" + } + }, + "accesedServices": { + "type": "array", + "items": { + "type": "string" + } + }, + "canAccessToTraefikFiles": { + "type": "boolean" + }, + "canAccessToDocker": { + "type": "boolean" + }, + "canAccessToAPI": { + "type": "boolean" + } + }, + "required": [ + "userId", + "canCreateProjects", + "canCreateServices", + "canDeleteProjects", + "canDeleteServices", + "accesedProjects", + "accesedServices", + "canAccessToTraefikFiles", + "canAccessToDocker", + "canAccessToAPI" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.cleanGithubApp": { + "post": { + "operationId": "admin-cleanGithubApp", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.getRepositories": { + "get": { + "operationId": "admin-getRepositories", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.getBranches": { + "get": { + "operationId": "admin-getBranches", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "repo", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + }, + { + "name": "owner", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/admin.haveGithubConfigured": { + "get": { + "operationId": "admin-haveGithubConfigured", + "tags": ["admin"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/docker.getContainers": { + "get": { + "operationId": "docker-getContainers", + "tags": ["docker"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/docker.getConfig": { + "get": { + "operationId": "docker-getConfig", + "tags": ["docker"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "containerId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/docker.getContainersByAppNameMatch": { + "get": { + "operationId": "docker-getContainersByAppNameMatch", + "tags": ["docker"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "appName", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/docker.getContainersByAppLabel": { + "get": { + "operationId": "docker-getContainersByAppLabel", + "tags": ["docker"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "appName", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.createAdmin": { + "post": { + "operationId": "auth-createAdmin", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "password": { + "type": "string", + "minLength": 8 + } + }, + "required": ["email", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.createUser": { + "post": { + "operationId": "auth-createUser", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "type": "string", + "minLength": 8 + }, + "id": { + "type": "string" + }, + "token": { + "type": "string", + "minLength": 1 + } + }, + "required": ["password", "id", "token"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.login": { + "post": { + "operationId": "auth-login", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "password": { + "type": "string", + "minLength": 8 + } + }, + "required": ["email", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.get": { + "get": { + "operationId": "auth-get", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.logout": { + "post": { + "operationId": "auth-logout", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.update": { + "post": { + "operationId": "auth-update", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "email": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "rol": { + "type": "string", + "enum": ["admin", "user"] + }, + "image": { + "type": "string" + }, + "secret": { + "type": "string", + "nullable": true + }, + "token": { + "type": "string", + "nullable": true + }, + "is2FAEnabled": { + "type": "boolean" + }, + "createdAt": { + "type": "string" + } + }, + "required": ["email", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.generateToken": { + "post": { + "operationId": "auth-generateToken", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.one": { + "get": { + "operationId": "auth-one", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.updateByAdmin": { + "post": { + "operationId": "auth-updateByAdmin", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "email": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "rol": { + "type": "string", + "enum": ["admin", "user"] + }, + "image": { + "type": "string" + }, + "secret": { + "type": "string", + "nullable": true + }, + "token": { + "type": "string", + "nullable": true + }, + "is2FAEnabled": { + "type": "boolean" + }, + "createdAt": { + "type": "string" + } + }, + "required": ["id", "email", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.generate2FASecret": { + "get": { + "operationId": "auth-generate2FASecret", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.verify2FASetup": { + "post": { + "operationId": "auth-verify2FASetup", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pin": { + "type": "string", + "minLength": 6 + }, + "secret": { + "type": "string", + "minLength": 1 + } + }, + "required": ["pin", "secret"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.verifyLogin2FA": { + "post": { + "operationId": "auth-verifyLogin2FA", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pin": { + "type": "string", + "minLength": 6 + }, + "id": { + "type": "string" + } + }, + "required": ["pin", "id"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.disable2FA": { + "post": { + "operationId": "auth-disable2FA", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/auth.verifyToken": { + "post": { + "operationId": "auth-verifyToken", + "tags": ["auth"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/project.create": { + "post": { + "operationId": "project-create", + "tags": ["project"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + } + }, + "required": ["name"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/project.one": { + "get": { + "operationId": "project-one", + "tags": ["project"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/project.all": { + "get": { + "operationId": "project-all", + "tags": ["project"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/project.remove": { + "post": { + "operationId": "project-remove", + "tags": ["project"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["projectId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/project.update": { + "post": { + "operationId": "project-update", + "tags": ["project"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["name", "projectId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.create": { + "post": { + "operationId": "application-create", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string" + } + }, + "required": ["name", "projectId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.one": { + "get": { + "operationId": "application-one", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "applicationId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.reload": { + "post": { + "operationId": "application-reload", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "appName": { + "type": "string" + }, + "applicationId": { + "type": "string" + } + }, + "required": ["appName", "applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.delete": { + "post": { + "operationId": "application-delete", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.stop": { + "post": { + "operationId": "application-stop", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.start": { + "post": { + "operationId": "application-start", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.redeploy": { + "post": { + "operationId": "application-redeploy", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.saveEnvironment": { + "post": { + "operationId": "application-saveEnvironment", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "env": { + "type": "string", + "nullable": true + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.saveBuildType": { + "post": { + "operationId": "application-saveBuildType", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "buildType": { + "type": "string", + "enum": [ + "dockerfile", + "heroku_buildpacks", + "paketo_buildpacks", + "nixpacks" + ] + }, + "dockerfile": { + "type": "string", + "nullable": true + } + }, + "required": ["applicationId", "buildType"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.saveGithubProvider": { + "post": { + "operationId": "application-saveGithubProvider", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "repository": { + "type": "string", + "nullable": true + }, + "branch": { + "type": "string", + "nullable": true + }, + "owner": { + "type": "string", + "nullable": true + }, + "buildPath": { + "type": "string", + "nullable": true + } + }, + "required": ["applicationId", "owner"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.saveDockerProvider": { + "post": { + "operationId": "application-saveDockerProvider", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dockerImage": { + "type": "string", + "nullable": true + }, + "applicationId": { + "type": "string" + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.saveGitProdiver": { + "post": { + "operationId": "application-saveGitProdiver", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "customGitBranch": { + "type": "string", + "nullable": true + }, + "applicationId": { + "type": "string" + }, + "customGitBuildPath": { + "type": "string", + "nullable": true + }, + "customGitUrl": { + "type": "string", + "nullable": true + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.generateSSHKey": { + "post": { + "operationId": "application-generateSSHKey", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.removeSSHKey": { + "post": { + "operationId": "application-removeSSHKey", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.markRunning": { + "post": { + "operationId": "application-markRunning", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.update": { + "post": { + "operationId": "application-update", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "memoryReservation": { + "type": "number", + "nullable": true + }, + "memoryLimit": { + "type": "number", + "nullable": true + }, + "cpuReservation": { + "type": "number", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "enabled": { + "type": "boolean", + "nullable": true + }, + "subtitle": { + "type": "string", + "nullable": true + }, + "command": { + "type": "string", + "nullable": true + }, + "refreshToken": { + "type": "string", + "nullable": true + }, + "sourceType": { + "type": "string", + "enum": ["github", "docker", "git"] + }, + "repository": { + "type": "string", + "nullable": true + }, + "owner": { + "type": "string", + "nullable": true + }, + "branch": { + "type": "string", + "nullable": true + }, + "buildPath": { + "type": "string", + "nullable": true + }, + "autoDeploy": { + "type": "boolean", + "nullable": true + }, + "username": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string", + "nullable": true + }, + "dockerImage": { + "type": "string", + "nullable": true + }, + "customGitUrl": { + "type": "string", + "nullable": true + }, + "customGitBranch": { + "type": "string", + "nullable": true + }, + "customGitBuildPath": { + "type": "string", + "nullable": true + }, + "customGitSSHKey": { + "type": "string", + "nullable": true + }, + "dockerfile": { + "type": "string", + "nullable": true + }, + "healthCheckSwarm": { + "type": "object", + "properties": { + "Test": { + "type": "array", + "items": { + "type": "string" + } + }, + "Interval": { + "type": "number" + }, + "Timeout": { + "type": "number" + }, + "StartPeriod": { + "type": "number" + }, + "Retries": { + "type": "number" + } + }, + "additionalProperties": false, + "nullable": true + }, + "restartPolicySwarm": { + "type": "object", + "properties": { + "Condition": { + "type": "string" + }, + "Delay": { + "type": "number" + }, + "MaxAttempts": { + "type": "number" + }, + "Window": { + "type": "number" + } + }, + "additionalProperties": false, + "nullable": true + }, + "placementSwarm": { + "type": "object", + "properties": { + "Constraints": { + "type": "array", + "items": { + "type": "string" + } + }, + "Preferences": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Spread": { + "type": "object", + "properties": { + "SpreadDescriptor": { + "type": "string" + } + }, + "required": ["SpreadDescriptor"], + "additionalProperties": false + } + }, + "required": ["Spread"], + "additionalProperties": false + } + }, + "MaxReplicas": { + "type": "number" + }, + "Platforms": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Architecture": { + "type": "string" + }, + "OS": { + "type": "string" + } + }, + "required": ["Architecture", "OS"], + "additionalProperties": false + } + } + }, + "additionalProperties": false, + "nullable": true + }, + "updateConfigSwarm": { + "type": "object", + "properties": { + "Parallelism": { + "type": "number" + }, + "Delay": { + "type": "number" + }, + "FailureAction": { + "type": "string" + }, + "Monitor": { + "type": "number" + }, + "MaxFailureRatio": { + "type": "number" + }, + "Order": { + "type": "string" + } + }, + "required": ["Parallelism", "Order"], + "additionalProperties": false, + "nullable": true + }, + "rollbackConfigSwarm": { + "type": "object", + "properties": { + "Parallelism": { + "type": "number" + }, + "Delay": { + "type": "number" + }, + "FailureAction": { + "type": "string" + }, + "Monitor": { + "type": "number" + }, + "MaxFailureRatio": { + "type": "number" + }, + "Order": { + "type": "string" + } + }, + "required": ["Parallelism", "Order"], + "additionalProperties": false, + "nullable": true + }, + "modeSwarm": { + "type": "object", + "properties": { + "Replicated": { + "type": "object", + "properties": { + "Replicas": { + "type": "number" + } + }, + "additionalProperties": false + }, + "Global": { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + "ReplicatedJob": { + "type": "object", + "properties": { + "MaxConcurrent": { + "type": "number" + }, + "TotalCompletions": { + "type": "number" + } + }, + "additionalProperties": false + }, + "GlobalJob": { + "type": "object", + "properties": {}, + "additionalProperties": false + } + }, + "additionalProperties": false, + "nullable": true + }, + "labelsSwarm": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "networkSwarm": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Target": { + "type": "string" + }, + "Aliases": { + "type": "array", + "items": { + "type": "string" + } + }, + "DriverOpts": { + "type": "object", + "properties": {}, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "nullable": true + }, + "replicas": { + "type": "number" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "buildType": { + "type": "string", + "enum": [ + "dockerfile", + "heroku_buildpacks", + "paketo_buildpacks", + "nixpacks" + ] + }, + "createdAt": { + "type": "string" + }, + "registryId": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.refreshToken": { + "post": { + "operationId": "application-refreshToken", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.deploy": { + "post": { + "operationId": "application-deploy", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.cleanQueues": { + "post": { + "operationId": "application-cleanQueues", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.readTraefikConfig": { + "get": { + "operationId": "application-readTraefikConfig", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "applicationId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.updateTraefikConfig": { + "post": { + "operationId": "application-updateTraefikConfig", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "traefikConfig": { + "type": "string" + } + }, + "required": ["applicationId", "traefikConfig"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/application.readAppMonitoring": { + "get": { + "operationId": "application-readAppMonitoring", + "tags": ["application"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "appName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.create": { + "post": { + "operationId": "mysql-create", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "dockerImage": { + "type": "string", + "default": "mysql:8" + }, + "projectId": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "minLength": 1 + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "databaseRootPassword": { + "type": "string" + } + }, + "required": [ + "name", + "appName", + "projectId", + "databaseName", + "databaseUser", + "databasePassword", + "databaseRootPassword" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.one": { + "get": { + "operationId": "mysql-one", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "mysqlId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.start": { + "post": { + "operationId": "mysql-start", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + } + }, + "required": ["mysqlId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.stop": { + "post": { + "operationId": "mysql-stop", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + } + }, + "required": ["mysqlId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.saveExternalPort": { + "post": { + "operationId": "mysql-saveExternalPort", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + }, + "externalPort": { + "type": "number", + "nullable": true + } + }, + "required": ["mysqlId", "externalPort"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.deploy": { + "post": { + "operationId": "mysql-deploy", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + } + }, + "required": ["mysqlId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.changeStatus": { + "post": { + "operationId": "mysql-changeStatus", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + } + }, + "required": ["mysqlId", "applicationStatus"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.reload": { + "post": { + "operationId": "mysql-reload", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + }, + "appName": { + "type": "string", + "minLength": 1 + } + }, + "required": ["mysqlId", "appName"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.remove": { + "post": { + "operationId": "mysql-remove", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + } + }, + "required": ["mysqlId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.saveEnvironment": { + "post": { + "operationId": "mysql-saveEnvironment", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string" + }, + "env": { + "type": "string", + "nullable": true + } + }, + "required": ["mysqlId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mysql.update": { + "post": { + "operationId": "mysql-update", + "tags": ["mysql"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mysqlId": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "minLength": 1 + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "databaseRootPassword": { + "type": "string" + }, + "dockerImage": { + "type": "string", + "default": "mysql:8" + }, + "command": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "memoryReservation": { + "type": "number", + "nullable": true + }, + "memoryLimit": { + "type": "number", + "nullable": true + }, + "cpuReservation": { + "type": "number", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "nullable": true + }, + "externalPort": { + "type": "number", + "nullable": true + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "createdAt": { + "type": "string" + }, + "projectId": { + "type": "string" + } + }, + "required": ["mysqlId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.create": { + "post": { + "operationId": "postgres-create", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string" + }, + "databaseName": { + "type": "string", + "minLength": 1 + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "dockerImage": { + "type": "string", + "default": "postgres:15" + }, + "projectId": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "appName", + "databaseName", + "databaseUser", + "databasePassword", + "projectId" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.one": { + "get": { + "operationId": "postgres-one", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "postgresId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.start": { + "post": { + "operationId": "postgres-start", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + } + }, + "required": ["postgresId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.stop": { + "post": { + "operationId": "postgres-stop", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + } + }, + "required": ["postgresId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.saveExternalPort": { + "post": { + "operationId": "postgres-saveExternalPort", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + }, + "externalPort": { + "type": "number", + "nullable": true + } + }, + "required": ["postgresId", "externalPort"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.deploy": { + "post": { + "operationId": "postgres-deploy", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + } + }, + "required": ["postgresId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.changeStatus": { + "post": { + "operationId": "postgres-changeStatus", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + } + }, + "required": ["postgresId", "applicationStatus"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.remove": { + "post": { + "operationId": "postgres-remove", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + } + }, + "required": ["postgresId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.saveEnvironment": { + "post": { + "operationId": "postgres-saveEnvironment", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + }, + "env": { + "type": "string", + "nullable": true + } + }, + "required": ["postgresId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.reload": { + "post": { + "operationId": "postgres-reload", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string" + }, + "appName": { + "type": "string" + } + }, + "required": ["postgresId", "appName"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/postgres.update": { + "post": { + "operationId": "postgres-update", + "tags": ["postgres"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "postgresId": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string" + }, + "databaseName": { + "type": "string", + "minLength": 1 + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "dockerImage": { + "type": "string", + "default": "postgres:15" + }, + "command": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "memoryReservation": { + "type": "number", + "nullable": true + }, + "externalPort": { + "type": "number", + "nullable": true + }, + "memoryLimit": { + "type": "number", + "nullable": true + }, + "cpuReservation": { + "type": "number", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "nullable": true + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "createdAt": { + "type": "string" + }, + "projectId": { + "type": "string" + } + }, + "required": ["postgresId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.create": { + "post": { + "operationId": "redis-create", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "dockerImage": { + "type": "string", + "default": "redis:8" + }, + "projectId": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + }, + "required": [ + "name", + "appName", + "databasePassword", + "projectId" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.one": { + "get": { + "operationId": "redis-one", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "redisId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.start": { + "post": { + "operationId": "redis-start", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + } + }, + "required": ["redisId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.reload": { + "post": { + "operationId": "redis-reload", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + }, + "appName": { + "type": "string", + "minLength": 1 + } + }, + "required": ["redisId", "appName"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.stop": { + "post": { + "operationId": "redis-stop", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + } + }, + "required": ["redisId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.saveExternalPort": { + "post": { + "operationId": "redis-saveExternalPort", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + }, + "externalPort": { + "type": "number", + "nullable": true + } + }, + "required": ["redisId", "externalPort"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.deploy": { + "post": { + "operationId": "redis-deploy", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + } + }, + "required": ["redisId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.changeStatus": { + "post": { + "operationId": "redis-changeStatus", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + } + }, + "required": ["redisId", "applicationStatus"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.remove": { + "post": { + "operationId": "redis-remove", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + } + }, + "required": ["redisId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.saveEnvironment": { + "post": { + "operationId": "redis-saveEnvironment", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string" + }, + "env": { + "type": "string", + "nullable": true + } + }, + "required": ["redisId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redis.update": { + "post": { + "operationId": "redis-update", + "tags": ["redis"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redisId": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + }, + "databasePassword": { + "type": "string" + }, + "dockerImage": { + "type": "string", + "default": "redis:8" + }, + "command": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "memoryReservation": { + "type": "number", + "nullable": true + }, + "memoryLimit": { + "type": "number", + "nullable": true + }, + "cpuReservation": { + "type": "number", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "nullable": true + }, + "externalPort": { + "type": "number", + "nullable": true + }, + "createdAt": { + "type": "string" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "projectId": { + "type": "string" + } + }, + "required": ["redisId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.create": { + "post": { + "operationId": "mongo-create", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "dockerImage": { + "type": "string", + "default": "mongo:15" + }, + "projectId": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + } + }, + "required": [ + "name", + "appName", + "projectId", + "databaseUser", + "databasePassword" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.one": { + "get": { + "operationId": "mongo-one", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "mongoId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.start": { + "post": { + "operationId": "mongo-start", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + } + }, + "required": ["mongoId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.stop": { + "post": { + "operationId": "mongo-stop", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + } + }, + "required": ["mongoId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.saveExternalPort": { + "post": { + "operationId": "mongo-saveExternalPort", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + }, + "externalPort": { + "type": "number", + "nullable": true + } + }, + "required": ["mongoId", "externalPort"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.deploy": { + "post": { + "operationId": "mongo-deploy", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + } + }, + "required": ["mongoId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.changeStatus": { + "post": { + "operationId": "mongo-changeStatus", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + } + }, + "required": ["mongoId", "applicationStatus"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.reload": { + "post": { + "operationId": "mongo-reload", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + }, + "appName": { + "type": "string", + "minLength": 1 + } + }, + "required": ["mongoId", "appName"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.remove": { + "post": { + "operationId": "mongo-remove", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + } + }, + "required": ["mongoId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.saveEnvironment": { + "post": { + "operationId": "mongo-saveEnvironment", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string" + }, + "env": { + "type": "string", + "nullable": true + } + }, + "required": ["mongoId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mongo.update": { + "post": { + "operationId": "mongo-update", + "tags": ["mongo"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mongoId": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "dockerImage": { + "type": "string", + "default": "mongo:15" + }, + "command": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "memoryReservation": { + "type": "number", + "nullable": true + }, + "memoryLimit": { + "type": "number", + "nullable": true + }, + "cpuReservation": { + "type": "number", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "nullable": true + }, + "externalPort": { + "type": "number", + "nullable": true + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "createdAt": { + "type": "string" + }, + "projectId": { + "type": "string" + } + }, + "required": ["mongoId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.create": { + "post": { + "operationId": "mariadb-create", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "dockerImage": { + "type": "string", + "default": "mariadb:6" + }, + "databaseRootPassword": { + "type": "string" + }, + "projectId": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "minLength": 1 + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + } + }, + "required": [ + "name", + "appName", + "databaseRootPassword", + "projectId", + "databaseName", + "databaseUser", + "databasePassword" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.one": { + "get": { + "operationId": "mariadb-one", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "mariadbId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.start": { + "post": { + "operationId": "mariadb-start", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + } + }, + "required": ["mariadbId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.stop": { + "post": { + "operationId": "mariadb-stop", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + } + }, + "required": ["mariadbId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.saveExternalPort": { + "post": { + "operationId": "mariadb-saveExternalPort", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + }, + "externalPort": { + "type": "number", + "nullable": true + } + }, + "required": ["mariadbId", "externalPort"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.deploy": { + "post": { + "operationId": "mariadb-deploy", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + } + }, + "required": ["mariadbId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.changeStatus": { + "post": { + "operationId": "mariadb-changeStatus", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + } + }, + "required": ["mariadbId", "applicationStatus"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.remove": { + "post": { + "operationId": "mariadb-remove", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + } + }, + "required": ["mariadbId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.saveEnvironment": { + "post": { + "operationId": "mariadb-saveEnvironment", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + }, + "env": { + "type": "string", + "nullable": true + } + }, + "required": ["mariadbId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.reload": { + "post": { + "operationId": "mariadb-reload", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string" + }, + "appName": { + "type": "string", + "minLength": 1 + } + }, + "required": ["mariadbId", "appName"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mariadb.update": { + "post": { + "operationId": "mariadb-update", + "tags": ["mariadb"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mariadbId": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + }, + "databaseName": { + "type": "string", + "minLength": 1 + }, + "databaseUser": { + "type": "string", + "minLength": 1 + }, + "databasePassword": { + "type": "string" + }, + "databaseRootPassword": { + "type": "string" + }, + "dockerImage": { + "type": "string", + "default": "mariadb:6" + }, + "command": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "memoryReservation": { + "type": "number", + "nullable": true + }, + "memoryLimit": { + "type": "number", + "nullable": true + }, + "cpuReservation": { + "type": "number", + "nullable": true + }, + "cpuLimit": { + "type": "number", + "nullable": true + }, + "externalPort": { + "type": "number", + "nullable": true + }, + "applicationStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "createdAt": { + "type": "string" + }, + "projectId": { + "type": "string" + } + }, + "required": ["mariadbId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.create": { + "post": { + "operationId": "compose-create", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "description": { + "type": "string", + "nullable": true + }, + "projectId": { + "type": "string" + }, + "composeType": { + "type": "string", + "enum": ["docker-compose", "stack"] + }, + "appName": { + "type": "string" + } + }, + "required": ["name", "projectId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.one": { + "get": { + "operationId": "compose-one", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "composeId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.update": { + "post": { + "operationId": "compose-update", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "appName": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "env": { + "type": "string", + "nullable": true + }, + "composeFile": { + "type": "string" + }, + "refreshToken": { + "type": "string", + "nullable": true + }, + "sourceType": { + "type": "string", + "enum": ["git", "github", "raw"] + }, + "composeType": { + "type": "string", + "enum": ["docker-compose", "stack"] + }, + "repository": { + "type": "string", + "nullable": true + }, + "owner": { + "type": "string", + "nullable": true + }, + "branch": { + "type": "string", + "nullable": true + }, + "autoDeploy": { + "type": "boolean", + "nullable": true + }, + "customGitUrl": { + "type": "string", + "nullable": true + }, + "customGitBranch": { + "type": "string", + "nullable": true + }, + "customGitSSHKey": { + "type": "string", + "nullable": true + }, + "command": { + "type": "string" + }, + "composePath": { + "type": "string", + "minLength": 1 + }, + "composeStatus": { + "type": "string", + "enum": ["idle", "running", "done", "error"] + }, + "projectId": { + "type": "string" + }, + "createdAt": { + "type": "string" + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.delete": { + "post": { + "operationId": "compose-delete", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.cleanQueues": { + "post": { + "operationId": "compose-cleanQueues", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.allServices": { + "get": { + "operationId": "compose-allServices", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "composeId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.randomizeCompose": { + "post": { + "operationId": "compose-randomizeCompose", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + }, + "prefix": { + "type": "string" + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.deploy": { + "post": { + "operationId": "compose-deploy", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.redeploy": { + "post": { + "operationId": "compose-redeploy", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.stop": { + "post": { + "operationId": "compose-stop", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.getDefaultCommand": { + "get": { + "operationId": "compose-getDefaultCommand", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "composeId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.generateSSHKey": { + "post": { + "operationId": "compose-generateSSHKey", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.refreshToken": { + "post": { + "operationId": "compose-refreshToken", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.removeSSHKey": { + "post": { + "operationId": "compose-removeSSHKey", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "composeId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["composeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.deployTemplate": { + "post": { + "operationId": "compose-deployTemplate", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "id": { + "type": "string", + "minLength": 1 + } + }, + "required": ["projectId", "id"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/compose.templates": { + "get": { + "operationId": "compose-templates", + "tags": ["compose"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/user.all": { + "get": { + "operationId": "user-all", + "tags": ["user"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/user.byAuthId": { + "get": { + "operationId": "user-byAuthId", + "tags": ["user"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "authId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/user.byUserId": { + "get": { + "operationId": "user-byUserId", + "tags": ["user"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.create": { + "post": { + "operationId": "domain-create", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "host": { + "type": "string", + "minLength": 1 + }, + "path": { + "type": "string", + "minLength": 1, + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "https": { + "type": "boolean" + }, + "applicationId": { + "type": "string" + }, + "certificateType": { + "type": "string", + "enum": ["letsencrypt", "none"] + } + }, + "required": [ + "host", + "path", + "port", + "https", + "applicationId", + "certificateType" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.byApplicationId": { + "get": { + "operationId": "domain-byApplicationId", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "applicationId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.generateDomain": { + "post": { + "operationId": "domain-generateDomain", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.generateWildcard": { + "post": { + "operationId": "domain-generateWildcard", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + }, + "required": ["applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.update": { + "post": { + "operationId": "domain-update", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domainId": { + "type": "string", + "minLength": 1 + }, + "host": { + "type": "string", + "minLength": 1 + }, + "path": { + "type": "string", + "minLength": 1, + "nullable": true + }, + "port": { + "type": "number", + "nullable": true + }, + "https": { + "type": "boolean" + }, + "certificateType": { + "type": "string", + "enum": ["letsencrypt", "none"] + } + }, + "required": [ + "domainId", + "host", + "path", + "port", + "https", + "certificateType" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.one": { + "get": { + "operationId": "domain-one", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/domain.delete": { + "post": { + "operationId": "domain-delete", + "tags": ["domain"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "domainId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["domainId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/destination.create": { + "post": { + "operationId": "destination-create", + "tags": ["destination"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "accessKey": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "secretAccessKey": { + "type": "string" + } + }, + "required": [ + "name", + "accessKey", + "bucket", + "region", + "endpoint", + "secretAccessKey" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/destination.testConnection": { + "post": { + "operationId": "destination-testConnection", + "tags": ["destination"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "accessKey": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "secretAccessKey": { + "type": "string" + } + }, + "required": [ + "name", + "accessKey", + "bucket", + "region", + "endpoint", + "secretAccessKey" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/destination.one": { + "get": { + "operationId": "destination-one", + "tags": ["destination"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "destinationId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/destination.all": { + "get": { + "operationId": "destination-all", + "tags": ["destination"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/destination.remove": { + "post": { + "operationId": "destination-remove", + "tags": ["destination"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "destinationId": { + "type": "string" + } + }, + "required": ["destinationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/destination.update": { + "post": { + "operationId": "destination-update", + "tags": ["destination"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "accessKey": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "region": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "secretAccessKey": { + "type": "string" + }, + "destinationId": { + "type": "string" + } + }, + "required": [ + "name", + "accessKey", + "bucket", + "region", + "endpoint", + "secretAccessKey", + "destinationId" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.create": { + "post": { + "operationId": "backup-create", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schedule": { + "type": "string" + }, + "enabled": { + "type": "boolean", + "nullable": true + }, + "prefix": { + "type": "string", + "minLength": 1 + }, + "destinationId": { + "type": "string" + }, + "database": { + "type": "string", + "minLength": 1 + }, + "mariadbId": { + "type": "string", + "nullable": true + }, + "mysqlId": { + "type": "string", + "nullable": true + }, + "postgresId": { + "type": "string", + "nullable": true + }, + "mongoId": { + "type": "string", + "nullable": true + }, + "databaseType": { + "type": "string", + "enum": ["postgres", "mariadb", "mysql", "mongo"] + } + }, + "required": [ + "schedule", + "prefix", + "destinationId", + "database", + "databaseType" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.one": { + "get": { + "operationId": "backup-one", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "backupId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.update": { + "post": { + "operationId": "backup-update", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schedule": { + "type": "string" + }, + "enabled": { + "type": "boolean", + "nullable": true + }, + "prefix": { + "type": "string", + "minLength": 1 + }, + "backupId": { + "type": "string" + }, + "destinationId": { + "type": "string" + }, + "database": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "schedule", + "prefix", + "backupId", + "destinationId", + "database" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.remove": { + "post": { + "operationId": "backup-remove", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "backupId": { + "type": "string" + } + }, + "required": ["backupId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.manualBackupPostgres": { + "post": { + "operationId": "backup-manualBackupPostgres", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "backupId": { + "type": "string" + } + }, + "required": ["backupId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.manualBackupMySql": { + "post": { + "operationId": "backup-manualBackupMySql", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "backupId": { + "type": "string" + } + }, + "required": ["backupId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.manualBackupMariadb": { + "post": { + "operationId": "backup-manualBackupMariadb", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "backupId": { + "type": "string" + } + }, + "required": ["backupId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/backup.manualBackupMongo": { + "post": { + "operationId": "backup-manualBackupMongo", + "tags": ["backup"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "backupId": { + "type": "string" + } + }, + "required": ["backupId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/deployment.all": { + "get": { + "operationId": "deployment-all", + "tags": ["deployment"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "applicationId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/deployment.allByCompose": { + "get": { + "operationId": "deployment-allByCompose", + "tags": ["deployment"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "composeId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mounts.create": { + "post": { + "operationId": "mounts-create", + "tags": ["mounts"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["bind", "volume", "file"] + }, + "hostPath": { + "type": "string", + "nullable": true + }, + "volumeName": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "mountPath": { + "type": "string", + "minLength": 1 + }, + "serviceType": { + "type": "string", + "enum": [ + "application", + "postgres", + "mysql", + "mariadb", + "mongo", + "redis", + "compose" + ], + "default": "application" + }, + "serviceId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["type", "mountPath", "serviceId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mounts.remove": { + "post": { + "operationId": "mounts-remove", + "tags": ["mounts"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mountId": { + "type": "string" + } + }, + "required": ["mountId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mounts.one": { + "get": { + "operationId": "mounts-one", + "tags": ["mounts"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "mountId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/mounts.update": { + "post": { + "operationId": "mounts-update", + "tags": ["mounts"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mountId": { + "type": "string", + "minLength": 1 + }, + "type": { + "type": "string", + "enum": ["bind", "volume", "file"] + }, + "hostPath": { + "type": "string", + "nullable": true + }, + "volumeName": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "serviceType": { + "type": "string", + "enum": [ + "application", + "postgres", + "mysql", + "mariadb", + "mongo", + "redis", + "compose" + ], + "default": "application" + }, + "mountPath": { + "type": "string", + "minLength": 1 + }, + "applicationId": { + "type": "string", + "nullable": true + }, + "postgresId": { + "type": "string", + "nullable": true + }, + "mariadbId": { + "type": "string", + "nullable": true + }, + "mongoId": { + "type": "string", + "nullable": true + }, + "mysqlId": { + "type": "string", + "nullable": true + }, + "redisId": { + "type": "string", + "nullable": true + }, + "composeId": { + "type": "string", + "nullable": true + } + }, + "required": ["mountId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/certificates.create": { + "post": { + "operationId": "certificates-create", + "tags": ["certificates"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "certificateId": { + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "certificateData": { + "type": "string", + "minLength": 1 + }, + "privateKey": { + "type": "string", + "minLength": 1 + }, + "certificatePath": { + "type": "string" + }, + "autoRenew": { + "type": "boolean", + "nullable": true + } + }, + "required": ["name", "certificateData", "privateKey"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/certificates.one": { + "get": { + "operationId": "certificates-one", + "tags": ["certificates"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "certificateId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/certificates.remove": { + "post": { + "operationId": "certificates-remove", + "tags": ["certificates"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "certificateId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["certificateId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/certificates.all": { + "get": { + "operationId": "certificates-all", + "tags": ["certificates"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.reloadServer": { + "post": { + "operationId": "settings-reloadServer", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.reloadTraefik": { + "post": { + "operationId": "settings-reloadTraefik", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanUnusedImages": { + "post": { + "operationId": "settings-cleanUnusedImages", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanUnusedVolumes": { + "post": { + "operationId": "settings-cleanUnusedVolumes", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanStoppedContainers": { + "post": { + "operationId": "settings-cleanStoppedContainers", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanDockerBuilder": { + "post": { + "operationId": "settings-cleanDockerBuilder", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanDockerPrune": { + "post": { + "operationId": "settings-cleanDockerPrune", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanAll": { + "post": { + "operationId": "settings-cleanAll", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanMonitoring": { + "post": { + "operationId": "settings-cleanMonitoring", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.saveSSHPrivateKey": { + "post": { + "operationId": "settings-saveSSHPrivateKey", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sshPrivateKey": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.assignDomainServer": { + "post": { + "operationId": "settings-assignDomainServer", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "letsEncryptEmail": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string", + "nullable": true + }, + "certificateType": { + "type": "string", + "enum": ["letsencrypt", "none"], + "default": "none" + } + }, + "required": ["letsEncryptEmail", "host"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.cleanSSHPrivateKey": { + "post": { + "operationId": "settings-cleanSSHPrivateKey", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.updateDockerCleanup": { + "post": { + "operationId": "settings-updateDockerCleanup", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enableDockerCleanup": { + "type": "boolean" + } + }, + "required": ["enableDockerCleanup"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.readTraefikConfig": { + "get": { + "operationId": "settings-readTraefikConfig", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.updateTraefikConfig": { + "post": { + "operationId": "settings-updateTraefikConfig", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "traefikConfig": { + "type": "string", + "minLength": 1 + } + }, + "required": ["traefikConfig"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.readWebServerTraefikConfig": { + "get": { + "operationId": "settings-readWebServerTraefikConfig", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.updateWebServerTraefikConfig": { + "post": { + "operationId": "settings-updateWebServerTraefikConfig", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "traefikConfig": { + "type": "string", + "minLength": 1 + } + }, + "required": ["traefikConfig"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.readMiddlewareTraefikConfig": { + "get": { + "operationId": "settings-readMiddlewareTraefikConfig", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.updateMiddlewareTraefikConfig": { + "post": { + "operationId": "settings-updateMiddlewareTraefikConfig", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "traefikConfig": { + "type": "string", + "minLength": 1 + } + }, + "required": ["traefikConfig"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.checkAndUpdateImage": { + "post": { + "operationId": "settings-checkAndUpdateImage", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.updateServer": { + "post": { + "operationId": "settings-updateServer", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.getDokployVersion": { + "get": { + "operationId": "settings-getDokployVersion", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.readDirectories": { + "get": { + "operationId": "settings-readDirectories", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.updateTraefikFile": { + "post": { + "operationId": "settings-updateTraefikFile", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "path": { + "type": "string", + "minLength": 1 + }, + "traefikConfig": { + "type": "string", + "minLength": 1 + } + }, + "required": ["path", "traefikConfig"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.readTraefikFile": { + "get": { + "operationId": "settings-readTraefikFile", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "path", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/settings.getOpenApiDocument": { + "get": { + "operationId": "settings-getOpenApiDocument", + "tags": ["settings"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/security.create": { + "post": { + "operationId": "security-create", + "tags": ["security"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "username": { + "type": "string", + "minLength": 1 + }, + "password": { + "type": "string", + "minLength": 1 + } + }, + "required": ["applicationId", "username", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/security.one": { + "get": { + "operationId": "security-one", + "tags": ["security"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "securityId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/security.delete": { + "post": { + "operationId": "security-delete", + "tags": ["security"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "securityId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["securityId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/security.update": { + "post": { + "operationId": "security-update", + "tags": ["security"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "securityId": { + "type": "string", + "minLength": 1 + }, + "username": { + "type": "string", + "minLength": 1 + }, + "password": { + "type": "string", + "minLength": 1 + } + }, + "required": ["securityId", "username", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redirects.create": { + "post": { + "operationId": "redirects-create", + "tags": ["redirects"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "regex": { + "type": "string", + "minLength": 1 + }, + "replacement": { + "type": "string", + "minLength": 1 + }, + "permanent": { + "type": "boolean" + }, + "applicationId": { + "type": "string" + } + }, + "required": [ + "regex", + "replacement", + "permanent", + "applicationId" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redirects.one": { + "get": { + "operationId": "redirects-one", + "tags": ["redirects"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "redirectId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redirects.delete": { + "post": { + "operationId": "redirects-delete", + "tags": ["redirects"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["redirectId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/redirects.update": { + "post": { + "operationId": "redirects-update", + "tags": ["redirects"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectId": { + "type": "string", + "minLength": 1 + }, + "regex": { + "type": "string", + "minLength": 1 + }, + "replacement": { + "type": "string", + "minLength": 1 + }, + "permanent": { + "type": "boolean" + } + }, + "required": ["redirectId", "regex", "replacement", "permanent"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/port.create": { + "post": { + "operationId": "port-create", + "tags": ["port"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "publishedPort": { + "type": "number" + }, + "targetPort": { + "type": "number" + }, + "protocol": { + "type": "string", + "enum": ["tcp", "udp"], + "default": "tcp" + }, + "applicationId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["publishedPort", "targetPort", "applicationId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/port.one": { + "get": { + "operationId": "port-one", + "tags": ["port"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "portId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/port.delete": { + "post": { + "operationId": "port-delete", + "tags": ["port"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "portId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["portId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/port.update": { + "post": { + "operationId": "port-update", + "tags": ["port"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "portId": { + "type": "string", + "minLength": 1 + }, + "publishedPort": { + "type": "number" + }, + "targetPort": { + "type": "number" + }, + "protocol": { + "type": "string", + "enum": ["tcp", "udp"], + "default": "tcp" + } + }, + "required": ["portId", "publishedPort", "targetPort"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.create": { + "post": { + "operationId": "registry-create", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "minLength": 1 + }, + "username": { + "type": "string", + "minLength": 1 + }, + "password": { + "type": "string", + "minLength": 1 + }, + "registryUrl": { + "type": "string" + }, + "registryType": { + "type": "string", + "enum": ["selfHosted", "cloud"] + }, + "imagePrefix": { + "type": "string", + "nullable": true + } + }, + "required": [ + "registryName", + "username", + "password", + "registryUrl", + "registryType", + "imagePrefix" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.remove": { + "post": { + "operationId": "registry-remove", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "registryId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["registryId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.update": { + "post": { + "operationId": "registry-update", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "registryId": { + "type": "string", + "minLength": 1 + }, + "registryName": { + "type": "string", + "minLength": 1 + }, + "imagePrefix": { + "type": "string", + "nullable": true + }, + "username": { + "type": "string", + "minLength": 1 + }, + "password": { + "type": "string", + "minLength": 1 + }, + "registryUrl": { + "type": "string", + "minLength": 1 + }, + "createdAt": { + "type": "string" + }, + "registryType": { + "type": "string", + "enum": ["selfHosted", "cloud"] + }, + "adminId": { + "type": "string", + "minLength": 1 + } + }, + "required": ["registryId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.all": { + "get": { + "operationId": "registry-all", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.one": { + "get": { + "operationId": "registry-one", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [ + { + "name": "registryId", + "in": "query", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.testRegistry": { + "post": { + "operationId": "registry-testRegistry", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "registryName": { + "type": "string", + "minLength": 1 + }, + "username": { + "type": "string", + "minLength": 1 + }, + "password": { + "type": "string", + "minLength": 1 + }, + "registryUrl": { + "type": "string" + }, + "registryType": { + "type": "string", + "enum": ["selfHosted", "cloud"] + }, + "imagePrefix": { + "type": "string", + "nullable": true + } + }, + "required": [ + "registryName", + "username", + "password", + "registryUrl", + "registryType" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/registry.enableSelfHostedRegistry": { + "post": { + "operationId": "registry-enableSelfHostedRegistry", + "tags": ["registry"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "registryUrl": { + "type": "string", + "minLength": 1 + }, + "username": { + "type": "string", + "minLength": 1 + }, + "password": { + "type": "string", + "minLength": 1 + } + }, + "required": ["registryUrl", "username", "password"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/cluster.getNodes": { + "get": { + "operationId": "cluster-getNodes", + "tags": ["cluster"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/cluster.removeWorker": { + "post": { + "operationId": "cluster-removeWorker", + "tags": ["cluster"], + "security": [ + { + "Authorization": [] + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "nodeId": { + "type": "string" + } + }, + "required": ["nodeId"], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/cluster.addWorker": { + "get": { + "operationId": "cluster-addWorker", + "tags": ["cluster"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/cluster.addManager": { + "get": { + "operationId": "cluster-addManager", + "tags": ["cluster"], + "security": [ + { + "Authorization": [] + } + ], + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": {} + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + } + }, + "components": { + "securitySchemes": { + "Authorization": { + "type": "http", + "scheme": "bearer" + } + }, + "responses": { + "error": { + "description": "Error response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "code": { + "type": "string" + }, + "issues": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": ["message"], + "additionalProperties": false + } + } + }, + "required": ["message", "code"], + "additionalProperties": false + } + } + } + } + } + }, + "tags": [ + { + "name": "admin" + }, + { + "name": "docker" + }, + { + "name": "compose" + }, + { + "name": "registry" + }, + { + "name": "cluster" + }, + { + "name": "user" + }, + { + "name": "domain" + }, + { + "name": "destination" + }, + { + "name": "backup" + }, + { + "name": "deployment" + }, + { + "name": "mounts" + }, + { + "name": "certificates" + }, + { + "name": "settings" + }, + { + "name": "security" + }, + { + "name": "redirects" + }, + { + "name": "port" + }, + { + "name": "project" + }, + { + "name": "application" + }, + { + "name": "mysql" + }, + { + "name": "postgres" + }, + { + "name": "redis" + }, + { + "name": "mongo" + }, + { + "name": "mariadb" + } + ], + "externalDocs": { + "url": "http://localhost:3000/api/settings.getOpenApiDocument" + } +} diff --git a/apps/docs/app/[lang]/[[...slug]]/page.tsx b/apps/docs/app/[lang]/[[...slug]]/page.tsx new file mode 100644 index 00000000..9a7f3d2c --- /dev/null +++ b/apps/docs/app/[lang]/[[...slug]]/page.tsx @@ -0,0 +1,104 @@ +import { getLanguages, getPage } from "@/app/source"; +import { url, baseUrl } from "@/utils/metadata"; +import { DocsBody, DocsPage } from "fumadocs-ui/page"; +import type { Metadata } from "next"; +import { notFound, permanentRedirect } from "next/navigation"; + +export default async function Page({ + params, +}: { + params: { lang: string; slug?: string[] }; +}) { + const page = getPage(params.slug, params.lang); + + if (page == null) { + permanentRedirect("/docs/core/get-started/introduction"); + } + + const MDX = page.data.exports.default; + + return ( + + +

{page.data.title}

+ +
+
+ ); +} + +export async function generateStaticParams() { + return getLanguages().flatMap(({ language, pages }) => + pages.map((page) => ({ + lang: language, + slug: page.slugs, + })), + ); +} + +export function generateMetadata({ + params, +}: { + params: { lang: string; slug?: string[] }; +}) { + const page = getPage(params.slug, params.lang); + if (page == null) { + permanentRedirect("/docs/core/get-started/introduction"); + } + return { + title: page.data.title, + + description: page.data.description, + robots: "index,follow", + alternates: { + canonical: new URL(`${baseUrl}${page.url}`).toString(), + languages: { + zh: `${baseUrl}/cn${page.url.replace("/cn", "")}`, + en: `${baseUrl}/en${page.url.replace("/en", "")}`, + }, + }, + openGraph: { + title: page.data.title, + description: page.data.description, + url: new URL(`${baseUrl}`).toString(), + images: [ + { + url: new URL( + `${baseUrl}/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.7cfd81d9.png&w=828&q=75`, + ).toString(), + width: 1200, + height: 630, + alt: page.data.title, + }, + ], + }, + twitter: { + card: "summary_large_image", + creator: "@siumauricio", + title: page.data.title, + description: page.data.description, + images: [ + { + url: new URL( + `${baseUrl}/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.7cfd81d9.png&w=828&q=75`, + ).toString(), + width: 1200, + height: 630, + alt: page.data.title, + }, + ], + }, + applicationName: "Dokploy Docs", + keywords: [ + "dokploy", + "vps", + "open source", + "cloud", + "self hosting", + "free", + ], + icons: { + icon: "/icon.svg", + }, + } satisfies Metadata; +} diff --git a/apps/docs/app/[lang]/layout.tsx b/apps/docs/app/[lang]/layout.tsx new file mode 100644 index 00000000..2a3f63b9 --- /dev/null +++ b/apps/docs/app/[lang]/layout.tsx @@ -0,0 +1,128 @@ +import { RootToggle } from "fumadocs-ui/components/layout/root-toggle"; +import { I18nProvider } from "fumadocs-ui/i18n"; +import { DocsLayout } from "fumadocs-ui/layout"; +import { RootProvider } from "fumadocs-ui/provider"; +import { Inter } from "next/font/google"; +import type { ReactNode } from "react"; +import { baseOptions } from "../layout.config"; +import { pageTree } from "../source"; +import "../global.css"; +import GoogleAnalytics from "@/components/analytics/google"; +import { + LibraryIcon, + type LucideIcon, + PlugZapIcon, + TerminalIcon, +} from "lucide-react"; +const inter = Inter({ + subsets: ["latin"], +}); + +interface Mode { + param: string; + name: string; + package: string; + description: string; + icon: LucideIcon; +} + +const modes: Mode[] = [ + { + param: "core/get-started/introduction", + name: "Core", + package: "Dokploy", + description: "The core", + icon: LibraryIcon, + }, + { + param: "cli", + name: "CLI", + package: "fumadocs-ui", + description: "Interactive CLI", + icon: TerminalIcon, + }, + { + param: "api", + name: "API", + package: "fumadocs-mdx", + description: "API Documentation", + icon: PlugZapIcon, + }, +]; + +export default function Layout({ + params, + children, +}: { + params: { lang: string }; + children: ReactNode; +}) { + return ( + + + + + + { + return { + url: `/${params.lang}/docs/${mode.param}`, + icon: ( + + ), + title: mode.name, + description: mode.description, + }; + })} + /> + ), + }} + {...baseOptions} + > + {children} + + + + + + ); +} diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts new file mode 100644 index 00000000..e0785850 --- /dev/null +++ b/apps/docs/app/api/search/route.ts @@ -0,0 +1,18 @@ +import { getPages } from "@/app/source"; +import { createI18nSearchAPI } from "fumadocs-core/search/server"; + +import { languages } from "@/i18n"; + +export const { GET } = createI18nSearchAPI("advanced", { + indexes: languages.map((lang) => { + return { + language: lang, + indexes: getPages(lang).map((page) => ({ + id: page.url, + url: page.url, + title: page.data.title, + structuredData: page.data.exports.structuredData, + })), + }; + }), +}); diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css new file mode 100644 index 00000000..bdb514ed --- /dev/null +++ b/apps/docs/app/global.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.api { + --primary: var(--api-color); + } + + .core { + --primary: var(--core-color); + } + + .cli { + --primary: var(--cli-color); + } + + :root { + --core-color: 250 80% 54%; + --cli-color: 0 0% 9%; + --api-color: 220deg 91% 54%; + } + + .dark { + --headless-color: 250 100% 80%; + --cli-color: 0 0% 100%; + --api-color: 217deg 92% 76%; + } \ No newline at end of file diff --git a/public/icon.svg b/apps/docs/app/icon.svg similarity index 100% rename from public/icon.svg rename to apps/docs/app/icon.svg diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx new file mode 100644 index 00000000..9d69e87a --- /dev/null +++ b/apps/docs/app/layout.config.tsx @@ -0,0 +1,76 @@ +import type { BaseLayoutProps } from "fumadocs-ui/layout"; +import { GlobeIcon, HeartIcon } from "lucide-react"; + +export const Logo = () => { + return ( + + + + + + + + ); +}; + +export const baseOptions: BaseLayoutProps = { + githubUrl: "https://github.com/dokploy/dokploy", + nav: { + url: "/get-started/introduction", + title: ( + <> + + Dokploy + + ), + }, + links: [ + { + text: "Website", + url: "https://dokploy.com", + active: "nested-url", + icon: , + }, + { + text: "Discord", + url: "https://discord.com/invite/2tBnJ3jDJc", + active: "nested-url", + icon: ( + <> + + + + + ), + }, + { + text: "Support", + url: "https://opencollective.com/dokploy", + active: "nested-url", + icon: ( + <> + + + ), + }, + ], +}; diff --git a/apps/docs/app/robots.ts b/apps/docs/app/robots.ts new file mode 100644 index 00000000..3b007046 --- /dev/null +++ b/apps/docs/app/robots.ts @@ -0,0 +1,11 @@ +import type { MetadataRoute } from "next"; + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + }, + sitemap: "https://docs.dokploy.com/sitemap.xml", + }; +} diff --git a/apps/docs/app/sitemap.ts b/apps/docs/app/sitemap.ts new file mode 100644 index 00000000..1451430d --- /dev/null +++ b/apps/docs/app/sitemap.ts @@ -0,0 +1,18 @@ +import { url } from "@/utils/metadata"; +import type { MetadataRoute } from "next"; +import { getPages } from "./source"; + +export default async function sitemap(): Promise { + return [ + ...getPages().map((page) => { + return { + url: url(`/en${page.url}`), + lastModified: page.data.exports.lastModified + ? new Date(page.data.exports.lastModified) + : undefined, + changeFrequency: "weekly", + priority: page.url === "/docs/core/get-started/introduction" ? 1 : 0.8, + }; + }), + ]; +} diff --git a/apps/docs/app/source.ts b/apps/docs/app/source.ts new file mode 100644 index 00000000..4aa62ede --- /dev/null +++ b/apps/docs/app/source.ts @@ -0,0 +1,10 @@ +import { map } from "@/.map"; +import { languages } from "@/i18n"; +import { loader } from "fumadocs-core/source"; +import { createMDXSource } from "fumadocs-mdx"; + +export const { getPage, getPages, pageTree, getLanguages } = loader({ + baseUrl: "/", + languages, + source: createMDXSource(map), +}); diff --git a/apps/docs/components/analytics/google.tsx b/apps/docs/components/analytics/google.tsx new file mode 100644 index 00000000..338dce78 --- /dev/null +++ b/apps/docs/components/analytics/google.tsx @@ -0,0 +1,17 @@ +"use client"; + +import { useEffect } from "react"; +import initializeGA from "."; + +export default function GoogleAnalytics() { + useEffect(() => { + // @ts-ignore + if (!window.GA_INITIALIZED) { + initializeGA(); + // @ts-ignore + window.GA_INITIALIZED = true; + } + }, []); + + return null; +} diff --git a/apps/docs/components/analytics/index.ts b/apps/docs/components/analytics/index.ts new file mode 100644 index 00000000..0665eec8 --- /dev/null +++ b/apps/docs/components/analytics/index.ts @@ -0,0 +1,30 @@ +"use client"; + +import ReactGA from "react-ga4"; + +const initializeGA = () => { + // Replace with your Measurement ID + // It ideally comes from an environment variable + ReactGA.initialize("G-HZ71HG38HN"); + + // Don't forget to remove the console.log() statements + // when you are done +}; + +interface Props { + category: string; + action: string; + label: string; +} +const trackGAEvent = ({ category, action, label }: Props) => { + console.log("GA event:", category, ":", action, ":", label); + // Send GA4 Event + ReactGA.event({ + category: category, + action: action, + label: label, + }); +}; + +export default initializeGA; +export { initializeGA, trackGAEvent }; diff --git a/apps/docs/content/docs/api/index.mdx b/apps/docs/content/docs/api/index.mdx new file mode 100644 index 00000000..2303d3a1 --- /dev/null +++ b/apps/docs/content/docs/api/index.mdx @@ -0,0 +1,99 @@ +--- +title: Dokploy API +description: How to interact with the dokploy API for administrators and users +--- + +In some cases, you may need to interact directly with the dokploy API. Here's how both administrators and users can do this. + +## For Administrators + +1. Access the Swagger UI by navigating to `your-vps-ip:3000/swagger`. +2. Use the Swagger interface to interact with the API. +3. By default, access to the Swagger UI is restricted, and only authenticated administrators can access the API. + +## For Users + +1. By default, users do not have direct access to the API. +2. Administrators can grant users access to: + - Generate access tokens + - Access the Swagger UI +3. If you need access, contact your administrator. + +Note: The API provides advanced functionalities. Make sure you understand the operations you're performing to avoid unintended changes to the system. + +## Usage + +By default the OpenApi base url is `http://localhost:3000/api`, you need to replace with the ip of your dokploy instance or the domain name. + +### Authentication + +The API uses JWT tokens for authentication. You can generate a token by going to the `/settings/profile` page and go to API/CLI Section and generate the token. + +Let's take a example of authenticated request: +```bash +curl -X 'GET' \ + 'https://dokploy.com/api/project.all' \ + -H 'accept: application/json' + -H 'Authorization: Bearer YOUR-TOKEN' +``` +then you will get the something like this: + +```json +[ + { + "projectId": "klZKsyw5g-QT_jrWJ5T-w", + "name": "Random", + "description": "", + "createdAt": "2024-06-19T15:05:58.785Z", + "adminId": "_WrKZbs7iJAA3p4N2Yfyu", + "applications": [], + "mariadb": [], + "mongo": [], + "mysql": [ + { + "mysqlId": "N3cudwO46TiDXzBm4SaQ1", + "name": "mysql", + "appName": "random-mysql-924715", + "description": "", + "databaseName": "mysql", + "databaseUser": "mysql", + "databasePassword": "h13BzO6y3KYSHaQg", + "databaseRootPassword": "mM1b7JeoPA7jArxj", + "dockerImage": "mysql:8", + "command": null, + "env": null, + "memoryReservation": null, + "memoryLimit": null, + "cpuReservation": null, + "cpuLimit": null, + "externalPort": null, + "applicationStatus": "done", + "createdAt": "2024-06-24T01:55:40.378Z", + "projectId": "klZKsyw5g-QT_jrWJ5T-w" + } + ], + "postgres": [], + "redis": [ + { + "redisId": "TtFK5S4QFaIjaNGOb8Ku-", + "name": "redis", + "appName": "random-redis-7eec62", + "description": "", + "databasePassword": "Yvb8gqClfomjcue8", + "dockerImage": "redis:7", + "command": null, + "env": null, + "memoryReservation": null, + "memoryLimit": null, + "cpuReservation": null, + "cpuLimit": null, + "externalPort": 6379, + "createdAt": "2024-06-26T06:43:20.570Z", + "applicationStatus": "done", + "projectId": "klZKsyw5g-QT_jrWJ5T-w" + } + ], + "compose": [] + }, +] +``` \ No newline at end of file diff --git a/apps/docs/content/docs/api/meta.json b/apps/docs/content/docs/api/meta.json new file mode 100644 index 00000000..62ed8cbd --- /dev/null +++ b/apps/docs/content/docs/api/meta.json @@ -0,0 +1,33 @@ +{ + "title": "CLI", + "root": true, + "pages": [ + "---Get Started---", + "index", + "---API---", + "reference-api/reference-admin", + "reference-api/reference-application", + "reference-api/reference-auth", + "reference-api/reference-backup", + "reference-api/reference-certificates", + "reference-api/reference-cluster", + "reference-api/reference-compose", + "reference-api/reference-deployment", + "reference-api/reference-destination", + "reference-api/reference-docker", + "reference-api/reference-domain", + "reference-api/reference-mariadb", + "reference-api/reference-mongo", + "reference-api/reference-mounts", + "reference-api/reference-mysql", + "reference-api/reference-port", + "reference-api/reference-postgres", + "reference-api/reference-project", + "reference-api/reference-redirects", + "reference-api/reference-redis", + "reference-api/reference-registry", + "reference-api/reference-security", + "reference-api/reference-settings", + "reference-api/reference-user" + ] +} diff --git a/apps/docs/content/docs/api/reference-api/reference-admin.mdx b/apps/docs/content/docs/api/reference-api/reference-admin.mdx new file mode 100644 index 00000000..7c5bf301 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-admin.mdx @@ -0,0 +1,933 @@ +--- +title: admin +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## admin-one + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/admin.one" +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-createUserInvitation + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Format: `"email"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/admin.createUserInvitation" \ + -d '{ + "email": "user@example.com" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.createUserInvitation", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-removeUser + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/admin.removeUser" \ + -d '{ + "authId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.removeUser", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-getUserByToken + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/admin.getUserByToken?token=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.getUserByToken?token=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-assignPermissions + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/admin.assignPermissions" \ + -d '{ + "userId": "string", + "canCreateProjects": true, + "canCreateServices": true, + "canDeleteProjects": true, + "canDeleteServices": true, + "accesedProjects": [ + "string" + ], + "accesedServices": [ + "string" + ], + "canAccessToTraefikFiles": true, + "canAccessToDocker": true, + "canAccessToAPI": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.assignPermissions", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-cleanGithubApp + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/admin.cleanGithubApp" +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.cleanGithubApp", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-getRepositories + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/admin.getRepositories" +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.getRepositories", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-getBranches + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/admin.getBranches?repo=string&owner=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.getBranches?repo=string&owner=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-haveGithubConfigured + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/admin.haveGithubConfigured" +``` + + + + + +```js +fetch("http://localhost:3000/api/admin.haveGithubConfigured", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-application.mdx b/apps/docs/content/docs/api/reference-api/reference-application.mdx new file mode 100644 index 00000000..6a67b0cd --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-application.mdx @@ -0,0 +1,2800 @@ +--- +title: application +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## application-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.create" \ + -d '{ + "name": "string", + "appName": "string", + "description": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/application.one?applicationId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/application.one?applicationId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.reload" \ + -d '{ + "appName": "string", + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.delete" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.stop" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.start" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-redeploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.redeploy" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.redeploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.saveEnvironment" \ + -d '{ + "applicationId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveBuildType + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.saveBuildType" \ + -d '{ + "applicationId": "string", + "buildType": "dockerfile", + "dockerfile": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.saveBuildType", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveGithubProvider + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.saveGithubProvider" \ + -d '{ + "applicationId": "string", + "repository": "string", + "branch": "string", + "owner": "string", + "buildPath": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.saveGithubProvider", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveDockerProvider + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.saveDockerProvider" \ + -d '{ + "dockerImage": "string", + "applicationId": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.saveDockerProvider", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveGitProdiver + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.saveGitProdiver" \ + -d '{ + "customGitBranch": "string", + "applicationId": "string", + "customGitBuildPath": "string", + "customGitUrl": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.saveGitProdiver", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-generateSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.generateSSHKey" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.generateSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-removeSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.removeSSHKey" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.removeSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-markRunning + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.markRunning" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.markRunning", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"github" | "docker" | "git"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + +Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks"` + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.update" \ + -d '{ + "applicationId": "string", + "name": "string", + "appName": "string", + "description": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "title": "string", + "enabled": true, + "subtitle": "string", + "command": "string", + "refreshToken": "string", + "sourceType": "github", + "repository": "string", + "owner": "string", + "branch": "string", + "buildPath": "string", + "autoDeploy": true, + "username": "string", + "password": "string", + "dockerImage": "string", + "customGitUrl": "string", + "customGitBranch": "string", + "customGitBuildPath": "string", + "customGitSSHKey": "string", + "dockerfile": "string", + "healthCheckSwarm": { + "Test": [ + "string" + ], + "Interval": 0, + "Timeout": 0, + "StartPeriod": 0, + "Retries": 0 + }, + "restartPolicySwarm": { + "Condition": "string", + "Delay": 0, + "MaxAttempts": 0, + "Window": 0 + }, + "placementSwarm": { + "Constraints": [ + "string" + ], + "Preferences": [ + { + "Spread": { + "SpreadDescriptor": "string" + } + } + ], + "MaxReplicas": 0, + "Platforms": [ + { + "Architecture": "string", + "OS": "string" + } + ] + }, + "updateConfigSwarm": { + "Parallelism": 0, + "Delay": 0, + "FailureAction": "string", + "Monitor": 0, + "MaxFailureRatio": 0, + "Order": "string" + }, + "rollbackConfigSwarm": { + "Parallelism": 0, + "Delay": 0, + "FailureAction": "string", + "Monitor": 0, + "MaxFailureRatio": 0, + "Order": "string" + }, + "modeSwarm": { + "Replicated": { + "Replicas": 0 + }, + "Global": {}, + "ReplicatedJob": { + "MaxConcurrent": 0, + "TotalCompletions": 0 + }, + "GlobalJob": {} + }, + "labelsSwarm": { + "property1": "string", + "property2": "string" + }, + "networkSwarm": [ + { + "Target": "string", + "Aliases": [ + "string" + ], + "DriverOpts": {} + } + ], + "replicas": 0, + "applicationStatus": "idle", + "buildType": "dockerfile", + "createdAt": "string", + "registryId": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-refreshToken + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.refreshToken" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.refreshToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.deploy" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-cleanQueues + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.cleanQueues" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.cleanQueues", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-readTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/application.readTraefikConfig?applicationId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/application.readTraefikConfig?applicationId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-updateTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/application.updateTraefikConfig" \ + -d '{ + "applicationId": "string", + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/application.updateTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-readAppMonitoring + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/application.readAppMonitoring?appName=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/application.readAppMonitoring?appName=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-auth.mdx b/apps/docs/content/docs/api/reference-api/reference-auth.mdx new file mode 100644 index 00000000..2fb4e2a8 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-auth.mdx @@ -0,0 +1,1487 @@ +--- +title: auth +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## auth-createAdmin + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Format: `"email"` + + + + + +Minimum length: `8` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.createAdmin" \ + -d '{ + "email": "user@example.com", + "password": "stringst" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.createAdmin", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-createUser + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `8` + + + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.createUser" \ + -d '{ + "password": "stringst", + "id": "string", + "token": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.createUser", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-login + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Format: `"email"` + + + + + +Minimum length: `8` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.login" \ + -d '{ + "email": "user@example.com", + "password": "stringst" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.login", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-get + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/auth.get" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.get", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-logout + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.logout" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.logout", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + +Value in: `"admin" | "user"` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.update" \ + -d '{ + "id": "string", + "email": "string", + "password": "string", + "rol": "admin", + "image": "string", + "secret": "string", + "token": "string", + "is2FAEnabled": true, + "createdAt": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-generateToken + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.generateToken" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.generateToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/auth.one?id=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.one?id=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-updateByAdmin + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + +Value in: `"admin" | "user"` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.updateByAdmin" \ + -d '{ + "id": "string", + "email": "string", + "password": "string", + "rol": "admin", + "image": "string", + "secret": "string", + "token": "string", + "is2FAEnabled": true, + "createdAt": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.updateByAdmin", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-generate2FASecret + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/auth.generate2FASecret" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.generate2FASecret", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-verify2FASetup + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `6` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.verify2FASetup" \ + -d '{ + "pin": "string", + "secret": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.verify2FASetup", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-verifyLogin2FA + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `6` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.verifyLogin2FA" \ + -d '{ + "pin": "string", + "id": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.verifyLogin2FA", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-disable2FA + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.disable2FA" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.disable2FA", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-verifyToken + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/auth.verifyToken" +``` + + + + + +```js +fetch("http://localhost:3000/api/auth.verifyToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-backup.mdx b/apps/docs/content/docs/api/reference-api/reference-backup.mdx new file mode 100644 index 00000000..33f64a4c --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-backup.mdx @@ -0,0 +1,887 @@ +--- +title: backup +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## backup-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + +Value in: `"postgres" | "mariadb" | "mysql" | "mongo"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.create" \ + -d '{ + "schedule": "string", + "enabled": true, + "prefix": "string", + "destinationId": "string", + "database": "string", + "mariadbId": "string", + "mysqlId": "string", + "postgresId": "string", + "mongoId": "string", + "databaseType": "postgres" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/backup.one?backupId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.one?backupId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.update" \ + -d '{ + "schedule": "string", + "enabled": true, + "prefix": "string", + "backupId": "string", + "destinationId": "string", + "database": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.remove" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupPostgres + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.manualBackupPostgres" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.manualBackupPostgres", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupMySql + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.manualBackupMySql" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.manualBackupMySql", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupMariadb + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.manualBackupMariadb" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.manualBackupMariadb", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupMongo + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/backup.manualBackupMongo" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/backup.manualBackupMongo", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-certificates.mdx b/apps/docs/content/docs/api/reference-api/reference-certificates.mdx new file mode 100644 index 00000000..14e14995 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-certificates.mdx @@ -0,0 +1,433 @@ +--- +title: certificates +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## certificates-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/certificates.create" \ + -d '{ + "certificateId": "string", + "name": "string", + "certificateData": "string", + "privateKey": "string", + "certificatePath": "string", + "autoRenew": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/certificates.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/certificates.one?certificateId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/certificates.one?certificateId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/certificates.remove" \ + -d '{ + "certificateId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/certificates.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/certificates.all" +``` + + + + + +```js +fetch("http://localhost:3000/api/certificates.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-cluster.mdx b/apps/docs/content/docs/api/reference-api/reference-cluster.mdx new file mode 100644 index 00000000..a0d68ef0 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-cluster.mdx @@ -0,0 +1,383 @@ +--- +title: cluster +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## cluster-getNodes + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/cluster.getNodes" +``` + + + + + +```js +fetch("http://localhost:3000/api/cluster.getNodes", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-removeWorker + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/cluster.removeWorker" \ + -d '{ + "nodeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/cluster.removeWorker", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-addWorker + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/cluster.addWorker" +``` + + + + + +```js +fetch("http://localhost:3000/api/cluster.addWorker", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-addManager + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/cluster.addManager" +``` + + + + + +```js +fetch("http://localhost:3000/api/cluster.addManager", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-compose.mdx b/apps/docs/content/docs/api/reference-api/reference-compose.mdx new file mode 100644 index 00000000..dcd9a231 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-compose.mdx @@ -0,0 +1,1762 @@ +--- +title: compose +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## compose-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + +Value in: `"docker-compose" | "stack"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.create" \ + -d '{ + "name": "string", + "description": "string", + "projectId": "string", + "composeType": "docker-compose", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/compose.one?composeId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.one?composeId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"git" | "github" | "raw"` + + + + + +Value in: `"docker-compose" | "stack"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.update" \ + -d '{ + "composeId": "string", + "name": "string", + "appName": "string", + "description": "string", + "env": "string", + "composeFile": "string", + "refreshToken": "string", + "sourceType": "git", + "composeType": "docker-compose", + "repository": "string", + "owner": "string", + "branch": "string", + "autoDeploy": true, + "customGitUrl": "string", + "customGitBranch": "string", + "customGitSSHKey": "string", + "command": "string", + "composePath": "string", + "composeStatus": "idle", + "projectId": "string", + "createdAt": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.delete" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-cleanQueues + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.cleanQueues" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.cleanQueues", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-allServices + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/compose.allServices?composeId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.allServices?composeId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-randomizeCompose + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.randomizeCompose" \ + -d '{ + "composeId": "string", + "prefix": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.randomizeCompose", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.deploy" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-redeploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.redeploy" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.redeploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.stop" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-getDefaultCommand + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/compose.getDefaultCommand?composeId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.getDefaultCommand?composeId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-generateSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.generateSSHKey" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.generateSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-refreshToken + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.refreshToken" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.refreshToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-removeSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.removeSSHKey" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.removeSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-deployTemplate + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/compose.deployTemplate" \ + -d '{ + "projectId": "string", + "id": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.deployTemplate", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-templates + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/compose.templates" +``` + + + + + +```js +fetch("http://localhost:3000/api/compose.templates", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-deployment.mdx b/apps/docs/content/docs/api/reference-api/reference-deployment.mdx new file mode 100644 index 00000000..a19ef11a --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-deployment.mdx @@ -0,0 +1,208 @@ +--- +title: deployment +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## deployment-all + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/deployment.all?applicationId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/deployment.all?applicationId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## deployment-allByCompose + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/deployment.allByCompose?composeId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/deployment.allByCompose?composeId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-destination.mdx b/apps/docs/content/docs/api/reference-api/reference-destination.mdx new file mode 100644 index 00000000..f0feccd0 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-destination.mdx @@ -0,0 +1,684 @@ +--- +title: destination +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## destination-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/destination.create" \ + -d '{ + "name": "string", + "accessKey": "string", + "bucket": "string", + "region": "string", + "endpoint": "string", + "secretAccessKey": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/destination.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-testConnection + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/destination.testConnection" \ + -d '{ + "name": "string", + "accessKey": "string", + "bucket": "string", + "region": "string", + "endpoint": "string", + "secretAccessKey": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/destination.testConnection", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/destination.one?destinationId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/destination.one?destinationId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/destination.all" +``` + + + + + +```js +fetch("http://localhost:3000/api/destination.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/destination.remove" \ + -d '{ + "destinationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/destination.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/destination.update" \ + -d '{ + "name": "string", + "accessKey": "string", + "bucket": "string", + "region": "string", + "endpoint": "string", + "secretAccessKey": "string", + "destinationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/destination.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-docker.mdx b/apps/docs/content/docs/api/reference-api/reference-docker.mdx new file mode 100644 index 00000000..8b94454e --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-docker.mdx @@ -0,0 +1,398 @@ +--- +title: docker +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## docker-getContainers + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/docker.getContainers" +``` + + + + + +```js +fetch("http://localhost:3000/api/docker.getContainers", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/docker.getConfig?containerId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/docker.getConfig?containerId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getContainersByAppNameMatch + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/docker.getContainersByAppNameMatch?appName=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/docker.getContainersByAppNameMatch?appName=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getContainersByAppLabel + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/docker.getContainersByAppLabel?appName=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/docker.getContainersByAppLabel?appName=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-domain.mdx b/apps/docs/content/docs/api/reference-api/reference-domain.mdx new file mode 100644 index 00000000..3da95fc3 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-domain.mdx @@ -0,0 +1,772 @@ +--- +title: domain +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## domain-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + +Value in: `"letsencrypt" | "none"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/domain.create" \ + -d '{ + "host": "string", + "path": "string", + "port": 0, + "https": true, + "applicationId": "string", + "certificateType": "letsencrypt" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-byApplicationId + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/domain.byApplicationId?applicationId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.byApplicationId?applicationId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-generateDomain + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/domain.generateDomain" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.generateDomain", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-generateWildcard + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/domain.generateWildcard" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.generateWildcard", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Value in: `"letsencrypt" | "none"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/domain.update" \ + -d '{ + "domainId": "string", + "host": "string", + "path": "string", + "port": 0, + "https": true, + "certificateType": "letsencrypt" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/domain.one?domainId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.one?domainId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/domain.delete" \ + -d '{ + "domainId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/domain.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mariadb.mdx b/apps/docs/content/docs/api/reference-api/reference-mariadb.mdx new file mode 100644 index 00000000..8a9ef12b --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-mariadb.mdx @@ -0,0 +1,1285 @@ +--- +title: mariadb +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## mariadb-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Default: `"mariadb:6"` + + + + + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.create" \ + -d '{ + "name": "string", + "appName": "string", + "dockerImage": "mariadb:6", + "databaseRootPassword": "string", + "projectId": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/mariadb.one?mariadbId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.one?mariadbId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.start" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.stop" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.saveExternalPort" \ + -d '{ + "mariadbId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.deploy" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.changeStatus" \ + -d '{ + "mariadbId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.remove" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.saveEnvironment" \ + -d '{ + "mariadbId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.reload" \ + -d '{ + "mariadbId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"mariadb:6"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mariadb.update" \ + -d '{ + "mariadbId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "databaseRootPassword": "string", + "dockerImage": "mariadb:6", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mariadb.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mongo.mdx b/apps/docs/content/docs/api/reference-api/reference-mongo.mdx new file mode 100644 index 00000000..70b0b52f --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-mongo.mdx @@ -0,0 +1,1261 @@ +--- +title: mongo +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## mongo-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Default: `"mongo:15"` + + + + + + + + + + + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.create" \ + -d '{ + "name": "string", + "appName": "string", + "dockerImage": "mongo:15", + "projectId": "string", + "description": "string", + "databaseUser": "string", + "databasePassword": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/mongo.one?mongoId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.one?mongoId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.start" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.stop" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.saveExternalPort" \ + -d '{ + "mongoId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.deploy" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.changeStatus" \ + -d '{ + "mongoId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.reload" \ + -d '{ + "mongoId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.remove" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.saveEnvironment" \ + -d '{ + "mongoId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + + + + + +Default: `"mongo:15"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mongo.update" \ + -d '{ + "mongoId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databaseUser": "string", + "databasePassword": "string", + "dockerImage": "mongo:15", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mongo.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mounts.mdx b/apps/docs/content/docs/api/reference-api/reference-mounts.mdx new file mode 100644 index 00000000..b2fe1ef8 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-mounts.mdx @@ -0,0 +1,522 @@ +--- +title: mounts +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## mounts-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Value in: `"bind" | "volume" | "file"` + + + + + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Default: `"application"` + +Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mounts.create" \ + -d '{ + "type": "bind", + "hostPath": "string", + "volumeName": "string", + "content": "string", + "mountPath": "string", + "serviceType": "application", + "serviceId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mounts.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mounts.remove" \ + -d '{ + "mountId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mounts.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/mounts.one?mountId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/mounts.one?mountId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Value in: `"bind" | "volume" | "file"` + + + + + + + + + + + + + + + + + +Default: `"application"` + +Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mounts.update" \ + -d '{ + "mountId": "string", + "type": "bind", + "hostPath": "string", + "volumeName": "string", + "content": "string", + "serviceType": "application", + "mountPath": "string", + "applicationId": "string", + "postgresId": "string", + "mariadbId": "string", + "mongoId": "string", + "mysqlId": "string", + "redisId": "string", + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mounts.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mysql.mdx b/apps/docs/content/docs/api/reference-api/reference-mysql.mdx new file mode 100644 index 00000000..ae88fc19 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-mysql.mdx @@ -0,0 +1,1285 @@ +--- +title: mysql +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## mysql-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Default: `"mysql:8"` + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.create" \ + -d '{ + "name": "string", + "appName": "string", + "dockerImage": "mysql:8", + "projectId": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "databaseRootPassword": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/mysql.one?mysqlId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.one?mysqlId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.start" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.stop" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.saveExternalPort" \ + -d '{ + "mysqlId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.deploy" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.changeStatus" \ + -d '{ + "mysqlId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.reload" \ + -d '{ + "mysqlId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.remove" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.saveEnvironment" \ + -d '{ + "mysqlId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"mysql:8"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/mysql.update" \ + -d '{ + "mysqlId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "databaseRootPassword": "string", + "dockerImage": "mysql:8", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/mysql.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-port.mdx b/apps/docs/content/docs/api/reference-api/reference-port.mdx new file mode 100644 index 00000000..3e065d4a --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-port.mdx @@ -0,0 +1,453 @@ +--- +title: port +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## port-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Default: `"tcp"` + +Value in: `"tcp" | "udp"` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/port.create" \ + -d '{ + "publishedPort": 0, + "targetPort": 0, + "protocol": "tcp", + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/port.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/port.one?portId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/port.one?portId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/port.delete" \ + -d '{ + "portId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/port.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"tcp"` + +Value in: `"tcp" | "udp"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/port.update" \ + -d '{ + "portId": "string", + "publishedPort": 0, + "targetPort": 0, + "protocol": "tcp" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/port.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-postgres.mdx b/apps/docs/content/docs/api/reference-api/reference-postgres.mdx new file mode 100644 index 00000000..5ed611a0 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-postgres.mdx @@ -0,0 +1,1269 @@ +--- +title: postgres +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## postgres-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Default: `"postgres:15"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.create" \ + -d '{ + "name": "string", + "appName": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "dockerImage": "postgres:15", + "projectId": "string", + "description": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/postgres.one?postgresId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.one?postgresId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.start" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.stop" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.saveExternalPort" \ + -d '{ + "postgresId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.deploy" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.changeStatus" \ + -d '{ + "postgresId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.remove" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.saveEnvironment" \ + -d '{ + "postgresId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.reload" \ + -d '{ + "postgresId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"postgres:15"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/postgres.update" \ + -d '{ + "postgresId": "string", + "name": "string", + "appName": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "description": "string", + "dockerImage": "postgres:15", + "command": "string", + "env": "string", + "memoryReservation": 0, + "externalPort": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/postgres.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-project.mdx b/apps/docs/content/docs/api/reference-api/reference-project.mdx new file mode 100644 index 00000000..7e5e3b73 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-project.mdx @@ -0,0 +1,523 @@ +--- +title: project +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## project-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/project.create" \ + -d '{ + "name": "string", + "description": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/project.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/project.one?projectId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/project.one?projectId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/project.all" +``` + + + + + +```js +fetch("http://localhost:3000/api/project.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/project.remove" \ + -d '{ + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/project.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/project.update" \ + -d '{ + "name": "string", + "description": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/project.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-redirects.mdx b/apps/docs/content/docs/api/reference-api/reference-redirects.mdx new file mode 100644 index 00000000..bb657d0f --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-redirects.mdx @@ -0,0 +1,451 @@ +--- +title: redirects +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## redirects-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redirects.create" \ + -d '{ + "regex": "string", + "replacement": "string", + "permanent": true, + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redirects.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/redirects.one?redirectId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/redirects.one?redirectId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redirects.delete" \ + -d '{ + "redirectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redirects.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redirects.update" \ + -d '{ + "redirectId": "string", + "regex": "string", + "replacement": "string", + "permanent": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redirects.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-redis.mdx b/apps/docs/content/docs/api/reference-api/reference-redis.mdx new file mode 100644 index 00000000..43ba4963 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-redis.mdx @@ -0,0 +1,1247 @@ +--- +title: redis +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## redis-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Default: `"redis:8"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.create" \ + -d '{ + "name": "string", + "appName": "string", + "databasePassword": "string", + "dockerImage": "redis:8", + "projectId": "string", + "description": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/redis.one?redisId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.one?redisId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.start" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.reload" \ + -d '{ + "redisId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.stop" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.saveExternalPort" \ + -d '{ + "redisId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.deploy" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.changeStatus" \ + -d '{ + "redisId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.remove" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.saveEnvironment" \ + -d '{ + "redisId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"redis:8"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/redis.update" \ + -d '{ + "redisId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databasePassword": "string", + "dockerImage": "redis:8", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "createdAt": "string", + "applicationStatus": "idle", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/redis.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-registry.mdx b/apps/docs/content/docs/api/reference-api/reference-registry.mdx new file mode 100644 index 00000000..7465423b --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-registry.mdx @@ -0,0 +1,838 @@ +--- +title: registry +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## registry-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Value in: `"selfHosted" | "cloud"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/registry.create" \ + -d '{ + "registryName": "string", + "username": "string", + "password": "string", + "registryUrl": "string", + "registryType": "selfHosted", + "imagePrefix": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/registry.remove" \ + -d '{ + "registryId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Value in: `"selfHosted" | "cloud"` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/registry.update" \ + -d '{ + "registryId": "string", + "registryName": "string", + "imagePrefix": "string", + "username": "string", + "password": "string", + "registryUrl": "string", + "createdAt": "string", + "registryType": "selfHosted", + "adminId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/registry.all" +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/registry.one?registryId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.one?registryId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-testRegistry + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Value in: `"selfHosted" | "cloud"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/registry.testRegistry" \ + -d '{ + "registryName": "string", + "username": "string", + "password": "string", + "registryUrl": "string", + "registryType": "selfHosted", + "imagePrefix": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.testRegistry", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-enableSelfHostedRegistry + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/registry.enableSelfHostedRegistry" \ + -d '{ + "registryUrl": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/registry.enableSelfHostedRegistry", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-security.mdx b/apps/docs/content/docs/api/reference-api/reference-security.mdx new file mode 100644 index 00000000..ccbdb350 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-security.mdx @@ -0,0 +1,441 @@ +--- +title: security +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## security-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/security.create" \ + -d '{ + "applicationId": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/security.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/security.one?securityId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/security.one?securityId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/security.delete" \ + -d '{ + "securityId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/security.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/security.update" \ + -d '{ + "securityId": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/security.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-settings.mdx b/apps/docs/content/docs/api/reference-api/reference-settings.mdx new file mode 100644 index 00000000..d24e61bf --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-settings.mdx @@ -0,0 +1,2476 @@ +--- +title: settings +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## settings-reloadServer + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.reloadServer" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.reloadServer", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-reloadTraefik + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.reloadTraefik" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.reloadTraefik", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanUnusedImages + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanUnusedImages" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanUnusedImages", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanUnusedVolumes + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanUnusedVolumes" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanUnusedVolumes", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanStoppedContainers + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanStoppedContainers" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanStoppedContainers", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanDockerBuilder + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanDockerBuilder" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanDockerBuilder", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanDockerPrune + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanDockerPrune" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanDockerPrune", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanAll + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanAll" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanAll", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanMonitoring + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanMonitoring" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanMonitoring", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-saveSSHPrivateKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.saveSSHPrivateKey" \ + -d '{ + "sshPrivateKey": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.saveSSHPrivateKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-assignDomainServer + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Default: `"none"` + +Value in: `"letsencrypt" | "none"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.assignDomainServer" \ + -d '{ + "letsEncryptEmail": "string", + "host": "string", + "certificateType": "letsencrypt" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.assignDomainServer", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanSSHPrivateKey + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.cleanSSHPrivateKey" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.cleanSSHPrivateKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateDockerCleanup + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.updateDockerCleanup" \ + -d '{ + "enableDockerCleanup": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.updateDockerCleanup", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.readTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.readTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.updateTraefikConfig" \ + -d '{ + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.updateTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readWebServerTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.readWebServerTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.readWebServerTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateWebServerTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.updateWebServerTraefikConfig" \ + -d '{ + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.updateWebServerTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readMiddlewareTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.readMiddlewareTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.readMiddlewareTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateMiddlewareTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.updateMiddlewareTraefikConfig" \ + -d '{ + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.updateMiddlewareTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-checkAndUpdateImage + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.checkAndUpdateImage" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.checkAndUpdateImage", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateServer + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.updateServer" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.updateServer", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-getDokployVersion + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.getDokployVersion" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.getDokployVersion", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readDirectories + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.readDirectories" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.readDirectories", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateTraefikFile + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/api/settings.updateTraefikFile" \ + -d '{ + "path": "string", + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.updateTraefikFile", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readTraefikFile + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.readTraefikFile?path=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.readTraefikFile?path=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-getOpenApiDocument + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/settings.getOpenApiDocument" +``` + + + + + +```js +fetch("http://localhost:3000/api/settings.getOpenApiDocument", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-user.mdx b/apps/docs/content/docs/api/reference-api/reference-user.mdx new file mode 100644 index 00000000..12ff3b66 --- /dev/null +++ b/apps/docs/content/docs/api/reference-api/reference-user.mdx @@ -0,0 +1,299 @@ +--- +title: user +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## user-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/user.all" +``` + + + + + +```js +fetch("http://localhost:3000/api/user.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## user-byAuthId + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/user.byAuthId?authId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/user.byAuthId?authId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## user-byUserId + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/api/user.byUserId?userId=string" +``` + + + + + +```js +fetch("http://localhost:3000/api/user.byUserId?userId=string", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/cli/commands/application.mdx b/apps/docs/content/docs/cli/commands/application.mdx new file mode 100644 index 00000000..0774fe63 --- /dev/null +++ b/apps/docs/content/docs/cli/commands/application.mdx @@ -0,0 +1,20 @@ +--- +title: Application +description: A guide to using the Dokploy CLI to manage applications +--- + + +The Dokploy CLI can be used to create, deploy, and manage applications. + +## Requirements + +Is required to be already authenticated with the Dokploy CLI. + + +## Commands + +1. `dokploy app create` - Create a new application. +2. `dokploy app delete` - Delete an application. +3. `dokploy app deploy` - Deploy an application. +4. `dokploy app stop` - Stop a running application. + diff --git a/apps/docs/content/docs/cli/commands/authentication.mdx b/apps/docs/content/docs/cli/commands/authentication.mdx new file mode 100644 index 00000000..0783a21b --- /dev/null +++ b/apps/docs/content/docs/cli/commands/authentication.mdx @@ -0,0 +1,29 @@ +--- +title: Authentication +description: A guide to authenticating with the Dokploy CLI +--- + +The Dokploy CLI uses a token-based authentication system. To authenticate, you'll need to create an access token and store it securely. + +## Creating an Access Token + +To create an access token, first you need to have permissions if you are admin you don't need permissions. + +by default access token never expires. + +You can go to `dashboard/settings/profile` and click on the `Generate` button. + + + + +## Storing the Access Token + +Dokploy when you create an access token automatically will generate a config.json with the access token and the server url. + + + +## Commands + +1. `dokploy authenticate` - Authenticate with the Dokploy CLI. +2. `dokploy verify` - Verify if the access token is valid. + diff --git a/apps/docs/content/docs/cli/commands/databases.mdx b/apps/docs/content/docs/cli/commands/databases.mdx new file mode 100644 index 00000000..ee2516a7 --- /dev/null +++ b/apps/docs/content/docs/cli/commands/databases.mdx @@ -0,0 +1,45 @@ +--- +title: Databases +description: A guide to using the Dokploy CLI to manage databases +--- + +The Dokploy CLI can be used to create, deploy, and manage databases. + +## Requirements + +Is required to be already authenticated with the Dokploy CLI. + + +## Commands + +### MariaDB + +1. `dokploy database mariadb create` - Create a new mariadb database. +2. `dokploy database mariadb delete` - Delete an mariadb database. +3. `dokploy database mariadb deploy` - Deploy a mariadb database. +4. `dokploy database mariadb stop` - Stop a running mariadb database. + +### PostgreSQL +1. `dokploy database postgresql create` - Create a new postgresql database. +2. `dokploy database postgresql delete` - Delete an postgresql database. +3. `dokploy database postgresql deploy` - Deploy a postgresql database. +4. `dokploy database postgresql stop` - Stop a running postgresql database. + +### MySQL +1. `dokploy database mysql create` - Create a new mysql database. +2. `dokploy database mysql delete` - Delete an mysql database. +3. `dokploy database mysql deploy` - Deploy a mysql database. +4. `dokploy database mysql stop` - Stop a running mysql database. + +### MongoDB +1. `dokploy database mongodb create` - Create a new mongodb database. +2. `dokploy database mongodb delete` - Delete an mongodb database. +3. `dokploy database mongodb deploy` - Deploy a mongodb database. +4. `dokploy database mongodb stop` - Stop a running mongodb database. + +### Redis +1. `dokploy database redis create` - Create a new redis database. +2. `dokploy database redis delete` - Delete an redis database. +3. `dokploy database redis deploy` - Deploy a redis database. +4. `dokploy database redis stop` - Stop a running redis database. + diff --git a/apps/docs/content/docs/cli/commands/project.mdx b/apps/docs/content/docs/cli/commands/project.mdx new file mode 100644 index 00000000..efe09ebc --- /dev/null +++ b/apps/docs/content/docs/cli/commands/project.mdx @@ -0,0 +1,18 @@ +--- +title: Project +description: A guide to using the Dokploy CLI to manage projects +--- + + +The Dokploy CLI can be used to create, deploy, and manage projects. + +## Requirements + +Is required to be already authenticated with the Dokploy CLI. + +## Commands + +1. `dokploy project create` - Create a new project. +2. `dokploy project info` - Get information about a project. +3. `dokploy project list` - List all projects. + diff --git a/apps/docs/content/docs/cli/index.mdx b/apps/docs/content/docs/cli/index.mdx new file mode 100644 index 00000000..ee1c0d7b --- /dev/null +++ b/apps/docs/content/docs/cli/index.mdx @@ -0,0 +1,23 @@ +--- +title: Introduction +description: A guide to using the Dokploy command-line interface +--- + +Dokploy CLI is a command-line tool for remotely managing your Dokploy server. It simplifies creating, deploying, and managing applications and databases. + +## Installation + +```bash +npm install -g @dokploy/cli +``` + +## Usage + +```bash +dokploy COMMAND +``` +To get help on a specific command: + +```bash +dokploy COMMAND --help +``` diff --git a/apps/docs/content/docs/cli/meta.json b/apps/docs/content/docs/cli/meta.json new file mode 100644 index 00000000..3f97122f --- /dev/null +++ b/apps/docs/content/docs/cli/meta.json @@ -0,0 +1,13 @@ +{ + "title": "CLI", + "root": true, + "pages": [ + "---Get Started---", + "index", + "---Commands---", + "commands/authentication", + "commands/project", + "commands/application", + "commands/databases" + ] +} diff --git a/apps/docs/content/docs/core/application/advanced.mdx b/apps/docs/content/docs/core/application/advanced.mdx new file mode 100644 index 00000000..9847eefd --- /dev/null +++ b/apps/docs/content/docs/core/application/advanced.mdx @@ -0,0 +1,173 @@ +--- +title: Advanced +description: Learn how to use advanced features in your application. +--- + +This section is designed for experienced users who need to manage complex configurations and orchestration settings in Dokploy. Here, you can execute custom commands, manage cluster replicas, select Docker registries, and configure Docker Swarm settings. + +### Run Command + +- **Purpose**: Allows users to execute custom shell commands directly within the container. +- **Usage**: Enter the command you need to run in the provided field and click 'Save' to execute it within the container environment. This tool is particularly useful for debugging or specific administrative tasks. + +### Cluster Settings + +- **Purpose**: Manages the scaling and distribution of the application across multiple servers or nodes. +- **Replicas**: Set the number of instances of your application that should be running. +- **Registry Selection**: Choose the Docker registry from which your container images will be pulled. This is crucial for ensuring that the correct images are used during deployment. + +#### Important Note +Always click 'Redeploy' after modifying the cluster settings to apply the changes. + +### Swarm Settings + +Swarm settings allow for detailed configuration of how containers are orchestrated within the Docker Swarm. + +#### Health Check + +- **Purpose**: Ensures that containers are running smoothly and restarts them if they fail. +- **Configuration**: Specify parameters like test commands, intervals, timeouts, start periods, and retries. + +#### Restart Policy + +Defines how containers should be handled if they exit or fail, the configuration is as follows: + +- **Condition**: Specifies under what condition a restart should occur. +- **Delay**: Sets the time delay between restarts. +- **Max Attempts**: Limits the number of restart attempts. +- **Window**: Defines the time window used to evaluate the restart policy. + +#### Update Config + +Manages the deployment and update process of services in the swarm, the configuration is as follows: + + +- **Parallelism**: Number of containers to update simultaneously. +- **Delay**: Time between updates. +- **Failure Action**: Action to take if an update fails. +- **Monitor**: Duration to monitor a container after an update. +- **Max Failure Ratio**: The fraction of containers that are allowed to fail before the update is considered a failure. +- **Order**: The order in which containers are stopped and started during an update. + +#### Placement + +Controls where containers are placed within the swarm based on specific rules and preferences, the configuration is as follows: + +- **Constraints**: Conditions that must be met for a container to be placed on a node. +- **Preferences**: Preferences for placing containers across nodes to spread load evenly. + +### Rollback Config + +Manages the rollback process for services when updates fail, the configuration is as follows: + +- **Parallelism**: Number of containers to rollback simultaneously. +- **Delay**: Time between rollbacks. +- **FailureAction**: Action to take if a rollback fails. +- **Monitor**: Duration to monitor a container after a rollback. +- **MaxFailureRatio**: The fraction of containers that are allowed to fail before the rollback is considered a failure. +- **Order**: The order in which containers are stopped and restarted during a rollback. + +### Mode + +Defines how services are replicated within the swarm, the configuration is as follows: + +- **Replicated**: Services are replicated across nodes as specified. +- **Replicas**: Number of replicas per service. +- **Global**: A single instance of the service runs on every node. +- **ReplicatedJob**: Runs a job in a replicated manner. +- **MaxConcurrent**: Maximum number of jobs running concurrently. +- **TotalCompletions**: Total number of times the jobs need to complete. + +### Network + +Configures network settings for the services, the configuration is as follows: + +- **Target**: Specifies the network name. +- **Aliases**: Provides aliases for the network. +- **DriverOpts**: Network driver options like MTU size and host binding. + +### Labels + +Assigns metadata to containers to help identify and organize them, the configuration is as follows: + +- **Labels**: Key-value pairs assigned to the service. For example: +1. `com.example.app.name`: "my-app" +2. `com.example.app.version`: "1.0.0" + + +### Note +Modifying Swarm Settings requires careful consideration as incorrect configurations can disrupt the entire container orchestration. Always ensure you understand the implications of the changes you are making. + + +## Resources + +Manage the memory and CPU resources allocated to your applications or databases. + +- **Memory Reservation**: The minimum amount of memory guaranteed to the application. +- **Memory Limit**: The maximum amount of memory the application can use. +- **CPU Limit**: The maximum number of CPU units that the application can utilize. +- **CPU Reservation**: The minimum number of CPU units reserved for the application. + + +### Volumes/Mounts + +Configure persistent storage for your application to ensure data remains intact across container restarts and deployments. + + +**Bind Mount**: Maps a host file or directory to a container file or directory. Typically used for specific configurations or databases. +1. **Host Path**: Path on the host. +2. **Mount Path**: Path in the container. + +**Volume Mount**: Uses Docker-managed volumes that are easier to back up and migrate than bind mounts. +1. **Volume Name**: Name of the Docker-managed volume. +2. **Mount Path**: Path in the container where the volume is mounted. + +**File Mount**: Specifically for single files, useful for configuration files. +1. **Content**: The content to store in the file. +2. **Mount Path**: Path in the container where the file is placed. + +File mounts are a dokploy features, this create a file in a folder called `files` inside your project, so it recreates every single time you deploy your project. + + + + + +### Redirects + +Redirect requests to your application to another URL based on specified rules, enhancing navigational efficiency and SEO. + +- **Regex**: Enter a regular expression to match the URLs that need redirecting. +- **Replacement**: Specify the target URL where traffic should be redirected. +- **Permanent**: Toggle this option to apply a permanent (HTTP 301) redirection, indicating to browsers and search engines that the page has moved permanently. + +#### Example +To redirect all traffic from "http://localhost" to "http://mydomain", set the Regex as `http://localhost/(.*)` and the Replacement as `http://mydomain/$1`. + + +### Security + +Add basic authentication to your application to restrict access. + +- **Username**: Enter a username. +- **Password**: Enter a password. + +#### Important Note +Adding basic authentication will prompt users for a username and password before allowing access to the application. Use this for environments where an additional layer of security is required. + + +### Ports + +Expose your application to the internet by configuring network ports, allowing external access. + +- **Published Port**: The port number on the host that will route traffic to your application. +- **Target Port**: The port number inside the container that the application uses. +- **Protocol**: Choose between TCP and UDP based on your application's requirements. + +#### Important Note +Ensure that the published port does not conflict with other services on the host to avoid port binding errors, also this port is used mostly for accesing the application from the outside, eg your-ip:port, this is not for accessing the application trought a domain. + +### Traefik + +Provides a dynamic and robust method to manage HTTP traffic to your services, including load balancing and SSL termination. + +- **Rules**: Define complex routing, load balancing, and security configurations using Traefik's powerful rule-based configuration system. diff --git a/apps/docs/content/docs/core/application/auto-deploy.mdx b/apps/docs/content/docs/core/application/auto-deploy.mdx new file mode 100644 index 00000000..de398767 --- /dev/null +++ b/apps/docs/content/docs/core/application/auto-deploy.mdx @@ -0,0 +1,86 @@ +--- +title: Auto Deploy +description: "Learn how to automatically deploy your application to Dokploy." +--- + +Automatically deploying your application to Dokploy can be achieved through two primary methods: using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process. + +## Github + +For Github, we provide autodeploy without any configuration. This will automatically deploy your application whenever you push to your repository. + +## Webhook URL + +Webhooks allow you to automatically deploy your application whenever changes are made in your source repository. + +- GitHub +- GitLab +- Bitbucket +- Gitea +- DockerHub + +### Configuration Steps + +1. **Enable Auto Deploy**: Toggle the 'Auto Deploy' button found in the general tab of your application settings in Dokploy. +2. **Obtain Webhook URL**: Locate the Webhook URL from the deployment logs. + + + +3. **Configure Your Repository**: + - Navigate to your repository settings on your chosen platform. + - Add the webhook URL provided by Dokploy. + - Ensure the settings match the configuration necessary for triggering the webhook. + + + +#### Important Notes + +- **Branch Matching**: When using Git-based providers (GitHub, GitLab, etc.), ensure that the branch configured in Dokploy matches the branch you intend to push to. Misalignment will result in a "Branch Not Match" error. +- **Docker Tags**: For deployments using DockerHub, ensure the tag pushed matches the one specified in Dokploy. +- The steps are the same for all the providers. + +### API Method + +Deploy your application programmatically using the Dokploy API from anywhere. + +### Steps to Deploy Using API + +Steps: + +1. **Generate a Token**: Create an API token in your profile settings on Dokploy. +2. **Retrieve Application ID**: + +```http +curl -X 'GET' \ + 'https://your-domain/api/project.all' \ + -H 'accept: application/json' + -H 'Authorization: Bearer ' +``` + +This command lists all projects and services. Identify the applicationId for the application you wish to deploy. + +3. **Trigger Deployment**: + +```http +curl -X 'POST' \ + 'https://your-domain/api/application.deploy' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer ' \ + -d '{ + "applicationId": "string" +}' +``` + +This API method allows for flexible, scriptable deployment options, suitable for automated systems or situations where direct repository integration is not feasible. +In this way you can deploy your application from anywhere, you can use the webhook URL or the API. diff --git a/apps/docs/content/docs/core/application/build-type.cn.mdx b/apps/docs/content/docs/core/application/build-type.cn.mdx new file mode 100644 index 00000000..cc50f409 --- /dev/null +++ b/apps/docs/content/docs/core/application/build-type.cn.mdx @@ -0,0 +1,32 @@ +--- +title: 构建类型 +description: "了解 Dokploy 中可用的不同构建类型,包括 Nixpack、Dockerfile 和 Building pack 选项。" +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + +## 构建类型 + +Dokploy 提供了三种不同的构建类型来部署应用程序,每种类型都适合不同的开发需求和偏好。 + +### Nixpacks + +这是 Dokploy 中的默认构建类型。当您选择 Nixpack 时,Dokploy 会将您的应用程序构建为 Nixpack,该 Nixpack 针对易用性和效率进行了优化。 + +### Dockerfile + +如果您的项目包含 Dockerfile,您可以指定其路径。 Dokploy 将使用此 Dockerfile 直接构建您的应用程序,让您完全控制构建环境和依赖项。 + +### Buildpack + +Dokploy 支持两种类型的构建包: + +- **Heroku**: 这些构建包改编自 Heroku 流行的云平台,旨在兼容性和易于迁移。 +- **Paketo**: 提供利用现代标准和实践来构建应用程序的云原生构建包。 + + + **Tip:** + 我们建议使用“Nixpack”构建类型,因为它是大多数应用程序最简单、最常用的选项。 + + +通过选择适当的构建类型,您可以定制部署过程,以最适合您的应用程序的要求和您的操作偏好。 diff --git a/apps/docs/content/docs/core/application/build-type.mdx b/apps/docs/content/docs/core/application/build-type.mdx new file mode 100644 index 00000000..f65092d1 --- /dev/null +++ b/apps/docs/content/docs/core/application/build-type.mdx @@ -0,0 +1,34 @@ +--- +title: Build Type +description: "Learn about the different build types available in Dokploy, including Nixpacks, Dockerfile, and Buildpack options." + +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + +Dokploy offers three distinct build types for deploying applications, each suited to different development needs and preferences. + +### Nixpacks + +This is the default build type in Dokploy. When you select Nixpacks, Dokploy builds your application as a Nixpack, which is optimized for ease of use and efficiency. + +You can read more about Nixpacks [here](https://nixpacks.com/). + +### Dockerfile + +If your project includes a Dockerfile, you can specify its path. Dokploy will use this Dockerfile to build your application directly, giving you full control over the build environment and dependencies. + +### Buildpack + +Dokploy supports two types of buildpacks: + +- **Heroku**: Adapted from Heroku's popular cloud platform, these buildpacks are designed for compatibility and ease of migration. +- **Paketo**: Provides cloud-native buildpacks that leverage modern standards and practices for building applications. + + + **Tip:** We recommend using the `Nixpacks` build type as it is the most + straightforward and commonly used option for most applications. + + +By choosing the appropriate build type, you can tailor the deployment process to best fit your application's requirements and your operational preferences. diff --git a/apps/docs/content/docs/core/application/domains.mdx b/apps/docs/content/docs/core/application/domains.mdx new file mode 100644 index 00000000..3aa9eb5d --- /dev/null +++ b/apps/docs/content/docs/core/application/domains.mdx @@ -0,0 +1,48 @@ +--- +title: Domains +description: Domains +--- + +This section outlines how to configure domains for your applications in Dokploy, ensuring that your applications are accessible via custom URLs. + + +### Add Domain + +Associate custom domains with your application to make it accessible over the internet. + +- **Host**: The domain name that you want to link to your application (e.g., `api.dokploy.com`). +- **Path**: The specific path within the domain where the application should be accessible. +- **Container Port**: The port on the container that the domain should route to. +- **Certificate**: Select whether to secure the domain with SSL/TLS certificates. Dokploy supports automatic provisioning of SSL certificates via Let's Encrypt. +- **HTTPS**: Toggle this on to enable HTTPS for your domain, providing secure, encrypted connections. + +#### Steps to Add a Domain +1. Click 'Add Domain'. +2. Fill in the domain details, including host, path, and port. +3. Choose to enable HTTPS and select a certificate option. +4. Click 'Create' to apply the settings. + +### Generate Domain + +Quickly set up a domain for development or testing purposes without needing to register a domain. + +- **Generate TraefikMe Domain**: Creates a free domain provided by TraefikMe. This is ideal for testing or temporary access before a proper domain is purchased. + +#### Steps to Generate a Domain +1. Click 'Generate Domain'. +2. Choose 'Generate TraefikMe Domain' for a quick setup. +3. A domain will be automatically assigned to your application. + +### Managing Domains + +- **View and Modify**: Existing domains are listed with options to edit settings or remove them. +- **Details**: Each domain entry shows the configured host, path, port, and whether HTTPS is enabled. + +### Note + +Proper domain configuration is crucial for the accessibility and security of your application. Always verify domain settings and ensure that DNS configurations are properly set up to point to the correct IP addresses. Enable HTTPS to enhance security and trust, especially for production environments. + + +### Important Clarification on Container Ports + +The "Container Port" specified in the domain settings is exclusively for routing traffic to the correct application container through Traefik, and does not expose the port directly to the internet. This is fundamentally different from the port settings in the "Advanced -> Ports" section, which are used to directly expose application ports. The container port in the domain settings ensures that Traefik can internally direct traffic to the specified port within the container based on the domain configuration. diff --git a/apps/docs/content/docs/core/application/overview.cn.mdx b/apps/docs/content/docs/core/application/overview.cn.mdx new file mode 100644 index 00000000..9af2b827 --- /dev/null +++ b/apps/docs/content/docs/core/application/overview.cn.mdx @@ -0,0 +1,41 @@ +--- +title: 概述 +description: "探索 Dokploy 中可用的多种部署方法,包括 GitHub、Git、Docker 以及通过 webhook 的自动化部署。" +--- + +Dokploy 提供了多种部署应用程序的方法,无论您使用 GitHub、任何 Git 提供商、Docker 还是自动化部署,都可以简化流程。 + +- Github +- Git (Any Git Provider) +- Docker + +## GitHub + +通过 GitHub 部署很简单: + +1. 在以下配置您的 GitHub 存储库 `/dashboard/settings/server`. +2. 创建应用程序时,Dokploy 会自动加载可用的存储库和分支。 + +## Git + +对于来自任何 Git 存储库(公共或私有)的部署,您可以使用 SSL 或 HTTPS: + +1. 提供存储库 URL。 +2. 指定您要部署的分支。 + +## Docker + +对于 Docker 部署: + +- 指定 Docker 镜像。对于私人存储库,您需要提供用户名和密码。 + +## 自动部署 + +设置自动部署: + +1. 导航至`deployments`选项卡并复制`Webhook URL`。 +2. 在 Git 提供商的设置中,将此 URL 粘贴到 Webhook URL 字段中。 +3. 选择应该触发部署的事件,例如`Push`。 +4. 配置后,任何指定的操作(例如推送新提交)都将自动触发部署。 + +Dokploy 支持 GitHub、GitLab、Bitbucket、Gitea 和 DockerHub 的 webhook。 diff --git a/apps/docs/content/docs/core/application/overview.mdx b/apps/docs/content/docs/core/application/overview.mdx new file mode 100644 index 00000000..788daff8 --- /dev/null +++ b/apps/docs/content/docs/core/application/overview.mdx @@ -0,0 +1,56 @@ +--- +title: Overview +description: "Explore the multiple deployment methods available in Dokploy, including GitHub, Git, Docker, and automated deployments via webhooks." +--- + +Applications in Dokploy are treated as a single service or container, making it easy and intuitive for users to work with each application in its own workspace. + +We offer multiple functionalities that you can use to manage your applications, such as: + +## General + +Configure the source of your code, the way your application is built, and also manage actions like deploying, updating, and deleting your application, and stopping it. + +## Environment + +If you need to assign environment variables to your application, you can do so here. + +## Monitoring + +Four graphs will be displayed for the use of memory, CPU, disk, and network. Note that the information is only updated if you are viewing the current page, otherwise it will not be updated. + +## Logs + +If you want to see any important logs from your application that is running, you can do so here and determine if your application is displaying any errors or not. + +## Deployments + +You can view the last 10 deployments of your application. When you deploy your application in real time, a new deployment record will be created and it will gradually show you how your application is being built. + +We also offer a button to cancel deployments that are in queue. Note that those in progress cannot be canceled. + +We provide a webhook so that you can trigger your own deployments by pushing to your GitHub, Gitea, GitLab, Bitbucket, DockerHub repository. + +## Domains + +This is where you will assign your domain so that your application can be accessed from the internet. + +There are two ways to assign a domain: + +1. Create a custom domain. +2. Use a generated domain, we use traefik.me to generate free domains. + +## Advanced Settings + +This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks. + +- **Run Command**: Execute custom commands directly in the container for advanced management or troubleshooting. +- **Cluster Settings**: Configure the number of replicas and select the Docker registry for your deployment to manage how your application scales and where it pulls images from. +- **Swarm Settings**: Access additional Docker Swarm configurations for detailed orchestration and scaling across multiple nodes. +- **Resources**: Adjust the CPU and memory allocation for your application. +- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application. +- **Ports**: Expose your application to the internet by configuring network ports. +- **Traefik**: Modify Traefik settings to manage HTTP request handling for your application. + +### Note +Adjust these settings carefully as incorrect configurations can significantly impact your application’s functionality and availability. diff --git a/apps/docs/content/docs/core/application/providers.mdx b/apps/docs/content/docs/core/application/providers.mdx new file mode 100644 index 00000000..83b9a254 --- /dev/null +++ b/apps/docs/content/docs/core/application/providers.mdx @@ -0,0 +1,42 @@ +--- +title: Providers +description: Learn how to use providers in your application. +--- + +Dokploy offers several deployment methods, streamlining the process whether you're utilizing GitHub, any Git provider, Docker, or automated deployments. + +- GitHub +- Git (Any Git Provider) +- Docker + +## GitHub + +Deploying via GitHub is straightforward: + +1. Configure your GitHub repository in the `/dashboard/settings/server`. +2. When creating an application, Dokploy automatically retrieves the available repositories and branches. + +## Git + +For deployments from any Git repository, whether public or private, you can use either SSH or HTTPS: + +1. Enter the repository URL. +2. Specify the branch you wish to deploy. + +### Private Repositories + +For private repositories, authenticate using SSH. We provide a lock icon to generate an SSH key. + + + +You can then copy the SSH key and paste it into the settings of your account. + + + +This enables you to pull repositories from your private repository, a method consistent across nearly all providers. + +## Docker + +For Docker deployments: + +- Provide a Docker image. For private repositories, enter the username and password. diff --git a/apps/docs/content/docs/core/cluster/overview.cn.mdx b/apps/docs/content/docs/core/cluster/overview.cn.mdx new file mode 100644 index 00000000..31207497 --- /dev/null +++ b/apps/docs/content/docs/core/cluster/overview.cn.mdx @@ -0,0 +1,96 @@ +--- +title: Cluster (Advanced) +description: "Learn how to set up and manage a cluster in Dokploy with docker swarm." +sidebar: + order: 1 +--- + + +For most suitables cases you may not need to use a cluster, unless you need to scale your application. +A cluster is a group of nodes that work together to provide a single, unified service. In Dokploy, clusters manage a group of servers collaborating to deliver this unified service. + +We use traefik under the hood to load balance the traffic to the application. + + +We recommend to read the [Traefik Docs](https://doc.traefik.io/traefik/routing/providers/swarm/) before using a cluster, to have a better understanding of how it works. + +To start adding nodes to your cluster, you need a registry. The nodes require the registry to pull images . + +## Requirements + +- A server with Dokploy installed. +- A registry to store your images. +- Additional servers (VPS) to add as nodes. + +## Registry Options + +We provide two methods to add a registry to your cluster: + +- **Custom Registry (Free)**: Set up a private registry on your server. +- **External Registry (Paid)**: Use external registries like Docker Hub, DigitalOcean, AWS ECR, etc. + + +You can see you can add two types of registries: + + + + +## Adding Nodes to a Cluster + +Once you have a registry, you can add nodes to your cluster by following these steps: + +1. Click the `Add Node` button. +2. You will see two tabs: `Worker` and `Manager`. +3. Select the type of node you want to add. +4. Follow the two steps provided: + - Install the Docker engine. + - Install the Dokploy agent. These steps are the same for both node types. +5. Run the provided commands on the new server. +6. After running the commands, go to `server/settings/cluster`. You will see entries for both the worker and manager nodes in the table. + + + + + + +## Deploying an Application + +Once you have linked nodes to the cluster, you can deploy an application as follows: + +1. Create an application in a project. +2. Fork the repository [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test). +3. Save it as a GitHub provider. +4. Go to the advanced tab of the application. +5. In the "Cluster Settings" section: + - Change the number of replicas (default is 1). + - Select the registry for the nodes to pull images from. +6. Now you can deploy the application to the cluster (By clicking the `Deploy` button). + + +In fact, this is a straightforward way to achieve multi-node deployments. Traefik will handle load balancing and route traffic to the node where the application is most available. + +To further enhance this setup, you can use load balancers from services like AWS, DigitalOcean, or Google Cloud. These load balancers perform health checks before routing requests to ensure that only healthy nodes receive traffic. If a node fails the health check, the load balancer will automatically route the request to another node. This setup provides a more robust and scalable deployment. + +To add manager nodes to the cluster, follow the same steps as adding a worker node. However, if the manager node (where Dokploy is running) fails, all other nodes will become inaccessible. This is because we currently have a single entry point for the cluster. To ensure high availability, you should have multiple manager nodes. + +To achieve this, you need to replicate all persistent and Traefik information to the new manager nodes. This will create multiple entry points for the cluster. You can use tools like rsync, aws data sync, or any other tool to synchronize all the necessary information between the nodes. + + +## Customizing the Application + +You can customize the application in the "Swarm Settings" section. Here, you can modify almost every setting related to the swarm application mode. + +In the interface, placeholders and expected formats for each setting are provided. All fields must be JSON values. + +#### Customizable Settings: + +- Healthcheck +- Restart Policy +- Placement +- Update Config +- Rollback Config +- Mode +- Network +- Labels + + diff --git a/apps/docs/content/docs/core/cluster/overview.mdx b/apps/docs/content/docs/core/cluster/overview.mdx new file mode 100644 index 00000000..9a648cff --- /dev/null +++ b/apps/docs/content/docs/core/cluster/overview.mdx @@ -0,0 +1,98 @@ +--- +title: Cluster (Advanced) +description: "Learn how to set up and manage a cluster in Dokploy with docker swarm." +sidebar: + order: 1 +--- + + +For most suitables cases you may not need to use a cluster, unless you need to scale your application. +A cluster is a group of nodes that work together to provide a single, unified service. In Dokploy, clusters manage a group of servers collaborating to deliver this unified service. + +We use traefik under the hood to load balance the traffic to the application. + + +We recommend to read the [Traefik Docs](https://doc.traefik.io/traefik/routing/providers/swarm/) before using a cluster, to have a better understanding of how it works. + +To start adding nodes to your cluster, you need a registry. The nodes require the registry to pull images . + +## Requirements + +- A server with Dokploy installed. +- A registry to store your images. +- Additional servers (VPS) to add as nodes. + +## Registry Options + +We provide two methods to add a registry to your cluster: + +- **Custom Registry (Free)**: Set up a private registry on your server. +- **External Registry (Paid)**: Use external registries like Docker Hub, DigitalOcean, AWS ECR, etc. + + +You can see you can add two types of registries: + + + + +## Adding Nodes to a Cluster + +Once you have a registry, you can add nodes to your cluster by following these steps: + +1. Click the `Add Node` button. +2. You will see two tabs: `Worker` and `Manager`. +3. Select the type of node you want to add. +4. Follow the two steps provided: + - Install the Docker engine. + - Install the Dokploy agent. These steps are the same for both node types. +5. Run the provided commands on the new server. +6. After running the commands, go to `server/settings/cluster`. You will see entries for both the worker and manager nodes in the table. + + + + +{/* ![Add Node](/assets/images/cluster/nodes.png) +![Cluster](/assets/images/cluster/cluster.png) +![Application Setting](/assets/images/cluster/application.png) */} + +## Deploying an Application + +Once you have linked nodes to the cluster, you can deploy an application as follows: + +1. Create an application in a project. +2. Fork the repository [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test). +3. Save it as a GitHub provider. +4. Go to the advanced tab of the application. +5. In the "Cluster Settings" section: + - Change the number of replicas (default is 1). + - Select the registry for the nodes to pull images from. +6. Now you can deploy the application to the cluster (By clicking the `Deploy` button). + + +In fact, this is a straightforward way to achieve multi-node deployments. Traefik will handle load balancing and route traffic to the node where the application is most available. + +To further enhance this setup, you can use load balancers from services like AWS, DigitalOcean, or Google Cloud. These load balancers perform health checks before routing requests to ensure that only healthy nodes receive traffic. If a node fails the health check, the load balancer will automatically route the request to another node. This setup provides a more robust and scalable deployment. + +To add manager nodes to the cluster, follow the same steps as adding a worker node. However, if the manager node (where Dokploy is running) fails, all other nodes will become inaccessible. This is because we currently have a single entry point for the cluster. To ensure high availability, you should have multiple manager nodes. + +To achieve this, you need to replicate all persistent and Traefik information to the new manager nodes. This will create multiple entry points for the cluster. You can use tools like rsync, aws data sync, or any other tool to synchronize all the necessary information between the nodes. + + +## Customizing the Application + +You can customize the application in the "Swarm Settings" section. Here, you can modify almost every setting related to the swarm application mode. + +In the interface, placeholders and expected formats for each setting are provided. All fields must be JSON values. + +#### Customizable Settings: + +- Healthcheck +- Restart Policy +- Placement +- Update Config +- Rollback Config +- Mode +- Network +- Labels + + diff --git a/apps/docs/content/docs/core/databases/backups.cn.mdx b/apps/docs/content/docs/core/databases/backups.cn.mdx new file mode 100644 index 00000000..cecf071d --- /dev/null +++ b/apps/docs/content/docs/core/databases/backups.cn.mdx @@ -0,0 +1,26 @@ +--- +title: 备份 +description: "了解如何在 Dokploy 中设置和管理数据库的备份,并提供 S3 存储桶中的存储选项。" +--- + +Dokploy 提供了一个集成的解决方案来备份您的数据库,确保数据安全和恢复能力。 + +## 备份数据库 + +要配置数据库备份,请导航至 Dokploy 仪表板中的 `Backup` 选项卡。以下是您需要设置的内容: + +- **Select Destination S3 Bucket(选择备份位置 S3 桶)**: 指定备份将存储在哪里。桶可以在`/dashboard/settings/destinations`路由中配置。 +- **Database Name(数据库名称)**: 输入要备份的数据库的名称。 +- **Schedule Cron(定时 cron)**: 使用 cron 语法定义备份的时间表。 +- **Prefix(前缀)**: 选择将备份存储在您的存储桶中所使用的前缀。 +- **Enabled(启用)**: 切换备份是否处于活动状态。 默认设置已启用。 + +### 测试您的备份配置 + +要确保正确配置备份设置: + +1. 点击 `Test` 按钮. +2. 这将启动对您选择的 S3 存储桶的测试备份。 +3. 检查桶以查看测试备份的结果。 + +此功能通过在依赖备份过程进行操作备份之前验证您的备份过程是否正确设置,从而让您安心。 diff --git a/apps/docs/content/docs/core/databases/backups.mdx b/apps/docs/content/docs/core/databases/backups.mdx new file mode 100644 index 00000000..e91d4d65 --- /dev/null +++ b/apps/docs/content/docs/core/databases/backups.mdx @@ -0,0 +1,26 @@ +--- +title: Backups +description: "Learn how to schedule and manage backups for your databases in Dokploy, with options for storage in S3 buckets." +--- + +Dokploy provides an integrated solution for backing up your databases, ensuring data safety and recovery capabilities. + +## Backing Up Your Database + +To configure database backups, navigate to the `Backup` tab within your Dokploy dashboard. Here’s what you’ll need to set up: + +- **Select Destination S3 Bucket**: Specify where your backups will be stored. Buckets can be configured in the `/dashboard/settings/destinations` route. +- **Database Name**: Enter the name of the database you want to backup. +- **Schedule Cron**: Define the schedule for your backups using cron syntax. +- **Prefix**: Choose a prefix under which backups will be stored in your bucket. +- **Enabled**: Toggle whether backups are active. The default setting is enabled. + +### Testing Your Backup Configuration + +To ensure your backup settings are correctly configured: + +1. Click the `Test` button. +2. This will initiate a test backup to the S3 bucket you selected. +3. Check the bucket to see the result of the test backup. + +This feature provides peace of mind by verifying that your backup process is set up correctly before relying on it for operational backups. diff --git a/apps/docs/content/docs/core/databases/connection.mdx b/apps/docs/content/docs/core/databases/connection.mdx new file mode 100644 index 00000000..ec796d15 --- /dev/null +++ b/apps/docs/content/docs/core/databases/connection.mdx @@ -0,0 +1,33 @@ +--- +title: Connection +description: "Learn how to connect to your database using Dokploy." +--- + +This section explains how to configure database access for applications in Dokploy, including both internal connections within your network and external connections accessible over the internet. + +### Internal Credentials + + Used for connecting to the database from within the same network, without exposing the database to the internet. + +- **User**: Username for the database access. +- **Password**: Secure password for database access. +- **Database Name**: The name of the database to connect to. +- **Internal Host**: The hostname or internal identifier for the database within the network. +- **Internal Port (Container)**: The port used within the container to connect to the database. +- **Internal Connection URL**: The full connection string used internally to connect to the database. + +### External Credentials + +Enables the database to be reachable from the internet, necessary for remote management or external applications. + +- **External Port (Internet)**: Assign a port that is not currently used by another service to expose the database externally. + +#### Steps to Configure External Access +1. Ensure the external port is available and not in conflict with other services. +2. Enter the external port you wish to use to expose your database. +3. The system will automatically generate an external connection URL, which can be used to access the database from any database management tool over the internet, like phpMyAdmin, MySQL Workbench, PgAdmin, etc. + +### Important Note + +For security reasons, internal credentials should be used for applications running within the same network or environment to prevent unauthorized access. External credentials should only be used when necessary and with proper security measures in place, such as VPNs or IP whitelisting. + diff --git a/apps/docs/content/docs/core/databases/overview.cn.mdx b/apps/docs/content/docs/core/databases/overview.cn.mdx new file mode 100644 index 00000000..83db3873 --- /dev/null +++ b/apps/docs/content/docs/core/databases/overview.cn.mdx @@ -0,0 +1,25 @@ +--- +title: 概述 +description: "了解如何使用Dokploy轻松创建和备份数据库,支持各种数据库系统." +--- + +Dokploy 简化了创建和管理数据库的过程,为设置和备份提供了强大的选项。 + +## 数据库支持 + +Dokploy 目前支持一系列流行的数据库系统,确保您的项目的兼容性和灵活性: + +- **Postgres**: 强大、符合 SQL 且高度可靠。 +- **MySQL**: 广泛使用的关系数据库以其性能和灵活性而闻名。 +- **MariaDB**: 具有额外功能和改进的性能的 SQL 的分支。 +- **MongoDB**: NoSQL 数据库以其高可扩展性和灵活性而闻名。 +- **Redis**: 内存中的键-值存储,通常用作数据库、缓存和消息代理。 + +## 部署 + +在 Dokploy 中部署数据库很简单: + +1. 导航至 Dokploy 仪表板的数据库部分。 +2. 单击您要设置的数据库旁边的`Deploy`按钮。 + +`Deploy`按钮启动一个简化的流程,自动设置您选择的数据库,使其准备好立即使用。 diff --git a/apps/docs/content/docs/core/databases/overview.mdx b/apps/docs/content/docs/core/databases/overview.mdx new file mode 100644 index 00000000..f9702fb0 --- /dev/null +++ b/apps/docs/content/docs/core/databases/overview.mdx @@ -0,0 +1,49 @@ +--- +title: Overview +description: "Discover how to create and backup databases easily with Dokploy, supporting a variety of database systems." +--- + +Dokploy simplifies the process of creating and managing databases, offering robust options for both setup and backups. + +## Database Support + +Dokploy currently supports a range of popular database systems, ensuring compatibility and flexibility for your projects: + +- **Postgres**: Robust, SQL-compliant and highly reliable. +- **MySQL**: Widely used relational database known for its performance and flexibility. +- **MariaDB**: A fork of MySQL with additional features and improved performance. +- **MongoDB**: A NoSQL database known for its high scalability and flexibility. +- **Redis**: An in-memory key-value store often used as a database, cache, and message broker. + + +We offer multiple functionalities that you can use to manage your databases, such as: + +## General + +Actions like deploying, updating, and deleting your database, and stopping it. + +## Environment + +If you need to assign environment variables to your application, you can do so here. + +## Monitoring + +Four graphs will be displayed for the use of memory, CPU, disk, and network. Note that the information is only updated if you are viewing the current page, otherwise it will not be updated. + +## Backups + +We offer automated backups for your databases, ensuring that you can recover your data quickly and easily in case of any issues, you can setup a S3 Destinations in settings to store your backups. + + +## Logs + +If you want to see any important logs from your application that is running, you can do so here and determine if your application is displaying any errors or not. + +## Advanced + +This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks. + +- **Custom Docker Image**: You can change the Docker image used to run your database. +- **Run Command**: Execute custom commands directly in the container for advanced management or troubleshooting. +- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application. +- **Resources**: Adjust the CPU and memory allocation for your application. diff --git a/apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx b/apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx new file mode 100644 index 00000000..d3063a32 --- /dev/null +++ b/apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx @@ -0,0 +1,32 @@ +--- +title: Oracle 云 +description: 将应用程序部署到 Oracle 云 +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + +将应用程序部署到 Oracle 云 + +步骤 + +1. 登录 Oracle 云 +2. 创建一个新的 `Compute Instance` +3. 到 `Image and Shape` +4. 选择 `Ubuntu 20.04 LTS` + + + + +5. 添加 SSH Key,确保添加您的 SSH key 的公钥 +6. 登录实例 `ssh ubuntu@ip-address-of-instance` + + 如果由于出现连接拒绝错误而无法访问实例,您可以尝试将`Public Subnet IPv4 + CIDR Block` 添加到实例,转到您的实例,然后 Quick Actions -> Connect public + subnet to internet -> Create + +7. 运行 `sudo su` +8. 运行 `curl -sSL https://dokploy.com/install.sh | sh` +9. 默认情况下,Oracle 云 已设置仅 22 个端口打开,您可以在实例中更改 + -> attached VNICs -> 点击 `subnet` 链接 -> 打开 `Security Lists` -> `Inbound Rules` -> 点击 `default security list for vnc` 链接 -> 进入规则 -> 添加入口规则 -> 设置 CIDR `0.0.0.0/0` 后,保存. +10. 打开 `ip-address-of-instance:3000` 您会看到仪表板. diff --git a/apps/docs/content/docs/core/deployments/oracle-cloud.mdx b/apps/docs/content/docs/core/deployments/oracle-cloud.mdx new file mode 100644 index 00000000..5675120b --- /dev/null +++ b/apps/docs/content/docs/core/deployments/oracle-cloud.mdx @@ -0,0 +1,31 @@ +--- +title: Oracle Cloud +description: Deploy your application to Oracle Cloud +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + + + +Deploy your application to Oracle Cloud + +Steps + +1. Log in to Oracle Cloud +2. Create a new `Compute Instance` +3. Go to `Image and Shape` +4. Select `Ubuntu 20.04 LTS` and Shape + + + +5. Add SSH Key, make sure to add the public key of your SSH key +6. Login to the instance `ssh ubuntu@ip-address-of-instance` + +If you cannot access to the instance because you se connection refused error, you can try adding a `Public Subnet IPv4 CIDR Block` to the instance, go to your instance and then Quick Actions -> Connect public subnet to internet -> Create + +7. Run `sudo su` +8. Run `curl -sSL https://dokploy.com/install.sh | sh` +9. By default oracle cloud have blocked the ports only the 22 is open, you can change in your instance -> attached VNICs -> click on `subnet` Link -> go to `Security Lists` -> `Inbound Rules` -> Click on `default security list for vnc` Link -> Go to ingress rules -> add a ingress rule -> on source CIDR `0.0.0.0/0` and save. +9. Go to `ip-address-of-instance:3000` and you will see the dashboard. + + diff --git a/apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx b/apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx new file mode 100644 index 00000000..9b769bd5 --- /dev/null +++ b/apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx @@ -0,0 +1,81 @@ +--- +title: 自动部署 +description: 如何使用 Dokploy 自动部署您的 docker-compose 应用 +--- + +自动部署您的 docker-compose 应用到 Dokploy 可以通过两种主要方法实现:使用 Webhooks 或 Dokploy API。每种方法支持各种平台,并提供简化的部署过程。 + +## Github + +对于 Github,我们提供无需配置的自动部署。这将在您推送到存储库时自动部署您的应用。 + +## Webhook URL + +使用 Webhooks,您可以在源代码库中发生更改时自动部署您的 docker-compose 应用。 + +- GitHub +- GitLab +- Bitbucket +- Gitea + +### 配置步骤 + +1. **启用自动部署**:在 Dokploy 中的应用设置的常规标签中切换“自动部署”按钮。 +2. **获取 Webhook URL**:从部署日志中找到 Webhook URL。 + + + +3. **配置您的存储库**: + - 导航到您选择的平台上的存储库设置。 + - 添加 Dokploy 提供的 webhook URL。 + - 确保设置匹配触发 webhook 所需的配置。 + + + +#### 重要说明 + +- **分支匹配**:使用基于 Git 的提供商(GitHub、GitLab 等)时,确保 Dokploy 中配置的分支与您打算推送到的分支匹配。不匹配将导致“分支不匹配”错误。 +- 所有提供商的步骤相同。 + +## API 方法 + +通过 Dokploy API 从任何地方以编程方式部署您的应用。 + +### 使用 API 部署的步骤 + +步骤: + +1. **生成令牌**:在 Dokploy 的个人资料设置中创建一个 API 令牌。 +2. **获取 Compose ID**: + +```http +curl -X 'GET' \ + 'https://your-domain/api/project.all' \ + -H 'accept: application/json' \ + -H 'Authorization: Bearer ' +``` + +此命令列出所有项目和服务。确定您要部署的 compose 的 composeId。 + +3. **触发部署**: +```http +curl -X 'POST' \ + 'https://canary.dokploy.com/api/compose.deploy' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer ' \ + -d '{ + "composeId": "string" +}' +``` + +这种 API 方法提供了灵活的、可脚本化的部署选项,适用于自动化系统或无法直接集成存储库的情况。 +通过这种方式,您可以从任何地方部署您的应用,可以使用 webhook URL 或 API。 diff --git a/apps/docs/content/docs/core/docker-compose/auto-deploy.mdx b/apps/docs/content/docs/core/docker-compose/auto-deploy.mdx new file mode 100644 index 00000000..93d764e6 --- /dev/null +++ b/apps/docs/content/docs/core/docker-compose/auto-deploy.mdx @@ -0,0 +1,84 @@ +--- +title: Auto-deploy +description: How to auto-deploy your docker-compose application with Dokploy +--- + +Automatically deploying your docker-compose application to Dokploy can be achieved through two primary methods: using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process. + +## Github + +For Github, we provide autodeploy without any configuration. This will automatically deploy your application whenever you push to your repository. + +## Webhook URL + +Webhooks allow you to automatically deploy your docker-compose application whenever changes are made in your source repository. + +- GitHub +- GitLab +- Bitbucket +- Gitea + +### Configuration Steps + +1. **Enable Auto Deploy**: Toggle the 'Auto Deploy' button found in the general tab of your application settings in Dokploy. +2. **Obtain Webhook URL**: Locate the Webhook URL from the deployment logs. + + + +3. **Configure Your Repository**: + - Navigate to your repository settings on your chosen platform. + - Add the webhook URL provided by Dokploy. + - Ensure the settings match the configuration necessary for triggering the webhook. + + + +#### Important Notes + +- **Branch Matching**: When using Git-based providers (GitHub, GitLab, etc.), ensure that the branch configured in Dokploy matches the branch you intend to push to. Misalignment will result in a "Branch Not Match" error. +- The steps are the same for all the providers. + +## API Method + +Deploy your application programmatically using the Dokploy API from anywhere. + +### Steps to Deploy Using API + +Steps: + +1. **Generate a Token**: Create an API token in your profile settings on Dokploy. +2. **Retrieve Compose ID**: + +```http +curl -X 'GET' \ + 'https://your-domain/api/project.all' \ + -H 'accept: application/json' + -H 'Authorization: Bearer ' +``` + +This command lists all projects and services. Identify the composeId for the compose you wish to deploy. + +3. **Trigger Deployment**: + +```http +curl -X 'POST' \ + 'https://canary.dokploy.com/api/compose.deploy' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer ' \ + -d '{ + "composeId": "string" +}' +``` + +This API method allows for flexible, scriptable deployment options, suitable for automated systems or situations where direct repository integration is not feasible. +In this way you can deploy your application from anywhere, you can use the webhook URL or the API. diff --git a/apps/docs/content/docs/core/docker-compose/domains.mdx b/apps/docs/content/docs/core/docker-compose/domains.mdx new file mode 100644 index 00000000..97d11119 --- /dev/null +++ b/apps/docs/content/docs/core/docker-compose/domains.mdx @@ -0,0 +1,196 @@ +--- +title: Domains +description: Configure domains for your Docker Compose application. +--- + +When using Docker Compose, adding a domain to a service is a straightforward process. This guide will walk you through the necessary steps to configure domains for your application. + +Key Steps: + +1. Add the service to the `dokploy-network`. +2. Use Traefik labels to configure routing. + +Example Scenario + +Let's consider an application with three components: a frontend, a backend, and a database. We'll start with a basic Docker Compose file and then enhance it with domain configuration. + +```yaml +version: '3.8' + +services: + frontend: + build: + context: ./frontend + dockerfile: Dockerfile + volumes: + - ./frontend:/app + ports: + - "3000:3000" + depends_on: + - backend + + backend: + build: + context: ./backend + dockerfile: Dockerfile + volumes: + - ./backend:/app + ports: + - "5000:5000" + environment: + - DATABASE_URL=postgres://postgres:password@database:5432/mydatabase + depends_on: + - database + + database: + image: postgres:13 + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: password + POSTGRES_DB: mydatabase + volumes: + - db-data:/var/lib/postgresql/data + +volumes: + db-data: +``` + +## Step 1: Add the Network + +First, we'll add the dokploy-network to our services: + +```yaml +version: '3.8' + +services: + frontend: + # ... (previous configuration) + networks: + - dokploy-network + + backend: + # ... (previous configuration) + networks: + - dokploy-network + + database: + # ... (previous configuration) + networks: + - dokploy-network + +volumes: + db-data: + +networks: + dokploy-network: + external: true +``` + +Step 2: Configuring Traefik Labels + +Now, let's add Traefik labels to route domains to our services. We'll focus on the frontend and backend services: + +{/* It is necessary to add these labels: + +1. `traefik.enable=true` +This label tells Traefik that this service should be routed by Traefik. +2. `traefik.http.routers..rule=Host('your-domain.dokploy.com')` +This label tells Traefik that the domain to be used is `your-domain.dokploy.com` +3. `traefik.http.routers..entrypoints=web` +This label tells Traefik that the service should be accessible via the `http` protocol. +4. `traefik.http.services..loadbalancer.server.port=3000` +This label tells Traefik that the port to be used is `3000` + +Note: For loadbalancer.server.port, ensure you assign the port that your service is using. It's important to note that you do not need to expose the port like this: + +Nota: en el loadbalancer.server.port asegurate de asignar el puerto que tu servicio esta utilizando, y alcaramos no es necesario que expongas el puerto de esta manera + +'3000:3000' esto es incorrecto, unicamente debes de asignar el puerto que tu servicio esta utilizando, en este caso `3000` + +asegurate de crear los registros `A` que apunten a tu dominio, esto hazlo desde tu DNS provider. */} + + +```yaml +version: '3.8' + +services: + frontend: + build: + context: ./frontend + dockerfile: Dockerfile + volumes: + - ./frontend:/app + expose: + - 3000 + depends_on: + - backend + networks: + - dokploy-network + labels: + - traefik.enable=true + - traefik.http.routers.frontend-app.rule=Host(`frontend.dokploy.com`) + - traefik.http.routers.frontend-app.entrypoints=web + - traefik.http.services.frontend-app.loadbalancer.server.port=3000 + + backend: + build: + context: ./backend + dockerfile: Dockerfile + volumes: + - ./backend:/app + expose: + - 5000 + environment: + - DATABASE_URL=postgres://postgres:password@database:5432/mydatabase + depends_on: + - database + networks: + - dokploy-network + labels: + - traefik.enable=true + - traefik.http.routers.backend-app.rule=Host(`backend.dokploy.com`) + - traefik.http.routers.backend-app.entrypoints=web + - traefik.http.services.backend-app.loadbalancer.server.port=5000 + + database: + # ... (same as before) + +volumes: + db-data: + +networks: + dokploy-network: + external: true +``` + +Understanding Traefik Labels + + +1. `traefik.enable=true` Enables Traefik routing for the service. +2. `traefik.http.routers..rule=Host('your-domain.dokploy.com')` Specifies the domain for the service +3. `traefik.http.routers..entrypoints=web` Sets the service to be accessible via HTTP. +4. `traefik.http.services..loadbalancer.server.port=3000` Specifies the port your service is using internally. + +**Note**: Replace `` with a unique identifier for each service (e.g., frontend-app, backend-app, etc.). + + +## Important Considerations + +1. **Port Exposure**: Use `expose` instead of `ports` to expose ports to the host machine. This ensures that the ports are not exposed to the host machine. +2. **DNS Configuration**: Ensure you create `A` records pointing to your domain in your DNS Provider Settings. +3. **HTTPS**: For HTTPS, you can use Let's Encrypt or other SSL/TLS certificates. + + +## Deployment + +With these configurations in place, you're now ready to deploy your application using Docker Compose. This setup should be sufficient to get your services up and running with custom domain routing through Traefik. + +## SSL Certificates and Further Configuration + +If you have questions about when to use Let's Encrypt or other SSL certificate options, you can find more detailed information in the following resources: + +1. [Certificates](/docs/core/domain/certificates) +2. [Docker Compose Domain](/docs/core/domain/docker-compose-setup) +3. [Docker Compose Example](/docs/core/docker-compose/example) + +If you have any further questions or need assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc) and we'll be happy to help. diff --git a/apps/docs/content/docs/core/docker-compose/example.mdx b/apps/docs/content/docs/core/docker-compose/example.mdx new file mode 100644 index 00000000..89cddc2f --- /dev/null +++ b/apps/docs/content/docs/core/docker-compose/example.mdx @@ -0,0 +1,110 @@ +--- +title: "Example" +description: "Learn how to use Docker Compose with Dokploy" + +--- + +## Tutorial + +In this tutorial, we will create a simple application using Docker Compose and route the traffic to an accessible domain. + + +### Steps + +1. Create a new project. +2. Create a new service `Compose` and select the Compose Type `Docker Compose`. +3. Fork this repository: [Repo](https://github.com/Dokploy/docker-compose-test). +4. Select Provider type: GitHub or Git. +5. Select the repository: `Dokploy/docker-compose-test`. +6. Select the branch: `main`. +7. Set the Compose Path to `./docker-compose.yml` and save. +![Docker compose configuration](/assets/images/compose/setup.png) + + +### Updating Your `docker-compose.yml` + +Add the following to your existing `docker-compose.yml` file: + +1. Add the network `dokploy-network` to each service. +2. Add labels for Traefik to make the service accessible through the domain. + +Example: + +Let's modify the following compose file to make it work with Dokploy: + +```yaml +version: "3" + +services: + next-app: + build: + context: ./next-app + dockerfile: prod.Dockerfile + args: + ENV_VARIABLE: ${ENV_VARIABLE} + NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} + restart: always + ports: + - 3000:3000 + networks: + - my_network +networks: + my_network: + external: true +``` + + +Updated version with dokploy-network and Traefik labels: + +import { Callout } from 'fumadocs-ui/components/callout'; + + +Don't set container_name property to the each service, it will cause issues with logs, metrics and other features + +{/* :::danger +Don't set container_name property to the each service, it will cause issues with logs, metrics and other features + +::: */} + +```yaml +version: "3" + +services: + next-app: + build: + context: ./next-app + dockerfile: prod.Dockerfile + args: + ENV_VARIABLE: ${ENV_VARIABLE} + NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} + restart: always + ports: + - 3000 + networks: + - dokploy-network + labels: + - "traefik.enable=true" + - "traefik.http.routers..rule=Host(`your-domain.com`)" + - "traefik.http.routers..entrypoints=websecure" + - "traefik.http.routers..tls.certResolver=letsencrypt" + - "traefik.http.services..loadbalancer.server.port=3000" +networks: + dokploy-network: + external: true +``` + +Make sure to point the A record to the domain you want to use for your service. + + + +Deploy the application by clicking on "deploy" and wait for the deployment to complete. Then give Traefik about 10 seconds to generate the certificates. You can then access the application through the domain you have set. + + + +**Tips**: + +1. Set unique names for each router: `traefik.http.routers.` +2. Set unique names for each service: `traefik.http.services.` +3. Ensure the network is linked to the `dokploy-network` +4. Set the entry point to websecure and the certificate resolver to letsencrypt to generate certificates. + diff --git a/apps/docs/content/docs/core/docker-compose/overview.mdx b/apps/docs/content/docs/core/docker-compose/overview.mdx new file mode 100644 index 00000000..7416b17d --- /dev/null +++ b/apps/docs/content/docs/core/docker-compose/overview.mdx @@ -0,0 +1,49 @@ +--- +title: "Overview" +description: "Learn how to use Docker Compose with Dokploy" +--- + +Dokploy integrates with Docker Compose and Docker Stack to provide flexible deployment solutions. Whether you are developing locally or deploying at scale, Dokploy facilitates application management through these powerful Docker tools. + +### Configuration Methods + +Dokploy provides two methods for creating Docker Compose configurations: + + +- **Docker Compose**: Ideal for standard Docker Compose configurations. +- **Stack**: Geared towards orchestrating applications using Docker Swarm. Note that some Docker Compose features, such as `build`, are not available in this mode. + +### General + +Configure the source of your code, the way your application is built, and also manage actions like deploying, updating, and deleting your application, and stopping it. + +### Enviroment + +A code editor within Dokploy allows you to specify environment variables for your Docker Compose file. By default, Dokploy creates a `.env` file in the specified Docker Compose file path. + +### Monitoring + +Monitor each service individually within Dokploy. If your application consists of multiple services, each can be monitored separately to ensure optimal performance. + +### Logs + +Access detailed logs for each service through the Dokploy log viewer, which can help in troubleshooting and ensuring the stability of your services. + + +### Deployments + +You can view the last 10 deployments of your application. When you deploy your application in real time, a new deployment record will be created and it will gradually show you how your application is being built. + +We also offer a button to cancel deployments that are in queue. Note that those in progress cannot be canceled. + +We provide a webhook so that you can trigger your own deployments by pushing to your GitHub, Gitea, GitLab, Bitbucket repository. + + +### Advanced + +This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container and volumes. + +- **Command**: Dokploy has a defined command to run the Docker Compose file, ensuring complete control through the UI. However, you can append flags or options to the command. +- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application. + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/docker-compose/providers.mdx b/apps/docs/content/docs/core/docker-compose/providers.mdx new file mode 100644 index 00000000..09cecc8f --- /dev/null +++ b/apps/docs/content/docs/core/docker-compose/providers.mdx @@ -0,0 +1,41 @@ +--- +title: "Providers" +description: "Learn how to use Docker Compose with Dokploy" +--- + +Dokploy offers several deployment methods, streamlining the process whether you're utilizing GitHub, any Git provider, Raw, or automated deployments. + +- GitHub +- Git (Any Git Provider) +- Raw + +## GitHub + +Deploying via GitHub is straightforward: + +1. Configure your GitHub repository in the `/dashboard/settings/server`. +2. When creating an application, Dokploy automatically retrieves the available repositories and branches. + +## Git + +For deployments from any Git repository, whether public or private, you can use either SSH or HTTPS: + +1. Enter the repository URL. +2. Specify the branch you wish to deploy. + +### Private Repositories + +For private repositories, authenticate using SSH. We provide a lock icon to generate an SSH key. + + + +You can then copy the SSH key and paste it into the settings of your account. + + + +This enables you to pull repositories from your private repository, a method consistent across nearly all providers. + + +## Raw + +You specify a docker compose file directly in the code editor and trigger a deployment. \ No newline at end of file diff --git a/apps/docs/content/docs/core/docker/overview.cn.mdx b/apps/docs/content/docs/core/docker/overview.cn.mdx new file mode 100644 index 00000000..1c87e4fa --- /dev/null +++ b/apps/docs/content/docs/core/docker/overview.cn.mdx @@ -0,0 +1,23 @@ +--- +title: 概述 +description: "了解 Dokploy 如何使用 Docker Swarm 直接从仪表板部署应用程序和管理容器。" +--- + +Dokploy 利用 Docker Swarm 为您的应用程序编排和管理容器部署,提供直观的监控界面。 + +## 查看容器 + +要监视和管理服务器上运行的容器: + +- 导航到 Dokploy 中的 `/dashboard/docker` 页面。 +- 此页面显示您的服务器上当前活动的所有容器。 + +## 容器行为 + +对于每个容器,您都有几个管理选项: + +- **View Logs(查看日志)**: 访问容器的实时日志以监控其活动并排除问题。 +- **View Config(查看配置)**: 检查容器的配置设置以了解其部署参数。 +- **Terminal(终端)**: 直接在容器内打开终端会话以执行高级管理任务。 + +这些功能提供了全面的工具来有效管理应用程序的容器,所有这些都来自 Dokploy 的用户友好型仪表板。 diff --git a/apps/docs/content/docs/core/docker/overview.mdx b/apps/docs/content/docs/core/docker/overview.mdx new file mode 100644 index 00000000..7448375a --- /dev/null +++ b/apps/docs/content/docs/core/docker/overview.mdx @@ -0,0 +1,23 @@ +--- +title: Overview +description: 'Understand how Dokploy uses Docker Swarm for deploying applications and managing containers directly from the dashboard.' +--- + +Dokploy leverages Docker Swarm to orchestrate and manage container deployments for your applications, providing an intuitive interface for monitoring and control. + +## Viewing Containers + +To monitor and manage the containers running on your server: + +- Navigate to the `/dashboard/docker` route in Dokploy. +- This page displays all the containers currently active on your server. + +## Container Actions + +For each container, you have several management options: + +- **View Logs**: Access real-time logs from the container to monitor its activity and troubleshoot issues. +- **View Config**: Review the configuration settings of the container to understand its deployment parameters. +- **Terminal**: Open a terminal session directly within the container for advanced management tasks. + +These features provide comprehensive tools to manage your applications' containers effectively, all from within Dokploy’s user-friendly dashboard. \ No newline at end of file diff --git a/apps/docs/content/docs/core/domain/application-setup.cn.mdx b/apps/docs/content/docs/core/domain/application-setup.cn.mdx new file mode 100644 index 00000000..01028b35 --- /dev/null +++ b/apps/docs/content/docs/core/domain/application-setup.cn.mdx @@ -0,0 +1,38 @@ +--- +title: "应用程序域名设置" +description: "了解如何为应用程序设置域名" +--- + + +## 介绍 + +本指南详细介绍了如何为您的应用程序设置域名。 + +## 要求 + +如果您没有域名,请首先参阅 `Web域名设置` 部分。 + +## 创建 DNS 记录 + +1. 将 `A` 记录添加到您的 DNS 设置中: + - **名称:** 输入您要指向的路线 (例如, `app` 到 `app.yourdomain.com`). + - **值:** 输入服务器的 IP 地址, 例如 `1.2.3.4`. + +## 应用程序域名设置 + +1. 导航至应用程序的仪表板。 +2. 转到 “域名” 选项卡并单击 “添加域名”。 +3. 输入您在上一步中创建的 DNS 记录 (例如:`app.yourdomain.com`)。 + +import { Callout } from 'fumadocs-ui/components/callout'; + + + +**注意:** 将容器端口设置为您的应用程序正在运行的端口。 + + + +等待 20-30 秒,让 Traefik 生成证书,之后您可以通过新设置的域访问您的应用程序。 + +转到任何应用程序并转到 “域名” 选项卡并单击 “添加域名” ,然后只需输入您在上一步中创建的记录即可。 + diff --git a/apps/docs/content/docs/core/domain/application-setup.mdx b/apps/docs/content/docs/core/domain/application-setup.mdx new file mode 100644 index 00000000..4e862f34 --- /dev/null +++ b/apps/docs/content/docs/core/domain/application-setup.mdx @@ -0,0 +1,29 @@ +--- +title: "Application Domain Setup" +description: "Learn how to setup a domain for an application" +--- + +This guide details how to set up a domain for your application. + +## Create DNS Record + +1. Add an `A` record to your DNS settings: + - **Name:** Enter the route you want to point to (e.g., `app` for `app.yourdomain.com`). + - **Value:** Type in the IP address of your server, such as `1.2.3.4`. + +## Application Domain Setup + +1. Navigate to your application's dashboard. +2. Go to the `Domains` tab and click on `Add Domain`. +3. Enter the DNS record you created in the previous step (e.g., `app.yourdomain.com`). +4. Make sure to assign the right container port (e.g., NextJS: `3000`). +5. Choose your certificate option: + - `None` + - `Let's Encrypt` + + +For detailed instructions on setting up certificates, refer to the [Certificates](/docs/core/domain/certificates) documentation. + + + + diff --git a/apps/docs/content/docs/core/domain/certificates.mdx b/apps/docs/content/docs/core/domain/certificates.mdx new file mode 100644 index 00000000..bf8bc72b --- /dev/null +++ b/apps/docs/content/docs/core/domain/certificates.mdx @@ -0,0 +1,59 @@ +--- +title: "Certificates" +description: "Learn how to set up certificates for the Dokploy panel" +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + +When using a domain for Dokploy, we offer 3 options for certificates: + +- Use `None` +- Use a free SSL certificate from [Let's Encrypt](https://letsencrypt.org/) +- Use a custom SSL certificate + +## None + +Using `None` basically means we will not assign a `tlsResolver`, so your DNS provider can implement SSL certificates from their own server. + +When you register a domain on Cloudflare, the SSL certificate is automatically assigned by Cloudflare, so you need to select `None` in Dokploy and disable HTTPS. + +## Let's Encrypt + +Using a free SSL certificate from [Let's Encrypt](https://letsencrypt.org/) is the easiest option, but it comes with some limitations: + +1. **Rate Limits**: There are limits on the number of certificates you can issue per domain and account within specific time frames. +2. **Short Validity Period**: Certificates are valid for only 90 days, but Traefik automatically renews them for you. +3. **Wildcard Certificates**: While supported, obtaining wildcard certificates requires DNS-01 validation, which can be more complex. +4. **Domain Validation Only**: Let's Encrypt only provides Domain Validation (DV) certificates, which means they only verify domain ownership, not the organization behind it. +5. **No Warranty**: Certificates come without any warranties or liability coverage, which might not be suitable for all use cases. + +### Other Providers + +For domains managed by providers other than Cloudflare, the process is simple: + +1. In Dokploy, select `Let's Encrypt` and enable `HTTPS`. +2. Ensure your DNS records are correctly set up to point to your server. +3. Traefik will handle the rest, and the certificate should be generated within about 20 seconds. + +### Cloudflare Setup + +If your domain is managed by Cloudflare: + +1. Ensure your domain is set to `Full (Strict)` mode in Cloudflare. +2. In Dokploy, select `Let's Encrypt` and enable `HTTPS`. + +Steps for Cloudflare configuration: + +1. Log in to Cloudflare and navigate to `Websites` -> `Your Domain` -> `SSL/TLS` -> `Overview`. +2. You will see 4 different modes (Off, Flexible, Full, Full (Strict)). +3. To use Let's Encrypt, select `Full (Strict)`. + + + **Note:** When creating a domain in your application, ensure you use the `Let's Encrypt` certificate and enable `HTTPS`. The generation of certificates typically takes about 20 seconds. If the certificate is not generated, restart Traefik and try again. + + +## Custom SSL + +We provide a way to create a certificate and have Traefik reference it, but that doesn't mean it will work automatically. You need to adjust the Traefik configuration to use it. + +You can read more about how to create a custom certificate [here](https://docs.traefik.io/https/acme/#custom-ssl-certificates). diff --git a/apps/docs/content/docs/core/domain/docker-compose-setup.mdx b/apps/docs/content/docs/core/domain/docker-compose-setup.mdx new file mode 100644 index 00000000..afd12ac4 --- /dev/null +++ b/apps/docs/content/docs/core/domain/docker-compose-setup.mdx @@ -0,0 +1,84 @@ +--- +title: "Docker Compose Setup" +description: "Learn how to setup a domain for a Docker Compose application" +--- +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +This guide details how to set up a domain for your Docker Compose application. + +## Create DNS Record + +1. Add an `A` record to your DNS settings: + - **Name:** Enter the route you want to point to (e.g., `app` for `app.yourdomain.com`). + - **Value:** Type in the IP address of your server, such as `1.2.3.4`. + +## Docker Compose Domain Setup + +To make a Docker Compose service or container accessible via a domain, add two things to your existing Docker Compose file. + + + +Add the `dokploy-network` network to each service. + + +```yaml +services: + app: + image: nextjs-app + networks: + - dokploy-network + ports: + - "3000" + +networks: + dokploy-network: + external: true +``` + + + + + +Traefik labels to make the service accessible through the domain. + + +1. if you are using the default Cloudflare configuration, add the following label: + +- `traefik.http.routers..entrypoints=web` + +2. If you are using Let's Encrypt or Cloudflare's Full Strict mode, add the following labels: + +- `traefik.http.routers..entrypoints=websecure` +- `traefik.http.routers..tls.certResolver=letsencrypt` + + + ```yaml +services: + app: + image: nextjs-app + networks: + - dokploy-network + ports: + - "3000" + labels: + - "traefik.enable=true" + - "traefik.http.routers..entrypoints=websecure" + - "traefik.http.routers..tls.certResolver=letsencrypt" + - "traefik.http.routers..rule=Host(`app.yourdomain.com`)" + - "traefik.http.services..loadbalancer.server.port=3000" +networks: + dokploy-network: + external: true +``` + + + + + + + + +### Example of a Basic `docker-compose.yml` + + +For example of a basic `docker-compose.yml` file, refer to the [Docker Compose Quickstart](/docs/core/docker-compose/example#tutorial) documentation. diff --git a/apps/docs/content/docs/core/domain/requirements.mdx b/apps/docs/content/docs/core/domain/requirements.mdx new file mode 100644 index 00000000..6dfa3577 --- /dev/null +++ b/apps/docs/content/docs/core/domain/requirements.mdx @@ -0,0 +1,24 @@ +--- +title: "Requirements" +description: "See a requirements for a domain for the Dokploy panel" +--- + +This guide will give you an idea of the requirements to assign a domain to your Dokploy panel or use it in any other application, whether Docker Compose or otherwise. + +## Requirements + +Before beginning, ensure you have a domain purchased from one of the following providers or a provider of your choice: + +- [Cloudflare](https://www.cloudflare.com/) +- [Namecheap](https://www.namecheap.com/domains/) +- [Name.com](https://www.name.com/) +- [GoDaddy](https://www.godaddy.com/) +- [Domain.com](https://www.domain.com/) + + +## Transfer Setup(Optional) + +We recommend transferring your domain to Cloudflare for free SSL certificates and flexibility in using tools: + +- [Transfer Domain to Cloudflare](https://developers.cloudflare.com/registrar/get-started/transfer-domain-to-cloudflare/) + diff --git a/apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx b/apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx new file mode 100644 index 00000000..99225564 --- /dev/null +++ b/apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx @@ -0,0 +1,47 @@ +--- +title: "Web 域名设置" +description: "学习如何为 Dokploy 面板设置主域名" +--- + +## 介绍 + +本指南涵盖 Dokploy 面板主域名的基本设置。 + +## 要求 + +开始之前,请确保您已从以下提供商之一购买了域名: + +- [Cloudflare](https://www.cloudflare.com/) +- [Namecheap](https://www.namecheap.com/domains/) +- [Name.com](https://www.name.com/) +- [GoDaddy](https://www.godaddy.com/) +- [Domain.com](https://www.domain.com/) +- [阿里云](https://www.aliyun.com/) +- [腾讯云](https://cloud.tencent.com/) + +## 域名转移 + +我们建议将您的域转移到 Cloudflare 以提升安全性和增强服务: + +- [将域名转移到 Cloudflare](https://developers.cloudflare.com/registrar/get-started/transfer-domain-to-cloudflare/) + +## DNS 设置 + +使用 [Cloudflare](https://www.cloudflare.com/) 用于 DNS 管理: + +1. 登录 Cloudflare 并导航至 `Websites` -> `Your Domain` -> `DNS` -> `Records`. +2. 点击 `Add record`, 选择 `A`. +3. 在 name 字段中输入 `web` 和, 在值字段中输入您的 IP 地址(例如,`1.2.3.4`) 。 +4. 保存记录。 您的 DNS 记录将是 `web.dokploy.com`. + + + +## Dokploy 面板设置 + +1. 登录您的 Dokploy 面板。 +2. 导航到 `/dashboard/settings/server`. +3. 在服务器域下,将您的域设置为与 Cloudflare 中配置的域相匹配(例如, `web.dokploy.com`). +4. 保存,应用更改需要约 20 秒的时间生效。 +5. 通过以下方式访问您的面板 `https://web.dokploy.com`. + + diff --git a/apps/docs/content/docs/core/domain/web-domain-setup.mdx b/apps/docs/content/docs/core/domain/web-domain-setup.mdx new file mode 100644 index 00000000..cf2e9822 --- /dev/null +++ b/apps/docs/content/docs/core/domain/web-domain-setup.mdx @@ -0,0 +1,34 @@ +--- +title: "Web Domain Setup" +description: "Learn how to setup a main domain for the Dokploy panel" +--- + +This guide covers the basic setup of a main domain for your Dokploy panel. + +## DNS Setup + +We'll use [Cloudflare](https://www.cloudflare.com/) for DNS management, but you can use any provider. The steps should be similar. + +1. Log in to Cloudflare and navigate to `Websites` -> `Your Domain` -> `DNS` -> `Records`. +2. Click on `Add record`, select `A`. +3. Enter `canary` in the name field and your IP address (e.g., `1.2.3.4`) in the value field. +4. Save the record. Your DNS record will be `canary.dokploy.com`. + + + + +## Dokploy Panel Setup + +1. Log in to your Dokploy panel. +2. Navigate to `/dashboard/settings/server`. +3. Under Server domain, set your domain to match the one configured in Cloudflare (e.g., `canary.dokploy.com`). +4. Choose your certificate option: + - `None` + - `Let's Encrypt` +6. Access your panel via `https://canary.dokploy.com`. + + +For detailed instructions on setting up certificates, refer to the [Certificates](/docs/core/domain/certificates) documentation. + + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/astro-ssr.mdx b/apps/docs/content/docs/core/examples/astro-ssr.mdx new file mode 100644 index 00000000..805a2f10 --- /dev/null +++ b/apps/docs/content/docs/core/examples/astro-ssr.mdx @@ -0,0 +1,29 @@ +--- +title: Astro SSR +description: Deploy a simple Astro SSR application. +--- + + +This example will deploy a simple Astro SSR application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/astro-ssr` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/astro.mdx b/apps/docs/content/docs/core/examples/astro.mdx new file mode 100644 index 00000000..cfc7595e --- /dev/null +++ b/apps/docs/content/docs/core/examples/astro.mdx @@ -0,0 +1,27 @@ +--- +title: Astro +description: Deploy a simple Astro application. +--- + +This example will deploy a simple Astro application. + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/astro` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/lit.mdx b/apps/docs/content/docs/core/examples/lit.mdx new file mode 100644 index 00000000..c9f5e2dd --- /dev/null +++ b/apps/docs/content/docs/core/examples/lit.mdx @@ -0,0 +1,29 @@ +--- +title: Lit +description: Deploy a simple Lit application. +--- + + +This example will deploy a simple Lit application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/lit` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/nestjs.mdx b/apps/docs/content/docs/core/examples/nestjs.mdx new file mode 100644 index 00000000..b10bb748 --- /dev/null +++ b/apps/docs/content/docs/core/examples/nestjs.mdx @@ -0,0 +1,21 @@ +--- +title: Nest.js +description: Deploy a simple Nest.js application. +--- + + +This example will deploy a simple Nest.js application. + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/nestjs` +2. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +3. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). diff --git a/apps/docs/content/docs/core/examples/nextjs.mdx b/apps/docs/content/docs/core/examples/nextjs.mdx new file mode 100644 index 00000000..f351ea50 --- /dev/null +++ b/apps/docs/content/docs/core/examples/nextjs.mdx @@ -0,0 +1,23 @@ +--- +title: Next.js +description: Deploy a simple Next.js application. +--- + + +This example will deploy a simple Next.js application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/nextjs` + +2. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +3. **Generate a Domain**: + 1. Click on generate domain button. + 2. A new domain will be generated for you. + 3. You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/preact.mdx b/apps/docs/content/docs/core/examples/preact.mdx new file mode 100644 index 00000000..bdedf75f --- /dev/null +++ b/apps/docs/content/docs/core/examples/preact.mdx @@ -0,0 +1,29 @@ +--- +title: Preact +description: Deploy a simple Preact application. +--- + + +This example will deploy a simple Preact application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/preact` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/qwik.mdx b/apps/docs/content/docs/core/examples/qwik.mdx new file mode 100644 index 00000000..92101d51 --- /dev/null +++ b/apps/docs/content/docs/core/examples/qwik.mdx @@ -0,0 +1,29 @@ +--- +title: Qwik +description: Deploy a simple Qwik application. +--- + + +This example will deploy a simple Qwik application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/qwik` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/remix.mdx b/apps/docs/content/docs/core/examples/remix.mdx new file mode 100644 index 00000000..b7a028ef --- /dev/null +++ b/apps/docs/content/docs/core/examples/remix.mdx @@ -0,0 +1,23 @@ +--- +title: Remix +description: Deploy a simple Remix application. +--- + + +This example will deploy a simple Remix application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/remix` + +2. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +3. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/solidjs.mdx b/apps/docs/content/docs/core/examples/solidjs.mdx new file mode 100644 index 00000000..15adf339 --- /dev/null +++ b/apps/docs/content/docs/core/examples/solidjs.mdx @@ -0,0 +1,29 @@ +--- +title: Solid.js +description: Deploy a simple Solid.js application. +--- + + +This example will deploy a simple Solid.js application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/solidjs` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run serve" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). diff --git a/apps/docs/content/docs/core/examples/svelte.mdx b/apps/docs/content/docs/core/examples/svelte.mdx new file mode 100644 index 00000000..1397db08 --- /dev/null +++ b/apps/docs/content/docs/core/examples/svelte.mdx @@ -0,0 +1,29 @@ +--- +title: Svelte +description: Deploy a simple Svelte application. +--- + + +This example will deploy a simple Svelte application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/svelte` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/vite-react.mdx b/apps/docs/content/docs/core/examples/vite-react.mdx new file mode 100644 index 00000000..78ac71b9 --- /dev/null +++ b/apps/docs/content/docs/core/examples/vite-react.mdx @@ -0,0 +1,29 @@ +--- +title: Vite React +description: Deploy a simple Vite React application. +--- + + +This example will deploy a simple Vite React application. + + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/vite` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/vuejs.mdx b/apps/docs/content/docs/core/examples/vuejs.mdx new file mode 100644 index 00000000..28b03f98 --- /dev/null +++ b/apps/docs/content/docs/core/examples/vuejs.mdx @@ -0,0 +1,28 @@ +--- +title: Vue.js +description: Deploy a simple Vue.js application. +--- + + +This example will deploy a simple Vue.js application. + +1. **Use Git Provider in Your Application**: + - Repository: `https://github.com/Dokploy/examples.git` + - Branch: `main` + - Build path: `/vuejs` + +2. **Add Environment Variables**: +- Navigate to the "Environments" tab and add the following variable: + ```cmd + NIXPACKS_START_CMD="pnpm run preview" + ``` + +3. **Click on Deploy**: + - Deploy your application by clicking the deploy button. + +4. **Generate a Domain**: + - Click on generate domain button. + - A new domain will be generated for you. + - You can use this domain to access your application. + +If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc). \ No newline at end of file diff --git a/apps/docs/content/docs/core/extra/api-reference.mdx b/apps/docs/content/docs/core/extra/api-reference.mdx new file mode 100644 index 00000000..bb160803 --- /dev/null +++ b/apps/docs/content/docs/core/extra/api-reference.mdx @@ -0,0 +1,22668 @@ +--- +title: Dokploy API +description: Endpoints for dokploy +full: true +--- + +import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; + + + + + + + +## admin-one + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/admin.one" +``` + + + + + +```js +fetch("http://localhost:3000/admin.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-createUserInvitation + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Format: `"email"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/admin.createUserInvitation" \ + -d '{ + "email": "user@example.com" +}' +``` + + + + + +```js +fetch("http://localhost:3000/admin.createUserInvitation", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-removeUser + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/admin.removeUser" \ + -d '{ + "authId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/admin.removeUser", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-getUserByToken + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/admin.getUserByToken" +``` + + + + + +```js +fetch("http://localhost:3000/admin.getUserByToken", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-assignPermissions + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/admin.assignPermissions" \ + -d '{ + "userId": "string", + "canCreateProjects": true, + "canCreateServices": true, + "canDeleteProjects": true, + "canDeleteServices": true, + "accesedProjects": [ + "string" + ], + "accesedServices": [ + "string" + ], + "canAccessToTraefikFiles": true, + "canAccessToDocker": true, + "canAccessToAPI": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/admin.assignPermissions", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-cleanGithubApp + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/admin.cleanGithubApp" +``` + + + + + +```js +fetch("http://localhost:3000/admin.cleanGithubApp", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-getRepositories + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/admin.getRepositories" +``` + + + + + +```js +fetch("http://localhost:3000/admin.getRepositories", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-getBranches + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/admin.getBranches" +``` + + + + + +```js +fetch("http://localhost:3000/admin.getBranches", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## admin-haveGithubConfigured + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/admin.haveGithubConfigured" +``` + + + + + +```js +fetch("http://localhost:3000/admin.haveGithubConfigured", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getContainers + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/docker.getContainers" +``` + + + + + +```js +fetch("http://localhost:3000/docker.getContainers", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/docker.getConfig" +``` + + + + + +```js +fetch("http://localhost:3000/docker.getConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getContainersByAppNameMatch + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/docker.getContainersByAppNameMatch" +``` + + + + + +```js +fetch("http://localhost:3000/docker.getContainersByAppNameMatch", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## docker-getContainersByAppLabel + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/docker.getContainersByAppLabel" +``` + + + + + +```js +fetch("http://localhost:3000/docker.getContainersByAppLabel", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-createAdmin + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Format: `"email"` + + + + + +Minimum length: `8` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.createAdmin" \ + -d '{ + "email": "user@example.com", + "password": "stringst" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.createAdmin", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-createUser + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `8` + + + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.createUser" \ + -d '{ + "password": "stringst", + "id": "string", + "token": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.createUser", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-login + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Format: `"email"` + + + + + +Minimum length: `8` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.login" \ + -d '{ + "email": "user@example.com", + "password": "stringst" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.login", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-get + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/auth.get" +``` + + + + + +```js +fetch("http://localhost:3000/auth.get", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-logout + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.logout" +``` + + + + + +```js +fetch("http://localhost:3000/auth.logout", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + +Value in: `"admin" | "user"` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.update" \ + -d '{ + "id": "string", + "email": "string", + "password": "string", + "rol": "admin", + "image": "string", + "secret": "string", + "token": "string", + "is2FAEnabled": true, + "createdAt": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-generateToken + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.generateToken" +``` + + + + + +```js +fetch("http://localhost:3000/auth.generateToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/auth.one" +``` + + + + + +```js +fetch("http://localhost:3000/auth.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-updateByAdmin + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + +Value in: `"admin" | "user"` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.updateByAdmin" \ + -d '{ + "id": "string", + "email": "string", + "password": "string", + "rol": "admin", + "image": "string", + "secret": "string", + "token": "string", + "is2FAEnabled": true, + "createdAt": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.updateByAdmin", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-generate2FASecret + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/auth.generate2FASecret" +``` + + + + + +```js +fetch("http://localhost:3000/auth.generate2FASecret", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-verify2FASetup + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `6` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.verify2FASetup" \ + -d '{ + "pin": "string", + "secret": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.verify2FASetup", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-verifyLogin2FA + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `6` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.verifyLogin2FA" \ + -d '{ + "pin": "string", + "id": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/auth.verifyLogin2FA", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-disable2FA + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.disable2FA" +``` + + + + + +```js +fetch("http://localhost:3000/auth.disable2FA", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## auth-verifyToken + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/auth.verifyToken" +``` + + + + + +```js +fetch("http://localhost:3000/auth.verifyToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/project.create" \ + -d '{ + "name": "string", + "description": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/project.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/project.one" +``` + + + + + +```js +fetch("http://localhost:3000/project.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/project.all" +``` + + + + + +```js +fetch("http://localhost:3000/project.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/project.remove" \ + -d '{ + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/project.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## project-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/project.update" \ + -d '{ + "name": "string", + "description": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/project.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.create" \ + -d '{ + "name": "string", + "appName": "string", + "description": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/application.one" +``` + + + + + +```js +fetch("http://localhost:3000/application.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.reload" \ + -d '{ + "appName": "string", + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.delete" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.stop" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.start" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-redeploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.redeploy" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.redeploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.saveEnvironment" \ + -d '{ + "applicationId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveBuildType + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.saveBuildType" \ + -d '{ + "applicationId": "string", + "buildType": "dockerfile", + "dockerfile": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.saveBuildType", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveGithubProvider + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.saveGithubProvider" \ + -d '{ + "applicationId": "string", + "repository": "string", + "branch": "string", + "owner": "string", + "buildPath": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.saveGithubProvider", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveDockerProvider + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.saveDockerProvider" \ + -d '{ + "dockerImage": "string", + "applicationId": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.saveDockerProvider", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-saveGitProdiver + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.saveGitProdiver" \ + -d '{ + "customGitBranch": "string", + "applicationId": "string", + "customGitBuildPath": "string", + "customGitUrl": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.saveGitProdiver", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-generateSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.generateSSHKey" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.generateSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-removeSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.removeSSHKey" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.removeSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-markRunning + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.markRunning" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.markRunning", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"github" | "docker" | "git"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + +Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks"` + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.update" \ + -d '{ + "applicationId": "string", + "name": "string", + "appName": "string", + "description": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "title": "string", + "enabled": true, + "subtitle": "string", + "command": "string", + "refreshToken": "string", + "sourceType": "github", + "repository": "string", + "owner": "string", + "branch": "string", + "buildPath": "string", + "autoDeploy": true, + "username": "string", + "password": "string", + "dockerImage": "string", + "customGitUrl": "string", + "customGitBranch": "string", + "customGitBuildPath": "string", + "customGitSSHKey": "string", + "dockerfile": "string", + "healthCheckSwarm": { + "Test": [ + "string" + ], + "Interval": 0, + "Timeout": 0, + "StartPeriod": 0, + "Retries": 0 + }, + "restartPolicySwarm": { + "Condition": "string", + "Delay": 0, + "MaxAttempts": 0, + "Window": 0 + }, + "placementSwarm": { + "Constraints": [ + "string" + ], + "Preferences": [ + { + "Spread": { + "SpreadDescriptor": "string" + } + } + ], + "MaxReplicas": 0, + "Platforms": [ + { + "Architecture": "string", + "OS": "string" + } + ] + }, + "updateConfigSwarm": { + "Parallelism": 0, + "Delay": 0, + "FailureAction": "string", + "Monitor": 0, + "MaxFailureRatio": 0, + "Order": "string" + }, + "rollbackConfigSwarm": { + "Parallelism": 0, + "Delay": 0, + "FailureAction": "string", + "Monitor": 0, + "MaxFailureRatio": 0, + "Order": "string" + }, + "modeSwarm": { + "Replicated": { + "Replicas": 0 + }, + "Global": {}, + "ReplicatedJob": { + "MaxConcurrent": 0, + "TotalCompletions": 0 + }, + "GlobalJob": {} + }, + "labelsSwarm": { + "property1": "string", + "property2": "string" + }, + "networkSwarm": [ + { + "Target": "string", + "Aliases": [ + "string" + ], + "DriverOpts": {} + } + ], + "replicas": 0, + "applicationStatus": "idle", + "buildType": "dockerfile", + "createdAt": "string", + "registryId": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-refreshToken + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.refreshToken" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.refreshToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.deploy" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-cleanQueues + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.cleanQueues" \ + -d '{ + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.cleanQueues", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-readTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/application.readTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/application.readTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-updateTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/application.updateTraefikConfig" \ + -d '{ + "applicationId": "string", + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/application.updateTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## application-readAppMonitoring + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/application.readAppMonitoring" +``` + + + + + +```js +fetch("http://localhost:3000/application.readAppMonitoring", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Default: `"mysql:8"` + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.create" \ + -d '{ + "name": "string", + "appName": "string", + "dockerImage": "mysql:8", + "projectId": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "databaseRootPassword": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/mysql.one" +``` + + + + + +```js +fetch("http://localhost:3000/mysql.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.start" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.stop" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.saveExternalPort" \ + -d '{ + "mysqlId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.deploy" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.changeStatus" \ + -d '{ + "mysqlId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.reload" \ + -d '{ + "mysqlId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.remove" \ + -d '{ + "mysqlId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.saveEnvironment" \ + -d '{ + "mysqlId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mysql-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"mysql:8"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mysql.update" \ + -d '{ + "mysqlId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "databaseRootPassword": "string", + "dockerImage": "mysql:8", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mysql.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Default: `"postgres:15"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.create" \ + -d '{ + "name": "string", + "appName": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "dockerImage": "postgres:15", + "projectId": "string", + "description": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/postgres.one" +``` + + + + + +```js +fetch("http://localhost:3000/postgres.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.start" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.stop" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.saveExternalPort" \ + -d '{ + "postgresId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.deploy" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.changeStatus" \ + -d '{ + "postgresId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.remove" \ + -d '{ + "postgresId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.saveEnvironment" \ + -d '{ + "postgresId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.reload" \ + -d '{ + "postgresId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## postgres-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"postgres:15"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/postgres.update" \ + -d '{ + "postgresId": "string", + "name": "string", + "appName": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "description": "string", + "dockerImage": "postgres:15", + "command": "string", + "env": "string", + "memoryReservation": 0, + "externalPort": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/postgres.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Default: `"redis:8"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.create" \ + -d '{ + "name": "string", + "appName": "string", + "databasePassword": "string", + "dockerImage": "redis:8", + "projectId": "string", + "description": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/redis.one" +``` + + + + + +```js +fetch("http://localhost:3000/redis.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.start" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.reload" \ + -d '{ + "redisId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.stop" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.saveExternalPort" \ + -d '{ + "redisId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.deploy" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.changeStatus" \ + -d '{ + "redisId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.remove" \ + -d '{ + "redisId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.saveEnvironment" \ + -d '{ + "redisId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redis-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"redis:8"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redis.update" \ + -d '{ + "redisId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databasePassword": "string", + "dockerImage": "redis:8", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "createdAt": "string", + "applicationStatus": "idle", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redis.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Default: `"mongo:15"` + + + + + + + + + + + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.create" \ + -d '{ + "name": "string", + "appName": "string", + "dockerImage": "mongo:15", + "projectId": "string", + "description": "string", + "databaseUser": "string", + "databasePassword": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/mongo.one" +``` + + + + + +```js +fetch("http://localhost:3000/mongo.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.start" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.stop" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.saveExternalPort" \ + -d '{ + "mongoId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.deploy" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.changeStatus" \ + -d '{ + "mongoId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.reload" \ + -d '{ + "mongoId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.remove" \ + -d '{ + "mongoId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.saveEnvironment" \ + -d '{ + "mongoId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mongo-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + + + + + +Default: `"mongo:15"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mongo.update" \ + -d '{ + "mongoId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databaseUser": "string", + "databasePassword": "string", + "dockerImage": "mongo:15", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mongo.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Default: `"mariadb:6"` + + + + + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.create" \ + -d '{ + "name": "string", + "appName": "string", + "dockerImage": "mariadb:6", + "databaseRootPassword": "string", + "projectId": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/mariadb.one" +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-start + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.start" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.start", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.stop" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-saveExternalPort + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.saveExternalPort" \ + -d '{ + "mariadbId": "string", + "externalPort": 0 +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.saveExternalPort", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.deploy" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-changeStatus + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.changeStatus" \ + -d '{ + "mariadbId": "string", + "applicationStatus": "idle" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.changeStatus", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.remove" \ + -d '{ + "mariadbId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-saveEnvironment + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.saveEnvironment" \ + -d '{ + "mariadbId": "string", + "env": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.saveEnvironment", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-reload + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.reload" \ + -d '{ + "mariadbId": "string", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.reload", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mariadb-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"mariadb:6"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mariadb.update" \ + -d '{ + "mariadbId": "string", + "name": "string", + "appName": "string", + "description": "string", + "databaseName": "string", + "databaseUser": "string", + "databasePassword": "string", + "databaseRootPassword": "string", + "dockerImage": "mariadb:6", + "command": "string", + "env": "string", + "memoryReservation": 0, + "memoryLimit": 0, + "cpuReservation": 0, + "cpuLimit": 0, + "externalPort": 0, + "applicationStatus": "idle", + "createdAt": "string", + "projectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mariadb.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + +Value in: `"docker-compose" | "stack"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.create" \ + -d '{ + "name": "string", + "description": "string", + "projectId": "string", + "composeType": "docker-compose", + "appName": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/compose.one" +``` + + + + + +```js +fetch("http://localhost:3000/compose.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + +Value in: `"git" | "github" | "raw"` + + + + + +Value in: `"docker-compose" | "stack"` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Value in: `"idle" | "running" | "done" | "error"` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.update" \ + -d '{ + "composeId": "string", + "name": "string", + "appName": "string", + "description": "string", + "env": "string", + "composeFile": "string", + "refreshToken": "string", + "sourceType": "git", + "composeType": "docker-compose", + "repository": "string", + "owner": "string", + "branch": "string", + "autoDeploy": true, + "customGitUrl": "string", + "customGitBranch": "string", + "customGitSSHKey": "string", + "command": "string", + "composePath": "string", + "composeStatus": "idle", + "projectId": "string", + "createdAt": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.delete" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-cleanQueues + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.cleanQueues" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.cleanQueues", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-allServices + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/compose.allServices" +``` + + + + + +```js +fetch("http://localhost:3000/compose.allServices", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-randomizeCompose + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.randomizeCompose" \ + -d '{ + "composeId": "string", + "prefix": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.randomizeCompose", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-deploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.deploy" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.deploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-redeploy + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.redeploy" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.redeploy", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-stop + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.stop" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.stop", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-getDefaultCommand + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/compose.getDefaultCommand" +``` + + + + + +```js +fetch("http://localhost:3000/compose.getDefaultCommand", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-generateSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.generateSSHKey" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.generateSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-refreshToken + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.refreshToken" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.refreshToken", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-removeSSHKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.removeSSHKey" \ + -d '{ + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.removeSSHKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-deployTemplate + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/compose.deployTemplate" \ + -d '{ + "projectId": "string", + "id": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/compose.deployTemplate", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## compose-templates + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/compose.templates" +``` + + + + + +```js +fetch("http://localhost:3000/compose.templates", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## user-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/user.all" +``` + + + + + +```js +fetch("http://localhost:3000/user.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## user-byAuthId + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/user.byAuthId" +``` + + + + + +```js +fetch("http://localhost:3000/user.byAuthId", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## user-byUserId + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/user.byUserId" +``` + + + + + +```js +fetch("http://localhost:3000/user.byUserId", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + +Value in: `"letsencrypt" | "none"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/domain.create" \ + -d '{ + "host": "string", + "path": "string", + "port": 0, + "https": true, + "applicationId": "string", + "certificateType": "letsencrypt" +}' +``` + + + + + +```js +fetch("http://localhost:3000/domain.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-byApplicationId + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/domain.byApplicationId" +``` + + + + + +```js +fetch("http://localhost:3000/domain.byApplicationId", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Value in: `"letsencrypt" | "none"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/domain.update" \ + -d '{ + "domainId": "string", + "host": "string", + "path": "string", + "port": 0, + "https": true, + "certificateType": "letsencrypt" +}' +``` + + + + + +```js +fetch("http://localhost:3000/domain.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/domain.one" +``` + + + + + +```js +fetch("http://localhost:3000/domain.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## domain-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/domain.delete" \ + -d '{ + "domainId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/domain.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/destination.create" \ + -d '{ + "name": "string", + "accessKey": "string", + "bucket": "string", + "region": "string", + "endpoint": "string", + "secretAccessKey": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/destination.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-testConnection + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/destination.testConnection" \ + -d '{ + "name": "string", + "accessKey": "string", + "bucket": "string", + "region": "string", + "endpoint": "string", + "secretAccessKey": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/destination.testConnection", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/destination.one" +``` + + + + + +```js +fetch("http://localhost:3000/destination.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/destination.all" +``` + + + + + +```js +fetch("http://localhost:3000/destination.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/destination.remove" \ + -d '{ + "destinationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/destination.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## destination-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/destination.update" \ + -d '{ + "name": "string", + "accessKey": "string", + "bucket": "string", + "region": "string", + "endpoint": "string", + "secretAccessKey": "string", + "destinationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/destination.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + +Value in: `"postgres" | "mariadb" | "mysql" | "mongo"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.create" \ + -d '{ + "schedule": "string", + "enabled": true, + "prefix": "string", + "destinationId": "string", + "database": "string", + "mariadbId": "string", + "mysqlId": "string", + "postgresId": "string", + "mongoId": "string", + "databaseType": "postgres" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/backup.one" +``` + + + + + +```js +fetch("http://localhost:3000/backup.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Minimum length: `1` + + + + + + + + + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.update" \ + -d '{ + "schedule": "string", + "enabled": true, + "prefix": "string", + "backupId": "string", + "destinationId": "string", + "database": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.remove" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupPostgres + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.manualBackupPostgres" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.manualBackupPostgres", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupMySql + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.manualBackupMySql" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.manualBackupMySql", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupMariadb + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.manualBackupMariadb" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.manualBackupMariadb", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## backup-manualBackupMongo + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/backup.manualBackupMongo" \ + -d '{ + "backupId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/backup.manualBackupMongo", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## deployment-all + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/deployment.all" +``` + + + + + +```js +fetch("http://localhost:3000/deployment.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## deployment-allByCompose + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/deployment.allByCompose" +``` + + + + + +```js +fetch("http://localhost:3000/deployment.allByCompose", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Value in: `"bind" | "volume" | "file"` + + + + + + + + + + + + + + + + + +Minimum length: `1` + + + + + +Default: `"application"` + +Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mounts.create" \ + -d '{ + "type": "bind", + "hostPath": "string", + "volumeName": "string", + "content": "string", + "mountPath": "string", + "serviceType": "application", + "serviceId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mounts.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mounts.remove" \ + -d '{ + "mountId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mounts.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/mounts.one" +``` + + + + + +```js +fetch("http://localhost:3000/mounts.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## mounts-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Value in: `"bind" | "volume" | "file"` + + + + + + + + + + + + + + + + + +Default: `"application"` + +Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` + + + + + +Minimum length: `1` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/mounts.update" \ + -d '{ + "mountId": "string", + "type": "bind", + "hostPath": "string", + "volumeName": "string", + "content": "string", + "serviceType": "application", + "mountPath": "string", + "applicationId": "string", + "postgresId": "string", + "mariadbId": "string", + "mongoId": "string", + "mysqlId": "string", + "redisId": "string", + "composeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/mounts.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/certificates.create" \ + -d '{ + "certificateId": "string", + "name": "string", + "certificateData": "string", + "privateKey": "string", + "certificatePath": "string", + "autoRenew": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/certificates.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/certificates.one" +``` + + + + + +```js +fetch("http://localhost:3000/certificates.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/certificates.remove" \ + -d '{ + "certificateId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/certificates.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## certificates-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/certificates.all" +``` + + + + + +```js +fetch("http://localhost:3000/certificates.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-reloadServer + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.reloadServer" +``` + + + + + +```js +fetch("http://localhost:3000/settings.reloadServer", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-reloadTraefik + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.reloadTraefik" +``` + + + + + +```js +fetch("http://localhost:3000/settings.reloadTraefik", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanUnusedImages + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanUnusedImages" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanUnusedImages", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanUnusedVolumes + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanUnusedVolumes" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanUnusedVolumes", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanStoppedContainers + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanStoppedContainers" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanStoppedContainers", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanDockerBuilder + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanDockerBuilder" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanDockerBuilder", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanDockerPrune + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanDockerPrune" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanDockerPrune", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanAll + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanAll" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanAll", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanMonitoring + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanMonitoring" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanMonitoring", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-saveSSHPrivateKey + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.saveSSHPrivateKey" \ + -d '{ + "sshPrivateKey": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.saveSSHPrivateKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-assignDomainServer + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Default: `"none"` + +Value in: `"letsencrypt" | "none"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.assignDomainServer" \ + -d '{ + "letsEncryptEmail": "string", + "host": "string", + "certificateType": "letsencrypt" +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.assignDomainServer", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-cleanSSHPrivateKey + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.cleanSSHPrivateKey" +``` + + + + + +```js +fetch("http://localhost:3000/settings.cleanSSHPrivateKey", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateDockerCleanup + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.updateDockerCleanup" \ + -d '{ + "enableDockerCleanup": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.updateDockerCleanup", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.readTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/settings.readTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.updateTraefikConfig" \ + -d '{ + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.updateTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readWebServerTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.readWebServerTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/settings.readWebServerTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateWebServerTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.updateWebServerTraefikConfig" \ + -d '{ + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.updateWebServerTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readMiddlewareTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.readMiddlewareTraefikConfig" +``` + + + + + +```js +fetch("http://localhost:3000/settings.readMiddlewareTraefikConfig", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateMiddlewareTraefikConfig + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.updateMiddlewareTraefikConfig" \ + -d '{ + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.updateMiddlewareTraefikConfig", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-checkAndUpdateImage + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.checkAndUpdateImage" +``` + + + + + +```js +fetch("http://localhost:3000/settings.checkAndUpdateImage", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateServer + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.updateServer" +``` + + + + + +```js +fetch("http://localhost:3000/settings.updateServer", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-getDokployVersion + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.getDokployVersion" +``` + + + + + +```js +fetch("http://localhost:3000/settings.getDokployVersion", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readDirectories + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.readDirectories" +``` + + + + + +```js +fetch("http://localhost:3000/settings.readDirectories", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-updateTraefikFile + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/settings.updateTraefikFile" \ + -d '{ + "path": "string", + "traefikConfig": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/settings.updateTraefikFile", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-readTraefikFile + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.readTraefikFile" +``` + + + + + +```js +fetch("http://localhost:3000/settings.readTraefikFile", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## settings-getOpenApiDocument + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/settings.getOpenApiDocument" +``` + + + + + +```js +fetch("http://localhost:3000/settings.getOpenApiDocument", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/security.create" \ + -d '{ + "applicationId": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/security.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/security.one" +``` + + + + + +```js +fetch("http://localhost:3000/security.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/security.delete" \ + -d '{ + "securityId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/security.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## security-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/security.update" \ + -d '{ + "securityId": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/security.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redirects.create" \ + -d '{ + "regex": "string", + "replacement": "string", + "permanent": true, + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redirects.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/redirects.one" +``` + + + + + +```js +fetch("http://localhost:3000/redirects.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redirects.delete" \ + -d '{ + "redirectId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/redirects.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## redirects-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/redirects.update" \ + -d '{ + "redirectId": "string", + "regex": "string", + "replacement": "string", + "permanent": true +}' +``` + + + + + +```js +fetch("http://localhost:3000/redirects.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + + + + + + + +Default: `"tcp"` + +Value in: `"tcp" | "udp"` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/port.create" \ + -d '{ + "publishedPort": 0, + "targetPort": 0, + "protocol": "tcp", + "applicationId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/port.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/port.one" +``` + + + + + +```js +fetch("http://localhost:3000/port.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-delete + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/port.delete" \ + -d '{ + "portId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/port.delete", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## port-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + + + + + + + + + +Default: `"tcp"` + +Value in: `"tcp" | "udp"` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/port.update" \ + -d '{ + "portId": "string", + "publishedPort": 0, + "targetPort": 0, + "protocol": "tcp" +}' +``` + + + + + +```js +fetch("http://localhost:3000/port.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-create + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Value in: `"selfHosted" | "cloud"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/registry.create" \ + -d '{ + "registryName": "string", + "username": "string", + "password": "string", + "registryUrl": "string", + "registryType": "selfHosted", + "imagePrefix": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/registry.create", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-remove + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/registry.remove" \ + -d '{ + "registryId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/registry.remove", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-update + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Value in: `"selfHosted" | "cloud"` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/registry.update" \ + -d '{ + "registryId": "string", + "registryName": "string", + "imagePrefix": "string", + "username": "string", + "password": "string", + "registryUrl": "string", + "createdAt": "string", + "registryType": "selfHosted", + "adminId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/registry.update", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-all + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/registry.all" +``` + + + + + +```js +fetch("http://localhost:3000/registry.all", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-one + +### Authorization + +"} required={true}> + +In: `header` + + + +### Query Parameters + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/registry.one" +``` + + + + + +```js +fetch("http://localhost:3000/registry.one", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-testRegistry + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + + + + + +Value in: `"selfHosted" | "cloud"` + + + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/registry.testRegistry" \ + -d '{ + "registryName": "string", + "username": "string", + "password": "string", + "registryUrl": "string", + "registryType": "selfHosted", + "imagePrefix": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/registry.testRegistry", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## registry-enableSelfHostedRegistry + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + + + +Minimum length: `1` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/registry.enableSelfHostedRegistry" \ + -d '{ + "registryUrl": "string", + "username": "string", + "password": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/registry.enableSelfHostedRegistry", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-getNodes + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/cluster.getNodes" +``` + + + + + +```js +fetch("http://localhost:3000/cluster.getNodes", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-removeWorker + +### Authorization + +"} required={true}> + +In: `header` + + + +### Request Body + + + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X POST "http://localhost:3000/cluster.removeWorker" \ + -d '{ + "nodeId": "string" +}' +``` + + + + + +```js +fetch("http://localhost:3000/cluster.removeWorker", { + method: "POST" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-addWorker + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/cluster.addWorker" +``` + + + + + +```js +fetch("http://localhost:3000/cluster.addWorker", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + + + + +## cluster-addManager + +### Authorization + +"} required={true}> + +In: `header` + + + +| Status code | Description | +| ----------- | ----------- | +| `200` | Successful response | +| `default` | Error response | + + + + + + + + + +```bash +curl -X GET "http://localhost:3000/cluster.addManager" +``` + + + + + +```js +fetch("http://localhost:3000/cluster.addManager", { + method: "GET" +}); +``` + + + + + + + + + + + + + +```json +{ + "message": "string", + "code": "string", + "issues": [ + { + "message": "string" + } + ] +} +``` + + + + + +```ts +export interface Response { + message: string; + code: string; + issues?: { + message: string; + }[]; +} +``` + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/extra/comparison.cn.mdx b/apps/docs/content/docs/core/extra/comparison.cn.mdx new file mode 100644 index 00000000..a5bcc42f --- /dev/null +++ b/apps/docs/content/docs/core/extra/comparison.cn.mdx @@ -0,0 +1,21 @@ +--- +title: "优势" +description: "Dokploy、CapRover、Dokku 和 Coolify 的比较" +--- + +以下部署工具的比较: + +| 特征 | Dokploy | CapRover | Dokku | Coolify | +| -------------------- | ------- | ------------ | ------------ | ------- | +| **用户界面** | ✅ | ✅ | ❌ | ✅ | +| **Docker 编写支持** | ✅ | ❌ | ❌ | ✅ | +| **多节点支持** | ✅ | ✅ | ❌ | ✅ | +| **Traefik 集成** | ✅ | ✅ | 通过插件提供 | ✅ | +| **用户权限管理** | ✅ | ❌ | ❌ | ✅ | +| **高级用户权限管理** | ✅ | ❌ | ❌ | ❌ | +| **内置终端接入** | ✅ | ❌ | ❌ | ✅ | +| **数据库支持** | ✅ | ✅ | ❌ | ✅ | +| **监测** | ✅ | ✅ | ❌ | ❌ | +| **备份** | ✅ | 通过插件提供 | 通过插件提供 | ✅ | +| **开源** | ✅ | ✅ | ✅ | ✅ | +| **云/付费 版本** | ❌ | ✅ | ❌ | ✅ | diff --git a/apps/docs/content/docs/core/extra/comparison.mdx b/apps/docs/content/docs/core/extra/comparison.mdx new file mode 100644 index 00000000..0036ccbf --- /dev/null +++ b/apps/docs/content/docs/core/extra/comparison.mdx @@ -0,0 +1,22 @@ +--- +title: 'Comparison' +description: 'A comparison of Dokploy, CapRover, Dokku, and Coolify' +--- + +Comparison of the following deployment tools: + +| Feature | Dokploy | CapRover | Dokku | Coolify | +|-----------------------------------|---------------------------------------|--------------------------------------|--------------------------------------|--------------------------------------| +| **User Interface** | ✅ | ✅ | ❌ | ✅ | +| **Docker compose support** | ✅ | ❌ | ❌ | ✅ | +| **API/CLI** | ✅ | ✅ | ✅ | ✅ | +| **Multi node support** | ✅ | ✅ | ❌ | ✅ | +| **Traefik Integration** | ✅ | ✅ | Available via Plugins | ✅ | +| **User Permission Management** | ✅ | ❌ | ❌ | ✅ | +| **Advanced User Permission Management** | ✅ | ❌ | ❌ | ❌ | +| **Terminal Access Built In** | ✅ | ❌ | ❌ | ✅ | +| **Database Support** | ✅ | ✅ | ❌ | ✅ | +| **Monitoring** | ✅ | ✅ | ❌ | ❌ | +| **Backups** | ✅ | Available via Plugins | Available via Plugins | ✅ | +| **Open Source** | ✅ | ✅ | ✅ | ✅ | +| **Cloud/Paid Version** | ❌ | ✅ | ❌ | ✅ | diff --git a/apps/docs/content/docs/core/get-started/architecture.cn.mdx b/apps/docs/content/docs/core/get-started/architecture.cn.mdx new file mode 100644 index 00000000..f9801ff1 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/architecture.cn.mdx @@ -0,0 +1,28 @@ +--- +title: '架构' +description: '概述 Dokploy 的核心架构组件。' +--- + +了解 Dokploy 的架构对于部署和扩展应用程序至关重要。以下是核心组件的示意图: + + + +## 安装过程 + +安装 Dokploy 时,它会自动设置以下组件: + +1. **Next.js 应用程序**:作为前端界面。利用 Next.js 提供集成的服务器端渲染体验,将 UI 和后端整合成一个统一的应用程序。 +2. **PostgreSQL 数据库**:作为 Dokploy 的主要数据库,因其稳健性和广泛采用而被选用。它存储所有配置和操作数据。 +3. **Redis 数据库**:用于管理部署队列。确保多个部署不会同时触发,避免服务器负载过高和潜在的冻结问题。 +4. **Traefik**:用作反向代理和负载均衡器。Traefik 促进动态路由和服务发现,通过 UI 允许声明性设置,简化配置过程。 + +## 目的和功能 + +Dokploy 架构中的每个组件都扮演着重要角色: + +- **Next.js**:提供可扩展且易于管理的前端框架,将服务器端和客户端逻辑封装在一个平台中,简化了部署和开发工作流。 +- **PostgreSQL**:提供可靠和安全的数据存储能力。在 Dokploy 中的使用确保了所有数据库操作的一致性和高性能。 +- **Redis**:处理并发和任务调度。通过使用 Redis,Dokploy 可以高效管理部署任务,避免在同时操作期间发生冲突和服务器过载。 +- **Traefik**:增强 Docker 集成。其声明性地读取和写入 Docker 配置的能力,使 Dokploy 能够自动化和简化网络流量管理和服务发现。 + +这种结构确保了 Dokploy 不仅在部署应用程序时高效,而且在处理大规模流量和数据时也具有稳健性。 diff --git a/apps/docs/content/docs/core/get-started/architecture.mdx b/apps/docs/content/docs/core/get-started/architecture.mdx new file mode 100644 index 00000000..b2c88f76 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/architecture.mdx @@ -0,0 +1,29 @@ +--- +title: 'Architecture of Dokploy' +description: 'Overview of the core architecture components of Dokploy.' +--- + +Understanding the architecture of Dokploy is crucial for both deploying and scaling applications. Below is a diagram illustrating the core components: + + + + +## Installation Process + +When Dokploy is installed, it automatically sets up the following components: + +1. **Next.js Application**: Serves as the frontend interface. Utilizing Next.js allows for an integrated server-side rendering experience, streamlining the UI and backend into a single cohesive application. +2. **PostgreSQL Database**: Acts as the primary database for Dokploy, chosen for its robustness and widespread adoption. It stores all the configuration and operational data. +3. **Redis Database**: Employed for managing deployment queues. This ensures that multiple deployments do not trigger simultaneously, which could lead to high server load and potential freezing. +4. **Traefik**: Used as a reverse proxy and load balancer. Traefik facilitates dynamic routing and service discovery which simplifies the configuration process by allowing declarative setup through the UI. + +## Purpose and Functionality + +Each component in the Dokploy architecture plays a vital role: + +- **Next.js**: Provides a scalable and easy-to-manage frontend framework, encapsulating both server and client-side logic in one platform. This simplifies deployment and development workflows. +- **PostgreSQL**: Delivers reliable and secure data storage capabilities. Its use within Dokploy ensures consistency and high performance for all database operations. +- **Redis**: Handles concurrency and job scheduling. By using Redis, Dokploy can efficiently manage deployment tasks, avoiding collisions and server overload during simultaneous operations. +- **Traefik**: Enhances Docker integration. Its ability to read from and write to Docker configurations declaratively allows Dokploy to automate and streamline network traffic management and service discovery. + +This structure ensures that Dokploy is not only efficient in deploying applications but also robust in handling traffic and data at scale. diff --git a/apps/docs/content/docs/core/get-started/features.cn.mdx b/apps/docs/content/docs/core/get-started/features.cn.mdx new file mode 100644 index 00000000..355d0b68 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/features.cn.mdx @@ -0,0 +1,100 @@ +--- +title: '特点' +description: '探索 Dokploy 提供的全面功能套件,优化应用程序部署和管理。' +--- + +Dokploy 提供了一套全面的功能,旨在简化和增强应用程序部署过程。 + +## 应用程序部署 + +Dokploy 支持两种主要的应用程序部署方法: + +1. **应用程序**:这种简单的方法允许轻松部署。对于单个应用程序而言,它提供了接近即插即用的体验。 +2. **Docker Compose**:一种更高级的选项,需要创建 Dockerfiles 和 `docker-compose.yml`。此方法提供了更大的部署设置控制权和充分利用 Docker Compose 功能的能力。 + +### 应用程序管理 + +通过以下功能管理您的应用程序: + +**基本操作**: + 1. 部署、停止和删除应用程序。 + 2. 直接在应用程序容器中打开终端。 + +**源代码和构建配置**: + 1. 选择源代码提供商(GitHub、Git、Docker)。 + 2. 选择构建类型(Docker、Nixpacks、Heroku Buildpacks、Paketo Buildpacks)。 + +**环境管理**: + 1. 添加和管理环境变量。 + +**监控工具**: + 1. 监控 CPU、内存、磁盘和网络使用情况。 + +**日志**: + 1. 访问实时日志。 + +**部署**: + 1. 查看和管理部署,可以查看构建应用程序的日志。 + 2. 取消排队的部署,如果您有很多部署在队列中,尤其是在您的存储库中多次推送时,您可以取消即将到来的队列,但不能取消已在运行的部署。 + +**域名管理**: + 1. 添加、删除和生成域名。 + +**高级设置**: + 1. 自定义初始命令和集群设置。 + 2. 设置资源限制和管理数据持久化的卷。 + 3. 配置重定向、安全标头和端口设置。 + 4. 根据具体需求详细配置 Traefik。 + +### Docker Compose 管理 + +通过以下高级功能增强 Docker Compose 体验: + +**生命周期管理**: + 1. 部署、停止和删除 Docker Compose 设置。 + 2. 打开带有服务选择功能的终端。 + +**源代码配置**: + 1. 选择源代码提供商(GitHub、Git、Raw)。 + +**环境管理**: + 1. 添加和管理环境变量。 + +**监控工具**: + 1. 监控每个服务的 CPU、内存、磁盘和网络使用情况。 + +**日志**: + 1. 查看每个服务的实时日志。 + +**部署**: + 1. 查看和管理部署,可以查看构建应用程序的日志。 + 2. 取消排队的部署,如果您有很多部署在队列中,尤其是在您的存储库中多次推送时,您可以取消即将到来的队列,但不能取消已在运行的部署。 + +**高级设置**: + 1. 追加命令,默认情况下我们使用内部命令构建 Docker Compose,但您可以向现有命令追加命令。 + 2. 管理卷和挂载。 + +## 数据库部署 + +部署和管理各种数据库: + +**支持的数据库**: + 1. MySQL、PostgreSQL、MongoDB、Redis、MariaDB。 + +**常规管理**: + 1. 部署、停止和删除数据库。 + 2. 在数据库容器内打开终端。 + +**环境和监控**: + 1. 管理环境变量。 + 2. 监控 CPU、内存、磁盘和网络使用情况。 + +**备份和日志**: + 1. 配置手动和计划备份。 + 2. 查看实时日志。 + +**高级配置**: + 1. 使用自定义 Docker 镜像和初始命令。 + 2. 配置卷和资源限制。 + +这些功能旨在为您的部署环境提供灵活性和控制,确保 Dokploy 满足现代应用程序部署和管理的多样化需求。 diff --git a/apps/docs/content/docs/core/get-started/features.mdx b/apps/docs/content/docs/core/get-started/features.mdx new file mode 100644 index 00000000..8e2df4a7 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/features.mdx @@ -0,0 +1,102 @@ +--- +title: 'Features' +description: 'Explore the comprehensive suite of features available in Dokploy for optimized application deployment and management.' +--- + +Dokploy provides a comprehensive suite of features designed to simplify and enhance the application deployment process. + +## Application Deployment + +Dokploy supports two primary methods for deploying applications: + +1. **Applications**: This straightforward method allows for effortless deployment. Ideal for single applications, it offers a near plug-and-play experience. +2. **Docker Compose**: A more advanced option, requiring the creation of Dockerfiles and `docker-compose.yml`. This method provides greater control over deployment settings and full utilization of Docker Compose capabilities. + +### Applications Management + +Manage your applications through a range of features: + +**Basic Operations**: + 1. Deploy, stop, and delete applications. + 2. Open a terminal directly in the application container. + +**Source and Build Configuration**: + 1. Choose source providers (GitHub, Git, Docker). + 2. Select build types (Docker, Nixpacks, Heroku Buildpacks, Paketo Buildpacks). + + +**Environment Management**: + 1. Add and manage environment variables. + +**Monitoring Tools**: + 1. Monitor CPU, memory, disk, and network usage. + +**Logs**: + 1. Access real-time logs. + +**Deployments**: + 1. View and manage deployments, you can see the logs of the building application. + 2. Cancel queued deployments in case you have a lot of deployments in the queue, the most common is when you push alot of times in your repository, you can cancel the incoming queues, not the deployments that are already running. + +**Domain Management**: + 1. Add, delete, and generate domains. + +**Advanced Settings**: + 1. Customize initial commands and cluster settings. + 2. Set resource limits and manage volumes for data persistence. + 3. Configure redirects, security headers, and port settings. + 4. Detailed Traefik configuration for specific needs. + +### Docker Compose Management + +Enhance your Docker Compose experience with these advanced functionalities: + +**Lifecycle Management**: + 1. Deploy, stop, and delete Docker Compose setups. + 2. Open a terminal with service selection capability. + +**Source Configuration**: + 1. Choose source providers (GitHub, Git, Raw). + +**Environment Management**: + 1. Add and manage environment variables. + +**Monitoring Tools**: + 1. Monitor CPU, memory, disk, and network usage of each service. + +**Logs**: + 1. View real-time logs of each service. + +**Deployments**: + 1. View and manage deployments, you can see the logs of the building application. + 2. Cancel queued deployments in case you have a lot of deployments in the queue, the most common is when you push alot of times in your repository, you can cancel the incoming queues, not the deployments that are already running. + +**Advanced Settings**: + 1. Append command, by default we use a internal command to build the docker compose however, you can append a command to the existing one. + 2. Manage volumes and mounts. + +## Database Deployment + +Deploy and manage a variety of databases: + + +**Supported Databases**: + 1. MySQL, PostgreSQL, MongoDB, Redis, MariaDB. + +**General Management**: + 1. Deploy, stop, and delete databases. + 2. Open a terminal within the database container. + +**Environment and Monitoring**: + 1. Manage environment variables. + 2. Monitor CPU, memory, disk, and network usage. + +**Backups and Logs**: + 1. Configure manual and scheduled backups. + 2. View real-time logs. + +**Advanced Configuration**: + 1. Use custom Docker images and initial commands. + 2. Configure volumes and resource limits. + +These features are designed to offer flexibility and control over your deployment environments, ensuring that Dokploy meets the diverse needs of modern application deployment and management. diff --git a/apps/docs/content/docs/core/get-started/installation.cn.mdx b/apps/docs/content/docs/core/get-started/installation.cn.mdx new file mode 100644 index 00000000..5ed9fb26 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/installation.cn.mdx @@ -0,0 +1,72 @@ +--- +title: "安装" +description: "借助这本易于上手的安装指南,几分钟内即可在您的服务器上启动并运行Dokploy。" +--- + + +## 设置您的环境 + +按照以下步骤在本地设置 Dokploy 并将其部署到您的服务器, 管理 Docker 容器和应用程序: + +{/* create a list please of the steps */} + +您需要按照顺序执行以下步骤: + +1. [Virtual Private Server (VPS)](#virtual-private-server-vps) +2. [Docker](#docker) + +## Virtual Private Server (VPS) + +有多个 VPS 提供商可供选择。以下是最常见的 VPS 提供商列表: + +我们已经在两个 Linux Distros 上进行了测试: + +- Ubuntu Server 20.04 LTS +- Debian 10 + +### 服务商 + +- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) +- [Hetzner](https://www.hetzner.com/cloud/) +- [Linode](https://www.linode.com/es/pricing/#compute-shared) +- [Vultr](https://www.vultr.com/pricing/#cloud-compute) +- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available) +- [Google Cloud](https://cloud.google.com/) +- [AWS](https://aws.amazon.com/ec2/pricing/) +- [阿里云](https://www.aliyun.com/) +- [腾讯云](https://cloud.tencent.com/) + +### 要求 + +为了确保 Dokploy 的流畅体验,您的服务器应该至少有 2 GB RAM 和 30 GB 磁盘空间。该规范有助于处理 Docker 在构建期间消耗的资源并防止系统假死。 + +import { Callout } from 'fumadocs-ui/components/callout'; + + + +**建议:** 为了实现成本效率和可靠的服务,我们推荐 Hetzner 作为最佳物有所值的 VPS 提供商(需要信用卡)。 + + + +### Docker + +Dokploy 利用 Docker,因此在您的服务器上安装 Docker 至关重要。如果尚未安装 Docker,请使用以下命令自动安装: + +```bash +curl -sSL https://dokploy.com/install.sh | sh +``` + +## 完成设置 + +运行安装脚本后,Dokploy 及其依赖项将在您的服务器上设置。以下是如何完成设置并开始使用 Dokploy: + +### 访问 Dokploy + +打开您的网络浏览器并导航至 `http://your-ip-from-your-vps:3000`。 您将被引导到初始设置页面,在其中您可以配置 Dokploy 的管理帐号。 + +### 初始配置 + +1. **创建管理员帐号:** 填写必要的详细信息以设置您的管理员帐户。 该帐户将成为 Dokploy 的管理员帐户。 + +{/* ![域名 dokpoly 配置](../../../../assets/images/setup.png) */} + \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/installation.mdx b/apps/docs/content/docs/core/get-started/installation.mdx new file mode 100644 index 00000000..2d424c67 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/installation.mdx @@ -0,0 +1,72 @@ +--- +title: Installation +description: "Get Dokploy up and running on your server within minutes with this easy-to-follow installation guide." +--- + + +Follow these steps in order to set up Dokploy locally and deploy it to your server, effectively managing Docker containers and applications: + +You need to follow this steps in the same order: + +1. [Virtual Private Server (VPS)](#virtual-private-server-vps) + +## Virtual Private Server (VPS) + +There are multiple VPS providers to choose from: + +We have tested on the following Linux Distros: + +- Ubuntu 24.04 LTS +- Ubuntu 23.10 +- Ubuntu 22.04 LTS +- Ubuntu 20.04 LTS +- Ubuntu 18.04 LTS +- Debian 12 +- Debian 11 +- Debian 10 +- Fedora 40 +- Centos 9 +- Centos 8 + +### Providers + +- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) +- [Hetzner](https://www.hetzner.com/cloud/) +- [Linode](https://www.linode.com/es/pricing/#compute-shared) +- [Vultr](https://www.vultr.com/pricing/#cloud-compute) +- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available) +- [Google Cloud](https://cloud.google.com/) +- [AWS](https://aws.amazon.com/ec2/pricing/) + +### Requirements + +To ensure a smooth experience with Dokploy, your server should have at least 2GB of RAM and 30GB of disk space. This specification helps to handle the resources consumed by Docker during builds and prevents system freezes. + + +import { Callout } from 'fumadocs-ui/components/callout'; + +**Suggestion:** For cost efficiency with reliable service, we recommend Hetzner as the best value-for-money VPS provider. + + +### Docker + +Dokploy utilizes Docker, so it is essential to have Docker installed on your server. If Docker is not already installed, use the following command to install it automatically: + +```bash +curl -sSL https://dokploy.com/install.sh | sh +``` + +## Completing the Setup + +After running the installation script, Dokploy and its dependencies will be set up on your server. Here's how to finalize the setup and start using Dokploy: + +### Accessing Dokploy + +Open your web browser and navigate to `http://your-ip-from-your-vps:3000`. You will be directed to the initial setup page where you can configure the administrative account for Dokploy. + + +### Initial Configuration + +1. **Create an Admin Account:** Fill in the necessary details to set up your administrator account. This account will be the admin account for Dokploy. + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/introduction.cn.mdx b/apps/docs/content/docs/core/get-started/introduction.cn.mdx new file mode 100644 index 00000000..657728ac --- /dev/null +++ b/apps/docs/content/docs/core/get-started/introduction.cn.mdx @@ -0,0 +1,54 @@ +--- +title: Dokploy 文档 +description: "了解如何使用Dokploy部署应用程序, Dokploy是Heroku、Vercel和Netlify的开源替代品。" +--- + +import { Card, Cards } from 'fumadocs-ui/components/card'; + +## 欢迎来到 Dokploy + +Dokploy 是一款稳定、易于使用的部署解决方案,旨在简化应用程序管理流程。 可将 Dokploy 视为 Heroku、Vercel 和 Netliify 等平台的免费可托管替代品, 使用稳定的 [Docker](https://www.docker.com/) 和灵活的 [Traefik](https://traefik.io/) 构建. + +![Logo](/logo.png) + +## 为什么选择 Dokploy? + +- **简单:** 简单的设置、管理、部署。 +- **灵活:** 支持广泛的应用程序和数据库。 +- **开源:** 免费开源软件,可供任何人使用。 + +## 设置 Dokploy + +开始使用 Dokploy 很简单。 遵循我们的指南有效地安装和配置您的应用程序和数据库。 + +## 开始 + +跟随我,一起开始吧。 + + + + + + + + + + + + diff --git a/apps/docs/content/docs/core/get-started/introduction.mdx b/apps/docs/content/docs/core/get-started/introduction.mdx new file mode 100644 index 00000000..2c35b4ac --- /dev/null +++ b/apps/docs/content/docs/core/get-started/introduction.mdx @@ -0,0 +1,54 @@ +--- +title: Welcome to Dokploy +description: Dokploy is a open source alternative to Heroku, Vercel, and Netlify. + +--- +import { Card, Cards } from 'fumadocs-ui/components/card'; + + +Dokploy is a stable, easy-to-use deployment solution designed to simplify the application management process. Think of Dokploy as your free self hostable alternative to platforms like Heroku, Vercel, and Netlify, leveraging the robustness of [Docker](https://www.docker.com/) and the flexibility of [Traefik](https://traefik.io/). + + + +{/* */} + +![Logo](/logo.png) + +## Why Choose Dokploy? + +- **Simplicity:** Easy setup and management of deployments. +- **Flexibility:** Supports a wide range of applications and databases. +- **Open Source:** Free and open-source software, available for anyone to use. + + +## Setting up Dokploy + +Getting started with Dokploy is straightforward. Follow our guides to install and configure your applications and databases effectively. + +## Setting up + +Please go to get started. + + + + + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/manual-installation.cn.mdx b/apps/docs/content/docs/core/get-started/manual-installation.cn.mdx new file mode 100644 index 00000000..d5244bab --- /dev/null +++ b/apps/docs/content/docs/core/get-started/manual-installation.cn.mdx @@ -0,0 +1,144 @@ +--- +title: '手动安装' +description: '学习如何在服务器上手动安装 Dokploy。' +--- + +如果您希望自定义 Dokploy 在服务器上的安装,可以修改以下几个方面: + +1. **为 Dokploy 使用特定端口** - 这对于避免与其他服务的冲突非常理想。 +2. **选择特定版本的 Dokploy** - 可以选择如 canary、latest 或特定 Docker 标签(例如 v0.0.1)版本。 +3. **指定 Traefik 的 HTTP 和 HTTPS 端口** - 当与其他服务器(如 Nginx)一起运行时非常有用。 + +## 安装脚本 + +下面是一个在 Linux 服务器上安装 Dokploy 的 Bash 脚本。确保在非容器的 Linux 环境中以 root 身份运行,并确保端口 80 和 443 是空闲的。 + +```bash +#!/bin/bash +# 确保以根用户身份运行脚本 +if [ "$(id -u)" != "0" ]; then + echo "This script must be run as root" >&2 + exit 1 +fi + +# 检查 Linux 操作系统(非 macOS 或 Docker 容器内的操作系统) +if [ "$(uname)" = "Darwin" ]; then + echo "This script must be run on Linux" >&2 + exit 1 +fi + +if [ -f /.dockerenv ]; then + echo "This script must be run on a native Linux host" >&2 + exit 1 +fi + +# 检查端口是否被占用 +if ss -tulnp | grep ':80 ' >/dev/null; then + echo "Error: Port 80 is already in use" >&2 + exit 1 +fi + +if ss -tulnp | grep ':443 ' >/dev/null; then + echo "Error: Port 443 is already in use" >&2 + exit 1 +fi + +# 检查命令是否存在 +command_exists() { + command -v "$@" > /dev/null 2>&1 +} + +# 如果未安装 Docker 则安装 +if command_exists docker; then + echo "Docker already installed" +else + curl -sSL https://get.docker.com | sh +fi + +# 初始化 Docker Swarm +docker swarm leave --force 2>/dev/null +advertise_addr=$(curl -s ifconfig.me) +docker swarm init --advertise-addr $advertise_addr +echo "Swarm initialized" + +# 创建网络 +docker network rm -f dokploy-network 2>/dev/null +docker network create --driver overlay --attachable dokploy-network +echo "Network created" + +# 准备配置目录 +mkdir -p /etc/dokploy +chmod -R 777 /etc/dokploy + +# Pull and deploy Dokploy +docker pull dokploy/dokploy:latest +docker service create \ + --name dokploy \ + --replicas 1 \ + --network dokploy-network \ + --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ + --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ + --publish published=3000,target=3000,mode=host \ + --update-parallelism 1 \ + --update-order stop-first \ + -e PORT= \ + -e TRAEFIK_SSL_PORT= \ + -e TRAEFIK_PORT= \ + dokploy/dokploy:latest + +# 输出成功消息 +GREEN="\033[0;32m" +YELLOW="\033[1;33m" +BLUE="\033[0;34m" +NC="\033[0m" # No Color +printf "${GREEN}Congratulations, Dokploy is installed!${NC}\n" +printf "${BLUE}Wait 15 seconds for the server to start${NC}\n" +printf "${YELLOW}Please go to http://${advertise_addr}:3000${NC}\n\n" + +``` + + +这个脚本包括对常见陷阱的检查,如果未安装 Docker 则安装 Docker,初始化 Docker Swarm,创建网络,然后拉取并部署 Dokploy。脚本运行后,它提供成功消息和访问 Dokploy 的说明。 + +这种结构化的格式清晰地列出了先决条件、步骤和安装后信息,使其对执行手动安装的用户来说非常友好和易于理解。 + +## 自定义安装 +#### 自定义 swarm 广播地址 + +`docker swarm init` 命令中的 `--advertise-addr` 参数指定了 Docker Swarm 管理节点应该向 Swarm 中的其他节点广播的 IP 地址或接口。其他节点使用该地址与管理节点通信。 + +默认情况下,此脚本使用通过 `curl -s ifconfig.me` 命令获得的服务器外部 IP 地址。但是,根据您的网络配置,特别是如果您的服务器有多个网络接口或如果您在私有网络中设置 Swarm,您可能需要自定义此地址。 + +要自定义 `--advertise-addr` 参数,请将以下行: +`advertise_addr=$(curl -s ifconfig.me)` + +替换为您所需的 IP 地址或接口,例如: +`advertise_addr="192.168.1.100"` + +:warning: 该 IP 地址应对将加入 Swarm 的所有节点可访问。 + +## 已有 Docker Swarm + +如果您的服务器上已经运行了 Docker Swarm,并且您想使用 Dokploy,可以使用以下命令加入它: + +```bash +docker network create --driver overlay --attachable dokploy-network + +mkdir -p /etc/dokploy + +chmod -R 777 /etc/dokploy + +docker pull dokploy/dokploy:latest + +# 安装 +docker service create \ + --name dokploy \ + --replicas 1 \ + --network dokploy-network \ + --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ + --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ + --publish published=3000,target=3000,mode=host \ + --update-parallelism 1 \ + --update-order stop-first \ + dokploy/dokploy:latest +``` diff --git a/apps/docs/content/docs/core/get-started/manual-installation.mdx b/apps/docs/content/docs/core/get-started/manual-installation.mdx new file mode 100644 index 00000000..a24bb412 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/manual-installation.mdx @@ -0,0 +1,143 @@ +--- +title: 'Manual Installation' +description: 'Learn how to manually install Dokploy on your server.' +--- + +If you wish to customize the Dokploy installation on your server, you can modify several aspects: + +1. **Use a specific port for Dokploy** - Ideal for avoiding conflicts with other services. +2. **Select a specific version of Dokploy** - Choose between versions like canary, latest, or a specific Docker tag (e.g., v0.0.1). +3. **Specify HTTP and HTTPS ports for Traefik** - Useful when running alongside other servers like Nginx. + +## Installation Script + +Here is a Bash script for installing Dokploy on a Linux server. Make sure you run this as root on a Linux environment that is not a container, and ensure ports 80 and 443 are free. + +```bash +#!/bin/bash +# Ensure the script is run as root +if [ "$(id -u)" != "0" ]; then + echo "This script must be run as root" >&2 + exit 1 +fi + +# Check for Linux OS (not macOS or inside a Docker container) +if [ "$(uname)" = "Darwin" ]; then + echo "This script must be run on Linux" >&2 + exit 1 +fi + +if [ -f /.dockerenv ]; then + echo "This script must be run on a native Linux host" >&2 + exit 1 +fi + +# Check for occupied ports +if ss -tulnp | grep ':80 ' >/dev/null; then + echo "Error: Port 80 is already in use" >&2 + exit 1 +fi + +if ss -tulnp | grep ':443 ' >/dev/null; then + echo "Error: Port 443 is already in use" >&2 + exit 1 +fi + +# Function to check if a command exists +command_exists() { + command -v "$@" > /dev/null 2>&1 +} + +# Install Docker if it is not installed +if command_exists docker; then + echo "Docker already installed" +else + curl -sSL https://get.docker.com | sh +fi + +# Initialize Docker Swarm +docker swarm leave --force 2>/dev/null +advertise_addr=$(curl -s ifconfig.me) +docker swarm init --advertise-addr $advertise_addr +echo "Swarm initialized" + +# Create network +docker network rm -f dokploy-network 2>/dev/null +docker network create --driver overlay --attachable dokploy-network +echo "Network created" + +# Prepare configuration directory +mkdir -p /etc/dokploy +chmod -R 777 /etc/dokploy + +# Pull and deploy Dokploy +docker pull dokploy/dokploy:latest +docker service create \ + --name dokploy \ + --replicas 1 \ + --network dokploy-network \ + --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ + --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ + --publish published=3000,target=3000,mode=host \ + --update-parallelism 1 \ + --update-order stop-first \ + -e PORT= \ + -e TRAEFIK_SSL_PORT= \ + -e TRAEFIK_PORT= \ + dokploy/dokploy:latest + +# Output success message +GREEN="\033[0;32m" +YELLOW="\033[1;33m" +BLUE="\033[0;34m" +NC="\033[0m" # No Color +printf "${GREEN}Congratulations, Dokploy is installed!${NC}\n" +printf "${BLUE}Wait 15 seconds for the server to start${NC}\n" +printf "${YELLOW}Please go to http://${advertise_addr}:3000${NC}\n\n" + +``` + + +This script includes checks for common pitfalls, installs Docker if it’s not already installed, initializes a Docker Swarm, creates a network, and then pulls and deploys Dokploy. After the script runs, it provides a success message and instructions for accessing Dokploy. + +This structured format clearly lays out the prerequisites, steps, and post-installation information, making it user-friendly and accessible for those performing manual installations. + +## Customize install +#### Customize swarm advertise address + +The --advertise-addr parameter in the docker swarm init command specifies the IP address or interface that the Docker Swarm manager node should advertise to other nodes in the Swarm. This address is used by other nodes to communicate with the manager. + +By default, this script uses the external IP address of the server, obtained using the `curl -s ifconfig.me` command. However, you might need to customize this address based on your network configuration, especially if your server has multiple network interfaces or if you're setting up Swarm in a private network. + +To customize the --advertise-addr parameter, replace the line: `advertise_addr=$(curl -s ifconfig.me)` with your desired IP address or interface, for example: +`advertise_addr="192.168.1.100"` + +:warning: This IP address should be accessible to all nodes that will join the Swarm. + + +## Existing Docker swarm + +If you already have a Docker swarm running on your server and you want to use dokploy, you can use the following command to join it: + + +```bash +docker network create --driver overlay --attachable dokploy-network + +mkdir -p /etc/dokploy + +chmod -R 777 /etc/dokploy + +docker pull dokploy/dokploy:latest + +# Installation +docker service create \ + --name dokploy \ + --replicas 1 \ + --network dokploy-network \ + --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ + --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ + --publish published=3000,target=3000,mode=host \ + --update-parallelism 1 \ + --update-order stop-first \ + dokploy/dokploy:latest +``` diff --git a/apps/docs/content/docs/core/get-started/reset-password.cn.mdx b/apps/docs/content/docs/core/get-started/reset-password.cn.mdx new file mode 100644 index 00000000..4102fb94 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/reset-password.cn.mdx @@ -0,0 +1,13 @@ +--- +title: "重置密码" +description: "重置您的密码以访问您的 Dokploy 帐户。" +--- + +## 重置密码 + +要重置密码,请执行以下步骤: + +1. 登录您的 VPS。 +2. 运行`docker ps`获取 dokploy 容器的容器 ID。 +3. 运行 `docker exec -it bash -c "pnpm run reset-password"` 打开 dokploy 容器中的 shell。 +4. 它将显示随机密码。 复制它并使用它再次访问仪表板。 diff --git a/apps/docs/content/docs/core/get-started/reset-password.mdx b/apps/docs/content/docs/core/get-started/reset-password.mdx new file mode 100644 index 00000000..893754f0 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/reset-password.mdx @@ -0,0 +1,41 @@ +--- +title: Reset Password +description: "Reset your password to access your Dokploy account." +--- + +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +To reset your password, follow these steps: + + + +Log in to your VPS. + + + + + +Run the command below to get the container ID of the dokploy container. + +```bash +docker ps +``` + + + + + +Run command below to open a shell in the dokploy container. +```bash + docker exec -it bash -c "pnpm run reset-password" +``` + + + + + +It will display a random password. Copy it and use it to access again to the dashboard. + + + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/uninstall.cn.mdx b/apps/docs/content/docs/core/get-started/uninstall.cn.mdx new file mode 100644 index 00000000..790a74bf --- /dev/null +++ b/apps/docs/content/docs/core/get-started/uninstall.cn.mdx @@ -0,0 +1,32 @@ +--- +title: "卸载" +description: "了解如何在服务器上卸载 Dokploy" +--- + +## 卸载步骤 + +按照以下步骤从您的服务器中完全删除 Dokploy 及其组件。 + +### 第 1 步: 删除 Docker Swarm 服务 + +首先,删除 Docker Swarm 中的 Dokploy 以及相关服务: + +```bash +docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis +``` + +### 第 2 步: 删除 Docker 挂载卷 + +接下来,删除 Dokploy 创建的 Docker 卷: + +```bash +docker volume rm -f dokploy-postgres-database redis-data-volume +``` + +### 第 3 步: 删除 Dokploy 文件 + +最后,从服务器上删除 Dokploy 文件和目录: + +```bash +sudo rm -rf /etc/dokploy +``` diff --git a/apps/docs/content/docs/core/get-started/uninstall.mdx b/apps/docs/content/docs/core/get-started/uninstall.mdx new file mode 100644 index 00000000..3f2e0cd4 --- /dev/null +++ b/apps/docs/content/docs/core/get-started/uninstall.mdx @@ -0,0 +1,39 @@ +--- +title: Uninstall +description: "Learn how to uninstall Dokploy on your server" +--- + +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +Follow these steps to completely remove Dokploy and its components from your server. + + + +Remove the docker swarm services created by Dokploy: + + ```bash + docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis + ``` + + + + + +Remove the docker volumes created by Dokploy: + + ```bash + docker volume rm -f dokploy-postgres-database redis-data-volume + ``` + + + + + +Remove the dokploy files and directories from your server: + + ```bash + sudo rm -rf /etc/dokploy + ``` + + + \ No newline at end of file diff --git a/apps/docs/content/docs/core/meta.cn.json b/apps/docs/content/docs/core/meta.cn.json new file mode 100644 index 00000000..a0b64452 --- /dev/null +++ b/apps/docs/content/docs/core/meta.cn.json @@ -0,0 +1,44 @@ +{ + "title": "Core", + "root": true, + "pages": [ + "---快速入门---", + "get-started/introduction", + "get-started/installation", + "get-started/reset-password", + "get-started/uninstall", + "get-started/architecture", + "get-started/features", + "get-started/manual-installation", + "---域名---", + "domain/web-domain-setup", + "domain/application-setup", + "---服务器---", + "server/overview", + "server/server-configuration", + "---应用---", + "application/overview", + "application/build-type", + "---数据库---", + "databases/overview", + "databases/backups", + "---容器编排---", + "docker-compose/overview", + "docker-compose/example", + "docker-compose/auto-deploy", + "---模板---", + "templates/overview", + "--- traefik---", + "traefik/overview", + "---Docker---", + "docker/overview", + "---监控---", + "monitoring/overview", + "---集群---", + "cluster/overview", + "---部署---", + "deployments/oracle-cloud", + "---其它---", + "extra/comparison" + ] +} diff --git a/apps/docs/content/docs/core/meta.json b/apps/docs/content/docs/core/meta.json new file mode 100644 index 00000000..a6a8a3c9 --- /dev/null +++ b/apps/docs/content/docs/core/meta.json @@ -0,0 +1,76 @@ +{ + "title": "Core", + "root": true, + "pages": [ + "---Get Started---", + "get-started/introduction", + "get-started/architecture", + "get-started/features", + "get-started/installation", + "get-started/manual-installation", + "get-started/reset-password", + "get-started/uninstall", + "---Domain---", + "domain/requirements", + "domain/certificates", + "domain/web-domain-setup", + "domain/application-setup", + "domain/docker-compose-setup", + "---Server---", + "server/overview", + "server/profile", + "server/appearance", + "server/s3-destination", + "server/certificates", + "server/users", + "server/cluster", + "---Application---", + "application/overview", + "application/providers", + "application/build-type", + "application/domains", + "application/auto-deploy", + "application/advanced", + "---Databases---", + "databases/overview", + "databases/backups", + "databases/connection", + "---Docker Compose---", + "docker-compose/overview", + "docker-compose/providers", + "docker-compose/auto-deploy", + "docker-compose/domains", + "docker-compose/example", + "docker-compose/templates", + "---Templates---", + "templates/overview", + "---Examples---", + "examples/nextjs", + "examples/vuejs", + "examples/vite-react", + "examples/nestjs", + "examples/svelte", + "examples/remix", + "examples/qwik", + "examples/preact", + "examples/solidjs", + "examples/astro", + "examples/astro-ssr", + "examples/go-fiber", + "examples/lit", + "---Traefik---", + "traefik/overview", + "---Docker---", + "docker/overview", + "---Monitoring---", + "monitoring/overview", + "---Cluster---", + "cluster/overview", + "---Deployments---", + "deployments/oracle-cloud", + "---Extra---", + "extra/comparison", + "---Troubleshooting---", + "troubleshooting/overview" + ] +} diff --git a/apps/docs/content/docs/core/monitoring/overview.cn.mdx b/apps/docs/content/docs/core/monitoring/overview.cn.mdx new file mode 100644 index 00000000..7dd11a5e --- /dev/null +++ b/apps/docs/content/docs/core/monitoring/overview.cn.mdx @@ -0,0 +1,24 @@ +--- +title: 概述 +description: "全面探索 Dokploy 中用于跟踪应用程序、数据库和服务器资源的性能的监控功能。" +--- + +Dokploy 包括一个强大的监控系统,旨在让您实时了解应用程序、数据库和服务器性能。 + +## 应用程序和数据库监控 + +通过 `Monitoring` 选项卡监控应用程序和数据库的性能: + +- **Real-Time Metrics(实时指标)**: 如果您的应用程序或数据库正在运行,您将看到有关 CPU、内存、磁盘和网络使用情况的实时数据。 +- **Historical Data(历史数据)**: 对于当前未运行的应用程序或数据库,Dokploy 会显示最后记录的指标。 + +## 服务器监控 + +在 `/dashboard/monitoring` 页面的 `Monitoring` 选项卡实时跟踪服务器的整体性能: + +- **CPU Usage(CPU 使用状况)**: 查看时间维度上当前处理器负载和使用状态。 +- **Memory Usage(内存使用状况)**: 查看正在使用多少内存以及有多少可用内存。 +- **Storage and Disk Usage(磁盘使用状况)**: 查看已使用和剩余的总存储空间,以及特定的磁盘使用统计数据。 +- **Network Usage(网络使用状况)**: 跟踪入站和出站网络流量以了解带宽使用情况。 + +Dokploy 中的这些监控工具提供重要数据,帮助您有效管理资源,确保服务器和托管应用程序的最佳性能。 diff --git a/apps/docs/content/docs/core/monitoring/overview.mdx b/apps/docs/content/docs/core/monitoring/overview.mdx new file mode 100644 index 00000000..68e8f8b6 --- /dev/null +++ b/apps/docs/content/docs/core/monitoring/overview.mdx @@ -0,0 +1,28 @@ +--- +title: Overview +description: 'Explore the comprehensive monitoring features in Dokploy for tracking the performance of applications, databases, and server resources.' +--- + + +Dokploy includes a robust monitoring system designed to give you real-time insights into your applications, databases, and server performance. + + + +## Applications & Databases Monitoring + +Monitor the performance of your applications and databases through the `Monitoring` tab: + +- **Real-Time Metrics**: If your application or database is running, you will see real-time data on CPU, memory, disk, and network usage. +- **Historical Data**: For applications or databases that are not currently running, Dokploy displays the last recorded metrics. + + +## Server Monitoring + +Keep track of your server's overall performance using the `Monitoring` tab located at `/dashboard/monitoring`: + +- **CPU Usage**: View the current CPU load and usage patterns over time. +- **Memory Usage**: Monitor how much memory is being used and how much is available. +- **Storage and Disk Usage**: Check the total storage used and remaining, along with specific disk usage statistics. +- **Network Usage**: Track inbound and outbound network traffic to understand bandwidth usage. + +These monitoring tools in Dokploy provide essential data that helps you manage resources effectively, ensuring optimal performance of your server and hosted applications. \ No newline at end of file diff --git a/apps/docs/content/docs/core/server/appearance.mdx b/apps/docs/content/docs/core/server/appearance.mdx new file mode 100644 index 00000000..faa7e5ee --- /dev/null +++ b/apps/docs/content/docs/core/server/appearance.mdx @@ -0,0 +1,13 @@ +--- +title: Appearance +description: 'Adjust the visual appearance of your server interface.' +--- + + +The Appearance section allows you to customize the visual appearance of your server interface. + +## Theme + +1. **Light**: Select the light theme. +2. **Dark**: Select the dark theme. +3. **System**: Select the system theme. diff --git a/apps/docs/content/docs/core/server/certificates.mdx b/apps/docs/content/docs/core/server/certificates.mdx new file mode 100644 index 00000000..cdcbae2e --- /dev/null +++ b/apps/docs/content/docs/core/server/certificates.mdx @@ -0,0 +1,25 @@ +--- +title: Certificates +description: 'Manage SSL/TLS certificates.' +--- +import { Callout } from 'fumadocs-ui/components/callout'; + + +The Certificates section alows you to manage SSL/TLS certificates efficiently. + +## Actions + +- **Create**: Create a new certificate. +- **Delete**: Delete an existing certificate. + +### Create a Certificate + +To create a new certificate, fill out the form with the following details: + +- **Name**: Enter a name for the certificate (this can be anything you choose). +- **Certificate Data**: Provide the certificate details. +- **Private Key**: Enter the private key. + + +This action will create the certificate on the server. For more detailed configuration and management, use the `Traefik` tab. + \ No newline at end of file diff --git a/apps/docs/content/docs/core/server/cluster.mdx b/apps/docs/content/docs/core/server/cluster.mdx new file mode 100644 index 00000000..7326c055 --- /dev/null +++ b/apps/docs/content/docs/core/server/cluster.mdx @@ -0,0 +1,86 @@ +--- +title: Cluster (Advanced) +description: 'Manage server cluster settings.' +--- + +When you deploy applications in dokploy, all of them run on the same node. If you wish to run an application on a different server, you can use the cluster feature. + +The idea of using clusters is to allow each server to host a different application and, using Traefik along with the load balancer, redirect the traffic from the dokploy server to the servers you choose. + +## Server Scaling Methods + +There are two primary ways to scale your server: + +1. **Vertical Scaling**: This involves adding more resources to the same dokploy server, such as more CPU and RAM. +2. **Horizontal Scaling**: This method involves adding multiple servers. + +### Vertical Scaling + +We recommend using vertical scaling to increase the processing capacity of your applications since it's faster and requires less additional configuration. + +To perform vertical scaling, you need to add more resources to your dokploy server, that is, more CPU and RAM. This is done through your VPS provider. + +It's ideal to first check the vertical scaling limit you can handle. If you find it insufficient, you may consider horizontal scaling. + +### Horizontal Scaling + +Horizontal scaling usually requires more additional configuration and involves adding more servers (VPS). + +If you choose the second option, we will proceed to configure the different servers. + +## Requirements for Cluster Setup + +1. dokploy server running (Manager). +2. Have at least one extra server with the same architecture as the dokploy server. +3. Have a Docker registry. + +## Configuring the Docker Registry + +To start, we need to configure a Docker registry, as when deploying an application, you need a registry to deploy and download the application image on the other servers. + +We offer two ways to configure a registry: + +1. **External Registry**: Use any registry you want. +2. **Self-Hosted Registry**: We create and configure a self-hosted registry for you. + +### External Registry + +You can use any registry, such as Docker Hub, DigitalOcean Spaces, ECR, or your choice. Make sure to enter the correct credentials and test the connection before adding the registry. + +### Self-Hosted Registry + +We will ask you for three things: + +1. A user. +2. A password. +3. A domain. Ensure this domain is pointing to the dokploy VPS. + +Once set up, the Cluster section will be unlocked. + +## Understanding Docker Swarm + +We suggest you read this information to better understand how Docker Swarm works and its orchestration: [Docker Swarm documentation](https://docs.docker.com/engine/swarm/) and its architecture: [How Swarm mode works](https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/). + +## Managing Your Cluster + +Now you can do two things: + +1. Add workers. +2. Add managers. + +Managers have two functionalities: + +1. Manage the cluster state. +2. Schedule the services. + +Workers have a single purpose, which is to run the containers, acting under the rules created or established by the manager. + +## Adding Nodes + +You can click the 'Add Node' button, which will display the instructions you need to follow to add your servers as nodes and join them to the dokploy manager node. + + + +Once you follow the instructions, the workers or managers will appear in the table. + + diff --git a/apps/docs/content/docs/core/server/overview.cn.mdx b/apps/docs/content/docs/core/server/overview.cn.mdx new file mode 100644 index 00000000..be323d5e --- /dev/null +++ b/apps/docs/content/docs/core/server/overview.cn.mdx @@ -0,0 +1,108 @@ +--- +title: 概述 +description: "Dokploy 提供多种功能来有效管理您的服务器。其中包括管理服务器设置、配置文件、外观、S3存储、证书和用户。" +--- + +import { Callout } from 'fumadocs-ui/components/callout'; + +## 服务器 + +`Server` 选项卡提供服务管理的各种功能: + +- **Reload Instance(重新加载实例)**: 重新加载 Dokploy 实例. +- **Watch Logs(观察日志)**: 监视服务器日志. +- **Traefik Configuration(Traefik 配置)**: 查看 Traefik 的主要配置。 +- **View Middlewares(查看中间件)**: 检查活动的中间件。 +- **SSH Access(SSH 访问)**: 输入服务器终端(需要 SSH 密钥)。 + +### 服务器域名 + +设置服务器域并配置 Let's Encrypt 证书以启用 HTTPS。 + +### GitHub 集成 + +配置您的 GitHub 帐户以管理组织或个人项目。 将用于您从 GitHub创建应用程序和部署存储库。 + +### 空间管理 + +清理未使用的 Docker 镜像、卷和容器来管理服务器空间。 + +### Traefik + +访问和管理 Traefik 设置: + +- **Reload(重载)**: 刷新 Traefik 配置。 +- **Watch Logs(查看日志)**: 查看 Traefik 日志。 +- **View Config(视图配置)**: 检查 Traefik 配置。 +- **Terminal Access(终端访问)**: 通过终端访问 Traefik。 + +## 服务器信息 + +自定义您的个人资料,包括电子邮件、密码和头像。 + +### 两步验证 + +使用 Google Authenticator 应用程序启用双重身份验证。 + +## 服务器外观 + +调整服务器界面的视觉外观、主题。 + +## S3 存储 + +配置 S3 存储桶用于备份存储。这包括设置访问密钥、秘密密钥、桶名称、区域和访问地址。 + +### 创建 + +为了创建新的 S3 存储桶,您需要填写表单。 + +- Name: 这可以是您想要的任何东西,它将是存储桶的名称。 +- Access Key: 这是您将用来访问存储桶的访问密钥。 +- Secret Key: 这是您将用来访问存储桶的密钥。 +- Bucket: 这是您将用来访问存储桶的名称。 +- Region: 这是您将用来访问存储桶的区域。 +- Endpoint: 这是您将用来访问存储桶的地址。 + + + 有一个按钮`Test`将测试与您的存储桶的连接,如果正确,它会向您显示成功消息。 + + +## 证书 + +管理 SSL/TLS 证书: + +- **Name**: 为证书指定名称。 +- **Certificate Data**: 提供证书详细信息。 +- **Private Key**: 输入私钥。 + + + 它只会在服务器中创建证书,如果您需要更详细地配置或管理,您可以使用 `Traefik` 选项卡来配置它。 + + +## 用户 + +管理 Dokploy 中的用户角色和权限。每个实例仅限一个管理员角色。 + +### 权限 + +Dokploy 提供多种权限来管理您的用户。 + +**Create Projects** 将允许您创建新项目。 + +**Create Services** 将允许您创建新的应用程序或数据库。 + +**Access to traefik files tab** 将允许您访问 traefik 文件选项卡。 + +**Delete Projects** 将允许您删除项目。 + +**Delete Services** 将允许您删除服务。 + +**Access to Docker tab** 将允许您访问 docker 选项卡。 + +您还可以应用权限以允许访问特定 项目/服务 + +## 提示和警告 + +- 使用 `Traefik` 选项卡进行详细的配置调整。 +- 使用前测试与 S3 桶的连接,以确保设置正确。 +- 请记住,如果需要详细管理,Dokploy 中添加的证书需要在 `Traefik` 选项卡中进一步配置。 diff --git a/apps/docs/content/docs/core/server/overview.mdx b/apps/docs/content/docs/core/server/overview.mdx new file mode 100644 index 00000000..28837de2 --- /dev/null +++ b/apps/docs/content/docs/core/server/overview.mdx @@ -0,0 +1,70 @@ +--- +title: Overview +description: 'Dokploy offers multiple functions to manage your server efficiently. These include managing server settings, profiles, appearance, S3 destinations, certificates, and users.' +--- +import { Callout } from 'fumadocs-ui/components/callout'; + +We provide multiples functions to manage and interact with the server directly. + + +## Server Domain + +Set the server domain to make your panel accessible via a domain. + +1. Set the domain +2. Set the Let's Encrypt email. +3. Choose a certificate option. + +## Github + +Configure your GitHub account to manage organization or personal projects. This section guides you through creating a GitHub app and deploying repositories. + + +## Web server settings + +Manage multiples settings for your server. + +### Server + +The `Server` section provides various functions: + +- **Reload Instance**: Reload the Dokploy instance. +- **Watch Logs**: Monitor server logs. +- **Traefik Configuration**: View main Traefik configurations. +- **View Middlewares**: Inspect active middlewares. +- **SSH Access**: Enter the server terminal (requires SSH key). + +### Traefik + +Access and manage Traefik settings: + +- **Reload**: Refresh Traefik configuration. +- **Watch Logs**: View Traefik logs. +- **View Config**: Inspect Traefik configuration. +- **Terminal Access**: Access Traefik via terminal. + +### Space Management + +Manage server space by cleaning unused Docker images, volumes, and containers. + +1. Clean unused images. +2. Clean unused volumes. +3. Clean stopped containers. +4. Clean Docker build cache & system. +5. Clean monitoring data. +6. Clean all. +7. Toggle to run a daily cleanup job. + +### Updates + +Check for Dokploy updates and apply them as needed. When you check for updates, a modal will open with an action button to check for updates. If a new version is available, the button will indicate it is loading. After a few seconds, it will display the new version and provide an option to update. + + + +#### Considerations + +- The update process usually takes between 20 seconds and 1 minute to complete. +- All your services and domains will remain operational during the update, so it is safe to apply an update. +- We are not responsible for any downtime caused by the update process. +- We recommend updating if you are experiencing a bug or want to access new features. +- It is important to read the release notes before updating to avoid any unexpected issues. diff --git a/apps/docs/content/docs/core/server/profile.mdx b/apps/docs/content/docs/core/server/profile.mdx new file mode 100644 index 00000000..c7266399 --- /dev/null +++ b/apps/docs/content/docs/core/server/profile.mdx @@ -0,0 +1,24 @@ +--- +title: Profile +description: 'Customize your profile settings including email, password, and avatar.' +--- + +The Profile section allows you to customize your account settings. + +## Account Settings + +1. **Change Email**: Update your email address. +2. **Change Password**: Update your password. +3. **Change Avatar**: Update your profile picture. + +## Two-Factor Authentication (2FA) + +Enhance your account security by enabling two-factor authentication using the Google Authenticator app. + +## API/CLI Access + +You can generate a new API key to access the API/CLI. + +1. **Generate API Key**: Create a new API key. +2. **Copy API Key**: Copy the generated API key for use. +3. **View API Documentation**: Access the Swagger API documentation for detailed API usage. \ No newline at end of file diff --git a/apps/docs/content/docs/core/server/s3-destination.mdx b/apps/docs/content/docs/core/server/s3-destination.mdx new file mode 100644 index 00000000..ec68b97c --- /dev/null +++ b/apps/docs/content/docs/core/server/s3-destination.mdx @@ -0,0 +1,32 @@ +--- +title: S3 Destinations +description: 'Configure S3 buckets for backup storage. This includes setting up access keys, secret keys, bucket names, regions, and endpoints.' +--- +import { Callout } from 'fumadocs-ui/components/callout'; + + +The S3 Destinations section are essential for backing up your databases. + +## Actions: + +1. **Create**: Create a new S3 destination. +2. **Delete**: Delete a S3 destination. +3. **Edit**: Edit a S3 destination. +4. **Test**: Test a S3 destination. + +### Create + +In order to create a new S3 Bucket, you need to fill the form. + +- **Name**: This could be anything you want, it will be the name. +- **Access Key**: This is the access key that you will use to access your bucket. +- **Secret Key**: This is the secret key that you will use to access your bucket. +- **Bucket**: This is the bucket that you will use to access your bucket. +- **Region**: This is the region that you will use to access your bucket. +- **Endpoint**: This is the endpoint that you will use to access your bucket. + + + There is a Button `Test` that will test the connection to your bucket, if it is correct it will show you a success message. + + + diff --git a/apps/docs/content/docs/core/server/users.mdx b/apps/docs/content/docs/core/server/users.mdx new file mode 100644 index 00000000..5d375999 --- /dev/null +++ b/apps/docs/content/docs/core/server/users.mdx @@ -0,0 +1,25 @@ +--- +title: Users +description: 'Manage user roles and permissions within Dokploy. Admin roles are limited to one per instance.' +--- +import { Callout } from 'fumadocs-ui/components/callout'; + +Manage user roles and permissions within Dokploy. Note that only one admin role is allowed per instance. + +## Permissions + +Dokploy offers multiple permissions to manage your users effectively: + +- **Create Projects**: Allows the user to create new projects. +- **Create Services**: Allows the user to create new applications or databases. +- **Access Traefik Files Tab**: Allows the user to access the Traefik files tab. +- **Delete Projects**: Allows the user to delete projects. +- **Delete Services**: Allows the user to delete services. +- **Access Docker Tab**: Allows the user to access the Docker tab. +- **Access API/CLI**: Allows the user to access the API/CLI, including the Swagger route. + +You can also grant permissions to specific users for accessing particular projects or services. + +### Project Permissions + +Based on your projects and services, you can assign permissions to specific users to give them access to particular projects or services. diff --git a/apps/docs/content/docs/core/templates/overview.cn.mdx b/apps/docs/content/docs/core/templates/overview.cn.mdx new file mode 100644 index 00000000..39c11d3e --- /dev/null +++ b/apps/docs/content/docs/core/templates/overview.cn.mdx @@ -0,0 +1,42 @@ +--- +title: 模板 +description: Deploy open source templates with Dokploy +--- + +默认情况下,我们包含了一组模板,您可以使用这些模板快速启动项目。您也可以创建自己的模板。 + +## 模板 + +以下模板可用: + +- **Pocketbase**: 适用于您的下一款 SaaS 和移动应用的开源后端,仅需一个文件 +- **Calcom**: 安排会议的开源替代方案 +- **Plausible**: 开源分析平台 +- **Glitchtip**: 简单的事件错误日志记录 +- **Documenso**: 开源的 DocuSign 替代方案 +- **Grafana**: 用于指标的开源仪表板 +- **NocoDB**: 开源的 Airtable 替代方案 +- **AppSmith**: 开源的 CRM 替代方案 +- **Meilisearch**: 一个快速的搜索 API,轻松集成到您的应用、网站和工作流中 +- **Odoo**: 开源的 ERP 替代方案 +- **Plausible**: 开源分析平台 +- **Rocketchat**: 开源的聊天平台 +- **Uptime Kuma**: 开源的运行时间监控 +- **PhpMyAdmin**: 开源数据库管理 +- **Minio**: 开源对象存储 +- **n8n**: 开源工作流自动化 +- **excalidraw**: 开源协作绘图工具 +- **Directus**: 现代数据栈 🐰 — Directus 是一个即时的 REST+GraphQL API 和直观的无代码数据协作应用程序,适用于任何 SQL 数据库 +- **Baserow**: 构建管理面板、内部工具和仪表板的平台 +- **Minio**: 开源对象存储 +- **Metabase**: 开源商业智能 +- **Grafana**: 开源的指标仪表板 +- **Wordpress**: 开源内容管理系统 + +## 创建您自己的模板 + +我们接受上传新模板到 dokploy 仓库的贡献。 + +请确保遵循创建模板的指南: + +[创建您自己的模板的步骤](https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#templates) diff --git a/apps/docs/content/docs/core/templates/overview.mdx b/apps/docs/content/docs/core/templates/overview.mdx new file mode 100644 index 00000000..9aae2b98 --- /dev/null +++ b/apps/docs/content/docs/core/templates/overview.mdx @@ -0,0 +1,45 @@ +--- +title: Templates +description: Deploy open source templates with Dokploy +--- + +By default we include a set of templates, that you can use to spin up templates quickly. You can also create your own templates. + +## Templates + +The following templates are available: + +- **Pocketbase**: Open Source backend for your next SaaS and Mobile app in 1 file +- **Calcom**: Open source alternative to calendly for scheduling meetings +- **Plausible**: Open source analytics platform +- **Glitchtip**: Simple tracking event error logging +- **Documenso**: The Open Source DocuSign Alternative. +- **Grafana**: Open source dashboard for your metrics +- **NocoDB:**: Open Source Airtable Alternative +- **AppSmith**: Open Source CRM Alternative +- **Meilisearch**: A lightning-fast search API that fits effortlessly into your apps, websites, and workflow +- **Odoo**: Open Source ERP Alternative +- **Plausible**: Open source analytics platform +- **Rocketchat**: Open Source Chat Platform +- **Uptime Kuma**: Open Source Uptime Monitoring +- **PhpMyAdmin**: Open Source Database Administration +- **Minio**: Open Source Object Storage +- **n8n**: Open Source Workflow Automation +- **excalidraw**: Open Source Collaborative Drawing Tool +- **Directus**: The Modern Data Stack 🐰 — Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database. +- **Baserow**: Platform to build admin panels, internal tools, and dashboards +- **Minio**: Open Source Object Storage +- **Metabase**: Open Source Business Intelligence +- **Grafana**: Open Source Dashboard for your metrics +- **Wordpress**: Open Source Content Management System + + + + +## Create your own template + +We accept contributions to upload new templates to the dokploy repository. + +Make sure to follow the guidelines for creating a template: + +[Steps to create your own template](https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#templates) \ No newline at end of file diff --git a/apps/docs/content/docs/core/traefik/overview.cn.mdx b/apps/docs/content/docs/core/traefik/overview.cn.mdx new file mode 100644 index 00000000..ad321d3f --- /dev/null +++ b/apps/docs/content/docs/core/traefik/overview.cn.mdx @@ -0,0 +1,27 @@ +--- +title: 概述 +description: "了解如何在 Dokploy 中轻松管理每个应用程序的 Traefik 配置。" +--- + +Dokploy 简化了 Traefik 配置的管理,简化了每个应用程序的流程。 + +## 创建 + +每当您在 Dokploy 中创建新应用程序时,就会自动生成相应的 Traefik 配置。此配置专为新应用程序的需求量身定制,确保最佳性能和连接性。 + +## 管理 + +在 Dokploy 中管理 Traefik 配置有两种主要方法: + +### 仪表板 + +- 导航到 `/dashboard/traefik` 页面. +- 此页面提供所有 Traefik 配置文件的文件系统视图,允许直接编辑和查看。 + +### 通过应用程序设置 + +- 转到应用程序设置中的`Advanced`选项卡。 +- 滚动至页面底部的`Traefik`部分。 +- 单击此部分查看和修改您应用程序的特定 Traefik 配置文件。 + +这些方法为您如何通过 Dokploy 内的 Traefik 管理和自定义应用程序的路由和负载平衡行为提供了灵活性。 diff --git a/apps/docs/content/docs/core/traefik/overview.mdx b/apps/docs/content/docs/core/traefik/overview.mdx new file mode 100644 index 00000000..fe5d1354 --- /dev/null +++ b/apps/docs/content/docs/core/traefik/overview.mdx @@ -0,0 +1,27 @@ +--- +title: Overview +description: 'Learn how to easily manage Traefik configurations in Dokploy for each application.' +--- + +Dokploy simplifies the management of Traefik configurations, streamlining the process for each application. + +## Create + +Whenever you create a new application in Dokploy, a corresponding Traefik configuration is automatically generated. This configuration is tailored to the needs of the new application, ensuring optimal performance and connectivity. + +## Manage + +There are two main ways to manage your Traefik configurations in Dokploy: + +### Via Dashboard + +- Navigate to the `/dashboard/traefik` route. +- This page provides a filesystem view of all Traefik configuration files, allowing for direct edits and reviews. + +### Via Application Settings + +- Go to the `Advanced` tab within your application's settings. +- Scroll to the `Traefik` section at the bottom of the page. +- Click on this section to view and modify the specific Traefik configuration file for your application. + +These methods provide flexibility in how you manage and customize the routing and load balancing behaviors of your applications through Traefik within Dokploy. \ No newline at end of file diff --git a/apps/docs/content/docs/core/troubleshooting/overview.mdx b/apps/docs/content/docs/core/troubleshooting/overview.mdx new file mode 100644 index 00000000..d44d3d66 --- /dev/null +++ b/apps/docs/content/docs/core/troubleshooting/overview.mdx @@ -0,0 +1,6 @@ +--- +title: Overview +description: Solve the most common problems that occur when using Dokploy. +--- + +WIP \ No newline at end of file diff --git a/apps/docs/generate-docs.mjs b/apps/docs/generate-docs.mjs new file mode 100644 index 00000000..be73d637 --- /dev/null +++ b/apps/docs/generate-docs.mjs @@ -0,0 +1,17 @@ +import { generateFiles } from "fumadocs-openapi"; + +try { + void generateFiles({ + input: ["./api.json"], + output: "./content/docs/api", + per: "tag", + name: (tag, name) => { + console.log(tag, name); + return `reference-${name}`; + }, + }); +} catch (error) { + console.error(error); +} + +// united.com/customer-care diff --git a/apps/docs/i18n.ts b/apps/docs/i18n.ts new file mode 100644 index 00000000..f22f55f4 --- /dev/null +++ b/apps/docs/i18n.ts @@ -0,0 +1,2 @@ +export const defaultLanguage = "en"; +export const languages = ["en", "cn"]; diff --git a/apps/docs/mdx-components.tsx b/apps/docs/mdx-components.tsx new file mode 100644 index 00000000..96c5b74b --- /dev/null +++ b/apps/docs/mdx-components.tsx @@ -0,0 +1,17 @@ +import { ImageZoom } from "fumadocs-ui/components/image-zoom"; +import defaultComponents from "fumadocs-ui/mdx"; +import type { MDXComponents } from "mdx/types"; + +export function useMDXComponents(components: MDXComponents): MDXComponents { + return { + ...defaultComponents, + ...components, + ImageZoom, + p: ({ children }) => ( +

{children}

+ ), + li: ({ children }) => ( +
  • {children}
  • + ), + }; +} diff --git a/apps/docs/middleware.ts b/apps/docs/middleware.ts new file mode 100644 index 00000000..12db9c33 --- /dev/null +++ b/apps/docs/middleware.ts @@ -0,0 +1,14 @@ +import { createI18nMiddleware } from "fumadocs-core/middleware"; +import { defaultLanguage, languages } from "./i18n"; + +export default createI18nMiddleware({ + languages, + defaultLanguage, +}); + +export const config = { + // Matcher ignoring `/_next/` and `/api/` + matcher: [ + "/((?!api|_next/static|_next/image|assets|favicon.ico|logo.png|robots.txt|sitemap.xml|icon.svg|sw.js).*)", + ], +}; diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs new file mode 100644 index 00000000..79de7bee --- /dev/null +++ b/apps/docs/next.config.mjs @@ -0,0 +1,16 @@ +import createMDX from "fumadocs-mdx/config"; + +const withMDX = createMDX(); + +/** @type {import('next').NextConfig} */ +const config = { + eslint: { + ignoreDuringBuilds: true, + }, + typescript: { + ignoreBuildErrors: true, + }, + reactStrictMode: true, +}; + +export default withMDX(config); diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 00000000..7bc65e81 --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,35 @@ +{ + "name": "docs", + "version": "0.0.0", + "private": true, + "scripts": { + "build": "next build", + "dev": "next dev", + "start": "next start", + "build:docs": "node generate-docs.mjs", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "fumadocs-core": "12.2.2", + "fumadocs-mdx": "8.2.33", + "fumadocs-openapi": "^3.1.3", + "fumadocs-ui": "12.2.2", + "lucide-react": "^0.394.0", + "next": "^14.2.4", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-ga4": "^2.1.0" + }, + "devDependencies": { + "tsx": "4.15.7", + "@biomejs/biome": "1.8.1", + "@types/mdx": "^2.0.13", + "@types/node": "^20.14.2", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5" + } +} diff --git a/apps/docs/postcss.config.js b/apps/docs/postcss.config.js new file mode 100644 index 00000000..e873f1a4 --- /dev/null +++ b/apps/docs/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/docs/public/android-chrome-192x192.png b/apps/docs/public/android-chrome-192x192.png new file mode 100644 index 00000000..dff7c1e7 Binary files /dev/null and b/apps/docs/public/android-chrome-192x192.png differ diff --git a/apps/docs/public/android-chrome-512x512.png b/apps/docs/public/android-chrome-512x512.png new file mode 100644 index 00000000..5a15d2b5 Binary files /dev/null and b/apps/docs/public/android-chrome-512x512.png differ diff --git a/apps/docs/public/apple-touch-icon.png b/apps/docs/public/apple-touch-icon.png new file mode 100644 index 00000000..d7636097 Binary files /dev/null and b/apps/docs/public/apple-touch-icon.png differ diff --git a/apps/docs/public/assets/add-node.png b/apps/docs/public/assets/add-node.png new file mode 100644 index 00000000..7329a08b Binary files /dev/null and b/apps/docs/public/assets/add-node.png differ diff --git a/apps/docs/public/assets/architecture.png b/apps/docs/public/assets/architecture.png new file mode 100644 index 00000000..e068b468 Binary files /dev/null and b/apps/docs/public/assets/architecture.png differ diff --git a/apps/docs/public/assets/cli/token.png b/apps/docs/public/assets/cli/token.png new file mode 100644 index 00000000..cb4da0f1 Binary files /dev/null and b/apps/docs/public/assets/cli/token.png differ diff --git a/apps/docs/public/assets/diagram.png b/apps/docs/public/assets/diagram.png new file mode 100644 index 00000000..05efbcbd Binary files /dev/null and b/apps/docs/public/assets/diagram.png differ diff --git a/apps/docs/public/assets/dokploy-ssh-compose.png b/apps/docs/public/assets/dokploy-ssh-compose.png new file mode 100644 index 00000000..a0eade89 Binary files /dev/null and b/apps/docs/public/assets/dokploy-ssh-compose.png differ diff --git a/apps/docs/public/assets/dokploy-ssh-key.png b/apps/docs/public/assets/dokploy-ssh-key.png new file mode 100644 index 00000000..78a60b8b Binary files /dev/null and b/apps/docs/public/assets/dokploy-ssh-key.png differ diff --git a/apps/docs/public/assets/favicon.png b/apps/docs/public/assets/favicon.png new file mode 100644 index 00000000..02c56ee2 Binary files /dev/null and b/apps/docs/public/assets/favicon.png differ diff --git a/apps/docs/public/assets/file-mount-configuration.webp b/apps/docs/public/assets/file-mount-configuration.webp new file mode 100644 index 00000000..ad3a4bef Binary files /dev/null and b/apps/docs/public/assets/file-mount-configuration.webp differ diff --git a/apps/docs/public/assets/file-mount.png b/apps/docs/public/assets/file-mount.png new file mode 100644 index 00000000..a2320ec2 Binary files /dev/null and b/apps/docs/public/assets/file-mount.png differ diff --git a/apps/docs/public/assets/houston.webp b/apps/docs/public/assets/houston.webp new file mode 100644 index 00000000..930c1649 Binary files /dev/null and b/apps/docs/public/assets/houston.webp differ diff --git a/apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png b/apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png new file mode 100644 index 00000000..2c218b09 Binary files /dev/null and b/apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png differ diff --git a/apps/docs/public/assets/images/application-domain-setup/domain-setup.png b/apps/docs/public/assets/images/application-domain-setup/domain-setup.png new file mode 100644 index 00000000..080c6bd3 Binary files /dev/null and b/apps/docs/public/assets/images/application-domain-setup/domain-setup.png differ diff --git a/apps/docs/public/assets/images/checks-passed.png b/apps/docs/public/assets/images/checks-passed.png new file mode 100644 index 00000000..3303c773 Binary files /dev/null and b/apps/docs/public/assets/images/checks-passed.png differ diff --git a/apps/docs/public/assets/images/cluster/application.png b/apps/docs/public/assets/images/cluster/application.png new file mode 100644 index 00000000..d01aab7d Binary files /dev/null and b/apps/docs/public/assets/images/cluster/application.png differ diff --git a/apps/docs/public/assets/images/cluster/cluster.png b/apps/docs/public/assets/images/cluster/cluster.png new file mode 100644 index 00000000..8b6154b6 Binary files /dev/null and b/apps/docs/public/assets/images/cluster/cluster.png differ diff --git a/apps/docs/public/assets/images/cluster/nodes.png b/apps/docs/public/assets/images/cluster/nodes.png new file mode 100644 index 00000000..d6797662 Binary files /dev/null and b/apps/docs/public/assets/images/cluster/nodes.png differ diff --git a/apps/docs/public/assets/images/cluster/registry.png b/apps/docs/public/assets/images/cluster/registry.png new file mode 100644 index 00000000..fcf19259 Binary files /dev/null and b/apps/docs/public/assets/images/cluster/registry.png differ diff --git a/apps/docs/public/assets/images/cluster/swarm-settings.png b/apps/docs/public/assets/images/cluster/swarm-settings.png new file mode 100644 index 00000000..f5c48215 Binary files /dev/null and b/apps/docs/public/assets/images/cluster/swarm-settings.png differ diff --git a/apps/docs/public/assets/images/compose/application.png b/apps/docs/public/assets/images/compose/application.png new file mode 100644 index 00000000..a48389bf Binary files /dev/null and b/apps/docs/public/assets/images/compose/application.png differ diff --git a/apps/docs/public/assets/images/compose/domain.png b/apps/docs/public/assets/images/compose/domain.png new file mode 100644 index 00000000..8b49b238 Binary files /dev/null and b/apps/docs/public/assets/images/compose/domain.png differ diff --git a/apps/docs/public/assets/images/compose/overview.png b/apps/docs/public/assets/images/compose/overview.png new file mode 100644 index 00000000..879e254b Binary files /dev/null and b/apps/docs/public/assets/images/compose/overview.png differ diff --git a/apps/docs/public/assets/images/compose/setup.png b/apps/docs/public/assets/images/compose/setup.png new file mode 100644 index 00000000..8753dcad Binary files /dev/null and b/apps/docs/public/assets/images/compose/setup.png differ diff --git a/apps/docs/public/assets/images/deployment/oracle/oracle-shape.png b/apps/docs/public/assets/images/deployment/oracle/oracle-shape.png new file mode 100644 index 00000000..732c39f8 Binary files /dev/null and b/apps/docs/public/assets/images/deployment/oracle/oracle-shape.png differ diff --git a/apps/docs/public/assets/images/hero-dark.svg b/apps/docs/public/assets/images/hero-dark.svg new file mode 100644 index 00000000..c6a30e88 --- /dev/null +++ b/apps/docs/public/assets/images/hero-dark.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/docs/public/assets/images/hero-light.svg b/apps/docs/public/assets/images/hero-light.svg new file mode 100644 index 00000000..297d68fb --- /dev/null +++ b/apps/docs/public/assets/images/hero-light.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/docs/public/assets/images/setup.png b/apps/docs/public/assets/images/setup.png new file mode 100644 index 00000000..1e68801d Binary files /dev/null and b/apps/docs/public/assets/images/setup.png differ diff --git a/apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png b/apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png new file mode 100644 index 00000000..c5c603ac Binary files /dev/null and b/apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png differ diff --git a/apps/docs/public/assets/images/web-domain-setup/domain-setup.png b/apps/docs/public/assets/images/web-domain-setup/domain-setup.png new file mode 100644 index 00000000..080c6bd3 Binary files /dev/null and b/apps/docs/public/assets/images/web-domain-setup/domain-setup.png differ diff --git a/apps/docs/public/assets/nodes.png b/apps/docs/public/assets/nodes.png new file mode 100644 index 00000000..ad29056f Binary files /dev/null and b/apps/docs/public/assets/nodes.png differ diff --git a/apps/docs/public/assets/private-repository.png b/apps/docs/public/assets/private-repository.png new file mode 100644 index 00000000..90766695 Binary files /dev/null and b/apps/docs/public/assets/private-repository.png differ diff --git a/apps/docs/public/assets/webhook-github.png b/apps/docs/public/assets/webhook-github.png new file mode 100644 index 00000000..eb3d004f Binary files /dev/null and b/apps/docs/public/assets/webhook-github.png differ diff --git a/apps/docs/public/assets/webhook-url-compose.png b/apps/docs/public/assets/webhook-url-compose.png new file mode 100644 index 00000000..79e50fc6 Binary files /dev/null and b/apps/docs/public/assets/webhook-url-compose.png differ diff --git a/apps/docs/public/assets/webhook-url.png b/apps/docs/public/assets/webhook-url.png new file mode 100644 index 00000000..ba307d59 Binary files /dev/null and b/apps/docs/public/assets/webhook-url.png differ diff --git a/apps/docs/public/favicon-16x16.png b/apps/docs/public/favicon-16x16.png new file mode 100644 index 00000000..246b15c8 Binary files /dev/null and b/apps/docs/public/favicon-16x16.png differ diff --git a/apps/docs/public/favicon-32x32.png b/apps/docs/public/favicon-32x32.png new file mode 100644 index 00000000..a15c3da2 Binary files /dev/null and b/apps/docs/public/favicon-32x32.png differ diff --git a/apps/docs/public/favicon.ico b/apps/docs/public/favicon.ico new file mode 100644 index 00000000..bb92b636 Binary files /dev/null and b/apps/docs/public/favicon.ico differ diff --git a/apps/docs/public/logo.png b/apps/docs/public/logo.png new file mode 100644 index 00000000..0b00500c Binary files /dev/null and b/apps/docs/public/logo.png differ diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js new file mode 100644 index 00000000..a0a8f161 --- /dev/null +++ b/apps/docs/tailwind.config.js @@ -0,0 +1,31 @@ +import { createPreset, presets } from "fumadocs-ui/tailwind-plugin"; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./components/**/*.{ts,tsx}", + "./app/**/*.{ts,tsx}", + "./content/**/*.{md,mdx}", + "./mdx-components.{ts,tsx}", + "./node_modules/fumadocs-ui/dist/**/*.js", + ], + presets: [ + createPreset({ + preset: { + ...presets.default, + dark: { + ...presets.default.dark, + background: "0 0% 2%", + foreground: "0 0% 98%", + popover: "0 0% 4%", + card: "0 0% 4%", + muted: "0 0% 8%", + border: "0 0% 14%", + accent: "0 0% 15%", + "accent-foreground": "0 0% 100%", + "muted-foreground": "0 0% 60%", + }, + }, + }), + ], +}; diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json new file mode 100644 index 00000000..3671b0b3 --- /dev/null +++ b/apps/docs/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "target": "ESNext", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "@/*": ["./*"] + }, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/docs/utils/metadata.ts b/apps/docs/utils/metadata.ts new file mode 100644 index 00000000..4527b2b4 --- /dev/null +++ b/apps/docs/utils/metadata.ts @@ -0,0 +1,6 @@ +export const baseUrl = + process.env.NODE_ENV === "development" + ? "http://localhost:3000" + : "https://docs.dokploy.com"; + +export const url = (path: string): string => new URL(path, baseUrl).toString(); diff --git a/apps/dokploy/.dockerignore b/apps/dokploy/.dockerignore new file mode 100644 index 00000000..958b26c9 --- /dev/null +++ b/apps/dokploy/.dockerignore @@ -0,0 +1,5 @@ +node_modules +.git +.gitignore +*.md +dist \ No newline at end of file diff --git a/.env.example b/apps/dokploy/.env.example similarity index 100% rename from .env.example rename to apps/dokploy/.env.example diff --git a/.env.production.example b/apps/dokploy/.env.production.example similarity index 100% rename from .env.production.example rename to apps/dokploy/.env.production.example diff --git a/apps/dokploy/.gitignore b/apps/dokploy/.gitignore new file mode 100644 index 00000000..7acbe51a --- /dev/null +++ b/apps/dokploy/.gitignore @@ -0,0 +1,59 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +/redis-data +traefik.yml +.docker +.env.production + +# testing +/coverage +/dist +/production-server +# database +/prisma/db.sqlite +/prisma/db.sqlite-journal +/logs + +# next.js +/.next/ +/out/ +next-env.d.ts +/dokploy +/config + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables +.env +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo + +# otros +/.data +/.main +.vscode + +*.lockb +*.rdb +.idea diff --git a/apps/dokploy/.nvmrc b/apps/dokploy/.nvmrc new file mode 100644 index 00000000..67a228a4 --- /dev/null +++ b/apps/dokploy/.nvmrc @@ -0,0 +1 @@ +18.18.0 \ No newline at end of file diff --git a/apps/dokploy/CONTRIBUTING.md b/apps/dokploy/CONTRIBUTING.md new file mode 100644 index 00000000..8686b98a --- /dev/null +++ b/apps/dokploy/CONTRIBUTING.md @@ -0,0 +1,242 @@ + + +# Contributing + +Hey, thanks for your interest in contributing to Dokploy! We appreciate your help and taking your time to contribute. + + +Before you start, please first discuss the feature/bug you want to add with the owners and comunity via github issues. + +We have a few guidelines to follow when contributing to this project: + +- [Commit Convention](#commit-convention) +- [Setup](#setup) +- [Development](#development) +- [Build](#build) +- [Pull Request](#pull-request) + +## Commit Convention + +Before you craete a Pull Request, please make sure your commit message follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. + +### Commit Message Format +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +#### Type +Must be one of the following: + +* **feat**: A new feature +* **fix**: A bug fix +* **docs**: Documentation only changes +* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) +* **refactor**: A code change that neither fixes a bug nor adds a feature +* **perf**: A code change that improves performance +* **test**: Adding missing tests or correcting existing tests +* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) +* **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) +* **chore**: Other changes that don't modify `src` or `test` files +* **revert**: Reverts a previous commit + +Example: +``` +feat: add new feature +``` + + + + +## Setup + +Before you start, please make the clone based on the `canary` branch, since the `main` branch is the source of truth and should always reflect the latest stable release, also the PRs will be merged to the `canary` branch. + +```bash +git clone https://github.com/dokploy/dokploy.git +cd dokploy +pnpm install +cp .env.example .env +``` + +## Development + +Is required to have **Docker** installed on your machine. + + +### Setup + +Run the command that will spin up all the required services and files. + +```bash +pnpm run setup +``` + +Now run the development server. + +```bash +pnpm run dev +``` + + +Go to http://localhost:3000 to see the development server + +## Build + +```bash +pnpm run build +``` + +## Docker + +To build the docker image +```bash +pnpm run docker:build +``` + +To push the docker image +```bash +pnpm run docker:push +``` + +## Password Reset + +In the case you lost your password, you can reset it using the following command + +```bash +pnpm run reset-password +``` + +If you want to test the webhooks on development mode using localtunnel, make sure to install `localtunnel` + +```bash +bunx lt --port 3000 +``` + +If you run into permission issues of docker run the following command + +```bash +sudo chown -R USERNAME dokploy or sudo chown -R $(whoami) ~/.docker +``` + +## Application deploy + +In case you want to deploy the application on your machine and you selected nixpacks or buildpacks, you need to install first. + +```bash +# Install Nixpacks +curl -sSL https://nixpacks.com/install.sh -o install.sh \ + && chmod +x install.sh \ + && ./install.sh +``` + +```bash +# Install Buildpacks +curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.32.1-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack +``` + + +## Pull Request + +- The `main` branch is the source of truth and should always reflect the latest stable release. +- Create a new branch for each feature or bug fix. +- Make sure to add tests for your changes. +- Make sure to update the documentation for any changes Go to the [docs.dokploy.com](https://docs.dokploy.com) website to see the changes. +- When creating a pull request, please provide a clear and concise description of the changes made. +- If you include a video or screenshot, would be awesome so we can see the changes in action. +- If your pull request fixes an open issue, please reference the issue in the pull request description. +- Once your pull request is merged, you will be automatically added as a contributor to the project. + +Thank you for your contribution! + + + + + +## Templates + +To add a new template, go to `templates` folder and create a new folder with the name of the template. + +Let's take the example of `plausible` template. + +1. create a folder in `templates/plausible` +2. create a `docker-compose.yml` file inside the folder with the content of compose. +3. create a `index.ts` file inside the folder with the following code as base: +4. When creating a pull request, please provide a video of the template working in action. + +```typescript +// EXAMPLE +import { + generateHash, + generateRandomDomain, + type Template, + type Schema, +} from "../utils"; + + +export function generate(schema: Schema): Template { + + // do your stuff here, like create a new domain, generate random passwords, mounts. + const mainServiceHash = generateHash(schema.projectName); + const randomDomain = generateRandomDomain(schema); + const secretBase = generateBase64(64); + const toptKeyBase = generateBase64(32); + + const envs = [ +// If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name. + `PLAUSIBLE_HOST=${randomDomain}`, + "PLAUSIBLE_PORT=8000", + `BASE_URL=http://${randomDomain}`, + `SECRET_KEY_BASE=${secretBase}`, + `TOTP_VAULT_KEY=${toptKeyBase}`, + `HASH=${mainServiceHash}`, + ]; + + const mounts: Template["mounts"] = [ + { + mountPath: "./clickhouse/clickhouse-config.xml", + content: `some content......`, + }, + ]; + + return { + envs, + mounts, + }; +} +``` + +4. Now you need to add the information about the template to the `templates/templates.ts` is a object with the following properties: + +**Make sure the id of the template is the same as the folder name and don't have any spaces, only slugified names and lowercase.** + +```typescript +{ + id: "plausible", + name: "Plausible", + version: "v2.1.0", + description: + "Plausible is a open source, self-hosted web analytics platform that lets you track website traffic and user behavior.", + logo: "plausible.svg", // we defined the name and the extension of the logo + links: { + github: "https://github.com/plausible/plausible", + website: "https://plausible.io/", + docs: "https://plausible.io/docs", + }, + tags: ["analytics"], + load: () => import("./plausible/index").then((m) => m.generate), +}, +``` + +5. Add the logo or image of the template to `public/templates/plausible.svg` + + +### Recomendations +- Use the same name of the folder as the id of the template. +- The logo should be in the public folder. +- If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name. +- Test first on a vps or a server to make sure the template works. + diff --git a/apps/dokploy/Dockerfile b/apps/dokploy/Dockerfile new file mode 100644 index 00000000..f4188c54 --- /dev/null +++ b/apps/dokploy/Dockerfile @@ -0,0 +1,26 @@ +FROM node:18-slim AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + +FROM base AS build +COPY . /usr/src/app +WORKDIR /usr/src/app + + +RUN apt-get update && apt-get install -y python3 make g++ git && rm -rf /var/lib/apt/lists/* + +# Install dependencies +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile + +# Build only the dokploy app +RUN pnpm run dokploy:build + +# Deploy only the dokploy app +RUN pnpm deploy --filter=dokploy --prod /prod/dokploy + +FROM base AS dokploy +COPY --from=build /prod/dokploy /prod/dokploy +WORKDIR /prod/dokploy +EXPOSE 3000 +CMD [ "pnpm", "start" ] \ No newline at end of file diff --git a/LICENSE.MD b/apps/dokploy/LICENSE.MD similarity index 100% rename from LICENSE.MD rename to apps/dokploy/LICENSE.MD diff --git a/__test__/compose/compose.test.ts b/apps/dokploy/__test__/compose/compose.test.ts similarity index 100% rename from __test__/compose/compose.test.ts rename to apps/dokploy/__test__/compose/compose.test.ts diff --git a/__test__/compose/config/config-root.test.ts b/apps/dokploy/__test__/compose/config/config-root.test.ts similarity index 100% rename from __test__/compose/config/config-root.test.ts rename to apps/dokploy/__test__/compose/config/config-root.test.ts diff --git a/__test__/compose/config/config-service.test.ts b/apps/dokploy/__test__/compose/config/config-service.test.ts similarity index 100% rename from __test__/compose/config/config-service.test.ts rename to apps/dokploy/__test__/compose/config/config-service.test.ts diff --git a/__test__/compose/config/config.test.ts b/apps/dokploy/__test__/compose/config/config.test.ts similarity index 100% rename from __test__/compose/config/config.test.ts rename to apps/dokploy/__test__/compose/config/config.test.ts diff --git a/__test__/compose/network/network-root.test.ts b/apps/dokploy/__test__/compose/network/network-root.test.ts similarity index 100% rename from __test__/compose/network/network-root.test.ts rename to apps/dokploy/__test__/compose/network/network-root.test.ts diff --git a/__test__/compose/network/network-service.test.ts b/apps/dokploy/__test__/compose/network/network-service.test.ts similarity index 100% rename from __test__/compose/network/network-service.test.ts rename to apps/dokploy/__test__/compose/network/network-service.test.ts diff --git a/__test__/compose/network/network.test.ts b/apps/dokploy/__test__/compose/network/network.test.ts similarity index 100% rename from __test__/compose/network/network.test.ts rename to apps/dokploy/__test__/compose/network/network.test.ts diff --git a/__test__/compose/secrets/secret-root.test.ts b/apps/dokploy/__test__/compose/secrets/secret-root.test.ts similarity index 100% rename from __test__/compose/secrets/secret-root.test.ts rename to apps/dokploy/__test__/compose/secrets/secret-root.test.ts diff --git a/__test__/compose/secrets/secret-services.test.ts b/apps/dokploy/__test__/compose/secrets/secret-services.test.ts similarity index 100% rename from __test__/compose/secrets/secret-services.test.ts rename to apps/dokploy/__test__/compose/secrets/secret-services.test.ts diff --git a/__test__/compose/secrets/secret.test.ts b/apps/dokploy/__test__/compose/secrets/secret.test.ts similarity index 100% rename from __test__/compose/secrets/secret.test.ts rename to apps/dokploy/__test__/compose/secrets/secret.test.ts diff --git a/__test__/compose/service/service-container-name.test.ts b/apps/dokploy/__test__/compose/service/service-container-name.test.ts similarity index 100% rename from __test__/compose/service/service-container-name.test.ts rename to apps/dokploy/__test__/compose/service/service-container-name.test.ts diff --git a/__test__/compose/service/service-depends-on.test.ts b/apps/dokploy/__test__/compose/service/service-depends-on.test.ts similarity index 100% rename from __test__/compose/service/service-depends-on.test.ts rename to apps/dokploy/__test__/compose/service/service-depends-on.test.ts diff --git a/__test__/compose/service/service-extends.test.ts b/apps/dokploy/__test__/compose/service/service-extends.test.ts similarity index 100% rename from __test__/compose/service/service-extends.test.ts rename to apps/dokploy/__test__/compose/service/service-extends.test.ts diff --git a/__test__/compose/service/service-links.test.ts b/apps/dokploy/__test__/compose/service/service-links.test.ts similarity index 100% rename from __test__/compose/service/service-links.test.ts rename to apps/dokploy/__test__/compose/service/service-links.test.ts diff --git a/__test__/compose/service/service-names.test.ts b/apps/dokploy/__test__/compose/service/service-names.test.ts similarity index 100% rename from __test__/compose/service/service-names.test.ts rename to apps/dokploy/__test__/compose/service/service-names.test.ts diff --git a/__test__/compose/service/service.test.ts b/apps/dokploy/__test__/compose/service/service.test.ts similarity index 100% rename from __test__/compose/service/service.test.ts rename to apps/dokploy/__test__/compose/service/service.test.ts diff --git a/__test__/compose/service/sevice-volumes-from.test.ts b/apps/dokploy/__test__/compose/service/sevice-volumes-from.test.ts similarity index 100% rename from __test__/compose/service/sevice-volumes-from.test.ts rename to apps/dokploy/__test__/compose/service/sevice-volumes-from.test.ts diff --git a/__test__/compose/volume/volume-2.test.ts b/apps/dokploy/__test__/compose/volume/volume-2.test.ts similarity index 100% rename from __test__/compose/volume/volume-2.test.ts rename to apps/dokploy/__test__/compose/volume/volume-2.test.ts diff --git a/__test__/compose/volume/volume-root.test.ts b/apps/dokploy/__test__/compose/volume/volume-root.test.ts similarity index 100% rename from __test__/compose/volume/volume-root.test.ts rename to apps/dokploy/__test__/compose/volume/volume-root.test.ts diff --git a/__test__/compose/volume/volume-services.test.ts b/apps/dokploy/__test__/compose/volume/volume-services.test.ts similarity index 100% rename from __test__/compose/volume/volume-services.test.ts rename to apps/dokploy/__test__/compose/volume/volume-services.test.ts diff --git a/__test__/compose/volume/volume.test.ts b/apps/dokploy/__test__/compose/volume/volume.test.ts similarity index 100% rename from __test__/compose/volume/volume.test.ts rename to apps/dokploy/__test__/compose/volume/volume.test.ts diff --git a/__test__/drop/drop.test.test.ts b/apps/dokploy/__test__/drop/drop.test.test.ts similarity index 100% rename from __test__/drop/drop.test.test.ts rename to apps/dokploy/__test__/drop/drop.test.test.ts diff --git a/__test__/drop/zips/folder-with-file.zip b/apps/dokploy/__test__/drop/zips/folder-with-file.zip similarity index 100% rename from __test__/drop/zips/folder-with-file.zip rename to apps/dokploy/__test__/drop/zips/folder-with-file.zip diff --git a/__test__/drop/zips/folder-with-sibling-file.zip b/apps/dokploy/__test__/drop/zips/folder-with-sibling-file.zip similarity index 100% rename from __test__/drop/zips/folder-with-sibling-file.zip rename to apps/dokploy/__test__/drop/zips/folder-with-sibling-file.zip diff --git a/__test__/drop/zips/folder1/folder1.txt b/apps/dokploy/__test__/drop/zips/folder1/folder1.txt similarity index 100% rename from __test__/drop/zips/folder1/folder1.txt rename to apps/dokploy/__test__/drop/zips/folder1/folder1.txt diff --git a/__test__/drop/zips/folder2/folder2.txt b/apps/dokploy/__test__/drop/zips/folder2/folder2.txt similarity index 100% rename from __test__/drop/zips/folder2/folder2.txt rename to apps/dokploy/__test__/drop/zips/folder2/folder2.txt diff --git a/__test__/drop/zips/folder3/file3.txt b/apps/dokploy/__test__/drop/zips/folder3/file3.txt similarity index 100% rename from __test__/drop/zips/folder3/file3.txt rename to apps/dokploy/__test__/drop/zips/folder3/file3.txt diff --git a/__test__/drop/zips/nested.zip b/apps/dokploy/__test__/drop/zips/nested.zip similarity index 100% rename from __test__/drop/zips/nested.zip rename to apps/dokploy/__test__/drop/zips/nested.zip diff --git a/__test__/drop/zips/single-file.zip b/apps/dokploy/__test__/drop/zips/single-file.zip similarity index 100% rename from __test__/drop/zips/single-file.zip rename to apps/dokploy/__test__/drop/zips/single-file.zip diff --git a/__test__/drop/zips/test.txt b/apps/dokploy/__test__/drop/zips/test.txt similarity index 100% rename from __test__/drop/zips/test.txt rename to apps/dokploy/__test__/drop/zips/test.txt diff --git a/__test__/drop/zips/two-folders.zip b/apps/dokploy/__test__/drop/zips/two-folders.zip similarity index 100% rename from __test__/drop/zips/two-folders.zip rename to apps/dokploy/__test__/drop/zips/two-folders.zip diff --git a/__test__/traefik/traefik.test.ts b/apps/dokploy/__test__/traefik/traefik.test.ts similarity index 100% rename from __test__/traefik/traefik.test.ts rename to apps/dokploy/__test__/traefik/traefik.test.ts diff --git a/__test__/vitest.config.ts b/apps/dokploy/__test__/vitest.config.ts similarity index 100% rename from __test__/vitest.config.ts rename to apps/dokploy/__test__/vitest.config.ts diff --git a/components.json b/apps/dokploy/components.json similarity index 100% rename from components.json rename to apps/dokploy/components.json diff --git a/components/auth/login-2fa.tsx b/apps/dokploy/components/auth/login-2fa.tsx similarity index 100% rename from components/auth/login-2fa.tsx rename to apps/dokploy/components/auth/login-2fa.tsx diff --git a/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx b/apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx similarity index 100% rename from components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx rename to apps/dokploy/components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx diff --git a/components/dashboard/application/advanced/cluster/show-cluster-settings.tsx b/apps/dokploy/components/dashboard/application/advanced/cluster/show-cluster-settings.tsx similarity index 100% rename from components/dashboard/application/advanced/cluster/show-cluster-settings.tsx rename to apps/dokploy/components/dashboard/application/advanced/cluster/show-cluster-settings.tsx diff --git a/components/dashboard/application/advanced/general/add-command.tsx b/apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx similarity index 100% rename from components/dashboard/application/advanced/general/add-command.tsx rename to apps/dokploy/components/dashboard/application/advanced/general/add-command.tsx diff --git a/components/dashboard/application/advanced/ports/add-port.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/add-port.tsx similarity index 100% rename from components/dashboard/application/advanced/ports/add-port.tsx rename to apps/dokploy/components/dashboard/application/advanced/ports/add-port.tsx diff --git a/components/dashboard/application/advanced/ports/delete-port.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/delete-port.tsx similarity index 100% rename from components/dashboard/application/advanced/ports/delete-port.tsx rename to apps/dokploy/components/dashboard/application/advanced/ports/delete-port.tsx diff --git a/components/dashboard/application/advanced/ports/show-port.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/show-port.tsx similarity index 100% rename from components/dashboard/application/advanced/ports/show-port.tsx rename to apps/dokploy/components/dashboard/application/advanced/ports/show-port.tsx diff --git a/components/dashboard/application/advanced/ports/update-port.tsx b/apps/dokploy/components/dashboard/application/advanced/ports/update-port.tsx similarity index 100% rename from components/dashboard/application/advanced/ports/update-port.tsx rename to apps/dokploy/components/dashboard/application/advanced/ports/update-port.tsx diff --git a/components/dashboard/application/advanced/redirects/add-redirect.tsx b/apps/dokploy/components/dashboard/application/advanced/redirects/add-redirect.tsx similarity index 100% rename from components/dashboard/application/advanced/redirects/add-redirect.tsx rename to apps/dokploy/components/dashboard/application/advanced/redirects/add-redirect.tsx diff --git a/components/dashboard/application/advanced/redirects/delete-redirect.tsx b/apps/dokploy/components/dashboard/application/advanced/redirects/delete-redirect.tsx similarity index 100% rename from components/dashboard/application/advanced/redirects/delete-redirect.tsx rename to apps/dokploy/components/dashboard/application/advanced/redirects/delete-redirect.tsx diff --git a/components/dashboard/application/advanced/redirects/show-redirects.tsx b/apps/dokploy/components/dashboard/application/advanced/redirects/show-redirects.tsx similarity index 100% rename from components/dashboard/application/advanced/redirects/show-redirects.tsx rename to apps/dokploy/components/dashboard/application/advanced/redirects/show-redirects.tsx diff --git a/components/dashboard/application/advanced/redirects/update-redirect.tsx b/apps/dokploy/components/dashboard/application/advanced/redirects/update-redirect.tsx similarity index 100% rename from components/dashboard/application/advanced/redirects/update-redirect.tsx rename to apps/dokploy/components/dashboard/application/advanced/redirects/update-redirect.tsx diff --git a/components/dashboard/application/advanced/security/add-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/add-security.tsx similarity index 100% rename from components/dashboard/application/advanced/security/add-security.tsx rename to apps/dokploy/components/dashboard/application/advanced/security/add-security.tsx diff --git a/components/dashboard/application/advanced/security/delete-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/delete-security.tsx similarity index 100% rename from components/dashboard/application/advanced/security/delete-security.tsx rename to apps/dokploy/components/dashboard/application/advanced/security/delete-security.tsx diff --git a/components/dashboard/application/advanced/security/show-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/show-security.tsx similarity index 100% rename from components/dashboard/application/advanced/security/show-security.tsx rename to apps/dokploy/components/dashboard/application/advanced/security/show-security.tsx diff --git a/components/dashboard/application/advanced/security/update-security.tsx b/apps/dokploy/components/dashboard/application/advanced/security/update-security.tsx similarity index 100% rename from components/dashboard/application/advanced/security/update-security.tsx rename to apps/dokploy/components/dashboard/application/advanced/security/update-security.tsx diff --git a/components/dashboard/application/advanced/show-application-advanced-settings.tsx b/apps/dokploy/components/dashboard/application/advanced/show-application-advanced-settings.tsx similarity index 100% rename from components/dashboard/application/advanced/show-application-advanced-settings.tsx rename to apps/dokploy/components/dashboard/application/advanced/show-application-advanced-settings.tsx diff --git a/components/dashboard/application/advanced/traefik/show-traefik-config.tsx b/apps/dokploy/components/dashboard/application/advanced/traefik/show-traefik-config.tsx similarity index 100% rename from components/dashboard/application/advanced/traefik/show-traefik-config.tsx rename to apps/dokploy/components/dashboard/application/advanced/traefik/show-traefik-config.tsx diff --git a/components/dashboard/application/advanced/traefik/update-traefik-config.tsx b/apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx similarity index 100% rename from components/dashboard/application/advanced/traefik/update-traefik-config.tsx rename to apps/dokploy/components/dashboard/application/advanced/traefik/update-traefik-config.tsx diff --git a/components/dashboard/application/advanced/volumes/add-volumes.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx similarity index 100% rename from components/dashboard/application/advanced/volumes/add-volumes.tsx rename to apps/dokploy/components/dashboard/application/advanced/volumes/add-volumes.tsx diff --git a/components/dashboard/application/advanced/volumes/delete-volume.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/delete-volume.tsx similarity index 100% rename from components/dashboard/application/advanced/volumes/delete-volume.tsx rename to apps/dokploy/components/dashboard/application/advanced/volumes/delete-volume.tsx diff --git a/components/dashboard/application/advanced/volumes/show-volumes.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/show-volumes.tsx similarity index 100% rename from components/dashboard/application/advanced/volumes/show-volumes.tsx rename to apps/dokploy/components/dashboard/application/advanced/volumes/show-volumes.tsx diff --git a/components/dashboard/application/advanced/volumes/update-volume.tsx b/apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx similarity index 100% rename from components/dashboard/application/advanced/volumes/update-volume.tsx rename to apps/dokploy/components/dashboard/application/advanced/volumes/update-volume.tsx diff --git a/components/dashboard/application/build/show.tsx b/apps/dokploy/components/dashboard/application/build/show.tsx similarity index 100% rename from components/dashboard/application/build/show.tsx rename to apps/dokploy/components/dashboard/application/build/show.tsx diff --git a/components/dashboard/application/delete-application.tsx b/apps/dokploy/components/dashboard/application/delete-application.tsx similarity index 100% rename from components/dashboard/application/delete-application.tsx rename to apps/dokploy/components/dashboard/application/delete-application.tsx diff --git a/components/dashboard/application/deployments/cancel-queues.tsx b/apps/dokploy/components/dashboard/application/deployments/cancel-queues.tsx similarity index 100% rename from components/dashboard/application/deployments/cancel-queues.tsx rename to apps/dokploy/components/dashboard/application/deployments/cancel-queues.tsx diff --git a/components/dashboard/application/deployments/refresh-token.tsx b/apps/dokploy/components/dashboard/application/deployments/refresh-token.tsx similarity index 100% rename from components/dashboard/application/deployments/refresh-token.tsx rename to apps/dokploy/components/dashboard/application/deployments/refresh-token.tsx diff --git a/components/dashboard/application/deployments/show-deployment.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx similarity index 100% rename from components/dashboard/application/deployments/show-deployment.tsx rename to apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx diff --git a/components/dashboard/application/deployments/show-deployments.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx similarity index 100% rename from components/dashboard/application/deployments/show-deployments.tsx rename to apps/dokploy/components/dashboard/application/deployments/show-deployments.tsx diff --git a/components/dashboard/application/domains/add-domain.tsx b/apps/dokploy/components/dashboard/application/domains/add-domain.tsx similarity index 100% rename from components/dashboard/application/domains/add-domain.tsx rename to apps/dokploy/components/dashboard/application/domains/add-domain.tsx diff --git a/components/dashboard/application/domains/delete-domain.tsx b/apps/dokploy/components/dashboard/application/domains/delete-domain.tsx similarity index 100% rename from components/dashboard/application/domains/delete-domain.tsx rename to apps/dokploy/components/dashboard/application/domains/delete-domain.tsx diff --git a/components/dashboard/application/domains/generate-domain.tsx b/apps/dokploy/components/dashboard/application/domains/generate-domain.tsx similarity index 100% rename from components/dashboard/application/domains/generate-domain.tsx rename to apps/dokploy/components/dashboard/application/domains/generate-domain.tsx diff --git a/components/dashboard/application/domains/generate-traefikme.tsx b/apps/dokploy/components/dashboard/application/domains/generate-traefikme.tsx similarity index 100% rename from components/dashboard/application/domains/generate-traefikme.tsx rename to apps/dokploy/components/dashboard/application/domains/generate-traefikme.tsx diff --git a/components/dashboard/application/domains/generate-wildcard.tsx b/apps/dokploy/components/dashboard/application/domains/generate-wildcard.tsx similarity index 100% rename from components/dashboard/application/domains/generate-wildcard.tsx rename to apps/dokploy/components/dashboard/application/domains/generate-wildcard.tsx diff --git a/components/dashboard/application/domains/show-domains.tsx b/apps/dokploy/components/dashboard/application/domains/show-domains.tsx similarity index 100% rename from components/dashboard/application/domains/show-domains.tsx rename to apps/dokploy/components/dashboard/application/domains/show-domains.tsx diff --git a/components/dashboard/application/environment/show.tsx b/apps/dokploy/components/dashboard/application/environment/show.tsx similarity index 100% rename from components/dashboard/application/environment/show.tsx rename to apps/dokploy/components/dashboard/application/environment/show.tsx diff --git a/components/dashboard/application/general/deploy-application.tsx b/apps/dokploy/components/dashboard/application/general/deploy-application.tsx similarity index 100% rename from components/dashboard/application/general/deploy-application.tsx rename to apps/dokploy/components/dashboard/application/general/deploy-application.tsx diff --git a/components/dashboard/application/general/generic/save-docker-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-docker-provider.tsx similarity index 100% rename from components/dashboard/application/general/generic/save-docker-provider.tsx rename to apps/dokploy/components/dashboard/application/general/generic/save-docker-provider.tsx diff --git a/components/dashboard/application/general/generic/save-drag-n-drop.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-drag-n-drop.tsx similarity index 100% rename from components/dashboard/application/general/generic/save-drag-n-drop.tsx rename to apps/dokploy/components/dashboard/application/general/generic/save-drag-n-drop.tsx diff --git a/components/dashboard/application/general/generic/save-git-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-git-provider.tsx similarity index 100% rename from components/dashboard/application/general/generic/save-git-provider.tsx rename to apps/dokploy/components/dashboard/application/general/generic/save-git-provider.tsx diff --git a/components/dashboard/application/general/generic/save-github-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx similarity index 100% rename from components/dashboard/application/general/generic/save-github-provider.tsx rename to apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx diff --git a/components/dashboard/application/general/generic/show.tsx b/apps/dokploy/components/dashboard/application/general/generic/show.tsx similarity index 100% rename from components/dashboard/application/general/generic/show.tsx rename to apps/dokploy/components/dashboard/application/general/generic/show.tsx diff --git a/components/dashboard/application/general/reset-application.tsx b/apps/dokploy/components/dashboard/application/general/reset-application.tsx similarity index 100% rename from components/dashboard/application/general/reset-application.tsx rename to apps/dokploy/components/dashboard/application/general/reset-application.tsx diff --git a/components/dashboard/application/general/show.tsx b/apps/dokploy/components/dashboard/application/general/show.tsx similarity index 100% rename from components/dashboard/application/general/show.tsx rename to apps/dokploy/components/dashboard/application/general/show.tsx diff --git a/components/dashboard/application/logs/show.tsx b/apps/dokploy/components/dashboard/application/logs/show.tsx similarity index 100% rename from components/dashboard/application/logs/show.tsx rename to apps/dokploy/components/dashboard/application/logs/show.tsx diff --git a/components/dashboard/application/rebuild-application.tsx b/apps/dokploy/components/dashboard/application/rebuild-application.tsx similarity index 100% rename from components/dashboard/application/rebuild-application.tsx rename to apps/dokploy/components/dashboard/application/rebuild-application.tsx diff --git a/components/dashboard/application/start-application.tsx b/apps/dokploy/components/dashboard/application/start-application.tsx similarity index 100% rename from components/dashboard/application/start-application.tsx rename to apps/dokploy/components/dashboard/application/start-application.tsx diff --git a/components/dashboard/application/stop-application.tsx b/apps/dokploy/components/dashboard/application/stop-application.tsx similarity index 100% rename from components/dashboard/application/stop-application.tsx rename to apps/dokploy/components/dashboard/application/stop-application.tsx diff --git a/components/dashboard/application/update-application.tsx b/apps/dokploy/components/dashboard/application/update-application.tsx similarity index 100% rename from components/dashboard/application/update-application.tsx rename to apps/dokploy/components/dashboard/application/update-application.tsx diff --git a/components/dashboard/compose/advanced/add-command.tsx b/apps/dokploy/components/dashboard/compose/advanced/add-command.tsx similarity index 100% rename from components/dashboard/compose/advanced/add-command.tsx rename to apps/dokploy/components/dashboard/compose/advanced/add-command.tsx diff --git a/components/dashboard/compose/advanced/show-volumes.tsx b/apps/dokploy/components/dashboard/compose/advanced/show-volumes.tsx similarity index 100% rename from components/dashboard/compose/advanced/show-volumes.tsx rename to apps/dokploy/components/dashboard/compose/advanced/show-volumes.tsx diff --git a/components/dashboard/compose/delete-compose.tsx b/apps/dokploy/components/dashboard/compose/delete-compose.tsx similarity index 100% rename from components/dashboard/compose/delete-compose.tsx rename to apps/dokploy/components/dashboard/compose/delete-compose.tsx diff --git a/components/dashboard/compose/deployments/cancel-queues-compose.tsx b/apps/dokploy/components/dashboard/compose/deployments/cancel-queues-compose.tsx similarity index 100% rename from components/dashboard/compose/deployments/cancel-queues-compose.tsx rename to apps/dokploy/components/dashboard/compose/deployments/cancel-queues-compose.tsx diff --git a/components/dashboard/compose/deployments/refresh-token-compose.tsx b/apps/dokploy/components/dashboard/compose/deployments/refresh-token-compose.tsx similarity index 100% rename from components/dashboard/compose/deployments/refresh-token-compose.tsx rename to apps/dokploy/components/dashboard/compose/deployments/refresh-token-compose.tsx diff --git a/components/dashboard/compose/deployments/show-deployment-compose.tsx b/apps/dokploy/components/dashboard/compose/deployments/show-deployment-compose.tsx similarity index 100% rename from components/dashboard/compose/deployments/show-deployment-compose.tsx rename to apps/dokploy/components/dashboard/compose/deployments/show-deployment-compose.tsx diff --git a/components/dashboard/compose/deployments/show-deployments-compose.tsx b/apps/dokploy/components/dashboard/compose/deployments/show-deployments-compose.tsx similarity index 100% rename from components/dashboard/compose/deployments/show-deployments-compose.tsx rename to apps/dokploy/components/dashboard/compose/deployments/show-deployments-compose.tsx diff --git a/components/dashboard/compose/enviroment/show.tsx b/apps/dokploy/components/dashboard/compose/enviroment/show.tsx similarity index 100% rename from components/dashboard/compose/enviroment/show.tsx rename to apps/dokploy/components/dashboard/compose/enviroment/show.tsx diff --git a/components/dashboard/compose/general/actions.tsx b/apps/dokploy/components/dashboard/compose/general/actions.tsx similarity index 100% rename from components/dashboard/compose/general/actions.tsx rename to apps/dokploy/components/dashboard/compose/general/actions.tsx diff --git a/components/dashboard/compose/general/compose-file-editor.tsx b/apps/dokploy/components/dashboard/compose/general/compose-file-editor.tsx similarity index 100% rename from components/dashboard/compose/general/compose-file-editor.tsx rename to apps/dokploy/components/dashboard/compose/general/compose-file-editor.tsx diff --git a/components/dashboard/compose/general/deploy-compose.tsx b/apps/dokploy/components/dashboard/compose/general/deploy-compose.tsx similarity index 100% rename from components/dashboard/compose/general/deploy-compose.tsx rename to apps/dokploy/components/dashboard/compose/general/deploy-compose.tsx diff --git a/components/dashboard/compose/general/generic/save-git-provider-compose.tsx b/apps/dokploy/components/dashboard/compose/general/generic/save-git-provider-compose.tsx similarity index 100% rename from components/dashboard/compose/general/generic/save-git-provider-compose.tsx rename to apps/dokploy/components/dashboard/compose/general/generic/save-git-provider-compose.tsx diff --git a/components/dashboard/compose/general/generic/save-github-provider-compose.tsx b/apps/dokploy/components/dashboard/compose/general/generic/save-github-provider-compose.tsx similarity index 100% rename from components/dashboard/compose/general/generic/save-github-provider-compose.tsx rename to apps/dokploy/components/dashboard/compose/general/generic/save-github-provider-compose.tsx diff --git a/components/dashboard/compose/general/generic/show.tsx b/apps/dokploy/components/dashboard/compose/general/generic/show.tsx similarity index 100% rename from components/dashboard/compose/general/generic/show.tsx rename to apps/dokploy/components/dashboard/compose/general/generic/show.tsx diff --git a/components/dashboard/compose/general/randomize-compose.tsx b/apps/dokploy/components/dashboard/compose/general/randomize-compose.tsx similarity index 100% rename from components/dashboard/compose/general/randomize-compose.tsx rename to apps/dokploy/components/dashboard/compose/general/randomize-compose.tsx diff --git a/components/dashboard/compose/general/rebuild-compose.tsx b/apps/dokploy/components/dashboard/compose/general/rebuild-compose.tsx similarity index 100% rename from components/dashboard/compose/general/rebuild-compose.tsx rename to apps/dokploy/components/dashboard/compose/general/rebuild-compose.tsx diff --git a/components/dashboard/compose/general/show.tsx b/apps/dokploy/components/dashboard/compose/general/show.tsx similarity index 100% rename from components/dashboard/compose/general/show.tsx rename to apps/dokploy/components/dashboard/compose/general/show.tsx diff --git a/components/dashboard/compose/general/stop-compose.tsx b/apps/dokploy/components/dashboard/compose/general/stop-compose.tsx similarity index 100% rename from components/dashboard/compose/general/stop-compose.tsx rename to apps/dokploy/components/dashboard/compose/general/stop-compose.tsx diff --git a/components/dashboard/compose/logs/show.tsx b/apps/dokploy/components/dashboard/compose/logs/show.tsx similarity index 100% rename from components/dashboard/compose/logs/show.tsx rename to apps/dokploy/components/dashboard/compose/logs/show.tsx diff --git a/components/dashboard/compose/monitoring/show.tsx b/apps/dokploy/components/dashboard/compose/monitoring/show.tsx similarity index 100% rename from components/dashboard/compose/monitoring/show.tsx rename to apps/dokploy/components/dashboard/compose/monitoring/show.tsx diff --git a/components/dashboard/compose/update-compose.tsx b/apps/dokploy/components/dashboard/compose/update-compose.tsx similarity index 100% rename from components/dashboard/compose/update-compose.tsx rename to apps/dokploy/components/dashboard/compose/update-compose.tsx diff --git a/components/dashboard/database/backups/add-backup.tsx b/apps/dokploy/components/dashboard/database/backups/add-backup.tsx similarity index 100% rename from components/dashboard/database/backups/add-backup.tsx rename to apps/dokploy/components/dashboard/database/backups/add-backup.tsx diff --git a/components/dashboard/database/backups/delete-backup.tsx b/apps/dokploy/components/dashboard/database/backups/delete-backup.tsx similarity index 100% rename from components/dashboard/database/backups/delete-backup.tsx rename to apps/dokploy/components/dashboard/database/backups/delete-backup.tsx diff --git a/components/dashboard/database/backups/update-backup.tsx b/apps/dokploy/components/dashboard/database/backups/update-backup.tsx similarity index 100% rename from components/dashboard/database/backups/update-backup.tsx rename to apps/dokploy/components/dashboard/database/backups/update-backup.tsx diff --git a/components/dashboard/docker/config/show-container-config.tsx b/apps/dokploy/components/dashboard/docker/config/show-container-config.tsx similarity index 100% rename from components/dashboard/docker/config/show-container-config.tsx rename to apps/dokploy/components/dashboard/docker/config/show-container-config.tsx diff --git a/components/dashboard/docker/logs/docker-logs-id.tsx b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx similarity index 100% rename from components/dashboard/docker/logs/docker-logs-id.tsx rename to apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx diff --git a/components/dashboard/docker/logs/show-docker-modal-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx similarity index 100% rename from components/dashboard/docker/logs/show-docker-modal-logs.tsx rename to apps/dokploy/components/dashboard/docker/logs/show-docker-modal-logs.tsx diff --git a/components/dashboard/docker/show/colums.tsx b/apps/dokploy/components/dashboard/docker/show/colums.tsx similarity index 100% rename from components/dashboard/docker/show/colums.tsx rename to apps/dokploy/components/dashboard/docker/show/colums.tsx diff --git a/components/dashboard/docker/show/show-containers.tsx b/apps/dokploy/components/dashboard/docker/show/show-containers.tsx similarity index 100% rename from components/dashboard/docker/show/show-containers.tsx rename to apps/dokploy/components/dashboard/docker/show/show-containers.tsx diff --git a/components/dashboard/docker/terminal/docker-terminal-modal.tsx b/apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx similarity index 100% rename from components/dashboard/docker/terminal/docker-terminal-modal.tsx rename to apps/dokploy/components/dashboard/docker/terminal/docker-terminal-modal.tsx diff --git a/components/dashboard/docker/terminal/docker-terminal.tsx b/apps/dokploy/components/dashboard/docker/terminal/docker-terminal.tsx similarity index 100% rename from components/dashboard/docker/terminal/docker-terminal.tsx rename to apps/dokploy/components/dashboard/docker/terminal/docker-terminal.tsx diff --git a/components/dashboard/file-system/show-traefik-file.tsx b/apps/dokploy/components/dashboard/file-system/show-traefik-file.tsx similarity index 100% rename from components/dashboard/file-system/show-traefik-file.tsx rename to apps/dokploy/components/dashboard/file-system/show-traefik-file.tsx diff --git a/components/dashboard/file-system/show-traefik-system.tsx b/apps/dokploy/components/dashboard/file-system/show-traefik-system.tsx similarity index 100% rename from components/dashboard/file-system/show-traefik-system.tsx rename to apps/dokploy/components/dashboard/file-system/show-traefik-system.tsx diff --git a/components/dashboard/mariadb/advanced/show-mariadb-advanced-settings.tsx b/apps/dokploy/components/dashboard/mariadb/advanced/show-mariadb-advanced-settings.tsx similarity index 100% rename from components/dashboard/mariadb/advanced/show-mariadb-advanced-settings.tsx rename to apps/dokploy/components/dashboard/mariadb/advanced/show-mariadb-advanced-settings.tsx diff --git a/components/dashboard/mariadb/advanced/show-mariadb-resources.tsx b/apps/dokploy/components/dashboard/mariadb/advanced/show-mariadb-resources.tsx similarity index 100% rename from components/dashboard/mariadb/advanced/show-mariadb-resources.tsx rename to apps/dokploy/components/dashboard/mariadb/advanced/show-mariadb-resources.tsx diff --git a/components/dashboard/mariadb/backups/show-backup-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/backups/show-backup-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/backups/show-backup-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/backups/show-backup-mariadb.tsx diff --git a/components/dashboard/mariadb/delete-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/delete-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/delete-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/delete-mariadb.tsx diff --git a/components/dashboard/mariadb/environment/show-mariadb-environment.tsx b/apps/dokploy/components/dashboard/mariadb/environment/show-mariadb-environment.tsx similarity index 100% rename from components/dashboard/mariadb/environment/show-mariadb-environment.tsx rename to apps/dokploy/components/dashboard/mariadb/environment/show-mariadb-environment.tsx diff --git a/components/dashboard/mariadb/general/deploy-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/general/deploy-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/general/deploy-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/general/deploy-mariadb.tsx diff --git a/components/dashboard/mariadb/general/reset-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/general/reset-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/general/reset-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/general/reset-mariadb.tsx diff --git a/components/dashboard/mariadb/general/show-external-mariadb-credentials.tsx b/apps/dokploy/components/dashboard/mariadb/general/show-external-mariadb-credentials.tsx similarity index 100% rename from components/dashboard/mariadb/general/show-external-mariadb-credentials.tsx rename to apps/dokploy/components/dashboard/mariadb/general/show-external-mariadb-credentials.tsx diff --git a/components/dashboard/mariadb/general/show-general-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/general/show-general-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/general/show-general-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/general/show-general-mariadb.tsx diff --git a/components/dashboard/mariadb/general/show-internal-mariadb-credentials.tsx b/apps/dokploy/components/dashboard/mariadb/general/show-internal-mariadb-credentials.tsx similarity index 100% rename from components/dashboard/mariadb/general/show-internal-mariadb-credentials.tsx rename to apps/dokploy/components/dashboard/mariadb/general/show-internal-mariadb-credentials.tsx diff --git a/components/dashboard/mariadb/general/stop-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/general/stop-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/general/stop-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/general/stop-mariadb.tsx diff --git a/components/dashboard/mariadb/start-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/start-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/start-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/start-mariadb.tsx diff --git a/components/dashboard/mariadb/update-mariadb.tsx b/apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx similarity index 100% rename from components/dashboard/mariadb/update-mariadb.tsx rename to apps/dokploy/components/dashboard/mariadb/update-mariadb.tsx diff --git a/components/dashboard/mariadb/volumes/show-volumes.tsx b/apps/dokploy/components/dashboard/mariadb/volumes/show-volumes.tsx similarity index 100% rename from components/dashboard/mariadb/volumes/show-volumes.tsx rename to apps/dokploy/components/dashboard/mariadb/volumes/show-volumes.tsx diff --git a/components/dashboard/mongo/advanced/show-mongo-advanced-settings.tsx b/apps/dokploy/components/dashboard/mongo/advanced/show-mongo-advanced-settings.tsx similarity index 100% rename from components/dashboard/mongo/advanced/show-mongo-advanced-settings.tsx rename to apps/dokploy/components/dashboard/mongo/advanced/show-mongo-advanced-settings.tsx diff --git a/components/dashboard/mongo/advanced/show-mongo-resources.tsx b/apps/dokploy/components/dashboard/mongo/advanced/show-mongo-resources.tsx similarity index 100% rename from components/dashboard/mongo/advanced/show-mongo-resources.tsx rename to apps/dokploy/components/dashboard/mongo/advanced/show-mongo-resources.tsx diff --git a/components/dashboard/mongo/backups/show-backup-mongo.tsx b/apps/dokploy/components/dashboard/mongo/backups/show-backup-mongo.tsx similarity index 100% rename from components/dashboard/mongo/backups/show-backup-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/backups/show-backup-mongo.tsx diff --git a/components/dashboard/mongo/delete-mongo.tsx b/apps/dokploy/components/dashboard/mongo/delete-mongo.tsx similarity index 100% rename from components/dashboard/mongo/delete-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/delete-mongo.tsx diff --git a/components/dashboard/mongo/environment/show-mongo-environment.tsx b/apps/dokploy/components/dashboard/mongo/environment/show-mongo-environment.tsx similarity index 100% rename from components/dashboard/mongo/environment/show-mongo-environment.tsx rename to apps/dokploy/components/dashboard/mongo/environment/show-mongo-environment.tsx diff --git a/components/dashboard/mongo/general/deploy-mongo.tsx b/apps/dokploy/components/dashboard/mongo/general/deploy-mongo.tsx similarity index 100% rename from components/dashboard/mongo/general/deploy-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/general/deploy-mongo.tsx diff --git a/components/dashboard/mongo/general/reset-mongo.tsx b/apps/dokploy/components/dashboard/mongo/general/reset-mongo.tsx similarity index 100% rename from components/dashboard/mongo/general/reset-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/general/reset-mongo.tsx diff --git a/components/dashboard/mongo/general/show-external-mongo-credentials.tsx b/apps/dokploy/components/dashboard/mongo/general/show-external-mongo-credentials.tsx similarity index 100% rename from components/dashboard/mongo/general/show-external-mongo-credentials.tsx rename to apps/dokploy/components/dashboard/mongo/general/show-external-mongo-credentials.tsx diff --git a/components/dashboard/mongo/general/show-general-mongo.tsx b/apps/dokploy/components/dashboard/mongo/general/show-general-mongo.tsx similarity index 100% rename from components/dashboard/mongo/general/show-general-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/general/show-general-mongo.tsx diff --git a/components/dashboard/mongo/general/show-internal-mongo-credentials.tsx b/apps/dokploy/components/dashboard/mongo/general/show-internal-mongo-credentials.tsx similarity index 100% rename from components/dashboard/mongo/general/show-internal-mongo-credentials.tsx rename to apps/dokploy/components/dashboard/mongo/general/show-internal-mongo-credentials.tsx diff --git a/components/dashboard/mongo/general/stop-mongo.tsx b/apps/dokploy/components/dashboard/mongo/general/stop-mongo.tsx similarity index 100% rename from components/dashboard/mongo/general/stop-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/general/stop-mongo.tsx diff --git a/components/dashboard/mongo/start-mongo.tsx b/apps/dokploy/components/dashboard/mongo/start-mongo.tsx similarity index 100% rename from components/dashboard/mongo/start-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/start-mongo.tsx diff --git a/components/dashboard/mongo/update-mongo.tsx b/apps/dokploy/components/dashboard/mongo/update-mongo.tsx similarity index 100% rename from components/dashboard/mongo/update-mongo.tsx rename to apps/dokploy/components/dashboard/mongo/update-mongo.tsx diff --git a/components/dashboard/mongo/volumes/show-volumes.tsx b/apps/dokploy/components/dashboard/mongo/volumes/show-volumes.tsx similarity index 100% rename from components/dashboard/mongo/volumes/show-volumes.tsx rename to apps/dokploy/components/dashboard/mongo/volumes/show-volumes.tsx diff --git a/components/dashboard/monitoring/docker/docker-block-chart.tsx b/apps/dokploy/components/dashboard/monitoring/docker/docker-block-chart.tsx similarity index 100% rename from components/dashboard/monitoring/docker/docker-block-chart.tsx rename to apps/dokploy/components/dashboard/monitoring/docker/docker-block-chart.tsx diff --git a/components/dashboard/monitoring/docker/docker-cpu-chart.tsx b/apps/dokploy/components/dashboard/monitoring/docker/docker-cpu-chart.tsx similarity index 100% rename from components/dashboard/monitoring/docker/docker-cpu-chart.tsx rename to apps/dokploy/components/dashboard/monitoring/docker/docker-cpu-chart.tsx diff --git a/components/dashboard/monitoring/docker/docker-disk-chart.tsx b/apps/dokploy/components/dashboard/monitoring/docker/docker-disk-chart.tsx similarity index 100% rename from components/dashboard/monitoring/docker/docker-disk-chart.tsx rename to apps/dokploy/components/dashboard/monitoring/docker/docker-disk-chart.tsx diff --git a/components/dashboard/monitoring/docker/docker-memory-chart.tsx b/apps/dokploy/components/dashboard/monitoring/docker/docker-memory-chart.tsx similarity index 100% rename from components/dashboard/monitoring/docker/docker-memory-chart.tsx rename to apps/dokploy/components/dashboard/monitoring/docker/docker-memory-chart.tsx diff --git a/components/dashboard/monitoring/docker/docker-network-chart.tsx b/apps/dokploy/components/dashboard/monitoring/docker/docker-network-chart.tsx similarity index 100% rename from components/dashboard/monitoring/docker/docker-network-chart.tsx rename to apps/dokploy/components/dashboard/monitoring/docker/docker-network-chart.tsx diff --git a/components/dashboard/monitoring/docker/show.tsx b/apps/dokploy/components/dashboard/monitoring/docker/show.tsx similarity index 100% rename from components/dashboard/monitoring/docker/show.tsx rename to apps/dokploy/components/dashboard/monitoring/docker/show.tsx diff --git a/components/dashboard/monitoring/web-server/show.tsx b/apps/dokploy/components/dashboard/monitoring/web-server/show.tsx similarity index 100% rename from components/dashboard/monitoring/web-server/show.tsx rename to apps/dokploy/components/dashboard/monitoring/web-server/show.tsx diff --git a/components/dashboard/mysql/advanced/show-mysql-advanced-settings.tsx b/apps/dokploy/components/dashboard/mysql/advanced/show-mysql-advanced-settings.tsx similarity index 100% rename from components/dashboard/mysql/advanced/show-mysql-advanced-settings.tsx rename to apps/dokploy/components/dashboard/mysql/advanced/show-mysql-advanced-settings.tsx diff --git a/components/dashboard/mysql/advanced/show-mysql-resources.tsx b/apps/dokploy/components/dashboard/mysql/advanced/show-mysql-resources.tsx similarity index 100% rename from components/dashboard/mysql/advanced/show-mysql-resources.tsx rename to apps/dokploy/components/dashboard/mysql/advanced/show-mysql-resources.tsx diff --git a/components/dashboard/mysql/backups/show-backup-mysql.tsx b/apps/dokploy/components/dashboard/mysql/backups/show-backup-mysql.tsx similarity index 100% rename from components/dashboard/mysql/backups/show-backup-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/backups/show-backup-mysql.tsx diff --git a/components/dashboard/mysql/delete-mysql.tsx b/apps/dokploy/components/dashboard/mysql/delete-mysql.tsx similarity index 100% rename from components/dashboard/mysql/delete-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/delete-mysql.tsx diff --git a/components/dashboard/mysql/environment/show-mysql-environment.tsx b/apps/dokploy/components/dashboard/mysql/environment/show-mysql-environment.tsx similarity index 100% rename from components/dashboard/mysql/environment/show-mysql-environment.tsx rename to apps/dokploy/components/dashboard/mysql/environment/show-mysql-environment.tsx diff --git a/components/dashboard/mysql/general/deploy-mysql.tsx b/apps/dokploy/components/dashboard/mysql/general/deploy-mysql.tsx similarity index 100% rename from components/dashboard/mysql/general/deploy-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/general/deploy-mysql.tsx diff --git a/components/dashboard/mysql/general/reset-mysql.tsx b/apps/dokploy/components/dashboard/mysql/general/reset-mysql.tsx similarity index 100% rename from components/dashboard/mysql/general/reset-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/general/reset-mysql.tsx diff --git a/components/dashboard/mysql/general/show-external-mysql-credentials.tsx b/apps/dokploy/components/dashboard/mysql/general/show-external-mysql-credentials.tsx similarity index 100% rename from components/dashboard/mysql/general/show-external-mysql-credentials.tsx rename to apps/dokploy/components/dashboard/mysql/general/show-external-mysql-credentials.tsx diff --git a/components/dashboard/mysql/general/show-general-mysql.tsx b/apps/dokploy/components/dashboard/mysql/general/show-general-mysql.tsx similarity index 100% rename from components/dashboard/mysql/general/show-general-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/general/show-general-mysql.tsx diff --git a/components/dashboard/mysql/general/show-internal-mysql-credentials.tsx b/apps/dokploy/components/dashboard/mysql/general/show-internal-mysql-credentials.tsx similarity index 100% rename from components/dashboard/mysql/general/show-internal-mysql-credentials.tsx rename to apps/dokploy/components/dashboard/mysql/general/show-internal-mysql-credentials.tsx diff --git a/components/dashboard/mysql/general/stop-mysql.tsx b/apps/dokploy/components/dashboard/mysql/general/stop-mysql.tsx similarity index 100% rename from components/dashboard/mysql/general/stop-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/general/stop-mysql.tsx diff --git a/components/dashboard/mysql/start-mysql.tsx b/apps/dokploy/components/dashboard/mysql/start-mysql.tsx similarity index 100% rename from components/dashboard/mysql/start-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/start-mysql.tsx diff --git a/components/dashboard/mysql/update-mysql.tsx b/apps/dokploy/components/dashboard/mysql/update-mysql.tsx similarity index 100% rename from components/dashboard/mysql/update-mysql.tsx rename to apps/dokploy/components/dashboard/mysql/update-mysql.tsx diff --git a/components/dashboard/mysql/volumes/show-volumes.tsx b/apps/dokploy/components/dashboard/mysql/volumes/show-volumes.tsx similarity index 100% rename from components/dashboard/mysql/volumes/show-volumes.tsx rename to apps/dokploy/components/dashboard/mysql/volumes/show-volumes.tsx diff --git a/components/dashboard/postgres/advanced/show-postgres-advanced-settings.tsx b/apps/dokploy/components/dashboard/postgres/advanced/show-postgres-advanced-settings.tsx similarity index 100% rename from components/dashboard/postgres/advanced/show-postgres-advanced-settings.tsx rename to apps/dokploy/components/dashboard/postgres/advanced/show-postgres-advanced-settings.tsx diff --git a/components/dashboard/postgres/advanced/show-postgres-resources.tsx b/apps/dokploy/components/dashboard/postgres/advanced/show-postgres-resources.tsx similarity index 100% rename from components/dashboard/postgres/advanced/show-postgres-resources.tsx rename to apps/dokploy/components/dashboard/postgres/advanced/show-postgres-resources.tsx diff --git a/components/dashboard/postgres/backups/show-backup-postgres.tsx b/apps/dokploy/components/dashboard/postgres/backups/show-backup-postgres.tsx similarity index 100% rename from components/dashboard/postgres/backups/show-backup-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/backups/show-backup-postgres.tsx diff --git a/components/dashboard/postgres/delete-postgres.tsx b/apps/dokploy/components/dashboard/postgres/delete-postgres.tsx similarity index 100% rename from components/dashboard/postgres/delete-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/delete-postgres.tsx diff --git a/components/dashboard/postgres/environment/show-postgres-environment.tsx b/apps/dokploy/components/dashboard/postgres/environment/show-postgres-environment.tsx similarity index 100% rename from components/dashboard/postgres/environment/show-postgres-environment.tsx rename to apps/dokploy/components/dashboard/postgres/environment/show-postgres-environment.tsx diff --git a/components/dashboard/postgres/general/deploy-postgres.tsx b/apps/dokploy/components/dashboard/postgres/general/deploy-postgres.tsx similarity index 100% rename from components/dashboard/postgres/general/deploy-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/general/deploy-postgres.tsx diff --git a/components/dashboard/postgres/general/reset-postgres.tsx b/apps/dokploy/components/dashboard/postgres/general/reset-postgres.tsx similarity index 100% rename from components/dashboard/postgres/general/reset-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/general/reset-postgres.tsx diff --git a/components/dashboard/postgres/general/show-external-postgres-credentials.tsx b/apps/dokploy/components/dashboard/postgres/general/show-external-postgres-credentials.tsx similarity index 100% rename from components/dashboard/postgres/general/show-external-postgres-credentials.tsx rename to apps/dokploy/components/dashboard/postgres/general/show-external-postgres-credentials.tsx diff --git a/components/dashboard/postgres/general/show-general-postgres.tsx b/apps/dokploy/components/dashboard/postgres/general/show-general-postgres.tsx similarity index 100% rename from components/dashboard/postgres/general/show-general-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/general/show-general-postgres.tsx diff --git a/components/dashboard/postgres/general/show-internal-postgres-credentials.tsx b/apps/dokploy/components/dashboard/postgres/general/show-internal-postgres-credentials.tsx similarity index 100% rename from components/dashboard/postgres/general/show-internal-postgres-credentials.tsx rename to apps/dokploy/components/dashboard/postgres/general/show-internal-postgres-credentials.tsx diff --git a/components/dashboard/postgres/general/stop-postgres.tsx b/apps/dokploy/components/dashboard/postgres/general/stop-postgres.tsx similarity index 100% rename from components/dashboard/postgres/general/stop-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/general/stop-postgres.tsx diff --git a/components/dashboard/postgres/start-postgres.tsx b/apps/dokploy/components/dashboard/postgres/start-postgres.tsx similarity index 100% rename from components/dashboard/postgres/start-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/start-postgres.tsx diff --git a/components/dashboard/postgres/update-postgres.tsx b/apps/dokploy/components/dashboard/postgres/update-postgres.tsx similarity index 100% rename from components/dashboard/postgres/update-postgres.tsx rename to apps/dokploy/components/dashboard/postgres/update-postgres.tsx diff --git a/components/dashboard/postgres/volumes/show-volumes.tsx b/apps/dokploy/components/dashboard/postgres/volumes/show-volumes.tsx similarity index 100% rename from components/dashboard/postgres/volumes/show-volumes.tsx rename to apps/dokploy/components/dashboard/postgres/volumes/show-volumes.tsx diff --git a/components/dashboard/project/add-application.tsx b/apps/dokploy/components/dashboard/project/add-application.tsx similarity index 100% rename from components/dashboard/project/add-application.tsx rename to apps/dokploy/components/dashboard/project/add-application.tsx diff --git a/components/dashboard/project/add-compose.tsx b/apps/dokploy/components/dashboard/project/add-compose.tsx similarity index 100% rename from components/dashboard/project/add-compose.tsx rename to apps/dokploy/components/dashboard/project/add-compose.tsx diff --git a/components/dashboard/project/add-database.tsx b/apps/dokploy/components/dashboard/project/add-database.tsx similarity index 100% rename from components/dashboard/project/add-database.tsx rename to apps/dokploy/components/dashboard/project/add-database.tsx diff --git a/components/dashboard/project/add-template.tsx b/apps/dokploy/components/dashboard/project/add-template.tsx similarity index 100% rename from components/dashboard/project/add-template.tsx rename to apps/dokploy/components/dashboard/project/add-template.tsx diff --git a/components/dashboard/projects/add.tsx b/apps/dokploy/components/dashboard/projects/add.tsx similarity index 100% rename from components/dashboard/projects/add.tsx rename to apps/dokploy/components/dashboard/projects/add.tsx diff --git a/components/dashboard/projects/project.tsx b/apps/dokploy/components/dashboard/projects/project.tsx similarity index 100% rename from components/dashboard/projects/project.tsx rename to apps/dokploy/components/dashboard/projects/project.tsx diff --git a/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx similarity index 100% rename from components/dashboard/projects/show.tsx rename to apps/dokploy/components/dashboard/projects/show.tsx diff --git a/components/dashboard/projects/update.tsx b/apps/dokploy/components/dashboard/projects/update.tsx similarity index 100% rename from components/dashboard/projects/update.tsx rename to apps/dokploy/components/dashboard/projects/update.tsx diff --git a/components/dashboard/redis/advanced/show-redis-advanced-settings.tsx b/apps/dokploy/components/dashboard/redis/advanced/show-redis-advanced-settings.tsx similarity index 100% rename from components/dashboard/redis/advanced/show-redis-advanced-settings.tsx rename to apps/dokploy/components/dashboard/redis/advanced/show-redis-advanced-settings.tsx diff --git a/components/dashboard/redis/advanced/show-redis-resources.tsx b/apps/dokploy/components/dashboard/redis/advanced/show-redis-resources.tsx similarity index 100% rename from components/dashboard/redis/advanced/show-redis-resources.tsx rename to apps/dokploy/components/dashboard/redis/advanced/show-redis-resources.tsx diff --git a/components/dashboard/redis/delete-redis.tsx b/apps/dokploy/components/dashboard/redis/delete-redis.tsx similarity index 100% rename from components/dashboard/redis/delete-redis.tsx rename to apps/dokploy/components/dashboard/redis/delete-redis.tsx diff --git a/components/dashboard/redis/environment/show-redis-environment.tsx b/apps/dokploy/components/dashboard/redis/environment/show-redis-environment.tsx similarity index 100% rename from components/dashboard/redis/environment/show-redis-environment.tsx rename to apps/dokploy/components/dashboard/redis/environment/show-redis-environment.tsx diff --git a/components/dashboard/redis/general/deploy-redis.tsx b/apps/dokploy/components/dashboard/redis/general/deploy-redis.tsx similarity index 100% rename from components/dashboard/redis/general/deploy-redis.tsx rename to apps/dokploy/components/dashboard/redis/general/deploy-redis.tsx diff --git a/components/dashboard/redis/general/reset-redis.tsx b/apps/dokploy/components/dashboard/redis/general/reset-redis.tsx similarity index 100% rename from components/dashboard/redis/general/reset-redis.tsx rename to apps/dokploy/components/dashboard/redis/general/reset-redis.tsx diff --git a/components/dashboard/redis/general/show-external-redis-credentials.tsx b/apps/dokploy/components/dashboard/redis/general/show-external-redis-credentials.tsx similarity index 100% rename from components/dashboard/redis/general/show-external-redis-credentials.tsx rename to apps/dokploy/components/dashboard/redis/general/show-external-redis-credentials.tsx diff --git a/components/dashboard/redis/general/show-general-redis.tsx b/apps/dokploy/components/dashboard/redis/general/show-general-redis.tsx similarity index 100% rename from components/dashboard/redis/general/show-general-redis.tsx rename to apps/dokploy/components/dashboard/redis/general/show-general-redis.tsx diff --git a/components/dashboard/redis/general/show-internal-redis-credentials.tsx b/apps/dokploy/components/dashboard/redis/general/show-internal-redis-credentials.tsx similarity index 100% rename from components/dashboard/redis/general/show-internal-redis-credentials.tsx rename to apps/dokploy/components/dashboard/redis/general/show-internal-redis-credentials.tsx diff --git a/components/dashboard/redis/general/stop-redis.tsx b/apps/dokploy/components/dashboard/redis/general/stop-redis.tsx similarity index 100% rename from components/dashboard/redis/general/stop-redis.tsx rename to apps/dokploy/components/dashboard/redis/general/stop-redis.tsx diff --git a/components/dashboard/redis/start-redis.tsx b/apps/dokploy/components/dashboard/redis/start-redis.tsx similarity index 100% rename from components/dashboard/redis/start-redis.tsx rename to apps/dokploy/components/dashboard/redis/start-redis.tsx diff --git a/components/dashboard/redis/update-redis.tsx b/apps/dokploy/components/dashboard/redis/update-redis.tsx similarity index 100% rename from components/dashboard/redis/update-redis.tsx rename to apps/dokploy/components/dashboard/redis/update-redis.tsx diff --git a/components/dashboard/redis/volumes/show-volumes.tsx b/apps/dokploy/components/dashboard/redis/volumes/show-volumes.tsx similarity index 100% rename from components/dashboard/redis/volumes/show-volumes.tsx rename to apps/dokploy/components/dashboard/redis/volumes/show-volumes.tsx diff --git a/components/dashboard/settings/appearance-form.tsx b/apps/dokploy/components/dashboard/settings/appearance-form.tsx similarity index 100% rename from components/dashboard/settings/appearance-form.tsx rename to apps/dokploy/components/dashboard/settings/appearance-form.tsx diff --git a/components/dashboard/settings/certificates/add-certificate.tsx b/apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx similarity index 100% rename from components/dashboard/settings/certificates/add-certificate.tsx rename to apps/dokploy/components/dashboard/settings/certificates/add-certificate.tsx diff --git a/components/dashboard/settings/certificates/delete-certificate.tsx b/apps/dokploy/components/dashboard/settings/certificates/delete-certificate.tsx similarity index 100% rename from components/dashboard/settings/certificates/delete-certificate.tsx rename to apps/dokploy/components/dashboard/settings/certificates/delete-certificate.tsx diff --git a/components/dashboard/settings/certificates/show-certificates.tsx b/apps/dokploy/components/dashboard/settings/certificates/show-certificates.tsx similarity index 100% rename from components/dashboard/settings/certificates/show-certificates.tsx rename to apps/dokploy/components/dashboard/settings/certificates/show-certificates.tsx diff --git a/components/dashboard/settings/cluster/nodes/add-node.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx similarity index 100% rename from components/dashboard/settings/cluster/nodes/add-node.tsx rename to apps/dokploy/components/dashboard/settings/cluster/nodes/add-node.tsx diff --git a/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx similarity index 100% rename from components/dashboard/settings/cluster/nodes/manager/add-manager.tsx rename to apps/dokploy/components/dashboard/settings/cluster/nodes/manager/add-manager.tsx diff --git a/components/dashboard/settings/cluster/nodes/show-node-data.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-node-data.tsx similarity index 100% rename from components/dashboard/settings/cluster/nodes/show-node-data.tsx rename to apps/dokploy/components/dashboard/settings/cluster/nodes/show-node-data.tsx diff --git a/components/dashboard/settings/cluster/nodes/show-nodes.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes.tsx similarity index 100% rename from components/dashboard/settings/cluster/nodes/show-nodes.tsx rename to apps/dokploy/components/dashboard/settings/cluster/nodes/show-nodes.tsx diff --git a/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx similarity index 100% rename from components/dashboard/settings/cluster/nodes/workers/add-worker.tsx rename to apps/dokploy/components/dashboard/settings/cluster/nodes/workers/add-worker.tsx diff --git a/components/dashboard/settings/cluster/nodes/workers/delete-worker.tsx b/apps/dokploy/components/dashboard/settings/cluster/nodes/workers/delete-worker.tsx similarity index 100% rename from components/dashboard/settings/cluster/nodes/workers/delete-worker.tsx rename to apps/dokploy/components/dashboard/settings/cluster/nodes/workers/delete-worker.tsx diff --git a/components/dashboard/settings/cluster/registry/add-docker-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/add-docker-registry.tsx similarity index 100% rename from components/dashboard/settings/cluster/registry/add-docker-registry.tsx rename to apps/dokploy/components/dashboard/settings/cluster/registry/add-docker-registry.tsx diff --git a/components/dashboard/settings/cluster/registry/add-self-docker-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/add-self-docker-registry.tsx similarity index 100% rename from components/dashboard/settings/cluster/registry/add-self-docker-registry.tsx rename to apps/dokploy/components/dashboard/settings/cluster/registry/add-self-docker-registry.tsx diff --git a/components/dashboard/settings/cluster/registry/delete-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/delete-registry.tsx similarity index 100% rename from components/dashboard/settings/cluster/registry/delete-registry.tsx rename to apps/dokploy/components/dashboard/settings/cluster/registry/delete-registry.tsx diff --git a/components/dashboard/settings/cluster/registry/show-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/show-registry.tsx similarity index 100% rename from components/dashboard/settings/cluster/registry/show-registry.tsx rename to apps/dokploy/components/dashboard/settings/cluster/registry/show-registry.tsx diff --git a/components/dashboard/settings/cluster/registry/update-docker-registry.tsx b/apps/dokploy/components/dashboard/settings/cluster/registry/update-docker-registry.tsx similarity index 100% rename from components/dashboard/settings/cluster/registry/update-docker-registry.tsx rename to apps/dokploy/components/dashboard/settings/cluster/registry/update-docker-registry.tsx diff --git a/components/dashboard/settings/destination/add-destination.tsx b/apps/dokploy/components/dashboard/settings/destination/add-destination.tsx similarity index 100% rename from components/dashboard/settings/destination/add-destination.tsx rename to apps/dokploy/components/dashboard/settings/destination/add-destination.tsx diff --git a/components/dashboard/settings/destination/delete-destination.tsx b/apps/dokploy/components/dashboard/settings/destination/delete-destination.tsx similarity index 100% rename from components/dashboard/settings/destination/delete-destination.tsx rename to apps/dokploy/components/dashboard/settings/destination/delete-destination.tsx diff --git a/components/dashboard/settings/destination/show-destinations.tsx b/apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx similarity index 100% rename from components/dashboard/settings/destination/show-destinations.tsx rename to apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx diff --git a/components/dashboard/settings/destination/update-destination.tsx b/apps/dokploy/components/dashboard/settings/destination/update-destination.tsx similarity index 100% rename from components/dashboard/settings/destination/update-destination.tsx rename to apps/dokploy/components/dashboard/settings/destination/update-destination.tsx diff --git a/components/dashboard/settings/github/github-setup.tsx b/apps/dokploy/components/dashboard/settings/github/github-setup.tsx similarity index 100% rename from components/dashboard/settings/github/github-setup.tsx rename to apps/dokploy/components/dashboard/settings/github/github-setup.tsx diff --git a/components/dashboard/settings/github/remove-github-app.tsx b/apps/dokploy/components/dashboard/settings/github/remove-github-app.tsx similarity index 100% rename from components/dashboard/settings/github/remove-github-app.tsx rename to apps/dokploy/components/dashboard/settings/github/remove-github-app.tsx diff --git a/components/dashboard/settings/notifications/add-notification.tsx b/apps/dokploy/components/dashboard/settings/notifications/add-notification.tsx similarity index 100% rename from components/dashboard/settings/notifications/add-notification.tsx rename to apps/dokploy/components/dashboard/settings/notifications/add-notification.tsx diff --git a/components/dashboard/settings/notifications/delete-notification.tsx b/apps/dokploy/components/dashboard/settings/notifications/delete-notification.tsx similarity index 100% rename from components/dashboard/settings/notifications/delete-notification.tsx rename to apps/dokploy/components/dashboard/settings/notifications/delete-notification.tsx diff --git a/components/dashboard/settings/notifications/show-notifications.tsx b/apps/dokploy/components/dashboard/settings/notifications/show-notifications.tsx similarity index 100% rename from components/dashboard/settings/notifications/show-notifications.tsx rename to apps/dokploy/components/dashboard/settings/notifications/show-notifications.tsx diff --git a/components/dashboard/settings/notifications/update-notification.tsx b/apps/dokploy/components/dashboard/settings/notifications/update-notification.tsx similarity index 100% rename from components/dashboard/settings/notifications/update-notification.tsx rename to apps/dokploy/components/dashboard/settings/notifications/update-notification.tsx diff --git a/components/dashboard/settings/profile/disable-2fa.tsx b/apps/dokploy/components/dashboard/settings/profile/disable-2fa.tsx similarity index 100% rename from components/dashboard/settings/profile/disable-2fa.tsx rename to apps/dokploy/components/dashboard/settings/profile/disable-2fa.tsx diff --git a/components/dashboard/settings/profile/enable-2fa.tsx b/apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx similarity index 100% rename from components/dashboard/settings/profile/enable-2fa.tsx rename to apps/dokploy/components/dashboard/settings/profile/enable-2fa.tsx diff --git a/components/dashboard/settings/profile/generate-token.tsx b/apps/dokploy/components/dashboard/settings/profile/generate-token.tsx similarity index 100% rename from components/dashboard/settings/profile/generate-token.tsx rename to apps/dokploy/components/dashboard/settings/profile/generate-token.tsx diff --git a/components/dashboard/settings/profile/profile-form.tsx b/apps/dokploy/components/dashboard/settings/profile/profile-form.tsx similarity index 100% rename from components/dashboard/settings/profile/profile-form.tsx rename to apps/dokploy/components/dashboard/settings/profile/profile-form.tsx diff --git a/components/dashboard/settings/show.tsx b/apps/dokploy/components/dashboard/settings/show.tsx similarity index 100% rename from components/dashboard/settings/show.tsx rename to apps/dokploy/components/dashboard/settings/show.tsx diff --git a/components/dashboard/settings/ssh-keys/add-ssh-key.tsx b/apps/dokploy/components/dashboard/settings/ssh-keys/add-ssh-key.tsx similarity index 100% rename from components/dashboard/settings/ssh-keys/add-ssh-key.tsx rename to apps/dokploy/components/dashboard/settings/ssh-keys/add-ssh-key.tsx diff --git a/components/dashboard/settings/ssh-keys/delete-ssh-key.tsx b/apps/dokploy/components/dashboard/settings/ssh-keys/delete-ssh-key.tsx similarity index 100% rename from components/dashboard/settings/ssh-keys/delete-ssh-key.tsx rename to apps/dokploy/components/dashboard/settings/ssh-keys/delete-ssh-key.tsx diff --git a/components/dashboard/settings/ssh-keys/show-ssh-keys.tsx b/apps/dokploy/components/dashboard/settings/ssh-keys/show-ssh-keys.tsx similarity index 100% rename from components/dashboard/settings/ssh-keys/show-ssh-keys.tsx rename to apps/dokploy/components/dashboard/settings/ssh-keys/show-ssh-keys.tsx diff --git a/components/dashboard/settings/ssh-keys/update-ssh-key.tsx b/apps/dokploy/components/dashboard/settings/ssh-keys/update-ssh-key.tsx similarity index 100% rename from components/dashboard/settings/ssh-keys/update-ssh-key.tsx rename to apps/dokploy/components/dashboard/settings/ssh-keys/update-ssh-key.tsx diff --git a/components/dashboard/settings/users/add-permissions.tsx b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx similarity index 100% rename from components/dashboard/settings/users/add-permissions.tsx rename to apps/dokploy/components/dashboard/settings/users/add-permissions.tsx diff --git a/components/dashboard/settings/users/add-user.tsx b/apps/dokploy/components/dashboard/settings/users/add-user.tsx similarity index 100% rename from components/dashboard/settings/users/add-user.tsx rename to apps/dokploy/components/dashboard/settings/users/add-user.tsx diff --git a/components/dashboard/settings/users/delete-user.tsx b/apps/dokploy/components/dashboard/settings/users/delete-user.tsx similarity index 100% rename from components/dashboard/settings/users/delete-user.tsx rename to apps/dokploy/components/dashboard/settings/users/delete-user.tsx diff --git a/components/dashboard/settings/users/show-users.tsx b/apps/dokploy/components/dashboard/settings/users/show-users.tsx similarity index 100% rename from components/dashboard/settings/users/show-users.tsx rename to apps/dokploy/components/dashboard/settings/users/show-users.tsx diff --git a/components/dashboard/settings/users/update-user.tsx b/apps/dokploy/components/dashboard/settings/users/update-user.tsx similarity index 100% rename from components/dashboard/settings/users/update-user.tsx rename to apps/dokploy/components/dashboard/settings/users/update-user.tsx diff --git a/components/dashboard/settings/web-domain.tsx b/apps/dokploy/components/dashboard/settings/web-domain.tsx similarity index 100% rename from components/dashboard/settings/web-domain.tsx rename to apps/dokploy/components/dashboard/settings/web-domain.tsx diff --git a/components/dashboard/settings/web-server.tsx b/apps/dokploy/components/dashboard/settings/web-server.tsx similarity index 100% rename from components/dashboard/settings/web-server.tsx rename to apps/dokploy/components/dashboard/settings/web-server.tsx diff --git a/components/dashboard/settings/web-server/docker-terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/docker-terminal-modal.tsx similarity index 100% rename from components/dashboard/settings/web-server/docker-terminal-modal.tsx rename to apps/dokploy/components/dashboard/settings/web-server/docker-terminal-modal.tsx diff --git a/components/dashboard/settings/web-server/remove-ssh-private-key.tsx b/apps/dokploy/components/dashboard/settings/web-server/remove-ssh-private-key.tsx similarity index 100% rename from components/dashboard/settings/web-server/remove-ssh-private-key.tsx rename to apps/dokploy/components/dashboard/settings/web-server/remove-ssh-private-key.tsx diff --git a/components/dashboard/settings/web-server/show-main-traefik-config.tsx b/apps/dokploy/components/dashboard/settings/web-server/show-main-traefik-config.tsx similarity index 100% rename from components/dashboard/settings/web-server/show-main-traefik-config.tsx rename to apps/dokploy/components/dashboard/settings/web-server/show-main-traefik-config.tsx diff --git a/components/dashboard/settings/web-server/show-modal-logs.tsx b/apps/dokploy/components/dashboard/settings/web-server/show-modal-logs.tsx similarity index 100% rename from components/dashboard/settings/web-server/show-modal-logs.tsx rename to apps/dokploy/components/dashboard/settings/web-server/show-modal-logs.tsx diff --git a/components/dashboard/settings/web-server/show-server-middleware-config.tsx b/apps/dokploy/components/dashboard/settings/web-server/show-server-middleware-config.tsx similarity index 100% rename from components/dashboard/settings/web-server/show-server-middleware-config.tsx rename to apps/dokploy/components/dashboard/settings/web-server/show-server-middleware-config.tsx diff --git a/components/dashboard/settings/web-server/show-server-traefik-config.tsx b/apps/dokploy/components/dashboard/settings/web-server/show-server-traefik-config.tsx similarity index 100% rename from components/dashboard/settings/web-server/show-server-traefik-config.tsx rename to apps/dokploy/components/dashboard/settings/web-server/show-server-traefik-config.tsx diff --git a/components/dashboard/settings/web-server/terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx similarity index 100% rename from components/dashboard/settings/web-server/terminal-modal.tsx rename to apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx diff --git a/components/dashboard/settings/web-server/terminal.tsx b/apps/dokploy/components/dashboard/settings/web-server/terminal.tsx similarity index 100% rename from components/dashboard/settings/web-server/terminal.tsx rename to apps/dokploy/components/dashboard/settings/web-server/terminal.tsx diff --git a/components/dashboard/settings/web-server/update-server.tsx b/apps/dokploy/components/dashboard/settings/web-server/update-server.tsx similarity index 100% rename from components/dashboard/settings/web-server/update-server.tsx rename to apps/dokploy/components/dashboard/settings/web-server/update-server.tsx diff --git a/components/dashboard/settings/web-server/update-webserver.tsx b/apps/dokploy/components/dashboard/settings/web-server/update-webserver.tsx similarity index 100% rename from components/dashboard/settings/web-server/update-webserver.tsx rename to apps/dokploy/components/dashboard/settings/web-server/update-webserver.tsx diff --git a/components/icons/data-tools-icons.tsx b/apps/dokploy/components/icons/data-tools-icons.tsx similarity index 100% rename from components/icons/data-tools-icons.tsx rename to apps/dokploy/components/icons/data-tools-icons.tsx diff --git a/components/icons/notification-icons.tsx b/apps/dokploy/components/icons/notification-icons.tsx similarity index 100% rename from components/icons/notification-icons.tsx rename to apps/dokploy/components/icons/notification-icons.tsx diff --git a/components/layouts/dashboard-layout.tsx b/apps/dokploy/components/layouts/dashboard-layout.tsx similarity index 100% rename from components/layouts/dashboard-layout.tsx rename to apps/dokploy/components/layouts/dashboard-layout.tsx diff --git a/components/layouts/navbar.tsx b/apps/dokploy/components/layouts/navbar.tsx similarity index 100% rename from components/layouts/navbar.tsx rename to apps/dokploy/components/layouts/navbar.tsx diff --git a/components/layouts/navigation-tabs.tsx b/apps/dokploy/components/layouts/navigation-tabs.tsx similarity index 100% rename from components/layouts/navigation-tabs.tsx rename to apps/dokploy/components/layouts/navigation-tabs.tsx diff --git a/components/layouts/onboarding-layout.tsx b/apps/dokploy/components/layouts/onboarding-layout.tsx similarity index 100% rename from components/layouts/onboarding-layout.tsx rename to apps/dokploy/components/layouts/onboarding-layout.tsx diff --git a/components/layouts/project-layout.tsx b/apps/dokploy/components/layouts/project-layout.tsx similarity index 100% rename from components/layouts/project-layout.tsx rename to apps/dokploy/components/layouts/project-layout.tsx diff --git a/components/layouts/service-layout.tsx b/apps/dokploy/components/layouts/service-layout.tsx similarity index 100% rename from components/layouts/service-layout.tsx rename to apps/dokploy/components/layouts/service-layout.tsx diff --git a/components/layouts/settings-layout.tsx b/apps/dokploy/components/layouts/settings-layout.tsx similarity index 100% rename from components/layouts/settings-layout.tsx rename to apps/dokploy/components/layouts/settings-layout.tsx diff --git a/components/shared/alert-block.tsx b/apps/dokploy/components/shared/alert-block.tsx similarity index 100% rename from components/shared/alert-block.tsx rename to apps/dokploy/components/shared/alert-block.tsx diff --git a/components/shared/code-editor.tsx b/apps/dokploy/components/shared/code-editor.tsx similarity index 100% rename from components/shared/code-editor.tsx rename to apps/dokploy/components/shared/code-editor.tsx diff --git a/components/shared/date-tooltip.tsx b/apps/dokploy/components/shared/date-tooltip.tsx similarity index 100% rename from components/shared/date-tooltip.tsx rename to apps/dokploy/components/shared/date-tooltip.tsx diff --git a/components/shared/logo.tsx b/apps/dokploy/components/shared/logo.tsx similarity index 100% rename from components/shared/logo.tsx rename to apps/dokploy/components/shared/logo.tsx diff --git a/components/shared/status-tooltip.tsx b/apps/dokploy/components/shared/status-tooltip.tsx similarity index 100% rename from components/shared/status-tooltip.tsx rename to apps/dokploy/components/shared/status-tooltip.tsx diff --git a/components/shared/toggle-visibility-input.tsx b/apps/dokploy/components/shared/toggle-visibility-input.tsx similarity index 100% rename from components/shared/toggle-visibility-input.tsx rename to apps/dokploy/components/shared/toggle-visibility-input.tsx diff --git a/components/support/show-support.tsx b/apps/dokploy/components/support/show-support.tsx similarity index 100% rename from components/support/show-support.tsx rename to apps/dokploy/components/support/show-support.tsx diff --git a/components/ui/accordion.tsx b/apps/dokploy/components/ui/accordion.tsx similarity index 100% rename from components/ui/accordion.tsx rename to apps/dokploy/components/ui/accordion.tsx diff --git a/components/ui/alert-dialog.tsx b/apps/dokploy/components/ui/alert-dialog.tsx similarity index 100% rename from components/ui/alert-dialog.tsx rename to apps/dokploy/components/ui/alert-dialog.tsx diff --git a/components/ui/alert.tsx b/apps/dokploy/components/ui/alert.tsx similarity index 100% rename from components/ui/alert.tsx rename to apps/dokploy/components/ui/alert.tsx diff --git a/components/ui/avatar.tsx b/apps/dokploy/components/ui/avatar.tsx similarity index 100% rename from components/ui/avatar.tsx rename to apps/dokploy/components/ui/avatar.tsx diff --git a/components/ui/badge.tsx b/apps/dokploy/components/ui/badge.tsx similarity index 100% rename from components/ui/badge.tsx rename to apps/dokploy/components/ui/badge.tsx diff --git a/components/ui/breadcrumb.tsx b/apps/dokploy/components/ui/breadcrumb.tsx similarity index 100% rename from components/ui/breadcrumb.tsx rename to apps/dokploy/components/ui/breadcrumb.tsx diff --git a/components/ui/button.tsx b/apps/dokploy/components/ui/button.tsx similarity index 100% rename from components/ui/button.tsx rename to apps/dokploy/components/ui/button.tsx diff --git a/components/ui/card.tsx b/apps/dokploy/components/ui/card.tsx similarity index 100% rename from components/ui/card.tsx rename to apps/dokploy/components/ui/card.tsx diff --git a/components/ui/checkbox.tsx b/apps/dokploy/components/ui/checkbox.tsx similarity index 100% rename from components/ui/checkbox.tsx rename to apps/dokploy/components/ui/checkbox.tsx diff --git a/components/ui/command.tsx b/apps/dokploy/components/ui/command.tsx similarity index 100% rename from components/ui/command.tsx rename to apps/dokploy/components/ui/command.tsx diff --git a/components/ui/dialog.tsx b/apps/dokploy/components/ui/dialog.tsx similarity index 100% rename from components/ui/dialog.tsx rename to apps/dokploy/components/ui/dialog.tsx diff --git a/components/ui/dropdown-menu.tsx b/apps/dokploy/components/ui/dropdown-menu.tsx similarity index 100% rename from components/ui/dropdown-menu.tsx rename to apps/dokploy/components/ui/dropdown-menu.tsx diff --git a/components/ui/dropzone.tsx b/apps/dokploy/components/ui/dropzone.tsx similarity index 100% rename from components/ui/dropzone.tsx rename to apps/dokploy/components/ui/dropzone.tsx diff --git a/components/ui/file-tree.tsx b/apps/dokploy/components/ui/file-tree.tsx similarity index 100% rename from components/ui/file-tree.tsx rename to apps/dokploy/components/ui/file-tree.tsx diff --git a/components/ui/form.tsx b/apps/dokploy/components/ui/form.tsx similarity index 100% rename from components/ui/form.tsx rename to apps/dokploy/components/ui/form.tsx diff --git a/components/ui/input-otp.tsx b/apps/dokploy/components/ui/input-otp.tsx similarity index 100% rename from components/ui/input-otp.tsx rename to apps/dokploy/components/ui/input-otp.tsx diff --git a/components/ui/input.tsx b/apps/dokploy/components/ui/input.tsx similarity index 100% rename from components/ui/input.tsx rename to apps/dokploy/components/ui/input.tsx diff --git a/components/ui/label.tsx b/apps/dokploy/components/ui/label.tsx similarity index 100% rename from components/ui/label.tsx rename to apps/dokploy/components/ui/label.tsx diff --git a/components/ui/popover.tsx b/apps/dokploy/components/ui/popover.tsx similarity index 100% rename from components/ui/popover.tsx rename to apps/dokploy/components/ui/popover.tsx diff --git a/components/ui/progress.tsx b/apps/dokploy/components/ui/progress.tsx similarity index 100% rename from components/ui/progress.tsx rename to apps/dokploy/components/ui/progress.tsx diff --git a/components/ui/radio-group.tsx b/apps/dokploy/components/ui/radio-group.tsx similarity index 100% rename from components/ui/radio-group.tsx rename to apps/dokploy/components/ui/radio-group.tsx diff --git a/components/ui/scroll-area.tsx b/apps/dokploy/components/ui/scroll-area.tsx similarity index 100% rename from components/ui/scroll-area.tsx rename to apps/dokploy/components/ui/scroll-area.tsx diff --git a/components/ui/secrets.tsx b/apps/dokploy/components/ui/secrets.tsx similarity index 100% rename from components/ui/secrets.tsx rename to apps/dokploy/components/ui/secrets.tsx diff --git a/components/ui/select.tsx b/apps/dokploy/components/ui/select.tsx similarity index 100% rename from components/ui/select.tsx rename to apps/dokploy/components/ui/select.tsx diff --git a/components/ui/separator.tsx b/apps/dokploy/components/ui/separator.tsx similarity index 100% rename from components/ui/separator.tsx rename to apps/dokploy/components/ui/separator.tsx diff --git a/components/ui/sheet.tsx b/apps/dokploy/components/ui/sheet.tsx similarity index 100% rename from components/ui/sheet.tsx rename to apps/dokploy/components/ui/sheet.tsx diff --git a/components/ui/sonner.tsx b/apps/dokploy/components/ui/sonner.tsx similarity index 100% rename from components/ui/sonner.tsx rename to apps/dokploy/components/ui/sonner.tsx diff --git a/components/ui/switch.tsx b/apps/dokploy/components/ui/switch.tsx similarity index 100% rename from components/ui/switch.tsx rename to apps/dokploy/components/ui/switch.tsx diff --git a/components/ui/table.tsx b/apps/dokploy/components/ui/table.tsx similarity index 100% rename from components/ui/table.tsx rename to apps/dokploy/components/ui/table.tsx diff --git a/components/ui/tabs.tsx b/apps/dokploy/components/ui/tabs.tsx similarity index 100% rename from components/ui/tabs.tsx rename to apps/dokploy/components/ui/tabs.tsx diff --git a/components/ui/textarea.tsx b/apps/dokploy/components/ui/textarea.tsx similarity index 100% rename from components/ui/textarea.tsx rename to apps/dokploy/components/ui/textarea.tsx diff --git a/components/ui/toggle.tsx b/apps/dokploy/components/ui/toggle.tsx similarity index 100% rename from components/ui/toggle.tsx rename to apps/dokploy/components/ui/toggle.tsx diff --git a/components/ui/tooltip.tsx b/apps/dokploy/components/ui/tooltip.tsx similarity index 100% rename from components/ui/tooltip.tsx rename to apps/dokploy/components/ui/tooltip.tsx diff --git a/docker/build.sh b/apps/dokploy/docker/build.sh similarity index 100% rename from docker/build.sh rename to apps/dokploy/docker/build.sh diff --git a/docker/feat.sh b/apps/dokploy/docker/feat.sh similarity index 100% rename from docker/feat.sh rename to apps/dokploy/docker/feat.sh diff --git a/docker/push.sh b/apps/dokploy/docker/push.sh similarity index 100% rename from docker/push.sh rename to apps/dokploy/docker/push.sh diff --git a/drizzle/0000_reflective_puck.sql b/apps/dokploy/drizzle/0000_reflective_puck.sql similarity index 100% rename from drizzle/0000_reflective_puck.sql rename to apps/dokploy/drizzle/0000_reflective_puck.sql diff --git a/drizzle/0001_striped_tattoo.sql b/apps/dokploy/drizzle/0001_striped_tattoo.sql similarity index 100% rename from drizzle/0001_striped_tattoo.sql rename to apps/dokploy/drizzle/0001_striped_tattoo.sql diff --git a/drizzle/0002_ambiguous_carlie_cooper.sql b/apps/dokploy/drizzle/0002_ambiguous_carlie_cooper.sql similarity index 100% rename from drizzle/0002_ambiguous_carlie_cooper.sql rename to apps/dokploy/drizzle/0002_ambiguous_carlie_cooper.sql diff --git a/drizzle/0003_square_lightspeed.sql b/apps/dokploy/drizzle/0003_square_lightspeed.sql similarity index 100% rename from drizzle/0003_square_lightspeed.sql rename to apps/dokploy/drizzle/0003_square_lightspeed.sql diff --git a/drizzle/0004_nice_tenebrous.sql b/apps/dokploy/drizzle/0004_nice_tenebrous.sql similarity index 100% rename from drizzle/0004_nice_tenebrous.sql rename to apps/dokploy/drizzle/0004_nice_tenebrous.sql diff --git a/drizzle/0005_cute_terror.sql b/apps/dokploy/drizzle/0005_cute_terror.sql similarity index 100% rename from drizzle/0005_cute_terror.sql rename to apps/dokploy/drizzle/0005_cute_terror.sql diff --git a/drizzle/0006_oval_jimmy_woo.sql b/apps/dokploy/drizzle/0006_oval_jimmy_woo.sql similarity index 100% rename from drizzle/0006_oval_jimmy_woo.sql rename to apps/dokploy/drizzle/0006_oval_jimmy_woo.sql diff --git a/drizzle/0007_cute_guardsmen.sql b/apps/dokploy/drizzle/0007_cute_guardsmen.sql similarity index 100% rename from drizzle/0007_cute_guardsmen.sql rename to apps/dokploy/drizzle/0007_cute_guardsmen.sql diff --git a/drizzle/0008_lazy_sage.sql b/apps/dokploy/drizzle/0008_lazy_sage.sql similarity index 100% rename from drizzle/0008_lazy_sage.sql rename to apps/dokploy/drizzle/0008_lazy_sage.sql diff --git a/drizzle/0009_majestic_spencer_smythe.sql b/apps/dokploy/drizzle/0009_majestic_spencer_smythe.sql similarity index 100% rename from drizzle/0009_majestic_spencer_smythe.sql rename to apps/dokploy/drizzle/0009_majestic_spencer_smythe.sql diff --git a/drizzle/0010_lean_black_widow.sql b/apps/dokploy/drizzle/0010_lean_black_widow.sql similarity index 100% rename from drizzle/0010_lean_black_widow.sql rename to apps/dokploy/drizzle/0010_lean_black_widow.sql diff --git a/drizzle/0011_petite_calypso.sql b/apps/dokploy/drizzle/0011_petite_calypso.sql similarity index 100% rename from drizzle/0011_petite_calypso.sql rename to apps/dokploy/drizzle/0011_petite_calypso.sql diff --git a/drizzle/0012_chubby_umar.sql b/apps/dokploy/drizzle/0012_chubby_umar.sql similarity index 100% rename from drizzle/0012_chubby_umar.sql rename to apps/dokploy/drizzle/0012_chubby_umar.sql diff --git a/drizzle/0013_blushing_starjammers.sql b/apps/dokploy/drizzle/0013_blushing_starjammers.sql similarity index 100% rename from drizzle/0013_blushing_starjammers.sql rename to apps/dokploy/drizzle/0013_blushing_starjammers.sql diff --git a/drizzle/0014_same_hammerhead.sql b/apps/dokploy/drizzle/0014_same_hammerhead.sql similarity index 100% rename from drizzle/0014_same_hammerhead.sql rename to apps/dokploy/drizzle/0014_same_hammerhead.sql diff --git a/drizzle/0015_fearless_callisto.sql b/apps/dokploy/drizzle/0015_fearless_callisto.sql similarity index 100% rename from drizzle/0015_fearless_callisto.sql rename to apps/dokploy/drizzle/0015_fearless_callisto.sql diff --git a/drizzle/0016_chunky_leopardon.sql b/apps/dokploy/drizzle/0016_chunky_leopardon.sql similarity index 100% rename from drizzle/0016_chunky_leopardon.sql rename to apps/dokploy/drizzle/0016_chunky_leopardon.sql diff --git a/drizzle/0017_minor_post.sql b/apps/dokploy/drizzle/0017_minor_post.sql similarity index 100% rename from drizzle/0017_minor_post.sql rename to apps/dokploy/drizzle/0017_minor_post.sql diff --git a/drizzle/0018_careful_killmonger.sql b/apps/dokploy/drizzle/0018_careful_killmonger.sql similarity index 100% rename from drizzle/0018_careful_killmonger.sql rename to apps/dokploy/drizzle/0018_careful_killmonger.sql diff --git a/drizzle/0019_heavy_freak.sql b/apps/dokploy/drizzle/0019_heavy_freak.sql similarity index 100% rename from drizzle/0019_heavy_freak.sql rename to apps/dokploy/drizzle/0019_heavy_freak.sql diff --git a/drizzle/0020_fantastic_slapstick.sql b/apps/dokploy/drizzle/0020_fantastic_slapstick.sql similarity index 100% rename from drizzle/0020_fantastic_slapstick.sql rename to apps/dokploy/drizzle/0020_fantastic_slapstick.sql diff --git a/drizzle/0021_premium_sebastian_shaw.sql b/apps/dokploy/drizzle/0021_premium_sebastian_shaw.sql similarity index 100% rename from drizzle/0021_premium_sebastian_shaw.sql rename to apps/dokploy/drizzle/0021_premium_sebastian_shaw.sql diff --git a/drizzle/0022_warm_colonel_america.sql b/apps/dokploy/drizzle/0022_warm_colonel_america.sql similarity index 100% rename from drizzle/0022_warm_colonel_america.sql rename to apps/dokploy/drizzle/0022_warm_colonel_america.sql diff --git a/drizzle/0023_icy_maverick.sql b/apps/dokploy/drizzle/0023_icy_maverick.sql similarity index 100% rename from drizzle/0023_icy_maverick.sql rename to apps/dokploy/drizzle/0023_icy_maverick.sql diff --git a/drizzle/0024_dapper_supernaut.sql b/apps/dokploy/drizzle/0024_dapper_supernaut.sql similarity index 100% rename from drizzle/0024_dapper_supernaut.sql rename to apps/dokploy/drizzle/0024_dapper_supernaut.sql diff --git a/drizzle/0025_lying_mephisto.sql b/apps/dokploy/drizzle/0025_lying_mephisto.sql similarity index 100% rename from drizzle/0025_lying_mephisto.sql rename to apps/dokploy/drizzle/0025_lying_mephisto.sql diff --git a/drizzle/0026_known_dormammu.sql b/apps/dokploy/drizzle/0026_known_dormammu.sql similarity index 100% rename from drizzle/0026_known_dormammu.sql rename to apps/dokploy/drizzle/0026_known_dormammu.sql diff --git a/drizzle/meta/0000_snapshot.json b/apps/dokploy/drizzle/meta/0000_snapshot.json similarity index 100% rename from drizzle/meta/0000_snapshot.json rename to apps/dokploy/drizzle/meta/0000_snapshot.json diff --git a/drizzle/meta/0001_snapshot.json b/apps/dokploy/drizzle/meta/0001_snapshot.json similarity index 100% rename from drizzle/meta/0001_snapshot.json rename to apps/dokploy/drizzle/meta/0001_snapshot.json diff --git a/drizzle/meta/0002_snapshot.json b/apps/dokploy/drizzle/meta/0002_snapshot.json similarity index 100% rename from drizzle/meta/0002_snapshot.json rename to apps/dokploy/drizzle/meta/0002_snapshot.json diff --git a/drizzle/meta/0003_snapshot.json b/apps/dokploy/drizzle/meta/0003_snapshot.json similarity index 100% rename from drizzle/meta/0003_snapshot.json rename to apps/dokploy/drizzle/meta/0003_snapshot.json diff --git a/drizzle/meta/0004_snapshot.json b/apps/dokploy/drizzle/meta/0004_snapshot.json similarity index 100% rename from drizzle/meta/0004_snapshot.json rename to apps/dokploy/drizzle/meta/0004_snapshot.json diff --git a/drizzle/meta/0005_snapshot.json b/apps/dokploy/drizzle/meta/0005_snapshot.json similarity index 100% rename from drizzle/meta/0005_snapshot.json rename to apps/dokploy/drizzle/meta/0005_snapshot.json diff --git a/drizzle/meta/0006_snapshot.json b/apps/dokploy/drizzle/meta/0006_snapshot.json similarity index 100% rename from drizzle/meta/0006_snapshot.json rename to apps/dokploy/drizzle/meta/0006_snapshot.json diff --git a/drizzle/meta/0007_snapshot.json b/apps/dokploy/drizzle/meta/0007_snapshot.json similarity index 100% rename from drizzle/meta/0007_snapshot.json rename to apps/dokploy/drizzle/meta/0007_snapshot.json diff --git a/drizzle/meta/0008_snapshot.json b/apps/dokploy/drizzle/meta/0008_snapshot.json similarity index 100% rename from drizzle/meta/0008_snapshot.json rename to apps/dokploy/drizzle/meta/0008_snapshot.json diff --git a/drizzle/meta/0009_snapshot.json b/apps/dokploy/drizzle/meta/0009_snapshot.json similarity index 100% rename from drizzle/meta/0009_snapshot.json rename to apps/dokploy/drizzle/meta/0009_snapshot.json diff --git a/drizzle/meta/0010_snapshot.json b/apps/dokploy/drizzle/meta/0010_snapshot.json similarity index 100% rename from drizzle/meta/0010_snapshot.json rename to apps/dokploy/drizzle/meta/0010_snapshot.json diff --git a/drizzle/meta/0011_snapshot.json b/apps/dokploy/drizzle/meta/0011_snapshot.json similarity index 100% rename from drizzle/meta/0011_snapshot.json rename to apps/dokploy/drizzle/meta/0011_snapshot.json diff --git a/drizzle/meta/0012_snapshot.json b/apps/dokploy/drizzle/meta/0012_snapshot.json similarity index 100% rename from drizzle/meta/0012_snapshot.json rename to apps/dokploy/drizzle/meta/0012_snapshot.json diff --git a/drizzle/meta/0013_snapshot.json b/apps/dokploy/drizzle/meta/0013_snapshot.json similarity index 100% rename from drizzle/meta/0013_snapshot.json rename to apps/dokploy/drizzle/meta/0013_snapshot.json diff --git a/drizzle/meta/0014_snapshot.json b/apps/dokploy/drizzle/meta/0014_snapshot.json similarity index 100% rename from drizzle/meta/0014_snapshot.json rename to apps/dokploy/drizzle/meta/0014_snapshot.json diff --git a/drizzle/meta/0015_snapshot.json b/apps/dokploy/drizzle/meta/0015_snapshot.json similarity index 100% rename from drizzle/meta/0015_snapshot.json rename to apps/dokploy/drizzle/meta/0015_snapshot.json diff --git a/drizzle/meta/0016_snapshot.json b/apps/dokploy/drizzle/meta/0016_snapshot.json similarity index 100% rename from drizzle/meta/0016_snapshot.json rename to apps/dokploy/drizzle/meta/0016_snapshot.json diff --git a/drizzle/meta/0017_snapshot.json b/apps/dokploy/drizzle/meta/0017_snapshot.json similarity index 100% rename from drizzle/meta/0017_snapshot.json rename to apps/dokploy/drizzle/meta/0017_snapshot.json diff --git a/drizzle/meta/0018_snapshot.json b/apps/dokploy/drizzle/meta/0018_snapshot.json similarity index 100% rename from drizzle/meta/0018_snapshot.json rename to apps/dokploy/drizzle/meta/0018_snapshot.json diff --git a/drizzle/meta/0019_snapshot.json b/apps/dokploy/drizzle/meta/0019_snapshot.json similarity index 100% rename from drizzle/meta/0019_snapshot.json rename to apps/dokploy/drizzle/meta/0019_snapshot.json diff --git a/drizzle/meta/0020_snapshot.json b/apps/dokploy/drizzle/meta/0020_snapshot.json similarity index 100% rename from drizzle/meta/0020_snapshot.json rename to apps/dokploy/drizzle/meta/0020_snapshot.json diff --git a/drizzle/meta/0021_snapshot.json b/apps/dokploy/drizzle/meta/0021_snapshot.json similarity index 100% rename from drizzle/meta/0021_snapshot.json rename to apps/dokploy/drizzle/meta/0021_snapshot.json diff --git a/drizzle/meta/0022_snapshot.json b/apps/dokploy/drizzle/meta/0022_snapshot.json similarity index 100% rename from drizzle/meta/0022_snapshot.json rename to apps/dokploy/drizzle/meta/0022_snapshot.json diff --git a/drizzle/meta/0023_snapshot.json b/apps/dokploy/drizzle/meta/0023_snapshot.json similarity index 100% rename from drizzle/meta/0023_snapshot.json rename to apps/dokploy/drizzle/meta/0023_snapshot.json diff --git a/drizzle/meta/0024_snapshot.json b/apps/dokploy/drizzle/meta/0024_snapshot.json similarity index 100% rename from drizzle/meta/0024_snapshot.json rename to apps/dokploy/drizzle/meta/0024_snapshot.json diff --git a/drizzle/meta/0025_snapshot.json b/apps/dokploy/drizzle/meta/0025_snapshot.json similarity index 100% rename from drizzle/meta/0025_snapshot.json rename to apps/dokploy/drizzle/meta/0025_snapshot.json diff --git a/drizzle/meta/0026_snapshot.json b/apps/dokploy/drizzle/meta/0026_snapshot.json similarity index 100% rename from drizzle/meta/0026_snapshot.json rename to apps/dokploy/drizzle/meta/0026_snapshot.json diff --git a/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json similarity index 100% rename from drizzle/meta/_journal.json rename to apps/dokploy/drizzle/meta/_journal.json diff --git a/emails/.gitignore b/apps/dokploy/emails/.gitignore similarity index 100% rename from emails/.gitignore rename to apps/dokploy/emails/.gitignore diff --git a/emails/emails/build-failed.tsx b/apps/dokploy/emails/emails/build-failed.tsx similarity index 100% rename from emails/emails/build-failed.tsx rename to apps/dokploy/emails/emails/build-failed.tsx diff --git a/emails/emails/build-success.tsx b/apps/dokploy/emails/emails/build-success.tsx similarity index 100% rename from emails/emails/build-success.tsx rename to apps/dokploy/emails/emails/build-success.tsx diff --git a/emails/emails/database-backup.tsx b/apps/dokploy/emails/emails/database-backup.tsx similarity index 100% rename from emails/emails/database-backup.tsx rename to apps/dokploy/emails/emails/database-backup.tsx diff --git a/emails/emails/docker-cleanup.tsx b/apps/dokploy/emails/emails/docker-cleanup.tsx similarity index 100% rename from emails/emails/docker-cleanup.tsx rename to apps/dokploy/emails/emails/docker-cleanup.tsx diff --git a/emails/emails/dokploy-restart.tsx b/apps/dokploy/emails/emails/dokploy-restart.tsx similarity index 100% rename from emails/emails/dokploy-restart.tsx rename to apps/dokploy/emails/emails/dokploy-restart.tsx diff --git a/emails/emails/invitation.tsx b/apps/dokploy/emails/emails/invitation.tsx similarity index 100% rename from emails/emails/invitation.tsx rename to apps/dokploy/emails/emails/invitation.tsx diff --git a/emails/emails/notion-magic-link.tsx b/apps/dokploy/emails/emails/notion-magic-link.tsx similarity index 100% rename from emails/emails/notion-magic-link.tsx rename to apps/dokploy/emails/emails/notion-magic-link.tsx diff --git a/emails/emails/plaid-verify-identity.tsx b/apps/dokploy/emails/emails/plaid-verify-identity.tsx similarity index 100% rename from emails/emails/plaid-verify-identity.tsx rename to apps/dokploy/emails/emails/plaid-verify-identity.tsx diff --git a/emails/emails/static/logo.png b/apps/dokploy/emails/emails/static/logo.png similarity index 100% rename from emails/emails/static/logo.png rename to apps/dokploy/emails/emails/static/logo.png diff --git a/emails/emails/static/notion-logo.png b/apps/dokploy/emails/emails/static/notion-logo.png similarity index 100% rename from emails/emails/static/notion-logo.png rename to apps/dokploy/emails/emails/static/notion-logo.png diff --git a/emails/emails/static/plaid-logo.png b/apps/dokploy/emails/emails/static/plaid-logo.png similarity index 100% rename from emails/emails/static/plaid-logo.png rename to apps/dokploy/emails/emails/static/plaid-logo.png diff --git a/emails/emails/static/plaid.png b/apps/dokploy/emails/emails/static/plaid.png similarity index 100% rename from emails/emails/static/plaid.png rename to apps/dokploy/emails/emails/static/plaid.png diff --git a/emails/emails/static/stripe-logo.png b/apps/dokploy/emails/emails/static/stripe-logo.png similarity index 100% rename from emails/emails/static/stripe-logo.png rename to apps/dokploy/emails/emails/static/stripe-logo.png diff --git a/emails/emails/static/vercel-arrow.png b/apps/dokploy/emails/emails/static/vercel-arrow.png similarity index 100% rename from emails/emails/static/vercel-arrow.png rename to apps/dokploy/emails/emails/static/vercel-arrow.png diff --git a/emails/emails/static/vercel-logo.png b/apps/dokploy/emails/emails/static/vercel-logo.png similarity index 100% rename from emails/emails/static/vercel-logo.png rename to apps/dokploy/emails/emails/static/vercel-logo.png diff --git a/emails/emails/static/vercel-team.png b/apps/dokploy/emails/emails/static/vercel-team.png similarity index 100% rename from emails/emails/static/vercel-team.png rename to apps/dokploy/emails/emails/static/vercel-team.png diff --git a/emails/emails/static/vercel-user.png b/apps/dokploy/emails/emails/static/vercel-user.png similarity index 100% rename from emails/emails/static/vercel-user.png rename to apps/dokploy/emails/emails/static/vercel-user.png diff --git a/emails/emails/stripe-welcome.tsx b/apps/dokploy/emails/emails/stripe-welcome.tsx similarity index 100% rename from emails/emails/stripe-welcome.tsx rename to apps/dokploy/emails/emails/stripe-welcome.tsx diff --git a/emails/emails/vercel-invite-user.tsx b/apps/dokploy/emails/emails/vercel-invite-user.tsx similarity index 100% rename from emails/emails/vercel-invite-user.tsx rename to apps/dokploy/emails/emails/vercel-invite-user.tsx diff --git a/emails/package.json b/apps/dokploy/emails/package.json similarity index 100% rename from emails/package.json rename to apps/dokploy/emails/package.json diff --git a/emails/pnpm-lock.yaml b/apps/dokploy/emails/pnpm-lock.yaml similarity index 100% rename from emails/pnpm-lock.yaml rename to apps/dokploy/emails/pnpm-lock.yaml diff --git a/emails/readme.md b/apps/dokploy/emails/readme.md similarity index 100% rename from emails/readme.md rename to apps/dokploy/emails/readme.md diff --git a/esbuild.config.ts b/apps/dokploy/esbuild.config.ts similarity index 100% rename from esbuild.config.ts rename to apps/dokploy/esbuild.config.ts diff --git a/lib/slug.ts b/apps/dokploy/lib/slug.ts similarity index 100% rename from lib/slug.ts rename to apps/dokploy/lib/slug.ts diff --git a/lib/utils.ts b/apps/dokploy/lib/utils.ts similarity index 100% rename from lib/utils.ts rename to apps/dokploy/lib/utils.ts diff --git a/logo.png b/apps/dokploy/logo.png similarity index 100% rename from logo.png rename to apps/dokploy/logo.png diff --git a/middleware.ts b/apps/dokploy/middleware.ts similarity index 100% rename from middleware.ts rename to apps/dokploy/middleware.ts diff --git a/migration.ts b/apps/dokploy/migration.ts similarity index 100% rename from migration.ts rename to apps/dokploy/migration.ts diff --git a/next.config.mjs b/apps/dokploy/next.config.mjs similarity index 100% rename from next.config.mjs rename to apps/dokploy/next.config.mjs diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json new file mode 100644 index 00000000..d1425fa3 --- /dev/null +++ b/apps/dokploy/package.json @@ -0,0 +1,183 @@ +{ + "name": "dokploy", + "version": "v0.5.0", + "private": true, + "license": "Apache-2.0", + "type": "module", + "scripts": { + "build": "npm run build-server && npm run build-next", + "start": "node dist/server.mjs", + "build-server": "tsx esbuild.config.ts", + "build-next": "next build", + "setup": "tsx -r dotenv/config setup.ts && sleep 5 && pnpm run migration:run", + "reset-password": "node dist/reset-password.mjs", + "dev": "tsx watch -r dotenv/config ./server/server.ts --project tsconfig.server.json ", + "studio": "drizzle-kit studio --config ./server/db/drizzle.config.ts", + "migration:generate": "drizzle-kit generate --config ./server/db/drizzle.config.ts", + "migration:run": "tsx -r dotenv/config migration.ts", + "migration:up": "drizzle-kit up --config ./server/db/drizzle.config.ts", + "migration:drop": "drizzle-kit drop --config ./server/db/drizzle.config.ts", + "db:push": "drizzle-kit push --config ./server/db/drizzle.config.ts", + "db:truncate": "tsx -r dotenv/config ./server/db/reset.ts", + "db:studio": "drizzle-kit studio --config ./server/db/drizzle.config.ts", + "check": "biome check --write --no-errors-on-unmatched --files-ignore-unknown=true", + "format": "biome format --write", + "lint": "biome lint", + "typecheck": "tsc --noEmit", + "db:seed": "tsx -r dotenv/config ./server/db/seed.ts", + "db:clean": "tsx -r dotenv/config ./server/db/reset.ts", + "docker:build": "./docker/build.sh", + "docker:push": "./docker/push.sh", + "docker:build:canary": "./docker/build.sh canary", + "docker:push:canary": "./docker/push.sh canary", + "version": "echo $(node -p \"require('./package.json').version\")", + "test": "vitest --config __test__/vitest.config.ts" + }, + "dependencies": { + "@aws-sdk/client-s3": "3.515.0", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-yaml": "^6.1.1", + "@codemirror/language": "^6.10.1", + "@codemirror/legacy-modes": "6.4.0", + "@dokploy/trpc-openapi": "0.0.4", + "@faker-js/faker": "^8.4.1", + "@hookform/resolvers": "^3.3.4", + "@lucia-auth/adapter-drizzle": "1.0.7", + "@octokit/auth-app": "^6.0.4", + "@octokit/webhooks": "^13.2.7", + "@radix-ui/react-accordion": "1.1.2", + "@radix-ui/react-alert-dialog": "^1.0.5", + "@radix-ui/react-avatar": "^1.0.4", + "@radix-ui/react-checkbox": "^1.0.4", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-label": "^2.0.2", + "@radix-ui/react-popover": "^1.0.7", + "@radix-ui/react-progress": "^1.0.3", + "@radix-ui/react-radio-group": "^1.1.3", + "@radix-ui/react-scroll-area": "^1.0.5", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-separator": "^1.0.3", + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-switch": "^1.0.3", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-toggle": "^1.0.3", + "@radix-ui/react-tooltip": "^1.0.7", + "@react-email/components": "^0.0.21", + "@tanstack/react-query": "^4.36.1", + "@tanstack/react-table": "^8.16.0", + "@trpc/client": "^10.43.6", + "@trpc/next": "^10.43.6", + "@trpc/react-query": "^10.43.6", + "@trpc/server": "^10.43.6", + "@uiw/codemirror-theme-github": "^4.22.1", + "@uiw/react-codemirror": "^4.22.1", + "@xterm/addon-attach": "0.10.0", + "@xterm/xterm": "^5.4.0", + "adm-zip": "^0.5.14", + "bcrypt": "5.1.1", + "bl": "6.0.11", + "boxen": "^7.1.1", + "bullmq": "5.4.2", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.0", + "cmdk": "^0.2.0", + "copy-to-clipboard": "^3.3.3", + "copy-webpack-plugin": "^12.0.2", + "date-fns": "3.6.0", + "dockerode": "4.0.2", + "dockerode-compose": "^1.4.0", + "dockerstats": "2.4.2", + "dotenv": "16.4.5", + "drizzle-orm": "^0.30.8", + "drizzle-zod": "0.5.1", + "hi-base32": "^0.5.1", + "input-otp": "^1.2.4", + "js-yaml": "4.1.0", + "k6": "^0.0.0", + "lodash": "4.17.21", + "lucia": "^3.0.1", + "lucide-react": "^0.312.0", + "nanoid": "3", + "next": "^14.1.3", + "next-themes": "^0.2.1", + "node-os-utils": "1.3.7", + "node-pty": "1.0.0", + "node-schedule": "2.1.1", + "nodemailer": "6.9.14", + "octokit": "3.1.2", + "otpauth": "^9.2.3", + "postgres": "3.4.4", + "public-ip": "6.0.2", + "qrcode": "^1.5.3", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.49.3", + "recharts": "^2.12.3", + "slugify": "^1.6.6", + "sonner": "^1.4.0", + "superjson": "^2.2.1", + "swagger-ui-react": "^5.17.14", + "tailwind-merge": "^2.2.0", + "tailwindcss-animate": "^1.0.7", + "tar-fs": "3.0.5", + "undici": "^6.19.2", + "use-resize-observer": "9.1.0", + "ws": "8.16.0", + "xterm-addon-fit": "^0.8.0", + "zod": "^3.23.4", + "zod-form-data": "^2.0.2" + }, + "devDependencies": { + "tsconfig-paths": "4.2.0", + "@biomejs/biome": "1.8.3", + "@commitlint/cli": "^19.3.0", + "@commitlint/config-conventional": "^19.2.2", + "@types/adm-zip": "^0.5.5", + "@types/bcrypt": "5.0.2", + "@types/dockerode": "3.3.23", + "@types/js-yaml": "4.0.9", + "@types/lodash": "4.17.4", + "@types/node": "^18.17.0", + "@types/node-os-utils": "1.3.4", + "@types/node-schedule": "2.1.6", + "@types/nodemailer": "^6.4.15", + "@types/qrcode": "^1.5.5", + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@types/swagger-ui-react": "^4.18.3", + "@types/tar-fs": "2.0.4", + "@types/ws": "8.5.10", + "autoprefixer": "^10.4.14", + "drizzle-kit": "^0.21.1", + "esbuild": "0.20.2", + "husky": "^9.0.11", + "lint-staged": "^15.2.7", + "localtunnel": "2.0.2", + "postcss": "^8.4.31", + "prettier": "^3.2.4", + "prettier-plugin-tailwindcss": "^0.5.11", + "tailwindcss": "^3.4.1", + "tsx": "^4.7.0", + "typescript": "^5.4.2", + "vite-tsconfig-paths": "4.3.2", + "vitest": "^1.6.0", + "xterm-readline": "1.1.1" + }, + "ct3aMetadata": { + "initVersion": "7.25.2" + }, + "packageManager": "pnpm@9.5.0", + "engines": { + "node": "^18.18.0", + "pnpm": ">=9.5.0" + }, + "lint-staged": { + "*": [ + "biome check --write --no-errors-on-unmatched --files-ignore-unknown=true" + ] + }, + "commitlint": { + "extends": ["@commitlint/config-conventional"] + } +} diff --git a/pages/_app.tsx b/apps/dokploy/pages/_app.tsx similarity index 100% rename from pages/_app.tsx rename to apps/dokploy/pages/_app.tsx diff --git a/pages/_document.tsx b/apps/dokploy/pages/_document.tsx similarity index 100% rename from pages/_document.tsx rename to apps/dokploy/pages/_document.tsx diff --git a/pages/_error.tsx b/apps/dokploy/pages/_error.tsx similarity index 100% rename from pages/_error.tsx rename to apps/dokploy/pages/_error.tsx diff --git a/pages/api/[...trpc].ts b/apps/dokploy/pages/api/[...trpc].ts similarity index 100% rename from pages/api/[...trpc].ts rename to apps/dokploy/pages/api/[...trpc].ts diff --git a/pages/api/deploy/[refreshToken].ts b/apps/dokploy/pages/api/deploy/[refreshToken].ts similarity index 100% rename from pages/api/deploy/[refreshToken].ts rename to apps/dokploy/pages/api/deploy/[refreshToken].ts diff --git a/pages/api/deploy/compose/[refreshToken].ts b/apps/dokploy/pages/api/deploy/compose/[refreshToken].ts similarity index 100% rename from pages/api/deploy/compose/[refreshToken].ts rename to apps/dokploy/pages/api/deploy/compose/[refreshToken].ts diff --git a/pages/api/deploy/github.ts b/apps/dokploy/pages/api/deploy/github.ts similarity index 100% rename from pages/api/deploy/github.ts rename to apps/dokploy/pages/api/deploy/github.ts diff --git a/pages/api/redirect.ts b/apps/dokploy/pages/api/redirect.ts similarity index 100% rename from pages/api/redirect.ts rename to apps/dokploy/pages/api/redirect.ts diff --git a/pages/api/trpc/[trpc].ts b/apps/dokploy/pages/api/trpc/[trpc].ts similarity index 100% rename from pages/api/trpc/[trpc].ts rename to apps/dokploy/pages/api/trpc/[trpc].ts diff --git a/pages/api/webhook.ts b/apps/dokploy/pages/api/webhook.ts similarity index 100% rename from pages/api/webhook.ts rename to apps/dokploy/pages/api/webhook.ts diff --git a/pages/dashboard/docker.tsx b/apps/dokploy/pages/dashboard/docker.tsx similarity index 100% rename from pages/dashboard/docker.tsx rename to apps/dokploy/pages/dashboard/docker.tsx diff --git a/pages/dashboard/monitoring.tsx b/apps/dokploy/pages/dashboard/monitoring.tsx similarity index 100% rename from pages/dashboard/monitoring.tsx rename to apps/dokploy/pages/dashboard/monitoring.tsx diff --git a/pages/dashboard/project/[projectId].tsx b/apps/dokploy/pages/dashboard/project/[projectId].tsx similarity index 100% rename from pages/dashboard/project/[projectId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId].tsx diff --git a/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/application/[applicationId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/application/[applicationId].tsx diff --git a/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/compose/[composeId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx diff --git a/pages/dashboard/project/[projectId]/services/mariadb/[mariadbId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/mariadb/[mariadbId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/mariadb/[mariadbId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/mariadb/[mariadbId].tsx diff --git a/pages/dashboard/project/[projectId]/services/mongo/[mongoId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/mongo/[mongoId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/mongo/[mongoId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/mongo/[mongoId].tsx diff --git a/pages/dashboard/project/[projectId]/services/mysql/[mysqlId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/mysql/[mysqlId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/mysql/[mysqlId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/mysql/[mysqlId].tsx diff --git a/pages/dashboard/project/[projectId]/services/postgres/[postgresId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/postgres/[postgresId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/postgres/[postgresId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/postgres/[postgresId].tsx diff --git a/pages/dashboard/project/[projectId]/services/redis/[redisId].tsx b/apps/dokploy/pages/dashboard/project/[projectId]/services/redis/[redisId].tsx similarity index 100% rename from pages/dashboard/project/[projectId]/services/redis/[redisId].tsx rename to apps/dokploy/pages/dashboard/project/[projectId]/services/redis/[redisId].tsx diff --git a/pages/dashboard/projects.tsx b/apps/dokploy/pages/dashboard/projects.tsx similarity index 100% rename from pages/dashboard/projects.tsx rename to apps/dokploy/pages/dashboard/projects.tsx diff --git a/pages/dashboard/settings/appearance.tsx b/apps/dokploy/pages/dashboard/settings/appearance.tsx similarity index 100% rename from pages/dashboard/settings/appearance.tsx rename to apps/dokploy/pages/dashboard/settings/appearance.tsx diff --git a/pages/dashboard/settings/certificates.tsx b/apps/dokploy/pages/dashboard/settings/certificates.tsx similarity index 100% rename from pages/dashboard/settings/certificates.tsx rename to apps/dokploy/pages/dashboard/settings/certificates.tsx diff --git a/pages/dashboard/settings/cluster.tsx b/apps/dokploy/pages/dashboard/settings/cluster.tsx similarity index 100% rename from pages/dashboard/settings/cluster.tsx rename to apps/dokploy/pages/dashboard/settings/cluster.tsx diff --git a/pages/dashboard/settings/destinations.tsx b/apps/dokploy/pages/dashboard/settings/destinations.tsx similarity index 100% rename from pages/dashboard/settings/destinations.tsx rename to apps/dokploy/pages/dashboard/settings/destinations.tsx diff --git a/pages/dashboard/settings/notifications.tsx b/apps/dokploy/pages/dashboard/settings/notifications.tsx similarity index 100% rename from pages/dashboard/settings/notifications.tsx rename to apps/dokploy/pages/dashboard/settings/notifications.tsx diff --git a/pages/dashboard/settings/profile.tsx b/apps/dokploy/pages/dashboard/settings/profile.tsx similarity index 100% rename from pages/dashboard/settings/profile.tsx rename to apps/dokploy/pages/dashboard/settings/profile.tsx diff --git a/pages/dashboard/settings/server.tsx b/apps/dokploy/pages/dashboard/settings/server.tsx similarity index 100% rename from pages/dashboard/settings/server.tsx rename to apps/dokploy/pages/dashboard/settings/server.tsx diff --git a/pages/dashboard/settings/ssh-keys.tsx b/apps/dokploy/pages/dashboard/settings/ssh-keys.tsx similarity index 100% rename from pages/dashboard/settings/ssh-keys.tsx rename to apps/dokploy/pages/dashboard/settings/ssh-keys.tsx diff --git a/pages/dashboard/settings/users.tsx b/apps/dokploy/pages/dashboard/settings/users.tsx similarity index 100% rename from pages/dashboard/settings/users.tsx rename to apps/dokploy/pages/dashboard/settings/users.tsx diff --git a/pages/dashboard/traefik.tsx b/apps/dokploy/pages/dashboard/traefik.tsx similarity index 100% rename from pages/dashboard/traefik.tsx rename to apps/dokploy/pages/dashboard/traefik.tsx diff --git a/pages/index.tsx b/apps/dokploy/pages/index.tsx similarity index 100% rename from pages/index.tsx rename to apps/dokploy/pages/index.tsx diff --git a/pages/invitation.tsx b/apps/dokploy/pages/invitation.tsx similarity index 100% rename from pages/invitation.tsx rename to apps/dokploy/pages/invitation.tsx diff --git a/pages/register.tsx b/apps/dokploy/pages/register.tsx similarity index 100% rename from pages/register.tsx rename to apps/dokploy/pages/register.tsx diff --git a/pages/swagger.tsx b/apps/dokploy/pages/swagger.tsx similarity index 100% rename from pages/swagger.tsx rename to apps/dokploy/pages/swagger.tsx diff --git a/postcss.config.cjs b/apps/dokploy/postcss.config.cjs similarity index 100% rename from postcss.config.cjs rename to apps/dokploy/postcss.config.cjs diff --git a/public/avatars/avatar-1.png b/apps/dokploy/public/avatars/avatar-1.png similarity index 100% rename from public/avatars/avatar-1.png rename to apps/dokploy/public/avatars/avatar-1.png diff --git a/public/avatars/avatar-10.png b/apps/dokploy/public/avatars/avatar-10.png similarity index 100% rename from public/avatars/avatar-10.png rename to apps/dokploy/public/avatars/avatar-10.png diff --git a/public/avatars/avatar-11.png b/apps/dokploy/public/avatars/avatar-11.png similarity index 100% rename from public/avatars/avatar-11.png rename to apps/dokploy/public/avatars/avatar-11.png diff --git a/public/avatars/avatar-12.png b/apps/dokploy/public/avatars/avatar-12.png similarity index 100% rename from public/avatars/avatar-12.png rename to apps/dokploy/public/avatars/avatar-12.png diff --git a/public/avatars/avatar-2.png b/apps/dokploy/public/avatars/avatar-2.png similarity index 100% rename from public/avatars/avatar-2.png rename to apps/dokploy/public/avatars/avatar-2.png diff --git a/public/avatars/avatar-3.png b/apps/dokploy/public/avatars/avatar-3.png similarity index 100% rename from public/avatars/avatar-3.png rename to apps/dokploy/public/avatars/avatar-3.png diff --git a/public/avatars/avatar-4.png b/apps/dokploy/public/avatars/avatar-4.png similarity index 100% rename from public/avatars/avatar-4.png rename to apps/dokploy/public/avatars/avatar-4.png diff --git a/public/avatars/avatar-5.png b/apps/dokploy/public/avatars/avatar-5.png similarity index 100% rename from public/avatars/avatar-5.png rename to apps/dokploy/public/avatars/avatar-5.png diff --git a/public/avatars/avatar-6.png b/apps/dokploy/public/avatars/avatar-6.png similarity index 100% rename from public/avatars/avatar-6.png rename to apps/dokploy/public/avatars/avatar-6.png diff --git a/public/avatars/avatar-7.png b/apps/dokploy/public/avatars/avatar-7.png similarity index 100% rename from public/avatars/avatar-7.png rename to apps/dokploy/public/avatars/avatar-7.png diff --git a/public/avatars/avatar-8.png b/apps/dokploy/public/avatars/avatar-8.png similarity index 100% rename from public/avatars/avatar-8.png rename to apps/dokploy/public/avatars/avatar-8.png diff --git a/public/avatars/avatar-9.png b/apps/dokploy/public/avatars/avatar-9.png similarity index 100% rename from public/avatars/avatar-9.png rename to apps/dokploy/public/avatars/avatar-9.png diff --git a/public/favicon.ico b/apps/dokploy/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to apps/dokploy/public/favicon.ico diff --git a/apps/dokploy/public/icon.svg b/apps/dokploy/public/icon.svg new file mode 100644 index 00000000..3a8930d5 --- /dev/null +++ b/apps/dokploy/public/icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/theme-dark.svg b/apps/dokploy/public/images/theme-dark.svg similarity index 100% rename from public/images/theme-dark.svg rename to apps/dokploy/public/images/theme-dark.svg diff --git a/public/images/theme-light.svg b/apps/dokploy/public/images/theme-light.svg similarity index 100% rename from public/images/theme-light.svg rename to apps/dokploy/public/images/theme-light.svg diff --git a/public/images/theme-system.svg b/apps/dokploy/public/images/theme-system.svg similarity index 100% rename from public/images/theme-system.svg rename to apps/dokploy/public/images/theme-system.svg diff --git a/public/logo.png b/apps/dokploy/public/logo.png similarity index 100% rename from public/logo.png rename to apps/dokploy/public/logo.png diff --git a/public/logo.svg b/apps/dokploy/public/logo.svg similarity index 100% rename from public/logo.svg rename to apps/dokploy/public/logo.svg diff --git a/public/robots.txt b/apps/dokploy/public/robots.txt similarity index 100% rename from public/robots.txt rename to apps/dokploy/public/robots.txt diff --git a/public/templates/appsmith.png b/apps/dokploy/public/templates/appsmith.png similarity index 100% rename from public/templates/appsmith.png rename to apps/dokploy/public/templates/appsmith.png diff --git a/public/templates/baserow.webp b/apps/dokploy/public/templates/baserow.webp similarity index 100% rename from public/templates/baserow.webp rename to apps/dokploy/public/templates/baserow.webp diff --git a/public/templates/calcom.jpg b/apps/dokploy/public/templates/calcom.jpg similarity index 100% rename from public/templates/calcom.jpg rename to apps/dokploy/public/templates/calcom.jpg diff --git a/public/templates/directus.jpg b/apps/dokploy/public/templates/directus.jpg similarity index 100% rename from public/templates/directus.jpg rename to apps/dokploy/public/templates/directus.jpg diff --git a/public/templates/documenso.png b/apps/dokploy/public/templates/documenso.png similarity index 100% rename from public/templates/documenso.png rename to apps/dokploy/public/templates/documenso.png diff --git a/public/templates/doublezero.svg b/apps/dokploy/public/templates/doublezero.svg similarity index 100% rename from public/templates/doublezero.svg rename to apps/dokploy/public/templates/doublezero.svg diff --git a/public/templates/excalidraw.jpg b/apps/dokploy/public/templates/excalidraw.jpg similarity index 100% rename from public/templates/excalidraw.jpg rename to apps/dokploy/public/templates/excalidraw.jpg diff --git a/public/templates/ghost.jpeg b/apps/dokploy/public/templates/ghost.jpeg similarity index 100% rename from public/templates/ghost.jpeg rename to apps/dokploy/public/templates/ghost.jpeg diff --git a/public/templates/glitchtip.png b/apps/dokploy/public/templates/glitchtip.png similarity index 100% rename from public/templates/glitchtip.png rename to apps/dokploy/public/templates/glitchtip.png diff --git a/public/templates/grafana.svg b/apps/dokploy/public/templates/grafana.svg similarity index 100% rename from public/templates/grafana.svg rename to apps/dokploy/public/templates/grafana.svg diff --git a/public/templates/jellyfin.svg b/apps/dokploy/public/templates/jellyfin.svg similarity index 100% rename from public/templates/jellyfin.svg rename to apps/dokploy/public/templates/jellyfin.svg diff --git a/public/templates/listmonk.png b/apps/dokploy/public/templates/listmonk.png similarity index 100% rename from public/templates/listmonk.png rename to apps/dokploy/public/templates/listmonk.png diff --git a/public/templates/meilisearch.png b/apps/dokploy/public/templates/meilisearch.png similarity index 100% rename from public/templates/meilisearch.png rename to apps/dokploy/public/templates/meilisearch.png diff --git a/public/templates/metabase.png b/apps/dokploy/public/templates/metabase.png similarity index 100% rename from public/templates/metabase.png rename to apps/dokploy/public/templates/metabase.png diff --git a/public/templates/minio.png b/apps/dokploy/public/templates/minio.png similarity index 100% rename from public/templates/minio.png rename to apps/dokploy/public/templates/minio.png diff --git a/public/templates/n8n.png b/apps/dokploy/public/templates/n8n.png similarity index 100% rename from public/templates/n8n.png rename to apps/dokploy/public/templates/n8n.png diff --git a/public/templates/nocodb.png b/apps/dokploy/public/templates/nocodb.png similarity index 100% rename from public/templates/nocodb.png rename to apps/dokploy/public/templates/nocodb.png diff --git a/public/templates/odoo.png b/apps/dokploy/public/templates/odoo.png similarity index 100% rename from public/templates/odoo.png rename to apps/dokploy/public/templates/odoo.png diff --git a/public/templates/open-webui.png b/apps/dokploy/public/templates/open-webui.png similarity index 100% rename from public/templates/open-webui.png rename to apps/dokploy/public/templates/open-webui.png diff --git a/public/templates/phpmyadmin.png b/apps/dokploy/public/templates/phpmyadmin.png similarity index 100% rename from public/templates/phpmyadmin.png rename to apps/dokploy/public/templates/phpmyadmin.png diff --git a/public/templates/plausible.svg b/apps/dokploy/public/templates/plausible.svg similarity index 100% rename from public/templates/plausible.svg rename to apps/dokploy/public/templates/plausible.svg diff --git a/public/templates/pocketbase.svg b/apps/dokploy/public/templates/pocketbase.svg similarity index 100% rename from public/templates/pocketbase.svg rename to apps/dokploy/public/templates/pocketbase.svg diff --git a/public/templates/rocketchat.png b/apps/dokploy/public/templates/rocketchat.png similarity index 100% rename from public/templates/rocketchat.png rename to apps/dokploy/public/templates/rocketchat.png diff --git a/public/templates/umami.png b/apps/dokploy/public/templates/umami.png similarity index 100% rename from public/templates/umami.png rename to apps/dokploy/public/templates/umami.png diff --git a/public/templates/uptime-kuma.png b/apps/dokploy/public/templates/uptime-kuma.png similarity index 100% rename from public/templates/uptime-kuma.png rename to apps/dokploy/public/templates/uptime-kuma.png diff --git a/public/templates/wordpress.png b/apps/dokploy/public/templates/wordpress.png similarity index 100% rename from public/templates/wordpress.png rename to apps/dokploy/public/templates/wordpress.png diff --git a/reset-password.ts b/apps/dokploy/reset-password.ts similarity index 100% rename from reset-password.ts rename to apps/dokploy/reset-password.ts diff --git a/server/api/root.ts b/apps/dokploy/server/api/root.ts similarity index 100% rename from server/api/root.ts rename to apps/dokploy/server/api/root.ts diff --git a/server/api/routers/admin.ts b/apps/dokploy/server/api/routers/admin.ts similarity index 100% rename from server/api/routers/admin.ts rename to apps/dokploy/server/api/routers/admin.ts diff --git a/server/api/routers/application.ts b/apps/dokploy/server/api/routers/application.ts similarity index 100% rename from server/api/routers/application.ts rename to apps/dokploy/server/api/routers/application.ts diff --git a/server/api/routers/auth.ts b/apps/dokploy/server/api/routers/auth.ts similarity index 100% rename from server/api/routers/auth.ts rename to apps/dokploy/server/api/routers/auth.ts diff --git a/server/api/routers/backup.ts b/apps/dokploy/server/api/routers/backup.ts similarity index 100% rename from server/api/routers/backup.ts rename to apps/dokploy/server/api/routers/backup.ts diff --git a/server/api/routers/certificate.ts b/apps/dokploy/server/api/routers/certificate.ts similarity index 100% rename from server/api/routers/certificate.ts rename to apps/dokploy/server/api/routers/certificate.ts diff --git a/server/api/routers/cluster.ts b/apps/dokploy/server/api/routers/cluster.ts similarity index 100% rename from server/api/routers/cluster.ts rename to apps/dokploy/server/api/routers/cluster.ts diff --git a/server/api/routers/compose.ts b/apps/dokploy/server/api/routers/compose.ts similarity index 100% rename from server/api/routers/compose.ts rename to apps/dokploy/server/api/routers/compose.ts diff --git a/server/api/routers/deployment.ts b/apps/dokploy/server/api/routers/deployment.ts similarity index 100% rename from server/api/routers/deployment.ts rename to apps/dokploy/server/api/routers/deployment.ts diff --git a/server/api/routers/destination.ts b/apps/dokploy/server/api/routers/destination.ts similarity index 100% rename from server/api/routers/destination.ts rename to apps/dokploy/server/api/routers/destination.ts diff --git a/server/api/routers/docker.ts b/apps/dokploy/server/api/routers/docker.ts similarity index 100% rename from server/api/routers/docker.ts rename to apps/dokploy/server/api/routers/docker.ts diff --git a/server/api/routers/domain.ts b/apps/dokploy/server/api/routers/domain.ts similarity index 100% rename from server/api/routers/domain.ts rename to apps/dokploy/server/api/routers/domain.ts diff --git a/server/api/routers/mariadb.ts b/apps/dokploy/server/api/routers/mariadb.ts similarity index 100% rename from server/api/routers/mariadb.ts rename to apps/dokploy/server/api/routers/mariadb.ts diff --git a/server/api/routers/mongo.ts b/apps/dokploy/server/api/routers/mongo.ts similarity index 100% rename from server/api/routers/mongo.ts rename to apps/dokploy/server/api/routers/mongo.ts diff --git a/server/api/routers/mount.ts b/apps/dokploy/server/api/routers/mount.ts similarity index 100% rename from server/api/routers/mount.ts rename to apps/dokploy/server/api/routers/mount.ts diff --git a/server/api/routers/mysql.ts b/apps/dokploy/server/api/routers/mysql.ts similarity index 100% rename from server/api/routers/mysql.ts rename to apps/dokploy/server/api/routers/mysql.ts diff --git a/server/api/routers/notification.ts b/apps/dokploy/server/api/routers/notification.ts similarity index 100% rename from server/api/routers/notification.ts rename to apps/dokploy/server/api/routers/notification.ts diff --git a/server/api/routers/port.ts b/apps/dokploy/server/api/routers/port.ts similarity index 100% rename from server/api/routers/port.ts rename to apps/dokploy/server/api/routers/port.ts diff --git a/server/api/routers/postgres.ts b/apps/dokploy/server/api/routers/postgres.ts similarity index 100% rename from server/api/routers/postgres.ts rename to apps/dokploy/server/api/routers/postgres.ts diff --git a/server/api/routers/project.ts b/apps/dokploy/server/api/routers/project.ts similarity index 100% rename from server/api/routers/project.ts rename to apps/dokploy/server/api/routers/project.ts diff --git a/server/api/routers/redirects.ts b/apps/dokploy/server/api/routers/redirects.ts similarity index 100% rename from server/api/routers/redirects.ts rename to apps/dokploy/server/api/routers/redirects.ts diff --git a/server/api/routers/redis.ts b/apps/dokploy/server/api/routers/redis.ts similarity index 100% rename from server/api/routers/redis.ts rename to apps/dokploy/server/api/routers/redis.ts diff --git a/server/api/routers/registry.ts b/apps/dokploy/server/api/routers/registry.ts similarity index 100% rename from server/api/routers/registry.ts rename to apps/dokploy/server/api/routers/registry.ts diff --git a/server/api/routers/security.ts b/apps/dokploy/server/api/routers/security.ts similarity index 100% rename from server/api/routers/security.ts rename to apps/dokploy/server/api/routers/security.ts diff --git a/server/api/routers/settings.ts b/apps/dokploy/server/api/routers/settings.ts similarity index 100% rename from server/api/routers/settings.ts rename to apps/dokploy/server/api/routers/settings.ts diff --git a/server/api/routers/ssh-key.ts b/apps/dokploy/server/api/routers/ssh-key.ts similarity index 100% rename from server/api/routers/ssh-key.ts rename to apps/dokploy/server/api/routers/ssh-key.ts diff --git a/server/api/routers/user.ts b/apps/dokploy/server/api/routers/user.ts similarity index 100% rename from server/api/routers/user.ts rename to apps/dokploy/server/api/routers/user.ts diff --git a/server/api/services/admin.ts b/apps/dokploy/server/api/services/admin.ts similarity index 100% rename from server/api/services/admin.ts rename to apps/dokploy/server/api/services/admin.ts diff --git a/server/api/services/application.ts b/apps/dokploy/server/api/services/application.ts similarity index 100% rename from server/api/services/application.ts rename to apps/dokploy/server/api/services/application.ts diff --git a/server/api/services/auth.ts b/apps/dokploy/server/api/services/auth.ts similarity index 100% rename from server/api/services/auth.ts rename to apps/dokploy/server/api/services/auth.ts diff --git a/server/api/services/backup.ts b/apps/dokploy/server/api/services/backup.ts similarity index 100% rename from server/api/services/backup.ts rename to apps/dokploy/server/api/services/backup.ts diff --git a/server/api/services/certificate.ts b/apps/dokploy/server/api/services/certificate.ts similarity index 100% rename from server/api/services/certificate.ts rename to apps/dokploy/server/api/services/certificate.ts diff --git a/server/api/services/cluster.ts b/apps/dokploy/server/api/services/cluster.ts similarity index 100% rename from server/api/services/cluster.ts rename to apps/dokploy/server/api/services/cluster.ts diff --git a/server/api/services/compose.ts b/apps/dokploy/server/api/services/compose.ts similarity index 100% rename from server/api/services/compose.ts rename to apps/dokploy/server/api/services/compose.ts diff --git a/server/api/services/deployment.ts b/apps/dokploy/server/api/services/deployment.ts similarity index 100% rename from server/api/services/deployment.ts rename to apps/dokploy/server/api/services/deployment.ts diff --git a/server/api/services/destination.ts b/apps/dokploy/server/api/services/destination.ts similarity index 100% rename from server/api/services/destination.ts rename to apps/dokploy/server/api/services/destination.ts diff --git a/server/api/services/docker.ts b/apps/dokploy/server/api/services/docker.ts similarity index 100% rename from server/api/services/docker.ts rename to apps/dokploy/server/api/services/docker.ts diff --git a/server/api/services/domain.ts b/apps/dokploy/server/api/services/domain.ts similarity index 100% rename from server/api/services/domain.ts rename to apps/dokploy/server/api/services/domain.ts diff --git a/server/api/services/mariadb.ts b/apps/dokploy/server/api/services/mariadb.ts similarity index 100% rename from server/api/services/mariadb.ts rename to apps/dokploy/server/api/services/mariadb.ts diff --git a/server/api/services/mongo.ts b/apps/dokploy/server/api/services/mongo.ts similarity index 100% rename from server/api/services/mongo.ts rename to apps/dokploy/server/api/services/mongo.ts diff --git a/server/api/services/mount.ts b/apps/dokploy/server/api/services/mount.ts similarity index 100% rename from server/api/services/mount.ts rename to apps/dokploy/server/api/services/mount.ts diff --git a/server/api/services/mysql.ts b/apps/dokploy/server/api/services/mysql.ts similarity index 100% rename from server/api/services/mysql.ts rename to apps/dokploy/server/api/services/mysql.ts diff --git a/server/api/services/notification.ts b/apps/dokploy/server/api/services/notification.ts similarity index 100% rename from server/api/services/notification.ts rename to apps/dokploy/server/api/services/notification.ts diff --git a/server/api/services/port.ts b/apps/dokploy/server/api/services/port.ts similarity index 100% rename from server/api/services/port.ts rename to apps/dokploy/server/api/services/port.ts diff --git a/server/api/services/postgres.ts b/apps/dokploy/server/api/services/postgres.ts similarity index 100% rename from server/api/services/postgres.ts rename to apps/dokploy/server/api/services/postgres.ts diff --git a/server/api/services/project.ts b/apps/dokploy/server/api/services/project.ts similarity index 100% rename from server/api/services/project.ts rename to apps/dokploy/server/api/services/project.ts diff --git a/server/api/services/redirect.ts b/apps/dokploy/server/api/services/redirect.ts similarity index 100% rename from server/api/services/redirect.ts rename to apps/dokploy/server/api/services/redirect.ts diff --git a/server/api/services/redis.ts b/apps/dokploy/server/api/services/redis.ts similarity index 100% rename from server/api/services/redis.ts rename to apps/dokploy/server/api/services/redis.ts diff --git a/server/api/services/registry.ts b/apps/dokploy/server/api/services/registry.ts similarity index 100% rename from server/api/services/registry.ts rename to apps/dokploy/server/api/services/registry.ts diff --git a/server/api/services/security.ts b/apps/dokploy/server/api/services/security.ts similarity index 100% rename from server/api/services/security.ts rename to apps/dokploy/server/api/services/security.ts diff --git a/server/api/services/settings.ts b/apps/dokploy/server/api/services/settings.ts similarity index 100% rename from server/api/services/settings.ts rename to apps/dokploy/server/api/services/settings.ts diff --git a/server/api/services/ssh-key.ts b/apps/dokploy/server/api/services/ssh-key.ts similarity index 100% rename from server/api/services/ssh-key.ts rename to apps/dokploy/server/api/services/ssh-key.ts diff --git a/server/api/services/user.ts b/apps/dokploy/server/api/services/user.ts similarity index 100% rename from server/api/services/user.ts rename to apps/dokploy/server/api/services/user.ts diff --git a/server/api/trpc.ts b/apps/dokploy/server/api/trpc.ts similarity index 100% rename from server/api/trpc.ts rename to apps/dokploy/server/api/trpc.ts diff --git a/server/auth/auth.ts b/apps/dokploy/server/auth/auth.ts similarity index 100% rename from server/auth/auth.ts rename to apps/dokploy/server/auth/auth.ts diff --git a/server/auth/random-password.ts b/apps/dokploy/server/auth/random-password.ts similarity index 100% rename from server/auth/random-password.ts rename to apps/dokploy/server/auth/random-password.ts diff --git a/server/auth/token.ts b/apps/dokploy/server/auth/token.ts similarity index 100% rename from server/auth/token.ts rename to apps/dokploy/server/auth/token.ts diff --git a/server/constants/index.ts b/apps/dokploy/server/constants/index.ts similarity index 100% rename from server/constants/index.ts rename to apps/dokploy/server/constants/index.ts diff --git a/server/db/drizzle.config.ts b/apps/dokploy/server/db/drizzle.config.ts similarity index 100% rename from server/db/drizzle.config.ts rename to apps/dokploy/server/db/drizzle.config.ts diff --git a/server/db/index.ts b/apps/dokploy/server/db/index.ts similarity index 100% rename from server/db/index.ts rename to apps/dokploy/server/db/index.ts diff --git a/server/db/migration.ts b/apps/dokploy/server/db/migration.ts similarity index 100% rename from server/db/migration.ts rename to apps/dokploy/server/db/migration.ts diff --git a/server/db/reset.ts b/apps/dokploy/server/db/reset.ts similarity index 100% rename from server/db/reset.ts rename to apps/dokploy/server/db/reset.ts diff --git a/server/db/schema/admin.ts b/apps/dokploy/server/db/schema/admin.ts similarity index 100% rename from server/db/schema/admin.ts rename to apps/dokploy/server/db/schema/admin.ts diff --git a/server/db/schema/application.ts b/apps/dokploy/server/db/schema/application.ts similarity index 100% rename from server/db/schema/application.ts rename to apps/dokploy/server/db/schema/application.ts diff --git a/server/db/schema/auth.ts b/apps/dokploy/server/db/schema/auth.ts similarity index 100% rename from server/db/schema/auth.ts rename to apps/dokploy/server/db/schema/auth.ts diff --git a/server/db/schema/backups.ts b/apps/dokploy/server/db/schema/backups.ts similarity index 100% rename from server/db/schema/backups.ts rename to apps/dokploy/server/db/schema/backups.ts diff --git a/server/db/schema/certificate.ts b/apps/dokploy/server/db/schema/certificate.ts similarity index 100% rename from server/db/schema/certificate.ts rename to apps/dokploy/server/db/schema/certificate.ts diff --git a/server/db/schema/compose.ts b/apps/dokploy/server/db/schema/compose.ts similarity index 100% rename from server/db/schema/compose.ts rename to apps/dokploy/server/db/schema/compose.ts diff --git a/server/db/schema/deployment.ts b/apps/dokploy/server/db/schema/deployment.ts similarity index 100% rename from server/db/schema/deployment.ts rename to apps/dokploy/server/db/schema/deployment.ts diff --git a/server/db/schema/destination.ts b/apps/dokploy/server/db/schema/destination.ts similarity index 100% rename from server/db/schema/destination.ts rename to apps/dokploy/server/db/schema/destination.ts diff --git a/server/db/schema/domain.ts b/apps/dokploy/server/db/schema/domain.ts similarity index 100% rename from server/db/schema/domain.ts rename to apps/dokploy/server/db/schema/domain.ts diff --git a/server/db/schema/index.ts b/apps/dokploy/server/db/schema/index.ts similarity index 100% rename from server/db/schema/index.ts rename to apps/dokploy/server/db/schema/index.ts diff --git a/server/db/schema/mariadb.ts b/apps/dokploy/server/db/schema/mariadb.ts similarity index 100% rename from server/db/schema/mariadb.ts rename to apps/dokploy/server/db/schema/mariadb.ts diff --git a/server/db/schema/mongo.ts b/apps/dokploy/server/db/schema/mongo.ts similarity index 100% rename from server/db/schema/mongo.ts rename to apps/dokploy/server/db/schema/mongo.ts diff --git a/server/db/schema/mount.ts b/apps/dokploy/server/db/schema/mount.ts similarity index 100% rename from server/db/schema/mount.ts rename to apps/dokploy/server/db/schema/mount.ts diff --git a/server/db/schema/mysql.ts b/apps/dokploy/server/db/schema/mysql.ts similarity index 100% rename from server/db/schema/mysql.ts rename to apps/dokploy/server/db/schema/mysql.ts diff --git a/server/db/schema/notification.ts b/apps/dokploy/server/db/schema/notification.ts similarity index 100% rename from server/db/schema/notification.ts rename to apps/dokploy/server/db/schema/notification.ts diff --git a/server/db/schema/port.ts b/apps/dokploy/server/db/schema/port.ts similarity index 100% rename from server/db/schema/port.ts rename to apps/dokploy/server/db/schema/port.ts diff --git a/server/db/schema/postgres.ts b/apps/dokploy/server/db/schema/postgres.ts similarity index 100% rename from server/db/schema/postgres.ts rename to apps/dokploy/server/db/schema/postgres.ts diff --git a/server/db/schema/project.ts b/apps/dokploy/server/db/schema/project.ts similarity index 100% rename from server/db/schema/project.ts rename to apps/dokploy/server/db/schema/project.ts diff --git a/server/db/schema/redirects.ts b/apps/dokploy/server/db/schema/redirects.ts similarity index 100% rename from server/db/schema/redirects.ts rename to apps/dokploy/server/db/schema/redirects.ts diff --git a/server/db/schema/redis.ts b/apps/dokploy/server/db/schema/redis.ts similarity index 100% rename from server/db/schema/redis.ts rename to apps/dokploy/server/db/schema/redis.ts diff --git a/server/db/schema/registry.ts b/apps/dokploy/server/db/schema/registry.ts similarity index 100% rename from server/db/schema/registry.ts rename to apps/dokploy/server/db/schema/registry.ts diff --git a/server/db/schema/security.ts b/apps/dokploy/server/db/schema/security.ts similarity index 100% rename from server/db/schema/security.ts rename to apps/dokploy/server/db/schema/security.ts diff --git a/server/db/schema/session.ts b/apps/dokploy/server/db/schema/session.ts similarity index 100% rename from server/db/schema/session.ts rename to apps/dokploy/server/db/schema/session.ts diff --git a/server/db/schema/shared.ts b/apps/dokploy/server/db/schema/shared.ts similarity index 100% rename from server/db/schema/shared.ts rename to apps/dokploy/server/db/schema/shared.ts diff --git a/server/db/schema/source.ts b/apps/dokploy/server/db/schema/source.ts similarity index 100% rename from server/db/schema/source.ts rename to apps/dokploy/server/db/schema/source.ts diff --git a/server/db/schema/ssh-key.ts b/apps/dokploy/server/db/schema/ssh-key.ts similarity index 100% rename from server/db/schema/ssh-key.ts rename to apps/dokploy/server/db/schema/ssh-key.ts diff --git a/server/db/schema/user.ts b/apps/dokploy/server/db/schema/user.ts similarity index 100% rename from server/db/schema/user.ts rename to apps/dokploy/server/db/schema/user.ts diff --git a/server/db/schema/utils.ts b/apps/dokploy/server/db/schema/utils.ts similarity index 100% rename from server/db/schema/utils.ts rename to apps/dokploy/server/db/schema/utils.ts diff --git a/server/db/seed.ts b/apps/dokploy/server/db/seed.ts similarity index 100% rename from server/db/seed.ts rename to apps/dokploy/server/db/seed.ts diff --git a/server/db/validations/index.ts b/apps/dokploy/server/db/validations/index.ts similarity index 100% rename from server/db/validations/index.ts rename to apps/dokploy/server/db/validations/index.ts diff --git a/server/monitoring/utilts.ts b/apps/dokploy/server/monitoring/utilts.ts similarity index 100% rename from server/monitoring/utilts.ts rename to apps/dokploy/server/monitoring/utilts.ts diff --git a/server/queues/deployments-queue.ts b/apps/dokploy/server/queues/deployments-queue.ts similarity index 100% rename from server/queues/deployments-queue.ts rename to apps/dokploy/server/queues/deployments-queue.ts diff --git a/server/queues/queueSetup.ts b/apps/dokploy/server/queues/queueSetup.ts similarity index 100% rename from server/queues/queueSetup.ts rename to apps/dokploy/server/queues/queueSetup.ts diff --git a/server/server.ts b/apps/dokploy/server/server.ts similarity index 100% rename from server/server.ts rename to apps/dokploy/server/server.ts diff --git a/server/setup/config-paths.ts b/apps/dokploy/server/setup/config-paths.ts similarity index 100% rename from server/setup/config-paths.ts rename to apps/dokploy/server/setup/config-paths.ts diff --git a/server/setup/postgres-setup.ts b/apps/dokploy/server/setup/postgres-setup.ts similarity index 100% rename from server/setup/postgres-setup.ts rename to apps/dokploy/server/setup/postgres-setup.ts diff --git a/server/setup/redis-setup.ts b/apps/dokploy/server/setup/redis-setup.ts similarity index 100% rename from server/setup/redis-setup.ts rename to apps/dokploy/server/setup/redis-setup.ts diff --git a/server/setup/registry-setup.ts b/apps/dokploy/server/setup/registry-setup.ts similarity index 100% rename from server/setup/registry-setup.ts rename to apps/dokploy/server/setup/registry-setup.ts diff --git a/server/setup/setup.ts b/apps/dokploy/server/setup/setup.ts similarity index 100% rename from server/setup/setup.ts rename to apps/dokploy/server/setup/setup.ts diff --git a/server/setup/traefik-setup.ts b/apps/dokploy/server/setup/traefik-setup.ts similarity index 100% rename from server/setup/traefik-setup.ts rename to apps/dokploy/server/setup/traefik-setup.ts diff --git a/server/types/with.ts b/apps/dokploy/server/types/with.ts similarity index 100% rename from server/types/with.ts rename to apps/dokploy/server/types/with.ts diff --git a/server/utils/backups/index.ts b/apps/dokploy/server/utils/backups/index.ts similarity index 100% rename from server/utils/backups/index.ts rename to apps/dokploy/server/utils/backups/index.ts diff --git a/server/utils/backups/mariadb.ts b/apps/dokploy/server/utils/backups/mariadb.ts similarity index 100% rename from server/utils/backups/mariadb.ts rename to apps/dokploy/server/utils/backups/mariadb.ts diff --git a/server/utils/backups/mongo.ts b/apps/dokploy/server/utils/backups/mongo.ts similarity index 100% rename from server/utils/backups/mongo.ts rename to apps/dokploy/server/utils/backups/mongo.ts diff --git a/server/utils/backups/mysql.ts b/apps/dokploy/server/utils/backups/mysql.ts similarity index 100% rename from server/utils/backups/mysql.ts rename to apps/dokploy/server/utils/backups/mysql.ts diff --git a/server/utils/backups/postgres.ts b/apps/dokploy/server/utils/backups/postgres.ts similarity index 100% rename from server/utils/backups/postgres.ts rename to apps/dokploy/server/utils/backups/postgres.ts diff --git a/server/utils/backups/utils.ts b/apps/dokploy/server/utils/backups/utils.ts similarity index 100% rename from server/utils/backups/utils.ts rename to apps/dokploy/server/utils/backups/utils.ts diff --git a/server/utils/builders/compose.ts b/apps/dokploy/server/utils/builders/compose.ts similarity index 100% rename from server/utils/builders/compose.ts rename to apps/dokploy/server/utils/builders/compose.ts diff --git a/server/utils/builders/docker-file.ts b/apps/dokploy/server/utils/builders/docker-file.ts similarity index 100% rename from server/utils/builders/docker-file.ts rename to apps/dokploy/server/utils/builders/docker-file.ts diff --git a/server/utils/builders/drop.ts b/apps/dokploy/server/utils/builders/drop.ts similarity index 100% rename from server/utils/builders/drop.ts rename to apps/dokploy/server/utils/builders/drop.ts diff --git a/server/utils/builders/heroku.ts b/apps/dokploy/server/utils/builders/heroku.ts similarity index 100% rename from server/utils/builders/heroku.ts rename to apps/dokploy/server/utils/builders/heroku.ts diff --git a/server/utils/builders/index.ts b/apps/dokploy/server/utils/builders/index.ts similarity index 100% rename from server/utils/builders/index.ts rename to apps/dokploy/server/utils/builders/index.ts diff --git a/server/utils/builders/nixpacks.ts b/apps/dokploy/server/utils/builders/nixpacks.ts similarity index 100% rename from server/utils/builders/nixpacks.ts rename to apps/dokploy/server/utils/builders/nixpacks.ts diff --git a/server/utils/builders/paketo.ts b/apps/dokploy/server/utils/builders/paketo.ts similarity index 100% rename from server/utils/builders/paketo.ts rename to apps/dokploy/server/utils/builders/paketo.ts diff --git a/server/utils/builders/utils.ts b/apps/dokploy/server/utils/builders/utils.ts similarity index 100% rename from server/utils/builders/utils.ts rename to apps/dokploy/server/utils/builders/utils.ts diff --git a/server/utils/cluster/upload.ts b/apps/dokploy/server/utils/cluster/upload.ts similarity index 100% rename from server/utils/cluster/upload.ts rename to apps/dokploy/server/utils/cluster/upload.ts diff --git a/server/utils/databases/mariadb.ts b/apps/dokploy/server/utils/databases/mariadb.ts similarity index 100% rename from server/utils/databases/mariadb.ts rename to apps/dokploy/server/utils/databases/mariadb.ts diff --git a/server/utils/databases/mongo.ts b/apps/dokploy/server/utils/databases/mongo.ts similarity index 100% rename from server/utils/databases/mongo.ts rename to apps/dokploy/server/utils/databases/mongo.ts diff --git a/server/utils/databases/mysql.ts b/apps/dokploy/server/utils/databases/mysql.ts similarity index 100% rename from server/utils/databases/mysql.ts rename to apps/dokploy/server/utils/databases/mysql.ts diff --git a/server/utils/databases/postgres.ts b/apps/dokploy/server/utils/databases/postgres.ts similarity index 100% rename from server/utils/databases/postgres.ts rename to apps/dokploy/server/utils/databases/postgres.ts diff --git a/server/utils/databases/redis.ts b/apps/dokploy/server/utils/databases/redis.ts similarity index 100% rename from server/utils/databases/redis.ts rename to apps/dokploy/server/utils/databases/redis.ts diff --git a/server/utils/docker/compose.ts b/apps/dokploy/server/utils/docker/compose.ts similarity index 100% rename from server/utils/docker/compose.ts rename to apps/dokploy/server/utils/docker/compose.ts diff --git a/server/utils/docker/compose/configs.ts b/apps/dokploy/server/utils/docker/compose/configs.ts similarity index 100% rename from server/utils/docker/compose/configs.ts rename to apps/dokploy/server/utils/docker/compose/configs.ts diff --git a/server/utils/docker/compose/network.ts b/apps/dokploy/server/utils/docker/compose/network.ts similarity index 100% rename from server/utils/docker/compose/network.ts rename to apps/dokploy/server/utils/docker/compose/network.ts diff --git a/server/utils/docker/compose/secrets.ts b/apps/dokploy/server/utils/docker/compose/secrets.ts similarity index 100% rename from server/utils/docker/compose/secrets.ts rename to apps/dokploy/server/utils/docker/compose/secrets.ts diff --git a/server/utils/docker/compose/service.ts b/apps/dokploy/server/utils/docker/compose/service.ts similarity index 100% rename from server/utils/docker/compose/service.ts rename to apps/dokploy/server/utils/docker/compose/service.ts diff --git a/server/utils/docker/compose/volume.ts b/apps/dokploy/server/utils/docker/compose/volume.ts similarity index 100% rename from server/utils/docker/compose/volume.ts rename to apps/dokploy/server/utils/docker/compose/volume.ts diff --git a/server/utils/docker/types.ts b/apps/dokploy/server/utils/docker/types.ts similarity index 100% rename from server/utils/docker/types.ts rename to apps/dokploy/server/utils/docker/types.ts diff --git a/server/utils/docker/utils.ts b/apps/dokploy/server/utils/docker/utils.ts similarity index 100% rename from server/utils/docker/utils.ts rename to apps/dokploy/server/utils/docker/utils.ts diff --git a/server/utils/filesystem/directory.ts b/apps/dokploy/server/utils/filesystem/directory.ts similarity index 100% rename from server/utils/filesystem/directory.ts rename to apps/dokploy/server/utils/filesystem/directory.ts diff --git a/server/utils/filesystem/ssh.ts b/apps/dokploy/server/utils/filesystem/ssh.ts similarity index 100% rename from server/utils/filesystem/ssh.ts rename to apps/dokploy/server/utils/filesystem/ssh.ts diff --git a/server/utils/notifications/build-error.ts b/apps/dokploy/server/utils/notifications/build-error.ts similarity index 100% rename from server/utils/notifications/build-error.ts rename to apps/dokploy/server/utils/notifications/build-error.ts diff --git a/server/utils/notifications/build-success.ts b/apps/dokploy/server/utils/notifications/build-success.ts similarity index 100% rename from server/utils/notifications/build-success.ts rename to apps/dokploy/server/utils/notifications/build-success.ts diff --git a/server/utils/notifications/database-backup.ts b/apps/dokploy/server/utils/notifications/database-backup.ts similarity index 100% rename from server/utils/notifications/database-backup.ts rename to apps/dokploy/server/utils/notifications/database-backup.ts diff --git a/server/utils/notifications/docker-cleanup.ts b/apps/dokploy/server/utils/notifications/docker-cleanup.ts similarity index 100% rename from server/utils/notifications/docker-cleanup.ts rename to apps/dokploy/server/utils/notifications/docker-cleanup.ts diff --git a/server/utils/notifications/dokploy-restart.ts b/apps/dokploy/server/utils/notifications/dokploy-restart.ts similarity index 100% rename from server/utils/notifications/dokploy-restart.ts rename to apps/dokploy/server/utils/notifications/dokploy-restart.ts diff --git a/server/utils/notifications/utils.ts b/apps/dokploy/server/utils/notifications/utils.ts similarity index 100% rename from server/utils/notifications/utils.ts rename to apps/dokploy/server/utils/notifications/utils.ts diff --git a/server/utils/process/execAsync.ts b/apps/dokploy/server/utils/process/execAsync.ts similarity index 100% rename from server/utils/process/execAsync.ts rename to apps/dokploy/server/utils/process/execAsync.ts diff --git a/server/utils/process/spawnAsync.ts b/apps/dokploy/server/utils/process/spawnAsync.ts similarity index 100% rename from server/utils/process/spawnAsync.ts rename to apps/dokploy/server/utils/process/spawnAsync.ts diff --git a/server/utils/providers/docker.ts b/apps/dokploy/server/utils/providers/docker.ts similarity index 100% rename from server/utils/providers/docker.ts rename to apps/dokploy/server/utils/providers/docker.ts diff --git a/server/utils/providers/git.ts b/apps/dokploy/server/utils/providers/git.ts similarity index 100% rename from server/utils/providers/git.ts rename to apps/dokploy/server/utils/providers/git.ts diff --git a/server/utils/providers/github.ts b/apps/dokploy/server/utils/providers/github.ts similarity index 100% rename from server/utils/providers/github.ts rename to apps/dokploy/server/utils/providers/github.ts diff --git a/server/utils/providers/raw.ts b/apps/dokploy/server/utils/providers/raw.ts similarity index 100% rename from server/utils/providers/raw.ts rename to apps/dokploy/server/utils/providers/raw.ts diff --git a/server/utils/traefik/application.ts b/apps/dokploy/server/utils/traefik/application.ts similarity index 100% rename from server/utils/traefik/application.ts rename to apps/dokploy/server/utils/traefik/application.ts diff --git a/server/utils/traefik/domain.ts b/apps/dokploy/server/utils/traefik/domain.ts similarity index 100% rename from server/utils/traefik/domain.ts rename to apps/dokploy/server/utils/traefik/domain.ts diff --git a/server/utils/traefik/file-types.ts b/apps/dokploy/server/utils/traefik/file-types.ts similarity index 100% rename from server/utils/traefik/file-types.ts rename to apps/dokploy/server/utils/traefik/file-types.ts diff --git a/server/utils/traefik/middleware.ts b/apps/dokploy/server/utils/traefik/middleware.ts similarity index 100% rename from server/utils/traefik/middleware.ts rename to apps/dokploy/server/utils/traefik/middleware.ts diff --git a/server/utils/traefik/redirect.ts b/apps/dokploy/server/utils/traefik/redirect.ts similarity index 100% rename from server/utils/traefik/redirect.ts rename to apps/dokploy/server/utils/traefik/redirect.ts diff --git a/server/utils/traefik/registry.ts b/apps/dokploy/server/utils/traefik/registry.ts similarity index 100% rename from server/utils/traefik/registry.ts rename to apps/dokploy/server/utils/traefik/registry.ts diff --git a/server/utils/traefik/security.ts b/apps/dokploy/server/utils/traefik/security.ts similarity index 100% rename from server/utils/traefik/security.ts rename to apps/dokploy/server/utils/traefik/security.ts diff --git a/server/utils/traefik/types.ts b/apps/dokploy/server/utils/traefik/types.ts similarity index 100% rename from server/utils/traefik/types.ts rename to apps/dokploy/server/utils/traefik/types.ts diff --git a/server/utils/traefik/web-server.ts b/apps/dokploy/server/utils/traefik/web-server.ts similarity index 100% rename from server/utils/traefik/web-server.ts rename to apps/dokploy/server/utils/traefik/web-server.ts diff --git a/server/wss/docker-container-logs.ts b/apps/dokploy/server/wss/docker-container-logs.ts similarity index 100% rename from server/wss/docker-container-logs.ts rename to apps/dokploy/server/wss/docker-container-logs.ts diff --git a/server/wss/docker-container-terminal.ts b/apps/dokploy/server/wss/docker-container-terminal.ts similarity index 100% rename from server/wss/docker-container-terminal.ts rename to apps/dokploy/server/wss/docker-container-terminal.ts diff --git a/server/wss/docker-stats.ts b/apps/dokploy/server/wss/docker-stats.ts similarity index 100% rename from server/wss/docker-stats.ts rename to apps/dokploy/server/wss/docker-stats.ts diff --git a/server/wss/listen-deployment.ts b/apps/dokploy/server/wss/listen-deployment.ts similarity index 100% rename from server/wss/listen-deployment.ts rename to apps/dokploy/server/wss/listen-deployment.ts diff --git a/server/wss/terminal.ts b/apps/dokploy/server/wss/terminal.ts similarity index 100% rename from server/wss/terminal.ts rename to apps/dokploy/server/wss/terminal.ts diff --git a/server/wss/utils.ts b/apps/dokploy/server/wss/utils.ts similarity index 100% rename from server/wss/utils.ts rename to apps/dokploy/server/wss/utils.ts diff --git a/setup.ts b/apps/dokploy/setup.ts similarity index 100% rename from setup.ts rename to apps/dokploy/setup.ts diff --git a/styles/globals.css b/apps/dokploy/styles/globals.css similarity index 100% rename from styles/globals.css rename to apps/dokploy/styles/globals.css diff --git a/tailwind.config.ts b/apps/dokploy/tailwind.config.ts similarity index 100% rename from tailwind.config.ts rename to apps/dokploy/tailwind.config.ts diff --git a/templates/appsmith/docker-compose.yml b/apps/dokploy/templates/appsmith/docker-compose.yml similarity index 100% rename from templates/appsmith/docker-compose.yml rename to apps/dokploy/templates/appsmith/docker-compose.yml diff --git a/templates/appsmith/index.ts b/apps/dokploy/templates/appsmith/index.ts similarity index 100% rename from templates/appsmith/index.ts rename to apps/dokploy/templates/appsmith/index.ts diff --git a/templates/baserow/docker-compose.yml b/apps/dokploy/templates/baserow/docker-compose.yml similarity index 100% rename from templates/baserow/docker-compose.yml rename to apps/dokploy/templates/baserow/docker-compose.yml diff --git a/templates/baserow/index.ts b/apps/dokploy/templates/baserow/index.ts similarity index 100% rename from templates/baserow/index.ts rename to apps/dokploy/templates/baserow/index.ts diff --git a/templates/calcom/docker-compose.yml b/apps/dokploy/templates/calcom/docker-compose.yml similarity index 100% rename from templates/calcom/docker-compose.yml rename to apps/dokploy/templates/calcom/docker-compose.yml diff --git a/templates/calcom/index.ts b/apps/dokploy/templates/calcom/index.ts similarity index 100% rename from templates/calcom/index.ts rename to apps/dokploy/templates/calcom/index.ts diff --git a/templates/directus/docker-compose.yml b/apps/dokploy/templates/directus/docker-compose.yml similarity index 100% rename from templates/directus/docker-compose.yml rename to apps/dokploy/templates/directus/docker-compose.yml diff --git a/templates/directus/index.ts b/apps/dokploy/templates/directus/index.ts similarity index 100% rename from templates/directus/index.ts rename to apps/dokploy/templates/directus/index.ts diff --git a/templates/documenso/docker-compose.yml b/apps/dokploy/templates/documenso/docker-compose.yml similarity index 100% rename from templates/documenso/docker-compose.yml rename to apps/dokploy/templates/documenso/docker-compose.yml diff --git a/templates/documenso/index.ts b/apps/dokploy/templates/documenso/index.ts similarity index 100% rename from templates/documenso/index.ts rename to apps/dokploy/templates/documenso/index.ts diff --git a/templates/doublezero/docker-compose.yml b/apps/dokploy/templates/doublezero/docker-compose.yml similarity index 100% rename from templates/doublezero/docker-compose.yml rename to apps/dokploy/templates/doublezero/docker-compose.yml diff --git a/templates/doublezero/index.ts b/apps/dokploy/templates/doublezero/index.ts similarity index 100% rename from templates/doublezero/index.ts rename to apps/dokploy/templates/doublezero/index.ts diff --git a/templates/excalidraw/docker-compose.yml b/apps/dokploy/templates/excalidraw/docker-compose.yml similarity index 100% rename from templates/excalidraw/docker-compose.yml rename to apps/dokploy/templates/excalidraw/docker-compose.yml diff --git a/templates/excalidraw/index.ts b/apps/dokploy/templates/excalidraw/index.ts similarity index 100% rename from templates/excalidraw/index.ts rename to apps/dokploy/templates/excalidraw/index.ts diff --git a/templates/ghost/docker-compose.yml b/apps/dokploy/templates/ghost/docker-compose.yml similarity index 100% rename from templates/ghost/docker-compose.yml rename to apps/dokploy/templates/ghost/docker-compose.yml diff --git a/templates/ghost/index.ts b/apps/dokploy/templates/ghost/index.ts similarity index 100% rename from templates/ghost/index.ts rename to apps/dokploy/templates/ghost/index.ts diff --git a/templates/glitchtip/docker-compose.yml b/apps/dokploy/templates/glitchtip/docker-compose.yml similarity index 100% rename from templates/glitchtip/docker-compose.yml rename to apps/dokploy/templates/glitchtip/docker-compose.yml diff --git a/templates/glitchtip/index.ts b/apps/dokploy/templates/glitchtip/index.ts similarity index 100% rename from templates/glitchtip/index.ts rename to apps/dokploy/templates/glitchtip/index.ts diff --git a/templates/grafana/docker-compose.yml b/apps/dokploy/templates/grafana/docker-compose.yml similarity index 100% rename from templates/grafana/docker-compose.yml rename to apps/dokploy/templates/grafana/docker-compose.yml diff --git a/templates/grafana/index.ts b/apps/dokploy/templates/grafana/index.ts similarity index 100% rename from templates/grafana/index.ts rename to apps/dokploy/templates/grafana/index.ts diff --git a/templates/jellyfin/docker-compose.yml b/apps/dokploy/templates/jellyfin/docker-compose.yml similarity index 100% rename from templates/jellyfin/docker-compose.yml rename to apps/dokploy/templates/jellyfin/docker-compose.yml diff --git a/templates/jellyfin/index.ts b/apps/dokploy/templates/jellyfin/index.ts similarity index 100% rename from templates/jellyfin/index.ts rename to apps/dokploy/templates/jellyfin/index.ts diff --git a/templates/listmonk/docker-compose.yml b/apps/dokploy/templates/listmonk/docker-compose.yml similarity index 100% rename from templates/listmonk/docker-compose.yml rename to apps/dokploy/templates/listmonk/docker-compose.yml diff --git a/templates/listmonk/index.ts b/apps/dokploy/templates/listmonk/index.ts similarity index 100% rename from templates/listmonk/index.ts rename to apps/dokploy/templates/listmonk/index.ts diff --git a/templates/meilisearch/docker-compose.yml b/apps/dokploy/templates/meilisearch/docker-compose.yml similarity index 100% rename from templates/meilisearch/docker-compose.yml rename to apps/dokploy/templates/meilisearch/docker-compose.yml diff --git a/templates/meilisearch/index.ts b/apps/dokploy/templates/meilisearch/index.ts similarity index 100% rename from templates/meilisearch/index.ts rename to apps/dokploy/templates/meilisearch/index.ts diff --git a/templates/metabase/docker-compose.yml b/apps/dokploy/templates/metabase/docker-compose.yml similarity index 100% rename from templates/metabase/docker-compose.yml rename to apps/dokploy/templates/metabase/docker-compose.yml diff --git a/templates/metabase/index.ts b/apps/dokploy/templates/metabase/index.ts similarity index 100% rename from templates/metabase/index.ts rename to apps/dokploy/templates/metabase/index.ts diff --git a/templates/minio/docker-compose.yml b/apps/dokploy/templates/minio/docker-compose.yml similarity index 100% rename from templates/minio/docker-compose.yml rename to apps/dokploy/templates/minio/docker-compose.yml diff --git a/templates/minio/index.ts b/apps/dokploy/templates/minio/index.ts similarity index 100% rename from templates/minio/index.ts rename to apps/dokploy/templates/minio/index.ts diff --git a/templates/n8n/docker-compose.yml b/apps/dokploy/templates/n8n/docker-compose.yml similarity index 100% rename from templates/n8n/docker-compose.yml rename to apps/dokploy/templates/n8n/docker-compose.yml diff --git a/templates/n8n/index.ts b/apps/dokploy/templates/n8n/index.ts similarity index 100% rename from templates/n8n/index.ts rename to apps/dokploy/templates/n8n/index.ts diff --git a/templates/nocodb/docker-compose.yml b/apps/dokploy/templates/nocodb/docker-compose.yml similarity index 100% rename from templates/nocodb/docker-compose.yml rename to apps/dokploy/templates/nocodb/docker-compose.yml diff --git a/templates/nocodb/index.ts b/apps/dokploy/templates/nocodb/index.ts similarity index 100% rename from templates/nocodb/index.ts rename to apps/dokploy/templates/nocodb/index.ts diff --git a/templates/odoo/docker-compose.yml b/apps/dokploy/templates/odoo/docker-compose.yml similarity index 100% rename from templates/odoo/docker-compose.yml rename to apps/dokploy/templates/odoo/docker-compose.yml diff --git a/templates/odoo/index.ts b/apps/dokploy/templates/odoo/index.ts similarity index 100% rename from templates/odoo/index.ts rename to apps/dokploy/templates/odoo/index.ts diff --git a/templates/open-webui/docker-compose.yml b/apps/dokploy/templates/open-webui/docker-compose.yml similarity index 100% rename from templates/open-webui/docker-compose.yml rename to apps/dokploy/templates/open-webui/docker-compose.yml diff --git a/templates/open-webui/index.ts b/apps/dokploy/templates/open-webui/index.ts similarity index 100% rename from templates/open-webui/index.ts rename to apps/dokploy/templates/open-webui/index.ts diff --git a/templates/phpmyadmin/docker-compose.yml b/apps/dokploy/templates/phpmyadmin/docker-compose.yml similarity index 100% rename from templates/phpmyadmin/docker-compose.yml rename to apps/dokploy/templates/phpmyadmin/docker-compose.yml diff --git a/templates/phpmyadmin/index.ts b/apps/dokploy/templates/phpmyadmin/index.ts similarity index 100% rename from templates/phpmyadmin/index.ts rename to apps/dokploy/templates/phpmyadmin/index.ts diff --git a/templates/plausible/docker-compose.yml b/apps/dokploy/templates/plausible/docker-compose.yml similarity index 100% rename from templates/plausible/docker-compose.yml rename to apps/dokploy/templates/plausible/docker-compose.yml diff --git a/templates/plausible/index.ts b/apps/dokploy/templates/plausible/index.ts similarity index 100% rename from templates/plausible/index.ts rename to apps/dokploy/templates/plausible/index.ts diff --git a/templates/pocketbase/docker-compose.yml b/apps/dokploy/templates/pocketbase/docker-compose.yml similarity index 100% rename from templates/pocketbase/docker-compose.yml rename to apps/dokploy/templates/pocketbase/docker-compose.yml diff --git a/templates/pocketbase/index.ts b/apps/dokploy/templates/pocketbase/index.ts similarity index 100% rename from templates/pocketbase/index.ts rename to apps/dokploy/templates/pocketbase/index.ts diff --git a/templates/rocketchat/docker-compose.yml b/apps/dokploy/templates/rocketchat/docker-compose.yml similarity index 100% rename from templates/rocketchat/docker-compose.yml rename to apps/dokploy/templates/rocketchat/docker-compose.yml diff --git a/templates/rocketchat/index.ts b/apps/dokploy/templates/rocketchat/index.ts similarity index 100% rename from templates/rocketchat/index.ts rename to apps/dokploy/templates/rocketchat/index.ts diff --git a/templates/templates.ts b/apps/dokploy/templates/templates.ts similarity index 100% rename from templates/templates.ts rename to apps/dokploy/templates/templates.ts diff --git a/templates/types/templates-data.type.ts b/apps/dokploy/templates/types/templates-data.type.ts similarity index 100% rename from templates/types/templates-data.type.ts rename to apps/dokploy/templates/types/templates-data.type.ts diff --git a/templates/umami/docker-compose.yml b/apps/dokploy/templates/umami/docker-compose.yml similarity index 100% rename from templates/umami/docker-compose.yml rename to apps/dokploy/templates/umami/docker-compose.yml diff --git a/templates/umami/index.ts b/apps/dokploy/templates/umami/index.ts similarity index 100% rename from templates/umami/index.ts rename to apps/dokploy/templates/umami/index.ts diff --git a/templates/uptime-kuma/docker-compose.yml b/apps/dokploy/templates/uptime-kuma/docker-compose.yml similarity index 100% rename from templates/uptime-kuma/docker-compose.yml rename to apps/dokploy/templates/uptime-kuma/docker-compose.yml diff --git a/templates/uptime-kuma/index.ts b/apps/dokploy/templates/uptime-kuma/index.ts similarity index 100% rename from templates/uptime-kuma/index.ts rename to apps/dokploy/templates/uptime-kuma/index.ts diff --git a/templates/utils/index.ts b/apps/dokploy/templates/utils/index.ts similarity index 100% rename from templates/utils/index.ts rename to apps/dokploy/templates/utils/index.ts diff --git a/templates/wordpress/docker-compose.yml b/apps/dokploy/templates/wordpress/docker-compose.yml similarity index 100% rename from templates/wordpress/docker-compose.yml rename to apps/dokploy/templates/wordpress/docker-compose.yml diff --git a/templates/wordpress/index.ts b/apps/dokploy/templates/wordpress/index.ts similarity index 100% rename from templates/wordpress/index.ts rename to apps/dokploy/templates/wordpress/index.ts diff --git a/tsconfig.json b/apps/dokploy/tsconfig.json similarity index 100% rename from tsconfig.json rename to apps/dokploy/tsconfig.json diff --git a/tsconfig.server.json b/apps/dokploy/tsconfig.server.json similarity index 100% rename from tsconfig.server.json rename to apps/dokploy/tsconfig.server.json diff --git a/apps/dokploy/tsconfig.tsbuildinfo b/apps/dokploy/tsconfig.tsbuildinfo new file mode 100644 index 00000000..36af9ac2 --- /dev/null +++ b/apps/dokploy/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/styled-jsx/types/css.d.ts","../../node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/global.d.ts","../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@types+prop-types@15.7.12/node_modules/@types/prop-types/index.d.ts","../../node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/styled-jsx/types/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/styled-jsx/types/macro.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/styled-jsx/types/style.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/styled-jsx/types/global.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/amp.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/amp.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@18.19.42/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/get-page-files.d.ts","../../node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/canary.d.ts","../../node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/experimental.d.ts","../../node_modules/.pnpm/@types+react-dom@18.3.0/node_modules/@types/react-dom/index.d.ts","../../node_modules/.pnpm/@types+react-dom@18.3.0/node_modules/@types/react-dom/canary.d.ts","../../node_modules/.pnpm/@types+react-dom@18.3.0/node_modules/@types/react-dom/experimental.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/webpack/webpack.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/load-custom-routes.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/image-config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/body-streams.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-kind.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-matches/route-match.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/app-router-headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/request-meta.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/revalidate.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/config-shared.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/base-http/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/api-utils/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/node-environment.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/require-hook.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/node-polyfill-crypto.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/page-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/render-result.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/next-url.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/request.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/response.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/setup-exception-listeners.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/constants.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/base-http/node.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/font-utils.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/route-module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/load-components.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/mitt.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/with-router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/route-loader.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/page-loader.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/bloom-filter.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router/router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/constants.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/page-extensions-type.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/app-dir-module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/response-cache/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/response-cache/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/hooks-server-context.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/static-generation-async-storage-instance.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/request-async-storage-instance.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/request-async-storage.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/create-error-handler.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/app-render.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","../../node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/error-boundary.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/app-router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/layout-router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/render-from-template-context.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/action-async-storage-instance.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/action-async-storage.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/client-page.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/search-params.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/not-found-boundary.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/rsc/taint.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/entry-base.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/templates/app-page.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/app-render/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/templates/pages.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-modules/pages/module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/render.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/normalizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/action.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/base-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/image-optimizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/next-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/coalesced-function.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/router-utils/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/trace/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/trace/trace.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/trace/shared.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/trace/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/load-jsconfig.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack-config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/build/swc/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/dev/parse-version-info.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/telemetry/storage.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/render-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/router-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/dev/static-paths-worker.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/dev/next-dev-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/next.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/types/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../../node_modules/.pnpm/@next+env@14.2.5/node_modules/@next/env/dist/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/utils.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/pages/_app.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/app.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/cache.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/runtime-config.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/pages/_document.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/document.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/dynamic.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dynamic.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/pages/_error.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/error.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/head.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/head.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/draft-mode.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/get-img-props.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/image-component.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/shared/lib/image-external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/image.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/link.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/link.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/redirect-status-code.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/redirect.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/not-found.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/navigation.react-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/components/navigation.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/navigation.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/client/script.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/script.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@vercel/og/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/types/global.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/types/compiled.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/image-types/global.d.ts","./next-env.d.ts","../../node_modules/.pnpm/esbuild@0.20.2/node_modules/esbuild/lib/main.d.ts","../../node_modules/.pnpm/dotenv@16.4.5/node_modules/dotenv/lib/main.d.ts","./esbuild.config.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/index.d.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/cookie/index.d.ts","../../node_modules/.pnpm/lucia@3.2.0/node_modules/lucia/dist/database.d.ts","../../node_modules/.pnpm/lucia@3.2.0/node_modules/lucia/dist/core.d.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/password/argon2id.d.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/password/scrypt.d.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/password/bcrypt.d.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/password/index.d.ts","../../node_modules/.pnpm/lucia@3.2.0/node_modules/lucia/dist/crypto.d.ts","../../node_modules/.pnpm/oslo@1.2.0/node_modules/oslo/dist/request/index.d.ts","../../node_modules/.pnpm/lucia@3.2.0/node_modules/lucia/dist/index.d.ts","./middleware.ts","../../node_modules/.pnpm/postgres@3.4.4/node_modules/postgres/types/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/entity.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/migrator.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/logger.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/utils.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/table.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/operations.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/subquery.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/sql.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/column.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/checks.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/indexes.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/primary-keys.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/unique-constraint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/table.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/foreign-keys.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/bigint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/binary.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/boolean.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/char.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/custom.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/date.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/datetime.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/decimal.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/double.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/enum.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/float.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/int.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/json.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/mediumint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/real.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/serial.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/smallint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/text.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/time.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/date.common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/timestamp.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/tinyint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/varbinary.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/varchar.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/year.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/columns/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/expressions/conditions.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/expressions/select.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/expressions/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/functions/aggregate.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/functions/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sql/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/query-builders/query-builder.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/query-builders/select.types.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/relations.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/query-promise.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/delete.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/update.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/insert.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/dialect.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/subquery.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/view-base.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/select.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/query-builder.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/query.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/db.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/session.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/view-common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/view.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/query-builders/select.types.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/alias.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/schema.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/alias.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/errors.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/expressions.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/view-common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/utils.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/mysql-core/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/checks.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/foreign-keys.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/indexes.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/primary-keys.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/unique-constraint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/table.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/view-base.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/subquery.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/session.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/session.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/runnable-query.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/select.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/query-builder.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/view-common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/view.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/select.types.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/alias.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/delete.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/update.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/insert.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/enum.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/schema.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/utils.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/utils/array.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/utils/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/checks.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/indexes.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/primary-keys.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/unique-constraint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/table.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/foreign-keys.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/blob.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/custom.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/subquery.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/query.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/db.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/raw.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/session.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/delete.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/update.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/insert.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/dialect.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/view-base.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/select.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/view.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/utils.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/integer.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/numeric.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/real.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/text.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/columns/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/query-builders/select.types.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/alias.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/sqlite-core/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/column-builder.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/bigint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/bigserial.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/boolean.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/char.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/cidr.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/custom.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/date.common.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/date.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/double-precision.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/inet.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/integer.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/timestamp.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/interval.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/json.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/jsonb.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/macaddr.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/macaddr8.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/numeric.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/real.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/serial.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/smallint.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/smallserial.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/text.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/time.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/uuid.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/varchar.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/columns/index.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/dialect.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/query.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/query-builders/raw.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/pg-core/db.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/postgres-js/session.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/postgres-js/driver.d.ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/postgres-js/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/transformer.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/rpc/codes.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/error/trpcerror.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/observable.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/operators/share.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/operators/map.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/operators/tap.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/operators/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/internals/observabletopromise.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/rpc/envelopes.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/rpc/parsetrpcmessage.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/rpc/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/deprecated/internals/middlewares.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/deprecated/internals/procedure.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/parser.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/internals/getparsefn.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/internal/serialize.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/jsonify.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/procedure.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/internals/utils.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/middleware.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/internals/procedurebuilder.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/router.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/internals/mergerouters.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/inittrpc.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/error/formatter.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/core/internals/config.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/deprecated/interop.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/deprecated/router.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/internals.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/index.d.ts","./templates/types/templates-data.type.ts","./templates/pocketbase/index.ts","./templates/plausible/index.ts","./templates/calcom/index.ts","./templates/grafana/index.ts","./templates/directus/index.ts","./templates/baserow/index.ts","./templates/ghost/index.ts","./templates/uptime-kuma/index.ts","./templates/n8n/index.ts","./templates/wordpress/index.ts","./templates/odoo/index.ts","./templates/appsmith/index.ts","./templates/excalidraw/index.ts","./templates/documenso/index.ts","./templates/nocodb/index.ts","./templates/meilisearch/index.ts","./templates/phpmyadmin/index.ts","./templates/rocketchat/index.ts","./templates/minio/index.ts","./templates/metabase/index.ts","./templates/glitchtip/index.ts","./templates/open-webui/index.ts","./templates/listmonk/index.ts","./templates/doublezero/index.ts","./templates/umami/index.ts","./templates/jellyfin/index.ts","./templates/templates.ts","./templates/utils/index.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/typealiases.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/util.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/zoderror.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/locales/en.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/errors.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/parseutil.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/enumutil.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/errorutil.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/helpers/partialutil.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/types.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/external.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.d.ts","../../node_modules/.pnpm/zod@3.23.8/node_modules/zod/index.d.ts","../../node_modules/.pnpm/drizzle-zod@0.5.1_drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0__zod@3.23.8/node_modules/drizzle-zod/index.d.mts","../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/index.d.ts","./server/db/validations/index.ts","./server/db/schema/ssh-key.ts","./server/db/schema/user.ts","./server/db/schema/auth.ts","./server/db/schema/registry.ts","./server/db/schema/shared.ts","./server/db/schema/admin.ts","./server/db/schema/destination.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale-proxy.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/animal/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/color/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/commerce/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/company/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/database/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/date/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/finance/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/git/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/hacker/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/helpers/unique.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/helpers/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/image/providers/lorempicsum.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/image/providers/placeholder.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/image/providers/unsplash.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/image/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/internet/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/location/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/lorem/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/music/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/person/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/phone/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/utils/types.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/string/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/random/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/science/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/system/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/vehicle/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/word/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/randomizer.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/datatype/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/number/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/simple-faker.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/faker.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/internal/module-base.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/modules/airline/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/animal.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/color.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/commerce.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/company.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/database.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/date.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/finance.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/hacker.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/internet.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/location.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/lorem.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/metadata.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/music.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/person.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/phone_number.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/science.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/system.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/vehicle.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/word.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/definitions.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/airline.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/definitions/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/errors/faker-error.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/af_za.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ar.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/az.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/base.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/cs_cz.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/da.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/de.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/de_at.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/de_ch.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/dv.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/el.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_au.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_au_ocker.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_bork.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_ca.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_gb.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_gh.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_hk.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_ie.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_in.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_ng.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_us.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/en_za.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/eo.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/es.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/es_mx.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fa.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fi.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fr.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fr_be.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fr_ca.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fr_ch.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fr_lu.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/fr_sn.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/he.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/hr.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/hu.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/hy.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/id_id.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/it.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ja.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ka_ge.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ko.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/lv.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/mk.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/nb_no.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ne.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/nl.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/nl_be.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/pl.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/pt_br.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/pt_pt.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ro.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ro_md.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ru.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/sk.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/sr_rs_latin.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/sv.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/th.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/tr.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/uk.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/ur.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/vi.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/yo_ng.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/zh_cn.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/zh_tw.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/zu_za.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locale/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/af_za/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ar/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/az/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/base/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/cs_cz/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/da/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/de/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/de_at/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/de_ch/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/dv/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/el/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_au/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_au_ocker/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_bork/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_ca/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_gb/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_gh/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_hk/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_ie/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_in/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_ng/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_us/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/en_za/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/eo/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/es/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/es_mx/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fa/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fi/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fr/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fr_be/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fr_ca/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fr_ch/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fr_lu/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/fr_sn/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/he/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/hr/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/hu/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/hy/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/id_id/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/it/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ja/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ka_ge/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ko/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/lv/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/mk/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/nb_no/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ne/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/nl/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/nl_be/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/pl/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/pt_br/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/pt_pt/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ro/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ro_md/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ru/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/sk/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/sr_rs_latin/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/sv/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/th/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/tr/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/uk/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/ur/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/vi/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/yo_ng/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/zh_cn/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/zh_tw/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/zu_za/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/locales/index.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/utils/merge-locales.d.ts","../../node_modules/.pnpm/@faker-js+faker@8.4.1/node_modules/@faker-js/faker/dist/types/index.d.ts","./server/db/schema/utils.ts","./server/db/schema/mysql.ts","./server/db/schema/postgres.ts","./server/db/schema/redis.ts","./server/db/schema/project.ts","./server/db/schema/mongo.ts","./server/db/schema/backups.ts","./server/db/schema/mariadb.ts","./server/db/schema/mount.ts","./server/db/schema/compose.ts","./server/db/schema/deployment.ts","./server/db/schema/domain.ts","./server/db/schema/port.ts","./server/db/schema/redirects.ts","./server/db/schema/security.ts","./server/db/schema/application.ts","./server/db/schema/certificate.ts","./server/db/schema/session.ts","./server/db/schema/notification.ts","./server/db/schema/index.ts","./server/db/index.ts","../../node_modules/.pnpm/@types+bcrypt@5.0.2/node_modules/@types/bcrypt/index.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/locale/types.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/fp/types.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/types.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/add.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addbusinessdays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/adddays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addhours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addisoweekyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addmilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addminutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addmonths.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addquarters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addweeks.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/areintervalsoverlapping.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/clamp.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/closestindexto.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/closestto.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/compareasc.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/comparedesc.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/constructfrom.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/constructnow.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/daystoweeks.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinbusinessdays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendardays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendarisoweekyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendarisoweeks.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendarmonths.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendarquarters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendarweeks.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceincalendaryears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceindays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinhours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinisoweekyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinmilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinminutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinmonths.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinquarters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinweeks.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/differenceinyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachdayofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachhourofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachminuteofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachmonthofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachquarterofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachweekofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachweekendofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachweekendofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachweekendofyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachyearofinterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofdecade.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofhour.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofisoweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofminute.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofquarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofsecond.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endoftoday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endoftomorrow.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endofyesterday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/_lib/format/formatters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/_lib/format/longformatters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/format.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatdistance.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatdistancestrict.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatdistancetonow.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatdistancetonowstrict.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatduration.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatiso.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatiso9075.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatisoduration.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatrfc3339.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatrfc7231.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/formatrelative.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/fromunixtime.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getdate.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getdayofyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getdaysinmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getdaysinyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getdecade.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/_lib/defaultoptions.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getdefaultoptions.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/gethours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getisoday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getisoweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getisoweeksinyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getmilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getminutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getoverlappingdaysinintervals.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getquarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/gettime.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getunixtime.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getweekofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getweeksinmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/hourstomilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/hourstominutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/hourstoseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/interval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/intervaltoduration.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/intlformat.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/intlformatdistance.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isafter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isbefore.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isdate.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isequal.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isexists.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isfirstdayofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isfriday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isfuture.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/islastdayofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isleapyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/ismatch.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/ismonday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/ispast.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issameday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issamehour.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issameisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issameisoweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issameminute.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issamemonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issamequarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issamesecond.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issameweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issameyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issaturday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/issunday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthishour.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthisisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthisminute.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthismonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthisquarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthissecond.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthisweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthisyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isthursday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/istoday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/istomorrow.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/istuesday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isvalid.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/iswednesday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isweekend.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/iswithininterval.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isyesterday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofdecade.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofisoweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofquarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lastdayofyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/_lib/format/lightformatters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/lightformat.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/max.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/milliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/millisecondstohours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/millisecondstominutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/millisecondstoseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/min.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/minutestohours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/minutestomilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/minutestoseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/monthstoquarters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/monthstoyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextfriday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextmonday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextsaturday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextsunday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextthursday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nexttuesday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/nextwednesday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/types.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/setter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parser.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parseiso.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parsejson.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previousday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previousfriday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previousmonday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previoussaturday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previoussunday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previousthursday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previoustuesday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/previouswednesday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/quarterstomonths.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/quarterstoyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/roundtonearesthours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/roundtonearestminutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/secondstohours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/secondstomilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/secondstominutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/set.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setdate.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setdayofyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setdefaultoptions.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/sethours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setisoday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setisoweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setmilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setminutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setquarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofdecade.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofhour.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofisoweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofisoweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofminute.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofmonth.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofquarter.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofsecond.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startoftoday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startoftomorrow.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofweek.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofweekyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofyear.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startofyesterday.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/sub.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subbusinessdays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subdays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subhours.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subisoweekyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/submilliseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subminutes.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/submonths.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subquarters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subseconds.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subweeks.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/subyears.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/todate.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/transpose.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/weekstodays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/yearstodays.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/yearstomonths.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/yearstoquarters.d.ts","../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/index.d.mts","./server/api/services/admin.ts","../../node_modules/.pnpm/node-pty@1.0.0/node_modules/node-pty/typings/node-pty.d.ts","../../node_modules/.pnpm/cacheable-lookup@7.0.0/node_modules/cacheable-lookup/index.d.ts","../../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.d.ts","../../node_modules/.pnpm/http2-wrapper@2.2.1/node_modules/http2-wrapper/index.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/util/headers.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/filelike.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/formdatalike.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/formdataencoder.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/util/isfile.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/util/isformdata.d.ts","../../node_modules/.pnpm/form-data-encoder@2.1.4/node_modules/form-data-encoder/@type/index.d.ts","../../node_modules/.pnpm/keyv@4.5.4/node_modules/keyv/src/index.d.ts","../../node_modules/.pnpm/responselike@3.0.0/node_modules/responselike/index.d.ts","../../node_modules/.pnpm/@types+http-cache-semantics@4.0.4/node_modules/@types/http-cache-semantics/index.d.ts","../../node_modules/.pnpm/cacheable-request@10.2.14/node_modules/cacheable-request/dist/types.d.ts","../../node_modules/.pnpm/cacheable-request@10.2.14/node_modules/cacheable-request/dist/index.d.ts","../../node_modules/.pnpm/@szmarczak+http-timer@5.0.1/node_modules/@szmarczak/http-timer/dist/source/index.d.ts","../../node_modules/.pnpm/p-cancelable@3.0.0/node_modules/p-cancelable/index.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/timed-out.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/index.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/response.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/errors.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/as-promise/types.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/options.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/calculate-retry-delay.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/types.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/create.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/core/parse-link-header.d.ts","../../node_modules/.pnpm/got@12.6.1/node_modules/got/dist/source/index.d.ts","../../node_modules/.pnpm/public-ip@6.0.2/node_modules/public-ip/index.d.ts","../../node_modules/.pnpm/@types+ws@8.5.10/node_modules/@types/ws/index.d.ts","../../node_modules/.pnpm/@types+ws@8.5.10/node_modules/@types/ws/index.d.mts","../../node_modules/.pnpm/@lucia-auth+adapter-drizzle@1.0.7_lucia@3.2.0/node_modules/@lucia-auth/adapter-drizzle/dist/drivers/mysql.d.ts","../../node_modules/.pnpm/@lucia-auth+adapter-drizzle@1.0.7_lucia@3.2.0/node_modules/@lucia-auth/adapter-drizzle/dist/drivers/postgresql.d.ts","../../node_modules/.pnpm/@lucia-auth+adapter-drizzle@1.0.7_lucia@3.2.0/node_modules/@lucia-auth/adapter-drizzle/dist/drivers/sqlite.d.ts","../../node_modules/.pnpm/@lucia-auth+adapter-drizzle@1.0.7_lucia@3.2.0/node_modules/@lucia-auth/adapter-drizzle/dist/index.d.ts","./server/auth/auth.ts","./server/wss/terminal.ts","../../node_modules/.pnpm/hi-base32@0.5.1/node_modules/hi-base32/index.d.ts","../../node_modules/.pnpm/otpauth@9.3.1/node_modules/otpauth/dist/otpauth.d.ts","../../node_modules/.pnpm/@types+qrcode@1.5.5/node_modules/@types/qrcode/index.d.ts","./server/api/services/auth.ts","./server/auth/random-password.ts","./reset-password.ts","../../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/source-map.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/previous-map.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/input.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/css-syntax-error.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/declaration.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/root.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/warning.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/lazy-result.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/no-work-result.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/processor.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/result.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/document.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/rule.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/node.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/comment.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/container.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/at-rule.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/list.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/postcss.d.ts","../../node_modules/.pnpm/postcss@8.4.40/node_modules/postcss/lib/postcss.d.mts","../../node_modules/.pnpm/tailwindcss@3.4.7/node_modules/tailwindcss/types/generated/corepluginlist.d.ts","../../node_modules/.pnpm/tailwindcss@3.4.7/node_modules/tailwindcss/types/generated/colors.d.ts","../../node_modules/.pnpm/tailwindcss@3.4.7/node_modules/tailwindcss/types/config.d.ts","../../node_modules/.pnpm/tailwindcss@3.4.7/node_modules/tailwindcss/types/index.d.ts","../../node_modules/.pnpm/tailwindcss@3.4.7/node_modules/tailwindcss/types/generated/default-theme.d.ts","../../node_modules/.pnpm/tailwindcss@3.4.7/node_modules/tailwindcss/defaulttheme.d.ts","./tailwind.config.ts","../../node_modules/.pnpm/@types+estree@1.0.5/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/rollup@4.19.1/node_modules/rollup/dist/rollup.d.ts","../../node_modules/.pnpm/rollup@4.19.1/node_modules/rollup/dist/parseast.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/types/hmrpayload.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/types/customevent.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/dist/node/types.d-agj9qkwt.d.ts","../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/dist/node/runtime.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/types/importglob.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/types/metadata.d.ts","../../node_modules/.pnpm/vite@5.3.5_@types+node@18.19.42_terser@5.31.3/node_modules/vite/dist/node/index.d.ts","../../node_modules/.pnpm/vite-tsconfig-paths@4.3.2_typescript@5.5.3_vite@5.3.5_@types+node@18.19.42_terser@5.31.3_/node_modules/vite-tsconfig-paths/dist/index.d.ts","../../node_modules/.pnpm/vite-tsconfig-paths@4.3.2_typescript@5.5.3_vite@5.3.5_@types+node@18.19.42_terser@5.31.3_/node_modules/vite-tsconfig-paths/dist/index.d.mts","../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../node_modules/.pnpm/pretty-format@29.7.0/node_modules/pretty-format/build/index.d.ts","../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/tasks-k5xerdtv.d.ts","../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/types-9l4nily8.d.ts","../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/error.d.ts","../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vite-node/dist/trace-mapping.d-xyifztpm.d.ts","../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vite-node/dist/index-o2irwhkf.d.ts","../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vite-node/dist/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/environment-cmigivxz.d.ts","../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/index-s94asl6q.d.ts","../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/@vitest+expect@1.6.0/node_modules/@vitest/expect/dist/chai.d.cts","../../node_modules/.pnpm/@vitest+expect@1.6.0/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+expect@1.6.0/node_modules/@vitest/expect/index.d.ts","../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.8.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vite-node/dist/client.d.ts","../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/manager.d.ts","../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vite-node/dist/server.d.ts","../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vitest/dist/reporters-yx5zttev.d.ts","../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vitest/dist/config.d.ts","../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vitest/config.d.ts","./__test__/vitest.config.ts","../../node_modules/.pnpm/@types+ssh2@1.15.0/node_modules/@types/ssh2/index.d.ts","../../node_modules/.pnpm/@types+docker-modem@3.0.6/node_modules/@types/docker-modem/index.d.ts","../../node_modules/.pnpm/@types+dockerode@3.3.23/node_modules/@types/dockerode/index.d.ts","./server/constants/index.ts","./server/types/with.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/primitive.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/typed-array.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/basic.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/observable-like.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/internal.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/except.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/simplify.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/writable.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/mutable.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/merge.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/merge-exclusive.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/require-at-least-one.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/require-exactly-one.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/require-all-or-none.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/remove-index-signature.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/partial-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/partial-on-undefined-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/readonly-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/literal-union.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/promisable.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/opaque.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/invariant-of.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/set-optional.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/set-required.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/set-non-nullable.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/value-of.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/promise-value.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/async-return-type.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/conditional-keys.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/conditional-except.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/conditional-pick.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/union-to-intersection.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/stringified.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/fixed-length-array.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/multidimensional-array.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/iterable-element.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/entry.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/entries.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/set-return-type.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/asyncify.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/numeric.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/jsonify.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/schema.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/literal-to-primitive.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/string-key-of.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/exact.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/readonly-tuple.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/optional-keys-of.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/has-optional-keys.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/required-keys-of.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/has-required-keys.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/spread.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/split.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/camel-case.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/camel-cased-properties.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/delimiter-case.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/kebab-case.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/kebab-cased-properties.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/pascal-case.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/pascal-cased-properties.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/snake-case.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/snake-cased-properties.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/includes.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/screaming-snake-case.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/join.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/trim.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/replace.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/get.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/last-array-element.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/package-json.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/source/tsconfig-json.d.ts","../../node_modules/.pnpm/type-fest@2.19.0/node_modules/type-fest/index.d.ts","../../node_modules/.pnpm/cli-boxes@3.0.0/node_modules/cli-boxes/index.d.ts","../../node_modules/.pnpm/boxen@7.1.1/node_modules/boxen/index.d.ts","../../node_modules/.pnpm/safe-buffer@5.1.2/node_modules/safe-buffer/index.d.ts","../../node_modules/.pnpm/@types+readable-stream@4.0.15/node_modules/@types/readable-stream/index.d.ts","../../node_modules/.pnpm/bl@6.0.11/node_modules/bl/bufferlist.d.ts","../../node_modules/.pnpm/bl@6.0.11/node_modules/bl/index.d.ts","./server/utils/process/spawnasync.ts","./server/utils/cluster/upload.ts","../../node_modules/.pnpm/dockerstats@2.4.2/node_modules/dockerstats/lib/index.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/cpu.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/drive.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/mem.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/netstat.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/openfiles.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/os.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/oscmd.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/proc.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/users.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/exec.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/lib/index.d.ts","../../node_modules/.pnpm/@types+node-os-utils@1.3.4/node_modules/@types/node-os-utils/index.d.ts","./server/monitoring/utilts.ts","./server/utils/providers/docker.ts","./server/utils/filesystem/ssh.ts","./server/api/services/ssh-key.ts","./server/utils/process/execasync.ts","./server/utils/providers/git.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requestmethod.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/url.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/fetch.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/signal.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requestrequestoptions.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requestheaders.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requestparameters.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/endpointoptions.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/responseheaders.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/octokitresponse.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/endpointdefaults.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requestoptions.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/route.d.ts","../../node_modules/.pnpm/@octokit+openapi-types@22.2.0/node_modules/@octokit/openapi-types/types.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/generated/endpoints.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/endpointinterface.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requestinterface.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/authinterface.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/requesterror.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/strategyinterface.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/version.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/getresponsetypefromendpointmethod.d.ts","../../node_modules/.pnpm/@octokit+types@13.5.0/node_modules/@octokit/types/dist-types/index.d.ts","../../node_modules/.pnpm/lru-cache@10.4.3/node_modules/lru-cache/dist/esm/index.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/version.d.ts","../../node_modules/.pnpm/@octokit+oauth-authorization-url@6.0.2/node_modules/@octokit/oauth-authorization-url/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+oauth-authorization-url@6.0.2/node_modules/@octokit/oauth-authorization-url/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/get-web-flow-authorization-url.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/exchange-web-flow-code.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/create-device-code.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/exchange-device-code.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/check-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/refresh-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/scope-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/reset-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/delete-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/delete-authorization.d.ts","../../node_modules/.pnpm/@octokit+oauth-methods@4.1.0/node_modules/@octokit/oauth-methods/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-device@6.1.0/node_modules/@octokit/auth-oauth-device/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-device@6.1.0/node_modules/@octokit/auth-oauth-device/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-user@4.1.0/node_modules/@octokit/auth-oauth-user/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-user@4.1.0/node_modules/@octokit/auth-oauth-user/dist-types/requires-basic-auth.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-user@4.1.0/node_modules/@octokit/auth-oauth-user/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-app@7.1.0/node_modules/@octokit/auth-oauth-app/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+auth-oauth-app@7.1.0/node_modules/@octokit/auth-oauth-app/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+auth-app@6.1.1/node_modules/@octokit/auth-app/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+auth-app@6.1.1/node_modules/@octokit/auth-app/dist-types/index.d.ts","../../node_modules/.pnpm/before-after-hook@2.2.3/node_modules/before-after-hook/index.d.ts","../../node_modules/.pnpm/@octokit+request@8.4.0/node_modules/@octokit/request/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-types/error.d.ts","../../node_modules/.pnpm/@octokit+graphql@7.1.0/node_modules/@octokit/graphql/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+request-error@5.1.0/node_modules/@octokit/request-error/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+request-error@5.1.0/node_modules/@octokit/request-error/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+core@5.2.0/node_modules/@octokit/core/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+core@5.2.0/node_modules/@octokit/core/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-graphql@4.0.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-graphql/dist-types/page-info.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-graphql@4.0.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-graphql/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requestmethod.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/url.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/fetch.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/signal.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requestrequestoptions.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requestheaders.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requestparameters.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/endpointoptions.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/responseheaders.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/octokitresponse.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/endpointdefaults.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requestoptions.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/route.d.ts","../../node_modules/.pnpm/@octokit+openapi-types@20.0.0/node_modules/@octokit/openapi-types/types.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/generated/endpoints.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/endpointinterface.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requestinterface.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/authinterface.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/requesterror.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/strategyinterface.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/version.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/getresponsetypefromendpointmethod.d.ts","../../node_modules/.pnpm/@octokit+types@12.6.0/node_modules/@octokit/types/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-types/paginating-endpoints.d.ts","../../node_modules/.pnpm/@octokit+plugin-paginate-rest@9.2.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts","../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts","../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@10.4.1_@octokit+core@5.2.0/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts","../../node_modules/.pnpm/octokit@3.1.2/node_modules/octokit/dist-types/octokit.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/oauth-app-octokit.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/get-user-octokit.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/get-web-flow-authorization-url.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/create-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/check-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/reset-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/refresh-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/scope-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/delete-token.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/methods/delete-authorization.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/types.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/handle-request.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/unknown-route-response.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/node/index.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/node/send-response.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/web-worker/index.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/common/api-gateway.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/common/cloudfront.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/handler.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/alb.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/api-gateway-proxy.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/api-gateway-authorizer.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/appsync-resolver.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/autoscaling.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cloudformation-custom-resource.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cdk-custom-resource.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cloudfront-request.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cloudfront-response.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cloudwatch-alarm.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/eventbridge.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cloudwatch-events.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cloudwatch-logs.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codebuild-cloudwatch-state.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codecommit.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codepipeline.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codepipeline-cloudwatch-action.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codepipeline-cloudwatch-pipeline.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codepipeline-cloudwatch-stage.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/codepipeline-cloudwatch.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/_common.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/create-auth-challenge.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/custom-email-sender.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/custom-message.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/custom-sms-sender.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/define-auth-challenge.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/post-authentication.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/post-confirmation.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/pre-authentication.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/pre-signup.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/pre-token-generation.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/pre-token-generation-v2.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/user-migration.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/verify-auth-challenge-response.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/cognito-user-pool-trigger/index.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/connect-contact-flow.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/dynamodb-stream.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/iot.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/iot-authorizer.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/kinesis-firehose-transformation.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/kinesis-stream.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/lambda-function-url.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/lex.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/lex-v2.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/amplify-resolver.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/msk.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/s3.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/s3-batch.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/s3-event-notification.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/secretsmanager.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/self-managed-kafka.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/ses.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/sns.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/sqs.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/trigger/transfer-family-authorizer.d.ts","../../node_modules/.pnpm/@types+aws-lambda@8.10.142/node_modules/@types/aws-lambda/index.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/middleware/aws-lambda/api-gateway-v2.d.ts","../../node_modules/.pnpm/@octokit+oauth-app@6.1.0/node_modules/@octokit/oauth-app/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+webhooks-types@7.4.0/node_modules/@octokit/webhooks-types/schema.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/createlogger.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/generated/webhook-names.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/event-handler/index.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/middleware/node/types.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/middleware/node/index.d.ts","../../node_modules/.pnpm/@octokit+webhooks@12.2.0/node_modules/@octokit/webhooks/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+app@14.1.0/node_modules/@octokit/app/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+app@14.1.0/node_modules/@octokit/app/dist-types/middleware/node/index.d.ts","../../node_modules/.pnpm/@octokit+app@14.1.0/node_modules/@octokit/app/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+request-error@6.1.4/node_modules/@octokit/request-error/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+request-error@6.1.4/node_modules/@octokit/request-error/dist-types/index.d.ts","../../node_modules/.pnpm/@octokit+openapi-webhooks-types@8.3.0/node_modules/@octokit/openapi-webhooks-types/types.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/generated/webhook-identifiers.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/createlogger.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/generated/webhook-names.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/types.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/event-handler/index.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/middleware/node/types.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/middleware/node/index.d.ts","../../node_modules/.pnpm/@octokit+webhooks@13.3.0/node_modules/@octokit/webhooks/dist-types/index.d.ts","../../node_modules/.pnpm/octokit@3.1.2/node_modules/octokit/dist-types/app.d.ts","../../node_modules/.pnpm/octokit@3.1.2/node_modules/octokit/dist-types/index.d.ts","./server/utils/providers/github.ts","./server/utils/traefik/file-types.ts","./server/utils/traefik/domain.ts","./server/api/services/domain.ts","../../node_modules/.pnpm/@types+js-yaml@4.0.9/node_modules/@types/js-yaml/index.d.ts","../../node_modules/.pnpm/@types+js-yaml@4.0.9/node_modules/@types/js-yaml/index.d.mts","./server/utils/traefik/application.ts","./server/api/services/deployment.ts","../../node_modules/.pnpm/@react-email+body@0.0.8_react@18.2.0/node_modules/@react-email/body/dist/index.d.mts","../../node_modules/.pnpm/@react-email+button@0.0.15_react@18.2.0/node_modules/@react-email/button/dist/index.d.mts","../../../../../../node_modules/@types/prismjs/index.d.ts","../../node_modules/.pnpm/@react-email+code-block@0.0.5_react@18.2.0/node_modules/@react-email/code-block/dist/index.d.mts","../../node_modules/.pnpm/@react-email+code-inline@0.0.2_react@18.2.0/node_modules/@react-email/code-inline/dist/index.d.mts","../../node_modules/.pnpm/@react-email+column@0.0.10_react@18.2.0/node_modules/@react-email/column/dist/index.d.mts","../../node_modules/.pnpm/@react-email+container@0.0.12_react@18.2.0/node_modules/@react-email/container/dist/index.d.mts","../../node_modules/.pnpm/@react-email+font@0.0.6_react@18.2.0/node_modules/@react-email/font/dist/index.d.mts","../../node_modules/.pnpm/@react-email+head@0.0.9_react@18.2.0/node_modules/@react-email/head/dist/index.d.mts","../../node_modules/.pnpm/@react-email+heading@0.0.12_@types+react@18.3.3_react@18.2.0/node_modules/@react-email/heading/dist/index.d.mts","../../node_modules/.pnpm/@react-email+hr@0.0.8_react@18.2.0/node_modules/@react-email/hr/dist/index.d.mts","../../node_modules/.pnpm/@react-email+html@0.0.8_react@18.2.0/node_modules/@react-email/html/dist/index.d.mts","../../node_modules/.pnpm/@react-email+img@0.0.8_react@18.2.0/node_modules/@react-email/img/dist/index.d.mts","../../node_modules/.pnpm/@react-email+link@0.0.8_react@18.2.0/node_modules/@react-email/link/dist/index.d.mts","../../node_modules/.pnpm/md-to-react-email@5.0.2_react@18.2.0/node_modules/md-to-react-email/dist/index.d.ts","../../node_modules/.pnpm/@react-email+markdown@0.0.10_react@18.2.0/node_modules/@react-email/markdown/dist/index.d.mts","../../node_modules/.pnpm/@react-email+preview@0.0.9_react@18.2.0/node_modules/@react-email/preview/dist/index.d.mts","../../node_modules/.pnpm/@react-email+render@0.0.16_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@react-email/render/dist/node/index.d.mts","../../node_modules/.pnpm/@react-email+row@0.0.8_react@18.2.0/node_modules/@react-email/row/dist/index.d.mts","../../node_modules/.pnpm/@react-email+section@0.0.12_react@18.2.0/node_modules/@react-email/section/dist/index.d.mts","../../node_modules/.pnpm/@react-email+tailwind@0.0.18_react@18.2.0/node_modules/@react-email/tailwind/dist/tailwind.d.ts","../../node_modules/.pnpm/@react-email+tailwind@0.0.18_react@18.2.0/node_modules/@react-email/tailwind/dist/index.d.ts","../../node_modules/.pnpm/@react-email+text@0.0.8_react@18.2.0/node_modules/@react-email/text/dist/index.d.mts","../../node_modules/.pnpm/@react-email+components@0.0.21_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@react-email/components/dist/index.d.mts","./emails/emails/build-failed.tsx","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/dkim/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/mailer/mail-message.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/xoauth2/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/mailer/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/mime-node/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/smtp-connection/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/shared/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/json-transport/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/sendmail-transport/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/ses-transport/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/smtp-pool/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/smtp-transport/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/lib/stream-transport/index.d.ts","../../node_modules/.pnpm/@types+nodemailer@6.4.15/node_modules/@types/nodemailer/index.d.ts","./server/utils/notifications/utils.ts","./server/utils/notifications/build-error.ts","./emails/emails/build-success.tsx","./server/utils/notifications/build-success.ts","./server/api/services/project.ts","./server/api/services/application.ts","./server/utils/filesystem/directory.ts","./server/utils/builders/utils.ts","./server/utils/builders/docker-file.ts","./server/utils/builders/heroku.ts","./server/utils/builders/nixpacks.ts","./server/utils/builders/paketo.ts","./server/utils/builders/index.ts","./server/utils/docker/utils.ts","./server/utils/builders/compose.ts","./server/utils/docker/types.ts","./server/utils/providers/raw.ts","./server/api/services/compose.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/common.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/array.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/collection.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/date.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/function.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/lang.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/math.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/number.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/object.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/seq.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/string.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/common/util.d.ts","../../node_modules/.pnpm/@types+lodash@4.17.4/node_modules/@types/lodash/index.d.ts","./server/utils/docker/compose/configs.ts","./server/utils/docker/compose/network.ts","./server/utils/docker/compose/secrets.ts","./server/utils/docker/compose/service.ts","./server/utils/docker/compose/volume.ts","./server/utils/docker/compose.ts","../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vitest/dist/suite-ibnssuwn.d.ts","../../node_modules/.pnpm/@vitest+spy@1.6.0/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/environment.d.ts","../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.19.42_terser@5.31.3/node_modules/vitest/dist/index.d.ts","./__test__/compose/compose.test.ts","./__test__/compose/config/config-root.test.ts","./__test__/compose/config/config-service.test.ts","./__test__/compose/config/config.test.ts","./__test__/compose/network/network-root.test.ts","./__test__/compose/network/network-service.test.ts","./__test__/compose/network/network.test.ts","./__test__/compose/secrets/secret-root.test.ts","./__test__/compose/secrets/secret-services.test.ts","./__test__/compose/secrets/secret.test.ts","./__test__/compose/service/service-container-name.test.ts","./__test__/compose/service/service-depends-on.test.ts","./__test__/compose/service/service-extends.test.ts","./__test__/compose/service/service-links.test.ts","./__test__/compose/service/service-names.test.ts","./__test__/compose/service/service.test.ts","./__test__/compose/service/sevice-volumes-from.test.ts","./__test__/compose/volume/volume-2.test.ts","./__test__/compose/volume/volume-root.test.ts","./__test__/compose/volume/volume-services.test.ts","./__test__/compose/volume/volume.test.ts","../../node_modules/.pnpm/@types+adm-zip@0.5.5/node_modules/@types/adm-zip/util.d.ts","../../node_modules/.pnpm/@types+adm-zip@0.5.5/node_modules/@types/adm-zip/index.d.ts","./server/utils/builders/drop.ts","./__test__/drop/drop.test.test.ts","./server/utils/traefik/middleware.ts","./server/utils/traefik/redirect.ts","./server/api/services/redirect.ts","./__test__/traefik/traefik.test.ts","../../node_modules/.pnpm/slugify@1.6.6/node_modules/slugify/slugify.d.ts","./lib/slug.ts","../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts","../../node_modules/.pnpm/tailwind-merge@2.4.0/node_modules/tailwind-merge/dist/types.d.ts","./lib/utils.ts","./server/auth/token.ts","../../node_modules/.pnpm/openapi-types@12.1.3/node_modules/openapi-types/dist/index.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/types.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/adapters/node-http/core.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/adapters/standalone.d.ts","../../node_modules/.pnpm/@types+mime@1.3.5/node_modules/@types/mime/index.d.ts","../../node_modules/.pnpm/@types+send@0.17.4/node_modules/@types/send/index.d.ts","../../node_modules/.pnpm/@types+qs@6.9.15/node_modules/@types/qs/index.d.ts","../../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/index.d.ts","../../node_modules/.pnpm/@types+express-serve-static-core@4.19.5/node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/.pnpm/@types+http-errors@2.0.4/node_modules/@types/http-errors/index.d.ts","../../node_modules/.pnpm/@types+serve-static@1.15.7/node_modules/@types/serve-static/index.d.ts","../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../../node_modules/.pnpm/@types+body-parser@1.19.5/node_modules/@types/body-parser/index.d.ts","../../node_modules/.pnpm/@types+express@4.17.21/node_modules/@types/express/index.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/adapters/express.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/styled-jsx/types/css.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/styled-jsx/types/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/styled-jsx/types/macro.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/styled-jsx/types/style.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/styled-jsx/types/global.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/amp.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/amp.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/get-page-files.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/webpack/webpack.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/load-custom-routes.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/image-config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/body-streams.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-kind.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matches/route-match.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/app-router-headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/request-meta.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/revalidate.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/config-shared.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/base-http/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/api-utils/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/node-environment.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/require-hook.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/node-polyfill-crypto.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/page-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/render-result.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/next-url.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/request.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/response.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/setup-exception-listeners.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/constants.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/base-http/node.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/font-utils.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/route-module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/load-components.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/mitt.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/with-router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/route-loader.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/page-loader.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/bloom-filter.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router/router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/constants.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/page-extensions-type.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/app-dir-module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/response-cache/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/response-cache/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/hooks-server-context.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/create-error-handler.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/app-render.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/error-boundary.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/app-router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/layout-router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/render-from-template-context.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/client-page.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/search-params.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/not-found-boundary.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/rsc/taint.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/entry-base.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/templates/app-page.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/app-render/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/templates/pages.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-modules/pages/module.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/render.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/normalizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/action.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/base-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/image-optimizer.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/next-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/coalesced-function.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-utils/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/trace/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/trace/trace.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/trace/shared.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/trace/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/load-jsconfig.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack-config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/swc/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/parse-version-info.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/telemetry/storage.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/render-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/static-paths-worker.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/dev/next-dev-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/next.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/types/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/utils.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/pages/_app.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/app.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/cache.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/runtime-config.external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/config.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/pages/_document.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/document.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/dynamic.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dynamic.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/pages/_error.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/error.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/head.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/head.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/draft-mode.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/headers.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/get-img-props.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/image-component.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/shared/lib/image-external.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/image.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/link.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/link.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/redirect-status-code.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/redirect.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/not-found.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/navigation.react-server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/navigation.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/navigation.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/router.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/script.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/script.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@vercel/og/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/server.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/types/global.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/types/compiled.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/index.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/adapters/next.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/adapters/index.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/generator/index.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/utils/zod.d.ts","../../node_modules/.pnpm/@dokploy+trpc-openapi@0.0.4_@trpc+server@10.45.2_zod@3.23.8/node_modules/@dokploy/trpc-openapi/dist/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/gethttpstatuscode.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/internals/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/internals/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/contenttype.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/resolvehttpresponse.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/batchstreamformatter.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/http/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/internals/contenttype.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/types.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/nodehttprequesthandler.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/next.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/content-type/form-data/fileuploadhandler.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/content-type/form-data/uploadhandler.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/content-type/form-data/memoryuploadhandler.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/content-type/form-data/index.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/transformer.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/plainer.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/types.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/registry.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/class-registry.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/custom-transformer-registry.d.ts","../../node_modules/.pnpm/superjson@2.2.1/node_modules/superjson/dist/index.d.ts","./server/api/trpc.ts","./server/api/routers/auth.ts","./server/api/routers/admin.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/async-fifo-queue.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/parent.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/job-json.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/backoff-strategy.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/finished-status.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/redis-connection.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/types.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/command.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/scanstream.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/utils/rediscommander.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/transaction.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/utils/commander.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/connectors/abstractconnector.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/connectors/connectorconstructor.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/connectors/sentinelconnector/types.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/connectors/sentinelconnector/sentineliterator.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/connectors/sentinelconnector/index.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/connectors/standaloneconnector.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/redis/redisoptions.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/cluster/util.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/cluster/clusteroptions.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/cluster/index.d.ts","../../node_modules/.pnpm/denque@2.1.0/node_modules/denque/index.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/subscriptionset.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/datahandler.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/redis.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/pipeline.d.ts","../../node_modules/.pnpm/ioredis@5.4.1/node_modules/ioredis/built/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/scripts.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/queue-events.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/job.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/queue-keys.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/queue-base.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/minimal-queue.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/job-json-sandbox.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/job-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/job-type.d.ts","../../node_modules/.pnpm/cron-parser@4.9.0/node_modules/cron-parser/types/common.d.ts","../../node_modules/.pnpm/cron-parser@4.9.0/node_modules/cron-parser/types/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/repeat-strategy.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/types/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/advanced-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/enums/parent-command.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/child-message.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/connection.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/redis-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/flow-job.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/ioredis-events.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/keep-jobs.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/metrics-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/metrics.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/enums/child-command.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/parent-message.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/rate-limiter-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/redis-streams.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/repeatable-job.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/sandboxed-job-processor.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/interfaces/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/backoffs.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/child.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/child-pool.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/child-processor.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/errors/delayed-error.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/errors/unrecoverable-error.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/errors/rate-limit-error.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/errors/waiting-children-error.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/errors/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/flow-producer.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/queue-getters.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/repeat.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/queue.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/sandbox.d.ts","../../node_modules/.pnpm/node-abort-controller@3.1.1/node_modules/node-abort-controller/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/worker.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/classes/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/commands/script-loader.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/commands/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/enums/error-code.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/enums/metrics-time.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/enums/index.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/utils.d.ts","../../node_modules/.pnpm/bullmq@5.4.2/node_modules/bullmq/dist/esm/index.d.ts","./server/queues/queuesetup.ts","./server/queues/deployments-queue.ts","./server/api/services/user.ts","../../node_modules/.pnpm/zod-form-data@2.0.2_zod@3.23.8/node_modules/zod-form-data/dist/index.d.ts","./utils/schema.ts","./server/api/routers/application.ts","./server/api/services/backup.ts","./server/api/services/mount.ts","./server/utils/databases/mariadb.ts","./server/api/services/mariadb.ts","./emails/emails/database-backup.tsx","./server/utils/notifications/database-backup.ts","./server/api/services/destination.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/abort.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/auth.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/httpapikeyauth.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/identity/identity.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoint.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/logger.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/uri.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/http.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/response.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/util.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/middleware.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/httpsigner.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/identityproviderconfig.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/httpauthscheme.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/httpauthschemeprovider.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/auth/index.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/transform/exact.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/externals-check/browser-externals-check.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/blob/blob-payload-input-types.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/crypto.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/checksum.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/command.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/client.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/connection/config.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/transfer.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/connection/manager.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/connection/pool.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/connection/index.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/eventstream.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/encode.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoints/shared.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoints/endpointruleobject.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoints/errorruleobject.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoints/treeruleobject.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoints/rulesetobject.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/endpoints/index.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/extensions/checksum.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/extensions/defaultclientconfiguration.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/shapes.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/retry.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/extensions/retry.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/extensions/defaultextensionconfiguration.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/extensions/index.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/http/httphandlerinitialization.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/identity/apikeyidentity.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/identity/awscredentialidentity.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/identity/tokenidentity.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/identity/index.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/pagination.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/profile.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/serde.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/signature.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/stream.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-common-types.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-payload-input-types.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-payload-output-types.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/transform/type-transform.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/transform/client-method-transforms.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/transform/client-payload-blob-type-narrow.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/transform/no-undefined.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/waiter.d.ts","../../node_modules/.pnpm/@smithy+types@2.12.0/node_modules/@smithy/types/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-host-header@3.515.0/node_modules/@aws-sdk/middleware-host-header/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/check-content-length-header.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/region-redirect-middleware.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/region-redirect-endpoint-middleware.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-expires-middleware.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/abort.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/auth.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/blob/blob-types.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/checksum.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/client.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/command.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/connection.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/identity/identity.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/identity/anonymousidentity.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/identity/awscredentialidentity.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/identity/loginidentity.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/identity/tokenidentity.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/identity/index.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/util.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/credentials.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/crypto.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/dns.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/encode.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/endpoint.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/eventstream.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/extensions/index.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/http.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/logger.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/middleware.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/pagination.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/profile.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/request.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/response.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/retry.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/serde.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/shapes.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/signature.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/stream.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/token.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/transfer.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/uri.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/waiter.d.ts","../../node_modules/.pnpm/@aws-sdk+types@3.515.0/node_modules/@aws-sdk/types/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/interfaces/s3expressidentity.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/s3expressidentitycacheentry.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/s3expressidentitycache.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/interfaces/s3expressidentityprovider.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/s3expressidentityproviderimpl.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/signaturev4.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/getcanonicalheaders.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/getcanonicalquery.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/getpayloadhash.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/moveheaderstoquery.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/preparerequest.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/credentialderivation.d.ts","../../node_modules/.pnpm/@smithy+signature-v4@2.3.0/node_modules/@smithy/signature-v4/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/signaturev4s3express.d.ts","../../node_modules/.pnpm/@smithy+node-config-provider@2.3.0/node_modules/@smithy/node-config-provider/dist-types/fromenv.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/gethomedir.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/getprofilename.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/getssotokenfilepath.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/getssotokenfromfile.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/loadsharedconfigfiles.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/loadssosessiondata.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/parseknownfiles.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/types.d.ts","../../node_modules/.pnpm/@smithy+shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+node-config-provider@2.3.0/node_modules/@smithy/node-config-provider/dist-types/fromsharedconfigfiles.d.ts","../../node_modules/.pnpm/@smithy+node-config-provider@2.3.0/node_modules/@smithy/node-config-provider/dist-types/fromstatic.d.ts","../../node_modules/.pnpm/@smithy+node-config-provider@2.3.0/node_modules/@smithy/node-config-provider/dist-types/configloader.d.ts","../../node_modules/.pnpm/@smithy+node-config-provider@2.3.0/node_modules/@smithy/node-config-provider/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/constants.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/s3expressmiddleware.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3configuration.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/throw-200-exceptions.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/validate-bucket-name.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-sdk-s3@3.515.0/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-signing@3.515.0/node_modules/@aws-sdk/middleware-signing/dist-types/awsauthconfiguration.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-signing@3.515.0/node_modules/@aws-sdk/middleware-signing/dist-types/awsauthmiddleware.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-signing@3.515.0/node_modules/@aws-sdk/middleware-signing/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.515.0/node_modules/@aws-sdk/middleware-user-agent/dist-types/configurations.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.515.0/node_modules/@aws-sdk/middleware-user-agent/dist-types/user-agent-middleware.d.ts","../../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.515.0/node_modules/@aws-sdk/middleware-user-agent/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/endpointsconfig/nodeusedualstackendpointconfigoptions.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/endpointsconfig/nodeusefipsendpointconfigoptions.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/endpointsconfig/resolveendpointsconfig.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/endpointsconfig/resolvecustomendpointsconfig.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/endpointsconfig/index.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regionconfig/config.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regionconfig/resolveregionconfig.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regionconfig/index.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regioninfo/endpointvarianttag.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regioninfo/endpointvariant.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regioninfo/partitionhash.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regioninfo/regionhash.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regioninfo/getregioninfo.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/regioninfo/index.d.ts","../../node_modules/.pnpm/@smithy+config-resolver@2.2.0/node_modules/@smithy/config-resolver/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+eventstream-serde-config-resolver@2.2.0/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/eventstreamserdeconfig.d.ts","../../node_modules/.pnpm/@smithy+eventstream-serde-config-resolver@2.2.0/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/resolveendpointconfig.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/types.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/getendpointfrominstructions.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/toendpointv1.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/index.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/endpointmiddleware.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/getendpointplugin.d.ts","../../node_modules/.pnpm/@smithy+middleware-endpoint@2.5.1/node_modules/@smithy/middleware-endpoint/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/types.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/adaptiveretrystrategy.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/standardretrystrategy.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/configuredretrystrategy.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/defaultratelimiter.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/config.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/constants.d.ts","../../node_modules/.pnpm/@smithy+util-retry@2.2.0/node_modules/@smithy/util-retry/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/types.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/standardretrystrategy.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/adaptiveretrystrategy.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/configurations.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/delaydecider.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/omitretryheadersmiddleware.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/retrydecider.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/retrymiddleware.d.ts","../../node_modules/.pnpm/@smithy+middleware-retry@2.3.1/node_modules/@smithy/middleware-retry/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/httprequest.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/httpresponse.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/httphandler.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/extensions/httpextensionconfiguration.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/extensions/index.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/field.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/fields.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/isvalidhostname.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/types.d.ts","../../node_modules/.pnpm/@smithy+protocol-http@3.3.0/node_modules/@smithy/protocol-http/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/nooplogger.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/client.d.ts","../../node_modules/.pnpm/@smithy+util-stream@2.2.0/node_modules/@smithy/util-stream/dist-types/blob/uint8arrayblobadapter.d.ts","../../node_modules/.pnpm/@smithy+util-stream@2.2.0/node_modules/@smithy/util-stream/dist-types/getawschunkedencodingstream.d.ts","../../node_modules/.pnpm/@smithy+util-stream@2.2.0/node_modules/@smithy/util-stream/dist-types/sdk-stream-mixin.d.ts","../../node_modules/.pnpm/@smithy+util-stream@2.2.0/node_modules/@smithy/util-stream/dist-types/index.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/collect-stream-body.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/command.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/constants.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/create-aggregated-client.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/date-utils.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/default-error-handler.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/defaults-mode.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/emitwarningifunsupportedversion.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/extensions/checksum.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/extensions/retry.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/extensions/defaultextensionconfiguration.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/extensions/index.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/exceptions.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/extended-encode-uri-component.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/get-array-if-single-item.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/get-value-from-text-node.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/lazy-json.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/object-mapping.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/parse-utils.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/resolve-path.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/ser-utils.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/serde-json.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/split-every.d.ts","../../node_modules/.pnpm/@smithy+smithy-client@2.5.1/node_modules/@smithy/smithy-client/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/models/s3serviceexception.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/abortmultipartuploadcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/completemultipartuploadcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/copyobjectcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/createbucketcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/createmultipartuploadcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/createsessioncommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketanalyticsconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketcorscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketencryptioncommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketintelligenttieringconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketinventoryconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketlifecyclecommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketmetricsconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketownershipcontrolscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketpolicycommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketreplicationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebuckettaggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletebucketwebsitecommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deleteobjectcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deleteobjectscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deleteobjecttaggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/deletepublicaccessblockcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketaccelerateconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketaclcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketanalyticsconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketcorscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketencryptioncommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketintelligenttieringconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketinventoryconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketlifecycleconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketlocationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketloggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketmetricsconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketnotificationconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketownershipcontrolscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketpolicycommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketpolicystatuscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketreplicationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketrequestpaymentcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbuckettaggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketversioningcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getbucketwebsitecommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjectaclcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjectattributescommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjectcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjectlegalholdcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjectlockconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjectretentioncommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjecttaggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getobjecttorrentcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/getpublicaccessblockcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/headbucketcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/headobjectcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listbucketanalyticsconfigurationscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listbucketintelligenttieringconfigurationscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listbucketinventoryconfigurationscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listbucketmetricsconfigurationscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listbucketscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listdirectorybucketscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listmultipartuploadscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listobjectscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listobjectsv2command.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listobjectversionscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/listpartscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketaccelerateconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketaclcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketanalyticsconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketcorscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketencryptioncommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketintelligenttieringconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketinventoryconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketlifecycleconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketloggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketmetricsconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketnotificationconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketownershipcontrolscommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketpolicycommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketreplicationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketrequestpaymentcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbuckettaggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketversioningcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putbucketwebsitecommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putobjectaclcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putobjectcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putobjectlegalholdcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putobjectlockconfigurationcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putobjectretentioncommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putobjecttaggingcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/putpublicaccessblockcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/restoreobjectcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/selectobjectcontentcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/uploadpartcommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/uploadpartcopycommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/writegetobjectresponsecommand.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/endpoint/endpointparameters.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/extensionconfiguration.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/runtimeextensions.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/s3client.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/s3.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/commands/index.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/pagination/interfaces.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/pagination/listdirectorybucketspaginator.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/pagination/listobjectsv2paginator.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/pagination/listpartspaginator.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/pagination/index.d.ts","../../node_modules/.pnpm/@smithy+util-waiter@2.2.0/node_modules/@smithy/util-waiter/dist-types/waiter.d.ts","../../node_modules/.pnpm/@smithy+util-waiter@2.2.0/node_modules/@smithy/util-waiter/dist-types/createwaiter.d.ts","../../node_modules/.pnpm/@smithy+util-waiter@2.2.0/node_modules/@smithy/util-waiter/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitforbucketexists.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitforbucketnotexists.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitforobjectexists.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitforobjectnotexists.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/waiters/index.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/models/index.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/aws.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/lib/aws/partition.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/lib/isipaddress.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/lib/isvalidhostlabel.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/shared.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/endpointfunctions.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/utils/customendpointfunctions.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/endpointerror.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/endpointruleobject.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/errorruleobject.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/rulesetobject.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/treeruleobject.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/types/index.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/resolveendpoint.d.ts","../../node_modules/.pnpm/@smithy+util-endpoints@1.2.0/node_modules/@smithy/util-endpoints/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/lib/isipaddress.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/resolveendpoint.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/endpointerror.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/endpointruleobject.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/errorruleobject.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/rulesetobject.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/treeruleobject.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/shared.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+util-endpoints@3.515.0/node_modules/@aws-sdk/util-endpoints/dist-types/index.d.ts","../../node_modules/.pnpm/@aws-sdk+client-s3@3.515.0/node_modules/@aws-sdk/client-s3/dist-types/index.d.ts","../../node_modules/.pnpm/@types+node-schedule@2.1.6/node_modules/@types/node-schedule/index.d.ts","./server/utils/databases/postgres.ts","./server/api/services/postgres.ts","./server/utils/databases/mongo.ts","./server/api/services/mongo.ts","./server/utils/backups/mongo.ts","./server/utils/databases/mysql.ts","./server/api/services/mysql.ts","./server/utils/backups/mysql.ts","./server/utils/backups/postgres.ts","./server/utils/backups/utils.ts","./server/utils/backups/mariadb.ts","./server/api/routers/backup.ts","./server/api/services/certificate.ts","./server/api/routers/certificate.ts","./server/api/services/cluster.ts","./server/api/routers/cluster.ts","./server/api/routers/compose.ts","./server/api/routers/deployment.ts","./server/api/routers/destination.ts","./server/api/services/docker.ts","./server/api/routers/docker.ts","./server/api/routers/domain.ts","./server/api/routers/mariadb.ts","./server/api/routers/mongo.ts","./server/api/routers/mount.ts","./server/api/routers/mysql.ts","./server/api/services/notification.ts","./server/api/routers/notification.ts","./server/api/services/port.ts","./server/api/routers/port.ts","./server/api/routers/postgres.ts","./server/api/routers/project.ts","./server/api/routers/redirects.ts","./server/utils/databases/redis.ts","./server/api/services/redis.ts","./server/api/routers/redis.ts","./server/setup/registry-setup.ts","./server/api/services/registry.ts","./server/utils/traefik/registry.ts","./server/api/routers/registry.ts","./server/utils/traefik/security.ts","./server/api/services/security.ts","./server/api/routers/security.ts","./server/utils/traefik/types.ts","./server/setup/traefik-setup.ts","./emails/emails/docker-cleanup.tsx","./server/utils/notifications/docker-cleanup.ts","./server/utils/traefik/web-server.ts","./package.json","./server/api/services/settings.ts","./server/api/routers/settings.ts","./server/api/routers/ssh-key.ts","./server/api/routers/user.ts","./server/api/root.ts","./pages/api/[...trpc].ts","./pages/api/redirect.ts","./pages/api/webhook.ts","./pages/api/deploy/[refreshtoken].ts","./pages/api/deploy/github.ts","./pages/api/deploy/compose/[refreshtoken].ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/adapters/node-http/content-type/json/index.d.ts","./pages/api/trpc/[trpc].ts","../../node_modules/.pnpm/drizzle-orm@0.30.10_@types+react@18.3.3_postgres@3.4.4_react@18.2.0/node_modules/drizzle-orm/postgres-js/migrator.d.ts","./server/db/migration.ts","./server/setup/config-paths.ts","./server/setup/postgres-setup.ts","./server/setup/redis-setup.ts","./server/setup/setup.ts","./server/utils/backups/index.ts","./emails/emails/dokploy-restart.tsx","./server/utils/notifications/dokploy-restart.ts","./server/wss/utils.ts","./server/wss/docker-container-logs.ts","./server/wss/docker-container-terminal.ts","./server/wss/docker-stats.ts","./server/wss/listen-deployment.ts","./server/server.ts","../../node_modules/.pnpm/drizzle-kit@0.21.4/node_modules/drizzle-kit/index.d.mts","./server/db/drizzle.config.ts","./server/db/reset.ts","./server/db/seed.ts","./server/db/schema/source.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/internals/types.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/trpcclienterror.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/types.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/internals/trpcuntypedclient.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/createtrpcuntypedclient.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/createproxy/index.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/transformtrpcresponse.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/geterrorshape.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/getcausefromunknown.d.ts","../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/shared/index.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/internals/streamingutils.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/internals/httputils.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/httpbatchlinkoptions.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/httpbatchlink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/httpbatchstreamlink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/httplink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/loggerlink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/splitlink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/internals/retrydelay.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/wslink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/httpformdatalink.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/index.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/createtrpcclient.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/createtrpcclientproxy.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/getfetch.d.ts","../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/index.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/internals/getarrayquerykey.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/setbatchupdatesfn.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/removable.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/subscribable.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/queryobserver.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/logger.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/query.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/utils.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/querycache.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/queryclient.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/mutationobserver.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/mutationcache.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/mutation.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/types.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/retryer.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/queriesobserver.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/infinitequeryobserver.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/notifymanager.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/focusmanager.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/onlinemanager.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/hydration.d.ts","../../node_modules/.pnpm/@tanstack+query-core@4.36.1/node_modules/@tanstack/query-core/build/lib/index.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/types.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/usequeries.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/usequery.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/queryclientprovider.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/queryerrorresetboundary.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/hydrate.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useisfetching.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useismutating.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/usemutation.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/useinfinitequery.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/isrestoring.d.ts","../../node_modules/.pnpm/@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-query/build/lib/index.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/internals/context.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/internals/usequeries.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/types.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/internals/usehookresult.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/hooks/types.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/hooks/createhooksinternal.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/hooks/deprecated/createhooksinternal.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/hooks/createroothooks.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/proxy/decorationproxy.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/proxy/utilsproxy.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/proxy/usequeriesproxy.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/createtrpcreact.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/queryclient.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/utils/inferreactqueryprocedure.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/polymorphism/mutationlike.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/polymorphism/querylike.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/polymorphism/routerlike.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/polymorphism/utilslike.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/polymorphism/index.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/internals/getclientargs.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/shared/index.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/internals/getquerykey.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/interop.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/index.d.ts","../../node_modules/.pnpm/@trpc+next@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0___jleqgjweqk4wsxe5abu5gomrcu/node_modules/@trpc/next/dist/withtrpc.d.ts","../../node_modules/.pnpm/@trpc+next@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0___jleqgjweqk4wsxe5abu5gomrcu/node_modules/@trpc/next/dist/createtrpcnext.d.ts","../../node_modules/.pnpm/@trpc+next@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@18.2.0___jleqgjweqk4wsxe5abu5gomrcu/node_modules/@trpc/next/dist/index.d.ts","./utils/api.ts","../../node_modules/.pnpm/@radix-ui+react-slot@1.1.0_@types+react@18.3.3_react@18.2.0/node_modules/@radix-ui/react-slot/dist/index.d.mts","../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/clsx.d.mts","../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/types.d.ts","../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.d.ts","../../node_modules/.pnpm/lucide-react@0.312.0_react@18.2.0/node_modules/lucide-react/dist/lucide-react.d.ts","./components/ui/button.tsx","../../node_modules/.pnpm/@radix-ui+react-primitive@2.0.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-label@2.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-label/dist/index.d.mts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/constants.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/utils/createsubject.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/events.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/path/common.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/path/eager.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/path/index.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/fieldarray.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/resolvers.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/form.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/utils.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/fields.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/errors.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/validator.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/controller.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/types/index.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/controller.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/form.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/logic/appenderrors.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/logic/index.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/usecontroller.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/usefieldarray.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/useform.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/useformcontext.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/useformstate.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/usewatch.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/utils/get.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/utils/set.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/utils/index.d.ts","../../node_modules/.pnpm/react-hook-form@7.52.1_react@18.2.0/node_modules/react-hook-form/dist/index.d.ts","./components/ui/label.tsx","./components/ui/form.tsx","./components/ui/card.tsx","../../node_modules/.pnpm/input-otp@1.2.4_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/input-otp/dist/index.d.ts","./components/ui/input-otp.tsx","../../node_modules/.pnpm/@hookform+resolvers@3.9.0_react-hook-form@7.52.1_react@18.2.0_/node_modules/@hookform/resolvers/zod/dist/types.d.ts","../../node_modules/.pnpm/@hookform+resolvers@3.9.0_react-hook-form@7.52.1_react@18.2.0_/node_modules/@hookform/resolvers/zod/dist/zod.d.ts","../../node_modules/.pnpm/@hookform+resolvers@3.9.0_react-hook-form@7.52.1_react@18.2.0_/node_modules/@hookform/resolvers/zod/dist/index.d.ts","../../node_modules/.pnpm/sonner@1.5.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/sonner/dist/index.d.ts","./components/auth/login-2fa.tsx","../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom_4fvrh3akx5xxojptglupq23zcq/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2._kbnl5m62kzu4qvfojw4mrskj64/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-portal@1.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-portal/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-dialog/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-alert-dialog@1.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2_wcmmpg4lvtjabdnrtrlwais2lm/node_modules/@radix-ui/react-alert-dialog/dist/index.d.mts","./components/ui/alert-dialog.tsx","./components/dashboard/application/delete-application.tsx","./components/dashboard/application/rebuild-application.tsx","./components/dashboard/application/start-application.tsx","./components/dashboard/application/stop-application.tsx","./components/shared/alert-block.tsx","./components/ui/dialog.tsx","./components/ui/input.tsx","./components/ui/textarea.tsx","./components/dashboard/application/update-application.tsx","./components/dashboard/application/advanced/show-application-advanced-settings.tsx","../../node_modules/.pnpm/@lezer+common@1.2.1/node_modules/@lezer/common/dist/index.d.ts","../../node_modules/.pnpm/@lezer+lr@1.4.2/node_modules/@lezer/lr/dist/index.d.ts","../../node_modules/.pnpm/@codemirror+state@6.4.1/node_modules/@codemirror/state/dist/index.d.ts","../../node_modules/.pnpm/style-mod@4.1.2/node_modules/style-mod/src/style-mod.d.ts","../../node_modules/.pnpm/@codemirror+view@6.29.0/node_modules/@codemirror/view/dist/index.d.ts","../../node_modules/.pnpm/@lezer+highlight@1.2.0/node_modules/@lezer/highlight/dist/index.d.ts","../../node_modules/.pnpm/@codemirror+language@6.10.2/node_modules/@codemirror/language/dist/index.d.ts","../../node_modules/.pnpm/@codemirror+lint@6.8.1/node_modules/@codemirror/lint/dist/index.d.ts","../../node_modules/.pnpm/@codemirror+lang-json@6.0.1/node_modules/@codemirror/lang-json/dist/index.d.ts","../../node_modules/.pnpm/@codemirror+lang-yaml@6.1.1_@codemirror+view@6.29.0/node_modules/@codemirror/lang-yaml/dist/index.d.ts","../../node_modules/.pnpm/@codemirror+legacy-modes@6.4.0/node_modules/@codemirror/legacy-modes/mode/properties.d.ts","../../node_modules/.pnpm/@uiw+codemirror-themes@4.23.0_@codemirror+language@6.10.2_@codemirror+state@6.4.1_@codemirror+view@6.29.0/node_modules/@uiw/codemirror-themes/cjs/index.d.ts","../../node_modules/.pnpm/@uiw+codemirror-theme-github@4.23.0_@codemirror+language@6.10.2_@codemirror+state@6.4.1_@codemirror+view@6.29.0/node_modules/@uiw/codemirror-theme-github/cjs/index.d.ts","../../node_modules/.pnpm/@uiw+codemirror-extensions-basic-setup@4.23.0_@codemirror+autocomplete@6.17.0_@codemirror+lan_2wpf5iyi3drcxkivy2ymxbehny/node_modules/@uiw/codemirror-extensions-basic-setup/cjs/index.d.ts","../../node_modules/.pnpm/@uiw+react-codemirror@4.23.0_@babel+runtime@7.25.0_@codemirror+autocomplete@6.17.0_@codemirro_ty7j2k7tpo5iigyedltn3uaw6i/node_modules/@uiw/react-codemirror/cjs/utils.d.ts","../../node_modules/.pnpm/@uiw+react-codemirror@4.23.0_@babel+runtime@7.25.0_@codemirror+autocomplete@6.17.0_@codemirro_ty7j2k7tpo5iigyedltn3uaw6i/node_modules/@uiw/react-codemirror/cjs/usecodemirror.d.ts","../../node_modules/.pnpm/@codemirror+theme-one-dark@6.1.2/node_modules/@codemirror/theme-one-dark/dist/index.d.ts","../../node_modules/.pnpm/@uiw+react-codemirror@4.23.0_@babel+runtime@7.25.0_@codemirror+autocomplete@6.17.0_@codemirro_ty7j2k7tpo5iigyedltn3uaw6i/node_modules/@uiw/react-codemirror/cjs/theme/light.d.ts","../../node_modules/.pnpm/@uiw+react-codemirror@4.23.0_@babel+runtime@7.25.0_@codemirror+autocomplete@6.17.0_@codemirro_ty7j2k7tpo5iigyedltn3uaw6i/node_modules/@uiw/react-codemirror/cjs/getdefaultextensions.d.ts","../../node_modules/.pnpm/@uiw+react-codemirror@4.23.0_@babel+runtime@7.25.0_@codemirror+autocomplete@6.17.0_@codemirro_ty7j2k7tpo5iigyedltn3uaw6i/node_modules/@uiw/react-codemirror/cjs/index.d.ts","../../node_modules/.pnpm/next-themes@0.2.1_next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0__react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next-themes/dist/types.d.ts","../../node_modules/.pnpm/next-themes@0.2.1_next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0__react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next-themes/dist/index.d.ts","./components/shared/code-editor.tsx","../../node_modules/.pnpm/@radix-ui+react-arrow@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-arrow/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+rect@1.1.0/node_modules/@radix-ui/rect/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-popper@1.2.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-popper/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-tooltip@1.1.2_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tooltip/dist/index.d.mts","./components/ui/tooltip.tsx","./components/dashboard/application/advanced/cluster/modify-swarm-settings.tsx","../../node_modules/.pnpm/@radix-ui+react-select@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-select/dist/index.d.mts","./components/ui/select.tsx","./components/dashboard/application/advanced/cluster/show-cluster-settings.tsx","./components/dashboard/application/advanced/general/add-command.tsx","./components/dashboard/application/advanced/ports/add-port.tsx","./components/dashboard/application/advanced/ports/delete-port.tsx","./components/dashboard/application/advanced/ports/update-port.tsx","./components/dashboard/application/advanced/ports/show-port.tsx","../../node_modules/.pnpm/@radix-ui+react-switch@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-switch/dist/index.d.mts","./components/ui/switch.tsx","./components/dashboard/application/advanced/redirects/add-redirect.tsx","./components/dashboard/application/advanced/redirects/delete-redirect.tsx","./components/dashboard/application/advanced/redirects/update-redirect.tsx","./components/dashboard/application/advanced/redirects/show-redirects.tsx","./components/dashboard/application/advanced/security/add-security.tsx","./components/dashboard/application/advanced/security/delete-security.tsx","./components/dashboard/application/advanced/security/update-security.tsx","./components/dashboard/application/advanced/security/show-security.tsx","./components/dashboard/application/advanced/traefik/update-traefik-config.tsx","./components/dashboard/application/advanced/traefik/show-traefik-config.tsx","../../node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2_2auuzb7fdgnislhihyh2viwnzq/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-radio-group@1.2.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2._fosrjzybviryfzdzoyt6h4dw4e/node_modules/@radix-ui/react-radio-group/dist/index.d.mts","./components/ui/radio-group.tsx","./components/dashboard/application/advanced/volumes/add-volumes.tsx","./components/dashboard/application/advanced/volumes/delete-volume.tsx","./components/dashboard/application/advanced/volumes/update-volume.tsx","./components/dashboard/application/advanced/volumes/show-volumes.tsx","./components/dashboard/application/build/show.tsx","./components/dashboard/application/deployments/cancel-queues.tsx","./components/dashboard/application/deployments/refresh-token.tsx","./components/dashboard/application/deployments/show-deployment.tsx","./components/shared/date-tooltip.tsx","./components/shared/status-tooltip.tsx","./components/dashboard/application/deployments/show-deployments.tsx","./components/dashboard/application/domains/add-domain.tsx","./components/dashboard/application/domains/delete-domain.tsx","./components/dashboard/application/domains/generate-traefikme.tsx","./components/dashboard/application/domains/generate-wildcard.tsx","./components/dashboard/application/domains/generate-domain.tsx","./components/dashboard/application/domains/show-domains.tsx","../../node_modules/.pnpm/@radix-ui+react-toggle@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-toggle/dist/index.d.mts","./components/ui/toggle.tsx","./components/ui/secrets.tsx","./components/dashboard/application/environment/show.tsx","./components/dashboard/application/general/deploy-application.tsx","./components/dashboard/application/general/reset-application.tsx","./components/dashboard/application/general/generic/save-docker-provider.tsx","./components/dashboard/application/general/generic/save-git-provider.tsx","../../node_modules/.pnpm/@radix-ui+react-primitive@1.0.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-primitive/dist/index.d.ts","../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.0.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts","../../node_modules/.pnpm/@radix-ui+react-focus-scope@1.0.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts","../../node_modules/.pnpm/@radix-ui+react-portal@1.0.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-portal/dist/index.d.ts","../../node_modules/.pnpm/@radix-ui+react-context@1.0.0_react@18.2.0/node_modules/@radix-ui/react-context/dist/index.d.ts","../../node_modules/.pnpm/@radix-ui+react-dialog@1.0.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-dialog/dist/index.d.ts","../../node_modules/.pnpm/cmdk@0.2.1_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/cmdk/dist/index.d.ts","./components/ui/command.tsx","../../node_modules/.pnpm/@radix-ui+react-popover@1.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-popover/dist/index.d.mts","./components/ui/popover.tsx","../../node_modules/.pnpm/@radix-ui+react-scroll-area@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2._a5ped4g7zcz7ockrfgrt6pcfzm/node_modules/@radix-ui/react-scroll-area/dist/index.d.mts","./components/ui/scroll-area.tsx","./components/dashboard/application/general/generic/save-github-provider.tsx","../../node_modules/.pnpm/@radix-ui+react-tabs@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tabs/dist/index.d.mts","./components/ui/tabs.tsx","./components/ui/dropzone.tsx","./components/dashboard/application/general/generic/save-drag-n-drop.tsx","./components/dashboard/application/general/generic/show.tsx","../../node_modules/.pnpm/@xterm+xterm@5.5.0/node_modules/@xterm/xterm/typings/xterm.d.ts","../../node_modules/.pnpm/xterm@5.3.0/node_modules/xterm/typings/xterm.d.ts","../../node_modules/.pnpm/xterm-addon-fit@0.8.0_xterm@5.3.0/node_modules/xterm-addon-fit/typings/xterm-addon-fit.d.ts","../../node_modules/.pnpm/@xterm+addon-attach@0.10.0_@xterm+xterm@5.5.0/node_modules/@xterm/addon-attach/typings/addon-attach.d.ts","./components/dashboard/docker/terminal/docker-terminal.tsx","./components/dashboard/settings/web-server/docker-terminal-modal.tsx","./components/dashboard/application/general/show.tsx","./components/dashboard/docker/logs/docker-logs-id.tsx","./components/dashboard/application/logs/show.tsx","./components/dashboard/compose/delete-compose.tsx","./components/dashboard/compose/update-compose.tsx","./components/dashboard/compose/advanced/add-command.tsx","./components/dashboard/compose/advanced/show-volumes.tsx","./components/dashboard/compose/deployments/cancel-queues-compose.tsx","./components/dashboard/compose/deployments/refresh-token-compose.tsx","./components/dashboard/compose/deployments/show-deployment-compose.tsx","./components/dashboard/compose/deployments/show-deployments-compose.tsx","./components/dashboard/compose/enviroment/show.tsx","../../node_modules/.pnpm/@radix-ui+react-menu@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-menu/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@2.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18._qc5quxkd5nxw7cnatw32d5dyj4/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts","./components/ui/dropdown-menu.tsx","./components/dashboard/compose/general/deploy-compose.tsx","./components/dashboard/compose/general/rebuild-compose.tsx","./components/dashboard/compose/general/stop-compose.tsx","./components/dashboard/compose/general/actions.tsx","./components/dashboard/compose/general/randomize-compose.tsx","./components/dashboard/compose/general/compose-file-editor.tsx","./components/ui/badge.tsx","./components/dashboard/compose/general/generic/save-git-provider-compose.tsx","./components/dashboard/compose/general/generic/save-github-provider-compose.tsx","./components/dashboard/compose/general/generic/show.tsx","./components/dashboard/compose/general/show.tsx","./components/dashboard/compose/logs/show.tsx","../../node_modules/.pnpm/@radix-ui+react-progress@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-progress/dist/index.d.mts","./components/ui/progress.tsx","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/container/surface.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/container/layer.d.ts","../../node_modules/.pnpm/@types+d3-time@3.0.3/node_modules/@types/d3-time/index.d.ts","../../node_modules/.pnpm/@types+d3-scale@4.0.8/node_modules/@types/d3-scale/index.d.ts","../../node_modules/.pnpm/victory-vendor@36.9.2/node_modules/victory-vendor/d3-scale.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/xaxis.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/yaxis.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/types.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/defaultlegendcontent.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/payload/getuniqpayload.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/legend.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/defaulttooltipcontent.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/tooltip.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/responsivecontainer.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/cell.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/text.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/label.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/labellist.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/component/customized.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/sector.d.ts","../../node_modules/.pnpm/@types+d3-path@3.1.0/node_modules/@types/d3-path/index.d.ts","../../node_modules/.pnpm/@types+d3-shape@3.1.6/node_modules/@types/d3-shape/index.d.ts","../../node_modules/.pnpm/victory-vendor@36.9.2/node_modules/victory-vendor/d3-shape.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/curve.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/rectangle.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/polygon.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/dot.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/cross.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/symbols.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/polar/polargrid.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/polar/polarradiusaxis.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/polar/polarangleaxis.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/polar/pie.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/polar/radar.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/polar/radialbar.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/brush.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/ifoverflowmatches.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/referenceline.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/referencedot.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/referencearea.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/cartesianaxis.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/cartesiangrid.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/line.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/area.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/barutils.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/bar.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/zaxis.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/errorbar.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/cartesian/scatter.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/getlegendprops.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/chartutils.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/accessibilitymanager.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/types.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/generatecategoricalchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/linechart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/barchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/piechart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/treemap.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/sankey.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/radarchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/scatterchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/areachart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/radialbarchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/composedchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/sunburstchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/shape/trapezoid.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/numberaxis/funnel.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/chart/funnelchart.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/util/global.d.ts","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/recharts/types/index.d.ts","./components/dashboard/monitoring/docker/docker-block-chart.tsx","./components/dashboard/monitoring/docker/docker-cpu-chart.tsx","./components/dashboard/monitoring/docker/docker-disk-chart.tsx","./components/dashboard/monitoring/docker/docker-memory-chart.tsx","./components/dashboard/monitoring/docker/docker-network-chart.tsx","./components/dashboard/monitoring/docker/show.tsx","./components/dashboard/compose/monitoring/show.tsx","./components/dashboard/database/backups/add-backup.tsx","./components/dashboard/database/backups/delete-backup.tsx","./components/dashboard/database/backups/update-backup.tsx","./components/dashboard/docker/config/show-container-config.tsx","./components/dashboard/docker/logs/show-docker-modal-logs.tsx","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/core/table.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columnvisibility.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columnordering.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columnpinning.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/rowpinning.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/core/headers.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columnfaceting.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/globalfaceting.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/filterfns.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columnfiltering.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/globalfiltering.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/sortingfns.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/rowsorting.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/aggregationfns.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columngrouping.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/rowexpanding.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/columnsizing.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/rowpagination.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/features/rowselection.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/core/row.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/core/cell.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/core/column.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/types.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/columnhelper.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getcorerowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getexpandedrowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getfacetedminmaxvalues.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getfacetedrowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getfaceteduniquevalues.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getfilteredrowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getgroupedrowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getpaginationrowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/utils/getsortedrowmodel.d.ts","../../node_modules/.pnpm/@tanstack+table-core@8.19.3/node_modules/@tanstack/table-core/build/lib/index.d.ts","../../node_modules/.pnpm/@tanstack+react-table@8.19.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.d.ts","./components/dashboard/docker/terminal/docker-terminal-modal.tsx","./components/ui/table.tsx","./components/dashboard/docker/show/show-containers.tsx","./components/dashboard/docker/show/colums.tsx","./components/dashboard/file-system/show-traefik-file.tsx","../../node_modules/.pnpm/@radix-ui+react-primitive@1.0.3_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-context@1.0.1_@types+react@18.3.3_react@18.2.0/node_modules/@radix-ui/react-context/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-collapsible@1.0.3_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2._q2twlwqfdsnj23xlc4ucvno2j4/node_modules/@radix-ui/react-collapsible/dist/index.d.mts","../../node_modules/.pnpm/@radix-ui+react-accordion@1.1.2_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-accordion/dist/index.d.mts","../../node_modules/.pnpm/use-resize-observer@9.1.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/use-resize-observer/dist/index.d.ts","./components/ui/file-tree.tsx","./components/dashboard/file-system/show-traefik-system.tsx","./components/dashboard/mariadb/delete-mariadb.tsx","./components/dashboard/mariadb/start-mariadb.tsx","./components/dashboard/mariadb/update-mariadb.tsx","./components/dashboard/mariadb/volumes/show-volumes.tsx","./components/dashboard/mariadb/advanced/show-mariadb-resources.tsx","./components/dashboard/mariadb/advanced/show-mariadb-advanced-settings.tsx","./components/dashboard/mariadb/backups/show-backup-mariadb.tsx","./components/dashboard/mariadb/environment/show-mariadb-environment.tsx","./components/dashboard/mariadb/general/deploy-mariadb.tsx","./components/dashboard/mariadb/general/reset-mariadb.tsx","../../node_modules/.pnpm/copy-to-clipboard@3.3.3/node_modules/copy-to-clipboard/index.d.ts","./components/shared/toggle-visibility-input.tsx","./components/dashboard/mariadb/general/show-external-mariadb-credentials.tsx","./components/dashboard/mariadb/general/stop-mariadb.tsx","./components/dashboard/mariadb/general/show-general-mariadb.tsx","./components/dashboard/mariadb/general/show-internal-mariadb-credentials.tsx","./components/dashboard/mongo/delete-mongo.tsx","./components/dashboard/mongo/start-mongo.tsx","./components/dashboard/mongo/update-mongo.tsx","./components/dashboard/mongo/volumes/show-volumes.tsx","./components/dashboard/mongo/advanced/show-mongo-resources.tsx","./components/dashboard/mongo/advanced/show-mongo-advanced-settings.tsx","./components/dashboard/mongo/backups/show-backup-mongo.tsx","./components/dashboard/mongo/environment/show-mongo-environment.tsx","./components/dashboard/mongo/general/deploy-mongo.tsx","./components/dashboard/mongo/general/reset-mongo.tsx","./components/dashboard/mongo/general/show-external-mongo-credentials.tsx","./components/dashboard/mongo/general/stop-mongo.tsx","./components/dashboard/mongo/general/show-general-mongo.tsx","./components/dashboard/mongo/general/show-internal-mongo-credentials.tsx","./components/dashboard/monitoring/web-server/show.tsx","./components/dashboard/mysql/delete-mysql.tsx","./components/dashboard/mysql/start-mysql.tsx","./components/dashboard/mysql/update-mysql.tsx","./components/dashboard/mysql/volumes/show-volumes.tsx","./components/dashboard/mysql/advanced/show-mysql-resources.tsx","./components/dashboard/mysql/advanced/show-mysql-advanced-settings.tsx","./components/dashboard/mysql/backups/show-backup-mysql.tsx","./components/dashboard/mysql/environment/show-mysql-environment.tsx","./components/dashboard/mysql/general/deploy-mysql.tsx","./components/dashboard/mysql/general/reset-mysql.tsx","./components/dashboard/mysql/general/show-external-mysql-credentials.tsx","./components/dashboard/mysql/general/stop-mysql.tsx","./components/dashboard/mysql/general/show-general-mysql.tsx","./components/dashboard/mysql/general/show-internal-mysql-credentials.tsx","./components/dashboard/postgres/delete-postgres.tsx","./components/dashboard/postgres/start-postgres.tsx","./components/dashboard/postgres/update-postgres.tsx","./components/dashboard/postgres/volumes/show-volumes.tsx","./components/dashboard/postgres/advanced/show-postgres-resources.tsx","./components/dashboard/postgres/advanced/show-postgres-advanced-settings.tsx","./components/dashboard/postgres/backups/show-backup-postgres.tsx","./components/dashboard/postgres/environment/show-postgres-environment.tsx","./components/dashboard/postgres/general/deploy-postgres.tsx","./components/dashboard/postgres/general/reset-postgres.tsx","./components/dashboard/postgres/general/show-external-postgres-credentials.tsx","./components/dashboard/postgres/general/stop-postgres.tsx","./components/dashboard/postgres/general/show-general-postgres.tsx","./components/dashboard/postgres/general/show-internal-postgres-credentials.tsx","./components/dashboard/project/add-application.tsx","./components/dashboard/project/add-compose.tsx","./components/icons/data-tools-icons.tsx","./components/dashboard/project/add-database.tsx","./components/dashboard/project/add-template.tsx","./components/dashboard/projects/add.tsx","./components/dashboard/projects/project.tsx","./components/dashboard/projects/update.tsx","./components/dashboard/projects/show.tsx","./components/dashboard/redis/delete-redis.tsx","./components/dashboard/redis/start-redis.tsx","./components/dashboard/redis/update-redis.tsx","./components/dashboard/redis/volumes/show-volumes.tsx","./components/dashboard/redis/advanced/show-redis-resources.tsx","./components/dashboard/redis/advanced/show-redis-advanced-settings.tsx","./components/dashboard/redis/environment/show-redis-environment.tsx","./components/dashboard/redis/general/deploy-redis.tsx","./components/dashboard/redis/general/reset-redis.tsx","./components/dashboard/redis/general/show-external-redis-credentials.tsx","./components/dashboard/redis/general/stop-redis.tsx","./components/dashboard/redis/general/show-general-redis.tsx","./components/dashboard/redis/general/show-internal-redis-credentials.tsx","./components/dashboard/settings/appearance-form.tsx","./components/dashboard/settings/certificates/add-certificate.tsx","./components/dashboard/settings/certificates/delete-certificate.tsx","./components/dashboard/settings/certificates/show-certificates.tsx","./components/dashboard/settings/destination/add-destination.tsx","./components/dashboard/settings/destination/delete-destination.tsx","./components/dashboard/settings/destination/update-destination.tsx","./components/dashboard/settings/destination/show-destinations.tsx","./components/dashboard/settings/github/remove-github-app.tsx","./components/dashboard/settings/github/github-setup.tsx","./components/dashboard/settings/profile/disable-2fa.tsx","./components/dashboard/settings/profile/enable-2fa.tsx","./components/dashboard/settings/profile/profile-form.tsx","../../node_modules/.pnpm/@radix-ui+react-checkbox@1.1.1_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-checkbox/dist/index.d.mts","./components/ui/checkbox.tsx","./components/shared/logo.tsx","../../node_modules/.pnpm/@radix-ui+react-avatar@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-avatar/dist/index.d.mts","./components/ui/avatar.tsx","./components/layouts/navbar.tsx","./components/layouts/navigation-tabs.tsx","./components/layouts/dashboard-layout.tsx","./components/layouts/project-layout.tsx","./components/ui/breadcrumb.tsx","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/server/types.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/server/ssgproxy.d.ts","../../node_modules/.pnpm/@trpc+react-query@10.45.2_@tanstack+react-query@4.36.1_react-dom@18.2.0_react@18.2.0__react@1_2j422iw6fabovejziol4r76p6i/node_modules/@trpc/react-query/dist/server/index.d.ts","./pages/dashboard/project/[projectid].tsx","./components/dashboard/settings/users/add-permissions.tsx","./components/dashboard/settings/users/add-user.tsx","./components/dashboard/settings/users/delete-user.tsx","./components/dashboard/settings/users/show-users.tsx","./components/dashboard/settings/web-domain.tsx","./components/dashboard/settings/web-server/show-main-traefik-config.tsx","./components/dashboard/settings/web-server/show-modal-logs.tsx","./components/dashboard/settings/web-server/show-server-middleware-config.tsx","./components/dashboard/settings/web-server/show-server-traefik-config.tsx","./components/dashboard/settings/web-server/remove-ssh-private-key.tsx","./components/dashboard/settings/web-server/terminal.tsx","./components/dashboard/settings/web-server/terminal-modal.tsx","./components/dashboard/settings/web-server/update-webserver.tsx","./components/dashboard/settings/web-server/update-server.tsx","./components/dashboard/settings/web-server.tsx","./components/dashboard/settings/show.tsx","./components/dashboard/settings/cluster/nodes/manager/add-manager.tsx","./components/dashboard/settings/cluster/nodes/workers/add-worker.tsx","./components/dashboard/settings/cluster/nodes/add-node.tsx","./components/dashboard/settings/cluster/nodes/show-node-data.tsx","./components/dashboard/settings/cluster/nodes/workers/delete-worker.tsx","./components/dashboard/settings/cluster/nodes/show-nodes.tsx","./components/dashboard/settings/cluster/registry/add-docker-registry.tsx","./components/dashboard/settings/cluster/registry/add-self-docker-registry.tsx","./components/dashboard/settings/cluster/registry/delete-registry.tsx","./components/dashboard/settings/cluster/registry/update-docker-registry.tsx","./components/dashboard/settings/cluster/registry/show-registry.tsx","./components/icons/notification-icons.tsx","./components/dashboard/settings/notifications/add-notification.tsx","./components/dashboard/settings/notifications/delete-notification.tsx","./components/dashboard/settings/notifications/update-notification.tsx","./components/dashboard/settings/notifications/show-notifications.tsx","./components/dashboard/settings/profile/generate-token.tsx","./components/dashboard/settings/ssh-keys/add-ssh-key.tsx","./components/dashboard/settings/ssh-keys/delete-ssh-key.tsx","./components/dashboard/settings/ssh-keys/update-ssh-key.tsx","./components/dashboard/settings/ssh-keys/show-ssh-keys.tsx","./components/dashboard/settings/users/update-user.tsx","./components/layouts/onboarding-layout.tsx","./components/layouts/service-layout.tsx","./components/layouts/settings-layout.tsx","./components/support/show-support.tsx","./components/ui/accordion.tsx","./components/ui/alert.tsx","../../node_modules/.pnpm/@radix-ui+react-separator@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-separator/dist/index.d.mts","./components/ui/separator.tsx","./components/ui/sheet.tsx","./components/ui/sonner.tsx","./emails/emails/invitation.tsx","./emails/emails/notion-magic-link.tsx","./emails/emails/plaid-verify-identity.tsx","./emails/emails/stripe-welcome.tsx","./emails/emails/vercel-invite-user.tsx","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@next/font/dist/types.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","../../node_modules/.pnpm/next@14.2.5_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/next/font/google/index.d.ts","./pages/_app.tsx","./pages/_document.tsx","./pages/_error.tsx","./pages/index.tsx","./pages/invitation.tsx","./pages/register.tsx","../../node_modules/.pnpm/@types+swagger-ui-react@4.18.3/node_modules/@types/swagger-ui-react/index.d.ts","./pages/swagger.tsx","./pages/dashboard/docker.tsx","./pages/dashboard/monitoring.tsx","./pages/dashboard/projects.tsx","./pages/dashboard/traefik.tsx","./pages/dashboard/project/[projectid]/services/application/[applicationid].tsx","./pages/dashboard/project/[projectid]/services/compose/[composeid].tsx","./pages/dashboard/project/[projectid]/services/mariadb/[mariadbid].tsx","./pages/dashboard/project/[projectid]/services/mongo/[mongoid].tsx","./pages/dashboard/project/[projectid]/services/mysql/[mysqlid].tsx","./pages/dashboard/project/[projectid]/services/postgres/[postgresid].tsx","./pages/dashboard/project/[projectid]/services/redis/[redisid].tsx","./pages/dashboard/settings/appearance.tsx","./pages/dashboard/settings/certificates.tsx","./pages/dashboard/settings/cluster.tsx","./pages/dashboard/settings/destinations.tsx","./pages/dashboard/settings/notifications.tsx","./pages/dashboard/settings/profile.tsx","./pages/dashboard/settings/server.tsx","./pages/dashboard/settings/ssh-keys.tsx","./pages/dashboard/settings/users.tsx","./postcss.config.cjs","../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/schema-utils@4.2.0/node_modules/schema-utils/declarations/validationerror.d.ts","../../node_modules/.pnpm/fast-uri@3.0.1/node_modules/fast-uri/types/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/datatype.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/errors.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/json-schema.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/jtd-schema.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/index.d.ts","../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.d.ts","../../node_modules/.pnpm/schema-utils@4.2.0/node_modules/schema-utils/declarations/validate.d.ts","../../node_modules/.pnpm/schema-utils@3.3.0/node_modules/schema-utils/declarations/validationerror.d.ts","../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.d.ts","../../node_modules/.pnpm/schema-utils@3.3.0/node_modules/schema-utils/declarations/validate.d.ts","../../node_modules/.pnpm/schema-utils@3.3.0/node_modules/schema-utils/declarations/index.d.ts","../../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/tapable.d.ts","../../node_modules/.pnpm/webpack@5.93.0_esbuild@0.20.2/node_modules/webpack/types.d.ts","../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts","../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts","../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts","../../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts","../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts","../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts","../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts","../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts","../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts","../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts","../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts","../../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts","../../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/types/index.d.ts","../../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/settings.d.ts","../../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/managers/tasks.d.ts","../../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/index.d.ts","../../node_modules/.pnpm/globby@14.0.2/node_modules/globby/index.d.ts","../../node_modules/.pnpm/copy-webpack-plugin@12.0.2_webpack@5.93.0_esbuild@0.20.2_/node_modules/copy-webpack-plugin/types/index.d.ts","./next.config.mjs","../../node_modules/.pnpm/@types+tar-stream@3.1.3/node_modules/@types/tar-stream/index.d.ts","../../node_modules/.pnpm/@types+tar-fs@2.0.4/node_modules/@types/tar-fs/index.d.ts","../../node_modules/@types/conventional-commits-parser/index.d.ts","../../node_modules/.pnpm/@types+eslint@9.6.0/node_modules/@types/eslint/use-at-your-own-risk.d.ts","../../node_modules/.pnpm/@types+eslint@9.6.0/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+eslint-scope@3.7.7/node_modules/@types/eslint-scope/index.d.ts","../../../../../../node_modules/@types/estree/index.d.ts","../../../../../../node_modules/@types/acorn/index.d.ts","../../../../../../node_modules/@types/cookie/index.d.ts","../../../../../../node_modules/@types/cors/index.d.ts","../../../../../../node_modules/@types/ms/index.d.ts","../../../../../../node_modules/@types/debug/index.d.ts","../../../../../../node_modules/@types/estree-jsx/index.d.ts","../../../../../../node_modules/@types/unist/index.d.ts","../../../../../../node_modules/@types/hast/index.d.ts","../../../../../../node_modules/@types/http-cache-semantics/index.d.ts","../../../../../../node_modules/@types/katex/index.d.ts","../../../../../../node_modules/@types/mdast/index.d.ts","../../../../../../node_modules/@types/mdx/types.d.ts","../../../../../../node_modules/@types/mdx/index.d.ts","../../../../../../node_modules/@types/minimatch/index.d.ts","../../../../../../node_modules/@types/nlcst/index.d.ts","../../../../../../node_modules/@types/parse-json/index.d.ts","../../../../../../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../../../../../../node_modules/@types/parse5/index.d.ts","../../../../../../node_modules/@types/prop-types/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"4af6b0c727b7a2896463d512fafd23634229adf69ac7c00e2ae15a09cb084fad","affectsGlobalScope":true},{"version":"9c00a480825408b6a24c63c1b71362232927247595d7c97659bc24dc68ae0757","affectsGlobalScope":true},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29",{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","247a952efd811d780e5630f8cfd76f495196f5fa74f6f0fee39ac8ba4a3c9800",{"version":"8ca4709dbd22a34bcc1ebf93e1877645bdb02ebd3f3d9a211a299a8db2ee4ba1","affectsGlobalScope":true},"cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","0b4bc32128fda7bb0752cf284730dd3a817aae04a3d7f92e3b2d54bd61362fe1","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"5f290ea7efbe9d8431e10df12c0d5672b67988e7c171c2d356749fac70347a55","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"7433824ea9a5637108019003bcadb9a947b7f992ac8bdfc228af44def02d1f6d","affectsGlobalScope":true},"e4b50850c2a62c7750428e452ee24b167180104d514d5e5c0ca691753365f610","304504c854c47a55ab4a89111a27a2daf8a3614740bd787cc1f2c51e5574239c",{"version":"95f9129a37dcace36e17b061a8484952586ecfe928c9c8ce526de1a2f4aaefa7","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","c89152f87c874fe56754bd7b3df048f70b7af710dcf114b8ec5a8215e69c288d","e46fa644658c2d6e5c85e954ea76b92c97d63f0851d3ccdab8c2a80d5962aaa9","1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","a307d22a0130ac94c1a17fffa6d57ac272deb5838cb966a9420911d259cdf1be","d2e415abf6cb81ac9e2700b4db5ea7be76b997e812285b8e5e1e414eb2750b6e","09d6cebdced6aa1181ac1523c8f22a133f5ed80589678b64051f0602f0518374",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"7c35691dc3972ff1507d8dd279d833f540973d0917bde22e191cf7a8feaac29f","affectsGlobalScope":true},"62662d7a886e5cfa870685720fd27b763743ca4d2cf29326f75d76606a64eadd","b8c670688bd228d3cc9c169690b09b687188c50ff263a94df63b207701105ad9","d8e16905907111390d5a943816306ae997dfe56476f14142166f8b13ee322eea","8068c911a1c40bc6c5ffc58c625b21d807778f6aa6d63a73e6f04f88bcac5b79","a1dbce56ad5f3a37caafb9033c9d190a199217d673f5fa099c8968d471a2fdaa","c6f77efcc19f51c8759779b6b6ee0d88046c15c15dadac8ffed729a6620daf39",{"version":"0c9f257fcf9e9c360c8dea63d509e30aa8fc3f5cad152b557dc7e597ceb6d605","affectsGlobalScope":true},"269d0ea3202820c29a32c1f2a357837a4f1918426844f7e7c90af15ec40d1dc1","66432f885e30cf471573de22a5af5eca9ab46b37b122aec98beadf77e9b7df24","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"034e635df3c014df1d6b1110b724ca0c4d2d324b45a84974c7d6931f9cf95ea7","affectsGlobalScope":true},{"version":"87f9456115554cb0f78f098ddbd585096871c19d2d05274c1b1b4ade3151da78","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","da618f0ea09d95c3b51514de43bf97dab008c85bede58aa57cf95e4984c7c957","48a35b181ecf47dbbc0a7ab4b5ba778d91eaa838ba42bf4aaaead42be77ef39a","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","5195aeb0de306d1c5ca8033457fbcab5987657112fa6d4971cfeb7644493a369","c5dbf0003bc9f0f643e54cd00a3868d1afe85497fecb56be6f2373dc85102924",{"version":"ce73eb199c4bf96c015f069aac161488ed73ebeaea3d87b6d5aa9a968a7b38d4","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","962f105729d5b888c8b70e193f6020ee92c6c8144c827de40f80d65dd188ad7f","ac74e2b754fba690036f8221d978f6debb867462b87af254f24e924b677395d0","80858f6de9af22e53aff221fe3590215ea544c2aeb2cc60cf8e08a9c785c8fef",{"version":"068b8ee5c2cd90d7a50f2efadbbe353cb10196a41189a48bf4b2a867363012b4","affectsGlobalScope":true},{"version":"340659b96782f5813aad6c1f89ea1b83b2f3fa993115c7b30366375d9bae5a4e","affectsGlobalScope":true},"6f44a190351ab5e1811abebe007cf60518044772ccc08244f9f241706afa767f","fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"895ca532c15c77cbb6a871af1870b57bcd0ca4f38a1bd69669dd0e95bb58565a","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","6f5260f4bb7ed3f820fd0dfa080dc673b5ef84e579a37da693abdb9f4b82f7dd","97aeb764d7abf52656d5dab4dcb084862fd4bd4405b16e1dc194a2fe8bbaa5dc","adb17fea4d847e1267ae1241fa1ac3917c7e332999ebdab388a24d82d4f58240","5dbf2a502a7fcd85bfe753b585cfc6c9f60294570ee6a18084e574cf93be3fa0","bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","98817124fd6c4f60e0b935978c207309459fb71ab112cf514f26f333bf30830e","a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","196c960b12253fde69b204aa4fbf69470b26daf7a430855d7f94107a16495ab0","fb760b3dded1fadb56c3dde1992b6068bb64d65c4d60d65dc93659f5f44ccddf","bf24f6d35f7318e246010ffe9924395893c4e96d34324cde77151a73f078b9ad","596ccf4070268c4f5a8c459d762d8a934fa9b9317c7bf7a953e921bc9d78ce3c","10595c7ff5094dd5b6a959ccb1c00e6a06441b4e10a87bc09c15f23755d34439","9620c1ff645afb4a9ab4044c85c26676f0a93e8c0e4b593aea03a89ccb47b6d0","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","08ed0b3f0166787f84a6606f80aa3b1388c7518d78912571b203817406e471da","47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","9a1a0dc84fecc111e83281743f003e1ae9048e0f83c2ae2028d17bc58fd93cc7","f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","e8da637cbd6ed1cf6c36e9424f6bcee4515ca2c677534d4006cbd9a05f930f0c","ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","fc3e1c87b39e5ba1142f27ec089d1966da168c04a859a4f6aab64dceae162c2b","3867ca0e9757cc41e04248574f4f07b8f9e3c0c2a796a5eb091c65bfd2fc8bdb","61888522cec948102eba94d831c873200aa97d00d8989fdfd2a3e0ee75ec65a2","4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","59bf32919de37809e101acffc120596a9e45fdbab1a99de5087f31fdc36e2f11","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","3df3abb3e7c1a74ab419f95500a998b55dd9bc985e295de96ff315dd94c7446f","c40c848daad198266370c1c72a7a8c3d18d2f50727c7859fcfefd3ff69a7f288","ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","973b59a17aaa817eb205baf6c132b83475a5c0a44e8294a472af7793b1817e89","ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","8dba67056cbb27628e9b9a1cba8e57036d359dceded0725c72a3abe4b6c79cd4","70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","5cbd32af037805215112472e35773bad9d4e03f0e72b1129a0d0c12d9cd63cc7","ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","afcb759e8e3ad6549d5798820697002bc07bdd039899fad0bf522e7e8a9f5866","f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027",{"version":"566e5fb812082f8cf929c6727d40924843246cf19ee4e8b9437a6315c4792b03","affectsGlobalScope":true},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true},"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369",{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true},"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b",{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true},"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","68a06fb972b2c7e671bf090dc5a5328d22ba07d771376c3d9acd9e7ed786a9db","ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","d729408dfde75b451530bcae944cf89ee8277e2a9df04d1f62f2abfd8b03c1e1","e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","78244a2a8ab1080e0dd8fc3633c204c9a4be61611d19912f4b157f7ef7367049","e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","73636e5e138db738b0e1e00c17bcd688c45eead3798d0d585e0bd9ff98262ebe","43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","31fb49ef3aa3d76f0beb644984e01eab0ea222372ea9b49bb6533be5722d756c","33cd131e1461157e3e06b06916b5176e7a8ec3fce15a5cfe145e56de744e07d2","889ef863f90f4917221703781d9723278db4122d75596b01c429f7c363562b86","3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","d11308de5a36c7015bb73adb5ad1c1bdaac2baede4cc831a05cf85efa3cc7f2f","8c9f19c480c747b6d8067c53fcc3cef641619029afb0a903672daed3f5acaed2",{"version":"f9812cfc220ecf7557183379531fa409acd249b9e5b9a145d0d52b76c20862de","affectsGlobalScope":true},"7b068371563d0396a065ed64b049cffeb4eed89ad433ae7730fc31fb1e00ebf3","2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","913ddbba170240070bd5921b8f33ea780021bdf42fbdfcd4fcb2691b1884ddde","74c105214ddd747037d2a75da6588ec8aa1882f914e1f8a312c528f86feca2b9","5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","4d85f80132e24d9a5b5c5e0734e4ecd6878d8c657cc990ecc70845ef384ca96f","438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","cf185cc4a9a6d397f416dd28cca95c227b29f0f27b160060a95c0e5e36cda865","0086f3e4ad898fd7ca56bb223098acfacf3fa065595182aaf0f6c4a6a95e6fbd","efaa078e392f9abda3ee8ade3f3762ab77f9c50b184e6883063a911742a4c96a","54a8bb487e1dc04591a280e7a673cdfb272c83f61e28d8a64cf1ac2e63c35c51","021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","84124384abae2f6f66b7fbfc03862d0c2c0b71b826f7dbf42c8085d31f1d3f95","63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","3a6ed8e1d630cfa1f7edf0dc46a6e20ca6c714dbe754409699008571dfe473a6","512fc15cca3a35b8dbbf6e23fe9d07e6f87ad03c895acffd3087ce09f352aad0","9a0946d15a005832e432ea0cd4da71b57797efb25b755cc07f32274296d62355","a52ff6c0a149e9f370372fc3c715d7f2beee1f3bab7980e271a7ab7d313ec677","fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","59c68235df3905989afa0399381c1198313aaaf1ed387f57937eb616625dff15","b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","c99a3a5f2215d5b9d735aa04cec6e61ed079d8c0263248e298ffe4604d4d0624","49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","b98ce74c2bc49a9b79408f049c49909190c747b0462e78f91c09618da86bae53","3ecfccf916fea7c6c34394413b55eb70e817a73e39b4417d6573e523784e3f8e","c05bc82af01e673afc99bdffd4ebafde22ab027d63e45be9e1f1db3bc39e2fc0","6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","14e5cdec6f8ae82dfd0694e64903a0a54abdfe37e1d966de3d4128362acbf35f","bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","4e06330a84dec7287f7ebdd64978f41a9f70a668d3b5edc69d5d4a50b9b376bb","65bfa72967fbe9fc33353e1ac03f0480aa2e2ea346d61ff3ea997dfd850f641a","8f88c6be9803fe5aaa80b00b27f230c824d4b8a33856b865bea5793cb52bb797","f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","872caaa31423f4345983d643e4649fb30f548e9883a334d6d1c5fff68ede22d4","94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","09dfc64fcd6a2785867f2368419859a6cc5a8d4e73cbe2538f205b1642eb0f51","bcf6f0a323653e72199105a9316d91463ad4744c546d1271310818b8cef7c608","01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","351475f9c874c62f9b45b1f0dc7e2704e80dfd5f1af83a3a9f841f9dfe5b2912","ac457ad39e531b7649e7b40ee5847606eac64e236efd76c5d12db95bf4eacd17","187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","95b444b8c311f2084f0fb51c616163f950fb2e35f4eaa07878f313a2d36c98a4","741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","f8acecec1114f11690956e007d920044799aefeb3cece9e7f4b1f8a1d542b2c9","131b1475d2045f20fb9f43b7aa6b7cb51f25250b5e4c6a1d4aa3cf4dd1a68793","3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","e1437c5f191edb7a494f7bbbc033b97d72d42e054d521402ee194ac5b6b7bf49",{"version":"04d3aad777b6af5bd000bfc409907a159fe77e190b9d368da4ba649cdc28d39e","affectsGlobalScope":true},"fd1b9d883b9446f1e1da1e1033a6a98995c25fbf3c10818a78960e2f2917d10c","19252079538942a69be1645e153f7dbbc1ef56b4f983c633bf31fe26aeac32cd","bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","3b0b1d352b8d2e47f1c4df4fb0678702aee071155b12ef0185fce9eb4fa4af1e","77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","a344403e7a7384e0e7093942533d309194ad0a53eca2a3100c0b0ab4d3932773","b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","e9b6fc05f536dfddcdc65dbcf04e09391b1c968ab967382e48924f5cb90d88e1","a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","8b140b398a6afbd17cc97c38aea5274b2f7f39b1ae5b62952cfe65bf493e3e75","7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","30112425b2cf042fca1c79c19e35f88f44bfb2e97454527528cd639dd1a460ca","00bd6ebe607246b45296aa2b805bd6a58c859acecda154bfa91f5334d7c175c6","ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","504f37ba38bfea8394ec4f397c9a2ade7c78055e41ef5a600073b515c4fd0fc9","cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","87ac2fb61e629e777f4d161dff534c2023ee15afd9cb3b1589b9b1f014e75c58","13c8b4348db91e2f7d694adc17e7438e6776bc506d5c8f5de9ad9989707fa3fe","3c1051617aa50b38e9efaabce25e10a5dd9b1f42e372ef0e8a674076a68742ed","07a3e20cdcb0f1182f452c0410606711fbea922ca76929a41aacb01104bc0d27","1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","4cd4b6b1279e9d744a3825cbd7757bbefe7f0708f3f1069179ad535f19e8ed2c","5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16",{"version":"d23df9ff06ae8bf1dcb7cc933e97ae7da418ac77749fecee758bb43a8d69f840","affectsGlobalScope":true},{"version":"040c71dde2c406f869ad2f41e8d4ce579cc60c8dbe5aa0dd8962ac943b846572","affectsGlobalScope":true},"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","9269d492817e359123ac64c8205e5d05dab63d71a3a7a229e68b5d9a0e8150bf",{"version":"55bbfa2fcb7692e366773b23a0338463fc9254301414f861a3ae46ff000b5783","affectsGlobalScope":true},"f634e4c7d5cdba8e092d98098033b311c8ef304038d815c63ffdb9f78f3f7bb7",{"version":"6335fe6588a83fac404c1582d8b1503224624eacf6662cdcc5d5d2cdcd78b6bd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"a999bad9add1841f11508785af282ca59730f0b06648b5cb0af605794f54a4eb","3f9eb031fd4ac9ab6855e60f0978a6314d9f0f60fb3308d1543c80be639b7772","1278e982e597e933e1fb8848a02565d449bbfc9bfe5964cd2618027086c58c6f","ca56180f5dd88b60634ce0bbd7ee0f5116ec8e3ce03f39091c00a29cd3ba520d","26194369ff5ca0762869f3076a675548f943c654f88e6d205227ebd805592b4d","f618e5d6ff83a6d31ac788354c5cf75b6cfdb4ba8289b236afd60755600e1351","128d224d8f04de05cda0ccbc8c2a7ac3b3ddd40c3271823cc892dc4431b6b2cd","46e3694c998b1cc2d2117fd3402119511068073a2f37a5daadf53d8e9c6e0d64","2d66c8800fdfa7ffbed09f5b91ba928acdcdb0088322fb70f6005408d6cf48c6","4619365720ede8395de5a1069c0bbdcb225879941363c60e8aeab05d18fcf051","c7c13012550291e2047fc8e850c76a8ef5f9e792aa67dc1a5f3be21e6a293237",{"version":"f5be9c614c2716399f03c2009fd66344f1f47e7578f00fb4d7f3778e74585b88","signature":"e6baeefb7d38b964fb41c87826a37fe3d36e2d6b66454ab50826373fa1385c24"},"cacbb7829fdc44382199306cc9b516eb44df1b26bd984c2516b11933ac8049f8","c6fe327c538417b8dd5b9bb32abcd7911534b10da3a4514f3445cdb28cf3abf2","28a694331cf66a751fc0b0ab004fafe2d65b0a5c1ffe026dd698f8fcd9f59d85","0065cdb7ac9f5b19921632de63f888ec2cc11ad57f7fc868f44bf0faad2fce3e","6d835cdb33db88b91180eb7d2f4dec1e03b8d7e2854813a673349503142a8cf5","be7a3116afafbd765abf55d66640c927410e64cb7f98086393e4fa0ab297eb8b","ca20a9ebaca307ce67860029b6b14c63bdea62784a1dd00459e672893f513b1a","015916d335054556670a8c67266c493ce792a2c23a530a6b430f1662a65b73a8","fdfaf1e84e4a8995615a2e63a3a99b7bdee1cd3bbe9ca8156ee4b952faa8267e","95e172b7543aab2810f688467b25cf2cddcac5a585c52d82f885c11ded6854f5","4f97089fe15655ae448c9d005bb9a87cc4e599b155edc9e115738c87aa788464","bcab57f5fe8791f2576249dfcc21a688ecf2a5929348cfe94bf3eb152cff8205","b5428f35f4ebf7ea46652b0158181d9c709e40a0182e93034b291a9dc53718d8","ce3c2dcaa2fd59e3587e61c35e0be051ed28f0ed925049af607fab2ffc12849d","7d0504a01c73708695d3f79c5254b27533e3c8395047b1c91f080a61b08ef5fe","9839aa89e0711701138c9e0c97f437bc4b3eca0ac582ceffbf8414d1afe03804","713293291ce8c000818a7ea4d470e73b5a5a3c978bd616b9d7138a60bc32ec16","bc7b85fe75dc1083263e1bb5d3423bbc741333edbe5939aba00d174bb6017948","535b48cc23a5fda64c045a74477c1923ff96054dbf120c3b99cc7f17fa6a257f","3fa5c09b1647d1b3e62caa2434429360042280693e12f3bd9053eb0613ff201d","ffe8b18b6166a6e106ab6e5a90f44ef2f35a38ea8fc28b6a35ccc406e7c14ae8","457fed4cbf88c8291acc8a925b73813b89080919b2a7c4c7c10dfda72f9618bb","09d7afb3e532e1cc786e51bb8d34ca489db1073d3df6ffbaa6192cf3f59c6a6a","af1f10c78df22211c90dbf51d385ace830a2292363bcf49a873f9c751bf899bc","e59f46758b814218fce1643b695da2cf71b5352f7b341a963e3a510ae6f577eb","dda3f6afb689e3a1382431da46ddb6efe098d94c4a84b8ed71d63329f1d21d18","3e0ecea199aa38da0b339133da4d3865e7c8151e9d2e5d9315cea14746906472","f530f7cc7f34f64303a1a36d9cdafd4637f2c57e0e661cf3d813160bfee9a6cc","783773456c6505454e54a4e9b3c6684c76e02881e04304fc6ce3937da764b38e","090c8e34fc29e3c9ea5cbb32069cae54571a8e7b8108e8a9480f5a4a18963827","9617aa0221e5e40a1d3eff2ce8116a8d11a7a55d41f979458d9b117807dc14e6","a3f64e4913ff9a2f212cb6cf255001748125f827492f18b86264539173b4a942","10d311d8fd97783f258071c1ee6e9d4c5b511bd0ac0708c5b5e3c038aca1c663","0079c161f88acf722648ec0dd6b42d9935c193c488cb64c9323f2b1b456dbf22","055ec2c00c9043ccef48cf095fa13d0713c8329c9bc9ff92ee45c0fe0ee570a9","570d2c92b417cf05cedf191ea4410e9eafd237f3aaea28ffb0c7442a7b2d58ce","6dc0813d9091dfaed7d19df0c5a079ee72e0248ce5e412562c5633913900be25","7c96df3cd1e4728dc1650e65fcbab6b097d86755ab060dffe88d2aacb3cf4882","a5003ef557ad104bcbeaa47c055e29fdc98222b815290cb4c46b79a641a6e512","17ff0b1468672fa0acfd4eebd7b2cc0d093eaf69e1ff96e1a4968e93ab96863b","7ab9c6f7a2cc009dd9690c22a0e8cb632606050d342db8617fb6ffa3598b91a8","beea23b2c7a4a38bf1955382f9e7ebc9f732237a7edd6ce69855b988d9e59dac","3d3f189177511d1452e7095471e3e7854b8c44d94443485dc21f6599c2161921","3816bb1a729127f6a32d21414f0ead9aa6ac72c825b55e7094f5da002bc61d24","043195af0b52aadd10713870dd60369df0377ed153104b26e6bac1213b19f63e","ad17a36132569045ab97c8e5badf8febb556011a8ed7b2776ff823967d6d5aca","698d2b22251dbbfc0735e2d6ed350addead9ad031fac48b8bb316e0103d865db","0a1b00c49472d2fbe185662f84f64479660fc0cb56698b2b004a06af4f7cfc03","853dfbcd0999d3edc6be547d83dc0e0d75bf44530365b9583e75519d35984c35","abbb31e3da98902306359386224021bfb6cfa2496c89bbbde7ee2065cf58297c","eb77a8615b87a807171bc0a69a1b3c3d69db190a5f243c0dac2c5acc9cffba15","9119819f0576ae862844a57d3ba074b2485caee5723add98dab6f262994c8748","e2381c64702025b4d57b005e94ed0b994b5592488d76f1e5f67f59d1860ebb70","816dc1d5864d652f9ec6cd82a5a1ff6710809621ae007cb1867a00ffd8faa556","f3e24dd7114a0936a7240fb1ff0a7c940c79615e4f4c3a87a00b1b5324a9cb48","625696068144fb062de10d0b61f064ee54ab4f73a9cdc1c4acbc4076ee923c8a","d63325cfe0bd23477fa2754cb6ede68a152de1ea8b81e6a32bbc401c74d1ff31","8ec3b354ca25fa7524ac376da4480ffb141157ed6900a830cfe40d1ab0f2162a","d204b9ae964f73721d593e97c54fc55f7fd67de826ce9e9f14b1e762190f23d1","ceb78be9831cb2646370d5149b4475bd847cf40f2f7e920760a23e4efd92ff82","3f668f4877475236ec03e054670693a0a920fd517a2e525bdf87e822fc12d413","687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","bd7665d3d6a57c509034679d35d66c2c21bb7962b28bdceed5cbc43fdb67e275","31fc768896c8a77249637f4f24f8db9c6bfe5932a112270b3d33bf1064998129","873f7e323e900fa72ea43e330900f9ea45cfd8205d20d073ae95c6f47b0d6508","21f96085ed19d415725c5a7d665de964f8283cacef43957de10bdd0333721cc4","16adaba3987310c895ac5309bc36558a06d1298d1f3249ce3ba49753138a6fcc","ad721fe6db572e06f482de4eb929390d275868be4cab6533e28e3890851c7fa0","a10fd5d76a2aaba572bec4143a35ff58912e81f107aa9e6d97f0cd11e4f12483","1215f54401c4af167783d0f88f5bfb2dcb6f0dacf48495607920229a84005538","9d1352fbed9d30513e1306cfdbdfc07af8e9e950973a97417b081075c5ff8e1a","07603bb68d27ff41499e4ed871cde4f6b4bb519c389dcf25d7f0256dfaa56554","6139824680a34eba08979f2e21785a761870384a4df16c143b19288aced9c346","6bd4aa523d61e94da44cee0ee0f3b6c8d5f1a91ef0bd9e8a8cf14530b0a1a6df","6b6e2508f79513e01386273e63d0fc3617613d80a5aca950a2b0fc33d90ad0b4","b2f00c8046c4e6fcbaf74304a42d8159a11f624107cac2b0d455332ae9e87ccf","2fe93aef0ee58eaa1b22a9b93c8d8279fe94490160703e1aabeff026591f8300","bbb02e695c037f84947e56da3485bb0d0da9493ed005fa59e4b3c5bc6d448529","17591571e53453c9b090910e074cdea8e7adc66f5b7cb0980eed48dadcc78c6f","a376dfd56c0bd817c4ae7aaa611aa81488107d511c550416d8e8380a149e4152","561926dd05eb5250f78d772526ffecd419ebac19f1ebefac5562d432cb185ec3","6362a4854c52419f71f14d3fee88b3b434d1e89dcd58a970e9a82602c0fd707a","6019a258b041dc771fcd0a82c0b18f2430f1536e48d1132e2d36a3af7c26eb44","627fc15708f070e2cab1751d1302045b2d3ed42fb1d1334055919d31952c79e7","4a6c2ac831cff2d8fa846dfb010ee5f7afce3f1b9bd294298ee54fdc555f1161","6b7606e690f511bd1fa9218487aceb2f8693218eed5328a7af87a8f34e88936e","730cb342a128f5a8a036ffbd6dbc1135b623ce2100cefe1e1817bb8845bc7100","9574d6280c14da778288360b182f1f074a0b32b2dab64102685c7d4bc1fc56d3","d7dfcb039ff9cff38ccd48d2cc1ba95ca45c316670eddbcf81784e21b7128692","a03645f65eec2cd03adbd7e1f03fc8e1b90d6b254d3417f4d96f01c2ed5fdfc5","635aa24ab2093ce71bdeda8f162665e7fdec3a2a56e15c1abf34493d839d54ad","ac56b2f316b70d6a727fdbbcfa8d124bcd1798c293487acb2b27a43b5c886bb0","26722ba25e122ab7e11592044cf38123ea995039a66fa5cd1880f689d26e60c4","5ead43a727f75335fdbce4d4f658d60388dfaae3d9e96ff085a37edae70400da","0f9c9f7d13a5cf1c63eb56318b6ae4dfa2accef1122b2e88b5ed1c22a4f24e3b","b31b7aea20e664b4f6cafdfeebbbb5735590358250729794b38dbf81d03cf7b4","6f1ec5ba03b19c02b202677f9783776ce5da9c64f040d36efce9e7e8fe64e89a","cd1a30c4c6cc2c811fd715f3d5f74e7c119cca4ab60f3a020c20e1f854e483de","579bd9db633cc0cd93511631f9d9587f8fd3f2bf1c7c701ee989c14abd8c5623","77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","6376764ab0407d5208be0419abecb6fbdc0ef6005c7760a8a5df27ad18288c11","8476efe8148055eea21a9a446a88004b46773b6266445cec3e91cf6474148e76","5fa5e764b0e4aa9489bb23e7829a1f052128562673a7f46427546790fa2833a5","6b514d5159d0d189675a1d5a707ba068a6da6bc097afb2828aae0c98d8b32f08","39d7dbcfec85393fedc8c7cf62ee93f7e97c67605279492b085723b54ccaca8e","172bc80d1d22873fe878ff472d8c003a05dffe59ae5360dfbbee6ce77976a3f8","7d604c1d876ef8b7fec441cf799296fd0d8f66844cf2232d82cf36eb2ddff8fe","861596a3b58ade9e9733374bd6b45e5833b8b80fd2eb9fe504368fc8f73ae257","a3da7cf20826f3344ad9a8a56da040186a1531cace94e2788a2db795f277df94","d138b4abf9e543f751a62d547edc2a5ad5acda445bd7a3425e921b0d9b34499b","b30dd19724b5768f8adf0435c6c5cb63cbbca646b8af93610c7cdab0a4937863","b0e4fa9c48065ca7b25e6da1ebd03c2eecb1aee64a9f120572c315e8d13b86ce","57b4448e0fbf2b6071ed80c0171030a23917e4ea9f373dc2f98890f3e0496272","2bbcc96485b4f00be5cb03ed8be3237b9347c87df46fdea5694e625f507a01b5","2c1d251479b931c47d2e27b066ef54aa2bd4bceb5f1e642080b9667c8e712774","d4066ba263b829f8fc098b6ae66eaa476a585dbd965852026949d41bd5b5e389","7a892f3a2786a2159dffaedd754a3f94b488ab9e40f6e53e6fca2aab6c23bd67","e5e85c5def4fbbf5a83ee004395c3e087c8ca2d87f3864a7cf0adac2723c78d0","0a7da46f869d7783766a1b220b911be983b6e1a225b320f587f1265784aecd2b","90a8cd97e0decc0ee00bbbf0d70260019530f446bafe0a5f2abf6337d789be69","233c107a5721c5a695574abe07afc1d7e106a5e93ea9cd841c846ab436a6ca26","516c798d741d11794a81ba018ac356e3b640c349a9c7aa0a5016589d16eb63b1","4b3e103eca50f82c683a1fe18d54edd916726e3b6f767ef0a80d601e86b82196","687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","3e4e5126aaa6405e130f0222d3ffc6f97a5806b67100b843ebf33f931624fef4","442f6a9e83bb7d79ff61877dc5f221eea37f1d8609d8848dfbc6228ebc7a8e90","ecc8f3ef3a4ef382960b2c83291ce4d7ebbb6fed0854ecb7103b4cf9fde232f9","2ba0914a072d15b3bdd9cbb3080f362fdb487a4e4235d6aeadfc6eeb0f87d397","9ac718f694ba940c697391db374e17c887d55c1c722ee5dbd2f2b0050a9f7451","5a13196d2209a46a7a40727a5829510a6e73ff3a4d28e479def74886d5c731bf","9cb4907900f7fa5331806239955a3e5928c0bb680c75bd71c1510f6c55ece506","db14baf5ab28c693ce9396af144f3dcdf31e3cdef8afe8da0a895fc20e6b6768","a7f73f09c7de25f7f1670fe6034ca85403163f9c3b12ad416502b23ce057fc8e","b403ecc83e59efba1b1f4917f357a494d4367cd9199ea445391b3f966e179b4b","fa910f88f55844718a277ee9519206abce66629de2692676c3e2ad1c9278bdfd","b9bfbc9537a33509b840636acbb8fd382231d361af5df63bddb00323085feac7","9ae87bd743e93b6384efbfa306bde1fa70b6ff27533983e1e1fe08a4ef7037b8","5f7c0a4aad7a3406db65d674a5de9e36e0d08773f638b0f49d70e441de7127c0","18fe61adb6cf3f8f33ca559035f790c09b54cab0e93e74298085aa21210522c7","1cf38b56dab39d3ce817feab25d44526aee56912764ded3ac859f1d4e00d429a","098177f309f4b6b1c365c24d474a8e07d627a3ec1bdb502376393f1048c087f1","35ef7af1d3dd829696e932dda626acce98738cf5022942c1a7601caa2db22848","8880749d5b2bddfb7c0a03d158216a814e9809bc5c12b89a7434519bbdfd8fec","6a6845b82110dee971973cbd558a190a7b977909e5a45a402956aa539851701c","51a364e7e4e056be20e6d2ad23865e04f5b0dd19fe54a5d3217b482a3ca8320c","b5ea27f19a54feca5621f5ba36a51026128ea98e7777e5d47f08b79637527cf5","28146399c2ffd10a3f0fc78ae0f2caf4570f162cfc8a87867d31157b048355ee","43d1628a4e3ec7ecb93b9b5362ed76eb705526e1da0a034f1a651e1e107bb46a","e16f1ebc141ddf15260e1173023e99903be23cc2de0b8317cfab4d16e7e63ac7","de7678bab6ec2f529dd11ad85254f1a2f35ae611270d12e3c705742291dea4e1","66ba5a2a79db048d4e2c4655abc328911c5ea97cd9d93d703cba1d430b51e608","29e4eb6f98d530e3581cec09f00e4194069713554b0b6926ae97bc57fa96d751","1b1723ef104cfa29a432b190dc6af5ab1b66609d0fbe02ccdb35bc082c1f766e","91fdb62d5dd4ebcf83ed4c17554e76d6651f99895b9fb4850420ea5f99d7dfe4","fc4babb198e652f27e114c2096a5768f1f1de0d3bbae8c5eaf434d403fc3eb3e","e79a59411de726be0af0e481d3b1fc458e2ccc0ca0b99fe9b72ed732b51eb9cf","28551bf71a5197923eb40030bed02550379f5872295885f3a5c0b0f33b674d12","3c0588ad45ab7e22180c7ee355fbb8d7dfef36f26c4199ab07c3a147a60baaea","dbb4c5674f0c364c2ef14d73ffb62f793228f1599f855fdbb0e9c38a40f380c1","e9b8a18f7cf70043f0ed9b45a6a1de7301366e6a6bd0d98a1641a7829e20bced","52ae17619cc2af50fd2be256806816ee5578b7a27e1459067651573219c161f8","e4db8fb860f799f0c3a06384c6dba77eabd92afc9db749028b89a68209511cb7","c99e4671e547b03ea098e6531d31d946f79b086beb41c7cefff3496a1dc7e0c2","c3a2d77c78af25b8d6a23f9ea4fbc6e8bfd9df9ded149387f9f4aa758a4c67a2","7b9b1c44275a4d4921680da940ab539f99052c6ea8a2169b1fd5d351ea04fd85","79b3d0013317579abeda545ec88e29ccb6d75a1a26ed5db309706322adad7e6a","332f5f673d1832dd9c16ac6fd8cdad8723290dd0b6cf50bb4271b16db0cb2d1a","3ed2a5eba8a85d7bd0d5e7ee46caf12c75ed3e449ccbab1f269a902e5feb65eb","bc14cb4f3868dab2a0293f54a8fe10aa23c0428f37aece586270e35631dd6b67","5857d41fa972bf4f1b0807eccc028d8329986b08471e47628bedffb319562497","b22c905d6312883e88f472a20b68a40984c4ee5d8199ba520c6e75b855fe2398","e0a23c8c9fcaa067a1a9051eeba6cadff38c026292184a078dd0c242a25ee147","2fac70f99da22181acfda399eed248b47395a8eeb33c9c82d75ca966aee58912","6bbbaa2af983444add75cb61554b91dfb26c7474bb59b148270a63015ca83131","8572c8c7efd451ed811f657d6d70f03ee401c5cf175490fcc6b2215b57b44391","9db596446342a6c90d34ac1135421c264ca8e50c0c674c0fa10b313f7a51bf50","30fd693da320b8c72424ca881a565162679e06c8f88796c497d24e29daac1b3c","eca2247488ac2497d59286dd3addcdfbb24072e20c6ebfc7fa3915c9c266566c","f50a16ca6024aca2ce243524b079c3e2f0ad433ee3be729ac0af43bafa4e1791","ab2673ff1acedac16b862af7ec8e2d5cee62937080f1359dbf2d29126d508eb9","4287143b90d621be53fab9dca36a42b2ec735bfb44da5a07e8748a261821f95c","949fa4a7cfefb2eb529ec6c2172a34928b069f93e6a3b65891aedc6fc306200e","79e12334f2a478c117a5953cbfd52f4d4f59f77c21c7740edb338141f874f279","0582a8d130897dfc3f6310da68f16471cb6293799ccc0aa09975dffd4265b61e","5a341ba80d659186e5b4953c5d00993104f529b48d11fd0b0144ca25bd350a69","968ed07a79919ca7154ca83c5e969002b978b97adc2ba22a3af45d5993a9099b","be1561053576a52f4d65494e2f1282289320a532293094134321a44a93cf4915","b1ce8a3b8ed1691b9770b9871fab57823ab55d40d5dfa9f30af2ac377850a970","4ceb88f4a0e929e0dc864502f2e23034c5f54d9c5f3fa19f903d32787d090d7a","b4e62d74cf0df7db2a6a9ea6606da9af352ad42085e7362cad29d8f58278c477","7824fd7f5908957a468f4ec46c6679127c8b562aeb770a00fe0483c918f0d2d1","24d35aee6a857a9a11a58cc35edc66acf377a1414b810299600c0acd837fb61b","36a5fda22d3a6ee321a986d340f120f57c8d119a90c422171bf86fff737fdf67","8d866e3b3a4f624e1555fa4b5227c3c245a519702968543776f400545e8ce7da","f633eab87e6f73ab4befe3cddeef038fa0bd048f685a752bdcb687b5f4769936","ce5ea03a021d86789aa0ad1d1a3c0113eec14c9243ae94cc19b95e7e7f7ae8cf","c76fe658431915d43b69f303809bb1d307796d5b13ec4ed529c620904599c817","2427845308c2bda9205c2b2b1fb04f175a8fa99b2afb60441bd26498df2fcdbb","76ccad6fe97682b8a4f5e3c59c326c30cae71437bc8811d4cc87e10e84bd455d","efa7052d3bd69a64cbbb2d618826c02fc65691e74a1a04024c3ecd0260584d7c","057c83625b39de449d0651b919607da322f4a1113c6acc74e73cad6dd7d8e87e","daec69815ab9c528936534197d95cca93f94cacebac421fbc6330288b621ffe4","413980d73369922da43255577efdd6685759588a36823dfbe7f272ab223c7d8a","06fd44c96838099b8b1bb0fb29f73f4b0dc7bd9feb16bc29dbcf442ba098016f","a06f8413d12b89f7afc3516429118dc9b73638165943b6f1e54a258f1658c3ff","c2c42764312d2ab315d4713def800fc46826264f877ad0a1b20012d171ee51df","3cdf773f41931fdf99551b5b1c39ebe0298cc0d5f84396543c3085a1cb435957","1633b77af9b77abc0915b0a3b0f17379169c5dfc20d23222685300bcfca1a22e","69a84263e6b52d36feacfc6c1d2fdcf09d04dc24089d88c25de365e10a23eb5e",{"version":"606668bbd0a5901f924b504245c202d7e07b4bd17c123a0589f8084d1ad21950","signature":"adfc4f4ea6c40d580a41c0810e02ff7714e94a4558d8f48df959c03f0346da54"},{"version":"e4f305e415fa42917f6e00614e9e86e03034affc87ee551a8a385b844534a0ac","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"5e6bf6d3b47863bc6ba3efc3cfc37f28c5701159da377c2d6f2be3711e0450c4","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"f2be6d719310156b3c33cbf7f3eb464e2de0c731e5bcfd4d901575a61155325a","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"4995861ba5feb6a4f0f3f0e875c6d31b675f7f84546b30fa172359996a5fd294","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"bc423c977eab02e09140e6843a46bfd9143ac94d76900603f9770c4b317ba52d","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"020d6919b5269effa8edac714afdcdf082101c3e956ec625531bab20bf0b1a98","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"71d476414be64f1565c295a4d4db1ef5319097d8c6c53b757fcbd24e6614ba2e","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"ee8d7056373a4fd601325feb89782fc9aeb86c198ac59fae45d3abc0b5a8b6bd","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"1f6095248eeec2b90f6b7ad5683637b36c5e0067ba11dee5e528a7184944ddd6","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"9ca754dfc4856cdb52e79f5a00ec24a471b3695b1498ebfb311c9bbc88d45b39","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"5f05e7369485c3de44d98cef976e1e979e385b59e6e8814fe054c5c79113d1c5","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"d63ef45e5273a190a08c7234abad7dc4c6eeabe8f230f96c958fcb452cadec8c","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"aabbfae30192899f3976912e89ea98a8ce3916869dff8ac8a2fa41a1a80857c6","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"a488e3e4227c91c0cdc584f5e0e56652092a646e153c6efea38d81683f4cd937","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"6dea17d643bf60c55ec00499c029b764816ebd58cf85da22f57674430c85cf14","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"f303872e11f056b4d4824f1fd08764d9acad4d1243b4daf170d2d3a44f4d8b9d","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"8727ad2e64c6461d1ce977f11deb2b9efe481a49df0c6747fef333f90f2d7330","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"a5785eeeae1aa69e313e592bb0de109597f49efde8324c2eac69df5f7e758052","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"d966214bff4c80053f24410f8f650cea21156b93008266a1d16e8358f4788a89","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"b4f2df757f1a55a9af6a27b33b1221471aaa1707bcb2b30ed1a91f3ccd82258c","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"dcad0e81f4178013f151347be5c0560ce67ce7638a6787ec1f77b4b67b28a17c","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"1060bb3d1a114b19dd13c75f7c3797ce84f485eca81c96f30b024aff93ff0c46","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"6bd9583c4c2c9002419417d7ea4ade541df8e71c349ae0f82ee9afede9bea487","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"a49ca15d422591fbf829097dfa569edbb9457bb2d4f1fe144b9a0ba2e968b14f","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"b3a9ea2ce813377c66402e82357c6164f6ad3fa728c176fffec20f5ebe48e3fe","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"94e06b9956e668dc1fad166ef011accc2ab2114faff6a58e163eaca823872bf8","signature":"64e9512a2d6b2bec47a2fd579860faa96267a49120d6e8b37e2a0230a92a997b"},{"version":"327e23891f5fa0a56b7aae65df7a83a53e85f33c18425ceedfa0539ea464e39e","signature":"f0e5f295f4a9ca675dd00cecd4ea6e7f8e182e3ffb9f5d98c887b1a9143b5285"},{"version":"efe57b6adc4779334a71776439e80cb943cca24bf626b1c2ba104f1eead22fa7","signature":"3074e5606c6f44875f454f59a7eba7d9c7fb712bbc345b9f5e442303e710064a"},"5487b97cfa28b26b4a9ef0770f872bdbebd4c46124858de00f242c3eed7519f4","c2869c4f2f79fd2d03278a68ce7c061a5a8f4aed59efb655e25fe502e3e471d5","b8fe42dbf4b0efba2eb4dbfb2b95a3712676717ff8469767dc439e75d0c1a3b6","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","83306c97a4643d78420f082547ea0d488a0d134c922c8e65fc0b4f08ef66d92b","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","98a9cc18f661d28e6bd31c436e1984f3980f35e0f0aa9cf795c54f8ccb667ffe","c76b0c5727302341d0bdfa2cc2cee4b19ff185b554edb6e8543f0661d8487116","dccd26a5c85325a011aff40f401e0892bd0688d44132ba79e803c67e68fffea5","f5ef066942e4f0bd98200aa6a6694b831e73200c9b3ade77ad0aa2409e8fe1b1","b9e99cd94f4166a245f5158f7286c05406e2a4c694619bceb7a4f3519d1d768e","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","1a5ef348fff5ec5cede278e7668f99ccda9891a8b65ed9c059ea08f59590e6ec","a45ee7555d019a67fbe092898d1aef0b1d02a9f6679ab84461ff515b4460d706",{"version":"5391445ad612a3da6a94c818dac2716cc7066dd5ef0ab1f07f42f467a0eca5eb","signature":"56dedd3d3a1370c5f8a5f8ad3cea846daa30eb8494db0d38ce1a8d0afbe5acf0"},{"version":"94d2c93cf261ab694f150cb76a768ed7b5909b1b4da0046c66f0a2ec37aeed31","signature":"30b197cf324b58b73c23e1762bd08a615d86d569e49d24bb2b18dc38370ef1f9"},{"version":"e5fd964a7d867ed24c4b957994a940bfa1ed213c9345ee27e19c74e64890a41c","signature":"a7218bb6a427a59c77f7d95b538b18752cc697c6ea3bdaea0d24f714ad819867"},{"version":"cceb006b2db7f4ecb0093b80239b71206e26f4f097dd4290b37a3e1778e869a3","signature":"5ef74744a80bc2347b1b435528d5446dc7b876cd97a022a9c16c889f8894866d"},{"version":"dcbc2df56bac6975057205ad25a2ae0e068eb2a7b7f29858fe45790ebd42692f","signature":"089322eaa0589b77c4ca0aced4febc5b9eaf783757e4be02d549d59f109a0712"},{"version":"4389d0fba995b5d3af9c152defeb699b3ec7fbe90878907b6e32bba2633726bf","signature":"ff6117e8ff721eb5b646e17d1e074fe63fb1e42a77ff651821d3f4b14bc87cd5"},{"version":"e3c4616cc5156f905f102b3b68932e74335160f408eb2bdba6aa08f3678b43c9","signature":"39a57decea0d33320663c518a29977eabba6332a598c54940870fc4dd0ee87c8"},{"version":"4ec4135ec24ff4f87ffdee168410bbce18a3c35d97f792f986ad059560746af2","signature":"390569810a1fe05c06a48808db6a474cec19b08e2a4bc3a1f493655669f6ecf0"},"34c992a4b70b0bcd80de8a3baf74f8256ea28e9b14bed02117bb1035c77e743e","7701dd1fd475095815994ebbeefba89f534057ed2b59380ea5a882365aecd251","9539b023c927c225770fb064f7f0ce0e6959bd345cad10006be3e3388453046a","dd36fd1f2ab6fbfb50ae8cfa11b43520e048c783f7c98cc714645bdddcc75b49","0a70761ae1220a5144a447ad65f27506b52f8dfd716391e086a880bdd37bf849","8000f808b071004a6a6ba69145366476e0437574629d4f861ddd30f2d6514c11","07ce7a558de38ea56328e1b9934ae2f5e96c8d1d5ab824c345e501c0c8147a2a","c87bfc32fe14f832436c18fcc93921b7421d6f220197dccc07a81c64b650caf0","d02496d32f2c8f47a495c2e3fa72e8235a1b893043f8d067ad2d634eb6c917d5","4b872ff7a2f8bb08f0e6140795987fdade93c7979e5d9f10db93729ac87b3e85","340adb2616149d13525df14ec9251a66b4a058b779766b5b75d48dfe40d3f98a","38115df15fb1c0fce8881e6bb972522f9d7e18627b51719e7b0917c9cb1eb712","9263a283bdd7bad8b0cefd00bf81b16af32375235fed55cdc1014ed173420c3a","bab0a7a40f2a8e48e4e3b77fc4c410afafb91d4dc8d10dba8df9951ac3ac024b","ef7536d2727dcd9cf592f52a6be14c2a8e69e01611cecb5d7b48b3982cbfce18","513c7e14e5dc85f13a3f247131e1f68e1cf63a95139c73a5b4dde17c12b9c6d2","f3479e127d6bdb30e64e14fcff2835af018d3154d449f523653f0fe38dcf48d8","a5a490318fccca089b26ec9f2e1d2d5c3bb2ccff6c4375fb2eeab10b4b503a67","ed04576f81d882cf1ce6f0cb2172bf6a5ee00a82091917d2ddc499b517d3b81d","39160e09a575b5477a6f8d3ceb5347ee39a5badf0a311cee9872d2e7ba055e57","10c1480f9f1e146633219b85f4be8696b91d68a5bedc1360d86c7965c5f3b0ca","300eaae22894d84fcf93a805a6a312d5ff2ec290b205d374e6a0a3b9220c838c","2b2f6a2decd9859f473d0cde800d3a5d4042e57598286f0d7f7f94080baf4672","cc646c54832316c47dfe72875765042eaccd7a77ad48d8c62c9b344a5be07936","dc46a533f21a6e366ede0a43c701e83fd13a6d3735497d8f98d9aa77e9f6fe31","880d6749e8a4e6e6fa8686efa7e0321e380701e5a663c2103d3426157529eae4","08478d5439cbba86cf9d4a0cefdf5847fb450924c49ceac0318f55943ad4937b","3986ca23ae4c5633c3b11d291976a1a6aaa31853f7bd976e32b2a99549366878","baf68b363bd7385296b87baceaeb2031cdf63c2cf4b78d571d89440416caa5c2","68f7572682f9940a73b98cc63d01a495433ff5507db36a4d196f70b17dbb2fd7","e5ef4a347977b3e6efc41a915826688f50ca425275ce15d9efc05f3dac25f1a9","c78f64ec99802a7302895437a11c65439dc7bcf697b23084d112b191ff9d3941","78c6cf6d3715cd901d30abd22ea356a90bdb544a6c2b84d6f3f57adcf4905044","95b5cc8c50aa60e76a445c0e2e13d4b1ba32c8bab52be34af134f5d3ecbb4762","2f7f90477768dd3ec7d162312f28407ddec368228de06634f60511cba326a0f2","fd51c7814f6ddf658626153f3d5c68eca56e1fc7e03f23e2d61fd2457d16d98d","6dfdfed129e70cff4b613266672e16930df9665ed3870eb8aab374bf7f3a6dc0","80179510288ae5352fd6183f37ef317c2f75e0ace6db2ba7b23e62aff19621f1","f63b5157efd3648f8dd1ce479a7e4bde59e2028e491889fc71a085c1f404d51b","be00b97607ff72113fda2a4bb2019641f510f34c68303c70fc171bc048f8b946","55b9b999a4437f7836da841433d7989de46981f2f74a8a7a3c6d9d3ffd77f7aa","f8c12bee3931f864cf982f467ee6c550b2fbaf8b286fd3408906d97492f1de4d","3258ce47cd94a2eceb128a2e598a03f73e1fa6bc66a4b89888bb7d85de263470","a024ccc236527beb31e661679d723936793e672f0ea64694400cdf4b80138ebe","d03561fafa25ef4f28118925453b3f91b15232ebd766e4009a9b2fdbd8717c2f","621b36450ac88064b2395d2f3f3b1d1f9ceecbc9fc3d41d64c66700f24e5627b","b0bd0b4c84e32b7ff60faaf90ddc18a11ba7b68e63e714f4a613de012887691e","fd470703139e43c1feb1f2159da8c41309504f98a0d098b459a0a8cd623774dd","44fe242a77673edf915c239fa055b81d1485acdbdba9408d27c732948b35701d","5831223d92cb1d854623d5730ee880ff5d2787138935dc046f4d8c0df0c9fd9f","a20338c51db673bfd33585b7687c394849a48a91eba0c7c88d86f6c2434332a1","4969c6a63c41d0ea3c4fe864f39cf80defe29fd6fa59769169f927f7262106d6","918e68fc001711a23ea76a6931260b90628cc798bc61142fe1f2640d66c473b7","0f7b2672462a6b25f4eacbce4e3905f8df57eb0af39718e17d48554586c42df7","a8ca633aa20c7e835103bad2ea71f0416dce51c972c6ce54fcd2af004b1260dc","dfbf934a601a74ccaa8f4638670c8886eabed8d5ade5e5422c051e9b5cc74bdc","60b61aae33846c1b2ff73120dcb99f0e3d6d894513e413dbd26e5b4bb5cbe5f0","f9ee8d16ec97260ddb890d6d4ba3ed4b1f088f41648b9342ef9b86ae99ed8ac5","fdb4804b5b309ee2bf653f392634c43907a2111185b1deb265a8c4f80ed227c8","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","78b86ab0b4914bb1865506aeb2754db2b0ec2dc57d6e98102a4071a4182c4656","08bb3ca4be829e28dea4bc452283eafc3471bc3b9004f1bd6d41a6fe7fb4be38","faf4b1ca4a46b0c7995f3cc40765354c37beead26b3dcba85629f5bc2e6446d5","aca46a201a6918d19e6125bf9f5940fc89b3595e5b233e1e411f47efb6d310d4","44e82a1065039b0ce2e049bad141c6764c0b5910b5e0a26003c16aef3b0cc173","4bfb80ddfe00ee53bdec7b7330d20ad307201b88d63666105bf5acc2f2126ae0","d657c5e25d94582343f77266e25c262fb7bfc62b7cece3560a64cd08523bf77e","dc256b876535fc71a79ac5f957cc422f32796ef7f92c52fbfc7c776f04716770","711448419c6fb8ec708829dc60aabf8add5f63f7462f0e089ebc723820968e8e","a9a84527da51ca92dc78ef2fbd9d135e815a2346cbb9ad73e36d80868fac04b6","b36dd91414fb8d5f79899f42d8a85fa2a76c2069537c4c71c36202f1ee72a921","1802860d86925ddeb59d4b0a44879713c6e17ea63f6daa09e91e5b955844e286","6382d1551edf8c747f5929d4c01ead5f4fc97ee53dd28da1efba4fce83ad5b2c","0ddbca8a33eb5064edae51395673a6952d440b8952e9877f865af3364e5cf27e","e33da524ba21b91581f8ac9f9a7f4fe02d1e889374d8c211ebfb0c95a8a01922","130393e63ab31585a5344bb1e89c2b26abb65cecc3390b1d86f6603a4d846e86","9b4a86d31a13679dfb9a241ea8f3a7e1d852b0ada9d8eb1f2be13afa6e4e0c4f","6355f7b9d6e0649a4f3dc4a124d8eb952f0ad961c7128a915125b933ab8b248f","a11282183929e464f67f3c449277ec5b8b2286f7e322e9c95ad160d7506fc4ec","cc3b1803a042ba249a3189385a11c0d6040a3130e635fa6b6f1843fae5d95d97","56362b3f7fbb1118e2bef6d47663c0235722e5200f1aa66676062a34837c7545","0698c5d5f626d524eebaf8ac3a6955e38aa807151744501dc9dc666a697a3f3b","d971b1be55367507811fd606b81b25d485979542823a77c2013eaaa1c2a7cd2e","710b99fd137b09f2826e70655f90689091da10cdc53577adeda963e4badf1ee9","b57a0fcbdf0dace8d3f91b7941a9f06130407c458d4538ca2bb5ab377b20d438","086dd400312bae2ad838adac9e026b06c6fcabc5f26affa95426b1fa2d3a8722","eb9ded38e140be807ebde6e5064196b69a7fc0a3f7e9a8bb45ac9f302d0cfb3c","c584cbbe3763c27e1a8560849a880d0ab9c2c7d682aefa057ade3218feb329f5","ba222584a6c68d238ef3153a7ef8f5b18b597127c610f4fb814fece85dbab7f7","5a58a6be865cbb3a74d35b1f1d421007988c4ba73bc8310cabd72eead8ecc80f","0128d07e9b761664208807eb3949170560d5bd0f27c3eb1346be5ee9ce596e0b","a83b6fe14ec1f1d000e2b00cd0f69f47999b2b5f79034a8d307a58f9e0e53b6c","5a6ea2d2611fbb0c30f1abdd11520db2f424108202a6502fdf8e96afac99108f","fb25bd95996260eb85862eea5abde405324d4134b502ee79e76a552b40be2f0b","c463884b71d6b9c066bc993f617e83be6455a205ab07ab4ab43d7ba870cbef11","2ef87714cd0879909392f69db5704c2a1aa1edf353b8f6e25427f10e4269d805","717491a825e80a63df46402a254f7a4f210e1f621e6aad046613706e39a48fa8","829efb1380c02e984e444cd9a38e336ff02fd1fcaa2d0fd0ddaaa90609f55fe4","8f124ac5301a2e4bb06be2d98e2d65dbf717a2c7cb6f612e8002e178707127f2","3c45e19b8a0ecaddb0c2830349ffc41abf6dbfa7fed8566c1f4fe8cc674c4924","e17cf2c3f02c9723f9779e4db93fc8f44905b522642dc60638b621880b6abb28","3d89d0e1704498a1f00371c1291ebb72f108e88c422235bd564212cd25ed38cd","528db4ede48216fe0c42afd3aab35e4b205103ff0990e2069d21e1c210b8b89f","9acdc0e0968983b14646e88e1dd9b283c9db1a73dec41521c860a87aaa8b285a","83d22c0a85c0ae52385bfb764133715840fc311def68b7fec6caf7df632268b2","b198ff58028a57e4f147655fb6634c39a500cc824632a81180af47c1bfe182bd","8f009529a222aa4874951f3a4b7a9467d3637f5697ad285a7ef71948e07411ae","f285eff9986501f93bd1ab0fd7ee13f91bffddb5759e8b32e06bfb467bd48c1c","45ce79af21756f9821f0acfdcb3cb737de4b15369357dd5f7ef9532b41130c03","b5adac2520a6414f46aa6938fcc13906c268f3716e77a559c67cd15aed3d9363","ed82cff3e0a967434ce0697edfa18650def3cf6dc11f2d82fc7d06107461c74f","1e9068cb5b1afae3cadf50bffc6288b5983a21103e86efd512d3d81cd8ec89aa","d4cf329e5d147a9019ca30f69b45723350892e3ee52fe57adce41f0d764b09a4","16326f8a93cffea052390d3a9151d0c0d194bcd2ee096469c53f110f22e9a0d4","70057e85b4fc28001e510b07839758860439bc8cd80967892269e7a7676df053","df1ec93fceaa827ab3f84122a8185aaf8af73eeddf56d009702abf0c2438f184","4264c0fb06050f3ffb160811fb8cc3f033c5625896e0c862e28b3fb5068f3fbf","3cc1fa4db02eb51afa02fe0b8301c733e64b712cc69903d7392038f40fb5af57","16e83dcd5a19c1193500f1dd74f8f5fd4294bbdbf6ceece672a79ba3ac7aab07","84dfacb796753c5726f8c8ed35057eefda5c4f370d4ef029d912456a7305defc","f784a690293c22d5f303aed668b5d44b69ac010cdf6a581648dbc0700038f4c4","e9b87cfb64afe4fa23bd33e7c0d1925399b9caee2d772dd415faeee720199f57","0b3ca7c5663913d55f3ab7c7a8d1756d5b00970d1600744a1a7b50a97713186f","46b0f3a4230468004636e3fa6f22c951d7840b49945cb9680d86d3a5919c6cba","2b827c4a756b34f45804f31ed69325bb50bb5684d915c81c7ed9c9756e874eeb","df631ed69d50ddbf2ce0390fbed21c3a7aa8739411b12c6ff1383768b04713a2","eda2ad11c7510d75dfda0be6218336f2ce658720106f137a21d93efbfdcdf73a","80a991bfca43657877aa09789fd61d27f3214ac7bd8b1fd08b224a5bc67e56b1","56acba4bd4e83ab9939129775cfe184807a2306195050860b744081eb33d2764","62ae27d85e9c4c80f66e450a58aa337b341b6598113e6be347275168eedbaee4","2f4ab5595a28b68ea69818b2c59c4b9dabed6b96629bb054fce2a60b25d1334a","beb8ec8a307bbb74dc51a8b6da270161a0bd5c1e5a7b03e95ea40408f86464ea","663d671d336d1d770805b8e4a3da3ba7cb2f054ea65adaa87b6523b1bf906882",{"version":"c111d5e5bad275b1de59f4913701b94379e40aecca34cb9c5a6570328b982c91","signature":"a746de387d2678423b182cf6db4e92ec3cb809ea56aba2ca2bdf8a1606f42364"},{"version":"082141eb7f6b1ce86b08dae60574126f8db0749aee114e492604040fca8b7138","signature":"a5beb0abaeef1b3382659b13f39eea2606b123f26a36151f83a84da4135a4c29"},{"version":"cfbd11438568725e1b258649965613ce1fbdd48d8e756a86a78673ceecb0c60b","signature":"85960dd1c36a1d4c0aa9fe5946d518c629c0dfedeca0951af6a7725451266e66"},{"version":"a0e98c000124d5672091c6e5886d064e167f9239d2f50d13ce2e8e935953d9db","signature":"16b4156384afd69de3b458187a89e153b9f6b52353cbd48770998c5e36f0847c"},{"version":"e78e04c488f88474ce09169f160ec10187c1337e6a6eb40c026f05fc0eed30ad","signature":"ebdf8e10d0998bacedb7f423369ab2e0128db5ee8beb16a35c6ac49a58a8197c"},{"version":"503e3ba53ca553dea318b4b28ef87c0c93f332378457c2ddf878b74c067f2bdf","signature":"48e806e8a6e069db78b4d2004868abeb6676f6594c60fe88337b0a6aed247de9"},{"version":"7abc58431366c19e9610645f94e876bc06a287b9af6711f1800f9726414ce8af","signature":"68778b9b7bd6c4251dbca5402ee6c88f5bd21bd00884584416860254c3412e5e"},{"version":"bab36e3abaddc3c154ab17fe4f42f530e815df9f8bd144a3818cf9394f9a6ba7","signature":"365969aa81fe4d207b4e182492f59b03818dc28482a665e8a08e4bcf3e0b77f0"},{"version":"331926d36512a2b72c9632ca6b4032e6315f0af95852b0b300f6bf21fe604545","signature":"2d2dbc35dc9c29b8ef1d1bc2b7cf6420b39ef52e69d368bfd3d3060cb8e4d3fc"},{"version":"5c311bddaf7053f38bfbe48f0381fd6b3c206984d2b1dd9e31ef7609f53571a0","signature":"c81a0fcfeb75bc4302743792e172deef3694daa1a76012eaa1d778a4c05b8e25"},{"version":"fe302524b06f9c9304d656727b678b2f7bca53f2190c21213e8b0d5819918196","signature":"35822d9ec49146e6f14f8c9af199c8256fcc19c2bcb507cf072790d76b8d0650"},{"version":"474ee42d8e3d1f7c74a443c4218bb968f799edca350bda2d9d95635420a58ae1","signature":"4a8d908074367bda20b31b4647f7156189301ebe95139fc1d7e24588528ebb20"},{"version":"d54007e4e825a6e020321710675f7b0531a6c9a0de440f699965b0f9c8dc80d0","signature":"3553d0832b5c4b9dc69a78eb864813aca37a57d5251a69fe411e23138b81b6ba"},{"version":"f3bd9c33093dc651ca63ee84e13b7244601dd31ff4e3e2266d6d4d9981b597fb","signature":"ac05f4c4ec257af4d51bbcd67859353fba7ff1bb8782a55ea762c5e81123fa06"},{"version":"4bfcfec7bc6955aa20f6741a961981b77685b97bc546a5f69f3ff8447512442c","signature":"842f213af263a22c7b673220b4b3a128e2c46982a5c7a7a1e5d9bf69e81b00c8"},{"version":"54330a88426730a1bcec68e4bf43de6271ab5caf6590c9d3200a2d62ea521def","signature":"27183c3a711b95a36f9a768106e0fefac47fc473c335fa1a1cc85e471754c333"},{"version":"8a9eb2c0dff7bfcea30132753da03dad3a423ff954d69fbdea393bc26f58f17d","signature":"7506cd69c6f421d8ea606788dee1532002cda9611ead224955ad5acc2b35d148"},{"version":"8192d8f1c99aa5e7f1dac4b40ab935623c21ed8975b6e1ee3c904ebb387fd391","signature":"ba917ef5b0f55ec535b0605397d23867ed9cf7ab87678431f08bbcb000a1d308"},{"version":"9e06e9a5c0268d3de5b5827b107806a0ae3e3808e5edd0f1e327559849ce12ae","signature":"7d480fea5471a09e2d3a225c0df3f8efbfb40f2824564e54d650afd2850314ea"},"ba9a4f2dc7631f50e1f5b25c2bc2884a4769fa04b2569fce86a0f978f39187f7",{"version":"12ce5d99643e92ee319a1fb49b1751023174826a8c2a19a04061070e258be332","signature":"f15659c1a7bf3da4502e0b0862002a6cae49eb310136052cf451b0282f933381","affectsGlobalScope":true},"160b24efb5a868df9c54f337656b4ef55fcbe0548fe15408e1c0630ec559c559","f4e8f4151c3490cf7b68c685aabe901cbab19f962aaa2f118a97550e22689a76","799003c0ab928582fca04977f47b8d85b43a8de610f4eef0ad2d069fbb9f9399","d998eea476c695d8e4ff9d007d5b46d49ca2ffa052f74dc20ca516425abd57b1","a0bd46d587005aad4819980f6cf2dbcd80ebf584ed1a946202326a27158ba70e","07fcbb61a71bd69a92a5bbde69e60654666cf966b5675c2010c3bf9f436f056a","88b2eb23d36692162f2bf1e50577ebcde26de017260473e03ed9a0e61e2726a4","23ffbd8c0e20a697d2ea5a0cf7513fb6e42c955a7648f021da12541728f62182","43fba5fc019a4ce721a6f53ddb97fdc34c55049cfb793bc544d5c864ee5560b9","f4e12292c9a7663a13d152195019711c427c552eb0fa02705e0f61370cd5547a","c127ebf14d1b59d1604865008fb072865c5ca52277621f566092fe1f42ce0954","def638da26d84825a312113a20649d3086861de7c06a18ea13121278702976fd","fbaf86f8ba11298dea2727ce0da84b4ab6ae6c265e1919d44aff7d9b2bbc578a","c1010caaeaca8e420c6e040c2e822dbe18702459c93a7d2d5de38597d477b8cd","e1f0d8392efd9d71f2644eb97d3f33d90827e30ea8051d93b6f92bb11dff520a","085211167559ca307d4053bb8d2298d5ad83cbc3d2ae9bb4c8435a4cabf59369","55fc49198d8a85a73cdb79e596d9381cfdc9de93c32c77d42e661c1c1e7268ef","6a53fb3df8dd32ed1a65502ca30aeae19cfe80990e78ba68162d6cb2a7fed129","b5dcc18d7902597a5584a43c1146ca4fe0295ceb5125f724c1348f6a851dd6ed","0c6b0f3fbe6eb6a3805170b3766a341118c92ed7b6d1f193b9f35aa82f594846","60eaadb36cf157c5cae9c40e84fa367d04f52a150db3920dbe35139780739143","4680a32b1098c49dc87881329af1e68af9af94e051e1b9e19fed555a786f6ce6","89fcd129ec37f321cddcdb6b258ffe562de4281e90ec3ccbe7c1199ba39359ca","4313011f692861c2c1f5205d7f9a473e763adab6444f9853b96937b187fb19f7","caa57157e7bdb8d5f1efe56826fb84a6c8f22a1927bba7fa21fd54e2a44ccba2","6b74700abfe4a9b88be957fd8e373cfd998efb1a5f6ad122da49a92997e183ad","9ef1342f193bd8bae86c64e450c3ac468ef08652110355e1f3cdd45362eb95c4","6853c91662c36a2bf4c8371a87177c819007c76a23c293ef3f686ce9157ae4c8","9be1c5dabce43380d13fc621100676b03d420b5687b08d1288f479bee68ab7a8","8996d218010896712678e6a0337d8ef8b81c1066ab76f637dd8253f0d6ff838d","a15603bf387fc45defe28a68f405a6c29105e135c4e8538eeb6d0a1ef5b69a81","84e2532e4d42949a2775cdd8bb7b2b97370dd6ddb683d0c199b21bf6978b152d","22bf5f19f620db3b8392cfece44bdd587cdbed80ba39c88a53697d427135bf37","23ebbd8d484d07e1c1d8783169c20570ed8409966b28f6be6cf8e970d76ef491","18b6fa2c778cad6489f2febf76433453f5e2432ec3535f2d45ae7d803b93cc17","609d0d7419999cf44529e6ba687e2944b2fc7ad2570d278fd4e6b1683c075149","249cf421b8878a3fe948d9c02f6b0bae65491b3bb974c2ffc612341406fa78ff","b4aa22522d653428c8148ddbf1dcc1fb3a3471e15eb1964429a67c390d8c7f38","30b2cee905b1848b61c7d28082ebfa2675dd5545c0d25d1c093ce21a905cdccc","0a2a2eed4137368735205de97c245f2a685af1a7f1bf8d636b918a0ee4ff4326","69f342ce86706aa2835a62898e93ea7a1f21b1d89c70845da69371441bb6cd56","b5ab4282affcfd860dd1cc3201653f591509a586d110f8e5b1b010508ba79b2c","d396233f6cd3edf0d33c2fbfc84ded029c3ea4a05af3c94d09d31a367cced111","bc41a726c817624a5136ae893d7aac7c4dc93c771e8d243a670324bccf39b02b","710728600e4b3197f834c4dd1956443be787d2e647a72f190bf6519f235aaadd","a45097e01ef30ba26640fed365376ab3ccd5faf97d03f20daff3355a7e60286a","763cbb7c22199f43fd5c2b1566af5ba96bf7366f125dd31a038a2291cbc89254","031933bf279b7563e11100b5e1746397caf3a278596796a87bc0db23cf68dc9e","a4a54c1f58fc6e25a82e2c0f651bf680058bd7f72cfb2d43b85ee0ab5fe2e87e","9613d789b6f1037f2523a8f70e1b736f1da4566b470593da062be5c9e13dac57","0d2a320763a0c9c71493f8f1069971018c8720a6e7e5a8f10c26b6de79aa2f7d","817e0df27a237a268dc16e5acffc19f9a74467093af7a0ba164ee927007a4d25","43102521b5ca50ff1865188c3c60790feaed94dc9262b25d4adec4dbc76f9035","f99947f8d873b960b0115e506ef9c43f4e40c2071b1d20375564538af4a6023b","c1e5ad5ca89d18d2a36d25e8ec105623648cf35615825e202c7d8295a49d61ab","2b6c9cb81da4e0a2e32a58230e8c0dec49fc5b345efb7f7a3648b98956be4b13","99e34af3ede50062dcc826a1c3ce2d45562060dfd0f29f8066381a6ef548bf2a","49f5c2a23ea5fc4b2cdb4426f09d1c8b83f8409fa2af13ef38845cc9b9d4bc3d","e935227675144b64ecde3489e4a5e242eeb25fdd6b7464b8c21ad1f7a0faa88b","b42e6bbe88dc79c2d6dc5605fb9c15184e70f64bdd7b8d4069b802b90ce86df6","b9cd712399fdc00fdae07e96c9b39c3cb311e2a8a5425f1bd583f13cab35e44b","5a978550ae131b7fef441d67372fd972abab98ea9fdb9fa266e8bdc89edcb8d6","4f287919cfc1d26420db9f0457cd5c8780b1ef0a9f949570936abe48d3a43d91","496b23b2fd07e614bc01d90dd4388996cb18cd5f3a612d98201e9f683e58ad2e","dcfbe42824f37c5fb6dc7b9427ef2500791ec0d30825ecb614f15b8d5bf5a667","390124ad2361b46bf01851d25e331cd7eed355d04451d8b2a4aa985c9de4f8ce","14d94f17772c3a58eda01b6603490983d845ee2012cd643f7497b4e22566aacb","03ef2386c683707ce741a1c30cb126e8c51a908aa0acc01c3471fafb9baaacd5","66a372e03c41d2d5e920df5282dadcec2acae4c629cb51cab850825d2a144cea","5b48ba9a30a93176a93c87f9e0abf26a9df457eeb808928009439ca578b56f27","4707625392316d3c16edbd0716f4ac310e8ff5d346d58f4d01a2b7e0533a23df","154d58a4b2d9c552dc864ea39c223d66efd0ed2dd8b55bd13db5225d14322915","6a830433fa072931b4ea3eb9aa5fa7d283f470080586a27bfe69837a0f12de9a","d25e930e181f4f69b2b128514538f2abb54ef1d48a046ad776ac6f1cda885a72","0259b4c21bc93b52ca82c755f97fc90481072bcc44a8010131b2ea7326cf03fe","bea43a13a1104a640da0cb049db85c6993f484a6cc03660496b97824719ecc91","0224239d61fe66d4900544d912b2e11c2cca24b4707d53fdb94b874a01e29f48","2bce8fd2d16a9432110bbe0ba1e663fd02f7d8b8968cd10178ea7bc306c4a5df","9c4ad63738346873d685e5c086acbf41199e7022eff5b72bb668931e9ca42404","cfb6329bf8ce324e83fe4bbdee537d866a0d5328246f149a0958b75d033de409","efc3816f19ea87a7050c84271ea3d3aad9631a517c168013c4f4b6724c287ce0","f99f6737336140047e8dd4ade3859f08331aa4b17bc2bd5f156a25c54e0febbc","12a2b25c7c9c05c8994adf193e65749926acfcc076381f7166c2f709a97bdf0a","0f93a3fdd517c1e45218cd0027c1d6b82237e379dc6b66d693aab1fe74c82e81","03c753da0bee80ad0d0f1819b9b42dfe9bf9f436664caf15325aa426246fd891","18f5bf1dae429c451f20171427c9e3223fade4346af4dfd817725cbeb247a09d","a4eece5fab202e840dd84f7239e511017a8162edb8fc8b54ff2851c5c844125c","c4a94af483a63bf947d89f97553a55df5107c605ec8a26f0b9b8bdcc14bd6d89","19de2915ccebc0a1482c2337b34cb178d446def2493bf775c4018a4ea355adb8","9be8fc03c8b5392cd17d40fd61063d73f08d0ee3457ecf075dcb3768ae1427bd","3b568b63f0e8b3873629a4d7a918dce4266ad41461004ab979f8dcdfd13532bb","a5e5223c775fe30d606b8aaa521953c925d5ad176a531c2b69437d2461aaabbd","8cbf41d2d1ce8ac2066783ae00613c33feef07493796f638e30beaf892e4354a","e22ad737718160df198cd428f18da707177d0467934cecdeed4be6e067b0c619","15bf5ed8cb7c1a1e1db53fa9b45bc1a1c73c0497735343a8d0c59fdb596a3744","791fce84bce8b6948e4f23422d9cbbd7d08c74b3f91cca12dcae83d96079798b","8a2619c8e24305f6b9700b35af178394b995dcb28690a57a71cca87ee7e709ae","f95fd2fc3cc164921a891f5d6c935fa0d014a576223dd098fc64677e696b0025","8c9cecaaa9caba9a8caa47f46dcf24b524b27899b286d8edcc75a81b370d2ba3","2b7a82692ecc877c5379df9653902e23f2d0d0bc9f210ec3cf9e47be54413c5c","e2ad09c011cf9d7ee128875406bef787eeb504659495f42656a0098c15fe646c","eb518567ea6b0b2623f9a6d37c364e1b1ac9d8b508d79e558f64ac05c17e2685","630a48fb8f6b07161588e0aee3f9d301c59c97e1532c884118f89368baf4073b","14736c608aa46120f8d6d0bc5e0721b46b927bc7eba20e479600571935f27062","7574803692d2230db13205a7749b9c3587dccaccdf9e76f003f9e08078bb6d09","f3cc1588e666651c51353b1728460bee8acbc6e0f36be8c025eaaf292dca525d","0d4ea8a20527dcf3ad6cf1bd188b8ad4e449df174fad09b9e540ed81080af834","aa82876d59912d25becff5a79ed7341af04c71bfeb2221cc0417bc34531125e2","6f4b0389f439adc84cba35d45428668eabcfbdd351ba17e459d414ca51ab8eb8","d5dd33d15fbb07668c264b38065ac542a07a7650af4917727bbc09b58570e862","7d90202d0212e9cdc91a20bfddf04a539c89f09fe1d64db3343546fa2eb37e71","1a5d073c95a3a4480b17d2fa7fd41862a9df0cb2afaee86834b13649e96bdb45","2092495a5b3116c760527a690c4529748f2d8b126cdd5f56b2ce2230b48aba3f","620b29d6adbd4061bc0a8fedf145fcc8e8fc9648fb6e0a39726e33babb4e07bc","931eda51b5977f7f3fa7a0d9afde01cfd8b0cc1df0bb66dcf8c2cf6e7090384e","b084a412374bdd124048c52c4e8a82d64f3adec6c0a9ad5ecbb7317636039b0f","11199daa694c3ced3cc2a382a3fa7bd64e95eb40f9bbc3979fc8fb43f5ba38cc","2c86f279d7db3c024de0f21cd9c8c2c972972f842357016bfbbd86955723b223","dfb53b9d748df3e140b0fddb75f74d21d7623e800bb1f233817a1a2118d4bb24","8cfc293b33082003cacbf7856b8b5e2d6dd3bde46abbd575b0c935dc83af4844","7730c538d6d35efe95d2c0d246b1371565b13037e893178033360b4c9d2ac863","b256694544b0d45495942720852d9597116979d52f2b53c559fda31f635c60df","794e8831c68cc471671430ee0998397ea7a62c3b706b30304efdc3eaff77545a","9cfc1b227477e31988e3fb18d26b6988618f4a5da9b7da6bc3df7fc12fb2602e","264a292b6024567dd901fdabbf3239a8742bea426432cdbda4cf390b224188e1","f1556a28bb8e33862dcfa9da7e6f1dca0b149faf433fe6a50153ae76f3362db1","1d321aea1c6a77b2a44e02e5c2aeff290e3f1675ead1a86652b6d77f5fea2b32","4910efc2ce1f96d6e71a9e7c9437812ffae5764b33ab3831c614663f62294124","e3ceab51a36e8b34ab787af1a7cf02b9312b6651bac67c750579b3f05af646c1","baf9f145bcee1b765bed6e79fd45e1ff0ca297a81315944de81eb5d6fff2d13d","2afd62362b83db93cd20de22489fe4d46c6f51822069802620589a51ccad4b99","9f0cd9bd4ab608123b88328c78814738cbdee620f29258b89ef8cd923f07ff9c","801186c9e765583c825f28dab63a7ad12db5609e36dc6d9acbdc97d23888a463","96c515141c6135ccd6fb655fb9e3500074a9216ba956fb685dc8edc33f689594","416af6d65fc76c9ced6795f255cb1096c9d7947bede75b82289732b74d902784","a280c68b128ebba35fb044965d67895201c2f83b6b28281bb8b023ade68bf665","6fa118f15723b099a41d3beea98ed059bcd1b3eda708acf98c5eff0c7e88832f","dcbf582243e20ea50d283f28f4f64e9990b4ed4a608757e996160c63cff6aa99","efa432d8fd562529c4e9f859fd936676dd8fef5d3b4bedb06f754e4740056ea9","a59b66720b2ccf2e0150fafb49e8da8dabdf4e1be36244a4ccd92f5bd18e1e9e","c657fb1ec3b727d6a14a24c71ea20c41cb7d26a503e8e41b726bb919eb964534","50d6d3174868f6e974355bf8e8db8c8b3fcf059315282a0c359ecf799d95514a","86bf79091014a1424fc55122caa47f08622b721a4d614b97dd620e3037711541","7a63313dff3a57f824a926e49a7262f7bd14e0e833cf45fa5af6da25286769c2","36dcaeffe1a1aed1cb84d4feba32895bf442795170edccc874fa32232b2354e5","686c6962d04d90edafc174aa5940acb9c9db8949c8d425131c01d796cf9a3aef","2b1dbc3d5762d6865744b6e7be94b8b9004097698c37e93e06983e42dd8fe93b","eb5e8f74826bdf3a6a0644d37a0f48133f8ad0b5298cc2c574102868542ba4eb","c6a82a9673ba517cf04dd0803513257d0adf101aed2e3b162a54d840c9a1a3b2","fc9f0f415abaa323efcecc4a4e0b6763bfe576e32043546d44f1de6541b6399b","2c4d772ac7ac56a44deef82903364eb7c78dd7bc997701123df0ce4639fe39bb","9369ef11eed17c1c223fdea9c0fa39e83f3722914ef390b1448db3d71620c93a","aa84130dbc9049bba6095f87932138698f53259b642635f6c9e92dd0ddc7512c","084ceadd21efabd4b58667dca00d4f644306099151d2ee18cd28a395855b8009","b9503e29f06c99b352b7cae052da19e3599fa42899509d32b23a27c9bb5bebf6","75188920fe6ccc14070fe9a65c036049f1141d968c627b623d4a897ec3587e15","e2e1df7f45013d2b34f8d08e6ae5a9339724b0ea251b5445fcca3e170e640105","af06feb5d18a6ea11c088b683bdb571800d1f76b98d848eecdf41e5ec8f317fd","0596af52b95e0c8adc2c07f49f109d746b164739c5866fa8bb394dd6329a3725","c3365d08fe7a1ccc3b8e8638edc30123007f3241b4604e2585b9f14422ab97d8","a7a3d96b04bb0ec8cb7d2669767c4756f97dd70d08548f9e6522dde4de8e8a03","745e960e885a4ba04c872225cbb44bd67a7490d169ceaefab7c0dfc444768676","0b1ce1768cde3535493a9daf99e3bbb8c7dcc3a7f9d8cd358cb846af71ce5cdf","48b9603f6e8a7c94b727277592a089f94261baa64e6c9d18165da0481663a69e","3c20a3bb0c50c819419f44aa55acc58476dad4754a16884cef06012d02b0722f","4dc64902cb86e677a928293593658fbf53388f9a30d2b934140c70a7267b07ec","cb4fd56539a61d163ea9befe6b0292c32aa68a104c1f68f61416f1bc769bcfba","0d852bdc2b72b22393a8eebe374ee3efe3e0d44e630037b5e1b6087985388e62","b6c9a2deefb6a57ff68d2a38d33c34407b9939487fc9ee9f32ba3ecf2987a88a","f6b371377bab3018dac2bca63e27502ecbd5d06f708ad7e312658d3b5315d948","faa72893e85cb8ebb1dafde6b427e5204e60bb5f3ee6576bb64c01db1f255bc8","95b7ed47b31a6eaddcdd853ee0871f2bb61e39ce36a01d03dfafb83766f6c10c","19287d6b76288c2814f1633bdd68d2b76748757ffd355e73e41151644e4773d6","fc4e6ec7dade5f9d422b153c5d8f6ad074bd9cc4e280415b7dc58fb5c52b5df1","3aea973106e1184db82d8880f0ca134388b6cbc420f7309d1c8947b842886349","765e278c464923da94dda7c2b281ece92f58981642421ae097862effe2bd30fa","de260bed7f7d25593f59e859bd7c7f8c6e6bb87e8686a0fcafa3774cb5ca02d8","d95c4eaad4df9e564859f0c74a177fa0b2e5f8a155939b52580566ab6b311c3f","7192a6d17bfa06e83ba14287907b7c671bef9b7111c146f59c6ea753cfc736b9","5156d3d392db5d77e1e2f3ea723c0a8bd3ca8acffe3b754b10c84b12f55a6e10","a6494e7833ee04386a9f0c686726f7cb05f52f6e069d9293475ccb1e791ee0da","d9af0c89a310256851238f509a22aa1071a464d35dc22ea8c2a0bae42dd81bc5","291642a66e55e6ca38b029bc6921c7301f5c7b7acf21ae588a5f352e6c1f6d58","43cd7c37298b051d1ce0307d94105bcd792c6c7e017282c9d13f1097c27408e8","e00d8cce6e2e627654e49c543b582568ad0bf27c1d4ad1018d26aff78d7599df","ed13354f0d96fb6d5878655b1fead51722b54875e91d5e53ef16de5b71a0e278","fcb934d0fcdee06a8571bd90aa3a63aa288c784b3ebcecfe7ae90d3104d321f4","af682dfabe85688289b420d939020a10eb61f0120e393d53c127f1968b3e9f66","0dca04006bf13f72240c6a6a502df9c0b49c41c3cab2be75e81e9b592dcd4ea8","7dc0b5e3d7be8e1f451f0545448c2eaa02683f230797d24434b36f9820d5a641","247af61cdc3f4ec7876b9e993a2ecdd069e10934ff790c9cee5811842bff49eb","4be8c2c63d5cd1381081d90021ddfaef106881df4129eddeeaba906f2d0f75d0","012f621d6eb28172afb1b2dc23898d8bc74cf35a6d76b63e5581aa8e50fa71b3","3a561fa91097e4580c5349ce72e69d247c31c11d29f39e1d0bd3716042ff2c0b","bc9981a79dda3badea61d716d368a280c370267e900f43321f828495f4fef23c","2ed3b93d55aea416d7be8d49fe25016430caab0fe64c87d641e4c2c551130d17","3d66dfc31dd26092c3663d9623b6fc5cec90878606941a19e2b884c4eacd1a24","6916c678060af14a8ce8d78a1929d84184e9507fba7ab75142c1bcb646e1c789","3eea74afae095028597b3954bde69390f568afc66d457f64fff56e416ea47811","549fb2d19deb7d7cae64922918ddddf190109508cc6c7c47033478f7359556d2","e7023afc677a74f03f8ccb567532fe9eedd1f5241ee74be7b75ac2336514f6f6","ff55505622eac7d104b9ab9570f4cc67166ba47dd8f3badfb85605d55dd6bdc9","102fac015b1eebfa13305cb90fd91a4f0bbcabb10f2343556b3483bbb0a04b62","18a1f4493f2dbad5fd4f7d9bfba683c98cf5ed5a4fa704fa0d9884e3876e2446","f57e6707d035ab89a03797d34faef37deefd3dd90aa17d90de2f33dce46a2c56","cc8b559b2cf9380ca72922c64576a43f000275c72042b2af2415ce0fb88d7077","1a337ca294c428ba8f2eb01e887b28d080ee4a4307ae87e02e468b1d26af4a74","310fe80ff40a158c2de408efbe9de11e249c53d2de5e33ca32798e6f3fbc8822","d6ce96c7bb34945c1d444101f44e0f8ba0bba8ab7587a6cc009a9934b538c335","1b10a2715917601939a9288d49beccd45b591723256495b229569cd67bbe48a8","7498dfdeed2e003ec49cdf726ff6c293002d1d7fdadbc398ce8aafe6d0688de7","8492306a4864a1dc6fc7e0cc0de0ae9279cbd37f3aae3e9dc1065afcdc83dddc","9c86abbc4fd0248f56abc12aaecd76854517389af405d5ec2eb187fdb00a606f","9ffd906f14f8b059d6b95d6640920f530507e596e548f7a595da58ab66e3ce76","1884bccc10ce40adca470c2c371c1c938b36824f169c56f7f43d860416ca0a4c","986b55b4f920c99d77c1845f2542df6f746cb5adc9ab93eb1545a7e6ef37590d","cd00906068b81fbd8a22d021580ac505e272844408174520fafed0ae00627a5d","69fab68a769c17a52a24b868aeb644f3ee14abaa5064115f575ddd59231105ce","e181eb86b2caf80fe18c72efce6b913bc226e4a69a5456eaf4f859f1c29c6fd6","93f7871380478bc6acf02ad9f3dc7da0c21997caebbe782eb93a11b7bd06a46d","d00279ab020713264f570d5181c89ca362b7de8abddf96733de86bce0eca082c","f7db473f1d5d2a124f14886ac9dbfeccfbb94a98bbe1610a47c30c2933afa279","f44cf6c6d608ef925831e550b19841b5d71bd87195bd346604ff05644fb0d29c","154f23902d7a3fcdace4c20b654da7355fee4b7f807d1f77d6c9a24a8756013a","562f4f3c75a497d3ad7709381f850bb8c7646a9c6e94fdf8e91928e23d155411","4583380b676ee59b70a9696b42acfa986cd5f32430f37672e04f31f40b05df74","ad0a13f35a0d88803979f8ea9050ad7441e09d21a509abf2f303e18c1267af17","ba9781c718ab3d09cbde1216029072698d2da6135f0d2f856ba387d6caceb13e","d7c597c14698ba5fc8010076afa426f029b2d8edabb5073270c070cc645ba638","bd2afc69cf1d85cd950a99813bc7eff007d8afa496e7c2142a845cd1181d0474","558b462b23ea186d094dbff158d652acd58c0988c9fd53af81a8903412aa5901","0e984ae642a15973d652fd7b0d2712a284787d0d7a1db99aa49af0121e47f1df","0ad53ee208a23eef2a5cb3d85f2a9dc1019fd5e69179c4b0c02dc56c40d611c4","7a6898b26947bd356f33f4efef3eb23e61174d85dca19f41a8780d6bb4bfb405","9fe30349d26f34e85209fb06340bac34177f7eae3d6bb69dc12cd179d2c13ddf","d568c51d2c4360fd407445e39f4d86891dba04083402602bf5f24fd3969cacbb","b2483a924349ec835f4d778dd6787447a2f8bfbb651164851bff29d5b3d990a6","aae66889332cff4b2f7586c5c8758abc394d8d1c48f9b04b0c257e58f629d285","0f86c85130c64d6dbe6a9090bb3df71c4b0987bce4a08afe1ac4ece597655b9c","0ce28ad2671baed24517e1c1f4f2a986029137635bce788ee8fb542f002ac5b8","cd12e4fe77d24db98d66049360a4269299bcfb9dc3a1b47078ab1b4afac394cb","1589e5ac394b2b2e64264da3e1798d0e103b4f408f5bae1527d9e706f98269c7","ff8181aa0fde5ec2d737aecc5ebaa9e881379041f13e5ce1745620e17f78dcf9","0b2e54504b568c08df1e7db11c105786742866ba51e20486ab9b2286637d268f","bc1ffc3a2dca8ee715571739be3ec74d079e60505e1d0d2446e4978f6c75ba5c","770a40373470dff27b3f7022937ea2668a0854d7977c9d22073e1c62af537727","a0f8ce72cb02247a112ce4a2fa0f122478a8e99c90a5e6b676b41a68b1891ad2","6e957ea18b2bf951cf3995d115ad9bfa439e8d891aeb1afc901d793202c0b90d","a1c65bd78725f9172b5846c3c58ddf4bcbb43a30ab19e951f0102552fbfd3d5d","04718c7325e7df4bac9a6d026a0a2bd5a8b54501f274aaf93a03b5d1d0635bd1","405205f932d4e0ce688a380fa3150b1c7ff60e7fc89909e11a33eab7af240edb","566fc1a6616a522f8b45082032a33e6d37ff7df3f7d4d63c3cce9017d0345178","3b699b08db04559803b85aa0809748e61427b3d831f77834b8206e9f2ed20c93","b27242dd3af2a5548d0c7231db7da63d6373636d6c4e72d9b616adaa2acef7e1","e0ee7ba0571b83c53a3d6ec761cf391e7128d8f8f590f8832c28661b73c21b68","072bfd97fc61c894ef260723f43a416d49ebd8b703696f647c8322671c598873","e70875232f5d5528f1650dd6f5c94a5bed344ecf04bdbb998f7f78a3c1317d02","8e495129cb6cd8008de6f4ff8ce34fe1302a9e0dcff8d13714bd5593be3f7898",{"version":"00a1da64b8797121db6e18f81039b15d49d1f355853cdb46ddcec0d399494127","signature":"ec4e8b4aaaefcb92d7b7a34c7abe5d09ef35ac4a60a635341c8de292d98fa893"},"f0bb8c099438ad08fc589906658b01e8745b5d836d0bb95b1c70a232ed7340cd","4b8db4ddeab4e3d3bcdbc033f82db9c610d79d9dac4822a166b48b8115a56b86","a3c2abd98c3eb44a14869dabd47493c9a6ab2cbdbcbced5aa76003d0c98fe0ed","b0f2ff06100ac2f28b4bd6c1b0078a8e6dec8a8a4b9c73c2807c4a47d14b94bb","f284217ead5fc3d01f3e8cc704c891dbfc01e4e136012e191991831d7bf6205b","562a552ceb20ea7828b794ccfddf424bbc4db5188dff3d7ff5df6630a703b700","fe4641de18cf5579f9b733468bee73805f91b1a605458bfbe7dc9c6b389a8afb","495b8408c5c9f7ebb43ce86e34b656bc13c4bf95c341a01241f76e369d890882","385a7dab4b815134d93c646c1775ab55516f1d18016398fe060aa589741cf03b","2d679af71a42d384dbb9021719f54d672f2f3a3ed2524765bff1d401a9c68952","7eb215460da8b06963128f03bec5857390978a97faf5841f2ef1a55d48dce7d6","42baf4ca38c38deaf411ea73f37bc39ff56c6e5c761a968b64ac1b25c92b5cd8","e938de3d9b0516644b3e7069e3e94e325ca00eab9a664f5fa81e84c884d52d5e","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","ae4fdf0b7872a884b9044803370098615d616884af759ebbc645d5d9031362c4","10121dfaea7a41e91a687ecd3c3d58a8f190957e70e9fe9cec430b7c9e2a7ad2","9e0e9aeffbc647cee65d2f255de8c72198fb72ed13b8d8447de3f2c40f1bc8ab","9a10b75bf6af2f999050f3422efb851e480b17836013ec9bf1727bd0f88c424b","e8c1f41aeaca02f97f93626d289dcdb89b4de617b070dc0652aa9682ffd2b216","2b1a60a0ddf11f6ceb7d3feb1c64047a784d4781d11f9d7ace06344c25e3c514","70c9a729c6931495c85a98e777305b26265371113d17a7bf67e76006cb21a708","44cada4e7f3d905649cb2a1ae36ddfcb6776c829c0334363ca0056a68daff7d9","e86b6ae8db314351ea3308b3e4c20d14e9ad45b0dac472393f4bd61101fd19a4","3e48585581c62ec1114eb35e09554ad59032d7152ee16b02ce5abe90d4ff83b7","514a8014bae1cee080e219d52316bf630794f9fa11b8261ced87e603b56d351e","e98bc41632bcb3cbb11af1cfb0d73c21393551b645e9790dba93304dce7992fd","c93424262e6e8274db30fcc998af77a95dea685a5a754d3a725e33bbc6913ac9","dc84604f43e4305be0acb23cff60f89e94156bb277b6fb8db97c99db01730906","f88fb23d72ea1139f3322f887d4978b698cc63f1e1aaf6b0804ece0331f40281","c82d5bef0704d5b89cdcb7361b81b0667dbcf5fab5d820757097b2287135afa6","f7163a5d37d21f636f6a5cd1c064ce95fada21917859a64b6cc49a8b6fd5c1a8","a3b563e1c55f84097b8cb1f1f479f7a4a2a0330a0db15b9faebc8333d0022445","cb103b15048cbd030389ebbca451edd3f602aef9b2c08afde2c91b687f8d65c1","12d5586f064a58d8ca6939db53f780d3805c39bac828a95f245c68aabaa5dcca","f89f9279a0a107c26ef0b59399135ab9d919c65baf66a81de846615ec3c88bf4","a39aaded0c0dbc402557a52667c7b80d059adcd3b1e70392bd8be5ae96c7f7fd",{"version":"2367f21f399bc424aabec0e46fe9eb293d07a60eaec6f22755a932da5e080741","signature":"569efd9e6cc97c1cf561459824b2bd935f78c67457190f82da96e12d51cab6b5"},{"version":"e7a6f8a23c2c20bc5fca53cdfd11ff77366647898ba439ab108ed5d358c8c228","signature":"0aa9d2f16c961f547f2f0f466b9c237021b9ddcab5713a038cd90ba7b344e9b3"},"47be229e12f1953e577533f93d304ed68be89fb1c36bf86bc340b0b772a1fb6e","d27ca08ab62e8b2780e533db7793a539f3aaa93c07d8d9bd33efc83b03047019","cf67e3ab470da6609f0ad9d6cf944bf85f8f0437ca8abacd2b91539df4d7a4f2",{"version":"6a9ee00ab703f2c22601c6d64832fc750c8b7f634862ba6f3a905f0c3a602cb5","signature":"35527f075f31bee8ef87bbcc4373ebb7a672b602abf43a0754472b10631541f2"},{"version":"0ddade479b9170ad8ae293d31db0b441e9dd7c8f116480844fb22cd460074954","signature":"b7fed2f7892ed1cb131da1a4b164d5cacaf06e57191dae346432b61460af11a0"},{"version":"6a0facaf405c5ef4eff20edb07cf15e8990d629ba205dbc120448f396f6824c2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","18c04c22baee54d13b505fa6e8bcd4223f8ba32beee80ec70e6cac972d1cc9a6","e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","27d672dbef616fec6c5503e6004207885027818366f1183a4bc9f344f4bd088a","1d51250438f2071d2803053d9aec7973ef22dfffd80685a9ec5fb3fa082f4347","7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","c7a38c1ef8d6ae4bf252be67bd9a8b012b2cdea65bd6225a3d1a726c4f0d52b6","e773630f8772a06e82d97046fc92da59ada8414c61689894fff0155dd08f102c","edf7cf322a3f3e6ebca77217a96ed4480f5a7d8d0084f8b82f1c281c92780f3a","d3aff63454778ebf63fb41133aed7c3549b57a707b3ec17e48b5760da5561aea","96aed8ec4d342ec6ac69f0dcdfb064fd17b10cb13825580451c2cebbd556e965","b8198146262329bfa89462b7087c65bc8ba54fcc3f1276f17ef079dda712ba66","28ffc4e76ad54f4b34933d78ff3f95b763accf074e8630a6d926f3fd5bbd8908","2624ee1468fab095a47e3ccb900b3ffc528f614deeb9d3d42bb2af9ccd2b7255","3d65182eff7bbb16de1a69e17651c51083f740af11a1a92359be6dab939e8bcf","670ddaf1f1b881abaa1cc28236430d86b691affbeaefd66b3ee1db31fdfb8dba","77926a706478940016e826b162f95f8e4077b1ad3184b2592dc03bd8b33e0384","b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","8e59152220eb6d209371f0c6c4347a2350d8a6be6f4821bb2de8263519c89a8f","c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","c63c3ebbc91dad599eddf70e98e82b1b712ce28eeb4ba3e28fb3465fa3fbb26a","f616824b06a300d995220d1e80d4a8b97024655b775251f10611755b1f4a7553",{"version":"c730620c97a63b590049ec92a27b8b229d896f5ed9361c0139aee9f68349fbe9","signature":"c96720d24d296ad6cda772ca993b01fad42728bab10403592eb71bafeaacb6be"},"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea",{"version":"731d7c263de424d55dbe3c728429b13fe01f446b9f236ec089391bfcef11933e","affectsGlobalScope":true},"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","8b96046bf5fb0a815cba6b0880d9f97b7f3a93cf187e8dcfe8e2792e97f38f87",{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true},"82e687ebd99518bc63ea04b0c3810fb6e50aa6942decd0ca6f7a56d9b9a212a6","7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","8f03209fb928659d17ce80286f19863624600a2e6fe102e16d07702679b855dd","d6838763d96ca56f56a7acdefb550e929f8a0c25d4d1e8b01a1bcc5ecfcad2cd","b943e4cfae007bf0e8b5aa9cbb979865505e89586fd1e45bb7aabf0f855ed1d5","3deed5e2a5f1e7590d44e65a5b61900158a3c38bac9048462d38b1bc8098bb2e","d435a43f89ed8794744c59d72ce71e43c1953338303f6be9ef99086faa8591d7","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","a4f64e674903a21e1594a24c3fc8583f3a587336d17d41ade46aa177a8ab889b","b6f69984ffcd00a7cbcef9c931b815e8872c792ed85d9213cb2e2c14c50ca63a","2bbc5abe5030aa07a97aabd6d3932ed2e8b7a241cf3923f9f9bf91a0addbe41f","1e5e5592594e16bcf9544c065656293374120eb8e78780fb6c582cc710f6db11","4abf1e884eecb0bf742510d69d064e33d53ac507991d6c573958356f920c3de4","44f1d2dd522c849ca98c4f95b8b2bc84b64408d654f75eb17ec78b8ceb84da11","89edc5e1739692904fdf69edcff9e1023d2213e90372ec425b2f17e3aecbaa4a","4a27c79c57a6692abb196711f82b8b07a27908c94652148d5469887836390116","f42400484f181c2c2d7557c0ed3b8baaace644a9e943511f3d35ac6be6eb5257","54b381d36b35df872159a8d3b52e8d852659ee805695a867a388c8ccbf57521b","c67b4c864ec9dcde25f7ad51b90ae9fe1f6af214dbd063d15db81194fe652223","7a4aa00aaf2160278aeae3cf0d2fc6820cf22b86374efa7a00780fbb965923ff","66e3ee0a655ff3698be0aef05f7b76ac34c349873e073cde46d43db795b79f04",{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true},{"version":"28e065b6fb60a04a538b5fbf8c003d7dac3ae9a49eddc357c2a14f2ffe9b3185","affectsGlobalScope":true},"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","e7d5bcffc98eded65d620bc0b6707c307b79c21d97a5fb8601e8bdf2296026b6","470227f0dbf6cfa642fc74d2049924a91c0358ecd6a07ea9701bd945d0b306ae","0d87708dafcde5468a130dfe64fac05ecad8328c298a4f0f2bd86603e5fd002e","a3f2554ba6726d0da0ffdc15b675b8b3de4aea543deebbbead845680b740a7fd","93dda0982b139b27b85dd2924d23e07ee8b4ca36a10be7bdf361163e4ffcc033",{"version":"31af4e44d2d576ba81551894367493d444a24b72206fa9d4938b773085588cce","affectsGlobalScope":true},"6ce6437555ca7a32f3ee9ddac82d8b3d86f9b1ef5ab5adcb08cda921c5501d36","aa348c4fb2f8ac77df855f07fb66281c9f6e71746fdff3b13c7932aa7642b788",{"version":"4a1bc42daa1c6fbb56d5ff681af8020e5236b4f4e3d9f55a3159daef8707c8e2","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4"},"a2a75a21893f61e21431ad8d352993084b8568c7fd1a8848d32612a8655e0f60","89189df027e8910200a4b65af1e29a996225cf25975f5c438fbe9361c008fc6b","2ca57ff4966cce29b180be0e22e9d47ff525db341fd6a767d0f62539d15c79bc",{"version":"8c05e9f22bb94c431fdd75ffc5104b9ffc15120c3901bd75cc3d6d3ee0861339","signature":"e9656d1333124ad2377e9ccd28cbae6ed5131476f7a952129e6ec9461648f471"},{"version":"00f376cf2e8231300a2bb753ad7e38007cfea4158548cc4e204c1c3de02d3cba","signature":"18ab45bf20f485c9dcb76a818d40f2d7553ae1a182cb05e6b755b660a1fb5797"},"cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"c05dcfbd5bd0abcefa3ad7d2931424d4d8090bc55bbe4f5c8acb8d2ca5886b2e","326da4aebf555d54b995854ff8f3432f63ba067be354fa16c6e1f50daa0667de","90748076a143bbeb455f8d5e8ad1cc451424c4856d41410e491268a496165256","76e3f3a30c533bf20840d4185ce2d143dc18ca955b64400ac09670a89d388198","144dfcee38ebc38aae93a85bc47211c9268d529b099127b74d61242ec5c17f35","2cf38989b23031694f04308b6797877534a49818b2f5257f4a5d824e7ea82a5a","f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","e4ace1cf5316aa7720e58c8dd511ba86bab1c981336996fb694fa64b8231d5f0","a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","f35a727758da36dd885a70dd13a74d9167691aaff662d50eaaf66ed591957702","116205156fb819f2afe33f9c6378ea11b6123fa3090f858211c23f667fff75da","8fe68442c15f8952b8816fa4e7e6bd8d5c45542832206bd7bcf3ebdc77d1c3f3","3add9402f56a60e9b379593f69729831ac0fc9eae604b6fafde5fa86d2f8a4b9","cc28c8b188905e790de427f3cd00b96734c9c662fb849d68ff9d5f0327165c0d","da2aa652d2bf03cc042e2ff31e4194f4f18f042b8344dcb2568f761daaf7869f","03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","de2b56099545de410af72a7e430ead88894e43e4f959de29663d4d0ba464944d","eec9e706eef30b4f1c6ff674738d3fca572829b7fa1715f37742863dabb3d2f2","cec67731fce8577b0a90aa67ef0522ddb9f1fd681bece50cdcb80a833b4ed06f","a14679c24962a81ef24b6f4e95bbc31601551f150d91af2dc0bce51f7961f223","3f4d43bb3f61d173a4646c19557e090a06e9a2ec9415313a6d84af388df64923","18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","d5a5025f04e7a3264ecfa3030ca9a3cb0353450f1915a26d5b84f596240a11cd","03f4449c691dd9c51e42efd51155b63c8b89a5f56b5cf3015062e2f818be8959","23b213ec3af677b3d33ec17d9526a88d5f226506e1b50e28ce4090fb7e4050a8","f0abf96437a6e57b9751a792ba2ebb765729a40d0d573f7f6800b305691b1afb","7d30aee3d35e64b4f49c235d17a09e7a7ce2961bebb3996ee1db5aa192f3feba","eb1625bab70cfed00931a1e09ecb7834b61a666b0011913b0ec24a8e219023ef","1a923815c127b27f7f375c143bb0d9313ccf3c66478d5d2965375eeb7da72a4c","4f92df9d64e5413d4b34020ae6b382edda84347daec97099e7c008a9d5c0910b","fcc438e50c00c9e865d9c1777627d3fdc1e13a4078c996fb4b04e67e462648c8","d0f07efa072420758194c452edb3f04f8eabc01cd4b3884a23e7274d4e2a7b69","7086cca41a87b3bf52c6abfc37cda0a0ec86bb7e8e5ef166b07976abec73fa5e","4571a6886b4414403eacdd1b4cdbd854453626900ece196a173e15fb2b795155","c122227064c2ebf6a5bd2800383181395b56bb71fd6683d5e92add550302e45f","60f476f1c4de44a08d6a566c6f1e1b7de6cbe53d9153c9cc2284ca0022e21fba","84315d5153613eeb4b34990fb3bc3a1261879a06812ee7ae481141e30876d8dc","4f0781ec008bb24dc1923285d25d648ea48fb5a3c36d0786e2ee82eb00eff426","8fefaef4be2d484cdfc35a1b514ee7e7bb51680ef998fb9f651f532c0b169e6b","8be5c5be3dbf0003a628f99ad870e31bebc2364c28ea3b96231089a94e09f7a6","6626bbc69c25a92f6d32e6d2f25038f156b4c2380cbf29a420f7084fb1d2f7d7","f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","5126032fe6e999f333827ee8e67f7ca1d5f3d6418025878aa5ebf13b499c2024","4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","1573cae51ae8a5b889ec55ecb58e88978fe251fd3962efa5c4fdb69ce00b23ba","75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","f2d1ac34b05bb6ce326ea1702befb0216363f1d5eccdd1b4b0b2f5a7e953ed8a","789665f0cd78bc675a31140d8f133ec6a482d753a514012fe1bb7f86d0a21040","bb30fb0534dceb2e41a884c1e4e2bb7a0c668dadd148092bba9ff15aafb94790","6ef829366514e4a8f75ce55fa390ebe080810b347e6f4a87bbeecb41e612c079","8f313aa8055158f08bd75e3a57161fa473a50884c20142f3318f89f19bfc0373","e789eb929b46299187312a01ff71905222f67907e546e491952c384b6f956a63","a0147b607f8c88a5433a5313cdc10443c6a45ed430e1b0a335a413dc2b099fd5","a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","6b1071c06abcbe1c9f60638d570fdbfe944b6768f95d9f28ebc06c7eec9b4087","92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","1285ddb279c6d0bc5fe46162a893855078ae5b708d804cd93bfc4a23d1e903d9","d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","fc3ee92b81a6188a545cba5c15dc7c5d38ee0aaca3d8adc29af419d9bdb1fdb9","a14371dc39f95c27264f8eb02ce2f80fd84ac693a2750983ac422877f0ae586d","755bcc456b4dd032244b51a8b4fe68ee3b2d2e463cf795f3fde970bb3f269fb1","c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","f3dedc92d06e0fdc43e76c2e1acca21759dd63d2572c9ec78a5188249965d944","25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","a1d1e49ccd2ac07ed8a49a3f98dfd2f7357cf03649b9e348b58b97bb75116f18","7ad042f7d744ccfbcf6398216203c7712f01359d6fd4348c8bd8df8164e98096","0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","8e7653c13989dca094412bc4de20d5c449457fc92735546331d5e9cdd79ac16e","189dedb255e41c8556d0d61d7f1c18506501896354d0925cbd47060bcddccab1","48f0819c2e14214770232f1ab0058125bafdde1d04c4be84339d5533098bf60a","2641aff32336e35a5b702aa2d870a0891da29dc1c19ae48602678e2050614041","e133066d15e9e860ca96220a548dee28640039a8ac33a9130d0f83c814a78605","cbb45afef9f2e643592d99a4a514fbe1aaf05a871a00ea8e053f938b76deeeb9","5728fd6e79e51c877314783a38af0316f6da7ddc662f090ca816b9aa0199720d","5e379df3d61561c2ed7789b5995b9ba2143bbba21a905e2381e16efe7d1fa424","96e53bae2777f46a70aef8162464fcbdab40adb09fc0fa0b210577f2f69ce8f0","18ceb404457c5bad68b4a8c8534746096b817851734d65a178318866160881d8","cb8fd6303fbe5f8bce449d637e3f66e5e6ef0d67c2926b442759749c1817bc2d",{"version":"47537b5fcc4ac941dc4aa45cb862faca3acc391b9c52e9b42405d63d284120f2","signature":"28d3b8ca8f55fd8b11f5b1fb2c70fb79c679b13bdefacbf4d1695bef7b3344e4"},{"version":"b6ee4bbd15d5472b8a04cba73c7f500cdff63757eb0bbca2829eb8a2a795fcde","signature":"2a0924e4ec734689f26630d43c67ee5586e224d59501add277c07fcb786df273"},"fef20e52c6a400ff2b4a717213cfb01c8227ae108e9fff0b1c7b5f7a1b1a2a19","74fac6716b0c47e28328f1c653979ea898a23becf162e54151e0169cc71f1d5d","8d9f98854e03f35560144c7f8f658356894256a171afba67334513de1ed93884","15b56e00be72d073e504118fab62a89e426c647d99bb8d5bff0f20779fc0c2d2","c21eaf8e9ef83478359d02979320296c8e22f16001d7fb4e05fc3368d3af0a87","86be932eda4cfa8d3a94fe867d6ce0931a29f004bc412ce8f0c99c190f83dd96","ccb08a3ed167a2e8e5962a45e96579de7d0124a71f468172dc338aa6ffad4c83","80969e8d5da1ea6f703dcd8bb53648d1ec868a20428a871b1b4044a93ff7662a","52530a73b7ea03cd827b429d287ac2d92f8fbeb8899c6393a5a892d6752b6ac7","6817f78a0feb443d7c1d3e26981a6ef299d1b97a9f143ef9a6e0452f772125a4","5eddd5ce888c9c67af9d6926fe606f8c2e9d63202fd07015233259dc1b1b3558","5d6319684bec5c1c45a09057356f916e5765a061f67bc05ed67403d4d35facaf","f061b48a5ab25a86e6b9b5fed906f466036bb2213226117ef4b711d4cacf8863",{"version":"236a4d940fd5f593463a638363e73453248785e688c690ca2002ce86638f780b","signature":"36edac5c83a830843836f7b49bcf2d789c1fbbf8ebd73ea0079fd304d74d916e"},{"version":"1c9658f97b51f55bfa8ed2e56e1dc2145d9402924d42d52d07f11e79de564aa0","signature":"47d1dcf39052cd1ab24a1548a7ac5053e6ff4be8aea3d683f4a2209a15f87539"},{"version":"7c25c97c9f110cec49d20542958f90479749c874c3f06ecabef6e82d692c9ab7","signature":"222def4c03351cb43988e8d992ee32833b7457d2f4ece031cea7243af6394d05"},{"version":"3a99cdd7e4a15b626f95d20b5ebeb82131edf1dfaf97e66e68b1343bfddd822a","signature":"7384bb9c27ff6b36a513a7326cc5261412a41dbac3d6bbfe4b5cf4669732a70a"},{"version":"3e0f5a1a51a156dea377c4840aae633e80055a6ac54b891b3e4067436770faa6","signature":"ef6e790f2aec95036c44443a37f10f86462c6a9ec9e7ca3de8e50262ca02bc92"},{"version":"89e157067872ddd633d497ae5091b49cd19db83d74a4eb4990625b880140a899","signature":"a708c6a3dfcd8106e3c1cb0679fc4802fdf861281f12064505af0c97aeb47341"},"1257ee54981d320653568ebc2bd84cf1ef6ccd42c6fb301a76b1faf87a54dbd5","9ab0a0c34faa1a3dd97f2f3350be4ecf195d0e8a41b92e534f6d9c910557a2e6","45d8db9ee4ddbc94861cf9192b30305ba7d72aea6a593961b17e7152c5916bd0","f96f8df3e47e27cab8159e91a4f35cab83ba8acc751731c64c23437f60a2bc83","0cc4f92cec64b293c691536c94bea0b5f77ed0dd4d18f89b0f1d5ee86d93112e","5da94e87e7ddce31c028d6b1211c5c4e9b5b82e5a4b5caeb6cf7c5d071d6e0f3","165afcb61332f4907f7a2d42318439e98605529bce02fc7249fc5fa804e6a2cf","e793c7dc86a1692d912f8fce7b95f370b6eac70f97d0ff275f8088668c32006e","2288693289db1068cfc1092082d1f572afb456e2c82e0d2d91d82842f219bab9","c835b1ad8abaa399efaf91ccd8e26e871ba762e0523ccb7cd12d3e22ac225da6","c99adc8e9b2b460ce55daebdd87d846277a1fc125f6bd1782ff4f9a83eeedb04","4f3be7ac4a990d3147fa0a861de4aa50751fb648ef3a0a650fb732bece9ef852","5180a1a33602d0eb1ff18a8370eab0bc98f81060f4c64dcbbfab9d8db0075379","947755f8ace78ed9b0bfe82822108c02d877d4f8e399ed33a88ebcabb36e21e4","51f200f722f8c92a509f1126fa08a7f985cb121135e1a10f88de741884cb9881","e4e351641ca6336595bfe0a4b161deb84534414d3d52bbc2e08189a74b049072","b0a609a69fa841b7172ee2ab6367c08d3f6f03d0a754dbecca0886b944262b08","a983fd104cd83905b505dbebef72c488d8f31717313ceb1854920cb8117f2fb0","b6f2a56a96124f9d919e98532b4d0299d1c0798881bc30da196845d4f0d9a374","3fe59355f83f66a7d69bce01395edc5af0c6f69bda0d7407d8b642bc90a9d9a4","8fb7bb10b9dc4d78871076faf4170d13dcb78e8ba1d50a538555e6df98100781","a4c07340daf98bb36410874a47a9c6f8de19fa54b015505f173bffb802fd110a","70f53130d4dcf2f25b58eba7bb7ab4dd80994ad7dab46b37e60cd13a70761fd4","0838507efff4f479c6f603ec812810ddfe14ab32abf8f4a8def140be970fe439","1b85b109267d934bf3384bccfb501ba9aaadad2da76f3d8f227bd25ce23ccf38","7e41e20b827c3bee1d8c0da989753c1ab69714265d7dc799020106328a746bfb","2bfbc16d84205cf64209b04006b770898843a16d95f4501928123c4ecf2b7788","4458568824d3b6282ba265e09a831812bfa152b8924d7856367eb6e3d41187c8","c6a9669d9599e3e5d40c8ef637963c5fa3e3b23620561062c0567da2f3661b5e","6aec4f31e84d0fb676472c7b4927e4d1588b2e12b4b699f4019be4626219ab90","520a60fff6b561bab033dc0a3a9da06d06c00a6c5b745ba2a08df3892210c77b","bd326d6cb825cce0278e2424d777c5bc6af9843858fddf8ca112a6ffd766eb1d","164febfe1b9866698fae4d8d6e988fd5aa4a1378d2d1a51f6d43bcb62288380a","eee88094eb6d6916ee7cb37de791849759d137868a8419cda0eb7385a1e78e19","b936279c5c2ba68e045625a7d7b694fc56d117fa5ebeeac6248f5cedead12935","0ad081bf80e6a824011077cb5fe70fd91da24e805278e30c319b2bda5491c7c5","976f1274b025d67f597a315b294026787a92f33c2b427394c783c7ca3d281d3d","20d5b5c441ed3aa6996064dc968b13c134cb673fbe457e0c106b559ec460b031","fb0f1b9c9f7eb3c159da7f7841fee3fd5fc8e4a48a56e3f6545832d954d050a5","4ea7910220947cbf3b925244bc43719cbd7ff470c814917e77670cc905463cf7","05fe211c121ba4ca76a49c4fa863faf43e69d0fa53b66367915fe021ea4b8ddb","d9816c2c5f3f78a289b2951660f9d79c86079ee37100f1281301505649ad9a5e","2d0cef1e8f2d8d9f25cf1813dd3d796877916345449fbc58bbb6038104d49989","dcfa53654f2ce8e01d500a48e0acbbd42fe748158d54f3fa06ab984a6361e7d1","53ade6c4254c3dd2879757927f22e33e0b4b35202c08d582db29f91a29653a78","221139790b938ef6442e919d12f5052fcd79af5cc025221e382df31ca13a8e39","bcc57b8d2534abd9cc882d6b2edb4f569efe23ebbc9bd8135d7d400344400c93","f878ea726cdf5bf37f1fc27d69ae3f55ff28aef0a64169eb163d2f167636e8ac","0726d18ac9cb69b989c60a9804b7b0f628b5bc95e5e8878a4cc5f5e7dad6ee65","758e92a92871b11a9aede1787106be4764ae6a32f6c76bb29f072bfa28d9f69a","1694f761640dd96d805157f64c826748860207f375b0a4ccf255cb672daf0f83","236244aea2840f5a3305149252ec3a7e47893230661fd69b865b3170df911f76","da51f13e3c339d443e7e201cf941b94160056db4b10a31e28efb64a97a32d83c","dfb2ba548b20bc0926898d6e88462cd6b3f17579309e6b5427ae0086b7f39e52","282e8bd2034975d3fd7e4d3901592a6c6676fd99b3d3af4496be8fa9e5193588","7c06e0480f9ce9a7fcb07e36ddf2e804a1cc19a6f776dbad62559366bfa850f3","e687eb024b93fa5de0afa2de6a6a9034f5b7427e1760b882bcf0e05c93e7a6a2","679915083555255e93493a51165ac4c8f48f03b88f48e92d831bd1347c0e65f4","d3efd5fc8fb66fced29e89b82e4434b8eb94c6adb9a38d219fb85394e8f492b6","1257ee54981d320653568ebc2bd84cf1ef6ccd42c6fb301a76b1faf87a54dbd5","9ab0a0c34faa1a3dd97f2f3350be4ecf195d0e8a41b92e534f6d9c910557a2e6","45d8db9ee4ddbc94861cf9192b30305ba7d72aea6a593961b17e7152c5916bd0","f96f8df3e47e27cab8159e91a4f35cab83ba8acc751731c64c23437f60a2bc83","89c3ac667c703843866afd0398098702b3f131e2405e6f7a3ec18e988c3d41b6","5da94e87e7ddce31c028d6b1211c5c4e9b5b82e5a4b5caeb6cf7c5d071d6e0f3","165afcb61332f4907f7a2d42318439e98605529bce02fc7249fc5fa804e6a2cf","e793c7dc86a1692d912f8fce7b95f370b6eac70f97d0ff275f8088668c32006e","2288693289db1068cfc1092082d1f572afb456e2c82e0d2d91d82842f219bab9","c835b1ad8abaa399efaf91ccd8e26e871ba762e0523ccb7cd12d3e22ac225da6","c99adc8e9b2b460ce55daebdd87d846277a1fc125f6bd1782ff4f9a83eeedb04","4f3be7ac4a990d3147fa0a861de4aa50751fb648ef3a0a650fb732bece9ef852","5180a1a33602d0eb1ff18a8370eab0bc98f81060f4c64dcbbfab9d8db0075379","4243b3e6c57743a8ad18461ba7a4ba891afab8cb9dc1b0a1557b9165f29a3b5f","e94d45c796e17c6723c8144c8bc00ae30617ceceab8b36bc9feeef5e4cfb03e4","e4e351641ca6336595bfe0a4b161deb84534414d3d52bbc2e08189a74b049072","b0a609a69fa841b7172ee2ab6367c08d3f6f03d0a754dbecca0886b944262b08","a983fd104cd83905b505dbebef72c488d8f31717313ceb1854920cb8117f2fb0","b6f2a56a96124f9d919e98532b4d0299d1c0798881bc30da196845d4f0d9a374","3fe59355f83f66a7d69bce01395edc5af0c6f69bda0d7407d8b642bc90a9d9a4","d7fcb3b9a06eb3b2b94b57263f9115aa313405ba3f837116c0f0422d9bd0869b","a4c07340daf98bb36410874a47a9c6f8de19fa54b015505f173bffb802fd110a","70f53130d4dcf2f25b58eba7bb7ab4dd80994ad7dab46b37e60cd13a70761fd4","59fd08a8d135874c08f09f42976f625b4c28311dc0162d72144d762fb51f7295","4692d0b40ba689a5a249b766b3a8b43ece3f3439cbbddce25adb6ec17ce8518a","c2bbbdad520259f1b029852cf29d8a19c886c4b9a965ead205e354678a4a222b","7812a1bb9b5475ab4216005fdb6332d5b57c5c96696dec1eddeafe87d04b69de","e91d958316d91eca21850be2d86d01995e6ee5071ca51483bbd9bd61692a22b8","9603ded396b357827bf0aefce69cf97680b5770759c9f12e6ffc3f9e061f5d07","6abacc249f11917c40061bc2fcf4a9aa34425e748e991776c6c94e23929091ac","62accaae04a3db14c5ef4033231408edb801d983c8a355c5e03f56c90bec8648","2ba08f885ff10b0d5a536003b1cc78a4867ecc08d4810d067b5e69b470ec2c33","fb14e297b3b96cbf91192454ca3d932b3c4948f8a249119477f4c61e5f3937c3","2a09c702e74f0914dec5824d23f289b68efa8665687b1d51a1d79681cccdadc0","3a194d095085957813c92fb97d39a990ece4d3c9c6acc64dcc71d3f422d462d8","cf8454ea561eb1395b4af2fb9926884388d1ba8d92c2794b72f9b83840655b78","0fa603ada81bc84f62275bd2348c45f66d13f9aefc6455b31455290732cc9338","92eebb97bf5ca1da945b8db6e4bdf41832348a6e5cb04eea7823dd1bef2d35db","46eb2515ca3446c38490966d732baf57ad7723a9851c0d759830291aa924d01a","cdba209e07fabef829525ebf9c3ed56fbfee784c61626f2a4a2a3b92878a8139","d507ffcb968932760d57df27b19474e5ffa84a65078c16bd9a5fa395f7a7e643","4bc05cb2e0d8f99024392adbb3c41a1405bee8a07d223531861edee437245dff","5148c6bd9b67ec7bac59f6a675942a96874daf08e637f479773bbad5e9c6cc4f","b31873f61f336722bac5e715494d2d188cd396ff16a1846d66414429dadaa9c7","d2a2226878acc00147b1a1b7d5e190ba136f120b731fcf0c9138a1ef9f95fbf0","978876602b0bd463b2c24d26e013fe2bace642a2e8a726f0fe6e056ab976d96d","c056a328f0d7883f8094f0d391f2edc6781e448fc049efee23fba9ff44ce73a2","07f81878d81524f363d536425e2db646fcc64079b0609f5b7ca54b24a9c93c72","b1f16528bbafa8520addfaeee4db5e52df333d82aeee7eac56fd172f3b21c24c","78ef0198c323d0f7b16f993ada3459f0e7e20567e7f56fe0c5ee78f31cb0840c","01dea450d742aa55ce9b8ab8877bbda8eb73bf88609e440cc34f6f59f35080db","5ec614ed82e045de15417a47e2568be5310d43d4764ee43d295ea38caafbfd17","b788ef070e70003842cbd03c3e04f87d46b67a47b71e9e7d8713fd8c58c5f5ec","583d365dc19f813f1e2767771e844c7c4ea9ab1a01e85e0119f2e083488379c2","b82fc3869c625b828dd3feac4b5ebf335ed007d586dc16176602db73bc4e7c65","05e30605274c26f405c411eebed776fa2102418c05beec885e5c9bd0fa716f32","58c7f7820dc027a539b0437be7e1f8bdf663f91fbc9e861d80bb9368a38d4a94","d67d6b779d0dece9450d7a4170d3ee58ea7fcae0af2ab5e1d0ad711474b4f7f5","1066c11177d085898185548e1b38ed15fcea50061508f7c313ab8bec35d46b95","bbc49fd9dc6ee162ba3d270c834398e0c1d44e657ac4edfa55ac837902b7e0da","6993f360de4984b6743764fad3b88246d5dc6cfa45567783fc23833ad4e50c13","f11eb1fb4e569b293a7cae9e7cdae57e13efc12b0e4510e927868c93ec055e82","715682cddbefe50e27e5e7896acf4af0ffc48f9e18f64b0a0c2f8041e3ea869b","6d2f5a67bfe2034aa77b38f10977a57e762fd64e53c14372bcc5f1d3175ca322","4ff4add7b8cf26df217f2c883292778205847aefb0fd2aee64f5a229d0ffd399","33859aa36b264dd91bef77c279a5a0d259c6b63684d0c6ad538e515c69a489ec","33fa69f400b34c83e541dd5f4474f1c6fb2788614a1790c6c7b346b5c7eaa7dd","be213d7cbc3e5982b22df412cf223c2ac9d841c75014eae4c263761cd9d5e4c0","66451f9540fdf68a5fd93898257ccd7428cf7e49029f2e71b8ce70c8d927b87a","8a051690018330af516fd9ea42b460d603f0839f44d3946ebb4b551fe3bc7703","301fb04ef91ae1340bec1ebc3acdd223861c887a4a1127303d8eef7638b2d893","06236dfec90a14b0c3db8249831069ea3f90b004d73d496a559a4466e5a344a4","fc26991e51514bfc82e0f20c25132268b1d41e8928552dbaed7cc6f3d08fc3ac","5d82bb58dec5014c02aaeb3da465d34f4b7d5c724afea07559e3dfca6d8da5bc","44448f58f4d731dc28a02b5987ab6f20b9f77ad407dcf57b68c853fe52195cd7","b2818e8d05d6e6ad0f1899abf90a70309240a15153ea4b8d5e0c151e117b7338","1c708c15bb96473ce8ec2a946bd024ecded341169a0b84846931f979172244ba","ba1b8e276abe5519e0ba134fd0afba6668ba26d8d5a1fb359d88aff6357457c2","dc187f457333356ddc1ab8ec7833cd836f85e0bbcade61290dc55116244867cb","25525e173de74143042e824eaa786fa18c6b19e9dafb64da71a5faacc5bd2a5c","7a3d649f2de01db4b316cf4a0ce5d96832ee83641f1dc84d3e9981accf29c3a1","26e4260ee185d4af23484d8c11ef422807fb8f51d33aa68d83fab72eb568f228","c4d52d78e3fb4f66735d81663e351cf56037270ed7d00a9b787e35c1fc7183ce","864a5505d0e9db2e1837dce8d8aae8b7eeaa5450754d8a1967bf2843124cc262","2d045f00292ac7a14ead30d1f83269f1f0ad3e75d1f8e5a245ab87159523cf98","54bcb32ab0c7c72b61becd622499a0ae1c309af381801a30878667e21cba85bb","20666518864143f162a9a43249db66ca1d142e445e2d363d5650a524a399b992","28439c9ebd31185ae3353dd8524115eaf595375cd94ca157eefcf1280920436a","84344d56f84577d4ac1d0d59749bb2fde14c0fb460d0bfb04e57c023748c48a6","66738976a7aa2d5fb2770a1b689f8bc643af958f836b7bc08e412d4092de3ab9","35a0eac48984d20f6da39947cf81cd71e0818feefc03dcb28b4ac7b87a636cfd","f6c226d8222108b3485eb0745e8b0ee48b0b901952660db20e983741e8852654","93c3b758c4dc64ea499c9416b1ed0e69725133644b299b86c5435e375d823c75","4e85f443714cff4858fdaffed31052492fdd03ff7883b22ed938fc0e34b48093","0146912d3cad82e53f779a0b7663f181824bba60e32715adb0e9bd02c560b8c6","b515457bebb2ad795d748d1c30d9d093a1364946379baf1fbb6f83fd17523ed5","220783c7ca903c6ce296b210fae5d7e5c5cc1942c5a469b23d537f0fbd37eb18","0974c67cf3e2d539d0046c84a5e816e235b81c8516b242ece2ed1bdbb5dbd3d6","b4186237e7787a397b6c5ae64e155e70ac2a43fdd13ff24dfb6c1e3d2f930570","2647784fffa95a08af418c179b7b75cf1d20c3d32ed71418f0a13259bf505c54","0480102d1a385b96c05316b10de45c3958512bb9e834dbecbbde9cc9c0b22db3","eea44cfed69c9b38cc6366bd149a5cfa186776ca2a9fb87a3746e33b7e4f5e74","7f375e5ef1deb2c2357cba319b51a8872063d093cab750675ac2eb1cef77bee9","b7f06aec971823244f909996a30ef2bbeae69a31c40b0b208d0dfd86a8c16d4f","0421510c9570dfae34b3911e1691f606811818df00354df7abd028cee454979f","c61d8cc814035424b5d55348b6aede37074151c408de931ac3f63c7b6f761efb","7c7b418e467a88a714b4c6dac321923b933f82875f063f48abf952021a2c2df1","8cd160eebcc1bfec9b1bb7d6335ec566fe280edda08a3991ae8a94b30ff2e99a","d0be977b493b9373d8e6cb3f6f98858fe7cfa5f439e50a56c812c94fd7d7ee61","6446353b3649654b46703f44d11ff75df65eb3818b7d06679f6f596edf305e74","f432ee3a289df97367431d06b9b320a219c0226050422a6baf6c233556110cc9","dfa525ed03c05ef3755fbd15f854a1829e1dd7f54c5cc8b33335920f9374e147","292e3b45d16eb5dade3c2d31962d1c671e2bfc1c204df99401806f63f942f57e","9f930cb8ce3e1e99a5a97203100da46222596cb4b68a2ba18f3ec118b0dc9cba","48ba2576b9a81e4d917489c0ea51475fa566832856b818bd987ee1fe376c5b36","43e620786d33266f1524d000b95761eea66fb8d1369b46bc897619ffb52900e1","9accc28ca94a703f1a150f9f78b22bb53924bc623bdcd148997cc84905c557a6","6159441b091730713a08da2ec3ffef77961d74f33653b47c1cdd345c9e5df0ac","9ebb00ce7369686c61bdcba943c001fe6f942f537972bddeaa52ea97c56e2c8a","ecf1f756a9df1efecb84969ee6ea54c4396b258a6c3a0024ba9f35c40a20d6dc","ffac4c19ba39265a1a531d6c39cde22a61bdeb341a36e8052e02e5b5e3a03a72","e968f8addc433d7b99419d129ebb8951bba54036f4243595b2746461aac0f8d6","871ef44217188a02dcaca4a6261b68b8048d4046404550d2cf85e1cee8d6aabf","6bc9724ce0395b00019fbda1e224eb3c7970833b6fc954c74b602e8287357609","d466d5ad1cf392df80be565a08cb8eb032b0d26d60775135d7b750d0c653eb92","dfa525ed03c05ef3755fbd15f854a1829e1dd7f54c5cc8b33335920f9374e147","6cb45d2f5fee97c3b81cb4463d9fd6573fd26c9dbc1acaf216448adbe4641bdc","d2c08adb442f34b3acfaf470c1a574c8425185109f769161af77917988229351","48ba2576b9a81e4d917489c0ea51475fa566832856b818bd987ee1fe376c5b36","43e620786d33266f1524d000b95761eea66fb8d1369b46bc897619ffb52900e1","71179061bc5ec1f34879a9556c42b78ca458efdc8f7049aa5f4f04031fb748bf","6159441b091730713a08da2ec3ffef77961d74f33653b47c1cdd345c9e5df0ac","15aa476dba5b5c5dddf01bb42c1a00042827ad124e7335939272c5432af9130a","c7d445467bf31edcbb93c65a93337c59082bb090f9cf0bc584e8406dda2ccee3",{"version":"cccb0781e1df51e6803f749d88281cd2fcfc0040cfb24d3c853dbd79f5f7f877","signature":"8cd3535a8c897cceb3d8b026a147027e5949483f7927ff5b9ef630f01f96cf61"},{"version":"a01e2c03e4a9465363824fc7edd424a9779530e62974a760aabdd89f4d21364a","signature":"e5546f73d5f63dfc3439fb1e3cc1a9dbfff9111d105b2510b4f57788e32b5f66"},{"version":"b5bb953c151a912a73c339e9ecd0ca6c374c9eced4a8c1dfc127af0dd242a0c6","signature":"ef4c1ab8b24cadba835135b878ca75a8269065a1d6efb59ba8aa5bbd1e79e6f2"},{"version":"b54e22b89557d44a42008fe2d344df7bbcf62ae4ddff235cbc6f9ed18c18f49b","signature":"5998c6b6d6dfe6b2513131da5d703c2e2149b699e7c3b7d8d42a86e5563ff718"},"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","95bf7c19205d7a4c92f1699dae58e217bb18f324276dfe06b1c2e312c7c75cf2",{"version":"eae7ef0ccccb6c79e46f37868fec40625968e0c9bcc0323b60f68eb5ff99c4bc","signature":"9e8d5f8df73741b2d16dcb2611f38232e22ac7ab9d32c0905ba5e2386c3f644c"},{"version":"0f7e111e7d19a109c8a322a987176cb456f0ff2b3c7b3e6c488d6a4a7df6a8b5","signature":"7c91ffdf4490bed094fb8484fff7ac1ff9507e8b98879c52fb6e97b68350a3fd"},"1f08081560ffff42fa8fbf93512bbdbb48daa972bb470160c5aa1e70b6e5cad1","cf33a73341a1ac425771ad21448536887b0766c52688b3b8880824062b55ffcb","c271193e426325d9acab2f99997bb9f5f2dff850ec8c7c011c5abafe5af83b5f","00eda7b31c83baec0afea49ea84982f6a14091d52db87e219c221213b9f60ce4","fbde1b68cc281b4d91284f2be6e965116264f57d9bf4c074fd21d9773c352eea","1671553cde6aee905130a5d6b531adba507aee9cae989b7bd407e7510ed9a9dd","ef12b77e485c288728d0172867694e18e16e7124c50820826de3a3117865d96f","aed3920c7fca8a390064dc82a0e7207005d674d6c03f1ce43294276e54603449","9d1f6666aa8e1ca994a19c6760735ab03872d23ec4f8c668de3fd194879dfaf6","19f37ce6d21f2cb072f0b5a997acb400c00feaff72acd5315d0a71f3ee773818","058772f7bb1b6c7601247edb2398842c7e634395fa322dd69b493ec58b6941e0","f4318993c12dfd01aa4489a824d5b776a346dd69312738547aff3b1ca80e60be","929f0c2feb8ba489c345d8f42345fb1ad5d578135c61383cacb9681e8c983ac0","2fda382d99c2efd6db3864e4dd55f07d213638779a1be0b6b62c7b63868bdd32","3e0ec2b4588c9745ecc5ee17d56e3265b7841bf2d869543839785ce37d242084","989e6f5eb9f9fed9a52ca783b1cce317f3161f6e409701951d26195f383158b0","106bb06ad49ae763b3bc41d65429896505a217eb46c864ca9aebab7f655a345e","99429da1f687b0ef4e2b7cc73f90e6c62ca370352b34a83ab4f186d820cff47e","b95c4315fc4d202f947ed27ff9f25329c9044d1a843766fb4bf56daef8268b0f","cae832b1acc0fa3a313863f57f77f24c4c088f95a843f58d2cc29e72c98ba161","b0208f7b0a306797976902220f64357c5e42e774cfbfc8bee4f933b464d4d291","c609258ac40eee43cb8a2fbcf157ff2b5ca1111592ed037752e52763b6ee25ac","fdf151ff9f11ff6aa810cb7924ebd6defc32d6f6d9282b0a1eb0c646198560d8","ee17020fce10208344af208ade8bf0b3d436005bf240c7773478f9dc2bd9eeaa",{"version":"94c8e07b00226350217896ac4c1c36e47e7c7f8049b8306cebf783f7753135c1","signature":"1c870dde88f3070530cccacd333f55d6574e5cc2dd2e7b77fa138ce649109dd8"},"6825eb4d1c8beb77e9ed6681c830326a15ebf52b171f83ffbca1b1574c90a3b0","1741975791f9be7f803a826457273094096e8bba7a50f8fa960d5ed2328cdbcc","6ec0d1c15d14d63d08ccb10d09d839bf8a724f6b4b9ed134a3ab5042c54a7721","5abf015d82b51253cc27cc443df05dd666676b81a83e182e8898890e6a1c74c7","ddfc215bfbddf5854d80ab8fb0256bd802f2a8acb6be62f9e630041266d56cd5","2c3bcb8a4ea2fcb4208a06672af7540dd65bf08298d742f041ffa6cbe487cf80","1cce0460d75645fc40044c729da9a16c2e0dabe11a58b5e4bfd62ac840a1835d","c784a9f75a6f27cf8c43cc9a12c66d68d3beb2e7376e1babfae5ae4998ffbc4a","feb4c51948d875fdbbaa402dad77ee40cf1752b179574094b613d8ad98921ce1","a6d3984b706cefe5f4a83c1d3f0918ff603475a2a3afa9d247e4114f18b1f1ef","b457d606cabde6ea3b0bc32c23dc0de1c84bb5cb06d9e101f7076440fc244727","9d59919309a2d462b249abdefba8ca36b06e8e480a77b36c0d657f83a63af465","9faa2661daa32d2369ec31e583df91fd556f74bcbd036dab54184303dee4f311","b08de5693ec0119e033ced692f3ad0c0449c7331fd1d84033ea9b4b22e7f269c",{"version":"a4b0deccdf8103edfefb7987631aa8eaeabb7af96b3fde33983558c6239c4331","signature":"cf144465dd976b4af8e8e53a749f7f6226206b0df8b03e1233b68aa492cd16bb"},{"version":"2db65ddae38c47df392b1836072358227121595455cfafe2f686483c1c681c50","signature":"a995d7e3f34c835799ff0c112688d3cb46dc8c663f71e238b8c807b4d42d2f72"},{"version":"6c769a8e3b3fd3cb14eb969935476237ce1d6f4164706dda09cf83a422d6c0f0","signature":"8ed5902a64d4070d4a917ab8ec0dfa285b801db9c46c62f6de518c0d6b544b24"},{"version":"8dc3e550904d8a0ff5f3a1fc2a4e9df8e7a7f126505a094c447374468929f717","signature":"5de4bba7fad84c5bc88e954f2f94ad297f4b2a0531eb93896b014932e3ae1b69"},{"version":"e5006590fb0648caf81b9370947edf48f440022c6784b699980c4fe4a49b31d3","signature":"6ac13bff6992530a2c1576a31851afc3c818376692419617f71ee72afc640f12"},{"version":"b35c7f53eb12043a1f6b0b66af1e68965d803b0d117c698bb29f16ea8877b9bb","signature":"e33dab6c0295dd68c39d90846d2ccf4e8b88874fb2eeb9037499b9e1a8b34195"},{"version":"fd31c29ce620bd8099193098afa810c0a441dd620bcd6259f0dec550d3139bea","signature":"6536c5c5cd9bdde96e841d11b49f23e3d9cb920a5c92252c8c8525053e05352e"},{"version":"956c9a82b7671898bac2c21f36f34c077200d54cbf1c3401734a7494d03bce95","signature":"c8c701734bc9a1c44e5b503ec47d06aa8e7b472356ee1d4a18a4e0639ede83fa"},{"version":"d76949b29b0888080ad7c4dadc472e15357cff07bea6b55767b11f587b08aaad","signature":"7df9e77101e58b3a919127c58e21d21df301c84702e6e4cff6ec4e6d3a895e00"},{"version":"366c01397da04d92574c5379928be85f7ec4cedc431bae470e348afa13b285a2","signature":"d12b67ade00146b8f2f5a2b48957d96485b066a792714134129239f5da35e1e6"},{"version":"7aa0add74cb0b3648729b5e2f53442726a6a5c5dcb2d3407bd6bc79fbb2a85a4","signature":"3e5c7570f15eaa60f2c13302df3a1d05bb7d1003033366e58000ee2636c5846d"},{"version":"09e4a2284049411377c9f6fe04fcb1d1766dbec5eeb7719a5120a827eab0168e","signature":"5d332da84e319ee9153172b1c1f8149225ee12aa7f46e5030029b2ca14053717"},{"version":"adec73d00e0be1bed204b869d44e20b976eb1a533816322cf359510de70cec71","signature":"018cc56b2ee7da1a7aaa190fbf35929a58627f1b1c0f538d5df09a79dee45b41"},{"version":"e9a2534806b0f412d7e05f59f533d8ab3600227fae4e28ba0efe0cb43ad25a39","signature":"109e42bdd23608a5d98532fd739681664cbb91253e4b224d752011a1df81998b"},{"version":"8e4fd209ab33b1e93ad070db6c5599d9697cf4785d3df6c159c6f8dfdb34c447","signature":"f1773e9a0668c5f4e53da8a14850113bb5647803fd086caaf05c8742416a7774"},{"version":"2fa97c634c9b55b1b8713f05b14189d8130fff383b4923eed2076f3d22dceb2d","signature":"11bce87c1bfa79c40fae1f622ac1abb2847251cabcd37783f01edd10c6597259"},{"version":"245cadc545488506fee1651459d185dc04d4900b4e32ef4c7a7edb449efc1a78","signature":"ec288b0b5963e1009b10a2b8daefcf05b2f84c0ebdaab53380b45f3dd43ea24a"},{"version":"8340c2a83d4671bc6e2e167ca501066f4145ec2b1335512eaa4913e623cdac40","signature":"4cac446c5d8795d0934beec9ab51d256882d0306a12512bfcc43d0d49b7b0407"},"ff81bffa4ecfceae2e86b5920c3fcb250b66b1d6ed72944dffdf58123be2481b","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","a95b6a9a7d04b26f054eadae6ebc0cc52bdabbc1c3e0d9db994a82cc90bd0019","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd",{"version":"81775ce07b8c1b9c489cab54f60cbd9876f028709c5dcec44cec0d6fbb91fb7f","signature":"0ac47359a8410ef862c449cc4cc336e1910b2dcb48eedbad106043ed2b289e3f"},{"version":"ce773c698760a77417e722ba1f642233673a369185e7851498c50d5dd1c89be5","signature":"41d624266560ecc10150b81e69426e6714a56891a403b94a611fb89e541061bd"},{"version":"0d50dd582b11b4e040ce409f44d799b1a00002b0d8bb45ad5a7afacd00cf3a68","signature":"9e8b701e3e73a12e7df73d79d7d7c55ce7aa5fb29f3fa9e77594254567909e5d"},{"version":"cb32504b41f618ace8794d1c8b279a80a8168e2f82faf83b62208c536eb629f0","signature":"3f10858027145767f6dd5c06b78e9704f023cef38b56137a182947ad639f968e"},{"version":"1c06c6f1581b61a43456d1c6683af8e2889be91c57a976056ebcb357cdc319c4","signature":"b1eabc77e2cabe682c89021a3b523dba1eb11b11db48b5e33f3a527f557b5dab"},{"version":"2c5f974805a27eb3b0bc91addf331a54c147910932f891f4c3a9c391e4a312c9","signature":"c88fcb55766a2cda8a88ef306867e9d965179d01af036418e53e46066e4b6caa"},"18b47d2b019adf661fa363a2fc7a63b5bff55406a689e7e312934f8d57c41065","dfa6bb848807bc5e01e84214d4ec13ee8ffe5e1142546dcbb32065783a5db468","2f1ffc29f9ba7b005c0c48e6389536a245837264c99041669e0b768cfab6711d","e0ec9121996450da52ed36b694b198b0e40fc8531bcddb7c0296a158ff65ab94",{"version":"8f4bffe271f964f84eee6905c3a41e5727f189eaf0e57bdeab16ac1c90a7b79a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8d0580de9abae8de07ed22c20512e449d6b8a08e7c3f5401b24cfd6d6a1a9327","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0d49cff1cd2af7303db24a999fc54545507c278a6c2e503fd2fc06ad9c1bd57f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d436bd5f2e2180c63c98ee1ceb58a743bf5be51158265f9cf10be6acdc33b056","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4bfff8c0c1f15afc9fe84eb91b8306a00f8f8ec8019cca65e5648b6fb753c214","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"53ee9e2f371cbeda75e085f4e2161f877e4f02f35d55a0328524dec677257743","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ee9851e917093cefc23be1efe222896542d7734afb9fcf2d1e9da769d1c8e68e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"80890dd6317d71e6a6ae034bb1a5f9b2ffdaeae73dbdee772bd678ebc036ff09","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9beba6367dece054345dc51714917628078a2cbd5d89bfd5739c2ba7b1b13f59","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"40076eeb867ee004695c0b8cc84b0ad4cf5617fce8b46afa85659310264947f8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a04e84b5ca1a2a7636f32e2d36527a7f79398ee080cb46b5023c62c2ffee3f68","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b107c39f285f9c6f81772110deeabaff4fc1aa5744d8909b5dd5afc0eb7d3dea","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"df0597c82e1e1f6831536a406d6237b1788de2a64d2b56794015935378373793","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b0dc00139cdacb776e5d7188d868e668bcea8b4ea9322de1ebe3472a756842a7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5a511965dac4dd4e738fc03a65276b28ae16c5ba38291676abe0d551e509bc8a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"719ef49fb9f8fae8c58f86d48c68be5ab9d440c1f54198eacf99634a8d417dd0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"48615b7a0c6bc7915d95a1258585fbaf5c1a95dd7a8f5c568095d9bb4b21fa1c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"59ef45cb131a6f35db637c9d43a595299325cae531e9fd8d7a9a400de2201dc4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a859ed6478cc5ebba9b177fa083ccfb5a6b5eb677ddd87298f34f934b905e864","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cd1c25b93053ef5c611acbd311649f04656722d0fed6096fbb078c0fb8622522","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"32402be6aa5a178ad812c746e46112d8e8363274fa95085c9dfba1352ce651c9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9063bd95bf4fe06fe71b4f1abd4dce7d41b684d9036ff4afae6e079eb252b19e","27b903e14e6ff25eb33591314e5da1951a66c21fd16e03ea00ed711542c24d73",{"version":"03b11bce9475049cc317ccf9a8c141f2bc00718542243b43b34834ba78ce50d6","signature":"02732a2f8733519537861711fe17df50c0711f6444f275e9426f997fd79ba624"},{"version":"ad797d1d09b153e953903cf3438b15037a6b7bd299dc208faaea703f29872640","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"47f7bd15aedaba6636e00d606579076d634e0eaaf3c52d989d65ad77e6bd7237","signature":"5dafff06d2f93f9b9d30b62a4cd57f7bc2c4ec757780633198981a4da686014c"},{"version":"f9821ab396d2df715debfb1cead0a07c04ef61774f4bd3e6273c396843002c3a","signature":"ceb7ef81d4d9e3fc8e0aa9ea16857ddb1e66f061cba800ffa71b584cd407b7ea"},{"version":"c2a0257ff2a00b337b3ba6da4145fc6b26d697e0f598708a4aee782c2e53638e","signature":"c8dcb8c3a8f302edc272e475810452414a164d252173bf3c2ce6e9ea989dee07"},{"version":"510f2884c56c5ed78ab3ee3d9e7835286fa6b8a2a427f90eb83e4a1ab95571c5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"2d526d2a2d6dfd1980fb6eaf7aa668c24d339e27b41cac2a72efc75abe301b35",{"version":"f9d47b88e7e0be0e540c584cf45943e064d5a6b1e2d2e1ad5210d692a8fad4c8","signature":"62b2d47a7e588466abb351f9310ecd6db40037fae351aac5532a8748767bf82a"},"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","9970ef80d5414c25679f4be4feffcc51375c54b520df496a0871a7c89e3b65e5",{"version":"0fca478853f3fc4310e40ebff727a53da7ec677938f4e3e0d5ecaa62e936a199","signature":"512960c0e955a2324b34354dac25e3e4d431a1af4cd33077935eda5e95c8b7e1"},{"version":"b90e3af69e1d4037e99d0d01d314df8e7e5ed5ff1373dfddf17f6545ca77dbc7","signature":"582bf70f4259517f23d1c6c1266380396ac7f6a28c3b56b8a9a0e042c4764e3d"},"2df62cd6db7d86f765cfc05606bbd27b38ed7bae502b5c4d927996bcf3638d64","68905e740c4a9bffea5db6e94844e8382c10dd80c6ead293777362cf5be13ab3","3cdb177961fb94186556e597bff3e8682c51437d46b1bc91debd30ccef1b8ab0","fbaadcf99eada5544a154d572fc149e62e83eb5251f7becd25438c2f3387d38c","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","17f0ae35f62a9586cade6c10e5a0d61362257b8e03e661c49ca417e4f3da857d","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"a45c25e77c911c1f2a04cade78f6f42b4d7d896a3882d4e226efd3a3fcd5f2c4","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","0e13570a7e86c6d83dd92e81758a930f63747483e2cd34ef36fcdb47d1f9726a","104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","5c45abf1e13e4463eacfd5dedda06855da8748a6a6cb3334f582b52e219acc04","0a5091c4038633fcf0752f7a5d8812695013c6e5901e3e7563b2ded6345136cf","0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29","cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","98817124fd6c4f60e0b935978c207309459fb71ab112cf514f26f333bf30830e","a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","196c960b12253fde69b204aa4fbf69470b26daf7a430855d7f94107a16495ab0","fb760b3dded1fadb56c3dde1992b6068bb64d65c4d60d65dc93659f5f44ccddf","bf24f6d35f7318e246010ffe9924395893c4e96d34324cde77151a73f078b9ad","596ccf4070268c4f5a8c459d762d8a934fa9b9317c7bf7a953e921bc9d78ce3c","10595c7ff5094dd5b6a959ccb1c00e6a06441b4e10a87bc09c15f23755d34439","9620c1ff645afb4a9ab4044c85c26676f0a93e8c0e4b593aea03a89ccb47b6d0","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","08ed0b3f0166787f84a6606f80aa3b1388c7518d78912571b203817406e471da","47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","9a1a0dc84fecc111e83281743f003e1ae9048e0f83c2ae2028d17bc58fd93cc7","f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","e8da637cbd6ed1cf6c36e9424f6bcee4515ca2c677534d4006cbd9a05f930f0c","ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","fc3e1c87b39e5ba1142f27ec089d1966da168c04a859a4f6aab64dceae162c2b","3867ca0e9757cc41e04248574f4f07b8f9e3c0c2a796a5eb091c65bfd2fc8bdb","61888522cec948102eba94d831c873200aa97d00d8989fdfd2a3e0ee75ec65a2","4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","59bf32919de37809e101acffc120596a9e45fdbab1a99de5087f31fdc36e2f11","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","3df3abb3e7c1a74ab419f95500a998b55dd9bc985e295de96ff315dd94c7446f","c40c848daad198266370c1c72a7a8c3d18d2f50727c7859fcfefd3ff69a7f288","ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","973b59a17aaa817eb205baf6c132b83475a5c0a44e8294a472af7793b1817e89","ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","8dba67056cbb27628e9b9a1cba8e57036d359dceded0725c72a3abe4b6c79cd4","70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","5cbd32af037805215112472e35773bad9d4e03f0e72b1129a0d0c12d9cd63cc7","ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","afcb759e8e3ad6549d5798820697002bc07bdd039899fad0bf522e7e8a9f5866","f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027",{"version":"566e5fb812082f8cf929c6727d40924843246cf19ee4e8b9437a6315c4792b03","affectsGlobalScope":true},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true},"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369",{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true},"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b",{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true},"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","68a06fb972b2c7e671bf090dc5a5328d22ba07d771376c3d9acd9e7ed786a9db","ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","d729408dfde75b451530bcae944cf89ee8277e2a9df04d1f62f2abfd8b03c1e1","e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","78244a2a8ab1080e0dd8fc3633c204c9a4be61611d19912f4b157f7ef7367049","e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","73636e5e138db738b0e1e00c17bcd688c45eead3798d0d585e0bd9ff98262ebe","43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","31fb49ef3aa3d76f0beb644984e01eab0ea222372ea9b49bb6533be5722d756c","33cd131e1461157e3e06b06916b5176e7a8ec3fce15a5cfe145e56de744e07d2","889ef863f90f4917221703781d9723278db4122d75596b01c429f7c363562b86","3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","d11308de5a36c7015bb73adb5ad1c1bdaac2baede4cc831a05cf85efa3cc7f2f","8c9f19c480c747b6d8067c53fcc3cef641619029afb0a903672daed3f5acaed2",{"version":"f9812cfc220ecf7557183379531fa409acd249b9e5b9a145d0d52b76c20862de","affectsGlobalScope":true},"7b068371563d0396a065ed64b049cffeb4eed89ad433ae7730fc31fb1e00ebf3","2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","913ddbba170240070bd5921b8f33ea780021bdf42fbdfcd4fcb2691b1884ddde","74c105214ddd747037d2a75da6588ec8aa1882f914e1f8a312c528f86feca2b9","5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","4d85f80132e24d9a5b5c5e0734e4ecd6878d8c657cc990ecc70845ef384ca96f","438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","cf185cc4a9a6d397f416dd28cca95c227b29f0f27b160060a95c0e5e36cda865","0086f3e4ad898fd7ca56bb223098acfacf3fa065595182aaf0f6c4a6a95e6fbd","efaa078e392f9abda3ee8ade3f3762ab77f9c50b184e6883063a911742a4c96a","54a8bb487e1dc04591a280e7a673cdfb272c83f61e28d8a64cf1ac2e63c35c51","021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","84124384abae2f6f66b7fbfc03862d0c2c0b71b826f7dbf42c8085d31f1d3f95","63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","3a6ed8e1d630cfa1f7edf0dc46a6e20ca6c714dbe754409699008571dfe473a6","512fc15cca3a35b8dbbf6e23fe9d07e6f87ad03c895acffd3087ce09f352aad0","9a0946d15a005832e432ea0cd4da71b57797efb25b755cc07f32274296d62355","a52ff6c0a149e9f370372fc3c715d7f2beee1f3bab7980e271a7ab7d313ec677","fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","59c68235df3905989afa0399381c1198313aaaf1ed387f57937eb616625dff15","b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","c99a3a5f2215d5b9d735aa04cec6e61ed079d8c0263248e298ffe4604d4d0624","49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","b98ce74c2bc49a9b79408f049c49909190c747b0462e78f91c09618da86bae53","3ecfccf916fea7c6c34394413b55eb70e817a73e39b4417d6573e523784e3f8e","c05bc82af01e673afc99bdffd4ebafde22ab027d63e45be9e1f1db3bc39e2fc0","6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","14e5cdec6f8ae82dfd0694e64903a0a54abdfe37e1d966de3d4128362acbf35f","bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","4e06330a84dec7287f7ebdd64978f41a9f70a668d3b5edc69d5d4a50b9b376bb","65bfa72967fbe9fc33353e1ac03f0480aa2e2ea346d61ff3ea997dfd850f641a","8f88c6be9803fe5aaa80b00b27f230c824d4b8a33856b865bea5793cb52bb797","f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","872caaa31423f4345983d643e4649fb30f548e9883a334d6d1c5fff68ede22d4","94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","09dfc64fcd6a2785867f2368419859a6cc5a8d4e73cbe2538f205b1642eb0f51","bcf6f0a323653e72199105a9316d91463ad4744c546d1271310818b8cef7c608","01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","351475f9c874c62f9b45b1f0dc7e2704e80dfd5f1af83a3a9f841f9dfe5b2912","ac457ad39e531b7649e7b40ee5847606eac64e236efd76c5d12db95bf4eacd17","187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","95b444b8c311f2084f0fb51c616163f950fb2e35f4eaa07878f313a2d36c98a4","741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","f8acecec1114f11690956e007d920044799aefeb3cece9e7f4b1f8a1d542b2c9","131b1475d2045f20fb9f43b7aa6b7cb51f25250b5e4c6a1d4aa3cf4dd1a68793","3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","e1437c5f191edb7a494f7bbbc033b97d72d42e054d521402ee194ac5b6b7bf49",{"version":"04d3aad777b6af5bd000bfc409907a159fe77e190b9d368da4ba649cdc28d39e","affectsGlobalScope":true},"fd1b9d883b9446f1e1da1e1033a6a98995c25fbf3c10818a78960e2f2917d10c","bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","3b0b1d352b8d2e47f1c4df4fb0678702aee071155b12ef0185fce9eb4fa4af1e","77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","a344403e7a7384e0e7093942533d309194ad0a53eca2a3100c0b0ab4d3932773","b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","e9b6fc05f536dfddcdc65dbcf04e09391b1c968ab967382e48924f5cb90d88e1","a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","8b140b398a6afbd17cc97c38aea5274b2f7f39b1ae5b62952cfe65bf493e3e75","7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","30112425b2cf042fca1c79c19e35f88f44bfb2e97454527528cd639dd1a460ca","00bd6ebe607246b45296aa2b805bd6a58c859acecda154bfa91f5334d7c175c6","ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","504f37ba38bfea8394ec4f397c9a2ade7c78055e41ef5a600073b515c4fd0fc9","cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","87ac2fb61e629e777f4d161dff534c2023ee15afd9cb3b1589b9b1f014e75c58","13c8b4348db91e2f7d694adc17e7438e6776bc506d5c8f5de9ad9989707fa3fe","3c1051617aa50b38e9efaabce25e10a5dd9b1f42e372ef0e8a674076a68742ed","07a3e20cdcb0f1182f452c0410606711fbea922ca76929a41aacb01104bc0d27","1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","4cd4b6b1279e9d744a3825cbd7757bbefe7f0708f3f1069179ad535f19e8ed2c","5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16",{"version":"d23df9ff06ae8bf1dcb7cc933e97ae7da418ac77749fecee758bb43a8d69f840","affectsGlobalScope":true},{"version":"040c71dde2c406f869ad2f41e8d4ce579cc60c8dbe5aa0dd8962ac943b846572","affectsGlobalScope":true},"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","16c3040d4fd0cecc9dcb374bb2bcd82a6d8cb1f58e9f809c841451531ecf9ed7","27689e1ae231387543d9372d92243d6e0d678ac6112c11bbd4732b6b4bbdfcfb","06a2fb452bf3071139a99d56616f9f8f4217eedfd7be66c8f0b1a56b8675804b","27d77cd1f7d96b719fbba2bc46f6d5baccd14bfa974121d47e1e4b820229150a","631f28ae883193b0b4346137514297ba60960003c1519d4c2ab0552bee890c8b","246f371a5a4f3c788ff530a2871e47f34cda7ae77dc512632aff299691d0e011","b11bd87a2bedcf1f5be9d4a9167083e4bdab0cfcaf7a2c991c959d9f52648eae","deb0cdcfb70ddefa06780b72cdd9bcfe1b089dd9efcbb8da31f33d8e1c2cbf87","fa97f27c7dc5b94ea154fc499a5a38f07ee1c9b79543cf18e0be76d14144d3d3","ddc81128d65a33a631e2dfa11cdfbd5ae133e6434d7095aec600c5e04e679660","379c592960a39230cdd6afd42d8c1b4cce28d421411b3650925de8ec889fff9f","68b4de21e23ffa6419783ceb850e2a89c7344b51eadeac33fa10af715e74ca35","19fd0c50483b7a07352c27936d5acc1f10713bfb130e016c5e7d3ba63f767b0a","375d3cd0d83fcc560aa8d68629dc6e4a22ca5741b0c6c5ba790fa412c8b664d7","c013453a93e4e690899fdcc156f9dde3ee62850d90ceba36810a730594e60ea4","9a688e0d3ec242978c7ed36c63fda6f0a540b07c5d704187e956eeac44094f8b","b5f73800a12c124537c3306378d5b755fc517b5ebd718e7e2126266edd8fbf4a","8736b9df81beb7e71c34b7548d705340afb9b48a7fc8dfb08d9e482a47225f19","bbf4d26026f5daec0d052efac93fc8a11fe4005c3ab27d109e12c3f8068094ec","594d0a64ff28e0a86bf80e3caa920d63e34a5b3d7dd1e1043ff3b0bf6db2106c","803bb18d947369fb55e72944fb095251b01bdabb5792087b4a995e90df9bee70","be46cfebb99aeba540ee3e2c98b5096f95185f3bf95c78ae66ce6969e8b5ce7b","fcea37d4da54ce2003ef3d287593743d797de193b4069b595e982144ff22b12d","1974d9cd45125039b651dfa8bcb9689e8c1d4d8a7dc20db710a27fe0d497fe6f","3b29f7d21bd6a07aea9adc06ee9612d3d86fa03663e3364b4d2c067c7f547e5e","01545f0274a774e191f06380ddedaec2b2dfbd021ca2e8775f7819959beb2cb4","6c557db1095e0588b7d82d9bdd9e4328872d436a94f2025da271d5ef57845309","2827790fc4a5c48d032a79a8d547eca0620d7fc7c997b830417f6de5b04c7c3d","7bba3bab37aa81a0b9628c26b43c38bfae8316e3e54a9a0572c2eaa7b20518c7",{"version":"1d903500f5acb2be7f8d0ec22f4ffc81984006c74f1a1df505ae3c8c21be04af","signature":"bc735af465ed20d43478b1851805067da3d2bebfbc564c8bdd3c9ddd5069f704"},{"version":"aceede1800e76e77f004cd4e2494ba7f24f51d86146ed911572a69866bb95107","signature":"b7c452e06e27df3885fa524da90d2fb3132e64badceba2e95be40e0f55fc8731"},{"version":"dd862e48882470e373ad9fb8bf7a642404aa0bc95b2889e48684f786271dbc24","signature":"4b82c0c19cbc8541f168e5456068d55691aa947ac703ebe85ace7df03b54dc4d"},"08a2733f7670773f41282b616afbb33ae480968ce136edbc736cfbca7097e469","1a8d643f73d0ab632af081ee95a7b7a49c6f8154037f604fbdcf9317b8e18c35","e86adb3db01d162278c2ed9d887c83d1c11e1d14b0f755e10f1c475c067cb6c9","f0a4166eaa7a9b3930e8b6297fb59dca815136ee87ac82551ae2137e9f8baaa0","471486ab7c5c95c3df63c0fbebe6871b9535eedff8b582557dfd66fcbf946d5b","b88645280562793af76ab59052d87e4846ac5ef19af054c729fbb87c73481a59","049038afce4500c0b511f2ceb355331ee30f542dbd63af4094d18902503f212c","e8a5beb73e49b5a4899f12b21fa436f4088f5c6b22ed3e6718fcdf526539d851","911484710eb1feaf615cb68eb5875cbfb8edab2a032f0e4fe5a7f8b17e3a997c","4b16f3af68c203b4518ce37421fbb64d8e52f3b454796cd62157cfca503b1e08","4fc05cd35f313ea6bc2cd52bfd0d3d1a79c894aeaeffd7c285153cb7d243f19b","29994a97447d10d003957bcc0c9355c272d8cf0f97143eb1ade331676e860945","6865b4ef724cb739f8f1511295f7ce77c52c67ff4af27e07b61471d81de8ecfc","9cddf06f2bc6753a8628670a737754b5c7e93e2cfe982a300a0b43cf98a7d032","3f8e68bd94e82fe4362553aa03030fcf94c381716ce3599d242535b0d9953e49","63e628515ec7017458620e1624c594c9bd76382f606890c8eebf2532bcab3b7c","355d5e2ba58012bc059e347a70aa8b72d18d82f0c3491e9660adaf852648f032","0c543e751bbd130170ed4efdeca5ff681d06a99f70b5d6fe7defad449d08023d","c301dded041994ed4899a7cf08d1d6261a94788da88a4318c1c2338512431a03","192be331d8be6eed03af9b0ee83c21e043c7ca122f111282b1b1bdb98f2a7535","ded3d0fb8ac3980ae7edcc723cc2ad35da1798d52cceff51c92abe320432ceeb","fbb60baf8c207f19aa1131365e57e1c7974a4f7434c1f8d12e13508961fb20ec","452d67b896868069454f53a1b5148ee2b996a58da646016f7b62cf327ad007d0","ed849d616865076f44a41c87f27698f7cdf230290c44bafc71d7c2bc6919b202","9a0a0af04065ddfecc29d2b090659fce57f46f64c7a04a9ba63835ef2b2d0efa","10297d22a9209a718b9883a384db19249b206a0897e95f2b9afeed3144601cb0","8e335bc47365e92f689795a283c77b4b8d4d9c42c5d607d1327f88c876e4e85d","34d206f6ba993e601dade2791944bdf742ab0f7a8caccc661106c87438f4f904","05ca49cc7ba9111f6c816ecfadb9305fffeb579840961ee8286cc89749f06ebd","de3bb4929c00af89b4daff6ba71c5d36ce64e0c425ff205ac965b457565558db","2477e58a1b6081ef7aff37a0a323bd229ed8d6c7b9bf703116d574da6b18dc9b","7c918b537a6fc019229f11d0cf468bbb5022a534555b5ab3f1610b675a6ee680","6c24f6dcbb3bf8235bf8da995a7290ffbd9d557a760cf2deb380ce91a989b765","5a89b3de42c34736efa392129c6f8ef51dd8f7d893c5d95ec8d6cd3cbbc96bb1","5707a9252bb2ff486bff16fd97163df29fcb64c9c841ed7f5e5ba63bfe7c5220","682dbe95ec15117b96b297998e93e552aaf6aaa2c61d5c80a3967e1342365dcf","80a2e8b944862002640d74c589595ccfacda80f9cb1228a54567b3fa9e445d5d","15b142d522e96e1962bd54c75560f6994cc8fe9a1640a36de2268fdb95e58fb5","827eb54656695635a6e25543f711f0fe86d1083e5e1c0e84f394ffc122bd3ad7","2309cee540edc190aa607149b673b437cb8807f4e8d921bf7f5a50e6aa8d609c","5557bfa604cabb62cea16399660a57a095e468e9b2826b5cb01f6e7edd2aa038","48f7cd72c6f8ec5b2f70f50a8d4e6f47494e0d228015efb50c36fc6eab33c7ff","87f6005fea388478a175e8438f826d6efd4d1d0e0a61aa6e8d41bb1ce7c2f1d6","9cbc2b03d47d6e06f42cbad35e256d2e91ed86eec5fcd6bc1acb762953d0767b","5caa9c6c5fae89f648fe0a0009e8efc1c6092b8ade5d0399bac63a42a4fe2d96","f73b290cdc8b7ab84481bafcda8c019c494164934810a701e91ab5acd2674e6c","a0c23202fadc6c545e7bc0f0858c7234b5c14c8f8e82c0e5f9f171b910287f0f","74cc7c90f12536690850b7b309f4e216e9a10285517852b1d7de9dba21d22471","2cca2c2c97f0b38de79eb7bbd81bf0cfe957639b0b674e2154b0cda2a896ce65","9f2de3cbe4fd0a83cb3652b44acbf32f95ec3c70ca69844f77a71ef2203b8d6a","206f926c99c5b974a642080cc852e57a755e637964abd5a4123e93c8d7b6dc11","01fc8936d43f51c4c1e3c531805accd389edb0d873a822000c4b2a411d9ba6e7","397b46c6a95826d26714b5481addc606de72d8229b092e236f0d78a9e7226d29","bca49ca4673e7865583f42dc504f8608248582de9840a236613896b5a56c8b4b","617891438559a97ae02a795d529a25acf128744cf1e150ab6b70a2db38600abb","225deff02f4d1c91e2d6c71dec9f18feae510aa729a9774024f30278f4c6b8fe","624b9fe6138de1e6f8fcbd06d98bddbe38a3767b679a695803897e9e2a7e3681","9b74326515d17f03809cfbea6de789772ff7d0c759a08a59bfa5242bda98d35b","0ea47413eaffe144782a44058205c31130b382dee0e2f66b62b5188eac57039e","c0591738dbfe11a36959f16ab40bc98b2a430c4565770ef6257574546079d791","ffcdcd060f8d05f2c3938a4614f25726f44f79ecb50fac3fc899bc9bff2a4063","146257261b95682128002b2055d0f0077d01809eeb6f3694d6c7dbc616bc4496","fced7c59acecb0ac631505fcbc5a1ce0c6420e2494a256321e9359093efb7a1f","b5798555e348fdc5e3427816fff514b01467271422106897139aecacc96eee04","6be7582419e857ad16786aae4e80663bc20df0ab160808672b64b2c59aacf9e6","cf23a14c2a9261bea877a35a1b001351a03ec90a348b297c4798705da0baf6fe","73e11ca2ca1f58f97a282076971c21e626916ad78c794e06c6a82e7b812661a9","a293184a13ec1d83203b4251e2348a083ab906667b3e5ee087a7994ed077d167","8b57d478b1dae3775124dbe1cbc05a9a333dfeb06b53300b035468262613140a","1707105775978d102d4a76c324692ca13fdfced1a8e2631086ee8115cb827a3c","16b7189c1babe51147ef7f4eb24f2b4db2c588b27f6783f96df92ee1600306fc","13ecb31795209aa56b1837b9d46cc5494da392f594132bc5b3a56c067e12ea1c","bda0aeeb1c3bcd8b7f4ea304a61e3d70ac260154899c28db36a56768390890d8","f6db45222aef0e34592a12f4fce71d39c1abbaef77a43853fea33418a041fd84","3464d73b21f7094ed85e15871f38f3568eb20bda4e88dd2e86b02e3d86cc1f25","816c7bd2beadf637f2c4177107bad640ec7b0a96b01e8dd52102cae923e84915","79259c8ec4c52fdd5014a0d7eb576bf2bb7b338ca41303083e252ef0cd9128cc","648438afda6f32af65e48490c719a3c37faf5497ec935caa03ab447d64696d20","18c8894331eaeea43870cab6dde83e47eac1575c6c9af8f08332057f47369f7d","0e6387b87925a10ba52cd0de685a4f7e2d9dd402dbac560dce8934e8e34007d0","96af9bbf2234b5dfd392a9af187d35e362db77da926ef701ee43dfb7b7fc65ed","805b9fa2a34090f046cb7c31a4624b9c7a7208e7498fc8b0f91019ac187a6a94","fed59e10bfc0468ed911d273dafb6bcb4f9878dbc64bdd3a9f73e76ec97d517b","d2ea5492735fb536a7f3043655928d7e30661b96f5e4077a5c8ce48317e81ecf","1aa51606deffefde466391a837cef1a814db3a016ed38006035d5dbe533567cc","d0f62192ec787f1592a5b86760a44350d1c925883a573eadc12d60862890dffe","c5545fb6129aebe2b76dcd9b22439e7de4fd6840f1ef9a399c598150f013a283","bdb97e10ebd6d8bef3bd7b2399c976c9035ae5bf9f038a5b4bd7219e4d1acdbd","1413b324972c795019b54a9cc76b8ac2de07b8ebf2da5080adee65ff12f08f57",{"version":"8a5e276ff9afc5f1370f25304b156ece3e3c370bc898844667b0eb9d7afb8551","signature":"8e1deee9e042b1d26ad82582f5caca46c16769520c02cf2805b8fe970bb53b27"},{"version":"d74ed5a5ac57ebacde0c76223fef7df9f487809d5ed096585bb43ffc64e32c2f","signature":"49f8d61565a0c513c38dcfc144b6ec0c90487b0d3f9fc8cca7a7bd6bfb1d8611"},{"version":"92fda76dc6e6c0d48a76752ec6b960423de461d233b5d9a8e90b624d161bf87d","signature":"6d227647e8d7460f767c95ae6c8c2919165bec88a15adcbe8f2e6902641d835e"},"c1fcfdebf5123e21a6f12e9639e1a81f79f6e4a15a61917e38db7cdd72bd1dda",{"version":"1880339bce808b14df762e4147b162bc7606a875ac8f1cb14bdeb8fa7d723fbd","signature":"0ab6e50cd9896fc782970d889d29b8080ab31cfc8a15858584046f02b714ca37"},{"version":"5686912f314311e8967db069c03d4067b6cbe961b1872507b90ee304c7b3c3d0","signature":"a5ce5546ca703d3d296c5e3aac5703f2784c7d5262de0fbd8cd88a7fb32830e0"},{"version":"62645e7466efd50075a4e2373945cd3e3c248c723dfbcc8df5bd359847a20bb1","signature":"57c8a0f6a4d8a0d0f5b8ee5ffccd178b37aa82d944b9bf7a4c727a94424eecdb"},{"version":"9e9de90768e300189aebe4d8e9f8d05e02914e970360bcce80bb18095a3ab001","signature":"7cda50fe5967344a50df78bd319b4c05aebc4705361836510a405bbc7cdc78c5"},{"version":"6d22430e29f2b7d5147f6b9c5b51de235e37260571799b34b1b8a7a7ec5d262c","signature":"25ee55bf2d3438fbb43849c466949571e82577fa149c2e866b234bfe8b539e3c"},{"version":"540132cd99984ea4f1cb0bf7672070deedcc7cd1a901239b9d85a4a72df7a7ea","signature":"42f8ff73848f7142d57ef9e4bee146e0b3b6caea565e3c6f7b4bd5ceaa01148a"},{"version":"ea571635911d8dabc9f9e9504ef9c2acf1038bc05af22c38169ed3b24a889cef","signature":"d1375b4bc5738ffd653a777fcee59655b470e0b2e189a3483c8e6c56f8fa3696"},{"version":"fd428181f17f6a2cb3152632cafb8fa0da40696aa5003a22ce27d25b69c1b2cd","signature":"c872389c0cba010a4945b3fd1421f772e2d62db7840af1890f0ba4b9941db259"},{"version":"6711b6172c240b0884209eea10e09a74f2cc5fbd6835d384df498571af82f117","signature":"66a5a8c0420f9ca05112c0b84db24ed669e7257c37e8e28d31d8d8bdadbc6ad7"},"c55ae709f94155174ff63647edd2a7e3acbd02a2909aa2541569e8b8bac9fc40","530e5c7e4f74267b7800f1702cf0c576282296a960acbdb2960389b2b1d0875b","1c483cc60a58a0d4c9a068bdaa8d95933263e6017fbea33c9f99790cf870f0a8","07863eea4f350458f803714350e43947f7f73d1d67a9ddf747017065d36b073a","d5f1bbd44ba4f63d8a01fff5e1edc1c1fb50e9caa48a4fa48298a4485d6ff75c","4d2b263907b8c03c5b2df90e6c1f166e9da85bd87bf439683f150afc91fce7e7","c70e38e0f30b7c0542af9aa7e0324a23dd2b0c1a64e078296653d1d3b36fa248","d12680e217215b37094868d491d00196e80f270ce47e5a4bc50269945ae5554d","396c2c14fa408707235d761a965bd84ce3d4fc3117c3b9f1404d6987d98a30d6","b7b881ced4ed4dee13d6e0ccdb2296f66663ba6b1419767271090b3ff3478bb9","06289b9873760aac77aed4035ea6c60b1e0879b8afe47a4530bc8522b9b804b1","63c36aa73242aa745fae813c40585111ead225394b0a0ba985c2683baa6b0ef9","3e7ffc7dd797e5d44d387d0892bc288480493e73dcab9832812907d1389e4a98","db011ec9589fd51995cbd0765673838e38e6485a6559163cc53dcf508b480909","e1a4253f0cca15c14516f52a2ad36c3520b140b5dfb3b3880a368cd75d45d6d9","159af954f2633a12fdee68605009e7e5b150dbeb6d70c46672fd41059c154d53","a1b36a1f91a54daf2e89e12b834fa41fb7338bc044d1f08a80817efc93c99ee5","8bb4a5b632dd5a868f3271750895cb61b0e20cff82032d87e89288faee8dd6e2","0c1aabfd9fb1818afb2e798f91f669edafce59cd7e3423d25b1cfccfaaf2c403","017de6fdabea79015d493bf71e56cbbff092525253c1d76003b3d58280cd82a0","ab9ea2596cb7800bd79d1526930c785606ec4f439c275adbca5adc1ddf87747d","aee8faa433dde04beedb779b3329456a286a966462d666c138c19113ce78c79e","d620ec36bfc6f8ed6fdecbe036d55cec81637f32fd34dc7bb7e60eba1764e910","4e693235d606287d6b5a4e7d572f190862b93ea4a28df8a63fc328aa8becdc9d","e58d1ea2fc84c9c03742b4f56449b7d4602c8c4deb4f0e57c619bab35bbbbf81","d82bc1f8fe8eef55aa741373da68b80a8503228c9aa0ec46bdd38fd7e0c02a18","d7c7f8a461326507d90d0888efff0c4011a5e69eb08ccb990232aa22334e4dd6","5af5ebe8c9b84f667cd047cfcf1942d53e3b369dbd63fbea2a189bbf381146c6","27deb39ac0921db739b503407dc9aa93a546b015c06738bc8b66bdf0ae593c7c","eff5b8bdfe94c0a174484a6de01e802fb66f99f8737a20e4fba4df05c2f24cea","52fa3a4f47e30ef266dbda3b69821fe5811be4faad2b266586090d8b4806342e","5cb6f9ea4a097094fe624c3513111292690e39e83167a412f8912807be71ca65","fa461c83b2adc6b33997a95335d19723bddd4d7aaff41cac6f9f817e3c3ae730","d9eed4a308aeb32babee0600d21c3a3ba8452c89e8a4916e5460b45da147c33c","fc9bdd9b3d8fb59c913cb3b8dea0d79b38dfe9331ef07e1c6dc6bf363f061ad6","e647d13de80e1b6b4e1d94363ea6f5f8f77dfb95d562748b488a7248af25aabf","0c3c4ce6a1884610c99306719f59174d81808c69393c30119f9c2aef0449a2cb","219a25474e58a8161b242776856ec5f6960839b63e74809445e51cadbfc18096","5a0d1534e9493ae44b08b3055172da38370e2afd2bc3d4bea11f7be78344036f","6309a45fc3c03d3c4d56228e995d51974f53009a842374695b34f3607877e5a3","bef94eba81ae2c09059c0d9abdb1ae1b7090314f70550f3c8cd5d7ead4a4f212","48b787ad458be9b524fa5fdfef34f68798074132d4b8cfe6a6fe9c2bf334c532","37280465f8f9b2ea21d490979952b18b7f4d1f0d8fab2d627618fb2cfa1828e3","7281550c523596fd0fd36c6e19aa89075dac93144437ce48490da319b1f4d318","3f3f85dc43cb93c5a797f1ff0fa948d0e17843a443ae11a20cc032ccdf1b9997","020507cb67b96b0830a8636db03ae004181eee323ba33565cfe8d45aaedc4d1d","869010bc679df668137cb3b78a3cb8196e97acf285208a57f6156ceac894a2f7","bcae62618c23047e36d373f0feac5b13f09689e4cd08e788af13271dbe73a139","29a99d2e57b3e08a997cbc2397bdb251441a545306a74b95ffedc5f03d9bc6b7","5ae003688265a1547bbcb344bf0e26cb994149ac2c032756718e9039302dfac8","09e811cc1088d9ea3a7ddd7290f6a13767f56c85daf8c3374a06a45a08d55647","9da2c58a27fdce871c2eac09d5172b04248bb86ada9b0d10e8b3dfa8470b8dd3","5c317403752871838140f70879b09509e37422e92e7364b4363c7b179310ee44","7b270dc53f35dd0b44bfa619ad4d351fffd512e14053c3688323ed007eda3f6d","6d4e928f232ade7221cffc6e4332ec935baa176415c9bf5d12111bb883a247d2","e86ad029224d4f2af3e188be8b5e9badf8c7083247572069bac7bd2193131fc7","057cac07c7bc5abdcfba44325fcea4906dff7919a3d7d82d4ec40f8b4c90cf2f","38aa389acf91d77db5a4f8e26e713ed53dc832ed5573def9cd20acd9ba97c1fe","e56784be93954f1f86d4dd3ac61b4c9727e75864baf123a1b584b970baed4ba0","f878779620c5178d45413b33c214419bb3df2945e703c35e1191188321e3633d","b9115605f72b65a662723020b2a1eb696c375a5803d6b401dc01fcbfe49ece90","151659e152d71986b8943b9943cd7fbe27a65874655081602de7ea24a0f66e9b","7639642137f8329ef4a19410ce8d3e46910a76294df263f46b428fd61c79d033","abf39cc833e3f8dfa67b4c8b906ac8d8305cf1050caed6c68b69b4b88f3f6321","dbbe2af77238c9c899b5369eca17bc950e4b010fa00bc2d340b21fa1714b8d54","c73d2f60d717b051a01b24cb97736e717d76863e7891eca4951e9f7f3bf6a0e6","2b79620ef917502a3035062a2fd0e247d21a22fef2b2677a2398b1546c93fb64","a54f60678f44415d01a810ca27244e04b4dde3d9b6d9492874262f1a95e56c7d","84058607d19ac1fdef225a04832d7480478808c094cbaedbceda150fa87c7e25","415d60633cf542e700dc0d6d5d320b31052efbdc519fcd8b6b30a1f992ef6d5c","901c640dced9243875645e850705362cb0a9a7f2eea1a82bb95ed53d162f38dd","ebb0d92294fe20f62a07925ce590a93012d6323a6c77ddce92b7743fa1e9dd20","b499f398b4405b9f073b99ad853e47a6394ae6e1b7397c5d2f19c23a4081f213","ef2cbb05dee40c0167de4e459b9da523844707ab4b3b32e40090c649ad5616e9","068a22b89ecc0bed7182e79724a3d4d3d05daacfe3b6e6d3fd2fa3d063d94f44","3f2009badf85a479d3659a735e40607d9f00f23606a0626ae28db3da90b8bf52","fd80c03dca7c1c9b56d6845c3b94c67bf082b72e7e0108a2dfd2c0dec03fb53f","d32b5a3d39b581f0330bd05a5ef577173bd1d51166a7fff43b633f0cc8020071","3f6af667357384c1f582ef006906ba36668dd87abe832f4497fffb315c160be9","363dd28f6a218239fbd45bbcc37202ad6a9a40b533b3e208e030137fa8037b03","c6986e90cf95cf639f7f55d8ca49c7aaf0d561d47e6d70ab6879e40f73518c8d","2f1a8ca9846d9ac5481544b5b53811efe2c44bba9195af584136fb34371d5e23","1518707348d7bd6154e30d49487ba92d47b6bd9a32d320cd8e602b59700b5317","ede55f9bac348427d5b32a45ad7a24cc6297354289076d50c68f1692add61bce","d53a7e00791305f0bd04ea6e4d7ea9850ccc3538877f070f55308b3222f0a793","4ea5b45c6693288bb66b2007041a950a9d2fe765e376738377ba445950e927f6","7f25e826bfabe77a159a5fec52af069c13378d0a09d2712c6373ff904ba55d4b","ea2de1a0ec4c9b8828154a971bfe38c47df2f5e9ec511f1a66adce665b9f04b0","c30b346ad7f4df2f7659f5b3aff4c5c490a1f4654e31c44c839292c930199649","48f1a1b9f15770d9a64b51c596f9569f262fc7e67d7767595068a69539d32939","a83a104129a183f71c203f3a680486abe808895917c4c8380b312161e17b84db","64269ed536e2647e12239481e8287509f9ee029cbb11169793796519cc37ecd4","c06fd8688dd064796b41170733bba3dcacfaf7e711045859364f4f778263fc7b","b0a8bf71fea54a788588c181c0bffbdd2c49904075a7c9cb8c98a3106ad6aa6d","434c5a40f2d5defeede46ae03fb07ed8b8c1d65e10412abd700291b24953c578","c5a6184688526f9cf53e3c9f216beb2123165bfa1ffcbfc7b1c3a925d031abf7",{"version":"cd548f9fcd3cebe99b5ba91ae0ec61c3eae50bed9bc3cfd29d42dcfc201b68b5","affectsGlobalScope":true},"14a8ec10f9faf6e0baff58391578250a51e19d2e14abcc6fc239edb0fb4df7c5","81b0cf8cd66ae6736fd5496c5bbb9e19759713e29c9ed414b00350bd13d89d70","4992afbc8b2cb81e0053d989514a87d1e6c68cc7dedfe71f4b6e1ba35e29b77a","f15480150f26caaccf7680a61c410a07bd4c765eedc6cbdca71f7bca1c241c32","1c390420d6e444195fd814cb9dc2d9ca65e86eb2df9c1e14ff328098e1dc48ae","ec8b45e83323be47c740f3b573760a6f444964d19bbe20d34e3bca4b0304b3ad","ab8b86168ceb965a16e6fc39989b601c0857e1fd3fd63ff8289230163b114171","f7a8f4bc1e8e786c6115970b8f3ed4797be48108de00b3552bf590706d3a5e8a","02c7b5e50ac8fb827c9cdcd22e3e57e8ebd513f0670d065349bef3b417f706f8","9a197c04325f5ffb91b81d0dca917a656d29542b7c54c6a8092362bad4181397","e6c3141ae9d177716b7dd4eee5571eb76d926144b4a7349d74808f7ff7a3dee0","d8d48515af22cb861a2ac9474879b9302b618f2ed0f90645f0e007328f2dbb90","e9ad7a5fecd647e72338a98b348540ea20639dee4ea27846cbe57c744f78ec2d","ea79429065d627a2e62e1c38df916a6d399d63301dc6f91dd0d05a7493c63b71","7634eca84d60522b68ac679813fd9247a4260f7412890e924c7779758f8d6391","b4ff74f0589487410168be50e3231caf687c5e1302266709742382e8d004fe1e","406f227eebfe8be216d7a4b215ed09198b0c2f6599f2273b69ee5b75824c5435","a67d719563c9919592cc1acaa197b35deb92cc20801d33ba75214dd33988c49e","4f4dcc8af3798205431971473b0e6808e5415f5c3963d8aabc094808e0223880","8a90f97fdb10d83c6842a699c3df474246755f4fbf3ee2d35e69d6599fe9092c","88aacf6e2493633490812c70595b517c8e4299f054d28a51687b10f0968276c3","0a3351a5b3c74e9b822ade0e87a866bc7c010c1618bcde4243641817883fb8df","b9c6fc6c7b1296dd405f5dbd91ea1ae9f110de4cfab772c80c77d73fe33b2887","c0c0b22cefd1896b92d805556fcabda18720d24981b8cb74e08ffea1f73f96c2","b97e6411a3ee83e6f77760f0400d117313a980d05ec89f1e1a7502229e36d060","270418f8a6639be745d14bfd085e62685f24eaa6d6482aa9803bae8b8b93919a","4cb33d05ff168c1ca836d6d438f93040972af43fc09774876c4add2ad96d125f","707d01e4e7d69c672cbf82276bcdb6dd584b67da29e07fe5cba8c645ef4398ef","38104b9a37d0b9dc54be36ae43b1a32f9cfae34742743bfd7104cf1f39661225","47ff32ca9ab8474e89615b4bbe5f2264c2940fc12b86c4dc0a99659479517a6b","f892f85b4838f6a2ff1438d240dcf23a872d090794967c7f817a82ea8da1ad8e","cb498c53a9d35ac1cf9a3515f3835d48b4626a612cf7540c5bfb99542c9ab1a5","b86e64c48044bb73c6de7aa2cdf9295b2c104221e6a68b408225b283d1bcfda2","16173f5b3e68a373e7dfe6d00948549facc9947c9dbde813f1efe3a0f236ff6a","f457fc1b7583e1215393db13b95a186593660aad29706515ab7479869bc585e0","a11288edc8161f664148ea7d56101517e380335f5fa1a94408db86efce025bba","fe8a3e5492c807cc5cfc8dda4e6464aff0f991dc54db09be5d620fb4968ba101","03742d13572a69af40e24e742f3c40e58dc817aa51776477cf2757ee106c6c89","ac6aebe678266203b86e28cd86341373fd5bbddd199ffd86272d0426de5dea2a","58cb3ae5516391a8d681844ff66344336c81c17ce501c124ebff929e722f042a","8a53e9020c0291e2ccd936cc59ecd58d51c689c090ae574deecf91ef5542af07","900e1f24cd6ae2df9506f5b2de80a4f0411ef7a96c11a2c567c716e311a687e2","a797a41988e5ba36b6707939953b0c0395ed92b91c1189359d384ca66e8fa0ab","640811635cc168a85b92bae89396e1b7486a5840ec17f60c24dd9035718dbe5d","b7b053daaf3c19f6b66de2c6b0c839cc7780691c5cf736101ccb64ddfd9c4f99","f5d16e51c887c9bb9360c29e2816da99a2209111f7eb2433a3b7c1c0980c0d3e","8e69efd9afdfcd34d85adb6d8e71a5e13fea2a33c7019dd624cc7696772183a0","a7ebfe3e2c8f4fea5dac7ffbf6d00acee63c530de24d57cdeeed05530285ca26","82b4045609dc0918319f835de4f6cb6a931fd729602292921c443a732a6bb811","0fd70ca1eaef1e2dd6f48f16886df4838664821d992fd8076d07fc15e83c8498","ba30e6d2f1d20c707566cf485167331a10c539802a79040ced055b62a7aae53e","642eae3e9ec5997883f86dd7346d818f07d40fb83cc3530f0e52e232ffb4e631","29a6df727893a86807f4dc02116c31d9e6097139579ed6e8029b14c526cba027","537a2b61594512c5e75fad7e29d25c23922e27e5a1506eb4fce74fe858472a6e","311ca94091f3db783c0874128808d0f93ab5d7be82abc20ceb74afe275315d4a","7c07838da165fd43759a54d2d490461315e977f9f37c046e0e357623c657fc42","b311d973a0028d6bc19dfbaae891ad3f7c5057684eb105cfbeec992ab71fbc13","115c8691bd8fac390f6f6eef5b356543d716da7cffa4c2f70f288d56c5b06aeb","e91516e66f9fbf39c978a4092c16ffda3bb0b32158fca6def75aae9fab358153","abd4563a6a7668fa6f8f5e5a425a0900b80fc2309fec5186e2cae67f3ce92663","cb48f3011e72efef9d5a5b312f4a956f699b8d423bf9f2772724cdded496bd50","9aed07904079877252e6c0aedf1d2cf1935ed91d4abc16f726c76b61ea453919","6621af294bd4af8f3f9dd9bd99bd83ed8d2facd16faa6690a5b02d305abd98ab","5eada4495ab95470990b51f467c78d47aecfccc42365df4b1e7e88a2952af1a3","5fc0957ee8e15821ddb30a76e74e7984953fc35611a57fd703e624bade5836b9","40e9c2028b34c6c1e3281818d062f7008705254ee992d9857d051c603391e0f4","236247fb33a56e1d43b097c000aaafcac8fea1e8bf38d1a64f13889b32c372d0","c7d30b164562b7ce99fcb53ab78f937cc845e003f6089d648351331921379994","fe2d1251f167d801a27f0dfb4e2c14f4f08bf2214d9784a1b8c310fdfdcdaaea","2a1182578228dc1faad14627859042d59ea5ab7e3ac69cb2a3453329aaaa3b83","dfa99386b9a1c1803eb20df3f6d3adc9e44effc84fa7c2ab6537ed1cb5cc8cfb","79b0d5635af72fb87a2a4b62334b0ab996ff7a1a14cfdb895702e74051917718","5f00b052713bfe8e9405df03a1bbe406006b30ec6b0c2ce57d207e70b48cf4e9","7abcae770f21794b5ffbc3186483c3dbcf8b0c8e37d3ef3ed6277ece5c5dd4be","4720efe0341867600b139bca9a8fa7858b56b3a13a4a665bd98c77052ca64ea4","566fc645642572ec1ae3981e3c0a7dc976636976bd7a1d09740c23e8521496e5","66182e2432a30468eb5e2225063c391262b6a6732928bbc8ee794642b041dd87","11792ab82e35e82f93690040fd634689cad71e98ab56e0e31c3758662fc85736","3957b1244f49991b89f12cc45942c24f9c5927dc72677b105bb896d316f0454e","6c53c05df974ece61aca769df915345dc6d5b7649a01dc715b7da1809ce00a77","18c505381728b8cc6ea6986728403c1969f0d81216ed04163a867780af89f839","d121a48de03095d7dd5cd09d39e1a1c4892b520dad4c1d9c339c5d5008cfb536","f6d55e607f55be35a3c481b7685461a9acc1e27b893839218eb9313f7e85278c","b394ea95c82281d184ea83e8511bd1a43f78d6908eb34b536446d3eb08f9d47f","41edf4071b119fdf28b46a3c28c0845f2598bb8b196e7e4c9e01415403fdaea5","2bdf3bcf1a9771a288a783d1e8ee5d1d3126c11ddde26ae44864ab432192a6f6","603bafdacee4c8850ef5820f8642a817a3f0db6f76dda0474bcf3d17c2e15398","a10c79ab97c8a4f6074203094dba87bc736ca574ec480be1df6ec2c82d774573","801f049a9e74e941e8ca8add60492aaf4ab717a166248d355ded5753d80f9a85","70bba0a9c9c2ad7a042e134a840c4d8462bf0ad98e41c50ca52725ae47265eb9","f4dc28fbbba727722cb1fd82f51a7b9540fbe410ed04ddf35cab191d6aa2ba10","79cbed8c779049fdbdd856f1597f2e79be137b6ed44e66ead16ee8bf035d17da","1a8e6a4f31a5196144f35d0434e16369881d828c849d6a1c9290b6bde8807449","42a9ac86df0fa58634ea8a5f7f07b9b9c3243d82e306fb22d8a41639935a6c87","5766c26941ae00aa889335bcccc1ecb28271b774be92aede801354c9797074bb","3a19286bcc9303c9352c03d68bb4b63cecbf5c9b7848465847bb6c9ceafa1484","c573fef34c2e5cc5269fd9c95fe73a1eb9db17142f5d8f36ffe4a686378b8660","d97e30dd93590392fed422f2b27325d10ab007d034faaaf61e28e9ddc9d3825b","d1f8a829c5e90734bb47a1d1941b8819aeee6e81a2a772c3c0f70b30e3693fa9","be1dfacee25a14d79724ba21f1fde67f966b46e2128c68fed2e48c6e1e9822c5","19b3d0c212d241c237f79009b4cd0051e54971747fd89dc70a74f874d1192534","4d250e905299144850c6f8e74dad1ee892d847643bacf637e89adcce013f0700","5fca180ba7514e439b225ee5eb47e5cf9254a591095f93cf7ca298ce6264159b","ed3e176bc769725ebc1d93f1d6890fc3d977b9155ae5d03be96ec2d49b303370","7933769d84f5ae16546aef06537ca578f1c8d7cca0708452a00613050ac1f265","cc5c913c4716a0d1563b2a63a7c4dc2fa81b7d7bc58489c79896d69b27e978cd","f194cdeb1caaf80e625f4fad340a9434b2b83786028dcc5ea6f3c459cc7789a0","f8ce447bbda4f75da74cecd866cc1ff9bdde62189ac9d8dc14a16c48b3d702fa","3e642f39da9ad0a4cd16ccbd7f363b6b5ad5fa16a5c6d44753f98fc1e3be9d96","7f5a6eac3d3d334e2f2eba41f659e9618c06361958762869055e22219f341554","6f996f44113b76a9960d3fad280f4f671115c5e971356d1dbb4d1b000af8b3b3","67f2cd6e208e68fdfa366967d1949575df6ccf90c104fc9747b3f1bdb69ad55a","f99ab9dffe6281c9b6df9ae9d8584d18eabf2107572bbd8fa5c83c8afe531af8","4fc9939c86a7d80ab6a361264e5666336d37e080a00d831d9358ad83575267da","f4ba385eedea4d7be1feeeac05aaa05d6741d931251a85ab48e0610271d001ce","fc79932b9aa710f025b89bf8d8329d99080286e5e079a7d5a529236e9f5dd69e","6646d9075e3e0eedb02c9d03bffef54c8bbeb601d27eed46f143aba435bac37d","0dec72b4c5c4bb149750fef4fc26bdae8f410de941ee766c953f5ac77381d690","8f2644578a3273f43fd700803b89b842d2cd09c1fba2421db45737357e50f5b1","f5405fb679a467cb979f8744940b22b7bc3a0bcbe648c3910d98de3188d42a78","68969a0efd9030866f60c027aedbd600f66ea09e1c9290853cc24c2dcc92000f","639f94fe145a72ce520d3d7b9b3b6c9049624d90cbf85cff46fb47fb28d1d8fe","8327a51d574987a2b0f61ea40df4adddf959f67bc48c303d4b33d47ba3be114a","991fd5ebf9f30ffa17cae6faeae6a838d3d91bdcdd419bce358dc99b8e5b0ad0","51b4ab145645785c8ced29238192f870dbb98f1968a7c7ef2580cd40663b2940","589713fefe7282fd008a2672c5fbacc4a94f31138bae6a03db2c7b5453dc8788","786691c952fe3feac79aca8f0e7e580d95c19afc8a4c6f8765e99fb756d8d9d7","4c348f139d006057ce9384e60b4ee1ce06bee5c16e19ff70f293ad88d5893386","e9d33b2549b5779b6cad92cb6a370c6c106cc12dc80da1cc199e2cb3a715bf38","62b753ed351fba7e0f6b57103529ce90f2e11b949b8fc69c39464fe958535c25","21e1fa3e5c95c61161a1ea2d819972e3b7e916a58571f8f9828b8a6c32e641ea","29d6b0932784703797dc9cda8703b3bfc12299b07be0b7bc17be1dc4f06f56a8","dd581e87c4f03c3c628126a51e461984e7cb19019d35b7026fccdee68c0fbd4c","9a55b6afa88cbfb8766dd2020a6258f378d9a164926e1411cffc96bddd47c57c","9e887d4e6efc4f8e8bbee058c42c46191973794511a5c028b30d46de25afacff","3b37c7aa85a3cfebe54bf5f779f5839f0c34bdee4407f5f88cfa2c36331b618d","51487cf680180193fcc5148fc31c9bb572dbbd754541223b28f070a29e1c67ce","b296252cb34d7bcdac40468e526b98d4873bf6afb3d7ba27f9f63f2f3ab31d8c","b0f62d56971828772e17dd4091e2fb4483182a5887be936727b9e1192b8e23c8","bab7004c9e76cde39576afe774d9599ceb189cf4aba76d7c31b6b0c11cc379ba","32960d556ad88c12ba8837da0f8968b8295b383b07629ebadc978be2cf6d45de","1bb877951f998aa0a8f5291ac31cd7a90a557e0dc6133773b19e4dc69917d94b","d7158ee0df0d7c66c88e6edd8e82242c8e88b0e630063e773b0b1cc9b8291515","1a66d0cdbfc502b8ca6ad0fe0101f6e3eb336fdae1f6e3ff6f7b2cd013dc1ccf","a801c8bd1ec80d3cfae4056e2ebdd9b0cdd1d876de53d2e136282ee52c585268","2661e75f60945f6e1c8247677d361b081786dd2116faa90658c202d698ff6b6b","0d78e8ac953a72736df9cb5020bfa1d9fbee676b9f82b39af8ca50b6dfdd605f","8e5766565ca042a0b5d2ce3fb62eda9d6be33bd885c1069bf734b676de51b59e","eaa3de962d2eeca387aac2fbcb4731b303601e3699cf30b640182b0f0e6e00a3","dde2de1225403763a1597deaf3d014bc945532b76ef9facfd0e85b22ea9f7359","9020632f332dd46e091efe05c85488854dca9752c67bba4da27c1b7508e0ce28","a6f67c945668334d5e0ff4c5cc0bb04f80552f0671883b42c19d57c3cd53cb1b","ce7a678b18202ce4fc7155574bc1b978f431e95a888e7523020c1238a16f074a","146ad3e17ec2db67f6b6b490df9f93f4ddb66e17b20123f6b9ead5bef5165e2c","7d35cd30d36167f2f223abb2b1f77829705972e212bd2df6d030e86533ae9611","f5eb2d9b30ddfbd83d5655188863f59505780bbfe369d240e7ee96be1b307838","0dfdc5a3be838b7c8fd874e4b7c9a371ffa494b08b61c57654abb6b1294af7a0","102bc8ecc516ae93d47702e3211a938c8aadebc075c1cacd49fa6bcab5955eb0","b510f27a7d7ff90dda7f89dd89e608fd56c9e7b3b44ab7c4313deb5f75c6009c","9719e7fb534d8a10a19382804e70cc9c3173eec3c689f634ce6b43a082fe4841","b92f6bc9d34628d1c635f6a2c726a467aa7f3a3486e5b573982210a7e8894b6d","af7d61624f1761b22a74830b8222581fabbb075a7eab1a6ce38bdf3499bba780","e9ec669d07a3ea245a708bc4b60b12234490c7e87d4f4823eae0eb143c2218fb","9def35b63ccdf3efa24bbcdb6ae696ad033319a5c6752571bfd2a0ba4c892a1c","996d88248dc7c414b5fe3a1cc57f2fefd3ac24131865478d59a05452b5a7b383","17b48940c940a79aa3ddd2c89073f12d397d338ce3e4bee3e92be3c5003c4ee0","997b3044421cf272a0025c80c09619d8b556922dec090d65048631bf95be6e32","dfba53427f05e9f54675114122931f11f82d4137dcb7e1eca929e5af7abd7c6d","7bdda13bfbf7082cee7b132007b021be8891a5d4f6b984322bf4a7efaf1a1e4e","b578d4b3b7786925bc6e28e8f62faac58e6b94dd1c48fa434d935d8b662fbbb2","a25ec0cd952575b9caa729b193fd6452f1bbfdf9922849a232e67678020166c6","4506f39b86e5db51286e333b3f715a6d3914976d132fb9c880f4412f40152022","8a98d9999875c5c2d3e49bcc85334ef487173f92fb818c01d4fc7140d4a30f41","8df56c9707d02ad1d780457bf2a8806b001f7d3b5f1516da427c15ba89c64b71","74bde951fcb1ef11aa3125b6d045ebc789cb8f01d3a0a39dfc33c7a71bcde61f","7ee62ff56000f8052598d80cfa21c757c101f902b4219318077343b14fa996c8","6f4f273d126a773be37a834297c5612e6382c41ada7288857949ae3761ab8020","0fdf065b9cdd122a11303afacc78d6cb118a010a831e3d781c4c8b48949e7c3e","30b134716318fd19caf1cb9b1d549b027e57a09bc4507ff706d758ffb01fd36f","738267d2b1373a946ba8f2366dbb4aa832fca6a0041a1591494466532d03f702","72c33692db4843d4def8623347c0cd75d957c375ca3eaf29fdd4b9830dd13901","7815f9073e258305d65759b0a86ae166b32a2e76a3d61d9350cb1eb2acb3a8a5","c04e73a174a7b8dc1633274151e9be95c37bfaf45674349a9f46c51f6b539dcf","10b3bf9ec81de142a10eaf3eb60ad31e4f2f652e9eca6b6c2fe8b310b7e2f002","36c61c6d8d18a71ecbd45d27be896a2a9b26bc9b1d668978cc4ae2d43d946a3d","2173c44434378b62bfce1f15001b19b99e68cfafd7a1d14dfc6c9001cc248746","999419c99856ad39ee4c63cd0828e5af3b857e57c04c444abb93a1f006c7fcd2","69f7f8da6694d10bcffbad6f767de7b685187ed4105b0e68eb3fc74b2fe23989","288e40d5cec01801e90821b6346516ac1f4411d5c0d7bd6ec9df2bb25d169a76","35fa88586f650afa8da92f41d31e55f32f917e1ace2befe20dc6b7a38e874fdd","15c3e068cc3cbb989b92a5dbaa4424657ee736eaf21cda620fe8379435ca4d5c","8a359069fde41192bb8f3479d1bd2de7ee0fda857e4ac447b71cd789bb914807","2df416ebead4a0f19c57b4bf8c68c9f383de17a1f163444eaa918b86c81b6518","95e48d55517f7e6c6f4d3a5a27f0bafa100b8362a1359ad061be0e87cacde8e6","52d8f2a51549649f096b470b0da4edab869beb217ce62d4160bb40d129986e18","96155736222d5c58767c454f7ac17b31445e442a601a2871ec1419a689ef48b4","54dc976e4dab1dd4889ac195cdf0be7d3d02743578d5a411ffef955135dd48cc","d5ced02593fff19a9097d30a0494e0c273a9cd14889cf9855f0ee342e93f0fd2","8ed2be62086de51b364a6016520c322ae554c511c16da5643371036538810d61","fdf87600007b666aae3565fa2ba05b4d03039763c99bd57f2fb538d028d6876d","5ebbc33ed83bd0dbdafda06bbe4f23507cbeca3afd94597f8af1eed92bce12ed","8223f1df4f1574605d821fb0a1486c444d30972c8f1ad8c769c057c72f3ebb9e","feead7320f1a221c39a5b797162593559f93aacab1be0386f8adc76dcfda43ae","7fe66196f1af9540173601594a21001288b9f2832fd16c0211861ee2486db33e","072814d38d06d7619227b79c0370e01faa0403d461e7694ccc6182a53da168ab","289778352b66fff8ee82f0d5695ea37c46a08702ac4a378316f11b8c23814415","22a396947afd3ca09370eb29954e8d79497172601c4eb38e712156f3b2bfb4db","57219e8e2fec2ef1efc0ff4bd9b8a0e46ddba3ac54d330af5e313089834f6d21","00ba0832b365c8878628067b565fd1b5a762382c6f1f2e56d33d22771e71dd53","9c59bc6f6b3202b8199bc7e4b406afcbff22c04be7397cd0b18580d19a094880","d23d0c843a59704d5d57a7c316180f012985e51acaed9810ccdb7806ec052a2e","4ff09d11f4ed9bf86dcdd207c29934234ace52f386e2c74a2cffe0a28d848e26","60e06af2df8ed9a4ac04028b95bc9b9dfb22dd3d23fcdd9cb56e4ef8af52d992","b8dd31c2e6b96a17865b9ce8164cf0208ce491dca24ec4c452afd30a43c663cd","5eb081b45861d256de89393281bbdcfa6406f8b3cd442862adb017784ce04cae","920ac5d44c2b12f8445924a6a7d939f3dd37807c8930ac1062729609e2b5b723","9b6e71b320a1126fed4e56704252376ab321606b7312ef3262fdd1d50a23d29e","e9eb2342352df01e4a733477281fed19de4315796ef25e833ee77107d718df27","5526bc89ba82ad2e863e8bc4eaf59b1000e7ef2e8e322c28567038ec780fb190","a033a93ba89ce09b7b53cd2964ccfdd3d8682ce333745447827bc7d45eb074b5","f976a0b41f4583dfbf16f799a44eec275c65ba09a45517882e74c026a4818400","5c930dd03674c460033a3fb52412c722f24cdb617bb68247b3b52b847b1dc38a","ffe11dd68a27e54501631e9c0a2c928c76af1903ca0da139bd9fae97aea6faf9","e42deaa0acc6ed5377bba1d2c4c55fe0aeee406324d7552136fda8ae052b7557","61056c86b7c217979ed1715cfbab74a53227133bf19c780480cc3d89cb2fcdd7","7e59502ad3053cbc2c32aa6964d7f7495d09c54dc2d5775221b9f67fc7119fe0","3f64e978eec45e41fa7e92e0e5c8b743e220d1597e108de0734b4600262d6de7","2abc5ad8c9bd46bbb4f710584ea7b3be1c1a7b1e487a043cfbc82a7b471ebebd","41d2e987bfee815a16268cac2edce5a8eb7df6dc32d354a35245e565db8d3643","8ccf135df1e186a4f4b0c28e84ffc2ae17db2b6684829466915fd540c90c1304","8d6d292273a8b4ba84209ff0ce7e3baac01bf369863801bb473fbf0a07a03176","52b6c07b8f8b1b46bf85c2129e0c4cf233203c199837d4a17e914459d09e986a","a059d8e262daa0281be4735fff2b93674ac85c825594670ec4e6dc6061bd7846","edeb306bd4a052779a29449804ebd08d0bdafa0a88aeb1f22ffdc6f309cf5477","302a5759733d83a2b2107e932016a9066fe19fd859dca7e246abae0897f8727d","615ad07ab7542be91ec72aa0656fd8daed4feac15a2459aaa7c36dfc32f4e37d","31ff5aebab2436465c61de78fcf94b7d6d03915951310e0cfb6dc61b1e3ed751","d2745be767c32464627abc322a88f5076df5802a16a260d7ccf13600ad0a615e","aa73259de07ff85e39d2b49fbd233847690ff8ad4875d0023805d2a015f4ea43","372edd0ab48a9ec438c98694d3fd8b0a832f1f8eca65cb141a87510bcdf5f0b6","8fe96c50cb9cd321092b46c61c21524a3ef437e22591c8168e3bb7492d3edf79","935094dc19b20214f20677d5b871aa34e0e3280e6c852dd57b6a118134a15764","ea99aa2e537966df22f8192e99929ee81719c1cf0b9d9d83d0c6fed53325ccc6","c624b65789f71d3fe13d03b599adbaaf8b17644382f519510097537736df461b","3fbeaff576ce5b8035224fbcb98ec13b7cdd16cdbbf8ee7b4052d3d6330683fb","cc8eac1829ee2ec61323b3af1967790ceb9d0815ef8c40c340bc8090c17a9064","5947f213795a08df7324841661f27341937a5603edcd63fa2d2d66fb11864ec9","2d9f4d58554a246616eeaa090a2fb0dddccf412e88617975138389fb15770ca9","9d5e2347ea0d666f938644fdd4ea2bd48abd70b69e68db435b0e9d82c21debe3","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","359bcfc52454c27b1dfd6f54cba03608ee54d4adad7628b70109329663b3ca47","1707f7a4866728245f4b5d3c510eca32bba08662da7c9e2219685d18f5448f1c","2d55f0b72f108339a087e3c14e4c38d7d0114b26d9c6980bc4f1f06fd59ed748","a7edfb855c27f26f9e5f9a7ef708ca6043bcef8abce6517651b9a36c3e40c78c","f597e2625bbb5632e82825a3baa6b30786966f57faf44dc5f22b54d45886111f","dd9eed76214cbcfb8da442aa3fda00179075b0768a2e4a2afb2bf221560155f4","aa0059d2ba74d5d1d866bf5e1ca2be9bac8d37d55b42c43bab45b098edbe078c","47cae43f99d86ba2cd123a8c39c76835653946a06db817fd065aa7c35385fb2f","10f7ab21cfbb02725dbc5b86df50aa152278392a295852cf034327eea90788d8","ba80c5a1ae3f0ea246c157054bafa88a1505ce178734d04534619c95d8c489e3","d3c1bbc10501bc90551ce29095d6fdae2017fdd1301f8cc65bb0766a6e182e24","8e1f4acccae7990b493f7792b6b17744977967cde84a9318084915b0a421e07b","698fdefc395d5489a08c5a017395fecb05a4beb8a0131a6a23d49234dac01a2b","f8e1ea81302a9789d69bb70abb9cc5813606bc218c76ae8fa87d34a9354d97b3","5ec281441c64b71605d8bd999136f846848eb8096fefe431ee87dae6d0605325","13016d00263146b6e5f26471502ee4d3738612dc7f7cda4d41fb1266221d48bd","e62ececeb15725f9a3a4f066caca79c2f8d746affe8b8c73901030616905f75e","3ddbe6d2048641fa3f9c6b397696b5a528d636895f4a227d721db4c4f9da27ba","5379fd351852ea64aff14eba9af83dc4ce953f1b70a577eab912fac557e5fcf2","621835cd327ca31a497db93394803606aa7efd2a7d1cce60975749356a7f192d","b0daf4cda0423ab57cc9ee5a4186c34789de671dd864cb2c9f87fa3b2329f608","430138b7ca8a3419d1ad232ed5b20b7679f80d6af087801168644c2d9ac8123d","e6cf69b73b6a051f735c33d0e6f8ffc39b48aeb56e9de649b0665c5781ead330","1253a2efa6812c670bd153c2598397b9d68c3f5b2a1cd13a6b54779ca66a1285","75c252f77947708c7c88496fd30718671f2f242ebc2371e62229aa5af3b556db","05bca34ff7f8e57d43a20db3430b0127e714dbb462fc48e59b7b1e6851137fea",{"version":"c946256319a0e459a226429db9a86dcae27f8618c2508f334ef7bd2681660f3d","signature":"3fa84cff53e86cd725f6dac981c2a65cf574e88bd09b78dc86f564b403f51867"},{"version":"cbd33b1a27d5eecb33429ce6e9336a56b1a006240069292916a98948ec78b68e","signature":"d3533c5a9f4a381f5157c31c1e58978d2f113cf216bcecc92c79bbe3005c937b"},{"version":"f684c1a336271886a018413ff2131aa73aac0d9beaf7facc3f78a3aec32bf38e","signature":"06598c7c56c5d9a17e928e157d38f04511bb1de6bd53d6b1f37da63d55fd682f"},{"version":"f61482055ff9c2eda330ec88816899d0e0468e9eb918e98d14053dccc46d0769","signature":"02fbb64d2f76a7ece1c5ab41fc79afaad1a42314a4fd4386a074f0a9211bbc28"},{"version":"60583608a876e788fe4c86d07bf4d0bb79d3a4a60992dda688b71a4572ec0034","signature":"b67589e611ade373f1c7dcc3dd2d2836658414dd78a53540b4d765d841d6ae28"},{"version":"0a3b8f8c304eae20e16909fc9eeb690c3e870933d9cd01cae5fb3973ea92a191","signature":"dd0802a7750bb81e20cb11b21c3a329192892494ce797a3e8ea9f1dadec27154"},{"version":"8f130d7fabe849b0c0c4caae3a4c9e341c3bc8421611ac4e658ca482f5db94be","signature":"488e95499de1f8eb323eaaa77f00820419caefd4035eff538c12531122d28255"},{"version":"30d7fbfd9bb7aa96bc3cae7223527b989e19d1f178b9af541975de23f6313078","signature":"fac3b1176d07c9df18ce5a344896bc8bb08cf559ee9a8ed1ffd78658764f31f2"},{"version":"59c36c9982275a7ffa42cb31ea5135e0c78e8ed937a522c551bbc54cb41ee248","signature":"db7d0ccefd08b4f8563a094fb0b98c40918672d8001cc00c6f30283932ab5dd9"},{"version":"30daecce0fd76054d1029791f24786204125338985557d77c0960f84df16af5b","signature":"624788a8812606b71d24c4e8e0109ce25000f8f9270f55a8a32e8cc29901b6c5"},{"version":"a1f5c86787f3b40f2931b4ad695db14644e9c6c42b25274a1a0757ee89b61020","signature":"e233a2cf8a2a76c9b2d594aa8030685147260fa828118f3724e2741f52044974"},{"version":"1a4744118a1543cdd533983697dcc0fef2219cf692a6de70abcefd6d9f938e03","signature":"32b860538981012c7b7c2ca2e64cae2d21791b4b4db09fa621e7c6ca94866ea0"},{"version":"29a2fde62e5c41b453691106e7ebd9978a76b1e2db73313a10032bfb73f4a9d3","signature":"b116d55208356d87f2b293b813b3f4977d5e7bdf20ae24c7b55d9f8d6818b9e8"},{"version":"0e950b42bad26882119c1e382aa8f7db1195c4e6a0f536db5328baec2a937b1d","signature":"0348ba6acce06c4d6de5f1d4b075bf1fb42a18ac5a5c83158aabaae7902bf2df"},{"version":"096514d1fc4c5a9cef92926b614a81ae43846fe0518b4386cc1ae36a52f0b8f5","signature":"86456e4878678e2411efd526103794395815220354fa2a230f65950b0ce5dea2"},{"version":"e8264af6cdc5d4dd4eeba5b52254f2266381660b70e68bd8a1b5ddc04bb5d8b2","signature":"4dd956e031f461f5176510973c566f8e277a3aae83aa2cd981e176297c1f05f6"},{"version":"d30173ed61e23a46a86473b931cef99ec9f8f8eb64e6919b2b45fe730ba8182e","signature":"0532e3e0838ae5f26083f9a2d53ef15c395095fb0e97c7245fc20f4738e34ce8"},{"version":"ff40d11020e393ba0acb05310073d548151c17da1b072ccfd5ad27becf8b60e7","signature":"31915a6aaeb7d790c53cff7a35eda60b6aea9ae33f47f552bda26531209856ad"},{"version":"6e6f0d9b8a94b58f396c2bed5a62aa46366fb9b8b4025bf648b21906847089de","signature":"044f4be1433aaaf69b3a7f6fbe8e2b26aba7197f1e2a52418c9e3aa64d104242"},{"version":"cea744697da9aa8452daf9c161e5539ac535cd2935f8b08fcb686744e6b1d71d","signature":"72d20fd53f7062281e4afbd430dc1ffd398511fb13b48d4b6dc109d3fb828653"},{"version":"5040a7ed09aea32772efd1f6aae59a48ca443b3b0d52a99d91642fd950470b0a","signature":"321a59596d7683b65beee0fc13a51016efcf0b87cc3f1823e677ebf1924cc64e"},{"version":"c6a266159e0e25f9b69eb4900acffa5d213d32e33db4281c22b79f7539d9a37f","signature":"8f14fd0bdbb5bdbac012dc23628381263b99534eff6202544307e332e58b56c4"},{"version":"5e795623b622ccea8bf8249e3302f148a7a057ced58a61116d823f082c82d66c","signature":"b25f73f662cd8a81111c0c401ceff10f68cc712f74c8c262b0d5e4640c1caba7"},{"version":"e15beef2153566019851964661a3b76333252b36dc55ecfbe3202ab786430b18","signature":"fe7423a99eb1625cb7a11f6246ddab58e6153115c2a431e3035160ad7b04806e"},{"version":"e76df90f44d3c00bef50e664d3fed351e09fa9a64ce04691abc5f59b412f168c","signature":"051bbb7944e087f83cd2132ba3f9f00ae8a0ba606943870359508d9080b85427"},{"version":"a06303d44b23ecda6490bf213ad0dac74ce1fad8ef3a064af204261ba33cfa65","signature":"ab82365a5513c90e7a19704da100025c828323588fc3b9088f1d723bc963fa45"},{"version":"efca1f33393cc949526fc837b3866e80cd2dcdf68cc3235e044f002b7b1bb109","signature":"c0bb344fae68c66318e79b473a50a8a2b848213b465a3da031f891d99fb99827"},{"version":"6245ec7fa007028b0f45048aeb18627a2d831609f6d955ff420d1d8af3381761","signature":"92b8035fc77d68086a322a58c559de2d60dd256244c6395c0c10fd86320a352c"},{"version":"76a8ae74515a4a58c82a383ec6484fa43ce9d75b72c73a6c0b159c000304c366","signature":"57728af90fc060f230b26a73a94f39383f48da02f4897d6ba21a83d186115992"},{"version":"01f2964714a6059971fd350902c0fee9e0753102735c82d75e4056e476bb3fb0","signature":"28ab8a2d3c14602dc56ff4ae0247cb548771266fb36d332ecc194fb1361f4cfa"},{"version":"eb06950b2dfa7e564dc25287ca382521613b2a7fe0c164f6228aa7b63f356383","signature":"2c8cb91841e8d03fd3a6e2fed17d950f3911afbd69b6dea26d702676dcc89b0c"},{"version":"382dbf86a4fcf8bbfe256ac6820ba94a5d28a67bf8c93822b3306b66f5a16949","signature":"b2efb5f491ff16550fb7a990f594937e27f4011b3d1ffefa3f1d82b16990c33a"},{"version":"0fc3253072ff270a5c6ba2b7d27dfe4c611adf8b990524e2017273e60c14ad3c","signature":"d8a947f319a483d8a17e5799efbc3b40d71b3cc0e5d4d174e625f9f1f1995da2"},{"version":"6cb6f0013405ad732dccc709c71fd6ffb3868d3f6100f96c70448c6b92052272","signature":"9533ccae723be328a4dd933974cd690a9f330044a451a78a4c5c9b0ec6c0a0a6"},{"version":"1be09ca3966ce3e79be3e05fb729d5ad690610a8a374964536c1e89f6e8455e4","signature":"8427cdf18daeb29abad4a2d3176c39a635451b801008f9b68f95f6b2fa352588"},{"version":"b5308ba18b5ba92980abd90df346c30361a18f410d0580a33cd6d99aad44443c","signature":"924a76f846296d448327b6db7bc7fc1bf07623e86dc85222a7cb7a0a53a46935"},{"version":"24f53aa807d7d599a98c1f3e7832271c603dcc612ddc33aed854f01d1cb7d6cd","signature":"ed09420be76dd236434ffe04578551aa39b0d01b24a4d3e893c30ad49e721914"},{"version":"47b1b4ab9b18150924d60688936e31ee30176fe13a23dfaf2f0da65dee669ed9","signature":"a487680ec28243d81b84f4fb9069c1d32405dfb078aa26f0469b7f27c8f3d2a7"},{"version":"79603f5fe49064ff3c106e4411bd9815bf350d74b03b15f8b13582fe15fa870f","signature":"5c7137e54889d4d8b354338cc842117aeb53c4823c0892d6802ff2f36f1d6b30"},{"version":"089c1f1b437ac62d5c26f2675f69a2177fd76b37f177b0ce5725406097dd1b52","signature":"6394fe75a87538784aa762165ff83ec9913c0c95dbc72957292e68c8549c05f5"},{"version":"1a81d2ce036eb71fa315fec1d6b79d7d9a5840f088d1c6ff73009eda277f9ce9","signature":"94281d6657d7ceb8c2c63bf2964c8b44e14c56e1e6b08e0e3349764bb4541e19"},{"version":"351c1f6997708a6ef6dc4d836a0e259e31670bb9764d437726f6d9342660117b","signature":"71234a80c19d53d13308929886e62b726f32a551824d125adde426f68aaec83a"},{"version":"9ceb4495149562a256c4c8237c89e0f3222f71c12620204e4b824e4903879820","signature":"7f4f388f197abf5ceb1f9201a6d601a29addf36bd383784a7154f6b385aaa388"},{"version":"aff26edf226578d9711638ad6e82d7b24e646f7cd8986ede5fae05a46de2bf86","signature":"370a6b923ac19f5e85bfc8837b20663b6c6fe5f646883a64295f5b9e1107bdbb"},{"version":"9b20a6ac52e61ecc99451b95de9e0452fbafe5d5cbedc06d76f0537c2dee4cfe","signature":"0ebc6d037cc8fb1ac396927e41b7e11d9e21a21eb53f5c3abbfa5035108ecf9a"},{"version":"d4016a99b7cedaf73bc99b7aa4408d9d221126ba5a6989e207ce33199fb23ae1","signature":"5dfdb753de17960ccd1316305ef3b4919e2299e191a9dd3a94a9d89f621aa8ba"},{"version":"cb0097c3795959046fdccdf9b7d513e414693bdd0f3af15a506285b733ec7eb1","signature":"374bf096229c9f4550fff641389a3565faa216e39dd5772cfb7dc0db181bb506"},{"version":"dd162585c76d01677e315f31dd3ba892d478325aa78a23fc6b0291d39b52e521","signature":"925fef3319e742fbb58ee5f28e4af7d17e3b938b11d3bf9b4e8c3ec27b037e25"},{"version":"6dbe89de6710689adbf9e16d0da33a24671514e06d825551d24680d09a6cdad9","signature":"7afbdbc73b03d1747fd147f1107982b78612359a72e6b20ee59a42572120cc66"},{"version":"aa68ad2c2d39b702dca13cec89c80acb86d4db56daa8934b2916438fb83cb201","signature":"9ebbda5ccfcaf710e094bb869775d1b736ba18bb0f83fe60bbc20f578b6b61fa"},{"version":"b908a619fbaa159c49cd1f797f4d1e5d49bf453508d33e8f8a660a2a6acbd868","signature":"aba4e59c9d47b6bc919e233e4e42ddc93790176a4f6b9e1d93da2570b6715d76"},{"version":"060a76e429a51b0820b51f5b82c49c722086d2c0211a084a108457df4afa9e9e","signature":"1c7f35555384c6d9150d281ec2d547e96595dca58e9da60eda261c90fb3ebd68"},{"version":"b94c2b609c9cbb161e0ad5b1ab9832c01e27ac91dfc9a1fcf04661618e8f6055","signature":"70ea1a15a4dc8779837a32d8b23caf5466386e36fe7a5c3e8c7a399aed28bf27"},{"version":"96b6b95d735794040293ecf2bf5f77c8c3babb51a1c1a5963b2a924c42b834d7","signature":"20a2db555294a65b2465674a8b2c834fb5ba50a084ffc9a06317a8e1a3337852"},{"version":"3087c6d4e0b49fe6e962333a598ef20d21e6e8c867931411f6f0a77ef1ec6232","signature":"acebc9a3eddeccbff5ba2059cd4bcd01b0c326d5e5c0749f4a1991d28ad759e3"},{"version":"12ff77d479cbeb1bea832a3d74194dbb7c7844bd51894e674cf410f9685e183b","signature":"a993f4a20d52853524eb6611de8367d10dd4dcbd9768fbb508fbcb6736a64292"},{"version":"fd398087d6193df487d95577b6e44674a383f5de9f241b39e4f5b1aeaf2e27cf","signature":"819ee5ab3a7940636361a7e24feb43b20522621e170ce1625526aeca3f90f3b4"},{"version":"c0f103936f545c0a2fe84d9233f3b4c98dc1ea0adb32a7eabf4b535003a085bf","signature":"0ea8b7b9a7b54adea4cf4c854befb20fb90395ee93b36497dce36cbc1531661c"},{"version":"89d0c87a924d3c5d0bcd42df5c1fdbf6c56b6b5aabbbb1f34bc79e0b31f12689","signature":"a993f4a20d52853524eb6611de8367d10dd4dcbd9768fbb508fbcb6736a64292"},{"version":"579d9f3ae28fdb59a155f885a9a922220061dad6478a0434303d996374079f9c","signature":"a993f4a20d52853524eb6611de8367d10dd4dcbd9768fbb508fbcb6736a64292"},"9bc88c0bc5cceced789c999da1dcc3d939d6f2d8489671b759c776fd73340dfc",{"version":"8327b163e381488bcb645f77f6598dc6a66a733d2ce452ff7016e936e7e73dbe","signature":"9c4ea4c263fbed8f605437c69e6302475fb9ba3b270c07cdda677e0e8f12af94"},"df1fd9970d3885e5b7aa349a71090b5140f45920c2ef0615f35da084ac06d6a1",{"version":"838bd82c62efcdd0f86d0680d26d40aac405c84009e5a73ccb136f2416464bc0","signature":"170dcb58d733fe69c76945584c507b340739dd7d046f4a3883168c45a6f19f57"},{"version":"74ca15de9cd925b312041a25a2852a56711f556d8c4ff25a6d2eae705f5ba7c5","signature":"6adbee0bbf23a9bf76ebbb06916033f777ab7fec26b3f95525bab3fa83f678cf"},{"version":"8fb534e78d1c2a18a42cc553cb2cd062d48d8707ca5bb269fb2f9511c329bbc5","signature":"0f5c6042bee83b038658a838794d8ad5378b3ec12f84a8f5749209309fc3e92a"},{"version":"d0b3297a21d51e6d245ffb3e61c9a672874b32c3b5dfd60d2eec8fcb9f3e8ff2","signature":"6b8a680f0d2eb8e48735f841684c9b6b7847c04a1efda567e335d89b104aa18a"},{"version":"a786c417ee05d1562398a0bdd7fe0d900a314460534f5673262ed36c582b907c","signature":"f8ff0cf824b42a596ae469fe0b72f7366d94a4e9218db35497310a4f4e6e211c"},{"version":"d6004173ec7a913a9b48a2c4f923901b79b6092f6a0880c5f80349c274230162","signature":"19a49c4b01ff4a5966ca8fc74e9138f80788bf313d152650d51711528f4262a8"},{"version":"31c6a79bbfbd4eb3ae91b78dce2bf0a5ea23d99e0c197a6edbab9061ec027e44","signature":"483f06037f650350af3b63223e33dcc68060b2b8143672295c4b89c6a00a77da"},{"version":"750e415209bc5e76cfb196ca548b3876fe74874ef8254a04691f1776e1ecc851","signature":"2ffd8815f552da3abd69ea336db464338394a725b311259dfc9bb9f27916c5a7"},{"version":"3ebe8fc09c66cdab39b2ac91f463215b2b483a55a8eb9d78199506e252b42961","signature":"e33d2dcae0801de1b7956e99d1b0365ae6cc1b59baa0af7c882a9bed513d60a8"},{"version":"36bb8668799d6f50e8cd604098ffbe99dc112b7957c791164e03221015226fc4","signature":"d3ec45a2012c49a456b9660a9515e902a61630cf289596da00712ea307718155"},{"version":"cb75d8d721caf8cff656dad4ca7e2b4943de282ec5931e76c3672675c793e4d2","signature":"14ab2f0b785442d8631edc755d5defd9f26ef8a6c06c5fecd796212402fe77a6"},{"version":"64b90ddf79b0149b2b66ab859cc202c6b4b98908e5627ecde3b601cc2936170c","signature":"1dd97baeb23cca6a7cdf4f07e6d11aef58711706e66d32c387e5afb97f6aba7e"},{"version":"f23424db2dff1e7c5899c2d90626a22f9534bcf843aa543d5a336b3db39f1569","signature":"a1ffe740ecb4e3eefa4f24a7c3c0161beeb877f358c2acb8b165a7ae73134549"},{"version":"40c18a8e86234b8e5142f201ae16c58ce79a29618ff40c11ceb69e62624f8c9d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"512df7a55c0cfaf478f49eced3797b4219569ff28e9755d2834ded1b611a8ff6",{"version":"5225a309f72611d3fffcd1da1cd7154bf09d95976c035550319965c33bb700c0","signature":"7d35d1a0606d8bef01f74bcc9b550636bb9b3be02ed5a8f4ed39615ed3f98413"},{"version":"9677623b32c6dc0720b9dc366aeea7bc14fef388bdabdb5a9800b6706bb48460","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5e84fbba6c77296fa3bdd386aa9ebc82c02933f236880a2851a17bea8bad92f1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7d97ab6e833fc3261066f0306e3361396376ad780f8e79b7a6286dd219ce5db8","signature":"006a47ca8b6833b89e159a044fd7de404747e4582641280e8392047468002569"},"dd56412eda5f8975ab300c44027c91b6a6cf7e69dbae72cf3eec1fd1e093eb3d","4d2e3ef2f8f9595d129bbedde6c07f554ba8e42fdfa50b77afe6eb5e4d09a6f4","b4dffcbfd60d11ac854fa7f6b36a11b8cc90d11d56a5e90d17ac63b3fda6660d","8206d386299ae1a6c10dc6e58064e12bbd847a0e7c908e542bf1041475d54ad6","ff9ad57b380e2749190840bc15071b71d9562e07f62eb2477b318e98c13a2e29","70bd600d126103ba9b69a50f5c54aee5f6e5a0aa9b12f0e00776faf72a35aa23","09db6d7779361f3345b01f54c8c422fbd408b11691703b5041891248ed571174","61a7e2580925bb54288705aafb5ea1849390f64713e83f9f3debc0a767790869","dd1e0cdfccb0ce62e1740451fcb3b012cd64cd121acde20a16362d031e764b74","503961ee6d79efe388565c73f1db74c74389d6dd4a96698334ffa934d1db5b41","e64fcec3a58a123943cd169a710689ee2e25b21d6673c8b7e2ce1b5442ad17b9","9661e24ca9c1e96fa593743bd8b7a2c0505a87016a98c017045514ba8cc26ab8","5962418c92cc8927b468b33457687cc9d0cb1463ea9c2d7ff647f2c18fc7add5","8af90d5722812d5af626f1f616cdb101c115fd43cf7df8d806febbd231b59c3c","bbac17f576d90dd4e1d0fcd3d40728b54761e3c8e17066a5e1436fa1c48df647","71a19e2f0efe18516c062ea40e2b1d396917998aa58dd6ecbf591f8a62761407","438337dd5100c414bc7a37d6116c6ee75c146875816f51d152d7a22fe91e21be","c0d85ebf8de676ee661fe9a35496e192d4b1a256272f74d64c58a34d36faae72","7316ee184165ad1051dd04ba009e39826d37bdf765ded7413d7897e9349c6b6a","31aca998524e36a8d74ac2c603d975fb0bbac8cca9686b6050b0cf25b271acd5","53886b874894ccb96cb83b2efee1a6de5635c90cbbe66c50dfeb3aa9404395d6","be2e9f60037f35dbe66dfcf181a28e46c99fe9db8b174860328bf48f11e03f53","5334ac24dcb36db397aee57cccaf2899351a5c7305ba89122c7e413242aa200a","a6adbdde64cb43c4b37c469c04e2faa5080e41cb465cc4a29bff3407accf9acb","04d60add28217f89c86e1ee9162edef183f115873399b67b4eddaf305ae6bd32","b08d8c0ca2052d269f32cea31813477c5779f5402d96f036dfbc8f60f251940c","4286c6a204583407e9c576edd91a82ed9f00b3b2cae2230dff508e82b3c626fc","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","0dd7bc3250da0677a9f39147800d5209b360d3d6561a371d13f8095983791bec","8a013becef463a8474c9e71b21479ab72ca401eabceb31ddf584c2b9a3999b7b","4e29e81b632595bc87db0473b6f5b2aa7a24b95fb97392ee8c9bdbee72904b27","3c46b5e7a836ba669bd9b128b649c8925e7ab25f69badc9f2f4eb27d6ea190eb","0738e3705ecfc1e2e5b49c174cb95f5c40fdd0ce7720d6bbb036f019a9dd4432","95fe50f64fc00ac887c9fe5a71b2b64bed3ccf659dd56494ecbc0f184fbd989f","a9ec97fd959428dbf13c62a1cb345d3b0df7e13760af66c8a986a2bc76938fd2","6d205d68bee6c9de040f47f8284412ac218c4af242deb8c4c8b80506ced08bdf","fab131a83a8176a3dd7f7ce46e9e53c8535b8b93f0e906490393376302f16400","4e4c91b6ca78a308e77a539c8311153cbfbca654e964aa1bed327c080e91de3f","0d5a1823ef4ac4b2f19f9b9d2d49c105d6e2427430364e323232cfdbfaa19e3a","a3367ea77258fddab57b55d4d87517f6e3659473dfa26b538f1a83f9e48b89d2","46596f7e2fecdda17a2e0b186f144046dd05d648c38fb731c63eb6ecd3a8e036","14b0f43e4955e09788ef5977945bbac7dd22c2e3638fe4403be8ce73f2a3d33f","39e2b60bbad000b6f6cffb337823ae2992704745e01721e75dcf571ad0ae6b2b","3748045746b4fc790c56f4d855cce21823331059faeecdb1d1b1418a9733ddad","a419ef898e624f14b3619f4a2bf889ab2cd0d0e6165fe4e8eec8e4994173df92","b42b3ec88494f4a7f208335e75a610c44d7b26e86f37644506d33cc9190afd1e","0227a93220d42a79c9b11c6b71296453a447a665e87522ec1b29eafb89c732ef","97db6da3979f2667248e02cae1d9c2e7f8023c45164d11062e69ad0f892412f0","d0966dcc182a0321f895afe0b115fe1e15832f8c5b1242d2b3f7e12adf504075","071687ea1841dfd3c2a612faf133d2ff0bb96c714351dfa8722cd7fcab7c67fa","1b338d38c15dbed19dda260198f17431fc5a0b83583b5c6ce0605da405b2413f",{"version":"70012d8a9a48f28f325739c37b8b7686fc43b81ebd20ab75151caedd911e1c0f","affectsGlobalScope":true},"fec4dc4428894c8580c4499a2fb3597f28a91f38a91dc85d0f81c084f5edb564","fabcf8a317c5a9e0b9f10e4158b6fff596ca4b69ce141186abb5db073626a7b9","6e8df5e7d5c7301c2efd1ad043e866161c3f93913e6ec42ca7d845926d9e16bd","8c873d78b8de332bd5e0e39cfa5c143aff3c9d607d022c4a43ef07b3ec2d1cf9","1323085c5e51f01e7e262e7e92d2458905a7232c66dfa891321d7b87d1f517e5","3ef31e112d99b9e3061f2fd57faa0503e309c8dd5b1da4f18635c4060655d245","c038d8a953b5728afe6efe989414d6ef03f411af3f239072c970e419c2ab7389","8ed3fbb7e972ba87c638c0537bb14419a056f826e490cf7d789018dd57414127","0e221966e7b747cb6c6f732c1f05c2b065db7feaed5c4f5107c07978f4ca38e3","498ed03e3d3dcfdcec4077d368bd246256c548070c2825e727169aa9f1421b66","4540e720f85b66506d48dffae9b5edc8391e43c9f4e7a4c36e52d349e971c0a3","f0e9ed83becf7779a5930ccfd4ab1f32461bcdc16c9bbd2d88cfa6d09db0ec4a","57ea431405c212f993ed185a785dc1a8d9c3537fa25cc2a9c961fabcb314284f","dac8d2ad4560646050e0c463e944723cb02b5897ff377e2f489e7c8483aa416e","a3462bc89af49fd1d44d78c29bc52693e281113c53a34c6767882020a6b9c7a6","af77d1db49469744979540c0ffd2b72174246fdcca0b7e33a63ac8f109ef46d7","d5656bbb794ac2f0b9dae586eb93120c2fbf31216f56abaad772d632e5d9ae2a","d4ea61fe1b3efa637f57d80e9fb41b66d1e88b63464b8d9192620e44c485abe7","113268e92e3b7f2b6141e512d91c73db65d169e0a49c60243d5ab0dd4bd20d05","d20d052f3f30322c5ea65214e2e446945f721c7b264253518e11f643a3135415","26f0686144360debfce7f941866e74a076ee15a3142bb359f25d571be8ed3c55","868d7afb92541c8d4f77a60548906a7e456128b862224a8f1dd7ba7f487337d4","ad8ba715d8efd3b74326efd7edac4742e9894432b79c5550e598be1163987511","09f6e47c86256b4fa34164911c1798016e09d53256dd39c15c0b03332a4462c3","f01a58a5cfb4e141693b9ef956f8a49f2648a04b00ce64eac56bcbca85792cd6","f37268beee314daebb3d06b2c9b28030f969cae9768f5933ddf9a34087906f42","45526614782a35f365aa7bd0b5dca2ced3ff513052d1f480e5fef1a657191e61","b5806ae7e5a94990ef1deff41a9ee5f1b8752187a587181ae2a3b693604b1627","e4d0175257370f0152ac76530c5ba047a87b797d653b51779145ca1b1c40298a","766ffc847ab2c174fdc6f9d7d54d1f6d0201d2280c8bf02579ae140b1d2200dc","4c26b338077dcb3db1366f704c2cf37d7e555cbe5d09ed9bf78124c964ea8a89","a6767133b112087a297e70f6490ef2d1eaa60fdd7944b0f1625a5f71f7870ede","a5e3666840a7bb303fdb290c400eb454c6693c49ba068abad8489fd54c64ff29","deed9f4d690664ed1b55dcaa85d34d79a005687e4f7783418e8a9a1874883b42","e5f68a1bdbdd1c6361255b37c97248aaf117c0a8b92826a8f3ae2dfdf8dd8a22",{"version":"97971c253680c0d605e2724c856faf56d1c096656e24b841bcee3736b6215a61","signature":"d0156d9197b94630dc2f6d1471d7bb5436bf988229bd9871d68c8fbba69a65f6"},"a80b7bc4eda856374c26a56f6f25297f4c393309d4c4548002a5238cd57b2b66","e5885f7b9247fb96fb143a533f3a37fd511f8b96b42d56f76ed0fc7dc36e6dc8","571b2640f0cf541dfed72c433706ad1c70fb55ed60763343aa617e150fbb036e","6a2372186491f911527a890d92ac12b88dec29f1c0cec7fce93745aba3253fde","547626bc4f50662484106d812e5d6339f4bae62387aa102c59d26e84c574c6c6",{"version":"ffca27e3cf6bd5f1bebcfb9e64ecc3cf5ae12b478c4b458208986eb9667387f6","signature":"b606b537141cdee8153dc1f7c5d4a646b6fbf40925a81be0cccd7be997fe06d9"},"ea3dc94b0fffe98fdf557e22b26282b039aa8c3cbbf872d0087d982d1a1f496c","71acd198e19fa38447a3cbc5c33f2f5a719d933fccf314aaff0e8b0593271324","91b4ce96f6ad631a0a6920eb0ab928159ff01a439ae0e266ecdc9ea83126a195","e3448881d526bfca052d5f9224cc772f61d9fc84d0c52eb7154b13bd4db9d8b2","e348f128032c4807ad9359a1fff29fcbc5f551c81be807bfa86db5a45649b7ba","0fba40d7d3d779a84c39aed52884def98a8cd032242c7eb86bd6dc0989759c3a","ad4d2c881a46db2a93346d760aa4e5e9f7d79a87e4b443055f5416b10dbe748c","c2fc483dea0580d1266c1500f17e49a739ca6cfe408691da638ddc211dfffad0","7c31a2b77ae042fb1f057c21367e730f364849ae8fa1d72f5a9936cef963a8b2","650d4007870fee41b86182e7965c6fb80283388d0ba8882ce664cc311a2840b5","67c8b8aeafe28988d5e7a1ce6fe1b0e57fae57af15e96839b3b345835e3aed9c","c16c3b97930e8fbf05022024f049d51c998dd5eb6509047e1f841777968e85c1","b512c143a2d01012a851fdf2d739f29a313e398b88ac363526fb2adddbabcf95","535b2fc8c89091c20124fe144699bb4a96d5db4418a1594a9a0a6a863b2195ae","dd5165bf834f6e784b4aad9fae6d84307c19f140829e4c6c4123b2d1a707d8bd","3068cf3437f485ccac6ddc86c475e61bc487452852510d95c83f6bad6dab9a66","21575cdeaca6a2c2a0beb8c2ecbc981d9deb95f879f82dc7d6e325fe8737b5ba","33398d82c7ed8379f358940786903643fbaa0121e3b589a2a9946b5e367d73b5","faba53dda443d501f30e2d92ed33a8d11f88b420b0e2f03c5d7d62ebe9e7c389","3eb7d541136cd8b66020417086e4f481fb1ae0e2b916846d43cbf0b540371954","9ff4b9f562c6b70f750ca1c7a88d460442f55007843531f233ab827c102ac855","4f4cbbada4295ab9497999bec19bd2eea1ede9212eb5b4d0d6e529df533c5a4b","cf81fae6e5447acb74958bc8353b0d50b6700d4b3a220c9e483f42ca7a7041aa","92f6f02b25b107a282f27fde90a78cbd46e21f38c0d7fc1b67aea3fff35f083e","479eec32bca85c1ff313f799b894c6bb304fdab394b50296e6efe4304d9f00aa","27c37f4535447fb3191a4c1bd9a5fcab1922bec4e730f13bace2cfa25f8d7367","3e9b3266a6b9e5b3e9a293c27fd670871753ab46314ce3eca898d2bcf58eb604","e52d722c69692f64401aa2dacea731cf600086b1878ed59e476d68dae094d9aa","149518c823649aa4d7319f62dee4bc9e45bffe92cecc6b296c6f6f549b7f3e37","039bd8d1e0d151570b66e75ee152877fb0e2f42eca43718632ac195e6884be34","89fb1e22c3c98cbb86dc3e5949012bdae217f2b5d768a2cc74e1c4b413c25ad2",{"version":"8e729ff18c898e0f9896bee5b1d1297dba995f3aafea995144b32b66f855cb8d","signature":"fff9a42dc9c5776afc6a444352c037272f3f4f3e094a739dbd0f03ccd5191682"},{"version":"d0b01016445a350555ea862879d5ba5ee6e9954f6aeaf809cc646fc650519aaf","signature":"9c94895796af2d24389997afd89de41669d27205c81b50c1bd579f5fc65d7578"},{"version":"9c37c4fcfc152fa8e478fd6d288c34b62faba7e5a8d3f7aca5402cb4821fca5e","signature":"c8b2df0c5f4eea8edfa5b00624832c62a758cfe7ba9dc555beb8789b3010eb98"},"21470f3bce930646c5e2a1fcf38d6c783e535e7c91bb93b12d86e4074819efcb",{"version":"a48fe99ab5b2f9967357fe042d09e8ea7a0cd8d925d065f7a9ac2c93455cbda5","signature":"d6f71debff0d985a03abc5bfa977d3c417df745d522b96c9af245848660b2e44"},"708733f625436da7047894887c1c17fa53b43094f36c9c3b1ce39d99aafd0a4b","2ad61964f27122a3ef7cf261f8b3dbda6b0f96be6687397151709bf34e5d5c76","302d3d92502a06fa7071406fa96d5c7f897006d73622aaf322df8405abc6f773","bd8545e4b9d04073306186b84b75159735d59e1dd5b8a6b6c14a2e6bce5a9e67",{"version":"15d274e28ee60651e0b8555e7763e6159f6571bd803564d5dd37875eea232c2f","signature":"57e2bd73a844fbe68994d8023106f1308b1637495f554b055f2b33e87924f909"},"7ec047b73f621c526468517fea779fec2007dd05baa880989def59126c98ef79","8dd450de6d756cee0761f277c6dc58b0b5a66b8c274b980949318b8cad26d712","2e9d677b6b6df2323f2a53a96e09250e2c08fac3f403617f2f2f874080777a34","cc8d61dfbd2da3857421fdad26fccb0ab45a7329d070f230b7697d8d0be0c786","962d43d10b27082be6586605480acd294b569c6b886eec252ac7d42adfee68b4",{"version":"f1c4663cca051c136ca26b641f243c2122fb6917b56fadaa2d026f5914f5fc64","signature":"8bc839a740f2dea485a7b762681ff4be3401cf3563c8f1ab49734b20b8f5eaba"},{"version":"8940f4b033b948b49e8c3f92efea98c75fe13a0700224b9c3165518f69e57837","signature":"a4ffb561056196b1049409f469ffc92742a6178c74c70191ffb2687a20e6b439"},{"version":"daef1f3b6cbbe6f879737c9ece7180de707424be0fb31509074f46b07c0da61a","signature":"4bf5999b8555c5dccda7bb4e4b6ae645d38cc769c134453f0a02756d4d3c9d5e"},{"version":"9ba9159f34e79b81e82b1fd7d5b5084e939000abc8909f70c40a46dc91051338","signature":"22b2f1c59659977141a8932cd90009a5327f7f7701ff3a953e5d61d687be58ef"},{"version":"22d55cedafa38cbaab5d6baa403951ac3566dcba30e549f11cc051ca904073d2","signature":"cf80f65f64ab6f5cbc87a8cd97632c9f8a29211d39de30b11cfd2026621baca4"},{"version":"f89890418e01a35e5b0d1b89a2187ca6cf23a2f7bb0524f65dbd501145d79277","signature":"1327da3f21d5336051fe1100c3d4f71cc1d448c34150f69f3ae75fc34a963cf7"},{"version":"ebf466a306c5e604c9f374a0a252e95419ed5745561dfe83502a97092e2d7d25","signature":"32b644544f12df49ff3464dc9479122eb85c501a79e53b3bdb4aa7733f7d00eb"},{"version":"65ca9c7edde7497dfa9d7b590d3cd4c5146feed67e78b1ca790d889509773909","signature":"04fe18c073eff365e374a15850442d480660a6a8d2af57d8172cdc1520c515a6"},{"version":"83d2b6a05d1020b3e7e789d193e4377edf2358eb2f00a7aa6d22a8b9015d37a1","signature":"c8fab490b8a42a53aa01594322eaf34deac8bd23be2083897929bd0254e3ba65"},{"version":"83acf867714411767f8889d13ea71b2fa68207587648c043a4865c757db29f49","signature":"27cf0a3af35baf4e97b2136284af7caf7977b9fc3989194455ef0dc36761cca0"},{"version":"49e1da4ae2c6da2baa6ea14bd75daa568b014fa61ddb74551d775e5fc8c65767","signature":"9372018cd3c379c21a4ef28b2113c925e902f729411db7d6c5d2ff449af93a3b"},"b7568d221108717cee204ad1e8b0e25044fbff3bdeb09de8ca579c869a13da5f","7d470d5054929cb61ab1f1bd67cb6fab6561e6b16f33fd608138889f90d7a5ab","ee77aa598a528f724562dba2a766d58dc0dd8003bc7ebae9c4432862cba96454","fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","bf55a8a910f7e341c219a628582ac887241902ed0d7f985b59c91819399d638c","96ddf97c45e2fb96a9ebf5fa0da082621875d4245fdc0bf06ed6f1de1ef97e51","770d7280b35b74fdd88f28356e4e1b8524c924fd21f64d5709226b9dedab84d8","29de4639bdb05b0d5b434a8b9ce79566a08923389b656f412861f7a1303cd821","626e531e56621998a9d6488eb25c93f4091fd7a5484724458925b1ef0982a778","980dda005d1f72295d7c9224bcb5f8c88fe513e8705e649dfb9cff337d09d994","d3464755da8663966f12b690d95866591614d45836a63f58d53be901d56b8dbd","f66bac557d28121521b9d3b04aac73abb4e6ad74bd21ca2085cadaa05437132b","897b3b524addb7b36b8112c0e04fe58854340d79e559687907831c1185885625","fb415a7886d0396e01040d5ba1d8968a4fbf12a9e8a2f804afc27c372d568377","1d51beca08454ac5fff5946cfe8a6e0cffd0ce6d37f9d501e489f0d8d327f1d7","2743eb41ecf163c5c435deebb4083456e2497d9b7af5134d319764478b16c91a","9001790195bf5cf382c676ded6da44833812e677bb9f31fcb22fa47d389039f4","c8b5ba230438949245ac320eddf2fb4292ed37b30e07f89220777672d9677f51","5e081661ee4c4cb99ab5a369e868c0679b1f1a9b4afd85b6d934e0f3872cc015","a4af7b2645f345b5871ded289fee22fe1f5359d74a683c69e754f5d15914a633","ae0d70b4f8a3a43cb0a5a89859aca3611f2789a3bca6a387f9deab912b7605b0","966b0f7789547bb149ad553f5a8c0d7b4406eceac50991aaad8a12643f3aec71",{"version":"cb193df7a27f495d8d7b49e2fd2ee384d22cc375032e725fb7165583523db862","signature":"208e8ebf08b7eaf3acef5a428fe0d880754a54e238dbbde22473004d8a7a3a3c"},"6b5f886fe41e2e767168e491fe6048398ed6439d44e006d9f51cc31265f08978","f4a1eba860f7493d19df42373ddde4f3c6f31aa574b608e55e5b2bd459bba587","6388a549ff1e6a2d5d18da48709bb167ea28062b573ff1817016099bc6138861","04ed965b785fc7d3056548978b10013b6c63f757445d14ee4bc40b6a40125930",{"version":"7e76b3593a2158520d44839e0d240c58dcbcace26fc8ec3674ef7ee8bc8c549d","signature":"9566480037cdec65fbdd1e51543e00a01c79b191fc38cc01bb9ea7862e8915aa"},{"version":"ae8c3105f5a3a86b913facf7e41af1e53ab51e9c7c05535dda3899c9ba325392","signature":"25cdd78fed0c330144d596c9e41456c43d0122c89f45d05a73772d48a0ab96f0"},"c20ad823106e50c96b795a2b83745080e4a29d0e40ba7c06ebbb15b44a7d68f0",{"version":"9f0abaa99b38e1a76a1024752189262916eda946ce80f682dc14d4143cf15a1e","signature":"037a5bfee73b9c6da331810a8a725a869db73cb263e79f1cd77133751d740f5d"},{"version":"c10698f5fcc03e2477f8376cbde5e02076371f97bdf77fe8a3504d2d08fd4d8a","signature":"71aa626221b5f5d440933f6ae4176627bcef16f2e49c7cd2d89d54d091369087"},{"version":"b9172d2b1be5c91629c6000dc3a883e8b411e7de6fff550f2c7bc8d17ef09443","signature":"4dfe1abd6fd36eac6478b49831a7403ff0b2b02a0520dbf2b0b0a106500369a8"},{"version":"23ec5af402746a7fa70396c1ebc59536a9a378ffab8c5a65b85936dd52762432","signature":"b83749ede93b7735abfb3e55744bf2d3e8514ea53f9f95dcaef40144bf9d11c2"},{"version":"088a2a88aad27bba4816a4bb53161ffd9ba6b07e3b70566de69f49a90abb4c11","signature":"2c7b4183d3190adb22f2fd79031778e54bfa36377554216307bb9ddd7e9f36f6"},{"version":"6db8224b4ad290e41b27945546f4e34c6b9a8713c129895fd4c8beb6c896c86f","signature":"abea4a597dad886d2dce3e5803fa3cf86d3a2744f25f83c66bef4b17521e562b"},{"version":"0bb5562d3f9a47f62c8ee70ea10052f21ba2a6640198d403bded31e239bdd91f","signature":"60f2b1617391953a81803bcc06f621d7fe5e3d84e37453796adae6128b77e59b"},"08721e216f19034499702861e3e54d1251fba68882b8bb6e79fba69ec60edde5",{"version":"cf6b5f4dd2f5b5cca4049f11f7c97b1347e63df7144173e4e01983f1b253fef0","signature":"22a38a8560807ebc9e907001bb1a40336c5d622b91133093e7ff3061abb5f881"},{"version":"35f226935ec89bf4d93bc16b9c5aa7fb2450ab62519f076337b4c5e81127c248","signature":"f737a3d9ac07dc42aaa2d70719082eeda498ed331683c5405b74a3c8c3ea5171"},{"version":"7c34a8e71306520bdb67b21452ff9e71e3d55ab11ef55e1a515be7ff303db90c","signature":"a3b77d770ffd9399c7578f09f4b53bab2e4a297947dfb84778bb3f7be36ad26a"},{"version":"e729ac626b181cc855be25340324bca36a07205fb4ef793ac2454c1cfc469e0f","signature":"6467f62b89eafa2623d10d06b488e47ee221c71b95f5df49c42d4bfdeb487ee3"},{"version":"eb15d2246c112294e99aa6f13eb69866c8b023c2841d122ed8317f32a3be8f20","signature":"236d9892a94b5190cf710aef26c0dc4ae3a3b9ad0cdc60c4aab41665b135224f"},{"version":"0bf23882f4d0d7750bfc0029cb33483898f302bb24ae2ba18daa8df3442ec9a0","signature":"208790d683ea98f4793a616bf39e35075bd5696abb1a7eac5b1b442a8b68a940"},{"version":"380c2f4eec00ecd291c25049d3b0779dba1709fe01afbcec4ad0efb123949f78","signature":"b8542c1d37b57129c47524f45d854f940d468a8d21d2ca56dbad980a0db38550"},{"version":"11f1580e96762b9ac849dac1cbb36849a415c8700f4de4ac24b1c4740a00cf9f","signature":"98b8881b017149d1e7b1c7ecd7fcf78780eb2393c0d8878b11990a1a6e959362"},{"version":"8602c2d3a5a998dce9eedf5c6748b1dcdc5be4468a5218e1cc931b39b6961a5e","signature":"045af09aa5e20acc7b71f563dd57cca9d8e64770fb9f7ef4764716180a71208a"},{"version":"8aa26b7dc82444dc0d70405f677829c0c178492bd018f6d96783d639b7d59d9d","signature":"e5300621f035235c055ef5fe469d3d11e8030f0cf041c0b9199561236466568d"},{"version":"2ac3c5d76e85cb0833e60fe5248a3bab0906e4ec4510deb123302411d8902de6","signature":"79ccbc6e8693f838cebc4612d4eb77e6a79ddaac00eed3aa37b664cb5dd5c67e"},"1bd7f5374f768d5e5273a1709ccd58e0385c919b23deb4e94e025cc72dcf8d65","0b6f7d46098ec4dd9de98b7a4650638700588c4f086df6eb479f7678c223a123",{"version":"e25bb3dafedc5b09748fc87ea1a92d1d9cf0f416c62e8dceee8969330fc3c2a5","signature":"a8d485fa9172ae6724eb962563455b9c24c9b9d0a7fdab92cfe7189477c33e10"},{"version":"68a4bf0498088324f759a17bc29dbedd07fc66b6f279192fffb386b6ec0ff259","signature":"a9015a2072f932ee34991385225e6c1c4252e7ab4d727a282daf0c337ab6e96e"},{"version":"9a32d2a88eb137e0bbd494a065a21619c888ad1979e319574df09a9491cefe7e","signature":"ae8d79cc02fdc54a2097f1c6618704073cfb432f1cb324ae7660d865f850a069"},{"version":"db952852993d6bf5e764bea0bffc02433ce836c86d16a181937809d894d36da3","signature":"83fde761df51f40ec2fe488760832b3c6f4305f6848abbb644866c93f907b758"},{"version":"06ad15418549338880feca7d123234bd90c907d24d877dd47e3336b6cd741c54","signature":"0d0f9e37954ae7fe2d8505040679ab40d23deaec7c26e408a72df6e198731d5a"},{"version":"0728b49612292cc769f3347ecfe7c13ac26f728dadb92c15373c5ba755654969","signature":"33516a1d8b6e8fb35617125c58529abe1979c76f2d9cb37dfe12446e6fb47f84"},{"version":"c9f6709da0cfbeec025e9982f90ed58a7462af271c34f3e3bd3647f39e757908","signature":"456924b4bd4511b7c1beba8aa32e8f032c6ced11b1f2bbd926e86bd232d95cdc"},{"version":"5d71935f50a00c79f042c674dc4e7b34a7f258425ea7c6ad46e15be4fcb4e6b5","signature":"17897f96e775c29182e9a9e05cf5caaed00e2fa93400cc01fa89dc435fe27a95"},{"version":"650c711e1fd4768dbc6c4b5b2052e394e2bc7690ea1198d7398045ab521938d9","signature":"8ccc0a4db58a975b72f62f0bcea397d5612fac4c346837dee3a87cc767fc1fd5"},{"version":"910460bfc4f82eb82c01c8bbfcc9a74fe05df23e18642b7f83f2f73d8c51b843","signature":"383c74a58d8ab6da79e914fddf8c7c5e20ea2359e23fa56b55852f273a3869e2"},{"version":"2d07ebedb25e50b277fe82b5dc92a568c8bed57babfbb79083c6843d98dbd7a3","signature":"bc351b114bbe218fb26de1fbfaa80afd77ce5c1446a505b5bce01aec3f712a16"},{"version":"a2e4f272641c1b392a7dd095b86738ec170768a2e579b608c04d243f4a2659c6","signature":"2abfa58b9c4824f6d60e43d45e138422c8cb28f326e73a9c994183197e3ccade"},{"version":"73f6fab2a7107a9dd66a07d567660ede77290bc1e1f5ce1e7d18d6d10798c755","signature":"33898db069304b04fba1014c54d93824c586578f6094a44b05daafa2575a080f"},{"version":"e93af6bf2271ed3f1714d3e019f14797f698fc291ba868eba6f649c618fe1d54","signature":"2be6fae04dfdce6f22a70496bf7c5cddffaefac0e131d5e4cdf5e36d44795591"},{"version":"47be6d189b3ac459ea98d1e4a1a5e1c01266060046ba49df1be31c1d190ed8bc","signature":"547606e8a942693ff9974aa5348c24d0e7509d6c803054d6f1d0b72fc4ad9a48"},{"version":"8f738629d00ac877b0d8ae780e263a601436f56e8b84a923947a22d172959db3","signature":"13c406e55c7847f09487b145ef33187b068a642614d3bcd817b68e5eba5256c3"},{"version":"21e64eb4b5ec06725316b6e55956192a9ed5b3ceed7167db75af707e785db0c1","signature":"84bd3b5e0a21403526ebb80585e8999f563d4aeb657a5907f719e71569c22aa6"},{"version":"ad99817d3f989713679fcb67a38309fff5d72d3cd8d87726a1d080c41c7cfe5d","signature":"40f778b0c84d0f0627e2e29fd5cf35f3d2851c8dc37afd14d6e69e1348890ef7"},"69ec8d900cfec3d40e50490fedbbea5c1b49d32c38adbc236e73a3b8978c0b11",{"version":"61b57954ec90f09b10a0a7da1331273bb401a2333a6a63b2c82f7ad3bd75d01d","signature":"077b9d203cac12fdc78a29f7769ebe5c30cf8b59a98fd8f50084f6c2cfa221fa"},{"version":"7167272ab6c7a1d311334e7fe90209061b979ea2cce74576db98378645668f36","signature":"8a55d2505e1de2987ba774533969bdd29623b1b24886078c6dc721c8af486825"},{"version":"ed823769dc64d25dfddf0655171882cf0bec772eb61ae15468b2afc517d613a1","signature":"cdfcfeef6e29e5541003df89e646a4cc21ab2c812ae0f117a5b2bbf3552e4026"},{"version":"d1d99b57667c5761e0c63ba95f26d9a9088590f5476801fca2c61fe52ff962f8","signature":"dab8850ee5c25e89001983149aba90ba8f8fd64da55ae2243b0326e34c90522b"},{"version":"68283af2a7ab78c3f3c1a861eeefd4a45936689c972080f88fdeffb810fe79f5","signature":"587f4373b705cf397febb667e8972eedc9d80b88b861baabb27f7d4a3ca602b9"},{"version":"fb17f89567d1e84acf63c9a328727ea268d666691ff2a91e359a81120fd8a39d","signature":"17a9e161f8b75f5e4d958517904f9c07f13efb40943bb6157de9dc030cf9d06a"},{"version":"09722c4bfc7a09b2017719023d9b86c65e05d7e63954c64de9e0a94acd17755c","signature":"98a74c6068a638f89976b23188440a0a95bedcffa153b160cb1d45d5cace04b8"},"2774e76e5e7c5c6bab42b16e33c2f389effd06acdf4e3d604f009eb6bbac7b31","5dc4b28d92018055827cdacc57c002cba55ad2dd55dc95098f7684e9fbd016ec","6552460efe3df85dc656654231b75161e5072fc8ae0d5d3fd72d184f1d1f9487","6d7b298b1726d4e15233bbd68c2b433f88c43628ae8f652009a005391606640b","e68cefe327be0e10ee06cf6b7a8c0f11271640333d1582c2176741896aade369","dda956418b200c98c9aea9a56ed1d4664e5969b90652d85cf64756235d61f861","8856f8b79c4e9dc82cc6b97d2e7b4d6ca811c20c6defe1d982fbaa2791c59bed",{"version":"dd8178919ede119e53502ed54408183842831485ffbabcbb66650c5917f88407","signature":"05c7f4ae41819a94c3027c8bf5f486aab16ccf73fe22992e13c2370dee02ee2f"},"32d280360f1bcc8b4721ff72d11a29a79ac2cb0e82dde14eea891bf73ba98f9d",{"version":"4fbe5790a746ac56397945d47796bd5bc302aea6f1be3ee92e39fa68dfbdd06c","signature":"56ebf06e950a64d4f5b3cf11ab9250ec55947d1686e3ddf927621d7a46fabaed"},"5ff3c49847d4c90f90a2b4261ddda4547a4f47e11077bfde70dbf405b945a049",{"version":"cc2ad5e1cc0334fb20457c14a3c915d329ed47067e8ca5cc458bbffc06e2d295","signature":"9db5ec68ca9882cdfa3b73051527b91c878ee0a5d31add7ba9fef1f884586ef9"},{"version":"25a1a3f992c530e4ce8c3984dcddd25e7abe55e764182416aea3c38adf848db4","signature":"35245f5736f9818f7f001385debdf47fad5c44f9c68bbd586e84ce712d4d830d"},"02f593088e0ae995392f47d8d687d11546424094160ce774f779170863633244",{"version":"f56b91e1a06ed6656e65047ddec10413b87265b5391ef690ec7e0d5f7b12a680","signature":"17ae4db0ebfa47452e4201a28bbe8f05e7e1f74085a12a93d767da098109ca20"},{"version":"1e8b85637e51331cb69169b926e40a7a366f1160b9de806f3b79fe544a7235fd","signature":"d0de1f7c0a0bf88e948bab5d4bc25603235bcf57a84d26004d167eb6e02f6322"},{"version":"e349d4eac27d26415d09e571638fc2a09708002400abdd2b624eda7c457a603c","signature":"0a5bc675bfdad1ba5351c8713c154457b541d698770d6f5ab6a1c69f43c1c645"},{"version":"2c0c4a7fe17793123a31441eedea3ea289e6028a457d0e44de89d0cf334e4b1e","signature":"3380da75b146df1c5b1c6cfda5bcb743808339f1df488a3d435ce45a6554b0c7"},"3a1b1b8dbb8af95cb073ac31c9ce24389b7df52722983dad4859f34b413ab5a0","f5c2137b71a52a8f208417b89c0935cedae14b648a47540f41f420a3ec2253e2","a78f503cbba91b1af24c3e7cd92c4acbef25710398aa7e5745bf4271a308e3bc","6d8afd4a5313d69c451d967a307531159e399baf6cf72aa97899d26bf015013d",{"version":"ddc41d36afaa3538d9143c731cbe7f7ca00ac270ad1bd3ab51bd356b3c521f90","signature":"f92e4befc9f076a3f123b1ca5da6f804c034d7135b9114ba77e21f7ebc3581ca"},{"version":"56c193b0e5718a11003d63f33cc1ce90f7e40b74385dd8fcb741a6d09aa90330","signature":"6333ffa7998c5f3842fe2d27d728efeb6e6471dd762f43b5838763e55ba4ad2b"},{"version":"f4426b5a0c3adee88ac09f91d52e9db4befc48658ca04a2dc98817b48e909d61","signature":"f4441c0756c93994b901ffd2581d25d63554946f9a91ef7ea3c55c1045c55343"},{"version":"1e6ae277039ddc3a74f97b3d01dad768e55650c9804e3527a5185f2bbc301681","signature":"e7e8ec7536e606e71f2137200019d9971ec446c9d103051b9df0f33adf06ec01"},{"version":"a87a2b2c5243d6ccf471bf36cb165855ae6e518b8606a56062d28dda42d958f6","signature":"e5b2c814bb0e6337639de73b875e81b20502ddb6ba4fe26cf44fca012b9b87ee"},{"version":"ccb795fa38bd72a211413db94d3c3a53b74646d024964adeaad97605a3932a53","signature":"df39d09aa2f66f1e04b29d19cb8fc8f781065ae08fa0334d3a66dddd463dca00"},{"version":"533e818a8a84875599186cb95d0d9ae62a286c5a561987d9dfba3f6d078fb080","signature":"5002974e24b8909eb00333d14ae773b1da1c4a38f2829b4e48abae62c065e1a9"},{"version":"6a8b4d11e10311213920a4c6ec769c2cfa52798999fb2333d6652131b49ff3bf","signature":"246cd96d0e9991243d81e6b5a05a8cf2941367b4def311e951b5135129988182"},{"version":"ed3e30db77529078c08a03a2642bfb80d79e5b8458c08fd5717e040139443e0a","signature":"a021959cd1e800b39eb4e1c1457e23c98fc42d0ccb264b948cf583b13ede5ab6"},{"version":"c47e617249f08e9d67680cdd96ae6f2c7d9d8c549bd741cee95acf099b127496","signature":"5714314bdcbff241ce3fb47caf746888c46718ab87caf6268a20463cb91841bb"},{"version":"6e4173e13d2a0335e177643ca8b8dfad832dd832cb8ae0add50132028f31edf3","signature":"e9d73bc59185c738f86779b07f2ae69f3a6325fe5ae817350d9fe0a8b16a6fc0"},{"version":"0a786b1a063c1e96ad8185769628e6d5a5729ab78cf1cc660997689125c272c7","signature":"b424d7696005c6bd856fa651d5f12dba635275ae24fd32d722c315f073e1e6a9"},{"version":"22e200cf9d65e3cf8e8ba069fd1b62dc072bb7178b0529ddd9d372a5c71fd827","signature":"682b10e33923389e8b7ce7479f11063460579dd668883a7216228ff225161b16"},{"version":"85716e792f2e605d809f16a43ad1ecee18df8edd2495c2f997995a2a7cee28d9","signature":"421f3fb0cf474339ffdd24bcc6f45e25ea5a62dc796c0fc25cb477db7000bf4d"},"014dd91ad98c7e941c5735ce0b3e74d119a3dd5d9109bb5261dc364a168b21f0","9ff8f846444ceccae61b3b65f3378be44ac419328430afc7cfd8ee14a0cb55f5",{"version":"b1ff4eddc813ba6d65637010db38740b5f8751c2b3085938522f98df406dd7c1","signature":"4c8d23fa128375bc2642800c1dbce5f2dfc665f09599ab9da0438218751e316f"},{"version":"bcf1d6848e1c7392c7a2372aebdfeb98786405c30e6892a4d1b612b72bf9b022","signature":"d4c4606ab08bb3d147ed3af8385cbf37ec5971af09923ba4631bf3af0ef98aff"},{"version":"19e4af761af63ea164f0081e2be3b162dff92a840f64dc1f8c5ed561c8a8b2a2","signature":"f3dbf08dac2e8bedf4ed4e521d9cdca64e058b1a5926b6f0e0c4210f39c71d88"},{"version":"76074b63a942b5e04f69d72750a6df1f73ac4545778755788d0fc02f6b0160e7","signature":"f660707c21024ddd6f521a9ba4ae02cfae78828f081e4b08a620b678446526ce"},{"version":"7de705f5c9a5f1d115d5b94265692316942e5fe8933a386e405b94c5675d1560","signature":"2e76ffb2b0705b5a9513f3dfe567e90adc35701f3a348735c69aee30462d654a"},{"version":"3d91728ee218fa921ecee297318770829b378e75cb13a65b5c841f6bc2bdf6d1","signature":"3722c5b6b64419868783f99141772f85fc0242b8662aedf6ee090199eb07ac8c"},{"version":"70b9f46978b7361b6b8d0d5a2c01bbaa4caf71f41c89ba4ab0e41a99ce2337db","signature":"3bdcfd1014093a67c5eae7733814b7eb5d3301ffd82eddd5f4e9aaf43de6b4c0"},{"version":"449c8c01fd6d3861bd826c712afaa62f09beaeacfd45ac75bc378310aefddfe7","signature":"5021b211656d7b6f6c770d0a980894af2e0aa4455dfb0f0bebf7d50ba40c8807"},{"version":"8a1583874e8ec4b480b8c01bd153298cf2fb375f9a427e72571763ffc6b29000","signature":"03c4125e0538c496756db0297ae4f03aa4dfc75f4a2bb7d4aed2a4ccf79aa8e3"},{"version":"6d01a3190b23bd16a145fe2ee6134efa1b1d431e01cbfa0a51d6a4b2b38cde82","signature":"81daea6128199a12028a7e8e2d78147fee6a2bc1ce603886feac557d5aa69e14"},{"version":"3aea8b3e8057043bd41a5cb357e03fc97481265a0adf3d4b1ecd32446dab7700","signature":"d22ad97f07ff6f73551702cfe32f6cbb54689fd7ef7027151f87e860d711c83f"},{"version":"83c6647b5e0664c1b373f1ae910f0ad3cb556dad9d4766e54cf88bfe9cb85aa8","signature":"747136ed225159f65a51f75d6e88334871180de9638e19a241a8fedbc5dc532c"},{"version":"b56c1b8d4c2302e2cae26e82033e87d870332fdad12e60f2c82003c1041bcf6f","signature":"9ccf3d36cdae90c537ed2905cab1497d1f81742c1afd2faba41714bf56e710c0"},"108886e64130a63fc4bf9aa939575207b7f4d73f9d435a15cc7d62569dc69306",{"version":"cfd1e21b0be70cde632ebd05b045f421377fdcb32c0bb37e881a89a27116d7a7","signature":"2009355f79a5308475949ea865313a94ce5466e7ae4afdfe41cade9e0207f7ff"},"c3338d996ada02844323754da51658e7180769e21f47a88878cc02c3995a96a3","1c3dfad66ff0ba98b41c98c6f41af096fc56e959150bc3f44b2141fb278082fd","432a61971738da04b67e04e08390ac124cc543479083709896b2071d0a790066","1ba55e9efbea1dcf7a6563969ff406de1a9a865cbbdaea2714f090fff163e2b5","eb9271b3c585ea9dc7b19b906a921bf93f30f22330408ffec6df6a22057f3296","f9f61a838f9246515aa4fed5940322f2cfc8e345eb32243f4fbacccba3479fbf","42ab028dd35dc961470612a78ba1c9d040ea8ff01486634021c0bb7d3d000a0f","da4c1cb1f66776c48f09181a8c042e714b43f54f704da01e7fe244805df029fa","a99a3bae716063e38c83b23fafc1a55e9cb45d5434c7286014fb3f89be692fa8","9085584ae1a83f8189c66a6d602a2b009284d9d23cadb50e222fef24946f7a95","6293b17eddf1c852ae4e76010e60ea3d465ef35cd3025456e8c2226f2fc1ffc7","790adee5f56f61596eed1a76fb068563d4d374a439a5a835f4bd029d50c3491b","57c7878c13e1d87d84c1480ff4ad07a60cf2bf8a3280c5500642dad7789050a3","a3b3a1712610260c7ab96e270aad82bd7b28a53e5776f25a9a538831057ff44c","fde31d22a31abdc2757e3ad3df718bde226a02946a3ae7e742b18fa324d4c54c","d5a4fca3b69f2f740e447efb9565eecdbbe4e13f170b74dd4a829c5c9a5b8ebf","56f1e1a0c56efce87b94501a354729d0a0898508197cb50ab3e18322eb822199","deb0d672b4caa205a0c77f4186b08f49c6c6b5c807540e4d2e0a209304ed74f6","4f65463e30ed09f5dbcc5f131c6a45afd3d920a7b3924d7f042663267e7fbbea","7274356dc6444446b572cf720e2c02f67bb16cc3f6fdcfdfbf57de5202bb2649","f94362be0203351e67499c41bd1f3c91f4dabf6872e5c880f269d5ad7ffda603",{"version":"75bc851da666e3e8ddfe0056f56ae55e4bd52e42590e35cbe55d89752a991006","affectsGlobalScope":true},"c60b14c297cc569c648ddaea70bc1540903b7f4da416edd46687e88a543515a1","e4ef275feade16c78bef2759af5b0f8ce57b882ff8afb67fa44666af39cf361a","a1c3779e363276ba41c2fc9034b5c2eca68f499971b82c6e98eeb73f61908d8b","fef9539cbffc7c087854d032aa5fe82142f1905d5a9db6b6661cb006d2276081","50bf58c0c6b1bd26359f8428db27fe1936708f83aa7cfc5794092fe1cd739fa6","0ed552ce80c7d0cf4cb6985ca53f6174517b7c2afe11912f80e0451569aec2ee","771d81449a42adbf792493e8f6b007499c154b49c97b16fc6504deeb64e2f247","9cc1557da84880050482140fbf0bf7951d2cc457c02e13502147a8ea0f752222","0149c8c1a290b65d6f955867b2a4d2d02b7ace13ed365d7ec6410469449e2717","6ac1675ed559eff0e8aa14a14b224c681871d3f8e68acfb50c42164b72beadc2","3635def0a5db8a89e47833255cd794b4cd68c4f1d935d4c1db868fff0d20dff5","8438f12dddf4224e606317753cfce80385ce1104e314486f72b154b31ec53129","42a82398b273a7394af9c1dfdaaf183b48bb1947931e822541d4918764d6ef20","d8f5d4f2aff38491b9d0dfde04a98ac2792f59a9e710d3f6033cff23e9154f31","3cf494506a50b60bf506175dead23f43716a088c031d3aa00f7220b3fbcd56c9","b1b3b7a3c752ca985f6b09c593d00385808884459783ebcdfe4122a9fa360df8","97530eae471f905dd4c493ec96aab7a3337b1f1a387e16d49f44ed8be2d63edf","4699f3859df619dc6f27262aec14c863dbc612ed80b3e3281968079c3b9467b5","f9ab6aaf703ee2a8fad56b4755d79c4cc3b1620fbdbb0fecd538137249ca99ac","8ba7dabf8dc7b23ac1eee9f57380a8cf013ba429b5e62a3e5dc8526befd15cb9","6274f91193b49939451450dd3ae9853f42ee9ba6a33fc8035967625b01f16267","39828e003373503c579854007419eae48fe4b7e16798e667848383293ec5c49f","262074e00915c234c1af0d5fdacc7c9fd7b35605bb45060c1a87f8ef9690e5d4","df3dca66f34e948593e88b5048ff9f201575a2c6f153354330e832641160c8d8","7b1dab45d6bd9dc6b65466ad1e69e8b05e06bc9b2431ee48be53ba52a9bea600","059bd2240c4e0d64699cdd485d58c3e426becb28329f6827f33925afd245d1f6","10710b3c797fab6f9f79ab8165efd62c4229d4b54f0bce7401311acb457e2c26","44c1a26f578277f8ccef3215a4bd642a0a4fbbaf187cf9ae3053591c891fdc9c","6edd5553fe74e2a27586cd9dc19cd696bd8ec7eb5dc38fcc320ace561eef9f76","f65b8fa1532dfe0ef2c261d63e72c46fe5f089b28edcd35b3526328d42b412b8","1cf1e1e0002de1dcb2b5de2349e3d4bf8b3b16b169eca34a3be69b55f9ef960c","5919f587006302199f8ebd13845f62c8205429f0f1b795d2602112fe5adbe017","88864800705e35c8a11f2e5c43f841555ee49b584ce53907a997cbc24f9c1f5a","e39c4f60db93b42e1d959518502597cf132c76c6213afae3231bd5206a1231fc","373540518297635e353d6d5329d2ffe31299194135e5df1d8cfa87fb00ab7c4c","fc7f9c8676a128e870e8f476a97da1651e4793bccef5fb3ab263386daa967549","1331273a7652f896917a1cf9725e2378c2b0ba8c3f8477d1ed1f75fd09341614","d093c8f7302bac66a19d9554b50bc672a1369ecfa8b13de4fed4e15524a01428","7648dfb5f6802f8590a39f828affe2fcdb5a30d3b85e48d19826bd74e48207e6","3fe54e8a1314d95af7a9ff5c24975b6b8c55b923838ae926af8f4b6e6d8f8473","5d9e4935d6625baec16e1bfdcdc107f32640fdb474ad5875440cc4d3fd9096c4","f2a89a264bce226e9a76bd56b201a7407c921a60bb23998c103015fae7b6643e","33e608d19c096b0431304bc1dd3c4fc3a73c0d53416276bfecf0b41402a6f296","88f60ec524c9a4bddf2e395b4d8bca4b5a3befe67d37564cbe514a7861b03346","7920a10cfd5980f5ed0a5e03c7836c5b3d4706916bc619b3beb8fa9b7ac9914d","214dc4f7c7b99db6cf9a6f3a247d38a4e4a22e8ab8cfbbe9f886d229226606b0","dd6051c7b02af0d521857069c49897adb8595d1f0e94487d53ebc157294ef864","79c6a11f75a62151848da39f6098549af0dd13b22206244961048326f451b2a8",{"version":"55f7725c16eced0b3f9e057e4da82f1c682829076c1d27270a2d0f3e42fa7045","signature":"753dd66f328749ae1ac357742bb4c3b47a1b3cdbb06838aac6a749d521d6076b"},{"version":"735d22f4abe28ed395ea0c2c4b7a2b52eb3b6e0713bf2d471ae7549ee8691862","signature":"d3bade8f948fe19be2f3c8795e4dc5f46882788856a3790f7c232c6def97e457"},{"version":"174008fa3d779ca2eca5bbc45758508e9a4a5d6b2d84083e32d4cb7a09c0cae7","signature":"409d743b81777cdda34d2a169f0d2f514bb93407131e25e5db624a80af7545dc"},{"version":"31e1476b0b272fef8b43bd7c5f185d9bb7c56de12b1a99ac6b720aa1ac8d6601","signature":"83051d517c095f00db04f0e2a415ecf823a7b594380d16a2e11526a4c7270c40"},{"version":"7c4d277e0368d91f884c05245ce0fc9bc1e9bbd32edee4a47fdfcb541debf021","signature":"a551ae53a66e51075b75611342d5e14cdedfd52f6fc73d6cb477be0052055455"},{"version":"855211f7217a677445107c052fad6221a680d56ed25231c4c5f57d41dd47f2a8","signature":"fdb55982dd5db0e69da6ccebdb3bfd1ec846401b54b347e43b540307ddea35b4"},{"version":"7834aeb87cd340a9ee4bd1ed0f6e623a5791dd0c5ce7adb5cb00ea7a4bc1743b","signature":"9aee0d97be6007b1a23a954a0d743636a9325955712d5c8448f7659d62f16caa"},{"version":"1f51fbd53e6b80b44bd951ce628da70973d4c5e7b3826f0f7fc04aefe646be63","signature":"f5eea89fa575d36ba79cc5ef0a0c989a64d3e1c882330164d42af0b19086c512"},{"version":"74cd99b524ebd37064e8fbc76c3c500ae673bfe18848a44a00fb242660bd81a8","signature":"a37a0eeaf96905fe73ba2a74f7acbc1002cdc00422633c5c8c708b422ef6f7bc"},{"version":"592df7acd3a07b333e7979e5be63674931d20c45a413e0e8c565367a1b952804","signature":"774ed8d39b6171d534bf4f154cbfa2eeb6b8c8439870f4bb521d5c471acd2c12"},{"version":"7ab40caddb7466f305788251e5525b1181fd8fe29e58aa81ac35941c6d711949","signature":"0b77238ad8ac49348db146253e6badbb87f72a8b5885776b49212c9cc9500c14"},{"version":"37e6545d522ebcb2ff00ff7d88f8a77bae1645755ebed89735825e59fac6692b","signature":"83f2f0d648cf1ab6569db67af41afcce312a4f634072b5e193ae7a2cb341ef3b"},"e7c2f40dc99121500ad108a4f86541d29cac105ed018f994c7c5a2836e77b257","90e930283286ab117ab89f00589cf89ab5e9992bc57e79f303b36ee14649bdd9","6d48a6c907c668a6d6eda66acec4242e367c983e073100e35c1e234c424ad1a4","68a0e898d6c39160f1326ef922508914498c7a2d0b5a0d9222b7928d343214eb","69d96a8522b301a9e923ac4e42dd37fc942763740b183dffa3d51aca87f978d5","ff2fadad64868f1542a69edeadf5c5519e9c89e33bec267605298f8d172417c7","2866ae69517d6605a28d0c8d5dff4f15a0b876eeb8e5a1cbc51631d9c6793d3f","f8c4434aa8cbd4ede2a75cbc5532b6a12c9cac67c3095ed907e54f3f89d2e628","0b8adc0ae60a47acf65575952eee568b3d497f9975e3162f408052a99e65f488","ede9879d22f7ce68a8c99e455acab32fc45091c6eed9625549742b03e1f1ac1a","0e8c007c6e404da951c3d98a489ac0a3e9b6567648b997c03445ac69d7938c1c","f2a4866bed198a7c804b58ee39efe74c66ecdcf2dfebef0b9895d534a50790c4","ad72538d0c5e417ee6621e1b54691c274bcacaa1807c9895c5fa6d40b45fb631","4f851c59f3112702f6178e76204f839e3156daa98b5b7d7e3fc407a6c5764118","57511f723968d2f41dd2d55b9fbc5d0f3107af4e4227db0fb357c904bd34e690","9585df69c074d82dda33eadd6e5dccd164659f59b09bd5a0d25874770cf6042d","f6f6ce3e3718c2e7592e09d91c43b44318d47bca8ee353426252c694127f2dcb","4f70076586b8e194ef3d1b9679d626a9a61d449ba7e91dfc73cbe3904b538aa0","6d5838c172ff503ef37765b86019b80e3abe370105b2e1c4510d6098b0e84414","1876dac2baa902e2b7ebed5e03b95f338192dc03a6e4b0731733d675ba4048f3","8086407dd2a53ce700125037abf419bddcce43c14b3cf5ea3ac1ebded5cad011","c2501eb4c4e05c2d4de551a4bace9c28d06a0d89b228443f69eb3d7f9049fbd6","1829f790849d54ea3d736c61fdefd3237bede9c5784f4c15dfdafb7e0a9b8f63","5392feeda1bf0a1cc755f7339ea486b7a4d0d019774da8057ddc85347359ed63","c998117afca3af8432598c7e8d530d8376d0ca4871a34137db8caa1e94d94818","4e465f7e9a161a5a5248a18af79dbfbf06e8e1255bfdc8f63ab15475a2ba48bd","e0353c5070349846fe9835d782a8ce338d6d4172c603d14a6b364d6354957a4e","323133630008263f857a6d8350e36fb7f6e8d221ec0a425b075c20290570c020","c04e691d64b97e264ca4d000c287a53f2a75527556962cdbe3e8e2b301dac906","3733dba5107de9152f98da9bcb21bf6c91ac385f3b22f30ed08d0dc5e74c966f","d3ec922ddd9677696ee0552f10e95c4e59f85bb8c93fd76cd41b2dd93988ff39","0492c0d35e05c0fdd638980e02f3a7cdec18b311959fc730d85ed7e1d4ff38a7","c7122ba860d3497fa04a112d424ee88b50c482360042972bcf0917c5b82f4484","838f52090a0d39dce3c42e0ccb0db8db250c712c1fa2cd36799910c8f8a7f7bf","116ec624095373939de9edb03619916226f5e5b6e93cd761c4bda4efecb104fc","a5b2fac17f05a2a7d497c788908a8fe623e1f398f09d18385d0ae8331a1f9b2a",{"version":"845231ab6db129f9b8b44fd96e2fac0a1a6013f386cec13fc86cee7d568e01e6","signature":"e01416a6dcfdd4188064225a4a92b089e3d2dadb35fed93ce2ea86aa79596ea5"},{"version":"76e1f29b41be9c0a2e84005700cf2f4cf66669a94b10f96762c5f2bb9f37510a","signature":"523cbf15f5b12fdc02dbcf3f59602623f8b49c4cc351678ce8b0106575cdddbf"},{"version":"c86996569867769d58817e9086be5738d24541a998ee46c1a2cf94b0c5b0de9b","signature":"4ad04acd56c3e38efb481fb2d8476dcd8a9c8a960007930d6cb27dc11a205cd9"},{"version":"0b3981332af2e1a351c29267233bfd99a864ac928d6db07677e8e94c8a86573d","signature":"601f54229af6fb8d543b76bb5ec0ad3564177af309e6c9680f24497b2ecedf1a"},{"version":"829105c177d84bbe96f4bb5e74545830c359ea0043df472e5720446cf0753513","signature":"318ad510a11474c5533ba5c4d983ead544ddb7c731d505f837bba04bd229e2b5"},"6b98bd8d87f15c2ec66a98f66bb2f3f676e2811873612100aca6c66d4ee0651e","e68cefe327be0e10ee06cf6b7a8c0f11271640333d1582c2176741896aade369","0ad75079616eef71e14b6e86ce8437e7cd400198bf9b6c3ceee0ba57ae282159","f6518e0e7bbfeea52e5f4c30362d3daae20f0bd2514c5e42329ab908b3c5b758",{"version":"c1eb752c34ecf18ac2db54227d7a15de448310393d3e7f2831cc00534c2dde2f","affectsGlobalScope":true},{"version":"9310e46a396163bc23fdec234ce1b921cb76b0ba0708d311c8d8e3e72e7dd296","signature":"1fe73fc793aaf83d591a1d3615f73f0302557a494a53f14117a9972c94eff174"},{"version":"18d9df3d30abf30b86817d2ae58fc6ac23eb3423ff525ae7bd0c5fce5044676b","signature":"e579707bdbf2fb2f234d828c2483e7853230b49331b1d850ee06b8a758c7d4b1"},{"version":"10fa656279fb9dd59bc269233ccb69ec49ac1dbac9739af9a1bf551d53dbdd34","signature":"d93154f2df3fdc0ed19aeedbb8d5a166138ed8be262e6941123afc0ac9abfcb3"},{"version":"7b0c927b37843de191f8d946e07d73a0a13d128da7f805a25d4d0413c407f365","signature":"e3f64e4faf41b276ffb8548b1e5d38373b1542a508ab81db1db2cc6be36c7140"},{"version":"01ff4e2c59f2a7130fbedc83463a4f48c6099900ecdb046d11ea750b8613b994","signature":"e90e7cc46c171015b85c48ffac8ed7ee671a4e2664525a221b3c2d8053bd26a7"},{"version":"fcbce3342ea96485e1494b7b4476f62491f92394d6ac7ffa0c29e4102056ef61","signature":"d3c5de4926195de3a7a099cb3542b612433113d0a6a659c47eb60e1d5ad1f2a2"},{"version":"a7d409a477e80d8c4d6f882df1a1e7ef30262fa0f2b6636e8db971ba974cdf45","signature":"632eaa75a6b89ad5d0fbac3d0d53d1ecbcdd9156ac9dd029b151c0f8e129021d"},{"version":"f819fe8b8bab4e07a50b0c69fb22afd7689dae5df0ccd70f0aeba4e6aab52927","signature":"c925907df79da778266763351a817d7a46c91a196c5a73e8cea0b980762367db"},{"version":"4b57529b441f6064a137504460a3f0c8ebd1a77bc5e520e231ee83a52a9f5e26","signature":"1a31f1ac40c3a9a250a703ea9968818e4c39795e9a83b18add85919f0cb04212"},{"version":"3aec8a01324ea94b9b80ce7594fc0ad1a29b7f9bef0a8f34109ec8f9b03ec622","signature":"7d2aa9d698ad9ac0680019bdb4ada0b6bd508175596df4e9c04fc3facf97217e"},{"version":"a1df2919635b7e00a4caad958dd9611f4316b2726e1ceb600bf1479fcd1c947a","signature":"987424b8cf053999f9d16099748fd08239a2ce0adf18ad3865aaf8cd96aa367f"},{"version":"03364a921cc27ab7f37534990c6ff9f44de6254df9a26f7af0fb002e2b3754bc","signature":"502967e2bb883f549eb197836b31a73d81441c391ad64ae4c0af52d569acdcdd"},"2c8381a3a5a1663aa1723b31f3718dda9a359ad8eef9342b79f553de106b7ead",{"version":"7a799c3d7ba2f8fc62bfd0d99db09a3809ccc48631f6cf6f3845efb004d53771","signature":"3fa413ebbbdaa0f8828f535bb355f93e43cacd0c102ab42f1370582a81f86272"},{"version":"bee6bc9aaa1a80322b79139dd4678649124c2cd296ac4ea4be7ae4213467e4e5","signature":"1af65d5fe91109e8f7acb54c4eac4be04de51e8a73b0ffec29efe7611dda6064"},{"version":"8ac6877d2454595838465ded01b1df6ffc9741608cf57ae2d1ab1de10b2a43c7","signature":"ad8168b630459cabecafdcb1d7cf4ee392378b844f1a2c0a1f4076746353e881"},{"version":"0cdbbbeb4c113ebbf5d67bc831187a914ae21f5a10c30f9bf590ec5542d6abc5","signature":"a0e0ea052567ee5cebed2cc5477c13ad16b7a22c013289c584a24dbf99a18dac"},{"version":"e3063286f3d8d79ed91cfec9da7a2a7cf3afc619a65b8f8963236ecceedb52fb","signature":"9252d09ac5347af5299a01f03093e9b7797ce8fa0dc4cb5e91e9821dffc539d8"},{"version":"7ad05effd619ea61252e77613566a6d7bb2bb7df5e8e4fcb0901527dd7693874","signature":"8f0bfef301de5dd4edef02ce5f27c974804bac0e85b0d9099780a36a7a01415c"},{"version":"c87c581ec72854e2ba20594032997455c1247865e68ff2c36eb2e36b1f13f763","signature":"c81845e54c13efb1afba20dfc3405974eeb31a8b56f12c48fc706083fc701874"},{"version":"f95988b807080290e69c97bf3d2e4caea228bed62f00afb9d9c338a6d479491f","signature":"7cb9b21bc26eebfb12e25c993a8fffb446a6ba03fe9fd9c708cc18654d3807b9"},{"version":"01220645354668bf780ab3a7f048066fdc97d796ba615426c765a9d03eb6537c","signature":"059bb8b0812d9f254a3d55e9a33e84695d29ea33a9ea27b15aa3718b060291d2"},{"version":"69cb421a0eb50c2f1a3a0494b0cddf5f6bc7e87e8fd59883d0627a489b630f5d","signature":"5c8b679451d0002800d285b6eda00fd8558e164356d00b443754906a7914aedc"},{"version":"b6b39627826d5e5bb41b33270f7ef8e742c4dad72dbedbf7f74c518e7a667a62","signature":"5ab35976988e7876cd3edb3d9b1ab8fe21cf702d7f537f1f85d05379241ec533"},{"version":"fe8dd4c21fe0a01f939d9c4d7d89b5301e6fad15eb7501110df21767c4f66a00","signature":"97cb1929f6dba088771f5205717b4ad352ce8855a6b2204a0ae52d707577eee5"},{"version":"edb512fefbcc6a8d56152baaf10ba682390da3c2564a1367da5c0b6a95c76152","signature":"531a5ef8c0145c627ca127c72aade0c479d6b3cdddb1c44af80d3faee5d7037a"},{"version":"c10bd4082914c7ff2122ec3cecbe17f7976639c709d61c04f9802953d1167b4c","signature":"940563dce54ed6b35b925ae91f092c76069e9b8c1c812c67f8943ecfbb18cb48"},{"version":"d12f84c607ae2fdacd168a4ed6880984dd17e381e92abf5481d3c82245ed9df3","signature":"1020c2ec276be6918d5bb46645f36015f2e95b350f0a7acf1f1e243470051f5b"},{"version":"2e6a358a86c6274fec354b87606a8dc65b6bccebd69ea08c4c59994c4d7c430b","signature":"1603754639d0b7f6b1d52c7140d5d53397b5c59f7f79404e3b206e3059cbdbc4"},{"version":"69f9fa2229e8b0ce59bb9cdc0b56e5381e2cf15893d9c87e76e7239e2480de4a","signature":"85b7d67372b590853f0cfb3925e0a160117d229529c095a782a34457644cd3ef"},{"version":"a7632716634ac0c0eabec02599cacea885402c2f404ced39afed4e051ffbb662","signature":"ca35d6f65a48aaae8e82db60b51575d53509ab08d4c15221a3bbc22049b0a48e"},{"version":"d6d7fed213447759e3bd013668f6c8082827ee61b8faf9dae5f2886700bd1c3c","signature":"a543bac4eb2e84d142d159af2cb88ca52c6fb0789630fd2de9562a9d466a17d7"},{"version":"e82beab635aad29a73f81e0b27a209eced0ef81fcb2848d90bb753711a5f964c","signature":"a3bbaca3c729e9b31d12b05b45487f2a76dd5e15e7603f68401b93660339c6d6"},{"version":"63af7a548deed01b5781a8a593d87898a43a4992c065e1e526b1ee43620d2152","signature":"ae2f11564e895c7efdeeb2f8ce51080696fa1a22cd6d65192550b2189bf6d34e"},{"version":"856542fb0fe03203fbe04ec22b32088a7b2cf907bc0e3e1b2a0aa24d7131de34","signature":"d7e6d9f5dd8cad1417beb05354369c795443bde84115dc56591f969cae4c3b06"},{"version":"e8959625bb7e1d5f6235478ef40d348cb37524cab0508259906c395984c8bca1","signature":"d4d35c6d034e11664303208afda92841dfd55916812916c65a3c0e826a5c5eed"},{"version":"c6e4f4063136f98cec735233f97ada37d66ce6a10ff957895486bc20a78be127","signature":"3d50eba2be8124c9f5dacc0c5f0a7a2a06b53ebbf213e6d84e21e490aa6c738b"},{"version":"8ff4d92b0bdcead6473c3d59377b7cff58c98a6ec3826c09f124518ed20fcef0","signature":"824a3054a30d44f3695061200339f7d2a9379a8839f6805613ef334cacdc6fd6"},{"version":"c8b1d892027a6a89198a2aa122fc7b06664bb88949558ba2b0ec5ffdf8313e9b","signature":"e0fba2c9eb8953a5ef282990fe0e433adfdc3ec365a616a5939d06804838d680"},{"version":"d52d2d4ecce4be06663906081cf73ebb731caf719da9b38e9ae575d681dcbfed","signature":"49b93d62a2340758a660a9582ce60972cbe8d06d50eaf2ce9392cbc0ceb47d6c"},{"version":"50d88595b1c8c104d69b7c484904208fe1c95d74058753c1821a82ac6aed7ff1","signature":"0272164bd6d152ce5798136253fea27fd41b690fb8024695ed18a842c4736ee8"},{"version":"4975e8ebc9404081eb9b92dbb5f02f811bac5bf56a10ea1d32d28e1176d4d6af","signature":"6c54981b0c30b1437413e65ea69c7fa580d6aef0f1eb6ca98383e0a6ba64ead0"},{"version":"ee8f0914571b15b1ac1add81ab26c70c0dc70f5a4edd8a7dc178d408c8a99db8","signature":"5d1285fe743ef460c548afde7cf8b6d52d3de8e70bf0e7e412eff9ec63119f7d"},{"version":"daecb82d81449d04e934f6f6b649b5f61c527c0eed87ae539e34c260e9e3daf8","signature":"fcb838e87fcc32fff0531a5a781c3d319b4dd894f402db28aa822e682594ca09"},{"version":"c31cf37274ee5a5be74ef3ba15f6361fbd2a2c3d1a1d070c3382b4404fa3eb12","signature":"699b0675fc5f91b0c625001d9d1928eef53935566266649520a61d6545605cd6"},{"version":"555c6d42b8d123c39515d87296ed35c3491532ca8fdb44b65269edfcf04fcb3f","signature":"33a28b5b1253c5ef38765c36b8dc866ec04596157e750362e1eaac0ca9b68ec7"},{"version":"f3b204fefb8d01ea82cfc6b39b52f800f336110784ec7d39068feba6568c0d4d","signature":"efbd14644387dd06c15496abbef10e94235f2dabfd992798f5fda55942d81d08"},{"version":"14fbe1820e154eca9d2d4c8407fc24f4ce3ced6bb7802546d7a64ae93d1b3fdf","signature":"3839ab424bde5c5a0b5b4d292e3b1d77b6a45a9732e1ae07b71ae40c6dc91998"},{"version":"113a697ba5e2e102e75c83ddc6343e39ca9ce23f6018ec9bd59bc2b12a9c1241","signature":"e5de9263d7736389dd3d77779834e25f07017f87e42e9c300982b44d69698a30"},{"version":"6068cf68b3b8a00f469e399f0325f8e1c88c3f9166827381d9aa0126ca5ac83c","signature":"e5f007ae77624fd55a712f22d69122a80f756070c7aae93213e6b65624486db6"},{"version":"ef3562202eeb5bfd24feedcaeb2b0e6165cb37089abed6580aa33c01e6226f4d","signature":"e8cd0f44a3255fcbfbe39afcf432b4a7d7356290ac4eebf2fe21d310e2e3f454"},{"version":"dc2bf905ec74d65f28dd4ba5b46cf435231bec5a66a5c268482cc794d1e2ad55","signature":"f85e55665a9e34e03d265bbf131feac7700426ab62d6c9bf6333a8da4c10ad29"},{"version":"30e92a276de9b1b674e08620644bc57624f018d387239289c4e2228dcd10a3d5","signature":"316ba180e84274b65f583e2013a24eaed608e4ccb303039ee93830136c68494d"},{"version":"0eac2bf327e8b7b490bf9209754c9f75cc6b89513dbde2dd62f1097e04be6267","signature":"14aa0b16f8426474ea896804b711c790bd01931ab08a5348802540053b95247c"},{"version":"3fa2a65c158bb55dea0974dc1fcce393cae8249fd404051f9742be82454c1297","signature":"bfaa8cc7b6d4a6f1ae90d8163bf292b277152214d9c9b0fc7cf3bc0b4b4992fc"},{"version":"5622dbddaffc8a63b2d141edc4f6ea90cbfd022112da2d5fa8716dbbb2d32d32","signature":"366a812b9da4b5541515ae54e088777f4fcc72ca546f7bfc3c6708680beb8525"},{"version":"999cf76897ee9a27e0b8a624b5b4fcff65f5d99f71e1c0703abe93f40f5e04f7","signature":"fa8d02e5e47c4a3222bf4f2b5df62794e413758ba934f1b8c0e6854b39b1a53b"},{"version":"e44a8e49c24db82a77502eb054cc6f76a71a30809c139319848054dd07ee8ccf","signature":"4ca3b26d8e91b256f3a9c0248e0e36a82360227ea4775e3c8e5592cb8a0a97b8"},{"version":"23e7ec8790aad65a3a2464ecd1e1310853848ee2eee1da50ddd682870e5cec95","signature":"b6ff6ea1acf9849634ff256c5d7488d6dc157c52a2b49d65c555d15fae917b52"},{"version":"46c177d3952993f71faec87bc085009922dce71d9801feb063a38bafa536eb96","signature":"3b8ab0019f511d96210cdb19968a912ed25e7765ef2d84d1dcbc388d44636b0a"},{"version":"e0098d09ea9a7c1dd72bef3910f2de354393e65b95a708e72c573812727fac46","signature":"eb77c4ad6226d90f111131c84f8eff708bf5d67e127e1cde8dd48ca4909fa256"},{"version":"72f518a062facfd01316f2dc8672638377723896ea06ed0a3af57c3816dcd210","signature":"a8a1db2440be859afcdd88cdc382547527fcd0b4a6ad5ba15722e1fcc4d74a50"},{"version":"f76235c9301457991552d8394e1652b203e694685f097c41232ef19f0f61f8e8","signature":"49e8f1ff01d849dac065adcfd40235cd76706c3e58645ae611b7b935a559a7d2"},{"version":"4db2cacfff5c44998ed20aa77c77b1ac91ad1229b47abf5dbbd3c4c3f172021c","signature":"3cb603d3e0fd1227415fbdf4a6be668867b882fe983125bc3d4545140eb85f0a"},{"version":"a42f6ac9cb94b1050e7a87149d2a1451ef52d6cdfa2ee390e4acb67ab2ed4e79","signature":"254c53ff8349895f27e2d8bd15e0417cd283c313509bb69e731355e1aa19584d"},{"version":"8f2bee8c7b2285457e781de95d68b6b0dd46f9cab7b64f556856cfb57b722904","signature":"578df33a41fce848ec143fe7563570c128384964b65dc551d128c94d27d750c0"},{"version":"5bd936df56b0dcad6b6a8195a5391291f6bb6e333c9209613164bcf865f7c0da","signature":"5bf737e490a323a4e9d7fa7ef3f7d30812c77f2c6ec4662cbad22ae815d2c02c"},{"version":"2864990531539cdc2b17a0dc3fb4bfb22764b1fcf0ac5c02d78d915a884793a4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"171b86be6b227ed08f92be4ca5ca6eca727f8b5978fad7c5f5429befa360a67e","signature":"fa223e4d7b133d5d645bbdaa41efdef1ff51d77850b1309be1246fe937219f8c"},{"version":"c38cd464af5e6448492e9b39291a36d6ccd7a73cfca5e0fa6de60ea9ee71d6bd","signature":"76de8f93594a998c0d45616de12e00c58f9f76c8c9f525365f3e8e1bd44084f1"},{"version":"0010718b07d3c95d2619c5d6b8f2faf1b9081250e77e00e9d4065879794d72cb","signature":"19c4c4127c9b78518f82121f46269a696603f0dea7a1def0abf3cb9198c6e3f6"},{"version":"e42bf388246ef39e65282e1833c03757a20def522ae06cf6f16f4ddf55c0e7f0","signature":"49fdcd338724de02a8f0772689de2d9627e4dfff49e6e87cdc03e9648d1c343e"},{"version":"bfef3b90e1e6ef4d420b482cf7f0aea355f33f2af5c50df816cb03de9d1db042","signature":"78b59c8bf5d1a7507818f82ae3aff4a9473ebad78d4be7fa1b739071a6f9410f"},{"version":"f1e42da71e137522f772c1202c6d78801c94ca9633a28c5abb72a778dd71b0f2","signature":"bb5993c833ec989e8eb3e96121d987fecf4d209fe8b0c230cadc1d4aff198cad"},{"version":"322285d89fe0bdf0c4400fbde72f5b5c1fd27319f2aa0471555d2341e18b0d16","signature":"3bd672f935d2a9993e743d4ec2809af264c43b88c0aeb3fe1dc808fc15ba0224"},{"version":"69334a8eaff3c12a8f44f36e217d52a9b0372d200df08851522c8189a808c610","signature":"b2b6533eedb7e00fc4d95fb5d8a294ce06d57e6d4b8918f6d25e47070458c9f0"},{"version":"645d894501151741471c91fb6db218308ff7dfc5ebfe7602516eb65842ac86cb","signature":"1b4b27c13471036d5e83da80f8d0b4212c88e8b32f9998d31c9176c6908f0fe4"},{"version":"209d98c5e12311ff257b23558c0b88ba1cd26733b4074ff1b95059915b8d1522","signature":"6323fbd525128d95549d6114cbc1a1fc681ec50d5a43cc99eda28944d2e4eb9f"},{"version":"a8e6e1eeca3469b02ea5d7a7d45f3e8644a586dbabb326665ef3a9403065b4cf","signature":"9ff1c710e01ee04a829b6a500bd56424cc9d78cf3be4863c1f8eb9d5d3cdeb44"},{"version":"2668975416bc53560b3247b082e11971411b4680a92bd87dc0d5122628700465","signature":"75e364fd2312c1c141b7ab058a7ed21396aed069f6a3ec735f4d27b54b6a376d"},{"version":"4fa3f5a2950c7e9542ba7a97231ad0a3db829f6018f223251c8f50698dd19595","signature":"7c18d246d7c66db9b8780bd833db0b85a8ffeac426e31882f6e58fd621b5cd06"},{"version":"9884c6803a6f46a991cd775b56b5b032e44b6d6e189dc0ae168860ba99335fbc","signature":"4ba1689ea5725ee72120e5f0e0e94fa607ea689d42f969d0712a901f40e56e36"},{"version":"fea784b7346e9406add4ea601b525a4d9d205fcc3a033810212d078edf632649","signature":"8eff1dfa4ce8d37278fcf154915c7cfa4eefb8c32a91e39530e5ffa3a862f726"},{"version":"92aa76796b4e8b3eed7c6616f88bf5fdecbce86d24ea322a1c1819210f61640a","signature":"77e6a072d05a2a7341b004a74f58507445c691abe2852925d72b6e8dcabe4b1e"},{"version":"a184412c008488b029e63dce30269b2fe69670555a98ac4eddbebb0a79a92e8c","signature":"68661eb2aa4f16cc21568c72c3ded435f0d1e9fac4efc6dc2ecf5a08ba38830b"},{"version":"1089bef18c9af543b9a3ffe4b0613fd8f32b48377c1d728b1ccd186e037f1774","signature":"5ec8fd8606d57448f146b944dafce2579276deaa1cb8b1809620f7e583c28ad0"},{"version":"dd33645c4b58ebbad848f4cd3a85fc37c8d4580d698476c7085d7ad1205da9b7","signature":"8567509957a904fd1107486f148116df412f6759385ba053d50d8280f0a3f561"},{"version":"1aefae23c34827dd6ab18d02825922ad2f7323f749f25e2a52495ef0710647f5","signature":"9353f0d8565fb784ee7549df8ac71e722fc55ce6b8efdfeafdba904360354492"},{"version":"7d86939fa1c743b8e2e40fda6259b9e2936cfd3d0e068fa7f52f9a8b7f99b941","signature":"870ade85b42ad549c44040e2771ef3810e86b6933e00ba2094d5d782ba31da68"},{"version":"adb4b0d431d1fdd47d68db5f2dddaf8cf4ec003257233c5b8b55e01b278f4e6e","signature":"68168a4889cdb5e0dd87c3ed399fe9a1f8a9d9592f875286a471c4e6918af6ee"},{"version":"df18a5deff02316ec8b2d52542cc9bcf6476f967d1af836b2bc708130955ebe7","signature":"900eaccc76ef4acf86a13bf19b0a2493da306b0d588f8c63e074ac7f06269e11"},{"version":"2119d32bb1cc210927973f5ba9a55f1a36e49f3122820bcd4c1572a4ccbca236","signature":"0bb7d081c3c563c0e9b2b2f893f9336189555bc928402adc894d198551e4a823"},{"version":"be2fd3edc5b429904e77e4224a73c9e30cba824b014bd6b2016789fb74ad8e00","signature":"180b00d6e4c5ca346a3bd3475c9b628dc5f26b74d51e84900fbab5ba3810057c"},{"version":"ab4199339d4a29640ca71ee49f84f9f19d14ce92332408f0116f0b64a35048c5","signature":"4c238f58d71d6dfde29189c826b35dca9efb78f5c2ff3d98f1a7fd450cae0b58"},{"version":"7421563a2edc0318c088e3830804956e00f423c188720e36389f62dfaee8f7f1","signature":"3aab8e95c212b64c81c25fe79d67b557c6eda2ba5fd24972ba0fcdec4b05c2a7"},{"version":"6afe949c199174cf230c8bab72b4178133dc31043456c510132dbf3901bd89d4","signature":"9616b27281d0821116ffc91adca2a373210cf7ed1b23003f1bfc58a2ed472f2c"},"8ce5238de425a6f0a41e6f72608a6cb96cdceee81c7e9df8d0a2ee773e05c64f",{"version":"7c69fd3b5bc8e1891867bbebeee39d895cba5223d41ff3055fe3c77b41550737","signature":"da3537e2632522f6e22825f1282e763bee9da612ef1ab5853ea914393c48aead"},{"version":"cc45ecc709c889efb9d028ea4985fec684cd4f2163f225408961cfda1a5e069a","signature":"c49fa7a00955e6fffd7e216ecf06c1a9fa06686a9ecfb20d6cbc83e791f93bcf"},"0ce26a97620df3601a7a7772f9bcda4f578aae8650264a2470df875daf01070c",{"version":"b066ec2c59873b124f03b5c58c17a1ef8f211ddb978b0e05ff2ba2d4af5fe8d2","signature":"9f56db05e0b0d52b9784b88e20785a791ff17c3445d76cec69040fc724f02b8b"},{"version":"642ab86045cef42a72a26bfc5d13d86695eada1e4b07002f7b13ac77ebae0c15","signature":"7e3b040a24584c80bd5993ffd3bec604ec0c60e2d9bd2f09c1f6e3f924c4f7c6"},{"version":"ca5c27c1f69c86bf83f42d92701b8b1adbbbd17a57b392d9e5d8460b7a76cb71","signature":"004aa591593adbe48713a79d8d965ee4741790b0dacc65b176ecce6118fa7e80"},{"version":"4e9812b55f5cc2fb2a5e74664b09fa354bfd05770b9de3e2306a99a593fcbcd2","signature":"df1000dd0c0573d43d704a9c936a1b9bed75d7e41a5eccb1b1c187b87ba63a95"},{"version":"43556b73cbf4fb0170db8578c02b95b1adeb3b656c5d7e5d621e359983201098","signature":"3d1529f34f937cf0e30157234be36c57526061c9ee24e0f2420068d024d051ea"},{"version":"fa6c2b408602492342aa91780d6657b62fdff63701274ead7e50549e5778e530","signature":"2e87dedeaab9a7585a13810fccda13570364b5b0707cdbcfa36b1c8a35ad22da"},"ac43eabe4e1360e61175d04974735545162c06debc9caf6682d62f5aeeac77f6","ced54d3c2d1e97761ff4330cc58a0624f067e53b41c1bd9d67dd0e4c99e9ba38","2ad1d0fa1d903a3e368663a9d5ea1e512bad05f6d88a157fd3b792523cac143e",{"version":"bcd66f809e3aead207651537f3af4f3b08dc809fd9d41df2f8343922367a06ba","signature":"8b0927b80db67e7b9fe8b499bf6d4b26e39b040ac74222d2e885a38735b279d2"},{"version":"cfddf743df711fac21903309c6eb976216400886b6a900b472a1b2a806760bca","signature":"2d783c7c39c341a43f217ee18fc1747377150f2d8241525249a54eab95f03e7c"},{"version":"4781a811ca4059412e0db72b26732ad605172fa5f9159ff56cb52938ac0def14","signature":"5752560103fa5405c8ad49d04cbde11dfa7f0650dea77f61673049e42ec1a64a"},{"version":"aacfdc264d23f1a1cecf8a99924f4de5ebcae66f78ff8cb548484eab6b50bad3","signature":"6c54e8707abe067444f902d2f2630b7c273b83943dd0c2b8556731e6cf654017"},{"version":"09010c44775b3e55937f531344b328f2eb2c36817d0c2a439ba349a36141a80d","signature":"606351c34ade05a310c5c3fe6dc4012943edb02e8633cac7bf9d9861593b0415"},{"version":"f127c5cf8b672186ece0fdc124dcf2f69b4380ed1bf7e8523f00492c71ec7c9e","signature":"c0ba1a924c931e26ea2079b9fc2ac9ac0f0d5bc57e4127a451432fa2b849fb6c"},{"version":"b184281f32eba74abab3562a42bbedf8a71105ae7ed826995fa6d7f1be7b6ef5","signature":"28c7b1ab6e9d1bc2259f48b89c3a2aa3f1183d1179dd156142963530798ea7e4"},{"version":"f18f0fe23470bbdeaa8dfb4c1ec6200641fcc375ea7fb4c251173f09ffc2492e","signature":"c8e64e3f78f0f0ebc11e30e0f43cebc7351d6550059078c0e56a15114f546fd7"},{"version":"dc0843c66b996b4e2f1c15f7e8285beb89bf470ae62efa7d804009e7424a690c","signature":"dfbff2ae57405ff12f6c3df7b6bbdfa5ceca34686c4fff699635ed68d711b91c"},{"version":"3f1b815159525c259530b03f11ec45ef97d7590751bcfcde653ef15c05b3cc8e","signature":"2912bf3ba15663f986f13f940d50fba0dae738531606f668c58acacb2aa11bcb"},{"version":"d5253dbb752988e07dacbfb5ea6a131579e798be1ee9628a9d88c9e9b9c69b2e","signature":"f599c91078dd005664c858c07a48f188ce99ba956794daedffb5bd7f464af460"},{"version":"717034cf38a90810c676facc7975b2f66ee72f52dc345e22ba569566825ca955","signature":"1f28d9095d68854414cbfc91a3f2c67792506a5259d8ada54037ad270d680c9b"},{"version":"1d4f0c050796e9bb0659683e6571b376de10f1158605cb81e6fa92a052a0e720","signature":"35804d3057af93c95c4c039a4b30c077ddec863f3badaa208f4bffe6e330d84d"},{"version":"b07982caad59ebf7d03fe267362d2e2114d11f99eb2084a215a8abbf9a83a68e","signature":"3541fac42135b6ba37d3c4256e502b4ad60aab34d1620be0397a266d54be0836"},{"version":"4d60af2d9d7fa641721b1174400951865d67b19e421d6b1991dd946ec8f7caf4","signature":"7855e6aecc1b1f99bc46a7d904bf320066a55cc984742fa73df30176b2e0f815"},{"version":"0b57ed7e953bceefc8e0e08e14d12673c78ee3d3803e6e8489334bec6465a8be","signature":"a4eefb323680ed0ced25ce5f5f4259ab3df5ab53d20bfbf3ab6de5b638328ac3"},{"version":"cc8dcbf6b3f071d202bf1681409d380e382376538fb971748de40bec99aa0f7f","signature":"f1f30a43d2a870ef35cbc754abacfc169a25ec51d4471502d096b072286b85cc"},{"version":"c8053a3476774812e1e790b307e6657c7137364757172bb4622c7a8f0199e9c0","signature":"8b7e093b2b827bb3666037a38fdadc6d378b3f6d8db8469b1de5ad8c8d12cc03"},{"version":"e16f1d68e107471f2b2f48d0821c7bf34556fd5f18276a115b524946773898f1","signature":"5467d87098c50a5fe584fda6105e41a6417c18fc716138b9a1f142a31c69f3c9"},{"version":"d44a8134842fd26fdce97b9339647254ba8abdb50be3a56639378eba943099c6","signature":"03e47cc0e157df23b3e2ae5d90253eb7a46efd88fa9276ac2339f0fe68658879"},{"version":"9dbaa21f992aac18e1266ab740da59c5f8ddbff3573b65b35a22e89263fc0108","signature":"78657799a138e5892a6b9d7bf75e02da4ae02cb759cddfe91beb017c0f5a21bb"},{"version":"93555554a7134185da8af641c9664e03f4fa6e6e8e40f67227a6204e621088af","signature":"4e04f42512137ce1ac0877c74bec880f9446a36c298b0194efe08b084039360d"},{"version":"6895869f560b84a599d03c62c8662a94d365e36229109056c53eff8a1d8614a6","signature":"9b4d5b270c67a4cffb3b931990c852c0584dfb08760bd766db539425cfc86d7c"},{"version":"ae7931fff7ebbbff6d523ec1be852a44e345ed5d389675fb6dbfdc78e2fe578e","signature":"c36aa1821b96b9412f2dfa8bad2c856781fb5eec266cb9f402f0fb95e6956a69"},{"version":"204d7a39268e1d848ebd7b0bfe3b99785bfe7cc9643ae4080cb002596ae2d1c5","signature":"fa7fd0697641273d34ba623b0332801279b73cd8cfa81d82c76f9bb551a1d7aa"},{"version":"d178af85c02a21d1914f2245350a5bb386ad641c0be7b7f2d2f149317a0244e6","signature":"c1a86f66c8616507de25f82a7cf078db20248fbe021dfbe126366a7aef7324e7"},{"version":"339644fd398da2a7cc4e1c41966dba20b237333ddebf426d3a9994db25daaf36","signature":"524137fec20ea3fa131fd51725fb89abb1abd36e219ecac86ce2d9d4fe53fac0"},{"version":"53e4dc1937b2893c973eaaece14c0bc8194e160d72c8cd989f83a7bbd986e157","signature":"37172ea969d1ce5dbf8c121581470320964f0615a3ed444951a3bad6a2547e7a"},{"version":"ba6079f220563c1a12736b6a4734d823ff720d63276638e4d68313b2057bb2e6","signature":"6d29947ca762022479e7247b51781f436ece345453a31e88f275ca8ed2b56bbc"},{"version":"f2de88df89ebae7fc90644ea28353d35d1307762e9bdd06ef4d0b34b1f582a20","signature":"a153b7b7509b0946faaa3ab49f4880fd4df435aae77eb5bc4cd03317b8fdd0b8"},{"version":"dd280d415bdb21b9be28ea29387228e2a5129b4fc0ca7561bf75f63c8af82603","signature":"8a966e82d8201316d8b5ec62e21124c4150d8c397c1eff3a7663cabe465fec8a"},{"version":"05f7f3f72f3c4ff7be71ad76bd3c54b841af2716cd45c0409b69267c40bf4b5c","signature":"c84ece806bbe8e1c802d25885cad117e457a98f492851b3362a63a2f6073e743"},{"version":"479596103d166c3b5422abc0ecc92654e13c12f6c1d01f0f1c1762b5e6483284","signature":"b84850a6329535c10994ab2a8c85998bfba6f28d99ab7f93fc4518e2ee1c31b7"},{"version":"091899233651d8c3225463cbaaad997e37cf45deea92dc640d359114ce511315","signature":"1caea5457e3424b9a573dc20ff3425b5c6515aa860ddb587e42938a01ab030c1"},{"version":"09db0455520c461821db3f73478121d8c83c6bde0e85a613fc3e195e924b78e9","signature":"37f5d5a7c2bf6ac450c6d2d54000478944ad52a6cd99d6e523c3ae9b61f9096c"},{"version":"a641ae142cebe1d8f2a215e6a5215f005511e8f5d43ebd3245d79b64af792e53","signature":"aff3e0763b7d1fa099f96f88ee81c3eef54da97491482fa6a17056cd5f029e50"},{"version":"a8d290f3440c7b2a2bfd2e3d8c38d070032287263c9e4ede95e7cee95525d6e9","signature":"4e1d041d804cbda546b1be2d533d469116f83cdee9900987cf6a93f19302a83a"},{"version":"397b8a93edabcbd6ba410a3467c489ebce5a0cdbe7f76a9ab6ff1538b1b2a2aa","signature":"900eaccc76ef4acf86a13bf19b0a2493da306b0d588f8c63e074ac7f06269e11"},{"version":"a585d3ad36b3b384e338bc79fa2aa8670ddfe9e8c85d2e5ea0d9a3e8547a2ab6","signature":"6aa8260f2b42fb1cd3315209fd5b38f6390fffef3ce6b54b709a663ebf0b1afa"},{"version":"2a3b410e7ba209b3897da3de39e1246a35bd819e67ff296f99eb4e505299eb1b","signature":"c5d6b5a6487296c42a7f846021f14760aeac5bc5637ca12d6e00282d7d4b0204"},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"374686249bbbe6253c45a71eaaa29f34db9d63941787d984fa9599b221a236a0","signature":"932300d4836aea52234fe8bc72940efc15b4a442b407224ebf6a46f9d168c378"},{"version":"4779f2af6b6c0b60361ea2eb7f7826a0af8e6df8ecbd5199e06cd2368bac345a","signature":"a7ae9b101949418fb5e2228a96c8ee4c8f39134fa9863323e54348a92c2a9e20"},{"version":"6d66c03d5d6005c3ccb53d71e8984c856a4479416146ba95c68fba533a424552","signature":"f3e6a732fa843555ad36991f6b3de681916223568a98512a4a15a7143db7e39d"},{"version":"5a22bc269c6800c046ef49da643412bc373daeb9c858b1a9c3f4d28e62523b8a","signature":"dd5da76d9b463bd53d6f57f60ed73f95d5ced409f8e3457ac3ab339b17eddc1c"},"9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159",{"version":"783f6600976b8e42be5a20ef069aaa52cf673aabfab0ec33a8ac8c8a1f1736a6","signature":"ecf1c9a3179cce4e38e4ff03a02d32d91fc59699ca91d490a478c20c5029217d"},{"version":"138fde06219271d33be4f62c419257ebdec4f39bb81b9de02b5852ce9038b4e1","signature":"00188a348cbe1c1ddff5843d6fee7847985ec0e02d33b4b6a27d8abb7c310cdc"},{"version":"b1862c1e2980b5d533c47698736ba135d58ca8555b161319dd60509cfd8240f2","signature":"a1949f6531a858c6305c94f2a3910d5b6cf43e597b23deadaa7fb26737bc3b34"},{"version":"278fe12439c110d90328a9751e98cd54f2b51f86d5b658458498117ae253625a","signature":"aaa638fb707e2a12eec3f877b011b78ca643b34e12d076e8a546a1958c337806"},{"version":"eb2e72fe874ac16b4726cc7d385c330141ce153e4caf302959b920a75967e6df","signature":"3a9c0600283bd64fa472802c9b61b5eb2c53a71b569ebc870754475dd3c61f5a"},{"version":"c3b08a6e80cda7e67c8958a79f441a599743fb210388479ad0996e56face7942","signature":"cca5139e2e0cc66c5311c24f4127f6876a9be52d545d90deedd89ec1394bda67"},{"version":"d07f7d4456432fd0f34facb9b7eae279a1de80aef6f825e6d398de4113df702f","signature":"641b3f824bff72fed7be84cff3f49b9dd9fc34007f4ab800e8261beb90f1b6af"},{"version":"3f3ee04da6ebe5a68907045da6267170477379b3d77d771a50c96d5cbead0a14","signature":"dfc05c13298d7ae26e910ff642cc37938b78e57fbadcc15a681937e7513d11b4"},"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","fc2e03a21b84c1d090e6c38dfd1bd440f6c5c9e83a9dd3a81f8c7391a1fb928d","1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7",{"version":"91a53371b2f685f540e73458d7f1341b6d1e1e8fe04049e37fa7174caf87b55a","signature":"03ffb417cbc3020215ff040378a90965ec18d5fedf9c6f102d2ec059c8ce46ed"},{"version":"f39552063e602789e191d4da940ccce127263c81415e0dbe407d0e0b5390b837","signature":"01ac449a6f2d322c0d36dc1a47b96c25ea0549b5167dcc3af1cc879a31ad4f15"},{"version":"c5b213fc657ef0f7b22d83fe3934ebd16c598cfb571dd8ca1c6d9f25dc6dc614","signature":"fabd301ea9ff111d62e8f6b533ccb1823686c68af953bedeb39b22c0b0efe30d"},{"version":"8e69ddbfb293605e2be5ecec48dcc3e4d5180d28068c10610cf885744c4e90ce","signature":"212f691bfb4f090545ef2fee57902dfa149adb42237a010cf919a167dc86f1dc"},{"version":"5f352bee081b98ccf2e8f733093e00073cae07cab0f811fde682fdd3b41679ab","signature":"8fd8f713403b949d813eecc2e9c755151e43e6f73ec4142cdd539ec05f62922a"},{"version":"ecbd2488714c38eefee0ca235a1ab53eb56d4e71449b2534b9a48e2d3b79c510","signature":"1dc83861f779ee1eb42d3363c27cb8e6dbd0f34560316ab7dff9db36a3b7ca93"},"f27ceff855a62107882ee34add1b1ef0e78531b6b1017947e34668f05a8aeb5c",{"version":"ff88b6d36fde5fa1424a590910367a39761fdf9dd2dab2e60403a4f52ddaabb1","signature":"314e54f8580f4a66a59f99f7385fce15ee65509f28c8c6b1e86089da8135aa14"},{"version":"1417e57ecef259a43ac39e77b9e4efd85facc36bfe5b784d4634335fd2f246f6","signature":"b0f5700703d969263c71bc5019029daf83529e8464d965ede8c984a0890055bf"},{"version":"04b3f53ab9e2eb45a548202de8020b2908e6c28d00f7b43ad3b0f210b498049b","signature":"315b8549ac37a1bebfcec9d99e12e94ceb0a2d10f1a58b9f3b053d968903cf47"},{"version":"4591a6139f6099d7f644e77a873e19cd6d85c7ebd17a0d16faaadb1cb32d35ca","signature":"315b8549ac37a1bebfcec9d99e12e94ceb0a2d10f1a58b9f3b053d968903cf47"},{"version":"c65c7a3ecf3d79d9a4310cdf49bfc09b293f704d833d5aa472525b7b06e3b255","signature":"b0f5700703d969263c71bc5019029daf83529e8464d965ede8c984a0890055bf"},{"version":"cd163b1ccdb27e7fd1b0d23582fb49c4e6e89675c00878430d3bd1d4806d7a96","signature":"8ca9df8111b16b718c426f0ae2c126b1ec1f623167c6bcf9a5029c0a68eaf335"},{"version":"b567dbf3b27eae3ee829dab2da2e793e3248add0e77338dc188774ec09b4aa87","signature":"355dbb9c5296388c709436417f8cc5ef189965a55aff35bebede5a6180d55800"},{"version":"bc7511a11580d00eeaad8dc94eb151773033795bb709d7093a06b8a54d3a8315","signature":"28bb86d72987dbb50c52029aad57961e2f38eba30fe6739fdddefb082c1f71a0"},{"version":"5b36a6a39ac7ccbd4792dd029fc5c88d613629b2dc11426f07c7bb03796c31c1","signature":"7d288ebc281cdfb3fda13907e4c8931bff8c6f0a20580d19aae63f9d484c50d3"},{"version":"b75cd841f7dd2006a6def708f3e0bd1c1d1c40ab46528e514d5c720ac27fd17d","signature":"f0941b9636aa669d6e0b0b54053eda225e7f47ef659c2841da0e273e405b2325"},{"version":"2f05ef95e35a7413dbccf4e1fb8bd478bdbd4f2badeb47df75a3bf61c8e08cca","signature":"a8902497fe8f5c8d787910dc7de333f4c682588c356a3063b10f4a483eb5a7de"},{"version":"71bbb6b712641733fcce4898c03c715d25170649c0ac23aba1fa0998b5f5b5d8","signature":"eda78b0b8455a755e9ee60e3a81d0b8737f0ab439db38cc869ce66a39610d460"},{"version":"3ef8095751c6332b287dafad7eb23be9721d26ef560bd3021bb7051a729e5295","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"7162927b27fc605c0a3386b936609a4fb6fb7ac294e18d63c333665d9a81e1b1","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"e4569217f66bd37c57dd3f0fe1c6d7b8d611f6b7f480352868d2b23aec569873","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"ac00c8b5eb268b1a44bb11af2e37b832d835cf77f09432fad427cfe6a685fb1f","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"d04deffc0fe353bd65f13a231fcc8ed355678ed4ebd45050485cbc76699f8b21","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"ecab5534fc8c6a8a4a5df2298534fa40495460d18c8ee8e10c143a662d926279","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"c47fee8f0e32d57240e64e73eabd38b4c8e409f9e4a47413f3ce517ec3883f9e","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"7c47e15a9d45a08ffa1801a692fd2ef4e82bbd21edc84e5cfdbda7fd4beb6a8c","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"20f07bb337c22bfc7b015b58362acce61ea37e50fd4d19ef01c8fd05c441f884","signature":"53491ac2ee3415700e0f9921a440539e3e53905c584ae7203afe700087f6f0b9"},{"version":"4bb18a51f1f0f33709f200a88b91687327b219be9f27c6eb8763bb10365e4c16","signature":"6d0f4cf6f9d1173cfa86fc39273390551245c576d46220126ec9be917209a38e"},"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","ee660a1f2acd3d7fc7b28df06c4e2125229666c4d72e5455ae3841bfd222f684","2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a","25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","b83139ae818dd20f365118f9999335ca4cd84ae518348619adc5728e7e0372d5","e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118","62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d","41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","813012c29722611e2115e0caaf9901967ebe218069d67381a6931461bfda2099","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","1b831600aabe1c065830d303d087189e1ccfc93a0ef1882eb58a336ec1ce9f2f","75f191b59fe7ce72d1d7d11d0f329a193843f54af93182fc5a65c37d0a82c85a","cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","0e98636c7e08d34d02e4e54397079dd2006cb2da8a5772b0373a618bef4b86b7","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","d406b797d7b2aff9f8bd6c023acfaa5a5fc415bfbf01975e23d415d3f54857af","7d71b2d1a537fe41760a16441cd95d98fcb59ddf9c714aba2fecba961ab253b6","a9bd8a2bbd03a72054cbdf0cd2a77fabea4e3ae591dd02b8f58bda0c34e50c1c","386cc88a3bdee8bc651ead59f8afc9dc5729fc933549bbd217409eabad05ba3e","e9220d7877433c4fe84fe1c506c67c66bb4a829c6ae1bbd3598c65fbd562f016","4568af45c8c99972fe558475289bd66ac390b74cb4b17ad8cf6328550cf05ead",{"version":"010ce854984c3eb99cd8cebf54eca858fb39e83b06e962e355f539f4aab70079","signature":"f6d2aa1646bad1d2242a4b1430d476189eb8ca9fd60752a5d81247a3c1f242c5"},"1c335c43fcd4f39e1fdf77bdc399a98fd7a783189181a8c8e8645ce51f4c26e0","3a4021d6b737115fee1732ed1a05bf93593f5766678046ea91221c9202721f8d","f96f3c445afc7d65d4790386e37c5b57f095f285cc89b8315b209fe0c81837c1","a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8","bbc1d029093135d7d9bfa4b38cbf8761db505026cc458b5e9c8b74f4000e5e75","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","3777eb752cef9aa8dd35bb997145413310008aa54ec44766de81a7ad891526cd","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","3937b50a4de68f6d21614461e9d47af0d8421ca80fc2a72b667ca2151f492120","68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","5d08a179b846f5ee674624b349ebebe2121c455e3a265dc93da4e8d9e89722b4","6d09838b65c3c780513878793fc394ae29b8595d9e4729246d14ce69abc71140","fefa1d4c62ddb09c78d9f46e498a186e72b5e7aeb37093aa6b2c321b9d6ecd14","d7dbe0ad36bdca8a6ecf143422a48e72cc8927bab7b23a1a2485c2f78a7022c6","a3c1977660766af91c7b8efe2106792f0f6375bde60a4f28a438242bd93c558e","202f8582ee3cd89e06c4a17d8aabb925ff8550370559c771d1cc3ec3934071c2","f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","824b16ad7c427369795e52a636b3e50f4a41188e93e060e931c1af50b781e29c","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","247a952efd811d780e5630f8cfd76f495196f5fa74f6f0fee39ac8ba4a3c9800"],"root":[373,376,388,[598,626],[642,649],[849,869],1128,1165,1166,[1170,1172],1199,1243,1247,1248,1334,1335,[1349,1354],[1548,1551],1554,1555,1580,[1595,1612],[1626,1631],[1636,1656],[1659,1664],1666,1669,1670,[1928,1930],[2020,2022],[2024,2032],[2406,2453],[2455,2465],2467,[2469,2482],[2484,2487],2575,2581,[2613,2615],2617,2622,[2628,2638],2661,2666,2667,[2669,2675],[2677,2687],[2690,2707],[2709,2715],2723,2725,2727,2728,[2730,2733],[2738,2751],[2754,2766],2768,[2839,2850],[2887,2891],[2897,2908],[2910,2992],2994,2995,[2997,3002],[3006,3050],[3052,3059],[3063,3068],[3070,3091],3168],"options":{"allowJs":true,"checkJs":true,"esModuleInterop":true,"jsx":1,"module":99,"noUncheckedIndexedAccess":true,"skipLibCheck":true,"strict":true,"target":9},"fileIdsList":[[61,66,67,68,369,370,1553,1610,1631,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1626,1631,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1627,1631,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1628,1631,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1628,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1629,1631,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1629,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1553,1610,1630,1631,1635,1686,1687,1688,1689,1896,1897],[61,66,67,68,123,131,369,370,1247,1635,1658,1659,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1550,1551,1607,1635,1663,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1213,1242,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,359,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2615,2617,2620,2621],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2661,2666],[61,65,66,67,68,352,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2615,2620,2621,2633,2635,2667,2669],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2669],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2628],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2633,2672,2673,2674],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2677],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2678,2679,2680],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2682,2683,2684],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2633,2635],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2661,2686],[61,65,66,67,68,369,370,639,1553,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2634,2661],[61,65,66,67,68,369,370,639,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2613,2614,2620,2621,2634,2635,2636,2690],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2628],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2633,2691,2692,2693],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2636],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2615,2620,2621,2635,2690],[61,66,67,68,359,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2628],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2621,2628],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2634],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2696,2697,2698,2699,2700],[61,65,66,67,68,369,370,639,642,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2634,2635,2669,2677],[61,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2634,2704,2705],[61,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2635,2702,2703,2706],[61,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2710],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2581,2621,2628],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2635],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2024,2575,2580,2581,2612,2614,2620,2621,2635,2731],[61,65,66,67,68,359,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2635,2669],[61,65,66,67,68,369,370,639,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2635,2723,2725,2727],[61,65,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2714,2715,2728,2730,2732],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2621,2630,2631,2632,2695,2709,2712,2713,2733,2739],[61,65,66,67,68,339,369,370,1686,1687,1688,1689,1896,1897,2575,2613,2615,2669,2741],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2699,2700,2747,2748,2749],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2615,2620,2621,2661,2709],[61,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2709,2739,2754,2755,2756,2757],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2661,2686,2759],[61,65,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2730,2760,2762,2763],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2633,2634,2635],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2615,2758,2761,2764],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2613,2615,2669,2844],[61,65,66,67,68,369,370,639,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2634,2635,2677,2723,2725,2727],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2634,2754],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2613,2635,2734,2736],[61,65,66,67,68,339,369,370,1686,1687,1688,1689,1896,1897,2634,2741,2754],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2580,2581,2754,2761,2849,2850,2886,2887,2889],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2635,2754,2886,2888,2890],[61,66,67,68,339,369,370,1686,1687,1688,1689,1896,1897,2634,2738,2754],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2730,2734,2736,2737],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2661,2686],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2575,2580,2891,2897],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2902,2903],[61,65,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2621,2666,2846,2847,2848],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2613,2614,2615,2620,2621,2635,2910],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2739,2900,2907,2908,2912],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2613,2615,2635,2910],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2918,2919],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2739,2916,2923,2924,2926],[61,66,67,68,369,370,1127,1686,1687,1688,1689,1896,1897,2838,2844],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2615,2768,2839,2840,2841,2842,2843],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2844],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2933,2934],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2739,2931,2938,2939,2941],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2947,2948],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2739,2945,2952,2953,2955],[61,65,66,67,68,369,370,639,1666,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2636,2754],[61,65,66,67,68,369,370,639,1666,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2636,2669,2754],[61,65,66,67,68,369,370,639,1666,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2613,2614,2620,2621,2634,2635,2636,2690,2754,2960],[61,65,66,67,68,352,369,370,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2628,2633,2634,2635,2723,2725,2726,2754,2761],[61,65,66,67,68,359,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2636],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2621,2628,2699,2754,2965],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2636,2754],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2970,2971],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2739,2968,2974,2975,2977],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2691,2692,2693],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2581,2612,2614,2615,2620,2621,2660,2690],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2981,2982],[61,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2580,2581,2634,2730,3023,3024],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2621,2634,2909],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2634,2754],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2666,2699,2754,2761,2888,3025,3026,3027],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2628,2754],[61,65,66,67,68,359,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2634,2635],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,3029,3030,3031,3032],[61,65,66,67,68,369,370,639,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2634,2635],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2634,2635],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,2984,2985,2986],[61,65,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2635,2677,2988],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2628,2666],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2613,2614,2620,2621,2634,2635,2677,2690,3034],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2615,3034,3035,3036,3037],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2634,2635,2677,3034,3035],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2617,2620,2621,2634],[61,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2613,2615,2621,2910],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2690,2990,2991],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2575,2980,2983,2987,2989,2992,3010,3011,3021],[61,65,66,67,68,162,163,164,369,370,639,642,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2634,2635,2636],[61,66,67,68,369,370,1127,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,3040,3041,3042],[61,65,66,67,68,369,370,639,642,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2620,2621,2633,2634,2635,2636,2909,3041],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2634,2677,2754,2994,3006],[61,65,66,67,68,369,370,1127,1686,1687,1688,1689,1896,1897,2575,2580,2581,2615,2621,2754,2761,2888,2909,3007,3008,3009],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2635,2669],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2575,2581,2613,2615,2621,2677,2739,2754,3012,3013,3014,3015,3018,3020],[61,65,66,67,68,339,369,370,1686,1687,1688,1689,1896,1897,2575,2613,2634,2669,2738],[61,65,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2620,2621,2633,2634,2661,2686],[61,65,66,67,68,339,369,370,1686,1687,1688,1689,1896,1897,2575,2613,2634,2669,2741,2754],[61,65,66,67,68,339,369,370,639,1686,1687,1688,1689,1896,1897,2575,2581,2612,2613,2614,2620,2621,2634,2635,2636,2754,3016,3017],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2734,2736,2737],[61,65,66,67,68,352,369,370,1686,1687,1688,1689,1896,1897,2575,2580,2581,2621,2633,2634,3019],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2998,2999],[61,66,67,68,352,359,369,370,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581,2754,2995,2997],[61,65,66,67,68,359,369,370,1170,1686,1687,1688,1689,1896,1897,2022,2575,2730,2963],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2998],[61,66,67,68,352,359,369,370,1669,1686,1687,1688,1689,1896,1897,2575,2580,2581],[61,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580],[61,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2645,2647,2648,2649,2651,2658,2660],[61,66,67,68,369,370,1127,1669,1686,1687,1688,1689,1896,1897,2666],[61,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2666],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2580,2581,2621,2635,2909],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2580,2581,2634],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2895],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2581,2627],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2579],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2996],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2576,2579,2580],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2993],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2626,2634,2722],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2626],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2753],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2615,2635],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2727,2895,2896],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2576,2583,2612,2613],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2616],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2579,2583],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2724],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2767],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2689],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2726],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2580,2612,2614,2615,2661,2709],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2580,2668],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,3051],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2579,2580,2626],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2621,2660],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2676],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2729],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2579,2708],[61,65,66,67,68,369,370,1669,1686,1687,1688,1689,1896,1897,2665],[61,65,66,67,68,369,370,1579,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1579,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,374,375,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1665,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1667,1668,1686,1687,1688,1689,1896,1897],[61,66,67,68,368,369,370,387,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,371,372,1686,1687,1688,1689,1896,1897],[61,66,67,68,131,150,369,370,371,1686,1687,1688,1689,1896,1897,3167],[61,65,66,67,68,329,343,369,370,371,1686,1687,1688,1689,1896,1897,2575,2660,3054,3062],[61,66,67,68,337,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,352,369,370,371,1686,1687,1688,1689,1896,1897,2581,2995],[61,66,67,68,369,370,371,1165,1670,1686,1687,1688,1689,1896,1897,1903,1928,2459],[61,66,67,68,369,370,371,463,868,869,1686,1687,1688,1689,1896,1897,2020,2021],[61,66,67,68,369,370,371,463,868,869,1686,1687,1688,1689,1896,1897,2020,2021,2463],[61,66,67,68,369,370,371,463,868,869,1128,1545,1686,1687,1688,1689,1896,1897,2020,2021,2463],[61,66,67,68,369,370,371,463,868,869,1547,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1916,1920,1928,2459,2466],[61,66,67,68,369,370,371,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2889,3000,3005],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2929,3000],[61,65,66,67,68,352,359,369,370,371,1165,1599,1686,1687,1688,1689,1896,1897,1927,2459,2575,2580,2581,2615,2699,2700,2754,2958,2959,2960,2961,2962,3000,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2580,2629,2637,2638,2670,2671,2675,2681,2685,2687,2694,2700,2701,2707,2711,2730,2740,2742,2844,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2580,2700,2730,2743,2744,2745,2746,2750,2751,2765,2766,2845,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2700,2730,2742,2844,2899,2901,2904,2905,2906,2911,2913,2914,2960,3000,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2700,2730,2742,2844,2915,2917,2920,2921,2922,2925,2927,2928,2960,3000,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2700,2730,2742,2844,2930,2932,2935,2936,2937,2940,2942,2943,2960,3000,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2700,2730,2742,2844,2944,2946,2949,2950,2951,2954,2956,2957,2960,3000,3001,3002,3005],[61,65,66,67,68,352,359,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,2700,2730,2742,2844,2960,2967,2969,2972,2973,2976,2978,2979,3000,3001,3002,3005],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2966,3000],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2980,3000,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2983,3000,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,3000,3028,3033,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2987,3000,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2987,3000,3038,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2575,2992,3000,3039,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,2989,3000,3011,3021,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,3000,3043,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,3000,3010,3047],[61,65,66,67,68,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2898,3000,3005],[61,65,66,67,68,352,359,369,370,371,639,1128,1165,1686,1687,1688,1689,1896,1897,2575,2581,2612,2614,2615,2620,2621,2622,2635,2995,3045],[61,65,66,67,68,352,359,369,370,371,639,1128,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2615,2620,2621,2635,2995],[61,65,66,67,68,352,359,369,370,639,1128,1686,1687,1688,1689,1896,1897,2575,2580,2581,2612,2614,2615,2620,2621,2635,2995],[61,65,66,67,68,339,369,370,371,1165,1686,1687,1688,1689,1896,1897,1927,2459,2575,3005,3069],[61,66,67,68,369,370,1128,1170,1171,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1928,1929,1930,2025,2417,2419,2421,2422,2423,2424,2426,2427,2428,2429,2430,2431,2433,2435,2436,2437,2438,2441,2445,2448,2456,2457,2458],[61,66,67,68,369,370,463,597,868,869,1128,1402,1547,1548,1686,1687,1688,1689,1896,1897,1928],[61,66,67,68,369,370,463,597,639,641,864,869,1554,1555,1600,1601,1608,1659,1661,1686,1687,1688,1689,1896,1897,1928,2020,2021,2022,2024],[61,66,67,68,369,370,597,868,870,1165,1170,1670,1686,1687,1688,1689,1896,1897,1928],[61,66,67,68,369,370,597,868,1686,1687,1688,1689,1896,1897,1928,2026,2029,2407,2409,2410,2412,2413,2414,2415,2416],[61,66,67,68,369,370,868,1686,1687,1688,1689,1896,1897,1928,2418],[61,66,67,68,369,370,597,639,1166,1247,1353,1686,1687,1688,1689,1896,1897,1928,2420],[61,66,67,68,369,370,463,597,598,625,626,641,868,869,1128,1555,1599,1601,1609,1612,1625,1631,1666,1686,1687,1688,1689,1896,1897,1928,2020,2021,2022,2027],[61,66,67,68,369,370,868,1555,1686,1687,1688,1689,1896,1897,1928],[61,66,67,68,369,370,597,868,869,1128,1686,1687,1688,1689,1896,1897,1928,2032,2404],[61,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,1928,2425],[61,66,67,68,369,370,597,868,1550,1551,1600,1686,1687,1688,1689,1896,1897,1928],[61,66,67,68,369,370,597,856,1608,1686,1687,1688,1689,1896,1897,1928,2022,2027,2029],[61,66,67,68,369,370,597,854,1608,1686,1687,1688,1689,1896,1897,1928,2022,2027,2409],[61,66,67,68,369,370,868,1686,1687,1688,1689,1896,1897,1928,2027],[61,66,67,68,369,370,597,639,850,1608,1686,1687,1688,1689,1896,1897,1928,2022,2027,2412],[61,66,67,68,369,370,463,597,868,869,1595,1686,1687,1688,1689,1896,1897,1928,2432],[61,66,67,68,369,370,597,861,1686,1687,1688,1689,1896,1897,1928,2434],[61,66,67,68,369,370,597,851,1608,1686,1687,1688,1689,1896,1897,1928,2022,2027,2407],[61,66,67,68,369,370,463,494,597,853,868,869,1599,1686,1687,1688,1689,1896,1897,1928,2022],[61,66,67,68,369,370,868,1663,1686,1687,1688,1689,1896,1897,1928],[61,66,67,68,369,370,597,852,1608,1686,1687,1688,1689,1896,1897,1928,2022,2027,2440],[61,66,67,68,369,370,597,868,1353,1686,1687,1688,1689,1896,1897,1928,2442,2443,2444],[61,66,67,68,369,370,868,1686,1687,1688,1689,1896,1897,1928,2447],[61,66,67,68,369,370,597,868,1128,1247,1334,1554,1601,1608,1686,1687,1688,1689,1896,1897,1903,1928,2022,2405,2450,2452,2453,2455,2459],[61,66,67,68,369,370,597,868,869,1351,1352,1686,1687,1688,1689,1896,1897,1928],[61,66,67,68,369,370,868,1686,1687,1688,1689,1896,1897,1928,2022],[61,66,67,68,114,369,370,463,597,868,869,870,1127,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,626,849,868,869,1128,1247,1349,1350,1354,1548,1554,1555,1596,1598,1599,1607,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,369,370,463,597,868,869,870,1166,1167,1168,1169,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,868,869,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,463,597,639,868,869,1247,1553,1601,1686,1687,1688,1689,1896,1897],[61,66,67,68,131,369,370,463,597,626,849,868,869,1128,1247,1353,1354,1548,1553,1555,1596,1598,1599,1609,1610,1611,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,463,597,868,869,1127,1247,1600,1601,1612,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,868,869,1128,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1353,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,626,868,869,1128,1550,1600,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,626,849,868,869,1171,1599,1608,1686,1687,1688,1689,1896,1897,2028],[61,66,67,68,369,370,463,597,626,849,868,869,1171,1599,1608,1686,1687,1688,1689,1896,1897,2408],[61,66,67,68,123,131,369,370,463,597,868,869,1247,1601,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,626,849,868,869,1171,1599,1608,1686,1687,1688,1689,1896,1897,2411],[61,66,67,68,369,370,463,597,626,849,868,869,1171,1599,1608,1686,1687,1688,1689,1896,1897,2406],[61,66,67,68,369,370,463,597,639,868,869,1600,1662,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,597,626,849,868,869,1171,1599,1608,1686,1687,1688,1689,1896,1897,2439],[61,66,67,68,369,370,463,597,868,869,1128,1353,1608,1686,1687,1688,1689,1896,1897,2442,2444],[61,66,67,68,369,370,463,597,639,868,869,1600,1686,1687,1688,1689,1896,1897,2446],[61,66,67,68,122,131,369,370,1247,1608,1686,1687,1688,1689,1896,1897,2454],[61,66,67,68,369,370,463,597,868,869,1351,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,387,597,639,869,1165,1670,1686,1687,1688,1689,1896,1897,1903,1916,1920,1927],[61,66,67,68,114,124,369,370,380,387,868,869,1164,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,870,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,369,370,380,387,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,131,369,370,1246,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2483],[61,66,67,68,369,370,389,561,868,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,389,561,1686,1687,1688,1689,1896,1897,2468],[61,66,67,68,369,370,389,463,561,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,644,645,646,647,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,626,639,640,641,643,646,647,849,853,857,859,860,861,862,863,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,369,370,463,494,639,640,641,644,648,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,649,850,851,854,856,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,494,639,640,641,849,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,626,639,640,641,643,647,849,853,857,859,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,858,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,648,855,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,640,641,642,647,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,643,644,645,646,647,648,649,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,626,639,640,641,647,849,853,855,857,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,850,851,852,854,856,858,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,648,850,851,852,854,856,858,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,626,639,640,641,647,849,853,857,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,645,648,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,494,645,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,494,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,494,639,640,641,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,640,641,642,858,864,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,494,639,640,641,645,648,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,641,848,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,389,561,868,870,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,369,370,1247,1336,1348,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1600,1612,1686,1687,1688,1689,1896,1897,2019,2020],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2019],[61,66,67,68,124,369,370,371,375,1166,1686,1687,1688,1689,1896,1897,2021,2450,2469,2470,2471,2472,2473,2474,2476,2478,2479,2480,2481],[61,66,67,68,110,122,369,370,1247,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1246,1247,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1171,1246,1247,1353,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1247,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1246,1247,1549,1553,1608,1686,1687,1688,1689,1896,1897,2449],[61,66,67,68,369,370,463,639,868,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,869,1128,1608,1686,1687,1688,1689,1896,1897,2405,2410,2413,2414,2416],[61,66,67,68,123,131,369,370,1353,1599,1608,1686,1687,1688,1689,1896,1897,2026,2029,2031,2415],[61,66,67,68,123,131,369,370,1353,1599,1608,1686,1687,1688,1689,1896,1897,2026,2031,2409,2415],[61,66,67,68,123,131,369,370,1353,1599,1608,1686,1687,1688,1689,1896,1897,2026,2031,2412,2415],[61,66,67,68,123,131,369,370,1353,1599,1608,1686,1687,1688,1689,1896,1897,2026,2031,2407,2415],[61,66,67,68,123,369,370,1686,1687,1688,1689,1896,1897,2026,2032,2404,2405,2410,2413,2414,2416],[61,66,67,68,122,131,369,370,1247,1248,1329,1334,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,369,370,1334,1601,1602,1607,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,123,131,369,370,1247,1601,1658,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,369,370,1334,1601,1607,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,369,370,1246,1247,1248,1335,1603,1604,1605,1606,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,369,370,1334,1607,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1246,1247,1608,1686,1687,1688,1689,1896,1897,2027,2029],[61,66,67,68,369,370,1246,1247,1608,1686,1687,1688,1689,1896,1897,2027,2407,2409],[61,66,67,68,369,370,1246,1247,1608,1686,1687,1688,1689,1896,1897,2027,2412],[61,66,67,68,369,370,1246,1247,1608,1686,1687,1688,1689,1896,1897,2027,2407],[61,66,67,68,369,370,1246,1247,1608,1686,1687,1688,1689,1896,1897,2027,2440],[61,66,67,68,114,369,370,1553,1610,1612,1626,1627,1628,1629,1630,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1610,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,139,369,370,375,1246,1247,1353,1607,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1247,1353,1600,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1247,1334,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,868,869,1579,1580,1595,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,868,869,1579,1595,1597,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,868,869,1579,1595,1686,1687,1688,1689,1896,1897,2030],[61,66,67,68,369,370,463,868,869,1579,1595,1686,1687,1688,1689,1896,1897,2451],[61,66,67,68,369,370,463,868,869,1579,1595,1686,1687,1688,1689,1896,1897,2475],[61,66,67,68,369,370,868,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,110,151,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,110,369,370,1333,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,369,370,1607,1608,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,597,1247,1334,1352,1353,1601,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,597,1128,1247,1334,1402,1547,1601,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,123,131,369,370,1247,1601,1612,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1247,1549,1551,1553,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1549,1551,1554,1607,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1247,1549,1553,1607,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1549,1554,1661,1663,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,131,369,370,1247,1549,1553,1601,1686,1687,1688,1689,1896,1897,2443],[61,66,67,68,369,370,870,1549,1554,1661,1686,1687,1688,1689,1896,1897,2447],[61,66,67,68,122,131,369,370,1128,1247,1549,1553,1554,1686,1687,1688,1689,1896,1897,2449],[61,66,67,68,124,369,370,1129,1160,1165,1686,1687,1688,1689,1896,1897,2477],[61,66,67,68,124,369,370,1160,1165,1247,1349,1686,1687,1688,1689,1896,1897],[61,66,67,68,110,124,369,370,1160,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,124,130,131,369,370,1128,1129,1158,1160,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,130,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1196,1198,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,626,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,625,626,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,123,131,369,370,597,598,625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,1927,2459,2513,2574],[61,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2023],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2203,2260,2262,2362],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2203,2260,2341,2362],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2137,2167,2230],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2261,2359,2360,2361,2362,2363,2364,2369,2377,2378,2403],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2262,2341],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2260,2261],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2260,2261,2262],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2260],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2365,2366,2367,2368],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2362],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2322,2365],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2325,2365],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2327,2365],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2360],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2362],[61,66,67,68,139,158,369,370,1686,1687,1688,1689,1896,1897,2094,2095,2137,2167,2172,2175,2178,2193,2195,2203,2220,2230,2260,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2361],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2373,2374,2375,2376],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2315,2362,2372],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2316,2362,2372],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2096,2097,2098,2099,2168,2169,2170,2171],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2097,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2139],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2138],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2137,2138,2140,2141],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2137,2150,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2165],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2137,2138,2141,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2138,2139,2140,2141,2142,2151,2166,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2137,2138],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2168],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2150,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2173],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2173,2174],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2176,2177],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2176],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2112,2113,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2107],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2107,2108,2109,2110,2111],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2100,2101,2102,2103,2104,2105,2106,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2112,2113],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2379,2380,2394,2395,2402],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2393],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2396,2397,2398,2399,2400,2401],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2643,2645,2646],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2645],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2639,2640,2641,2642,2643,2644],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2643],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2645],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2642],[61,66,67,68,369,370,1672,1673,1684,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1674,1685,1686,1687,1688,1689,1896,1897,1899],[61,66,67,68,369,370,1672,1673,1686,1687,1688,1689,1896,1897,1898],[61,66,67,68,369,370,1672,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,369,370,1672,1673,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1671,1672,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1672,1686,1687,1688,1689,1896,1897,1900,1901,1902],[61,66,67,68,369,370,576,597,639,1671,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,685,705,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,705,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,706,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,657,705,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,666,705,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,675,705,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,650,651,652,653,654,655,656,657,658,659,661,665,666,667,668,669,670,671,674,675,676,677,678,679,682,685,707,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,651,652,653,654,655,656,657,658,659,661,665,666,667,668,669,670,671,673,674,675,676,677,678,679,680,681,682,683,685,707,708,777,846,847,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,682,683,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,707,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,683,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,848,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,848,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,684,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,684,848,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,660,684,848,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,662,663,664,684,848,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,672,673,684,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,672,684,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,656,661,673,679,680,681,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2618,2619],[61,66,67,68,369,370,639,1686,1687,1688,1689,1896,1897,2612],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2618],[61,66,67,68,369,370,1216,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2639],[61,66,67,68,369,370,387,465,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,387,494,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,387,526,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1161,1162,1163,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3150,3151],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3151,3152,3153,3154],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,3151,3153],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3150,3152],[61,66,67,68,122,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,158,369,370,1686,1687,1688,1689,1896,1897,3146],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3146,3147,3148,3149],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3146,3148],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3147],[61,66,67,68,139,158,369,370,1686,1687,1688,1689,1896,1897,3155,3156,3157,3160],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3156,3157,3159],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,3155,3156,3157,3158],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3157],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3155,3156],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,3155],[61,66,67,68,369,370,1411,1523,1531,1532,1533,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1532,1534,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1411,1436,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1398,1401,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1378,1400,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1398,1399,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1395,1398,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1394,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1393,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1396,1397,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1393,1395,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1403,1404,1407,1410,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1409,1411,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1405,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1404,1405,1406,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1522,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1393,1447,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1400,1447,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1398,1411,1447,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1447,1457,1521,1523,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1447,1457,1523,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1457,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1411,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1400,1411,1446,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1380,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1383,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1381,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1379,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1405,1411,1412,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1438,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1436,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1411,1438,1439,1440,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1437,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1411,1436,1437,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1436,1442,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1436,1443,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1408,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1377,1535,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1420,1421,1423,1426,1430,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1414,1415,1419,1420,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1420,1424,1425,1426,1428,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1414,1415,1420,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1418,1419,1423,1427,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1428,1429,1430,1431,1432,1433,1434,1435,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1415,1422,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1420,1423,1426,1428,1429,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1414,1415,1418,1419,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1415,1418,1419,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1416,1417,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1431,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1361,1362,1364,1367,1371,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1355,1356,1360,1361,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1361,1365,1366,1367,1369,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1355,1356,1361,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1359,1360,1364,1368,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1369,1370,1371,1372,1373,1374,1375,1376,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1356,1363,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1361,1364,1367,1369,1370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1355,1356,1359,1360,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1356,1359,1360,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1357,1358,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1372,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1526,1527,1528,1530,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1529,1531,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1525,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1409,1524,1525,1526,1528,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1541,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1540,1541,1542,1544,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,369,370,1147,1543,1545,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1539,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1536,1537,1538,1539,1540,1542,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2892,2893,2894],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2626],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2892,2893],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2716,2717,2718,2719,2720],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1896,1897,2582,2623,2624,2625],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2716],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582,2752],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582,2623,2624,2625,2664,2688],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582,2623,2624,2625,2664],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582,2662,2663],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582,2688],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2582,2623,2625,2664],[61,65,66,67,68,369,370,1558,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1556,1557,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1571,1572,1573,1574,1575,1577,1578,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1570,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1576,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1196,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2179,2180,2181,2182],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2181],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2183,2186,2192],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2184,2185],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2187],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2189,2190],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2189,2190,2191],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2188],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2194],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2196,2197],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2198,2199],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2196,2197,2200,2201,2202],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2211,2213],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2165,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2213,2214,2215,2216,2217,2218,2219],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2215],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2212],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2152,2162,2163,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2161,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2164],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2223],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2224],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2226],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2221,2222],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2221,2222,2223,2225,2226,2227,2228,2229],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2153,2154,2155,2156,2157,2158,2159,2160],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2157,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2143,2144,2145,2146,2147,2148,2149],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2236],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2203],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2232],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2245,2246],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2247],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2231,2232,2237,2238,2239,2240,2241,2242,2243,2244,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2036,2043,2044,2045],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2043,2046],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2036,2040],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2036,2046],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2034,2035,2044,2045,2046,2047],[61,66,67,68,139,158,369,370,1686,1687,1688,1689,1896,1897,2050],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2052],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2041,2042,2043,2054],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2041,2043],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2056,2058,2059],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2056,2057],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2061],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2034],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2037,2063],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2063],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2063,2064,2065,2066,2067],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2066],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2038],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2063,2064,2065],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2040,2041,2043],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2052,2053],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2069],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2069,2073],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2069,2070,2073,2074],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2042,2072],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2049],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2033,2039],[61,66,67,68,124,126,158,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2036],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2036,2077,2078,2079],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2033,2037,2038,2039,2040,2041,2042,2043,2048,2051,2052,2053,2054,2055,2057,2060,2061,2062,2068,2071,2072,2075,2076,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2091,2092,2093],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2034,2037,2038,2042],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2055],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2071],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2040,2042,2057],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2040,2041],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2040,2061],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2042,2052,2053],[61,66,67,68,124,139,158,369,370,1147,1686,1687,1688,1689,1896,1897,2050,2083],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2041,2054,2088,2089],[61,66,67,68,124,125,158,369,370,1147,1686,1687,1688,1689,1896,1897,2040,2055,2083,2087,2089,2090],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2040],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2033],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2381,2382,2385,2391,2392],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2391],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2383],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2383,2384,2386,2387,2388,2389,2390],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2384],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2204],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2094,2167,2206],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2204],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2204,2205,2206,2207,2208,2209,2210],[61,66,67,68,139,158,369,370,1686,1687,1688,1689,1896,1897,2094,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2233,2234,2235],[61,66,67,68,139,369,370,1686,1687,1688,1689,1896,1897,2094,2167],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2370],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2370,2371],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2517],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2520,2523,2526,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2518,2520,2523,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2516,2519,2524,2525,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2517,2521,2523,2524,2526,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2517,2523,2526,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2517,2518,2520,2523,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2516,2518,2519,2522,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2517,2518,2520,2521,2523,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2519,2520,2521,2522,2525,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2517,2520,2523,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2527],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2519,2520,2521,2522,2525,2526,2528],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2520,2526,2527],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2535,2536],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2515,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2535],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2535,2536],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2885],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2866],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2851,2874],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2874],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2874,2885],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2860,2874,2885],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2865,2874,2885],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2855,2874],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2863,2874,2885],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2861],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2864],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2851,2852,2853,2854,2855,2856,2857,2858,2859,2861,2862,2864,2866,2867,2868,2869,2870,2871,2872,2873],[61,66,67,68,369,370,573,597,1686,1687,1688,1689,1896,1897,2489,2491,2497,2509],[61,66,67,68,369,370,573,597,1686,1687,1688,1689,1896,1897,2489,2491,2492,2497,2510],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2491],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2488],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2489,2492,2509,2510,2511,2512],[61,66,67,68,369,370,573,597,1686,1687,1688,1689,1896,1897,2489,2490],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2490,2500],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2488,2490,2499],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2490,2498,2500],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2490,2503],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2490,2499],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2490,2500,2501,2502,2503,2504,2505,2507,2508],[61,66,67,68,369,370,576,597,1686,1687,1688,1689,1896,1897,2488,2490,2498],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2490,2513],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2490],[61,66,67,68,369,370,573,576,597,1686,1687,1688,1689,1896,1897,2488,2489],[61,66,67,68,369,370,573,576,597,1686,1687,1688,1689,1896,1897,2489,2490,2506],[61,66,67,68,369,370,576,597,1686,1687,1688,1689,1896,1897],[61,66,67,68,324,369,370,597,1686,1687,1688,1689,1896,1897,2568,2572],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2572,2573],[61,66,67,68,327,369,370,597,1686,1687,1688,1689,1896,1897,1911,2513,2568,2571],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2513,2514,2547,2549,2550,2552,2555,2568],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2513,2559,2561,2569,2570],[61,65,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2513,2547],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2569],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2514,2568],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2547,2568],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2555,2559,2568],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3003,3004],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2547,3003],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2513,2568],[61,66,67,68,369,370,573,597,1686,1687,1688,1689,1896,1897,2513,2548,2549,2550,2552],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2553,2554],[61,66,67,68,369,370,573,597,1686,1687,1688,1689,1896,1897,2497,2513,2548,2549,2550,2552],[61,65,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2513,2547,2548,2551],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2548,2549,2550,2552,2555,2556,2557,2558,2559,2560,2566,2567],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2562,2563,2564,2565],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2561],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2562,2563],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2557],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2555],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2513,2549],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2513,2514,2547,2548],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2547],[61,65,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2547],[61,66,67,68,369,370,597,1686,1687,1688,1689,1896,1897,2497,2513,2568],[61,66,67,68,369,370,591,1686,1687,1688,1689,1852,1896,1897,1915],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,1918],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1912,1913,1917,1918,1919],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1918],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1917],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1912,1915],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1913,1914],[61,66,67,68,369,370,591,1686,1687,1688,1689,1896,1897,1908,1913],[61,66,67,68,369,370,591,1686,1687,1688,1689,1896,1897,1913],[61,66,67,68,124,158,369,370,565,591,1147,1686,1687,1688,1689,1896,1897,1911,1912],[61,66,67,68,369,370,579,583,584,586,588,590,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,562,565,584,585,586,587,588,589,592,593,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,576,592,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,579,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,588,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,565,579,583,584,585,586,593,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,565,584,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,565,580,583,584,585,587,593,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,583,585,587,593,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,583,584,587,593,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,573,582,584,588,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,595,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,565,577,595,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,562,576,578,584,588,593,595,597,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,562,564,565,573,576,577,578,594,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,576,591,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,563,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,565,591,1686,1687,1688,1689,1896,1897,1907],[61,66,67,68,369,370,564,576,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1904,1907,1909,1910],[61,66,67,68,369,370,564,565,576,591,1686,1687,1688,1689,1896,1897,1907],[61,66,67,68,369,370,564,565,591,1686,1687,1688,1689,1896,1897,1906,1907,1908],[61,66,67,68,369,370,591,1686,1687,1688,1689,1896,1897,1905,1906],[61,66,67,68,369,370,562,564,565,591,595,596,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,585,586,587,589,592,593,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,588,591,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,566,567,571,572,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,566,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,568,569,570,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,563,595,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,563,574,575,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,562,574,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,564,591,596,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,581,582,1686,1687,1688,1689,1896,1897,2493,2494,2495,2496],[61,66,67,68,369,370,565,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,562,573,581,591,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,576,596,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,158,369,370,1657,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1469,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1463,1465,1467,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1463,1465,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1471,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1464,1465,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1476,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1482,1483,1484,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1486,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1468,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1467,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1465,1476,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,369,370,1147,1682,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2771],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2789],[61,66,67,68,124,129,139,158,369,370,1147,1244,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,139,158,369,370,1245,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1200,1201,1686,1687,1688,1689,1896,1897,3173,3181],[61,66,67,68,369,370,1200,1201,1686,1687,1688,1689,1896,1897,3092,3172,3181],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3173],[61,66,67,68,121,124,158,369,370,1147,1676,1677,1678,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1677,1679,1681,1683,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1552,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1617,1618,1619,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1618,1619,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1619,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1620,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1619,1621,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1619,1620,1622,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1619,1620,1621,1623,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1624,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1625,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1347,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,72,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,114,142,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,110,121,122,129,139,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,110,111,121,129,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,112,151,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,113,114,122,130,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,139,147,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,115,117,121,129,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,116,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,117,118,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,119,121,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,121,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,122,123,139,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,122,123,136,139,142,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,106,155,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,117,121,124,129,139,150,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,122,124,125,129,139,147,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,126,139,147,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,72,73,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,127,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,128,150,155,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,117,121,129,139,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,131,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,132,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,133,149,155,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,134,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,135,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,136,137,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,136,138,151,153,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,121,139,140,141,142,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,139,141,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,140,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,142,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,143,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,139,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,145,146,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,145,146,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,129,139,147,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,148,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,129,149,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,124,135,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,151,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,152,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,128,153,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,154,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,114,121,123,132,139,150,153,155,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,156,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,369,370,1582,1584,1588,1589,1590,1591,1592,1593,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,158,369,370,1582,1584,1585,1587,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,129,139,150,158,369,370,1581,1582,1583,1585,1586,1587,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,158,369,370,1584,1585,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,158,369,370,1584,1586,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,369,370,1582,1584,1585,1587,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,158,369,370,1586,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,129,139,147,158,369,370,1583,1585,1587,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,158,369,370,1582,1584,1585,1586,1587,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,139,158,369,370,1582,1583,1584,1585,1586,1587,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,139,158,369,370,1582,1584,1585,1587,1594,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,139,158,369,370,1147,1587,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,162,163,164,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,162,163,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,69,161,324,367,369,370,1686,1687,1688,1689,1690,1852,1894,1896,1897],[61,65,66,67,68,69,160,324,367,369,370,1686,1687,1688,1689,1690,1852,1894,1896,1897],[61,62,63,64,66,67,68,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,158,369,370,1330,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,139,158,369,370,1675,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,369,370,1147,1676,1680,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,124,126,129,139,158,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,158,369,370,1686,1687,1688,1689,1896,1897,3169],[61,66,67,68,369,370,1159,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,124,126,139,147,150,156,158,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2650],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2642,2645],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2652,2655,2656],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2643,2652,2653,2654,2657],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2641,2643,2658],[61,66,67,68,369,370,1219,1222,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1233,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1219,1220,1222,1223,1224,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1219,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1219,1220,1222,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1219,1220,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1229,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1218,1229,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1218,1229,1230,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1218,1221,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1214,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1214,1215,1218,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1218,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2734],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3098,3102,3129,3130,3132,3133,3134,3136,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3095,3096],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3095],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3098,3134,3135,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3094,3137,3138],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3098,3136,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3098,3100,3101,3136,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3098,3099,3136,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3097,3098,3102,3129,3130,3131,3132,3133,3136,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3094,3097,3098,3102,3134,3136],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3102,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3127,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3103,3114,3122,3123,3124,3125,3126,3128],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3107,3137],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3115,3116,3117,3118,3119,3120,3121,3137],[61,66,67,68,369,370,1331,1332,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1327,1328,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1973,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1997],[61,66,67,68,110,121,155,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2000,2001,2002,2003],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1937,1959,1962,1963,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1931,1937,1960,1961,1962,1963,1964,1996,1998,1999,2004,2005,2006,2007,2008,2009,2011],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1959,1960,1961,1973,1995],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1937,1960,1962,1963,1973,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1937,1964,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1962,1964,1973,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1937,1962,1973,1995,2006,2007],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1937,1962,1964,1973,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1962,1998],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,1959,1973,1995],[61,66,67,68,150,158,369,370,1686,1687,1688,1689,1896,1897,1937,1962,1964,1995,2007,2010],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2013],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1995],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1977,1987,2015,2016],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1973,1995,2012,2014,2017,2018],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1973],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1977],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1959],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1973,1981],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1932,1933,1934,1971,1974,1975,1976,1978,1979,1980,1981,1982,1983,1984,1985,1986,1988,1989,1990,1991,1992,1993,1994],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1932,1973],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1932,1933,1973],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1933,1987],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1974,1976,1980],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1959],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1970],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1992],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1962,1974,1981,1984,1985,1989],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1934],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1935,1936,1965,1966,1967,1968,1972],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1936],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1964],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1971],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1959,1995,2010],[61,66,67,68,117,124,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1143,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,121,124,150,158,369,370,1140,1141,1142,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2577,2578],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2577],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2721],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3139,3145,3166],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1969],[61,66,67,68,369,370,873,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,871,873,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,871,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,873,937,938,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,940,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,941,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,958,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1034,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,873,938,1058,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,871,1055,1056,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1057,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1055,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,871,872,1686,1687,1688,1689,1896,1897],[61,66,67,68,150,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,394,397,398,440,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,398,465,494,526,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,394,397,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,434,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,392,393,394,395,396,398,437,440,441,459,460,461,462,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,403,447,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,403,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,405,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,405,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,403,404,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,398,403,405,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,403,405,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,426,427,428,429,430,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,405,417,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,425,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,403,438,440,445,446,450,451,453,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,391,393,397,403,405,440,442,443,444,453,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,403,431,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,399,400,401,402,403,404,431,445,446,450,452,453,454,455,457,458,464,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,403,431,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,396,397,403,441,445,453,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,442,443,444,448,449,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,403,441,443,445,453,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,396,397,438,446,448,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,403,440,441,445,453,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,403,431,438,439,441,445,446,447,453,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,393,394,395,396,397,403,431,438,439,447,448,453,455,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,398,403,441,445,453,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,403,455,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,440,445,452,456,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,396,397,439,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,394,399,400,401,402,404,405,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,394,395,398,399,400,401,402,403,404,455,463,465,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,431,438,439,447,449,454,456,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,394,397,398,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,472,473,482,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,437,472,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,468,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,468,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,467,472,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,398,468,472,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,468,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,468,527,534,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,468,472,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,468,489,528,529,530,531,532,533,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,468,527,539,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,468,472,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,468,472,527,534,539,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,468,472,527,534,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,438,440,472,474,476,481,482,487,488,554,555,556,557,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,391,393,397,440,472,476,481,482,488,554,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,472,554,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,466,467,469,470,471,472,474,476,480,481,483,488,490,491,493,554,555,558,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,472,554,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,396,397,439,441,472,476,477,482,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,478,479,482,484,485,486,487,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,396,397,439,441,469,472,476,477,482,485,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,396,397,438,474,478,482,554,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,440,441,472,476,477,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,441,475,477,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,441,476,477,481,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,438,439,441,472,473,474,476,477,482,554,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,393,394,395,396,397,438,439,472,473,476,478,481,554,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,398,439,441,472,476,477,482,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,472,481,489,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,437,440,475,482,555,558,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,394,466,467,468,469,470,471,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,394,395,398,463,466,467,468,469,470,471,472,481,527,554,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,492,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,438,439,468,473,479,480,482,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,389,393,558,559,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,559,560,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,391,560,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,389,390,392,393,397,440,476,482,494,555,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,437,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,393,394,395,396,397,398,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,394,397,398,432,434,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,397,398,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,432,433,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,435,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,397,434,436,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,394,395,396,398,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,499,514,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,499,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,369,370,390,393,398,501,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,499,500,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,398,499,501,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,501,502,503,519,520,521,522,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,499,501,518,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,398,501,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,398,499,501,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,438,440,499,504,505,508,512,513,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,391,393,397,440,499,508,512,523,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,499,523,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,495,496,497,498,499,500,504,506,508,512,513,517,518,523,525,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,499,523,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,439,441,477,499,508,513,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,509,510,511,515,516,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,439,441,477,496,499,508,510,513,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,396,397,438,504,515,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,397,440,441,477,499,508,513,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,441,463,475,477,513,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,438,439,441,477,499,504,508,513,514,523,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,393,394,395,396,397,438,439,499,508,514,515,517,523,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,396,397,398,439,441,477,499,508,513,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,440,463,475,506,507,513,524,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,394,495,496,497,498,500,501,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,499,501,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,394,395,398,463,495,496,497,498,499,500,517,526,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,397,438,439,501,514,516,524,527,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,390,393,395,397,398,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,392,394,397,398,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,463,639,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,3162,3163,3164],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3162,3163],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3162],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,3161],[61,66,67,68,369,370,1133,1134,1135,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1134,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1134,1135,1136,1137,1138,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1135,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3165],[61,66,67,68,109,158,369,370,1146,1148,1149,1150,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1152,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,369,370,1145,1147,1148,1149,1152,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,129,139,150,158,369,370,1145,1149,1150,1152,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,124,126,129,139,147,150,158,369,370,1130,1132,1139,1141,1144,1145,1147,1149,1150,1151,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,150,158,369,370,1145,1148,1150,1152,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1154,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,150,158,369,370,1148,1149,1151,1152,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,124,125,126,147,150,369,370,1131,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,117,158,369,370,1686,1687,1688,1689,1896,1897,1943,1950,1951],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1938,1939,1940,1942,1943,1951,1952,1957],[61,66,67,68,117,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,369,370,1686,1687,1688,1689,1896,1897,1938],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1938],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1944],[61,66,67,68,121,147,158,369,370,1686,1687,1688,1689,1896,1897,1938,1944,1946,1947,1952],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1946],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1950],[61,66,67,68,129,147,158,369,370,1686,1687,1688,1689,1896,1897,1938,1944],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1938,1954,1955],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1938,1939,1940,1941,1944,1948,1949,1950,1951,1952,1953,1957,1958],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1939,1943,1953,1957],[61,66,67,68,121,158,369,370,1686,1687,1688,1689,1896,1897,1938,1939,1940,1942,1943,1950,1953,1954,1956],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1943,1945,1948,1949],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1939],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1941],[61,66,67,68,129,147,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1938,1939,1941],[61,66,67,68,369,370,377,378,379,387,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,384,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,387,1165,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,377,378,379,380,385,386,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2659],[61,66,67,68,70,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,328,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,330,331,332,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,334,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,167,177,183,185,324,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,167,174,176,179,197,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,302,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,231,249,264,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,272,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,167,177,184,217,227,299,300,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,184,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,227,228,229,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,184,217,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,167,184,185,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,257,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,158,256,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,250,251,252,269,270,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,240,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,239,241,344,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,250,251,267,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,246,270,356,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,354,355,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,191,353,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,243,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,158,191,239,240,241,242,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,267,269,270,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,267,269,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,267,268,270,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,135,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,238,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,158,176,178,234,235,236,237,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,168,347,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,150,158,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,184,215,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,184,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,213,218,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,214,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3060],[61,65,66,67,68,69,124,158,160,161,324,365,366,369,370,1147,1686,1687,1688,1689,1690,1852,1894,1896,1897],[61,66,67,68,324,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,166,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,317,318,319,320,321,322,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,319,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,214,250,327,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,250,325,327,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,250,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,178,327,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,175,176,187,205,238,243,244,266,267,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,235,238,243,251,253,254,255,257,258,259,260,261,262,263,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,236,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,135,158,176,177,205,207,209,234,266,270,324,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,178,179,191,192,239,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,177,179,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,139,158,175,178,179,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,135,150,158,175,176,177,178,179,184,187,188,198,199,201,204,205,207,208,209,233,234,267,275,277,280,282,285,287,288,289,290,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,139,158,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,167,168,169,175,176,324,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,139,150,158,172,301,303,304,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,135,150,158,172,175,178,195,199,201,202,203,207,234,280,291,293,299,313,314,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,181,234,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,175,177,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,188,281,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,283,284,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,283,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,281,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,283,286,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,171,172,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,171,210,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,171,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,173,188,279,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,278,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,172,173,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,173,276,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,172,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,266,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,175,187,206,225,231,245,248,265,267,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,219,220,221,222,223,224,246,247,270,325,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,274,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,175,187,206,211,271,273,275,324,327,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,150,158,168,175,177,233,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,230,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,307,312,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,198,233,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,295,299,313,316,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,181,299,307,308,316,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,167,177,198,208,310,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,177,184,208,294,295,305,306,309,311,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,159,205,206,324,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,135,150,158,173,175,176,178,181,186,187,195,198,199,201,202,203,204,207,209,233,234,277,291,292,327,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,175,177,181,293,315,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,176,178,369,370,1147,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,124,135,158,166,168,175,176,179,187,204,205,207,209,274,324,327,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,135,150,158,170,173,174,178,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,171,232,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,171,176,187,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,177,188,369,370,1147,1686,1687,1688,1689,1896,1897],[61,66,67,68,191,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,190,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,192,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,189,191,195,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,177,189,191,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,124,158,170,177,178,184,192,193,194,369,370,1147,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,267,268,269,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,226,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,168,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,201,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,159,204,209,324,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,168,347,348,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,218,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,135,150,158,166,212,214,216,217,327,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,178,184,201,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,200,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,122,124,135,158,166,218,227,324,325,326,369,370,1147,1686,1687,1688,1689,1896,1897],[66,67,68,369,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,160,161,324,367,369,370,1686,1687,1688,1689,1690,1852,1894,1896,1897],[61,65,67,68,369,370,1686,1687,1688,1689,1896,1897],[61,66,68,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,114,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,296,297,298,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,296,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,336,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,338,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,340,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3061],[61,66,67,68,342,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,345,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,349,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,69,71,324,329,333,335,337,339,341,343,346,350,352,358,359,361,368,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,351,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,357,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,214,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,360,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,108,192,193,194,195,362,363,364,367,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,1686,1687,1688,1689,1896,1897],[61,66,67,68,158,370,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,69,124,126,135,158,160,161,162,164,166,179,316,323,327,367,369,370,1147,1686,1687,1688,1689,1690,1852,1894,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1691,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1855,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1857,1858,1859,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1861,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1696,1706,1712,1714,1852,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1696,1703,1705,1708,1726,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1830,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1760,1778,1792,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1800,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1696,1706,1713,1746,1756,1827,1828,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1713,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1756,1757,1758,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1713,1746,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1696,1713,1714,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1785,1896,1897],[61,66,67,68,108,158,369,370,1686,1687,1688,1689,1784,1896,1897],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1779,1780,1797,1798,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1769,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1768,1770,1871,1896,1897],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1779,1795,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1775,1798,1883,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1881,1882,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1720,1880,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1772,1896,1897],[61,66,67,68,108,158,369,370,1686,1687,1688,1689,1720,1768,1769,1770,1771,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1795,1797,1798,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1795,1797,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1795,1796,1798,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1767,1896,1897],[61,66,67,68,108,158,369,370,1686,1687,1688,1689,1705,1707,1763,1764,1765,1766,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1697,1874,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1713,1744,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1713,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1742,1747,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1743,1854,1896,1897],[61,65,66,67,68,69,124,158,160,161,324,367,369,370,1147,1686,1687,1688,1689,1690,1852,1892,1893,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1852,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1695,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1845,1846,1847,1848,1849,1850,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1847,1896,1897],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1743,1854,1896,1897],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1853,1854,1896,1897],[61,65,66,67,68,250,369,370,1686,1687,1688,1689,1854,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1707,1854,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1704,1705,1716,1734,1767,1772,1773,1794,1795,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1764,1767,1772,1779,1781,1782,1783,1785,1786,1787,1788,1789,1790,1791,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1765,1896,1897],[61,65,66,67,68,135,158,369,370,1686,1687,1688,1689,1705,1706,1734,1736,1738,1763,1794,1798,1852,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1707,1708,1720,1721,1768,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1706,1708,1896,1897],[61,66,67,68,124,139,158,369,370,1147,1686,1687,1688,1689,1704,1707,1708,1896,1897],[61,66,67,68,124,135,150,158,369,370,1147,1686,1687,1688,1689,1704,1705,1706,1707,1708,1713,1716,1717,1727,1728,1730,1733,1734,1736,1737,1738,1762,1763,1795,1803,1805,1808,1810,1813,1815,1816,1817,1818,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1696,1697,1698,1704,1705,1852,1854,1896,1897],[61,66,67,68,124,139,150,158,369,370,1147,1686,1687,1688,1689,1701,1829,1831,1832,1896,1897],[61,66,67,68,135,150,158,369,370,1686,1687,1688,1689,1701,1704,1707,1724,1728,1730,1731,1732,1736,1763,1808,1819,1821,1827,1841,1842,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1710,1763,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1704,1706,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1717,1809,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1811,1812,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1811,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1809,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1811,1814,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1700,1701,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1700,1739,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1700,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1702,1717,1807,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1806,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1701,1702,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1702,1804,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1701,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1794,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1704,1716,1735,1754,1760,1774,1777,1793,1795,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1748,1749,1750,1751,1752,1753,1775,1776,1798,1853,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1802,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1704,1716,1735,1740,1799,1801,1803,1852,1854,1896,1897],[61,66,67,68,124,150,158,369,370,1147,1686,1687,1688,1689,1697,1704,1706,1762,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1759,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1835,1840,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1727,1762,1854,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1823,1827,1841,1844,1896,1897],[61,66,67,68,124,369,370,1147,1686,1687,1688,1689,1710,1827,1835,1836,1844,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1696,1706,1727,1737,1838,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1706,1713,1737,1822,1823,1833,1834,1837,1839,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1693,1734,1735,1852,1854,1896,1897],[61,66,67,68,124,135,150,158,369,370,1147,1686,1687,1688,1689,1702,1704,1705,1707,1710,1715,1716,1724,1727,1728,1730,1731,1732,1733,1736,1738,1762,1763,1805,1819,1820,1854,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1704,1706,1710,1821,1843,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1705,1707,1896,1897],[61,65,66,67,68,124,135,158,369,370,1147,1686,1687,1688,1689,1695,1697,1704,1705,1708,1716,1733,1734,1736,1738,1802,1852,1854,1896,1897],[61,66,67,68,124,135,150,158,369,370,1147,1686,1687,1688,1689,1699,1702,1703,1707,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1700,1761,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1700,1705,1716,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1706,1717,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1720,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1721,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1718,1720,1724,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1706,1718,1720,1896,1897],[61,66,67,68,124,158,369,370,1147,1686,1687,1688,1689,1699,1706,1707,1713,1721,1722,1723,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1795,1796,1797,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1755,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1697,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1730,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1693,1733,1738,1852,1854,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1697,1874,1875,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1747,1896,1897],[61,65,66,67,68,135,150,158,369,370,1686,1687,1688,1689,1695,1741,1743,1745,1746,1854,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1707,1713,1730,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1729,1896,1897],[61,65,66,67,68,122,124,135,158,326,369,370,1147,1686,1687,1688,1689,1695,1747,1756,1852,1853,1896,1897],[61,66,67,68,369,370,1687,1688,1689,1896,1897],[61,65,66,67,68,69,160,161,324,367,369,370,1686,1687,1688,1689,1852,1894,1896,1897],[61,65,66,67,68,369,370,1686,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1824,1825,1826,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1824,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1863,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1865,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1867,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1869,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1872,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1876,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1690,1692,1852,1856,1860,1862,1864,1866,1868,1870,1873,1877,1879,1885,1886,1888,1895,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1878,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1884,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1743,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1887,1896,1897],[61,66,67,68,108,369,370,1686,1687,1688,1689,1721,1722,1723,1724,1889,1890,1891,1894,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896],[61,66,67,68,158,369,370,1686,1687,1688,1689,1897],[61,65,66,67,68,69,124,126,135,158,160,161,162,164,324,367,369,370,1147,1686,1687,1688,1689,1690,1695,1708,1844,1851,1854,1894,1896,1897],[61,66,67,68,369,370,1405,1409,1410,1411,1441,1444,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1523,1532,1534,1545,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1445,1546,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1405,1409,1410,1411,1413,1441,1444,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,377,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,377,384,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,381,382,383,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1188,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1186,1188,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1177,1185,1186,1187,1189,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1175,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1178,1183,1188,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1174,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1178,1179,1182,1183,1184,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1178,1179,1180,1182,1183,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1175,1176,1177,1178,1179,1183,1184,1185,1187,1188,1189,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1173,1175,1176,1177,1178,1179,1180,1182,1183,1184,1185,1186,1187,1188,1189,1190,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1173,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1178,1180,1181,1183,1184,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1182,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1183,1184,1188,1191,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1176,1186,1686,1687,1688,1689,1896,1897],[61,66,67,68,139,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1217,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1157,1686,1687,1688,1689,1896,1897],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2598],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2598,2599,2600,2602,2603,2604,2605,2606,2607,2608,2611],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2598],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2601],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2596,2598],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2593,2594,2596],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2589,2592,2594,2596],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2593,2596],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2584,2585,2586,2589,2590,2591,2593,2594,2595,2596],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2586,2589,2590,2591,2592,2593,2594,2595,2596,2597],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2593],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2587,2593,2594],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2587,2588],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2592,2594,2595],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2592],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2584,2589,2594,2595],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2609,2610],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2792,2795],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2785,2793,2813],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2773,2776],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2811,2814,2817],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2785,2792,2795],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2785,2793,2805],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2785,2795,2805],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2785,2805],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2774,2775,2776,2780,2786,2792,2797,2815,2816],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776],[61,65,66,67,68,369,370,1625,1686,1687,1688,1689,1896,1897,2776,2820,2821,2822],[61,65,66,67,68,369,370,1625,1686,1687,1688,1689,1896,1897,2776,2819,2820,2821],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2793],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2819],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2785],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2777,2778],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2778,2780],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2769,2770,2774,2775,2776,2777,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2806,2807,2808,2809,2810,2811,2812,2814,2815,2816,2817,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2834],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2788],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2795,2799,2800],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2786,2788],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2791],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2814],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2776,2791,2818],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2779,2819],[61,65,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2773,2774,2775],[61,66,67,68,109,139,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1201,1210,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1200,1201,1686,1687,1688,1689,1896,1897,3181],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3142],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3092,3140,3141],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3092,3142],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3092,3093,3138],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3092,3139],[61,66,67,68,369,370,1173,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1923,1924],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1923],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1923,1924,1925,1926],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1921,1927],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1927],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,1921,1922],[61,66,67,68,369,370,1195,1197,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1193,1194,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1192,1195,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1249,1250,1251,1252,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1275,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1275,1288,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1253,1302,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1303,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1254,1277,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1277,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1253,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1306,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1286,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1253,1294,1302,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1297,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1299,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1249,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1269,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1250,1251,1290,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1310,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1308,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1254,1255,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1256,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1267,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1253,1258,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1312,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1254,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1306,1315,1318,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1254,1255,1299,1686,1687,1688,1689,1896,1897],[61,66,67,68,83,87,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,83,139,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,78,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,80,83,147,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,129,147,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,78,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,80,83,129,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,75,76,79,82,109,121,139,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,75,81,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,79,83,109,142,150,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,99,109,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,77,78,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,83,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,77,78,79,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,83,90,91,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,81,83,91,92,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,82,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,75,78,83,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,83,87,91,92,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,87,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,81,83,86,150,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,75,80,81,83,87,90,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,78,83,99,109,155,158,369,370,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2772],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2790],[61,66,67,68,369,370,1226,1227,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1226,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1211,1226,1227,1240,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1211,1212,1240,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1211,1240,1686,1687,1688,1689,1896,1897],[61,66,67,68,121,122,124,125,126,129,139,147,150,156,158,369,370,1192,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1203,1204,1205,1206,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1203,1204,1205,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1203,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1204,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1201,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1241,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,139,155,369,370,1211,1219,1225,1228,1231,1232,1234,1235,1236,1237,1238,1239,1240,1686,1687,1688,1689,1896,1897],[61,66,67,68,122,139,155,369,370,1211,1219,1222,1225,1228,1231,1232,1234,1235,1236,1237,1238,1239,1240,1632,1633,1634,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1225,1235,1236,1240,1686,1687,1688,1689,1896,1897],[61,66,67,68,109,124,129,147,150,153,369,370,1147,1200,1201,1686,1687,1688,1689,1896,1897,3140,3142,3143,3144,3181],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,2735],[61,66,67,68,369,370,638,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,629,630,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,627,628,629,631,632,636,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,628,629,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,637,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,629,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,627,628,629,632,633,634,635,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,627,628,638,1686,1687,1688,1689,1896,1897],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3179],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3182],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3187,3188],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3192],[61,66,67,68,369,370,1686,1687,1688,1689,1896,1897,3193]],"referencedMap":[[1636,1],[1637,2],[1638,2],[1639,2],[1640,3],[1641,3],[1642,3],[1643,4],[1644,4],[1645,5],[1646,6],[1647,6],[1648,6],[1649,6],[1650,6],[1651,7],[1652,6],[1653,8],[1654,8],[1655,8],[1656,8],[1660,9],[1664,10],[1243,11],[2622,12],[2667,13],[2670,14],[2671,15],[2672,16],[2673,17],[2675,18],[2674,16],[2678,19],[2679,17],[2681,20],[2680,19],[2682,21],[2683,17],[2685,22],[2684,21],[2638,23],[2687,24],[2686,25],[2691,26],[2692,27],[2694,28],[2693,29],[2695,30],[2629,31],[2696,17],[2697,32],[2698,33],[2701,34],[2702,35],[2703,27],[2706,36],[2704,27],[2705,27],[2707,37],[2711,38],[2712,39],[2714,40],[2732,41],[2715,42],[2728,43],[2733,44],[2713,17],[2740,45],[2742,46],[2630,17],[2631,17],[2632,17],[2637,29],[2745,15],[2746,28],[2743,31],[2747,17],[2748,32],[2749,33],[2750,47],[2751,48],[2758,49],[2760,50],[2755,39],[2762,42],[2763,43],[2764,51],[2759,52],[2756,17],[2765,53],[2757,17],[2766,46],[2845,54],[2744,29],[2846,55],[2847,17],[2848,55],[2849,56],[2741,57],[2850,58],[2890,59],[2889,60],[2887,61],[2738,62],[2891,63],[2898,64],[2904,65],[2903,23],[2905,66],[2899,31],[2906,48],[2907,39],[2908,17],[2911,67],[2913,68],[2914,69],[2912,17],[2900,17],[2901,29],[2902,28],[2920,70],[2919,23],[2921,66],[2915,31],[2922,48],[2923,39],[2924,17],[2925,67],[2927,71],[2928,69],[2926,17],[2916,17],[2917,29],[2918,28],[2839,72],[2840,72],[2841,72],[2842,72],[2843,72],[2844,73],[2929,74],[2935,75],[2934,23],[2936,66],[2930,31],[2937,48],[2938,39],[2939,17],[2940,67],[2942,76],[2943,69],[2941,17],[2931,17],[2932,29],[2933,28],[2949,77],[2948,23],[2950,66],[2944,31],[2951,48],[2952,39],[2953,17],[2954,67],[2956,78],[2957,69],[2955,17],[2945,17],[2946,29],[2947,28],[2958,79],[2959,80],[2961,81],[2962,82],[2963,83],[2964,84],[2966,85],[2965,86],[2972,87],[2971,23],[2967,31],[2973,48],[2974,39],[2975,17],[2976,67],[2978,88],[2979,69],[2977,17],[2968,17],[2969,29],[2970,89],[2980,90],[2981,29],[2982,27],[2983,91],[3025,92],[3023,93],[3026,94],[3028,95],[3024,93],[3027,96],[3029,97],[3030,97],[3031,27],[3033,98],[3032,99],[2984,100],[2985,27],[2987,101],[2986,21],[2989,102],[2988,103],[3035,104],[3036,27],[3038,105],[3037,106],[2990,39],[2991,107],[3039,108],[2992,109],[3022,110],[3040,111],[3041,27],[3043,112],[3042,113],[3007,114],[3008,21],[3009,96],[3010,115],[3044,21],[3011,116],[3021,117],[2739,118],[3016,39],[3012,119],[3013,120],[3014,119],[3015,119],[3018,121],[3017,122],[3020,123],[3019,39],[2960,124],[3034,125],[3000,126],[2998,127],[2999,128],[3045,124],[3001,129],[3046,84],[3047,130],[2633,131],[2661,132],[2699,133],[2995,124],[2700,134],[2910,135],[3048,136],[3049,137],[2628,138],[3050,139],[2997,140],[2761,139],[3002,141],[2581,142],[2615,143],[2994,144],[2723,145],[2634,146],[2754,147],[2731,148],[2897,149],[2614,150],[2617,151],[2635,143],[2613,152],[2725,153],[2768,154],[2690,155],[2727,156],[2710,157],[2669,158],[3052,159],[3053,160],[3054,161],[2677,162],[2888,143],[2730,163],[2636,143],[2709,164],[2666,165],[1580,166],[1597,166],[2030,166],[2451,166],[2475,166],[3055,167],[3056,166],[3057,166],[3058,166],[3059,166],[376,168],[1666,169],[1669,170],[388,171],[373,172],[3168,173],[2454,84],[3063,174],[3064,175],[3065,176],[2460,177],[2463,178],[2465,179],[2464,180],[2461,181],[2467,182],[2462,183],[3071,184],[3072,185],[3006,186],[3075,187],[3076,188],[3077,189],[3078,190],[3079,191],[3080,192],[3081,193],[3073,194],[3082,195],[3083,196],[3084,197],[3085,198],[3086,199],[3087,200],[3088,201],[3089,202],[3090,203],[3074,204],[3066,205],[3067,206],[3068,207],[3070,208],[3091,84],[1172,209],[2459,210],[1930,211],[2025,212],[1929,213],[2417,214],[2419,215],[2421,216],[2422,217],[2423,218],[2424,219],[2426,220],[2427,221],[2428,222],[2429,223],[2430,224],[2431,225],[2433,226],[2435,227],[2436,228],[2437,229],[2438,230],[2441,231],[2445,232],[2448,233],[2456,234],[2457,235],[2458,236],[1128,237],[1600,238],[1170,239],[2026,240],[2418,241],[2420,84],[1612,242],[1555,243],[2032,244],[2425,245],[1551,246],[2029,247],[2409,248],[2027,249],[2412,250],[2432,240],[2434,240],[2407,251],[1599,244],[1663,252],[2440,253],[2443,254],[2447,255],[2455,256],[1352,257],[2022,240],[1928,258],[1165,259],[1171,260],[1670,261],[1247,262],[2484,263],[869,264],[2469,265],[2485,266],[648,267],[864,268],[645,269],[855,270],[865,271],[858,272],[859,273],[649,274],[860,275],[868,276],[856,277],[854,277],[857,278],[850,277],[867,279],[861,280],[851,277],[853,281],[862,280],[852,282],[646,283],[863,280],[866,284],[647,285],[2487,286],[643,287],[644,288],[849,289],[2486,290],[642,291],[1349,292],[2021,293],[2020,294],[2482,295],[2470,296],[2471,297],[2472,297],[2442,298],[2473,299],[2450,300],[1248,301],[2474,302],[2416,303],[2410,304],[2413,305],[2414,306],[2415,307],[1609,308],[1603,309],[1659,310],[1604,311],[1607,312],[1605,311],[1606,311],[1602,313],[1335,314],[2028,315],[2408,316],[2411,317],[2406,318],[2439,319],[1631,320],[1626,321],[1627,321],[1628,321],[1629,321],[1630,321],[1610,84],[1608,322],[1601,323],[1351,324],[1596,325],[1598,326],[2031,327],[2452,328],[2476,329],[1595,330],[1353,331],[1334,332],[1350,333],[1354,334],[1548,335],[1611,336],[1554,337],[1550,338],[1549,84],[1661,339],[1662,340],[2444,341],[2446,342],[2449,84],[2453,343],[2478,344],[2479,344],[2480,345],[2481,346],[1166,347],[2477,348],[1199,349],[610,350],[604,350],[601,350],[603,350],[612,350],[622,350],[611,350],[605,350],[619,350],[602,350],[624,350],[621,350],[614,350],[618,350],[617,350],[607,350],[613,350],[609,350],[620,350],[615,350],[600,350],[599,350],[616,350],[625,351],[598,352],[623,350],[606,350],[626,353],[608,350],[2575,354],[2024,355],[2263,356],[2264,356],[2265,356],[2266,356],[2267,356],[2268,356],[2269,356],[2270,356],[2271,356],[2272,356],[2273,356],[2274,356],[2275,356],[2276,356],[2277,356],[2278,356],[2279,356],[2280,356],[2281,356],[2282,356],[2283,356],[2284,356],[2285,356],[2286,356],[2287,356],[2288,356],[2289,356],[2290,356],[2291,356],[2292,356],[2293,356],[2294,356],[2295,356],[2296,356],[2297,356],[2298,356],[2299,356],[2300,356],[2301,356],[2302,356],[2303,356],[2304,356],[2305,356],[2306,356],[2307,356],[2308,356],[2309,356],[2310,356],[2311,356],[2312,356],[2313,356],[2314,356],[2315,356],[2316,356],[2364,357],[2317,356],[2318,356],[2319,356],[2320,356],[2321,356],[2322,356],[2323,356],[2324,356],[2325,356],[2326,356],[2327,356],[2328,356],[2329,356],[2330,356],[2331,356],[2332,356],[2333,356],[2334,356],[2335,356],[2336,356],[2337,356],[2338,356],[2339,356],[2340,356],[2342,358],[2343,358],[2344,358],[2345,358],[2346,358],[2347,358],[2348,358],[2349,358],[2350,358],[2351,358],[2352,358],[2353,358],[2354,358],[2355,358],[2356,358],[2357,358],[2358,358],[2359,359],[2360,360],[2404,361],[2378,362],[2262,363],[2341,364],[2261,365],[2369,366],[2365,367],[2366,368],[2367,369],[2368,370],[2361,371],[2363,372],[2362,373],[2377,374],[2373,375],[2374,375],[2375,376],[2376,376],[2095,359],[2096,359],[2172,377],[2098,378],[2097,359],[2099,359],[2140,379],[2139,380],[2142,381],[2151,382],[2166,383],[2167,384],[2168,385],[2138,386],[2141,387],[2169,388],[2170,359],[2171,359],[2173,389],[2174,390],[2175,391],[2176,359],[2178,392],[2177,393],[2100,359],[2101,359],[2102,359],[2103,359],[2104,359],[2105,359],[2106,359],[2114,394],[2115,359],[2116,84],[2117,359],[2118,359],[2119,359],[2120,359],[2121,359],[2108,395],[2109,359],[2107,359],[2112,396],[2110,395],[2111,359],[2137,397],[2122,359],[2123,359],[2124,359],[2125,359],[2126,84],[2127,359],[2128,359],[2129,359],[2130,359],[2131,359],[2132,359],[2133,398],[2134,359],[2135,359],[2113,359],[2136,359],[2379,84],[2403,399],[2380,359],[2394,400],[2395,400],[2396,400],[2397,400],[2398,400],[2402,401],[2399,400],[2401,400],[2400,400],[2647,402],[2648,403],[2645,404],[2649,403],[2646,405],[2641,84],[2655,406],[2643,407],[1685,408],[1900,409],[1899,410],[1673,411],[1674,412],[1901,413],[1903,414],[1672,415],[1902,291],[706,416],[686,417],[687,417],[688,417],[689,417],[690,417],[691,417],[705,418],[692,419],[693,417],[707,420],[694,421],[695,417],[696,417],[697,417],[698,417],[699,417],[700,417],[701,422],[702,417],[703,417],[704,417],[708,84],[683,423],[848,424],[684,425],[650,426],[709,427],[710,427],[711,427],[712,427],[713,427],[714,427],[715,427],[716,427],[717,427],[718,427],[719,427],[720,427],[721,427],[722,427],[723,427],[724,427],[725,427],[726,427],[727,427],[728,427],[729,427],[730,427],[731,427],[732,427],[733,427],[734,427],[735,427],[736,427],[737,427],[738,427],[739,427],[740,427],[741,427],[742,427],[743,427],[744,427],[745,427],[746,427],[747,427],[748,427],[777,428],[749,427],[750,427],[751,427],[752,427],[753,427],[754,427],[755,427],[756,427],[757,427],[758,427],[759,427],[760,427],[761,427],[762,427],[763,427],[764,427],[765,427],[766,427],[767,427],[768,427],[769,427],[770,427],[771,427],[772,427],[773,427],[774,427],[775,427],[776,427],[778,429],[779,429],[780,429],[781,429],[782,429],[783,429],[784,429],[785,429],[786,429],[787,429],[788,429],[789,429],[790,429],[791,429],[792,429],[793,429],[794,429],[795,429],[796,429],[797,429],[798,429],[799,429],[800,429],[801,429],[802,429],[803,429],[804,429],[805,429],[806,429],[807,429],[808,429],[809,429],[810,429],[811,429],[812,429],[813,429],[814,429],[815,429],[816,429],[817,429],[846,430],[818,429],[819,429],[820,429],[821,429],[822,429],[823,429],[824,429],[825,429],[826,429],[827,429],[828,429],[829,429],[830,429],[831,429],[832,429],[833,429],[834,429],[835,429],[836,429],[837,429],[838,429],[839,429],[840,429],[841,429],[842,429],[843,429],[844,429],[845,429],[685,431],[651,431],[652,431],[653,431],[654,431],[655,431],[680,431],[656,432],[657,431],[658,431],[659,431],[661,433],[660,84],[665,434],[662,429],[663,429],[664,429],[666,431],[667,431],[668,431],[669,431],[681,431],[670,431],[671,431],[674,435],[675,431],[673,436],[676,431],[677,431],[678,431],[679,84],[682,437],[847,429],[672,84],[2620,438],[2618,439],[2619,440],[1217,441],[2639,84],[2644,442],[2640,442],[1161,443],[1162,444],[1163,445],[1164,446],[326,84],[3152,447],[3155,448],[3154,449],[3153,450],[3151,451],[3147,452],[3150,453],[3149,454],[3148,455],[3146,451],[3161,456],[3160,457],[3159,458],[3158,459],[3157,460],[3156,461],[1534,462],[1533,463],[1532,464],[1402,465],[1401,466],[1400,467],[1399,468],[1395,469],[1394,470],[1398,471],[1397,84],[1396,472],[1411,473],[1410,474],[1406,475],[1407,476],[1405,477],[1523,478],[1451,479],[1450,480],[1456,479],[1455,479],[1448,481],[1449,479],[1453,479],[1452,479],[1454,479],[1522,482],[1458,483],[1460,483],[1461,484],[1457,84],[1459,484],[1462,483],[1446,485],[1447,486],[1381,487],[1380,84],[1387,488],[1385,477],[1392,477],[1391,477],[1386,488],[1384,488],[1382,489],[1393,490],[1388,488],[1390,488],[1389,488],[1383,84],[1379,84],[1427,84],[1368,84],[1537,84],[1413,491],[1412,84],[1439,492],[1437,493],[1441,494],[1440,495],[1438,496],[1443,497],[1442,493],[1444,498],[1409,499],[1408,477],[1536,500],[1535,477],[1404,477],[1431,501],[1424,502],[1429,503],[1421,504],[1416,84],[1428,505],[1435,84],[1436,506],[1423,507],[1432,84],[1419,84],[1430,508],[1414,84],[1425,509],[1420,510],[1418,511],[1422,84],[1426,84],[1417,84],[1433,512],[1415,84],[1434,84],[1372,513],[1365,514],[1370,515],[1362,516],[1357,84],[1369,517],[1376,84],[1377,518],[1364,519],[1373,84],[1360,84],[1371,520],[1355,84],[1366,521],[1361,522],[1359,523],[1363,84],[1367,84],[1358,84],[1374,524],[1356,84],[1375,84],[1524,84],[1525,84],[1528,525],[1526,84],[1531,526],[1530,527],[1529,528],[1527,529],[1539,84],[1542,530],[1538,530],[1540,84],[1545,531],[1544,532],[1543,533],[1541,534],[2895,535],[2627,536],[2662,537],[2996,537],[2993,537],[2894,538],[2720,124],[2893,124],[2721,539],[2626,540],[2717,541],[2623,537],[2753,542],[2718,541],[2624,537],[2583,537],[2752,543],[2724,544],[2664,545],[2719,541],[2625,537],[2716,124],[2892,124],[2582,124],[2767,537],[2689,546],[2688,537],[2726,537],[2668,544],[3051,537],[2576,547],[2676,537],[2729,546],[2708,537],[2665,548],[2663,84],[1556,124],[1557,124],[1559,549],[1560,84],[1561,124],[1579,550],[1562,124],[1563,124],[1564,124],[1565,124],[1566,124],[1567,124],[1568,124],[1569,124],[1571,551],[1572,547],[1573,84],[1574,124],[1575,124],[1577,552],[1576,553],[1578,124],[1216,84],[2183,554],[2179,383],[2180,383],[2182,555],[2181,359],[2193,556],[2184,383],[2186,557],[2185,359],[2188,558],[2187,84],[2191,559],[2192,560],[2189,561],[2190,561],[2194,359],[2195,562],[2198,563],[2200,564],[2199,359],[2201,563],[2202,563],[2203,565],[2196,359],[2197,84],[2214,566],[2215,567],[2216,84],[2220,568],[2217,359],[2218,359],[2219,569],[2213,570],[2212,359],[2164,571],[2152,359],[2162,572],[2163,359],[2165,573],[2224,574],[2225,575],[2226,359],[2227,576],[2223,577],[2221,359],[2222,359],[2230,578],[2228,84],[2229,359],[2153,84],[2154,84],[2155,84],[2156,84],[2161,579],[2157,359],[2158,359],[2159,580],[2160,359],[2149,359],[2144,359],[2145,359],[2146,359],[2150,581],[2147,359],[2148,359],[2143,359],[2232,359],[2237,582],[2238,583],[2239,84],[2240,584],[2241,84],[2242,84],[2243,84],[2244,84],[2249,359],[2250,84],[2245,359],[2247,585],[2248,586],[2246,359],[2251,84],[2252,84],[2260,587],[2253,84],[2231,359],[2254,84],[2255,84],[2256,84],[2257,84],[2258,84],[2259,84],[2033,84],[2034,84],[2035,84],[2046,588],[2047,589],[2044,590],[2045,591],[2048,592],[2051,593],[2053,594],[2055,595],[2054,596],[2056,84],[2060,597],[2058,598],[2059,84],[2052,84],[2062,599],[2037,600],[2064,601],[2065,602],[2068,603],[2067,604],[2063,605],[2066,606],[2061,607],[2069,608],[2070,609],[2074,610],[2075,611],[2073,612],[2050,613],[2040,614],[2076,615],[2077,616],[2078,616],[2036,84],[2080,617],[2079,616],[2094,618],[2038,84],[2043,619],[2081,620],[2082,84],[2041,84],[2072,621],[2083,622],[2071,623],[2084,624],[2085,625],[2086,593],[2087,593],[2088,626],[2057,84],[2090,627],[2091,628],[2049,84],[2092,620],[2089,84],[2039,629],[2042,607],[2093,630],[2393,631],[2381,84],[2382,84],[2392,632],[2386,84],[2384,633],[2387,359],[2388,359],[2391,634],[2389,359],[2383,359],[2390,359],[2385,635],[2205,636],[2209,84],[2207,637],[2210,84],[2208,638],[2211,639],[2206,359],[2204,84],[2233,84],[2234,640],[2236,641],[2235,642],[2371,643],[2372,644],[2370,359],[1145,645],[2532,646],[2534,647],[2535,648],[2530,649],[2519,84],[2526,650],[2525,651],[2524,652],[2531,84],[2533,646],[2529,653],[2520,654],[2522,655],[2523,656],[2518,657],[2516,84],[2528,658],[2517,84],[2527,659],[2521,660],[2541,661],[2547,662],[2546,124],[2539,661],[2540,124],[2515,84],[2536,663],[2545,664],[2542,664],[2543,664],[2544,664],[2537,664],[2538,664],[2886,665],[2865,666],[2875,667],[2872,667],[2873,668],[2857,668],[2871,668],[2852,667],[2858,669],[2861,670],[2866,671],[2854,669],[2855,668],[2868,672],[2853,669],[2859,669],[2862,669],[2867,669],[2869,668],[2856,668],[2870,668],[2864,673],[2860,674],[2885,675],[2863,676],[2874,677],[2851,668],[2876,668],[2877,668],[2878,668],[2879,668],[2880,668],[2881,668],[2882,668],[2883,668],[2884,668],[2510,678],[2511,679],[2492,680],[2512,681],[2513,682],[2506,84],[2491,683],[2488,684],[2501,685],[2500,686],[2502,687],[2508,688],[2503,689],[2509,690],[2499,691],[2498,84],[2504,692],[2505,693],[2490,694],[2507,695],[2489,696],[2573,697],[2574,698],[2572,699],[2559,700],[2571,701],[2548,702],[2514,703],[2567,84],[2569,704],[2551,84],[2549,705],[2570,706],[3005,707],[3004,708],[3003,709],[2553,710],[2555,711],[2554,712],[2552,713],[2568,714],[2566,715],[2562,716],[2563,716],[2564,717],[2565,718],[2556,719],[2558,720],[2557,721],[2560,722],[2550,723],[2561,724],[1916,725],[1917,726],[1920,727],[1919,728],[1918,729],[2466,730],[1915,731],[1912,732],[1914,733],[1913,734],[591,735],[590,736],[593,737],[580,738],[589,739],[587,740],[585,741],[586,742],[579,84],[584,743],[588,744],[583,745],[577,746],[578,747],[594,748],[595,749],[592,750],[564,751],[1910,84],[1908,752],[1904,753],[1911,754],[1906,755],[1909,756],[1907,757],[597,758],[596,759],[1905,760],[573,761],[572,762],[567,762],[571,763],[569,762],[568,762],[570,762],[566,84],[563,84],[574,764],[576,765],[575,766],[2493,84],[2496,84],[2495,767],[2497,768],[581,769],[582,770],[2494,771],[562,84],[565,84],[1658,772],[1657,84],[1463,84],[1464,84],[1465,84],[1521,773],[1466,774],[1510,775],[1468,776],[1467,777],[1469,774],[1470,774],[1472,778],[1471,774],[1473,779],[1474,779],[1475,774],[1477,780],[1478,774],[1479,780],[1480,774],[1482,774],[1483,774],[1484,774],[1485,781],[1481,774],[1486,84],[1487,782],[1488,782],[1489,782],[1490,782],[1491,782],[1500,783],[1492,782],[1493,782],[1494,782],[1495,782],[1497,782],[1496,782],[1498,782],[1499,782],[1501,774],[1502,774],[1476,774],[1504,784],[1503,774],[1505,774],[1506,774],[1507,785],[1509,774],[1508,774],[1511,774],[1513,774],[1514,786],[1512,774],[1515,774],[1516,774],[1517,774],[1518,774],[1519,774],[1520,774],[870,684],[1683,787],[1682,645],[2789,84],[2772,788],[2790,789],[2771,84],[1245,790],[1246,791],[3174,792],[3173,793],[3172,794],[1200,84],[1679,795],[1684,796],[1142,84],[1680,84],[1553,797],[1552,84],[3092,84],[1614,798],[1615,799],[1613,800],[1616,801],[1617,802],[1618,803],[1619,804],[1620,805],[1621,806],[1622,807],[1623,808],[1624,809],[1625,810],[1675,84],[1348,811],[1337,84],[1338,84],[1346,84],[1347,812],[1339,84],[1340,84],[1341,84],[1342,84],[1343,84],[1344,84],[1345,84],[2405,813],[72,814],[73,814],[108,815],[109,816],[110,817],[111,818],[112,819],[113,820],[114,821],[115,822],[116,823],[117,824],[118,824],[120,825],[119,826],[121,827],[122,828],[123,829],[107,830],[157,84],[124,831],[125,832],[126,833],[158,834],[127,835],[128,836],[129,837],[130,348],[131,838],[132,839],[133,840],[134,841],[135,842],[136,843],[137,843],[138,844],[139,845],[141,846],[140,847],[142,848],[143,849],[144,850],[145,851],[146,852],[147,853],[148,854],[149,855],[150,856],[151,857],[152,858],[153,859],[154,860],[155,861],[156,862],[1594,863],[1581,864],[1588,865],[1584,866],[1582,867],[1585,868],[1589,869],[1590,865],[1587,870],[1586,871],[1591,872],[1592,873],[1593,874],[1583,875],[64,84],[1169,864],[1677,84],[1678,84],[163,876],[164,877],[162,124],[160,878],[161,879],[62,84],[65,880],[250,124],[1331,881],[1676,882],[1681,883],[1244,884],[3069,124],[3170,885],[3169,864],[1160,886],[1159,887],[2652,888],[2651,889],[2650,890],[2657,891],[2658,892],[2656,888],[2654,893],[2653,405],[1232,84],[1233,894],[1234,895],[1225,896],[1220,897],[1223,898],[1235,899],[1229,84],[1634,900],[1230,901],[1231,902],[1238,902],[1633,84],[1222,903],[1224,903],[1215,904],[1219,905],[1221,906],[1214,84],[2737,907],[2734,84],[3141,84],[3138,908],[3095,84],[3097,909],[3096,910],[3101,911],[3136,912],[3133,913],[3135,914],[3098,913],[3099,915],[3103,915],[3102,916],[3100,917],[3134,918],[3132,913],[3137,919],[3130,84],[3131,84],[3104,920],[3109,913],[3111,913],[3106,913],[3107,920],[3113,913],[3114,921],[3105,913],[3110,913],[3112,913],[3108,913],[3128,922],[3127,913],[3129,923],[3123,913],[3125,913],[3124,913],[3120,913],[3126,924],[3121,913],[3122,925],[3115,913],[3116,913],[3117,913],[3118,913],[3119,913],[1403,84],[1332,84],[1333,926],[1329,927],[74,84],[1931,84],[1996,928],[1998,929],[1999,928],[1997,930],[2000,84],[2004,931],[2002,84],[2001,84],[2003,84],[2005,932],[2012,933],[1962,934],[1964,935],[1961,936],[2006,937],[1963,84],[2008,938],[1937,939],[2007,940],[2009,941],[1960,942],[2011,943],[2014,944],[2013,945],[1987,84],[2015,84],[2017,946],[2016,84],[1977,84],[2019,947],[1974,948],[1975,84],[1976,945],[1978,949],[1979,950],[1982,951],[1995,952],[1983,84],[1933,953],[1984,84],[1985,84],[1986,84],[1934,954],[1988,955],[1932,948],[1981,956],[1989,84],[1980,957],[1990,84],[1971,958],[1991,84],[1993,959],[1992,948],[1994,960],[1935,961],[1936,84],[1973,962],[1966,945],[1967,945],[1968,963],[1965,964],[1972,965],[2018,966],[1130,967],[1144,968],[1143,969],[2579,970],[2578,971],[1328,84],[2577,84],[1667,84],[2722,972],[2909,84],[3167,973],[1969,84],[1970,974],[63,84],[958,975],[937,976],[1034,84],[938,977],[874,975],[875,84],[876,84],[877,84],[878,84],[879,84],[880,84],[881,84],[882,84],[883,84],[884,84],[885,84],[886,975],[887,975],[888,84],[889,84],[890,84],[891,84],[892,84],[893,84],[894,84],[895,84],[896,84],[898,84],[897,84],[899,84],[900,84],[901,975],[902,84],[903,84],[904,975],[905,84],[906,84],[907,975],[908,84],[909,975],[910,975],[911,975],[912,84],[913,975],[914,975],[915,975],[916,975],[917,975],[919,975],[920,84],[921,84],[918,975],[922,975],[923,84],[924,84],[925,84],[926,84],[927,84],[928,84],[929,84],[930,84],[931,84],[932,84],[933,84],[934,975],[935,84],[936,84],[939,978],[940,975],[941,975],[942,979],[943,980],[944,975],[945,975],[946,975],[947,975],[950,975],[948,84],[949,84],[872,84],[951,84],[952,84],[953,84],[954,84],[955,84],[956,84],[957,84],[959,981],[960,84],[961,84],[962,84],[964,84],[963,84],[965,84],[966,84],[967,84],[968,975],[969,84],[970,84],[971,84],[972,84],[973,975],[974,975],[976,975],[975,975],[977,84],[978,84],[979,84],[980,84],[1127,982],[981,975],[982,975],[983,84],[984,84],[985,84],[986,84],[987,84],[988,84],[989,84],[990,84],[991,84],[992,84],[993,84],[994,84],[995,975],[996,84],[997,84],[998,84],[999,84],[1000,84],[1001,84],[1002,84],[1003,84],[1004,84],[1005,84],[1006,975],[1007,84],[1008,84],[1009,84],[1010,84],[1011,84],[1012,84],[1013,84],[1014,84],[1015,84],[1016,975],[1017,84],[1018,84],[1019,84],[1020,84],[1021,84],[1022,84],[1023,84],[1024,84],[1025,975],[1026,84],[1027,84],[1028,84],[1029,84],[1030,84],[1031,84],[1032,975],[1033,84],[1035,983],[871,975],[1036,84],[1037,975],[1038,84],[1039,84],[1040,84],[1041,84],[1042,84],[1043,84],[1044,84],[1045,84],[1046,84],[1047,975],[1048,84],[1049,84],[1050,84],[1051,84],[1052,84],[1053,84],[1054,84],[1059,984],[1057,985],[1058,986],[1056,987],[1055,975],[1060,84],[1061,84],[1062,975],[1063,84],[1064,84],[1065,84],[1066,84],[1067,84],[1068,84],[1069,84],[1070,84],[1071,84],[1072,975],[1073,975],[1074,84],[1075,84],[1076,84],[1077,975],[1078,84],[1079,975],[1080,84],[1081,981],[1082,84],[1083,84],[1084,84],[1085,84],[1086,84],[1087,84],[1088,84],[1089,84],[1090,84],[1091,975],[1092,975],[1093,84],[1094,84],[1095,84],[1096,84],[1097,84],[1098,84],[1099,84],[1100,84],[1101,84],[1102,84],[1103,84],[1104,84],[1105,975],[1106,975],[1107,84],[1108,84],[1109,975],[1110,84],[1111,84],[1112,84],[1113,84],[1114,84],[1115,84],[1116,84],[1117,84],[1118,84],[1119,84],[1120,84],[1121,84],[1122,975],[873,988],[1123,84],[1124,84],[1125,84],[1126,84],[1954,84],[1336,84],[375,989],[2483,291],[459,990],[527,991],[398,992],[390,84],[460,993],[461,994],[463,995],[392,993],[391,84],[457,996],[399,997],[406,998],[407,998],[408,998],[409,999],[405,1000],[410,1001],[425,998],[411,1002],[412,1002],[413,998],[414,998],[415,999],[416,998],[431,1003],[417,998],[418,998],[419,1004],[420,998],[421,998],[422,1004],[423,999],[424,998],[426,1005],[427,1004],[428,998],[429,999],[430,998],[452,1006],[445,1007],[404,1008],[465,1009],[400,1010],[401,1008],[442,1011],[450,1012],[444,1013],[449,1014],[451,1015],[448,1016],[456,1017],[443,1018],[458,1019],[453,1020],[446,1021],[403,1022],[402,1008],[464,1023],[447,1024],[454,84],[455,1025],[395,1026],[483,1027],[466,1028],[528,1029],[529,1029],[530,1029],[531,1030],[532,1029],[468,1031],[533,1032],[534,1033],[535,1034],[536,1029],[489,1035],[554,1036],[537,1029],[538,1029],[540,1037],[541,1038],[542,1038],[543,1029],[544,1029],[545,1038],[546,1038],[547,1029],[548,1029],[549,1029],[550,1030],[551,1039],[539,1040],[552,1029],[553,1030],[558,1041],[555,1042],[467,1043],[494,1044],[469,1045],[470,1043],[484,1046],[488,1047],[486,1048],[479,1049],[556,1050],[557,1051],[487,1052],[478,1053],[482,1054],[485,1055],[490,1056],[476,1057],[474,1021],[472,1058],[471,1043],[491,1059],[492,84],[493,1060],[473,1024],[480,84],[481,1061],[560,1062],[561,1063],[2468,1064],[559,1065],[438,1066],[439,1067],[441,993],[440,1068],[477,1069],[475,1070],[432,1071],[434,1072],[433,1071],[435,1071],[436,1073],[437,1074],[397,1075],[525,1076],[495,1077],[502,1078],[501,1079],[503,1080],[523,1081],[519,1082],[520,1083],[521,1083],[522,1084],[506,1085],[513,1086],[500,1087],[526,1088],[496,1089],[497,1087],[509,1090],[512,1091],[511,1092],[516,1093],[505,1094],[507,1095],[515,1096],[524,1097],[510,1098],[508,1099],[504,1021],[499,1100],[498,1101],[518,1102],[514,1024],[517,1103],[396,1024],[394,1104],[393,1105],[462,84],[640,1106],[374,84],[1207,84],[3165,1107],[3164,1108],[3163,1109],[3162,1110],[3094,84],[1134,84],[1136,1111],[1135,1112],[1139,1113],[1133,84],[1137,1112],[1138,1114],[3166,1115],[1151,1116],[1153,1117],[1150,1118],[1148,1119],[1152,1120],[1156,84],[1149,1121],[1147,1122],[1155,1123],[1157,1124],[1154,1125],[1167,84],[1132,1126],[2616,124],[1952,1127],[1953,1128],[1951,1129],[1939,1130],[1944,1131],[1945,1132],[1948,1133],[1947,1134],[1946,1135],[1949,1136],[1956,1137],[1959,1138],[1958,1139],[1957,1140],[1950,1141],[1940,864],[1955,1142],[1942,1143],[1938,1144],[1943,1145],[1941,1130],[1140,825],[1378,84],[380,1146],[385,1147],[379,1148],[387,1149],[2580,124],[1570,124],[641,84],[2660,1150],[2659,124],[71,1151],[329,1152],[333,1153],[335,1154],[184,1155],[198,1156],[300,1157],[229,84],[303,1158],[265,1159],[273,1160],[301,1161],[185,1162],[228,84],[230,1163],[302,1164],[205,84],[186,1165],[209,84],[199,84],[169,84],[256,1166],[257,1167],[174,84],[253,1168],[258,547],[344,1169],[251,547],[345,1170],[235,84],[254,1171],[357,1172],[356,1173],[260,547],[355,84],[353,84],[354,1174],[255,124],[242,1175],[243,1176],[252,1177],[268,1178],[269,1179],[259,1180],[237,1181],[238,1182],[348,1183],[351,1184],[216,1185],[215,1186],[214,1187],[360,124],[213,1188],[190,84],[363,84],[3061,1189],[3060,84],[366,84],[365,124],[367,1190],[165,84],[294,84],[197,1191],[167,1192],[317,84],[318,84],[320,84],[323,1193],[319,84],[321,1194],[322,1194],[183,84],[196,84],[328,1195],[336,1196],[340,1197],[179,1198],[245,1199],[244,84],[236,1181],[264,1200],[262,1201],[261,84],[263,84],[267,1202],[240,1203],[178,1204],[203,1205],[291,1206],[170,1207],[177,1208],[166,1157],[305,1209],[315,1210],[304,84],[314,1211],[204,84],[188,1212],[282,1213],[281,84],[288,1214],[290,1215],[283,1216],[287,1217],[289,1214],[286,1216],[285,1214],[284,1216],[225,1218],[210,1218],[276,1219],[211,1219],[172,1220],[171,84],[280,1221],[279,1222],[278,1223],[277,1224],[173,1225],[249,1226],[266,1227],[248,1228],[272,1229],[274,1230],[271,1228],[206,1225],[159,84],[292,1231],[231,1232],[313,1233],[234,1234],[308,1235],[176,84],[309,1236],[311,1237],[312,1238],[295,84],[307,1207],[207,1239],[293,1240],[316,1241],[180,84],[182,84],[187,1242],[275,1243],[175,1244],[181,84],[233,1245],[232,1246],[189,1247],[241,645],[239,1248],[191,1249],[193,1250],[364,84],[192,1251],[194,1252],[331,84],[330,84],[332,84],[362,84],[195,1253],[247,124],[70,84],[270,1254],[217,84],[227,1255],[338,124],[347,1256],[224,124],[342,547],[223,1257],[325,1258],[222,1256],[168,84],[349,1259],[220,124],[221,124],[212,84],[226,84],[219,1260],[218,1261],[208,1262],[202,1180],[310,84],[201,1263],[200,84],[334,84],[246,124],[327,1264],[61,1265],[69,1266],[66,1267],[67,1268],[68,1269],[306,1270],[299,1271],[298,84],[297,1272],[296,84],[337,1273],[339,1274],[341,1275],[3062,1276],[343,1277],[346,1278],[372,1279],[350,1279],[371,1280],[352,1281],[358,1282],[359,1283],[361,1284],[368,1285],[370,1286],[369,1287],[324,1288],[1692,1289],[1856,1290],[1860,1291],[1862,1292],[1713,1293],[1727,1294],[1828,1295],[1758,84],[1831,1296],[1793,1297],[1801,1298],[1829,1299],[1714,1300],[1757,84],[1759,1301],[1830,1302],[1734,84],[1715,1303],[1738,84],[1728,84],[1698,84],[1784,1304],[1785,1305],[1703,84],[1781,1306],[1786,547],[1871,1307],[1779,547],[1872,1308],[1764,84],[1782,1309],[1884,1310],[1883,1311],[1788,547],[1882,84],[1880,84],[1881,1312],[1783,124],[1771,1313],[1772,1314],[1780,1315],[1796,1316],[1797,1317],[1787,1180],[1766,1318],[1767,1319],[1875,1320],[1878,1184],[1745,1321],[1744,1322],[1743,1323],[1887,124],[1742,1324],[1719,84],[1890,84],[1893,84],[1892,124],[1894,1325],[1694,84],[1822,84],[1726,1326],[1696,1327],[1845,84],[1846,84],[1848,84],[1851,1328],[1847,84],[1849,1329],[1850,1329],[1712,84],[1725,84],[1855,1330],[1863,1331],[1867,1332],[1708,1333],[1774,1334],[1773,84],[1765,1318],[1792,1335],[1790,1336],[1789,84],[1791,84],[1795,1337],[1769,1338],[1707,1339],[1732,1340],[1819,1341],[1699,1207],[1706,1342],[1695,1295],[1833,1343],[1843,1344],[1832,84],[1842,1345],[1733,84],[1717,1346],[1810,1347],[1809,84],[1816,1348],[1818,1349],[1811,1350],[1815,1351],[1817,1348],[1814,1350],[1813,1348],[1812,1350],[1754,1352],[1739,1352],[1804,1353],[1740,1353],[1701,1354],[1700,84],[1808,1355],[1807,1356],[1806,1357],[1805,1358],[1702,1359],[1778,1360],[1794,1361],[1777,1362],[1800,1363],[1802,1364],[1799,1362],[1735,1359],[1693,84],[1820,1365],[1760,1366],[1841,1367],[1763,1368],[1836,1369],[1705,84],[1837,1370],[1839,1371],[1840,1372],[1823,84],[1835,1207],[1736,1373],[1821,1374],[1844,1375],[1709,84],[1711,84],[1716,1376],[1803,1377],[1704,1378],[1710,84],[1762,1379],[1761,1380],[1718,1381],[1770,645],[1768,1382],[1720,1249],[1722,1383],[1891,84],[1721,1384],[1723,1385],[1858,84],[1857,84],[1859,84],[1889,84],[1724,1386],[1776,124],[1691,84],[1798,1387],[1746,84],[1756,1388],[1865,124],[1874,1389],[1753,124],[1869,547],[1752,1390],[1853,1391],[1751,1389],[1697,84],[1876,1392],[1749,124],[1750,124],[1741,84],[1755,84],[1748,1393],[1747,1394],[1737,1395],[1731,1180],[1838,84],[1730,1396],[1729,84],[1861,84],[1775,124],[1854,1397],[1686,1398],[1690,1399],[1687,1400],[1688,1401],[1689,1402],[1834,1270],[1827,1403],[1826,84],[1825,1404],[1824,84],[1864,1405],[1866,1406],[1868,1407],[1870,1408],[1873,1409],[1877,1410],[1898,1411],[1879,1412],[1885,1413],[1886,1414],[1888,1415],[1895,1416],[1897,1417],[1896,1418],[1852,1419],[2010,84],[1129,84],[1546,1420],[1547,1421],[1445,1422],[1671,84],[378,1423],[377,84],[381,1424],[383,1147],[384,1425],[382,1147],[386,84],[1168,84],[1146,84],[1189,1426],[1187,1427],[1188,1428],[1176,1429],[1177,1427],[1184,1430],[1175,1431],[1180,1432],[1190,84],[1181,1433],[1186,1434],[1192,1435],[1191,1436],[1174,1437],[1182,1438],[1183,1439],[1178,1440],[1185,1426],[1179,1441],[389,1442],[1218,1443],[1158,1444],[1131,84],[2584,84],[2599,1445],[2600,1445],[2612,1446],[2601,1447],[2602,1448],[2597,1449],[2595,1450],[2586,84],[2590,1451],[2594,1452],[2592,1453],[2598,1454],[2587,1455],[2588,1456],[2589,1457],[2591,1458],[2593,1459],[2596,1460],[2603,1447],[2604,1447],[2605,1447],[2606,1445],[2607,1447],[2608,1447],[2585,1447],[2609,84],[2611,1461],[2610,1447],[2812,1462],[2814,1463],[2804,1464],[2809,1465],[2810,1466],[2816,1467],[2811,1468],[2808,1469],[2807,1470],[2806,1471],[2817,1472],[2774,1465],[2775,1465],[2815,1465],[2820,1473],[2830,1474],[2824,1474],[2832,1474],[2836,1474],[2822,1475],[2823,1474],[2825,1474],[2828,1474],[2831,1474],[2827,1476],[2829,1474],[2833,124],[2826,1465],[2821,1477],[2783,124],[2787,124],[2777,1465],[2780,124],[2785,1465],[2786,1478],[2779,1479],[2782,124],[2784,124],[2781,1480],[2770,124],[2769,124],[2838,1481],[2835,1482],[2801,1483],[2800,1465],[2798,124],[2799,1465],[2802,1484],[2803,1485],[2796,124],[2792,1486],[2795,1465],[2794,1465],[2793,1465],[2788,1465],[2797,1486],[2834,1465],[2813,1487],[2819,1488],[2818,1489],[2837,84],[2805,84],[2778,84],[2776,1490],[1141,1491],[1202,1492],[1201,1493],[1330,84],[3143,1494],[3142,1495],[3140,1496],[3139,1497],[3093,1498],[1665,84],[2621,124],[1173,1499],[2642,84],[1925,1500],[1926,1501],[1927,1502],[1922,1503],[1924,84],[1921,1504],[1923,1505],[1668,84],[1198,1506],[1195,1507],[1194,84],[1193,84],[1197,84],[1196,1508],[3144,84],[1236,84],[1327,1509],[1276,1510],[1289,1511],[1251,84],[1303,1512],[1305,1513],[1304,1513],[1278,1514],[1277,84],[1279,1515],[1306,1516],[1310,1517],[1308,1517],[1287,1518],[1286,84],[1295,1516],[1254,1516],[1282,84],[1323,1519],[1298,1520],[1300,1521],[1318,1516],[1253,1522],[1270,1523],[1285,84],[1320,84],[1291,1524],[1307,1517],[1311,1525],[1309,1526],[1324,84],[1293,84],[1267,1522],[1259,84],[1258,1527],[1283,1516],[1284,1516],[1257,1528],[1290,84],[1252,84],[1269,84],[1297,84],[1325,1529],[1264,1516],[1265,1530],[1312,1513],[1314,1531],[1313,1531],[1249,84],[1268,84],[1275,84],[1266,1516],[1296,84],[1263,84],[1322,84],[1262,84],[1260,1532],[1261,84],[1299,84],[1292,84],[1319,1533],[1273,1527],[1271,1527],[1272,1527],[1288,84],[1255,84],[1315,1517],[1317,1525],[1316,1526],[1302,84],[1301,1534],[1294,84],[1281,84],[1321,84],[1326,84],[1250,84],[1280,84],[1274,84],[1256,1527],[59,84],[60,84],[10,84],[11,84],[13,84],[12,84],[2,84],[14,84],[15,84],[16,84],[17,84],[18,84],[19,84],[20,84],[21,84],[3,84],[22,84],[4,84],[23,84],[27,84],[24,84],[25,84],[26,84],[28,84],[29,84],[30,84],[5,84],[31,84],[32,84],[33,84],[34,84],[6,84],[38,84],[35,84],[36,84],[37,84],[39,84],[7,84],[40,84],[45,84],[46,84],[41,84],[42,84],[43,84],[44,84],[8,84],[50,84],[47,84],[48,84],[49,84],[51,84],[9,84],[52,84],[53,84],[54,84],[57,84],[55,84],[56,84],[1,84],[58,84],[90,1535],[97,1536],[89,1535],[104,1537],[81,1538],[80,1539],[103,684],[98,1540],[101,1541],[83,1542],[82,1543],[78,1544],[77,1545],[100,1546],[79,1547],[84,1548],[85,84],[88,1548],[75,84],[106,1549],[105,1548],[92,1550],[93,1551],[95,1552],[91,1553],[94,1554],[99,684],[86,1555],[87,1556],[96,1557],[76,1491],[102,1558],[2896,124],[2773,1559],[2791,1560],[1237,1561],[1227,1562],[1228,1561],[1239,1563],[1226,84],[1213,1564],[1212,1565],[1211,1566],[1208,1567],[1206,1568],[1204,1569],[1203,84],[1205,1570],[1209,84],[1210,1571],[1242,1572],[1241,1573],[1635,1574],[1240,1573],[1632,1575],[3145,1576],[2736,1577],[2735,84],[2023,291],[639,1578],[631,1579],[637,1580],[633,84],[634,84],[632,1581],[635,1578],[627,84],[628,84],[638,1582],[630,1583],[636,1584],[629,1585],[3171,864],[3176,1493],[3177,84],[3178,645],[3180,1586],[3181,1493],[3175,84],[3183,1587],[3184,84],[3185,84],[3186,1587],[3188,1588],[3187,84],[3189,84],[3179,84],[3190,1587],[3191,84],[3193,1589],[3192,1590],[1558,84],[3194,84],[3182,84]],"affectedFilesPendingEmit":[1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1660,1664,1243,2622,2667,2670,2671,2672,2673,2675,2674,2678,2679,2681,2680,2682,2683,2685,2684,2638,2687,2686,2691,2692,2694,2693,2695,2629,2696,2697,2698,2701,2702,2703,2706,2704,2705,2707,2711,2712,2714,2732,2715,2728,2733,2713,2740,2742,2630,2631,2632,2637,2745,2746,2743,2747,2748,2749,2750,2751,2758,2760,2755,2762,2763,2764,2759,2756,2765,2757,2766,2845,2744,2846,2847,2848,2849,2741,2850,2890,2889,2887,2738,2891,2898,2904,2903,2905,2899,2906,2907,2908,2911,2913,2914,2912,2900,2901,2902,2920,2919,2921,2915,2922,2923,2924,2925,2927,2928,2926,2916,2917,2918,2839,2840,2841,2842,2843,2844,2929,2935,2934,2936,2930,2937,2938,2939,2940,2942,2943,2941,2931,2932,2933,2949,2948,2950,2944,2951,2952,2953,2954,2956,2957,2955,2945,2946,2947,2958,2959,2961,2962,2963,2964,2966,2965,2972,2971,2967,2973,2974,2975,2976,2978,2979,2977,2968,2969,2970,2980,2981,2982,2983,3025,3023,3026,3028,3024,3027,3029,3030,3031,3033,3032,2984,2985,2987,2986,2989,2988,3035,3036,3038,3037,2990,2991,3039,2992,3022,3040,3041,3043,3042,3007,3008,3009,3010,3044,3011,3021,2739,3016,3012,3013,3014,3015,3018,3017,3020,3019,2960,3034,3000,2998,2999,3045,3001,3046,3047,2633,2661,2699,2995,2700,2910,3048,3049,2628,3050,2997,2761,3002,2581,2615,2994,2723,2634,2754,2731,2897,2614,2617,2635,2613,2725,2768,2690,2727,2710,2669,3052,3053,3054,2677,2888,2730,2636,2709,2666,1580,1597,2030,2451,2475,3055,3056,3057,3058,3059,376,1666,1669,388,3168,3063,3064,3065,2460,2463,2465,2464,2461,2467,2462,3071,3072,3006,3075,3076,3077,3078,3079,3080,3081,3073,3082,3083,3084,3085,3086,3087,3088,3089,3090,3074,3066,3067,3068,3070,3091,1172,2459,1930,2025,1929,2417,2419,2421,2422,2423,2424,2426,2427,2428,2429,2430,2431,2433,2435,2436,2437,2438,2441,2445,2448,2456,2457,2458,1128,1600,1170,2026,2418,2420,1612,1555,2032,2425,1551,2029,2409,2027,2412,2432,2434,2407,1599,1663,2440,2443,2447,2455,1352,2022,1928,1165,1171,1670,1247,2484,869,2469,2485,648,864,645,855,865,858,859,649,860,868,856,854,857,850,867,861,851,853,862,852,646,863,866,647,2487,643,644,849,2486,642,1349,2021,2020,2482,2470,2471,2472,2442,2473,2450,1248,2474,2416,2410,2413,2414,2415,1609,1603,1659,1604,1607,1605,1606,1602,1335,2028,2408,2411,2406,2439,1631,1626,1627,1628,1629,1630,1610,1608,1601,1351,1596,1598,2031,2452,2476,1595,1353,1334,1350,1354,1548,1611,1554,1550,1549,1661,1662,2444,2446,2449,2453,2478,2479,2480,2481,1166,2477,1199,610,604,601,603,612,622,611,605,619,602,624,621,614,618,617,607,613,609,620,615,600,599,616,625,598,623,606,626,608,2575,2024]},"version":"5.5.3"} \ No newline at end of file diff --git a/utils/api.ts b/apps/dokploy/utils/api.ts similarity index 100% rename from utils/api.ts rename to apps/dokploy/utils/api.ts diff --git a/utils/schema.ts b/apps/dokploy/utils/schema.ts similarity index 100% rename from utils/schema.ts rename to apps/dokploy/utils/schema.ts diff --git a/apps/website/.gitignore b/apps/website/.gitignore new file mode 100644 index 00000000..0b130954 --- /dev/null +++ b/apps/website/.gitignore @@ -0,0 +1,37 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +.idea + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/apps/website/README.md b/apps/website/README.md new file mode 100644 index 00000000..57562914 --- /dev/null +++ b/apps/website/README.md @@ -0,0 +1,15 @@ +# Dokploy Website + +Main Landing Page of Dokploy + +Run development server: + +```bash +npm run dev +# or +pnpm dev +# or +yarn dev +``` + +Open http://localhost:3000 with your browser to see the result. diff --git a/apps/website/app/icon.svg b/apps/website/app/icon.svg new file mode 100644 index 00000000..3a8930d5 --- /dev/null +++ b/apps/website/app/icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/website/app/layout.tsx b/apps/website/app/layout.tsx new file mode 100644 index 00000000..6ca8018e --- /dev/null +++ b/apps/website/app/layout.tsx @@ -0,0 +1,98 @@ +import clsx from "clsx"; +import { Inter, Lexend } from "next/font/google"; +import "@/styles/tailwind.css"; +import GoogleAnalytics from "@/components/analitycs/google"; +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: { + default: "Dokploy - Effortless Deployment Solutions", + template: "%s | Simplify Your DevOps", + }, + alternates: { + canonical: "https://dokploy.com", + languages: { + en: "https://dokploy.com", + }, + }, + description: + "Streamline your deployment process with Dokploy. Effortlessly manage applications and databases on any VPS using Docker and Traefik for improved performance and security.", + applicationName: "Dokploy", + keywords: [ + "Dokploy", + "Docker", + "Traefik", + "deployment", + "VPS", + "application management", + "database management", + "DevOps", + "cloud infrastructure", + "UI Self hosted", + ], + referrer: "origin", + robots: "index, follow", + openGraph: { + type: "website", + url: "https://dokploy.com", + title: "Dokploy - Effortless Deployment Solutions", + description: + "Simplify your DevOps with Dokploy. Deploy applications and manage databases efficiently on any VPS.", + siteName: "Dokploy", + images: [ + { + url: "http://dokploy.com/og.png", + }, + ], + }, + twitter: { + card: "summary_large_image", + site: "@Dokploy", + creator: "@Dokploy", + title: "Dokploy - Simplify Your DevOps", + description: + "Deploy applications and manage databases with ease using Dokploy. Learn how our platform can elevate your infrastructure management.", + images: "https://dokploy.com/og.png", + }, +}; + +const inter = Inter({ + subsets: ["latin"], + display: "swap", + variable: "--font-inter", +}); + +const lexend = Lexend({ + subsets: ["latin"], + display: "swap", + variable: "--font-lexend", +}); + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + {children} + + Dokploy - Open-source alternative to Heroku, Vercel, and Netlify. | Product Hunt + + + ); +} diff --git a/apps/website/app/not-found.tsx b/apps/website/app/not-found.tsx new file mode 100644 index 00000000..5225642b --- /dev/null +++ b/apps/website/app/not-found.tsx @@ -0,0 +1,27 @@ +import Link from "next/link"; + +import { SlimLayout } from "../components/SlimLayout"; +// import { Button } from "../components/Button"; +import { Logo } from "../components/shared/Logo"; + +export default function NotFound() { + return ( + +
    + + + +
    +

    404

    +

    + Page not found +

    +

    + Sorry, we couldn’t find the page you’re looking for. +

    + {/* */} +
    + ); +} diff --git a/apps/website/app/page.tsx b/apps/website/app/page.tsx new file mode 100644 index 00000000..2847ee10 --- /dev/null +++ b/apps/website/app/page.tsx @@ -0,0 +1,25 @@ +import { CallToAction } from "../components/CallToAction"; +import { Faqs } from "../components/Faqs"; +import { Footer } from "../components/Footer"; +import { Header } from "../components/Header"; +import { Hero } from "../components/Hero"; +import { PrimaryFeatures } from "../components/PrimaryFeatures"; +import { SecondaryFeatures } from "../components/SecondaryFeatures"; +import { Testimonials } from "../components/Testimonials"; + +export default function Home() { + return ( +
    +
    +
    + + + + + {/* */} + +
    +
    +
    + ); +} diff --git a/apps/website/app/robots.ts b/apps/website/app/robots.ts new file mode 100644 index 00000000..ebf4d792 --- /dev/null +++ b/apps/website/app/robots.ts @@ -0,0 +1,11 @@ +import type { MetadataRoute } from "next"; + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + }, + sitemap: "https://dokploy.com/sitemap.xml", + }; +} diff --git a/apps/website/app/sitemap.ts b/apps/website/app/sitemap.ts new file mode 100644 index 00000000..52a2ad70 --- /dev/null +++ b/apps/website/app/sitemap.ts @@ -0,0 +1,12 @@ +import type { MetadataRoute } from "next"; + +export default function sitemap(): MetadataRoute.Sitemap { + return [ + { + url: "https://dokploy.com", + lastModified: new Date(), + changeFrequency: "yearly", + priority: 1, + }, + ]; +} diff --git a/apps/website/components.json b/apps/website/components.json new file mode 100644 index 00000000..230d001c --- /dev/null +++ b/apps/website/components.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/styles/tailwind.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils" + } +} diff --git a/apps/website/components/CallToAction.tsx b/apps/website/components/CallToAction.tsx new file mode 100644 index 00000000..6c7b5a1f --- /dev/null +++ b/apps/website/components/CallToAction.tsx @@ -0,0 +1,56 @@ +import { Container } from "@/components/Container"; +import Link from "next/link"; +import { Button } from "./ui/button"; + +export function CallToAction() { + return ( +
    + + + + + + + + + + + + + + + + +
    +

    + Unlock Your Deployment Potential +

    +

    + Streamline your deployments with our PaaS. Effortlessly manage + Docker containers and traffic with Traefik. Boost your + infrastructure's efficiency and security today +

    + + {/* @ts-expect-error */} + +
    +
    +
    + ); +} diff --git a/apps/website/components/Container.tsx b/apps/website/components/Container.tsx new file mode 100644 index 00000000..85eaa009 --- /dev/null +++ b/apps/website/components/Container.tsx @@ -0,0 +1,13 @@ +import clsx from "clsx"; + +export function Container({ + className, + ...props +}: React.ComponentPropsWithoutRef<"div">) { + return ( +
    + ); +} diff --git a/apps/website/components/Faqs.tsx b/apps/website/components/Faqs.tsx new file mode 100644 index 00000000..117b4d00 --- /dev/null +++ b/apps/website/components/Faqs.tsx @@ -0,0 +1,101 @@ +import { Container } from "./Container"; + +const faqs = [ + [ + { + question: "What is dokploy?", + answer: + "Dokploy is a stable, easy-to-use deployment solution designed to simplify the application management process. Think of Dokploy as a free alternative self-hostable solution to platforms like Heroku, Vercel, and Netlify.", + }, + { + question: "Why Choose Dokploy?", + answer: "Simplicity, Flexibility, and Fast", + }, + { + question: "Is free?", + answer: + "Yes, dokploy is totally free. You can use it for personal projects, small teams, or even for large-scale applications.", + }, + { + question: "Is it open source?", + answer: "Yes, dokploy is open source and free to use.", + }, + ], + [ + { + question: "What type of applications can i deploy with dokploy?", + answer: + "Dokploy is a great choice for any type of application. You can deploy your code to dokploy and manage it from the dashboard. We support a wide range of languages and frameworks, so you can choose the one that best fits your needs.", + }, + { + question: "How do I request a feature or report a bug?", + answer: + "Currently we are working on fixing bug fixes, but we will be releasing new features soon. You can also request features or report bugs.", + }, + { + question: "Do you track the usage of Dokploy?", + answer: "No, we don't track any usage data.", + }, + ], + [ + { + question: + "Are there any user forums or communities where I can interact with other users?", + answer: + "Yes, we have active github discussions where you can share ideas, ask for help, and connect with other users.", + }, + { + question: "What types of applications can I deploy with Dokploy?", + answer: + "Dokploy supports a variety of applications, including those built with Docker, as well as applications from any Git repository, offering custom builds with Nixpacks, Dockerfiles, or Buildpacks like Heroku and Paketo.", + }, + { + question: "How does Dokploy handle database management?", + answer: + "Dokploy supports multiple database systems including Postgres, MySQL, MariaDB, MongoDB, and Redis, providing tools for easy deployment and management directly from the dashboard.", + }, + ], +]; + +export function Faqs() { + return ( +
    + +
    +

    + Frequently asked questions +

    +

    + If you can’t find what you’re looking for, email our support team + and if you’re lucky someone will get back to you. +

    +
    +
      + {faqs.map((column, columnIndex) => ( +
    • +
        + {column.map((faq, faqIndex) => ( +
      • +

        + {faq.question} +

        +

        + {faq.answer} +

        +
      • + ))} +
      +
    • + ))} +
    +
    +
    + ); +} diff --git a/apps/website/components/Footer.tsx b/apps/website/components/Footer.tsx new file mode 100644 index 00000000..3c188e55 --- /dev/null +++ b/apps/website/components/Footer.tsx @@ -0,0 +1,67 @@ +import Link from "next/link"; + +import { Container } from "./Container"; +import { NavLink } from "./NavLink"; +import { Logo } from "./shared/Logo"; + +export function Footer() { + return ( +
    + +
    +
    + + + Dokploy + +
    + + +
    +
    +
    + + + + + + +
    +

    + Copyright © {new Date().getFullYear()} Dokploy. All rights + reserved. +

    +
    +
    +
    + ); +} diff --git a/apps/website/components/Header.tsx b/apps/website/components/Header.tsx new file mode 100644 index 00000000..5cd3151c --- /dev/null +++ b/apps/website/components/Header.tsx @@ -0,0 +1,180 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import { Popover, Transition } from "@headlessui/react"; +import { HeartIcon } from "lucide-react"; +import Link from "next/link"; +import { Fragment } from "react"; +import { Container } from "./Container"; +import { NavLink } from "./NavLink"; +import { trackGAEvent } from "./analitycs"; +import { Logo } from "./shared/Logo"; +import { Button, buttonVariants } from "./ui/button"; + +function MobileNavLink({ + href, + children, + target, +}: { + href: string; + children: React.ReactNode; + target?: string; +}) { + return ( + { + trackGAEvent({ + action: "Nav Link Clicked", + category: "Navigation", + label: href, + }); + }} + as={Link} + href={href} + target={target} + className="block w-full p-2" + > + {children} + + ); +} + +function MobileNavIcon({ open }: { open: boolean }) { + return ( + + ); +} + +function MobileNavigation() { + return ( + + + {({ open }) => } + + + + + + + + + Features + Testimonials + Faqs + + Docs + + + + + + ); +} + +export function Header() { + return ( +
    + + + +
    + ); +} diff --git a/apps/website/components/Hero.tsx b/apps/website/components/Hero.tsx new file mode 100644 index 00000000..3d07e9ca --- /dev/null +++ b/apps/website/components/Hero.tsx @@ -0,0 +1,181 @@ +"use client"; +import { Check, Copy } from "lucide-react"; +import Link from "next/link"; +import { useEffect, useState } from "react"; +import { Container } from "./Container"; +import { Button } from "./ui/button"; + +const ProductHunt = () => { + return ( + + + + + + + + + + ); +}; + +export function Hero() { + const [isCopied, setIsCopied] = useState(false); + + useEffect(() => { + const timer = setTimeout(() => { + setIsCopied(false); + }, 2000); + return () => clearTimeout(timer); + }, [isCopied]); + return ( + +
    + + + + + + + + + + + + + + + +
    + +
    +

    + Deploy{" "} + + + Anywhere + {" "} + with Total Freedom and Ease. +

    +

    + Streamline your operations with our all-in-one platform—perfect for + managing projects, data, and system health with simplicity and + efficiency. +

    +
    +
    + + curl -sSL https://dokploy.com/install.sh | sh + + + {/* */} + {/* @ts-expect-error */} + +
    +
    +
    +