1
0
mirror of https://github.com/privacyguides/privacyguides.org.git synced 2025-09-14 05:58:55 +00:00

Compare commits

..

1 Commits

442 changed files with 2918 additions and 14311 deletions

View File

@@ -250,45 +250,6 @@
"ideas"
]
},
{
"login": "jordan-warne",
"name": "jordan warne",
"avatar_url": "https://avatars.githubusercontent.com/u/154663344?v=4",
"profile": "https://jordanwarne.net/",
"contributions": [
"doc",
"video",
"research",
"ideas",
"question",
"promotion"
]
},
{
"login": "EmAtPrivacyGuides",
"name": "Em",
"avatar_url": "https://avatars.githubusercontent.com/u/194856901?v=4",
"profile": "https://github.com/EmAtPrivacyGuides",
"contributions": [
"blog",
"promotion",
"ideas"
]
},
{
"login": "kpham42",
"name": "Kevin Pham",
"avatar_url": "https://avatars.githubusercontent.com/u/123699355?v=4",
"profile": "https://github.com/kpham42",
"contributions": [
"blog",
"promotion",
"question",
"research",
"ideas",
"doc"
]
},
{
"login": "actions",
"name": "GitHub Actions",
@@ -499,8 +460,7 @@
"avatar_url": "https://avatars.githubusercontent.com/u/47955724?v=4",
"profile": "https://github.com/taivlam",
"contributions": [
"doc",
"maintenance"
"doc"
]
},
{
@@ -1994,6 +1954,15 @@
"doc"
]
},
{
"login": "aghorler",
"name": "Aaron Horler",
"avatar_url": "https://avatars.githubusercontent.com/u/13065365?v=4",
"profile": "https://aaronhorler.com/",
"contributions": [
"doc"
]
},
{
"login": "Commenter25",
"name": "Commenter",
@@ -2797,6 +2766,15 @@
"translation"
]
},
{
"login": "jordan-warne",
"name": "jordan warne",
"avatar_url": "https://avatars.githubusercontent.com/u/154663344?v=4",
"profile": "https://jordanwarne.net/",
"contributions": [
"doc"
]
},
{
"login": "dzenan",
"name": "Dženan",
@@ -3007,117 +2985,6 @@
"promotion",
"question"
]
},
{
"login": "Spirizer",
"name": "Spirizer",
"avatar_url": "https://avatars.githubusercontent.com/u/51120100?v=4",
"profile": "https://github.com/Spirizer",
"contributions": [
"translation"
]
},
{
"login": "jordbm",
"name": "jordbm",
"avatar_url": "https://avatars.githubusercontent.com/u/160433264?v=4",
"profile": "https://github.com/jordbm",
"contributions": [
"doc",
"maintenance",
"security"
]
},
{
"login": "austinhuang0131",
"name": "Austin Huang",
"avatar_url": "https://avatars.githubusercontent.com/u/16656689?v=4",
"profile": "https://austinhuang.me/",
"contributions": [
"doc",
"question"
]
},
{
"login": "WardPearce",
"name": "Ward",
"avatar_url": "https://avatars.githubusercontent.com/u/27844174?v=4",
"profile": "https://github.com/WardPearce",
"contributions": [
"doc"
]
},
{
"login": "oilmaint",
"name": "oilmaint",
"avatar_url": "https://avatars.githubusercontent.com/u/79659024?v=4",
"profile": "https://github.com/oilmaint",
"contributions": [
"doc"
]
},
{
"login": "headdirt",
"name": "headdirt",
"avatar_url": "https://avatars.githubusercontent.com/u/37009392?v=4",
"profile": "https://github.com/headdirt",
"contributions": [
"doc"
]
},
{
"login": "qmcree",
"name": "Quentin McRee",
"avatar_url": "https://avatars.githubusercontent.com/u/7796024?v=4",
"profile": "https://github.com/qmcree",
"contributions": [
"doc"
]
},
{
"login": "sv3nnie",
"name": "Sven",
"avatar_url": "https://avatars.githubusercontent.com/u/67653224?v=4",
"profile": "https://github.com/sv3nnie",
"contributions": [
"doc"
]
},
{
"login": "tomhonour",
"name": "Tom Honour",
"avatar_url": "https://avatars.githubusercontent.com/u/132141431?v=4",
"profile": "https://git.sr.ht/~tomhonour/",
"contributions": [
"doc"
]
},
{
"login": "brog-io",
"name": "Brogio",
"avatar_url": "https://avatars.githubusercontent.com/u/141176104?v=4",
"profile": "https://brog.io/",
"contributions": [
"doc"
]
},
{
"login": "nathany",
"name": "Nathan Youngman",
"avatar_url": "https://avatars.githubusercontent.com/u/4566?v=4",
"profile": "https://nathany.com/",
"contributions": [
"doc"
]
},
{
"login": "blanchardjeremy",
"name": "Jeremy",
"avatar_url": "https://avatars.githubusercontent.com/u/32290?v=4",
"profile": "https://github.com/blanchardjeremy",
"contributions": [
"doc"
]
}
],
"contributorsPerLine": 5,

View File

@@ -1,5 +0,0 @@
:1337 {
reverse_proxy /articles/* http://127.0.0.1:8001
reverse_proxy /en/* http://127.0.0.1:8000
redir / /en/
}

View File

@@ -1,117 +1,8 @@
// For format details, see https://aka.ms/devcontainer.json.
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
"name": "Privacy Guides",
"image": "ghcr.io/privacyguides/privacyguides.org:sha-5648a3f",
// "build": {
// "dockerfile": "../Dockerfile",
// "context": ".."
// },
"overrideCommand": true,
"portsAttributes": {
"1337": {
"label": "Website Live Preview",
"onAutoForward": "notify"
},
"8000": {
"label": "Main",
"onAutoForward": "silent"
},
"8001": {
"label": "Articles",
"onAutoForward": "silent"
}
},
"otherPortsAttributes": {
"onAutoForward": "ignore"
},
"mounts": [
"source=${env:HOME}${env:USERPROFILE}/.config,target=/root/.config,type=bind"
],
"updateContentCommand": "git submodule update --init theme/assets/brand",
"customizations": {
"vscode": {
"settings": {
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "Articles",
"type": "shell",
"command": "mkdocs serve --config-file=mkdocs.blog.yml --dev-addr=localhost:8001",
"group": "test",
"runOptions": {
"runOn": "folderOpen"
},
"presentation": {
"reveal": "always",
"panel": "dedicated",
"group": "Live server"
}
},
{
"label": "Main",
"type": "shell",
"command": "./run.sh --cmd=mkdocs --insiders",
"group": "test",
"runOptions": {
"runOn": "folderOpen"
},
"presentation": {
"reveal": "always",
"panel": "dedicated",
"group": "Live server",
"focus": true
}
},
{
"label": "Caddy",
"type": "shell",
"command": "caddy run --config .devcontainer/Caddyfile",
"group": "test",
"runOptions": {
"runOn": "folderOpen"
},
"presentation": {
"reveal": "never",
"panel": "dedicated"
}
}
]
}
},
"extensions": [
"EditorConfig.EditorConfig",
"DavidAnson.vscode-markdownlint",
"wholroyd.jinja",
"mikestead.dotenv",
"redhat.vscode-yaml",
"ecmel.vscode-html-css",
"yzhang.markdown-all-in-one",
"bierner.markdown-checkbox",
"bierner.markdown-emoji",
"bierner.markdown-footnotes",
"bierner.markdown-preview-github-styles",
"esbenp.prettier-vscode",
"ltex-plus.vscode-ltex-plus",
"ms-python.python",
"github.vscode-github-actions",
"matthewpi.caddyfile-support",
"ms-vsliveshare.vsliveshare"
]
},
"codespaces": {
"repositories": {
"privacyguides/mkdocs-material-insiders": {
"permissions": {
"content": "read"
}
},
"privacyguides/brand": {
"permissions": {
"content": "read"
}
}
}
}
}
"name": "Privacy Guides",
"image": "ghcr.io/squidfunk/mkdocs-material:9.5.17",
"forwardPorts": [8000],
"postCreateCommand": "git submodule init; git submodule update theme/assets/brand; apk add bash; /bin/bash run.sh --cmd=mkdocs --cmd_flags=--dev-addr=0.0.0.0:8000"
}

View File

@@ -0,0 +1,8 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
"name": "Privacy Guides Team",
"image": "ghcr.io/privacyguides/privacyguides.org:main",
"forwardPorts": [8000],
"postCreateCommand": "git submodule init; git submodule update theme/assets/brand; ./run.sh --cmd=mkdocs --insiders --production --cmd_flags=--dev-addr=0.0.0.0:8000"
}

View File

@@ -82,18 +82,6 @@ jobs:
pip install mkdocs-material mkdocs-rss-plugin mkdocs-glightbox mkdocs-macros-plugin
sudo apt install pngquant
- name: Set base navigation URLs for production build
if: inputs.context == 'production'
run: |
{
echo "MAIN_SITE_BASE_URL=https://www.privacyguides.org/en/"
echo "MAIN_SITE_ABOUT_URL=https://www.privacyguides.org/en/about/"
echo "MAIN_SITE_RECOMMENDATIONS_URL=https://www.privacyguides.org/en/tools/"
echo "MAIN_SITE_KNOWLEDGE_BASE_URL=https://www.privacyguides.org/en/basics/why-privacy-matters/"
echo "ARTICLES_SITE_BASE_URL=https://www.privacyguides.org/articles/"
echo "VIDEOS_SITE_BASE_URL=https://www.privacyguides.org/videos/"
} >> "$GITHUB_ENV"
- name: Build Website (Privileged)
if: inputs.privileged
run: |

View File

@@ -1,7 +1,9 @@
name: ☁️ Build Container
# Configures this workflow to run every release.
# Configures this workflow to run every time a change is pushed to the branch called `release`.
on:
push:
branches: ["main"]
release:
types: [published]
workflow_dispatch:
@@ -73,12 +75,6 @@ jobs:
flavor: |
latest=${{ github.event_name == 'release' }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
@@ -89,9 +85,6 @@ jobs:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
cleanup:
if: ${{ always() }}

View File

@@ -72,15 +72,13 @@ jobs:
continue-on-error: false
privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }}
strict: true
secrets:
RO_DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
build_i18n:
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:build i18n') }}
needs: [submodule, metadata]
strategy:
matrix:
lang: [es, fr, he, it, nl, ru, zh-Hant, zh-TW]
lang: [es, fr, he, it, nl, ru, zh-Hant]
fail-fast: false
uses: ./.github/workflows/build.yml
with:
@@ -101,23 +99,24 @@ jobs:
continue-on-error: true
privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }}
build_zimfile:
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:build zimfile') }}
build_videos:
if: ${{ contains(github.event.pull_request.labels.*.name, 'ci:build videos') }}
needs: [submodule, metadata]
uses: ./.github/workflows/build-zimfile.yml
uses: ./.github/workflows/build-videos.yml
with:
ref: ${{github.event.pull_request.head.ref}}
repo: ${{github.event.pull_request.head.repo.full_name}}
secrets:
RO_DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
continue-on-error: true
privileged: ${{ fromJSON(needs.metadata.outputs.privileged) }}
combine_build:
needs: [build_english, build_i18n, build_blog]
needs: [build_english, build_i18n, build_blog, build_videos]
if: |
(always() && !cancelled() && !failure()) &&
needs.build_english.result == 'success' &&
(needs.build_i18n.result == 'success' || needs.build_i18n.result == 'skipped') &&
(needs.build_blog.result == 'success' || needs.build_blog.result == 'skipped')
(needs.build_blog.result == 'success' || needs.build_blog.result == 'skipped') &&
(needs.build_videos.result == 'success' || needs.build_videos.result == 'skipped')
runs-on: ubuntu-latest
steps:
@@ -139,5 +138,5 @@ jobs:
cleanup:
if: ${{ always() }}
needs: [build_english, build_i18n, build_blog, build_zimfile]
needs: [build_english, build_i18n, build_blog, build_videos]
uses: privacyguides/.github/.github/workflows/cleanup.yml@main

104
.github/workflows/build-videos.yml vendored Normal file
View File

@@ -0,0 +1,104 @@
name: 🛠️ Build Videos
on:
workflow_call:
inputs:
ref:
required: true
type: string
repo:
required: true
type: string
context:
type: string
default: deploy-preview
continue-on-error:
type: boolean
default: true
privileged:
type: boolean
default: true
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
continue-on-error: ${{ inputs.continue-on-error }}
permissions:
contents: read
steps:
- name: Add GitHub Token to Environment
run: |
echo "GH_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
- name: Download Repository
uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.ref }}
persist-credentials: "false"
fetch-depth: 0
- name: Download Submodules
uses: actions/download-artifact@v4
with:
pattern: repo-*
path: modules
- name: Move mkdocs-material-insiders to mkdocs-material
if: inputs.privileged
run: |
rmdir modules/mkdocs-material
mv modules/repo-mkdocs-material-insiders modules/mkdocs-material
- name: Move brand submodule to theme/assets/brand
run: |
rmdir theme/assets/brand
mv modules/repo-brand theme/assets/brand
- name: Install Python (pipenv)
if: inputs.privileged
uses: actions/setup-python@v5
with:
cache: "pipenv"
- name: Install Python (no pipenv)
if: ${{ !inputs.privileged }}
uses: actions/setup-python@v5
- name: Install Python Dependencies
if: inputs.privileged
run: |
pip install pipenv
pipenv install
sudo apt install pngquant
- name: Install Python Dependencies (Unprivileged)
if: ${{ !inputs.privileged }}
run: |
pip install mkdocs-material mkdocs-rss-plugin mkdocs-glightbox mkdocs-macros-plugin
sudo apt install pngquant
- name: Build Website (Privileged)
if: inputs.privileged
run: |
pipenv run mkdocs build --config-file mkdocs.videos.yml
- name: Build Website (Unprivileged)
if: ${{ !inputs.privileged }}
run: |
BUILD_INSIDERS=false mkdocs build --config-file mkdocs.videos.yml
- name: Package Website
run: |
tar -czf site-build-videos.tar.gz site
- name: Upload Site
uses: actions/upload-artifact@v4
with:
name: site-build-videos.tar.gz
path: site-build-videos.tar.gz
retention-days: 1

View File

@@ -1,603 +0,0 @@
name: 🥝 Build Zimfile
on:
workflow_call:
inputs:
ref:
required: true
type: string
repo:
required: true
type: string
secrets:
RO_DISCOURSE_API_KEY:
required: false
permissions:
contents: read
env:
VIDEOS_SITE_BASE_URL: https://www.privacyguides.org/videos/
HOMEPAGE_CTA_ABOUT_LINK: about.html
HOMEPAGE_CTA_DONATE_LINK: about/donate.html
BUILD_OFFLINE: true
PRODUCTION: true
CARDS: false
GITREVISIONDATE: false
GITAUTHORS: false
jobs:
package_eng:
runs-on: ubuntu-latest
permissions:
contents: read
env:
LANGUAGE_SWITCHER: false
MAIN_SITE_BASE_URL: /en/index.html
MAIN_SITE_ABOUT_URL: /en/about.html
MAIN_SITE_RECOMMENDATIONS_URL: /en/tools.html
MAIN_SITE_KNOWLEDGE_BASE_URL: /en/basics/why-privacy-matters.html
ARTICLES_SITE_BASE_URL: /articles/index.html
steps:
- name: Add GitHub Token to Environment
run: |
echo "GH_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
- name: Download Repository
uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.ref }}
persist-credentials: "false"
fetch-depth: 0
- name: Download Submodules
uses: actions/download-artifact@v4
with:
pattern: repo-*
path: modules
- name: Move mkdocs-material-insiders to mkdocs-material
run: |
rmdir modules/mkdocs-material
mv modules/repo-mkdocs-material-insiders modules/mkdocs-material
- name: Move brand submodule to theme/assets/brand
run: |
rmdir theme/assets/brand
mv modules/repo-brand theme/assets/brand
- name: Install Python (pipenv)
uses: actions/setup-python@v5
with:
cache: "pipenv"
- name: Install Python Dependencies
run: |
pip install pipenv
pipenv install
sudo apt install pngquant
- name: Generate Donating Members List
continue-on-error: true
env:
DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
run: |
pip install requests
python tools/generate-members.py > includes/members.md
- name: Build English
run: |
./run.sh --build --production --insiders --offline --lang=en
- name: Delete Unreferenced Assets
run: |
bash tools/delete-unreferenced.sh
env:
ASSETS_DIR: site/en/assets
SEARCH_DIR: site/en
- name: Run generate-topics.sh for top posts
run: |
bash tools/generate-topics.sh \
--source='https://discuss.privacyguides.net/top.json?period=weekly' \
--tag="top posts" \
--destination="./site/en/index.html" \
--count=3
- name: Run generate-topics.sh for latest posts
run: |
bash tools/generate-topics.sh \
--source='https://discuss.privacyguides.net/latest.json' \
--tag="latest posts" \
--destination="./site/en/index.html" \
--count=12
- name: Build Articles
run: |
pipenv run mkdocs build --config-file mkdocs.blog.yml
- name: Delete Unreferenced Assets
run: |
bash tools/delete-unreferenced.sh
env:
ASSETS_DIR: site/articles/assets
SEARCH_DIR: site/articles
- name: Remove Duplicate Files
run: |
cd site && bash ../tools/symlink-duplicates.sh
ln -s en/index.html index.html
ln -s en/about/notices.html license
cd ..
- name: Set zimfile name
run: |
echo "ZIMFILE_NAME=privacyguides.org_en_all_$(date +%Y)-$(date +%m).zim" >> "$GITHUB_ENV"
- name: Create ZIM File
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimwriterfs \
-w index.html \
-I en/assets/brand/logos/png/square/pg-yellow.png \
-l eng \
-t "Privacy Guides" \
-d "Your central privacy and security resource to protect yourself online." \
-c "Privacy Guides" \
-p "Privacy Guides" \
-e "https://www.privacyguides.org" \
-n "privacyguides.org_en_all" \
/data/site/ /data/${{ env.ZIMFILE_NAME }}
- name: Upload ZIM File
uses: actions/upload-artifact@v4
with:
path: ${{ env.ZIMFILE_NAME }}
name: ${{ env.ZIMFILE_NAME }}
compression-level: 0
- name: Run zimcheck
uses: addnab/docker-run-action@v3
continue-on-error: true
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimcheck /data/${{ env.ZIMFILE_NAME }}
package_eng_kb:
runs-on: ubuntu-latest
permissions:
contents: read
env:
LANGUAGE_SWITCHER: false
ARTICLES_SITE_BASE_URL: https://www.privacyguides.org/articles/
steps:
- name: Add GitHub Token to Environment
run: |
echo "GH_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
- name: Download Repository
uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.ref }}
persist-credentials: "false"
fetch-depth: 0
- name: Download Submodules
uses: actions/download-artifact@v4
with:
pattern: repo-*
path: modules
- name: Move mkdocs-material-insiders to mkdocs-material
run: |
rmdir modules/mkdocs-material
mv modules/repo-mkdocs-material-insiders modules/mkdocs-material
- name: Move brand submodule to theme/assets/brand
run: |
rmdir theme/assets/brand
mv modules/repo-brand theme/assets/brand
- name: Install Python (pipenv)
uses: actions/setup-python@v5
with:
cache: "pipenv"
- name: Install Python Dependencies
run: |
pip install pipenv
pipenv install
sudo apt install pngquant
- name: Generate Donating Members List
continue-on-error: true
env:
DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
run: |
pip install requests
python tools/generate-members.py > includes/members.md
- name: Build English
run: |
./run.sh --build --production --insiders --offline --lang=en
- name: Run generate-topics.sh for top posts
run: |
bash tools/generate-topics.sh \
--source='https://discuss.privacyguides.net/top.json?period=weekly' \
--tag="top posts" \
--destination="./site/en/index.html" \
--count=3
- name: Run generate-topics.sh for latest posts
run: |
bash tools/generate-topics.sh \
--source='https://discuss.privacyguides.net/latest.json' \
--tag="latest posts" \
--destination="./site/en/index.html" \
--count=12
- name: Delete Unreferenced Assets
run: |
bash tools/delete-unreferenced.sh
env:
ASSETS_DIR: site/en/assets
SEARCH_DIR: site/en
- name: Remove Duplicate Files
run: |
cd site && bash ../tools/symlink-duplicates.sh
ln -s en/index.html index.html
ln -s en/about/notices.html license
cd ..
- name: Set zimfile name
run: |
echo "ZIMFILE_NAME=privacyguides.org_en_kb_$(date +%Y)-$(date +%m).zim" >> "$GITHUB_ENV"
- name: Create ZIM File
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimwriterfs \
-w index.html \
-I en/assets/brand/logos/png/square/pg-yellow.png \
-l eng \
-t "Privacy Guides" \
-d "Knowledge base articles and recommendations from Privacy Guides." \
-c "Privacy Guides" \
-p "Privacy Guides" \
-e "https://www.privacyguides.org" \
-n "privacyguides.org_en_kb" \
/data/site/ /data/${{ env.ZIMFILE_NAME }}
- name: Upload ZIM File
uses: actions/upload-artifact@v4
with:
path: ${{ env.ZIMFILE_NAME }}
name: ${{ env.ZIMFILE_NAME }}
compression-level: 0
- name: Run zimcheck
uses: addnab/docker-run-action@v3
continue-on-error: true
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimcheck /data/${{ env.ZIMFILE_NAME }}
package_eng_articles:
runs-on: ubuntu-latest
permissions:
contents: read
env:
MAIN_SITE_BASE_URL: https://www.privacyguides.org/en/
MAIN_SITE_ABOUT_URL: https://www.privacyguides.org/en/about/
MAIN_SITE_RECOMMENDATIONS_URL: https://www.privacyguides.org/en/tools/
MAIN_SITE_KNOWLEDGE_BASE_URL: https://www.privacyguides.org/en/basics/
steps:
- name: Add GitHub Token to Environment
run: |
echo "GH_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
- name: Download Repository
uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.ref }}
persist-credentials: "false"
fetch-depth: 0
- name: Download Submodules
uses: actions/download-artifact@v4
with:
pattern: repo-*
path: modules
- name: Move mkdocs-material-insiders to mkdocs-material
run: |
rmdir modules/mkdocs-material
mv modules/repo-mkdocs-material-insiders modules/mkdocs-material
- name: Move brand submodule to theme/assets/brand
run: |
rmdir theme/assets/brand
mv modules/repo-brand theme/assets/brand
- name: Install Python (pipenv)
uses: actions/setup-python@v5
with:
cache: "pipenv"
- name: Install Python Dependencies
run: |
pip install pipenv
pipenv install
sudo apt install pngquant
- name: Build Articles
run: |
pipenv run mkdocs build --config-file mkdocs.blog.yml
- name: Delete Unreferenced Assets
run: |
bash tools/delete-unreferenced.sh
env:
ASSETS_DIR: site/articles/assets
SEARCH_DIR: site/articles
- name: Remove Duplicate Files
run: |
cd site && bash ../tools/symlink-duplicates.sh
ln -s articles/index.html index.html
cd ..
- name: Set zimfile name
run: |
echo "ZIMFILE_NAME=privacyguides.org_en_articles_$(date +%Y)-$(date +%m).zim" >> "$GITHUB_ENV"
- name: Create ZIM File
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimwriterfs \
-w index.html \
-I articles/assets/brand/logos/png/square/pg-yellow.png \
-l eng \
-t "Privacy Guides" \
-d "Long-form articles from the Privacy Guides team and other contributors." \
-c "Privacy Guides" \
-p "Privacy Guides" \
-e "https://www.privacyguides.org" \
-n "privacyguides.org_en_articles" \
/data/site/ /data/${{ env.ZIMFILE_NAME }}
- name: Upload ZIM File
uses: actions/upload-artifact@v4
with:
path: ${{ env.ZIMFILE_NAME }}
name: ${{ env.ZIMFILE_NAME }}
compression-level: 0
- name: Run zimcheck
uses: addnab/docker-run-action@v3
continue-on-error: true
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimcheck /data/${{ env.ZIMFILE_NAME }}
build_mul:
runs-on: ubuntu-latest
continue-on-error: true
permissions:
contents: read
env:
MAIN_SITE_BASE_URL: /en/index.html
MAIN_SITE_ABOUT_URL: /en/about.html
MAIN_SITE_RECOMMENDATIONS_URL: /en/tools.html
MAIN_SITE_KNOWLEDGE_BASE_URL: /en/basics/why-privacy-matters.html
ARTICLES_SITE_BASE_URL: /articles/index.html
strategy:
matrix:
lang: [en, es, fr, he, it, nl, ru, zh-Hant]
steps:
- name: Add GitHub Token to Environment
run: |
echo "GH_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> "$GITHUB_ENV"
- name: Download Repository
uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.ref }}
persist-credentials: "false"
fetch-depth: 0
- name: Download Submodules
uses: actions/download-artifact@v4
with:
pattern: repo-*
path: modules
- name: Move mkdocs-material-insiders to mkdocs-material
run: |
rmdir modules/mkdocs-material
mv modules/repo-mkdocs-material-insiders modules/mkdocs-material
- name: Move brand submodule to theme/assets/brand
run: |
rmdir theme/assets/brand
mv modules/repo-brand theme/assets/brand
- name: Copy Translation Files
if: matrix.lang != 'en'
run: |
cp -rl modules/repo-i18n/i18n .
cp -rl modules/repo-i18n/includes .
- name: Install Python (pipenv)
uses: actions/setup-python@v5
with:
cache: "pipenv"
- name: Install Python Dependencies
run: |
pip install pipenv
pipenv install
sudo apt install pngquant
- name: Generate Donating Members List
continue-on-error: true
env:
DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
run: |
pip install requests
python tools/generate-members.py > includes/members.md
- name: Build Website
run: |
./run.sh --build --production --insiders --offline --lang=${{ matrix.lang }}
- name: Run generate-topics.sh for top posts
if: matrix.lang == 'en'
run: |
bash tools/generate-topics.sh \
--source='https://discuss.privacyguides.net/top.json?period=weekly' \
--tag="top posts" \
--destination="./site/en/index.html" \
--count=3
- name: Run generate-topics.sh for latest posts
if: matrix.lang == 'en'
run: |
bash tools/generate-topics.sh \
--source='https://discuss.privacyguides.net/latest.json' \
--tag="latest posts" \
--destination="./site/en/index.html" \
--count=12
- name: Delete Unreferenced Assets
run: |
bash tools/delete-unreferenced.sh
env:
ASSETS_DIR: site/${{ matrix.lang }}/assets
SEARCH_DIR: site/${{ matrix.lang }}
- name: Build Articles
if: matrix.lang == 'en'
run: |
pipenv run mkdocs build --config-file mkdocs.blog.yml
- name: Delete Unreferenced Assets
if: matrix.lang == 'en'
run: |
bash tools/delete-unreferenced.sh
env:
ASSETS_DIR: site/articles/assets
SEARCH_DIR: site/articles
- name: Package Website
run: |
tar -czf site-zimready-${{ matrix.lang }}.tar.gz site
- name: Upload Site
uses: actions/upload-artifact@v4
with:
name: site-zimready-${{ matrix.lang }}.tar.gz
path: site-zimready-${{ matrix.lang }}.tar.gz
retention-days: 1
compression-level: 0
package_mul:
runs-on: ubuntu-latest
needs: [build_mul]
permissions:
contents: read
steps:
- name: Download Repository
uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.ref }}
persist-credentials: "false"
fetch-depth: 0
- name: Download All Sites
uses: actions/download-artifact@v4
with:
pattern: site-zimready-*
merge-multiple: true
- name: List Files (for debugging)
run: |
for file in *.tar.gz; do tar -zxf "$file"; done
ls -la site/
- name: Remove Duplicate Files
run: |
cd site && bash ../tools/symlink-duplicates.sh
ln -s en/index.html index.html
ln -s en/about/notices.html license
cd ..
- name: Set zimfile name
run: |
echo "ZIMFILE_NAME=privacyguides.org_mul_all_$(date +%Y)-$(date +%m).zim" >> "$GITHUB_ENV"
- name: Create ZIM File
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimwriterfs \
-w index.html \
-I en/assets/brand/logos/png/square/pg-yellow.png \
-l mul \
-t "Privacy Guides" \
-d "Your central privacy and security resource to protect yourself online." \
-c "Privacy Guides" \
-p "Privacy Guides" \
-e "https://www.privacyguides.org" \
-n "privacyguides.org_mul_all" \
/data/site/ /data/${{ env.ZIMFILE_NAME }}
- name: Upload ZIM File
uses: actions/upload-artifact@v4
with:
path: ${{ env.ZIMFILE_NAME }}
name: ${{ env.ZIMFILE_NAME }}
compression-level: 0
- name: Run zimcheck
uses: addnab/docker-run-action@v3
continue-on-error: true
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimcheck /data/${{ env.ZIMFILE_NAME }}

View File

@@ -30,9 +30,6 @@ on:
cache:
type: boolean
default: true
secrets:
RO_DISCOURSE_API_KEY:
required: false
permissions:
contents: read
@@ -57,18 +54,6 @@ jobs:
echo "EXTRA_FLAGS=""$EXTRA_FLAGS" --production""
} >> "$GITHUB_ENV"
- name: Set base navigation URLs for production build
if: inputs.context == 'production'
run: |
{
echo "MAIN_SITE_BASE_URL=https://www.privacyguides.org/en/"
echo "MAIN_SITE_ABOUT_URL=https://www.privacyguides.org/en/about/"
echo "MAIN_SITE_RECOMMENDATIONS_URL=https://www.privacyguides.org/en/tools/"
echo "MAIN_SITE_KNOWLEDGE_BASE_URL=https://www.privacyguides.org/en/basics/why-privacy-matters/"
echo "ARTICLES_SITE_BASE_URL=https://www.privacyguides.org/articles/"
echo "VIDEOS_SITE_BASE_URL=https://www.privacyguides.org/videos/"
} >> "$GITHUB_ENV"
- name: Set Metadata for Privileged Builds
if: inputs.privileged
run: |
@@ -135,7 +120,7 @@ jobs:
uses: actions/setup-python@v5
- name: Restore Privacy Plugin Cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v4.0.2
id: privacy_cache_restore
if: inputs.cache
with:
@@ -148,7 +133,7 @@ jobs:
privacy-cache-
- name: Restore Social Plugin Cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v4.0.2
id: social_cache_restore
if: inputs.cache
with:
@@ -160,6 +145,19 @@ jobs:
social-cache-${{ inputs.repo }}-${{ inputs.lang }}-
social-cache-privacyguides/privacyguides.org-${{ inputs.lang }}-
- name: Restore Optimize Plugin Cache
uses: actions/cache/restore@v4.0.2
id: optimize_cache_restore
if: inputs.cache
with:
key: optimize-cache-${{ inputs.repo }}-${{ hashfiles('.cache/plugin/optimize/manifest.json') }}
path: |
.cache/plugin/optimize
restore-keys: |
optimize-cache-${{ inputs.repo }}-
optimize-cache-privacyguides/privacyguides.org-
optimize-cache-
- name: Install Python Dependencies
if: inputs.privileged
run: |
@@ -174,31 +172,23 @@ jobs:
sudo apt install pngquant
echo "EXTRA_FLAGS=""$EXTRA_FLAGS" --cmd=mkdocs"" >> "$GITHUB_ENV"
- name: Generate Donating Members List
continue-on-error: true
env:
DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
run: |
pip install requests
python tools/generate-members.py > includes/members.md
- name: Build Website
run: |
eval ./run.sh --build --lang=${{ inputs.lang }} "$EXTRA_FLAGS"
- name: Run generate-topics.sh for top posts
- name: Run index-generation.sh for top posts
if: inputs.lang == 'en'
run: |
bash tools/generate-topics.sh \
bash index-generation.sh \
--source='https://discuss.privacyguides.net/top.json?period=weekly' \
--tag="top posts" \
--destination="./site/en/index.html" \
--count=3
- name: Run generate-topics.sh for latest posts
- name: Run index-generation.sh for latest posts
if: inputs.lang == 'en'
run: |
bash tools/generate-topics.sh \
bash index-generation.sh \
--source='https://discuss.privacyguides.net/latest.json' \
--tag="latest posts" \
--destination="./site/en/index.html" \
@@ -209,7 +199,7 @@ jobs:
tar -czf site-${{ inputs.config }}-${{ inputs.lang }}.tar.gz site
- name: Find Privacy Plugin Cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v4.0.2
if: steps.privacy_cache_restore.outputs.cache-hit != 'true' && inputs.cache
id: privacy_cache_test
with:
@@ -219,7 +209,7 @@ jobs:
.cache/plugin/privacy
- name: Find Social Plugin Cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v4.0.2
if: steps.social_cache_restore.outputs.cache-hit != 'true' && inputs.cache
id: social_cache_test
with:
@@ -229,15 +219,25 @@ jobs:
.cache/plugin/social/manifest.json
.cache/plugin/social/assets
- name: Find Optimize Plugin Cache
uses: actions/cache/restore@v4.0.2
if: steps.optimize_cache_restore.outputs.cache-hit != 'true' && inputs.cache
id: optimize_cache_test
with:
key: optimize-cache-privacyguides/privacyguides.org-${{ hashfiles('.cache/plugin/optimize/manifest.json') }}
lookup-only: true
path: |
.cache/plugin/optimize
- name: Save Privacy Plugin Cache
uses: actions/cache/save@v4
uses: actions/cache/save@v4.0.2
if: steps.privacy_cache_test.outputs.cache-hit != 'true' && inputs.cache
with:
key: privacy-cache-${{ inputs.repo }}-${{ hashfiles('.cache/plugin/privacy/**') }}
path: .cache/plugin/privacy
- name: Save Social Plugin Cache
uses: actions/cache/save@v4
uses: actions/cache/save@v4.0.2
if: steps.social_cache_test.outputs.cache-hit != 'true' && inputs.cache
with:
key: social-cache-${{ inputs.repo }}-${{ inputs.lang }}-${{ hashfiles('.cache/plugin/social/manifest.json') }}
@@ -245,6 +245,13 @@ jobs:
.cache/plugin/social/manifest.json
.cache/plugin/social/assets
- name: Save Optimize Plugin Cache
uses: actions/cache/save@v4.0.2
if: steps.optimize_cache_test.outputs.cache-hit != 'true' && inputs.cache
with:
key: optimize-cache-${{ inputs.repo }}-${{ hashfiles('.cache/plugin/optimize/manifest.json') }}
path: .cache/plugin/optimize
- name: Upload Site
uses: actions/upload-artifact@v4
with:
@@ -252,10 +259,46 @@ jobs:
path: site-${{ inputs.config }}-${{ inputs.lang }}.tar.gz
retention-days: 1
- name: Upload members list
uses: actions/upload-artifact@v4
if: inputs.config == 'build' && inputs.lang == 'en'
offline_package:
if: inputs.config == 'offline' && inputs.lang == 'en'
needs: build
runs-on: ubuntu-latest
continue-on-error: ${{ inputs.continue-on-error }}
permissions:
contents: read
steps:
- uses: actions/download-artifact@v4
with:
name: members.md
path: includes/members.md
retention-days: 1
name: site-offline-en.tar.gz
- run: |
tar -xzf site-offline-en.tar.gz
tar -czf offline.tar.gz site/en
zip -r -q offline.zip site/en
- name: Upload tar.gz file
uses: actions/upload-artifact@v4
with:
name: offline.tar.gz
path: offline.tar.gz
- name: Upload zip file
uses: actions/upload-artifact@v4
with:
name: offline.zip
path: offline.zip
- name: Create ZIM File
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/openzim/zim-tools:3.1.3
options: -v ${{ github.workspace }}:/data
run: |
zimwriterfs -w index.html -I assets/brand/logos/png/square/pg-yellow.png -l eng -t "Privacy Guides" -d "Your central privacy and security resource to protect yourself online." -c "Privacy Guides" -p "Jonah Aragon" -n "Privacy Guides" -e "https://github.com/privacyguides/privacyguides.org" /data/site/en /data/offline-privacy_guides.zim
- name: Upload ZIM file
uses: actions/upload-artifact@v4
with:
name: offline-privacy_guides.zim
path: offline-privacy_guides.zim

View File

@@ -27,6 +27,7 @@ on:
- "main"
paths:
- "blog/**"
- "videos/**"
concurrency:
group: release-deployment
@@ -58,10 +59,19 @@ jobs:
repo: ${{ github.repository }}
ref: ${{ github.ref }}
continue-on-error: false
context: production
build_videos:
needs: submodule
permissions:
contents: read
uses: ./.github/workflows/build-videos.yml
with:
repo: ${{ github.repository }}
ref: ${{ github.ref }}
continue-on-error: false
deploy:
needs: [build_blog]
needs: [build_blog, build_videos]
uses: privacyguides/webserver/.github/workflows/deploy-garage.yml@main
with:
environment: production
@@ -71,5 +81,5 @@ jobs:
cleanup:
if: ${{ always() }}
needs: [build_blog]
needs: [build_blog, build_videos]
uses: privacyguides/.github/.github/workflows/cleanup.yml@main

View File

@@ -89,6 +89,18 @@ jobs:
echo "sha=$(cat metadata/SHA)" >> "$GITHUB_OUTPUT"
echo "privileged=$(cat metadata/PRIVILEGED)" >> "$GITHUB_OUTPUT"
deploy_netlify:
needs: metadata
permissions:
contents: read
uses: privacyguides/webserver/.github/workflows/deploy-netlify-preview.yml@main
with:
netlify_alias: ${{ needs.metadata.outputs.pr_number }}
netlify_site_id: ${{ vars.NETLIFY_SITE }}
secrets:
NETLIFY_TOKEN: ${{ secrets.NETLIFY_TOKEN }}
deploy_garage:
needs: metadata
permissions:

View File

@@ -50,8 +50,8 @@ jobs:
needs: submodule
strategy:
matrix:
lang: [en, es, fr, he, it, nl, ru, zh-Hant, zh-TW]
build: [build]
lang: [en, es, fr, he, it, nl, ru, zh-Hant]
build: [build, offline]
permissions:
contents: read
uses: ./.github/workflows/build.yml
@@ -63,8 +63,6 @@ jobs:
context: production
continue-on-error: false
cache: false
secrets:
RO_DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
build_blog:
needs: submodule
@@ -75,22 +73,20 @@ jobs:
repo: ${{ github.repository }}
ref: ${{ github.ref }}
continue-on-error: false
context: production
build_zimfile:
build_videos:
needs: submodule
permissions:
contents: read
uses: ./.github/workflows/build-zimfile.yml
uses: ./.github/workflows/build-videos.yml
with:
repo: ${{ github.repository }}
ref: ${{ github.ref }}
secrets:
RO_DISCOURSE_API_KEY: ${{ secrets.RO_DISCOURSE_API_KEY }}
continue-on-error: false
release:
name: Create release notes
needs: [build, build_zimfile]
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
@@ -98,20 +94,21 @@ jobs:
steps:
- uses: actions/download-artifact@v4
with:
pattern: "*.zim"
pattern: offline*
merge-multiple: true
- name: Create release notes
uses: ncipollo/release-action@v1
with:
generateReleaseNotes: true
artifacts: "*.zim"
artifacts: "offline.zip,offline.tar.gz,offline-privacy_guides.zim"
makeLatest: true
deploy:
needs: [build, build_blog]
needs: [build, build_blog, build_videos]
uses: privacyguides/webserver/.github/workflows/deploy-all.yml@main
secrets:
NETLIFY_TOKEN: ${{ secrets.NETLIFY_TOKEN }}
PROD_MINIO_KEY_ID: ${{ secrets.PROD_MINIO_KEY_ID }}
PROD_MINIO_SECRET_KEY: ${{ secrets.PROD_MINIO_SECRET_KEY }}
PROD_GARAGE_KEY_ID: ${{ secrets.PROD_GARAGE_KEY_ID }}
@@ -125,5 +122,5 @@ jobs:
cleanup:
if: ${{ always() }}
needs: [build, build_blog, build_zimfile]
needs: [build, build_blog, build_videos]
uses: privacyguides/.github/.github/workflows/cleanup.yml@main

View File

@@ -55,17 +55,17 @@ jobs:
source: /en/index.html
target: ./site/en/
- name: Run generate-topics.sh for top posts
- name: Run index-generation.sh for top posts
run: |
bash tools/generate-topics.sh \
bash index-generation.sh \
--source='https://discuss.privacyguides.net/top.json?period=weekly' \
--tag="top posts" \
--destination="./site/en/index.html" \
--count=3
- name: Run generate-topics.sh for latest posts
- name: Run index-generation.sh for latest posts
run: |
bash tools/generate-topics.sh \
bash index-generation.sh \
--source='https://discuss.privacyguides.net/latest.json' \
--tag="latest posts" \
--destination="./site/en/index.html" \

3
.gitignore vendored
View File

@@ -23,6 +23,3 @@ node_modules
.venv
.env
.mkdocs-insiders-*
# Automatically generated
includes/members.md

2
.gitmodules vendored
View File

@@ -3,4 +3,4 @@
url = https://github.com/privacyguides/brand.git
[submodule "modules/mkdocs-material"]
path = modules/mkdocs-material
url = https://github.com/privacyguides/mkdocs-material-insiders.git
url = git@github.com:privacyguides/mkdocs-material-insiders.git

View File

@@ -1,23 +1,16 @@
# Please use this file to correct information in our git log.
# Format: Proper Name <Proper Email> <Incorrect Email>
#
# Privacy Guides Team Members
# ===========================
Daniel Gray <dngray@privacyguides.org> <dng@disroot.org>
Daniel Gray <dngray@privacyguides.org> <48640805+dngray@users.noreply.github.com>
Daniel Gray <dngray@privacyguides.org> <dngray@privacytools.io>
Daniel Gray <dngray@privacyguides.org>
Em <em@privacyguides.org> <194856901+EmAtPrivacyGuides@users.noreply.github.com>
Freddy <freddy@privacyguides.org> <freddy@decypher.pw>
Freddy <freddy@privacyguides.org> <freddy@privacytools.io>
fria <fria@privacyguides.org> <138676274+friadev@users.noreply.github.com>
Jonah Aragon <jonah@privacyguides.org> <jonah@triplebit.net>
Jonah Aragon <jonah@privacyguides.org> <jonah@privacytools.io>
Jonah Aragon <jonah@privacyguides.org> <github@aragon.science>
Jordan Warne <jordan@privacyguides.org> <jw@omg.lol>
Jordan Warne <jordan@privacyguides.org> <contact@jordanwarne.net>
Justin Ehrenhofer <justin.ehrenhofer@gmail.com> <12520755+SamsungGalaxyPlayer@users.noreply.github.com>
Mare Polaris <ph00lt0@privacyguides.org> <15004290+ph00lt0@users.noreply.github.com>
mfwmyfacewhen <mfw@privacyguides.org> <94880365+mfwmyfacewhen@users.noreply.github.com>
mbananasynergy <mbananasynergy@privacyguides.org> <>
mbananasynergy <mbananasynergy@privacyguides.org> <107055883+matchboxbananasynergy@users.noreply.github.com>
rollsicecream <rollsicecream@proton.me> <153316540+rollsicecream@users.noreply.github.com>
rollsicecream <rollsicecream@proton.me> <waterfallnet@proton.me>
Freddy <freddy@privacyguides.org> <freddy@decypher.pw>
Freddy <freddy@privacyguides.org> <freddy@privacytools.io>
Niek de Wilde <niek@privacyguides.org> <github.ef27z@simplelogin.com>
Niek de Wilde <niek@privacyguides.org> <blacklight447@privacytools.io>
redoomed1 <redoomed1@privacyguides.org> <161974310+redoomed1@users.noreply.github.com>

View File

@@ -26,16 +26,6 @@
"mikestead.dotenv",
"redhat.vscode-yaml",
"ecmel.vscode-html-css",
"yzhang.markdown-all-in-one",
"bierner.markdown-checkbox",
"bierner.markdown-emoji",
"bierner.markdown-footnotes",
"bierner.markdown-preview-github-styles",
"esbenp.prettier-vscode",
"ltex-plus.vscode-ltex-plus",
"ms-python.python",
"github.vscode-github-actions",
"ms-vscode-remote.remote-containers",
"github.codespaces"
"yzhang.markdown-all-in-one"
]
}

View File

@@ -316,6 +316,7 @@ cryptofs
siv-mode
cryptolib-swift
cryptomator-objc-cryptor
Picocrypt
VeraCrypt
TrueCrypt
cryptoprocessor
@@ -500,72 +501,3 @@ simple-bluesky
dngray
bsky
@freddy
Memoji
QuickType
Freeform
subprocessors
Schrems
Subprocessor
Subprocessors
Triplebit
Fediverse
Safing
YubiHSM
ykman
material-linux
yubico
material-microsoft-windows
HSMauth
PUK
TDES
ModHex
OATH-TOTPs
OATH-HOTP
OATH-HOTPs
MODHEX
HMAC-based
subkeys
subkey
keysize
Keygrip
tessera
Corbató
NordPass
Syncable
fontawesome-solid-glasses
CommonHealth
Euki
sympto-thermal
OsmAnd
Paaster
material-check-decagram
Bluesky
Codeberg
simple-codeberg
simple-reddit
fontawesome-brands-linkedin
simple-keepassxc
OnlyKey
fontawesome-solid-unlock-keyhole
KeeShare
KeePassium
MWEB
Cyd
Semiphemeral
Dangerzone
simple-activitypub
ActivityPub
pseudorandom
Chaum
unlinkability
Kagi
Secureblue
pseudonymity
TrueNAS
Arti
Tailscale
allowlisted
MyMonero
Monero-LWS
OkCupid
Anom

1
.vscode/ltex.disabledRules.en-US.txt vendored Normal file
View File

@@ -0,0 +1 @@
COMMA_PARENTHESIS_WHITESPACE

View File

@@ -68,13 +68,3 @@
{"rule":"SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA","sentence":"^\\QFurther develop an individual story or line of coverage.\\E$"}
{"rule":"DOUBLE_PUNCTUATION","sentence":"^\\QOur readership is entitled to as much information as possible in order to judge the reliability of our sources themselves..\\E$"}
{"rule":"DOUBLE_PUNCTUATION","sentence":"^\\QOur contributors should always question the motives behind a source requesting anonymity..\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QIllustration: Em / Privacy Guides | Photo: Edward Eyer / Pexels\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QOn February 7th this year, Joseph Menn reported from the Washington Post that officials in the United Kingdom had contacted Apple to demand the company allows them to access data from any iCloud user worldwide.\\E$"}
{"rule":"DO_VBZ","sentence":"^\\QDoes Privacy Guides sell my personal information?\\E$"}
{"rule":"DO_VBZ","sentence":"^\\QDoes Privacy Guides use personal information for marketing purposes?\\E$"}
{"rule":"DO_VBZ","sentence":"^\\QWhere does Privacy Guides store data about me?\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QPrivacy Guides relies on the European Commission's standard contractual clauses for international transfers(SCCs) to legally transfer personal data out of the European Economic Area.\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QIllustration: Jordan / Privacy Guides | Photo: Gowtham AGM / Unsplash\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QThunder was used specifically because it was difficult for Germans to pronounce, since the English \"th\" sound doesn't exist in German.\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QAllan Scherr, a Ph.D. researcher at MIT, wanted more time for his detailed simulations.\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QYou can test out passkeys at webauthn.io.\\E$"}

View File

@@ -72,7 +72,7 @@
"OUTSIDE_OF": "warning",
"UNLIKELY_OPENING_PUNCTUATION": "hint",
"SMALL_NUMBER_OF": "hint",
"A_UNCOUNTABLE": "information",
"A_UNCOUNTABLE": "hint",
"AFFORD_VB": "hint",
"AN_INVITE": "hint",
"HAVE_PART_AGREEMENT": "hint",
@@ -85,8 +85,6 @@
"ARROWS": "hint",
"AUXILIARY_DO_WITH_INCORRECT_VERB_FORM": "hint",
"MISSING_COMMA_AFTER_YEAR": "hint",
"DO_VBZ": "hint",
"NOUN_AROUND_IT": "hint",
"default": "error"
},
"editor.unicodeHighlight.ambiguousCharacters": true,
@@ -115,6 +113,5 @@
"editor.formatOnSave": true,
"[github-actions-workflow]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"python-envs.pythonProjects": []
}
}

View File

@@ -1,84 +1,72 @@
FROM python:3.12-slim-bookworm AS base
FROM python:3.13-alpine as base
LABEL org.opencontainers.image.source="https://github.com/privacyguides/privacyguides.org"
# Setup environment
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONFAULTHANDLER=1
# Setup env
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
####################################################
# Stage: python-deps
# Install pipenv and compilation dependencies
####################################################
FROM base AS python-deps
# Install pipenv
RUN pip install --no-cache-dir pipenv
# Install pipenv and compilation dependencies
RUN pip install pipenv
RUN \
apk upgrade --update-cache -a \
&& \
apk add --no-cache \
gcc \
libffi-dev \
musl-dev
# Install build tools and libraries needed to compile any Python packages
RUN apt-get update && \
apt-get install -y --no-install-recommends \
gcc \
libffi-dev \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Copy Pipfile, Pipfile.lock, and any local modules needed for dependency resolution
# Install python dependencies in /.venv
COPY modules/mkdocs-material ./modules/mkdocs-material
COPY Pipfile .
COPY Pipfile.lock .
# Install all Python dependencies into a projectlocal virtual environment at /.venv
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
####################################################
# Stage: nodejs-deps
# Install nodejs/npm and compilation dependencies
####################################################
FROM node:24-bookworm-slim AS nodejs-deps
RUN npm i -g all-contributors-cli
RUN npm install -g pkg
RUN cd /usr/local/lib/node_modules/all-contributors-cli && \
pkg dist/cli.js -t node18-linux -o /usr/local/bin/all-contributors-cli
####################################################
# Stage: runtime
# Install runtime dependencies and copy runtime artifacts
####################################################
FROM base AS runtime
# Install runtime packages (GTK/Cairo, image processing libraries, Git, etc.)
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libcairo2-dev \
libfreetype6-dev \
git \
libjpeg-dev \
libpng-dev \
openssh-client \
pngquant \
tini \
zlib1g-dev \
libffi-dev \
bash \
caddy \
&& rm -rf /var/lib/apt/lists/*
# Install runtime dependencies
RUN \
apk upgrade --update-cache -a \
&& \
apk add --no-cache \
cairo \
freetype-dev \
git \
git-fast-import \
jpeg-dev \
openssh \
pngquant \
tini \
zlib-dev \
libffi-dev \
musl-dev \
bash
# Copy virtual environment and local mkdocs-material module from python-deps stage
# Copy virtual env from python-deps stage
COPY --from=python-deps /.venv /.venv
COPY --from=python-deps /modules/mkdocs-material /modules/mkdocs-material
# Copy all-contributors-cli from nodejs-deps stage
COPY --from=nodejs-deps /usr/local/bin/all-contributors-cli /usr/local/bin/all-contributors-cli
# Ensure the virtual environments bin directory is first in PATH
ENV PATH="/.venv/bin:$PATH"
# Create and switch to a new user
RUN mkdir /site
WORKDIR /site
COPY docs docs
COPY theme theme
COPY includes includes
COPY *.yml .
COPY .cache/plugin/social/fonts .cache/plugin/social/fonts
COPY run.sh .
EXPOSE 8000
ENV MKDOCS_INHERIT mkdocs-production.yml
HEALTHCHECK NONE
# Entry point script and default cmd for running mkdocs
ENTRYPOINT ["/bin/bash"]
ENTRYPOINT ["./run.sh"]
CMD ["--cmd=mkdocs", "--insiders", "--cmd_flags=--dev-addr=0.0.0.0:8000"]

740
Pipfile.lock generated
View File

@@ -18,34 +18,22 @@
"default": {
"babel": {
"hashes": [
"sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d",
"sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"
"sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b",
"sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"
],
"markers": "python_version >= '3.8'",
"version": "==2.17.0"
},
"backrefs": {
"hashes": [
"sha256:2cab642a205ce966af3dd4b38ee36009b31fa9502a35fd61d59ccc116e40a6bd",
"sha256:2e1c15e4af0e12e45c8701bd5da0902d326b2e200cafcd25e49d9f06d44bb61b",
"sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc",
"sha256:bbef7169a33811080d67cdf1538c8289f76f0942ff971222a16034da88a73486",
"sha256:c67f6638a34a5b8730812f5101376f9d41dc38c43f1fdc35cb54700f6ed4465d",
"sha256:e3a63b073867dbefd0536425f43db618578528e3896fb77be7141328642a1585"
],
"markers": "python_version >= '3.9'",
"version": "==5.8"
"version": "==2.16.0"
},
"cachecontrol": {
"extras": [
"filecache"
],
"hashes": [
"sha256:73e7efec4b06b20d9267b441c1f733664f989fb8688391b670ca812d70795d11",
"sha256:b35e44a3113f17d2a31c1e6b27b9de6d4405f84ae51baa8c1d3cc5b633010cae"
"sha256:7db1195b41c81f8274a7bbd97c956f44e8348265a1bc7641c37dfebc39f0c938",
"sha256:f5bf3f0620c38db2e5122c0726bdebb0d16869de966ea6a2befe92470b740ea0"
],
"markers": "python_version >= '3.9'",
"version": "==0.14.3"
"markers": "python_version >= '3.7'",
"version": "==0.14.0"
},
"cairocffi": {
"hashes": [
@@ -64,11 +52,11 @@
},
"certifi": {
"hashes": [
"sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407",
"sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5"
"sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8",
"sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"
],
"markers": "python_version >= '3.7'",
"version": "==2025.8.3"
"markers": "python_version >= '3.6'",
"version": "==2024.8.30"
},
"cffi": {
"hashes": [
@@ -145,96 +133,122 @@
},
"charset-normalizer": {
"hashes": [
"sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91",
"sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0",
"sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154",
"sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601",
"sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884",
"sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07",
"sha256:0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c",
"sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64",
"sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe",
"sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f",
"sha256:16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432",
"sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc",
"sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa",
"sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9",
"sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae",
"sha256:1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19",
"sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d",
"sha256:23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e",
"sha256:252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4",
"sha256:257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7",
"sha256:2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312",
"sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92",
"sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31",
"sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c",
"sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f",
"sha256:34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99",
"sha256:3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b",
"sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15",
"sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392",
"sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f",
"sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8",
"sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491",
"sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0",
"sha256:511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc",
"sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0",
"sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f",
"sha256:5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a",
"sha256:5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40",
"sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927",
"sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849",
"sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce",
"sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14",
"sha256:70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05",
"sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c",
"sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c",
"sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a",
"sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc",
"sha256:88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34",
"sha256:8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9",
"sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096",
"sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14",
"sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30",
"sha256:a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b",
"sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b",
"sha256:b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942",
"sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db",
"sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5",
"sha256:c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b",
"sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce",
"sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669",
"sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0",
"sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018",
"sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93",
"sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe",
"sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049",
"sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a",
"sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef",
"sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2",
"sha256:d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca",
"sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16",
"sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f",
"sha256:d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb",
"sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1",
"sha256:ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557",
"sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37",
"sha256:fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7",
"sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72",
"sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c",
"sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9"
"sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621",
"sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6",
"sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8",
"sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912",
"sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c",
"sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b",
"sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d",
"sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d",
"sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95",
"sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e",
"sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565",
"sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64",
"sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab",
"sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be",
"sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e",
"sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907",
"sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0",
"sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2",
"sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62",
"sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62",
"sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23",
"sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc",
"sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284",
"sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca",
"sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455",
"sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858",
"sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b",
"sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594",
"sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc",
"sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db",
"sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b",
"sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea",
"sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6",
"sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920",
"sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749",
"sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7",
"sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd",
"sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99",
"sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242",
"sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee",
"sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129",
"sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2",
"sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51",
"sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee",
"sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8",
"sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b",
"sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613",
"sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742",
"sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe",
"sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3",
"sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5",
"sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631",
"sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7",
"sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15",
"sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c",
"sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea",
"sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417",
"sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250",
"sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88",
"sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca",
"sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa",
"sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99",
"sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149",
"sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41",
"sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574",
"sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0",
"sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f",
"sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d",
"sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654",
"sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3",
"sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19",
"sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90",
"sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578",
"sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9",
"sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1",
"sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51",
"sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719",
"sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236",
"sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a",
"sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c",
"sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade",
"sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944",
"sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc",
"sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6",
"sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6",
"sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27",
"sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6",
"sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2",
"sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12",
"sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf",
"sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114",
"sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7",
"sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf",
"sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d",
"sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b",
"sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed",
"sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03",
"sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4",
"sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67",
"sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365",
"sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a",
"sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748",
"sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b",
"sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079",
"sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"
],
"markers": "python_version >= '3.7'",
"version": "==3.4.3"
"markers": "python_full_version >= '3.7.0'",
"version": "==3.4.0"
},
"click": {
"hashes": [
"sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202",
"sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"
"sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
"sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
],
"markers": "python_version >= '3.10'",
"version": "==8.2.1"
"markers": "python_version >= '3.7'",
"version": "==8.1.7"
},
"colorama": {
"hashes": [
@@ -246,11 +260,11 @@
},
"cssselect2": {
"hashes": [
"sha256:46fc70ebc41ced7a32cd42d58b1884d72ade23d21e5a4eaaf022401c13f0e76e",
"sha256:7674ffb954a3b46162392aee2a3a0aedb2e14ecf99fcc28644900f4e6e3e9d3a"
"sha256:1ccd984dab89fc68955043aca4e1b03e0cf29cad9880f6e28e3ba7a74b14aa5a",
"sha256:fd23a65bfd444595913f02fc71f6b286c29261e354c41d722ca7a261a49b5969"
],
"markers": "python_version >= '3.9'",
"version": "==0.8.0"
"markers": "python_version >= '3.7'",
"version": "==0.7.0"
},
"defusedxml": {
"hashes": [
@@ -262,11 +276,10 @@
},
"filelock": {
"hashes": [
"sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58",
"sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d"
"sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0",
"sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"
],
"markers": "python_version >= '3.9'",
"version": "==3.19.1"
"version": "==3.16.1"
},
"ghp-import": {
"hashes": [
@@ -277,19 +290,19 @@
},
"gitdb": {
"hashes": [
"sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571",
"sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf"
"sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4",
"sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"
],
"markers": "python_version >= '3.7'",
"version": "==4.0.12"
"version": "==4.0.11"
},
"gitpython": {
"hashes": [
"sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c",
"sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77"
"sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c",
"sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"
],
"markers": "python_version >= '3.7'",
"version": "==3.1.45"
"version": "==3.1.43"
},
"hjson": {
"hashes": [
@@ -315,19 +328,19 @@
},
"jinja2": {
"hashes": [
"sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d",
"sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"
"sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369",
"sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"
],
"markers": "python_version >= '3.7'",
"version": "==3.1.6"
"version": "==3.1.4"
},
"markdown": {
"hashes": [
"sha256:9f4d91ed810864ea88a6f32c07ba8bee1346c0cc1f6b1f9f6c822f2a9667d280",
"sha256:d2900fe1782bd33bdbbd56859defef70c2e78fc46668f8eb9df3128138f2cb6a"
"sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2",
"sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"
],
"markers": "python_version >= '3.9'",
"version": "==3.9"
"markers": "python_version >= '3.8'",
"version": "==3.7"
},
"markupsafe": {
"hashes": [
@@ -422,39 +435,38 @@
},
"mkdocs-git-authors-plugin": {
"hashes": [
"sha256:28421a99c3e872a8e205674bb80ec48524838243e5f59eaf9bd97df103e38901",
"sha256:29d1973b2835663d79986fb756e02f1f0ff3fe35c278e993206bd3c550c205e4"
"sha256:60b291603479c765c3ca49fc4bda88a58989d9703c5e396fa1e81ae7de8a2836",
"sha256:b719fdab2199dc1633c4f69296ac66ec4adb6365ddd998409aefc87b1d2790ac"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==0.10.0"
"version": "==0.9.1"
},
"mkdocs-git-revision-date-localized-plugin": {
"hashes": [
"sha256:056c0a90242409148f1dc94d5c9d2c25b5b8ddd8de45489fa38f7fa7ccad2bc4",
"sha256:10a49eff1e1c3cb766e054b9d8360c904ce4fe8c33ac3f6cc083ac6459c91953"
"sha256:439e2f14582204050a664c258861c325064d97cdc848c541e48bb034a6c4d0cb",
"sha256:c99377ee119372d57a9e47cff4e68f04cce634a74831c06bc89b33e456e840a1"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==1.4.7"
"version": "==1.3.0"
},
"mkdocs-glightbox": {
"hashes": [
"sha256:7d78a5b045f2479f61b0bbb17742ba701755c56b013e70ac189c9d87a91e80bf",
"sha256:f47af0daff164edf8d36e553338425be3aab6e34b987d9cbbc2ae7819a98cb01"
"sha256:392b34207bf95991071a16d5f8916d1d2f2cd5d5bb59ae2997485ccd778c70d9",
"sha256:e0107beee75d3eb7380ac06ea2d6eac94c999eaa49f8c3cbab0e7be2ac006ccf"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==0.5.1"
"version": "==0.4.0"
},
"mkdocs-macros-plugin": {
"hashes": [
"sha256:01b6003fbe9b55fdc97c0abb66f811d65abfd291dcf70f277990165553faa99a",
"sha256:c52351295efdbdbb37a9f0ea639719055ddb64a00115457289940e85696a81d9"
"sha256:02432033a5b77fb247d6ec7924e72fc4ceec264165b1644ab8d0dc159c22ce59",
"sha256:17c7fd1a49b94defcdb502fd453d17a1e730f8836523379d21292eb2be4cb523"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==1.3.9"
"version": "==1.3.7"
},
"mkdocs-material": {
"extras": [
@@ -473,85 +485,90 @@
},
"mkdocs-rss-plugin": {
"hashes": [
"sha256:0a5b3e03dd68cc6b94feb50fc2e47fd427d39c452affe0fc3135289da9810a6d",
"sha256:15b99c6b3370f50503fe189e814600b375e5a0d8f99d19f6d8d9b80c1aa56f5c"
"sha256:be66b11300f1e951d3393ce8da60ca6d730108f731434cc256670b3b8e0cffb3",
"sha256:f0e275c933be69a77ee7af92256d88e2969e10c36c5ee1ecdb663a4ea4aa08ea"
],
"index": "pypi",
"markers": "python_version >= '3.9' and python_version < '4'",
"version": "==1.17.3"
"version": "==1.16.0"
},
"msgpack": {
"hashes": [
"sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8",
"sha256:1abfc6e949b352dadf4bce0eb78023212ec5ac42f6abfd469ce91d783c149c2a",
"sha256:1b13fe0fb4aac1aa5320cd693b297fe6fdef0e7bea5518cbc2dd5299f873ae90",
"sha256:1d75f3807a9900a7d575d8d6674a3a47e9f227e8716256f35bc6f03fc597ffbf",
"sha256:2fbbc0b906a24038c9958a1ba7ae0918ad35b06cb449d398b76a7d08470b0ed9",
"sha256:33be9ab121df9b6b461ff91baac6f2731f83d9b27ed948c5b9d1978ae28bf157",
"sha256:353b6fc0c36fde68b661a12949d7d49f8f51ff5fa019c1e47c87c4ff34b080ed",
"sha256:36043272c6aede309d29d56851f8841ba907a1a3d04435e43e8a19928e243c1d",
"sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0",
"sha256:3a89cd8c087ea67e64844287ea52888239cbd2940884eafd2dcd25754fb72232",
"sha256:40eae974c873b2992fd36424a5d9407f93e97656d999f43fca9d29f820899084",
"sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5",
"sha256:435807eeb1bc791ceb3247d13c79868deb22184e1fc4224808750f0d7d1affc1",
"sha256:4835d17af722609a45e16037bb1d4d78b7bdf19d6c0128116d178956618c4e88",
"sha256:4a28e8072ae9779f20427af07f53bbb8b4aa81151054e882aee333b158da8752",
"sha256:4d3237b224b930d58e9d83c81c0dba7aacc20fcc2f89c1e5423aa0529a4cd142",
"sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac",
"sha256:4fd6b577e4541676e0cc9ddc1709d25014d3ad9a66caa19962c4f5de30fc09ef",
"sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323",
"sha256:5692095123007180dca3e788bb4c399cc26626da51629a31d40207cb262e67f4",
"sha256:5fd1b58e1431008a57247d6e7cc4faa41c3607e8e7d4aaf81f7c29ea013cb458",
"sha256:61abccf9de335d9efd149e2fff97ed5974f2481b3353772e8e2dd3402ba2bd57",
"sha256:61e35a55a546a1690d9d09effaa436c25ae6130573b6ee9829c37ef0f18d5e78",
"sha256:6640fd979ca9a212e4bcdf6eb74051ade2c690b862b679bfcb60ae46e6dc4bfd",
"sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69",
"sha256:6f64ae8fe7ffba251fecb8408540c34ee9df1c26674c50c4544d72dbf792e5ce",
"sha256:71ef05c1726884e44f8b1d1773604ab5d4d17729d8491403a705e649116c9558",
"sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd",
"sha256:78426096939c2c7482bf31ef15ca219a9e24460289c00dd0b94411040bb73ad2",
"sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8",
"sha256:7a17ac1ea6ec3c7687d70201cfda3b1e8061466f28f686c24f627cae4ea8efd0",
"sha256:7da8831f9a0fdb526621ba09a281fadc58ea12701bc709e7b8cbc362feabc295",
"sha256:870b9a626280c86cff9c576ec0d9cbcc54a1e5ebda9cd26dab12baf41fee218c",
"sha256:88d1e966c9235c1d4e2afac21ca83933ba59537e2e2727a999bf3f515ca2af26",
"sha256:88daaf7d146e48ec71212ce21109b66e06a98e5e44dca47d853cbfe171d6c8d2",
"sha256:8a8b10fdb84a43e50d38057b06901ec9da52baac6983d3f709d8507f3889d43f",
"sha256:8b17ba27727a36cb73aabacaa44b13090feb88a01d012c0f4be70c00f75048b4",
"sha256:8b65b53204fe1bd037c40c4148d00ef918eb2108d24c9aaa20bc31f9810ce0a8",
"sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9",
"sha256:96decdfc4adcbc087f5ea7ebdcfd3dee9a13358cae6e81d54be962efc38f6338",
"sha256:996f2609ddf0142daba4cefd767d6db26958aac8439ee41db9cc0db9f4c4c3a6",
"sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a",
"sha256:a32747b1b39c3ac27d0670122b57e6e57f28eefb725e0b625618d1b59bf9d1e0",
"sha256:a494554874691720ba5891c9b0b39474ba43ffb1aaf32a5dac874effb1619e1a",
"sha256:a8ef6e342c137888ebbfb233e02b8fbd689bb5b5fcc59b34711ac47ebd504478",
"sha256:ae497b11f4c21558d95de9f64fff7053544f4d1a17731c866143ed6bb4591238",
"sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7",
"sha256:b8f93dcddb243159c9e4109c9750ba5b335ab8d48d9522c5308cd05d7e3ce600",
"sha256:ba0c325c3f485dc54ec298d8b024e134acf07c10d494ffa24373bea729acf704",
"sha256:bb29aaa613c0a1c40d1af111abf025f1732cab333f96f285d6a93b934738a68a",
"sha256:bba1be28247e68994355e028dcd668316db30c1f758d3241a7b903ac78dcd285",
"sha256:cb643284ab0ed26f6957d969fe0dd8bb17beb567beb8998140b5e38a90974f6c",
"sha256:d182dac0221eb8faef2e6f44701812b467c02674a322c739355c39e94730cdbf",
"sha256:d275a9e3c81b1093c060c3837e580c37f47c51eca031f7b5fb76f7b8470f5f9b",
"sha256:d8b55ea20dc59b181d3f47103f113e6f28a5e1c89fd5b67b9140edb442ab67f2",
"sha256:da8f41e602574ece93dbbda1fab24650d6bf2a24089f9e9dbb4f5730ec1e58ad",
"sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b",
"sha256:f5be6b6bc52fad84d010cb45433720327ce886009d862f46b26d4d154001994b",
"sha256:f6d58656842e1b2ddbe07f43f56b10a60f2ba5826164910968f5933e5178af75"
"sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b",
"sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf",
"sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca",
"sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330",
"sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f",
"sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f",
"sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39",
"sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247",
"sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b",
"sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c",
"sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7",
"sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044",
"sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6",
"sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b",
"sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0",
"sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2",
"sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468",
"sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7",
"sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734",
"sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434",
"sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325",
"sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1",
"sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846",
"sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88",
"sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420",
"sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e",
"sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2",
"sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59",
"sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb",
"sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68",
"sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915",
"sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f",
"sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701",
"sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b",
"sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d",
"sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa",
"sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d",
"sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd",
"sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc",
"sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48",
"sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb",
"sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74",
"sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b",
"sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346",
"sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e",
"sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6",
"sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5",
"sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f",
"sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5",
"sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b",
"sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c",
"sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f",
"sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec",
"sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8",
"sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5",
"sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d",
"sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e",
"sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e",
"sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870",
"sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f",
"sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96",
"sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c",
"sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd",
"sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"
],
"markers": "python_version >= '3.8'",
"version": "==1.1.1"
"version": "==1.1.0"
},
"packaging": {
"hashes": [
"sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484",
"sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"
"sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002",
"sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"
],
"markers": "python_version >= '3.8'",
"version": "==25.0"
"version": "==24.1"
},
"paginate": {
"hashes": [
@@ -655,11 +672,11 @@
},
"platformdirs": {
"hashes": [
"sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85",
"sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf"
"sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907",
"sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"
],
"markers": "python_version >= '3.9'",
"version": "==4.4.0"
"markers": "python_version >= '3.8'",
"version": "==4.3.6"
},
"pycparser": {
"hashes": [
@@ -671,34 +688,35 @@
},
"pygments": {
"hashes": [
"sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f",
"sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"
"sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199",
"sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"
],
"markers": "python_version >= '3.8'",
"version": "==2.19.1"
"version": "==2.18.0"
},
"pymdown-extensions": {
"hashes": [
"sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9",
"sha256:41e576ce3f5d650be59e900e4ceff231e0aed2a88cf30acaee41e02f063a061b"
"sha256:41cdde0a77290e480cf53892f5c5e50921a7ee3e5cd60ba91bf19837b33badcf",
"sha256:bc8847ecc9e784a098efd35e20cba772bc5a1b529dfcef9dc1972db9021a1049"
],
"markers": "python_version >= '3.8'",
"version": "==10.14.3"
"version": "==10.11.2"
},
"python-dateutil": {
"hashes": [
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.9.0.post0"
},
"pytz": {
"hashes": [
"sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3",
"sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"
"sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a",
"sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"
],
"version": "==2025.2"
"markers": "python_version < '3.9'",
"version": "==2024.2"
},
"pyyaml": {
"hashes": [
@@ -761,101 +779,135 @@
},
"pyyaml-env-tag": {
"hashes": [
"sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04",
"sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff"
"sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb",
"sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"
],
"markers": "python_version >= '3.9'",
"version": "==1.1"
"markers": "python_version >= '3.6'",
"version": "==0.1"
},
"regex": {
"hashes": [
"sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623",
"sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199",
"sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664",
"sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f",
"sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca",
"sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066",
"sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca",
"sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39",
"sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d",
"sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6",
"sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35",
"sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408",
"sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5",
"sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a",
"sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9",
"sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92",
"sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766",
"sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168",
"sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca",
"sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508",
"sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df",
"sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf",
"sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b",
"sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4",
"sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268",
"sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6",
"sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c",
"sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62",
"sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231",
"sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36",
"sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba",
"sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4",
"sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e",
"sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822",
"sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4",
"sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d",
"sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71",
"sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50",
"sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d",
"sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad",
"sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8",
"sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8",
"sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8",
"sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd",
"sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16",
"sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664",
"sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a",
"sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f",
"sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd",
"sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a",
"sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9",
"sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199",
"sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d",
"sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963",
"sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009",
"sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a",
"sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679",
"sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96",
"sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42",
"sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8",
"sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e",
"sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7",
"sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8",
"sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802",
"sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366",
"sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137",
"sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784",
"sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29",
"sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3",
"sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771",
"sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60",
"sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a",
"sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4",
"sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0",
"sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84",
"sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd",
"sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1",
"sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776",
"sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142",
"sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89",
"sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c",
"sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8",
"sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35",
"sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a",
"sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86",
"sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9",
"sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64",
"sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554",
"sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85",
"sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb",
"sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0",
"sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8",
"sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb",
"sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"
],
"markers": "python_version >= '3.8'",
"version": "==2024.9.11"
},
"requests": {
"hashes": [
"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6",
"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"
"sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760",
"sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"
],
"markers": "python_version >= '3.9'",
"version": "==2.32.5"
},
"selectolax": {
"hashes": [
"sha256:0933659b4250b91317ccd78167e6804389cdaf7ed86c5d034b058a550d23110f",
"sha256:0a98c3f3d8fffb175456cb06096bc78103ddf6a209bea6392e0e4ea4e25aca71",
"sha256:15679e9935ccf6c480a34baf8fe217c2b2023e0df18799f0232032dc8ac66d41",
"sha256:21de62b5093b1cb6c5d4cab0bef5f708b9ee1483b640d42be9d955becfcd287a",
"sha256:24f3f5de4051ca33ea769c8a99798c7e30e6500e090e363d5fcd3382b1ae8dfa",
"sha256:25cfccfefc41361ab8a07f15a224524a4a8b77dfa7d253b34bbd397e45856734",
"sha256:28696fa4581765c705e15d05dfba464334f5f9bcb3eac9f25045f815aec6fbc1",
"sha256:29e71fbd58b90d2920ef91a940680cb5331710fe397925ce9d10c3f2f086bf27",
"sha256:2bfe4327215a20af4197c5b7e3729a9552fb324bb57250dc7e7abfa0f848a463",
"sha256:2f5c3523ad5199a4fb9b95b6e24ff9222d3605023ca394b23f7dd910e7536daf",
"sha256:3625057ba0eab766db555f753959cc2759ec8ac49cded7c5f4d507d80fdf9433",
"sha256:38462ae369897f71da287f1282079c11f1b878b99a4d1d509d1116ce05226d88",
"sha256:394d356ea611a7853c13c910a57c1a80a8356f9c920aa8168b3f8aaa62e433d8",
"sha256:3e5354d805dd76b4b38002f58e6ae2e7b429ac311bf3601992a6662d2bc86911",
"sha256:3f58dca53d2d3dc18dfd2cb9210a5625f32598db24e3f857f5be58f21a8f3b88",
"sha256:45682905dd88e268bb5906ce2c3927e89f77b910824a6f64419bfec482cd67be",
"sha256:47587db7cef411d22f8224cf2926aacdb326c4c838d386035229f16ccc2d8d26",
"sha256:484274f73839f9a143f4c13ce1b0a0123b5d64be22f967a1dc202a9a78687d67",
"sha256:50b18a262ea01ca5522f9a30c28ecadb004be88296f6bd2ace21464f89a3cbcc",
"sha256:5388c56456272b2c241fc1906db9cc993984cafdad936cb5e061e3af0c44144e",
"sha256:558a0c665538bfd0549c40c4ea46523a77e8eae09f4e678191cf54c31c17517c",
"sha256:565304311e45c582e85ec525b0646aede6f8db1f22bc08786e94f7b6552d4311",
"sha256:6abdd8357f1c105c1add01a9f0373511fa832548b2e2778b00a8ba2a4508d6ed",
"sha256:6c684d66a0f8e48786ef6d79b9e1e84cb1ffd0835232b4033bed37cf978d1303",
"sha256:6d3f373efd1db18ac9b2222de2668aaa366a1f0b560241eab128f3ca68e8add1",
"sha256:6ff48efe4364c8148a553a4105773a0accee9cc25e0f2a40ddac44d18a5a3000",
"sha256:7073e3bcdc60ebdb5f8777c79b465471ec000ab556134da4e00f037d3321a2ec",
"sha256:7c10452a3a14ee7aa49afb141c3725ef7ba930d5b5391798daf2e053c414a158",
"sha256:8377c317bf1d5fd6ccc56dfb5a0928bbcbea3e800b7af54761cfbbb99dc94cb9",
"sha256:85aeae54f055cf5451828a21fbfecac99b8b5c27ec29fd10725b631593a7c9a3",
"sha256:90c435bc49395344abdaed80d98079466e8c8b6469118cec5cc9cae4dce8bcad",
"sha256:912a1fc03157ebd066d8f59ae9ca2412ef95c7101a51590327c23071b02c97c7",
"sha256:97b9971bb37b54ef4440134f22792d15c9ee12d890a526a7fe0b376502240143",
"sha256:9858fef96e4e332fa64102f0ab1ecf8f88a9ea46a82d379fb421c8f736b60090",
"sha256:9c969626b2295702076f50aac91e44c3bba639fa2e1a612bf6ae254bf29b4d57",
"sha256:a3d44a295416b79815d2858ed4ccb71bf3b63087483a5d3705daa837c9dcf44d",
"sha256:ac940963c52f13cdf5d7266a979744949b660d367ce669efa073b557f6e09a18",
"sha256:aecf29641a4b092331d081fb59f12f6b3fd236c16b48ef6e86419454df787ae1",
"sha256:af5cd03298cd75cb0fbf712d6ae4f8aca9c13a226d2821ca82f51cc9b33b032f",
"sha256:b0c9005e9089a6b0c6fb6a9f691ddbbb10a3a23ebeff54393980340f3dbcdb99",
"sha256:bc1676cd243812ca6ddd79ad53997996535e27db17fda3d440b470bb322f5959",
"sha256:bd99ff0f5a6c017c471635d4ee45b61d25f24689331e407147b2cf5e36892480",
"sha256:bdd1e63735f2fb8485fb6b9f4fe30d6c030930f438f46a4a62bd9886ab3c7fd9",
"sha256:be12a160b1feacd3db1ea2274dcb70dfa9b123b7a1216849eec7b48b6783e903",
"sha256:bf14ca824c4c9fd9b0534d0f316657495ffcedbaf77690be335242c688512b86",
"sha256:c198a1d3693aeccf1c45871bf3fee4bd46428fa99cdb9f3dfee20e1b48c363c7",
"sha256:c6b569fa67a122bfd7f0776c1c922daf122fb4502c8116a903c6168742b84db9",
"sha256:cfb803d6bbe0ef3c8847cf5a01167cc428c0d9179946e1c994cc6178b5332d1a",
"sha256:d0a6d8e02c6b9ba951d7b5a5dd2788a1d4bbdedc89782a4de165f1a87c4168ac",
"sha256:d458db7fee5f6b1ce75664ce8a009343c0aac1993a7b844a997cfea3ad0ea77b",
"sha256:d4ecc262db7afb0087e679176043178dc59791fce56659f62775a96d60596f1d",
"sha256:d6a1cd0518fa7656ea1683c4b2d3b5a98306753f364da9f673517847e1680a3e",
"sha256:db734ba4ef44fa3b57ad9374fd7ccfc7815c0ae5cfcbd5ee25fe8587092618d1",
"sha256:deeab93386b6c9a75052515f5b9e7e3dd623c585871c0c2b3126970ff902603b",
"sha256:dfee3340e8c89dd25a7dd621940b928960e4c9a70c4830d208f29b0adf288743",
"sha256:e13befacff5f78102aa11465055ecb6d4b35f89663e36f271f2b506bcab14112",
"sha256:e3112f05a34bf36d36ecc51520b1d98c4667b54a3f123dffef5072273e89a360",
"sha256:e7f4cc1b7ce9691559decfd5db7cc500e71a9f6ccfe76c054f284c184a1d1dc9",
"sha256:e9e4690894f406863e25ba49da27e1a6fda9bfc21b0b315c399d3093be080e81",
"sha256:ea52e0c128e8e89f98ab0ccaabbc853677de5730729a3351da595976131b66e0",
"sha256:edd2760699c60dde7d847aebd81f02035f7bddcd0ad3db8e73326dfc84a2dc8f"
],
"version": "==0.3.29"
"markers": "python_version >= '3.8'",
"version": "==2.32.3"
},
"six": {
"hashes": [
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"version": "==1.17.0"
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"smmap": {
"hashes": [
"sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5",
"sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e"
"sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62",
"sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"
],
"markers": "python_version >= '3.7'",
"version": "==5.0.2"
"version": "==5.0.1"
},
"super-collections": {
"hashes": [
@@ -867,11 +919,11 @@
},
"termcolor": {
"hashes": [
"sha256:591dd26b5c2ce03b9e43f391264626557873ce1d379019786f99b0c2bee140aa",
"sha256:6a6dd7fbee581909eeec6a756cff1d7f7c376063b14e4a298dc4980309e55970"
"sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8",
"sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f"
],
"markers": "python_version >= '3.9'",
"version": "==3.1.0"
"version": "==2.5.0"
},
"tinycss2": {
"hashes": [
@@ -883,47 +935,47 @@
},
"urllib3": {
"hashes": [
"sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760",
"sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"
"sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac",
"sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"
],
"markers": "python_version >= '3.9'",
"version": "==2.5.0"
"markers": "python_version >= '3.8'",
"version": "==2.2.3"
},
"watchdog": {
"hashes": [
"sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a",
"sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2",
"sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f",
"sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c",
"sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c",
"sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c",
"sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0",
"sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13",
"sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134",
"sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa",
"sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e",
"sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379",
"sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a",
"sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11",
"sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282",
"sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b",
"sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f",
"sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c",
"sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112",
"sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948",
"sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881",
"sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860",
"sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3",
"sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680",
"sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26",
"sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26",
"sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e",
"sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8",
"sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c",
"sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2"
"sha256:0f9332243355643d567697c3e3fa07330a1d1abf981611654a1f2bf2175612b7",
"sha256:1021223c08ba8d2d38d71ec1704496471ffd7be42cfb26b87cd5059323a389a1",
"sha256:108f42a7f0345042a854d4d0ad0834b741d421330d5f575b81cb27b883500176",
"sha256:1e9679245e3ea6498494b3028b90c7b25dbb2abe65c7d07423ecfc2d6218ff7c",
"sha256:223160bb359281bb8e31c8f1068bf71a6b16a8ad3d9524ca6f523ac666bb6a1e",
"sha256:26dd201857d702bdf9d78c273cafcab5871dd29343748524695cecffa44a8d97",
"sha256:294b7a598974b8e2c6123d19ef15de9abcd282b0fbbdbc4d23dfa812959a9e05",
"sha256:349c9488e1d85d0a58e8cb14222d2c51cbc801ce11ac3936ab4c3af986536926",
"sha256:49f4d36cb315c25ea0d946e018c01bb028048023b9e103d3d3943f58e109dd45",
"sha256:53a3f10b62c2d569e260f96e8d966463dec1a50fa4f1b22aec69e3f91025060e",
"sha256:53adf73dcdc0ef04f7735066b4a57a4cd3e49ef135daae41d77395f0b5b692cb",
"sha256:560135542c91eaa74247a2e8430cf83c4342b29e8ad4f520ae14f0c8a19cfb5b",
"sha256:720ef9d3a4f9ca575a780af283c8fd3a0674b307651c1976714745090da5a9e8",
"sha256:752fb40efc7cc8d88ebc332b8f4bcbe2b5cc7e881bccfeb8e25054c00c994ee3",
"sha256:78864cc8f23dbee55be34cc1494632a7ba30263951b5b2e8fc8286b95845f82c",
"sha256:85527b882f3facda0579bce9d743ff7f10c3e1e0db0a0d0e28170a7d0e5ce2ea",
"sha256:90a67d7857adb1d985aca232cc9905dd5bc4803ed85cfcdcfcf707e52049eda7",
"sha256:91b522adc25614cdeaf91f7897800b82c13b4b8ac68a42ca959f992f6990c490",
"sha256:9413384f26b5d050b6978e6fcd0c1e7f0539be7a4f1a885061473c5deaa57221",
"sha256:94d11b07c64f63f49876e0ab8042ae034674c8653bfcdaa8c4b32e71cfff87e8",
"sha256:950f531ec6e03696a2414b6308f5c6ff9dab7821a768c9d5788b1314e9a46ca7",
"sha256:a2e8f3f955d68471fa37b0e3add18500790d129cc7efe89971b8a4cc6fdeb0b2",
"sha256:ae6deb336cba5d71476caa029ceb6e88047fc1dc74b62b7c4012639c0b563906",
"sha256:b8ca4d854adcf480bdfd80f46fdd6fb49f91dd020ae11c89b3a79e19454ec627",
"sha256:c66f80ee5b602a9c7ab66e3c9f36026590a0902db3aea414d59a2f55188c1f49",
"sha256:d52db5beb5e476e6853da2e2d24dbbbed6797b449c8bf7ea118a4ee0d2c9040e",
"sha256:dd021efa85970bd4824acacbb922066159d0f9e546389a4743d56919b6758b91",
"sha256:e25adddab85f674acac303cf1f5835951345a56c5f7f582987d266679979c75b",
"sha256:f00b4cf737f568be9665563347a910f8bdc76f88c2970121c86243c8cfdf90e9",
"sha256:f01f4a3565a387080dc49bdd1fefe4ecc77f894991b88ef927edbfa45eb10818"
],
"markers": "python_version >= '3.9'",
"version": "==6.0.0"
"version": "==5.0.3"
},
"webencodings": {
"hashes": [
@@ -943,11 +995,11 @@
},
"six": {
"hashes": [
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.17.0"
"version": "==1.16.0"
}
}
}

331
README.md
View File

@@ -14,7 +14,9 @@
<a href="https://github.com/privacyguides/privacyguides.org/stargazers">
<img src="https://img.shields.io/github/stars/privacyguides?style=social"></a>
<a href="https://mastodon.neat.computer/@privacyguides">
<img src="https://img.shields.io/mastodon/follow/109298532634697668?domain=https%3A%2F%2Fmastodon.neat.computer&label=Follow&style=social"></a></p>
<img src="https://img.shields.io/mastodon/follow/109298532634697668?domain=https%3A%2F%2Fmastodon.neat.computer&label=Follow&style=social"></a>
<a href="https://bsky.app/profile/privacyguides.org">
<img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fpublic.api.bsky.app%2Fxrpc%2Fapp.bsky.actor.getProfile%3Factor%3Dprivacyguides.org&query=%24.followersCount&style=social&logo=bluesky&label=Follow"></a></p>
<p><a href="https://github.com/privacyguides/privacyguides.org/pulls">
<img src="https://img.shields.io/github/issues-pr-raw/privacyguides/privacyguides.org"></a>
@@ -42,14 +44,12 @@
**Privacy Guides** is a socially motivated website that provides information for protecting your data security and privacy. Our mission is to inform the public about the value of digital privacy, and global government initiatives which aim to monitor your online activity. We are a non-profit collective operated entirely by volunteer team members and contributors. Our website is free of advertisements and not affiliated with any of the listed providers.
The current list of team members can be found on [the executive committee page](https://www.privacyguides.org/en/about/#executive-committee). Additionally, [many people](#contributors) have made contributions to the project, and you can too!
The current list of team members can be found [here](https://www.privacyguides.org/en/about/#executive-committee). Additionally, [many people](#contributors) have made contributions to the project, and you can too!
*Featured on: [Tweakers](https://tweakers.net/reviews/10568/op-zoek-naar-privacyvriendelijke-tools-niek-de-wilde-van-privacy-guides.html), [The New York Times](https://nytimes.com/wirecutter/guides/online-security-social-media-privacy), [Wired](https://wired.com/story/firefox-mozilla-2022), and [Fast Company](https://www.fastcompany.com/91167564/mozilla-wants-you-to-love-firefox-again).*
## Contributing
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/privacyguides/privacyguides.org?devcontainer_path=.devcontainer%2Fdevcontainer.json)
- 💬 [Start a discussion or suggest an idea](https://discuss.privacyguides.net)
- 💖 [Sponsor the project](https://github.com/sponsors/privacyguides)
- 🈴 [Help translate the site](https://crowdin.com/project/privacyguides) [[Matrix chat](https://matrix.to/#/#pg-i18n:aragon.sh)]
@@ -63,7 +63,9 @@ All contributors to the site are listed [here](#contributors). If you have contr
## Mirrors
- **GitHub Pages:** [privacyguides.github.io/privacyguides.org](https://privacyguides.github.io/privacyguides.org/en/)
- **Netlify (AWS):** [illustrious-bavarois-56cf30.netlify.app](https://illustrious-bavarois-56cf30.netlify.app/en/)
- **BunnyCDN:** [privacyguides-org-production.b-cdn.net](https://privacyguides-org-production.b-cdn.net/en/)
- **Hetzner:** [direct.privacyguides.org](https://direct.privacyguides.org/en/) (discouraged!)
### Alternative Networks
@@ -72,6 +74,18 @@ All contributors to the site are listed [here](#contributors). If you have contr
- **Tor/onion:** [xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion](http://www.xoe4vn5uwdztif6goazfbmogh6wh5jc4up35bqdflu6bkdc5cas5vjqd.onion)
- **IPFS:** `/ipns/ipfs.privacyguides.org` (**not** anonymous)
- Please help us out by pinning a copy: [Learn more](https://github.com/privacyguides/webserver/blob/main/ipfs/README.md)
- via Cloudflare: [cloudflare-ipfs.com/ipns/ipfs.privacyguides.org](https://cloudflare-ipfs.com/ipns/ipfs.privacyguides.org/en/)
- via 4everland: [ipfs-privacyguides-org.ipns.4everland.io](https://ipfs-privacyguides-org.ipns.4everland.io/)
- via [@jonaharagon](https://github.com/jonaharagon): [ipfs.jonaharagon.net/ipns/ipfs.privacyguides.org](https://ipfs.jonaharagon.net/ipns/ipfs.privacyguides.org/en/)
- via [peer](https://docs.ipfs.tech/how-to/peering-with-content-providers/): `/dnsaddr/node-1.ipfs.jonaharagon.net/p2p/12D3KooWMwqzuApCKxYfo66zq5BrTjCoz9naJ1rrMEBCnwuGGqWB`
- **I2P:** [privacyguides.i2p](http://privacyguides.i2p/?i2paddresshelper=fvbkmooriuqgssrjvbxu7nrwms5zyhf34r3uuppoakwwsm7ysv6q.b32.i2p)
- **Yggdrasil:** [http://[200:f3a6:4922:e067:770d:ac57:fcb1:8dbf]](http://[200:f3a6:4922:e067:770d:ac57:fcb1:8dbf]/en/) (**not** anonymous)
- via public peer: `tcp://5.161.245.8:45454`
### Git Mirrors
[![GitHub](https://img.shields.io/static/v1?logo=github&label=&message=GitHub&color=000&style=for-the-badge)](https://github.com/privacyguides/privacyguides.org)
@@ -98,24 +112,48 @@ When you contribute to this repository you are doing so under the above licenses
## Developing
The only supported method of building and previewing this website locally is by running the automatic dev container. The easiest way to do this in your web browser without installing any software is to use [GitHub Codespaces](https://codespaces.new/privacyguides/privacyguides.org). To build the website locally, you will need the following software:
- macOS/Windows: [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- Linux: [Docker CE](https://docs.docker.com/get-started/get-docker/#supported-platforms)
- [VS Code](https://code.visualstudio.com/)
- [Dev Containers for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension
- [GitHub Desktop](https://github.com/apps/desktop) (optional)
You can technically use any IDE which supports [development containers](https://containers.dev/), but YMMV. Docker Desktop has an experimental Dev Environments option which allows you to use any text editor under Settings > Features in development. We are only testing with the combination of software above.
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/privacyguides/privacyguides.org?devcontainer_path=.devcontainer%2Fdevcontainer.json)
Committing to this repository requires [signing your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) (`git config commit.gpgsign true`) unless you are making edits via the GitHub.com text editor interface. As of August 2022 the preferred signing method is [SSH commit signatures](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification), but GPG signing is also acceptable. You should add your signing key to your GitHub profile.
### With `mkdocs-material`
1. Install required packages: `pip install mkdocs-material`
2. Run a local preview of the English site: `./run.sh --cmd=mkdocs`
### With `mkdocs-material-insiders`
This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/mkdocs-material/insiders) which offers additional functionality over the open-source `mkdocs-material` project. For obvious reasons we cannot distribute access to the insiders repository.
**Team members** should clone the repository with `mkdocs-material-insiders` directly. This method is identical to production:
1. Clone this repository and submodules: `git clone --recurse-submodules https://github.com/privacyguides/privacyguides.org.git`
2. Enable SSH commit verification with our local [`.allowed_signers`](/.allowed_signers) file: `git config gpg.ssh.allowedSignersFile .allowed_signers`
3. Install Python **3.12**.
4. Install **pipenv**: `pip install pipenv`
5. Install dependencies: `pipenv install --dev` (install [Pillow and CairoSVG](https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#dependencies) as well to generate social cards)
6. Serve the site locally: `./run.sh --insiders` (set `CARDS=true` to generate social cards)
- The site will be available at `http://localhost:8000`
- You can build the site locally with `./run.sh --insiders --build`
- This version of the site should be identical to the live, production version
If you commit to `main` with commits signed with your SSH key, you should add your SSH key to [`.allowed_signers`](/.allowed_signers) in this repo.
### Local Translated Site Builds
1. Install the [Crowdin CLI Tool](https://developer.crowdin.com/cli-tool) (`brew install crowdin`)
2. Set the `CROWDIN_PERSONAL_TOKEN` environment variable to your Crowdin personal access token
3. Run `crowdin download` in the root of this repo
4. Serve the site locally: `./run.sh --insiders --lang=fr` (replacing fr with the appropriate language in [/config](/config))
Translations downloaded from Crowdin are [.gitignore](/.gitignore)'d, so any local changes to the translated site cannot be committed to this repo. Actual modifications need to be made on Crowdin. As an alternative to steps 1-3, you can copy the folders from [privacyguides/i18n](https://github.com/privacyguides/i18n) to the root of this repo to obtain the translated files.
## Releasing
It is required to create a GitHub release to publish the current site to privacyguides.org. The current `main` branch can be previewed at [https://main.staging.privacyguides.dev](https://main.staging.privacyguides.dev) prior to release.
1. Create a new tag: `git tag -s YYYY.MM.DD -m 'Some message'`
- Tag numbering: `YYYY.MM.DD` - if two+ releases are published on the same day, append short commit to the next release, e.g. `YYYY.MM.DD-6aa14e8`
- Tag numbering: `YYYY.MM.DD` - if two+ releases are published on the same day, append short commit sha to next release, e.g. `YYYY.MM.DD-6aa14e8`
- Enable GPG tag signing by default (`git config tag.gpgSign true`) to avoid missing signatures
2. Push the tag to GitHub: `git push --tags`
3. A GitHub Release will be automatically created and deployed to the live site.
@@ -154,446 +192,427 @@ Privacy Guides wouldn't be possible without these wonderful people ([emoji key](
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/matchboxbananasynergy"><img src="https://avatars.githubusercontent.com/u/107055883?v=4" width="100px;" loading=lazy /><br /><sub><b>matchboxbananasynergy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=matchboxbananasynergy" title="Documentation">📖</a> <a href="#research-matchboxbananasynergy" title="Research">🔬</a> <a href="#ideas-matchboxbananasynergy" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+reviewed-by%3Amatchboxbananasynergy" title="Reviewed Pull Requests">👀</a> <a href="#blog-matchboxbananasynergy" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://friadev.github.io/"><img src="https://avatars.githubusercontent.com/u/138676274?v=4" width="100px;" loading=lazy /><br /><sub><b>fria</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=friadev" title="Documentation">📖</a> <a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+reviewed-by%3Afriadev" title="Reviewed Pull Requests">👀</a> <a href="#research-friadev" title="Research">🔬</a> <a href="#question-friadev" title="Answering Questions">💬</a> <a href="https://github.com/privacyguides/privacyguides.org/issues?q=author%3Afriadev" title="Bug reports">🐛</a> <a href="#ideas-friadev" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://jordanwarne.net/"><img src="https://avatars.githubusercontent.com/u/154663344?v=4" width="100px;" loading=lazy /><br /><sub><b>jordan warne</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jordan-warne" title="Documentation">📖</a> <a href="#video-jordan-warne" title="Videos">📹</a> <a href="#research-jordan-warne" title="Research">🔬</a> <a href="#ideas-jordan-warne" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-jordan-warne" title="Answering Questions">💬</a> <a href="#promotion-jordan-warne" title="Promotion">📣</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/EmAtPrivacyGuides"><img src="https://avatars.githubusercontent.com/u/194856901?v=4" width="100px;" loading=lazy /><br /><sub><b>Em</b></sub></a><br /><a href="#blog-EmAtPrivacyGuides" title="Blogposts">📝</a> <a href="#promotion-EmAtPrivacyGuides" title="Promotion">📣</a> <a href="#ideas-EmAtPrivacyGuides" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kpham42"><img src="https://avatars.githubusercontent.com/u/123699355?v=4" width="100px;" loading=lazy /><br /><sub><b>Kevin Pham</b></sub></a><br /><a href="#blog-kpham42" title="Blogposts">📝</a> <a href="#promotion-kpham42" title="Promotion">📣</a> <a href="#question-kpham42" title="Answering Questions">💬</a> <a href="#research-kpham42" title="Research">🔬</a> <a href="#ideas-kpham42" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/privacyguides/privacyguides.org/commits?author=kpham42" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/features/actions"><img src="https://avatars.githubusercontent.com/u/44036562?v=4" width="100px;" loading=lazy /><br /><sub><b>GitHub Actions</b></sub></a><br /><a href="#infra-actions" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.triplebit.org/"><img src="https://avatars.githubusercontent.com/u/178061783?v=4" width="100px;" loading=lazy /><br /><sub><b>Triplebit</b></sub></a><br /><a href="#infra-triplebit" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://magicgrants.org/"><img src="https://avatars.githubusercontent.com/u/90805358?v=4" width="100px;" loading=lazy /><br /><sub><b>MAGIC Grants</b></sub></a><br /><a href="#business-magicgrants" title="Business development">💼</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.netlify.com/"><img src="https://avatars.githubusercontent.com/u/7892489?v=4" width="100px;" loading=lazy /><br /><sub><b>Netlify</b></sub></a><br /><a href="#infra-netlify" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/features/security"><img src="https://avatars.githubusercontent.com/u/27347476?v=4" width="100px;" loading=lazy /><br /><sub><b>Dependabot</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=dependabot" title="Code">💻</a> <a href="#infra-dependabot" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.netlify.com/"><img src="https://avatars.githubusercontent.com/u/7892489?v=4" width="100px;" loading=lazy /><br /><sub><b>Netlify</b></sub></a><br /><a href="#infra-netlify" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/features/security"><img src="https://avatars.githubusercontent.com/u/27347476?v=4" width="100px;" loading=lazy /><br /><sub><b>Dependabot</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=dependabot" title="Code">💻</a> <a href="#infra-dependabot" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://console.hetzner.cloud/"><img src="https://avatars.githubusercontent.com/u/22154697?v=4" width="100px;" loading=lazy /><br /><sub><b>Hetzner Cloud</b></sub></a><br /><a href="#infra-hetznercloud" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.cloudflare.com/"><img src="https://avatars.githubusercontent.com/u/314135?v=4" width="100px;" loading=lazy /><br /><sub><b>Cloudflare</b></sub></a><br /><a href="#infra-cloudflare" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://opencollective.com/"><img src="https://avatars.githubusercontent.com/u/13403593?v=4" width="100px;" loading=lazy /><br /><sub><b>Open Collective</b></sub></a><br /><a href="#business-opencollective" title="Business development">💼</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://safing.io/"><img src="https://avatars.githubusercontent.com/u/20678162?v=4" width="100px;" loading=lazy /><br /><sub><b>Safing</b></sub></a><br /><a href="#financial-safing" title="Financial">💵</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.danarel.com/"><img src="https://avatars.githubusercontent.com/u/46383059?v=4" width="100px;" loading=lazy /><br /><sub><b>Dan Arel</b></sub></a><br /><a href="#blog-danarel" title="Blogposts">📝</a> <a href="https://github.com/privacyguides/privacyguides.org/commits?author=danarel" title="Documentation">📖</a> <a href="#research-danarel" title="Research">🔬</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://safing.io/"><img src="https://avatars.githubusercontent.com/u/20678162?v=4" width="100px;" loading=lazy /><br /><sub><b>Safing</b></sub></a><br /><a href="#financial-safing" title="Financial">💵</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.danarel.com/"><img src="https://avatars.githubusercontent.com/u/46383059?v=4" width="100px;" loading=lazy /><br /><sub><b>Dan Arel</b></sub></a><br /><a href="#blog-danarel" title="Blogposts">📝</a> <a href="https://github.com/privacyguides/privacyguides.org/commits?author=danarel" title="Documentation">📖</a> <a href="#research-danarel" title="Research">🔬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://techlore.tech/"><img src="https://avatars.githubusercontent.com/u/68134985?v=4" width="100px;" loading=lazy /><br /><sub><b>Techlore</b></sub></a><br /><a href="#financial-techlore" title="Financial">💵</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/elitejake"><img src="https://avatars.githubusercontent.com/u/74049394?v=4" width="100px;" loading=lazy /><br /><sub><b>elitejake</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=elitejake" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://simpleprivacy.fr/"><img src="https://avatars.githubusercontent.com/u/74207682?v=4" width="100px;" loading=lazy /><br /><sub><b>samsepi0l</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=d4rklynk" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/rollsicecream"><img src="https://avatars.githubusercontent.com/u/153316540?v=4" width="100px;" loading=lazy /><br /><sub><b>rollsicecream</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=rollsicecream" title="Documentation">📖</a> <a href="#question-rollsicecream" title="Answering Questions">💬</a> <a href="#translation-rollsicecream" title="Translation">🌍</a> <a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+reviewed-by%3Arollsicecream" title="Reviewed Pull Requests">👀</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://henryfisher.tech/"><img src="https://avatars.githubusercontent.com/u/64515030?v=4" width="100px;" loading=lazy /><br /><sub><b>Henry Fisher</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=henry-fisher" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/rollsicecream"><img src="https://avatars.githubusercontent.com/u/153316540?v=4" width="100px;" loading=lazy /><br /><sub><b>rollsicecream</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=rollsicecream" title="Documentation">📖</a> <a href="#question-rollsicecream" title="Answering Questions">💬</a> <a href="#translation-rollsicecream" title="Translation">🌍</a> <a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+reviewed-by%3Arollsicecream" title="Reviewed Pull Requests">👀</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://henryfisher.tech/"><img src="https://avatars.githubusercontent.com/u/64515030?v=4" width="100px;" loading=lazy /><br /><sub><b>Henry Fisher</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=henry-fisher" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://thenewoil.org/"><img src="https://avatars.githubusercontent.com/u/133825060?v=4" width="100px;" loading=lazy /><br /><sub><b>Nate Bartram</b></sub></a><br /><a href="#blog-tnonate" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.samhowell.uk/"><img src="https://avatars.githubusercontent.com/u/10137?v=4" width="100px;" loading=lazy /><br /><sub><b>Sam Howell</b></sub></a><br /><a href="#blog-5amm" title="Blogposts">📝</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/asddsaz"><img src="https://avatars.githubusercontent.com/u/42685606?v=4" width="100px;" loading=lazy /><br /><sub><b>asddsaz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=asddsaz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/hugoncosta"><img src="https://avatars.githubusercontent.com/u/29380568?v=4" width="100px;" loading=lazy /><br /><sub><b>Hugo Costa</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=hugoncosta" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/C-O-M-P-A-R-T-M-E-N-T-A-L-I-Z-A-T-I-O-N"><img src="https://avatars.githubusercontent.com/u/30232065?v=4" width="100px;" loading=lazy /><br /><sub><b>C-O-M-P-A-R-T-M-E-N-T-A-L-I-Z-A-T-I-O-N</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=C-O-M-P-A-R-T-M-E-N-T-A-L-I-Z-A-T-I-O-N" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Strappazzon"><img src="https://avatars.githubusercontent.com/u/19752093?v=4" width="100px;" loading=lazy /><br /><sub><b>Alberto Strappazzon</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Strappazzon" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://victorhckinthefreeworld.com/"><img src="https://avatars.githubusercontent.com/u/1514206?v=4" width="100px;" loading=lazy /><br /><sub><b>Victorhck</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=victorhck" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/taivlam"><img src="https://avatars.githubusercontent.com/u/47955724?v=4" width="100px;" loading=lazy /><br /><sub><b>Tai Lam</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=taivlam" title="Documentation">📖</a> <a href="#maintenance-taivlam" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NinebitX"><img src="https://avatars.githubusercontent.com/u/26626722?v=4" width="100px;" loading=lazy /><br /><sub><b>NinebitX</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NinebitX" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://antukh.com/"><img src="https://avatars.githubusercontent.com/u/10441512?v=4" width="100px;" loading=lazy /><br /><sub><b>Alexander Antukh</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=c0rdis" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/taivlam"><img src="https://avatars.githubusercontent.com/u/47955724?v=4" width="100px;" loading=lazy /><br /><sub><b>Tai Lam</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=taivlam" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NinebitX"><img src="https://avatars.githubusercontent.com/u/26626722?v=4" width="100px;" loading=lazy /><br /><sub><b>NinebitX</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NinebitX" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://antukh.com/"><img src="https://avatars.githubusercontent.com/u/10441512?v=4" width="100px;" loading=lazy /><br /><sub><b>Alexander Antukh</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=c0rdis" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gusted.xyz/"><img src="https://avatars.githubusercontent.com/u/25481501?v=4" width="100px;" loading=lazy /><br /><sub><b>Gusted</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Gusted" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/redoomed1"><img src="https://avatars.githubusercontent.com/u/161974310?v=4" width="100px;" loading=lazy /><br /><sub><b>redoomed1</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+reviewed-by%3Aredoomed1" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/privacyguides/privacyguides.org/commits?author=redoomed1" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Offpics"><img src="https://avatars.githubusercontent.com/u/20701635?v=4" width="100px;" loading=lazy /><br /><sub><b>Offpics</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Offpics" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kimg45"><img src="https://avatars.githubusercontent.com/u/138676274?v=4" width="100px;" loading=lazy /><br /><sub><b>kimg45</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kimg45" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/djoate"><img src="https://avatars.githubusercontent.com/u/56777051?v=4" width="100px;" loading=lazy /><br /><sub><b>djoate</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=djoate" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kimg45"><img src="https://avatars.githubusercontent.com/u/138676274?v=4" width="100px;" loading=lazy /><br /><sub><b>kimg45</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kimg45" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/djoate"><img src="https://avatars.githubusercontent.com/u/56777051?v=4" width="100px;" loading=lazy /><br /><sub><b>djoate</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=djoate" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/afighttilldeath"><img src="https://avatars.githubusercontent.com/u/29437578?v=4" width="100px;" loading=lazy /><br /><sub><b>afighttilldeath</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=afighttilldeath" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/paulverbeke"><img src="https://avatars.githubusercontent.com/u/6412153?v=4" width="100px;" loading=lazy /><br /><sub><b>Paul Verbeke</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=paulverbeke" title="Documentation">📖</a> <a href="#translation-paulverbeke" title="Translation">🌍</a> <a href="https://github.com/privacyguides/privacyguides.org/issues?q=author%3Apaulverbeke" title="Bug reports">🐛</a> <a href="#mentoring-paulverbeke" title="Mentoring">🧑‍🏫</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://mitchellcash.com/"><img src="https://avatars.githubusercontent.com/u/8009243?v=4" width="100px;" loading=lazy /><br /><sub><b>Mitchell Cash</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=MitchellCash" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NeverDucky"><img src="https://avatars.githubusercontent.com/u/32468662?v=4" width="100px;" loading=lazy /><br /><sub><b>NeverDucky</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NeverDucky" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/efb4f5ff-1298-471a-8973-3d47447115dc"><img src="https://avatars.githubusercontent.com/u/73130443?v=4" width="100px;" loading=lazy /><br /><sub><b>efb4f5ff-1298-471a-8973-3d47447115dc</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=efb4f5ff-1298-471a-8973-3d47447115dc" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NeverDucky"><img src="https://avatars.githubusercontent.com/u/32468662?v=4" width="100px;" loading=lazy /><br /><sub><b>NeverDucky</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NeverDucky" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/efb4f5ff-1298-471a-8973-3d47447115dc"><img src="https://avatars.githubusercontent.com/u/73130443?v=4" width="100px;" loading=lazy /><br /><sub><b>efb4f5ff-1298-471a-8973-3d47447115dc</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=efb4f5ff-1298-471a-8973-3d47447115dc" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.giga.uliege.be/cms/c_4113283/en/giga-directory?uid=u225986"><img src="https://avatars.githubusercontent.com/u/1118942?v=4" width="100px;" loading=lazy /><br /><sub><b>Stephen Karl Larroque</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=lrq3000" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/0rdinant"><img src="https://avatars.githubusercontent.com/u/76827384?v=4" width="100px;" loading=lazy /><br /><sub><b>0rdinant</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=0rdinant" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Zenithium"><img src="https://avatars.githubusercontent.com/u/48525551?v=4" width="100px;" loading=lazy /><br /><sub><b>Zenithium</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Zenithium" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://www.ravellaw.com/"><img src="https://avatars.githubusercontent.com/u/860471?v=4" width="100px;" loading=lazy /><br /><sub><b>Jordan Gwyn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=emanresusername" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gururaja.in/"><img src="https://avatars.githubusercontent.com/u/70903440?v=4" width="100px;" loading=lazy /><br /><sub><b>Guru</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Guru-25" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://www.ravellaw.com/"><img src="https://avatars.githubusercontent.com/u/860471?v=4" width="100px;" loading=lazy /><br /><sub><b>Jordan Gwyn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=emanresusername" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gururaja.in/"><img src="https://avatars.githubusercontent.com/u/70903440?v=4" width="100px;" loading=lazy /><br /><sub><b>Guru</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Guru-25" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/datoshkr"><img src="https://avatars.githubusercontent.com/u/79659024?v=4" width="100px;" loading=lazy /><br /><sub><b>datoshkr</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=datoshkr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Kcchouette"><img src="https://avatars.githubusercontent.com/u/3000936?v=4" width="100px;" loading=lazy /><br /><sub><b>Kcchouette</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Kcchouette" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://jacobneplokh.com/"><img src="https://avatars.githubusercontent.com/u/46184597?v=4" width="100px;" loading=lazy /><br /><sub><b>Jacob Neplokh</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jneplokh" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/razac-elda"><img src="https://avatars.githubusercontent.com/u/30749146?v=4" width="100px;" loading=lazy /><br /><sub><b>Leonardo Mazzon</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=razac-elda" title="Documentation">📖</a> <a href="https://github.com/privacyguides/privacyguides.org/issues?q=author%3Arazac-elda" title="Bug reports">🐛</a> <a href="#financial-razac-elda" title="Financial">💵</a> <a href="#promotion-razac-elda" title="Promotion">📣</a> <a href="#question-razac-elda" title="Answering Questions">💬</a> <a href="#translation-razac-elda" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/opheron"><img src="https://avatars.githubusercontent.com/u/7110152?v=4" width="100px;" loading=lazy /><br /><sub><b>Andrew Chong</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=opheron" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/razac-elda"><img src="https://avatars.githubusercontent.com/u/30749146?v=4" width="100px;" loading=lazy /><br /><sub><b>Leonardo Mazzon</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=razac-elda" title="Documentation">📖</a> <a href="https://github.com/privacyguides/privacyguides.org/issues?q=author%3Arazac-elda" title="Bug reports">🐛</a> <a href="#financial-razac-elda" title="Financial">💵</a> <a href="#promotion-razac-elda" title="Promotion">📣</a> <a href="#question-razac-elda" title="Answering Questions">💬</a> <a href="#translation-razac-elda" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/opheron"><img src="https://avatars.githubusercontent.com/u/7110152?v=4" width="100px;" loading=lazy /><br /><sub><b>Andrew Chong</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=opheron" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/woctezuma"><img src="https://avatars.githubusercontent.com/u/570669?v=4" width="100px;" loading=lazy /><br /><sub><b>Wok</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=woctezuma" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://itsnothing.net/"><img src="https://avatars.githubusercontent.com/u/105246487?v=4" width="100px;" loading=lazy /><br /><sub><b>nopeitsnothing</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=nopeitsnothing" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://lynn.one/"><img src="https://avatars.githubusercontent.com/u/63118982?v=4" width="100px;" loading=lazy /><br /><sub><b>Lynn Stephenson</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=lynn-stephenson" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://cory.solovewi.cz/"><img src="https://avatars.githubusercontent.com/u/19578733?v=4" width="100px;" loading=lazy /><br /><sub><b>Cory Solovewicz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=corysolovewicz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://zerolimits.dev/"><img src="https://avatars.githubusercontent.com/u/103803129?v=4" width="100px;" loading=lazy /><br /><sub><b>noClaps</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=noClaps" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://cory.solovewi.cz/"><img src="https://avatars.githubusercontent.com/u/19578733?v=4" width="100px;" loading=lazy /><br /><sub><b>Cory Solovewicz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=corysolovewicz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://zerolimits.dev/"><img src="https://avatars.githubusercontent.com/u/103803129?v=4" width="100px;" loading=lazy /><br /><sub><b>noClaps</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=noClaps" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Perelandra0x309"><img src="https://avatars.githubusercontent.com/u/22124003?v=4" width="100px;" loading=lazy /><br /><sub><b>Brian</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Perelandra0x309" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/SkewedZeppelin"><img src="https://avatars.githubusercontent.com/u/8296104?v=4" width="100px;" loading=lazy /><br /><sub><b>SkewedZeppelin</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=SkewedZeppelin" title="Documentation">📖</a> <a href="#question-SkewedZeppelin" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Arcadius3D"><img src="https://avatars.githubusercontent.com/u/165268515?v=4" width="100px;" loading=lazy /><br /><sub><b>Arcadius3D</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Arcadius3D" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/vpnarea"><img src="https://avatars.githubusercontent.com/u/17130812?v=4" width="100px;" loading=lazy /><br /><sub><b>vpnarea</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=vpnarea" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://namazso.eu/"><img src="https://avatars.githubusercontent.com/u/8676443?v=4" width="100px;" loading=lazy /><br /><sub><b>namazso</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=namazso" title="Documentation">📖</a> <a href="#question-namazso" title="Answering Questions">💬</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/vpnarea"><img src="https://avatars.githubusercontent.com/u/17130812?v=4" width="100px;" loading=lazy /><br /><sub><b>vpnarea</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=vpnarea" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://namazso.eu/"><img src="https://avatars.githubusercontent.com/u/8676443?v=4" width="100px;" loading=lazy /><br /><sub><b>namazso</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=namazso" title="Documentation">📖</a> <a href="#question-namazso" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/cYDN48"><img src="https://avatars.githubusercontent.com/u/96789053?v=4" width="100px;" loading=lazy /><br /><sub><b>cYDN48</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=cYDN48" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/gjhklfdsa"><img src="https://avatars.githubusercontent.com/u/45323745?v=4" width="100px;" loading=lazy /><br /><sub><b>gjhklfdsa</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=gjhklfdsa" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://fxgn.dev/"><img src="https://avatars.githubusercontent.com/u/66178592?v=4" width="100px;" loading=lazy /><br /><sub><b>Pavel Zolotarevskiy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=flexagoon" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.mediawiki.org/wiki/User:Quiddity"><img src="https://avatars.githubusercontent.com/u/6633202?v=4" width="100px;" loading=lazy /><br /><sub><b>quiddity-wp</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=quiddity-wp" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://nikhiljha.com/"><img src="https://avatars.githubusercontent.com/u/2773700?v=4" width="100px;" loading=lazy /><br /><sub><b>Nikhil Jha</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=nikhiljha" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.mediawiki.org/wiki/User:Quiddity"><img src="https://avatars.githubusercontent.com/u/6633202?v=4" width="100px;" loading=lazy /><br /><sub><b>quiddity-wp</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=quiddity-wp" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://nikhiljha.com/"><img src="https://avatars.githubusercontent.com/u/2773700?v=4" width="100px;" loading=lazy /><br /><sub><b>Nikhil Jha</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=nikhiljha" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/subatomic-honda-civic"><img src="https://avatars.githubusercontent.com/u/105336176?v=4" width="100px;" loading=lazy /><br /><sub><b>Subatomic Honda Civic</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=subatomic-honda-civic" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ticklemyIP"><img src="https://avatars.githubusercontent.com/u/126688461?v=4" width="100px;" loading=lazy /><br /><sub><b>ticklemyIP</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ticklemyIP" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jermanuts"><img src="https://avatars.githubusercontent.com/u/109705802?v=4" width="100px;" loading=lazy /><br /><sub><b>jermanuts</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jermanuts" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/conorohiggins"><img src="https://avatars.githubusercontent.com/u/16993660?v=4" width="100px;" loading=lazy /><br /><sub><b>conorohiggins</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=conorohiggins" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/TechFanTheo"><img src="https://avatars.githubusercontent.com/u/78900789?v=4" width="100px;" loading=lazy /><br /><sub><b>TechFanTheo</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TechFanTheo" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/conorohiggins"><img src="https://avatars.githubusercontent.com/u/16993660?v=4" width="100px;" loading=lazy /><br /><sub><b>conorohiggins</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=conorohiggins" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/TechFanTheo"><img src="https://avatars.githubusercontent.com/u/78900789?v=4" width="100px;" loading=lazy /><br /><sub><b>TechFanTheo</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TechFanTheo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/r-j-taylor"><img src="https://avatars.githubusercontent.com/u/35360143?v=4" width="100px;" loading=lazy /><br /><sub><b>Ryan Taylor</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=r-j-taylor" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Positron832"><img src="https://avatars.githubusercontent.com/u/72881516?v=4" width="100px;" loading=lazy /><br /><sub><b>Positron832</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Positron832" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/JustLuckNoSkill"><img src="https://avatars.githubusercontent.com/u/114787000?v=4" width="100px;" loading=lazy /><br /><sub><b>JustLuckNoSkill</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=JustLuckNoSkill" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Akyshnik"><img src="https://avatars.githubusercontent.com/u/23380632?v=4" width="100px;" loading=lazy /><br /><sub><b>Arkadiy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Akyshnik" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jackmchou"><img src="https://avatars.githubusercontent.com/u/56708167?v=4" width="100px;" loading=lazy /><br /><sub><b>Jack Chou</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jackmchou" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Akyshnik"><img src="https://avatars.githubusercontent.com/u/23380632?v=4" width="100px;" loading=lazy /><br /><sub><b>Arkadiy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Akyshnik" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jackmchou"><img src="https://avatars.githubusercontent.com/u/56708167?v=4" width="100px;" loading=lazy /><br /><sub><b>Jack Chou</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jackmchou" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://ave.zone/"><img src="https://avatars.githubusercontent.com/u/6755762?v=4" width="100px;" loading=lazy /><br /><sub><b>ave</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=aveao" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Booteille"><img src="https://avatars.githubusercontent.com/u/2203721?v=4" width="100px;" loading=lazy /><br /><sub><b>Boo</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Booteille" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/IDKwhattoputhere"><img src="https://avatars.githubusercontent.com/u/39969358?v=4" width="100px;" loading=lazy /><br /><sub><b>IDKwhattoputhere</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=IDKwhattoputhere" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/idk-r-n"><img src="https://avatars.githubusercontent.com/u/111711873?v=4" width="100px;" loading=lazy /><br /><sub><b>idkrn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=idk-r-n" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ggg27"><img src="https://avatars.githubusercontent.com/u/52841257?v=4" width="100px;" loading=lazy /><br /><sub><b>ggg27</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ggg27" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/idk-r-n"><img src="https://avatars.githubusercontent.com/u/111711873?v=4" width="100px;" loading=lazy /><br /><sub><b>idkrn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=idk-r-n" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ggg27"><img src="https://avatars.githubusercontent.com/u/52841257?v=4" width="100px;" loading=lazy /><br /><sub><b>ggg27</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ggg27" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/WalterKlosse"><img src="https://avatars.githubusercontent.com/u/27290800?v=4" width="100px;" loading=lazy /><br /><sub><b>WalterKlosse</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=WalterKlosse" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://stosb.com/"><img src="https://avatars.githubusercontent.com/u/108670?v=4" width="100px;" loading=lazy /><br /><sub><b>Tom Hacohen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tasn" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.linkedin.com/in/paulfeuvraux/"><img src="https://avatars.githubusercontent.com/u/13090164?v=4" width="100px;" loading=lazy /><br /><sub><b>Paul Feuvraux</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Super-Baleine" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://sbennett1990.github.io/Resume/"><img src="https://avatars.githubusercontent.com/u/6392550?v=4" width="100px;" loading=lazy /><br /><sub><b>Scott Bennett</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sbennett1990" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://blog.191.161.xyz/"><img src="https://avatars.githubusercontent.com/u/1544371?v=4" width="100px;" loading=lazy /><br /><sub><b>Federico Ariel Castagnini</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=facastagnini" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://sbennett1990.github.io/Resume/"><img src="https://avatars.githubusercontent.com/u/6392550?v=4" width="100px;" loading=lazy /><br /><sub><b>Scott Bennett</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sbennett1990" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://blog.191.161.xyz/"><img src="https://avatars.githubusercontent.com/u/1544371?v=4" width="100px;" loading=lazy /><br /><sub><b>Federico Ariel Castagnini</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=facastagnini" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jslawler-gh"><img src="https://avatars.githubusercontent.com/u/149243371?v=4" width="100px;" loading=lazy /><br /><sub><b>jslawler-gh</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jslawler-gh" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/spaceoden"><img src="https://avatars.githubusercontent.com/u/26421479?v=4" width="100px;" loading=lazy /><br /><sub><b>spaceoden</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=spaceoden" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/xe-3"><img src="https://avatars.githubusercontent.com/u/137224605?v=4" width="100px;" loading=lazy /><br /><sub><b>xe3</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=xe-3" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/anoadragon453"><img src="https://avatars.githubusercontent.com/u/1342360?v=4" width="100px;" loading=lazy /><br /><sub><b>Andrew Morgan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=anoadragon453" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://rossviewef.org/"><img src="https://avatars.githubusercontent.com/u/35670796?v=4" width="100px;" loading=lazy /><br /><sub><b>Caleb King</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=EvasivePangolin" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/anoadragon453"><img src="https://avatars.githubusercontent.com/u/1342360?v=4" width="100px;" loading=lazy /><br /><sub><b>Andrew Morgan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=anoadragon453" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://rossviewef.org/"><img src="https://avatars.githubusercontent.com/u/35670796?v=4" width="100px;" loading=lazy /><br /><sub><b>Caleb King</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=EvasivePangolin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Eduardo06sp"><img src="https://avatars.githubusercontent.com/u/34868791?v=4" width="100px;" loading=lazy /><br /><sub><b>Eduardo</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Eduardo06sp" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NafeezJS"><img src="https://avatars.githubusercontent.com/u/17627305?v=4" width="100px;" loading=lazy /><br /><sub><b>NafeezJS</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NafeezJS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Sloofy"><img src="https://avatars.githubusercontent.com/u/18003771?v=4" width="100px;" loading=lazy /><br /><sub><b>Sloofy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Sloofy" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://sts10.github.io/"><img src="https://avatars.githubusercontent.com/u/4871664?v=4" width="100px;" loading=lazy /><br /><sub><b>Sam Schlinkert</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sts10" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/gaborluk"><img src="https://avatars.githubusercontent.com/u/6388299?v=4" width="100px;" loading=lazy /><br /><sub><b>Gabor Luk</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=gaborluk" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://sts10.github.io/"><img src="https://avatars.githubusercontent.com/u/4871664?v=4" width="100px;" loading=lazy /><br /><sub><b>Sam Schlinkert</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sts10" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/gaborluk"><img src="https://avatars.githubusercontent.com/u/6388299?v=4" width="100px;" loading=lazy /><br /><sub><b>Gabor Luk</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=gaborluk" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://deiaspie.github.io/"><img src="https://avatars.githubusercontent.com/u/93835541?v=4" width="100px;" loading=lazy /><br /><sub><b>DeiAsPie</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=DeiAsPie" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://davidetaviani.com/"><img src="https://avatars.githubusercontent.com/u/283733?v=4" width="100px;" loading=lazy /><br /><sub><b>Davide Taviani</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Heliosmaster" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/spanishharlem"><img src="https://avatars.githubusercontent.com/u/9704046?v=4" width="100px;" loading=lazy /><br /><sub><b>spanishharlem</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=spanishharlem" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gonzoknows.com/"><img src="https://avatars.githubusercontent.com/u/122128828?v=4" width="100px;" loading=lazy /><br /><sub><b>Jacob Gonzales</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jacobgonzales20" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://kaede.ch/"><img src="https://avatars.githubusercontent.com/u/74188936?v=4" width="100px;" loading=lazy /><br /><sub><b>Kaede</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kaedech" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gonzoknows.com/"><img src="https://avatars.githubusercontent.com/u/122128828?v=4" width="100px;" loading=lazy /><br /><sub><b>Jacob Gonzales</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jacobgonzales20" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://kaede.ch/"><img src="https://avatars.githubusercontent.com/u/74188936?v=4" width="100px;" loading=lazy /><br /><sub><b>Kaede</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kaedech" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/abbluiz"><img src="https://avatars.githubusercontent.com/u/19765082?v=4" width="100px;" loading=lazy /><br /><sub><b>LABB</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=abbluiz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Raviu8"><img src="https://avatars.githubusercontent.com/u/36168047?v=4" width="100px;" loading=lazy /><br /><sub><b>Raviu8</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Raviu8" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.peterdavehello.org/"><img src="https://avatars.githubusercontent.com/u/3691490?v=4" width="100px;" loading=lazy /><br /><sub><b>Peter Dave Hello</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=PeterDaveHello" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/RoseTheFlower"><img src="https://avatars.githubusercontent.com/u/4759227?v=4" width="100px;" loading=lazy /><br /><sub><b>Rose</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=RoseTheFlower" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://xie.oskarsh.ru/"><img src="https://avatars.githubusercontent.com/u/28492051?v=4" width="100px;" loading=lazy /><br /><sub><b>Oskar Sharipov</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=igoose1" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/RoseTheFlower"><img src="https://avatars.githubusercontent.com/u/4759227?v=4" width="100px;" loading=lazy /><br /><sub><b>Rose</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=RoseTheFlower" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://xie.oskarsh.ru/"><img src="https://avatars.githubusercontent.com/u/28492051?v=4" width="100px;" loading=lazy /><br /><sub><b>Oskar Sharipov</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=igoose1" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://samuellucas.com/"><img src="https://avatars.githubusercontent.com/u/63159663?v=4" width="100px;" loading=lazy /><br /><sub><b>Samuel Lucas</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=samuel-lucas6" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NylaTheWolf"><img src="https://avatars.githubusercontent.com/u/41797151?v=4" width="100px;" loading=lazy /><br /><sub><b>NylaTheWolf</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NylaTheWolf" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://matthewdavis.me/"><img src="https://avatars.githubusercontent.com/u/298426?v=4" width="100px;" loading=lazy /><br /><sub><b>Matthew Davis</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=matthewdavis" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://mpc.sh/"><img src="https://avatars.githubusercontent.com/u/2894019?v=4" width="100px;" loading=lazy /><br /><sub><b>Mark Cohen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mpcsh" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/madscientist16"><img src="https://avatars.githubusercontent.com/u/67949699?v=4" width="100px;" loading=lazy /><br /><sub><b>Mad Scientist</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=madscientist16" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://mpc.sh/"><img src="https://avatars.githubusercontent.com/u/2894019?v=4" width="100px;" loading=lazy /><br /><sub><b>Mark Cohen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mpcsh" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/madscientist16"><img src="https://avatars.githubusercontent.com/u/67949699?v=4" width="100px;" loading=lazy /><br /><sub><b>Mad Scientist</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=madscientist16" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mmvanheusden"><img src="https://avatars.githubusercontent.com/u/50550545?v=4" width="100px;" loading=lazy /><br /><sub><b>Maarten</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mmvanheusden" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://awesomesheep48.ca/"><img src="https://avatars.githubusercontent.com/u/58151048?v=4" width="100px;" loading=lazy /><br /><sub><b>William Davis</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=unbeatable-101" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/WayTooWill"><img src="https://avatars.githubusercontent.com/u/119883899?v=4" width="100px;" loading=lazy /><br /><sub><b>William Thomas Wilkins</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=WayTooWill" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/oXyiGYJ"><img src="https://avatars.githubusercontent.com/u/617189?v=4" width="100px;" loading=lazy /><br /><sub><b>wylel</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=oXyiGYJ" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://willbrowning.me/"><img src="https://avatars.githubusercontent.com/u/20662079?v=4" width="100px;" loading=lazy /><br /><sub><b>Will Browning</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=willbrowningme" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/oXyiGYJ"><img src="https://avatars.githubusercontent.com/u/617189?v=4" width="100px;" loading=lazy /><br /><sub><b>wylel</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=oXyiGYJ" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://willbrowning.me/"><img src="https://avatars.githubusercontent.com/u/20662079?v=4" width="100px;" loading=lazy /><br /><sub><b>Will Browning</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=willbrowningme" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://ycao.top/"><img src="https://avatars.githubusercontent.com/u/32544798?v=4" width="100px;" loading=lazy /><br /><sub><b>Yi Cao</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=xiaoyu2006" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/yusufdaglioglu"><img src="https://avatars.githubusercontent.com/u/90555550?v=4" width="100px;" loading=lazy /><br /><sub><b>Yusuf Daglioglu</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=yusufdaglioglu" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Zackaryia"><img src="https://avatars.githubusercontent.com/u/30780411?v=4" width="100px;" loading=lazy /><br /><sub><b>Zack</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Zackaryia" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://zhw.pages.dev/"><img src="https://avatars.githubusercontent.com/u/14029004?v=4" width="100px;" loading=lazy /><br /><sub><b>ZH王</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=wi24rd" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://cryptography.dog/"><img src="https://avatars.githubusercontent.com/u/1264398?v=4" width="100px;" loading=lazy /><br /><sub><b>ansuz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ansuz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://zhw.pages.dev/"><img src="https://avatars.githubusercontent.com/u/14029004?v=4" width="100px;" loading=lazy /><br /><sub><b>ZH王</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=wi24rd" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://cryptography.dog/"><img src="https://avatars.githubusercontent.com/u/1264398?v=4" width="100px;" loading=lazy /><br /><sub><b>ansuz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ansuz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://codeberg.org/archeite"><img src="https://avatars.githubusercontent.com/u/121004047?v=4" width="100px;" loading=lazy /><br /><sub><b>archeite</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=archeite" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/asdfghjz"><img src="https://avatars.githubusercontent.com/u/42332644?v=4" width="100px;" loading=lazy /><br /><sub><b>asdfghjz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=asdfghjz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ayaen"><img src="https://avatars.githubusercontent.com/u/96900168?v=4" width="100px;" loading=lazy /><br /><sub><b>ayaen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ayaen" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/b-harper"><img src="https://avatars.githubusercontent.com/u/3729684?v=4" width="100px;" loading=lazy /><br /><sub><b>b-harper</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=b-harper" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://verybadfrags.com/"><img src="https://avatars.githubusercontent.com/u/1664052?v=4" width="100px;" loading=lazy /><br /><sub><b>Loic Vourch</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=VeryBadFrags" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/b-harper"><img src="https://avatars.githubusercontent.com/u/3729684?v=4" width="100px;" loading=lazy /><br /><sub><b>b-harper</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=b-harper" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://verybadfrags.com/"><img src="https://avatars.githubusercontent.com/u/1664052?v=4" width="100px;" loading=lazy /><br /><sub><b>Loic Vourch</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=VeryBadFrags" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/crasm"><img src="https://avatars.githubusercontent.com/u/16730716?v=4" width="100px;" loading=lazy /><br /><sub><b>crasm</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=crasm" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/eagerto-learn"><img src="https://avatars.githubusercontent.com/u/51919789?v=4" width="100px;" loading=lazy /><br /><sub><b>eagerto-learn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=eagerto-learn" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/egecelikci"><img src="https://avatars.githubusercontent.com/u/30394812?v=4" width="100px;" loading=lazy /><br /><sub><b>egecelikci</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=egecelikci" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/elleybean"><img src="https://avatars.githubusercontent.com/u/37009392?v=4" width="100px;" loading=lazy /><br /><sub><b>elleybean</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=elleybean" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ferothefox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4" width="100px;" loading=lazy /><br /><sub><b>Evan Song</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ferothefox" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/elleybean"><img src="https://avatars.githubusercontent.com/u/37009392?v=4" width="100px;" loading=lazy /><br /><sub><b>elleybean</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=elleybean" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ferothefox"><img src="https://avatars.githubusercontent.com/u/52982404?v=4" width="100px;" loading=lazy /><br /><sub><b>Evan Song</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ferothefox" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/pynixis"><img src="https://avatars.githubusercontent.com/u/5612336?v=4" width="100px;" loading=lazy /><br /><sub><b>pynixis</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=pynixis" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://seirdy.one/"><img src="https://avatars.githubusercontent.com/u/44756978?v=4" width="100px;" loading=lazy /><br /><sub><b>Seirdy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Seirdy" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NPN"><img src="https://avatars.githubusercontent.com/u/1497826?v=4" width="100px;" loading=lazy /><br /><sub><b>Ryan Huang</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NPN" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/chickahoona"><img src="https://avatars.githubusercontent.com/u/8075146?v=4" width="100px;" loading=lazy /><br /><sub><b>Sascha P.</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=chickahoona" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Securified"><img src="https://avatars.githubusercontent.com/u/79296234?v=4" width="100px;" loading=lazy /><br /><sub><b>Securified</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Securified" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/chickahoona"><img src="https://avatars.githubusercontent.com/u/8075146?v=4" width="100px;" loading=lazy /><br /><sub><b>Sascha P.</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=chickahoona" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Securified"><img src="https://avatars.githubusercontent.com/u/79296234?v=4" width="100px;" loading=lazy /><br /><sub><b>Securified</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Securified" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://sy.mk/"><img src="https://avatars.githubusercontent.com/u/18217335?v=4" width="100px;" loading=lazy /><br /><sub><b>Sergey Musiyenko</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=musiyenko" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Spydar007"><img src="https://avatars.githubusercontent.com/u/7336943?v=4" width="100px;" loading=lazy /><br /><sub><b>Spydar007</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Spydar007" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/shbach"><img src="https://avatars.githubusercontent.com/u/5298745?v=4" width="100px;" loading=lazy /><br /><sub><b>Steven Bach</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=shbach" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sjlehn"><img src="https://avatars.githubusercontent.com/u/6686486?v=4" width="100px;" loading=lazy /><br /><sub><b>Steven Lehn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sjlehn" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://steven.vandegraaf.xyz/"><img src="https://avatars.githubusercontent.com/u/8904453?v=4" width="100px;" loading=lazy /><br /><sub><b>Steven van de Graaf</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sgraaf" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sjlehn"><img src="https://avatars.githubusercontent.com/u/6686486?v=4" width="100px;" loading=lazy /><br /><sub><b>Steven Lehn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sjlehn" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://steven.vandegraaf.xyz/"><img src="https://avatars.githubusercontent.com/u/8904453?v=4" width="100px;" loading=lazy /><br /><sub><b>Steven van de Graaf</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sgraaf" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://skortekaas.nl/"><img src="https://avatars.githubusercontent.com/u/6728108?v=4" width="100px;" loading=lazy /><br /><sub><b>Sven Kortekaas</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=SvenKortekaas" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://tejasgupta.com/"><img src="https://avatars.githubusercontent.com/u/18518375?v=4" width="100px;" loading=lazy /><br /><sub><b>Tejas Gupta</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TGNYC" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tebowy"><img src="https://avatars.githubusercontent.com/u/3144357?v=4" width="100px;" loading=lazy /><br /><sub><b>Tebowy Seba</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tebowy" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://tedgravlin.tech/"><img src="https://avatars.githubusercontent.com/u/123981212?v=4" width="100px;" loading=lazy /><br /><sub><b>Ted Gravlin</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tedgravlin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://thefrenchghosty.me/"><img src="https://avatars.githubusercontent.com/u/47571719?v=4" width="100px;" loading=lazy /><br /><sub><b>TheFrenchGhosty</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TheFrenchGhosty" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://tedgravlin.tech/"><img src="https://avatars.githubusercontent.com/u/123981212?v=4" width="100px;" loading=lazy /><br /><sub><b>Ted Gravlin</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tedgravlin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://thefrenchghosty.me/"><img src="https://avatars.githubusercontent.com/u/47571719?v=4" width="100px;" loading=lazy /><br /><sub><b>TheFrenchGhosty</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TheFrenchGhosty" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/TheNoobWar"><img src="https://avatars.githubusercontent.com/u/1857590?v=4" width="100px;" loading=lazy /><br /><sub><b>TheNoobWar</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TheNoobWar" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://git.synz.io/users/Synzvato/projects#most-recent-activity"><img src="https://avatars.githubusercontent.com/u/2366020?v=4" width="100px;" loading=lazy /><br /><sub><b>Thomas Rientjes</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Synzvato" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/vergenzt"><img src="https://avatars.githubusercontent.com/u/1725615?v=4" width="100px;" loading=lazy /><br /><sub><b>Tim Vergenz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=vergenzt" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tommyent"><img src="https://avatars.githubusercontent.com/u/509970?v=4" width="100px;" loading=lazy /><br /><sub><b>Tom Sullivan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tommyent" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tonyztan"><img src="https://avatars.githubusercontent.com/u/2025495?v=4" width="100px;" loading=lazy /><br /><sub><b>Tony Tan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tonyztan" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tommyent"><img src="https://avatars.githubusercontent.com/u/509970?v=4" width="100px;" loading=lazy /><br /><sub><b>Tom Sullivan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tommyent" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tonyztan"><img src="https://avatars.githubusercontent.com/u/2025495?v=4" width="100px;" loading=lazy /><br /><sub><b>Tony Tan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tonyztan" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/TroubleDog54"><img src="https://avatars.githubusercontent.com/u/115918107?v=4" width="100px;" loading=lazy /><br /><sub><b>TroubleDog54</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=TroubleDog54" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/User486375"><img src="https://avatars.githubusercontent.com/u/30012923?v=4" width="100px;" loading=lazy /><br /><sub><b>User486375</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=User486375" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/nchristensen"><img src="https://avatars.githubusercontent.com/u/11543181?v=4" width="100px;" loading=lazy /><br /><sub><b>Nicholas Christensen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=nchristensen" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/oppressor1761"><img src="https://avatars.githubusercontent.com/u/163018825?v=4" width="100px;" loading=lazy /><br /><sub><b>oppressor1761</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=oppressor1761" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/pbbob"><img src="https://avatars.githubusercontent.com/u/34972102?v=4" width="100px;" loading=lazy /><br /><sub><b>pbbob</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=pbbob" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/oppressor1761"><img src="https://avatars.githubusercontent.com/u/163018825?v=4" width="100px;" loading=lazy /><br /><sub><b>oppressor1761</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=oppressor1761" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/pbbob"><img src="https://avatars.githubusercontent.com/u/34972102?v=4" width="100px;" loading=lazy /><br /><sub><b>pbbob</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=pbbob" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/pdjpdjpdj"><img src="https://avatars.githubusercontent.com/u/47047080?v=4" width="100px;" loading=lazy /><br /><sub><b>pdjpdjpdj</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=pdjpdjpdj" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ph00lt0"><img src="https://avatars.githubusercontent.com/u/15004290?v=4" width="100px;" loading=lazy /><br /><sub><b>Stella Polaris</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ph00lt0" title="Documentation">📖</a> <a href="#research-ph00lt0" title="Research">🔬</a> <a href="#promotion-ph00lt0" title="Promotion">📣</a> <a href="#question-ph00lt0" title="Answering Questions">💬</a> <a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+reviewed-by%3Aph00lt0" title="Reviewed Pull Requests">👀</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/regaldude"><img src="https://avatars.githubusercontent.com/u/63294824?v=4" width="100px;" loading=lazy /><br /><sub><b>regaldude</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=regaldude" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/rusty-snake"><img src="https://avatars.githubusercontent.com/u/41237666?v=4" width="100px;" loading=lazy /><br /><sub><b>rusty-snake</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=rusty-snake" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sachk"><img src="https://avatars.githubusercontent.com/u/10218019?v=4" width="100px;" loading=lazy /><br /><sub><b>sacha</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sachk" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/rusty-snake"><img src="https://avatars.githubusercontent.com/u/41237666?v=4" width="100px;" loading=lazy /><br /><sub><b>rusty-snake</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=rusty-snake" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sachk"><img src="https://avatars.githubusercontent.com/u/10218019?v=4" width="100px;" loading=lazy /><br /><sub><b>sacha</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sachk" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/schwukas"><img src="https://avatars.githubusercontent.com/u/33559975?v=4" width="100px;" loading=lazy /><br /><sub><b>schwukas</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=schwukas" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sh-dv"><img src="https://avatars.githubusercontent.com/u/44544201?v=4" width="100px;" loading=lazy /><br /><sub><b>sh-dv</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sh-dv" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/szTheory"><img src="https://avatars.githubusercontent.com/u/28652?v=4" width="100px;" loading=lazy /><br /><sub><b>szTheory</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=szTheory" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tbds"><img src="https://avatars.githubusercontent.com/u/32208649?v=4" width="100px;" loading=lazy /><br /><sub><b>Thunderbolt Digital</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tbds" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/theRhinoLogician"><img src="https://avatars.githubusercontent.com/u/8325899?v=4" width="100px;" loading=lazy /><br /><sub><b>E. S. Leonesco</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=theRhinoLogician" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tbds"><img src="https://avatars.githubusercontent.com/u/32208649?v=4" width="100px;" loading=lazy /><br /><sub><b>Thunderbolt Digital</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tbds" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/theRhinoLogician"><img src="https://avatars.githubusercontent.com/u/8325899?v=4" width="100px;" loading=lazy /><br /><sub><b>E. S. Leonesco</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=theRhinoLogician" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/titanism"><img src="https://avatars.githubusercontent.com/u/101466223?v=4" width="100px;" loading=lazy /><br /><sub><b>titanism</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=titanism" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/tomac4t"><img src="https://avatars.githubusercontent.com/u/47532693?v=4" width="100px;" loading=lazy /><br /><sub><b>tomac4t</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tomac4t" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://virustotalop.github.io/"><img src="https://avatars.githubusercontent.com/u/11567285?v=4" width="100px;" loading=lazy /><br /><sub><b>virustotalop</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=virustotalop" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://unit2.ca/"><img src="https://avatars.githubusercontent.com/u/4949200?v=4" width="100px;" loading=lazy /><br /><sub><b>wintr</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=wintr-" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/xelarate86"><img src="https://avatars.githubusercontent.com/u/14865038?v=4" width="100px;" loading=lazy /><br /><sub><b>xelarate86</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=xelarate86" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://unit2.ca/"><img src="https://avatars.githubusercontent.com/u/4949200?v=4" width="100px;" loading=lazy /><br /><sub><b>wintr</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=wintr-" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/xelarate86"><img src="https://avatars.githubusercontent.com/u/14865038?v=4" width="100px;" loading=lazy /><br /><sub><b>xelarate86</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=xelarate86" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/yeoneer"><img src="https://avatars.githubusercontent.com/u/84702275?v=4" width="100px;" loading=lazy /><br /><sub><b>yeoneer</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=yeoneer" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://foxt.dev/"><img src="https://avatars.githubusercontent.com/u/12257112?v=4" width="100px;" loading=lazy /><br /><sub><b>foxt</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=foxt" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/fredster33"><img src="https://avatars.githubusercontent.com/u/64927044?v=4" width="100px;" loading=lazy /><br /><sub><b>Freddie</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=fredster33" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ghbjklhv"><img src="https://avatars.githubusercontent.com/u/50426427?v=4" width="100px;" loading=lazy /><br /><sub><b>ghbjklhv</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ghbjklhv" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/gorhill"><img src="https://avatars.githubusercontent.com/u/585534?v=4" width="100px;" loading=lazy /><br /><sub><b>Raymond Hill</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=gorhill" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ghbjklhv"><img src="https://avatars.githubusercontent.com/u/50426427?v=4" width="100px;" loading=lazy /><br /><sub><b>ghbjklhv</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ghbjklhv" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/gorhill"><img src="https://avatars.githubusercontent.com/u/585534?v=4" width="100px;" loading=lazy /><br /><sub><b>Raymond Hill</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=gorhill" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://groovecoder.com/"><img src="https://avatars.githubusercontent.com/u/71928?v=4" width="100px;" loading=lazy /><br /><sub><b>luke crouch</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=groovecoder" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/fd1f"><img src="https://avatars.githubusercontent.com/u/30058021?v=4" width="100px;" loading=lazy /><br /><sub><b>fd1f744993de14178e6c</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=fd1f" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/habitualname"><img src="https://avatars.githubusercontent.com/u/101975345?v=4" width="100px;" loading=lazy /><br /><sub><b>habitualname</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=habitualname" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/hook321"><img src="https://avatars.githubusercontent.com/u/7744057?v=4" width="100px;" loading=lazy /><br /><sub><b>hook</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=hook321" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://jfa.sh/"><img src="https://avatars.githubusercontent.com/u/6962524?v=4" width="100px;" loading=lazy /><br /><sub><b>nein</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jfabraxas" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/hook321"><img src="https://avatars.githubusercontent.com/u/7744057?v=4" width="100px;" loading=lazy /><br /><sub><b>hook</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=hook321" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://jfa.sh/"><img src="https://avatars.githubusercontent.com/u/6962524?v=4" width="100px;" loading=lazy /><br /><sub><b>nein</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jfabraxas" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jkhgvfgvsth"><img src="https://avatars.githubusercontent.com/u/52437244?v=4" width="100px;" loading=lazy /><br /><sub><b>jkhgvfgvsth</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jkhgvfgvsth" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/joaonsg"><img src="https://avatars.githubusercontent.com/u/8725806?v=4" width="100px;" loading=lazy /><br /><sub><b>joaonsg</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=joaonsg" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.ivpn.net/"><img src="https://avatars.githubusercontent.com/u/60918126?v=4" width="100px;" loading=lazy /><br /><sub><b>johnnyburnaway</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=johnnyburnaway" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jus9"><img src="https://avatars.githubusercontent.com/u/72120996?v=4" width="100px;" loading=lazy /><br /><sub><b>jus9</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jus9" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kc1212"><img src="https://avatars.githubusercontent.com/u/1093806?v=4" width="100px;" loading=lazy /><br /><sub><b>kc1212</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kc1212" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jus9"><img src="https://avatars.githubusercontent.com/u/72120996?v=4" width="100px;" loading=lazy /><br /><sub><b>jus9</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jus9" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kc1212"><img src="https://avatars.githubusercontent.com/u/1093806?v=4" width="100px;" loading=lazy /><br /><sub><b>kc1212</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kc1212" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kryptish"><img src="https://avatars.githubusercontent.com/u/39660724?v=4" width="100px;" loading=lazy /><br /><sub><b>kryptish</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kryptish" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/m3t/id"><img src="https://avatars.githubusercontent.com/u/12968867?v=4" width="100px;" loading=lazy /><br /><sub><b>m3t</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=m3t" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/macau23"><img src="https://avatars.githubusercontent.com/u/31501455?v=4" width="100px;" loading=lazy /><br /><sub><b>macau23</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=macau23" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mat1th"><img src="https://avatars.githubusercontent.com/u/6486389?v=4" width="100px;" loading=lazy /><br /><sub><b>mat1th</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mat1th" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mwmcode"><img src="https://avatars.githubusercontent.com/u/13101565?v=4" width="100px;" loading=lazy /><br /><sub><b>MWM</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mwmcode" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mat1th"><img src="https://avatars.githubusercontent.com/u/6486389?v=4" width="100px;" loading=lazy /><br /><sub><b>mat1th</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mat1th" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mwmcode"><img src="https://avatars.githubusercontent.com/u/13101565?v=4" width="100px;" loading=lazy /><br /><sub><b>MWM</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mwmcode" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/michaelplews"><img src="https://avatars.githubusercontent.com/u/14098929?v=4" width="100px;" loading=lazy /><br /><sub><b>Michael Plews</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=michaelplews" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/moritztk"><img src="https://avatars.githubusercontent.com/u/36471066?v=4" width="100px;" loading=lazy /><br /><sub><b>moritztk</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=moritztk" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://aaronhorler.com/"><img src="https://avatars.githubusercontent.com/u/13065365?v=4" width="100px;" loading=lazy /><br /><sub><b>Aaron Horler</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=aghorler" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Commenter25"><img src="https://avatars.githubusercontent.com/u/35016761?v=4" width="100px;" loading=lazy /><br /><sub><b>Commenter</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Commenter25" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://blog.laubacher.io/"><img src="https://avatars.githubusercontent.com/u/12443257?v=4" width="100px;" loading=lazy /><br /><sub><b>Cédric Laubacher</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Starbix" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gitlab.com/dpeukert"><img src="https://avatars.githubusercontent.com/u/3451904?v=4" width="100px;" loading=lazy /><br /><sub><b>Daniel Peukert</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=dpeukert" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/dabreese00"><img src="https://avatars.githubusercontent.com/u/5170955?v=4" width="100px;" loading=lazy /><br /><sub><b>David Breese</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=dabreese00" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://www.dimitrisapostolou.com/"><img src="https://avatars.githubusercontent.com/u/227442?v=4" width="100px;" loading=lazy /><br /><sub><b>Dimitris Apostolou</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=rex4539" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Dyrimon"><img src="https://avatars.githubusercontent.com/u/77260451?v=4" width="100px;" loading=lazy /><br /><sub><b>Dyrimon</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Dyrimon" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/IkelAtomig"><img src="https://avatars.githubusercontent.com/u/101938856?v=4" width="100px;" loading=lazy /><br /><sub><b>Ikel Atomig</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=IkelAtomig" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.eliasojala.me/contact/"><img src="https://avatars.githubusercontent.com/u/5832930?v=4" width="100px;" loading=lazy /><br /><sub><b>Elias Ojala</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=theel0ja" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/feni-brian"><img src="https://avatars.githubusercontent.com/u/56452538?v=4" width="100px;" loading=lazy /><br /><sub><b>Feni Brian</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=feni-brian" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.filips.si/"><img src="https://avatars.githubusercontent.com/u/16626308?v=4" width="100px;" loading=lazy /><br /><sub><b>Filip Š</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=filips123" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/FlxAlbroscheit"><img src="https://avatars.githubusercontent.com/u/2439195?v=4" width="100px;" loading=lazy /><br /><sub><b>Felix Albroscheit</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=FlxAlbroscheit" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/GReagle"><img src="https://avatars.githubusercontent.com/u/11979774?v=4" width="100px;" loading=lazy /><br /><sub><b>GReagle</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=GReagle" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/xPMo"><img src="https://avatars.githubusercontent.com/u/16061366?v=4" width="100px;" loading=lazy /><br /><sub><b>Gamma</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=xPMo" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/GetBoz"><img src="https://avatars.githubusercontent.com/u/8277114?v=4" width="100px;" loading=lazy /><br /><sub><b>GetBoz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=GetBoz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/GrimPixel"><img src="https://avatars.githubusercontent.com/u/39795763?v=4" width="100px;" loading=lazy /><br /><sub><b>GrimPixel</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=GrimPixel" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Alonely0"><img src="https://avatars.githubusercontent.com/u/59423215?v=4" width="100px;" loading=lazy /><br /><sub><b>Guillem L. Jara</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Alonely0" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/HxxxxxS"><img src="https://avatars.githubusercontent.com/u/4034517?v=4" width="100px;" loading=lazy /><br /><sub><b>HxxxxxS</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=HxxxxxS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/himanshuchandola-zz"><img src="https://avatars.githubusercontent.com/u/34373537?v=4" width="100px;" loading=lazy /><br /><sub><b>Himanshu Chandola</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=himanshuchandola-zz" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/concatime"><img src="https://avatars.githubusercontent.com/u/26262387?v=4" width="100px;" loading=lazy /><br /><sub><b>Issam Maghni</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=concatime" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/ItsDonny"><img src="https://avatars.githubusercontent.com/u/96709134?v=4" width="100px;" loading=lazy /><br /><sub><b>ItsDonny</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ItsDonny" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/thecodrr"><img src="https://avatars.githubusercontent.com/u/7473959?v=4" width="100px;" loading=lazy /><br /><sub><b>Abdullah Atta</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=thecodrr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/adam-sroka"><img src="https://avatars.githubusercontent.com/u/45038919?v=4" width="100px;" loading=lazy /><br /><sub><b>Adam Sroka</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=adam-sroka" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/criadoperez"><img src="https://avatars.githubusercontent.com/u/8580472?v=4" width="100px;" loading=lazy /><br /><sub><b>criadoperez</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=criadoperez" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://stingle.org/"><img src="https://avatars.githubusercontent.com/u/149764?v=4" width="100px;" loading=lazy /><br /><sub><b>Alex Amiryan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=alexamiryan" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/alexshoup"><img src="https://avatars.githubusercontent.com/u/24282323?v=4" width="100px;" loading=lazy /><br /><sub><b>Alex Shoup</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=alexshoup" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://alex.lol/"><img src="https://avatars.githubusercontent.com/u/1346090?v=4" width="100px;" loading=lazy /><br /><sub><b>Alex Thomassen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Decicus" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://secluded.site/"><img src="https://avatars.githubusercontent.com/u/29460675?v=4" width="100px;" loading=lazy /><br /><sub><b>Amolith</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Amolith" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://scarpino.dev/"><img src="https://avatars.githubusercontent.com/u/529436?v=4" width="100px;" loading=lazy /><br /><sub><b>Andrea Scarpino</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ilpianista" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://noplanman.ch/"><img src="https://avatars.githubusercontent.com/u/9423417?v=4" width="100px;" loading=lazy /><br /><sub><b>Armando Lüscher</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=noplanman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/AshTex"><img src="https://avatars.githubusercontent.com/u/11602677?v=4" width="100px;" loading=lazy /><br /><sub><b>Ash T</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=AshTex" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/4-FLOSS-Free-Libre-Open-Source-Software"><img src="https://avatars.githubusercontent.com/u/46166740?v=4" width="100px;" loading=lazy /><br /><sub><b>Bernd Eichelberger</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=4-FLOSS-Free-Libre-Open-Source-Software" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/BionicBison05"><img src="https://avatars.githubusercontent.com/u/93722725?v=4" width="100px;" loading=lazy /><br /><sub><b>BionicBison05</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=BionicBison05" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://brentgervais.com/"><img src="https://avatars.githubusercontent.com/u/7018928?v=4" width="100px;" loading=lazy /><br /><sub><b>Brent Gervais</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=gerbrent" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://brian-cooper.com/"><img src="https://avatars.githubusercontent.com/u/20056195?v=4" width="100px;" loading=lazy /><br /><sub><b>Brian Cooper</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=coopbri" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Caboose700"><img src="https://avatars.githubusercontent.com/u/10017396?v=4" width="100px;" loading=lazy /><br /><sub><b>Caboose700</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Caboose700" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.cadelwatson.com/"><img src="https://avatars.githubusercontent.com/u/1031518?v=4" width="100px;" loading=lazy /><br /><sub><b>Cadel Watson</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kdelwat" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/trosel"><img src="https://avatars.githubusercontent.com/u/1299322?v=4" width="100px;" loading=lazy /><br /><sub><b>trosel</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=trosel" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.bromite.org/"><img src="https://avatars.githubusercontent.com/u/32685696?v=4" width="100px;" loading=lazy /><br /><sub><b>Carl</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=csagan5" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Deimos"><img src="https://avatars.githubusercontent.com/u/9033?v=4" width="100px;" loading=lazy /><br /><sub><b>Chad Birch</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Deimos" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://barry.im/"><img src="https://avatars.githubusercontent.com/u/1405770?v=4" width="100px;" loading=lazy /><br /><sub><b>Chris Barry</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=chris-barry" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/claudiojulioferraz"><img src="https://avatars.githubusercontent.com/u/7096023?v=4" width="100px;" loading=lazy /><br /><sub><b>Júlio Ferraz</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=claudiojulioferraz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/JackH3103"><img src="https://avatars.githubusercontent.com/u/23507259?v=4" width="100px;" loading=lazy /><br /><sub><b>Jack Hill</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=JackH3103" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mathiazom"><img src="https://avatars.githubusercontent.com/u/24361490?v=4" width="100px;" loading=lazy /><br /><sub><b>Mathias Oterhals Myklebust</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mathiazom" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://www.mxe.no/"><img src="https://avatars.githubusercontent.com/u/10927304?v=4" width="100px;" loading=lazy /><br /><sub><b>Mats Estensen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=matsest" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://write.as/matt/"><img src="https://avatars.githubusercontent.com/u/1138779?v=4" width="100px;" loading=lazy /><br /><sub><b>Matt Baer</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=thebaer" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mehdichaouch"><img src="https://avatars.githubusercontent.com/u/861701?v=4" width="100px;" loading=lazy /><br /><sub><b>Mehdi Chaouch</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mehdichaouch" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mjperrone"><img src="https://avatars.githubusercontent.com/u/3848371?v=4" width="100px;" loading=lazy /><br /><sub><b>Mike Perrone</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mjperrone" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/MitchWilkins"><img src="https://avatars.githubusercontent.com/u/17414866?v=4" width="100px;" loading=lazy /><br /><sub><b>Mitch Wilkins</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=MitchWilkins" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/moughxyz"><img src="https://avatars.githubusercontent.com/u/3277844?v=4" width="100px;" loading=lazy /><br /><sub><b>Mo</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=moughxyz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://linderud.dev/"><img src="https://avatars.githubusercontent.com/u/1042946?v=4" width="100px;" loading=lazy /><br /><sub><b>Morten Linderud</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Foxboron" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/natzim"><img src="https://avatars.githubusercontent.com/u/103460227?v=4" width="100px;" loading=lazy /><br /><sub><b>natzim</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=natzim" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Nautman"><img src="https://avatars.githubusercontent.com/u/28629647?v=4" width="100px;" loading=lazy /><br /><sub><b>Douglas</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Nautman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://nearwood.dev/"><img src="https://avatars.githubusercontent.com/u/1929778?v=4" width="100px;" loading=lazy /><br /><sub><b>Nick</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=nearwood" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/NielDB"><img src="https://avatars.githubusercontent.com/u/25815880?v=4" width="100px;" loading=lazy /><br /><sub><b>NielDB</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=NielDB" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://nihal-raj.github.io/"><img src="https://avatars.githubusercontent.com/u/83210067?v=4" width="100px;" loading=lazy /><br /><sub><b>Nihal Raj</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Nihal-Raj" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://gitlab.com/NoahGray"><img src="https://avatars.githubusercontent.com/u/3739277?v=4" width="100px;" loading=lazy /><br /><sub><b>Noah</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=OKNoah" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/n0toose"><img src="https://avatars.githubusercontent.com/u/30193966?v=4" width="100px;" loading=lazy /><br /><sub><b>Panagiotis "Ivory" Vasilopoulos</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=n0toose" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://pacr.dev/"><img src="https://avatars.githubusercontent.com/u/32212089?v=4" width="100px;" loading=lazy /><br /><sub><b>Patrick R</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=xDazld" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://fart.attorney/"><img src="https://avatars.githubusercontent.com/u/12037849?v=4" width="100px;" loading=lazy /><br /><sub><b>Fart Attorney</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=fartattorney" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/pilou-"><img src="https://avatars.githubusercontent.com/u/1356830?v=4" width="100px;" loading=lazy /><br /><sub><b>Pilou</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=pilou-" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/PoorPocketsMcNewHold"><img src="https://avatars.githubusercontent.com/u/13170204?v=4" width="100px;" loading=lazy /><br /><sub><b>PoorPockets McNewHold</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=PoorPocketsMcNewHold" title="Documentation">📖</a> <a href="#translation-PoorPocketsMcNewHold" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/PrinceKael"><img src="https://avatars.githubusercontent.com/u/44752304?v=4" width="100px;" loading=lazy /><br /><sub><b>PrinceKael</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=PrinceKael" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://mail.protonmail.com/"><img src="https://avatars.githubusercontent.com/u/1345786?v=4" width="100px;" loading=lazy /><br /><sub><b>Richard</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=EpokK" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/walletdude"><img src="https://avatars.githubusercontent.com/u/19595856?v=4" width="100px;" loading=lazy /><br /><sub><b>Jaden Site</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=walletdude" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://www.jakezeal.com/"><img src="https://avatars.githubusercontent.com/u/13857938?v=4" width="100px;" loading=lazy /><br /><sub><b>Jake Zeal</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jakezeal" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/thatrobotdev"><img src="https://avatars.githubusercontent.com/u/18013689?v=4" width="100px;" loading=lazy /><br /><sub><b>James Kerrane</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=thatrobotdev" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sell"><img src="https://avatars.githubusercontent.com/u/34258275?v=4" width="100px;" loading=lazy /><br /><sub><b>Sell</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sell" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://fmbase.tw/blog/"><img src="https://avatars.githubusercontent.com/u/2720857?v=4" width="100px;" loading=lazy /><br /><sub><b>YMHuang</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ymhuang0808" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jonathanvansina"><img src="https://avatars.githubusercontent.com/u/25825247?v=4" width="100px;" loading=lazy /><br /><sub><b>Jonathan Vansina</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jonathanvansina" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jorgeluiscarrillo"><img src="https://avatars.githubusercontent.com/u/33134232?v=4" width="100px;" loading=lazy /><br /><sub><b>jorgeluiscarrillo</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jorgeluiscarrillo" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://julianfairfax.gitlab.io/"><img src="https://avatars.githubusercontent.com/u/43753131?v=4" width="100px;" loading=lazy /><br /><sub><b>Julian</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=julianfairfax" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Kefaku"><img src="https://avatars.githubusercontent.com/u/114934849?v=4" width="100px;" loading=lazy /><br /><sub><b>Kefaku</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Kefaku" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/kmgb"><img src="https://avatars.githubusercontent.com/u/25809479?v=4" width="100px;" loading=lazy /><br /><sub><b>Kevin Brennan</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kmgb" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="http://www.kylespearrin.com/"><img src="https://avatars.githubusercontent.com/u/1190944?v=4" width="100px;" loading=lazy /><br /><sub><b>Kyle Spearrin</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=kspearrin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://leonallen22.github.io/"><img src="https://avatars.githubusercontent.com/u/5651701?v=4" width="100px;" loading=lazy /><br /><sub><b>Leon Allen</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=leonallen22" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/LisaWilbourn"><img src="https://avatars.githubusercontent.com/u/67932294?v=4" width="100px;" loading=lazy /><br /><sub><b>LisaWilbourn</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=LisaWilbourn" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/LordShedy"><img src="https://avatars.githubusercontent.com/u/1622827?v=4" width="100px;" loading=lazy /><br /><sub><b>Lord Shedy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=LordShedy" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/louiswolfers"><img src="https://avatars.githubusercontent.com/u/7440721?v=4" width="100px;" loading=lazy /><br /><sub><b>Louis Wolfers</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=louiswolfers" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/lunush"><img src="https://avatars.githubusercontent.com/u/76045303?v=4" width="100px;" loading=lazy /><br /><sub><b>Lunush</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=lunush" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mmrabbani"><img src="https://avatars.githubusercontent.com/u/56675802?v=4" width="100px;" loading=lazy /><br /><sub><b>MMR</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mmrabbani" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/StoppingBuck"><img src="https://avatars.githubusercontent.com/u/8426548?v=4" width="100px;" loading=lazy /><br /><sub><b>Mads Peter Rommedahl</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=StoppingBuck" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/mq1"><img src="https://avatars.githubusercontent.com/u/29694921?v=4" width="100px;" loading=lazy /><br /><sub><b>Manuel Quarneti</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=mq1" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://twitter.com/ocramleznem"><img src="https://avatars.githubusercontent.com/u/1401770?v=4" width="100px;" loading=lazy /><br /><sub><b>Marco Menzel</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=ocramleznem" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/FishCoding"><img src="https://avatars.githubusercontent.com/u/16527725?v=4" width="100px;" loading=lazy /><br /><sub><b>Mario</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=FishCoding" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://skye.sh/"><img src="https://avatars.githubusercontent.com/u/48442092?v=4" width="100px;" loading=lazy /><br /><sub><b>skye</b></sub></a><br /><a href="#question-dioxias" title="Answering Questions">💬</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/r2fo"><img src="https://avatars.githubusercontent.com/u/50496756?v=4" width="100px;" loading=lazy /><br /><sub><b>r2fo</b></sub></a><br /><a href="#translation-r2fo" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://lamtrinh.dev/"><img src="https://avatars.githubusercontent.com/u/49742151?v=4" width="100px;" loading=lazy /><br /><sub><b>LamTrinh.Dev</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=lamtrinhdev" title="Documentation">📖</a> <a href="https://github.com/privacyguides/privacyguides.org/issues?q=author%3Alamtrinhdev" title="Bug reports">🐛</a> <a href="#question-lamtrinhdev" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://discuss.privacyguides.net/u/frostlike"><img src="https://forum-cdn.privacyguides.net/user_avatar/discuss.privacyguides.net/frostlike/288/3600_2.png" width="100px;" loading=lazy /><br /><sub><b>frostlike</b></sub></a><br /><a href="#question" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://scholz.ruhr/"><img src="https://avatars.githubusercontent.com/u/21988035?v=4" width="100px;" loading=lazy /><br /><sub><b>Merlin Scholz</b></sub></a><br /><a href="#translation-merlinscholz" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://jordanwarne.net/"><img src="https://avatars.githubusercontent.com/u/154663344?v=4" width="100px;" loading=lazy /><br /><sub><b>jordan warne</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jordan-warne" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://scholz.ruhr/"><img src="https://avatars.githubusercontent.com/u/21988035?v=4" width="100px;" loading=lazy /><br /><sub><b>Merlin Scholz</b></sub></a><br /><a href="#translation-merlinscholz" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Dzenan"><img src="https://avatars.githubusercontent.com/u/69632324?v=4" width="100px;" loading=lazy /><br /><sub><b>Dženan</b></sub></a><br /><a href="#translation-dzenan" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://jxtsai.info"><img src="https://avatars.githubusercontent.com/u/8361268?v=4" width="100px;" loading=lazy /><br /><sub><b>jx tsai</b></sub></a><br /><a href="#translation-jxtsai" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/backstab5983"><img src="https://avatars.githubusercontent.com/u/21013752?v=4" width="100px;" loading=lazy /><br /><sub><b>backstab5983</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=backstab5983" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/antgig"><img src="https://avatars.githubusercontent.com/u/144840521?v=4" width="100px;" loading=lazy /><br /><sub><b>antgig</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=antgig" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://yzahk.in/"><img src="https://avatars.githubusercontent.com/u/604311?v=4" width="100px;" loading=lazy /><br /><sub><b>Ákos Nikházy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=akosnikhazy" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://yzahk.in/"><img src="https://avatars.githubusercontent.com/u/604311?v=4" width="100px;" loading=lazy /><br /><sub><b>Ákos Nikházy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=akosnikhazy" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://fmarier.org/"><img src="https://avatars.githubusercontent.com/u/167821?v=4" width="100px;" loading=lazy /><br /><sub><b>Francois Marier</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=fmarier" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://filmsbytom.com/"><img src="https://avatars.githubusercontent.com/u/132141431?v=4" width="100px;" loading=lazy /><br /><sub><b>5-tom</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=5-tom" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Ralphie0511"><img src="https://avatars.githubusercontent.com/u/99518791?v=4" width="100px;" loading=lazy /><br /><sub><b>Ralphie0511</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=Ralphie0511" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://kovalovs.lv/"><img src="https://avatars.githubusercontent.com/u/5563309?v=4" width="100px;" loading=lazy /><br /><sub><b>aleksejs1</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=aleksejs1" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/snwfdhmp"><img src="https://avatars.githubusercontent.com/u/23099246?v=4" width="100px;" loading=lazy /><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=snwfdhmp" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/snwfdhmp"><img src="https://avatars.githubusercontent.com/u/23099246?v=4" width="100px;" loading=lazy /><br /><sub><b>Martin</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=snwfdhmp" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/overwatcheddude"><img src="https://avatars.githubusercontent.com/u/37483931?v=4" width="100px;" loading=lazy /><br /><sub><b>Overwatch</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=overwatcheddude" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/m00t316"><img src="https://avatars.githubusercontent.com/u/54213179?v=4" width="100px;" loading=lazy /><br /><sub><b>Kieran Colfer</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=m00t316" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/I-I-IT"><img src="https://avatars.githubusercontent.com/u/78900789?v=4" width="100px;" loading=lazy /><br /><sub><b>Triple T</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=I-I-IT" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/IDON-TEXIST"><img src="https://avatars.githubusercontent.com/u/73442356?v=4" width="100px;" loading=lazy /><br /><sub><b>IDON-TEXIST</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=IDON-TEXIST" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/yusuf-daglioglu"><img src="https://avatars.githubusercontent.com/u/90555550?v=4" width="100px;" loading=lazy /><br /><sub><b>Yusuf Daglioglu</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=yusuf-daglioglu" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/yusuf-daglioglu"><img src="https://avatars.githubusercontent.com/u/90555550?v=4" width="100px;" loading=lazy /><br /><sub><b>Yusuf Daglioglu</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=yusuf-daglioglu" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://ycao.net/"><img src="https://avatars.githubusercontent.com/u/32544798?v=4" width="100px;" loading=lazy /><br /><sub><b>Yi Cao</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=yikerman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sdhlfqr"><img src="https://avatars.githubusercontent.com/u/155405590?v=4" width="100px;" loading=lazy /><br /><sub><b>Sayf Dhū al-Faqār</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sdhlfqr" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/eylenburg"><img src="https://avatars.githubusercontent.com/u/84839316?v=4" width="100px;" loading=lazy /><br /><sub><b>eylenburg</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=eylenburg" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/PASSK3YS"><img src="https://avatars.githubusercontent.com/u/54213179?v=4" width="100px;" loading=lazy /><br /><sub><b>Kieran Colfer</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=PASSK3YS" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/SamsungGalaxyPlayer"><img src="https://avatars.githubusercontent.com/u/12520755?v=4" width="100px;" loading=lazy /><br /><sub><b>Justin Ehrenhofer</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=SamsungGalaxyPlayer" title="Documentation">📖</a> <a href="#business-SamsungGalaxyPlayer" title="Business development">💼</a> <a href="#fundingFinding-SamsungGalaxyPlayer" title="Funding Finding">🔍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/SamsungGalaxyPlayer"><img src="https://avatars.githubusercontent.com/u/12520755?v=4" width="100px;" loading=lazy /><br /><sub><b>Justin Ehrenhofer</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=SamsungGalaxyPlayer" title="Documentation">📖</a> <a href="#business-SamsungGalaxyPlayer" title="Business development">💼</a> <a href="#fundingFinding-SamsungGalaxyPlayer" title="Funding Finding">🔍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/bruch-alex"><img src="https://avatars.githubusercontent.com/u/173354246?v=4" width="100px;" loading=lazy /><br /><sub><b>Alex Bruch</b></sub></a><br /><a href="#translation-bruch-alex" title="Translation">🌍</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/qiyongzheng"><img src="https://avatars.githubusercontent.com/u/153378707?v=4" width="100px;" loading=lazy /><br /><sub><b>qiyongzheng</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=qiyongzheng" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/hashcatHitman"><img src="https://avatars.githubusercontent.com/u/155700084?v=4" width="100px;" loading=lazy /><br /><sub><b>Sam K</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=hashcatHitman" title="Documentation">📖</a> <a href="#promotion-hashcatHitman" title="Promotion">📣</a> <a href="#question-hashcatHitman" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/Spirizer"><img src="https://avatars.githubusercontent.com/u/51120100?v=4" width="100px;" loading=lazy /><br /><sub><b>Spirizer</b></sub></a><br /><a href="#translation-Spirizer" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/jordbm"><img src="https://avatars.githubusercontent.com/u/160433264?v=4" width="100px;" loading=lazy /><br /><sub><b>jordbm</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=jordbm" title="Documentation">📖</a> <a href="#maintenance-jordbm" title="Maintenance">🚧</a> <a href="#security-jordbm" title="Security">🛡️</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://austinhuang.me/"><img src="https://avatars.githubusercontent.com/u/16656689?v=4" width="100px;" loading=lazy /><br /><sub><b>Austin Huang</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=austinhuang0131" title="Documentation">📖</a> <a href="#question-austinhuang0131" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/WardPearce"><img src="https://avatars.githubusercontent.com/u/27844174?v=4" width="100px;" loading=lazy /><br /><sub><b>Ward</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=WardPearce" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/oilmaint"><img src="https://avatars.githubusercontent.com/u/79659024?v=4" width="100px;" loading=lazy /><br /><sub><b>oilmaint</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=oilmaint" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/headdirt"><img src="https://avatars.githubusercontent.com/u/37009392?v=4" width="100px;" loading=lazy /><br /><sub><b>headdirt</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=headdirt" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/qmcree"><img src="https://avatars.githubusercontent.com/u/7796024?v=4" width="100px;" loading=lazy /><br /><sub><b>Quentin McRee</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=qmcree" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/sv3nnie"><img src="https://avatars.githubusercontent.com/u/67653224?v=4" width="100px;" loading=lazy /><br /><sub><b>Sven</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=sv3nnie" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://git.sr.ht/~tomhonour/"><img src="https://avatars.githubusercontent.com/u/132141431?v=4" width="100px;" loading=lazy /><br /><sub><b>Tom Honour</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=tomhonour" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://brog.io/"><img src="https://avatars.githubusercontent.com/u/141176104?v=4" width="100px;" loading=lazy /><br /><sub><b>Brogio</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=brog-io" title="Documentation">📖</a></td>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://nathany.com/"><img src="https://avatars.githubusercontent.com/u/4566?v=4" width="100px;" loading=lazy /><br /><sub><b>Nathan Youngman</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=nathany" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="20%"><a rel="nofollow noopener noreferrer" href="https://github.com/blanchardjeremy"><img src="https://avatars.githubusercontent.com/u/32290?v=4" width="100px;" loading=lazy /><br /><sub><b>Jeremy</b></sub></a><br /><a href="https://github.com/privacyguides/privacyguides.org/commits?author=blanchardjeremy" title="Documentation">📖</a></td>
</tr>
</tbody>
<tfoot>
@@ -612,22 +631,22 @@ Privacy Guides wouldn't be possible without these wonderful people ([emoji key](
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of **any** kind welcome, including contributions to Privacy Guides outside this repo, and contributions that aren't content related (like sharing ideas for Privacy Guides, promoting the project, answering questions on the forum, etc.).
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of **any** kind welcome, including contributions to Privacy Guides outside of this repo, and contributions that aren't content related (like sharing ideas for Privacy Guides, promoting the project, answering questions on the forum, etc.).
CLI to generate this table:
```bash
all-contributors-cli generate
npx --package all-contributors-cli -- npx all-contributors generate
```
CLI to add a contributor:
```bash
all-contributors-cli add <username> <contribution>
npx --package all-contributors-cli -- npx all-contributors add <username> <contribution>
```
See [this table](https://allcontributors.org/docs/en/emoji-key) for valid contribution reasons, comma-separated. Do **not** use the `content` code for contributors to the website, use `doc` instead (this way it will automatically link to their commits). Example:
See [this table](https://allcontributors.org/docs/en/emoji-key) for valid contribution reasons, comma-separated. Do **not** use the `content` code for contributors to the website, use `docs` instead (this way it will automatically link to their commits). Example:
```bash
all-contributors-cli add jonaharagon doc,research,question
npx --package all-contributors-cli -- npx all-contributors add jonaharagon docs,research,question
```

View File

@@ -1,8 +1,4 @@
authors:
aprilfools:
name: Anita Key
description: Government Liaison
avatar: https://github.com/privacyguides.png
contributors:
type: Organization
name: Privacy Guides
@@ -40,13 +36,6 @@ authors:
name: fria
description: Team Member
avatar: https://github.com/friadev.png
jordan:
name: Jordan Warne
description: Video Producer
avatar: https://forum-cdn.privacyguides.net/user_avatar/discuss.privacyguides.net/jordan/288/7793_2.png
mastodon:
username: jw
instance: social.lol
jonah:
name: Jonah Aragon
description: Project Director
@@ -56,13 +45,6 @@ authors:
instance: neat.computer
twitter: jonaharagon
bluesky: jonaharagon.com
justin:
name: Justin Ehrenhofer
description: Guest Contributor
avatar: https://github.com/SamsungGalaxyPlayer.png
mastodon:
username: sgp
instance: neat.computer
kaitebay:
name: Kai Tebay
description: Former Team Member

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

View File

@@ -1,40 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="201px" height="301px" viewBox="-0.5 -0.5 201 301" content="&lt;mxfile&gt;&lt;diagram id=&quot;7obOEI9IPgsgN9EZozkg&quot; name=&quot;Page-1&quot;&gt;3ZZNb6MwEEB/Te6YrzjHlED3UmmlHPZsYABrDUbGKWR//ZpgCizOtkipKjWHCL/xgP08Gtg5Qdk9C1IXLzwFtrOttNs5p51te9Ze/ffgOoCD4w0gFzQdEJrAmf4BDS1NLzSFZjFRcs4krZcw4VUFiVwwIgRvl9MyzpZPrUkOK3BOCFvTXzSVxUCxZ038B9C8GJ+MLB0pyThZg6YgKW9nyAl3TiA4l8NV2QXAenejlyEvuhN9W5iASn4kwR4SXgm76L0F9s+jIi+kohk0Ui9TXse9Ny0tGanU6CmjjAWccXGLOKkHOHUVb6Tgv2EWwXbs+H4f0cnRMvPkhfjUZ66Xr3f0CkJCN0N6O8/AS5DiqqaM0VGtri1XD9vpoOzxOIrZITkjJLo48rdbT/7UhVZo1umudB6bRi2d8qrZYBLFBIFtMmlZfniM+gxeyRnPbr/7htHTEYW20bC91fA/ghFeG0a+wTB6hOH9yvDKa1tQCeeaJP24VQ1IbbuQpbrjCalL0tRDT8hoB6mhjAngLDHJ9xMMcWaU6G6ViN6tUteg0H2AQfxNDPpfZvDwTQyirytCb/3eYYSWG3pkhhNIjIpi7LnqVXy3F0Y4CIPgc3oh+mAv9B/g0L/n0DrTvCLyImCLzwx8s890f4it//mMQv+TfBoq8lE61XD6zLrFZt+qTvgX&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 0 23 L 0 0 L 200 0 L 200 23" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 23 L 0 300 L 200 300 L 200 23" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 0 23 L 200 23" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/>
<g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px">
<text x="99.5" y="16">
C2PA Manifest
</text>
</g>
<path d="M 20 203 L 20 180 L 180 180 L 180 203" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 20 203 L 20 280 L 180 280 L 180 203" fill="#1ba1e2" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 20 203 L 180 203" fill="none" stroke="#006eaf" stroke-miterlimit="10" pointer-events="all"/>
<g fill="#ffffff" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px">
<text x="99.5" y="196">
Assertions
</text>
</g>
<rect x="30" y="220" width="40" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/>
<rect x="80" y="220" width="40" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/>
<rect x="130" y="220" width="40" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/>
<path d="M 20 133 L 20 110 L 180 110 L 180 133" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 20 133 L 20 170 L 180 170 L 180 133" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 20 133 L 180 133" fill="none" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/>
<g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px">
<text x="99.5" y="126">
Claim
</text>
</g>
<path d="M 20 63 L 20 40 L 180 40 L 180 63" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 20 63 L 20 100 L 180 100 L 180 63" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 20 63 L 180 63" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/>
<g fill="#000000" font-family="Helvetica" font-weight="bold" text-anchor="middle" font-size="12px">
<text x="99.5" y="56">
Claim Signature
</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Some files were not shown because too many files have changed in this diff Show More