diff --git a/.gitignore b/.gitignore index 9881366..0eae49f 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,8 @@ var/ .installed.cfg *.egg +venv/ + # 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. @@ -69,3 +71,7 @@ target/ # Database file uno.sqlite3 + +images/api_auth.json +images/sticker_config.json +images/sticker_uploader.session diff --git a/Pipfile b/Pipfile index 5d68310..b65b22b 100644 --- a/Pipfile +++ b/Pipfile @@ -4,10 +4,11 @@ url = "https://pypi.org/simple" verify_ssl = true [dev-packages] +telethon = "*" [packages] -python-telegram-bot = "==8.1.1" +python-telegram-bot = "==13.11" pony = "*" [requires] -python_version = "3.7" +python_version = "3.11" diff --git a/Pipfile.lock b/Pipfile.lock index 8b16845..0ccfa71 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "de56c4d5f516205e99d141cd7d372f67b602b6f981306971c01ffe25a5abf5c6" + "sha256": "87f82f4abefdefd3b212fa99f5cbf6e222d6855aa7574d7a94fbf51b33cc342f" }, "pipfile-spec": 6, "requires": { - "python_version": "3.7" + "python_version": "3.11" }, "sources": [ { @@ -16,34 +16,150 @@ ] }, "default": { + "apscheduler": { + "hashes": [ + "sha256:3bb5229eed6fbbdafc13ce962712ae66e175aa214c69bed35a06bffcf0c5e244", + "sha256:e8b1ecdb4c7cb2818913f766d5898183c7cb8936680710a4d3a966e02262e526" + ], + "version": "==3.6.3" + }, + "cachetools": { + "hashes": [ + "sha256:2cc0b89715337ab6dbba85b5b50effe2b0c74e035d83ee8ed637cf52f12ae001", + "sha256:61b5ed1e22a0924aed1d23b478f37e8d52549ff8a961de2909c69bf950020cff" + ], + "markers": "python_version ~= '3.5'", + "version": "==4.2.2" + }, "certifi": { "hashes": [ - "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", - "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "version": "==2019.6.16" - }, - "future": { - "hashes": [ - "sha256:67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8" - ], - "version": "==0.17.1" + "markers": "python_version >= '3.6'", + "version": "==2022.12.7" }, "pony": { "hashes": [ - "sha256:55bb9d4d12029d8c2bbbc7a284970e72225035db7e6370c0a15ec93d1886fe88" + "sha256:5f45fc67587f4520c560a57148cc573b097d42f82f5cb200d72c957b5708198d", + "sha256:608a1c1d662983bad2590e650f2bbc1cd6ed48558894ad8f50da4739ff98f614" ], "index": "pypi", - "version": "==0.7.10" + "version": "==0.7.16" }, "python-telegram-bot": { "hashes": [ - "sha256:238c4a88b09d93c52d413bcf7e7fe14dfeb02f5f9222ffe4cafd4bd3d55489a3", - "sha256:997983e5082dc6aa811bce3a6014731201fc64b0a9c02fdb26beac686029d94b" + "sha256:534f5bb0ff4ca34c9252e97e0b3bcdab81d97be0eb4821682a361cb426c00e55", + "sha256:baeff704baa2ac3dc17a944c02da888228ad258e89be2e5bcbd13a8a5102d573" ], "index": "pypi", - "version": "==8.1.1" + "version": "==13.11" + }, + "pytz": { + "hashes": [ + "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588", + "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb" + ], + "version": "==2023.3" + }, + "pytz-deprecation-shim": { + "hashes": [ + "sha256:8314c9692a636c8eb3bda879b9f119e350e93223ae83e70e80c31675a0fdc1a6", + "sha256:af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==0.1.0.post0" + }, + "setuptools": { + "hashes": [ + "sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a", + "sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078" + ], + "markers": "python_version >= '3.7'", + "version": "==67.6.1" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "tornado": { + "hashes": [ + "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", + "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", + "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", + "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", + "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", + "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", + "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", + "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", + "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", + "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", + "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" + ], + "markers": "python_version >= '3.7'", + "version": "==6.2" + }, + "tzdata": { + "hashes": [ + "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a", + "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda" + ], + "markers": "platform_system == 'Windows'", + "version": "==2023.3" + }, + "tzlocal": { + "hashes": [ + "sha256:3f21d09e1b2aa9f2dacca12da240ca37de3ba5237a93addfd6d593afe9073355", + "sha256:b44c4388f3d34f25862cfbb387578a4d70fec417649da694a132f628a23367e2" + ], + "markers": "python_version >= '3.7'", + "version": "==4.3" } }, - "develop": {} + "develop": { + "pyaes": { + "hashes": [ + "sha256:02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f" + ], + "version": "==1.6.1" + }, + "pyasn1": { + "hashes": [ + "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359", + "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576", + "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf", + "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7", + "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", + "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00", + "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8", + "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86", + "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12", + "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776", + "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba", + "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2", + "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3" + ], + "version": "==0.4.8" + }, + "rsa": { + "hashes": [ + "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", + "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" + ], + "markers": "python_version >= '3.6' and python_version < '4'", + "version": "==4.9" + }, + "telethon": { + "hashes": [ + "sha256:613bae42acb5f2eeb1a0b92614e323021c66f374db62adf9826ea0c2c9120bb1", + "sha256:893c10f133974fba4c53eb1736b6514d596d1cd94c83436a711f3345df945199" + ], + "index": "pypi", + "version": "==1.28.2" + } + } } diff --git a/images/api_auth.json.sample b/images/api_auth.json.sample new file mode 100644 index 0000000..1996083 --- /dev/null +++ b/images/api_auth.json.sample @@ -0,0 +1,4 @@ +{ + "api_id": 0, + "api_hash": "" +} diff --git a/images/build_classic_colorblind_deck.py b/images/build_classic_colorblind_deck.py new file mode 100644 index 0000000..58f46b1 --- /dev/null +++ b/images/build_classic_colorblind_deck.py @@ -0,0 +1,92 @@ +""" +Script to build the classic colorblind deck from the classic deck. + +Requires imagemagick to be installed and in the path. +""" + + +from pathlib import Path +from shutil import copyfile +from subprocess import run + +IMAGES_DIR = Path(__file__).resolve().parent +CLASSIC_DIR = IMAGES_DIR / "classic" +COLORBLIND_DIR = IMAGES_DIR / "classic_colorblind" +COLORBLIND_OVERLAY_DIR = IMAGES_DIR / "colorblind_overlay" + +COLORS = ["r", "g", "b", "y"] +NUMBERS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "draw", "reverse", "skip"] +SPECIALS = ["colorchooser", "draw_four"] + + +def overlay_image(color, number): + base = CLASSIC_DIR / "png" / f"{color}_{number}.png" + overlay = COLORBLIND_OVERLAY_DIR / f"{color}.png" + out = COLORBLIND_DIR / "png" / f"{color}_{number}.png" + run(["magick", "convert", str(base), str(overlay), "-composite", str(out)]) + + +def create_not_playable(card): + base = COLORBLIND_DIR / "png" / f"{card}.png" + overlay = COLORBLIND_OVERLAY_DIR / "not_playable.png" + out = COLORBLIND_DIR / "png_not_playable" / f"{card}.png" + + run( + [ + "magick", + "convert", + str(base), + "-modulate", + "75,20", + "-brightness-contrast", + "0x10", + str(overlay), + "-composite", + str(out), + ] + ) + + +def convert_png_to_webp(suffix): + for color in COLORS: + for number in NUMBERS: + card = f"{color}_{number}" + png = COLORBLIND_DIR / f"png{suffix}" / f"{card}.png" + webp = COLORBLIND_DIR / f"webp{suffix}" / f"{card}.webp" + run(["magick", "convert", str(png), "-define", "webp:lossless=true", str(webp)]) + + for special in SPECIALS: + png = COLORBLIND_DIR / f"png{suffix}" / f"{special}.png" + webp = COLORBLIND_DIR / f"webp{suffix}" / f"{special}.webp" + run(["magick", "convert", str(png), "-define", "webp:lossless=true", str(webp)]) + + +def main(): + (COLORBLIND_DIR / "png").mkdir(parents=True, exist_ok=True) + (COLORBLIND_DIR / "png_not_playable").mkdir(parents=True, exist_ok=True) + (COLORBLIND_DIR / "webp").mkdir(parents=True, exist_ok=True) + (COLORBLIND_DIR / "webp_not_playable").mkdir(parents=True, exist_ok=True) + + for color in COLORS: + for number in NUMBERS: + overlay_image(color, number) + + for special in SPECIALS: + copyfile( + CLASSIC_DIR / "png" / f"{special}.png", + COLORBLIND_DIR / "png" / f"{special}.png", + ) + + for color in COLORS: + for number in NUMBERS: + create_not_playable(f"{color}_{number}") + + for special in SPECIALS: + create_not_playable(special) + + convert_png_to_webp("") + convert_png_to_webp("_not_playable") + + +if __name__ == "__main__": + main() diff --git a/images/source.txt b/images/classic/source.txt similarity index 100% rename from images/source.txt rename to images/classic/source.txt diff --git a/images/classic_colorblind/png/b_0.png b/images/classic_colorblind/png/b_0.png new file mode 100644 index 0000000..66bd07a Binary files /dev/null and b/images/classic_colorblind/png/b_0.png differ diff --git a/images/classic_colorblind/png/b_1.png b/images/classic_colorblind/png/b_1.png new file mode 100644 index 0000000..872781a Binary files /dev/null and b/images/classic_colorblind/png/b_1.png differ diff --git a/images/classic_colorblind/png/b_2.png b/images/classic_colorblind/png/b_2.png new file mode 100644 index 0000000..b8edbf3 Binary files /dev/null and b/images/classic_colorblind/png/b_2.png differ diff --git a/images/classic_colorblind/png/b_3.png b/images/classic_colorblind/png/b_3.png new file mode 100644 index 0000000..109ec13 Binary files /dev/null and b/images/classic_colorblind/png/b_3.png differ diff --git a/images/classic_colorblind/png/b_4.png b/images/classic_colorblind/png/b_4.png new file mode 100644 index 0000000..8dcfaa3 Binary files /dev/null and b/images/classic_colorblind/png/b_4.png differ diff --git a/images/classic_colorblind/png/b_5.png b/images/classic_colorblind/png/b_5.png new file mode 100644 index 0000000..3227cf2 Binary files /dev/null and b/images/classic_colorblind/png/b_5.png differ diff --git a/images/classic_colorblind/png/b_6.png b/images/classic_colorblind/png/b_6.png new file mode 100644 index 0000000..b76f291 Binary files /dev/null and b/images/classic_colorblind/png/b_6.png differ diff --git a/images/classic_colorblind/png/b_7.png b/images/classic_colorblind/png/b_7.png new file mode 100644 index 0000000..5bd36cb Binary files /dev/null and b/images/classic_colorblind/png/b_7.png differ diff --git a/images/classic_colorblind/png/b_8.png b/images/classic_colorblind/png/b_8.png new file mode 100644 index 0000000..b0be19c Binary files /dev/null and b/images/classic_colorblind/png/b_8.png differ diff --git a/images/classic_colorblind/png/b_9.png b/images/classic_colorblind/png/b_9.png new file mode 100644 index 0000000..6434768 Binary files /dev/null and b/images/classic_colorblind/png/b_9.png differ diff --git a/images/classic_colorblind/png/b_draw.png b/images/classic_colorblind/png/b_draw.png new file mode 100644 index 0000000..7717d6e Binary files /dev/null and b/images/classic_colorblind/png/b_draw.png differ diff --git a/images/classic_colorblind/png/b_reverse.png b/images/classic_colorblind/png/b_reverse.png new file mode 100644 index 0000000..1600d6a Binary files /dev/null and b/images/classic_colorblind/png/b_reverse.png differ diff --git a/images/classic_colorblind/png/b_skip.png b/images/classic_colorblind/png/b_skip.png new file mode 100644 index 0000000..9b3c278 Binary files /dev/null and b/images/classic_colorblind/png/b_skip.png differ diff --git a/images/classic_colorblind/png/colorchooser.png b/images/classic_colorblind/png/colorchooser.png new file mode 100644 index 0000000..365fe13 Binary files /dev/null and b/images/classic_colorblind/png/colorchooser.png differ diff --git a/images/classic_colorblind/png/draw_four.png b/images/classic_colorblind/png/draw_four.png new file mode 100644 index 0000000..edd4359 Binary files /dev/null and b/images/classic_colorblind/png/draw_four.png differ diff --git a/images/classic_colorblind/png/g_0.png b/images/classic_colorblind/png/g_0.png new file mode 100644 index 0000000..d19de18 Binary files /dev/null and b/images/classic_colorblind/png/g_0.png differ diff --git a/images/classic_colorblind/png/g_1.png b/images/classic_colorblind/png/g_1.png new file mode 100644 index 0000000..961722c Binary files /dev/null and b/images/classic_colorblind/png/g_1.png differ diff --git a/images/classic_colorblind/png/g_2.png b/images/classic_colorblind/png/g_2.png new file mode 100644 index 0000000..f8833f1 Binary files /dev/null and b/images/classic_colorblind/png/g_2.png differ diff --git a/images/classic_colorblind/png/g_3.png b/images/classic_colorblind/png/g_3.png new file mode 100644 index 0000000..a8f9557 Binary files /dev/null and b/images/classic_colorblind/png/g_3.png differ diff --git a/images/classic_colorblind/png/g_4.png b/images/classic_colorblind/png/g_4.png new file mode 100644 index 0000000..0142b0f Binary files /dev/null and b/images/classic_colorblind/png/g_4.png differ diff --git a/images/classic_colorblind/png/g_5.png b/images/classic_colorblind/png/g_5.png new file mode 100644 index 0000000..4c45938 Binary files /dev/null and b/images/classic_colorblind/png/g_5.png differ diff --git a/images/classic_colorblind/png/g_6.png b/images/classic_colorblind/png/g_6.png new file mode 100644 index 0000000..9df9584 Binary files /dev/null and b/images/classic_colorblind/png/g_6.png differ diff --git a/images/classic_colorblind/png/g_7.png b/images/classic_colorblind/png/g_7.png new file mode 100644 index 0000000..e6d91d5 Binary files /dev/null and b/images/classic_colorblind/png/g_7.png differ diff --git a/images/classic_colorblind/png/g_8.png b/images/classic_colorblind/png/g_8.png new file mode 100644 index 0000000..864fcf1 Binary files /dev/null and b/images/classic_colorblind/png/g_8.png differ diff --git a/images/classic_colorblind/png/g_9.png b/images/classic_colorblind/png/g_9.png new file mode 100644 index 0000000..dd4ce32 Binary files /dev/null and b/images/classic_colorblind/png/g_9.png differ diff --git a/images/classic_colorblind/png/g_draw.png b/images/classic_colorblind/png/g_draw.png new file mode 100644 index 0000000..abd17b7 Binary files /dev/null and b/images/classic_colorblind/png/g_draw.png differ diff --git a/images/classic_colorblind/png/g_reverse.png b/images/classic_colorblind/png/g_reverse.png new file mode 100644 index 0000000..4dd4cdc Binary files /dev/null and b/images/classic_colorblind/png/g_reverse.png differ diff --git a/images/classic_colorblind/png/g_skip.png b/images/classic_colorblind/png/g_skip.png new file mode 100644 index 0000000..8a09999 Binary files /dev/null and b/images/classic_colorblind/png/g_skip.png differ diff --git a/images/classic_colorblind/png/r_0.png b/images/classic_colorblind/png/r_0.png new file mode 100644 index 0000000..b518dc4 Binary files /dev/null and b/images/classic_colorblind/png/r_0.png differ diff --git a/images/classic_colorblind/png/r_1.png b/images/classic_colorblind/png/r_1.png new file mode 100644 index 0000000..2d02e4c Binary files /dev/null and b/images/classic_colorblind/png/r_1.png differ diff --git a/images/classic_colorblind/png/r_2.png b/images/classic_colorblind/png/r_2.png new file mode 100644 index 0000000..bcd0382 Binary files /dev/null and b/images/classic_colorblind/png/r_2.png differ diff --git a/images/classic_colorblind/png/r_3.png b/images/classic_colorblind/png/r_3.png new file mode 100644 index 0000000..0fa9038 Binary files /dev/null and b/images/classic_colorblind/png/r_3.png differ diff --git a/images/classic_colorblind/png/r_4.png b/images/classic_colorblind/png/r_4.png new file mode 100644 index 0000000..a1f3051 Binary files /dev/null and b/images/classic_colorblind/png/r_4.png differ diff --git a/images/classic_colorblind/png/r_5.png b/images/classic_colorblind/png/r_5.png new file mode 100644 index 0000000..6247b50 Binary files /dev/null and b/images/classic_colorblind/png/r_5.png differ diff --git a/images/classic_colorblind/png/r_6.png b/images/classic_colorblind/png/r_6.png new file mode 100644 index 0000000..6e696cd Binary files /dev/null and b/images/classic_colorblind/png/r_6.png differ diff --git a/images/classic_colorblind/png/r_7.png b/images/classic_colorblind/png/r_7.png new file mode 100644 index 0000000..3007411 Binary files /dev/null and b/images/classic_colorblind/png/r_7.png differ diff --git a/images/classic_colorblind/png/r_8.png b/images/classic_colorblind/png/r_8.png new file mode 100644 index 0000000..be42bae Binary files /dev/null and b/images/classic_colorblind/png/r_8.png differ diff --git a/images/classic_colorblind/png/r_9.png b/images/classic_colorblind/png/r_9.png new file mode 100644 index 0000000..fb24790 Binary files /dev/null and b/images/classic_colorblind/png/r_9.png differ diff --git a/images/classic_colorblind/png/r_draw.png b/images/classic_colorblind/png/r_draw.png new file mode 100644 index 0000000..dcb6e37 Binary files /dev/null and b/images/classic_colorblind/png/r_draw.png differ diff --git a/images/classic_colorblind/png/r_reverse.png b/images/classic_colorblind/png/r_reverse.png new file mode 100644 index 0000000..9e4a37d Binary files /dev/null and b/images/classic_colorblind/png/r_reverse.png differ diff --git a/images/classic_colorblind/png/r_skip.png b/images/classic_colorblind/png/r_skip.png new file mode 100644 index 0000000..c209e20 Binary files /dev/null and b/images/classic_colorblind/png/r_skip.png differ diff --git a/images/classic_colorblind/png/y_0.png b/images/classic_colorblind/png/y_0.png new file mode 100644 index 0000000..20f8973 Binary files /dev/null and b/images/classic_colorblind/png/y_0.png differ diff --git a/images/classic_colorblind/png/y_1.png b/images/classic_colorblind/png/y_1.png new file mode 100644 index 0000000..569b0f3 Binary files /dev/null and b/images/classic_colorblind/png/y_1.png differ diff --git a/images/classic_colorblind/png/y_2.png b/images/classic_colorblind/png/y_2.png new file mode 100644 index 0000000..cd59d4d Binary files /dev/null and b/images/classic_colorblind/png/y_2.png differ diff --git a/images/classic_colorblind/png/y_3.png b/images/classic_colorblind/png/y_3.png new file mode 100644 index 0000000..fa48526 Binary files /dev/null and b/images/classic_colorblind/png/y_3.png differ diff --git a/images/classic_colorblind/png/y_4.png b/images/classic_colorblind/png/y_4.png new file mode 100644 index 0000000..f575a79 Binary files /dev/null and b/images/classic_colorblind/png/y_4.png differ diff --git a/images/classic_colorblind/png/y_5.png b/images/classic_colorblind/png/y_5.png new file mode 100644 index 0000000..d54ac2b Binary files /dev/null and b/images/classic_colorblind/png/y_5.png differ diff --git a/images/classic_colorblind/png/y_6.png b/images/classic_colorblind/png/y_6.png new file mode 100644 index 0000000..ecb2700 Binary files /dev/null and b/images/classic_colorblind/png/y_6.png differ diff --git a/images/classic_colorblind/png/y_7.png b/images/classic_colorblind/png/y_7.png new file mode 100644 index 0000000..be0def5 Binary files /dev/null and b/images/classic_colorblind/png/y_7.png differ diff --git a/images/classic_colorblind/png/y_8.png b/images/classic_colorblind/png/y_8.png new file mode 100644 index 0000000..463419e Binary files /dev/null and b/images/classic_colorblind/png/y_8.png differ diff --git a/images/classic_colorblind/png/y_9.png b/images/classic_colorblind/png/y_9.png new file mode 100644 index 0000000..1d8796e Binary files /dev/null and b/images/classic_colorblind/png/y_9.png differ diff --git a/images/classic_colorblind/png/y_draw.png b/images/classic_colorblind/png/y_draw.png new file mode 100644 index 0000000..ba4773a Binary files /dev/null and b/images/classic_colorblind/png/y_draw.png differ diff --git a/images/classic_colorblind/png/y_reverse.png b/images/classic_colorblind/png/y_reverse.png new file mode 100644 index 0000000..99a7f77 Binary files /dev/null and b/images/classic_colorblind/png/y_reverse.png differ diff --git a/images/classic_colorblind/png/y_skip.png b/images/classic_colorblind/png/y_skip.png new file mode 100644 index 0000000..77df8e7 Binary files /dev/null and b/images/classic_colorblind/png/y_skip.png differ diff --git a/images/classic_colorblind/png_not_playable/b_0.png b/images/classic_colorblind/png_not_playable/b_0.png new file mode 100644 index 0000000..f7c5d4c Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_0.png differ diff --git a/images/classic_colorblind/png_not_playable/b_1.png b/images/classic_colorblind/png_not_playable/b_1.png new file mode 100644 index 0000000..3457ca5 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_1.png differ diff --git a/images/classic_colorblind/png_not_playable/b_2.png b/images/classic_colorblind/png_not_playable/b_2.png new file mode 100644 index 0000000..087bb73 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_2.png differ diff --git a/images/classic_colorblind/png_not_playable/b_3.png b/images/classic_colorblind/png_not_playable/b_3.png new file mode 100644 index 0000000..827fbc9 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_3.png differ diff --git a/images/classic_colorblind/png_not_playable/b_4.png b/images/classic_colorblind/png_not_playable/b_4.png new file mode 100644 index 0000000..6430988 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_4.png differ diff --git a/images/classic_colorblind/png_not_playable/b_5.png b/images/classic_colorblind/png_not_playable/b_5.png new file mode 100644 index 0000000..e11bce0 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_5.png differ diff --git a/images/classic_colorblind/png_not_playable/b_6.png b/images/classic_colorblind/png_not_playable/b_6.png new file mode 100644 index 0000000..8aa6153 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_6.png differ diff --git a/images/classic_colorblind/png_not_playable/b_7.png b/images/classic_colorblind/png_not_playable/b_7.png new file mode 100644 index 0000000..0e43e71 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_7.png differ diff --git a/images/classic_colorblind/png_not_playable/b_8.png b/images/classic_colorblind/png_not_playable/b_8.png new file mode 100644 index 0000000..15b0a5d Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_8.png differ diff --git a/images/classic_colorblind/png_not_playable/b_9.png b/images/classic_colorblind/png_not_playable/b_9.png new file mode 100644 index 0000000..645ad0f Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_9.png differ diff --git a/images/classic_colorblind/png_not_playable/b_draw.png b/images/classic_colorblind/png_not_playable/b_draw.png new file mode 100644 index 0000000..1e11d29 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_draw.png differ diff --git a/images/classic_colorblind/png_not_playable/b_reverse.png b/images/classic_colorblind/png_not_playable/b_reverse.png new file mode 100644 index 0000000..080c12d Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_reverse.png differ diff --git a/images/classic_colorblind/png_not_playable/b_skip.png b/images/classic_colorblind/png_not_playable/b_skip.png new file mode 100644 index 0000000..f8a6899 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/b_skip.png differ diff --git a/images/classic_colorblind/png_not_playable/colorchooser.png b/images/classic_colorblind/png_not_playable/colorchooser.png new file mode 100644 index 0000000..f8e790c Binary files /dev/null and b/images/classic_colorblind/png_not_playable/colorchooser.png differ diff --git a/images/classic_colorblind/png_not_playable/draw_four.png b/images/classic_colorblind/png_not_playable/draw_four.png new file mode 100644 index 0000000..d759a39 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/draw_four.png differ diff --git a/images/classic_colorblind/png_not_playable/g_0.png b/images/classic_colorblind/png_not_playable/g_0.png new file mode 100644 index 0000000..c004543 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_0.png differ diff --git a/images/classic_colorblind/png_not_playable/g_1.png b/images/classic_colorblind/png_not_playable/g_1.png new file mode 100644 index 0000000..060e611 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_1.png differ diff --git a/images/classic_colorblind/png_not_playable/g_2.png b/images/classic_colorblind/png_not_playable/g_2.png new file mode 100644 index 0000000..4bd463f Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_2.png differ diff --git a/images/classic_colorblind/png_not_playable/g_3.png b/images/classic_colorblind/png_not_playable/g_3.png new file mode 100644 index 0000000..b03073a Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_3.png differ diff --git a/images/classic_colorblind/png_not_playable/g_4.png b/images/classic_colorblind/png_not_playable/g_4.png new file mode 100644 index 0000000..f09b630 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_4.png differ diff --git a/images/classic_colorblind/png_not_playable/g_5.png b/images/classic_colorblind/png_not_playable/g_5.png new file mode 100644 index 0000000..478b507 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_5.png differ diff --git a/images/classic_colorblind/png_not_playable/g_6.png b/images/classic_colorblind/png_not_playable/g_6.png new file mode 100644 index 0000000..fcb4678 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_6.png differ diff --git a/images/classic_colorblind/png_not_playable/g_7.png b/images/classic_colorblind/png_not_playable/g_7.png new file mode 100644 index 0000000..f47af90 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_7.png differ diff --git a/images/classic_colorblind/png_not_playable/g_8.png b/images/classic_colorblind/png_not_playable/g_8.png new file mode 100644 index 0000000..41d1c50 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_8.png differ diff --git a/images/classic_colorblind/png_not_playable/g_9.png b/images/classic_colorblind/png_not_playable/g_9.png new file mode 100644 index 0000000..bb5e8b0 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_9.png differ diff --git a/images/classic_colorblind/png_not_playable/g_draw.png b/images/classic_colorblind/png_not_playable/g_draw.png new file mode 100644 index 0000000..b6c0cc5 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_draw.png differ diff --git a/images/classic_colorblind/png_not_playable/g_reverse.png b/images/classic_colorblind/png_not_playable/g_reverse.png new file mode 100644 index 0000000..573111b Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_reverse.png differ diff --git a/images/classic_colorblind/png_not_playable/g_skip.png b/images/classic_colorblind/png_not_playable/g_skip.png new file mode 100644 index 0000000..307728a Binary files /dev/null and b/images/classic_colorblind/png_not_playable/g_skip.png differ diff --git a/images/classic_colorblind/png_not_playable/r_0.png b/images/classic_colorblind/png_not_playable/r_0.png new file mode 100644 index 0000000..adc4e89 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_0.png differ diff --git a/images/classic_colorblind/png_not_playable/r_1.png b/images/classic_colorblind/png_not_playable/r_1.png new file mode 100644 index 0000000..aeed94e Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_1.png differ diff --git a/images/classic_colorblind/png_not_playable/r_2.png b/images/classic_colorblind/png_not_playable/r_2.png new file mode 100644 index 0000000..7edf679 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_2.png differ diff --git a/images/classic_colorblind/png_not_playable/r_3.png b/images/classic_colorblind/png_not_playable/r_3.png new file mode 100644 index 0000000..a8cd4ea Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_3.png differ diff --git a/images/classic_colorblind/png_not_playable/r_4.png b/images/classic_colorblind/png_not_playable/r_4.png new file mode 100644 index 0000000..895bf26 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_4.png differ diff --git a/images/classic_colorblind/png_not_playable/r_5.png b/images/classic_colorblind/png_not_playable/r_5.png new file mode 100644 index 0000000..ca489ca Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_5.png differ diff --git a/images/classic_colorblind/png_not_playable/r_6.png b/images/classic_colorblind/png_not_playable/r_6.png new file mode 100644 index 0000000..21e959a Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_6.png differ diff --git a/images/classic_colorblind/png_not_playable/r_7.png b/images/classic_colorblind/png_not_playable/r_7.png new file mode 100644 index 0000000..3a35cd6 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_7.png differ diff --git a/images/classic_colorblind/png_not_playable/r_8.png b/images/classic_colorblind/png_not_playable/r_8.png new file mode 100644 index 0000000..0ac35db Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_8.png differ diff --git a/images/classic_colorblind/png_not_playable/r_9.png b/images/classic_colorblind/png_not_playable/r_9.png new file mode 100644 index 0000000..a69224f Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_9.png differ diff --git a/images/classic_colorblind/png_not_playable/r_draw.png b/images/classic_colorblind/png_not_playable/r_draw.png new file mode 100644 index 0000000..771a28d Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_draw.png differ diff --git a/images/classic_colorblind/png_not_playable/r_reverse.png b/images/classic_colorblind/png_not_playable/r_reverse.png new file mode 100644 index 0000000..fbfaa4d Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_reverse.png differ diff --git a/images/classic_colorblind/png_not_playable/r_skip.png b/images/classic_colorblind/png_not_playable/r_skip.png new file mode 100644 index 0000000..914c11a Binary files /dev/null and b/images/classic_colorblind/png_not_playable/r_skip.png differ diff --git a/images/classic_colorblind/png_not_playable/y_0.png b/images/classic_colorblind/png_not_playable/y_0.png new file mode 100644 index 0000000..e0660c9 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_0.png differ diff --git a/images/classic_colorblind/png_not_playable/y_1.png b/images/classic_colorblind/png_not_playable/y_1.png new file mode 100644 index 0000000..3a272bb Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_1.png differ diff --git a/images/classic_colorblind/png_not_playable/y_2.png b/images/classic_colorblind/png_not_playable/y_2.png new file mode 100644 index 0000000..6a78a5a Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_2.png differ diff --git a/images/classic_colorblind/png_not_playable/y_3.png b/images/classic_colorblind/png_not_playable/y_3.png new file mode 100644 index 0000000..030ecca Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_3.png differ diff --git a/images/classic_colorblind/png_not_playable/y_4.png b/images/classic_colorblind/png_not_playable/y_4.png new file mode 100644 index 0000000..b5aa631 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_4.png differ diff --git a/images/classic_colorblind/png_not_playable/y_5.png b/images/classic_colorblind/png_not_playable/y_5.png new file mode 100644 index 0000000..e6b5f73 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_5.png differ diff --git a/images/classic_colorblind/png_not_playable/y_6.png b/images/classic_colorblind/png_not_playable/y_6.png new file mode 100644 index 0000000..342fa5b Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_6.png differ diff --git a/images/classic_colorblind/png_not_playable/y_7.png b/images/classic_colorblind/png_not_playable/y_7.png new file mode 100644 index 0000000..28d5fb1 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_7.png differ diff --git a/images/classic_colorblind/png_not_playable/y_8.png b/images/classic_colorblind/png_not_playable/y_8.png new file mode 100644 index 0000000..6700f41 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_8.png differ diff --git a/images/classic_colorblind/png_not_playable/y_9.png b/images/classic_colorblind/png_not_playable/y_9.png new file mode 100644 index 0000000..35b10c6 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_9.png differ diff --git a/images/classic_colorblind/png_not_playable/y_draw.png b/images/classic_colorblind/png_not_playable/y_draw.png new file mode 100644 index 0000000..d4ee571 Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_draw.png differ diff --git a/images/classic_colorblind/png_not_playable/y_reverse.png b/images/classic_colorblind/png_not_playable/y_reverse.png new file mode 100644 index 0000000..987ff4b Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_reverse.png differ diff --git a/images/classic_colorblind/png_not_playable/y_skip.png b/images/classic_colorblind/png_not_playable/y_skip.png new file mode 100644 index 0000000..1fd9aef Binary files /dev/null and b/images/classic_colorblind/png_not_playable/y_skip.png differ diff --git a/images/classic_colorblind/webp/b_0.webp b/images/classic_colorblind/webp/b_0.webp new file mode 100644 index 0000000..5a40aff Binary files /dev/null and b/images/classic_colorblind/webp/b_0.webp differ diff --git a/images/classic_colorblind/webp/b_1.webp b/images/classic_colorblind/webp/b_1.webp new file mode 100644 index 0000000..bf281a5 Binary files /dev/null and b/images/classic_colorblind/webp/b_1.webp differ diff --git a/images/classic_colorblind/webp/b_2.webp b/images/classic_colorblind/webp/b_2.webp new file mode 100644 index 0000000..879b32f Binary files /dev/null and b/images/classic_colorblind/webp/b_2.webp differ diff --git a/images/classic_colorblind/webp/b_3.webp b/images/classic_colorblind/webp/b_3.webp new file mode 100644 index 0000000..8ce30ff Binary files /dev/null and b/images/classic_colorblind/webp/b_3.webp differ diff --git a/images/classic_colorblind/webp/b_4.webp b/images/classic_colorblind/webp/b_4.webp new file mode 100644 index 0000000..3aa876f Binary files /dev/null and b/images/classic_colorblind/webp/b_4.webp differ diff --git a/images/classic_colorblind/webp/b_5.webp b/images/classic_colorblind/webp/b_5.webp new file mode 100644 index 0000000..08d4ac1 Binary files /dev/null and b/images/classic_colorblind/webp/b_5.webp differ diff --git a/images/classic_colorblind/webp/b_6.webp b/images/classic_colorblind/webp/b_6.webp new file mode 100644 index 0000000..f08fcf7 Binary files /dev/null and b/images/classic_colorblind/webp/b_6.webp differ diff --git a/images/classic_colorblind/webp/b_7.webp b/images/classic_colorblind/webp/b_7.webp new file mode 100644 index 0000000..473f86c Binary files /dev/null and b/images/classic_colorblind/webp/b_7.webp differ diff --git a/images/classic_colorblind/webp/b_8.webp b/images/classic_colorblind/webp/b_8.webp new file mode 100644 index 0000000..6ed1d90 Binary files /dev/null and b/images/classic_colorblind/webp/b_8.webp differ diff --git a/images/classic_colorblind/webp/b_9.webp b/images/classic_colorblind/webp/b_9.webp new file mode 100644 index 0000000..9fd0747 Binary files /dev/null and b/images/classic_colorblind/webp/b_9.webp differ diff --git a/images/classic_colorblind/webp/b_draw.webp b/images/classic_colorblind/webp/b_draw.webp new file mode 100644 index 0000000..c31d8d8 Binary files /dev/null and b/images/classic_colorblind/webp/b_draw.webp differ diff --git a/images/classic_colorblind/webp/b_reverse.webp b/images/classic_colorblind/webp/b_reverse.webp new file mode 100644 index 0000000..de4a6ae Binary files /dev/null and b/images/classic_colorblind/webp/b_reverse.webp differ diff --git a/images/classic_colorblind/webp/b_skip.webp b/images/classic_colorblind/webp/b_skip.webp new file mode 100644 index 0000000..ada0437 Binary files /dev/null and b/images/classic_colorblind/webp/b_skip.webp differ diff --git a/images/classic_colorblind/webp/colorchooser.webp b/images/classic_colorblind/webp/colorchooser.webp new file mode 100644 index 0000000..d468c63 Binary files /dev/null and b/images/classic_colorblind/webp/colorchooser.webp differ diff --git a/images/classic_colorblind/webp/draw_four.webp b/images/classic_colorblind/webp/draw_four.webp new file mode 100644 index 0000000..fdb4e9f Binary files /dev/null and b/images/classic_colorblind/webp/draw_four.webp differ diff --git a/images/classic_colorblind/webp/g_0.webp b/images/classic_colorblind/webp/g_0.webp new file mode 100644 index 0000000..4649ac2 Binary files /dev/null and b/images/classic_colorblind/webp/g_0.webp differ diff --git a/images/classic_colorblind/webp/g_1.webp b/images/classic_colorblind/webp/g_1.webp new file mode 100644 index 0000000..f222ecd Binary files /dev/null and b/images/classic_colorblind/webp/g_1.webp differ diff --git a/images/classic_colorblind/webp/g_2.webp b/images/classic_colorblind/webp/g_2.webp new file mode 100644 index 0000000..222c50f Binary files /dev/null and b/images/classic_colorblind/webp/g_2.webp differ diff --git a/images/classic_colorblind/webp/g_3.webp b/images/classic_colorblind/webp/g_3.webp new file mode 100644 index 0000000..28da93f Binary files /dev/null and b/images/classic_colorblind/webp/g_3.webp differ diff --git a/images/classic_colorblind/webp/g_4.webp b/images/classic_colorblind/webp/g_4.webp new file mode 100644 index 0000000..de92acb Binary files /dev/null and b/images/classic_colorblind/webp/g_4.webp differ diff --git a/images/classic_colorblind/webp/g_5.webp b/images/classic_colorblind/webp/g_5.webp new file mode 100644 index 0000000..3fd9168 Binary files /dev/null and b/images/classic_colorblind/webp/g_5.webp differ diff --git a/images/classic_colorblind/webp/g_6.webp b/images/classic_colorblind/webp/g_6.webp new file mode 100644 index 0000000..7852437 Binary files /dev/null and b/images/classic_colorblind/webp/g_6.webp differ diff --git a/images/classic_colorblind/webp/g_7.webp b/images/classic_colorblind/webp/g_7.webp new file mode 100644 index 0000000..64047ce Binary files /dev/null and b/images/classic_colorblind/webp/g_7.webp differ diff --git a/images/classic_colorblind/webp/g_8.webp b/images/classic_colorblind/webp/g_8.webp new file mode 100644 index 0000000..b235ab3 Binary files /dev/null and b/images/classic_colorblind/webp/g_8.webp differ diff --git a/images/classic_colorblind/webp/g_9.webp b/images/classic_colorblind/webp/g_9.webp new file mode 100644 index 0000000..e042e07 Binary files /dev/null and b/images/classic_colorblind/webp/g_9.webp differ diff --git a/images/classic_colorblind/webp/g_draw.webp b/images/classic_colorblind/webp/g_draw.webp new file mode 100644 index 0000000..b9c99de Binary files /dev/null and b/images/classic_colorblind/webp/g_draw.webp differ diff --git a/images/classic_colorblind/webp/g_reverse.webp b/images/classic_colorblind/webp/g_reverse.webp new file mode 100644 index 0000000..7883a76 Binary files /dev/null and b/images/classic_colorblind/webp/g_reverse.webp differ diff --git a/images/classic_colorblind/webp/g_skip.webp b/images/classic_colorblind/webp/g_skip.webp new file mode 100644 index 0000000..72b01c0 Binary files /dev/null and b/images/classic_colorblind/webp/g_skip.webp differ diff --git a/images/classic_colorblind/webp/r_0.webp b/images/classic_colorblind/webp/r_0.webp new file mode 100644 index 0000000..db75123 Binary files /dev/null and b/images/classic_colorblind/webp/r_0.webp differ diff --git a/images/classic_colorblind/webp/r_1.webp b/images/classic_colorblind/webp/r_1.webp new file mode 100644 index 0000000..3543dea Binary files /dev/null and b/images/classic_colorblind/webp/r_1.webp differ diff --git a/images/classic_colorblind/webp/r_2.webp b/images/classic_colorblind/webp/r_2.webp new file mode 100644 index 0000000..85e2c45 Binary files /dev/null and b/images/classic_colorblind/webp/r_2.webp differ diff --git a/images/classic_colorblind/webp/r_3.webp b/images/classic_colorblind/webp/r_3.webp new file mode 100644 index 0000000..3df73c5 Binary files /dev/null and b/images/classic_colorblind/webp/r_3.webp differ diff --git a/images/classic_colorblind/webp/r_4.webp b/images/classic_colorblind/webp/r_4.webp new file mode 100644 index 0000000..f46077d Binary files /dev/null and b/images/classic_colorblind/webp/r_4.webp differ diff --git a/images/classic_colorblind/webp/r_5.webp b/images/classic_colorblind/webp/r_5.webp new file mode 100644 index 0000000..95a293f Binary files /dev/null and b/images/classic_colorblind/webp/r_5.webp differ diff --git a/images/classic_colorblind/webp/r_6.webp b/images/classic_colorblind/webp/r_6.webp new file mode 100644 index 0000000..3907dac Binary files /dev/null and b/images/classic_colorblind/webp/r_6.webp differ diff --git a/images/classic_colorblind/webp/r_7.webp b/images/classic_colorblind/webp/r_7.webp new file mode 100644 index 0000000..006d5ef Binary files /dev/null and b/images/classic_colorblind/webp/r_7.webp differ diff --git a/images/classic_colorblind/webp/r_8.webp b/images/classic_colorblind/webp/r_8.webp new file mode 100644 index 0000000..9eccc84 Binary files /dev/null and b/images/classic_colorblind/webp/r_8.webp differ diff --git a/images/classic_colorblind/webp/r_9.webp b/images/classic_colorblind/webp/r_9.webp new file mode 100644 index 0000000..8ed677d Binary files /dev/null and b/images/classic_colorblind/webp/r_9.webp differ diff --git a/images/classic_colorblind/webp/r_draw.webp b/images/classic_colorblind/webp/r_draw.webp new file mode 100644 index 0000000..926eff4 Binary files /dev/null and b/images/classic_colorblind/webp/r_draw.webp differ diff --git a/images/classic_colorblind/webp/r_reverse.webp b/images/classic_colorblind/webp/r_reverse.webp new file mode 100644 index 0000000..eee9b5a Binary files /dev/null and b/images/classic_colorblind/webp/r_reverse.webp differ diff --git a/images/classic_colorblind/webp/r_skip.webp b/images/classic_colorblind/webp/r_skip.webp new file mode 100644 index 0000000..b38f25d Binary files /dev/null and b/images/classic_colorblind/webp/r_skip.webp differ diff --git a/images/classic_colorblind/webp/y_0.webp b/images/classic_colorblind/webp/y_0.webp new file mode 100644 index 0000000..442f890 Binary files /dev/null and b/images/classic_colorblind/webp/y_0.webp differ diff --git a/images/classic_colorblind/webp/y_1.webp b/images/classic_colorblind/webp/y_1.webp new file mode 100644 index 0000000..9191ee3 Binary files /dev/null and b/images/classic_colorblind/webp/y_1.webp differ diff --git a/images/classic_colorblind/webp/y_2.webp b/images/classic_colorblind/webp/y_2.webp new file mode 100644 index 0000000..b1eb84a Binary files /dev/null and b/images/classic_colorblind/webp/y_2.webp differ diff --git a/images/classic_colorblind/webp/y_3.webp b/images/classic_colorblind/webp/y_3.webp new file mode 100644 index 0000000..1464915 Binary files /dev/null and b/images/classic_colorblind/webp/y_3.webp differ diff --git a/images/classic_colorblind/webp/y_4.webp b/images/classic_colorblind/webp/y_4.webp new file mode 100644 index 0000000..3f4c3fe Binary files /dev/null and b/images/classic_colorblind/webp/y_4.webp differ diff --git a/images/classic_colorblind/webp/y_5.webp b/images/classic_colorblind/webp/y_5.webp new file mode 100644 index 0000000..8ce3c31 Binary files /dev/null and b/images/classic_colorblind/webp/y_5.webp differ diff --git a/images/classic_colorblind/webp/y_6.webp b/images/classic_colorblind/webp/y_6.webp new file mode 100644 index 0000000..ae3d7be Binary files /dev/null and b/images/classic_colorblind/webp/y_6.webp differ diff --git a/images/classic_colorblind/webp/y_7.webp b/images/classic_colorblind/webp/y_7.webp new file mode 100644 index 0000000..73dd54c Binary files /dev/null and b/images/classic_colorblind/webp/y_7.webp differ diff --git a/images/classic_colorblind/webp/y_8.webp b/images/classic_colorblind/webp/y_8.webp new file mode 100644 index 0000000..9e5b073 Binary files /dev/null and b/images/classic_colorblind/webp/y_8.webp differ diff --git a/images/classic_colorblind/webp/y_9.webp b/images/classic_colorblind/webp/y_9.webp new file mode 100644 index 0000000..05febe2 Binary files /dev/null and b/images/classic_colorblind/webp/y_9.webp differ diff --git a/images/classic_colorblind/webp/y_draw.webp b/images/classic_colorblind/webp/y_draw.webp new file mode 100644 index 0000000..4eb88c5 Binary files /dev/null and b/images/classic_colorblind/webp/y_draw.webp differ diff --git a/images/classic_colorblind/webp/y_reverse.webp b/images/classic_colorblind/webp/y_reverse.webp new file mode 100644 index 0000000..0e878e3 Binary files /dev/null and b/images/classic_colorblind/webp/y_reverse.webp differ diff --git a/images/classic_colorblind/webp/y_skip.webp b/images/classic_colorblind/webp/y_skip.webp new file mode 100644 index 0000000..e802ddb Binary files /dev/null and b/images/classic_colorblind/webp/y_skip.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_0.webp b/images/classic_colorblind/webp_not_playable/b_0.webp new file mode 100644 index 0000000..00ede3e Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_0.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_1.webp b/images/classic_colorblind/webp_not_playable/b_1.webp new file mode 100644 index 0000000..54e37c0 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_1.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_2.webp b/images/classic_colorblind/webp_not_playable/b_2.webp new file mode 100644 index 0000000..45f51f2 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_2.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_3.webp b/images/classic_colorblind/webp_not_playable/b_3.webp new file mode 100644 index 0000000..abea6b5 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_3.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_4.webp b/images/classic_colorblind/webp_not_playable/b_4.webp new file mode 100644 index 0000000..63492ff Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_4.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_5.webp b/images/classic_colorblind/webp_not_playable/b_5.webp new file mode 100644 index 0000000..09f7a44 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_5.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_6.webp b/images/classic_colorblind/webp_not_playable/b_6.webp new file mode 100644 index 0000000..a17caff Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_6.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_7.webp b/images/classic_colorblind/webp_not_playable/b_7.webp new file mode 100644 index 0000000..ab5e386 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_7.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_8.webp b/images/classic_colorblind/webp_not_playable/b_8.webp new file mode 100644 index 0000000..6e168a8 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_8.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_9.webp b/images/classic_colorblind/webp_not_playable/b_9.webp new file mode 100644 index 0000000..1c4c2a0 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_9.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_draw.webp b/images/classic_colorblind/webp_not_playable/b_draw.webp new file mode 100644 index 0000000..b372e10 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_draw.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_reverse.webp b/images/classic_colorblind/webp_not_playable/b_reverse.webp new file mode 100644 index 0000000..9e1724c Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_reverse.webp differ diff --git a/images/classic_colorblind/webp_not_playable/b_skip.webp b/images/classic_colorblind/webp_not_playable/b_skip.webp new file mode 100644 index 0000000..670d29b Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/b_skip.webp differ diff --git a/images/classic_colorblind/webp_not_playable/colorchooser.webp b/images/classic_colorblind/webp_not_playable/colorchooser.webp new file mode 100644 index 0000000..63ab615 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/colorchooser.webp differ diff --git a/images/classic_colorblind/webp_not_playable/draw_four.webp b/images/classic_colorblind/webp_not_playable/draw_four.webp new file mode 100644 index 0000000..af047a2 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/draw_four.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_0.webp b/images/classic_colorblind/webp_not_playable/g_0.webp new file mode 100644 index 0000000..3704469 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_0.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_1.webp b/images/classic_colorblind/webp_not_playable/g_1.webp new file mode 100644 index 0000000..3a0eadb Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_1.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_2.webp b/images/classic_colorblind/webp_not_playable/g_2.webp new file mode 100644 index 0000000..faec0a3 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_2.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_3.webp b/images/classic_colorblind/webp_not_playable/g_3.webp new file mode 100644 index 0000000..c1714c9 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_3.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_4.webp b/images/classic_colorblind/webp_not_playable/g_4.webp new file mode 100644 index 0000000..033f376 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_4.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_5.webp b/images/classic_colorblind/webp_not_playable/g_5.webp new file mode 100644 index 0000000..8fb7b38 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_5.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_6.webp b/images/classic_colorblind/webp_not_playable/g_6.webp new file mode 100644 index 0000000..571d1fb Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_6.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_7.webp b/images/classic_colorblind/webp_not_playable/g_7.webp new file mode 100644 index 0000000..a8fbd18 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_7.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_8.webp b/images/classic_colorblind/webp_not_playable/g_8.webp new file mode 100644 index 0000000..00e7d85 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_8.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_9.webp b/images/classic_colorblind/webp_not_playable/g_9.webp new file mode 100644 index 0000000..d125b07 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_9.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_draw.webp b/images/classic_colorblind/webp_not_playable/g_draw.webp new file mode 100644 index 0000000..f79a910 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_draw.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_reverse.webp b/images/classic_colorblind/webp_not_playable/g_reverse.webp new file mode 100644 index 0000000..84a4e63 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_reverse.webp differ diff --git a/images/classic_colorblind/webp_not_playable/g_skip.webp b/images/classic_colorblind/webp_not_playable/g_skip.webp new file mode 100644 index 0000000..bc729e4 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/g_skip.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_0.webp b/images/classic_colorblind/webp_not_playable/r_0.webp new file mode 100644 index 0000000..6140d26 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_0.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_1.webp b/images/classic_colorblind/webp_not_playable/r_1.webp new file mode 100644 index 0000000..9a94bf7 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_1.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_2.webp b/images/classic_colorblind/webp_not_playable/r_2.webp new file mode 100644 index 0000000..5f364cb Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_2.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_3.webp b/images/classic_colorblind/webp_not_playable/r_3.webp new file mode 100644 index 0000000..34d6d4b Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_3.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_4.webp b/images/classic_colorblind/webp_not_playable/r_4.webp new file mode 100644 index 0000000..96e8932 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_4.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_5.webp b/images/classic_colorblind/webp_not_playable/r_5.webp new file mode 100644 index 0000000..0ed0aa4 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_5.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_6.webp b/images/classic_colorblind/webp_not_playable/r_6.webp new file mode 100644 index 0000000..249d3fe Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_6.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_7.webp b/images/classic_colorblind/webp_not_playable/r_7.webp new file mode 100644 index 0000000..8596673 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_7.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_8.webp b/images/classic_colorblind/webp_not_playable/r_8.webp new file mode 100644 index 0000000..af91f5a Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_8.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_9.webp b/images/classic_colorblind/webp_not_playable/r_9.webp new file mode 100644 index 0000000..cf24b62 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_9.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_draw.webp b/images/classic_colorblind/webp_not_playable/r_draw.webp new file mode 100644 index 0000000..eae6b44 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_draw.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_reverse.webp b/images/classic_colorblind/webp_not_playable/r_reverse.webp new file mode 100644 index 0000000..d0b98c1 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_reverse.webp differ diff --git a/images/classic_colorblind/webp_not_playable/r_skip.webp b/images/classic_colorblind/webp_not_playable/r_skip.webp new file mode 100644 index 0000000..ca4085e Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/r_skip.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_0.webp b/images/classic_colorblind/webp_not_playable/y_0.webp new file mode 100644 index 0000000..f8ff9e5 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_0.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_1.webp b/images/classic_colorblind/webp_not_playable/y_1.webp new file mode 100644 index 0000000..6ffebfb Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_1.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_2.webp b/images/classic_colorblind/webp_not_playable/y_2.webp new file mode 100644 index 0000000..8d97d2b Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_2.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_3.webp b/images/classic_colorblind/webp_not_playable/y_3.webp new file mode 100644 index 0000000..94e0c61 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_3.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_4.webp b/images/classic_colorblind/webp_not_playable/y_4.webp new file mode 100644 index 0000000..b5df8a0 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_4.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_5.webp b/images/classic_colorblind/webp_not_playable/y_5.webp new file mode 100644 index 0000000..97674e2 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_5.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_6.webp b/images/classic_colorblind/webp_not_playable/y_6.webp new file mode 100644 index 0000000..308974b Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_6.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_7.webp b/images/classic_colorblind/webp_not_playable/y_7.webp new file mode 100644 index 0000000..60a6cd9 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_7.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_8.webp b/images/classic_colorblind/webp_not_playable/y_8.webp new file mode 100644 index 0000000..a7c655b Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_8.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_9.webp b/images/classic_colorblind/webp_not_playable/y_9.webp new file mode 100644 index 0000000..3cc52c4 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_9.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_draw.webp b/images/classic_colorblind/webp_not_playable/y_draw.webp new file mode 100644 index 0000000..e856663 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_draw.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_reverse.webp b/images/classic_colorblind/webp_not_playable/y_reverse.webp new file mode 100644 index 0000000..40f4555 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_reverse.webp differ diff --git a/images/classic_colorblind/webp_not_playable/y_skip.webp b/images/classic_colorblind/webp_not_playable/y_skip.webp new file mode 100644 index 0000000..dfb4328 Binary files /dev/null and b/images/classic_colorblind/webp_not_playable/y_skip.webp differ diff --git a/images/colorblind_overlay/b.png b/images/colorblind_overlay/b.png new file mode 100644 index 0000000..a2d8c6c Binary files /dev/null and b/images/colorblind_overlay/b.png differ diff --git a/images/colorblind_overlay/colorblind_overlay.ai b/images/colorblind_overlay/colorblind_overlay.ai new file mode 100644 index 0000000..1e11c54 --- /dev/null +++ b/images/colorblind_overlay/colorblind_overlay.ai @@ -0,0 +1,440 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[21 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator 27.4 (Windows) + 2023-04-08T18:52:11+02:00 + 2023-04-08T18:52:11+02:00 + 2023-04-08T18:52:11+02:00 + + + + 256 + 72 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7Jret6dDp2natq2nHXtT 14htI0hhyhihajxqsbh0WRUdfUk4lmYkA8KBdhoNAdQZEyEYRFkljKVJXrvmFdBt47jVfy5s7aCU 8Ul9S2kXkRWhMcDcT7HNhpux8GckY81kf0D+ksDMjmEng/NPys88aDyTYqWZQGDQ1BJ6/wC8+Zcv Zihfif7H/jyPG8ln/K1fKv8A1JFj/wAFD/2TZL/Qv/tn+x/48vjeScaX5ottUtBd2H5fWE1uX9IN 69op59l4tCrVPYU3zDzdi4sUuGeWjz+g/rSMhPRPvL2sadJpw1zRLNtLW3uks9b0U/DCoZ1R3WNQ FSSL1OfJVBcAqwrxK6vXaI6efCTxAiwR1DOMrZNrkt3cXllo9rM1sbwSz3VzHQSLbW5QSJG2/F5H mReVKheRUhuJzCZMNtLzS76a5j0DyRb6pZ2rmJr6YwRtI69SWmR2cnrUsWPfMcZifpFu9l2RixRj 42UQlIXXCZfcUkufPvl21uJLe48j2cU8TFZI39IMrDqCDb5WdXXR2EPZeM4iUctg/wBH/jzR/MTy sIEb/BtjQswC1hoCAu/+8/euD835J/0K714n+x/48utPPnly7uY7aDyVYNNKeMaloFBJ7VaADCNX fT7UZPZgQiZSy7D+h/x5ORqOiR3ttbaz5Ot9JhuJvq8eoW7ws8U52WkkCRvEw/mDBh1GWDOQdxTr 5djwlAyxZOOURdcJjt5WzXQpruKW70q8la4msGQwXL/bltpgTE7025qyvGT+1x5bVpmQ6Ji+q6hp /wBQh17WbU6w+pyD9B6QwDwpCw/csIyGUySJR2cqzAtwXYZVly8A72nNmEB3koHVdQg0m1W61DyB Zw27kAScrdwCegbhC3H6cpnqJRFmP2tE9VOAsw+1KP8AH3lX/qTbH/kj/wBk+V/nvL7Wn+Uf6P2/ sXzefPKyzSKfJ9ixViCx9GpIPX+4xOt8vtSe0P6P2/sRmm+YdK1JHktPI9i8UZCvK7W0aciKheUk KgsfAb5OOqMuUftZw1kpco/am2n3llFZXOtaPZHR7jSZCNc0VKLDJCN5m9NQE9VUq6OqhmK8T8Jy /Fl4h3EOThzcY5UQyjXZrySWz0uylME98zGe4X7cVtEAZXSoI5FmSMHty5dqZa3MfitNCluJoNN8 r2+orbtwlvLj02eR12JeWZZHkbb7TMWPfNMO1Mk5yjhxmYjtfEA7H8jGMQck+EnpVoCfU/LlvM8M /lKyjlQ0dGjhBB/5E5g5PaKUJGMsVEf0v+OuVDsgSFidj3ftWjWvK3psf8L2NKiq8IaE0O/9zkP9 E3+1/wCy/wCOp/kXf6/s/a6PV/K8kixr5VsOTkKtVhAqTTqYqYY+0pJoY/8AZf8AHVPY1CzP/Y/t R6QeX5JpYbvyvaWiQMqz3EXoCSFmFVZWRY3B3qChqO2+ZsO2J8RE8fCI1xHiBq/L9Tiz0EeEGM+I nlsd2QaHLd297e6NdTPcmzEU9rcyUMjW1wXCJIwpyeN4XXlSpXiSS3I5vHWvlL80vO+v+fvOlzpl vI0mk29zJbaVpys/oskLGP6xIoWrPKRUclqvIKO5MtNpp6nL4cDXUk8gB1L0uCGHSacZskeOc+QQ Wr/kb510ewW/1KwhgtGoDJxV+JbpzCFin+yAzY6fsSGWXBDNEy9x/Baj7QQH+RH2fqSL/A9x/Pbf 8izmd/oSyf6oPkWP+iPH/qUfx8F0vkO5jleMvbEoxWvpnsaYI+ymQi/EHyK/6I8f+pR/HwW/4HuP 57b/AJFnD/oSyf6oPkV/0R4/9Sj+Pgmvkzzn5i/LfzFHc20h+pVV9R05GJt7m3Jo/wAB4hZVCng9 KqfFSQdHrtDk0eQQmbB5Fyv3GvwSnCPBkh+Pjb6Uj4fpf8suVKfUrnr4/UY6fjmy0X+KZ/8AM/3T ykvqDDIl1Rfy+85fpMTAm8thD9Y5V9X6wPU48/2qU5UzoZGH5vBwV9MuXdw7NX8Jef2f+9cH/GRf +JDN9k+k+5qCjk1Z/wCUNQ0zTfLvp313b21yNRhvFiu7a5lASFGXbhGV5kn4fizRa/FPJmuIkRwG PplEcz5nl3tkTQZZ5MubS68t+arqzMjWs+qGSFpTWQq7RsC3ua5oO3ISiccZVxDGOTbj6s/uf+Uq 07/mBvv+T1pmibHlmqJqr+SNA/RQmLi9u/V+r8q+t67ely496dM18r4BXeXu9OcY1eXxK+iNX3cI tLPzU9P/ABvfcKV4w86fzekvX6MhqfrLl+z9/lI35/eWMN/vJH/xkf8AUmUu2H1H3D9KI0RAdVtH dvTijmR5JSrsFVWBqQiu3bwww5tWqP7uQG5IPd+mmZ65ruk38wgsZIoZP0yLiSKOOZfrKOR6crGR dnTkwZTQeHbMicweXe6PS6TLjHFMEjwa3MfSeo26Hajv5vUrb/lKtR/5gbH/AJPXebB4Riyenw/L 3nTj6K0r4/VU4/jmPl+uLi5/rh7ykNuupjRvOh1ETegWXj63Lj6vqmnHl3+z09sxRfDO3DHFw5Le f5hOAq3X+9U3+u36zhPNMubI9Mm02fQbfTtQkFoLW8NyfWSb0po5FVSOUKswZeO2XxIMaO1FyIEG AB2osl0Kaxn0TzzLYM72jwSGF5SzOR6Eu7FyWNffMzSkEyrk52jIJlXK2dXP/KVad/zA33/J60zL c5il4Lk+Wx9WDlv0hJz9Ota78a8foziMwkdJ6b/vTy+x6TFw+P6v9THNCedP+O2a/b9KPn41498o 7b/xg9/DH7m7sz+6+JSUf3Lf6y/qOaro53VaqsxooJPtvgASTSealqKz2OnxCZXuBx+uqFcOXT4Y y5YAHim3XrXNpqtSJ44CwZfxc7sbRuxvUdvm4GDDwzma2/h5fGviza2/5SrUf+YGx/5PXeegPKvk n8q+P/K37HlSn1yTr4/W46Zm9kc83/CpfeHoe2P8Vw/jo9ht11hP+VifpITC3Mc3Ez8vTMhkb0uP L4fskcadqUzpZHGfy3BV2OXu3/a8vvu8qzp2lWvP965/+Mjf8SOQx/SPcpWtBOqc2jYJ/MVIG/vh EhytWF+eP96E/wCYaT9ecT7W/wB5j9x+96v2c/u8v9X9b378zrie28ueRLi3kaKeKzLxyISrKyxW xBBGZXszESGUEWDw/wC+eby9GH6j5m83eZ2ttPu7ua/bmBb2yqo5OdgeKBeTe5zoMWj0+mucQI95 /tajIl6L5T/JmztI4tQ803AVwVZbJHCIp7CSX9o+y0+Zzn9d7QSmTDAPj+ofrbY4u96Vo+ieX9Pg Q6TZ28EZHwywKtWHjzG7fSc5zUajLkP7yUifP9TaAByR88EFxC8M8aywyDi8bgMrDwIOxymMjE2D RSw8+WLLy/pGuQWI4Wl1NFdRQ/775FFZBXtyQke2Zms1ks4iZfVEV72MY0n1z/ylWnf8wN9/yetM wWTwey81eYdGluotMvXt4pZGLxgKy1rTkA4YA+4zUxySjyL6hl7PwZxE5IiRA/HJGeWvJuvebLyS 5LlbdnJudQmq1WO5493b/MnJY8Uplo13aeHRxEf4ukR+Ng9V0LyF5O0vhb+nFfXiEsWuSsj8qCtI z8I6eFczYYYDzLx+r7X1Wa5WYR/o7fayqOOONAkahEXYKoAA+gZe6cyJNlIvNflfTtXthcPEq39o VmguQAH/AHZ5cCe6tSm+VZcYkPN2HZ+vyYZcIPolsR7+qKtv+Uq1H/mBsf8Ak9d5a655x54kki8o eTpY2KSJaxsjqaEMIYiCCO4zB1p5Ou7QNcLF7/zL5m1uOKxuruW7SoEcCqBybtUIAXPzrmHLLOex NuDLNOexNsz8uflREkK3vmOb012b6mjBQB/xZJ/BfvzKxaTrJzMOh2ub0LTdI0O0Xnp9rBHX/dsa qWJ936n78zYwiOQc+GOI5AI2SOORGjkUPGwoyMAQR4EHJkNhFsQv/Ltno2keazZJ6dreWDyrEOiO IZgwX26HKseMRJrq0YsQhI1yKeXP/KVad/zA33/J60y1vefprGp6feXQs52iDyPyUUIO53owIrnn MNblwzl4cqsl7A6bHkjHiF7L9L0bVNdu3kqSpas91JUgH+J9snpNFm1cyfnIsc+px6eNfIM003yt oNlSNwtzc7EmYg7+ydBnVaXsnTYtjU5+f6nRZ9fmybj0x8v1p5HHHGvGNQijoqgAfhm3jERFAUHX kk80v1zRrTUbVuaAXEY5QzAfECu9K+B75g9oaGGeBseoci5Ol1MsUtjseYWW3/KVaj/zA2P/ACeu 82Divi3Q2ZfN14ykqy/WirDYgi4TcZuvZYXqZ/1D98Xf9t/4nh/HR6NqXnLzdrdpHpl7fzXcBKql uAKu1fhDcAGkNenKudjh7P0+GRnGIie/8cnlTIlnflL8llNuuo+aZvq0VA/1FGCkL/xdJ+z8l+8Z pNd7Q78GAWe/9QbI4u96jo+geWbFPU0qztk3P7+JVZya71k3Y/Sc5nUarNPbJKXuP6m4AdE0dEdG R1DIwoysKgg9iDmMDW4S+TP+cmPK+n6H5pt5NPjEFtf2MkpgXZUkDkPwHZTsaZZr9ZPNGAmbMbF+ T0XYEahl/q/regfmr/yi3kf/AJgW/wCTNtnT+y/+U/zf988vm6M1/LDyHb+XtLGr6hHXV7iPm3Ib wREV9MD+Yj7X3fPB7Z7TOon4cD+7B+Z7/wBXzZY4VuwbRdO1v8zPM13f3d4bawsmV0UjmI1Zj6cU aVUVonxNm61GXF2dhEIxuUvt7yWsAyKpaw63+W3nazsRdG60q/ZOYAKrJG78CShJCyId9j+vIzli 7R00pVwzj9h58+4rvEvdM4lyEg8xXEcthqkaGrQC3ST2YuH/AOIsMslAiIPfaEVc/wDKVad/zA33 /J60ytLxLyn5Um8yeY5LYkpZQu0l5MOoTkaKv+Ux2H39s1eLHxyp9K7R7QGlwCX8RFRH47noP5n6 zL5c0Cx0nRx9TW65xq0XwlIogvJVI3BYuN+vXMrUT4IgB5rsHSjVZpZMvq4a59Sf7EhuPyk1OHy+ b43w/ScKtctb8TSvEMUEnKvIcetOv35UdMeG73djD2jxyz8HD+7Ppv8ATXcyr8q/Mt7rOiSw3zmW 6sHEZnbdnjYVQse7ChFcv02QyG/R0/tBoYYMwMBUZi67j1ZXqk6QadcysaBY2pXxIoo+knLpGg6f BAymB5oS2/5SrUf+YGx/5PXeSaXm3nz/AJQzyj/zCJ/yYizB13IOu7R5Bkv5a+TI9Nsk1a9jB1G5 XlCrD+5iYbU/ymHX228cnpcHCOI82ej0/COI8yxaG31X8wfMd1zujb6bbEtGPtKiV4oFSoqzUqT/ AGDMcA5pHfZxgJaiZ32C69i1XyD5mgkjujPp943qSIAVV05UdWSp+Ja7H+0YyEsM+exWQlgnz2L2 DNm7dIPNE4bSPMMANTHpbsR4c45x/wAa5EHdiD6iPx1RVz/ylWnf8wN9/wAnrTJMmB6do8uq65Lb KeMYkdppP5UDb/SegzzzS6KWo1BgOVmz3B63NqRhwiXWtmVeabz9CaNBZ6cPQMpKKy9VVRViD/Ma 9c6PtfP+UwRx4vTxbfDr8fN1GgxePlMp70lUXka8k0v6yLkfW5FEyw09iQvOvXfwzWw7AySw8fF6 yLr9ve5cu1YjJw16Rtf7E38j6xcX1nNb3LmSS1K8ZGNWKNWlfGnHNn2BrZZYGEjZhW/kf1OH2rpo 45CUeUmQXkqxWk0jdERmP0CubrPPhxykegLrccbkB5pfbf8AKVaj/wAwNj/yeu8tYPizRf8AlLL3 5Xf/AFEJm69lv8an/UP+6i7/ALb/AMTw/jo+mvyg8gR2FnH5h1GOt/crWyjYf3MTdH3/AG3H3L8z mV292mckjhgfSOfmf1D73m8cOrGbqHW/zJ87Xlibo2ulWDPwBBZY40fgCEBAaRzvuf1ZsoSxdnaa Mq4py+08+fcGG8ip61p2t/ln5mtL+0vDc2F6zO6gcBIqsPUikSrCtH+Fslp8uLtHCYSjUo/Z3EKQ Yl7vG6yIrrurgMp9jvnEEUach8w/85aTqfM2lQftJpkrkezysB/xDKc0dgfP9T0fYX0Zf6v63rba DBrM/wCX6Sxl7e0sHu5ASKUiituIbb4quy5u9DqTh0+UjnLhj8+L9FvMyFkM+vf945/+Mb/8ROaz H9Q97MvLvyDaE2usiNWWjwVDMG7SeAXOm9pweKF+f6GnD1UfzhaEebvLwdWZqLTiwFP3w7EHJ9g3 +Xy1+Nlycw9ZuLiG2t5LidxHBCpklkbYKqipJ+QzlYRMiAOZbnm/lnXBrugeZ9VKsoudQUorEEhF ESxjYdkUZuO2NN4Hh4+6H6Tf2teM3ZZxc0/xTp+2/wBRvaHtT1rTNK2JX+XeiQ6boInCFZ9QdrmU k1PEk+mK0G3Df6cpwQqPvdv21qjlzVe0BX6/tYt+d5iH6F9RWb/emnFgv++fENlGr6O39lb/AHlf 0f8AfPR9Vp+i7yvT0JP+IHMuXIvL6f8AvI+8fe89/JMxG11b01ZfjhryYN2fwC5i6Tq9L7U3xY77 j+hN/wAydfhtIdP0lTWe/uYmkVTQiKORWqdj9pwB9+WaidUO9wuxNGZmeXpCJ+ZH6mQW1P8AFOoe P1Gy/wCT13mQ6FizaPDq1l5HtpULW6WyTSiopwjgiajbbhjRfpzHzQ4pRDi58fHKILPsyHKeX/k0 Yjc6pwVl+CGvJg3d/ALmv0XMus7P5l35ymIXOl81ZvgmpxYL3TxDY63mF7Q5h6e7oiM7kKiglmOw AG5JzYOzedWGtJrOl+eL9A3pPbusVT/utLeVUoKbVArmLp58UpFw9Nk45SLMbmn+KdP8fqN7/wAn rTMpzFHyrp0dtaTXPGkt3K7sTueKsQo7e5+nNP2NphDGZ9ZyPyB2c/X5jKQj0iAlX5iFPSseQJ+K SlDTsvsc1/tLVY/879DmdjXcvgyqx/3it/8AjGn/ABEZ0Wm/u4/1R9zqMv1n3sP/AC74etfcQR8M damvdvYZzHs19U/cP0u67Zuo/FNvOWppbWCWoNZbtwtAaEIpBY9/lmx7d1Qx4hDrM/Z+NnD7NwGc zLpH70XbU/xTqHj9Rsv+T13m8da+TPyq0KLXPzXGnTKWt3a7ecA0/dxzq7A7ftBeP05mdkak4Z5J jn4Zr3mUXoe2Bekw/jo+yFUKAqgBQKADoBmG888i/J5oT5u8whFZWo1eTA1/fHsAM6zt6/y+K/xs 04+ZVvz8aEWujCRWarz0CsF7R+IbIezAPFOvL9K5uj1G0ZVsoWJooiUknsOIzmZj1H3tofHX59eY o9f85XN9CSbZLd4LYk1BiiPEMuwoGNW+nM3tjSHBDFE86JPvJ/Aeh9n5XDL7v1vrHyrbo3l/Qrg/ bj02GNflJHET/wAmxmCJekj8df1vPp0yqylWAKkUIO4IORV4mPL/AJ48g+ZJp9CtmvdJu2C1WNpk MXL4RKqEMrJX7X9SM7L81ptdhAynhyR8638vf3NFGJ2VdB8secvOPmu31/zNA1pZWpR1jkQxBljb msUUbfHxLblj9+R1Os0+kwHFhPFKXx59SeSiJkbLf5ufmNFdo/l7R5hJb1/3IXUZqHIP90hHUA/a I69PHHsLskx/fZBv/CP0/qXJPoF/5Xf+S/1r/mMT9UWYftN/fR/q/pLLDyenXP8AylWnf8wN9/ye tM5ttR9lGsVnBGv2UjRV+QUDAOTZllcifNi/5keULjzFpUTWdDf2TM8CMQA6uAHSp6E8QR8spz4u Mbcw7bsTtKOmyHj+iXPy7iwuTXPzQl0caCdPm9Vw1u8/oOJvTAA3krwoQSOVPpzH48lcNO+jpOzx l8bjFc64hV+7n8PsZN5etbL8vvKkt1q8g+u3L85IkILM9KJCnjTuenXtl0AMUbPN1OsyT7S1IjiH pj1+8l5fda5e655qh1G7P7yW4i4IPsogccUX2A/rmEZmUrL10NJDT6Y448hE/E1ze723/KVaj/zA 2P8Ayeu82z5ehvK0QOjeX5abppcaV/1kgP8Axrka3Ykbp9kmTye/0TzZ5P1+41HQrdrqwuC1FVDK vBjy4SIvxDiejD7+ozXSxzxSuO4dVLHkwzJiLC6DQvNXm/zHFea1A1rp1q1KMhiUxq1eEat8RL92 /sGIxzySuXJIxZMs7lsAivzM89RGKXQtMk5s3w386nYDvEpHf+b7vHJarP8AwhlrNT/BH4pb5D/5 Qzzd/wAwj/8AJiXDoeRT2dyL0m5/5SrTv+YG+/5PWmZzsUwtECWsKjoEUfhlWCNQiPIM8huRSvzV oj6rp4SGguYW5xV2B2oVr75r+19AdRiqP1x3H6nL0GqGGdn6TzY0up+cY7A6b9Vk5ACJZPSYycKE bN9noPtZoBqtcMfg8J7r4Tde/l8ftdocGlM/E4h389k30Ozh8taRNdai4SaYgvGCCfhB4ovi25zZ 6DDHQYDPKalLp9w97h6rIdVlEcfIfi2HajqlxqeqfWptuTAInUKgOyjOX1Wrlny8cv7B3O7w6eOL Hwh6Hbf8pVqP/MDY/wDJ67z0l4585f8AON6I35uasWFSlhfsp8D9dtxX7icpxH1F6Ttb/FcP46Pq LLnm3jGveWPOXk7zXca/5Zga7srou7RxoZQqyNzaKWNfj4htww+/Ow02s0+rwDFmPDKPw5dQeTQY mJsKR8v+ePP3mSGfXbZrLSbRitWjaFBFy+IRK5LMz0+1/QDJfmtNocJGI8WSXne/n7u5aMjumv5s /mNBb203lrR5Abhx6V/cJ9mNOhhWn7R6N4Dbr0xuw+yTKQzZOX8I7/P9Sck+gfM/nj/ehP8AmGk/ XmP7W/3mP3H73pPZz+7y/wBX9b6ruPOsXlfT/JbXYZtOvdP9O6KipQrFblJKd+NTUeBzE7P7OOpx 5OH648Nf7LZ56UqIZRF558mywiZdbsgjCoDzxo1PdGIYfKmY0uzdQDXhz+RTxjvSzUfzX8k2bCNL 367MxCrFbKXqSafbPFP+GzJxdiame5jwjz/FoOQPLPOP5ua5rsb2dkv6N05wVdEassins8m1AfBf prnT6DsLFgPFL1z+wfBplkJS/RPy11vVtOgvlubO0+u8v0fb3Uvpy3HA0PpqA3+ftvl+o7XxYpmN Slw/UQNo+9AgSzT8uLW4tPJPmC1uUMVxBfiOaM9VdPTDA/IjOd9o5ieSEo7gw/SW3Fyek3P/AClW nf8AMDff8nrTOdbUg8qfmPod3Zra6ldR2V/bfupPWYIjhDxDq5+HcDcHvmPizxIo83fdodiZoS4s cTKEt9uY8qTq487eUbdOUmr2rD/iuVZT90ZY5Yc0B1cCHZepkdscviK+9iuvfnFpdvARo8DXkrFl WaUGOIEAGvE/G3XptlE9UBydxpPZrJI/vTwjuG5/V97zdpvMfnHXY4nkN1fTkiNSeMcaD4jQdFUD /MnMS5ZJeb1Ajg0OEkDhgPmf1lH3XkvUdGudPvjcW19ZPdRwtc2knqKkoYVRthQ7ZI4jGjzDj4+1 IZ4zhUoT4SakKsd72i2/5SrUf+YGx/5PXebR84Yw3mdPL+jeULidS1pPYrDcBd2CmGEhgP8AJI+7 MfNl4CD0cbPm8MxJ5Mlh83+VpollTVrQKwqA8yI30q5Vh9IyYzQPUNgz4z/EEBqP5j+UbJSfrouX 7R26mQn/AGWyfe2QlqYDq1z1eOPW2A+a/wAztW1Ay2Vgv1C0qUdlNZnANN224g+A+/MPNqpS2Gwc DPrJS2GwSnRvI2q6pYx3ontrSGdjHaC5k4NM4NCIwA1dxTK4YDIXsGrHppSF7D3si8oWVzY+V/Ol pdIY7iC2kSRD2IglzL0cSOIFzdDEx4gXodz/AMpVp3/MDff8nrTM12CC0XzXp7q1peSrb3EDGMM5 ojKpoDyOwNOtc0Wg7YxkcGQ8Mo7b8i7PU9nzHqiLBTKXzDocS8mvoCP8l1c/ctTmwn2lp4izOPwN /c4sdHmP8Mvkk+pefLCKNvqCG4kBADsCib133+I9PAZqtV7Q44j90OI952H6/uc7B2TMn1nhH2sQ mutV17UY0djNPIeMUY2VR1NB2AHXOanlzavKAfVI8g7mOPHp4EjYBXvfLl5YIlyZYbiESCOR4H58 Hr9lthTLNR2bkwjjuMo3R4TdHza8WtjkJjRBq9+rO7b/AJSrUf8AmBsf+T13nobyb5Q/KbzYPLH5 nXOoSRmW1kjvILtF+36T3MbErXuGUH36Zldk6H8zknAGpcNj32Hoe2JVpMP46Pqe089+TLqBZo9a s0VtwssyROPmkhVh92WT7N1ETRxy+AJ+55zjHel2p/mt5GsEJ/SIupB0itVaUn5Nsn3tl+HsTUzP 08Pv2/ag5AHm/nP849Z1EzWGkIdNtASjzBq3DgGmzD+7/wBjv750XZ/YGPHU8nrl9n7fxs1SyE8m P+Xvy+1fW7BdQ+tWlhazSehayXsvp+vL04RgBid9sz9V2pjwz4KlKQFnhF0PNjGBLzD8zdLvdK1m XT76P0rq2gkSVOu9agg9wRuDnK+02aOU4pxNxMT971Ps6Khl93630X5gtrW5P5aW91bi6glg4NAx AVqw24HKpFQDQkd+mWdjzlHBnMTwkCO/+mebnzDF/P0SxeXdJZYLZZJbm7W4uILGOyZvR4CMUChw AHbvQ/Rm97Lleae8toxoGZlzu+vua58mEWf+9cH/ABkX/iQzc5PpPuawo5NXrK6Fq2tw+Q7/AEmP 6xa2UcMd3MjACF4ZVL896inE5yx1OPCdRDIalImvOw3UTVJ7oc8M+m+cpoXEkT6u5R1NQRyj3BzT 9rRMY4QefhhnDqzS5P8AztWnD/lxvv8Ak9aZp2x515R0uwuYNMkvreJ3fULlIGW1SYSRAUeO5YgB fjNUZqnwzBxRBq+97PtHUTgZiBP93G/URR6GPw5jZ5tdPI9zK8ihZGdi6qqoASdwEUKq/IDMQvVY wBEAcq9/2tt/vJH/AMZH/UmKB9R9w/Syj8rZI182RozhGmgmiiqaVdk2H4Zdp/qdR2/EnTE90gU4 tNJ1DRfJgtNUiNrc3WsW5ghcgswXjUgKTt8JywRMYUe9wcuohn1XFjPFGOKVn5vTbb/lKtR/5gbH /k9d5nvEMI1ZIZNI8hiW1N7C0MQa2XifUrBHRfiKrv7nMTU847W4WrHqjYvdjetxw3Xl6a/mtEtJ 4r70bJxAlq8kTKWdXjjAU8KDfMTILjdVv7nByAGFkVvttTE8xnFVbr/eqb/Xb9ZwnmmXNncWjanq +heUpdOj+sRWckqXPFh+6Yzq1WBO2w/z2zMEDKMK6OcMcpxhw9P1p4Z4pofzBljYNH6LrzHSqWrq 2/sRmVhNzk5mA3OfvZXc/wDKVad/zA33/J60zIcpiGl2RkfUPVWMfW3kt7Iyxq1Z92HFmB47bfMj OF0mDiM7r13GNgH1eV8u73kdz0ufLQhV+mjKj0/H3MddHR2RwVdTRlPUEZpiCDRdoCCLDY/uW/1l /UceiOqb+TpY4/MNsZGChuagnbdkIA+nNn2LIR1UL8/uLhdpRJwSr8bo+GwvNM8v6hHfJ6T3E8CQ qSCWKOGYj6Myo6eeDS5BkHCZSiB8DZceWaOXNAw3qMr+TKrYj/FWojv9Rsdv+e13nbPOPizRiB5s va9/rYHz+sIc3Xssf8Kl/UP3xd/23/ieH8dGU537ybsVVrz/AHrn/wCMjf8AEjkMf0j3KXosGian r/kDyrHpEX1t9PurlL1EZQYjJOXXkCRtx3zn5amGDV5jkPDxRjXnQptq4inl/wDzkbcQXH5kao8L iRVgVGKmtGSFEYfQyEfRnK9pRMcOAHnwy+2Rep7A+nN7v0Po3VfLti2nQ6JrVlc3Gm2TV0jVLFHl lhQbRxMkQeZWjWicuLKwAYkNtkdJrMmnlxQ68x0LzkogpXeeTPKV7EIry88xXMStyWOaG+kUMARW jWxFaHM/H25lgbjHGD5RpicYQsX5bfl4kqOq61yVgVraXdKg9/8ARctPtFqCKqPy/avhBb/yrP8A Lr+XWv8ApEu/+yXD/oj1PdH5ftXwgiLfyL5LtopIba48wQxS/wB7HHb3qK21PiAtgDlc+3s0iCYw JH9H9q+GE+0bQLUWdtpGk2U2n6BBOl3dXFyrRz3UkTK6osclJVBdF9RpFX4RxVSG5LrNVqsmefHM 2WYiAnutWN68trqOnBWv7EsBC7cVmgloJoS1DxJ4K6mn2lFdicx0sVbRPLb3E1ykeuaPNcMZLmzt obsIJD9reCOaJv8AYOV8MpOAXtYdtHtnKIiMhCfDsDKNlASeRvIksjSyjWnkclndrS8LMxNSSTbb k5D8rHzcmPtJqAKAhXu/a2fInkIxKvDWOIYkf6Jd1qQK/wDHt7Y/lYp/0Sam79Py/atXyH5CVgyr rIYGoItLwEEf9G2P5WPmp9pdSekfl+1MLbQvLNvfwX6W2s6vfwEG0huobmgcbgh7iOCJadau4GTG CIN83Fy9s5pQMAIwjLnwimV6Jp91ALm8v+H6Rv5BLcLGS0caqoSOFGYAsqIu5oOTFmotaC51KQ3+ kRxW7aRqtlPc6LHL62lX9kryTW1SSIXiiDSj0y3GNkRl4UDcSKtCeMSFFryYhMUUtvPLHlO9ZWvJ tduWQUQy2185A8Bytz4ZTLSxPMlolo4nmSfih/8ABHkP+TWP+kO8/wCybI/k4ebH8hj810nkryK0 jsyavyYkmlneUqT/AMw2H8nDzSdDDzVbfyv5RtldLeXXYUk+2sdtfIG+YFuK4RpYjkSkaOI5E/NM tP0O3ksRoukWU9poryBtUvbtHiluEWhaBI5AktJKcJGZFXhULUmq3Y8YgKDfixRgKCf65YXc6293 Ycf0hYSGa3SQlY5QylJIXYAlQ6Nsd+LBWo1KGbYklz+iLqUS3MGr2NwG5Pax29zIqSb1KtAk8JJr 1jcj8c1mfsrHklxcU49djtfe5mLXTgKqJ94Q0ml+VpHLyDVndt2ZrK9JPzJt8xZez+CRsmZPvH6m 8dq5QKAj8mho/lPgRw1SlRX/AEK8r3/5d8H+h3T98vmP1J/lbL5Nfofyl/Jqv/SFef8AZPj/AKHd P3z+Y/Uv8r5v6KIWDQFmjmFvq2oTxbwW8ttdAFhuBymjhiX/AGbhfHL4di4RISkZTr+cbapdo5DE gCMb7gnmiWN8sl1qWpKiahfFQYYzzWG3i5ejDzovIjmzsf5mIHwgZt3AfOP5t/kn5r0rzNd+YPLF pPqWl3s73ipaIJLm1mmYtJH6CDk8ZZzw4KaL8LDbkwx5MmHIMmM1IPQaPXYMmHwNR9I5Fhf6B/Nf /qw6z/3DJ/8Aqhmy/wBEGu7/APYhl+Q7M/nn5/sd+gfzX/6sOs/9wyf/AKoY/wCiDXd/+xC/kOzP 55+f7G30T82XdnbQtZLMSSf0XP1O/wDvjAO39aBV/wCxC/kOzP55+f7Fe0svzms+f1TS9et/UFJP S0+5TkPfjCK5Cfbern9XCffGP6k/kezP55+f7E48hfkl51816/DceY7K507REcHULi/RoJpY4yCb eGA+nIPU5U58Qq/EalhxOFnz5dRPjymyubWabT4Ti0+5lzL/AP/Z + + + + 1 + False + False + + 193.599991 + 289.599976 + Pixels + + + + + RobotoSlab-Bold + Roboto Slab + Bold + TrueType + Version 2.001 + False + RobotoSlab-Bold.ttf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + Document + AIRobin + application/pdf + + + colorblind_overlay + + + uuid:d0e88164-e54a-43f1-9176-e4b67b8944dd + xmp.did:0c5f72c6-954f-6a4d-8cba-e740cb0ca04d + xmp.did:6aa152a9-2e2b-ef49-b9a6-6c5e8b86b26c + proof:pdf + + + + saved + xmp.iid:6aa152a9-2e2b-ef49-b9a6-6c5e8b86b26c + 2023-04-08T17:06:15+02:00 + Adobe Illustrator 27.4 (Windows) + / + + + saved + xmp.iid:0c5f72c6-954f-6a4d-8cba-e740cb0ca04d + 2023-04-08T18:51:30+02:00 + Adobe Illustrator 27.4 (Windows) + / + + + + + xmp.iid:0f37ae40-281b-5247-ba02-870759ad3e47 + xmp.did:6aa152a9-2e2b-ef49-b9a6-6c5e8b86b26c + xmp.did:6aa152a9-2e2b-ef49-b9a6-6c5e8b86b26c + + Adobe PDF library 17.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 193.6 289.6]/Type/Page/PieceInfo<>>> endobj 18 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 193.6 289.6]/Type/Page/PieceInfo<>>> endobj 19 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 193.6 289.6]/Type/Page/PieceInfo<>>> endobj 20 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 193.6 289.6]/Type/Page/PieceInfo<>>> endobj 23 0 obj <>/Properties<>>>/TrimBox[0.0 0.0 193.6 289.6]/Type/Page/PieceInfo<>>> endobj 30 0 obj <>stream +HVn1 +t.@YHk"'Hs `Hz JC×>VtEYjvkd]}?>݃O? n->No +J\r\\Lʁ > S~IdЈ2&6e8+py0]]T6x妘YZ~6A+|S}*ћ~G^>rӄgr8:UC2%dQC6.!Yٛ* (;]% g17Q +BSt֐SWk 5iEf-[Rtsw@6TQ25(br5nGdEP&i~(*qH)n&:ɕУg?-+*ƾA+`^Zk1|`>0Lvvyh̟>~nw:zhN8sWkD}~d:ٺȴL@9شI?ㇻ5l^FmP> endobj 9 0 obj <> endobj 10 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 27.4.0 +%%For: (jhoeke) () +%%Title: (colorblind_overlays.aic) +%%CreationDate: 4/8/2023 6:52 PM +%%Canvassize: 16383 +%%BoundingBox: 0 -1 1048 290 +%%HiResBoundingBox: 0 -0.077777730093658 1047.99995112419 289.600155067434 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 669 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: 854.399963378906 0 1047.99995422363 289.599975585938 +%AI3_TemplateBox: 97.5 145.099975585938 97.5 145.099975585938 +%AI3_TileBox: 645.19995880127 -251.200012207031 1257.19995880127 540.799987792969 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -487 864.599975585938 1 0 8629 8116.5 2052 1274 18 0 0 78 121 0 0 0 1 1 0 1 1 0 1 +%AI17_Alternate_Content +%AI9_OpenToView: -487 864.599975585938 1 2052 1274 18 0 0 78 121 0 0 0 1 1 0 1 1 0 1 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:-286 16.5999755859375 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 11 0 obj <>stream +%AI24_ZStandard_Data(/X,:'$D:\F7uwwS5 +kjX  n r[ -@ #@M`M 4]6__?3XӾ;\sAsyu{ ڴ廍_6 QvEl6d{W8 -`veAZ@ q;1e׵vy-\5W6f6]{ԭ @|kǮ08se3eЦ[-8Λ[WQ%}Z|P$bK"n[F/3-Òa.q08]5ȳaw :Jْ%oOlInf*|lǶMfˏ\b.3݆ʼpcW;SLo^/6KxxQ>X>1?@± |5#v/,9ueL@/6@8oQ76ғђ!gm5k4e`-0כӳh8vߵpn-Wnֵh[_F59[A9a]e,<ďa-mm}o%kw6a[H$n8]-?[gͶu;J mhaPops6ivVdz;0z-c?۸6tKo%c0_Kb z-,$ +7E/Ų{n@l!ڻMWVYmÛg@p?€j'ZijĴ($Խ=m}랍 \篿6s5z@61q 7\{r'ɶInM~i[Bލ6V-3`@@O!vA JYBH?:G8:cˇ(r|8Q hcچSop};L +7aygnm@3|pZ{bãRkyۯgE.lޢp)B&mR; gm'uSYMH&2 M`5`x-kl4ٿ] dzk6@\bM6&^6ӳo&+v62nVn㏷)6^MaG)n<v)|qE.qk:Oytר)ym1VW~d[v{6Ŷ &ۏ7 /C暕aX- t#=`kh{e00xX[&ʪg5{ʐ:jP kam yyaw߶m۶aڱYa\ϱQ"H0f 4|ǵ'xt>\"ze߭\;FY} HƇ'H;d+2: 26ȇKH>rXX/ug KaztͬցܵxkߙS-}XnXwleRZq5", Ewι;weYv1Ar >1=#X|eIo^B(RGElYV3 ~(-RaC[Ć}ч3 E>I,vBplfõ +w ڷcxe7+ W{v͡-b6lqQ[{r6`"v=dzŶ;ן[;]7 pp;ⷲw,|o!rK7" +L_6Wn@!olm|6OF!Eݦ +\m\3Uz[7<Am/s"E_bA0h y|mmz_[n@8(6k~цu#4|`oj NEl[-Z@Qj9n#?$ tu&X,.XOP@HQh$T?h]reyn@]*71^ +oP:R,!5:DYFrmkXbmbF)%t*N y׏]P\Y4$VP \SMMᔄgp& .C”n@pM Z@;D?$4)@_ u鏅{|>sjh &^,8\J^6"D][!y +] +c򬶚EG L]'6 '{x? `ƕG+V>FJفf^ b xEh|]V#zZPc*I_7 jU + @]N'd',#0^ v&DYwݮIjPnDJ%2Uf~XcLp{opBn4(L'8n`2 y\hhm"8!h Z% 6L؊@=06c;J; ( dQJr4*wM  Cf 'bxw P4ɠt<@j KEYFr,[[…ޑ +!WDPw, +co_>bwB' j 1,$Df Z#dwB^!vƻdKR]] B"^wqPu 8D7 lD.g:R2$x7 ϓyOX|U,n@8! T% <`! +`BTL +^B1QuV^2(5*E1TaB[UIA4N l +v7 "].3 Y)WHsߔ &6SĻ8'SEՑ<eIt3Q54݀`2MjDEZX6%Xqx7 8@æ] +/'/G-_s`6(Ld"?:5PccФP'P΢j/=f6R($Z +BvirZ=P ]} hA +_9@ONZ vMuTBuB&rgE|@;X݀PZtN֐D xbdD E]o<rǕ|'XFcĘ%͏B~o"F!(e O<40hXA6" 5s'J?$Pɂf,4U@L3A"/ (+~R  4?EmyT:Q8eduF8!bBEZit[ƈO&n@-i]8Xs[TEbtv1G3 !5 J^C*Rjt,jwy8B"^z7 12>e/$ #HaHf 8kA Fq mp݀ݏ̏y$-袻tv|@Uq`^Abڥthz8jE09iNH5CNE M m#0lmNc628uUbp݀|?~.y$1fTGM`-k`FL܀bp38U"lp^\|݀Z>ːg y)Bq\Pz OI֙ N*(Ŭܚum 7[y7l?`Ė]n6>mH:sn@߆ӼF|$ &86GU`%VS/KC += + G +6"ذ|n;~nTcpu@}]dtE&HGCu ,Kit6P愔:Er!Q2 DҐgivDuB93Am΍*f[l.wa{(JIp+#(9_;FBU|i~;?%!E[dn;X5x[ +Kov1ʮY-6w[}}k~h@[k?\VsG$[ G?Gr@[km5'uQ-N, c&݀`7܏[ hS(h6Q֑byQh#-UBCV"MwBG̝fʲ fWx)݀F ߋ /݀ Z\{ҦR'rg ƙ%;gsrjL|{5QA,^;Qx#b*6^? ]ܔ +H#TQ݀`F6EQ49?kbr"/Ʃ4:1q1RF2::d'{NjaBE=&g8!=퇸}]kyn@ n@43n@fT7 pǻrD^P ύbREFQQKAG p8I(ZK_*4! -E ݀Z'Q3ͷ$;<ap68SDh J .P +b 74 !\#+)͊=Eϙh |LW 84t r[J-b@#^)(݀PP%O^SVL%9,+0WF7 @CMNtT{Pلen@P$0%*W#gh18 ""*Xk"DXSD[ F+ʍvl_pZq !J;;!YFrv@0&!k `bw@mnB#D.jSiO օK'4 n' joZH| NMpvØЍ̃. 8Z*7Y+f)dк/;$䍙ۉ$| +Ä$CjrNS$ӪTt8.hD0 + a2DZf&ثn,٨0۹#=g{BzTBuͱ֐:ɧLǕu<'xƐ{VVZV%>F@,SfF+XJm+V'A,X\BatN1* TwB)OE.`cLV]g+τ(h0ϝJyLb5E7 `0W`=tL\!uG{hGI 4Q ^Fv(frpD/$ UZ#!ԀqG|P2y8Bv݀pj4*Q hvZ%5 T暉Hܐ=bLI}\&f'6$F o@k13nJP2!OTp⎶i]f^$$%dM$,$Mb1!~-XB4kIx- ZŠ%^4U<'?BK'|ggaMiҺpi]غp \=:E@JG(Bр"QCk HD2$E{D3 J*|CjʄKI7 &ZTցJҴ7^ FZiNX5!Aql/]]-S]* ԩI;jk֬v/"z4kR$/Z9-iE.L%[Hee8XFBѺ[xօ[هgvaMi)@QCZYtJf捑eAjN';(;U]BP= +` +8MԣSN/CPr_`liI—J/' `W"2>ھX׼)}.u+N3PʠR]]ffЧ>M>Mk3cVبF #bpĒ@>j|cZSQVO|'N2aHH < 9㽰|CvG R?5HE.96< +hL#Md'v=輤Pة9;Dã(8at" 518sB.d[~3KqP^ES\R9pQE "ƒ߆OGʷdXNIx=JꚘu}L>e+ )An@(*_v_ ~H‰+hګh9D!g,ՀQu|8(c4ȨZI|΋ +g톄5q(]7 t%ℊq >H:U葃HrM-r1F-EGb{j10CEuS>F!F6LFD i~0fxԩl^(PpuN<9dQ FK#ZC13"'J*6+'>xr]PeGEb +Y +\ +$7$=pD49AF)g-9!{Acvw9bi:!KQQ1lj1BRϡ\>QwHlO't %;NPt<g- Ε$< +!zPh"'1z]1"iNv$vy9! +"* C^( +͐51q^{ +mOd9^9XxQU!wZX+_oX+Sc ^r܎F‡E/!Ê> .:)*R>i#U 7# 8Ԉ"BZIQ7bY4,EI5M +%8 . .! Qpq2PuD'9!" ؆#Ҥ& 4t[u|eйt$zAk#49xt su6DNZ`{Mq;sa{4q~A ٟBMIt( UuSń']'Ct@Eo8PsfcŶ(8l^!\J"yh9X< (x\ā4 )ȋ_j7'zqĚP)tE8Y& - 9ԐB槢>@JZREkdspþCqSZ*xЉ9ǁhyq8Ԫ\!H\)pI/{Z;#Ն +Ut!js, FVNꁖ`U,~n< 4R8̜p:3viȓSDPKsپ ^@ˋ3./oXlR N٩BqR)(U*+dK^`[Ȳ#<tىD<#@FQL|숇vI$* +-NOCH#fuaBU)TpN(Xׅ yxCl/ W-hBv +9}O'X+),gI 52~>Z4YI#ྪȓo Ӯ>pғj9)CE$@|vFOyqQ2ZPg;^X(|(9K8 8KXl:y'8TPP8 bmO" 8Q2F;ᩪ6AGi'$n"aʓ!R!] F݀Pc袇օ+!jR +8uᎈsrvR몀|Ujqq|' 3̏= +f(t(qɹR 1@B^dz- -5@c&QGi~=W>4n"OA2?n +MP&AI8Wi~&Ba>7Yl@E+{8&ݼq%$9) +?"ͯ16P. `0?rAA0 AIÌ<.D\ {4?qm\åc;qyE4v i~0 ǪqޥBÊ%s! y:1&diL C2^O"(dkLr*_7 Ls\PթӤ~drvx^Kq +n@8u Y:y14F/ .\93'vXA`( "33z=)tB7 0B[VoN"lp؏K](Û )ޚz 49g:f*'$_4,݀ۨuX:222ms %D@&R>R,0"$ECq`1@( +2g5.QaMeNPj$}*tYj0?C;@'qgN|J-c-LnB65aL[p&KKS+(& ؟eMԆTUc4H +Ie/:He)NzZHB|Dt>J3J{(a_8'JSR u|H<ʘ +q)%Tc{sF*L >bQT*yV +,KJI4P1|S@=ڐTϑhai$GR$k,yb*V:.։T~޴TT1LH*;$RE 9;w}xuҳA(o9гOQ-N,FQݲwq޵$EdL1XG܏]fJXɦ3bk)FjD3!'Wb"4Ԏe =nt5c\<,SK' YmXgJXiͲNzx 3p(qK?YU2$M X n4Qg1K<(!zN9 +}<}B$M3 HJ!=KRBBDV QD^!J*7CkܡPο) 7L-,BȿyZGW klcC#u+B,g:PD}v;gm:D[7v͡ɞM:K~ SM-P2"MЁfPq'K'B/% +!mCQ# Jf*Ms6TPB|TLIX]}#c"D5諡$4 :B4!H!}ChVQJk'z9ϖ"| CO=Am97 {߭~C`Y0&6I:no`*Ip4ȃ('CPB4Z~0e:y t,f) >z( + d!"?5CvsZ-?^A@r&:Hn-r&TWכ3M\f5@.JG{g1Az1-DdׇJj8ASbÅBV,A0[vHJPG gu.B+6˘mF~ZeR(4 +D7T2' '2 +86 8 d>D?۷&p]N-WSw荩zm{ԔJ5"%n$qe$c,B^ўWzт- mCXl4PVZu8:>u94T.QggkصVUezݐ`rAbE*tfZ&^*s9w+B.Y95&"87hVxDi% 9ɽ(]l*[:<9neaA*m +D12J!b +}i5ґa!8Ԣ1xp9|*߱᭜ (P`.@(j${"W7-}ScMQfcݧmh2{tn4tE-I|R] +SB &X8Z H^5s)W$*'W~K;OXc5E}x{-%[cXL{R Q]jm#޷FyMaUU*na"tG"z cy'rl6A(¦ iyAZDs?9Uw'6o$${ 9MB|dWJ*^vo@nD:#4MHc-.5qJ88kH" )MWG(   9pE|?J%\LFW"u?(tԉ׀j">~*aL=:83^ +:T:a{e4!+rj񥟸ބZ'. _޳M5,!4)SvqsBo9Eb} oKlN`%uEU^8ꮘ[/S>`qL{u$%eӿkϡ/! hH7yP:ia)}.|rRULGI1>JT? pI A$zM 0lEtuD8$A9/ԑڈW#RN4X{BtDi1XYLցYhkGU PiY/R=]'[.H-Ty!Lg +B*A\DN,U0KBDaj?L> J1sH L!ŇܞcJJ<ѻ?fb?sZ.BO4:X^Tӽ|@`=[d 6t l *îږ>j A''|imI!FR}#?3W'*hIӫ1#jqg䫻D'>!>-/ +=n_R<<F2*diNʨWLJ۽ UȲnw9⽣G,w~TWL46Z5Ij fԍ9~ ~o +mZvQfJ oR;}<%i/Wln(^PWxk6ͺׅ(3T-*Wat*\A֯Kn(2{ !=َje4Lg{;Zr7vxE n`lBkXg0ϙH +,1R_J@i+d1 EGw *>Od._~T}HOGN4[kahr.$ l4({mk:ZAԈg$aGr'>٪l] !RšiF#!@f1UoX ;6.U~xw[Ng:V vh@\bJ2AE2٢\< (̋ᮼ*8QR {z*ߺ3-śĭ\& +c\k,3`V8&`!5䮬O|!+ cpSBO=/JᵌwCkVK*H)k(~5ibI^4N̒ra>/?{-n#BHy O(ZX}t@ʒIqbOeÙu$Ų:>ZCaWp@#:!3<1'̈f({- + q g IM~ 0{/.8R'5 ek5;Ip|$]y9Mxtux<b˞U}s0K@|ZU#]j'0鮆ׄ5uJQs~Y(TJ6ZBLj'M2@d{N UрxT[gx%N0/?c.59GT?"I BN{VO+K.ΐ}JooELmPӦ6I 2FQhR͍I-2X[Lw\8iRז;%p1)? Mj<9Ѥw~1)*X8>!(E1zLΛ.MHXQ*.=W%FQpM~QraQM_tkәpvW5VXCko@9hw bwO6gcr;iOj#4/mҲRb욐N58 .cn^<}]l^ڧ'+S㘁0Yُ_DV>U;ft1wzIA0j `__^*|-Gڌ{ƼL}.54Q/,.cFGW\3^QIlťs2r*yVTۻ$ٛu2X @Xo)=zoX"2 V^eS7㮔UI 8ո)fkNty1Q-[疶z[],)aR @Hn[S#w GuBHQ ? "vҀ %K[ BfA}xط~qzXfC"]HP:/k'0JBxM_SRTaَEܙCw#F͞d3y<%8e'wC)4c8[8XX,x wC,j;D>x#! |L4[ɝcS31c"* :x}D"JKztCHqD5 +ie5kз҉(Gi q)`5ރRC QsQa1 W!h}-ل*jiw#[bU}(=sR! d!&PA +lz}&/brbCmv@{S0y|:KAچZ$ĴA_L7Tx{:p!/$C_MmM(IEPMBRu@?' e7e =D9D,Op +'~եJdn.Bv,2;"Էܗ4@ +#k&53pD[SmyQԠn8Xq9s.XӵitFY0#xNWc{؈VB^40rg/.Z+e8i1^m,x&R)&iKmkjQڌ|`=YVAvhTXGU}\OBٳTF84FE#.x)O5hxܖu3|Q;P%KD Cipl@Ll8t+6 n j ,`SۻxLi=_6Iq'|jp5U3x{qy@tEd`eApl usyڼ1 ,v=jNYOg0süF@`ysvuPd> lDgd|  4+&{=ò*luH,KoےÑJ|?떇ֱzSԷ9{ VAye;D<=@!.ծIA"pXoK׭tho]3$]#}Q!$ 6#PXGVX{z83'vëf 8ℵnpĻ wo5W&dñ9qڦ/Z5t3g`H $Iq N$;!JB }̆7a#蹥xb?ظͥ"2$gn' ,l0I@8Fԓ&YC-I ִ7hff,XCJeM:W|76=06 %Vm"Pb=_wsa"]m=4{% ƞ#iuy5؎42p)OJSW#EEY;'2 +ɾ#aKj}8. M^Wί5ѹV\=1@P9:\A%PFÓ$f3̳Aș%*Dr bXuWe +ZUp:"nrIKJbˣh09cw? +9\[xTBλ3(_~)Þ[+Y:b"g+*ٌK^JYɥH 7L鳚Qf߽8j i(;q@D- fg}T៉+o+#EBp=2@^4"FťR\H@uϓ`O֣C9ad2i`;4/l-c] n`hP +F:7P WRcAu_o*Īaz z8Vk\6-#ia^"qٿHZ: 얓Ҽ]kϹh=ws{oHdz_6mN8 8;] ǿRVBgK\m׊_.!H%Aoc<Sx}PzqACD?ȉ.8|FKpxqC=td$hL'P+LgQ5]Q'gr wRwᝁ5;`6U%.ׅ]v_i6iZrDkKϥ/I |}{Ddr1Zo@9?Iv#O[w@QRx<9Ey:N DaR'3B1dt-OvblX '.AWvB.DmHdi2@Z0L2@[AD!|2t`0) ; 6PSC*q)R?+>/uFNjkHhX;Pf/e@5,JWci ampu118u4}HHɋs>7l=`ض6b +->K 2v_(R8n4zݽZMXC1+㔪c +]M6Ԏc +6@Idt +lTWS̬8,q/:#ָA,>+Tߧ*_[YlXc~iC-I}%~) W*aE|8!]_O_i`55[Ihd@@ax뿾t|}y׳w7Խ9innY <,wô'񫧥bӥBPy5ЩjDQd'[64>RpX 7qlFV67rxG[F +o;?p -4U[ʢns58pO(3NSie)edS_X{ԙgjc~/jliQ!UbHntҚ1I j7+9.bIuRt[%舺L(B۵-:"̬] N2_;H\ZݙGQ5 C2MLh~QܖP +2s2BBfR/BtigŸ8tnyǡ +XJNoS,Jo휣/fZ>5ռz+OW Uj& 4;P1w<,߂]dF`HhߛR,.9.V<>N=Fr'O`ǂP`h4teȫ +E&G|I^ c3.Z5-!K z[f xgVPuvG9+1]Dy +h y>;[NBny2٘΅5g!PnY[h_` 4e[8Hve?D3|hs;9>홄!IK r뗘c05>y[y/6 ! +R'.`aXfn.D$&=~ 1H)~;: +)# m䚳FlڻҐT 0~A2ć &O,(Ꝗ3:ì;(!?}d̒2Өl>y~UBͯ*QZG] Hb/* ]p*W UUmzKi&A:Q5 A#ؾE1]:gԿciS {s(0` ҪNv3AI.4&Fж +z 0^ ?A^U#| 0X0N4lez:Fކ0l:t-'Y;(g(bvΆ{O۱e@4A=>$@ -(4'IS\ JƹJ@;I+ 9DM#~ʢ-JJ : :fj$%pno6GpKF)$!&\u +u[M&M87ڇ-H:xյ~B Vm`5t_aL +yV:Ra//4*Rǡ4` qB@6m*Irڪ+c]2mbe1pBHφ 0w{i5g 8[oVPmfJe0D;fwPM !zw7Dϊ"MAnۛUluQ{.!T1JYN#+Yn> `Nuj|ToTlTf\3X_Yl(tFڠ_ey}qG̈*s\Y]X#: XR6TCf'o -wt'JZYourSՐ_>dcbv +ʗFo2͈( D' .4r{zYJgyܻ\{X8/C@~9t6p+Ddbe 1ȋ1PW +s(*M1tf8*DlĞ4֦)T x +zTNzأ%݉IWUpN'U:^lh(ZTT^EBVdf$~dXCqq? 5 M#)?}?#NRXGz $1kU`8(&hz6B[[; W.#- +efC&xGd]wRqs(Y^=bkЩ[>F"O @jUz H1'? mf_V3^ЈNcfrhsсsQ+?o 8 +KtKK!`2JIz>B| +(ga$YNǕ g q@,LMMҎ,9 Bi 36UA_ќFKEe)pHZ\axh\!_W%*@,QhuTRK$m!O&oR}'͑"<@w7I|Ugi&C^0a#oF|mCtb-^d gTl;G$DҜR{&i$"hsYvPve>pp\T?ʹy˿N-eVox_6m}ʩ& lZڢ)M؊˜ȼ{i<rAա(9KCN HN`ۻKumRH01pIht"ҥ}\$ iSi\~xyǸj.8A +ܬK?vXJ]Aa霣*BK ~A7(]g_NӠ'W2DU8VtٍܿZRn1?EpDm .JHʈV;!_f?gTHA["Q4r0LݎKWҀ0;ui};w|Bwy\A&5$'&09F.l[-w!J@pUs(PʇOl9&Mv +[RPa\>_A;kӽH`425@>~7L]y1V9+AEEh%mg6V \؃4VPW6H`%{.0yt K%-0ɼX +Cd}")= q1VG$ ̼)H^;HB;̶A0O8[u(h Eن~nPްt \q6;xy v 6eSVדVxZ&aGMA1eGQ|pC΀u|u&uTPo| +ޭ&-Pk"TZSdisA3Q-&kJ|'4!b5pعQ?CWQN$j W N6T| A?IwoKkO]Ɲ+ oKJU^clY"mQܒ4IO?*.ndۓʂYޯ]f17#<ɣ0o<ֿ)7Ǎz c +^!q +r>|AC=W !aפKPĝWՂ0=p zFծc%.r 6,WnFYyBtUi.ABw=oQ-!UV7za}|/ (wz\Ty"[5 +*AZ0W#r+V;bkIn D<'p +0, r,e! 0JWE<ƘWd\tb 7kz2JACqU!Uύ,[ n5< +MERXsY% Pa>\e5:~-MCvV`sӝw͞S[1*Bd5֒ZS$H5 WFm9M?UԱ +#+=Kl&8(&}Z]x| ^Z(rZƯ9\.꘶a|ޥnYz F1׾AMs oq63"b .2<ïE D-EZġ_MP!OS0Gdߨ"V=SF"#K1CtKw +C{e7Fz("Y4Epz ?gxe_(j ED.(iESw6Q)(s605ZaxU3Zno7px"dwX_ES{<}kf䠛P.J&N*>(<``2WFx)q)>ɒL ?6YpP]"S`q'w (By@|܆ۄMJ y*:5W;B fX>ESS?6X‡։/=Q6FF |r#xTڀ!6ՠ}P@Q)eq}E<(G^DYlR s `D9e}G7e]5Yݖ-++S||mn`?D%D| N*r`K:o0jsgU]m<"$Ẳf(wSFɭ:Hut$JMkt!OCupv%lq +Ɣnь!љz? Fΰ#Hd$]6m=O{AlT/4[DqW]24.omIoSWZTYAua,Ik(ЖN>- }+dn!Lbo󔞐{\^.908)n/o]uz]n4/WIl+W *L꫺4p׎&N㩤֝Sgw(^ +L]{QEKy" ( CQ,dJ>f-C%iW9"Ol1bQ2\*Lhʓ:/ (x~Mv[+/2Y=+J<ش?Zc]C^==-8CjFE--< +SÀ8je<H Uac12k3KMD΀ZVz/ld!<6T;qt(D-X}ƖiVM`m#iJ!?VbDh#n!Hp*]%XjDZdYu,3Zcqa1 X3S?ShrxA:;Mbﱌ7 G}s=q&#^J3 c6Fj,\`t6 JӦ-fDu$%703ɎuG=Zr;]Ʀ< ՎT06J(56&yv~+*4!XD7}  ^ /v~=sox \I ݕ!VHD +ۺ +Wq6dĘ^$:k, 3銆q%JEi ﷊)D. n9|.Ȓm!BZB+B܎ .}5ď|$Vxb)B8\R:ёUbP ,tY TH\IDhHD%#b»K {@OvyO1ϰ޾Բ A./µsH9]->9 wufH)2|J?[DG4i)?{uhp>@fѷ.sbN5o!)Է:VG>"P\PQ +2KQ> +Tu_!b)d^Jj4_W +6VPZ>1Q:Pڅb%`TWsN1Hvݤ߾+Ɛ*n)p}xnxPoF-I-MS?3vnFw[';O7i9{99ZgӔ5ޝm9-RG앑e#n;vq~kzyA% G I-wp77zv&a5?5U ։=%^LVǎ$ҔZ1QkA ǂǂcx6 xD!(T.JGtDF8m2$bɐ0P13 <)(Dm\بhD" & +"3ҩtD%J #B$H4!:!@\`DÁsjLZg{/#cM&ixlh0ё4 ! +F'ja.Ʌ$}x6QU Jb@Eq#GLԂ(ʇF@9 ’ CD-*# H $H A!"$.:LB>Pa)QG8`㰀"tT0@ǁN$_ .,:!3Q #!H@[ cDB%b@X$lT5L\hp2 ##c(Gp zDBeB I" @ Zd2a4D is` #Bsq`c`h0b&zlRl@ذ""R2Ȑ,> &,l֘l +/C %D,ŸnI q?8`DMp` lCyPa"Q",EEFyS.^iڦ}.vrb[6D?2**#iafgzkw[7zmv.HSq:w]rU?44UMM6۽Ck律YTo?Mt˾D#{W kO2}g8%^F覆~Zx7_<|ʗʜxQ/>likƍnmϋ֟o}PC@-u749#TD|gvoRK:3>{߳_9-2ƽx&$UWdDkW =zwxjI-/Z=mv޿~}jHpgǯfxx!C + 2DHDdsel{r5C̣o{v)Gٯ1M7wM_s?=kq%j2Fًm9ZY3o7/z9Zag;Ze{ oRKJGl7~Nd6ԒNw[-g|MϪZÏ|lvٜgi(gdܩn߇!sfdjaVݾN6fU돮Qf{cڷ*~h˖}~ު{jMxx_GZR'jcn}]_kdfmOsdn܆ʟݨmy.5IO#۳j^^"&?bm_F٘xgn~Q6o䴘gm)1'DHcxNDz' ?&جu|IGǏc2[2}8=87;c+[8I{n3>ʾxQjqPp0L&ji@,#J<рXFhJ,KD-MH ɅfY@{ t~Qhr5}itlLlL? +an69/Kc_WS Éꇽ򜷙u[?ݭ6a4%[ZI=Ku65s4d7UWK_M|ÛӬ}ѕ xy_S ljjvi+AlνMjI{n$MjIy}jjMjqR̿mYWu_8jF8(7П9tѼ[.|}l46@(Ԫi47y|jR&8Hki۩fRKGdKT蜍ZDCcwRK[5odT 3"}b3*rb?Z>uܿ̿Tsڿ햹2 sY."D7U|2S-L9##*3wn[GlljIvguZӤgˉQzj5%"G塿yjMe[jM}nhlX.!@!\,|ĔyKƠ@(t(\R0=/5;; u=HMRomo:$96nvbM;y[YW-N*/9GֹřԒ]uRKWU_Uxwmn빷Z.[#řԒ֛OwRKe>mgc[8{vƪn4š, 9ǐ!0I$j{5R60.Rd c B@Qr^*GEi0Rk3 Z@2= +4!o +xƘEA: T(3u` *4c(Hʠ{brXe,˟,n(z}>"s/>ײU3\}Η|ed SZ@:1A H r<>sW +ܚ(N{W4Z^y*̷2F X s0qA0U˖!`-jrXɡZhφ "!5o^!"ɻ1Tu_8$ !t_E␉,Q~ # B',"ӊA(T,^T#C:4$YX}(_hcrLAߐg !gzOhy1W{CJ ES!KbU͔Z(5ꔐvrڗJ5#;5:L2sN%[~(vR`Jt%1]M%5bѨZ"ciRW~(lj;fDtڕx 1];"h&\?h4CI6qK!S<#hP?`נ'N!ątE{JIAJ :YidLM`N\ѝo [aU3gf @.;ґ³"IҪ)B蛄7=?ѿ5e,11QS% ڍEʎȨ唌xƅߕcFf5YzP|A6aF ob||`2?2z~wQP kr:,pg$yNXuƕ)ϑOd V^yC !y:%xy](y0D +2=e6SB3ܦioK-] cFI$cM.A/||Qg] XDP(m/dn !eJ<8[WbX i82!PzsO]jkwh$n1P |hz7ROPޡ2#!+ry9A[Hxh!&䃆շȯ&5)v$v/9Ե 0o< d$jhstN>DcTY8ARo3HXsiىbr.IbY~t~A.U4 & 16#{$̳SVhgj&ðAm"Q.VX|/e'bg9ŲbsBeprPyg5hplw"u7F@Ѩ7w2_n3v9Ebi$3 sp"KQeq~9/ۓfCzDJmX* 9t\ *ݹWUlք`jb3EF\\ +4s"bڨe&1uu!PoGFu\Xlƫڣ2嶪Jd#Fp=-3{ilA};*TGCd]d9 Z +;*PԴYKE _Tzܲ|xŔ"c>mgŬ+ĞӻrSgM3ITl9Q=˄cd,GZarKe>CVDr#C +]ϒ/vq(6W/E')5Ӵ?)^G`ovԤӕH +2eqIŴGpt BM-6lj4i8W"D2~*qLȊFyW܋lT)~AH5 %)hDqWDwI'#*=&Ll`7hvB]Yp 527jUA^^2ViF%/alP85t&iAȎPzXL#Vssr9 %_Dn hVݛ>T4>$eYob,q4/^>NY`aJ',akmPU$ceAWUS>ã9(9XV∸&kOa"&K%,1\Nۥ畏2t".DO0x x2/8TVWaBh$O0#2)\ȕν2A2WẔuS;ob)MT?zIF4G0(b:gWT!TG0>\j֓DC;JR8ϘXz +sƧOq3xcՍZM/bzGX ˲뺛AޜܤzZeɁ4tP^b{F5~< SQ `VŭT$#k8/̨ЭlkrfyLHF/P9 iGTypZp՜Vxҗ67ݭiɢbװIF{2zrсpB@]0j,'p< ?U9Xμ\" !{h@{ iz6~d OaWOHM_%@(Pd+"H}Jli&uF{XK9t`|u)gÄoVY*hy ,X E:& nPjEni(fX.~tbSNij̮Qr]0 / W6Q "X;V2Gx{,dE@sIr|iTT+†[=C@ƿ[v[8(q[L_ x <\{oPw+>V4ũdѭbZ!m)?vׯ-rII>*/YQo^%N7;")FހM;h!ՌS_¸f7Awa|(/X*,6 +?@Uw`riJTSb3G 7-b(8\łEJP&M΍I_J skXI#B|AltKVuubwr:yJi7P*v;ǔy<_Vaٙy<|<ʞ?{A@@Ė}z[rk+(O]-5^ģݐѓ*/~SPsxf1DPQ3fAP"j,|~|&Q\-"E@Qeo):'m! F)YRӳiVTp0yΠN c/ +&oLmR75HjZ}8)a<oWi}?X=mmX>4"&Ԡ0cR +OSn 4 u;0팵/ Ỹ,ⲟ~f[4T[Szh]>F +Ziy0(He%Kg!AH?$WӮJy,2CdlxwO=S̢&QlsB/.}8ey6Kx~3(p>4K #Ӯ0KF[+YZ#<+qZ}Abu ]KglDϴ7Dp"|t6#*6bX;9}h'L`/R&rPQ|1K L̲l@*@޼4 !0_B!'Cp\ vߧDy2U-6[gs^ߵ+gUA'(l]5řӦI^Ҩ/dXDAub (b鈅[3zY,>yѭ0]̩&y:& 0D!Ӌ0b`O +$/Ck$61(՘[|897H\ ʪRC`L՜0W:\f!UB?z_g; 1ZhO!Q\?`jPmn فez/9[׊8UcB",PY +q1e\s3ظ5=@$kE@%aܚq͞&&5Zثqk4w[J$|^uX\3F=Gq*ASw#SP'qMI58Vj+ݬR`Q4|t%iu E *oLY]+ _>E +L(I nI3[ͻ4ü{6H2_=ֽrչ:ZW<גs?WJMnNʈ+T{IԼ +0xpue +Bvi +&[qiwaAx&D= /  =6G5`p 2C^rvQQHeȀ@ֆdt.8@D& D.`${k)b]'4cklg7ܸRYX_ 7P0)i8n{eoybɔQr%UP`U\/5Y##DU> endobj 31 0 obj [/View/Design] endobj 32 0 obj <>>> endobj 25 0 obj <> endobj 29 0 obj <>stream +HVn@W!iB,!f>ݞ⩶_-Uu;{;쭺yWVLVkY<O;8E#zOx91&tx|zs+dr ViMEp`˧LP6K`⇥TEؘqPUr6$VϾZf8{;p'4U?+< Ydr. +Q @.Fq9|1ج _ܸTa5z:Sճ/t6ɒfX QH  jѼQe`k_Ѝ2ɹ.>we1Sw%z;3æ1,mq%hB~5aS:V5$wIs$xWݳtpws:Cn [+b+/bѮXxAv."U&cmRheRdP2ՈxS2Faz<ŕ4&Ŀ[/*'mXuhQW^Exug>v3»3˞XDSZkCG|F.qO{~LG1)aT +Z> endobj 33 0 obj <> endobj 34 0 obj <>stream +HVy|Mַv 1^'Wb y<BJCTSOP*U5UQTW:QEUK)Ϝܷoڟ~kgoooE'粙ֆOO HE ȱFx' +hRS* ˳nl"+qDZz>;ͱq{ $hNi'p5ӓf6Ўw%_;yg32O#?cbjFkYP < Ɯy)\*]RR;lD1_^఼/܆qg Ʃb KbƘ%eM- +e?G<ɋFh5N2]tfI=yST1YP-f,z]*;EPxN}'ƉwN3lw +/ ^7|')q{jy{zR#O?|y>9G<6`({-,3 s6r]uS SD&Y䆻{żbsrlj0ow?yoK>9XO}>h??]_'Sd؜$3#QRC<u^;/x(kk~C}%=k{{׻ӻԛm󮷿7yx[&'1ײ-fӜ{9s.u+5<0LsWl}j[>kZk- ^[jGf@Z,li@> +q9?Dm=W>2L%7,;߳,}_")GLE; +")ZtEwE 4L !M؆ث1%醃_;xq> `)%夂x$JSi)%IpIQ2AϚj)w>0ЇFLuS$z&,tnŒ[q-sQQeQ(ʈA5ԴmQC01`2^r*Kg g8oqW=nKDT .Kԑ*)qI]zhI(sVM4>E%|m"q n| hhհ:" +wQl>D" hH*cLiaIS%3fK n1WZa|iyK Hg,N X'Ba ś2olT1؅l}2I: ]52qS$Yt5}0LUfI0 M$86mM{t4fkOuѡVtй:ST>13,31s<&ʌ5fo&LviMy@p%q:9>Tp +g+9Gspp@ 1KP e-EZ5Kjq.|E\Krp%WiiPeFZZohY+rV:̷z pV&Z[junܮ5Ckq.Z{FqF3[cOp6_ژxKߚ0:8(E& A"X"ȣD6tIۙܛw=s9;?7*ިόrl܇ExŸ9_'18%ΈsqN'TEhr-oKMI߱7 NF{ P/WL1|3[=M4iMo5wI[UY[8lfffFi2.:Ǔ,펉yٙLo%C+#MFO}+-2kֆB{aZ1i{iǮ=~7u^bg^Fǹ"i@3|/]qi Ѳ+[?__'V}dc7 !w !QcEQ͑qbvc4 +G>q$"Yy0#vqEjzka + Q'0T/W(ԽsFY10^>('d +"ىqrG<'=1"c嫜wCbHqi&p|Ft~fQt:? eᨡMS a$iԷ571YEf5^C9~d>J`B8DgEyIA~E{@#G),AU,GO) 1Ezpj S12ƪQ|;1# p{8yR׬&-utbGA'Q\l`p wg,0 bk{[#sԤkpǵI=^ǣr7éDI$\or<| # xݐ#h@ jx)ϸW~3ֆQ$j0K":tz2bּ9qo"_p-ov#*BQ8j51ک纗yyV>(3cXmYH ϕ"W eSldی-XU y aoU|~7ծr= "Wa|OGwOvh92IȲaUYG[1ʕ@]lT?B֋#éh +17Q;>FYvipQ1M.l95F69?bolܬ"~{(eV/*^~Ԟ,:tZm:ZSX˗Ge!z#NpyA&zi[7`Lmڎ)ʦnZWY![d9vXMѱe6AS`ht,8r12(O~ +B}&lĭ!k:k臫ji;uc7?/QeB=*x_uw0f=Ę|||GuEf* G,9U捘+y^p +uV &Z@=sDZv/4el͠nc9Vlw-c c؍Ah4R%Z[a&c6Y7E,aE)h4_A]n&`YHEFUX<ߥgIUDEn"= (VMM4$bDjC6-fs(BԪBzEzŋx +҃JonRiV)(|3{ b)u,4-bJk8'P} 1%1 q#&)[4gf~{?seg>|՞3y7[~3zLJ9XF0e& +-P@¤ױ5yGjr7.P@b݂\ чO-{3|EGnnrt'b)¢)jfs]+b&8텨L>n`QNW +endstream endobj 28 0 obj <>stream +HUn1}# P)B+%H->s񮷁;vxۻ{;yWVLV|kNozVSjM_3L.* l f _0h16fbA2*\r6wG_\-?3!MUGo Ԅs&^,5! +AcTaGQō*ZjʟMh$vw|Q̵_-̆xH *ѼQZ`kЋ²ʹ.?ױe1Sw!Wz^fMi~ق/LH|UPD=tqHL +E͑{^R/kٺѧnmSΈ(;ZݻdT^ohҵDGN{̤ɠHԩd ŕ&_Y[/*i'ra%>stream +HVn0W ]5nQ8] 顿Y(RYB05pfdr{k!wX&VcBmv,po)a"\JO Q`0|uD>θxOKu6t&Kb7g-5a6TZ?ғ5zE͢d-mBe{swn`b ̧Sz^5eMOo:R=ێu*=2caaE|c3G*ǥSy+P7_< eLׅW* E#>mͽQH #0kDKH8&:5m)'>#F}ARV8-.gz2W8e sZx׭mI1lpY`7R_hg'?S:g"o>aIIR0SEjIxw~ + 7*1dRn?|Gl;q]t u߮! # +endstream endobj 24 0 obj <>stream +HUMo1ϯ{kBSJW" ̇ޔqFhyf}:`AXK5Yp2y~/;8E#nzO88)Yp\.@kp .&@lv?Z-2AٜW?L(ڌgnګ\MjWWp2| 9Đ!_hpG.K`Ȧp1*=2`GՍ~qWC?m=ۄg1,J[tplZ?xɚ\bQZi26²Vȹ;f1Ss)o=o݊&6mEVC&uұp!#Q#Qqg) +ޞCntW)[OڋFL},mͽIH #0vDK 4&:k:R&O!cIٯGY%=pZ\I]mUp"' ־yhUne,5g v +»9(}s+lTYI:NW@>/>b'߿y&&%JL\kMj4 \T<L戟_ /4 +endstream endobj 22 0 obj [21 0 R] endobj 35 0 obj <> endobj xref +0 36 +0000000004 65535 f +0000000016 00000 n +0000000147 00000 n +0000023191 00000 n +0000000000 00000 f +0000023270 00000 n +0000000000 00000 f +0000000000 00000 f +0000025899 00000 n +0000025971 00000 n +0000026111 00000 n +0000027705 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000023658 00000 n +0000024047 00000 n +0000024429 00000 n +0000067249 00000 n +0000075758 00000 n +0000024811 00000 n +0000075091 00000 n +0000067447 00000 n +0000068239 00000 n +0000074415 00000 n +0000073739 00000 n +0000067560 00000 n +0000025152 00000 n +0000067331 00000 n +0000067362 00000 n +0000068455 00000 n +0000068717 00000 n +0000075783 00000 n +trailer +<<933B8A92CC5FF842B9C1E5FDE3818E67>]>> +startxref +75979 +%%EOF diff --git a/images/colorblind_overlay/g.png b/images/colorblind_overlay/g.png new file mode 100644 index 0000000..cb631aa Binary files /dev/null and b/images/colorblind_overlay/g.png differ diff --git a/images/colorblind_overlay/not_playable.png b/images/colorblind_overlay/not_playable.png new file mode 100644 index 0000000..e02c1c6 Binary files /dev/null and b/images/colorblind_overlay/not_playable.png differ diff --git a/images/colorblind_overlay/r.png b/images/colorblind_overlay/r.png new file mode 100644 index 0000000..84320b0 Binary files /dev/null and b/images/colorblind_overlay/r.png differ diff --git a/images/colorblind_overlay/y.png b/images/colorblind_overlay/y.png new file mode 100644 index 0000000..78dd77d Binary files /dev/null and b/images/colorblind_overlay/y.png differ diff --git a/images/classic/png/option_bluff.png b/images/options/png/option_bluff.png similarity index 100% rename from images/classic/png/option_bluff.png rename to images/options/png/option_bluff.png diff --git a/images/classic/png/option_draw.png b/images/options/png/option_draw.png similarity index 100% rename from images/classic/png/option_draw.png rename to images/options/png/option_draw.png diff --git a/images/classic/png/option_draw2.png b/images/options/png/option_draw2.png similarity index 100% rename from images/classic/png/option_draw2.png rename to images/options/png/option_draw2.png diff --git a/images/classic/png/option_info.png b/images/options/png/option_info.png similarity index 100% rename from images/classic/png/option_info.png rename to images/options/png/option_info.png diff --git a/images/classic/png/option_pass.png b/images/options/png/option_pass.png similarity index 100% rename from images/classic/png/option_pass.png rename to images/options/png/option_pass.png diff --git a/images/classic/png/option_pass2.png b/images/options/png/option_pass2.png similarity index 100% rename from images/classic/png/option_pass2.png rename to images/options/png/option_pass2.png diff --git a/images/classic/webp/option_bluff.webp b/images/options/webp/option_bluff.webp similarity index 100% rename from images/classic/webp/option_bluff.webp rename to images/options/webp/option_bluff.webp diff --git a/images/classic/webp/option_draw.webp b/images/options/webp/option_draw.webp similarity index 100% rename from images/classic/webp/option_draw.webp rename to images/options/webp/option_draw.webp diff --git a/images/classic/webp/option_draw_old.webp b/images/options/webp/option_draw_old.webp similarity index 100% rename from images/classic/webp/option_draw_old.webp rename to images/options/webp/option_draw_old.webp diff --git a/images/classic/webp/option_info.webp b/images/options/webp/option_info.webp similarity index 100% rename from images/classic/webp/option_info.webp rename to images/options/webp/option_info.webp diff --git a/images/classic/webp/option_pass.webp b/images/options/webp/option_pass.webp similarity index 100% rename from images/classic/webp/option_pass.webp rename to images/options/webp/option_pass.webp diff --git a/images/classic/webp/option_pass_old.webp b/images/options/webp/option_pass_old.webp similarity index 100% rename from images/classic/webp/option_pass_old.webp rename to images/options/webp/option_pass_old.webp diff --git a/images/xcf/bluff.xcf b/images/options/xcf/bluff.xcf similarity index 100% rename from images/xcf/bluff.xcf rename to images/options/xcf/bluff.xcf diff --git a/images/xcf/draw.xcf b/images/options/xcf/draw.xcf similarity index 100% rename from images/xcf/draw.xcf rename to images/options/xcf/draw.xcf diff --git a/images/xcf/info.xcf b/images/options/xcf/info.xcf similarity index 100% rename from images/xcf/info.xcf rename to images/options/xcf/info.xcf diff --git a/images/xcf/pass.xcf b/images/options/xcf/pass.xcf similarity index 100% rename from images/xcf/pass.xcf rename to images/options/xcf/pass.xcf diff --git a/images/sticker_config.json.sample b/images/sticker_config.json.sample new file mode 100644 index 0000000..519d81d --- /dev/null +++ b/images/sticker_config.json.sample @@ -0,0 +1,5 @@ +{ + "sticker_dir": "classic_colorblind/webp/", + "pack_name": "classic_colorblind_yourname", + "sticker_emoji": "🃏" +} diff --git a/images/sticker_uploader.py b/images/sticker_uploader.py new file mode 100644 index 0000000..de02b0f --- /dev/null +++ b/images/sticker_uploader.py @@ -0,0 +1,185 @@ +""" +Script to upload a sticker pack to Telegram. +""" +import asyncio +import json +from pathlib import Path + +from telethon import TelegramClient +from telethon.tl.functions.messages import GetAllStickersRequest, GetStickerSetRequest +from telethon.tl.types import InputStickerSetID +from telethon.utils import pack_bot_file_id + +IMAGES_DIR = Path(__file__).resolve().parent +SESSION_NAME = "sticker_uploader" + +COLORS = ["r", "g", "b", "y"] +NUMBERS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "draw", "reverse", "skip"] +SPECIALS = ["colorchooser", "draw_four"] + +# Create this config file by copying the example file +with open(IMAGES_DIR / "sticker_config.json", "r", encoding="utf-8") as f: + sticker_config = json.load(f) + +STICKERS_DIR = IMAGES_DIR / sticker_config["sticker_dir"] + +# You must get your own api_id and api_hash from https://my.telegram.org, +# under API Development, and put them into a file called "api_auth.json" +with open(IMAGES_DIR / "api_auth.json", "r", encoding="utf-8") as f: + api_auth = json.load(f) + +api_id = api_auth["api_id"] +api_hash = api_auth["api_hash"] + +# Load the session from disk, or create a new one if it doesn't exist +session_file = IMAGES_DIR / f"{SESSION_NAME}.session" +session = str(session_file.absolute()) + +# Create the client and connect +client = TelegramClient( + session, + api_id, + api_hash, + receive_updates=False, +) +client.start() + + +async def delete_if_existing(stickers_bot): + sticker_sets = await client(GetAllStickersRequest(0)) + + for s in sticker_sets.sets: + if s.short_name == sticker_config["pack_name"]: + print(f'Deleting existing sticker set "{s.short_name}" ({s.id})') + await client.send_message(stickers_bot, "/delpack") + await client.send_message(stickers_bot, s.short_name) + break + + +async def create_sticker_set(stickers_bot): + """ + Create a new sticker set by conversing with @Stickers. + """ + await client.send_message(stickers_bot, "/newpack") + await client.send_message(stickers_bot, sticker_config["pack_name"]) + + +async def get_sticker_set(): + """ + Get the sticker set that we just created. + """ + sticker_sets = await client(GetAllStickersRequest(0)) + + for s in sticker_sets.sets: + if s.short_name == sticker_config["pack_name"]: + sticker_set_ref = s + break + else: + raise Exception(f'Could not find sticker set "{sticker_config["pack_name"]}"') + + sticker_set = await client( + GetStickerSetRequest( + InputStickerSetID(id=sticker_set_ref.id, access_hash=sticker_set_ref.access_hash), + hash=0, + ) + ) + return sticker_set + + +async def get_sticker_ids(sticker_set): + """ + Get the sticker file IDs of the stickers in the given sticker set, mapped to their sticker ID. + """ + sticker_ids = [] + + for special in SPECIALS: + sticker_ids.append(special) + + for color in COLORS: + for number in NUMBERS: + sticker_ids.append( + f"{color}_{number}", + ) + + stickers = {} + + for sticker_id, document in zip(sticker_ids, sticker_set.documents): + file_id = pack_bot_file_id(document) + stickers[sticker_id] = file_id + + return stickers + + +async def save_sticker_ids(): + # Get the sticker ids + sticker_set = await get_sticker_set() + stickers = await get_sticker_ids(sticker_set) + + # Save the stickers to a file + with open(IMAGES_DIR / f"sticker_ids_{sticker_config['pack_name']}.json", "w") as f: + json.dump(stickers, f, indent=4) + + +async def upload_sticker(entity, sticker_path): + """ + Uploads a sticker to the current conversation. + """ + message = await client.send_file( + entity, + sticker_path, + force_document=True, + ) + await client.send_message(entity, sticker_config["sticker_emoji"]) + return message + + +async def main(): + me = await client.get_me() + print(f"Logged in as {me.username} ({me.id})") + + BOT_USERNAME = "Stickers" + stickers_bot = await client.get_entity(BOT_USERNAME) + + ### Uncomment if you missed the prompt to add the sticker pack to your account ### + # await save_sticker_ids() + # return + + # Delete the existing sticker set if it exists + await delete_if_existing(stickers_bot) + await asyncio.sleep(1) + + # Create a new sticker set + await create_sticker_set(stickers_bot) + + # Upload the stickers + async def do_sticker_upload(path): + await upload_sticker(stickers_bot, path) + await asyncio.sleep(1) + + for special in SPECIALS: + await do_sticker_upload( + STICKERS_DIR / f"{special}.webp", + ) + + for color in COLORS: + for number in NUMBERS: + await do_sticker_upload( + STICKERS_DIR / f"{color}_{number}.webp", + ) + + await client.send_message(stickers_bot, "/publish") + await client.send_message(stickers_bot, "/skip") + await client.send_message(stickers_bot, sticker_config["pack_name"]) + + # Wait for the user to add the sticker pack to their account + print("Please add the sticker pack to your account by clicking the link posted by @Stickers") + print(f"https://t.me/addstickers/{sticker_config['pack_name']}") + await asyncio.sleep(10) + + # Save the sticker IDs to a file + await save_sticker_ids() + + +if __name__ == "__main__": + with client: + client.loop.run_until_complete(main())