diff --git a/.github/workflows/build-publish.yml b/.github/workflows/build-publish.yml
index ff12bc2..de4332b 100644
--- a/.github/workflows/build-publish.yml
+++ b/.github/workflows/build-publish.yml
@@ -29,17 +29,20 @@ jobs:
sudo apt update
sudo apt install inkscape
- - name: Setup PDM
- uses: pdm-project/setup-pdm@v2
-
- name: checkout repo
uses: actions/checkout@v3
- - name: Install Dependencies
- run: pdm install
+ - name: Setup nim
+ uses: jiro4989/setup-nim-action@v1
+ with:
+ nim-version: '1.6.12' # default is 'stable'
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Get Deps
+ run: nimble install --depsOnly -y
- name: Build Logo's
- run: pdm run make all
+ run: make all
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v1.0.3
diff --git a/.gitignore b/.gitignore
index 89cc51b..a9a1504 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,173 +1,13 @@
-# Created by https://www.toptal.com/developers/gitignore/api/python
-# Edit at https://www.toptal.com/developers/gitignore?templates=python
-### Python ###
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-share/python-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.nox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-*.py,cover
-.hypothesis/
-.pytest_cache/
-cover/
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-db.sqlite3-journal
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-.pybuilder/
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# IPython
-profile_default/
-ipython_config.py
-
-# pyenv
-# For a library or package, you might want to ignore these files since the code is
-# intended to run in multiple environments; otherwise, check them in:
-# .python-version
-
-# pipenv
-# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
-# However, in case of collaboration, if having platform-specific dependencies or dependencies
-# having no cross-platform support, pipenv may install dependencies that don't work, or not
-# install all needed dependencies.
-#Pipfile.lock
-
-# poetry
-# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
-# This is especially recommended for binary packages to ensure reproducibility, and is more
-# commonly ignored for libraries.
-# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
-#poetry.lock
-
-# pdm
-# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
-#pdm.lock
-# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
-# in version control.
-# https://pdm.fming.dev/#use-with-ide
-.pdm.toml
-
-# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
-__pypackages__/
-
-# Celery stuff
-celerybeat-schedule
-celerybeat.pid
-
-# SageMath parsed files
-*.sage.py
-
-# Environments
-.env
-.venv
-env/
-venv/
-ENV/
-env.bak/
-venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
-.dmypy.json
-dmypy.json
-
-# Pyre type checker
-.pyre/
-
-# pytype static type analyzer
-.pytype/
-
-# Cython debug symbols
-cython_debug/
-
-# PyCharm
-# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
-# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
-# and can be added to the global gitignore or merged into this file. For a more nuclear
-# option (not recommended) you can uncomment the following to ignore the entire idea folder.
-#.idea/
-
-# End of https://www.toptal.com/developers/gitignore/api/python
**/*.svg
!assets/logo.svg
**/*.png
docs/*
!docs/index.html
+!docs/ascii-variants/
+!docs/ascii-variants/**
+!docs/ascii
+
.task.mk
+bin/
diff --git a/Makefile b/Makefile
index 61d44cd..f534d80 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,3 @@
-SRC := $(shell find logo/ -type f)
-CONDA := source $$(conda info --base)/etc/profile.d/conda.sh; conda activate;
-SVGS := $(shell find -type f -wholename "./docs/*.svg")
-PNGS := $(patsubst ./docs/svg/%.svg,./docs/png/%.png, $(SVGS))
-REV := $(shell date +'%Y.%m.%d-' )$(shell git describe --always --dirty | sed s'/dirty/dev/')
-
.PHONY: all
all:
@@ -15,7 +9,14 @@ all:
@$(MAKE) docs/png/index.html
@$(MAKE) pngs
-pngs: $(PNGS) ## generate all of the logo pngs
+svgs: ## generate all svgs
+ nimble run
+
+pngs: ## generate all of the logo pngs
+ nimble pngs
+
+ascii: ## generate all ascii variants
+ ./scripts/ascii.nims
docs/png/index.html: docs/index.html
@cat docs/index.html |\
@@ -24,27 +25,6 @@ docs/png/index.html: docs/index.html
sed s'/My Logos/My Logos but PNG/g' \
> docs/png/index.html
-docs/png/%.png: docs/svg/%.svg
- @inkscape --export-filename=$@ $<
-
-svgs: $(SRC) ## generate all of the logo svgs
- ./scripts/generate-all.py $(REV)
-
-lint: ## apply isort/black/flake8
- @isort logo
- @black logo
- @flake8 logo
-
-bootstrap: pdm-env ## bootstrap the conda environment
-
-conda-env:
- $(CONDA) CONDA_ALWAYS_YES="true" mamba create -p ./env python --force
-
-pdm-env: conda-env
- $(CONDA) conda activate ./env; \
- pip install pdm; \
- pdm install
-
clean: ## remove old files
rm -f *.svg *.png
rm -f docs/*.svg
diff --git a/README.md b/README.md
index ef176f5..359ed14 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
Logo
-
\ No newline at end of file
+
diff --git a/assets/logo.svg b/assets/logo.svg
index dde24b4..e8de7f6 100644
--- a/assets/logo.svg
+++ b/assets/logo.svg
@@ -1,2 +1,52 @@
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config.nims b/config.nims
new file mode 100644
index 0000000..2c3e374
--- /dev/null
+++ b/config.nims
@@ -0,0 +1,2 @@
+--mm:orc
+--threads:on
diff --git a/docs/ascii b/docs/ascii
new file mode 100644
index 0000000..8d81cf0
--- /dev/null
+++ b/docs/ascii
@@ -0,0 +1,30 @@
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;5;5;10m [0m[38;2;16;16;22m [0m[38;2;28;27;35m.[0m[38;2;39;38;47m.[0m[38;2;48;46;56m.[0m[38;2;56;53;65m:[0m[38;2;61;58;70m:[0m[38;2;65;61;73m:[0m[38;2;66;63;75m:[0m[38;2;68;65;77m:[0m[38;2;68;65;77m:[0m[38;2;66;63;75m:[0m[38;2;65;61;73m:[0m[38;2;62;58;70m:[0m[38;2;56;53;65m:[0m[38;2;48;46;56m.[0m[38;2;39;37;47m.[0m[38;2;29;28;35m.[0m[38;2;16;16;22m [0m[38;2;5;5;10m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;1;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;2m [0m[38;2;13;13;19m [0m[38;2;34;32;40m.[0m[38;2;52;50;60m:[0m[38;2;65;61;74m:[0m[38;2;71;67;79m:[0m[38;2;69;65;77m:[0m[38;2;65;61;74m:[0m[38;2;59;57;70m:[0m[38;2;54;52;66m:[0m[38;2;50;48;62m.[0m[38;2;46;45;59m.[0m[38;2;44;42;57m.[0m[38;2;42;41;56m.[0m[38;2;41;40;55m.[0m[38;2;41;40;55m.[0m[38;2;42;41;56m.[0m[38;2;44;42;57m.[0m[38;2;46;45;59m.[0m[38;2;50;48;62m.[0m[38;2;54;52;66m:[0m[38;2;59;57;70m:[0m[38;2;65;61;74m:[0m[38;2;69;65;77m:[0m[38;2;71;67;79m:[0m[38;2;65;62;73m:[0m[38;2;52;50;60m:[0m[38;2;34;32;40m.[0m[38;2;13;13;19m [0m[38;2;0;0;2m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;4m [0m[38;2;21;21;28m [0m[38;2;51;48;58m.[0m[38;2;72;68;80m:[0m[38;2;73;69;81m:[0m[38;2;65;62;75m:[0m[38;2;54;51;65m:[0m[38;2;42;41;56m.[0m[38;2;33;32;48m.[0m[38;2;26;26;43m.[0m[38;2;24;24;41m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;24;25;41m.[0m[38;2;26;26;43m.[0m[38;2;29;29;45m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;29;45m.[0m[38;2;26;26;43m.[0m[38;2;25;25;41m.[0m[38;2;23;24;40m.[0m[38;2;23;24;40m.[0m[38;2;24;24;41m.[0m[38;2;26;26;43m.[0m[38;2;33;32;48m.[0m[38;2;42;41;56m.[0m[38;2;54;51;65m:[0m[38;2;65;62;75m:[0m[38;2;73;69;81m:[0m[38;2;72;68;80m:[0m[38;2;51;48;59m:[0m[38;2;21;21;29m [0m[38;2;0;0;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;15m [0m[38;2;44;42;53m.[0m[38;2;75;71;83m:[0m[38;2;75;71;83m:[0m[38;2;61;58;71m:[0m[38;2;42;40;55m.[0m[38;2;27;28;44m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;26;26;43m.[0m[38;2;29;29;45m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;34;33;49m.[0m[38;2;34;34;49m.[0m[38;2;29;29;45m.[0m[38;2;22;23;40m [0m[38;2;18;19;36m [0m[38;2;16;17;34m [0m[38;2;15;17;34m [0m[38;2;15;17;34m [0m[38;2;16;17;34m [0m[38;2;18;19;36m [0m[38;2;22;23;40m [0m[38;2;29;29;45m.[0m[38;2;34;34;49m.[0m[38;2;34;33;49m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;29;29;45m.[0m[38;2;26;26;43m.[0m[38;2;23;24;40m.[0m[38;2;23;23;40m [0m[38;2;27;27;44m.[0m[38;2;42;40;55m.[0m[38;2;61;58;71m:[0m[38;2;75;71;83m:[0m[38;2;75;71;82m:[0m[38;2;44;42;52m.[0m[38;2;8;8;15m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;16m [0m[38;2;53;51;62m:[0m[38;2;81;76;87m-[0m[38;2;71;67;79m:[0m[38;2;44;43;57m.[0m[38;2;25;25;42m.[0m[38;2;22;23;39m [0m[38;2;26;26;43m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;16;17;34m [0m[38;2;16;17;35m [0m[38;2;38;37;52m.[0m[38;2;65;62;75m:[0m[38;2;88;82;93m-[0m[38;2;102;95;104m-[0m[38;2;109;101;110m=[0m[38;2;109;101;110m=[0m[38;2;102;95;104m-[0m[38;2;88;83;93m-[0m[38;2;65;62;75m:[0m[38;2;38;37;52m.[0m[38;2;16;17;35m [0m[38;2;16;17;34m [0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;26;26;43m.[0m[38;2;22;23;39m [0m[38;2;25;25;42m.[0m[38;2;44;43;57m.[0m[38;2;71;67;79m:[0m[38;2;81;76;87m-[0m[38;2;53;51;62m:[0m[38;2;8;8;16m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;7m [0m[38;2;42;41;53m.[0m[38;2;85;80;91m-[0m[38;2;72;68;80m:[0m[38;2;35;34;50m.[0m[38;2;21;22;39m [0m[38;2;26;27;43m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;16;17;35m [0m[38;2;28;28;44m.[0m[38;2;97;92;102m-[0m[38;2;148;139;143m+[0m[38;2;156;145;149m+[0m[38;2;140;130;135m+[0m[38;2;119;111;118m=[0m[38;2;104;97;106m-[0m[38;2;96;89;99m-[0m[38;2;96;89;99m-[0m[38;2;104;97;106m-[0m[38;2;119;111;118m=[0m[38;2;140;130;135m+[0m[38;2;156;145;149m+[0m[38;2;148;139;143m+[0m[38;2;98;92;102m-[0m[38;2;28;28;44m.[0m[38;2;16;17;35m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;26;27;43m.[0m[38;2;21;22;39m [0m[38;2;35;34;50m.[0m[38;2;72;68;80m:[0m[38;2;85;80;91m-[0m[38;2;42;41;53m.[0m[38;2;0;1;7m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;1m [0m[38;2;12;12;23m [0m[38;2;75;71;82m:[0m[38;2;87;82;92m-[0m[38;2;39;38;53m.[0m[38;2;20;21;38m [0m[38;2;28;29;45m.[0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;14;16;33m [0m[38;2;95;88;98m-[0m[38;2;188;174;175m*[0m[38;2;143;134;139m+[0m[38;2;72;68;81m:[0m[38;2;32;32;48m.[0m[38;2;17;19;36m [0m[38;2;15;16;33m [0m[38;2;15;17;34m [0m[38;2;16;17;35m [0m[38;2;16;17;35m [0m[38;2;15;17;34m [0m[38;2;15;16;33m [0m[38;2;17;18;36m [0m[38;2;32;32;48m.[0m[38;2;72;68;81m:[0m[38;2;143;134;139m+[0m[38;2;188;174;175m*[0m[38;2;95;88;98m-[0m[38;2;14;16;33m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;29;29;45m.[0m[38;2;20;21;38m [0m[38;2;39;38;53m.[0m[38;2;87;82;92m-[0m[38;2;75;71;83m:[0m[38;2;12;12;23m [0m[38;2;0;0;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;3m [0m[38;2;23;23;37m [0m[38;2;93;87;97m-[0m[38;2;69;66;78m:[0m[38;2;20;21;38m [0m[38;2;27;27;44m.[0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;33;33;49m.[0m[38;2;34;33;49m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;16;17;35m [0m[38;2;140;129;135m+[0m[38;2;208;191;190m#[0m[38;2;61;58;71m:[0m[38;2;14;15;32m [0m[38;2;23;23;40m [0m[38;2;32;32;48m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;35;34;50m.[0m[38;2;35;34;50m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;32;32;48m.[0m[38;2;23;23;40m [0m[38;2;14;15;32m [0m[38;2;61;58;71m:[0m[38;2;208;191;190m#[0m[38;2;140;129;135m+[0m[38;2;16;17;35m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;34;33;49m.[0m[38;2;33;33;49m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;27;27;44m.[0m[38;2;20;21;38m [0m[38;2;70;66;78m:[0m[38;2;93;87;97m-[0m[38;2;23;23;37m [0m[38;2;0;1;3m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;2;4m [0m[38;2;25;25;39m.[0m[38;2;102;95;104m-[0m[38;2;54;51;65m:[0m[38;2;19;20;37m [0m[38;2;32;32;48m.[0m[38;2;31;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;28;28;44m.[0m[38;2;15;16;34m [0m[38;2;14;16;33m [0m[38;2;26;27;43m.[0m[38;2;35;34;50m.[0m[38;2;16;17;35m [0m[38;2;101;94;103m-[0m[38;2;221;202;201m%[0m[38;2;20;20;38m [0m[38;2;8;10;28m [0m[38;2;24;25;41m.[0m[38;2;21;22;38m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;21;22;38m [0m[38;2;24;25;41m.[0m[38;2;8;10;28m [0m[38;2;20;21;38m [0m[38;2;221;203;201m%[0m[38;2;101;94;103m-[0m[38;2;16;17;35m [0m[38;2;35;34;50m.[0m[38;2;26;27;43m.[0m[38;2;14;16;33m [0m[38;2;15;16;34m [0m[38;2;28;28;44m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;30;46m.[0m[38;2;32;32;48m.[0m[38;2;19;20;37m [0m[38;2;54;51;65m:[0m[38;2;102;95;104m-[0m[38;2;25;25;39m.[0m[38;2;1;2;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;1;1;2m [0m[38;2;18;19;33m [0m[38;2;101;94;104m-[0m[38;2;56;54;66m:[0m[38;2;19;21;37m [0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;27;27;44m.[0m[38;2;40;39;54m.[0m[38;2;146;134;140m+[0m[38;2;151;139;144m+[0m[38;2;47;45;60m.[0m[38;2;24;24;41m.[0m[38;2;19;20;37m [0m[38;2;194;178;179m#[0m[38;2;167;153;157m*[0m[38;2;64;61;74m:[0m[38;2;87;81;92m-[0m[38;2;81;76;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;81;76;88m-[0m[38;2;87;81;92m-[0m[38;2;64;61;74m:[0m[38;2;167;153;157m*[0m[38;2;194;178;179m#[0m[38;2;19;20;37m [0m[38;2;24;24;41m.[0m[38;2;47;45;60m.[0m[38;2;151;139;144m+[0m[38;2;146;135;140m+[0m[38;2;40;40;54m.[0m[38;2;27;27;44m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;19;20;37m [0m[38;2;56;54;66m:[0m[38;2;101;94;104m-[0m[38;2;18;19;33m [0m[38;2;1;1;2m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;7;8;19m [0m[38;2;80;75;86m-[0m[38;2;79;74;85m-[0m[38;2;17;18;35m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;15;16;34m [0m[38;2;157;144;149m+[0m[38;2;255;248;241m@[0m[38;2;255;240;235m@[0m[38;2;212;195;194m#[0m[38;2;48;46;61m.[0m[38;2;11;13;31m [0m[38;2;191;176;177m#[0m[38;2;255;236;231m@[0m[38;2;251;230;225m@[0m[38;2;252;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;252;231;226m@[0m[38;2;251;230;225m@[0m[38;2;255;236;231m@[0m[38;2;191;176;177m#[0m[38;2;12;13;31m [0m[38;2;48;46;60m.[0m[38;2;212;195;194m#[0m[38;2;255;240;235m@[0m[38;2;255;248;241m@[0m[38;2;157;144;149m+[0m[38;2;15;16;34m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;17;18;35m [0m[38;2;79;74;85m-[0m[38;2;80;75;86m-[0m[38;2;7;8;19m [0m[38;2;0;0;0m [0m
+[38;2;2;3;6m [0m[38;2;39;38;53m.[0m[38;2;110;102;110m=[0m[38;2;23;24;40m [0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;21;22;39m [0m[38;2;70;66;78m:[0m[38;2;247;227;222m@[0m[38;2;243;222;218m%[0m[38;2;240;219;216m%[0m[38;2;255;239;234m@[0m[38;2;215;197;196m#[0m[38;2;33;32;48m.[0m[38;2;99;92;102m-[0m[38;2;255;244;238m@[0m[38;2;239;219;215m%[0m[38;2;241;221;217m%[0m[38;2;244;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;244;223;219m%[0m[38;2;241;221;217m%[0m[38;2;239;219;215m%[0m[38;2;255;244;238m@[0m[38;2;99;92;102m-[0m[38;2;33;32;48m.[0m[38;2;214;197;196m#[0m[38;2;255;239;234m@[0m[38;2;240;219;216m%[0m[38;2;243;222;218m%[0m[38;2;246;227;222m@[0m[38;2;70;66;78m:[0m[38;2;21;22;39m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;22;23;39m [0m[38;2;109;102;110m=[0m[38;2;39;38;53m.[0m[38;2;2;3;6m [0m
+[38;2;6;8;19m [0m[38;2;82;77;88m-[0m[38;2;73;69;81m:[0m[38;2;20;21;38m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;20;21;38m [0m[38;2;186;170;172m*[0m[38;2;255;240;234m@[0m[38;2;222;203;201m%[0m[38;2;75;71;83m:[0m[38;2;213;195;194m#[0m[38;2;255;245;239m@[0m[38;2;212;195;193m#[0m[38;2;36;36;51m.[0m[38;2;141;130;135m+[0m[38;2;255;243;237m@[0m[38;2;250;229;225m@[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;244;223;219m%[0m[38;2;244;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;244;224;220m@[0m[38;2;244;223;219m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;250;229;225m@[0m[38;2;255;243;237m@[0m[38;2;141;130;135m+[0m[38;2;36;35;51m.[0m[38;2;212;195;193m#[0m[38;2;255;245;239m@[0m[38;2;213;195;194m#[0m[38;2;75;71;83m:[0m[38;2;222;203;201m%[0m[38;2;255;240;234m@[0m[38;2;186;170;172m*[0m[38;2;20;21;38m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;20;21;38m [0m[38;2;73;69;81m:[0m[38;2;82;77;88m-[0m[38;2;6;8;19m [0m
+[38;2;18;19;34m [0m[38;2;103;96;105m-[0m[38;2;42;41;56m.[0m[38;2;27;27;43m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;17;18;35m [0m[38;2;97;90;100m-[0m[38;2;252;232;227m@[0m[38;2;255;235;230m@[0m[38;2;124;114;122m=[0m[38;2;2;5;23m [0m[38;2;56;53;67m:[0m[38;2;218;199;198m%[0m[38;2;255;244;238m@[0m[38;2;211;193;192m#[0m[38;2;34;34;49m.[0m[38;2;97;90;100m-[0m[38;2;222;204;202m%[0m[38;2;255;236;231m@[0m[38;2;255;236;231m@[0m[38;2;250;229;224m@[0m[38;2;245;224;220m@[0m[38;2;243;222;218m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;243;222;218m%[0m[38;2;245;224;220m@[0m[38;2;250;229;224m@[0m[38;2;255;236;231m@[0m[38;2;255;236;231m@[0m[38;2;222;204;202m%[0m[38;2;97;90;100m-[0m[38;2;34;34;49m.[0m[38;2;211;193;192m#[0m[38;2;255;244;238m@[0m[38;2;218;199;198m%[0m[38;2;55;53;67m:[0m[38;2;2;5;23m [0m[38;2;124;114;122m=[0m[38;2;255;235;230m@[0m[38;2;252;232;227m@[0m[38;2;97;90;100m-[0m[38;2;17;18;35m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;27;27;43m.[0m[38;2;43;41;56m.[0m[38;2;103;96;105m-[0m[38;2;18;19;34m [0m
+[38;2;29;29;45m.[0m[38;2;108;100;109m=[0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;30;46m.[0m[38;2;31;31;47m.[0m[38;2;211;193;192m#[0m[38;2;255;239;233m@[0m[38;2;207;189;188m#[0m[38;2;28;28;44m.[0m[38;2;34;33;49m.[0m[38;2;20;21;38m [0m[38;2;52;50;64m:[0m[38;2;218;200;198m%[0m[38;2;255;244;238m@[0m[38;2;212;195;194m#[0m[38;2;31;31;47m.[0m[38;2;26;26;43m.[0m[38;2;108;100;109m=[0m[38;2;175;162;164m*[0m[38;2;222;204;202m%[0m[38;2;246;225;221m@[0m[38;2;255;234;229m@[0m[38;2;255;237;232m@[0m[38;2;255;238;232m@[0m[38;2;255;238;232m@[0m[38;2;255;237;232m@[0m[38;2;255;234;229m@[0m[38;2;246;225;221m@[0m[38;2;222;204;202m%[0m[38;2;175;162;164m*[0m[38;2;108;101;109m=[0m[38;2;26;26;43m.[0m[38;2;31;31;47m.[0m[38;2;212;195;194m#[0m[38;2;255;244;238m@[0m[38;2;218;200;198m%[0m[38;2;52;50;64m:[0m[38;2;20;21;38m [0m[38;2;34;33;49m.[0m[38;2;28;28;44m.[0m[38;2;207;189;189m#[0m[38;2;255;239;233m@[0m[38;2;211;193;192m#[0m[38;2;31;31;47m.[0m[38;2;29;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;30;46m.[0m[38;2;32;32;48m.[0m[38;2;108;100;109m=[0m[38;2;29;29;45m.[0m
+[38;2;29;29;45m.[0m[38;2;108;100;109m=[0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;14;16;33m [0m[38;2;127;117;124m=[0m[38;2;255;236;231m@[0m[38;2;251;230;226m@[0m[38;2;92;86;96m-[0m[38;2;17;19;36m [0m[38;2;33;32;48m.[0m[38;2;34;33;49m.[0m[38;2;20;21;38m [0m[38;2;52;50;64m:[0m[38;2;218;200;199m%[0m[38;2;255;244;238m@[0m[38;2;213;195;194m#[0m[38;2;43;42;57m.[0m[38;2;8;10;28m [0m[38;2;21;22;39m [0m[38;2;37;37;52m.[0m[38;2;66;63;76m:[0m[38;2;93;87;97m-[0m[38;2;113;105;113m=[0m[38;2;123;114;121m=[0m[38;2;123;114;121m=[0m[38;2;113;105;113m=[0m[38;2;93;87;97m-[0m[38;2;67;63;76m:[0m[38;2;37;37;52m.[0m[38;2;21;22;39m [0m[38;2;8;10;28m [0m[38;2;43;42;57m.[0m[38;2;213;195;194m#[0m[38;2;255;244;238m@[0m[38;2;218;200;199m%[0m[38;2;52;50;64m:[0m[38;2;20;21;38m [0m[38;2;34;33;49m.[0m[38;2;33;32;48m.[0m[38;2;17;19;36m [0m[38;2;92;86;96m-[0m[38;2;251;230;226m@[0m[38;2;255;236;231m@[0m[38;2;127;117;124m=[0m[38;2;14;16;33m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;30;46m.[0m[38;2;32;32;48m.[0m[38;2;108;100;109m=[0m[38;2;29;29;45m.[0m
+[38;2;18;19;34m [0m[38;2;103;96;105m-[0m[38;2;43;41;56m.[0m[38;2;27;27;43m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;25;26;42m.[0m[38;2;47;46;60m.[0m[38;2;230;210;208m%[0m[38;2;255;239;233m@[0m[38;2;181;166;168m*[0m[38;2;19;20;37m [0m[38;2;33;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;20;21;38m [0m[38;2;52;50;64m:[0m[38;2;218;200;199m%[0m[38;2;255;244;238m@[0m[38;2;210;193;192m#[0m[38;2;47;46;60m.[0m[38;2;25;25;42m.[0m[38;2;31;31;47m.[0m[38;2;21;22;39m [0m[38;2;18;19;36m [0m[38;2;15;17;34m [0m[38;2;15;16;34m [0m[38;2;15;16;34m [0m[38;2;15;17;34m [0m[38;2;17;19;36m [0m[38;2;21;22;39m [0m[38;2;31;31;47m.[0m[38;2;25;25;42m.[0m[38;2;47;46;60m.[0m[38;2;210;193;192m#[0m[38;2;255;244;238m@[0m[38;2;218;200;199m%[0m[38;2;52;50;64m:[0m[38;2;20;21;38m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;32;48m.[0m[38;2;19;20;37m [0m[38;2;181;166;168m*[0m[38;2;255;239;233m@[0m[38;2;230;210;208m%[0m[38;2;47;46;60m.[0m[38;2;25;26;42m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;27;27;43m.[0m[38;2;43;41;56m.[0m[38;2;103;96;105m-[0m[38;2;18;19;34m [0m
+[38;2;6;8;19m [0m[38;2;82;77;88m-[0m[38;2;73;69;81m:[0m[38;2;20;21;38m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;15;16;34m [0m[38;2;157;144;149m+[0m[38;2;255;239;233m@[0m[38;2;244;223;219m%[0m[38;2;67;63;76m:[0m[38;2;23;24;41m [0m[38;2;34;33;49m.[0m[38;2;32;31;47m.[0m[38;2;32;31;47m.[0m[38;2;31;31;47m.[0m[38;2;36;35;50m.[0m[38;2;21;22;39m [0m[38;2;54;52;66m:[0m[38;2;220;202;200m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;44;43;57m.[0m[38;2;23;23;40m [0m[38;2;35;35;50m.[0m[38;2;32;32;48m.[0m[38;2;33;33;49m.[0m[38;2;33;33;49m.[0m[38;2;33;33;49m.[0m[38;2;33;33;49m.[0m[38;2;32;32;48m.[0m[38;2;35;35;50m.[0m[38;2;23;23;40m [0m[38;2;44;43;57m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;220;202;200m%[0m[38;2;54;52;66m:[0m[38;2;21;22;39m [0m[38;2;36;35;50m.[0m[38;2;31;31;47m.[0m[38;2;32;31;47m.[0m[38;2;32;31;47m.[0m[38;2;34;33;49m.[0m[38;2;23;24;41m [0m[38;2;67;63;76m:[0m[38;2;244;223;219m%[0m[38;2;255;239;233m@[0m[38;2;157;144;149m+[0m[38;2;15;16;34m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;20;21;38m [0m[38;2;74;69;81m:[0m[38;2;82;77;88m-[0m[38;2;6;8;19m [0m
+[38;2;2;3;6m [0m[38;2;39;38;53m.[0m[38;2;109;102;110m=[0m[38;2;22;23;39m [0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;19;21;37m [0m[38;2;69;65;78m:[0m[38;2;244;224;220m@[0m[38;2;255;237;232m@[0m[38;2;144;133;138m+[0m[38;2;7;9;27m [0m[38;2;27;27;43m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;22;23;40m [0m[38;2;27;27;43m.[0m[38;2;12;14;32m [0m[38;2;48;46;60m.[0m[38;2;219;201;199m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;44;42;57m.[0m[38;2;22;23;40m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;22;23;40m [0m[38;2;44;42;57m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;219;201;199m%[0m[38;2;48;46;60m.[0m[38;2;12;14;32m [0m[38;2;27;27;43m.[0m[38;2;22;23;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;23;23;40m [0m[38;2;27;27;43m.[0m[38;2;7;9;27m [0m[38;2;144;133;138m+[0m[38;2;255;237;232m@[0m[38;2;244;224;220m@[0m[38;2;69;65;78m:[0m[38;2;19;21;37m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;22;23;39m [0m[38;2;109;102;110m=[0m[38;2;39;38;53m.[0m[38;2;2;3;6m [0m
+[38;2;0;0;0m [0m[38;2;7;8;19m [0m[38;2;80;75;86m-[0m[38;2;79;74;85m-[0m[38;2;17;18;35m [0m[38;2;34;33;49m.[0m[38;2;31;31;47m.[0m[38;2;25;26;42m.[0m[38;2;188;172;174m*[0m[38;2;254;236;231m@[0m[38;2;230;210;208m%[0m[38;2;74;70;82m:[0m[38;2;55;52;66m:[0m[38;2;60;57;70m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;58;55;69m:[0m[38;2;64;61;73m:[0m[38;2;41;40;54m.[0m[38;2;53;51;65m:[0m[38;2;219;201;199m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;44;42;57m.[0m[38;2;22;23;40m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;22;23;40m [0m[38;2;44;42;57m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;219;201;199m%[0m[38;2;53;51;65m:[0m[38;2;41;39;54m.[0m[38;2;64;61;74m:[0m[38;2;58;55;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;60;57;70m:[0m[38;2;55;52;66m:[0m[38;2;74;70;82m:[0m[38;2;230;210;208m%[0m[38;2;254;236;231m@[0m[38;2;188;172;174m*[0m[38;2;25;26;42m.[0m[38;2;31;31;47m.[0m[38;2;34;33;49m.[0m[38;2;17;18;35m [0m[38;2;79;74;85m-[0m[38;2;80;75;86m-[0m[38;2;7;8;19m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;1;1;2m [0m[38;2;18;19;33m [0m[38;2;101;94;104m-[0m[38;2;56;54;66m:[0m[38;2;21;22;39m [0m[38;2;24;25;42m.[0m[38;2;69;66;78m:[0m[38;2;250;228;224m@[0m[38;2;251;230;225m@[0m[38;2;247;226;222m@[0m[38;2;246;225;221m@[0m[38;2;250;228;224m@[0m[38;2;248;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;248;227;223m@[0m[38;2;249;228;224m@[0m[38;2;243;223;219m%[0m[38;2;62;59;72m:[0m[38;2;45;44;58m.[0m[38;2;221;203;201m%[0m[38;2;255;244;238m@[0m[38;2;209;191;191m#[0m[38;2;43;42;57m.[0m[38;2;22;23;40m [0m[38;2;33;33;48m.[0m[38;2;33;33;48m.[0m[38;2;22;23;40m [0m[38;2;43;42;57m.[0m[38;2;209;191;191m#[0m[38;2;255;244;238m@[0m[38;2;221;203;201m%[0m[38;2;45;44;58m.[0m[38;2;62;59;72m:[0m[38;2;243;223;219m%[0m[38;2;249;228;224m@[0m[38;2;248;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;248;227;223m@[0m[38;2;250;228;224m@[0m[38;2;246;225;221m@[0m[38;2;247;226;222m@[0m[38;2;251;230;225m@[0m[38;2;250;228;224m@[0m[38;2;69;66;78m:[0m[38;2;24;25;42m.[0m[38;2;21;22;39m [0m[38;2;56;54;66m:[0m[38;2;101;94;104m-[0m[38;2;18;19;33m [0m[38;2;1;1;2m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;2;4m [0m[38;2;25;25;39m.[0m[38;2;102;95;104m-[0m[38;2;54;51;65m:[0m[38;2;19;20;37m [0m[38;2;33;33;48m.[0m[38;2;64;60;73m:[0m[38;2;79;74;86m-[0m[38;2;78;73;85m:[0m[38;2;79;75;86m-[0m[38;2;78;74;85m:[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;78;74;85m:[0m[38;2;80;75;86m-[0m[38;2;69;65;77m:[0m[38;2;37;37;52m.[0m[38;2;19;20;37m [0m[38;2;54;52;65m:[0m[38;2;220;201;200m%[0m[38;2;255;244;238m@[0m[38;2;208;191;191m#[0m[38;2;43;42;56m.[0m[38;2;24;25;42m.[0m[38;2;24;25;42m.[0m[38;2;43;42;56m.[0m[38;2;208;191;191m#[0m[38;2;255;244;238m@[0m[38;2;220;202;200m%[0m[38;2;54;52;65m:[0m[38;2;19;20;37m [0m[38;2;37;37;52m.[0m[38;2;69;65;77m:[0m[38;2;80;75;86m-[0m[38;2;78;74;85m:[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;78;74;85m:[0m[38;2;79;75;86m-[0m[38;2;78;73;85m:[0m[38;2;79;74;86m-[0m[38;2;64;60;73m:[0m[38;2;33;33;48m.[0m[38;2;19;20;37m [0m[38;2;54;52;65m:[0m[38;2;102;95;104m-[0m[38;2;25;25;39m.[0m[38;2;1;2;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;3m [0m[38;2;23;23;37m [0m[38;2;93;87;97m-[0m[38;2;70;66;78m:[0m[38;2;20;20;38m [0m[38;2;19;20;37m [0m[38;2;22;22;39m [0m[38;2;20;21;38m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;21;22;39m [0m[38;2;29;29;45m.[0m[38;2;34;34;49m.[0m[38;2;19;21;38m [0m[38;2;54;52;65m:[0m[38;2;220;202;200m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;39;38;53m.[0m[38;2;39;38;53m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;220;202;200m%[0m[38;2;54;52;65m:[0m[38;2;19;21;37m [0m[38;2;34;34;49m.[0m[38;2;29;29;45m.[0m[38;2;21;22;39m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;20;21;38m [0m[38;2;22;22;39m [0m[38;2;19;20;37m [0m[38;2;20;20;38m [0m[38;2;70;66;78m:[0m[38;2;93;87;97m-[0m[38;2;23;23;37m [0m[38;2;0;1;3m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;1m [0m[38;2;12;12;23m [0m[38;2;75;71;82m:[0m[38;2;87;82;92m-[0m[38;2;40;39;54m.[0m[38;2;23;23;40m [0m[38;2;31;31;47m.[0m[38;2;34;34;49m.[0m[38;2;33;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;34;49m.[0m[38;2;20;21;38m [0m[38;2;54;52;66m:[0m[38;2;220;202;200m%[0m[38;2;255;245;239m@[0m[38;2;198;182;182m#[0m[38;2;198;182;182m#[0m[38;2;255;245;239m@[0m[38;2;221;202;200m%[0m[38;2;54;52;66m:[0m[38;2;20;21;38m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;33;32;48m.[0m[38;2;34;34;49m.[0m[38;2;31;31;47m.[0m[38;2;23;23;40m [0m[38;2;40;39;54m.[0m[38;2;87;82;92m-[0m[38;2;75;71;82m:[0m[38;2;12;12;23m [0m[38;2;0;0;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;7m [0m[38;2;42;41;53m.[0m[38;2;85;80;91m-[0m[38;2;72;68;80m:[0m[38;2;35;34;50m.[0m[38;2;21;22;39m [0m[38;2;26;27;43m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;34;49m.[0m[38;2;19;20;37m [0m[38;2;55;52;66m:[0m[38;2;220;203;201m%[0m[38;2;255;246;240m@[0m[38;2;255;246;240m@[0m[38;2;220;203;201m%[0m[38;2;55;52;66m:[0m[38;2;19;20;37m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;26;27;43m.[0m[38;2;21;22;39m [0m[38;2;35;34;50m.[0m[38;2;72;68;80m:[0m[38;2;85;80;91m-[0m[38;2;42;41;53m.[0m[38;2;0;1;7m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;16m [0m[38;2;53;51;62m:[0m[38;2;81;76;87m-[0m[38;2;71;67;79m:[0m[38;2;44;43;58m.[0m[38;2;25;25;42m.[0m[38;2;22;23;40m [0m[38;2;26;26;43m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;34;49m.[0m[38;2;19;20;37m [0m[38;2;56;53;67m:[0m[38;2;169;156;159m*[0m[38;2;169;156;159m*[0m[38;2;56;53;67m:[0m[38;2;19;20;37m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;26;26;43m.[0m[38;2;22;23;39m [0m[38;2;25;25;42m.[0m[38;2;44;43;57m.[0m[38;2;71;67;79m:[0m[38;2;81;76;87m-[0m[38;2;53;51;62m:[0m[38;2;8;8;16m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;15m [0m[38;2;44;42;53m.[0m[38;2;75;71;83m:[0m[38;2;75;71;83m:[0m[38;2;61;58;71m:[0m[38;2;42;40;56m.[0m[38;2;27;28;44m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;26;26;43m.[0m[38;2;29;29;45m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;25;26;42m.[0m[38;2;16;18;35m [0m[38;2;16;18;35m [0m[38;2;25;26;42m.[0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;29;29;45m.[0m[38;2;26;26;43m.[0m[38;2;23;24;40m.[0m[38;2;23;23;40m [0m[38;2;27;28;44m.[0m[38;2;42;40;55m.[0m[38;2;61;58;71m:[0m[38;2;75;71;83m:[0m[38;2;75;71;83m:[0m[38;2;44;42;52m.[0m[38;2;8;8;15m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;4m [0m[38;2;21;21;28m [0m[38;2;51;48;58m.[0m[38;2;72;68;80m:[0m[38;2;73;69;81m:[0m[38;2;65;62;75m:[0m[38;2;54;51;65m:[0m[38;2;42;41;56m.[0m[38;2;33;32;48m.[0m[38;2;26;26;43m.[0m[38;2;24;24;41m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;24;25;41m.[0m[38;2;25;25;42m.[0m[38;2;26;27;43m.[0m[38;2;29;29;45m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;28;29;45m.[0m[38;2;26;27;43m.[0m[38;2;25;25;42m.[0m[38;2;24;25;41m.[0m[38;2;23;24;40m.[0m[38;2;23;24;40m.[0m[38;2;24;24;41m.[0m[38;2;26;26;43m.[0m[38;2;33;32;48m.[0m[38;2;42;41;56m.[0m[38;2;54;51;65m:[0m[38;2;65;62;75m:[0m[38;2;73;69;81m:[0m[38;2;72;68;80m:[0m[38;2;51;48;59m:[0m[38;2;21;21;28m [0m[38;2;0;0;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;1;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;2m [0m[38;2;13;13;19m [0m[38;2;34;32;40m.[0m[38;2;52;50;59m:[0m[38;2;65;61;73m:[0m[38;2;71;67;79m:[0m[38;2;69;65;77m:[0m[38;2;65;61;74m:[0m[38;2;60;57;70m:[0m[38;2;54;52;66m:[0m[38;2;50;48;62m.[0m[38;2;46;45;59m.[0m[38;2;44;42;57m.[0m[38;2;42;41;56m.[0m[38;2;41;40;55m.[0m[38;2;41;40;55m.[0m[38;2;42;41;56m.[0m[38;2;44;42;57m.[0m[38;2;46;45;59m.[0m[38;2;50;48;62m.[0m[38;2;54;52;66m:[0m[38;2;59;57;70m:[0m[38;2;65;61;74m:[0m[38;2;69;65;77m:[0m[38;2;71;67;79m:[0m[38;2;65;62;74m:[0m[38;2;52;50;59m:[0m[38;2;34;32;40m.[0m[38;2;13;13;19m [0m[38;2;0;0;2m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;1;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;5;5;9m [0m[38;2;16;16;22m [0m[38;2;28;27;35m.[0m[38;2;39;38;47m.[0m[38;2;48;46;56m.[0m[38;2;56;53;65m:[0m[38;2;61;58;70m:[0m[38;2;65;61;73m:[0m[38;2;66;63;75m:[0m[38;2;67;64;76m:[0m[38;2;67;64;76m:[0m[38;2;66;63;75m:[0m[38;2;65;61;73m:[0m[38;2;61;58;70m:[0m[38;2;56;53;65m:[0m[38;2;48;46;56m.[0m[38;2;39;38;47m.[0m[38;2;29;27;35m.[0m[38;2;16;16;22m [0m[38;2;5;5;10m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
diff --git a/docs/ascii-variants/logo-braille-threshold20-h15.txt b/docs/ascii-variants/logo-braille-threshold20-h15.txt
new file mode 100644
index 0000000..03a96e9
--- /dev/null
+++ b/docs/ascii-variants/logo-braille-threshold20-h15.txt
@@ -0,0 +1,15 @@
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡶⠶⠶⢶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠟⠁⠀⠀⠀⠀⠈⠻⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⢀⣤⡀⢸⣏⣀⣀⣀⣀⣀⣀⣀⣀⣹⡇⢀⣤⡀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⣸⣿⣷⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣾⣿⣇⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⢠⣿⡏⢿⣷⡻⣿⣿⣿⣿⣿⣿⣿⣿⢟⣾⡿⢹⣿⡄⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⣼⣿⠀⠈⢿⣷⡈⠛⠿⠿⠿⠿⠛⢁⣾⡿⠁⠀⣿⣧⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⢰⣿⠇⠀⠀⠈⢿⣷⡀⠀⠀⠀⠀⢀⣾⡿⠁⠀⠀⠸⣿⡆⠀⠀⠀⠀
+⠀⠀⠀⠀⣾⣿⣀⣀⣀⣀⣈⢿⣷⡀⠀⠀⢀⣾⡿⣁⣀⣀⣀⣀⣿⣷⠀⠀⠀⠀
+⠀⠀⠀⠘⠿⠿⠿⠿⠿⠿⠿⠋⢿⣷⡀⢀⣾⡿⠙⠿⠿⠿⠿⠿⠿⠿⠃⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣷⣾⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
diff --git a/docs/ascii-variants/logo-braille-threshold20.txt b/docs/ascii-variants/logo-braille-threshold20.txt
new file mode 100644
index 0000000..bcab4e9
--- /dev/null
+++ b/docs/ascii-variants/logo-braille-threshold20.txt
@@ -0,0 +1,41 @@
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣴⣶⣶⣶⣶⣦⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⡿⠟⠛⠋⠉⠉⠉⠉⠙⠛⠻⢿⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⣼⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣧⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣆⠀⠀⠀⣿⣿⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣿⣿⠀⠀⠀⣰⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣆⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⣰⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣆⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣰⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⢿⣿⣿⣿⣆⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⣰⣿⣿⣿⡿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⡇⠈⢿⣿⣿⣿⣆⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⣰⣿⣿⣿⡿⠁⢸⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⡿⠀⠀⠈⢿⣿⣿⣿⣆⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⣰⣿⣿⣿⡿⠁⠀⠀⢿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⠇⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠸⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⡟⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠈⠛⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠁⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⢻⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣆⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
diff --git a/docs/ascii-variants/logo-color-h30.txt b/docs/ascii-variants/logo-color-h30.txt
new file mode 100644
index 0000000..8d81cf0
--- /dev/null
+++ b/docs/ascii-variants/logo-color-h30.txt
@@ -0,0 +1,30 @@
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;5;5;10m [0m[38;2;16;16;22m [0m[38;2;28;27;35m.[0m[38;2;39;38;47m.[0m[38;2;48;46;56m.[0m[38;2;56;53;65m:[0m[38;2;61;58;70m:[0m[38;2;65;61;73m:[0m[38;2;66;63;75m:[0m[38;2;68;65;77m:[0m[38;2;68;65;77m:[0m[38;2;66;63;75m:[0m[38;2;65;61;73m:[0m[38;2;62;58;70m:[0m[38;2;56;53;65m:[0m[38;2;48;46;56m.[0m[38;2;39;37;47m.[0m[38;2;29;28;35m.[0m[38;2;16;16;22m [0m[38;2;5;5;10m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;1;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;2m [0m[38;2;13;13;19m [0m[38;2;34;32;40m.[0m[38;2;52;50;60m:[0m[38;2;65;61;74m:[0m[38;2;71;67;79m:[0m[38;2;69;65;77m:[0m[38;2;65;61;74m:[0m[38;2;59;57;70m:[0m[38;2;54;52;66m:[0m[38;2;50;48;62m.[0m[38;2;46;45;59m.[0m[38;2;44;42;57m.[0m[38;2;42;41;56m.[0m[38;2;41;40;55m.[0m[38;2;41;40;55m.[0m[38;2;42;41;56m.[0m[38;2;44;42;57m.[0m[38;2;46;45;59m.[0m[38;2;50;48;62m.[0m[38;2;54;52;66m:[0m[38;2;59;57;70m:[0m[38;2;65;61;74m:[0m[38;2;69;65;77m:[0m[38;2;71;67;79m:[0m[38;2;65;62;73m:[0m[38;2;52;50;60m:[0m[38;2;34;32;40m.[0m[38;2;13;13;19m [0m[38;2;0;0;2m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;4m [0m[38;2;21;21;28m [0m[38;2;51;48;58m.[0m[38;2;72;68;80m:[0m[38;2;73;69;81m:[0m[38;2;65;62;75m:[0m[38;2;54;51;65m:[0m[38;2;42;41;56m.[0m[38;2;33;32;48m.[0m[38;2;26;26;43m.[0m[38;2;24;24;41m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;24;25;41m.[0m[38;2;26;26;43m.[0m[38;2;29;29;45m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;29;45m.[0m[38;2;26;26;43m.[0m[38;2;25;25;41m.[0m[38;2;23;24;40m.[0m[38;2;23;24;40m.[0m[38;2;24;24;41m.[0m[38;2;26;26;43m.[0m[38;2;33;32;48m.[0m[38;2;42;41;56m.[0m[38;2;54;51;65m:[0m[38;2;65;62;75m:[0m[38;2;73;69;81m:[0m[38;2;72;68;80m:[0m[38;2;51;48;59m:[0m[38;2;21;21;29m [0m[38;2;0;0;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;15m [0m[38;2;44;42;53m.[0m[38;2;75;71;83m:[0m[38;2;75;71;83m:[0m[38;2;61;58;71m:[0m[38;2;42;40;55m.[0m[38;2;27;28;44m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;26;26;43m.[0m[38;2;29;29;45m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;34;33;49m.[0m[38;2;34;34;49m.[0m[38;2;29;29;45m.[0m[38;2;22;23;40m [0m[38;2;18;19;36m [0m[38;2;16;17;34m [0m[38;2;15;17;34m [0m[38;2;15;17;34m [0m[38;2;16;17;34m [0m[38;2;18;19;36m [0m[38;2;22;23;40m [0m[38;2;29;29;45m.[0m[38;2;34;34;49m.[0m[38;2;34;33;49m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;29;29;45m.[0m[38;2;26;26;43m.[0m[38;2;23;24;40m.[0m[38;2;23;23;40m [0m[38;2;27;27;44m.[0m[38;2;42;40;55m.[0m[38;2;61;58;71m:[0m[38;2;75;71;83m:[0m[38;2;75;71;82m:[0m[38;2;44;42;52m.[0m[38;2;8;8;15m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;16m [0m[38;2;53;51;62m:[0m[38;2;81;76;87m-[0m[38;2;71;67;79m:[0m[38;2;44;43;57m.[0m[38;2;25;25;42m.[0m[38;2;22;23;39m [0m[38;2;26;26;43m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;16;17;34m [0m[38;2;16;17;35m [0m[38;2;38;37;52m.[0m[38;2;65;62;75m:[0m[38;2;88;82;93m-[0m[38;2;102;95;104m-[0m[38;2;109;101;110m=[0m[38;2;109;101;110m=[0m[38;2;102;95;104m-[0m[38;2;88;83;93m-[0m[38;2;65;62;75m:[0m[38;2;38;37;52m.[0m[38;2;16;17;35m [0m[38;2;16;17;34m [0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;26;26;43m.[0m[38;2;22;23;39m [0m[38;2;25;25;42m.[0m[38;2;44;43;57m.[0m[38;2;71;67;79m:[0m[38;2;81;76;87m-[0m[38;2;53;51;62m:[0m[38;2;8;8;16m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;7m [0m[38;2;42;41;53m.[0m[38;2;85;80;91m-[0m[38;2;72;68;80m:[0m[38;2;35;34;50m.[0m[38;2;21;22;39m [0m[38;2;26;27;43m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;16;17;35m [0m[38;2;28;28;44m.[0m[38;2;97;92;102m-[0m[38;2;148;139;143m+[0m[38;2;156;145;149m+[0m[38;2;140;130;135m+[0m[38;2;119;111;118m=[0m[38;2;104;97;106m-[0m[38;2;96;89;99m-[0m[38;2;96;89;99m-[0m[38;2;104;97;106m-[0m[38;2;119;111;118m=[0m[38;2;140;130;135m+[0m[38;2;156;145;149m+[0m[38;2;148;139;143m+[0m[38;2;98;92;102m-[0m[38;2;28;28;44m.[0m[38;2;16;17;35m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;26;27;43m.[0m[38;2;21;22;39m [0m[38;2;35;34;50m.[0m[38;2;72;68;80m:[0m[38;2;85;80;91m-[0m[38;2;42;41;53m.[0m[38;2;0;1;7m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;1m [0m[38;2;12;12;23m [0m[38;2;75;71;82m:[0m[38;2;87;82;92m-[0m[38;2;39;38;53m.[0m[38;2;20;21;38m [0m[38;2;28;29;45m.[0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;14;16;33m [0m[38;2;95;88;98m-[0m[38;2;188;174;175m*[0m[38;2;143;134;139m+[0m[38;2;72;68;81m:[0m[38;2;32;32;48m.[0m[38;2;17;19;36m [0m[38;2;15;16;33m [0m[38;2;15;17;34m [0m[38;2;16;17;35m [0m[38;2;16;17;35m [0m[38;2;15;17;34m [0m[38;2;15;16;33m [0m[38;2;17;18;36m [0m[38;2;32;32;48m.[0m[38;2;72;68;81m:[0m[38;2;143;134;139m+[0m[38;2;188;174;175m*[0m[38;2;95;88;98m-[0m[38;2;14;16;33m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;29;29;45m.[0m[38;2;20;21;38m [0m[38;2;39;38;53m.[0m[38;2;87;82;92m-[0m[38;2;75;71;83m:[0m[38;2;12;12;23m [0m[38;2;0;0;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;3m [0m[38;2;23;23;37m [0m[38;2;93;87;97m-[0m[38;2;69;66;78m:[0m[38;2;20;21;38m [0m[38;2;27;27;44m.[0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;33;33;49m.[0m[38;2;34;33;49m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;16;17;35m [0m[38;2;140;129;135m+[0m[38;2;208;191;190m#[0m[38;2;61;58;71m:[0m[38;2;14;15;32m [0m[38;2;23;23;40m [0m[38;2;32;32;48m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;35;34;50m.[0m[38;2;35;34;50m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;35;35;50m.[0m[38;2;32;32;48m.[0m[38;2;23;23;40m [0m[38;2;14;15;32m [0m[38;2;61;58;71m:[0m[38;2;208;191;190m#[0m[38;2;140;129;135m+[0m[38;2;16;17;35m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;34;33;49m.[0m[38;2;33;33;49m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;27;27;44m.[0m[38;2;20;21;38m [0m[38;2;70;66;78m:[0m[38;2;93;87;97m-[0m[38;2;23;23;37m [0m[38;2;0;1;3m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;2;4m [0m[38;2;25;25;39m.[0m[38;2;102;95;104m-[0m[38;2;54;51;65m:[0m[38;2;19;20;37m [0m[38;2;32;32;48m.[0m[38;2;31;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;28;28;44m.[0m[38;2;15;16;34m [0m[38;2;14;16;33m [0m[38;2;26;27;43m.[0m[38;2;35;34;50m.[0m[38;2;16;17;35m [0m[38;2;101;94;103m-[0m[38;2;221;202;201m%[0m[38;2;20;20;38m [0m[38;2;8;10;28m [0m[38;2;24;25;41m.[0m[38;2;21;22;38m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;21;22;38m [0m[38;2;24;25;41m.[0m[38;2;8;10;28m [0m[38;2;20;21;38m [0m[38;2;221;203;201m%[0m[38;2;101;94;103m-[0m[38;2;16;17;35m [0m[38;2;35;34;50m.[0m[38;2;26;27;43m.[0m[38;2;14;16;33m [0m[38;2;15;16;34m [0m[38;2;28;28;44m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;30;46m.[0m[38;2;32;32;48m.[0m[38;2;19;20;37m [0m[38;2;54;51;65m:[0m[38;2;102;95;104m-[0m[38;2;25;25;39m.[0m[38;2;1;2;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;1;1;2m [0m[38;2;18;19;33m [0m[38;2;101;94;104m-[0m[38;2;56;54;66m:[0m[38;2;19;21;37m [0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;27;27;44m.[0m[38;2;40;39;54m.[0m[38;2;146;134;140m+[0m[38;2;151;139;144m+[0m[38;2;47;45;60m.[0m[38;2;24;24;41m.[0m[38;2;19;20;37m [0m[38;2;194;178;179m#[0m[38;2;167;153;157m*[0m[38;2;64;61;74m:[0m[38;2;87;81;92m-[0m[38;2;81;76;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;82;77;88m-[0m[38;2;81;76;88m-[0m[38;2;87;81;92m-[0m[38;2;64;61;74m:[0m[38;2;167;153;157m*[0m[38;2;194;178;179m#[0m[38;2;19;20;37m [0m[38;2;24;24;41m.[0m[38;2;47;45;60m.[0m[38;2;151;139;144m+[0m[38;2;146;135;140m+[0m[38;2;40;40;54m.[0m[38;2;27;27;44m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;19;20;37m [0m[38;2;56;54;66m:[0m[38;2;101;94;104m-[0m[38;2;18;19;33m [0m[38;2;1;1;2m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;7;8;19m [0m[38;2;80;75;86m-[0m[38;2;79;74;85m-[0m[38;2;17;18;35m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;15;16;34m [0m[38;2;157;144;149m+[0m[38;2;255;248;241m@[0m[38;2;255;240;235m@[0m[38;2;212;195;194m#[0m[38;2;48;46;61m.[0m[38;2;11;13;31m [0m[38;2;191;176;177m#[0m[38;2;255;236;231m@[0m[38;2;251;230;225m@[0m[38;2;252;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;253;231;226m@[0m[38;2;252;231;226m@[0m[38;2;251;230;225m@[0m[38;2;255;236;231m@[0m[38;2;191;176;177m#[0m[38;2;12;13;31m [0m[38;2;48;46;60m.[0m[38;2;212;195;194m#[0m[38;2;255;240;235m@[0m[38;2;255;248;241m@[0m[38;2;157;144;149m+[0m[38;2;15;16;34m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;17;18;35m [0m[38;2;79;74;85m-[0m[38;2;80;75;86m-[0m[38;2;7;8;19m [0m[38;2;0;0;0m [0m
+[38;2;2;3;6m [0m[38;2;39;38;53m.[0m[38;2;110;102;110m=[0m[38;2;23;24;40m [0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;21;22;39m [0m[38;2;70;66;78m:[0m[38;2;247;227;222m@[0m[38;2;243;222;218m%[0m[38;2;240;219;216m%[0m[38;2;255;239;234m@[0m[38;2;215;197;196m#[0m[38;2;33;32;48m.[0m[38;2;99;92;102m-[0m[38;2;255;244;238m@[0m[38;2;239;219;215m%[0m[38;2;241;221;217m%[0m[38;2;244;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;243;223;219m%[0m[38;2;244;223;219m%[0m[38;2;241;221;217m%[0m[38;2;239;219;215m%[0m[38;2;255;244;238m@[0m[38;2;99;92;102m-[0m[38;2;33;32;48m.[0m[38;2;214;197;196m#[0m[38;2;255;239;234m@[0m[38;2;240;219;216m%[0m[38;2;243;222;218m%[0m[38;2;246;227;222m@[0m[38;2;70;66;78m:[0m[38;2;21;22;39m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;22;23;39m [0m[38;2;109;102;110m=[0m[38;2;39;38;53m.[0m[38;2;2;3;6m [0m
+[38;2;6;8;19m [0m[38;2;82;77;88m-[0m[38;2;73;69;81m:[0m[38;2;20;21;38m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;20;21;38m [0m[38;2;186;170;172m*[0m[38;2;255;240;234m@[0m[38;2;222;203;201m%[0m[38;2;75;71;83m:[0m[38;2;213;195;194m#[0m[38;2;255;245;239m@[0m[38;2;212;195;193m#[0m[38;2;36;36;51m.[0m[38;2;141;130;135m+[0m[38;2;255;243;237m@[0m[38;2;250;229;225m@[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;244;223;219m%[0m[38;2;244;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;245;224;220m@[0m[38;2;244;224;220m@[0m[38;2;244;223;219m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;250;229;225m@[0m[38;2;255;243;237m@[0m[38;2;141;130;135m+[0m[38;2;36;35;51m.[0m[38;2;212;195;193m#[0m[38;2;255;245;239m@[0m[38;2;213;195;194m#[0m[38;2;75;71;83m:[0m[38;2;222;203;201m%[0m[38;2;255;240;234m@[0m[38;2;186;170;172m*[0m[38;2;20;21;38m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;20;21;38m [0m[38;2;73;69;81m:[0m[38;2;82;77;88m-[0m[38;2;6;8;19m [0m
+[38;2;18;19;34m [0m[38;2;103;96;105m-[0m[38;2;42;41;56m.[0m[38;2;27;27;43m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;17;18;35m [0m[38;2;97;90;100m-[0m[38;2;252;232;227m@[0m[38;2;255;235;230m@[0m[38;2;124;114;122m=[0m[38;2;2;5;23m [0m[38;2;56;53;67m:[0m[38;2;218;199;198m%[0m[38;2;255;244;238m@[0m[38;2;211;193;192m#[0m[38;2;34;34;49m.[0m[38;2;97;90;100m-[0m[38;2;222;204;202m%[0m[38;2;255;236;231m@[0m[38;2;255;236;231m@[0m[38;2;250;229;224m@[0m[38;2;245;224;220m@[0m[38;2;243;222;218m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;242;221;217m%[0m[38;2;243;222;218m%[0m[38;2;245;224;220m@[0m[38;2;250;229;224m@[0m[38;2;255;236;231m@[0m[38;2;255;236;231m@[0m[38;2;222;204;202m%[0m[38;2;97;90;100m-[0m[38;2;34;34;49m.[0m[38;2;211;193;192m#[0m[38;2;255;244;238m@[0m[38;2;218;199;198m%[0m[38;2;55;53;67m:[0m[38;2;2;5;23m [0m[38;2;124;114;122m=[0m[38;2;255;235;230m@[0m[38;2;252;232;227m@[0m[38;2;97;90;100m-[0m[38;2;17;18;35m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;27;27;43m.[0m[38;2;43;41;56m.[0m[38;2;103;96;105m-[0m[38;2;18;19;34m [0m
+[38;2;29;29;45m.[0m[38;2;108;100;109m=[0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;30;46m.[0m[38;2;31;31;47m.[0m[38;2;211;193;192m#[0m[38;2;255;239;233m@[0m[38;2;207;189;188m#[0m[38;2;28;28;44m.[0m[38;2;34;33;49m.[0m[38;2;20;21;38m [0m[38;2;52;50;64m:[0m[38;2;218;200;198m%[0m[38;2;255;244;238m@[0m[38;2;212;195;194m#[0m[38;2;31;31;47m.[0m[38;2;26;26;43m.[0m[38;2;108;100;109m=[0m[38;2;175;162;164m*[0m[38;2;222;204;202m%[0m[38;2;246;225;221m@[0m[38;2;255;234;229m@[0m[38;2;255;237;232m@[0m[38;2;255;238;232m@[0m[38;2;255;238;232m@[0m[38;2;255;237;232m@[0m[38;2;255;234;229m@[0m[38;2;246;225;221m@[0m[38;2;222;204;202m%[0m[38;2;175;162;164m*[0m[38;2;108;101;109m=[0m[38;2;26;26;43m.[0m[38;2;31;31;47m.[0m[38;2;212;195;194m#[0m[38;2;255;244;238m@[0m[38;2;218;200;198m%[0m[38;2;52;50;64m:[0m[38;2;20;21;38m [0m[38;2;34;33;49m.[0m[38;2;28;28;44m.[0m[38;2;207;189;189m#[0m[38;2;255;239;233m@[0m[38;2;211;193;192m#[0m[38;2;31;31;47m.[0m[38;2;29;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;30;46m.[0m[38;2;32;32;48m.[0m[38;2;108;100;109m=[0m[38;2;29;29;45m.[0m
+[38;2;29;29;45m.[0m[38;2;108;100;109m=[0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;14;16;33m [0m[38;2;127;117;124m=[0m[38;2;255;236;231m@[0m[38;2;251;230;226m@[0m[38;2;92;86;96m-[0m[38;2;17;19;36m [0m[38;2;33;32;48m.[0m[38;2;34;33;49m.[0m[38;2;20;21;38m [0m[38;2;52;50;64m:[0m[38;2;218;200;199m%[0m[38;2;255;244;238m@[0m[38;2;213;195;194m#[0m[38;2;43;42;57m.[0m[38;2;8;10;28m [0m[38;2;21;22;39m [0m[38;2;37;37;52m.[0m[38;2;66;63;76m:[0m[38;2;93;87;97m-[0m[38;2;113;105;113m=[0m[38;2;123;114;121m=[0m[38;2;123;114;121m=[0m[38;2;113;105;113m=[0m[38;2;93;87;97m-[0m[38;2;67;63;76m:[0m[38;2;37;37;52m.[0m[38;2;21;22;39m [0m[38;2;8;10;28m [0m[38;2;43;42;57m.[0m[38;2;213;195;194m#[0m[38;2;255;244;238m@[0m[38;2;218;200;199m%[0m[38;2;52;50;64m:[0m[38;2;20;21;38m [0m[38;2;34;33;49m.[0m[38;2;33;32;48m.[0m[38;2;17;19;36m [0m[38;2;92;86;96m-[0m[38;2;251;230;226m@[0m[38;2;255;236;231m@[0m[38;2;127;117;124m=[0m[38;2;14;16;33m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;29;30;46m.[0m[38;2;32;32;48m.[0m[38;2;108;100;109m=[0m[38;2;29;29;45m.[0m
+[38;2;18;19;34m [0m[38;2;103;96;105m-[0m[38;2;43;41;56m.[0m[38;2;27;27;43m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;25;26;42m.[0m[38;2;47;46;60m.[0m[38;2;230;210;208m%[0m[38;2;255;239;233m@[0m[38;2;181;166;168m*[0m[38;2;19;20;37m [0m[38;2;33;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;20;21;38m [0m[38;2;52;50;64m:[0m[38;2;218;200;199m%[0m[38;2;255;244;238m@[0m[38;2;210;193;192m#[0m[38;2;47;46;60m.[0m[38;2;25;25;42m.[0m[38;2;31;31;47m.[0m[38;2;21;22;39m [0m[38;2;18;19;36m [0m[38;2;15;17;34m [0m[38;2;15;16;34m [0m[38;2;15;16;34m [0m[38;2;15;17;34m [0m[38;2;17;19;36m [0m[38;2;21;22;39m [0m[38;2;31;31;47m.[0m[38;2;25;25;42m.[0m[38;2;47;46;60m.[0m[38;2;210;193;192m#[0m[38;2;255;244;238m@[0m[38;2;218;200;199m%[0m[38;2;52;50;64m:[0m[38;2;20;21;38m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;32;48m.[0m[38;2;19;20;37m [0m[38;2;181;166;168m*[0m[38;2;255;239;233m@[0m[38;2;230;210;208m%[0m[38;2;47;46;60m.[0m[38;2;25;26;42m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;27;27;43m.[0m[38;2;43;41;56m.[0m[38;2;103;96;105m-[0m[38;2;18;19;34m [0m
+[38;2;6;8;19m [0m[38;2;82;77;88m-[0m[38;2;73;69;81m:[0m[38;2;20;21;38m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;15;16;34m [0m[38;2;157;144;149m+[0m[38;2;255;239;233m@[0m[38;2;244;223;219m%[0m[38;2;67;63;76m:[0m[38;2;23;24;41m [0m[38;2;34;33;49m.[0m[38;2;32;31;47m.[0m[38;2;32;31;47m.[0m[38;2;31;31;47m.[0m[38;2;36;35;50m.[0m[38;2;21;22;39m [0m[38;2;54;52;66m:[0m[38;2;220;202;200m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;44;43;57m.[0m[38;2;23;23;40m [0m[38;2;35;35;50m.[0m[38;2;32;32;48m.[0m[38;2;33;33;49m.[0m[38;2;33;33;49m.[0m[38;2;33;33;49m.[0m[38;2;33;33;49m.[0m[38;2;32;32;48m.[0m[38;2;35;35;50m.[0m[38;2;23;23;40m [0m[38;2;44;43;57m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;220;202;200m%[0m[38;2;54;52;66m:[0m[38;2;21;22;39m [0m[38;2;36;35;50m.[0m[38;2;31;31;47m.[0m[38;2;32;31;47m.[0m[38;2;32;31;47m.[0m[38;2;34;33;49m.[0m[38;2;23;24;41m [0m[38;2;67;63;76m:[0m[38;2;244;223;219m%[0m[38;2;255;239;233m@[0m[38;2;157;144;149m+[0m[38;2;15;16;34m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;20;21;38m [0m[38;2;74;69;81m:[0m[38;2;82;77;88m-[0m[38;2;6;8;19m [0m
+[38;2;2;3;6m [0m[38;2;39;38;53m.[0m[38;2;109;102;110m=[0m[38;2;22;23;39m [0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;32;32;48m.[0m[38;2;19;21;37m [0m[38;2;69;65;78m:[0m[38;2;244;224;220m@[0m[38;2;255;237;232m@[0m[38;2;144;133;138m+[0m[38;2;7;9;27m [0m[38;2;27;27;43m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;22;23;40m [0m[38;2;27;27;43m.[0m[38;2;12;14;32m [0m[38;2;48;46;60m.[0m[38;2;219;201;199m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;44;42;57m.[0m[38;2;22;23;40m [0m[38;2;33;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;33;33;49m.[0m[38;2;22;23;40m [0m[38;2;44;42;57m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;219;201;199m%[0m[38;2;48;46;60m.[0m[38;2;12;14;32m [0m[38;2;27;27;43m.[0m[38;2;22;23;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;23;24;40m [0m[38;2;23;23;40m [0m[38;2;27;27;43m.[0m[38;2;7;9;27m [0m[38;2;144;133;138m+[0m[38;2;255;237;232m@[0m[38;2;244;224;220m@[0m[38;2;69;65;78m:[0m[38;2;19;21;37m [0m[38;2;32;32;48m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;22;23;39m [0m[38;2;109;102;110m=[0m[38;2;39;38;53m.[0m[38;2;2;3;6m [0m
+[38;2;0;0;0m [0m[38;2;7;8;19m [0m[38;2;80;75;86m-[0m[38;2;79;74;85m-[0m[38;2;17;18;35m [0m[38;2;34;33;49m.[0m[38;2;31;31;47m.[0m[38;2;25;26;42m.[0m[38;2;188;172;174m*[0m[38;2;254;236;231m@[0m[38;2;230;210;208m%[0m[38;2;74;70;82m:[0m[38;2;55;52;66m:[0m[38;2;60;57;70m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;58;55;69m:[0m[38;2;64;61;73m:[0m[38;2;41;40;54m.[0m[38;2;53;51;65m:[0m[38;2;219;201;199m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;44;42;57m.[0m[38;2;22;23;40m [0m[38;2;34;33;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;33;49m.[0m[38;2;22;23;40m [0m[38;2;44;42;57m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;219;201;199m%[0m[38;2;53;51;65m:[0m[38;2;41;39;54m.[0m[38;2;64;61;74m:[0m[38;2;58;55;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;59;56;69m:[0m[38;2;60;57;70m:[0m[38;2;55;52;66m:[0m[38;2;74;70;82m:[0m[38;2;230;210;208m%[0m[38;2;254;236;231m@[0m[38;2;188;172;174m*[0m[38;2;25;26;42m.[0m[38;2;31;31;47m.[0m[38;2;34;33;49m.[0m[38;2;17;18;35m [0m[38;2;79;74;85m-[0m[38;2;80;75;86m-[0m[38;2;7;8;19m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;1;1;2m [0m[38;2;18;19;33m [0m[38;2;101;94;104m-[0m[38;2;56;54;66m:[0m[38;2;21;22;39m [0m[38;2;24;25;42m.[0m[38;2;69;66;78m:[0m[38;2;250;228;224m@[0m[38;2;251;230;225m@[0m[38;2;247;226;222m@[0m[38;2;246;225;221m@[0m[38;2;250;228;224m@[0m[38;2;248;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;248;227;223m@[0m[38;2;249;228;224m@[0m[38;2;243;223;219m%[0m[38;2;62;59;72m:[0m[38;2;45;44;58m.[0m[38;2;221;203;201m%[0m[38;2;255;244;238m@[0m[38;2;209;191;191m#[0m[38;2;43;42;57m.[0m[38;2;22;23;40m [0m[38;2;33;33;48m.[0m[38;2;33;33;48m.[0m[38;2;22;23;40m [0m[38;2;43;42;57m.[0m[38;2;209;191;191m#[0m[38;2;255;244;238m@[0m[38;2;221;203;201m%[0m[38;2;45;44;58m.[0m[38;2;62;59;72m:[0m[38;2;243;223;219m%[0m[38;2;249;228;224m@[0m[38;2;248;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;249;227;223m@[0m[38;2;248;227;223m@[0m[38;2;250;228;224m@[0m[38;2;246;225;221m@[0m[38;2;247;226;222m@[0m[38;2;251;230;225m@[0m[38;2;250;228;224m@[0m[38;2;69;66;78m:[0m[38;2;24;25;42m.[0m[38;2;21;22;39m [0m[38;2;56;54;66m:[0m[38;2;101;94;104m-[0m[38;2;18;19;33m [0m[38;2;1;1;2m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;2;4m [0m[38;2;25;25;39m.[0m[38;2;102;95;104m-[0m[38;2;54;51;65m:[0m[38;2;19;20;37m [0m[38;2;33;33;48m.[0m[38;2;64;60;73m:[0m[38;2;79;74;86m-[0m[38;2;78;73;85m:[0m[38;2;79;75;86m-[0m[38;2;78;74;85m:[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;78;74;85m:[0m[38;2;80;75;86m-[0m[38;2;69;65;77m:[0m[38;2;37;37;52m.[0m[38;2;19;20;37m [0m[38;2;54;52;65m:[0m[38;2;220;201;200m%[0m[38;2;255;244;238m@[0m[38;2;208;191;191m#[0m[38;2;43;42;56m.[0m[38;2;24;25;42m.[0m[38;2;24;25;42m.[0m[38;2;43;42;56m.[0m[38;2;208;191;191m#[0m[38;2;255;244;238m@[0m[38;2;220;202;200m%[0m[38;2;54;52;65m:[0m[38;2;19;20;37m [0m[38;2;37;37;52m.[0m[38;2;69;65;77m:[0m[38;2;80;75;86m-[0m[38;2;78;74;85m:[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;79;74;85m-[0m[38;2;78;74;85m:[0m[38;2;79;75;86m-[0m[38;2;78;73;85m:[0m[38;2;79;74;86m-[0m[38;2;64;60;73m:[0m[38;2;33;33;48m.[0m[38;2;19;20;37m [0m[38;2;54;52;65m:[0m[38;2;102;95;104m-[0m[38;2;25;25;39m.[0m[38;2;1;2;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;3m [0m[38;2;23;23;37m [0m[38;2;93;87;97m-[0m[38;2;70;66;78m:[0m[38;2;20;20;38m [0m[38;2;19;20;37m [0m[38;2;22;22;39m [0m[38;2;20;21;38m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;21;22;39m [0m[38;2;29;29;45m.[0m[38;2;34;34;49m.[0m[38;2;19;21;38m [0m[38;2;54;52;65m:[0m[38;2;220;202;200m%[0m[38;2;255;244;238m@[0m[38;2;209;192;191m#[0m[38;2;39;38;53m.[0m[38;2;39;38;53m.[0m[38;2;209;192;191m#[0m[38;2;255;244;238m@[0m[38;2;220;202;200m%[0m[38;2;54;52;65m:[0m[38;2;19;21;37m [0m[38;2;34;34;49m.[0m[38;2;29;29;45m.[0m[38;2;21;22;39m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;19;20;37m [0m[38;2;20;21;38m [0m[38;2;22;22;39m [0m[38;2;19;20;37m [0m[38;2;20;20;38m [0m[38;2;70;66;78m:[0m[38;2;93;87;97m-[0m[38;2;23;23;37m [0m[38;2;0;1;3m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;1m [0m[38;2;12;12;23m [0m[38;2;75;71;82m:[0m[38;2;87;82;92m-[0m[38;2;40;39;54m.[0m[38;2;23;23;40m [0m[38;2;31;31;47m.[0m[38;2;34;34;49m.[0m[38;2;33;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;34;49m.[0m[38;2;20;21;38m [0m[38;2;54;52;66m:[0m[38;2;220;202;200m%[0m[38;2;255;245;239m@[0m[38;2;198;182;182m#[0m[38;2;198;182;182m#[0m[38;2;255;245;239m@[0m[38;2;221;202;200m%[0m[38;2;54;52;66m:[0m[38;2;20;21;38m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;32;32;47m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;32;32;48m.[0m[38;2;33;32;48m.[0m[38;2;34;34;49m.[0m[38;2;31;31;47m.[0m[38;2;23;23;40m [0m[38;2;40;39;54m.[0m[38;2;87;82;92m-[0m[38;2;75;71;82m:[0m[38;2;12;12;23m [0m[38;2;0;0;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;1;7m [0m[38;2;42;41;53m.[0m[38;2;85;80;91m-[0m[38;2;72;68;80m:[0m[38;2;35;34;50m.[0m[38;2;21;22;39m [0m[38;2;26;27;43m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;34;49m.[0m[38;2;19;20;37m [0m[38;2;55;52;66m:[0m[38;2;220;203;201m%[0m[38;2;255;246;240m@[0m[38;2;255;246;240m@[0m[38;2;220;203;201m%[0m[38;2;55;52;66m:[0m[38;2;19;20;37m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;26;27;43m.[0m[38;2;21;22;39m [0m[38;2;35;34;50m.[0m[38;2;72;68;80m:[0m[38;2;85;80;91m-[0m[38;2;42;41;53m.[0m[38;2;0;1;7m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;16m [0m[38;2;53;51;62m:[0m[38;2;81;76;87m-[0m[38;2;71;67;79m:[0m[38;2;44;43;58m.[0m[38;2;25;25;42m.[0m[38;2;22;23;40m [0m[38;2;26;26;43m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;34;34;49m.[0m[38;2;19;20;37m [0m[38;2;56;53;67m:[0m[38;2;169;156;159m*[0m[38;2;169;156;159m*[0m[38;2;56;53;67m:[0m[38;2;19;20;37m [0m[38;2;34;34;49m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;26;26;43m.[0m[38;2;22;23;39m [0m[38;2;25;25;42m.[0m[38;2;44;43;57m.[0m[38;2;71;67;79m:[0m[38;2;81;76;87m-[0m[38;2;53;51;62m:[0m[38;2;8;8;16m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;8;8;15m [0m[38;2;44;42;53m.[0m[38;2;75;71;83m:[0m[38;2;75;71;83m:[0m[38;2;61;58;71m:[0m[38;2;42;40;56m.[0m[38;2;27;28;44m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;26;26;43m.[0m[38;2;29;29;45m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;30;30;46m.[0m[38;2;33;33;48m.[0m[38;2;25;26;42m.[0m[38;2;16;18;35m [0m[38;2;16;18;35m [0m[38;2;25;26;42m.[0m[38;2;33;33;48m.[0m[38;2;30;30;46m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;31;31;47m.[0m[38;2;29;29;45m.[0m[38;2;26;26;43m.[0m[38;2;23;24;40m.[0m[38;2;23;23;40m [0m[38;2;27;28;44m.[0m[38;2;42;40;55m.[0m[38;2;61;58;71m:[0m[38;2;75;71;83m:[0m[38;2;75;71;83m:[0m[38;2;44;42;52m.[0m[38;2;8;8;15m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;4m [0m[38;2;21;21;28m [0m[38;2;51;48;58m.[0m[38;2;72;68;80m:[0m[38;2;73;69;81m:[0m[38;2;65;62;75m:[0m[38;2;54;51;65m:[0m[38;2;42;41;56m.[0m[38;2;33;32;48m.[0m[38;2;26;26;43m.[0m[38;2;24;24;41m.[0m[38;2;23;23;40m [0m[38;2;23;24;40m.[0m[38;2;24;25;41m.[0m[38;2;25;25;42m.[0m[38;2;26;27;43m.[0m[38;2;29;29;45m.[0m[38;2;30;30;46m.[0m[38;2;30;30;46m.[0m[38;2;28;29;45m.[0m[38;2;26;27;43m.[0m[38;2;25;25;42m.[0m[38;2;24;25;41m.[0m[38;2;23;24;40m.[0m[38;2;23;24;40m.[0m[38;2;24;24;41m.[0m[38;2;26;26;43m.[0m[38;2;33;32;48m.[0m[38;2;42;41;56m.[0m[38;2;54;51;65m:[0m[38;2;65;62;75m:[0m[38;2;73;69;81m:[0m[38;2;72;68;80m:[0m[38;2;51;48;59m:[0m[38;2;21;21;28m [0m[38;2;0;0;4m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;1;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;2m [0m[38;2;13;13;19m [0m[38;2;34;32;40m.[0m[38;2;52;50;59m:[0m[38;2;65;61;73m:[0m[38;2;71;67;79m:[0m[38;2;69;65;77m:[0m[38;2;65;61;74m:[0m[38;2;60;57;70m:[0m[38;2;54;52;66m:[0m[38;2;50;48;62m.[0m[38;2;46;45;59m.[0m[38;2;44;42;57m.[0m[38;2;42;41;56m.[0m[38;2;41;40;55m.[0m[38;2;41;40;55m.[0m[38;2;42;41;56m.[0m[38;2;44;42;57m.[0m[38;2;46;45;59m.[0m[38;2;50;48;62m.[0m[38;2;54;52;66m:[0m[38;2;59;57;70m:[0m[38;2;65;61;74m:[0m[38;2;69;65;77m:[0m[38;2;71;67;79m:[0m[38;2;65;62;74m:[0m[38;2;52;50;59m:[0m[38;2;34;32;40m.[0m[38;2;13;13;19m [0m[38;2;0;0;2m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;1;1;1m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
+[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;5;5;9m [0m[38;2;16;16;22m [0m[38;2;28;27;35m.[0m[38;2;39;38;47m.[0m[38;2;48;46;56m.[0m[38;2;56;53;65m:[0m[38;2;61;58;70m:[0m[38;2;65;61;73m:[0m[38;2;66;63;75m:[0m[38;2;67;64;76m:[0m[38;2;67;64;76m:[0m[38;2;66;63;75m:[0m[38;2;65;61;73m:[0m[38;2;61;58;70m:[0m[38;2;56;53;65m:[0m[38;2;48;46;56m.[0m[38;2;39;38;47m.[0m[38;2;29;27;35m.[0m[38;2;16;16;22m [0m[38;2;5;5;10m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m[38;2;0;0;0m [0m
diff --git a/docs/ascii-variants/logo-h50.txt b/docs/ascii-variants/logo-h50.txt
new file mode 100644
index 0000000..6903ab5
--- /dev/null
+++ b/docs/ascii-variants/logo-h50.txt
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+ ..::::..
+ .=*####****####*=.
+ .+##*=:. .:=*##+.
+ .*%*: :*%*.
+ =@*. .*@=
+ *@- -@*
+ *@: :@*
+ -@+ +@-
+ :: *% %* ::
+ .%@@%: %%********************************%% :%@@%.
+ +@%%@%: #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# :%@%%@+
+ :@%%@%%%: +@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@+ :%%%@%%@:
+ #@%@%@%%%: .%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%. :%%%@%@%@#
+ -@%%%.+@%%%: -@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@- :%%%@+.%%%@-
+ %%%@+ +@%%%: :%@%%%@@@@@@@@@@@@@@@@@@@@%%%@%: :%%%@+ +@%%%
+ =@%%% +@%%%: .+@@@%%%%@@@@@@@@@@@@%%%%@@@+. :%%%@+ %%%@=
+ .%%%@= +@%%%: .+%@@@@%%%%%%%%%%%%@@@@%+: :%@%@+ =@%%%.
+ +@%%# +@%@%: -+#%@@@@@@@@@@@@%#+- :%@%@+ #%%@+
+ :@%%@: +@%@%: .:-=+****+==:. :%@%@+ :@%%@:
+ #@%@* +@%@%: :%@%@+ *@%@#
+ -@%%%. +@%@%: :%@%@+ .%%%@-
+ %%%@+ +@%@%: :%@%@+ +@%%%
+ =@%%% +@%@%: :%@%@+ %%%@=
+ .%%%@= +@%@%: :%@%@+ =@%%%.
+ +@%@# +@%@%: :%@%@+ #@%@+
+ :@%%%: +@%@%: :%@%@+ :%%%@:
+ #%%%%##################= +@%@%: :%@%@+ =##################%%%%#
+ %@@@@@@@@@@@@@@@@@@@@@@%. +@%@%: :%@%@+ .%@@@@@@@@@@@@@@@@@@@@@@%
+ :--------------------: +@%@%: :%@%@+ :--------------------:
+ +@%@%: :%@%@+
+ +@%@%: :%@%@+
+ +@%@%::%@%@+
+ +@%@%%@%@+
+ +@%@@%@+
+ +@@@@+
+ =##=
+
+
+
+
+
+
+
diff --git a/logo.nimble b/logo.nimble
new file mode 100644
index 0000000..0912127
--- /dev/null
+++ b/logo.nimble
@@ -0,0 +1,26 @@
+# Package
+
+version = "0.1.0"
+author = "Daylin Morgan"
+description = "Daylin's handy logo generator"
+license = "MIT"
+srcDir = "src"
+bin = @["logo"]
+binDir = "bin"
+
+
+# Dependencies
+
+requires "nim >= 1.6.12",
+ "nimsvg"
+
+proc getSvgs(): seq[string] =
+ (gorgeEx "find -type f -wholename \"./docs/*.svg\"").output.split("\n")
+
+proc makePng(svg: string) =
+ echo svg & " -> " & svg.replace("svg","png")
+ exec "inkscape --export-filename=" & svg.replace("svg","png") & " " & svg
+
+task pngs, "fetch dependencies":
+ for svg in getSvgs():
+ makePng(svg)
diff --git a/logo/__init__.py b/logo/__init__.py
deleted file mode 100644
index 7d6d94e..0000000
--- a/logo/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .main import generate
diff --git a/logo/cli.py b/logo/cli.py
deleted file mode 100644
index 9f39133..0000000
--- a/logo/cli.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import argparse
-
-
-def get_args():
- parser = argparse.ArgumentParser()
- parser.add_argument("-bg", "--background", help="background")
- parser.add_argument("-b", "--border", help="include border", action="store_true")
- parser.add_argument("--debug", help="add grid to debug logo", action="store_true")
- parser.add_argument(
- "-o", "--output", help="output file to save to", default="logo.svg"
- )
- parser.add_argument(
- "-t",
- "--theme",
- help="theme for color [light,dark][default: dark]",
- default="dark",
- )
- parser.add_argument("--no-minify", help="pretty print svg", action="store_true")
-
- return parser.parse_args()
diff --git a/logo/config.py b/logo/config.py
deleted file mode 100644
index 5a1d50e..0000000
--- a/logo/config.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from collections import namedtuple
-from dataclasses import dataclass
-
-Center = namedtuple("Center", "x y")
-
-SCALE = 800
-
-
-@dataclass
-class Coordinates:
- """Class for housing/calculating relevant cordinates"""
-
- my1: int
- my1: int
- my2: int
- mx1: int
- mx2: int
- dr: int
- border_gap: int
-
- def __post_init__(self):
- self.scale_coordinates(SCALE)
-
- # Nominal Values
- u = (SCALE - self.my1 - self.my2 - self.dr) / 2
- # v = SCALE / 2 - (self.mx1 + self.mx2)
- # assert D_R < M_X1 + M_X2/2
-
- # Coordinate Shape Centers
- self.mc = Center(SCALE / 2, u + self.dr + self.my2)
- self.dc = Center(SCALE / 2, u + self.dr)
-
- def scale_coordinates(self, scale):
- for k in self.__dataclass_fields__:
- v = getattr(self, k)
- setattr(self, k, v * scale)
-
-
-coord = Coordinates(
- my1=0.15,
- my2=0.35,
- mx1=0.13,
- mx2=0.2,
- dr=0.17,
- border_gap=0.025,
-)
diff --git a/logo/main.py b/logo/main.py
deleted file mode 100644
index bc8e501..0000000
--- a/logo/main.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import svgwrite
-
-from .cli import get_args
-from .config import SCALE, coord
-from .shapes import circle, m
-from .utils import debug, get_style, minify_css
-
-
-def generate(
- name, background, border, theme, comment=None, debug_mode=False, no_minify=False
-):
- if comment and any([debug_mode, no_minify]):
- raise ValueError("Can't specify comment and pretty output (debug/no-minify)")
-
- print(f"generating: {name}")
- dwg = svgwrite.Drawing(filename=name, size=(SCALE, SCALE), debug=debug)
- style = get_style(theme)
- dwg.defs.add(dwg.style(style if (debug_mode or no_minify) else minify_css(style)))
-
- bg = dwg.add(dwg.g(id="bg", class_="background"))
- if background == "rect":
- bg.add(dwg.rect(insert=(0, 0), size=(SCALE,) * 2))
- if border:
- bg.add(
- dwg.rect(
- insert=(coord.border_gap, coord.border_gap),
- size=(
- (SCALE - 2 * coord.border_gap),
- (SCALE - 2 * coord.border_gap),
- ),
- class_="fg border",
- )
- )
-
- elif background == "circle":
- bg.add(dwg.circle((SCALE / 2,) * 2, r=SCALE / 2))
- if border:
- bg.add(
- dwg.circle(
- (SCALE / 2,) * 2,
- r=(SCALE - 2 * coord.border_gap) / 2,
- class_="fg border",
- )
- )
-
- logo = dwg.add(dwg.g(id="m", class_="fg logo"))
- m(dwg, logo, coord)
- circle(dwg, logo, coord)
-
- if debug_mode:
- debug(dwg, SCALE)
-
- if comment:
- with open(name, "w") as f:
- f.write(f"\n")
- f.write(dwg.tostring())
- else:
- dwg.save(pretty=(debug_mode or no_minify))
-
-
-def main():
- args = get_args()
- generate(
- args.output,
- args.background,
- args.border,
- args.theme,
- args.debug,
- args.no_minify,
- )
diff --git a/logo/shapes.py b/logo/shapes.py
deleted file mode 100644
index bd237e1..0000000
--- a/logo/shapes.py
+++ /dev/null
@@ -1,25 +0,0 @@
-def circle(dwg, g, coord):
- move_to = (str(coord.dc.x - coord.dr), str(coord.dc.y))
-
- circle = dwg.circle(center=coord.dc, r=coord.dr, class_="d")
- filled = dwg.path(
- d=f"M {','.join(move_to)} a 1 1 0 0 0 {coord.dr*2} 0 z", class_="fg d"
- )
- g.add(circle)
- g.add(filled)
-
-
-def m(dwg, g, coord):
- start_end_offset = 0.15 * (coord.mx1)
- move_to = (str(coord.mc.x - coord.mx1 - start_end_offset), str(coord.mc.y))
- m = dwg.path(
- d=f"M {','.join(move_to)}"
- f"l -{coord.mx2},0 "
- f"l {coord.mx2/2},-{coord.my2} "
- f"l {coord.mx2/2+coord.mx1+start_end_offset},{coord.my2+coord.my1} "
- f"l {coord.mx1+coord.mx2/2+start_end_offset},-{coord.my1+coord.my2} "
- f"l {coord.mx2/2},{coord.my2} "
- f"l -{coord.mx2}, 0"
- )
-
- g.add(m)
diff --git a/logo/utils.py b/logo/utils.py
deleted file mode 100644
index 0fa7dc3..0000000
--- a/logo/utils.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from importlib.resources import files
-
-
-def read_css(file):
- return files("logo").joinpath(f"css/{file}").read_text()
-
-
-def minify_css(style):
- return "".join(style.split())
-
-
-def get_style(theme="dark"):
- style = read_css(f"{theme}.css")
- style += read_css("base.css")
- return style
-
-
-def debug(dwg, scale):
- hlines = dwg.add(dwg.g(id="hlines", stroke="green"))
- for y in range(0, scale, int(scale / 20)):
- hlines.add(dwg.line(start=(0, y), end=(scale, y)))
- vlines = dwg.add(dwg.g(id="vline", stroke="blue"))
- for x in range(0, scale, int(scale / 20)):
- vlines.add(dwg.line(start=(x, 0), end=(x, scale)))
diff --git a/pdm.lock b/pdm.lock
deleted file mode 100644
index e403045..0000000
--- a/pdm.lock
+++ /dev/null
@@ -1,169 +0,0 @@
-[[package]]
-name = "black"
-version = "22.6.0"
-requires_python = ">=3.6.2"
-summary = "The uncompromising code formatter."
-dependencies = [
- "click>=8.0.0",
- "mypy-extensions>=0.4.3",
- "pathspec>=0.9.0",
- "platformdirs>=2",
- "tomli>=1.1.0; python_full_version < \"3.11.0a7\"",
-]
-
-[[package]]
-name = "click"
-version = "8.1.3"
-requires_python = ">=3.7"
-summary = "Composable command line interface toolkit"
-dependencies = [
- "colorama; platform_system == \"Windows\"",
-]
-
-[[package]]
-name = "colorama"
-version = "0.4.5"
-requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-summary = "Cross-platform colored terminal text."
-
-[[package]]
-name = "flake8"
-version = "4.0.1"
-requires_python = ">=3.6"
-summary = "the modular source code checker: pep8 pyflakes and co"
-dependencies = [
- "mccabe<0.7.0,>=0.6.0",
- "pycodestyle<2.9.0,>=2.8.0",
- "pyflakes<2.5.0,>=2.4.0",
-]
-
-[[package]]
-name = "isort"
-version = "5.10.1"
-requires_python = ">=3.6.1,<4.0"
-summary = "A Python utility / library to sort Python imports."
-
-[[package]]
-name = "mccabe"
-version = "0.6.1"
-summary = "McCabe checker, plugin for flake8"
-
-[[package]]
-name = "mypy-extensions"
-version = "0.4.3"
-summary = "Experimental type system extensions for programs checked with the mypy typechecker."
-
-[[package]]
-name = "pathspec"
-version = "0.9.0"
-requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
-summary = "Utility library for gitignore style pattern matching of file paths."
-
-[[package]]
-name = "platformdirs"
-version = "2.5.2"
-requires_python = ">=3.7"
-summary = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
-
-[[package]]
-name = "pycodestyle"
-version = "2.8.0"
-requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-summary = "Python style guide checker"
-
-[[package]]
-name = "pyflakes"
-version = "2.4.0"
-requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-summary = "passive checker of Python programs"
-
-[[package]]
-name = "svgwrite"
-version = "1.4.3"
-requires_python = ">=3.6"
-summary = "A Python library to create SVG drawings."
-
-[[package]]
-name = "tomli"
-version = "2.0.1"
-requires_python = ">=3.7"
-summary = "A lil' TOML parser"
-
-[metadata]
-lock_version = "4.0"
-content_hash = "sha256:15a59b7f453339840a0b62e3c329e1cf92be16a2d0c205b6a8c75921cb75413e"
-
-[metadata.files]
-"black 22.6.0" = [
- {url = "https://files.pythonhosted.org/packages/07/eb/a757135497a3be31ab8c00ef239070c7277ad11b618104950a756bcab3c1/black-22.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a218d7e5856f91d20f04e931b6f16d15356db1c846ee55f01bac297a705ca24f"},
- {url = "https://files.pythonhosted.org/packages/19/b0/13864fd5f3090ca5379f3dcf6034f1e4f02b59620e7b8b5c6f0c85622c0b/black-22.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:560558527e52ce8afba936fcce93a7411ab40c7d5fe8c2463e279e843c0328ee"},
- {url = "https://files.pythonhosted.org/packages/1a/84/203163902ee26bcf1beaef582ee0c8df3f325da3e961b68d2ece959e19d3/black-22.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6797f58943fceb1c461fb572edbe828d811e719c24e03375fd25170ada53825e"},
- {url = "https://files.pythonhosted.org/packages/1d/d2/bc58bae8ec35f5a3c796d71d5bda113060678483e623a019fb889edd8d97/black-22.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7ba9be198ecca5031cd78745780d65a3f75a34b2ff9be5837045dce55db83d1c"},
- {url = "https://files.pythonhosted.org/packages/2b/70/1d0e33a4df4ed73e9f02f698a29b5d94ff58e39f029c939ecf96a10fb1f3/black-22.6.0-py3-none-any.whl", hash = "sha256:ac609cf8ef5e7115ddd07d85d988d074ed00e10fbc3445aee393e70164a2219c"},
- {url = "https://files.pythonhosted.org/packages/2b/d9/7331e50dad8d5149a9e2285766960ac6b732ae9b3b9796e10916ad88ff61/black-22.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b154e6bbde1e79ea3260c4b40c0b7b3109ffcdf7bc4ebf8859169a6af72cd70b"},
- {url = "https://files.pythonhosted.org/packages/3e/fd/5e47b4d77549909e484de906a69fccc3fcfb782131d8b449073ad8b3ed3e/black-22.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:568ac3c465b1c8b34b61cd7a4e349e93f91abf0f9371eda1cf87194663ab684e"},
- {url = "https://files.pythonhosted.org/packages/40/d1/3f366d7887d1fb6e3e487a6c975a9e9e13618757ed0d5427197fa9e28290/black-22.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:187d96c5e713f441a5829e77120c269b6514418f4513a390b0499b0987f2ff1c"},
- {url = "https://files.pythonhosted.org/packages/46/eb/f489451de8b3e91bd82ee722b9a8493b94f8719ea6649e5b8bba2376056d/black-22.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:074458dc2f6e0d3dab7928d4417bb6957bb834434516f21514138437accdbe90"},
- {url = "https://files.pythonhosted.org/packages/55/33/752544332a2d3be0f6d54ef808075681b68ddc15cfcb90ff128f2d30c85c/black-22.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:4af5bc0e1f96be5ae9bd7aaec219c901a94d6caa2484c21983d043371c733fc4"},
- {url = "https://files.pythonhosted.org/packages/57/62/2961a0a57bdf768ccb5aea16327400be6e6bde4fb47ac05af7e9535c5289/black-22.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2ea29072e954a4d55a2ff58971b83365eba5d3d357352a07a7a4df0d95f51c78"},
- {url = "https://files.pythonhosted.org/packages/61/11/551b0d067a7e6836fc0997ab36ee46ec65259fea8f30104f4870092f3301/black-22.6.0.tar.gz", hash = "sha256:6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9"},
- {url = "https://files.pythonhosted.org/packages/63/96/814e02033701f51701444d5505b5e2594453b1f7e913764a097b1f701633/black-22.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b270a168d69edb8b7ed32c193ef10fd27844e5c60852039599f9184460ce0807"},
- {url = "https://files.pythonhosted.org/packages/80/ff/cfcfa4cdb42d8fff75b6b4dc355a1186a95de4714df8cc2a60f69f7b17f8/black-22.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f586c26118bc6e714ec58c09df0157fe2d9ee195c764f630eb0d8e7ccce72e69"},
- {url = "https://files.pythonhosted.org/packages/86/9c/2a8a13993bc63a50bda7436ecba902231fd9a88dd1cd233e6e3f534e071c/black-22.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666"},
- {url = "https://files.pythonhosted.org/packages/8a/90/69274ed80397ada663ce3c4cc0c70b7fb20b529f9baf4bf9ddf4edc14ccd/black-22.6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cfaf3895a9634e882bf9d2363fed5af8888802d670f58b279b0bece00e9a872d"},
- {url = "https://files.pythonhosted.org/packages/9b/22/ff6d904dcb6f92bd7c20b178ed0aa9e6814ae6452df6c573806dbc465b85/black-22.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a3db5b6409b96d9bd543323b23ef32a1a2b06416d525d27e0f67e74f1446c8f2"},
- {url = "https://files.pythonhosted.org/packages/a7/51/d0acd9f74a946a825a148dcc392433c2332ae405967d76292b9e64712dc8/black-22.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c85928b9d5f83b23cee7d0efcb310172412fbf7cb9d9ce963bd67fd141781def"},
- {url = "https://files.pythonhosted.org/packages/ac/9d/b06f45e8dff2b10bf4644ba7a74490538c0272ae48308e04c6f551671b89/black-22.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e439798f819d49ba1c0bd9664427a05aab79bfba777a6db94fd4e56fae0cb849"},
- {url = "https://files.pythonhosted.org/packages/c4/67/a4e9125bf1a4eb5a2624b3b979af2dc6ee8d3c4ee0b3d2867173db4916fa/black-22.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:b9fd45787ba8aa3f5e0a0a98920c1012c884622c6c920dbe98dbd05bc7c70fbf"},
- {url = "https://files.pythonhosted.org/packages/d6/45/985c13ac6b2f67504cda61fc1d95365eb6446a4c6988ffe0f0f311f7a617/black-22.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94783f636bca89f11eb5d50437e8e17fbc6a929a628d82304c80fa9cd945f256"},
- {url = "https://files.pythonhosted.org/packages/e7/fe/4533d110ddced851a359cbbb162685814719690ee01939a34be023410854/black-22.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6c1734ab264b8f7929cef8ae5f900b85d579e6cbfde09d7387da8f04771b51c6"},
- {url = "https://files.pythonhosted.org/packages/fc/37/032c45b55f901ee3fe780fbc17fe2dc262c809d94de1288201350d8d680b/black-22.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9a3ac16efe9ec7d7381ddebcc022119794872abce99475345c5a61aa18c45ad"},
-]
-"click 8.1.3" = [
- {url = "https://files.pythonhosted.org/packages/59/87/84326af34517fca8c58418d148f2403df25303e02736832403587318e9e8/click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
- {url = "https://files.pythonhosted.org/packages/c2/f1/df59e28c642d583f7dacffb1e0965d0e00b218e0186d7858ac5233dce840/click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
-]
-"colorama 0.4.5" = [
- {url = "https://files.pythonhosted.org/packages/2b/65/24d033a9325ce42ccbfa3ca2d0866c7e89cc68e5b9d92ecaba9feef631df/colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"},
- {url = "https://files.pythonhosted.org/packages/77/8b/7550e87b2d308a1b711725dfaddc19c695f8c5fa413c640b2be01662f4e6/colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"},
-]
-"flake8 4.0.1" = [
- {url = "https://files.pythonhosted.org/packages/34/39/cde2c8a227abb4f9ce62fe55586b920f438f1d2903a1a22514d0b982c333/flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"},
- {url = "https://files.pythonhosted.org/packages/e6/84/d8db922289195c435779b4ca3a3f583f263f87e67954f7b2e83c8da21f48/flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"},
-]
-"isort 5.10.1" = [
- {url = "https://files.pythonhosted.org/packages/ab/e9/964cb0b2eedd80c92f5172f1f8ae0443781a9d461c1372a3ce5762489593/isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"},
- {url = "https://files.pythonhosted.org/packages/b8/5b/f18e227df38b94b4ee30d2502fd531bebac23946a2497e5595067a561274/isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"},
-]
-"mccabe 0.6.1" = [
- {url = "https://files.pythonhosted.org/packages/06/18/fa675aa501e11d6d6ca0ae73a101b2f3571a565e0f7d38e062eec18a91ee/mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
- {url = "https://files.pythonhosted.org/packages/87/89/479dc97e18549e21354893e4ee4ef36db1d237534982482c3681ee6e7b57/mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
-]
-"mypy-extensions 0.4.3" = [
- {url = "https://files.pythonhosted.org/packages/5c/eb/975c7c080f3223a5cdaff09612f3a5221e4ba534f7039db34c35d95fa6a5/mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
- {url = "https://files.pythonhosted.org/packages/63/60/0582ce2eaced55f65a4406fc97beba256de4b7a95a0034c6576458c6519f/mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
-]
-"pathspec 0.9.0" = [
- {url = "https://files.pythonhosted.org/packages/42/ba/a9d64c7bcbc7e3e8e5f93a52721b377e994c22d16196e2b0f1236774353a/pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
- {url = "https://files.pythonhosted.org/packages/f6/33/436c5cb94e9f8902e59d1d544eb298b83c84b9ec37b5b769c5a0ad6edb19/pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
-]
-"platformdirs 2.5.2" = [
- {url = "https://files.pythonhosted.org/packages/ed/22/967181c94c3a4063fe64e15331b4cb366bdd7dfbf46fcb8ad89650026fec/platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
- {url = "https://files.pythonhosted.org/packages/ff/7b/3613df51e6afbf2306fc2465671c03390229b55e3ef3ab9dd3f846a53be6/platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
-]
-"pycodestyle 2.8.0" = [
- {url = "https://files.pythonhosted.org/packages/08/dc/b29daf0a202b03f57c19e7295b60d1d5e1281c45a6f5f573e41830819918/pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"},
- {url = "https://files.pythonhosted.org/packages/15/94/bc43a2efb7b8615e38acde2b6624cae8c9ec86faf718ff5676c5179a7714/pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"},
-]
-"pyflakes 2.4.0" = [
- {url = "https://files.pythonhosted.org/packages/15/60/c577e54518086e98470e9088278247f4af1d39cb43bcbd731e2c307acd6a/pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"},
- {url = "https://files.pythonhosted.org/packages/43/fb/38848eb494af7df9aeb2d7673ace8b213313eb7e391691a79dbaeb6a838f/pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"},
-]
-"svgwrite 1.4.3" = [
- {url = "https://files.pythonhosted.org/packages/16/c1/263d4e93b543390d86d8eb4fc23d9ce8a8d6efd146f9427364109004fa9b/svgwrite-1.4.3.zip", hash = "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3"},
- {url = "https://files.pythonhosted.org/packages/84/15/640e399579024a6875918839454025bb1d5f850bb70d96a11eabb644d11c/svgwrite-1.4.3-py3-none-any.whl", hash = "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d"},
-]
-"tomli 2.0.1" = [
- {url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
- {url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
-]
diff --git a/pyproject.toml b/pyproject.toml
deleted file mode 100644
index 775066b..0000000
--- a/pyproject.toml
+++ /dev/null
@@ -1,28 +0,0 @@
-[project]
-name = "logo"
-authors = [
- {name = "Daylin Morgan", email = "daylinmorgan@gmail.com"},
-]
-dependencies = [
- "svgwrite>=1.4.3",
-]
-requires-python = ">=3.10"
-license = {text = "MIT"}
-dynamic = ["version"]
-
-[project.scripts]
-logo = "logo.main:main"
-
-[build-system]
-requires = ["pdm-pep517>=1.0.0"]
-build-backend = "pdm.pep517.api"
-
-[tool.pdm.dev-dependencies]
-dev = [
- "black>=22.6.0",
- "isort>=5.10.1",
- "flake8>=4.0.1",
-]
-
-[tool.pdm]
-version = {use_scm=true}
diff --git a/scripts/ascii.nims b/scripts/ascii.nims
new file mode 100755
index 0000000..cd9e627
--- /dev/null
+++ b/scripts/ascii.nims
@@ -0,0 +1,55 @@
+#!/usr/bin/env -S nim e --hints:off
+import std/[strformat]
+
+type
+ AsciiLogo = object
+ braille: bool
+ threshold: int
+ color: bool
+ height: int
+ baseFile: string
+
+const baseImg = "./docs/png/logo-dark.png"
+
+proc fileName(al: AsciiLogo): string =
+ result = "./docs/ascii-variants/logo"
+ if al.braille:
+ result &= "-braille"
+ if al.threshold != 0:
+ result &= &"-threshold{al.threshold}"
+ if al.color:
+ result &= "-color"
+ if al.height != 0:
+ result &= &"-h{al.height}"
+ result &= ".txt"
+
+proc make(al: AsciiLogo) =
+ var cmd: string
+ if al.baseFile != "":
+ cmd = &"ascii-image-converter {al.baseFile}"
+ else:
+ cmd = &"ascii-image-converter {baseImg}"
+
+ if al.braille:
+ cmd &= " --braille "
+ if al.threshold != 0:
+ cmd &= &" --threshold {al.threshold} "
+ if al.color:
+ cmd &= &" --color "
+ if al.height != 0:
+ cmd &= &" --height {al.height} "
+
+ cmd &= &" > {al.fileName}"
+ exec cmd
+
+when isMainModule:
+ mkDir("./docs/ascii-variants/")
+ for al in @[
+ AsciiLogo(braille: true, threshold: 20),
+ AsciiLogo(braille: true, height: 15, threshold: 20),
+ AsciiLogo(braille: false, height: 50),
+ AsciiLogo(color: true, height: 30, baseFile: "./docs/png/logo-bg-circle-b-dark.png")
+ ]:
+ al.make()
+
+ cpFile("./docs/ascii-variants/logo-color-h30.txt", "./docs/ascii")
diff --git a/scripts/generate-all.py b/scripts/generate-all.py
deleted file mode 100755
index 2131d87..0000000
--- a/scripts/generate-all.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-from pathlib import Path
-
-from logo import generate
-
-PROJECT_ROOT = Path(__file__).parent.parent
-
-def main():
- rev = sys.argv[1]
- comment = f"© 2022 Daylin Morgan | rev. {rev}"
-
- if not ( PROJECT_ROOT / "docs" / "svg").is_dir():
- print("making docs directory")
- (PROJECT_ROOT / "docs" / "svg").mkdir(exist_ok=True)
-
- for theme in ["dark", "light"]:
- for background in ["rect", "circle", None]:
- for border in [True, False]:
- name = ["logo"]
- if background:
- name.append(f"bg-{background}")
- if border:
- name.append("b")
-
- name.append(theme)
- name = f"{PROJECT_ROOT}/docs/svg/{'-'.join(name)}.svg"
- generate(
- name=name,
- background=background,
- border=border,
- theme=theme,
- comment=comment,
- )
-
- generate(
- name=f"{PROJECT_ROOT}/docs/{theme}.svg",
- background="circle",
- border=True,
- theme=theme,
- comment=comment,
- )
-
-
-if __name__ == "__main__":
- main()
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index b8ab2c8..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-[flake8]
-ignore = F405,F403
-max_line_length = 88
-exclude =
- .git,
- __pycache__
-per-file-ignores = __init__.py:F401
\ No newline at end of file
diff --git a/logo/css/base.css b/src/css/base.css
similarity index 100%
rename from logo/css/base.css
rename to src/css/base.css
diff --git a/logo/css/dark.css b/src/css/dark.css
similarity index 100%
rename from logo/css/dark.css
rename to src/css/dark.css
diff --git a/logo/css/light.css b/src/css/light.css
similarity index 100%
rename from logo/css/light.css
rename to src/css/light.css
diff --git a/src/logo.nim b/src/logo.nim
new file mode 100644
index 0000000..52d4ed9
--- /dev/null
+++ b/src/logo.nim
@@ -0,0 +1,151 @@
+import std/[os, strformat, strutils]
+import nimsvg
+
+const
+ baseCSS = slurp "css/base.css"
+ lightCSS = slurp "css/light.css"
+ darkCSS = slurp "css/dark.css"
+ version = staticExec "git describe --tags HEAD --always"
+
+type
+ Style = enum
+ stLight, stDark
+ Background = enum
+ bgNone, bgCircle, bgSquare
+ Point = object
+ x, y: float64
+ Logo = object
+ background: Background
+ border: bool
+ style: Style
+
+
+const scale = 800
+
+
+proc calcCoordinates(my1, my2, mx1, mx2, dr, gap: float64): tuple[my1, my2, mx1,
+ mx2, dr, gap: float64, mc, dc: Point] =
+
+ # not very DRY...
+ result.my1 = my1 * scale
+ result.my2 = my2 * scale
+ result.mx1 = mx1 * scale
+ result.mx2 = mx2 * scale
+ result.dr = dr * scale
+ result.gap = gap * scale
+
+ let u = (scale - result.my1 - result.my2 - result.dr) / 2
+ # v = SCALE / 2 - (self.mx1 + self.mx2)
+ # assert D_R < M_X1 + M_X2/2
+
+ # Coordinate Shape Centers
+ result.mc = Point(x: scale / 2, y: u + result.dr + result.my2)
+ result.dc = Point(x: scale / 2, y: u + result.dr)
+
+
+const coord = calcCoordinates(
+ my1 = 0.15,
+ my2 = 0.35,
+ mx1 = 0.13,
+ mx2 = 0.2,
+ dr = 0.17,
+ gap = 0.025,
+)
+
+proc drawM(): Nodes =
+ let startEndOffset = 0.15 * (coord.mx1)
+ let moveTo = Point(x: coord.mc.x - coord.mx1 - startEndOffset, y: coord.mc.y)
+
+ # path(
+ buildSvg:
+ path(d = &"""
+ M {moveTo.x},{moveTo.y}
+ l -{coord.mx2},0
+ l {coord.mx2/2},-{coord.my2}
+ l {coord.mx2/2+coord.mx1+startEndOffset},{coord.my2+coord.my1}
+ l {coord.mx1+coord.mx2/2+startEndOffset},-{coord.my1+coord.my2}
+ l {coord.mx2/2},{coord.my2}
+ l -{coord.mx2}, 0
+ """
+ )
+
+
+proc drawD(): Nodes =
+ let start = Point(x: coord.dc.x - coord.dr, y: coord.dc.y)
+ buildSvg:
+ g(class = "d"):
+ circle(cx = coord.dc.x, cy = coord.dc.y, r = coord.dr)
+ path(class = "fg", d = &"M {start.x},{start.y} a 1 1 0 0 0 {coord.dr*2} 0 z")
+
+proc addBackground(bg: Background, border: bool = true): Nodes =
+ buildSvg:
+ g:
+ if bg == bgCircle:
+ circle(class = "background", cx = scale/2, cy = scale/2, r = scale/2)
+ if border:
+ circle(class = "fg border", cx = scale/2, cy = scale/2, r = (
+ scale-2*coord.gap)/2)
+ elif bg == bgSquare:
+ rect(class = "background", height = scale, width = scale, x = 0, y = 0)
+ if border:
+ rect(class = "fg border", height = scale-2*coord.gap,
+ width = scale-2*coord.gap, x = coord.gap, y = coord.gap)
+
+proc addStyle(s: Style): Nodes =
+ var css: string
+ case s:
+ of stDark: css &= darkCSS
+ of stLight: css &= lightCSS
+ css &= baseCSS
+ buildSvg:
+ style(type = "text/css"):
+ t: css
+
+proc fname(l: Logo): string =
+ var name = @["logo"]
+ case l.background
+ of bgSquare: name.add("bg-rect")
+ of bgCircle: name.add("bg-circle")
+ else: discard
+ case l.border:
+ of true: name.add("b")
+ else: discard
+ case l.style:
+ of stLight: name.add("light")
+ of stDark: name.add("dark")
+
+ name.join("-") & ".svg"
+
+proc makeLogo(l: Logo, prefix = "docs/svg", fileName = "") =
+ if not dirExists(prefix): createDir(prefix)
+ let fname = prefix / (if fileName == "": l.fname() else: fileName)
+
+ buildSvgFile(fname):
+ t: &""
+ svg(height = scale, width = scale):
+ defs: embed addStyle(l.style)
+ if l.background != bgNone: embed addBackground(l.background, l.border)
+ g(class = "fg logo"):
+ embed drawM()
+ embed drawD()
+
+when isMainModule:
+ for bg in @[bgNone, bgSquare, bgCircle]:
+ for style in @[stLight, stDark]:
+ for border in @[true, false]:
+ Logo(
+ background: bg,
+ border: border,
+ style: style
+ ).makeLogo()
+
+ let defaults = @[
+ (Logo(background: bgCircle, border: true, style: stDark), "light.svg"),
+ (Logo(background: bgCircle, border: true, style: stLight), "dark.svg")
+ ]
+ for (logo, fname) in defaults:
+ logo.makeLogo(fileName = fname, prefix = "docs")
+
+ when defined(makeDefault):
+ Logo(background: bgCircle, border: true, style: stDark).makeLogo(
+ prefix = "assets", "logo.svg")